Stuff in my office

My desk:

Re: IMG_0009
Uploaded with plasq's Skitch!


Story Board:

We are going to start really implementing some Agile and XP Programming practices.  It will probably end up being some crazy hybrid of pure XP and awesome Agile (and, no they are not the same).

story_board
Uploaded with plasq's Skitch!


Books:

Who else spends Friday nights at Barnes?  And, no I have not completely, 100% read through all of them.  But, yes, I have read through most of all of them.

As you can tell, I love me some Pragmatic books.

Re: my_books
Uploaded with plasq's Skitch!

Posted at on 9/26/08 by | 0 comments | Filed under: ,

Top 5 Rails Misconceptions

I have been working with Rails for almost 3 years now in a professional setting. During that time, I have had to convince many people of the merits of Rails. Here are the Top 5 Rails Misconceptions I have come across.

5. Rails is some sort of WYSIWYG editor for web pages.


This one has always baffled me. But, it is true. Every once in a while, I will meet someone that thinks Rails is like Dreamweaver. Huh? My best guess is that they read some buzz article about how "Rails makes building websites easy". Notice I said "websites". There really is no way to combat this misconception other than to just educate this person.

However, do not discount the fact that to many technology people the following is true.

web sites == web pages == GUI == web applications

In other words . . .

index.html == web page
amazon.com also == web page

And, it was probably developed with Dreamweaver.


4. Rails is AJAX.


Web 2.0 is AJAX. And, Rails is AJAX. So, make it AJAX'y. Maybe, this is because Rails started to get popular around the same time AJAX started getting popular. There might be some direct relationship between the two. But, regardless, I hear this one all the time.

Again, you really can't do anything about this except to try and educate. Usually, I try to explain that AJAX is a way to enhance the user's experience, and can be implemented with any number of web frameworks.

Hmmm . . . but, that explaination might be too "Web 2.0".


3. Rails can't scale.


You might be surprised to see that this is not #1. In all honesty, I almost never hear this argument from the people who matter to me (customers, clients and my bosses). I alway hear it from the IT/Ops team, or the DBA's, or the old school Perl/Java/C/C++/insert_whatever_lang_here programmer that sits down the hall.

How this is still an issue is beyond me. In any case, these are the arguments I usually use:

* There are really large Rails sites in production. Twitter (although be ready for the Twitter can't scale arguments), yellowpages.com, scribd.com, all the 37signals products.

* Scaling is usually a much larger architectural issue than just the web framework. Scaling involves hardware, OS's, caching, DB's, proxies, etc. Usually, the language matters very little in scaling.

* And, this is my favorite . . . every (I really mean EVERY) enterprise Java based web application I have ever worked on or implemented was slow as hell. Anyone want to back me on this one? So, what's the argument?


2. You don't need to learn Ruby to do Rails.

I think this early screencast of Rails almost did more harm than good.

http://media.rubyonrails.org/video/rails_take2_with_sound.mov

So, in this screencast, you see a young DHH creating a blog application in 15 minutes with Rails. Lot's of scaffolding and stuff.

Don't get me wrong. This screencast was one of the reasons I got into Rails. But, I thought the same thing. I just need to learn Rails. This is so false. Maybe, if you are creating a 15 minute Blog application, you just need to learn Rails.

This misconception is directly related to my #1 Rails misconception.


1. Rails is not programming.


This is definitely my #1 Rails misconception. I hate this one! Everyday, I have to fight this one.

So, how do I fight these misconceptions?

* Credibility. Be really good at what you do. As a Rails developer, don't be that person who just read the "Agile" book and thinks they can deliver. Read the "Agile" book. Then, you have to do much more . . . usually, this is in your free time.

* Productivity. Deliver quality faster than anyone else. Rails is great for this.

* Adaptability. Sometimes, you just have to make it work. So what if your company's legacy database is SQL Server with some jacked up composite-non-surragate primary keys? Make it work.

* Be nice. This one works all the time. Ruby, and Rails is threat to people. Don't come on like a threat.




Posted at on 9/24/08 by | 0 comments | Filed under: , , ,

Story Card Template for Agile Programming

Here is a story card template that my team will be implementing into our Agile Programming practices.  Feel free to use.

http://www.scribd.com/doc/5968484/Story-Card-Template

BTW:  Scribd renders the page weird in their Flash viewer.  If you download it, it looks fine.

Posted at on 9/12/08 by | 0 comments | Filed under: , , ,

Subversion - Compiling from source

I will assume that you know how to perform the standard ‘nix compile steps. And, that you know where to put the compiled files.

Why compile from source? Why not use a package manager, such as Yum or MacPorts?
  • You are hard core old school.
  • Usually, it is because the package maintainers have not put out the latest (or a specific version) of a package that you need NOW!
Some gotchas with compiling SVN (who would have thought):
  • Prerequisite libraries. Since you are not using the awesomeness of a package manager, which will take care of prerequisites for you, you MUST have required libraries pre-installed. Those libraries can be installed from a package manager, or you could have compiled them from source. It does not matter as long as you know where they are.
  • Out of the box, SVN does not support the HTTP or HTTPS protocol. What?! Yeah, I know. This is the main gotcha. If you do not configure SVN for this, you will get the “URL unrecognized” error, which is what we were seeing yesterday.

Here are the steps:

Install the
APR libraries.

These usually come with the Apache installation. If you have Apache installed, and you still don’t have them. You probably need to install the Apache development files too.

The files you need are:
  • apr-config
  • apu-config
Look in:
  • /usr/bin . . . or
  • /usr/local/bin
For some reason on CentOS, with the Apache libraries installed with Yum, the files are called:
  • /usr/bin/apr-1-config
  • /usr/bin/apu-1-config
Install Neon with SSL support

You will need the OpenSSL libraries installed.
  • ./configure—with-ssl
  • make
  • make install
Install Subversion with HTTP and HTTPS support

  • ./configure --with-ssl --with-apr=/usr/bin/apr-1-config --with-apr-util=/usr/bin/apu-1-config --with-neon=/usr/local
  • make
  • make install
Note: Make sure that you have the correct paths for the --with-apr, --with-apu, and --with-neon parameters.

You can make sure that SVN installed correctly with the proper support for HTTP and HTTPS by running the “svn—version” command. You should see this.

svn_compile_result

Posted at on 9/11/08 by | 0 comments | Filed under:

iPhone Fix - This worked for me

I did the following to fix my third-party applications crashing problem.

  • Uninstall all my third-party applications via the iPhone
  • Delete all my third-party applications form iTunes. I think this is the key step.
  • Do a restore of the iPhone. I'm not sure if this is necessary. But, I did it.
  • Installed a third-party applications from iTunes, not via the iPhone. This worked! Yay!
  • Tried to install from the iPhone. This now works. Yay!

Posted at on 9/9/08 by | 0 comments | Filed under: ,

iPhone Rage

Over the weekend, my iPhone started crashing all my third-party applications. Try to load Twitterrific. Get the nice blue bird logo. Then crash! Strange. Let's try Remote. Same thing! Wordpress? Same. WTF?!!

So, I deleted all of my installed third-party applications. Re-installed them. Still crash! Crap!

This morning (Monday), I decide to give it one more try. Tried to re-install a third-party application. This time, it won't even install! Stupid!

So, before the comments start coming in. I have the savvy when it comes to tech. Probably more savvy than most of you combined. So, spare me the useless comments about how I don't know what I'm doing.

I am on the latest iPhone firmware 2.0.2. I tried a hard reboot. Now, as I write this, I am waiting on my restore to complete. We will see what happens.

It is ironic that I started having iPhone problems almost immediately after having a SUCs session with my team about the iPhone's design problems. It is almost like it knew I was talking bad about it.

Posted at on 9/8/08 by | 0 comments | Filed under: ,