andyman’s posterous

creating delicious apps for a better world 

Thoughts on the Aloha on Rails conference (Part 1 of 2)

I had a great time at the Aloha On Rails conference (Oct 5 and 6), getting to meet other Ruby on Rails developers and listening to the speakers.  It was great being able to see the people behind some of the blogs I read, or gems/plugins that I use.  I really really hope that this becomes an annual event.

Here are the top pieces of takeaway value that I personally got out of the conference from Day 1 (for a description of each session, see Aloha On Rails Sessions). I'll write more on Day 2's sessions in another post.

From Chad Fowler's keynote: Passionate Programmer:
  • A lot of developers hate having to do marketing. (like me) But marketing is a moral imperative. If you believe that you have a great product or that you have a great service to offer that will be of value to others, then you're cheating others if you don't tell them about it.
  • What are you spending your passion on? As passion drains away, execution drains away.
  • The problem with inspiration is that it is not consistent. You need to systematize it.  Calling software development an "art" is just an excuse to not systematize it.
  • The framework for succeeding in the software industry is: choose market, invest, execute, market, systematize
  • Something that I thought was odd was that Chad said that he wouldn't do programming if he didn't get paid for it.  I love to program, and my favorite projects have been the ones I don't get paid for. And there's all the developers who truly enjoy doing open source.  Chad does say to practice though (Code Kata and Ruby Quiz), but I guess he means it with the goal of practicing so that you getting paid more later on.

From Blythe Dunham's session: Hey is that your database crying?
 One group of tips I was reminded of is: While Rails does a good job of doing validations, it is useful and safer to also put some of those validations in the database as well, such as having "not null" columns, using unique keys, and default values right in the migrations.

From Greg Pollack's session: On the Edge of Rails Performance
I pretty much got my full registration cost back from the value of this talk. Greg went over 9 awesome plugins/libraries for rails performance and optimization. They are listed here:
Presentation Notes « Envy Labs

From Marty Haught's session: Lean Teams - How To Do More With Less"
Essentially just stay focused on adding nothing but value, learning from the users, maximize flow/minimize effort, and ship features when ready. Also he introduced me to the "kanban" system which is an agile methodology which seems to increase the flow of value by limiting the number of works in progress. Here's the link for kanban: Limited WIP Society - Home of Kanban for Software Development

Desi McAdam's session: Dragons, Riddles, and Rails Applications
One practice I haven't heard much of but makes a lot of sense is: "Keep explaining to the client what you were doing for the client." This is especially useful when the work doesn't involve changes that are apparent/visible to the client, such as rescuing/refactoring nightmare legacy code so that it can be more maintainable or enhanced.

Pat Maddox's session: Domain Driven Rails
  • A good metric of code quality is WTF's per minute when someone is reading through the code.
  • Check out the resource_controller plugin
  • Sometimes ActiveRecord callbacks (after_create) can make it harder to follow the code.
  • Sometimes moving things from the controller to the model might may testing slow/hard and code hard to follow (ex: an after_create activation/verification email delivery for a User model), in which case a service class would be more appropriate. Look at alternatives to callbacks: service classes, command objects, event handlers
  • Stuff that goes in the <title> tag should really use a yield and content_for, rather than being set in the controller or model, since this really is part of the view.

Yehuda Katz's session: Rails 3 Public API
In Rails 3, some of the big long methods are being broken down into smaller parts, which means it can be more easily customizable. We'll be able to get stripped down "metal" versions of many of some of the fat bloated classes and choose which modules/mixins to put in.

Michael Nieling and atthew McVicar's session: You Don't Need A Logo
  • Details matter, be consistent, design is never done
  • Design and details differentiated Starbucks, iPod, and Flickr from their competitors who had similar producs. They had the best design and looked at all the details of the entire experience.
  • Design stewardship - everyone needs to be involved in complying with the design. Have a Design Usage Guide. An design needs to be at almost every point of the process.
  • When using a design agency, get them to explain/justify every design decision, and provide you with documentation. Have to be able to justify how it is delivering actual value, rather than just based on "taste".
  • Most people can't tell the difference between good and #1 (Chad vs Kelly Slater when surfing), but can tell between a beginner vs good.
  • Get the client to tell the "what" and the "why". We'll figure out the "how".

Panel session: Is Agile Too Slow?
  • Identify your sacred cows and question them (always write tests for everything? etc)
  • Sometimes putting together cucumber scenarios helps out to flesh out requirements. They let you know when you are done.
  • Selenium - lets you test the UI
  • When is hacking (going without tests) OK?  "If you're not getting paid for it", or "at the start" if you don't know if the project/prototype will go forward

Here is part two.

Loading mentions Retweet
Filed under  //   Aloha On Rails   Ruby On Rails  

Comments [0]

Just started twittering

I've just started using Twitter. I keep hearing that this is something freelancers and web app developers just have to do, but I still don't "get" it yet - what's all the fuss about it, compared with Facebook? (I prefer "friends" vs "followers") In my first few minutes of using Twitter, I get the following page from Twitter:


WTF? Just when I thought Rails could scale! At least it is a nice error page.

Loading mentions Retweet

Comments [0]

The 5-minute bread recipe does work!

It's been a while since my last post, but that 5-minute fresh baked bread recipe in my previous post does work!  It's just too easy and too tasty. It works fine in a bamboo steamer too, to make chinese steamed buns.

Yesterday I just bought my third 25 pound sack of flour from Sam's club ($7.32). That is in addition to another three 10 pound bags of flour I've gotten in the past few months because I didn't want to haul a 25 bag sack of flour home (I'm car-free).  That means I've baked over 80 lbs of baked goods since June for personal family consumption!

Loading mentions Retweet

Comments [0]

Fresh baked bread in 5 minutes a day

I gotta give this technique a try!


Five Minutes a Day for Fresh-Baked Bread

Loading mentions Retweet

Comments [0]

Interesting Articles

Comments [0]

Articles

Comments [0]

Trash after the rain

Here's the trash strained out by the exit to the Ala Wai Canal after a big rain this past weekend.

Can you spot:
1. Leather couch?
2. Big Foam block?
3. Waldo?
 
One time there was even an entire queen-sized bed floating in there.

Loading mentions Retweet

Comments [0]

Articles

Here are some interesting articles I've read recently:

Web Development:
10 Web App Tips From 8 Inspirational Speakers
10 SEO elements all websites should have
Useful guidelines to improve CSS coding and maintainability
Creating A jQuery Plugin From Scratch

Freelancing:

Interesting:
7 Reasons Leaders Fail

Loading mentions Retweet

Comments [1]

Mutant Siamese-Twin Bananas

Here's a conjoined-twin banana. The two bananas' skins were joined together into one big mutant conjoined banana, but the inside was normal, and it tasted normal too. I put off eating it because it was so unique, but I was hungry, so that was the end of the twins. I bet we'll be seeing more of these mutant fruits as more and more chemicals go into the environment.

   
Click here to download:
Mutant_Siamese-Twin_Bananas.zip (777 KB)

Loading mentions Retweet

Comments [0]

Articles

Here are even more articles I've been reading through RSS:

Web Dev (for Wanni):

More interesting tech:
Lifehacker Faceoff: Battle of the Thumb Drive Linux Systems
1000+ FREE High Resolution GIMP Brushes
Elements of Ruby Style

Loading mentions Retweet

Comments [0]