Ruby on Rails on Mac
At the beginning of the year I started a mental/physical (and technical) journey. I took a leap into the career unknown. After a lot of hikes/snowshoes along came Ruby on Rails on a Mac, a nomadic work-style, and a lot of fresh encounters. Not an easy transition (and still in progress) but so far a rewarding one.
First endeavor since: Ruby on Rails, Open ID, Google Maps, Flickr, (RESTful) APIs, AJAX plus plug-ins: acts_as_commentable, acts_as_rated, acts_as_state_machine, acts_as_taggable_on_steriods, geokit, model_auto_completer, open_id_authentication, restful_authentiction, ym4r_gm, lightbox_helper. Anyway, the result so far is:
It has a long way to go, but it feels in the right direction.Some random observations (attempting to be atypical since this isn’t new to most of you.) In no order:
- Maybe it was just me, but RoR has a steeper learning curve than I expected. I guess the more it does for you (i.e. hides from you) the more you have to learn it’s ways, not the normal transition like . I learned whilst offline. Don’t do that, you need online support. Once there, it is powerful/fun/productive environment.
- Googling for RoR plug-ins/code samples/documentation is still weak, a frustrating endeavor. Sure there are sites that rate plugins but picking a plugin is still a crap shoot. Sometimes it works ‘like magic’ underneath you, sometimes not. Good luck debugging that when it goes wrong/doesn’t scale. I posted one bug report (a comment on a blog) on a plug-in I’d thought was stable to get a response a month later. Worriome.
- I wish Ruby logging had NDC concept (ala log4j) I want to stash UA/referring url/logged in user information. It is hard to debug w/o knowing if something is a robot, a script kiddy, or a real user and what brought them here.
- A Mac really rocks for me to enjoy my ‘nix-fix. Spaces take me back. Love ‘em. Stuff just works, stuff comes installed. I don’t worry about the environment with this platform.
- Ruby’s yield is fun/powerful, despite feeling totally screwy. It works for small snippets (e.g. stuffing HTML or XML into a map or Atom feed) but does it scale for more complex uses? Not sure yet.
- ActiveRecord rocks, Templates are ok, RJS is good, lots of good features in RoR that help the developer
- I never thought I’d do AJAX, I’d mutter “JS is a second class citizen, hard to code/test/debug cross browser”. Using RoR w/ RJS and using Scriptalicious even I can do it. That was an unexpected bonus.
- Ruby has some good stuff, but needs more. If I need to go get a remote image, check it’s mime type, extract EXIF headers to extract sizes/GPS I ought not have to swallow the whole file. Buffered streams please.
- Ruby is powerful for cranking out a website, but immature for managing/operating/monitoring it. I forget the last time I ran some RoR generate, I now write code. It is powerful code, but still code. I fear maintenance problems will face me in the future, I don’t know this webapp can scale (from a coding perspective.) Is it starting to inhibit me, not allow agility? Not sure yet? More to come…
- Ruby on Rails is a good tool, a good paradigm but sometimes a little too low level, and a little to “roll your own or gamble on a under-exercised plug-in”. Perhaps Cake PHP is a direction to explore, a melding of the paradigm into PHP’s richer framework.
Long story short, I am still glad I am on this path (to somewhere) right now; it feels right.