New layout, rants, and a new project

June 5, 2008

What can I say, Twitter has silenced the casual bloggers. Those who keep it up have a lot more to say then 140-some characters could hold.

So, my work finally provided me with a new laptop, a shiny new MacBook Pro. I probably should have waited until after the WWDC but I’m not expecting any world-shattering hardware released, except maybe for the much unticipated iPhone2. I am, however, expecting some awesome software news, like the rumoured announcement of OS X 1.6 “Snow Leopard”. It will supposedly be mostly security updates and tweaks and will be Intel only. If the last prooves true, this will mark the end of the PowerPC chapter in Apple’s book of CPUs.

Now for some rants. Twitter has been around for a while now and Twitter clients are popping up like weeds after the rain. Except that’s all they are, weeds! TwitterBerry blows. It’s horrible, so pointing the Blackberry browser to the Twitter home page is about the only way to have full functionality and none of the weirdness. Then there are a billion AIR apps that attempt to do Twitter. They all have a giant flaw: AIR! I love Adobe products, but AIR ain’t one of them. I think the ease of development is a blessing and a curse. On one hand it’s easy to make cool apps, on the other there are a lot of half-baked apps by people “dabbling in programing”.

I feel at this time there is a need for a multiplatform client that is:

  1. Fast
  2. Reliable
  3. Checks for Twitter status
  4. Checks for accidental double posts.

Therefore I’m stating an open-souce Twitter client project – BirdFeeder. It will be Ruby-based, with UI provided by the closest native UI to the platform the app is running on (i.e. Cocoa on Mac, GTK on Linux, and QT on Windows). I’ve applied for a SorceForge project page. We will see what happens. I will keep you all posted.


Laptop as a heater?

November 30, 2007

So, it’s getting colder in Fresno, and sitting outside with my crazy dogs in my pj pants is becoming less fun. Fortunately, my company-provided laptop can heat up not only my lap, but the radiant heat also warms my hands. Very nifty! Obviously if one were to use the laptop in temperatures above 40F they would encounter 3rd degree burns. Fun! :)


Giants pushing giant trains!

November 13, 2007

I found this gem trolling the internets. It’s a skit from a British comedy show that showcases a really remarkable level of stupidity. I mean, you wait for it to get better but no. The dialog is brilliant. Enjoy:


Android is here

November 13, 2007

AndroidOn Monday Google Android was set loose on the general population. Android is Palm OS of 2007. Back in the day, Palm went out and tried to unify the mobile platform. One OS to rule them all, and in the darkness bind them… But we all know how the story ends. Google is going about this quite differently. They formed an alliance with the most influential companies of mobile market today and leveraged it all with an open-source community. After watching the demo of Hello Android application being built I firmly believe this will change mobile computing forever. Mobile platforms will become like PCs of today. The biggest deal about this is being able to swap your OS and run any application on any handset. We’ll have cheap handsets that run your basic apps and high-end phones with 3D accelerators able to play Quake. The future of mobile computing is getting very interesting indeed.


Finding Ruby boundaries

September 18, 2007

    I’ve spent a past few weeks doing thing with Ruby that I didn’t think the little scripting language can do (namely SSDP and UPnP). I have to admit that it’s very powerful, though not very well documented unless you bother spending some money on books. This doesn’t guarantee that you will learn about those undocumented features nobody but THE Ruby developers know about. For example the whole Socket family of classes is shrouded in mystery, and if you didn’t know how to do socket programing in Windows/Linux/UNIX you are up the creek without a paddle. For example in order to send a multicast group join you have to pass obscure structures into sock_options function and depending on which platform you’re on this structure changes. But enough about obscure sockets. Let’s talk about threads.

Threads in Ruby (1.8.7) are useless to the point of being unusable. Threads in Ruby does not translate into native threads on Windows, or POSIX threads, or anything that resembles threads in traditional sense. You just get a pseudo-asynchronous execution of blocks that all run in the same thread. It’s all runing in the same thread. You block one, you block all. One blocks up, the rest will just block and leave you scratching your noggin for hours. Awesome!

FYI: Thread.abort_on_exception = true” is your friend.

When using Ruby to build heavy server applications (not Rails, it’s a different story) and attempting to take advantage of multi-core, hyper-threaded goodness of your monstrosity you’ll be suprised to find Ruby huddled in the corner chugging along as if you were running a single core, non hyper-threaded box. It’s comical to watch Ruby max out to 25% usage on quad-core box because the other 3 cores are inaccessible to it. There are arguments to be made for Green Threads (Java used them in medieval days, sometime around plague or Henry the VIII) but last I checked it’s 2007. Yarv (aka Ruby 1.9) will have native-ish Threads implemented so we’ll see how the code runs in an actual threaded environment. For now I’ll rely on multiple Ruby instances and DRb


Engineer + Beer Bottle = FIRE

July 30, 2007

It’s pretty reassuring to know that your boss can make fire using a beer bottle, a few odd sticks, and a piece of rope. So, if we get lost on our annual company hike I know I’m in good hands. :)


Here we go…

January 2, 2007

So, yeah, my dog knows C++. The problem is he can’t type or speak English so this wonderful talent is going to waste. I was going to name this “My Dog Knows More C++ Then You” but I came to the conclusion that the first part of the statement was obscure enough for general audience.

I’m hoping I will touch on some topics of coding, not just C++. There are a myriad of languages out there, each with their pluses and minuses so to focus on C++ alone would mean missing out on great coding practices.