views:

121

answers:

4

I'm a Spanish professor & computer groupie. About 15 years ago, I authored in HyperCard a series of verb conjugation programs that are now completely out of date with respect to System OS X. I would like to redo these programs myself because I had a lot of fun doing them last time (mostly I coded while my son played in Leaps and Bounds, you know, one of those places where parents take their kids & let them run wild through the tubes...). Colleagues have mentioned using Flash, Director, and various other solutions, but I saw a presentation on RoR at our SIDLIT conference today, and was inspired. I will be parsing and comparing strings (and there are other features on top of that, but that is the main one), "adding" strings relationally indexed in some kind of database(s). It will also have to handle various foreign characters (accents, upside down question marks, etc.). On top of the main process of the program, it will have to provide a practice vs. test mode, keep track of specific answers as well as totals right/wrong, and print a report. Would this be either easier and/or more efficiently done in RoR than in other languages. I am pretty sure that it will work on a Microsoft server, right? Because I think that is where most of our stuff is. I would be programming either on a Mac or a PC, whichever you think is easier. So, in summary, is RoR the way for me to go with this project? If I have some (little) experience programming in Hypercard and C, should I be able to pick RoR up fairly quickly? What things will I need to start (I already saw something called Redhills foreign key migration plugin, which I assume would be beneficial)? I still have my old scripts from hypercard, however what I would really like to do is to combine all six of my former tense-specific programs into one larger program. I figure that it wouldn't be too hard to reference the individual tenses in some way--could that be a class? Many thanks for any help you can give me on this forum.

A: 

Yes you could use Ruby on Rails for rewriting a hypercard application. There might be easier ways to do your application, but certainly it's fun to learn Ruby and do it like that.

  1. It will run on Microsoft Server (but it's not the best RoR platform).
  2. I wouldn't use plugins in the beginning (except for login). They look easy but normally the make it harder because they extend the api, which makes it harder for a beginner.
  3. Special characters are no problem, Ruby supports utf.
  4. I think, Mac is the better development environment for RoR.

I would use the generate/scaffold-command and a sqlite-database, it's a good starting point.

Beffa
Thank you very much for your response, Beffa. I appreciate your advice. Will I be likely to run into any impossible conflicts on the MS server? (I'd hate to write the entire program just to find out that it won't work on our server; of course, I can also ask our Ed Tech department...)
It certainly will work, but check this how-tos first: http://weblog.rubyonrails.org/2006/5/11/deploying-rails-on-windows-servers kind of old, but still valid.
Beffa
A: 

Not sure how much Hypercard content you have but you might consider this useful.

http://economy-x-talk.com/differsifier.html

Perhaps a useful way to get the data out of hypercard and then use ruby to parse the XML.

Gordon Potter
Thanks for your response, Gordon. I'll check that out.
A: 

I'd agree with the answers mentioned before. RoR will definitely help you go there, but you shouldn't toss a Flash/Flex interface. The great thing is that both technologies complement each other quite nicely (managing the backend-middleware stuff with Rails and imposing a featured and interactive front-end with Flash/Flex).

However, as with everything, go one step at a time. I worked doing some sort of grammar and vocabulary program for my japanese classes while learning Ruby and Rails, and it went fairly good (the flashcards where managed with Flash, for example).

The great thing is you can always try how your application would work on a Windows setup by learning how to use deployment tools that would automatised your process, and keep sending new versions to a prepared hosting environment and test there. Ruby and Rails are mostly well supported on that end, but since almost everyone uses *Nix as a production server and OSX as a development one, sometimes it's a bit forgotten.

What would be great is checking out some book recommendations. I'd go with The Art of Rails and Practical Rails Projects (a bit outdated but a good guide to understand how building a project with Rails works). Most people recommend Agile Web Development With Rails but although I started reading it first, didn't quite catch the whole idea.

After that, try improving your Ruby and Rails skills. The Ruby Way and The Rails Way will help you a lot.

Good luck on your endeavour :)

Yaraher
Thanks for your response, Yaraher. I'm not sure about Flash--it is not a free program, is it? Another issue of which I recently became aware are he possible conflicts server side and, indeed, if the university will even permit a faculty designed program to be placed on the university server...
Indeed, Flash isn't Free. Flex, the framework, though, opened it's SDK, so you could develop applications using Eclipse and their set of plugins without issuesI'd agree that asking first about that on your university would be a nice idea. However, don't let that push back your attempts. Maybe a self-hosted solution of something alike would be a nice starting alternative.
Yaraher
Thanks, Yaraher. I'll check into Eclipse. I appreciate your help.
A: 

Ruby makes heavily use of "objects". This is quite a change if you coming from a non-object oriented background. The thing about objects is, that they can encapsulate state and only work in terms of behavior by sending messages. This might sound a bit complicated at first, but actually makes life a lot easier. In many cases you only need to make your special "version" of your objects instead of writing code from scratch.

As for Rails, it's based on the model-view-controller pattern, with an especially nice ORM mapper. That is the mapping between the "object-world" and the "relational-world", and vice-versa. In principle you get a lot of flexibility of which database you can use. But in practice, I only could tell you about MySQL.

Be prepared to go through a steep learning curves on programming web applications with ruby-on-rails. As a compensation, you can get feedback from one of the nicest communities in the internet...

poseid