Categories
Photo A Day 2011

Project 365 Week 42

Categories
Photo A Day 2011

Project 365 Week 41

Categories
Apple

Siri, Wolfram Alpha And History

There’s quite a bit of talk on the web lately about Apple’s new Siri feature which uses Wolfram Alpha behind the scenes to answer the questions Siri gets asked. Unlike Google, which searches the web for content that matches, Wolfram Alpha is a service which “figures out” (runs algorithms to derive) the answer to your question based on data it has in its massive databases. It’s an amazing service and a perfect partner for a service like Siri.

What many don’t know however is that Wolfram Alpha is by a company called Wolfram Research who has a long intertwined history with Apple. They have one other major product in their portfolio that many know called Mathematica. Many who never used the product know it as something that’s been demoed several a few times during a keynote after being introduced by Steve Jobs. I think the most recent was WWDC when Mathematica was ported to Intel on OS X in 2005.

Steve Jobs had a long lasting relationship with Stephen Wolfram going back to the days of NeXT and Mathematica 1.0. Apple using Wolfram Alpha to power Siri wasn’t a whim, it was coming full circle years later. Stephen Wolfram’s blog post is really an amazing story on how their companies intertwined over the years in a quite organic way. Steve Jobs gave Wolfram feedback through the years that seemingly was centered about simplicity. Siri is the culmination of Steve Jobs UX vision and Stephen Wolfram’s information vision.

Quite amazing to think the groundwork for that relationship and in a sense this iPhone feature goes back more than 20 years.

Categories
Programming

On Dennis Ritchie

The past week there has been a ton of recognition for the contributions Steve Jobs had made to computing and society through his work. Steve Jobs was a household name. Dennis Ritchie however was not a household name. Despite this his work was amazingly influential on almost every aspect of our daily lives either directly or indirectly. Everything from the computer I wrote this blog post on to the server sending you this blog post involved his work.

Rob Pike best eulogized his work, copied below for posterity. An amazing legacy.

Categories
Apple

iOS 5 And iMessage vs. The World

I’ve generally refrained from comment on iOS 5 because there are only two features I really cared about and I wanted to see them in a final release form that I could play with. The first was notifications, which I loved since the first screenshots I saw. The second was iMessage simply because it intrigued me.

iMessage despite some claims isn’t the end of SMS, but it the beginning. To summarize how it works, it essentially abstracts the Messenger/SMS client so that to the user its protocol antagonistic. If it can use Apple’s network it does so, if not it uses SMS. The user does nothing but send messages like they always have. Apple does the magic. No app to download, no username to select and distribute, no new phone number. Just use it. Typical Apple brilliance.

Of course this poses a threat to carriers who make immense profits selling SMS packages which cost them almost nothing. I still wouldn’t be surprised it they find some vaguely worded patent and a patent war erupts to try and stop Apple. It’s a very real possibility.

However this alternative network only works between Apple iOS users… for now. Apple has three potential tricks up it’s sleeve to completely upset the market.

The App Route

This is the most obvious route. Release apps for BlackBerry and Android. As people adopt smart phones this becomes more awesome. Desktop clients will also satisfy since millions spend their day in front of a computer at work. Integrate into iChat and make an XMPP service for those using Adium or a third-party client on Windows. Release a Windows client. Get Meebo to make that a simple thing to add to your account. They could get it everywhere pretty quickly.

Third Party Integration

Apple could eventually open up an API to allow for third-party app integration. Allow me to explain how this would work:

Your Apple account right now contains two key identifiers: You’re phone number (duh) and email address. What Apple could do is let third parties like Facebook, Google Voice, etc. become alternative carriers with a higher priority than SMS. So if Facebook Messenger was an option, it would use that. Otherwise it would use Google Voice, Kik, or perhaps even BBM to send the message. Last ditch effort would be regular SMS.

The Telco Route

This is an interesting option, but not really unique. Google actually does some of this already via Google Voice. Skype offers similar functionality to a degree. What Apple would do is rather than use the carrier SMS, give the option of sending via iMessage which sends the text to anywhere in the US on your behalf. Again, Google and several other companies are already doing this. The caller ID can be spoofed legally, and replies would come back via a regular SMS, effectively making you a recipient only. In the client this is seamless. This would further disrupt carriers model by cutting texting in half asymmetrically.

Any of these methods has a major advantage for Apple by making iOS the center of people’s communication universe. They could route to other iOS devices, Apple TV, your computer etc. It’s what Google Voice is striving to be, but for text.

Of course Apple could, and likely will eventually make this service more than text only. Voice and video are obvious companions and likely to be added as iChat, FaceTime integrate. Apple could even add a pro service like SMS and voice to other countries for a fraction of what wireless providers charge putting them in competition with Skype or Google Voice.

The backside of this however is that wireless providers are likely to raise mobile data rates and add new charges to make up for SMS.

Categories
Google Mozilla

Quick Thoughts On Dart

Google yesterday officially took the wraps off Dart. Google decided to stop short of outright calling it a replacement for JavaScript, however that does seem to be one of the goals.

I’m still looking at it myself, but my first impression is that the point of another language is buried in the details of the announcement. This particular sentence I think is the focal point (emphasis mine):

  • Ensure that Dart delivers high performance on all modern web browsers and environments ranging from small handheld devices to server-side execution.

I suspect the real goal behind Dart is to unify the stack as much as possible. Web Development today is one of the most convoluted things you can do in Computer Science. Think about just the technologies/languages you are going to deal with to create a “typical” application:

  • SQL
  • Server Side Language
  • HTML
  • CSS
  • JavaScript

That’s actually a very simple stack and almost academic in nature. “In real life” Most stacks are even more complicated, especially when dealing with big data. Most professions deal with a handful of technologies. Web Development deals with whatever is at hand. I’m not even getting into supporting multiple versions of multiple browsers on multiple OS’s.

Google even said in a leaked internal memo:

– Front-end Server — Dash will be designed as a language that can be used server-side for things up to the size of Google-scale Front Ends. This will allow large scale applications to unify on a single language for client and front end code.

Additionally:

What happened to Joy?
The Joy templating and MVC systems are higher-level frameworks that will be built on top of Dash.

By using one language you’d reduce what a developer needs to know and specialize in to build an application. This means higher productivity and more innovation and less knowledge overhead.

This wouldn’t be the first attempt at this either for Google. GWT is another Google effort to let developers write Java that’s transformed into JavaScript. This however doesn’t always work well and has limitations.

The web community has actually been working on this in the other direction via node.js which instead takes JS and puts it on the server side, rather than inventing a language that seems almost server side and wanting to put it in the browser.

Google still seems to have plans for Go:

What about Go?
Go is a very promising systems-programming language in the vein of C++. We fully hope and expect that Go becomes the standard back-end language at Google over the next few years. Dash is focused on client (and eventually Front-end server development). The needs there are different (flexibility vs. stability) and therefore a different programming language is warranted.

It seems like Go would be used where C++ or other high performance compiled languages are used today and Dart would be used for higher level front-end application servers as well as the client side, either directly or through a compiler which would turn it into JavaScript.

Would other browsers (Safari, Firefox, IE) consider adopting it? I’m unsure. Safari would likely have a lead as the memo states “Harmony will be implemented in V8 and JSC (Safari) simultaneously to avoid a WebKit compatibility gap”. Presumably IE and Firefox would be on their own to implement or adapt that work.

New languages rarely succeed in adoption. On the internet the barrier is even higher.

Categories
Photo A Day 2011

Project 365 Week 40

Categories
Photo A Day 2011

Project 365 Week 39

Categories
Photo A Day 2011

Project 365 Week 38

Categories
Apple

Crazy Ones

The Crazy Ones

This Steve Jobs narration of “Crazy Ones” ad is pretty awesome. The aired version was voiced by Richard Dreyfuss.

What would it take to convince Apple to air this with a simple slate at the end with an Apple logo and “Steve Jobs 1955 – 2011” at the end? Getting Jonathan Mak’s Steve Jobs Logo Tribute would be even better. I now there are a few Apple employees reading this blog. Dare I suggest we make this idea viral enough to get the attention of Tim Cook?