Archive for August, 2010

Syncing Music to Nexus One in Ubuntu 10.04

Ubuntu 10.04 has really improved over previous versions of Ubuntu in the syncing to devices support. In particular support for syncing music to IPhones and ITouches. They have also added support to Rhythmbox to reconize when a Nexus One has been connected to the machine (this may also work on other Android devices, I've just not tested others).

When you plug your phone into your Ubuntu 10.04 box, on your Nexus One an alert will appear asking you if you'd like to enable USB storage. Once you have enabled this, the Ubuntu system will see the phone has a USB mass storage device. Now you should be able to download all of your pictures and in Rhythmbox the phone appear on the device list. You can just drag and drop your music like you would for a playlist.

Since Ubuntu is treating the phone as a mass storage device, Rhytmbox does not know by default where to upload the music. So it defaults to the root of the SD card. If you would like to not fill the root up with all of your music you can opt to put all of your music into a music folder. To do this, you need to upload one song to the Nexus One, then open up the device in a file manager. Create a new directory called "music" and move the one song you uploaded to that folder. Now Rhythmbox will be smart enough to know to upload to the "music" folder and all the media applications on the Nexus One will auto detect the music in the "music" folder.

If you are looking for a good music player I have become a big fan of DoubleTwist. Plus if you are on Windows or a Mac you can use the DoubleTwist desktop client to manage music on the phone.

Google Wave – Waves Goodbye

Sadly it seems Google Wave days are limited. Google is pulling the plug on their Wave service sometime after the end of this year. I was surprised to hear that Wave was not doing too well, I have used it nearly every day since I got private beta access to the service. There has never been a tool created on the web that could allow true real time collaboration and also auto documents the collaboration. Video conferencing can not hold a stick to Wave, video does not provide any useful record of the conversation or a way to pick it back up immediately from where you left off.

There are probably several reasons why Wave failed, however I believe the biggest is that Wave never hit its tipping point. The saddest moment with Wave is right after you first launch it, when you realize none of your friends are their. Wave is nearly completely useless without others to use it with. I got lucky because I work closely with several people across the United States, we saw Wave as the perfect tool to help us work together. I can imagine a lot of users are not so lucky and just couldn't find a use for Wave in their personal life. To combat this, Google should have integrated Wave directly into GMail. A user should have not been able to tell the difference between a Wave and an Email, except that in a Wave the other user could see you typing your message.

Wave really could replace about 80% of my emails, mainly the ones that are for debugging or brain storming. Their will always be emails that a Wave could not replace, like receipt from Amazon purchases.  Wave would revolutionize digital conversations within businesses. In order for that to happen however, Google would need to make a push for other services to be able to host their own Waves, like the current state of Email. Where I can send an email to anyone, even people outside of Google. Wave should have been explained as Email v2, and Google should have pushed it that way.

I'll be sad to see Wave disappear, hopefully Google has a good plan to bring the benefits of Wave back.

P != NP

Dr. Vinay Deolalikar of HP Labs has written a paper proving that P != NP. This has been at the center of theoretical computer science for almost as long as computers have been envisioned. This is good news for cryptography but bad news for optimization of some useful problems, like traveling sales man.

The paper has not been peer reviewed, so the jury is still out on whether he is correct.

Microsoft’s 2019 – Where are the developers?

A little known fact is that Microsoft invests heavily into developing technologies for the future. Every now and then these researchers look to the future and into how to turn what is being developed as pure research into reality. Nearly a year ago Microsoft released this video of how productivity will be in year 2019 (ten years after the video was released). I just recently saw the video for the first time, if you have not seen it you should check it out here:

After I watched the video I was left with a few thoughts, which I'm sure was the true purpose of the video. The over arching theme in the video was that productivity will shift from application based to task based. By this I mean instead of thinking I need to open up Word to work on some research paper, I will instead have a research task that has a word document associated with it along with all of my research references and my collected data. At first glance it isn't that big of a change, users already associate related files/material together by creating folders or some naming scheme. You need to look a bit deeper, instead of the user associating files together with some type of organization, the computer will automatically discover context and associate the correct material together. It is a very cool idea and one that I am sure will come true some day. The question I think is how do developers get involved?

Since the world is not slowing at producing computer scientist, they will need jobs in year 2019 just like they need them now. So if we assume that a lot of these things come true, especially the task based productivity, what do these computer scientist do? Well clearly, a lot of the computer scientist will help develop the software that is capable of detecting the correct context and making sure this stuff stays secure. These are the developers that work for companies like Microsoft and other top software companies. What about the rest of the developers? Like the ones that do open source, developers for hire, or work for a small software company. What will they provide to an end user?

Cloud services are featured all over the place in this video. Data is everywhere you are. How does an open source developer be part of this type of world? I think it will be a lot like it is today. Protocols will be open enough to allow anyone to interface with the cloud. In order to make this possible, these protocols we will need to move from today's free services that are paid for by ads to paid for services. This will happen due to privacy concerns and cloud services will have trouble placing ads so the user will be interested in them. Interfaces to the cloud will be what open source developers are creating. Microsoft and other propitiatory software will still exist along side open source software, like it is today.

Well these other developers could not write custom applications anymore. This is because applications no longer exists. So they must provide a task environment. Now the question becomes, what does it mean to provide a task environment? This is a difficult question because we have never seen one yet. I would expect a task will resemble a rule set, where developers tell the host system in which context input should be handled by the developer's task. Then host system will provide the windowing environment and placement of the data in the user interface.

What are your thoughts?