Totally lost in learning Ruby

On Wed, Feb 2, 2011 at 4:23 PM, Mike S. [email protected]
wrote:

The problem with Rails is it is a whole new langusge to learn. It is
more like a DSL. If you are struggling with just Ruby, why climb another
mountain at the same time?

Start dabbling with Scite. Open IRB in another window, and a command
prompt for ri in a third window. Explore Ruby’s basic behaviours. Follow
a simple Ruby book. Ask a few questions and get comfortable with simple
things.

+1 Use vim is another mountain to climb on top of learning to program.
Go
with Scite (or if on a mac, TextMate) which will behave like all the
other
applications you are familliar with (ie the left arrow to go left,
rather
than the letter j – whilst in command mode) There used to be a version
packaged with the Ruby download, that was setup such that you could run
the
program you were writing by pressing f5.

Tackle the editor after you have done enough programming to decide that
it
is worth learning the editor as well.

Once you write a script and want to test it, you run the irb program and
type irb scriptname and if you’ve put the script in the directory
where irb expects it it’s possible you run your script. The irb command
is only one way to do this but useful for beginners.

On Jan 24, 7:05am, Hilary B. [email protected] wrote:

past some of my trusted colleagues with vast programming knowledge have
been a disappointment.

Therefore i figured that my best route would be to ask the Open Source
community for help.


Posted viahttp://www.ruby-forum.com/.

I admire your vim and vigor, I really do if you wish to learn Ruby
read from the horses mouth. I tried a few books and found Matz’s the
most logical The Ruby Programming Language [Book] . It seems you
are not only trying to learn Ruby but the whole world of IT in one
gulp, your question what is CSS highlights that, but I do not say this
to criticize because if you put your mind to it you can do it.

Look at this walkthrough
http://www.artfulsoftware.com/dbdesignbasics.html
on designing databases, there is an example within using schools as an
example. If you want opensource have you considered using base and
mysql. You could likely achieve your requirement in less time and take
your knowledged gained onto developing your application further as you
learn.

What is base http://www.libreoffice.org/features/base/ or
Apache OpenOffice Base . I gave you links to both
as currently they are very similar and I didn’t want to enter this
debate as I have no personal ideological preference as he technology
currently remains the same.

Hilary,

When you first begin to learn about programming, your first obstacles
will have to do with basic language syntax, understanding how/when/why
to use variables, loops, conditional expressions, data structures, etc.
In the beginning, those basic building blocks may seem curious and
disjunct, but but you will use them constantly and directly every single
time you sit down to write any real code. As you get started, even
basics such as knowing how/why to indent lines of code can give you
trouble. Becoming familiar with the process of installing and working
in your development environment (your choice of OS, Ruby installation,
IDE/text/code editor, etc.), and executing and debugging snippets of
code, can take a while to become comfortable.

After you become familiar with the basic language concepts, tool set,
and work flow of writing/executing simple bits of code, you’ll become
more able to use libraries and frameworks that do valuable things:
create GUI windows and widgets that obtain and display processed data
for the user, create web interfaces that obtain and display processed
data, work with graphics, media, compressed files, and other binary data
types, save/retrieve/manipulate text data in useful real-world ways,
manage larger data structures, perhaps control robots, or anything else
you want to accomplish… You’ll settle on favorite
libraries/frameworks and become proficient at making them work together
to create full applications that do useful things for users. Along the
way, you’ll learn to think more about designing sensible and efficient
user interfaces, you’ll learn to handle usage problems that come from
how different people expect to use computer programs, you’ll learn to
catch typical bugs that occur in text data processing, anticipate and
eliminate potential security weaknesses, deal with usability issues in
multiuser applications, etc. It can take years and many tens/hundreds
of thousands of lines of written code to really become proficient at
writing rock solid pieces of software that people use easily and
intuitively.

The problem with most tutorials and books for beginners is that they end
with the basics of language structure and bits about using
libraries/frameworks, etc. Once you understand enough basic syntax and
concepts like using loops to search and sort through lists of data, you
need to see and play with lots of code to actual working applications.
You need to see, experiment with, alter and write from scratch lots and
lots of working code. To get started with that, you could try, for
example, downloading wxRuby and playing with all the included code
examples. Take the GUI grid widget example and alter the code to make
it display a sample data file that you’ve read from a file on the hard
drive. Put together a simple application that reads a directory of
image files, displays the file names in a text list, and then displays
the image when the file name is clicked. Write a small recipe database
application. Write a clone of a classic simple video game. Find a web
host that supports Ruby and learn how to enter data via HTML forms,
process that data with CGI, and display tables of the processed data
using HTML. Enter your sample data file into a MySQL database and write
the SQL code needed to search and sort that data by any field in the
database. When you get stuck, post a question online, with the code
you’re trying to make work. You’re likely to get detailed help when you
have specific questions about how to fix a small portion of
almost-working code.

I wrote a tutorial for the REBOL language which takes you through all
the stages of learning, including line by line documented code and full
case studies for more than 50 applications: http://re-bol.com. It’s
been among the top 3 search results for “computer programming tutorial”
for several years. I’m currently rewriting that tutorial for Ruby, but
in the meantime, it should give you a nice complete understanding about
how to progress beyond just the basics. All the concepts will be
directly applicable to learning Ruby.

Hope that helps :slight_smile:

On Tue, Feb 8, 2011 at 3:16 AM, Hilary B. [email protected]
wrote:

What I want to create is a database that can measure the performance of
all entities in a school district. The closest software that exhibits
some semblance is that of Microsoft Access. Where, as I understand it,
the input entry of a single data can be housed and then derived, through
a set of queries, then further analyzed through/by Microsoft Solver
software.

Microsoft Access gives you a database with application code in a
single file. You can even have a GUI to enter data. This is very
convenient for small applications. However, it’s best when used by a
single person at a time - it’s concurrency facilities are somewhat
limited - at least that’s what it was last time I checked. It would
seem that you could cook something similar with Open Office (or Libre
Office) Base which has the advantage not to be tied into Microsoft
OS’s. If you need something that can be used by multiple users
concurrently chances are that Access is not the best choice.

The difference with my proposal would be that based on selected
indicators [which will be dynamically influenced by changed event(s) and
policy(ies], which would be able to measure success. I have been exposed
to a statistical software named SPSS and having worked as an economist,
has influenced my outlook on creating an approach/database/software
which would indicate in real time, measured results.

What exactly does “real time” mean in your context? I figure, human
beings need to give this system some input data before it can spit out
any new information.

As you can tell, there is an element of nervousness regarding saying
too much. But on the other hand, if not much is said, not much help can
be given. So it’s a “catch 24”, where since the last 20 years I have
been improving on a systems that would be able to measure defined
academic output, vis-a-vis, financial constraints etc…

What does “system” exactly mean here? Is it a mathematical model that
you want to implement in software? Is it a software system that you
need to improve / extend?

Mike S. recommended Mendix as a possible solution to my woes. Do
you know of such arena?

Therefore, I figured that, doing it all by myself may be the best
solution. However, some of my concerns are: "Why reinvent the wheel?',

Good question. It’s usually a bad idea.

How can I create a sustainable system that does not compromise quality?,
What curriculum structure should I follow that will meet my needs
without, straying from my goals?

Therefore, this is my dilemma, which seems to be going in circles. Any
suggestions.

Clarify your requirements first. Write down a list of things that
your system needs to do, e.g. things like “someone in every school in
the district needs to be able to enter course grades” or “I want to be
notified immediately if some metric X changes”. Then we can start
about thinking how such a solution might look like and finally we can
help you develop a curriculum for your training so you can build what
you want. I do assume though that it will take you in the order of
months to arrive there if you do not have an IT background.

Kind regards

robert

Hi everybody,
Based on the responses I have been receiving, I will greatly appreciate
any comment on how to move forward from this point. Thanks in advance to
all respondents whom have been soooooo kind and patient.

What I want to create is a database that can measure the performance of
all entities in a school district. The closest software that exhibits
some semblance is that of Microsoft Access. Where, as I understand it,
the input entry of a single data can be housed and then derived, through
a set of queries, then further analyzed through/by Microsoft Solver
software.

The difference with my proposal would be that based on selected
indicators [which will be dynamically influenced by changed event(s) and
policy(ies], which would be able to measure success. I have been exposed
to a statistical software named SPSS and having worked as an economist,
has influenced my outlook on creating an approach/database/software
which would indicate in real time, measured results.

As you can tell, there is an element of nervousness regarding saying
too much. But on the other hand, if not much is said, not much help can
be given. So it’s a “catch 24”, where since the last 20 years I have
been improving on a systems that would be able to measure defined
academic output, vis-a-vis, financial constraints etc…

Mike S. recommended Mendix as a possible solution to my woes. Do
you know of such arena?

Therefore, I figured that, doing it all by myself may be the best
solution. However, some of my concerns are: "Why reinvent the wheel?’,
How can I create a sustainable system that does not compromise quality?,
What curriculum structure should I follow that will meet my needs
without, straying from my goals?

Therefore, this is my dilemma, which seems to be going in circles. Any
suggestions.

Clarify your requirements first. Write down a list of things that
your system needs to do, e.g. things like “someone in every school in
the district needs to be able to enter course grades” or “I want to be
notified immediately if some metric X changes”. Then we can start
about thinking how such a solution might look like and finally we can
help you develop a curriculum for your training so you can build what
you want. I do assume though that it will take you in the order of
months to arrive there if you do not have an IT background.

I second that. Work out exactly what you want the product to do. Then
work out the smallest set of functionality that would make the product
at all meaningful: cross off all the bells and whistles, then look at
what’s left and pick out the most important part; then cross off
everything else. That’s the bit you want to make first.

Three reasons for not making it all at once: first, you want to get to a
point where you can test what you have done as fast as possible; second,
you get something that you can show others, which might be important.

Third and most importantly, it’s an unpleasant fact that you will almost
certainly get to the testing stage and realise that with what you know
now, you would have done many things differently. You may have to start
over. I would say, don’t try and learn how to make the product at the
same time as making it. But there is no point in that - the truth is
you will learn as much in making your first attempt as you do
beforehand.

Personally, I’d start by designing the database, but others will tell
you to design the interaction with the users first. I’m not sure there
is one correct way; do what feels right.

You could try RubyMine from JetBrains. They are offering personal
license
for RubyMine for just 29$. A editor plugin which provides VIM emulation
is
available in RubyMine plugin repository.

Thanks,
Abhijit


There are only 10 types of people in the world, those who understand
binary
and those who don’t.

Robert K. wrote in post #980210:

On Tue, Feb 8, 2011 at 3:16 AM, Hilary B. [email protected]
wrote:

What I want to create is a database that can measure the performance of
all entities in a school district. The closest software that exhibits
some semblance is that of Microsoft Access. Where, as I understand it,
the input entry of a single data can be housed and then derived, through
a set of queries, then further analyzed through/by Microsoft Solver
software.

Microsoft Access gives you a database with application code in a
single file. You can even have a GUI to enter data. This is very
convenient for small applications. However, it’s best when used by a
single person at a time - it’s concurrency facilities are somewhat
limited - at least that’s what it was last time I checked. It would
seem that you could cook something similar with Open Office (or Libre
Office) Base which has the advantage not to be tied into Microsoft
OS’s. If you need something that can be used by multiple users
concurrently chances are that Access is not the best choice.

The difference with my proposal would be that based on selected
indicators [which will be dynamically influenced by changed event(s) and
policy(ies], which would be able to measure success. I have been exposed
to a statistical software named SPSS and having worked as an economist,
has influenced my outlook on creating an approach/database/software
which would indicate in real time, measured results.

What exactly does “real time” mean in your context? I figure, human
beings need to give this system some input data before it can spit out
any new information.

As you can tell, there is an element of nervousness regarding saying
too much. But on the other hand, if not much is said, not much help can
be given. So it’s a “catch 24”, where since the last 20 years I have
been improving on a systems that would be able to measure defined
academic output, vis-a-vis, financial constraints etc…

What does “system” exactly mean here? Is it a mathematical model that
you want to implement in software? Is it a software system that you
need to improve / extend?

Mike S. recommended Mendix as a possible solution to my woes. Do
you know of such arena?

Therefore, I figured that, doing it all by myself may be the best
solution. However, some of my concerns are: "Why reinvent the wheel?',

Good question. It’s usually a bad idea.

How can I create a sustainable system that does not compromise quality?,
What curriculum structure should I follow that will meet my needs
without, straying from my goals?

Therefore, this is my dilemma, which seems to be going in circles. Any
suggestions.

Clarify your requirements first. Write down a list of things that
your system needs to do, e.g. things like “someone in every school in
the district needs to be able to enter course grades” or “I want to be
notified immediately if some metric X changes”. Then we can start
about thinking how such a solution might look like and finally we can
help you develop a curriculum for your training so you can build what
you want. I do assume though that it will take you in the order of
months to arrive there if you do not have an IT background.

Kind regards

robert

What I want to create is a product that is computer accessible, that is
similar to a teacher’s Grade Keeper, but goes farther by adding defined
info from principals, guidance counselors, lunch provision for students,
etc… The reason for this approach is that this will now allow more
complete view of a what impacts a child.

Therefore, the daily entry of data from all participants (teachers,
principals, security, janitors, etc…) will give an analyzer a wider
set of defined parameter inputed data to access, then analyze. The
problem is where to start. I read a book on Ruby, some say that my next
step is to play with scripts, alter some commands and then test such
adjustments. The problems is to follow a logical sequence of learning.
For example, since i use Windows 7, have installed Ruby 1.9.2 p.136 and
Rails, Vim7.2, and LibreOffice 3.3. and saved info to htmldog.com from
which HTML & CSS can be learned.

I know very well that it will take me some time, however, now where do I
start? Should I star with htmldog tutorials, then open Rails along with
vim7.2, then the next stage will be to explore SQlite, then MYSQL, while
having LibreOffice Base as a source of reference?

In terms of distribution, giving it away free will not be taken
seriously by current educational administrators and policy makers. It
suits me to market it and if successful, support this community plus
other social causes of choice.

So based on all that have been said, where, specifically (if possible)
go from here in creating such a product.

Robert K. wrote in post #980520:

I consider it an interesting question (although completely off topic
here) whether all these aggregated figures can give clear information
which school works good and which works bad.

I agree the propostion is somewhat spurious. We in the UK have a lot of
this target/metrics-orientation and it naturally leads to distortion,
obfuscation, lies and game-playing. The idea that people would reliably
self-report on items of major importance to their school’s, or their own
personal future standing and funding, is perhaps naive.

The overall topic however is valid because it touches upon the issue of
how Ruby (or other alternatives) fit in to the World of a non-IT
professional building relatively straight-forward applications.

If you are a Ruby expert, you could knock up something like this in a
morning, based on a 15-20 minute chat. If you are new to programming,
it’s a task that may take months or more.

Personally, I think Ruby (or Rails) is like the latest Airbus airliner.
It has all sorts of fantastic features to make it dead easy to do
difficult things in bad weather at bad airports, but you have to be a
trained pilot before you set foot in the simulator.

It’s odd that we can’t agree what other platform should be recommended
in these circumstances.

On Tue, Feb 8, 2011 at 5:11 PM, Hilary B. [email protected]
wrote:

What I want to create is a product that is computer accessible, that is
similar to a teacher’s Grade Keeper, but goes farther by adding defined
info from principals, guidance counselors, lunch provision for students,
etc… The reason for this approach is that this will now allow more
complete view of a what impacts a child.

I consider it an interesting question (although completely off topic
here) whether all these aggregated figures can give clear information
which school works good and which works bad. I’d say you need a lot
of data from various sources to even get close to this goal. And
before you reach your goal you might hit some privacy legislation
wall…

Therefore, the daily entry of data from all participants (teachers,
principals, security, janitors, etc…) will give an analyzer a wider
set of defined parameter inputed data to access, then analyze.

OK, so a web based solution is probably most appropriate since it
avoids having to install software on a lot of systems. But don’t
forget to write the complete requirements list!

vim7.2, then the next stage will be to explore SQlite, then MYSQL, while
having LibreOffice Base as a source of reference?

Start with the basics. If you are new to programming, you need to
learn to program (incidentally this is the title of a tutorial by
Chris P.). After you understood that you can tackle HTML (and CSS -
web design in general) and finally SQL basics (and the relational
model and data modeling). Then you can pull it all together and look
at Rails (or any other web framework).

With this order you will be able to write programs first, then write
programs showing HTML pages and learn how the web browser interacts
with the web server. Then you will know how to model persistent data
and can use that with Rails et al.

Good luck!

robert

So Mike,
Since a database seems to be the bulk on the creation of a my intended
Ed web application/software, should I consider the SQLs or just use the
LibreOffice Base along with its Spreadsheet, and then use further
analysis from the OpenSource statistical program PSPP to integrate
aspects of a)data entry b)other operational skills that (I think) many
not be offered Base, and then c)further statistical crunching?

Therefore, is it possible to use available OpenSource softwares to piece
together a web application/software? I know that I have to acquaint
myself with Base and the others, but should I design around the SQLs or
Base? Also, just in case anyone reading along or would like to provide
their expertise, I am not afraid of “getting my hands dirty” while
learning. So I prefer going the properly logically sensible way, without
having to reinvent the wheel.So please, I will greatly appreciate ANY
AND MANY more comments as they have certainly help clarify a lot of
questions regarding programming.

Mike S. wrote in post #980543:

Robert K. wrote in post #980520:

I consider it an interesting question (although completely off topic
here) whether all these aggregated figures can give clear information
which school works good and which works bad.

I agree the propostion is somewhat spurious. We in the UK have a lot of
this target/metrics-orientation and it naturally leads to distortion,
obfuscation, lies and game-playing. The idea that people would reliably
self-report on items of major importance to their school’s, or their own
personal future standing and funding, is perhaps naive.

The overall topic however is valid because it touches upon the issue of
how Ruby (or other alternatives) fit in to the World of a non-IT
professional building relatively straight-forward applications.

If you are a Ruby expert, you could knock up something like this in a
morning, based on a 15-20 minute chat. If you are new to programming,
it’s a task that may take months or more.

Personally, I think Ruby (or Rails) is like the latest Airbus airliner.
It has all sorts of fantastic features to make it dead easy to do
difficult things in bad weather at bad airports, but you have to be a
trained pilot before you set foot in the simulator.

It’s odd that we can’t agree what other platform should be recommended
in these circumstances.

On 2011-01-21 04:13:47 -0600, Hilary B. said:

teachers which will hold educational institutions accountable for the
Tk in advance,

Hilary

I don’t know if anybody else already said this but… did you really go
through those books and don’t understand the basic concepts of Ruby and
are looking for a compiler? Gosh…

-E

On 02/10/2011 07:41 PM, Hilary B. wrote:

Therefore, is it possible to use available OpenSource softwares to piece
together a web application/software? I know that I have to acquaint
myself with Base and the others, but should I design around the SQLs or
Base? Also, just in case anyone reading along or would like to provide
their expertise, I am not afraid of “getting my hands dirty” while
learning. So I prefer going the properly logically sensible way, without
having to reinvent the wheel.So please, I will greatly appreciate ANY
AND MANY more comments as they have certainly help clarify a lot of
questions regarding programming.

Hi, Hilary,

As you’re sure to have gathered by now, doing what you want to do takes
quite a bit of knowledge and experience, especially if you want to do it
all yourself. Even stating the problem you want to solve with your
software isn’t easy once you try to go beyond the high level and delve
into the details.

Would you feel comfortable building a new wing for your local elementary
school all by yourself based only on the discussions you have with
employees at a nearby hardware store or construction site? Even if the
materials and tools are free, your time is not, and you probably
wouldn’t have the greatest faith in the quality of what you built as
your first project anyway.

Given your apparent inexperience in this field, you should probably
consider doing one or more of the following before going much further:

  • Take some computer programming classes from your local community
    college or continuing education institutions.
  • Perform simple, proof-of-concept tasks using the tools you have
    discussed so far.
  • Request quotes from a few contracting or consulting firms to write
    your software directly.

The goal is for you to have: 1) a foundation upon which to build your
skills, 2) some experience using the necessary tools, and 3) an idea of
what it costs in time and money to perform this work professionally.

You may find that you don’t like this level of software development in
the end. It’s not for everyone. As an analogy, I don’t mind fixing my
fence when part of it breaks, but I’ll either hire someone else to build
a new fence from scratch or learn to do without one. :wink:

Good luck and happy learning!

-Jeremy

Hilary B. wrote in post #981001:

So Mike,
Since a database seems to be the bulk on the creation of a my intended
Ed web application/software, should I consider the SQLs or just use the
LibreOffice Base along with its Spreadsheet.

I think what the essence of your application is, is to get people to
submit various data, and then you want to aggregate that to a) detect
correlations and b) measure individuals/groups against all or some other
individuals or groups.

This is the bread-and-butter of corporate life and the Sofware King in
this domain is Excel, or perhaps The Software Capo di tutti Capi.

They don’t use Java. They don’t use C#, and they certainly don’t use
Ruby.

The great thing about Excel (or OpenOffice) is that everyone knows how
to use it. If not, they can ask the person sitting next to them.

To be honest, it’s not really a database problem. Obviously a database
can play a part but you are not maintaining complex relationships and
business rules. You are looking for patterns.

I am developing multi-million international web sites. They are written
by a team of highly trained .NET programmers. There’s not a spreadsheet
to be seen in the applications but underneath, that’s where at least
some of the data came from originally.

So I guess Step 1 is to build your model in an office suite. It would be
quite ambitious to just launch something without prototyping the model.

Unfortunately I doubt it’s easy to ‘publish’ your app either as a GUI or
Web product. You’d need to start again. Which brings us back to
something like Rails, an app generator like Mendix, or going on the
Internet and getting somebody to write it for you in India.

I wouldn’t be on this channel if I didn’t think Ruby was as easy as
other full-strength platforms to do a proper web site. My obsession in
life is to do the least possible in any context.

I’ll give you an analogy - I think you’re wanting to go on holiday to
Hawaii but assuming you first need to become a trained commercial pilot.
Consider letting someone/something else do the delivery, leaving you to
plan the content.

On Fri, Feb 11, 2011 at 9:15 AM, Mike S. [email protected]
wrote:

This is the bread-and-butter of corporate life and the Sofware King in
this domain is Excel, or perhaps The Software Capo di tutti Capi.

They don’t use Java. They don’t use C#, and they certainly don’t use
Ruby.

That might be true for analysis…

The great thing about Excel (or OpenOffice) is that everyone knows how
to use it. If not, they can ask the person sitting next to them.

Unfortunately many Excel sheets look exactly like that: people who
think they know how to use spreadsheets create amazingly complex
things that could be made much simpler and break at the first change.
I am constantly amazed at how many people build macros into their
sheets for things that can be solved with cell functions - which I
believe is the primary tool for in Excel and the like.

To be honest, it’s not really a database problem. Obviously a database
can play a part but you are not maintaining complex relationships and
business rules. You are looking for patterns.

… but having several people entering data into a single Excel sheet
(or even worse: several Excel sheets) is a nightmare right from the
start.

I am developing multi-million international web sites. They are written
by a team of highly trained .NET programmers. There’s not a spreadsheet
to be seen in the applications but underneath, that’s where at least
some of the data came from originally.

So I guess Step 1 is to build your model in an office suite. It would be
quite ambitious to just launch something without prototyping the model.

Getting a clear idea of the model is certainly reasonable. But to get
that one needs at least moderate understanding of data modeling, how
those models are represented (UML is still no subject in schools, I
guess) and how they are built to satisfy various criteria. I think
for someone not knowledgeable in IT some basic training must come
first. Without that chances are that what is prototyped in Excel or
any other tool with nice graphical user interface won’t work properly.

Hawaii but assuming you first need to become a trained commercial pilot.
Consider letting someone/something else do the delivery, leaving you to
plan the content.

Until now it was never mentioned that there is actually a team or that
“someone else” you mentioned. So at least for the moment it seems
this is not an option.

Cheers

robert

Having been in and around software design for far longer than I care to
admit, here is some of what I have “learned” over the years about
software design projects. Almost all of the successful marketable
software design projects I have been involved in and observed over the
years seem to have a few traits in common that tend to lead to their
success.

I also apologize in advance to the board that the main points in this
post aren’t really ruby related at all and should probably be moved to a
different board more centered around the business aspects of software
design.

First off, at the very beginning of the project there are at least three
key roles that should be filled before the software design should
seriously begin. However don’t let me or anyone else discourage you from
trying. Be sure and read the last paragraph about what I think you
should be focusing on in these early stages. In any case, it will be a
great learning experience for you! The three key roles before the
software design project really begins are the marketing role, the legal
role, and the finance role.

The marketing role needs to decide if there will be demand for the
software that you are going to produce, when will you produce it and
identifying which customers appear willing to pay good money for it. Who
are the competitors? Is your product a clone+ of something else? How
will you productize it, package it, promote it, etc. If there is a real
demand for your product there should be a company that will help sponsor
its development or at least help you alpha and beta test.

The legal role involves walking the mine field of software design
legalities regarding reuse of other’s ideas/codes/tools, etc. so that
you don’t get close to market only to find out that others, perhaps even
one of your competitors, has deeper legal pockets than you and may even
try to tie you up on legalities that may have escaped your attention
while you burn off your cash in court.

The last role is the finance role. In order to quickly move an idea and
a viable product to market generally will require some capital. All of
your own time spent on this project is time that isn’t available for
other endeavors. And as others on this board have already suggested, it
will be incredibly challenging for one person to fill all of the key
roles involved in a project of this nature.

In the good old days 10-15 years ago, here in the States anyway, before
the dotcom bubble burst practically anyone with a good idea could put
together a team and venture capitalists/angel investors would fall all
over themselves to fund it. Such is not the case anymore!

The last paragraph: Whenever I find myself going in circles, I generally
take a long hard look at my project’s scope. I would suggest that you
should simplify your current plan’s scope to not include any of the
business aspects yet regarding a new proposed software solution or any
proposed enhancements to their current system but should totally focus
first on developing a software prototype using currently available tools
to accurately model those aspects of the current environment of an
educational system that are of interest to you. Only after you have
successfully modeled the current environment as you now know it should
you begin to look at ways to enhance it. In many software systems that
have been in the field for a while, things tend to work the way they
do(trade-offs) because of an evolution to meet some customer marketing
need.

With this down-sized scope, this will still be a great technical
learning endeavor for you to experience developing a real-life software
prototype. This will also be very useful for you to evaluate the
software model’s complexity, to test your own understanding of the
environment, to evaluate the software tools available today and their
capabilities, etc. etc…

Generally, in my opinion anyway, successfully writing fundable, fully
maintainable secure marketable legal software generally will typically
require the expertise of some marketing, legal, finance, and software
design professionals that have already been there and done that.

— On Mon, 2/7/11, Hilary B. [email protected] wrote:

From: Hilary B. [email protected]
Subject: Re: Totally lost in learning Ruby
To: “ruby-talk ML” [email protected]
Date: Monday, February 7, 2011, 6:16 PM

Hi everybody,
Based on the responses I have been receiving, I will greatly appreciate
any comment on how to move forward from this point. Thanks in advance to
all respondents whom have been soooooo kind and patient.

What I want to create is a database that can measure the performance of
all entities in a school district. The closest software that exhibits
some semblance is that of Microsoft Access. Where, as I understand it,
the input entry of a single data can be housed and then derived, through
a set of queries, then further analyzed through/by Microsoft Solver
software.

The difference with my proposal would be that based on selected
indicators [which will be dynamically influenced by changed event(s) and
policy(ies], which would be able to measure success. I have been exposed
to a statistical software named SPSS and having worked as an economist,
has influenced my outlook on creating an approach/database/software
which would indicate in real time, measured results.

As you can tell, there is an element of nervousness regarding saying
too much. But on the other hand, if not much is said, not much help can
be given. So it’s a “catch 24”, where since the last 20 years I have
been improving on a systems that would be able to measure defined
academic output, vis-a-vis, financial constraints etc…

Mike S. recommended Mendix as a possible solution to my woes. Do
you know of such arena?

Therefore, I figured that, doing it all by myself may be the best
solution. However, some of my concerns are: "Why reinvent the wheel?',
How can I create a sustainable system that does not compromise quality?,
What curriculum structure should I follow that will meet my needs
without, straying from my goals?

Therefore, this is my dilemma, which seems to be going in circles. Any
suggestions.

Having been in and around software design for far longer than I care to
admit, here is some of what I have “learned” over the years about
software design projects. Almost all
of the successful marketable software design projects I have been
involved in and observed over the years seem to have a few traits in
common that tend to lead to their success.

I also apologize in
advance to the board that the main points in this post aren’t really
ruby related at all and should probably be moved to a different board
more centered around the business aspects of software design.

First
off, at the very beginning of the project there are at least three key
roles that should be filled before the software design should seriously
begin. However don’t let me or anyone
else
discourage you from trying. Be sure and read the last paragraph about
what I think you should be focusing on in these early stages. In
any case, it will be a great learning experience for you! The three
key roles before the software design project really begins are the
marketing role, the legal role, and the finance role.

The
marketing role needs to decide if there will be demand for the software
that you are going to produce, when will you produce it and identifying
which customers appear willing to pay good money for it. Who are the
competitors? Is your product a clone+ of something else? How will you
productize it, package it, promote it, etc. If there is a real demand
for your product there should be a company that will help sponsor its
development or at least help you alpha and beta test.

The legal
role involves walking the mine field of software design legalities
regarding reuse of other’s ideas/codes/tools, etc. so that you don’t
get close to market only to find out that others, perhaps even one of
your competitors, has deeper legal pockets than you and may even try to
tie you up on legalities that may have escaped your attention while you
burn off your cash in court.

The last role is the finance role.
In order to quickly move an idea and a viable product to market
generally will require some capital. All of your own time spent on this
project is time that isn’t available for other endeavors. And as
others on this board have already suggested, it will be incredibly
challenging for one person to fill all of the key roles involved in a
project of this nature.

In the good old days 10-15 years ago,
here in the States anyway, before the dotcom bubble burst practically
anyone with a good idea could put together a team and venture
capitalists/angel investors would fall all
over themselves to fund it. Such is not the case anymore!

The
last paragraph: Whenever I find myself going in circles, I generally
take a long hard look at my project’s scope. I would suggest that you
should simplify your current plan’s scope to not include any of the
business aspects yet regarding a new proposed software solution or any
proposed enhancements to their current system but should totally focus
first on developing a software prototype
using currently available tools to accurately model those aspects of
the current environment of an educational system that are of interest to
you. Only after you have successfully modeled the current
environment as you now know it should you begin to look at ways to
enhance it. In many software systems that have been in the field for a
while, things tend to work the way they do(trade-offs) because of an
evolution to
meet some customer marketing need.

With this down-sized scope,
this will still be a great technical learning endeavor for you to
experience developing a real-life software prototype. This will also
be very useful for you to evaluate the software model’s complexity, to
test your own understanding of the environment, to evaluate the software
tools available today and their capabilities, etc. etc…

Generally,
in my opinion anyway, successfully writing fundable, fully
maintainable secure marketable legal software generally will typically
require the expertise of some marketing, legal, finance, and software
design professionals that have already been there and done that.

— On Mon, 2/7/11, Hilary B. [email protected] wrote:

From: Hilary B. [email protected]
Subject: Re: Totally lost in learning Ruby
To: “ruby-talk ML” [email protected]
Date: Monday, February 7, 2011, 6:16 PM

Hi everybody,
Based on the responses I have been receiving, I will greatly appreciate
any comment on how to move forward from this point. Thanks in advance to
all respondents whom have been soooooo kind and patient.

What I want to create is a database that can measure the performance of
all entities in a school district. The closest software that exhibits
some semblance is that of Microsoft Access. Where, as I understand it,
the input entry of a single data can be housed and then derived, through
a set of queries, then further analyzed through/by Microsoft Solver
software.

The difference with my proposal would be that based on selected
indicators [which will be dynamically influenced by changed event(s) and
policy(ies], which would be able to measure success. I have been exposed
to a statistical software named SPSS and having worked as an economist,
has influenced my outlook on creating an approach/database/software
which would indicate in real time, measured results.

As you can tell, there is an element of nervousness regarding saying
too much. But on the other hand, if not much is said, not much help can
be given. So it’s a “catch 24”, where since the last 20 years I have
been improving on a systems that would be able to measure defined
academic output, vis-a-vis, financial constraints etc…

Mike S. recommended Mendix as a possible solution to my woes. Do
you know of such arena?

Therefore, I figured that, doing it all by myself may be the best
solution. However, some of my concerns are: "Why reinvent the wheel?',
How can I create a sustainable system that does not compromise quality?,
What curriculum structure should I follow that will meet my needs
without, straying from my goals?

Therefore, this is my dilemma, which seems to be going in circles. Any
suggestions.

On Fri, 2011-02-11 at 13:51 +0900, EiNZTEiN wrote:

On 2011-01-21 04:13:47 -0600, Hilary B. said:

I am a school teacher

trying to create an education database software for administrators and
teachers which will hold educational institutions accountable for the
performance of their school district. My only programming experience is
the confusion I had trying to read and comprehend the above sources that
do not offer a stable compiler or the appropriate programs that will go
hand in hand with their book or resource for Ruby.

No offense meant, but creating a programming project like you are
describing is very complex. You need Ruby, MySQL, HTML, CSS, Rails, and
probably a few other technologies just to start a project like that. I
suggest you hire professional help, or plan to spend a year learning the
basics of programming and web building. I would suggest reviewing
existing projects and products for school administration.

Also, programming is like math. You can’t learn it by reading a book and
skimming over the detail. You have to get in and do the problems. In
programming, you read the book(s) just to find out where the information
is, then you start working on your own program. As you need stuff, you
go back to the book(s) for explanations and examples. As you solve each
little thing that comes up, your skills improve. You can’t learn
programming without doing it, and it doesn’t take just a few days, it
takes months or years. I know; I used to teach programming at the
college level. Some people just “get it,” and some never “get it.”

–Dr. Mike

EiNZTEiN wrote in post #981023:

On 2011-01-21 04:13:47 -0600, Hilary B. said:

teachers which will hold educational institutions accountable for the
Tk in advance,

Hilary

I don’t know if anybody else already said this but… did you really go
through those books and don’t understand the basic concepts of Ruby and
are looking for a compiler? Gosh…

-E

Dear E(Dr. Gosh…,
This point has already been clarified. It is not a matter of trying to
find an easy way out, but rather accessing and working with a community
that is not afraid to inform and guide anyone ( including experts like
yourself).

I find it very exiting that there actually exits a community that
challenges then notion that the Microsofts of this world are the one and
ONLY approach to technology and innovation. Therefore Dr. Gosh…and to
the many that seems to be caught-up in their own brilliance…you
don’t have to respond to novices like myself. As a teacher I am just
trying to decipher how to approach a dream, that one day, I will be able
to create something new via computer languages. Now, to me, this is
exiting!!!