Technology analysis of the latest gadgets, consoles, and computer architectures.
Saturday, September 19, 2009
Motorola CLIQ: "Everything was a blur..."
While WebOS on the Palm Pre provides a mechanism to receive notifications and integrate your online accounts onto the device, it does so in a way that is non-obtrusive and functional. Motorola's Blur, on the other-hand, brings you all of your social network notifications within one universal inbox, in which you'll have to swipe through (or select individual networks) to follow the stream. I feel that Blur would be on the verge of social network / information overload.
When I want to dive into the stream with the Pre, I use applications such as Tweed, Google Reader, and Facebook. I do receive SMS updates from Facebook, but once there is a good notification-enabled Facebook app, I will likely disable those as well. I also added more filters into my Gmail inbox to only receive emails I really want to be notified about on my communicator.
The one advantage to the Motorola way is that it may be easier to view a person's social tweets or read about a topic within my stream. Hopefully there will be an application for that ;-)
For those interested in seeing a demo of the Motorola CLIQ, see below (taken from the Engadget first hands-on impressions).
Monday, July 13, 2009
Windows 7 Touch vs. Chrome OS
Windows 7, however, brings many features that make Windows are much more useful than Microsoft has introduced since Windows 95. The Apple Dock-like grouping of running windows/applications in the former quick-launch area is really nice, especially given its quick-preview capabilities (first introduced with Windows Vista). The Sidebar widgets can now be placed anywhere on the desktop, and with the desktop quick-look feature on the lower-right corner of the taskbar (just hover to see your desktop), widgets become as useful as Apple Dashboard has made them.
I'm sure Chrome OS will be bringing a unique WebOS-like interface to using a touch-based netbook. Native Client would allow Google to bring the advantage of running applications natively to Chrome OS, and Chrome OS will properly manage web pages more as processes running that can be left open while the netbook is in use. I would say Chrome OS is more appropriate for a netbook than running a traditional UI-based Windows or Linux has been.
But if you take a look at this Windows 7 touch demo, you'll see where Microsoft will excel. Many people already use Windows and are familiar with it; what is a nice touch is that Microsoft ensured that the new GUI features introduced into Windows 7 will also make touch navigation native to the OS. So without further ado, watch the below youtube clip and feel free to leave comments on any additional information you find about either OS.
Sunday, June 21, 2009
My New Communicator: The Palm Pre
After-Pre Mornings: I wake up, grab the Pre and turn on the screen. I look at the notifications bar and find a chat and email alert; I respond to the chat(s), whether they be GChat, AIM, or SMS, and I look at the emails (both work and personal). I then load the Google Reader mobile page and start going through all of my Facebook alerts, Slashdot headlines, and White House RSS messages. 20 minutes later, I finally put the device down and grab breakfast. I may start watching The Daily Show or The Colbert Report; if I do I still pick up the Pre half-way through the episode and start browsing the web; if I don't, I just take a shower and walk out the door still looking at stuff on the Pre.
I think you get the idea...Palm has become the center of my life once again.
I was first introduced to Palm OS by my aunt; she bought me a Handspring Visor Deluxe when I was 16, and at the time I was obsessed about syncing my Calendar, AvantGo (for news articles), Memos, and To Do Lists. I also ended up buying a SoundsGood expansion for the Handspring so that I could listen to mp3s with it, and I also obtained the eyemodule to take pictures with.
When I was 18, my aunt bought me the Targus StowAway foldable keyboard, which I used quite a bit Freshman Year of College (I had to spend time working on assignments outside of my dorm room, which insipired me to use it).
Then my family surprised me with a cell phone for Christmas Freshman year; I remember how pissed I was. I guess I was trying to avoid getting a cell phone for as long as possible; not all of my friends had cell phones yet, and I felt like I could get away with not having one (I stayed logged into AIM 24/7 at the time, and responded to emails). I think it was mostly the fact that my parents had signed a 2-year contract for me, and it was with a really crappy Kyocera phone (Phatom KX414).By the time the two years were almost up (Junior Year of College), the phone would barely work for 5 minutes without dying, so I had to get a new one. Rather than sign another contract for a new phone, I looked on ebay for a used smartphone and found the Kyocera 7135 (a Palm-OS based phone). I ended up paying ~$65 for it, which I thought was a great deal at the time for a smartphone.
The advantage of having a Kyocera 7135 is that I was able to easily migrate from the Handspring, including all calendar events, contacts, memos, and applications; it was also nice to finally have a color screen. The disadvantage was that the phone application was unstable at times and I did not get good talk time with it. It was nice being able to use a stylus to type text messages, but sometimes I would not receive messages and the phone would struggle to send them. I also started to get sick of having to constantly sync my phone to preserve my data and update web applications. I had to use a backup program that I setup to backup everything nightly to an SD card; I had to restore my phone everytime the battery completely drained or the phone crashed and I had to do a hard-reset.
Some of my most used applications on Palm OS include:
AvantGo - News articles updated at each sync; I also created a custom page load for the bus routes, which was very handy.
Tetris - This game came with my phone, and it worked great in all its color glory. I would still love to put this on the Pre at some point, but I'm willing to wait for an official app. (I tried loading it into Classic, but the game showed up black-and-white and was awkward to play.)
MineHunt - This is a classic Palm OS game, but it is still really fun to play; I also hope this ends up on WebOS at some point.
HardBall - Again, another fun classic Palm OS game.
Advanced Calc - This was a Handspring-exclusive Palm OS app that I really miss. I haven't been able to migrate it to my Kyocera 7135 or the Classic app successfully; if anyone knows how to migrate locked Handspring Palm OS apps, please let me know.
CityTime - Another locked Handspring Palm OS app that I loved. I just want to be able to have time of more than one locale...why is it so hard to find apps that do this. BTW, I currently use VelaClock on the Mac OS Dashboard...hope they develop a WebOS app!
RoscoView - This was a nice picture viewer for Palm OS.
CardBkup - The backup program I was talking about earlier.
Bebopper - A nice basic mp3 player that worked well on the 7135.
DocumentsToGo - Nice for browsing .doc files, etc.
I still can't believe I continued to use the 7135 for as long as I did; one of my friends even found a spare that I switched to when my battery was bad and the device was acting up. I really wanted to retire it, but I wasn't pleased with the lack of updates to Palm OS, and I wasn't too interested in getting a PocketPC-based smartphone (although I did consider it at one point). Blackberry was tempting for a little bit (just so that I could access email quickly), but ultimately I was looking for something that could truly become my new personal assistant and all-in-one mobile device.
Then came the iPhone...I think if I hadn't gone to the Philippines, I might have picked up the original iPhone and switched to AT&T. At least the original iPhone included 250 SMS Text Messages a month and was $59.99 for the 450 minute plan (in retrospect, I would have been very happy with this plan). Then the iPhone 3G came out...and AT&T raised the price to $69.99, or $74.99 with 250 SMS Text Messages...and I was very unhappy. At that point I had returned from the Philippines and, again, craving a new phone, I would have considered buying an iPhone if Apple had come out with the 32GB version in Summer 2008 and AT&T hadn't raised the service fees.
If Palm hadn't come along to introduce the revolutionary WebOS and the Palm Pre January 2009, and if they had postponed the release past June 6, I might have bought an iPhone 3GS 32GB instead. I've been waiting for a long time for a new phone, and I would have loved the extra space and processor upgrade. But Apple remained hard-set on locking down the iPhone and preventing it from multitasking with 3rd party apps.
So when Palm introduced the Pre and told us it would be on Sprint, I was very excited...finally, competition that would bring the service fees down and provide an alternative way of using a mobile device. And alas, I am very happy with the $69.99 Everything Data Sprint plan, and I love using the Pre. So here we go, time to talk about the Palm Pre (finally...).
The weekend the Pre was released, my friends had scheduled a camping trip to Devil's Lake and they wouldn't let me get away with sitting in Madison all weekend just so that I can pick up the Palm Pre. Fortunately my friend Jesse needed to drive back to Madison early Saturday morning for a family event, so I convinced him to leave around 6:30AM. I had been planning to pick up the phone at Best Buy, but I was worried about the limited supply (~5 at each store in Madison), so I would have gone to the store at 5AM, but Sprint sent an email letting everyone waiting know that the Sprint stores would be open at 8AM. So I ended up standing outside of the Sprint store 10 minutes to 8; I was 15 in line. At that point, I was tired, smelled of campfire, and thinking that I probably wouldn't be able to get one, given I wasn't in the first 5. But they let us all in and gave each of us a printed sales sheet with a number; by the end of the 1.5 hours I was there, they had over 100 people, and they still had enough phones for everyone!
I had U.S. Cellular up to that point (I love U.S. Cellular; they provide great cell service in Wisconsin and I haven't been disappointed, even when visiting IL, MN, or MI; customer service is also #1; if they had been able to offer the Pre with a good comprehensive service plan, I would have stuck with them; good luck to them on ending U.S. exclusive handset deals, which really only benefit the large cell service providers.) The switch took a couple of hours, so I had to take the Palm Pre home and was unable to turn it on until the migration completed. Fortunately Sprint had a way to check the status online (it turned out the rep was missing a key piece of information that I provided when I called customer service after going home).
When I first turned on the Pre, it asked me to register for a Palm Profile and then asked me to log in to my online accounts. First was Google; all I did was type in my login info once on the phone, and with a couple exceptions the phone downloaded all of my contacts, calendar events*, email, and logged me into Gmail chat. Next was Facebook, and then Synergy began to do its thing, linking my Google contacts to Facebook. I found that it did a relatively good job; it even pulled in my contacts' photos from Gmail and Facebook and put them as the contacts' photos :-) And it is very easy to link more contacts together or remove incorrect links, and correcting Google contacts results in the changes being pushed back to Google (and vice-versa). I was so impressed with this...this is exactly what I wanted my new communicator to do...no need for syncing with my computer! In fact, the first time I actually plugged in the usb cable to access data was to mount the device in USB target disk mode, where I can drag files back and forth, and that's how I added some audiobooks, mp3s, images, and Classic apps. I have not used media sync yet (I'm not terribly interested in using iTunes as my media manager, although if I can have sync'ing happen over wifi, I would consider it).
WebOS also had no problem connecting to Exchange using the web-access http method; it downloaded my mail, calendar, and provided access to the Global Address Book within contacts. The only issue is that sometimes you need to look at the Accounts section for alternate apps and make sure you don't need to enter your password a second time; once you do this, everything starts syncing as excpeted.
*With regards to Calendar, I had a Google sync'd version of my work calendar in addition to the Exchange-based calendar. Both of these calendars for conflicting with one-another, which caused the day view from not being displayed properly. However, I continued to receive event notifications, and the day were gray-shaded within the month view. Anyhow, by disabling and re-enabling calendars, I was able to get the Calendars to show up.*
The browser is very fast and I've been relatively happy with it. With regards to mp3 links, I am able to stream podcasts over 3G, and most of the time I am able to listen to the entire thing without refreshing the page. This does tend to be a memory-intensive task; once the podcast has fully buffered, I tend to run out of memory and am unable to open anything other than the podcast. I have also noticed that WebOS acts similar to a web browser with tabs; if you open tabs that consume a lot of memory, some browsers (and older versions of Firefox) have difficulty recovering memory after you close done a tab. The only resolution to this on a desktop is to completely shutdown the browser and restart it. With WebOS, I find myself having to close down ALL open cards and wait up to a minute before I can open new cards again; on rare occasions I also have to reboot the Pre to have it free all memory. Having some better garbage collection and memory management within WebOS should drastically improve performance and useability, and I expect this will improve in the future (that's the negative of designing a truly multitasking environment, but it's a good negative to have ;-) ).
One more thing about the browser...it has great pinch and double-tap support (almost exactly the same as the iPhone's), but the pivot is the best feature (just hold down your finger on the area of the page you'd like to zoom to, and use the pinch gestures to zoom in or out within that area.
Some requests for the browser: I'd like to suggest that the orange button on the keyboard, which currently functions to move the cursor in text boxes, also provides an option key or right-click function, in which I would be able to click on a link or a picture and Save As (to support downloading files to the communicator). It would make me very happy to be able to download an mp3 or save a jpeg without having to plug the Pre into my computer or send it via email. I would also like to be able to copy and paste into fields within the browser, and to select text to copy/paste that isn't in an email, etc.
I am extremely happy with the Messaging app and the notifications area. I find myself chatting with my friends a lot more often now than I have during the last few years. I just haven't had the desire to login to a chat program and leave it running; the phone is the perfect place for an always-on chat program to run. I love how Gmail, AIM, and SMS are tightly integrated within this app, and I find great enjoyment walking and chatting with people (I think it will become my new pass-time; it will get me to enjoy the outdoors more often).
I enabled the advanced gestures, and after having gotten used to them, I enjoy doing right-to-left and left-to-right gestures to alt-tab between open cards.
As soon as I realized that I could use Pandora Radio in the car, I went to Best Buy and started testing Bluetooth stereos. I found the Pioneer DEH-D7000BT to be the easiest to configure and pair with my phone, so I went with that, and I have not been disappointed! As long as I leave the Bluetooth radio on with my phone, I can walk into the car, turn on the stereo, and it automatically links up to my phone within 1 minute. At that point, I am able take calls hands-free and listen to internet radio and use turn-by-turn over the stereo! In fact, these apps were designed so well that when I receive a call, Pandora automatically pauses, and when the call ends, Pandora resumes! With turn-by-turn by Sprint, the music fades out while the directions are read, and the music fades back when the turn-by-turn is done talking! It's so awesome...I was even able to drive between Madison and Milwaukee on 94E and then 43N and finally highway 60 without any skips (Pandora may take a few seconds to buffer if I skipped a song though).
In terms of 3G and Wifi performance, using the iPhone speedtest, I was getting ~1500 Kbps on 3G (full strength) and ~2500 Kbps on Wifi, which is better than the iPhone.
SprintTV is great (high-quality and loads quickly), and Youtube works great (the browser automatically passes any youtube link to the app so that it loads properly on the Pre). I also enjoyed being able to update WebOS without needing a PC (over the air)!
This has gotten really long, so I'm going to try to wrap up. The Music app needs to at least be able to resume mp3 playback (it is difficult to listen to audiobooks without this capability); it also needs to allow me to create custom playlists on the fly. I also would love to have more than 8GB (so easy to fill with audiobooks, images, etc.). But aside from the above complaints, I've been extremely happy with the Pre, and would recommend it to anyone who is looking for a good alternative to the iPhone. In fact, if one is looking more for a communicator and less for a mobile computer, the Palm Pre fits perfectly for this role. I feel that the iPhone is great for multimedia, apps, and gaming, but the fact that you can't stay logged into AIM (without using Apple's push notifications or GChat while you are browsing the web and listening to Pandora Radio is a huge gap in how I expect to use a mobile device. Please feel free to leave comments or send messages to @techramble on Twitter.
Links (Updated 3/24/09):
Anandtech Palm Pre Review
Ars Technica Palm Pre Review (Part 1)
Ars Technica Palm Pre Review (Part 2: WebOS)
Engadget Podcast Palm Pre Review Discussion
Palm Pre on MP3Tunes Forums
P.S. Pandora is nice to have, but Last.fm is what I really want on the Palm Pre! Please follow through with this soon, Last.fm!
Wednesday, April 01, 2009
Onlive: Gaming in the Cloud
I think that it's quite possible for something like Onlive to work; with a high throughput connection, one can stream at up to 1080p (albeit with more compression and possibly less quality than locally) without having to upgrade one's PC everytime the next generation of games are released. Control signals (such as mouse and keyboard input) do not requirement much in terms of bandwidth, but they are very demanding in terms of latency. There's a reason why gaming mice exist: to increase the resolution and physical-to-digital capabilities of one's input to the PC, and all that information needs to be transmitted very quickly to the remote servers to provide that ideal fast, remote compute system experience. Given possible deals to provide gaming as a service through transmission line companies (i.e. cable, phone, etc.) or local data centers (i.e Google), the company would be in the position to install systems at locations that can provide low latency to the gamers and provide a good experience.
As the gaming industry begins to surpass the movie industry, one can envision people willing to pay a monthly subscription fee similar to cable to be able to play unlimited games anytime, without having to use a powerful console or PC. Most likely, Onlive's largest issue will be its capacity to scale; games are power-hungry and will require huge compute farms based on the number of users in that local area, and these compute farms need to be duplicated in local environments to provide low latency to users. This will likely be more expensive to run than Youtube, given that Youtube only has to transcode the content once and serve there-in. This will be an interesting company to follow...don't be surprised if a large transmission line or Internet company ends up buying them in the near future.
See also: Engadget
Wednesday, March 25, 2009
The Open Company - Running your business as if it were an open-source project
Sunday, March 15, 2009
Apple TV: More than just Movies and Music
The Nintendo Wii won me over as soon as I realized the social potential of the console. The first task to complete with a new user on the Wii is to create a new Mii for everyone who wants to play, which alone sells the console's ability to bring people together and introduces a new style of wireless gaming. It is also a perfect console for someone who does not own any Nintendo consoles; the Wii provides full Gamecube game and controller compatibility along with Virtual Console releases of most [Super] Nintendo [64] and some Sega and Turbo Grafx games.
My appeal for the Playstation 3 is quite limited right now, especially given that they have removed backward-compatibility for PS2 games. I am currently at the stance that I will only purchase an Xbox360 or PS3 if the consoles are redesigned to be smaller and to run cooler. In fact, the Xbox360 is more appealing at the moment since I have wanted to play certain Xbox games for a while (Oddworld, DOA3), the 360 provides backward-compatibility for their previous system, and the CPU and GPU are both 65nm now and power consumption drops to nearly half of the original 360.
Finally, I gave in and purchased a Nintendo DS to use during my travels between the Philippines and the U.S. last year, and that was also well-worth the purchase. I still enjoy bringing it out and playing some Mario Kart or Brain Age on the bus on my way to class, and I absolutely love the dual-screen stylus and key combos (pick up the system and try playing Zelda Phantom Hourglass or Elite Beat Agents and you'll understand). I wish more games were available that use the Nintendo DS in tandem (as a controller) with Wii games.
The one aspect missing from the Nintendo DS (and that the Sony PSP currently has) is the ability to download and store games on the device without any add-ons (like the R4, which is awesome). The iPhone is Apple's first dive into downloadable programs for an iPod-like portable device, and naturally (due to Apple's desire to create a portable device that is fast and fluid with its innovative UI) the iPhone has become a gaming device on the realms of competing with the Nintendo DS and the Sony PSP. Let's compare the specs of these three portable systems:
Nintendo DS - ARM946E-S (67 MHz, handles 3D) and ARM7TDMI (33 MHz, handles 2D)
Sony PSP - 2 MIPS32 R4000-based CPUs (333 MHz) and GPU (166 MHz)
Apple iPhone - Samsung S5L8900 (ARM, 412 MHz) and PowerVR MBX GPU
Based on the specs, the Sony PSP is by far the most powerful portable gaming system, but the Apple iPhone is not too far behind. If Apple were to allow the Samsung CPU to operate at the full 620 MHz, it might be able to compete reasonably well with the Sony PSP. And given that people like me prefer to only carry around one portable device, an all-in-one phone/pda/ipod/gaming device is very appealing. So I think the Apple has a lot of potential to compete with Sony and Nintendo in the portable realm.
But what about the console space? Can Apple compete there? Well, contrary to previous gaming system introductions (Microsoft with Xbox, Sony with Playstation), Apple has introduced gaming to their portable device first, but that doesn't stop them from bringing the experience to the Apple TV. Alas, the iPhone and Apple TV GUIs share similarities in that both devices run the same core OS (atop of differing processor architectures), and both are designed to present the user with a more limited albeit extremely useable experience given the specific purposes they serve. So, as with Mac OS X 10.49 and above when Apple had to deal with different architectures in their PCs and laptops, Apple now faces a similar predicament in the Apple TV and iPhone OS realms. Fortunately, their solution on Mac OS X was Universal Binaries, which I think was brilliant, and is a solution flexible enough to be implemented on their counterparts. Just as Universal Binaries provide PowerPC and x86 32-bit and 64-bit binaries and libraries on PCs, they could also provide ARM and x86 binaries and libraries for the iPhone and Apple TV, respectively). And on these more limited devices, the user doesn't even need to know how the software packages are distributed.
So we are not very far off from seeing an Apple TV with support for iPhone applications, including games. And hence the CNET article documenting a patent for a type of Wiimote-like remote for the Apple TV makes perfect sense (although I don't understand why they can't just employ an iPod Touch Nano for this purpose :-D ).
Sunday, February 22, 2009
Palm Pre
Anyhow, enough complaining about the iPhone, let me just brief you on the Palm Pre and why I think it's worth a great deal of attention.
Features:
- Magnetic induction charging technology
- All data syncs over the air (this is big because i really don't like docking my phone anymore, and haven't for years except for backup purposes)
- "Deck of Cards" style GUI (more on this later)
- WebOS, resulting in all applications using Web 2.0 APIs
- Has a keyboard that recesses into the device
Unfortunately, they are only including 8GB of flash (and no expandable storage). But despite the fact that I refused to buy the iPhone until a 32GB version came out, I don't really care much that the Palm Pre doesn't have enough storage for music. And that is because the Palm Pre is designed to be an always-connected device, while the iPhone is designed to be more like a portable computer. As much as I appreciate the graphics capabilities of the iPhone, I think more effort should be put to bring the platform more closely tied to the net. And despite the iPhone supporting full desktop APIs, I appreciate that Palm is trying to bring application developers to designing local web-based applications.
In order to address the GUI, I have to bring up my current (personal and job) workstation tendancies. At work, I use an 8 virtual desktop setup (using Virtual Dimension). I devote a desktop for source code, a desktop for all of my Cygwin instances, a desktop for CRTs to my board(s), two desktops for web browsers (one for personal and one for work), a desktop for email, a desktop for Microsoft Office documents, and a desktop for misc remote tasks. I have found myself to be extremely productive with this setup.
I was really excited when Apple finally introduced virtual desktops to OS X 10.5 (termed as "Spaces"). I started out with 8 on my personal laptop, which had a similar configuration for work, except that I had a music space instead of CRTs, and I had one for virtual machines. Two weeks ago, I switched to 12 desktops with the following setup: 3 horizontal spaces for web browsers and other web-based tools, another set of 3 horizontal spaces for email, pdfs/images, and ical, another set of 3 for music, chat, and microsoft office, and another set of 3 for virtual machines, remote desktop, and terminals. And I have to say, I did breath a sigh of relief once I expanded my desktop configuration, and I just love having multiple desktops.
So now you can understand why I would love that approach on a mobile device. Being able to configure certain spaces for email, web browsing, chat, and music makes it very easy to use and find the tasks that I need instantly. Multitasking becomes a breese, and my stress level goes down a notch. So despite the fact that the iPhone is more of a multimedia device and the Palm Pre is designed to be a communcation device, I would much prefer the communication device with media capabilities. As a result, I am really looking forward to the Palm Pre.
For more, check out the Palm Pre CES Press Event and watch a primary contributor to the iPod design present the Palm Pre.
Saturday, October 04, 2008
The New Age of Desktop Computing
From the 1980s when desktop computing exploded until less than a few years ago, a traditional desktop computing experience would have consisted of a Windows or Mac OS-based machine bundled with applications that serve a variety of tasks, such as productivity (Microsoft Word and Excel), entertainment (Winamp, Windows Media Player, DVD Player), creativity (iPhoto, Fruity Loops), and games (Unreal Tournament, Quake 3, Warcraft 3). Much of the time, many of these applications were bundled with the OS or purchased at the store. Once the Internet became more accessible to computer users, programs were commonly downloaded and installed; I probably have at least 4 CDs worth of downloads, and many more burned CDs of old Linux distributions and floppies of even older backups of downloads before I had a CD burner. It sure was convenient to have enough space to install all of these applications on my computer; I shudder thinking back to when I had to delete an application to make room for another on the 40 MB hard drive of our Apple Mac LC II.

But then, in the mid-1990s, the Internet became more affordable and widespread, and content distribution online provided a means to reduce the acquisition time of software, music, and on-demand video from potentially days, weeks, and greater to hours, minutes, seconds, and milliseconds. AOL provided a new avenue for interactivity and communication, providing channels with initially text-based and then audio and video-based content, and giving millions of people access to e-mail, chat rooms, and instant messaging. E-mail started moving away from the desktop; instead of Microsoft providing access to one's e-mail through desktop applications such as Outlook, AOL started providing e-mail within its all-encompassing Internet application. Many other companies were providing e-mail services during the same time period, but AOL was the one that began the trend of de-emphasizing the importance of the desktop application. Yes, for much of its life, AOL was a desktop application, but with AOL it no longer mattered where you, as a user, were when you connected. You could go to your friend's house and, assuming he or she had a computer, a modem, and a phone line, you could connect to AOL, check your e-mail, browse your favorite "channels", and chat with your friends.
But alas, things changed once more. People realized that there was a world outside of AOL, and that avenue was provided to you by Internet Explorer and Netscape. Schools started outfitting labs of Internet-enabled computers, and instead of AOL people now had Yahoo Mail and Hotmail accounts. My dad listened to the Voice of America using Real Player over the Internet; teachers would listen to music online during Study Hour. E-mail and directory services became the first true web applications, followed by portal pages (such as my.yahoo.com) and search engines. Soon, news and media outlets were springing up online; Launch Media went from sending music videos and interviews bundled around a Flash interface in CD form in the mail to serving on-demand music videos at launch.com. And at this point in time we started seeing more "enablers", or desktop applications, that served the sole purpose of decoding packets from audio, video, and textual services off the Internet. Real Player was extremely popular for streaming audio and video, Winamp for shoutcast [online radio station] streams, and PointCast for news. Macromedia Flash was mostly being used for animation in desktop applications, just as Adobe Acrobat Reader was used for universally viewing documents.
Then came the dotcom boom, or, in more desktop-centric terms, the migration of transactional-based services (and applications) onto the Internet. Along with the added power of the search engine, consumers could now go onto the Internet to learn about new products and become more exposed to competitive pricing than ever before. Most importantly, moving transactions online meant that consumers could buy anything from anywhere instantly (and wait 5-10 days for the item to arrive at your door).
Finally, the desktop applications started to migrate over to the cloud, one-by-one. AOL moved e-mail and eventually their content to aol.com. Microsoft moved Money to money.msn.com (see My Money). Intuit TurboTax moved to turbotax.intuit.com. More and more people are now relying on Google, Yahoo, and Microsoft to retain their e-mail and handle virus and spam detection. Even virus scanning has moved online. Although originally initiated by companies touting the "Web Operating System" or "Web Desktop" (and you've probably noticed by now that I regularly use an online encyclopedia and dictionary), we are now seeing popular productivity apps brought to the net by the likes of Google and Microsoft, music players by the likes of Last.fm and Pandora, and video players by the likes of Youtube and Hulu. There's even online photo editing and video editing apps, online backup solutions, and [ajax]Windows.
And last but not least, chat and chat rooms have evolved into blogs, forums, and text article comments, leading to the social networking revolution. Despite the fact that ajaxWindows looks to be one of the closest, most comprehensive replicas of the desktop computing experience, I would argue that Facebook, Google, and Yahoo are poised to become the face of the new age of desktop computing.
I'm going to start with Facebook. Facebook caught be by surprise when they announced the Facebook Application Platform. I absolutely reviled by Facebook when I first heard people talking about it. It seemed to me like a dating service mashed together with college kids who needed another avenue to waste time talking about people and events (and how drunk they got last night). Eventually (almost 3 years after its advent), I gave in, not because I was bored and needed something to do (trust me, the UW School of Engineering kept me plenty busy), but because I had seen the nice, clean interface (thousands of times better than MySpace), I was concerned about privacy, and I wanted a better way to stay in touch with all of my friends. Most of all, Facebook provided me a means of having a visual representation of my social graph and establishing contact with friends (and friends of friends). So I created my profile, and due to lack of time my activity remained relatively low until the applications started coming in. Photos, Events, the Wall and the Inbox became incredibly useful for sharing and viewing photos from events, inviting people to events or having access to a live birthday calendar, and exchanging messages, both publicly and privately. Then the Application Platform was created, the applications started rushing in, both from Facebook and third-parties, and I found myself using Facebook as a tool to share photos, notes, and videos privately with my friends from my trip to the Philippines. Just recently, Facebook has put on a new look, and the platform is starting to look more and more like a desktop computing environment. Just take a look at Facebook's new interface:

Notice anything familiar? I see a start menu, quick launch, and task bar at the bottom and a menu bar at the top with a search box at the upper right. Scary, huh? Well, maybe it's not exactly frightening the way that organized religion may destroy the world, but it is pretty amazing how close the mainstream has come to a web operating system. With the appropriate host operating system (including the browser), Facebook could easily become the new Windows. No wonder Microsoft made such a significant investment in Facebook...
Yahoo is next in line. This may surprise some people, considering the bad press Yahoo has been getting during the past year or two. But just keep in mind that it wasn't too long ago that Yahoo was king on the web. Even today, Yahoo still has much content and services that rival Google, Microsoft, and AOL. Being the original directory service and providing the first mainstream web desktop to the masses (my.yahoo.com), it shouldn't be a surprise that Yahoo is poised to be king in content, assuming management succeeds at merging all acquired and organic business units successfully around a solid ad platform. And now, they have made the next move, arguably one of the most important decisions since Facebook created the Application Platform: Yahoo has opened up their platform to developers. Essentially, Yahoo has done to the net what it has been trying to do to its business units: create one common platform and one common interface for users. With this move, Yahoo will migrate from being a suppressed voice in social network to a much more prominent one. How else to best compete with Google and Facebook than to more tightly integrate their "10 billion" users of Mail and Messenger to other Yahoo platform applications, websites, advertisers, and other future content producers. In fact, this is a move that makes Google look like they're falling behind.
But Google does have one thing above both Yahoo and Facebook: an ad platform that is extremely effective, and web applications that provide a great web computing experience.
Google has been incredibly active, both organically and through acquisitions, in replacing desktop applications and suites with web-based equivalents. In fact, Google now sells a $50/year/user online productivity suite to businesses that provides e-mail, calendaring, chat, word processing, spreadsheet, and video applications with 10GB of online storage (and 25GB for e-mail). And Google has put the power of Keyhole's desktop application for accessing Earth satellite imagery to maps and has become one of the top destinations for directional-based services.
Google understands better than both Facebook and Yahoo (and almost the entire web community) that a new age of desktop computing is brewing, and Google wants to play an integral part in that. They understand why people have hesitated to adopt these technologies, and are taking steps to ensure more widespread adoption. They have been able to offer commonly used desktop tools to Google users' fingertips. They have taken advantage of the most powerful current web technologies (Flash, AJAX, Javascript) to provide a fast and reliable user experience with their applications. And they are trying to be everywhere, going as far as creating a universal open source phone OS and pushing for widespread adoption to increase usage of the web (and, in turn, Google) in more and more places. And innovation is key, adding APIs to as many Google applications and services as possible to encourage development and usage in many applications and devices.
Finally, Google has an overall system design perspective which is very comprehensive and relatively unique to the web landscape. Google understands that the final step in widespread adoption is to demonstrate to users that the personal computing experience that everyone is used to with their desktop or laptop can be effectively replaced with online applications and services, and at the convenience of accessing and producing anywhere and everywhere, at any time, with any device. As much of a dream this may be for some people and businesses (i.e. the Cloud Computing Initiative), it is somewhat comforting to know that one day the device in your hand need only be powerful enough to provide your user interface and a quality user experience with the services (be it voice, video, etc.) one wishes to partake in.
And to provide this experience, in addition to banking on web technologies, Google has moved onto the desktop, providing a toolbar and applications that create a better overall experience. Google Desktop provided a means to search desktop files and e-mails along with web content all in one place. Google Toolbar provided a one-stop shop for search and Google apps / services. And finally, Google Chrome has provided a fast, reliable experience with Google apps.
Google Chrome should not be looked at lightly. Although the browser is in big part a result from the development of Android [Mobile OS], in a day and age when the browser is becoming more and more the avenue to the new age of desktop computing, Chrome poises Google to become an extremely powerful adversary to Microsoft. This leads me to the main point I've been trying to make (and the reason I started writing this blog posting).
Moving the desktop computing experience isn't as simple as providing the same applications in an equivalent form onto the web. When computing power has come so far that all modern computers can handle most common tasks without any noticeable performance difference to computers 2-4 years old, it is understandable that the desktop computing experience has begun to move more rapidly to distributed, remote systems (such as Google) or to slower, smaller form-factor and/or low-power devices such as the EeePC, the Nokia N800, or the iPhone. But the major difference between moving the applications between other, slower devices and to remote systems is that the source of the speed degradation affects the user experience significantly. Moving applications from fast, local compute systems to slow, local compute systems is not the same as moving applications from fast, local compute systems to fast, remote compute systems, because response time is key. With slow, local compute systems, you lose compute power, but you don't necessarily lose response time, so the user experience only degrades slightly, and can be managed. With fast, remote compute systems, unless your task requires a significant amount of compute cycles (which most modern desktop compute tasks do not), the increased response time will outweigh the gain in performance, and the user experience will remain unbearable for the unforeseeable future. So I would argue that the only true migration path to fast, remote compute systems is to provide techniques to make the user experience as close as possible to the desktop equivalent, and the only way to properly do that is to reduce the amount of requests sent to the remote server. This is the main reason Apple had to create an SDK for the iPhone; the users did not find the long mobile network access time acceptable for the web-based applications they wanted to use. And this is why Google ultimately needs Chrome: to continue adding enhancements to both the web technologies and the browser to ultimately keep response time low for the applications users want to use.
Saturday, September 20, 2008
Celio Redfly and its Reminiscence Effect
This device lacks a mass storage device and notable processing capabilities; instead, it relies on a Bluetooth or USB connection to a Windows Mobile smartphone to provide the processing power and storage. Thie device essentially provides a Windows Mobile user with a larger screen and keyboard, similar to how a docking station provides a laptop user with access to desktop accessories.
The true qualm I have with this device, however, is that it sounds fairly similar to a design I created close to 5 years ago. I will have to consult certain parties to find out if the drawings are still available somewhere, but the basic jist is the following:
Imagine having a tablet PC but without a mass storage device or CPU; instead, it has enough space and a dock connector to house and interface with a PDA. I envisioned that one day, one would prefer to carry around his/her personal computer in a pocket or purse, hence providing immediate access to personal files and e-mail, etc. As PDA users can relate, although it is convenient to carry a personal device in one's pocket, it is very encombersome to attempt to use such a device for reading literature, browsing the web, or writing a story. As a result, one may choose to carry a laptop around, which adds significant weight to one's baggage. Instead, it would be great to just carry around the PDA only when weight and space is an issue, and use the PDA-extension when a larger screen, keyboard, and additional ports are needed.
Hopefully soon I will be able to post either the original drawing or a new mock-up of it. If anyone finds a prior art or patent on this, let me know :D
Sunday, June 01, 2008
Moving and Expanding an EXT2/3 Partition
Synopsis: Need to move and resize an EXT3 partition.
System Configuration: Gentoo Linux x86_64 2.6.20
Raid-1 Mirror with 60GB of unallocated space at start of drive and a 100GB EXT3 partition.
Brief Backstory: After setting up my media PC with Windows Vista but before my extended business trip to the Philippines, I decided to convert my desktop to a Linux server. When I first purchased this machine over 3 years ago (see historical blog postings for details), I had an extra 40GB hard drive installed that I performed an install of 64-bit Gentoo Linux on. Well, 3 years later, I decided to ditch Windows and use Linux on this machine exclusively. This required a somewhat painful upgrade process that I have yet to finish; I managed to update the kernel and some system utilities before stopping.
Anyhow, one of the changes I made to my system after using Linux exclusively was picking up a second 160GB SATA hard drive so that I could have some redundancy for my data. Now that I have returned from the Philippines and have also accumulated another 200GB of TV content, I am feeling the need to A) add a lot more capacity to my server and B) add a backup medium (aka large external hard drive) that I can rsync to. But in the meantime, I wanted to test the server to see how well it would hold up and also allow me access to my data while I was gone. The Linux server proved to be a success; it ran for over 215 days without a crash. Eventually I had to reboot it to prepare for the partition move and resize, but the Linux system is my most stable between the 3 OSs I currently use daily (Windows XP/Vista, Mac OS X, and Linux).
So, having proven to myself that Linux will be a fine replacement for my desktop OS and will function very well for my future server (and being only 1GB from filling the 100GB data/music partition), I decided to bite the bullet and try to move and resize my EXT3 data partition. I rarely had problems moving NTFS and FAT partitions in the past, so this should be a snap! I have much of my music backed up at mp3tunes.com and a burned CD of my data folder from the past year or so which should be good enough. (In retrospect, I should have done one final backup of everything before proceeding, but more on that later.)
Plot:
I referenced this guide to start. I would definitely come back to this guide in the future if I need to expand an EXT partition to the right (or shrink a partition), but it was a good reference nonetheless. I used the following command (from Page 2) to convert my EXT3 partition to EXT2 (i.e. remove the journal) and performed an fsck/e2fsck to check the filesystem before proceeding.
fsck -n /dev/sda1
tune2fs -O ^has_journal /dev/sda1
e2fsck -n /dev/sda1
I rebooting my computer and loaded Paragon Partition Manager v5 since it was able to recognize my RAID and the EXT3 (now EXT2) partition. Paragon reported no warnings or errors moving the partition to the beginning of the drive and resizing the partition. However, after booting into Linux again and trying to perform a file system check, e2fsck reported the following warning messages repeatedly (acting on different Groups and Blocks):
Pass 1: Checking inodes, blocks, and sizes
Group 0's inode table at 13 conflicts with some other fs block.
Relocate? no
Illegal block #13310 (4294967295) in inode 7. IGNORED.
I used the following command to tell e2fsck to relocate these filesystem structures, providing more console output and status updates. Without the -C 0 and -v, I found that e2fsck would run for days without ending; only when I added "-C 0" (which displays the progress bar) did I notice that e2fsck would loop forever (due to the failure described in the next paragraph).
e2fsck -C 0 -y -v /dev/sda1
After the above warning messages disappear, once e2fsck appears to finally be performing the relocations, the following error message appears repeatedly (acting on different Groups and Blocks):
Error allocating 512 contiguous block(s) in block group 729 for inode table: Could not allocate block in ext2 filesystem
After displaying the last Error, e2fsck will start over again, asking to relocate the same filesystem structures again.
At this point, I found myself fairly frustrated; if only I had broken the RAID mirror and/or rsync'd my partition before this had happened, I could have either copied from one drive to the other and rebuilt the RAID or created a new filesystem and copied the data back. But at the same time, this was a good chance to me to learn more about EXT2 filesystems. I did enjoy that 500-level OS class I took at UW-Madison a few years back, and I am using Linux...
(I apologize for missing any links that I have visited while researching this problem; I will do my best to reference links at the end of this article.)
It was time to update e2fsprogs. Gentoo makes this really easy. I'm not sure what version I had been using, but for the remainder of my work I have been using v1.40.8. Regardless of whether you are using Gentoo or not, I advise downloading the tarball of e2fsprogs, because manually compiling and modifying the source code was ultimately how I was able to restore my filesystem.
I started by using the tool dumpe2fs, which provided me with the superblock information along with detected groups, etc.
dumpe2fs /dev/sda1
If that command completed its dump successfully, you'll know that either your primary or one of your backup superblocks is not corrupted. It will also provide you with useful information such as block size and blocks/group, which will be important when you need to calculate the location on disk to perform dumps of your raw disk.
Next, I used the tool debugfs, which comes with e2fsprogs. This is a very useful tool because it allows you to perform normal filesystem access commands against your raw drive without mounting. I exclusively used 'ls' (and 'cd' when I could), but you could even create a directory if you wanted. Run the tool using the following command:
debugfs /dev/sda1
Once the debugfs console becomes available, type '?' or 'help' for a command list or just jump to 'ls'. When I tried 'ls', I received the following error:
EXT2 directory corrupted
I could not 'cd' or 'ls' other directories because apparently the root inode was corrupt! So debugfs wasn't much help at this point.
The next tool I stumbled upon was lde, or Linux Disk Editor. This tool needs to be installed seperately; it allows for raw access of the partition so that you can look up Blocks, Inodes, etc. LDE has a basic graphical interface, which also helps. Use the following command to run lde:
lde /dev/sda1
The primary superblock is located 1024 bytes from the start of the drive in Group 0, Block 0 (if block size > 1024) or Block 1 (if block size = 1024). Type 'B' to enter the block view mode, then scroll down until you reach 0x400. To change blocks, use '#0', replacing 0 with the block number you desire. Check out this site for the superblock structure definition; based on the dumpe2fs output, you should be able to compare values and verify that you are looking at the superblock in lde.
Although the root inode block number can be extracted by following the superblock information, I decided to go ahead and start adding debug printf statements to debugfs.c. Once I found the block number for the root inode, I went to the block in lde and was able to view the directory listings without any trouble. But debugfs continued to have problems.
I also tried the following command to force e2fsck to byte-swap the data before trying to access the partition.
e2fsck -S /dev/sda1
This produced the same "EXT2 directory corrupted" error message that I received when performing an 'ls' with debugfs. I started searching Google for information about byte-swapping an EXT2 filesystem. I discovered in a forum and by reading e2fsprogs change logs that e2fsprogs for PowerPC actually supported both little-endian and big-endian filesystems and had a way to distinguish between the two. However, at some point Intel proclaimed that all filesystems needed to be little-endian, at which point the PowerPC community followed by disabling big-endian support. The x86-compiled e2fsprogs always only supported little-endian, but provided the "-s" or "-S" flags to byte-swap the partitions.
So I decided to try enabling the byte-swap in debugfs by temporarily defining do_swap=1 in the ext2fs_read_dir_block2 function found in lib/ext2fs/dirblock.c. I initially enabled it without any logical conditions, which meant that every directory block that needed to be read was byte-swapped. Anyways, I found that I was able to perform an 'ls' using debugfs after byte-swapping the root inode. However, every other directory inode was not byte-swapped, so I used the following line of code to only byte-swap the root inode:
if(block == 1539) do_swap=1;
Where "1539" was the root inode block number.
I was then able to access all directories with debugfs :) The final step was to save the root inode after byte-swapping the inode structure elements. To do this, I decided to use an internal write function to perform this operation when I typed 'ls' once in debugfs. There may be a better, safer way to do this, but I knew that I only needed to run this once and quit, so this is the way I accomplished this. After the while loop but before the return in ext2fs_read_dir_block2, I added the following lines of code:
if(block == 1539)
{
printf("\nwriting to disk\n");
retval = io_channel_write_blk(fs->io, block, 1, buf);
}
Where "1539" was my root inode block number.
After compiling this in, run debugfs with the '-w' flag to allow debugfs to modify the filesystem.
sudo ./debugfs -w /dev/sda1
Run 'ls' once and quit. Don't run 'ls' more than once or you'll byte-swap again. Remove the above lines, remove the do_swap=1 line, recompile and run debugfs. 'ls' should now be able to work with all directory inodes.
If you made it this far, great! Go ahead and mount the filesystem, immediately performing an rsync dump or copy to an extra drive!
Conclusion:
I hope this blog proves useful for people with corrupted filesystems as a result of EXT2/3 partition moving with a commercial partition manager. Feel free to leave comments and I will try to help you out as much as I can. This was a great learning experience, but next time I hope to do it with data that can safely scrapped :/
Links (in no particular order):
http://ubuntuforums.org/showthread.php?t=394744
http://www.howtoforge.com/linux_resizing_ext3_partitions
http://uranus.it.swin.edu.au/~jn/explore2fs/es2fs.htm
http://lde.sourceforge.net/lde_use.html
http://www.linux-m68k.org/ext2swap.html
http://linux.die.net/man/8/debugfs
http://linux.die.net/man/8/fsck.ext2
http://www.reedmedia.net/~reed/journal/2002/20020828.html
http://www.osix.net/modules/article/?id=497
http://ubuntuforums.org/archive/index.php/t-714065.html
http://surprise.sourceforge.net/doc/tech-53.html
For those of you unable to recover your filesystem, try the free Windows tool below:
http://www.diskinternals.com/Linux-Recovery/
Saturday, December 01, 2007
Browsing a Library Catalogue and Looking at Photos in an Entirely New Way
I wouldn't mind browsing a library catalogue and looking at pictures taken throughout the world this way, ultimately using multitouch technology.
Internet-based Video Application for the Mainstream
I have been using Joost on and off for at least 6 months now; the user interface has improved drastically and the platform has allowed for a great deal of independent artists and content distributors to create channels that allow people to easily gain access to their content from a central location. The embedding of commercials between program segments also works very well, and provides for an interactive experience with the advertising companies as well.
Joost would actually be the ideal platform to allow the content distributor or artist to choose how many ads are required for their shows to allow for a variability to be applied based on viewership and costs associated to the content, etc. One program may require no or minimal ads while another would require 6-10 minutes of ads for a 20 minute program, as in traditional TV programs. I believe this would essentially ease in more traditional content distributors to give Joost a chance and provide their content for a centralized, internet-based remote-controlled user experience.
What I don't like seeing is the industry moving to their own distribution methods using either their own hosted websites or alternative sites to host multi-network content online, and here's why. I own a Macbook Pro, and prior to my upgrade to Leopard (stay tuned for more), the latest version of Joost supported my Macbook Pro remote (yay!). That meant that once I started the application, I was able to sit back and use the remote to browse the menus and select programs to watch, all hosted off of the internet.
This is how I expect future TV to work. I don't want to be required to use a mouse and keyboard to point my browser to a different website and use a less-mature flash-based html video application to watch my favorite shows (sorry nbc.com, comedycentral.com, southparkstudios.com, abc.com, fox.com, hulu.com, etc, etc). Viacom started to take the right step when Joost was first introduced by allowing some of their content to appear on the service (noteably missing The Daily Show and South Park), but lately the content is unplayable on Joost. I know that Joost has been actively trying to negotiate terms with all content distributors, and that's where this article comes in.
If Joost developers and management are reading this, please consider adding more flexibility in ad time based on what the content providers want, provide more flexibility on the types of ads shown to make this transition easier and quicker for traditional TV providers (including the option to upload ads, if revenue sharing can be managed), and allow for a monthly subscription model per channel for a reasonable cost (to bring in more cable content).
Traditional TV content providers, please don't slow down internet-based TV. It is the future of content distribution, and although adding any content online is a great first step, not using a well-designed video application like Joost and *gasp* Youtube prevents users from enjoying the experience of watching TV shows online with the same couch-potato-emphasis that traditional TV (and Tivo-like devices) provide. As someone in This Week in Tech (either episode 121 or 122) pointed out, when people think of using a computer they think of leaning, and people don't want to lean to watch TV; they want to sit or lay back and watch TV. Lets avoid mouse and keyboard usage for watching TV as much as possible, for the sake of watching TV on a computer, as I do here all the time.
More on my mediapc and Leopard later...
Wednesday, March 07, 2007
Heavenly Sword looks really sweet!
Now I officially have one reason to buy a Playstation 3.
Wednesday, February 28, 2007
Me Likey iPhone
Saturday, February 24, 2007
Monday, January 08, 2007
"Vista reeks of committee and design by massive consensus, while OS X shines from an intense focus on doing things in a simple, clear fashion and design for the user, not the programmer."
Tuesday, November 28, 2006
iTALK . Apple Cell Phone Spec Commercial
| Sweet fake ad leading to the iPhone...I really hope Apple goes through with this concept. I'm really excited, might even switch providers, if the iPhone ends up incorporating a click wheel, and really nice interface, and bluetooth. | |
