Home Contact Sitemap

Preston Lee

Founder, CEO, OpenRain.com

About

During the day I run OpenRain in Phoenix: a Ruby on Rails development shop. During the night... well... I still have to run OpenRain, but when I find time to breathe, I exhale here. If you'd like to get in touch professionally, don't hesitate to contact me via the OpenRain website.

Peace,

Preston

How To Make Original iPhone Sim Work In iPhone 3G

I live in the U.S. and upgraded from the original iPhone to an iPhone 3G. If you simply put your old SIM into the 3G, however, you will only be able to use EDGE, and the phone will not use the 3G network. When purchasing a 3G model, multiple Apple sales representatives advised me that I would need to either keep each SIM in the phone with which it shipped and call AT&T to swap the phone numbers, or order a new SIM card for my existing number.

Problem: AT&T won’t switch the phone numbers since each phone is still obligated to its own, separate 2-year contract, and ordering a new SIM will cost you $25.

Solution: I physically went to an AT&T store and explained the issue. The sales rep just had to perform some voodoo in his computer system to enable 3G for the original iPhone SIM so it could be used in the new model and access 3G services. This allows AT&T to avoid having to modify any contracts while allowing you to upgrade to an iPhone 3G and use 3G services.

Done!

Share/Save/Bookmark

. 03 Jan 09 | Uncategorized | Comments (0)

Ben The Snowman Picture

OpenRain’s heater when out recently, and it got cold. Property management figured out how to hack the unit into a working state again, but only after some badgering. Ben dropped some not-so-subtle hints :)

 

img_0167

Share/Save/Bookmark

Tags: , , , ,

. 03 Jan 09 | Uncategorized | Comments (0)

What If Ruby Had Final Variables Like Java Or Erlang?

ruby

After a long confusing Ruby debate today at OpenRain on the merits of functional, Erlang-esque write-once-read-many variables, I’m going to step onto the podium and just say it… Ruby should get “final” or “const” variables in a similar semantic style to Java, except at runtime. Rather than ramble on for 12 paragraphs explaining exactly how this might work, read this fictitious Ruby code snippet instead. (Optional: Also check out the chapter on “final” in Hardcore Java.)

Final variables like this are really just an inline TDD mechanism.

Allowing local stack data to be constant provides no functional enhancements to the software, but alleviates the need for certain types of tests by using the compiler and/or runtime to assert certain memory is immutable. The “friend_best” method variant in the code snippet would obviously break most existing Ruby programs, but ups the bar for defensive programming by preventing many common bugs out-of-the-box while still providing support for traditional Ruby variables. At the very least we should have something like “friend_better”. Adding this information to the parse tree will also make it easier for IDEs to provide features more easily implemented for static languages.

TDD/BDD is in–no qualms about it–but we can make our code safer, cleaner and more concise by applying some of the lessons learned by our statically-typed language cousins over the last few decades.

Share/Save/Bookmark

Tags: , , , , , , , , ,

. 01 Jan 09 | Computer | Comments (0)

2008 Year-End OpenRain Reflections

A couple weeks ago OpenRain had a private dinner party for staff and significant others to get to know each other better. Amidst each new wine bottle we talked about friends, family, etc… and discovered that our graphic designer becomes exceedingly funny with each glass of Pino. Beforehand, though, we had an internal meeting to note the goals we achieved/missed for 2008, and our high-level goals for 2009. I won’t go into the details, but the message is clear..

2008 exceeded expectation, and 2009 will be huge.

We’ll be growing.. a lot. Actually, we’ll most likely need to move again before summer. That’ll be an exciting time, but moving is always a massive pain. I do, however, look forward to hosting larger events without needing to borrow space from other suites in the building. Issues with our current lease notwithstanding, there should be plenty of options. We actually already have our eyes on a space, but it’s too early to speculate on.

I’m feeling great about the team and our opportunities in the new year. We *do* have capacity in January we’re needing to fill (December is not a great time to be signing new web development projects), and have a new business development manager (John De Santiago) to own most of the new relationship development process, freeing my time for things which I’m better suited.

With layoffs in Fortune 500 companies continuing to occur on a regular basis, I personally expect education enrollment and new small business start-up numbers to rise. Apollo Group (University of Phoenix) apparently just had it’s best quarter *ever*. American budgets in general, however, are being cut. It’s hard to say what this means for OpenRain’s web development business, but I think we’ll be fine by increasing attention towards marketing and sales activities.

It’s funny to think I felt the same nervous excitement this time last year, but seeing as 2008 went so well, that’s a good sign of things to come.

Share/Save/Bookmark

Tags: , , ,

. 24 Dec 08 | Uncategorized | Comments (0)

Free Cross-Browser Testing

If you’re a web designer or developer, definitely check out browsershots.org. It’s a free, easy tool for grabbing screenshots across browsers and platforms. Let’s hope the site stays supported!

Share/Save/Bookmark

. 19 Nov 08 | Uncategorized | Comments (0)