1 Year at Google Already?!?!

Hard to believe one year ago today I was starting orientation in NYC Google office. What a wild ride it has been.

People ask me lots of things about working at Google – and to be honest a year in I still feel like I’m the lucky dog who caught the car. But I figure a little post might help articulate some of the awesome and challenging things I’ve run into this year.


  • Imagine the best people you’ve ever worked with in your career – now imagine the entire company is made up of those people. Thoughtful, super smart, hard working and so far really nice.
  • Free food – and it is pretty darned good! My first day on the job I had prime rib for lunch. That is hard to beat.
  • Free coffee – like there are baristas on a bunch of the campuses, and coffee maker machines that make lattes on pretty much every floor
  • Micro-Kitchens – snacks, coffee, water, etc, always within a short walk of wherever you plop down
  • 60 minutes of massages on site each year!
  • Great engineering culture . Always focused on gathering data to back up assertions – upbeat, but with an engineers skepticism for all the things
  • Nice dev hardware – I have a Macbook pro and a Pixelbook and a 4k 32″ monitor. They have loaner laptops when u need a spare you can just grab off a rack and log into.
  • Chromebooks – no seriously. I can do like 99% of my job from a pixelbook. I’m kinda amazed, but I can code in the cloud on the rare occasion I need to code. My life is crazy easy to switch computers now. I grab the machine that fits my situation and go.
  • Amazing tech to work with and provide customers – GCP still amazes me at times. Things like BigQuery, Cloud Spanner, and Anthos are just the best in their category and kinda like tech-magic. And the datacenter network, and systems management behind it all is simply amazing.
  • Strong focus on diversity and inclusion of all people in all situations. It isn’t perfect in implementation by any means, but it is constantly trying to improve, which is pretty great IMO. Everyone here will go out of their way to make an accommodation for you for any reason. Kinda important when you have been dealing with depression and going thru a divorce like I have been this last 8ish months.
  • Amazing Customers – I get the opportunity to talk to some really really cool companies doing some cool stuff, and help them grow and expand into the cloud while modernizing and transforming their culture internally. They are the biggest reason I enjoy getting up each morning.


  • Hard to work at a company with a focus on relentless pursuing excellence, and filled with top talent, while you are dealing w/ depression and going thru a divorce. No matter how accommodating and understanding your bosses are, there is no where to hide, and no way to coast and ride out the tough times. I’ve been super lucky to have understanding bosses and coworkers, but it takes its toll on me knowing I’m not 100% living up to my potential in the organization. In past jobs I’ve been able to ride out a depression spell with at worst a minor bump in my otherwise good performance reviews year-over-year. Much harder at a company like Google, and doesn’t help you get out of the downward cycle. I’ve been learning a ton about myself and new strategies for building myself up in the midst of this – but there are rough days for sure, where I feel like I’m letting someone down no matter how hard I try. This is the most true here of anywhere I’ve worked in my career so far.
  • You have to self-promote inside the company to feel like you are keeping up. It is kinda the norm, because we celebrate a lot of the wins and personal achievements, and I like that. But for an upper-midwest preachers kid it is always hard tooting my own horn, or asking people to toot a horn for me. But that is the culture inside the company (to celebrate wins – not to be a arrogant in your self promotion)
  • Sales is harder than I thought it would be. Coming from consulting I knew I would have a learning curve, but it was steeper than I thought it would be. Some of that I’m sure is my life situation, but generally speaking Sales is trickier than I thought. And the pace is even faster than I imagined it would be vs. consulting. One of my key learnings, and a hard thing to get over coming from consulting, is not being the expert in everything. So instead of researching answers to questions I don’t know like I used to, I do a quick search for an answer, and then focus on finding specialists to help and speed of response. I’m used to having more time and needing to respond myself, so this has been a big change in how I intuitively interact w/ customers.
  • Working remote at Google is oddly out of sync w/ the company culture. Google is an office culture – believe it or not. You are required to work out of an office most of the time. You can work remotely or from home part of the week if you normally work out of an office, so I’m talking more about being 100% remote employee. To have a completely remote designation, like the folks in MN do, is far outside the norm, except in sales. You miss a lot of the goodness of being in an office being remote (like the free food, and tech support), including the day-to-day people interaction. Being an extrovert this has been tough for me on top of the deficit just in terms of how office-centric Google’s overall culture is. I try to be in Chicago almost every month for at least a couple days to help offset that. Since I started regularly taking those trips it has helped a ton. I still haven’t used my massage minutes when I go tho – I always forget to book ahead so I can line up my trips to Chicago w/ the therapists on site there.
  • Things change a lot – and that is coming from someone who likes change. None of the changes have been a huge issue for me – but sometimes with the growth of Cloud (in general and inside Google) it feels like all you can do is hold on and accept that 6 months from now, things are probably going to be different. I kinda like it honestly – but it sometimes makes keeping procedures and product features straight in my head particularly challenging.

So, overall, I love it. Plan to stay for as long as I foreseeably can. It is basically where I’ve wanted to work my whole life and I couldn’t be happier being here now that I’ve settled in.

Hopefully when my personal life settles I’ll be able to learn how to excel at this job. For now, I’m loving all the learning and growing, and being challenged just about every day to be a little better by great coworkers, bosses, and customers.

Welcome Oliver Ezra Catlin

1 Week ago today – 11/4 – we welcomed into the world the newest member of our family. Oliver Ezra Catlin was born at 7:06 in the morning.

He is a pretty chill little guy after a week. He seems very curious when he is awake, and has the best cheeks – very squeezable.

Oliver, Pearl, and Dad
Oliver, Pearl, and Dad

We couldn’t be happier to have him here, and look forward to seeing what kind of boy and man he grows into.

Goodbye Trane, Hello Exosite

Friday I said goodbye to Trane and tomorrow I start a new gig at Exosite.

Trane is a wonderful company to work for on so many levels. Amazing work-life balance, great benefits, good products in a stable market.

But for a while I’ve been balancing some future-facing project work I initiated, with a sense that I wasn’t going to ever be able to push things as fast as I wanted inside of our engineering organization, or our product group. Also, I’d been wondering for a while if I was selling myself short being disconnected from the end-user, like you can get inside an engineering group internal to a big company.

Exosite on the other hand, is a smaller, startup-ish company in a similar segment as Trane (maybe even overlapping in some senses), with a relatively flat org structure. It is growing, and looking to decide how things are going to work as it gets bigger.

Exosite, makes an IoT (Internet of Things) cloud platform that serves other businesses. This is a way for other companies to get an “online” place for their connected devices to dial up to – all without having to develop their own expertise in setting up servers and building online platforms/backends.

I’ll be helping the “professional services” group – which is the team that works with the customer get their devices on the platform. It should be a fun and interesting stretch for me – and I will be interfacing with the customer early and often. There are a ton of cultural things that line up better with my personal bent than anywhere else I’ve worked. This will hopefully help me push myself into a growth period since I won’t be arguing for things that seem so basic to me.

The rest is still to be seen, and I’m hoping for great things in this next chapter of my career with Exosite.

And as the previous chapter closes, I’m also so thankful for all the talented, dedicated, and thoughtful people at Trane. They helped me develop and grow in what a mature and effective software development team looks like in a well-respected, stable but growing, blue-chip mechanical equipment company.

How the Time Flies

Wow, it has been a long time since I blogged.

I don’t have anything right not terribly compelling to post about philosophy or technical stuff, but I figured at the very least it might be nice to post about what I’ve been up to the last couple years.

I switched jobs in 2012 to be a software developer (yay!), and I’m mostly loving it. The technical aspects and workflow fit me better then my controls/EE work did I think.

We released an app I helped finish up, it is in the play store and app store – it is for Trane Commercial building and automation systems, and is called BAS Suite.

Then I got to help architect and build, and for the last few years improve and add on to, another sorta-mobile product called Tracer Concierge.

It has been a crazy and rough few years for me on the family front. Having a kid opened up and exposed existing holes in my relationship with my wife. The good news is that with the help of some really really great friends and a decent counselor we both feel like we’re over a lot of those hurdles, and filled in a lot of the relational holes that had been discovered.

If you follow me on social media you know that none of that stuff with my wife was helped by my Dad almost dying in 2014. He went through a pretty rough surgery where he was basically looking like he wouldn’t make it – but the hard work of the surgeon and staff, and I believe the will of God, pulled him through. You can read more about that on his Caring Bridge site

The Kid is 3 1/2, and a full blow threenager, and she is hilarious most of the time. We feel pretty lucky to have her.

I’ve been laying a little low at church in a lot of respects. Trying to just navigate life partially, and partially because I picked up one pretty big leadership role – I am on the lay-leader preaching team. And it is awesome!

The nuts-and-bolts of it is that we meet once a month, discuss how we are improving our craft of public speaking, and then someone from the lay team preaches about once a month. That means I preach 2 or 3 times a year.

So far, I’ve gotten to speak twice, and I’ll be jumping into the pulpit for my 3rd time on November 8th. If you want to listen or check it out, click on over to the podcast, or here are links to the specific talks I did:

And that is a broad overview of what’s new.

Obligatory 2013 post

Well, I went an entire year without writing a post. But believe you me, I made up some great ones in my head.

The year has been an interesting one. Challenging in a great many ways, particularly at home. But really great and exciting in some other ways, particularly at work.

I did work some on the next version of my Modbus app that I talked about late last year. Never got super far into it – one part analysis-paralysis, two parts raising a toddler while trying to make sure my wife still knows I exist.

Other miscellaneous 2013 trivia and happenings from the Catlin home:

  • Pearl Turned 1, and started talking. She now says entire sentences – mostly “Daddy I need this.” when she wants something from me that I have, or that she can’t reach.
  • My first major project at work officially released to the Android and iOS stores. My second big one is I think internally released, and will roll out to our national account sales teams shortly.
  • I learned how to cross-compile the linux kernel for our hardware, and get it to boot.
  • I met my niece (my sister-in-laws daughter) for the first time.
  • Went to Cleveland for my aunts wedding – saw a bunch of family that I haven’t seen in a long time.
  • I built a new workstation/server PC, after a decade of faithful service, I felt like it was getting irresponsible to rely solely on that machine to keep my families photos and videos safe (and yes, I have cloud backup too, but still).
  • Also at the same time I was building that new server my HTPC’s motherboard died, so I had to replace it somehow. On a very tight budget I squeezed both together, and managed to accomplish a new HTPC by buying a Raspberry Pi and installing OpenElec on it (which is a linux distro tuned to boot straight into XBMC).
  • My best friend moved back to the US from Germany – Iowa to be exact. And my Sister-in-law moved to Iowa too. So instead of having no place to stay on the way to my parents house, I now have to pick between two really great options. And my best friend isn’t 7 hours offset from me, and in another country.
  • Went to the boundary waters for the first time in 20 years with my dad. (Photos are on Google+). Found out I wasn’t as young as I used to be, and neither is my dad (though to be fair – when he was 32 he could have probably kicked my current selfs ass). But we came back in one piece, and had a really amazing time together.
  • Braincell reunion at Rob’s wedding – which was a classy affair. Especially for the smelly kid. We drank, ate, drank, sang some songs, drank, danced a jig or 5, drank, and had wonderfulness well into the wee hours of the morning. And then paid the parents price when we had to get up to drive to the burbs to pick up our kid (from the always lovely Greg and Julie who graciously sat for us) in the morning.
  • Ate a lot of great food, drank a lot of great drinks, and had general merriment with the greatest friends a guy could ask for. There are too many of you to list everyone, hopefully this blanket statement will suffice. Thank you every one of my dear friends, neighbors, and relatives, for another great year in which I didn’t die.

And now I’m raising a glass (no really – just picture it in your head if you have to) to another great year in 2014 – may it be even more awesomer than last year.

Ubuntu 11.xx is busted on my PC, and wasted my last week

Despite the ranting title, I actually have a technical description of my problem, and then what went on. This is half for posterity so when I go to upgrade again later I won’t have to curse at my computer and the ubuntu forums, I will just be able to read my own blog.

Upgrading to 11.04

Ubuntu Linux upgrades every 6 months. A few months ago I read that 11.04 was buggy, and I shouldn’t bother upgrading until that settled out. So I waited until last month. Then I upgraded my server in the basement. My server holds media files and backups (now with super TimeMachine powers for backing up Macs), acts as my side-project web development server/code repository host, and records TV for me using MythTV.

Then I have a smaller, lower-powered, but able to play video at 1080p computer hooked to the TV upstairs, that streams TV from the basement server, or from hulu or whatever (except Netflix, but don’t get me started on how stupid it is that they don’t support linux).

So the server upgrade went flawelessly despite running on pretty outdated hardware – I built that machine in 2002, and haven’t done much to it since then.

Then another month goes by, and I decide to upgrade the front-end computer connected to the TV. This is a DISASTER.

As soon as I install the latest NVIDIA driver to be able to watch the video at 1080p and reboot, I get a blank screen. I try tons of stuff – tutorials, troubleshooting guides (this is apparently a pretty common problem), I even upgrade to the beta release of the upcoming version in October – Nothing.

So after days and days of spending time on this, and not being able to watch SYTCD or Dr. Who for a couple weeks, I give up and re-install ubuntu 10.10, which works flawlessly.

What do I think is going on from a technical standpoint: In the 2.6.38 and later kernels the bootloader can pass a parameter to the kernel to set the graphics mode (i.e. color depth and resolution), and that way the kernel can throw up a nice boot animation or graphic that is in the resolution you ultimately are going to run on the desktop. This avoids the black flash that happens on older windows and linux when the driver finally gets loaded and switches to the resolution – also called flicker-free booting. The program that does this nice hand-off or whatever is called Plymouth, which when I read about it over on http://www.phoronix.com and about how it would do all this wonderful stuff I thought it was great. But, it appears that it is pretty broken – especially with the proprietary NVidia linux drivers – which are the drivers that do all the neat stuff that I bought the NVidia motherboard to do (i.e. decode video super awesome w/ almost no CPU usage).

So, as I understand things it works like this when you boot Ubuntu:
Grub 2 loads and lets you select an operating system if you have multiples installed (I don’t), or lets you select failsafe modes or older kernels.
In the entry for the Kernel / OS it has some stuff about passing mode info – also there is some default that tells grub what mode to be in during this (so even your bootloader can looks less ugly).
When you start booting the kernel it loads your video driver and passes it off to plymouth to draw the pretty screen so it doesn’t flicker.
Then once that is all fine and dandy Xorg server (which is previously what set your video mode and caused the flicker at this point in older linux booting) gets a hand-off of control of the video driver and shows your shiny desktop. Except on my system it takes a giant crap, doesn’t leave any log messages or errors that can be deciphered, and shows you a blank screen while it hangs – silently crashed waiting in the background doing nothing but driving you insane – like a super zombie ninja with psychic powers of doom.

Anyway, I digress. I spent like a million hours trying to get this to work before downgrading back to 10.10 (and then having to re-fix my NVidia motherboards lack of audio out over HDMI – could we get this kind of crap fixed in linux please – audio and video are a giant fat mess – like 100 times worse than the switch to windows Vista, only it works way shittier and never gets fixed even after 5 years of running linux – Lame!). And, after all that, all I have to show for it is frustration, and a fear of upgrading.

Next time I will do two things differently:
1 – Just create a new partition, and install the newer one to that, and dual-boot – so I can watch Dr. Who or recorded TV on mythTV (new season of Glee! – AWESOME-Sauce!) – and still try out the new stuff to see if it is broken.
2 – back up my config files I change to my server. In general I’m starting to work up a real backup plan – and one of those things needs to be getting config files that I’ve changed or setup identified, and then backed up to a seperate folder which is backed up to the cloud. I’ve got a lot of hours into configing my server (in particular) and it is just built up over the last couple of years of just screwing around and making stuff work. Does anyone know a good way to go about that? Particularly, I don’t want to back up binaries, or version-specific files – but I do want to be able to upgrade and not have my stuff break (I’m looking at you ejabberd). And I want a good way to automate that backup (and I’m really getting annoyed w/ rsync, so unless you have a magic way to set it up easily, don’t suggest it – plus, in the world of dropbox, why can’t we get more seamless backup solutions for linux that monitor file system changes instead of backing up on a schedule?). And then a way to easily know where to put those files when I want to restore them on a new install or something.

Anyway, that is rambling now – but point is – on number 2, suggestions for things that have worked well for you are much appreciated.

To recap – Ubuntu – horribly broken on my Nvidia system (zotac micro-atx motherboard w/ 9300 graphics/chipset), need to be smarter about how I approach upgrades on critical and appliance devices (i.e. servers and single-function computers like my mythtv frontend) – Suggestions about backup strategies welcome.

Rockwell Automation Software Woes

One of the major players in the world of industrial control automation is Rockwell Automation. They make a vast array of products (or private-label from other companies to fill in their gaps), which include but are not limited to: Industrial servo controller/drives, variable frequency drives, PLCs (Programmable Logic Controllers – think hardened PCs that are made to run one piece of software in a loop, very quickly, and never crash… tho I have crashed them before, but that is another story), temperature controllers, circuit breakers, servo motors, HMI’s, etc.

They also make their own software to program their products. The most popular packages being: RSLogix5000, and RSView Studio – for programming their PLC’s and HMI’s respectively.

I use their stuff every other week or so when I’m not in the middle of a major development project (in which case, if the project is based around their hardware, I use their software every day).

Just a couple weeks ago, my PC was feeling pretty slow, and starting to crash occasionally in obnoxious ways, so I asked our IT guy if it was OK if I formatted my computer and reinstalled. At this time I casually mentioned that if we wanted another person to test-pilot Windows 7 I’d be up for it (a hand-full of our people have tried it with much success, though corporate isn’t quite sure they are ready to support it yet on every new PC coming in the door). He thought that was a good idea, so I did a little homework and found that while most of my software that is special for my job (like the Rockwell software) worked in Windows 7, almost all of it did NOT work in the 64bit version.

So I installed the 32bit version for now, and went on my merry way. But, now I’ve started to unravel some of the little annoyances, and things I’ve had to do to make them work right, and I thought I would share for anyone who follows in my footsteps. But before I dig into that too hard – I should note, I hosed up my computer for a day or so, trying to move my profile location to my second partition (not recommended, ask me if you want to do this and I’ll tell you what I messed up). That seemed to have caused some headaches, but re-installing most my software fixed the vast majority of my problems.

K, so there is the big list of issues:

Ultraware 1.64:
Windows XP SP3 – all our PC’s where I work, including mine prior to formatting for Windows 7, can’t compile projects. It gives me a Win32 Heap error. I fixed this by downloading the latest package of cygwin or mingwin (can’t remember which) and extracting the cygwin1.dll and replacing the one in the windows system folder.
Windows 7 – has to be run as aministrator (find the file and right click on it, go to compatibility and check “run as administrator”). If I recall correctly I couldn’t get it to compile otherwise, but I think I could open the program.

Panelbuilder32 3.82.01
Windows 7 – Couldn’t get it to open unless it was run as administrator. If I double-click a file to try and open it from the file explorer, I get an error and it won’t open, even though the application opens. If I use the File -> Open dialog it loads correctly.

But the big one here, is that when I go to download the file from the software to the device I get a blank error box, with just one of the exclamation point icons, and no text. I can click OK and that is about it. I had to grab an XP computer with the software on it to load it. I’m going to try downloading the “Windows XP” virtual machine from microsoft and putting it in that, and see if I can make it work somehow. But until then, I can edit and save file, but not load them onto hardware – which is a pretty major part of any of these software packages.

RSLinx 2.56
Installs fine, seems to load, at some point it stopped giving me an icon in the system tray (Maybe it never did and I just didn’t notice), and I can’t bring up the UI at all, even though it says the process, and subsequently the service is running.

The fix I found on Rockwell’s user forums. You can load the ‘control panel’ for RSLinx, and there you can stop the service, uncheck the box that says “Always run this as a service” and then restart the service. That gave me the icon in the system tray and let me configure communication drivers from within it. I also tried running it as administrator and turning off UAC. Dunno if that made a difference in the overall picture, because they didn’t fix the problem, but that was something that was done in case my control panel trick doesn’t work for you.

RSLogix5000 16.03
Just worked, and seemed to go great and do everything it was supposed to after I go RSLinx working. No need to run as administrator or any of that.

But, to any Rockwell people that stumble across this, I will say in general, asking me if I want to install adobe flash player EVERY SINGLE TIME I open your software, is a huge ‘no-no.’ If I want flash player installed, I will install it. And what the hell do I need it for anyway? Your start page is worthless to me if I’m not a total newbie. There are better ways to give me access to sample programs and help files. Flash is not the answer, or the future – or at least that is what Apple tells me – at any rate, it is annoying. Cut it out, get rid of that. (Note: I haven’t run v17 in a long time, and haven’t ever run v18, so if you got rid of this nuisance, congratulations – any chance you would patch v16 for me to get rid of it too?)

Latest Activation tools work fine, latest control flash for v16 CPU’s worked fine, so did the BootP server (though for whatever reason it didn’t seem to stick on a power cycle earlier today, I might track that down this afternoon).

So my big suggestion here, is that 1) if you are going to rely on GCC and cygwin for your compilation environment, make sure you’re updating your software with the latest bugfixes to the compiler toolchain. (cudo’s to you for sticking with ANSI C as your language of choice in the Ultra5000 BTW – cuz your normal structured text in RSLogix5000 blows, and I’m disliking IEC61131-3 less and less by the day – though it would be nice if you supported it natively instead of your hodge-podge structured text…OK, I’m getting off topic now). And 2) Please, PLEASE, PLEASE! support windows 7 with your older products (panelbuilder32, ultraware, etc), and get native x64 support into some of the older versions of the software like V16 of RSLogix. (For those of you who don’t know, if you have a controller that has its code written in V16 of the RSLogix software, you have to have V16-based firmware installed on the controller, and if you try to install V17 or V18 and load up the file you saved in V16, it will give you an error, ask if you want to convert. And if you do convert it, you have to change the firmware on the controller to match the rev. You cannot edit a file in V18, and save it with a target of V16 devices – which is super annoying because to work on multiple projects spanning features from multiple generations you have to have V16, V17, and V18 all installed on your machine, and when you load a file it pulls up the correct kernel of the software to support the format the file is saved in).

Finally, a word to controls people in general. Why do you prefer a single file for everything? I hate working with binary files when I’m writing code in structured text. There is no good standard way to do version control. Bzr, Git, Subversion, etc – 90% of their features are tossed out the window when you do this. Rockwell, I applaud the use of C for the Ultra5000, but seriously, packaging those text files into a binary blob, ensuring that I can’t get any benefit from DVCS or diff/comparison tools – not cool.

This goes for GE, Wago, and all you others out there. Our world is increasingly about writing code. Let’s not re-invent the wheel and make walled gardens everywhere, and instead adopt some standards text, or ASCII based file format that we can do simple version control and file compares on. Hell, rockwells proprietary diff tool exports ladder logic into XML, let’s just do that, every function or function block could be an XML file in a directory tree, with a single project XML file at the top connecting them all together. Or anything like that, something simple could be done.

OK, off my soap-box. Anyway, hopefully some of this is helpful for those who follow in my windows 7 path.

This Weeks Twitter Updates – 2010-03-14

  • Cheated on the fast yesterday by eating a small fried dessert dumpling from a chinese place. And almost threw it right back up. #
  • It turns out that soy milk doesn't suck, contrary to my original assumption. #
  • Steve Robbins is constantly pushing me more towards a liberal theological position by being trite with his arguments against it. #
  • Listened to the book of James on the way to work this morning – I find something new and profound in those 5 chapters ever time I read it. #
  • Best advice I've ever heard from John Piper "Don't tweet while having sex." I think you can take that one to the bank. #
  • Begining plans for my B-day in May. Thinking about how much it would cost to rent out a roller rink – does that sound like fun to ne1 else? #
  • Trying to learn to how to do video editing to work on a video for one of Lauren's spoken word pieces. #

Powered by Twitter Tools

This Weeks Twitter Updates – 2010-03-07

  • VLI week from hell is done. 2 tests and a sermon complete. Sermon didn't suck as much as I thought it would, which is a plus. #
  • 15 minutes is just not enough time to flesh-out 10+ versus of 2nd Timothy. Artificial limitations are hampering my ability to be awesome. 🙁 #
  • Exciting free-agency first day for Da Bears. We'll see how these guys turn out, all of them being >= 30 years old. #
  • Can't decide how much I like my latest batch of homemade hummus. Still think I prefer store bought. Maybe that means I'm making it wrong. #
  • It is doughnut day at work, my fav day of the month, and I can't have any 🙁 Only the 2nd time I am really regretting this vegan thing. #
  • This vegan/Daniel fast thing has started to play hell with my digestive system. But I've lost 7lbs in 2 wks, so I guess that is a plus. #
  • Email notifications for GoogleWave – Hooray! A step in the direction – next could u pls let me manage gmail/gvoice/gwave all in one place. #
  • Google Wave seems snappier these days. Also they have a new feedback form with questions about Gmail interaction – very nice. #
  • Pauline Lit midterm done – now studying for my church planting midterm. #
  • Home sick today with some type of sinus thing. Trying to rest and kick it so I can get back to work tomorrow. #
  • Man! There is a mobile developers conference in the Minneapolis and it is cheap – but it is on the last day of VLI and Alec's wedding 🙁 #
  • Got the garage door fixed today to the tune of $500 – UGH! Being an adult sucks sometimes – too expensive. #
  • http://is.gd/9xJ4B Totally awesome for all your rube-goldberg fans out there. OK Go – This Too Shall Pass. #
  • I think I want to be a hippie when I grow up. Can someone free me from my white-collar job and help me out with that? #
  • Twitter needs an 'in context' link like identi.ca has. That would make twitter conversations less obnoxious if u don't follow everyone. #
  • At first I thought it was ironic buying something from Dave Ramsey's site w/ my credit card, then I realized the box said 'debit card.' #
  • I still loath iTunes. #
  • Rocking the @Heatherlyn CD and loving it. I dig that local TC artists are so awesome & want to fight social injustice. http://is.gd/9oc97 #

Powered by Twitter Tools

This Weeks Twitter Updates – 2010-02-28

  • One of my new local music heroes @heatherlynmusic http://www.heatherlynmusic.com/ check her out – awesome and maybe coming to your town! #
  • At the MN without poverty event at Luther seminary. Loving the artists and the cause. #
  • Battle of the odors, the rotten fish smell we can't get out of the fridge vs. leftover curry. Only one will emerge victorious! #
  • Ate some great ethiopian tonight. Who knew that T's Place was Asian/Ethiopian fusion restraunt and bar. #
  • My wedding ring fits on my middle finger now, which 2 me is cooler than putting an adapter in it until I reach goal weight & get it resized. #
  • Just booked a trip from 4/15-4/20 for sis-in-laws wedding. Who is interested in watching our dog while we are gone? She is a lot of fun! #
  • I just got some FREE music from Derek Webb. You can download it here: https://www.noisetrade.com/derekwebb #
  • My dog apparently got out (we couldn't tell how) and a neighbor brought her home for us. Thnx neighbor! Lauren only left for 2 hrs today. 🙁 #
  • This lent thing is sucking much less now that I've figured out what I can eat that isn't salad. #
  • I'm looking for good hummus recipes. I can't quite get what I'm looking for in the ones I've tried. #
  • Being a Christian and Tithing has some serious tax benefits. #

Powered by Twitter Tools

This Weeks Twitter Updates – 2010-02-21

  • Still on the phone w/ service guys in Germany – it is around midnight there now. This has been an insane walk-thru with these guys. #
  • I'm often impressed by how good the video quality is over low bandwith for google's video chat. XMPP+Jingle-Video FTW! #
  • I hate when you learn so much about an interesting hobby that you figure out you will probably never be great at it. #
  • Matisyahu closed out the Olympics tonight on NBC.
    they'll be no more wars
    and our children will play
    one day #
  • I'm not so sure about this lent thing. #
  • http://is.gd/8B1cW Great article on Smart-phone OS's. Good info for highlighting my points in my last blog entry. http://bit.ly/aPRWPC #
  • This windows 7 phone thinger looks like it might not suck. It doesn't look like my bag entirely, but I'll reserve judgment until I use one. #
  • The days where you feel you've experienced the most growth are often the days you glimpse how much further you have to go. #

Powered by Twitter Tools

Looking Toward the Horizon of Mobile Computing

It is not saying anything new to point out that the iPhone changed the way we thought about and interacted with smart-phones. In the years following the Android phones brought us a vision of what a cloud-centric phone OS on many vendors hardware could provide if it was well supported. And the Palm webOS phones showed us what intuitive multi-tasking and a great notification system could provide.

With the improvements to the hardware and software over the two following years of iPhones and their respective software we got most the features we could want. I assume some sort of multi-tasking is coming in the 4th iteration. So we have reached a place where the revolution has evolved to a mature place of mobile-specialized OS’s and great hardware.

But where is the next revolution? I don’t think it is in the tablet space, which is being heralded as the next big consumer computing cash-cow. I think at least the next big evolution, or progression would be context-aware computing and inter-computer interaction.

What I mean by that is that I have massive headaches in some of the artifical boundaries, and poorly thought-out aspects of how our phones/mp3 players, tablets/netbooks, and regular laptops and desktops interact with eachother.

In order to explain this, let’s focus just on phones and go through the situation we have today.

I have drawn this little diagram that highlights what is considered basically the best way to ‘sync’ data on your phone.

The basics are that the best way to sync small data – email, contacts, calendar, and carrier data comes from the ‘cloud.’ The cloud here being any internet-based or telephony-based data that lives on a server somewhere far away and is ubiquitously available via a link to the net.

That same data is accessible via web services or the same as mobile protocols to your PC.

But when it comes to larger data, files, music, video, pictures, and some larger data sets from your app, the best way to move it between the PC and other computing devices is to connect a cable, and utilize the computer program specific to the device you are syncing. Every phone as a different non-standard way to handle this.

What works with this?

  • iTunes lacks features for power users, but it gets the syncing job done well enough (finally as of iTunes 8 which gives you the ability to change the ‘media type’ from music to audiobook/podcast/etc).
  • Cloud syncing is GREAT for information that best lives in cloud (i.e. Email, contacts, calendars)
  • Phones in general have gotten pretty good for playing music, making calls and passing text messages, and GPS.
  • Computers are great at creating and storing files, documents, and media.

What Doesn’t Work

  • iTunes is ‘Apple Only’ and it isn’t flexible. Ever want to sync the last 6 unplayed episodes of one podcast, but keep all the files for another podcast. Can’t do it with iTunes without serious playlist weirdness. Plus, it is difficult to get bi-directional syncing. Unless Apple decides to make special arrangements (ala voice memos) you can’t create or download media to the device and have it sync back to the computer easily.
  • Cloud syncing isn’t currently practical for larger media. It may get there, but our media libraries, and local storage capabilities (in both mobile devices and regular hard drives) are out growing our broadband speeds in the US. Plus, even if our broadband sped up a lot, it would be hard to match local network speeds or direct cable syncing.
  • The current protocol that makes cloud syncing a semi-decent user experience is proprietary and your service of choice (ala Gmail for example) has to pay Microsoft and then implement the protocol. And the protocol isn’t extensible or adaptable. This leaves us with a fragmented messaging experience. Multiple apps to handle chat, SMS/MMS, Email, etc – where we would benefit from commonality.
  • There is no standard way to sync contact info between devices and web apps – think about the facebook integration on the iphone app for facebook, or the direct built-in facebook capabilities in webOS and Android – so that when you update your info on facebook it goes to your friends directly.
  • So if you think about use-cases my phone usage based on what does and doesn’t work, and a lot of other people I know too, works out about like this: If I’m out and about, I get my email, set appointments in my calendar, create new contacts, and check and update facebook and twitter. This is of course in addition to taking calls. But the minute I sit down at a PC, I do all that stuff on the PC – because it is just easier to edit everything (except maybe twitter) on a PC. Especially longer emails and things that benefit from more typing. But the only reason I pick up my phone is to take a call or answer a text. And it is kinda a pain in the ass once I’m settled at a PC if my phone is sitting somewhere a ways away.

    So, here is my list of thoughts on how we might address some of those things that doesn’t work and maybe improve the user experience.

    • Let’s connect our phones to our PCs more so we can pass information more easily between the two.
      • Start with the phone calls – let’s pass the phone calls to the computer and use the computers mic and speakers.
        • The simple answer is have the computer support a hands-free profile, and the phone would connect to it like an earpiece. Then some type of notification would have to come up when there was a call.
        • The more complex answer would be to run a VOIP or some type of messaging client on the PC, and the phone would receive the call, and forward it as a VOIP call to the PC.
      • Step 2 is to expose a common driver/API architecture to expose onboard features of the phone or devices on the computer to eachother. So when the phone connects to the PC via USB or Bluetooth, let the computer see a USB hub with a camera, GPS, mic/speakers/audio device, etc. (See table below for a running tally of what I’m thinking)
      • Computer sees Phones as:

        Device Via
        USB Hub Driver / virtualization layer?
        Bluetooth adapter Driver / BT profile (a pass-through/relay type profile)
        External Audio Device Driver
        Touchpad Mouse / Keyboard BT Profile / driver via USB
        Camera Driver
        GPS Driver
        External Storage Device/SD Card reader Driver and network sharing
        3G Modem Driver / Bluetooth PAN
        External Display (windows-sideshow style) Driver (or app maybe?)
        Voice Gateway – Expose the GSM modem or VOIP gateway Driver

        Phone sees computer as:

        Device Via
        External Storage Network Share / special app
        Net connection Driver / Bluetooth PAN
        USB/Bluetooth Keyboard Driver/BT profile/Server App
        External Audio device w/ mic and speakers Driver
        USB Hub – the current apple ability to have peripherals added to the phone is vastly under-utilized Driver / Extention to the BT profiles to encompass Wireless USB (since wireless USB is on the way out)
        Video / Webcam / still cam Driver
        Secondary CPU / Processor core and GPU Virtualization layer

      • The next level would be at the application and OS.
        • Seamlessly move apps from the phone to the PC so you can interact with them from the PC. This way you can pick-up where you left off.
          • Allow a framework or API to sync applications on connection of PC to computer.
            • An example – listening to music on the way to work, get to your desk, phone prompts “Do you want to transfer this to the PC app, move the App to the PC, or continue on the phone?”
              • Move to PC app – music pauses on phone, music app (iTunes, winamp, etc) opens, and starts playing the same file off the phone from where it was paused.
              • Move app to phone – see diagram
              • Keep on phone – nothing changes
          • The final step would be having the apps be aware of the computer connection. Similar to the ‘app syncing, but instead the phone app could be transferred to the PC, but when it got there it would have a specific UI for that situation. It would see the CPU on the PC as a resource available to it, and start drawing a more desktop/laptop-centric UI with some expanded feature set. That way the transition to the PC would produce an experience tailored to the PC and have a seamless transition. This would have to have some type of virtualization layer that exposes the CPU and possibly memory or GPU exposed to the phone OS in a way that it can use.
            • This would allow for more ‘in-between’ situations to be handled with a middle UI for an app. So an iPad could have a version of the UI, the computer another, and the phone another – but all do similar tasks.
          • Moving away from the PC-phone interaction and on to messaging. I’m envisioning a new messaging hub. A timeline where you can see all your calls, emails, texts, chat messages, and whatever else you want. All this information pushed to you (instead of polling – which is so 1999). While the implementation details don’t have to be particular on this protocol, it needs to be open, and extensible (that is why I keep thinking about XMPP for the task, like what Wave, Gchat, and facebook chat are based upon). This protocol should have a built-in way to keep track of a message ‘thread’ so that no matter what medium you use, you can see how the chain of messages connected. This protocol should also support calendar events / invites as part of its payload, and it should have some way of a person updating their contact information remotely and if you are ‘subscribed’ to it, you would get the update (if they allowed you to, it would have to be a two-way subscription – with fine-grained controls for this)
            • This would need to have enterprise management features – as in the ability to sync a global contact lists, and manage the security policies of who can see what or book resources.
            • Bonus points for the protocol being aware of when a service like Google Voice forwards you a text message as an email, so you don’t double-up on notifications.
            • This would be a great way to handle generic notifications – meaning if it is extensible it could work for facebook updates, twitter posts, blog/RSS notification if the user so chose to add those features.
          • The final point that I think we should address in the PC-to-Phone interaction is syncing. We need a better, and flexible way of syncing.
            • I believe that as a starting base-point or guideline is that the phone OS makers should pick a single folder in the file-system, and make that a ‘shared space.’ Meaning apps can install to a program location, but they should store their data in the shared space. They should enable file sharing over the network, and the ability for the phone to act as an external storage device (so the phone appears as if it is a USB hard drive). This folder should be appear as a shared folder over the network, and should appear as the root folder when the phone is connected.
              • Some basic common sub-folders within this folder should be agreed upon. I’m thinking:
                • /media
                  • /media/video
                  • /media/music
                  • /media/podcast
                • /documents
                • /app data
              • A matching folder structure should be tied to the computer for backup and ease-of-sync purposes.
            • Secondly I think that having a ‘dropbox’ like tool running on any approved PC, and the phone, which watches for changes to the files in the shared folders. If the PC is in range or connected via USB/Bluetooth this tool would sync the file changes. I think this is particularly important for the documents that can be easily edited, but it gives you a way to back up pictures and videos easily also which is a plus.
            • Finally an agreed upon transaction model for this syncing for libraries. I just mean that some file types, or apps build up a collection of metadata on files, and call that a library. It is fancy way of saying that an application has an internal database of the files and the info about the files that are important to it. iTunes, the music apps on the phones, winamp, songbird, iPhoto, etc.
              • Let’s standardize the way changes are communicated to be bidirectional. This could be a part of the tool above, but if a change happens to a file, or a file is added to the library, when the phone and the PC connect either one can say “Hey, I’ve added files or modified files – do you want the update”.
                • I don’t care what the ‘database’ is that is tied to the app managing your media files, but the way in which the changes are communicated so that a transaction (file updates, etc) take place need to be standardized. By not necessitating a specific back-end to this process we can keep our current DRM schemes I believe for music and video.
              • Also, let’s standardize a smart-playlist-like functionality for syncing collections like podcasts, audiobooks, and series of talks or lectures. So that you can individually say this file, or this series, or this collection is to be synced. If it changes, sync it to wherever doesn’t have the changes, and if there is a conflict – modified in both places between syncs, ask me what to do.
              • The key is, that this has to be seamless for the users – which is why I like dropbox, it is always running and as soon as I save a file it is watching it uploads it to my cloud storage. This could be like that, only just between the PC and the phone and could handle libraries built out of links to files and metadata. (you could add the cloud component too, but a more standard way of handling this would be good)

              So, there you have it, my cell-phone OS wishlist. This is true of the new Windows Phone 7 Series (someday I believe Microsoft will get this naming thing down so it isn’t so silly all the time) which I just heard about 10 minutes ago. Nothing in there suggests to me that Microsoft is doing anything in this direction beyond their typical exchange server support.

              Now, my question to you smart-phone users out there; What is your beef with how your PC and phone interact? What would improve that? And, would any of this help you use a phone or a tablet in a more effective and satisfying way? Or is it just me who doesn’t like the way things are now?

    This Weeks Twitter Updates – 2010-02-14

    • This is a really fun defense of the paper letter snail-mailed to people http://is.gd/8kjzK #
    • Ever think back about what u have done or said & say to urself 'that was really immature.' Yeah, I'm in a church-planting lecture right now. #
    • Why can't media players and phones have a standard for syncing media – I hate iTunes and Android has no companion sync'ing software. #
    • RT @simpsonian Married Men Discussion Forum meeting 2/20. Super excited! Sign up for the activity group at http://trunc.it/5haqd #
    • My dog has decided to start chewing the bark off of the bottom of one of the trees in the yard. #
    • Anyone? RT @jenhiccups: House showing 2 of 3 complete for the day. Anyone know someone looking for a St. Paul home to rent? #
    • Google keeps releasing awesome products, which are not supported by native iPhone apps. This move me closer to buying an android phone. #
    • This fiber-based 1Gbps to-the-home network Google is starting is a shot-across the bow of big ISPs and I like it. #
    • http://is.gd/85QvU This could be a big deal – Could they run fiber to my house please! #
    • Just got the new facebook layout – don't hate it, but the newsfeed is still garbage – maybe they will some day get rid of it for good. #
    • Google Buzz is a step towards my vision of a unified msg center – now give me my txt msgs, voicemail, and waves all in there too. #
    • Google Buzz is very interesting – like Greader and facebook statuses in my gmail. #
    • I dig it – definitely pleased with the outcome. #
    • Anyone doing something for the superbowl? I got no plans right bow and haven't heard much going on party-wise & that makes me sad. #

    Powered by Twitter Tools