In the future, we will be iPhones

June 27th, 2008 by benny

I couldn’t think of a better title. Or maybe it should’ve been…

Why I Think the iPhone is Important

But hey, it's my blog. I do what I want.

Nonsense aside, I truly believe that the iPhone is making great strides in the mobile space. For one, I feel like it is the first smartphone that makes people want to buy one. Have you ever been that excited about a new Palm smartphone (maybe except the Centro, which came out after the iPhone)? There have been some pretty cool phones, especially HTC ones, but the exposure of those are limited to gadget freaks. As the iPhone gains popularity, the mobile platform will be more widespread and available than ever.

In addition, I feel that it is improving the state of mobile platforms not only through sheer proliferation, but also giving people a great platform to develop on.

“The big advantage Apple has with the iPhone is that they control the entire product, top to bottom. The case, the chipsets, the OS, the user interface.”…. “Google’s dependence on hardware and carrier partners puts the final product out of their control — and into the control of companies whose histories have shown them to be incompetent at design and hostile to users.”

Now, I’ve heard many people whine that this is disadvantageous to the user. Yes, you’re at the mercy of Apple. Yes, it’s a closed SDK. But the major advantage of this is that because the specs are exactly the same across all iPhones, superior applications can be made for them.

I was really excited about Android was announced. It was a great idea. It has become apparent, though, that this model is flawed. Why?

Developers working on android apps are put in a position where they need to guess and program for different physical UI scenarios (none of which actually exist in the wild, yet):

Does the target phone have physical buttons?
What is the button configuration?
Does it have a touch screen?
What about different resolutions?
What sensors do you code for? camera? accelerometer? proximity? touchpad?

[via]

As an Android developer, I feel like you have to take into account of these factors. You need to degrade gracefully, have switches for a bunch of features depending on hardware. I feel like you can make a leaner, more powerful, robust application when you know what you’re working with.

Combining a visually superior UI and a consistent development platform, iPhone and iPhone apps will become wildly popular and push the mobile environment to the next level.

Shabowza.

3 Things I Love About You, Firefox

June 24th, 2008 by benny
  1. You don’t crash (yet). Thank you. That makes me happy.
  2. When I move you onto my second, smaller screen, you know this. You readjust, and I appreciate that.
  3. You finally understand me. When I zoom, the pictures should zoom too, not just the text. You really know my soul .

PS: Laura, this does not change the way I feel about you.

KISS: Keep It Simple Stupid

June 22nd, 2008 by benny

Being a click-highlight guy, I was very intrigued when I read about Awesome Highlighter.

Awesome Highlighter is a company that provides a tool that enables you to go to a website and highlight information to save for later or share with your friends.

Here’s what TechCrunch had to say about the site:

Awesome Highlighter have focused on a simple task, and executed on it very well. Some of their competitors have overly complex processes that require a lot more user involvement than a simple and familiar highlighting and note making procedure.

I feel like that statement can be applied to any most genre of websites, and can explain why the successful ones succeed, the other ones go the way of the deadpool. I’ve commented on the success of Muxtape compared to other “mixtape” sites here.

Less is … less (that doesn’t mean bad!)

Creating a simple solution to a problem generally means having less of a feature set than other websites. And contrary to conventional thought, thats a good thing. I feel this is because people like to do what they want to do with the least possible resistance. One example of this happened a couple years ago at Columbia:

CU Community vs. Facebook

A few years ago, there was a website for the Columbia community aptly named CU Community (link to founders site). CU Community was a website that aimed offer a journal feature for blogging, submit news, and allow students to showcase their artwork. You could also request people to be friends to be a part of your network.

Although the CU Community and Facebook weren’t exactly the same type of website (CU Community was more of a mini-Deviant Art for students), I feel like in many of the students eyes, they were in direct competition. It was a way to connect friends on campus.

At the time, Facebook was in its original form; a simple website where you could be connected with friends. Back then, I don’t even think they had the “Wall” application yet.

For a while, the two sites were gaining popularity on campus, but eventually Facebook won out. There are many reasons for this, but one major reason is that Facebook had a clear message of “we are a social network.” Conversely, CU Community was a place where you could upload artwork, you could blog, you could create a social network with friends, but there was no real focus. There were just too many features on the website to focus on just one.

Reading

This idea of doing one thing and doing it well has been around for a long time. The Unix community has long held that ideal. From The Art of Unix Programming:

Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new features.

And more recently, 37signals wrote in their Getting Real book:

The answer is less. Do less than your competitors to beat them. Solve the simple problems…

This isn’t to say that adding features is bad. Of course not. But don’t add features if it doesn’t help solve the problem.

new bwong.net

April 30th, 2008 by benny

For the two (rss) readers of this blog (according to my feedburner), exciting z0mg 1337 soop3r h4z0r n3wZ!! THERES A NEW BWONG.NET.

Yeah, I know, I don’t care either.

But I’m going to talk about it anyway. So the other day I thought “instead of sitting on my lazy ass, maybe I’ll do something productive,” which lead to the new bwong.net. Over the years, I’ve had grandiose ideas of what bwong.net would be. I could have a lot of things like projects I’m working on, books I’ve read, pictures, videos, A WINDOW INTO MY SOUL, peanuts, music, tiny kitten, and the like. Then, I realized that was all ridiculous. Why would I need a whole complicated website for myself? I have at most 3 things that are interesting about me, and those could be summed up in 1.734 sentences.

So I opted for a simple, straight to point design (if you can even call it a design). It has all I really care to share about me on the internet, and points you to places where you can browse if you’re intruiged. The only thing that is a bit interesting about the page is the “I currently dig” thing. It has nothing to do with digg, but is kind of a weird love child between digg, twitter and my tumblr.

So I wrote a quick little script in PHP do keep these little snippets of things I’m interested in, links I’ve found, categorized with little tags. The script only took an hour or two to write and couldn’t help thinking of DHH’s post about the Immediacy of PHP. Anyway, if anyone is interested in how I did it, it might be fun to write up, but only if anyone cares.

Anyway, that’s all. Enjoy, and I don’t care what you think, I think its pretty.

Removing stale Ruby on Rails Sessions on Dreamhost

April 10th, 2007 by benny

Being new to Ruby on Rails, I didn’t really understand the whole session business and was caught off guard when I looked into my tmp/sessions directory. I found upwards of 20,000 Rails session files. After poking around, there are many different ways to store these sessions (and alter them) and ultimately decided I’m too lazy to change it from the default session storing.

I had found this code snippet which allows me to remove stale Rails sessions using cron. However, on Dreamhost, cron does not have an environment so you have to tweak to the following:

* * */4 * * /usr/bin/find /home/benny/ -name "ruby_sess*" -cmin +6000 -exec rm \{} \;

How do you add it? ssh into your dreamhost machine and enter the following line:

$ crontab -i