RSS
 

Archive for the ‘Computers’ Category

Lightning strikes twice for the Google Maps Team

29 May

Okay, so eight to ten years ago, when IM was just starting up and ICQ was the next big thing, I started following the work of an open source project called Jabber whose goal was create an open source instant messaging system. Being open source guys, they didn’t like the idea of being tied to a single company’s system.  They much prefered a federated system, like email, where anyone can run a server, and there is an established protocol for servers talking to each other.  So, that’s how they set their system up.  XML was also a ‘next big idea’ at the time, so they decided to make a DTD for messaging, another for presence and contacts, and have the server, at its core, just by an XML router which routed the appropriate message documents to the appropriate contacts.  Being forward looking guys, they knew this would make the system extensible, and, even at the time, had big ideas about adding DTDs that would support things like real-time white boarding and other collaboration tools.   The Jabber guys established their niche, but the general public had already chosen one the handful of proprietary messaging platforms was happy enough that they saw no reason to leave.

What, you are probably asking, does all of this have to do with the Google Maps Team and lightning?  Well, as good internet citizens, the Jabber guys documented they protocol and went through the hassle of getting it established as an ITEF standard known as an RFC.  This standard was called extensible messaging and presence protocol, or XMPP.  Many organizations have used this standard as the basis of their own messaging platforms.  Among these was Google, who used it as the basis of Gtalk.  Which, finally, bring me back to the Google Maps Team.  After their technology was bought by Google and turned into Google Maps, they decided to work on something new:  a real-time messaging and collaboration platform.  After eighteen months work, the results, called Google Wave, were previewed at this week’s Google IO conference, and the results are astounding.  I won’t attempt to explain it you just need to watch it:

Much as I suspected while watching the video, when I read their published protocol specification at waveprotocol.org, I learned that the whole thing is built on a extensions to XMPP.  At the guts of the Wave are XML DTDs for wave detlas being streamed around, serialized, and sycnronized.   This is going to be huge, and the Maps Team deserves the praise.  But, it all started with the vision of the Jabber folks.

 

Hey Apple, how about expanding the App Store to the Apple TV?

08 Nov

You must have noticed that, much like your other closed platform, the iPhone, communities have sprouted up around your hobby project to add functionality that it lacks and people want.  Also like early iPhone developers, they’re doing it without your help.  At times, even in spite of your efforts to thwart them.

You may have also noticed once you made those iPhone developers legit and fostered them, your new platform took off like a rocket.  I wonder what would happen to your hobby project if you got behind the pent up demand to develop on that platform?

p.s.  You better hurry.  AwkwardTV, XBMC, and Boxee are pretty compelling without you.

 
 

What’s important about Chrome

06 Sep

I just finished reading Google’s comic book about there new browser effort, Chrome.  Much has been written this week in the Tech press:  Why do we need another browser?  Just another attempt to gather more data about me.  What, windows only?! Etc.  Well, this is the first chance I’ve had to check for myself, and I must say I’m impressed.

First off, everything is open source.  Re-using existing open source components when available and writing new ones when necessary to achive their goals.  Very smart.  Additionallly, the new components that prove to be superior can be adopted or adapted by other Firefox and other browser that choose to participate in the open source world.  Much like their use of Gears to prototype things they are proposing to the W3 standards bodies, this is about building the infrastructure for a richer web.  So, all the breathless paranoia about privacy is just that.  There won’t be in privacy busting components in there because it’s open source and would be exposed immediately.

Second, they’ve reallly thought about what’s wrong with the browser security model, and they are not only fixing it, but showing everyone else how to do it.  The comination of the sandboxing and the process model are very important.  As the web moves more and more toward becoming it’s own applications platform, all browsers will need to adopt this or die.

Finally, we have V8, the javascript VM.  Here, I’m excited about the performance possibilities, but also a little concerned.  There is a lot of divergent work going on in this space.  Mozilla is building their own VM.  Microsoft is almost basing IE 8 on their DCLR.  The Webkit guys also have work in this direction.  Google’s, Mozilla’s, and Webkit’s are open source and will likely be used in other projects.  But, as a developer, what I really want to see is a standardization of the VM interface.  If my applet can be compiled, compressed byte codes, then I not only save time at runtime, but I can also write applications in other languages and use a compiler targeted at the VM.  As web application increase in complexity, maintaining them will be a nightmare if we can’t use more appropriate languages.

 

More on Microblogging

25 Aug

In yesterday’s post, I mentioned my belief that a big part of the problem that microblogging sites are having with scaling is the result of their design being primarily that of a content management website and not that of a messaging system which, I believe, is the more proper model.  I thought, after listening to last weeks FLOSS Weekly, that Laconica was taking a step toward this approach.  I’ve had some time to browse their website, and, they too are still primarily designed as a website.  I can understand their rational:  They want to scale through federation, so they want people to run individual sites for small communities.  To achieve this, they’ve come up with a design that will run on the lowliest of shared web hosting sites.  Finding a hosting service that allows you to run your own daemons and setting them up is much more complex than installing a PHP website.  It’s too bad.  A lot of what they are building in PHP is already in existing or drafted XMPP Specs.

As long as the sites size remains under, say, a few thousand simulataneous users per server, I think this approach will probably work okay if coded efficiently.  However, I still believe that to scale the true national service size companies like Twitter aspire to be, you need a tiered architecture with the subscriptions and routing handled in the messaging server. That server then feeds real-time track searching engines and the database which feeds the website.

 

In Defense of Ada (No Really!)

30 Jun

On this week’s TWiT, episode 149, the cast had some fun at the expense of Ada.  Now having worked with Ada a good deal over the years, I’ve done my fair share of this.  In fact, I’ve worked with several people which I would describe as Ada zelots, and I certainly enjoy getting a rise out of them by playing devil’s advocate when they go on an anti-C rant.  However, some of what they said was just factually wrong, so I guess I’ll have to se the record straight.

First, they said no one is using Ada, not even the DoD anymore.  Well, this just shows that none of them have ever worked in aerospace.  Most current commercial aircraft, from including Boeing 777 and Airbus 380, have Ada code running in them somewhere.  Also, the air traffic control system that keeps those planes from crashing into each other in a great many countries is written in Ada.  Satellites, the majority of the things NASA and the ESA fly and put into space, nuclear planst, rail and subway control systems, some European financial systems, and the who’s who of NATO weapon systems.  This page sums it up well.  Pretty much, if it would really suck if it screwed up, there’s a chance Ada is at least a small player in the industry.  It’s true that Ada went no where in the commercial applications business.  Then again, this is the crowd that is still constantly issuing security fixes for buffer overrun exploits.  Commercial application developers were late to see the utility of safety over a slight loss of speed.  They are now heading in the direction of managed code under VMs like Java and Microsoft CIL.

Next, they said it failed because it was slow and too complex for anyone to implement.  It amused me because this exchange came right after Jerry Pournelle got done praising Bill Gates for being smart enough to know that Moore’s Law would bail Microsoft out no matter how bloated they allowed Windows to become.  Anyway, during the Reagan defense boom, there were any number of Ada vendors who had no problem creating a validated compiler.  As this is a niche market, consolidation has occurred since, but there are still 5 or 6 major players in the field.  To the question of speed, you take a surprisingly small hit for the run-time checking you get in return.  Certainly, it is less than the hit you take moving to managed code.

Okay, now that I’ve managed to sound like one of those Ada zelots, let me say that I’m generally language agnostic.  Good programmers can write good code in any language, and bad programmers will manage to screw up the works despite attempts by the languages and development processes to stop them.  However, as someone who has the unique prespective of having implmented mission critical, real-time embedded systems in both Ada and C++, I would certainly recommend the former over the latter for that particular application.

 

Configuring Gallery to Host Mobile Phone Movies

02 Feb

Gallery is a great option if your are looking to host a photo gallery website for friends and family. It will support not only photographs, but also movies if the server has ffmpeg installed. By default, however, its movie support is only configured for mpeg, quicktime, and windows media. As most people are carrying phones that will record video clips, you may want to support these as well.

Luckily, the format used by most phones, which has an extension like 3g2, 3gpp, or 3gpp2, is really a quicktime/mp4 container with H.263 video and either AAC or Qualcom audio. The upside of this is that you can simply add these extensions to the video/quicktime MIME type in the MIME Type tool in gallery, and everything will just work. Gallery/ffmpeg will make a thumbnail for the movie and put a quicktime embed object in the display page that is properly sized, and any computer with quicktime installed will be able to play it.

 
No Comments

Posted in FOSS, Tips