May 22, 2010

All Quiet

I started out to write this post thinking I hadn't written anything for this site in quite some time. Actually, I wrote a post here four days ago. Seems like that was a long time ago. Probably because I've done so much in between then and now. My last post was on Tuesday; let's recap what has happened since then.

Tuesday

Tuesday was the introduction of Neil Patrick Harris to Glee. I'm not much of a television person; Glee's the only show I watch regularly. And NPH happens to be my personal hero.

Naturally, I set up a projector to view the show. And naturally, I almost wet myself. I was extremely disappointed that the producers saw fit to auto-tune NPH (who does that?!), but it was still amazing to see him rock out to Dream On and Piano Man.

Wednesday

Wednesday I dedicated to Google I/O. I watched the recorded versions of the streams as soon as I got the chance, and thought and thought some more about the company I want to work for. Day 1, I thought, was far more web-oriented. It was all about building web applications: HTML5, cloud computing, app stores, etc. Day 2, to the contrary, I saw as being far more focused on devices; namely, Android and Google TV.

I'm squeeing like a schoolgirl over Google TV, because I may actually watch TV again now. Ignoring the fact that I don't have the time for it, this is really exciting. And Android was exciting, for reasons I'll cover in a minute.

Thursday

Thursday was also dedicated to I/O. I've only seen the first half (before the Google TV news) due to availability, but Android already has me super pumped. The cloud to Android sync option (the Push notification done right, as it were) particularly inspired me. It inspired me so much that on...

Friday

I started a new project, android2cloud. I figured if the cloud could push pages to Android, Android should be able to push back.

I was in Rochester for the day, at my brother's commencement, but in the four hour round-trip and an hour or so after the event, I managed to get a working prototype of the cloud side of this. A Chrome extension pings an App Engine server every 15 seconds and gets the latest link attached to your Google Account (using OAuth, of course). If that link is the same as the last link that Chrome opened, Chrome does nothing. If it's different, Chrome opens it in a new tab. There's also a button in the browser that will open the last link attached to your account, no matter what.

I plan to release two versions of the Android app when I (start and) finish it: a free version, and a $0.99 version. These two versions will be absolutely identical in every way. The only difference is one donates $0.99 to me to help me get through college, and (maybe? Possibly? No promises.) send me to I/O next year. Basically, it's a convenient way to donate to me.

Of course, I need to have an Android app to sell, and I haven't even started yet. I want to wait until I have an Android phone I can actually test it on (though I have a pretty good theory as to how the app will work...) Which leads me to...

Today

Today, the glorious day in which I bought my Nexus One. It will arrive Monday or Tuesday. I'm excited.

I also did some work on android2cloud, designing logos, opening sites, and checking policies. I have a request in to Google to use the word "android" in my application, as well as to allow me to use my modified copy of the Android logo in situations where it's impossible or impractical to include their attribution statement at the bottom of a page. Like, for example, in the app, in Chrome, in Google Code, and in Google Groups. Basically, everywhere I use the icon. I feel like Google will come through for me, so long as I attribute them somehow.

So yeah, busy week. And it looks like my next week is bright: Lady GaGa is on Glee, I get my Nexus One, and I get to see an improv show my friends are performing in.

I love summer.

May 17, 2010

Let's Cut Down a Tree, Knowing No One Will Hear

A couple days ago, I read Paul Carr's thoughts on the growing number of complaints against Jobs, Zuckerberg, and Wales, CEOs of three of the most prominent tech companies. As I sat there reading his article, I was uncomfortably nodding my head. I was nodding because most of what he was saying (which, in case you don't read my mouse-overs [you should], was essentially "Shut the hell up, and stop whining.") was absolutely spot on. It was uncomfortable because I really, really wanted to hate Jobs.

I've hated Jobs for a while now. I find his entire style of running a company and producing a product to be unmanageable, unscalable, and unwieldy. Yes, it produces pretty stuff, but we all know to beware the pretty-faced girl. But you know what? I don't have a Mac, for that very reason. I have an iPhone, and am dumping it instead of upgrading. I'm voting with my dollar, and that's where my voice ends. Or so Paul says.

And up until that point, I'd agree with him. I have no business telling Steve Jobs how to run his company. None whatsoever. Lord knows I couldn't do his job better, or even half as well. I'm a big enough boy to admit that; I have my strengths, and running Apple is not one of them. And yet, that doesn't mean I should sit down and shut the hell up. It just means I shouldn't expect Steve to change for me.

Let's talk about how friendship, trust, and recommendations work. My friends know me as the most tech-savvy thing they're likely to know personally until they leave college. Which is kind of cool, but kind of a heavy responsibility. Every time a friend wants new speakers, a new laptop, a new monitor, a new computer, a new anything that has circuits, they ask me what they should get. They tend to trust my opinions, and so I put a lot of thought into what I tell them. Because they trust me to know what I'm talking about and trust our friendship to ensure I act in their best interest, they're likely to follow my recommendations. See how that works?

Because of this, I'm acutely aware of something: Apple products are not for everyone. Just like Windows isn't the best thing for everyone, or Linux, or any other single product. People are complex beasts, and there is no one-size-fits-all product out there. My mother would have no idea how to use a Mac. My R.A. prefers one. It all comes down to how they feel comfortable interacting with computers.

So rather than trusting Apple to know what's best for all of these people, I need to know what's best for them. And to know that, I need to know what there is. And how do I know that?

I know that because people complain. Because people complain, I get a feel for the downsides of every product. Not all complaints are reliable and hold water, but you learn to wade through and get a feel for what's on the money and what's bullshit. I don't have the time to run a Mac and a PC as my main computers, and work a lot in both. I've dabbled with Macs, know how to get around in them, have logged some hours on one, but I'm nowhere near as familiar with them as I am with PCs. So I rely on the reports other people make, I rely on their complaints, to fill in the gaps in my knowledge.

The bottom line is, no, Steve Jobs should not bend to the demands of Apple haters, trying to make a product that makes everyone happy. There's no such thing. But that's not to say people should stop complaining; it's just saying he should continue to not care.

Which I'm sure he's quite good at, as he checks his bank account balance.

May 12, 2010

What I've Been Up To

OK, so I haven't written here in a little while. Not nearly as long as some of my writing dry spells. But I've been busy! Not in the "so I didn't have time to write" way, but in the "so I have cool stuff to share with you guys" way.

First of all, I started with Yet Another Blog. This one is going to be mainly active this summer, and then periodically over the next school year—or that's the plan, anyways. It details my adventures as a Googler In Training (which is a wonderful title I've made up for myself; it basically just means I want to work for Google really badly, and am trying to hone my skills so I can). I'll be learning C/C++ over the summer, and enhancing my skills with Java. I'll also be looking into learning data structures and algorithms.

If any of you readers know about these kinds of things and would like to teach me even a little bit, drop me a line in the comments, or @ me (@paddyforan) on Twitter. I'll need all the help I can get.

Besides my over-publicised attempt to get hired at the greatest company on Earth, I've been busy with finals. But those aren't nearly as exciting, so I'm just going to skip right over that part.

I'm working on a QR-based ticket site written in Java for App Engine, basically because it sounded like a cool tool. I'm focusing on keeping it simple. You log in with a Google account, all transactions are handled by Google checkout, and there are no lists of events or searches for events. It's meant to be a tool, something people link to, not a destination of its own. The basic premise of it is that you can sell tickets to an event, and the user can print them off right from their computer. The tickets have a QR code, an ID number (in case the QR code magically fails or something, you can check from a web interface), and then whatever extra attributes you include. When the QR code is scanned, it checks if that is a valid ticket, reports that it has been used, and then displays any extra attributes, along with the buyer's name and, optionally, picture.

Again, just a really simple ticketing system for lightweight events. Also working on a way to integrate "on-site" or "at the door" tickets with the system. Think I've got it figured out.

I may release that project as open source. Probably will, just because that's how I roll. Look for it on Github, or I'll write a post here when it's ready to actually, y'know, be used.

So there you have it. That's what I've been up to, besides my normal hacking on @spaz and mundane college stuff. Oh, and super-secret Google stuff I'm not allowed to tell anyone about. Like, laws and such. Which makes me feel all warm and fuzzy.

I forgot to mention that.