i’ve been working on a Rails app for my site for the past several months. since March, actually
it looks like it’s ready to be used ‘in Production’. ultimately, it’s just a relational editor themed around the way the ancient-yet-functional AftM database is structured. but i’ve been maintaining that database since 1995 by spreadsheet imports. “hey, it works for me”, i thought. “why waste time building something you rarely need.”
first i absorbed Ruby. that was fun. i really like the language, nice & elegant. but anywhere you have an eval() construct, you can abuse the hell out of it. and people will :) . lack of static typing, other dynamic language stuff, the pros & cons thereof. i spent 3 weeks going over the language, understanding its syntax & ‘threading’, etc. i documented it all in assertions, as the gentlemen who wrote Groovy in Action so wisely have taught us. was it an unnecessary time-sink? not sure… but i can now always look back at examples of the patterns (that really work). and wrting those patterns early on in the unit tests helped me grok the syntactic sugar
next i re-wrote all of my handy-dandy command-line scripts. ones that i use for quick file tagging, etc. of S E B’s audio library. i learned plenty of weird stuff, and finally implemented a quarterly report generator for BMI. another “hey, why spend time building a tool…” situation magically resolved by the desire to learn something new
third, i went to build the AftM editor in Rails. i got the models in, full unit testing, figured out about routing and the like. wrote a whole mess of singleton helper instances to supplement the controllers. did i keep up my unit tests? hell no :) . TDD be damned, i’ll fix it if it breaks. i honestly feel quite guilty of having gone all hack-and-slash on it, but i wanted to get done. and if it breaks at some point in the faaar future, fixing it will just allow me to re-ingest the ‘Ruby nature’ of the app and see if i still feel the same way about the way i architected it
for a week there, about a month ago, i was actively switching between Java, JavaScript, Ruby & Rails, Groovy and a mystical little language called Lua on a daily basis. i’ve since cut it down to 3
and it took an agonizingly long time. ‘gonna learn a language, test it out, grok it, re-write some scripts, then throw up a web app.’ i think the most obscure things i actually had to learn were (a) partials and (b) inheritable attributes. routes drove me nuts for a while. but about two weeks ago, i had a nice AJAX-y editing flow & toolkit and the whole app fell together. like, the last 35% took 5% of the time. Rails helped me get there quick, once i got to understand the framework conventions
oh, yeah… wait… and i also ported 1800+ ancient bookmarks into de.licio.us. i was very late getting on that train. but it does what i need to do now. i had to fight tooth & nail with Ridiculous, and API quirks around the privacy flag. yeah, damn, that was a time sink. i forgot about that
so, what… that’s 4.5 months, probably working about 12h a week… that ain’t so bad. i gots me new scripts, a whole new app, and a whole carpet-bag full of obscure framework facts (that i hope i have sufficiently self-documented). but core Ruby language? yeah, i got that covered. the fun tricks about how CR-LFs & parens work, etc
hooray!
now i can do a bulk add of Albums that have been sitting out of the AftM site. that’s the next. and the next after that next is probably some more music to the S E B stream
then i has a whole new project that i’ll tell folks about once it’s ready