May 31

Radish: Google Engineer 20% time + environmental flare = indoor solar-powered calendar

Google, Tech with tags: , , , No Comments »

I got to meet Aaron Spangler, one of a two man team that decided to use their 20% time at Google to build a indoor solar-powered calendar display that hooked into Google Calendar and once ever hour updates the epaper.

In the video he details his experience, and we show it in action. Fun stuff indeed, and here is some of the technical goodness:

The goal of Radish is to replace this manual process with a portable device that can wirelessly retrieve and display scheduled events for conference rooms. For Google, this would translate to a savings of about six reams of paper a day, not to mention the printer resources and manual labor required to deliver the paper schedules to the conference room doors. Aaron has also determined that about 20-30% of all reservations are changed during the day, hence the Radish also overcomes the static nature of a paper display with real-time data.

The Radish is a working prototype that is built entirely from scratch and assembled using generic, off-the-shelf hardware components. Custom firmware was written in C and assembly language.

The CPU of the Radish board prototype is programmed to manage power usage and to transfer and display data. The display of the Radish is a special LCD screen that maintains the downloaded image without consuming power.

The Radish is equipped with radio transmitters that uses the IEEE 802.15.4 protocol to send and receive data wirelessly. IEEE 802.15.4 is ideal for ubiquitous communication between devices within a wireless personal area network because of its focus on delivering low-cost and low-speed communciation.
This is why IEEE 802.15.4 is far more energy efficient (about 1mW per radio) than traditional Wi-Fi.

Radish uses the radio transmitters to ping and receive display data from an external server. This custom server fetches the set of event data pertaining to a conference room via the Google Calendar Data API. Using the Google Calendar Data API, the server is able to sync event data with Google Calendar. The event data is then processed into an image that is specifically sized for the LCD display. The MAC address of a Radish’s wireless receiver is used as the unique identifier for the room it represents.

All electronic components were selected with one important criterion: that they must be compliant with the Restriction of Hazardous Substances (RoHS) Directive which restricts the use of hazardous materials (mainly lead) within electronic equipment. Another major area of environmental focus was the power supply of the Radish, particularly how to efficiently and cleanly power the Radish around the clock. The Radish team members (Aaron and fellow engineer Matthew Wilson) made a point of not using batteries to power the device. Instead, their desire was to utilize natural, carbon-free energy.

After investigating various energy sources, the team decided to use solar energy. Attached to the Radish board is a solar panel that collects and stores solar energy. The solar panel of the Radish is capable of collecting any source of light energy, including normal office lights, hence it might be more appropriate to say that Radish is powered by ambient energy.

The Radish is normally in an ultra-low power sleep mode. The Cholesteric LCD screen can maintain the final image state even in sleep mode, the state in which Radish spends most of its time only periodically waking up to ping its server for updates. The gap between sleeping and waking is determined algorithmically depending on how much energy it currently has in storage. With the ingenuity of the power management algorithm, the Radish is exceedingly efficient with power usage. A fully charged Radish can be running continuously for 3-4 days with a guarantee of at least one daily update, even in low light conditions.

May 29

I am on Dilbert!

British, Comic, Tech with tags: , , 1 Comment »

DionBert

I wondered why Scott Adams was following me around, and my coworkers were pointing things out!

May 27

Speed Up! with Wordpress and Gears

Gears, Tech with tags: 6 Comments »

I was sitting on the tube a few months ago in London when I looked up to see Matt Mullenweg, Om Malik, and another nice chap whose name escapes me. A little random to bump into them in the middle of London, but we were all in town for the “Future of Web Apps” conference. I had the fortune to chat with Matt a little about Gears and Wordpress. The marriage of which would make me a happy man as I use both technologies on a daily basis (this blog and Ajaxian both run Wordpress).

Brad Neuberg got to working with the Wordpress team, and after a short IRC session they had great progress. At first it can seem daunting “Oh man, won’t it be a ton of work to rewrite Wordpress to work offline?”

Speed Up!

This leads us to this post by James who did an “svn up” recently, and saw new support for Gears which lead to some pleasant surprises:

As a side note and introduction to what has been sped up, here’s a little rant.

I personally LOVE the changes that were implemented with WordPress 2.5.

But, some of the new features (and features I’ve just started using now that I use the Visual Editor) just aren’t as cool thanks to the not-so-great internet speeds in South Africa.

For example, if you want to create a link. Every time you click the link icon in the editor’s toolbar, it has to download the same stuff over and over…

Well, it looks to me like the WordPress Google Gears implementation has solved that. The link and the “insert embedded media” popups are now instantaneous!

Thank you to whoever decided to do this.

It also seems that switching between each “pane” in the admin section is a LOT faster… Believe me, working on the South African tubes (via iBurst), this makes a HUGE difference!

I am really proud of the Gears team whenever I open up Google Docs, Reader, Zoho, or any other application that uses Gears to let me access the application while offline. There have been situations where it really saved me, and offline is an important boundary.

However, Gears is so much more than offline, and it is really exciting to see “Speed Up!” as a link instead of “Go Offline?”

This is just the beginning. As the Gears community fills in the gaps in the Web development model and begins to bring you HTML5 functionality I expect to see less “Go Offline” and more “Speed Up!” and other such phrases. In fact, I will be most excited when I don’t see any such linkage, and the applications are just better.

With an embedded database, local server storage, worker pool execution, desktop APIs, and other exciting modules such as notifications, resumable HTTP being talked about in the community…. I think we can all get excited.

Kudos to the Wordpress team for finding a great way to increase the performance of their great application, and I can’t wait to see how you use Gears in the future.

May 26

Twitter is getting a Mom

Tech with tags: , 8 Comments »

Twitter MOM

@al3x told us about the Twitter architecture, and what says it all is:

Twitter is, fundamentally, a messaging system. Twitter was not architected as a messaging system, however. For expediency’s sake, Twitter was built with technologies and practices that are more appropriate to a content management system. Over the last year and a half we’ve tried to make our system behave like a messaging system as much as possible, but that’s introduced a great deal of complexity and unpredictability. When we’re in crisis mode, adding more instrumentation to help us navigate the web of interdependencies in our current architecture is often our primary recourse. This is, clearly, not optimal.

Our direction going forward is to replace our existing system, component-by-component, with parts that are designed from the ground up to meet the requirements that have emerged as Twitter has grown.

Amid the huge number of “oh no twitter is down. make it faster!” posts, we have some good ones.

The answer isn’t “Use PHP” ;)

If I was Twitter I wouldn’t be looking for Erlang as the answer, but I would be interested in talking to Joe Armstrong. I wouldn’t jump to Java as the answer, but I would be reaching to talk to Cameron Purdy of Tangosol Coherence (now Oracle). These people have seen systems that make Twitter look like a toy in comparison, and it is the knowledge that is more valuable than any technology.

If you think about contorting a typical LAMP stack to run Twitter you quickly shudder. Having a database layer, even with master/slaves, is scary.

Twitter needs a Mom, and it looks like it is finally getting one. With true message oriented middleware, and money to get the systems they need, they should be fine. As Cedric says this isn’t an original problem.

The system of messages shouldn’t be living in bottleneck databases. Instead, they can be flowing through a river of distributed cache systems. The Jabber side of the house shouldn’t be able to “bring down” the entire website. The beauty of publish subscribe and messaging is that you can throttle things nicely. You shouldn’t be “running out of database connections.” You can tune the number of listeners for the “track” command for example, and if it is getting abused you limit its resources. Sure, this may mean that you get messages to people a little later, but who cares. If messages got a little slower would people even realise? Compare that to the birds lifting the animal to safety message.

In fact, if you think about systems such as the stock exchange. You will realise that you rarely get truly real-time access. Most of the time you are on a delay of some kind, and that is fine. Through the distributed caching architecture you can push out messages to other systems to do their work. One of these systems will be the website itself. Twitter.com is just another client to the messaging backbone. Even if the backbone is in trouble, the website can still show the current view of the world, and could even still batch up work to be done.

I was talking to another startup that is migrating away from a database backed system, and soon the entire real-time world will be in a huge distributed cache. I am sure that Twitter will be moving there too.

Currently, I still feed bad for the engineers. I have been there; The point where you are the limits of your current architecture and you know it can tank at any time. You are firefighting all day and night, and thus don’t even have much time to fix anything at all. It is hard work. It is tiring work. It is demoralizing work.

However, I know that Alex and the rest of the crew will pull through their current situation, which after all came about thanks to the amount of love that its users have for the service, and one day the new architecture will be there in a way where we will look back and remember the early days, where downtime was such an issue.

Thanks for all the hard work guys. I can’t wait to be tweeting on a fully loosely coupled architecture, talking to one of your Moms!

May 23

Microsoft is Thinking in Flex; I like to read my feeds though

Microsoft, Tech with tags: , 3 Comments »

Spectra Full

Bruce Eckel pointed to Microsoft Spectra, the new feed reader that uses Flex, and he questions their lack of dogfood eating. Of course, this is MSNBC (which is far from Microsoft), and who knows when development started.

What I find more interesting is the fact that beyond the flash-y visualizations, would you actually want to read news like this:

Spectra Feed View

Rich visualizations are great when they show you something in a new way that adds value. This just seems to make it harder to get to the content :)

Even Ryan Stewart must think that this isn’t a good “RIA” ;)

May 23

TwitterFone: Voice recognition can be dangerous here

Comic, Tech with tags: , , 1 Comment »

Twitter Phone

I like the idea of TwitterFone. It would be nice to be out and quickly call in a tweet. I got an invite, and tried it out this week, and then remembered that voice recognition is really hard. Doesn’t it always seem to be one of those technologies that is “10 years out.”

My test tweet occurred after Man U beat Chelsea for the Champions League trophy.

I said:

I’m really excited that Manchester United won again today but I can’t believe that it went to penalties.

and I saw the following in my twitter stream a few minutes later:

I’m really study the dimensions unit one again today but I can’t believe that it went to penalties.

To be fair, they did pretty darn well. It is hard to expect them to know something like Manchester United. Unfortunately, even though they did well, it would be hard for anyone to understand what I was saying.

I then thought back to Twitter Translate. In that case we are translating between languages, and it is also often “off”. However, you can normally work it out, and there is a key difference. I expect that if I translate something that it will be a bit off, and I will cope with that. However, something like TwitterFone is happening without the consumer knowing, and thus it comes across as gobbledy gook as they don’t have the context (other than seeing “twitterfone” if they look carefully).

It seems that there are many use cases where it is OK that translations of some kind are “good enough”, and others where it does matter. You could get into trouble too, such as the comic above which messes up the “d” for direct message and changes it slightly so you say something totally different.

You could go from: “I like yoghurt and peas” to: “It hurts when I pee”.

Then there is the 140 character issue. It is impossible to do the math as you are speaking a sentence, so you will often run on.

Nice idea, but we need the technology to get to the next level for this kind of input to be used in a case like this. Using it for GOOG-411? Perfect… you can keep saying the same thing again.

May 20

Using downtime for publicity

Comic, Tech with tags: 9 Comments »

Twitter downtime

Every other day you see a post like this or this.

I wonder if the downtime that Twitter has, may have been a good thing in some ways. It gets people riled up, and we all rant about how it is crucial that we have a Twitter that is up. But, it isn’t down enough to make people switch to Pownce, which doesn’t seem to go down (or at least you don’t hear about it) so it therefore doesn’t get in the news.

I wish we could have a parallel universe that could compare the growth of a service with zero downtime versus a touch of it, in this case.

May 16

Spammer, Comments

Tech 3 Comments »

Spammer Comments

I had a do a double check when I saw my comment stream the other day. There was a long list of spam comments like the top one, and then suddenly there was, what looked like, a real thoughtful response to one of my posts.

I sat there imagining a CAPTCHA farm in indonesia with a guy pluggin in spam crud, and actually being a smart chap who puts real comments into threads now and then.

Or, it could just be a glitch in the matrix…. nice to dream though.

May 15

Enterprise vs. Consumer

Java, Tech with tags: , , 1 Comment »

Enterprise  Consumer

There has been a recent shift in thought, where people believe that we are in a phase in which the consumer space is pushing innovation into the Enterprise space. The general thought process is that the Web has made things very easy and inexpensive to play, and has taken the lead in productivity which we now see pushing the behind the firewall types.

We can look back a little and see how J2EE was pushing the Java stack forward not too long ago, even if the EJB of then may not have been the right road to go down. Ignoring EJB, there were a ton of other great technologies that did actually simplify the life of the Enterprise. Some of these folks were trying to deal with CORBA. Others were used to integrating through messaging and may not have had quite the same pain. EJB was “simple” compared to the myriad of CORBA specs and half implementations though.

Jump forward a few years and we see EJB 3 having the main message as “simplicity”, and many other Java specs were doing the same. The worm had turned a little.

Of course, if you look back at history you see a ton of other stories. If we think back to how IBM was progressing the computer world from the Enterprise inwards, compared to something like the Sinclair Spectrum.

There is always innovation on both ends, and hopefully the “good stuff” that happens to transcends the needs of the consumer or the enterprise pops out to the other side.

A hot topic right now is “Enterprise Mashups”. A lot of large shops have seen how simple it is for the Web 2.0 folk to mash together Web systems to create a new system that meets their unique needs. As they watch this, they look at the massive integration projects they have going on, and how painful and expensive they are. Here we see the constant battle between the IT group and the business groups that want to just get stuff done. Access was so popular as people in the business units could hack on it just enough to get something done, without having to go to the IT department to get an app developed that would take forever. Internal mashups have the promise to do the same.

Of course, it isn’t that easy. A little Google Map + Data mashup is one thing. But, behind the firewall you have to deal with auditing, authorization, authentication, and all of that Enterprise stuff. There can be a reason why there is complexity.

Why am I blabbing on about this? I had some people talking to me about my recent Sun posting (you know, where they bleed a little) and a common thread was “should Sun stick to the Enterprise?” The thinking here is that Sun makes its money (at list I think so) from large Enterprise customers. The big consumer ra-ra around JavaFX as a Flash/Silverlight competitor makes Sun look like a company that it is not.

If you believe that the route to winning is “do consumer well, and then let it bleed to Enterprise” then you could see why Sun is so desperate to get this working. If you believe that there is room in focusing on the Enterprise customers, and giving them what they need, then you may see JavaFX as a waste.

I don’t quite see it as a waste myself. Chris Oliver just posted Why JavaFX? where he states:

Our goal with JavaFX is to deliver a “media” stack for the Java platform. What does that mean? Well, in simple terms, 5 things: Audio, Video, 2D Graphics, 3D Graphics, Animation

There is value there. If you partake in some of Ben’s vision, then Enterprise software doesn’t have to be grey and boring. In fact, it could even resemble a video game in some situations. So, having this stack is very useful indeed. The problem has been in the details. It has been sold at JavaOne as The Saviour. The big thing that Sun is working on. The thing you should be excited about with Java. In fact, it is some nice features that will enable us to do better things in all software.

As I outlined in my last post, I would just prefer to see a more balanced outlook, and one that showed a focus on other things, especially productivity. Blend this all together to show how the league of Java developers can productively produce compelling, usable software for their end users. There are legions of developers in the Enterprise trenches, at companies with large wallets, that would love to be more productive.

May 14

Damned if you do; When do you eat your own dogfood?

Comic, Tech with tags: , , , 2 Comments »

Eating your own dogfood

When should you eat your own dogfood? I saw two contrary thoughts recently that showed how sometimes you are damned either way.

Microsoft Silverlight Dogfood

I hit Channel9, or some baseball thing, or any random video site that uses Silverlight and I get the in-your-face “upgrade for a better experience” message. This has me thinking “geez, why wouldn’t they just use Flash here for the cheesy little video.” It feels forced and gratuitous.

But, then….

Curl using Flash

If you go to Curl.com you will see Flash content everywhere. It is easy to laugh and say “wow even Curl doesn’t use it!” and “How can they not eat their own dogfood”. Or, you could look at it another way: “They realise that they are enterprise players, and they don’t want to force a download on people who are just browsing their website.”

All of this brings us back to the question of when to eat your own dogfood, and it appears that the answer is nuanced. You don’t want to be bloody minded about it either way, and it depends on what you are doing. Are you forcing dogfood on your own teams that have a vested interest in making the thing better? Are you trying to shove it down other peoples throats? Could you even do both. For example, if you have Curl installed use that (showing something cool in addition), else, show Flash but have a small link to the Curl version if people are interested.