Objects - Ruby vs. PHP

I was teaching my husband some programming in PHP (meanwhile, I’m learning Ruby) and wanted to find something he was interested in to use for examples. He is an avid player of the game VS; and I have resigned to a "if you can't beat 'em, join 'em" mentality and started to play too (Geez, I was tired of being ignored!). It’s a pretty complex game, but kind of fun once you learn all the rules.

I found it to be a pretty good problem area for teaching. There are plenty of if/else statements to learn about conditional statements, operators and entities that can serve as objects and interaction between card, player, opponent etc.

I’ll keep it simple, there are few more attributes I could put in this class, but this suffices for illustration of Ruby and PHP.

A basic card has a name, cost, text and id string.

My office needs an ice cream truck!

Ah yes, summer is coming to an end, but those ice cream trucks still come around sometime in the early afternoon. Yeah, I typically notice them on a weekend, at home, just when I am trying to read a good book. They are loud, their music annoying at best and they tend to hang around for too long, waiting for kids to bring their parents' cash in exchange for some over-priced ice cream. The music keeps going while they wait. It's really just about impossible to focus on anything till that truck has moved on.

I want one of those to stop at the office. Every day!

Alright, alright, someone is clearly losing it here. This is obviously a ridiculous idea. We cannot possibly even think about taking this suggestion seriously. The noise is disruptive and loud, nobody will be able to get any work done. Meetings get interrupted, people will goof off taking their ice cream breaks. I just really don't get, why anyone would even think about - Wait, stop right there.

I realize, it sounds crazy.

CodeSnipers Generation-2 [Admin]

Good morning,

CodeSnipers has been growing like crazy. We're steadily getting more and more hits and I consider the launch a success. We have made it into the top 100k blogs on Technorati, so that means someone finds what we're saying interesting... even if they don't agree. As a result, I'm looking to expand the site a bit in selected areas.

Officially, no additional CodeSnipers will be added until the end of the month. But, in order to find the right people early in this process, I am extending an open invitation to be guest contributors. The same guidelines will apply (listed below) and we may not publish your piece, but I will make sure you get feedback. If your piece gets published, your personal blog/website will be mentioned along with a short (one paragraph) profile which you can submit.

Technology in the face of Disaster

I am at a standstill for any interesting php or ruby topics today. Like many people, I have been stunned by the disaster of Hurricane Katrina. So please indulge me in speaking what’s on my mind today. Lately whenever I read any blog any where, I skim quickly looking for any mention of the hurricane, somehow just desperate to see how it affects others.

I felt as I did after Sept 11, 2001. Stunned and sad. I didn’t personally know anybody killed by either. I have some family and friends near New Orleans, Louisiana, they are OK.

The biggest problem though this disaster was communication. What do you do when the power goes out? Everything comes to a standstill. Even with a generator in your home, you still have no contact with the outside world. My generator won’t power the cell phone tower that I would need…or the newspaper press, the television station, the ISP.

Double-Byte Safety Primer

A lot of incorrect string processing goes unnoticed when your software only deals with single byte character sets. Once your software gets used in a Far Eastern locale, there are numerous new problems that can show up, but might still be rare. Understanding the underlying multi-byte string function issues goes a long way to getting your software ship-shape.

I'm not talking about localization, I am talking about just simply having your English program work on Japanese or Chinese Windows. In other words, even though all of your menus, dialogs and message boxes are still in English, you might have bugs because of Far Eastern pathnames and other text that affects your program.

Dynamically Generated SQL Stored Procedures

One of my favorite MSDN articles has been the key to saving countless tedious hours manually creating the select, insert, update, and delete stored procedures in SQL Server 2000 for web applications: Peter W. DeBetta and J. Byer Hill, MSDN April 2003, Automate the Generation of Stored Procedures for Your Database.

Some developers prefer not to use stored procedures for various reasons, but I agree with Douglas Reilly who essentially concludes that if you don't need to worry about switching from SQL Server to another RDBMS, and if some of your procs have complicated processing in them, then generally it is advantageous to use SQL stored procedures over ad hoc SQL.

Micro ISV Mistake #4

This is the fourth in a series of posts on common Micro ISV mistakes. I’ve been using the series as an opportunity to identify where I went wrong and figure out how to get back on track. I’m also hoping someone out there can learn from my mistakes and start out leaner, faster, and stronger.

Have you ever said “We”, when you meant “I”? Have you ever worried what would happen if a customer found out how few staff you actually have?

Mistake #4 is being “professional”.

Makin' Pie

Well, must be the season for wrapping up development cycles. As evidenced by other entries (by Alex and Keith) I’m not the only one looking forward to the winding-down of another successful product.

Only our development cycle ended in July, so we’re a few months late. Sue me.

Personal Brand Matters

Seth Godin mentions personal brand here, but what does it really mean? Martha Stewart, Oprah, and Tiger Woods could tell you all about the subject. Personal brand has long been something for celebrities, sports stars, and high end consultants to cultivate. As developers, should we be worried about personal brand?

Project Post Mortems

Another couple of days and the current cycle comes to an end: We are indeed releasing the next iteration of a product. Of course it doesn't end there, as most software products don't ever really finish. No matter though, it is a nice time to take a step back, pause and evaluate how things went this time around.

It's time for a post mortem of sorts.