Categories
computer

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!

Categories
Uncategorized

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

Categories
computer

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.

Categories
Uncategorized

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.

Categories
Uncategorized

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!

Categories
personal photography

Baby Pictures To Make You Smile

I shot my nephews first birthday party this weekend. If these shots don’t make you smile, you may have a degenerative muscular facial disorder all up in the smilin’ region. Seriously… see a doctor.

[flickr slideshow]

Categories
Uncategorized

Better Business Bureau Racketeering

I received a cold-call this week from a glowing BBB saleswoman representative excited to inform me that not only has my company been invited to join the BBB, but the 45 second Q&A at the beginning of our call qualified us for membership. And we can have the blessing and support of the BBB for the low low price of only $445.

Let’s think about this for a moment.

The BBB is supposedly a not-for-profit organization formed to protect and inform consumers on the ethical status of businesses. BBB funding, however, comes directly from the businesses they “investigate” in the form of membership fees. This means the BBB has a direct conflict of interest. An operational company with a clean record and good references (such as mine) has no need of the BBB except as a promotional novelty, and a company with a dirty record has no reason to pay to the BBB save for “cleaning up” their business record. There’s a name for this type of scheme; it’s called protection racketeering and is the same type of “business” performed by mobs. No thanks.

Complete follow-up email below, though contact information changed to protect the mobsters representatives identity. Please do your own research on the BBB and help spread the word to prevent other startups from falling prey to this scam.

—-

Dear Preston,

I enjoyed speaking with you regarding our invitation to become an Accredited Business with your BBB . You will be part of an elite group of businesses who have undergone a review process and adhere to the highest standards of business. I have enclosed our benefit package for you to review and a link to our website. Your annual BBB dues are $445. (This includes the BBB OnLine Logo!) We accept credit card or check by phone for your convenience. Please call me later at XXX-XXX-XXXX and we can take a few minutes to complete the accreditation information. We are the leader in marketplace trust and we look forward to having your company recognized as “BBB Accredited.”  Thanks again and have a great day.

Xxxxx Xxxx | Business Relations Representative

Categories
computer games

Welcomed To The RRoD Club, Part 3

I sat down 30 minutes ago to enjoy a final quiet hour of gaming before starting my next class tomorrow, and Microsoft kindly reminded me why I no longer use their other computing products.. yet again. First, the damn console insisted on crashing 3 times in about 5 minutes while playing Fable off of Xbox Live Arcade. The 360 just does that sometimes. Yeah.

But then…

Microsoft FAIL. Is there a Frequent RRoD Club or something? I feel like I should be accumulating RRoD miles.

Categories
personal

Sustainable Living

One purpose of my visit to New Mexico last weekend was to see what a self-sustaining single-family habitat in the Southwestern United States would.. or at least could.. look like. Several observations of which those of the region should already be keenly aware…

  • We use entirely too much water. Luxuries such as golf courses in 110 degree (Fahrenheit) heat consume an absurd amount of resources. The Governator officially declared California to be in a drought earlier this year, and Arizona… well… it’s a desert. Maybe we should lay off on the palm trees and grass, hmm? Fighting this hard against the Earth’s ecological tendencies for the sake of luxury is bound to produce the highly inefficient modes of living to which we’ve become accustomed.
  • Solar water heaters and photovoltaic collectors will be huge. Output effecientcy levels are increasing, they are approaching blue-colar affordability due to technological improvements and rebate programs, and fall in line with the ideal of consuming local resources.
  • We eat poorly, and also consume a tremendous volume of costly non-native food. Foods simply lend themselves better to certain regions and we need to be more explorative of regional food options.
  • Gas sucks. We all know it so I won’t go into it 🙁

This is a snapshot of my own macro-economic sustainability opinions, which change rapidly with the times and fall somewhere between ecological conservatism and hard-nosed financial feasibility.

Sustainable American living activists need to focus on three primary goals: (1) significant cultural change in all socioecominic classes, (2) improving sustainability technologies to produce incentives for #1, and (3) figuring out how to reduce the human footprint in economic context to make #1 and #2 plausible. Specific ideas I would like to see pursued..

  1. Focus aggrocultural subsidies away from small rural farms and onto medium-sized, community-run suburban farming initiatives which share equipment and resources. The notion of the independent, middle-American mom ‘n’ pop farm in Smallville will always be romantic, but you cannot ignore the economies of scale. We need to look at the production possibilities curve of farm size vs. output, factor in waste of transportation costs and pesticidal effects, and find a compromise which will allow significantly-sized local farms to produce native or near-native vegitation within a 20-mile radius of urban areas, while not requiring the populous to return to an aggregarian state or douse everything in chemicals. (Not that chemicals are inherently bad: just unnecessary and wasteful in many cases.)
  2. Incentivize large-scale adoption of solar water heaters by artificially raising the cost of traditional indoor tank water heaters and using the difference for solar subsidies. It’s ridiculous to spend energy heating a tank full of water in an empty air conditioned home when you could just put a damn tank outside in the sun for 10 minutes and have magnitudes more hot water for free. Sense make that does.
  3. Incentivize large-scale adoption of household solar arrays by using artificial energy costs to subsidize payments to households selling energy back to the grid via bi-directional meters.
  4. Plausible sustainability change requires working with the existing system. You can blame The Man all you want, but the world is not going to abruptly adopt better principles overnight. Changes need to come gradually–in a way people can slowly accept and adapt to–in incentives facilitated by the government, demand from the people, and interest of the industry.
  5. Ceteris paribus, chose local products and services to keep money in the region and reduce waste.
  6. Recycling costs cities too much. Trashing stuff costs citizens too little. Residents should force the issue with their municipality and compost the sanitary organic waste.
  7. The food industry needs to stop wrapping every last item in a silly little shrink-wrapped cardboard box and sell everything OEM-hard-drive-style. That is, make one box for the display, but sell the product in an extremely minimalist biodegradable packaging. This will be (1) easier on consumers since there’s less trash to deal with, (2) better for the environment, and (3) cheaper for everyone. You can put as many bright colors and wacky content on the display as you want, as well as print on the biodegradable packaging.
Categories
photography

Photography Is A Lie: Creating Compelling Event Photos

When it comes to “good” event photography, it’s a misconception that a given photo is representative of the entire event condensed down to a few well-framed shots. My process is both equal and opposite: to mislead the viewer into believing a few highly manipulated fleeting moments reflect the larger context by pleasing the eye with consciously undetectable lies. Flat-out, bold-faced, deception.

Photography is about contorting perceptions of reality. We want to believe the handful of infinitesimally small glorious moments at our weddings, birthdays and holidays represent the way people felt the entire time, when they really only capture less than 1% of the entire event. Don’t believe me? Watch a wedding video. The whole thing. Booooooring. No one really cares about the 45 minute toast or 15 minute car processional out of the parking lot. We do care, however, about the idea of the toast and vehicle processional and enjoy remembering the initial excitement, just not the long tail of boredom. You, as a photographer, thus have tremendous power to influence others perception of events if you teach your camera to lie.

For example, take this photo..

Yuck. It’s your typical crap run-of-the-mill shot you’d see on flickr, and I don’t feel anything special when I view it. It’s true to reality, which isn’t interesting. Now take this next shot…

Not fine art, but much better: not because the situation or environment changed, but because we’ve lied about several things..

Movement. Look closely for “lines” formed by different objects in the first shot. It’s a chaotic mesh wherein the eye does know what to focus on. I don’t know what I should be looking at so my eyes are jumping all over the place. Am I supposed to be looking at the water jug? ..the dog? I have no idea. But in the second shot, notice how the diagonal line formed by the bottom of the house and the ground is mimicked by the step up to the door; by the dogs front feet; by the direction the dog is looking and moving; by the orientation of the two dogs. The movement of the entire shot eminates from the top right corner and radiates outward towards the other three. I know what I should be looking at and feel like something is happening because we’re created artificial movement.

White balance. The first photo is fairly accurate in terms of of the ambient light quality. The light was slightly bluish, which also happened to match the physical temperature of being very cold. But I don’t want you to feel cold. I want you to feel warm and fuzzy and giddy about the purdy doggy. The second shot feels warm, like a bright, sunny summer day, even though it was nearly freezing and about to rain.

Color. We’re pushed the saturation levels in the second shot to the extreme, but not quite so far as to detect our fib. Skies are not this blue, grass not this yellow/green, and adobe not this orange. Notice how every object has a distinct complementary color theme which is not intruded upon, as well as the exclusion of purple and red in the central theme.

Framing and cropping. By removing unnecessary distractions, we’re left with only the photos core concept to dwell upon. The negative space of the barren wall, sky and ground have distinct textures but are mostly devoid of objects which would steal our focus from the subject. We’ve tried to frame the dogs according to the rule of thirds, and all unnecessary concepts which could have been removed in the moment, have been.

Conclusion

Good photos are in the eye, not the technology, so you should strive to get great images straight out of the camera rather than rely on post-processing as a crutch. All of these concepts can be executed on a modern SLR and often only require post-processing for fine tuning.

Extra Credit Update! Spot the lie in this photo. (Hint: there’s an object in the room which shouldn’t be there!)