The tschotske at the Microsoft Venture Capital Summit was a spiffy blue Zune. I managed to figure out how to open the box – it’s pretty cute. I followed the "Start" directions which sends me to www.zune.net/setup to install the Zune software. I created an account and downloaded the 28mb file. I ran it to install it.
I’m running the most recent version of Vista on a Lenovo X300 and downloaded through IE 7. Gack.
As I live my Digital Life theme, I realize that sometimes I need to take a step back to take a step forward. This happened today when I was in the shower.
When I switched to an iPhone, I lost the ability to synchronize Outlook/Exchange Tasks. I’m a heavy Task user and a zero inbox person, so I spent a few weeks trying to find a good workaround. I didn’t find it yet. So – I started typing my tasks into a page in the Notes application on the iPhone and emailing the page to me at the end of each day. I then cut and pasted the individual entries into my task list. Stupid, but it was the best option up to that point that still integrated with my Outlook workflow (yes – I tried Evernote and a bunch of other similar things.)
For the past two weeks, I’ve been carrying around a little moleskin notebook that my friends at WordPress game me and scribbling down notes in the notebook. I’ve had fun with this approach and realized that having the freedom to just scribble down my thoughts as "items" liberated me some from the more task oriented view I have taken for the past N years.
In the shower this morning, I realized that this was exactly what I was doing in Notes on my iPhone with a few minor tweaks to the formatting. I was resisting Notes because I really thought I wanted Tasks and this was blocking my ability to see that the Notes approach actually worked better. Of course – if I could automagically have selected Notes go into my Task list, that would be even better, but I’ll live without it.
By working on paper for a few weeks, I made a minor behavior modification to my own workflow that I think will be more effective for me. Interesting.
Fred Wilson gave a phenomenal speech at Web 2.0 Expo NY titled New York’s Web Industry From 1995 to 2008: From Nascent to Ascendent. It’s about 25 minutes long – worth watching from beginning to end. It’s a fantastic history lesson that details the rise, fall, and re-emergence of the Web industry in New York.
As part of this, Fred makes a plea to "bury the name Silicon Alley." He hates it in the same way I’ve always hated the names "Silicon Flatirons" and "Silicon (whatever)" to describe the tech communities in other geographies than Silicon Valley. Fred appropriately suggests that we should call "New York" simply "New York" – which I completely agree with.
As I was hiking up Quandary Peak on Saturday, I regularly looked at my Garmin 305. I had four data fields displaying – distance, total time, heart rate, and lap time. After about two miles, I asked Dave how high he thought we were. He pulled out a topo map, looked at it for about 15 seconds, and said "around 12,500 feet."
Up to this point, I was doing a simple calculation between distance and elevation based on the assumption that there was approximately a straight line between the start of the climb at 10,750 feet and the peak 3.3 miles later at 14,270 feet. While I was doing this calculation in my head at the two mile mark, I looked at my watch and realized it had a data setting for elevation. Doh. And yes, we were at about 12,500 feet.
As I climbed the rest of the way to 14,270, I checked my watch on a periodic basis. My rough guess is that the elevation accuracy was +/- 30 feet at any particular moment. Pretty cool.
I’ve been intrigued with mapping and geolocation for a long time – one of our investments is Quova, the market leading geolocation data provider. I run into lat and long all the time in geotagged data but I rarely run into altitude (aka elevation).
Anyone that flies an airplane knows how critically important altitude is. As airplanes start to have Internet access, the jetpack that NASA promised me as a kid arrives, and IP-based flying robots start to appear, altitude will emerge as an important part of geolocation. Today, geolocation is still mostly just x and y data. Our friend the z axis is starting to make an appearance.
Now that I’m 42 years old, I’ve been around the computer industry long enough to understand that it runs in cycles. I don’t know how long the cycles are going to be, when they are going to reach a peak or a trough, but I do know that things will get better, will get worse, will get better, will get worse, will get better, …
When I reflect on it, the long term trend over the last 42 years has been amazing. There are lots of formal and informal studies and articles on this that all link to Schumpeter’s theory of creative destruction and Clay Christensen’s ideas around disruptive innovation. As the cycles play out, great new companies get created around new innovation, some reach escape velocity, some get absorbed into other large incumbent companies, and some disappear.
Today’s New York Times has two short articles – one in Bits and the other in DealBook – that reminded me of this.
Our good friend Microsoft makes a key appearance in both articles. Pondering the rise, fall, rise, fall, … of each of these companies over a 50 year period – both at a macro company level and within specific product groups – is a fun mental exercise (at least for me.)
When I reflect on the various companies we’ve funded over the past year I get really excited about the stage of the cycle we are in with the new Foundry Group portfolio. Independent of who wins the upcoming election, I think the vector of innovation around software and Internet will be steep and many of the things we’ve been talking about for the past 20 years as science fiction are going to start to instantiate themselves as real products and services. The relationship between humans and computers is once again changing rapidly and the number of different amazing things that I can envision happening in the next two decades is extensive.
I’m just sitting here watching the wheels go round and round.
On today, this day of endless blogging / talking (and hopefully downloading) of Google Chrome, I thought I’d go retro and write about my renewed hunt for the 4GL. But first, a little context on how this came about.
This summer I spent some time playing around with Google AppEngine to try and understand it better. It didn’t take long before I realized I needed to really understand how to program in Python to do anything. So I spent some time reading about Python and ultimately realized that if I wanted to make any progress, I needed to spend a chunk of time actually learning Python. Fortunately, I found a nice MIT course titled 6.00. I took the equivalent (6.001) in 1984 when it was taught using Scheme; now it uses Python. Oh goody – I can re-live my 18-year old student self if I want.
As I started digging around in Python, I instinctively compared it to the languages we used at my first company, Feld Technologies. We wrote business applications in the late 1980’s and early 1990’s and our language of choice was Clarion. We also wrote one large system using DataFlex and one with Oracle7, did plenty of work with dBase and FoxPro, ultimately adopted Microsoft Access as our 4GL of choice, struggled through some stuff on the Mac with 4th Dimension, and explored doing things with PowerBuilder right at the time that we sold the company. Some of these applications (including some of the larger ones) are still being used.
When I was playing with Google AppEngine, I kept waiting for the 4GL "aha moment." That’s the moment I had using Clarion, DataFlex, Access, and even FoxPro where I realized how easy it was to do certain things. That moment never came during my exploration of Google AppEngine – the deeper I got, the more confused I got.
My plan for Google AppEngine was to write a very simply application to help me manage my art collection. I’ve searched long and hard for a web based application to do this – the closest I’ve come is a program called Yallery written by a local friend Jennifer Ross. Yallery is very cool and does a lot of things that I’d want to do, but like most applications it misses on a handful of very specific things I want, while adding lots of things I don’t want. So – when AppEngine came out, I thought writing a simple art collection management system (ACMS) would be a great way to solve two problems: (1) really learn how AppEngine works and (2) get my little ACMS up and running exactly the way I wanted.
Like all good software developers, I sketched out a quick design. Like 99% of the software I’ve written in the past, the application is table driven – there is a simple data structure underlying all of the various screens that I’d want. I’d use the app via a few different modalities which would be accessed through a simple menu. The screens, menu, and underlying database describe 80% of the application; the final 20% is something any run of the mill report writer should be able to handle.
The optimal time to do this was when I was in Alaska in July. I try to take on a few new things each summer "to learn" and this seemed like a perfect one. I carved out some two hour chunks and went after it. However, two days in and I was completely lost. It was clear that whatever construct I had in my head about what I needed to do didn’t map in any way to how I needed to do it in AppEngine.
Now, some of it may be me. I stopped programming around the time that people were making the shift from procedural programming to object oriented programming. C was the language of my day; not C++. The idea of "Object Basic" or "Object Pascal" was amusing. So – I’ve always struggled a little with object / method syntax. Oh – and at my core there are two languages that have influenced me the most – Basic and Scheme – which probably explains all of my weird programming predilections.
But something just seemed wrong to me. Clearly AppEngine wasn’t the right tool to build my ACMS in. But, I didn’t really know what the right tool was. I know what I want – something like Clarion that works in a web-browser world. Something that provides all the magic Ajax UI goodies for me without me having to really do anything other than specify what I want the screens to look like. Something that knows how to bind data fields to the screens and then to a table to a database and allow me to do all kinds of data entry, sorting, and reporting on them. Something that completely isolates error handling for me so I don’t have to think about it. As I worked through my list of "wants" I realized I was defining what a 4GL does.
I know that there are some companies working on this. In an attempt to be trendy, this is now called PaaS (Platform-as-a-Service). But it’s really the reincarnation of the 4GL. And I’m not sure I really want a PaaS – I think I just want a 4GL that works with today’s web-based environment.
Scott Converse has a wonderful post up titled Is Apple a Republican? After reading it, I pondered my relationship with Apple and realized that it is just like my relationship with the Republican Party – there are some things that theoretically appeal to me, but endless deal breakers that push me away and head fakes that leave me cynical.
If you are a long time reader of this blog, you know that every six months or so I try again. I go to the Apple store and buy whatever shiny new Mac toy there is. A G5 – yeah. A MacBook Pro. Sure. An iPhone – definitely. A MacBook Air. Yeah, this will be the one. After tens of thousands of dollars spent on Apple products, the only three I am using today are my Apple 30" Cinema Displays (I love them), my G5 in my office (which I’m running Vista on), and my iPhone 3G (which has now lasted three weeks notwithstanding the endless dropped calls and lack of Outlook Task synchronization.)
The Republicans promise me smaller government. Oops. Better fiscal policy (e.g. no deficits) – double oops. Distribution of power to state and local government. Um, yeah. Equality for all. Patriot act, immigration policy, wars, anyone. The list goes on. I’ve always described myself as "conservative fiscal policy, liberal social policy" where theoretically a "moderate Republican approach" would work for me.
Wrong. The big deal breaker for me is abortion. I couldn’t ever vote for a pro-life president. Stay with me, you’ll get the Apple analogy soon. There are plenty of others – war, immigration, protectionism, religion – but I still fantasize about that enlightened "conservative fiscal policy, liberal social policy."
Ironically, my friends the Democrats have always had the liberal social policy down and now appear to have a much better handle on the conservative fiscal policy side of it. I was a Reagan youth, but have voted Democrat ever since. And while many think I’m a hard core Democrat, I’m actually an Independent.
About the time I voted for Reagan, I had an original Mac. My first computer was an Apple II. I even had an Apple III for a while. My Mac had one floppy drive and 128k. I loved it even though it was basically useless. When I got my first IBM PC (two floppy disk drives, 64k) and started writing software on it (and making money with it) I became a PC / Microsoft user. My Apple fantasies continued unabated – every few years I’d buy another one and end up discarding it after a few weeks to go back to my PC. There were always "deal breakers."
The deal breaker for me with Apple for the past few years has been Microsoft Exchange support. Entourage 2004 was so inadequate that it never became an option for me and Entourage 2008 disappointed me so much that I punted. I don’t really want to run Entourage – I want native Exchange support in all the Mac products. ActiveSync anyone?
I tried with the first iPhone – I really wanted to like it – but it just didn’t get there for me. Remarkably, after resisting for many years, Apple finally licensed ActiveSync and integrated it into the iPhone 2.0 software. Voila – I dumped my Dash and am still using my iPhone 3G several weeks later.
But – Apple forgot one thing. Tasks. Apple syncs Mail and Calendar with Exchange, but not Tasks. For anyone that is a hard core Outlook user (like me) that manages to a zero inbox, Tasks are important. It’s kind of like being pro-choice but being against birth control. Weird. Limiting. And intensely frustrating.
Third party apps are starting to appear that try to sync Tasks, but they are all weak. KeyTasks from Chapura seems to come the closest so far, but it’s not server side sync (with Exchange) – you have to have a client side agent running. And of course, it doesn’t have categories ("Category support coming soon.")
Theoretically wonderful, but always comes up short with a deal breaker. We didn’t even get into religion yet, but ponder that as you think about the Cult of Mac vs. the PC / Microsoft.
I definitely have too much politics on the brain. I can’t wait until 2009.
Om Malik discovered that Microsoft has received a new and exciting patent on "page up and page down." It was issued on 8/19/08. I just read the summary and this is truly a ridiculous patent. The USPTO must have gotten confused by the fancy math included in the patent (e.g. "{[(p-1)/c]h}+r") that is included in claim 1.
1. In a computing environment, a method comprising: displaying at least one page of a document that has multiple pages, at least one of the multiple pages, and the displayed at least one page including a first page displayed beginning at a starting point offset from a top of the document and from a top of the first page; calculating a height of at least the first page; calculating a row offset of the starting point of the first page; calculating a vertical offset at the starting point of the first page, wherein the vertical offset is calculated according to a formula of the form {[(p-1)/c]h}+r, where p is equal to the number of pages in the document, c is equal to the number of columns of the document which are simultaneously displayed, h is equal to the height of at least the first page, and r is equal to the row offset of the starting point of the first page; receiving a command indicative of a whole page-based incremental scroll request related to changing first content currently being displayed in the at least one page; determining a whole-page increment for scrolling from first content to second content, wherein determining the whole-page increment includes calculating a vertical offset at a second starting point in the document, the vertical offset being calculated according to the formula V.sub.1.+-.(cr), where V.sub.1 is the vertical offset at the starting point of the first page; and changing the display to display second content, by replacing the at least one page of the document with at least one other page, the display of the at least one other page beginning at the second starting point.
I think this used to be exercise #4 on problem set #3 in 6.001 at MIT. You used to have to write this in Scheme, which I’m guessing is a lot more elegant than the Microsoft C# implementation.
It’s DNC time in Denver and all kinds of weird advertisements are popping up all over the place, including the airport. My partner Jason sent me a photo of this one today with the heading "Puke".
I put this in the "you’ve got to be fucking kidding me" category. Let’s break it down. Here are the messages:
Let me guess – AT&T is positioning themselves as a key supporter of no patent reform. Or, maybe AT&T is positioning themselves as key advocators of patenting everything under the sun. Maybe they are advocating that they should give their engineers bonuses for every patent they file. Maybe they are trying to say that a good democracy has lots and lots of patents. What ARE they trying to say?
Regardless we know that big companies can submit lots and lots of patents. Hey AT&T – two applications per day isn’t actually all that many anymore! How about telling us about some of the real innovation you are doing.
Actually, can you just spend some time improving your 3G network so my iPhone calls don’t drop as often?