Saturday, July 31, 2010

Scala: Tweet Tweet Tweet

I'm almost done reading Programming Scala. I've really enjoyed the book as well as Scala.

One of the lead developers is Alex Payne who is a lead developer at Twitter. I'm very impressed with his stuff, but having read the following piece of code from the book, it really makes me curious what the Twitter code base looks like ;)
def saveTweet(tweet: Tweet) = tweets ::= tweet

Thursday, July 29, 2010

Flash: I Like Wowza

I like the Wowza Media Server better than Adobe's Flash Media Server.
  • It costs less.
  • So far, it seems less buggy.
  • Plugins for it are written in Java, which is more pleasant than server-side ActionScript. Server-side ActionScript is very different than ActionScript 3 (which I actually like).
  • The API seems nicer.
  • It has a very nice admin and monitoring system--Java's standard--jmx.
  • The server can simultaneously support streaming the Adobe way (RTMP, etc.), the Microsoft way (smooth streaming), and the Apple way (HTTP live streaming). It supports all three including bitrate switching all from the same source files.
The one missing feature that it doesn't support is SWF verification. It does support something called secure tokens, but I can make a pretty decent argument that SWF verification is more secure (at least for my use case).

Credit goes to Dan Aronson for a lot of this content.

Wednesday, July 28, 2010

Software Engineering: Premature Featurization

"Premature Featurization" is my term for the tendency to implement a plethora of features before they've even been requested by real users just in case a user might want them.

It's related to creeping featurism. Like premature optimization, it leads to difficult-to-maintain code bloat.

Product managers and managers in general are especially prone to premature featurization. When experienced developers themselves fall prey to premature featurization, they may be suffering from second system effect.

To some degree, the opposite of premature featurization is creeping elegance, which is where an existing piece of code is polished excessively at the expense of other factors such as the schedule or real world features.

It should be pointed out that agile software development aims to prevent premature featurization in that it forces coders to code only those features that the stake holders have requested as they request them. However, it tends to be an enabler for premature featurization in that it allows stake holders to successfully request an unlimited number of features since the programmer doesn't have to design a complete, minimalistic, cohesive design ahead of time.

Whereas time management is occasionally used by project managers to organize a developer's time as he attempts to implement a premature list of features, the goal of task management is to constrain the list of features requested to the minimal set possible.

Saturday, July 24, 2010

Linux: Retro Desktops


I like messing around with my desktop. I decided to give it a retro Windows look. I used the Redmond theme, set all my fonts to Monospace 10, used a boring gray background, and tweaked my editor and terminal colors.

Now I know that Windows 2000 didn't use monospace fonts for everything, and it supported backgrounds other than a drab grab, but doing it this way sets a pleasant, calm, nostalgic mood.

What's strange about this 1 AM post is that a) I've been a Linux user for so long that I've never even used Windows 2000 b) I'm using Mint Linux which aims at offering a very elegant, polished look--which I've totally screwed up ;)

By the way, what I'd really like is a desktop that looks like the original Macintosh. That'd be pretty neat looking for this MacBook running Linux ;)

Ok, yes, I probably need to get a life, but I wonder if there's anyone else out there who likes retro looking desktops.

Friday, July 23, 2010

Apple: Cleaning a White MacBook

In a moment of reckless abandon, I decided to clean my white MacBook today. I wash my hands almost every time I use my laptop, but oil from my hands still builds up and attracts dirt. This leads to very irritating grime. Ordinary water won't due the trick, so I decided to tempt fate and use something with bleach. I'm pretty sure that voids my non-existent warranty.

I sprayed some Easy Off BAM Multi-Surface Power Cleaner with Bleach onto a damp paper towel and then rinsed out the paper towel a couple times. I squeezed as much water out of the paper towel as possible, and then I wiped my keyboard, etc. clean. I didn't put the cleaner on the screen--I'm not that brave ;) Then, I took a microfiber towel, wet it, and wiped down the whole laptop. Then, I used a dry part of the same towel and dried it completely.

The wet microfiber towel always does a good job with the screen. The cleaner did a great job with the grime. Some of the keys are still shiny (presumably from hand oil), but it's now very clean. I performed the entire operation without turning off the laptop.

So far so good. I'll post an update if my laptop suddenly melts tomorrow or if the dirt returns within a week.

Thursday, July 22, 2010

An Email Scam

My wife encountered an email scam that I had never seen before. She got an email from a friend's email address:
I'm caught up in a real mess and i need your help. I'm sorry I didn't inform you about my trip,I had a trip to the Wales United Kingdom and a bizarre thing happened to me.I was mugged at gun point last night, it happened at the park of the Hotel were i lodged but thank God i wasn't hurt, the muggers carted away with all my belongings excluded my passport. Cell,credit card,cash and some important documents are all gone. I was able to make contact with the UK Police and i was directed to the Embassy, but they seems to be taking things too slow.I need your help so urgently.. My flight leaves pretty soon but i am having problems sorting out the hotel bills also getting my ticket straightened out. Ineed your help. I need a quick loan of ($1,800) to get things fixed out here,I promise to refund as soon as i get back home.. please reply asap. so i can tell you what to do and how to get the money to me..Hope to read from you soon..
It smelled fishy, but the email headers were legit. My wife decided to call her friend. By chance, she didn't pick up and we had to leave voice mail, which had us worrying that it my be real.

My wife responded to the email saying:
I didn't know you were out of the country! Just to make sure no one hijacked your e-mail account, can you tell me how you know me?
Within a minute, she got a response:
My email was not hacked,l know this sounds weird and you wouldn't believe me,i'm really stuck out here in the UK and it's so devastating at the moment.l wish i could call but i don't have access to phone at the moment ,I have nothing left on me and i'm glad that i still have my life and my passport cos it would have been worst if they made away with my passport.I am full of panic now and the police only asked me to write a statement about the incident and directed me to the embassy,i have spoken to the Consulate here but they are not responding to the matter effectively,I really need your help to get myself out of this place.
I realized that the result came too quickly, but more importantly, we were involved in an actual Turing test ;) Since the email didn't answer the question we asked, we assumed it was fake.

A few minutes later, my wife's friend finally called back. She wasn't in the UK. We told her about the scam and told her to change her password, and we would see if the robot would continue responding. It turns out, she was locked out of her account--it had been hijacked. Gmail has a process to recover a hijacked account, and the last we heard, she was going through that process.

Crazy. I wonder if we're going to see more scams like this.

Monday, July 19, 2010

Personal: Working at Google--the Hard Way

I've always wanted to go work for Google the hard way--i.e. to work at a company and get acquired by Google. Metaweb just got acquired by Google. This is the second company that I worked at that got acquired by Google--after I left. The first was Mochi Media. Ugh.

Congrats to the guys at Metaweb! They have some really exciting technology.