Archive for February, 2008

Cantina Dos Amigos Closed Due to Fire

Brian LeGros | February 24th, 2008 | food  

I try to stay on top of local news but I dropped the ball on this one. The Florida Today reported on Feb 4, 2008 that the Brevard Country Fire Department put out flames at Cantina Dos Amigos. Apparently it was an electrical fire that in the end damaged a large majority of the building. My thoughts and prayers go out to the owners and staff; it’s hard to see to a local business thrive for so long time only to be shut down by an unfortunate accident. Best of luck during your recovery.

TallyHoh Launches!

Brian LeGros | February 19th, 2008 | news  

I want to give a huge congratulations to Tyler and Dan over at Protoh for successfully launching their first product, TallyHoh. TallyHoh is an online feed reader with social networking aspects integrated at its core. The application is built using RoR, supports OpenID, import/export of OPML, and is stocked full of great content just waiting for a user’s perusal and review. Reading, listening, or watching a news item is just where it starts; as a user you have the ability to say if you liked the item (tally) or if you thought it sucked (folly). The idea may seem common place but it definitely has some addictive properties. Funny enough, TallyHoh in its pre-release form was/is all the rage at our office, beating out Google Reader and others as the feed reader of choice.

Dan and Tyler have put a lot of hard work into their product for its launch and I wish them nothing but the best. I would encourage anyone interested to give TallyHoh a shot. Great work guys!

Thanks for reading and not throwing stuff

Brian LeGros | February 16th, 2008 | useless  

Over the last few months I’ve started to notice that I’m actually getting traffic to my blog. I don’t think I’m getting that much traffic in the grand scheme of things, but it’s cool to see that my ramblings aren’t completely useless. In fact I checked FeedBurner today and found that 39 people are actually subscribing to my blog. This is great, but at the same time I need to remind everyone, while you subscribe to my blog, I subscribe to mediocrity and failure. As long as you realize I don’t have anything but low expectations for myself, what I produce will appear to be of a much greater quality.

From the analytics standpoint, I started blogging towards the end of May 2007, and as of today, I’ve reached roughly 10,500 unique visits, my average user time on site is 00:01:21, my bounce rate is 77.92%, and my new visits are 82.32%. Frankly, I’m astonished; I can only take the orange for at most 00:01:00 so thank you to the brave souls who endure. The majority of what people seem to be reading are the restaurant reviews which is not surprising considering the infrequency of and small audience for my posts on programming. That being said, I really enjoy writing up my experiences for local restaurants in the Central Florida area. Anyone who knows me, knows I like to eat. Local joints, especially restaurants, struggle enough to get their feet off the ground; if I can help them get their name out and reduce the amount of chain restaurant abuse in the area, that’s awesome. In fact, recently I’ve noticed that my wife and I are starting to repeat at a lot of places I’ve blogged about. If anyone has any new restaurants they can recommend in the Brevard area, please email me or post a comment. I have a feeling I have a lot more exploring to do.

As for those of you who read my programming posts, thanks for keeping an open perspective with respect to my thought process. I’m currently working on a few posts regarding DSLs in ColdFusion, a revisit of Grails, and different approaches to event handling in Flex. Please consider this fair warning that disappointment may be coming your way if you stay tuned in.

In all seriousness though, thank you to everyone who stops by and takes the time to read my sometimes nonsensical rants. I appreciate your average of 1.3 minutes and look forward to the day when I can provide something for you that makes you want to put in that extra 0.01 minute. Have a good one.

Podcast Rundown

Brian LeGros | February 16th, 2008 | programming  

I spend about 3-4 hours a day driving to work and back, so I listen to a lot of podcasts along the way. It’s taken a while to put together a good list, but over the last year or so I’ve been able to build up a pretty reliable set of shows. I think I’ve really been able to grow as a developer by being exposed to so many perspectives. I don’t always agree with or understand the content I listen to, but at the very least my exposure to that content has helped me learn to take more of a balanced perspective in my career. I also like to listen to technology and science podcasts, but that’s more for fun.

Below is a list of what keeps me occupied on my drive; I’ve tried to include the feed for each podcast as well. Some are updated infrequently, but I enjoy them. If you’re a developer and are interested in hearing others approaches to development, I hope this list offers some help.

Programming

Tech, Science, Fun

G & G Thai Cuisine – Orlando, FL

Brian LeGros | February 11th, 2008 | food  

During acts_as_conference, a few of us decided to grab lunch at a local Thai place that I’ve been hearing my co-workers rave about for months, but have yet to try. Now I’ve tried some pretty great Thai food in Melbourne (I’d recommend Thai Kitchen on Aurora and Wickham), but most of the places I’ve tried in Orlando have left me a little dissapointed. G & G Thai Cuisine is definitely not one of those places.

G & G Thai Cuisine is located next to Jersey Mike’s in the Conroy/Turkey Lake plaza. The restaurant is cozy with a great lay back and modern atmosphere. G & G’s menu has the classic dishes you come to expect from Thai dining, but it’s the twists on those classics that set them apart from their competitors. For some strange reason, I am obsessed with anything pumpkin, so once I saw the Pumpkin Chicken Curry ($9.50), I had to order it. The food arrived within 10 minutes or so and mine was piping hot. The Pumpkin Chicken Curry came with thinly sliced pieces of chicken placed in a flavorful mixture of coconut milk, spices, green pepper, chunks cut from a small pumpkin, and red curry. The meal also came with a large portion of white rice. This was probably one of the best red curry dishes I’ve had in a long time. It is always so hard to find a good balance between heat and flavor when it comes to preparing spicy food, especially Thai. G & G has found that perfect balance; my meal was oustanding. Some others at the table had the Pineapple Chicken Curry and said it was just as good. Someone else ordered the Panang, which also looked really tasty. Did I mention they split the check 7 ways without any issue, because they did, which another plus in my book.

Please keep in mind, I went for lunch on a Saturday, so there were no specials. G & G’s does have lunch specials however, from looking at the menu, and they seemed to be reasonably priced. I eyed the Green Curry ($7) as something I’m going to have to try next time I go back. I definitely will have to thanks my co-workers again for making this recommendation. If you haven’t tried G & G Thai Cuisine, make it a point to do so; I promise you won’t be disappointed.

G & G Thai Cuisine is located at 6700 Conroy Rd, Orlando, FL 32835.


G&G Thai on Urbanspoon


acts_as_conference 2008 : Wrap-Up

Brian LeGros | February 10th, 2008 | conferences  

Overall, I have to say I really enjoyed my first Ruby conference. The selection of speakers was great, the topics were interesting, and the vibe of the community was cool. The keynote presentations were a little far out for me at first, but after some thought I can definitely appreciate them for the messages they attempted to deliver. In fact, I must admit I have always had a stereotype of the Ruby community as being immature when it comes to development and overly focussed on a single web framework. acts_as_conference did a great job of helping me to douse those misconceptions. Also, I ended up winning a book at the conference on Google Maps, Rails, and AJAX, so that was cool; not sure if I’ll use it, but a nice perk none the less.

If I wasn’t always so busy planning for the Adogo, I would definitely try to get more involved in the Ruby community in Orlando, which is definitely thriving. I don’t know if Ruby is where I’ll end up for any large amount of time, but I’m definitely encouraged to work with it and am having fun in the process. Of course, I’m energized from the conference, so I’m sure my eagerness to fail will kick in over the next few days.

Great work organizers and I look forward to next year’s event.

acts_as_conference 2008 : Day 2 – Keynote

Brian LeGros | February 10th, 2008 | conferences  

The conference ended with a keynote presentation from Obie Fernandez. The topic of his presentation was “Mastering the Art of Application Development”. Obie presented the perspective that software development is more of an art than anything else. He went into detail about how mastery requires practice and that a developer, similar to a craftsman or an artist, goes through, or should go through, the stages of apprentice, journeyman, and master. He shed light on a few practices that he felt were myths (e.g. – practice makes perfect may not necessarily be the case if you practice while making mistakes and learn to adopt it as perfect). Obie used the analogy of a painter and the difficulty required over the ages to work with oil paints and their respective tools. He equated this to the evolution of software development and using the right tools when building an application. To my surprise, he also spoke to Zed’s post, showing an ad from the back of an art magazine selling the promise of learning to paint without effort next to a RoR for Dummies book with the word “ghetto?” underneath. In the end Obie focussed on showing us that after the years pass no one will remember if you programmed in Rails or anything else, but they will remember the results of those efforts (e.g. – what Twitter did for communications over the Internet).

Overall it was a good presentation. The idea of walking a career path involving an apprenticeship I think is a very powerful and practical one. Many engineering disciplines require apprenticeship for extensive periods of time before you can even call yourself an engineer. Software engineering as a discipline is gaining traction at universities and with the IEEE but its true acceptance in our industry, short of everyone wanting to use the title, is slow paced. I believe our industry still has lot of maturing to do until we can even begin to solidify what would be involved in composing a true discipline (although the SEI is doing a lot of work towards this goal). Many, including myself, think that testing will be key to some sort of success, but my opinion is probably a bit naive and inexperienced, so take it for what you will. Additionally, please keep in mind that my definition of a discipline is intended to be within the context of specificity. I use it leaving room for variation such that mastery, in terms of what Obie spoke about, can occur for specific domains of software development, not the entire field. Also, I don’t think of mastery as solely applicable to programming, but the software development process. After all, the most “beautiful code” in the world is worthless unless its potential for use can been fully realized and manifested … or something like that.

Great job on your first keynote Obie; after reflecting back upon it, I enjoyed it.

acts_as_conference 2008 : Lessons from the Trenches – Learning from the Rails Bootcamp

Brian LeGros | February 10th, 2008 | conferences  

I skipped the Rich Media presentation in favor of a break, so the next talk for me was done by Charles Brian Quinn on good practices when educating others on technologies with examples given in Rails. The speaker spent most of his time going over a list of 4 things (really 5) that he felt were important to focus on while teaching:

  • What is the purpose?
  • Know your audience.
  • Use relevant examples.
  • Be objective.
  • Teach how to learn, not why.

CBQ, as he called himself, suggested other tips such as getting people involved to double check work, the KISS principle, and utilizing difficult examples to make easier ones more understandable. Charles also gave a nice comparison of his experience while training with developers, designers, and managers from different backgrounds. His comments on designers struck me as really interesting; he suggested that their ultimate goal with respect to programming is to get the job done, rather than understand how. It was good to hear someone else confirm this.

Even though this talk was more geared towards those who take the responsibility to educate others in the community, Charles was able to keep people’s interest. I can definitely see the need for a talk like this in the Ruby community due to its latest boom in membership and so many taking on teaching roles. Good work CBQ.

acts_as_conference 2008 : BDD With RSpec

Brian LeGros | February 10th, 2008 | conferences  

After lunch we came back to Bryan Liles presentation on BDD which he retitled from “BDD with RSpec” to “BDD for Normal People”. Bryan is definitely a kindred spirit of mine, if only in his sense of humor. He was a great presenter and put a great face on the his own approach to TDD and BDD. What I liked about the presentation was his ability to bring practicality into the mix and give his audience direction and a place to start on their test driven journey. In any case, on to the topic at hand.

Brian started out describing his own journey into testing and some of the struggles involved. He pointed out that as most of us begin to integrate testing, many of us are adopting different approaches but still writing poor tests to cover poor quality code. Brian identified that tools can help us in our journey by introducing more clear test names and concepts such as context, but we still have to apply these tools more effectively. He gave the following steps as a basic guide to BDD:

  • Get comfortable with the concepts in TDD.
  • Make it your mission to practice TDD all of the time (even when it hurts).
  • Think of your application as objects expressing behaviors.
  • Create examples of those behaviors [and use them as the basis for your tests].

He expressed that TDD is painful and there is an upfront cost, but that upfront cost is migitated by the quality of the tests you produce and the less trouble you have as the software grows.

On the practical side of things, Brian, although praising what RSpec has done for testing in Ruby, suggested looking into alternatives that work a little better under the hood. He suggested sticking with Test::Unit, shoulda, and RSpec StoryRunner as he’s had the most success with this combination. Additionally, in the questions segment, Brian said he doesn’t have much faith in code coverage tools and only uses them to show a relative change in coverage to confirm that coverage has gone up or down.

Overall, I’ve got a lot of new topics to read on, and I’m sure Dan and Tyler will be happy to see me giving TDD/BDD another shot. Great work Brian!

NOTE: I forgot to mention the most important note from the entire presentation … TDD == BDD, it’s just a matter of perspective. Thanks to Dan for reminding me of this.

acts_as_conference 2008 : Shining a Light on the Dark Magic of ActiveRecord

Brian LeGros | February 10th, 2008 | conferences  

Anthony Eden gave this presentation on the inner workings of ActiveRecord. His approach was a little unconventional diving straight into the source code of the ActiveRecord::Base class. He did a good job of summarizing how AR utilized the different language aspects of Ruby to accomplish its goal. Mixins play a pretty large role in the library which didn’t seem like much of a surprise since I can definitely see their benefit when working with DSLs in Ruby. I was surprised to see that AR has a built in form of caching it uses for repetitive method calls (methods being generated at runtime and explicitly mixed into models to avoid repeat calls to missing_method); I thought this was pretty cool. Overall, I am a pretty big n00b to the world of Ruby and Rails, but from the parts I was able follow, Anthony’s presentation kept my attention.

I definitely still like GORM’s approach to ActiveRecord over Rails’, but that’s Groovy; what about Ruby? Also, what about the issue of working with legacy databases in Ruby? With a little research, Dan was able to show me DataMapper and rBatis which, we both agreed, look like great alternatives in the world of Ruby ORMs for the ActiveRecord and legacy stories. rBatis can even be installed as a Rails plugin, so maybe working with JRuby and Rails in the enterprise isn’t going to be as hard as I thought.

In any case, great talk Anthony! Good to see a fellow Melbourne-ite involved in the Central Florida technology scene.