Thursday 20 December 2007

A Googley Holiday Season



Season's greetings, everyone! To help ring in the New Year, we've got a great holiday present for you: an update to Google Desktop for Linux. The biggest addition in version 1.1.1 is support for 64-bit platforms, but we have also made many stability improvements that should be welcome to all of our existing users. Our team has worked hard over the past few weeks to get the new version out before the end of the year, and we're glad to have succeeded. So have fun with the new release, and have a wonderful holiday season � from all of us here at Google.

Wednesday 19 December 2007

Desktop Gadgets for the Holiday Season



Developer-elves have been busy creating new Desktop gadgets to celebrate the holidays. Here's a guide to the some of the most recent additions.



Christmas Tree
by Benjamin Schirmer

Deck your desktop with a one-of-a-kind tree. This tree starts out plain, with only animated snowflakes as decoration, but you can easily make it yours. Just right-click (Windows) or ctrl-click (Mac) wherever you want to add a decoration. If you're not in the mood for animated snowflakes, you can easily turn them off.




Holiday Countdown 2007 Gadget
by Beepem

Count down to the holiday of your choice � Christmas, Hanukkah, Kwanzaa, or Festivus! Snowfall is optional.


Hanukkah Menorah
by Glenn Rivkees

It might seem a little late to feature Hanukkah gadgets, but we couldn't leave out this beauty. It's both a countdown to Hanukkah and a menorah that lights candles on the appropriate days. Hanukkah 2007 may be over, but this gadget tells me there are only 368 days until Hanukkah 2008!




CALGOT and MAIMAI Christmas Tree
by 12STUDIO Inc.

Here's the perfect desktop decoration and Christmas countdown gadget for fans of CALGOT and MAIMAI. The pretty images, animated star, sparkling highlights, and delicate snowfall help make this gadget an eye catcher.




CALGOT and MAIMAI Christmas Wreathe
by 12STUDIO Inc.

If you think the snails just aren't prominent enough in the CALGOT and MAIMAI Christmas Tree gadget, try this one.



Christmas Countdown
by Bijoy Thangaraj

This simple gadget counts down the seconds until Christmas.




Fancy Christmas Frame
by Bijoy Thangaraj

Click inside the frame to add a random decoration. Each decoration fades out over time, so you'll have a blank slate unless you keep clicking!



Merry X'mas
by Lahiru Lakmal Priyadarshana

Decorate your Google Talk buddy's tree! Here's how:

  1. Make sure you both have this gadget. (If not, your buddy will automatically get an IM saying where to get the tree.)
  2. Click the people icon (at the lower right) and choose an online Google Talk friend (one with a green icon).
  3. If necessary, click the item preview (at the upper right) so you see a star with a + sign.
  4. Click a decoration from the items palate (upper left).
  5. Click your tree to place the decoration.
  6. Repeat steps 4 & 5 as many times as you like.
  7. Click the Send button (upper right).


Countdown To New Year 2008
by Teodor Filimon

This holiday gadget displays a different picture and message every day until New Year's Day, 2008. You can have animated snow, listen to holiday songs, and even go shopping. On New Year's Eve, you'll get a countdown to midnight.


Want more seasonal gadgets? Check out the holiday gadget page.

Happy Holidays from the Google Desktop Team!

Tuesday 18 December 2007

Google Docs Rocks

I ran across this story on Techcrunch. It states only about 0.5 percent of people are using online Word processors like Google Docs.



The numbers don't surprise me. I was a bit skeptical myself, but I have been using Google Docs for about 3 or 4 mounts now and just love it. Basically, its an HTML based Word Processor that runs in your browser. Its reasonably fast, does everything I need, and allows me to store all my documents on the Internet. Thus I can get to them no matter where or what computer I am on. Plus, I can export any document to Open Office if I need to do anything "fancy".



The numbers are not big right now, but pretty soon, in the near future, all of our desktop office applications will run from our browser.

Monday 17 December 2007

Amazon SimpleDb

Ran across a link to this Amazon announcement today at work. This goes along with other types of utility computing initiatives they have started over the past year.



Given that my ISP Dreamhost gives me 5 TB of bandwith for about $7 a month, the loading of data looks kind of expensive. But if you look at the data transfer out price, then things start to look very attractive. Interesting stuff.

Of Mice and Garage Doors

Last Tuesday or Wednesday on one of the coldest days of the year so far, I went to open the garage door so I could shovel some snow. The door went halfway up, made a mournful wailing sound, and promptly died. I waited a day or so to see if it was just the extreme cold. But alas, on Thursday the old garage door opener (it was about 12 years old in my estimation) was pronounced dead.



So now the terrible task was upon me, find a company to replace the door opener. So being a good geek, I looked up some companies in the phone book and started Googling. I ran across this article from 7 news. They did an investigation last year to see who would charge the best prices to fix a door. From this, I found Arko Garage Doors gave one of the better estimates for the job. And some more Googling around found that several people had called Arko in to fix some messes made by other companies.



So I called them up Friday. Got an appointment for Monday. They showed up on time. They installed a new opener in about an hour and I'm all set. And at a good price, woo hoo!



If you need to repair your garage door or opener in the Denver Metro area, give them a call.

Thursday 13 December 2007

Change Netbeans System Font Size

Here is another example of someone trying to make me go blind. I could not find a way to change the font size of the system controls and menu's in Netbeans. I have been doing my testing in a Windows Virtual machine using VMWare Fusion for the Mac. Well the tiny fonts used for the Project tab and other controls was driving me crazy.



Well it turns out if you go into c:\program files\netbeans 6.0\etc\netbeans.conf you can add the following parameters to the command line that launches the app:



--fontsize 14


That seems to fix things up. Now if I could just change the font family too, I'd be in business.

Wednesday 12 December 2007

Using Subversion with Netbeans 6

The other thing I did last night was to experiment with Netbeans 6.0 and Subversion. I wanted to figure out how it interacts with a Subversion repository.



For a typical Subversion project, by convention you want to setup 3 directories:


  • branches - This directory is used for branching your code so development can occur in more than one place in your repository.
  • tags - This is essentially a snap shot directory. Whenever you provide a release, you make a snapshot here. That way, the code's state is preserved for all time.
  • trunk - This is where all the main development takes place. You checkout and commit your code in this directory.
Well, Netbeans 6, does not setup these directories for you when it writes your project to the repository. So, if you want to follow convention, you need to set them up first.


I was also not sure how Netbeans 6 would handle an Enterprise Java project that has a main project, and potentially, 3 more: an ejb project, an application project, and a war project. Does Netbeans 6 include the code for all 4 projects when you do an import? Or, do you have to setup separate set of directories for each project?



Well, I first tried it with an old project to see what happened. I opened the main project and did an import. Only the main project was imported. "What a pain in the rear end!" I think to myself. Not good. As this implies I would need to setup a set of directories for each subproject.



But upon further testing I discovered that if you have all of the projects open when you do the first import of the main project, it picks up the other three subprojects. Yay!!!! That's how it should work. All 4 projects are included in the same trunk directory. So just remember, make sure you have all subprojects open when you do your first import. That way, Netbeans will automatically include them.

Getting Subversion for Netbeans on Windows

I'm working on a JPA project a work and now that I'm getting into the more advanced stages of the project I wanted to put my code under version control. Being a a fan of OS X, Linux, and Solaris, I'm a bit of a command line weenie and prefer using the command line version of Subversion. However, I was having very little luck finding a command line version for Windows. As I was about to install TortoiseSVN, an SVN plugin for Windows Explorer, I started playing with the Subversion support in Netbeans 6.



When I tried to do anything from the Netbeans 6 Subversion menu, I got an error stating that Netbeans needed a command line version in the system path to use this feature. Much to my delight I was pointed to this site:
http://netbeans.open.collab.net/
which contains the latest precompiled versions of subversion clients for a number of OSes. I downloaded the Windows version and installed it. Instant Netbeans command line client for Windows. Thanks Netbeans team!!!! :)

Media Sites are trying to Make me go Blind

Have you been to My Yahoo! lately? The O'Reilly site (the books place, not the dude)? Any newspaper site?



It seems 8pt fonts are in vogue. Many of these sites are trying to cram more and more stuff onto their sites. Why? To make them more confusing? To make them unreadable? One begins to wonder. Maybe they look ok at 1027x768 but on a big monitor they look awful.



At least allow me to change the settings. One gets tired of hitting Cntrl-+ all the time. Grrr.



-- End of rant for this week --

Sunday 9 December 2007

Tin Man

If you didn't see the Scifi Channel's Wizard of Oz rethink this week, I highly recommend you see a rerun. The miniseries was surprisingly good. I like how they made a completely new story out of the old one and found a number of ways to pay homage to the original.



The wicked witch, played by Kathleen Robertson, was especially good, both hot and evil at the same time. :)

Thursday 6 December 2007

JotSpot Wiki

While scrounging around some of my site registration data, I found out that I had signed up for JotSpot a while back. If you didn't know, Google bought the company a month or two back. Rumor has it that they are planning to replace Google pages with JotSpot.



I didn't remember playing around with the Wiki, so I have started using it this week. And so far, I'm very impressed. It has all the standard features of most modern wikis. You can edit pages in text or wysiwyg. But what sets it apart is it has a series of applications you can install as wiki pages. For example, a blog application that is simple, yet has all the basic features. A powerful to do list manager that supports hierarchical lists. It also has a project manager app that I haven't tried yet.



My understanding is Google plans to make the application free, which would be awesome. It makes me wonder if I will even need to keep the wiki software on my site. Will I be able to mash it into the page much like I do this blog? Hmmmm. Maybe. I bet it will be part of Google Apps too.



The day is coming where all our applications will run from our browser not from our operating system. And if that day isn't already here, its coming very soon.



According to the home page (http://www.jot.com), registration is closed until they relaunch under the Google banner. But I do have a form for sending invites. So if you are interested in giving it a try, let me know. We will see if that form works.

Netbeans 6.0 Out!

Netbeans 6.0 is out as of Monday. Been meaning to write a post since then, but here it is Thursday already.

Netbeans 6.0 definitely feels faster on my machines. And based on my current project, the EJB and JPA interface areas seem much cleaner. Have not had a chance to play with the Netbeans/Ruby IDE yet, but hopefully will on the weekend.

So if you get the chance, check it out at http://www.netbeans.org.

Monday 3 December 2007

Android Emulator in Action

Android Emulator is included in Android SDK. It can be involved inside Eclipse IDE, or run as a standalone application.

Featured Gadget: Concise System Info



This blog periodically features a Google Desktop gadget and a quote from someone who uses it. If you'd like to recommend a gadget, send an email to desktop-gadgets AT google DOT com.

Roger Pack, a Google Desktop user, says: "Concise System Info rox! I just set it floating at 75% zoom and then minimize Google Desktop. When my computer slows down I can restore gadgets and immediately know why my system is slow."

More information | Download gadget

Install Android SDK and Eclipse's Android Development Tools plugin

out-dated information!!!
Pls. refer here, "Install Android SDK on Eclipse 3.5 Galileo", for update information. ~edited 2009-07-18.

In order to setup Eclipse for development of Android, both Install Android SDK and Eclipse's Android Development Tools plugin are needed.

Download Android SDK and unzip it in any folder you want, it's "C:\App\android_sdk_windows_m3-rc22a" for me.

Android Development Tools plugin can be download inside Eclipse IDE.

  1. Start Eclipse, then select Help > Software Updates > Find and Install....
  2. In the dialog that appears, select Search for new features to install and press Next.
  3. Press New Remote Site.
  4. In the resulting dialog box, enter a name for the remote site (e.g. Android Plugin) and enter this as its URL:
    https://dl-ssl.google.com/android/eclipse/
    Press OK.
  5. You should now see the new site added to the search list (and checked). Press Finish.
  6. In the subsequent Search Results dialog box, select the checkbox for Android Plugin > Eclipse Integration > Android Development Tools and press Next.
  7. Read the license agreement and then select Accept terms of the license agreement, if appropriate. Press Next.
  8. Press Finish.
  9. The ADT plugin is not signed; you can accept the installation anyway by pressing Install All.
  10. Restart Eclipse.
  11. After restart, update your Eclipse preferences to point to the SDK directory:
    1. Select Window > Preferences... to open the Preferences panel. (Mac OS X: Eclipse > Preferences)
    2. Select Android from the left panel.
    3. For the SDK Location in the main panel, press Browse... and locate the SDK directory.
    4. Press Apply, then OK.


Sunday 2 December 2007

Gmail 2.0 performance issues

The new Gmail 2.0 interface kills the performance of my Dell Inspiron 3500 laptop running FreeBSD 6.2 with the Fluxbox-0.1.14 x11 window manager and the Firefox 1.5 web browser.

Using /usr/bin/top shows the difference. Once Gmail 2.0 loads up and the initial load spike settles down 'top' shows CPU activity between 10-30%. Switching back to Gmail's Older Version drops the CPU down under 2%. Also, I configured /usr/local/bin/pine to use the Gmail IMAP interface (gmail -> Settings -> Forwarding and POP/IMAP), in the meantime, so I can read my email w/o Firefox.

I hadn't noticed the performance issue at work where I run FreeBSD on a dual AMD64 platform. However on my ~10 year old Dell Inspiron 3500 laptop Gmail 2.0 sucks the life out of the PII CPU.

$ uname -a
FreeBSD 6.2-RELEASE-p9 FreeBSD 6.2-RELEASE-p9 #0 Thu Nov 29 04:07:33 UTC 2007 root@i386-builder.daemonology.net:/usr/obj/src/sys/GENERIC i386

$ dmesg | egrep "CPU|MB"
CPU: Pentium II/Pentium II Xeon/Celeron (397.05-MHz 686-class CPU)
real memory = 134152192

Also, it appears the new Gmail interface is buggy. In fact, while typing this entry the browser (Firefox 1.5) crashed and left a nice core file for me in my /home directory. Apparently, according to PC World, I'm not alone in my complaints.

Saturday 1 December 2007

Install Eclipse


Eclipse is a free Open Source IDE, it can be download from http://www.eclipse.org/ or the download page here.

The first package, Eclipse IDE for Java Developers, contains what you need to build Java applications.

Click the selected package to involve the mirror selection page, select your closest mirror site, start download and save it to any position on your machine you want.

After download, un-zip it on any position you want. It's the installed folder, "C:\App\eclipse\" on my setup.

When you run the application "C:\App\eclipse\eclipse.exe", you will be asked to select the workspace, it's "C:\App\eclipse\workspace" for me.

Remark: JDK is assumed to be installed before install Eclipse.

Friday 30 November 2007

Android Emulator

The Android SDK includes a mobile device emulator � a virtual device that runs on your computer. The emulator lets you prototype, develop, and test Android applications without using a physical device.



More: Android Emulator - Android

JDK 6 + Eclipse + Android SDK

out-dated information!!!
Pls. refer here, "Install Android SDK on Eclipse 3.5 Galileo", for update information. ~edited 2009-07-18.


One of the development platform, which I used, is (JDK 6 + Eclipse + Android SDK) run under WindowsXP.

JDK 6 is the Java Development Kit from Sun.
Android SDK is the core to develope Android application.
Eclipse IDE for Java Developers is a free Open Source IDE for Java development. Android Development Tools plugin is needed, in order to work with Android SDK.

Thursday 29 November 2007

Androidology@YouTube

Part 1 of 3 - Architecture Overview

Part 2 of 3 - Application Lifecycle

Part 3 of 3 - APIs

What is Android?


The Android platform is a software stack for mobile devices including an operating system, middleware and key applications. Developers can create applications for the platform using the Android SDK. Applications are written using the Java programming language and run on Dalvik, a custom virtual machine designed for embedded use which runs on top of a Linux kernel.

An early look at the the Android SDK is also available. It includes sample projects with source code, development tools, an emulator, and of course all the libraries you'll need to build an Android application.

more: Open Handset Alliance

Google Gadgets for the Mac



Google Desktop for Mac now supports gadgets! For details, including a video demonstration, see the Official Google Blog post.

Android

Monday 26 November 2007

Cicsco VPN Client on Mac OS X Leopard 10.5

I have been trying to set up my MacBook Pro to use for work for the last couple of weeks in my spare time. Getting applications installed, getting stuff configured etc...



So today I finally made the decision to make the switch for work. The litmus test for me is of course, the Cisco VPN 3000 client must work period. If I can't log into my work computers, I'm wasting my time. So I got the latest version from Sun and installed that to get the settings. Then found the latest version of the client on version tracker.



Everything installed fine, but after I restarted my machine I got the infamous "Error 51" blah blah, your VPN client doesn't work error.



Well I thought I was hosed, then I found this post by Anders Brownworth and it saved my bacon. Run this command to reset the client:

sudo /System/Library/StartupItems/CiscoVPN/CiscoVPN restart



and you are good to go.

Wednesday 14 November 2007

MySQL on OS X Leopard

Apparently there are some issues getting MySQL server installed correctly on OS X Leopard. So I found this page that does a step by step walk thru of compiling and installing MySQL on your machine. Followed the steps and it appears to have worked for me.

The only caveat I have for others on the article is I would skip the instructions for auto starting the MySQL server. They are way to complicated. Just use Automator instead. Much easier and should work just as good.

Wednesday 7 November 2007

NetBeans 6.0 Great Ruby IDE

Finally found some time to play around with Ruby on Rails on NetBeans 6.0 beta 2 very late last night. I downloaded the Ruby specific version since I still need to use 5.5.1 for work. All I can say is wow!

You get a complete Rails development environment (except for the database) in a 20 meg download. Everything runs fast and loads fast. I had the Hello World! app created and running in about 5 minutes. Very impressive. In the past, I have run into a number of roadblocks just getting rails setup, especially on OS X. If you have been itching to learn Rails, this is the tool you need to start with.

Android?

I was too busy with work to notice the big Google Android announcement. A phone platform based on Linux and open source standards. Sounds like a good idea to me. It will be interesting to see what the SDK looks like next week.

In my opinion, the success or failure of this will depend on the openness. Will you be able to create GPS apps for it? Run Skype? Run GAIM? My iPhone is really fun, but it is too cell centric when it needs to be Internet centric. Competition is a good thing.

Monday 29 October 2007

Halloween Gadgets



With October 31st looming, it's time to decorate your desktop with spooky gadgets. Here are three new ones you can try out.

Halloween Pumpkin
By Benjamin Schirmer
Create a custom jack-o'-lantern on your desktop. To change the look of your Halloween pumpkin just click the eyes, nose, or mouth. Beware: sometimes this pumpkin makes spooky noises!
Halloween CountDown Gadget
By Vishnu.S
If you can't wait until Halloween � and you don't have a child reminding you how very long it is until trick-or-treat time � you need this.
Spooky Clock
By Lahiru Lakmal Priyadarshana
Every day is Halloween when this clock is on your desktop. The pendulum swings back and forth, reminding you that the witching hour is never too far away...
You can find these and more at our holiday gadgets page. If you feel inspired to create your own holiday gadgets, visit our Developer Site and be sure to grab the Google Desktop SDK.

Happy Halloween from the Google Desktop Team!

Friday 26 October 2007

JRuby on Rails?

Rails has been running on JRuby for some time. I know the development team has used that as one of their benchmarks for Ruby compatibility. But check out this post from one of my fellow Sun employees. Basically what the graph shows is over time, Rails runs about the same speed on Java as it does on C. Very interesting.

Add to that great Ruby support in Netbeans 6.0 (due out in a month) and the ability to deploy Rails applications to Java application server. Things get very interesting indeed! Methinks Ruby will be getting a closer look in the enterprise.

Thursday 25 October 2007

Mona Lisa Smile

Earlier this week I found this story on some scientific research done on the Mona Lisa. Much like the Sistine Chapel, the researcher thinks the original painting was quite a bit more colorful than the one we see today. Here is a link to a picture comparing the original and his color restored version.

Tuesday 23 October 2007

Featured Gadget: Time Around the World



This blog periodically features a Google Desktop gadget and a quote from someone who uses it. If you'd like to recommend a gadget, send an email to desktop-gadgets AT google DOT com.

Jaime Brands of Google Sydney says: "For my work, I need to know the time in Auckland, San Francisco, Dublin, Hyderabad and Perth. I also need to know what time it is where friends and family are located around the world. This is a handy gadget that sits on my desktop and allows me to see the time in selected cities, and also allows me to compare time differences between cities when calendaring meetings."

If you'd like to create your own gadgets, then read about how this gadget was made and check out the new Gadget Designer.

More information | Download gadget

Friday 19 October 2007

RSS Feeds Your Friend on the iPhone

A quick tip I thought I should share with iPhone users out there. Although an iPhone can surf "real" web pages, in practice this can often be slow and frustrating. The problem seems to have more to do with Flash advertisements timing out than actual bandwidth issues with Wifi or the Edge network. Many web pages simply won't finish loading.



The solution, bookmark links to RSS and Atom URLs in Safari. That way, you can peruse the information, and pick only the stories you really want to read. The iPhone Safari browser has an RSS reader built in. It actually displays the stories in a very readable font and makes the scanning of stories very convenient.



You can actually manage the bookmarks using the Safari browser on the computer you are syncing your iPhone with. It took me a while to figure this out as it wasn't obvious to me that the bookmark syncing was taking place. But once you know that, it is very easy to surf the web with Safari on your Mac or PC and manage the bookmarks from there. Beats the heck out of trying to type on that tiny keyboard. It also makes the iPhone much faster and more useful while waiting in line at Starbucks.

Friday 12 October 2007

Google Desktop for Linux 1.1 Beta



When we released the first version of Google Desktop for Linux this past June, we signaled a commitment to the Linux community: to develop for the platform and to support our Linux users. Since then, we have been hard at work to improve and refine our product. Today, we'd like to share what we've created by releasing Google Desktop for Linux 1.1 Beta.

Feedback from people like you shaped this update. Because many people wanted to search and launch applications, we added that functionality to the product. Desktop for Linux now supports many more image formats and will show better thumbnails for them in your search results. You can also customize the hotkey used to launch the quick search box. And most importantly, Desktop for Linux now searches the content of Microsoft Office documents - our most requested feature.

Please download the latest version and give it a spin. We hope you like it.

Wednesday 10 October 2007

Campaign Contributions Sites

If you are interested in knowing who contributes to who in the coming US elections, check out the following sites:



http://www.politicalbase.com/ - The site has a nice celebrity section that is kind of fun to look through.



http://www.opensecrets.org/ - This site has been around a long time and does a detailed analysis by candidate.

Friday 5 October 2007

iGoogle meets Desktop gadgets



We've often asked ourselves why Google Desktop Gadgets are confined to just the desktop and sidebar. With Google Desktop 5.5 Beta, we've decided to change that. In addition to improved Outlook search functionality, Google Desktop now lets you run Desktop gadgets on your iGoogle homepage. And that means you can check your wireless signal, grow a beautiful plant, or play music right from iGoogle.


The process for adding Desktop gadgets to your iGoogle homepage is simple. Just surf over to the iGoogle Content Directory and find the gadgets you want to add -- for example, try adding the media player gadget by clicking on the "Add it now" button on this page. If you already have Desktop 5.5 installed, you'll get the gadget without having to do anything more. If you don't, you'll be offered a streamlined Google Desktop with only the gadget functionality enabled. You can decide later whether you want to try out some of the other great features of Google Desktop, such as searching the contents of files, emails and web history.

With Desktop 5.5, you can also have multiple instances of a gadget on your desktop. Simply open up the "Add gadgets" menu and choose to add an existing gadget again. Also, make sure to press the Ctrl button twice to check out the svelte new look of the Quick Search Box.

Additionally, we've updated the gadgets button, which you can use to quickly see all your new gadgets!


As always, please let us know what you think.

Wednesday 3 October 2007

Sun Scripting Page

Was asked in e-mail today to link to the new scripting home page for us on sun.com. The new page can be found at:

http://developers.sun.com/web/scripting/

Looks like its mostly aggregations of blogs.sun.com blogs with a few extra thrown in. Good to see we are recognizing the some of our efforts in the scripting arena.

Tuesday 2 October 2007

JMaki Release Last Week

Some really cool Ajax/Web 2.0 technology developed by some folks at Sun was released last week, JMaki 1.0. This is a very cool Ajax framework for developing applications with versions for Java, PHP, and Ruby.

I almost got to help write a course on it, but the project got put on the back burner for the time being. Hopefully I will find some time to play around with it in my copious spare time. :)

Sunday 30 September 2007

Ads Over Content

I noticed this week that CNet is now running full page ads before you can even see their home page. How little they must think of their own content to do that. I can see doing that before a video or some sort of linked page. But your main page?

Keep doing that and you will make your site as irrelevant as a TV network.

Monday 24 September 2007

Featured Gadget: To Do



This blog periodically features a Google Desktop gadget and a quote from someone who uses it. If you'd like to recommend a gadget, send an email to desktop-gadgets AT google DOT com.

Mihai Ionescu of the Google Desktop team says: "The To Do gadget is an amazing time saver wherever I go with my laptop. It's like having a pack of Post-It sticky notes with you all the time."

The To Do gadget is part of the Google Desktop installation and should already be available on your system. If you don't see it in your sidebar, select "Add gadgets" (+ on the top sidebar menu), search for todo, and then add the gadget.

Saturday 18 August 2007

Painless FreeBSD upgrade (6.1 to 6.2)

I've dreaded upgrading my personal web server from FreeBSD 6.1 to 6.2 because I'm new to FreeBSD and totally screwed up my unbuntu dev box the other day upgrading from 6.10 to 7.04. However I must give Colin Percival a giant THANKS for making this FreeBSD upgrade a very painless exercise. Trust me folks, if I can do this anyone can! Yet another reason to dump your Linux distro and run FreeBSD.

Check out Colin's notes on upgrading FreeBSD from one version to another.

Wednesday 11 July 2007

New Blog: Google Desktop APIs



Many Google Desktop users install gadgets and plug-ins to customize and improve their desktop experience. For example, you've likely seen the gadget gallery, which holds all kinds of interesting gadgets, from games to news displays to tools. We're always looking for new ways to support the developers who build these add-ons using our APIs. So, to supplement our Google Desktop Developer Group, we've now created a new blog to open a another line of dialog and provide useful information such as tips, announcements, developer jokes, links to articles and tutorials, and more.

If you're interested in Google Desktop development, check out the Google Desktop APIs blog.

Wednesday 27 June 2007

Desktop for Linux



For most Linux users, looking for files, documents, or emails usually involves some combination of 'find' and 'locate,' but sometimes these tools don't quite do what you're looking for, like finding that single PDF containing the specific topic you're looking for. Or you just wish there was a much easier way to find something than 'find /home/username -name '*.pdf' and 'pdftotext pdf_file_name.pdf output.txt...'

So that's why today we're releasing Google Desktop for Linux. Developed primarily out of our Beijing office, it includes almost all the features from the first Windows version of Google Desktop Search plus the Quick Search Box, so you can quickly search through all your files, emails, web history, and more. Just hit 'Ctrl' twice to bring up the Quick Search Box and start finding your stuff!

Have fun searching, and tell us what you think.

You can also try our Mac and Windows versions.

Monday 11 June 2007

Desktop Gadgets at Developer Day

On May 31st Google hosted Developer Day events all around the world. The Google Desktop team gave two presentations: one in Mountain View, and another in Tokyo. Mihai gave the Mountain View talk, and James gave the Tokyo talk. The links lead to the YouTube videos, and are great resources for learning about the full potential of the Google Desktop APIs. Here is Mihai's presentation:


Many Google Desktop team members staffed booths and showed off the potential of Google Desktop gadgets. Developers were amazed at how easy it is to do powerful things from gadgets. We would start with a blank desktop and then hit shift-shift to bring up a slew of different and interesting gadgets. Everyone loved this. In particular, there were two gadgets that really piqued user and developer interest, because these gadgets do complicated things with small amounts of easy-to-understand code. Here they are.

Touring Gadget

Have you ever wondered which of your favorite bands are coming to town? The Touring gadget, by Martin Mroz, makes finding out easy. You enter your location, and using a simple Google Desktop API and the music community website JamBase, the Touring gadget shows you which of your favorite bands are coming to your town soon.

Touring gathers your favorite bands by using the Google Desktop Query API. When Google Desktop indexes the user's files, it extracts metadata from music files and stores them. Touring queries for music files and pulls out the artist. It only takes a few lines of code to get this data.

Multiplayer Reversi

Playing a game with your friends around the world isn't hard if the game uses the gadget GoogleTalk API. Multiplayer Reversi, by Turhan Aydin, illustrates this point and received lots of "oohs" and "ahhs" when Mihai presented it in San Jose. You select your friend to play with, they confirm, and you start to play reversi. If this sounds difficult, don't worry, it isn't: look at the code snippets.
Just days after the event, excited developers are submitting gadgets. We hope you developers out there will think about using the power of the APIs to make new and interesting gadgets that look great and empower users. If you're looking for gadgets to use yourself, go here to find all Google Desktop gadgets.

Thursday 3 May 2007

New Improved Desktop Gadget Designer



If you're starting to create desktop gadgets, be sure to try out the new and improved Google Desktop Gadget Designer, included with the latest Google Desktop SDK. It makes creating that great gadget idea of yours a breeze, with drag & drop elements, property editors, and built-in script editing. I spent my internship here working with the amazing people on the Desktop team and adding some of the most requested features to the designer.


Here are some of the new features and fixes in the latest version:
  • Additions to the API, such as listbox and progressbar, are supported.

  • The designer UI is more configurable, with variable-size panes and retained window position/size.

  • You can find and replace text and go to a specific line.

  • The properties list is sorted in alphabetical order.

  • The designer tabs have tool tips and can be closed with a middle-click.

  • You can choose whether to see a web page at startup; the new default home page lets you search Google Desktop documentation or all Google Desktop websites (including this blog).

  • New project files are UTF-8 encoded.

  • You can specify preferences, such as whether to load the most recent project at startup.
For your learning enjoyment, this version of the Google Desktop SDK also includes new samples demonstrating scrolling elements and the XML details view. And if you have requests for the designer or questions about desktop gadget development, check out the Google Desktop Developer Group and the Developer Knowledge Base -- and don't forget to read our online gadget documentation for tutorials, guidelines, and the API reference doc.

Tuesday 1 May 2007

Isaac Newton: Ocean of Truth

I do not know what I may appear to the world; but to myself I seem to have been only like a boy playing on the seashore, and diverting myself in now and then finding a smoother pebble or a prettier shell than ordinary, whilst the great ocean of truth lay all undiscovered before me.
Isaac Newton, From Brewster, Memoirs of Newton (1855)
English mathematician & physicist (1642 - 1727)

I have always enjoyed spouting this quote to family and friends, but have been haunted by the exact meaning. Is Newton lamenting that his studies in astronomy, light and mathematics kept him from studying (fully) alchemy? Or, rather that he did not see his accomplishments in the same light as we?

Thursday 26 April 2007

Desktop 5 Goes Global

Xiyuan Xia

International versions of Google Desktop 5 are ready to go, including a brand new language--Hindi! We want Google Desktop to be your personal information assistant, helping you find the information you want, when you want it, in any language, and in any OS (check out the recently released Mac version). Now it's easier than ever to find local content, news headlines, emails and more.

Exciting features in Google Desktop 5 include a completely new look and feel for the sidebar and gadgets. The sidebar samples the color of your desktop background and fades the color into the sidebar, fitting into any environment. Many of our most popular gadgets were also redesigned to improve their usability and visual appeal.

Other improvements:
  • Previews of desktop search results. Have you ever opened multiple files to find the right one? Now you can find the file without opening each result. Previews are displayed inside our search results page.

  • Security. We have also added warnings for web sites that may be trying to steal your personal information or install malicious software on your computer, helping to make the Internet a safer place in 29 languages.
Enjoy! Amusez-vous! Buon divertimento! Viel Spa�! Disfr�talo! Veel plezier! ?????!????????! Aproveite! ??????????? ??? ???????????! ?????

Sunday 15 April 2007

Lost in translation

Sometimes the right words elude me. Sometimes what I want to say just doesn't come out of my mouth. I have these problems in my native tongue. Imagine the problem of trying to precisely express yourself in a 'foreign' tongue.

The Associated Press reported a story of a German passenger who used the wrong idiom to express his desire to use the toilet but ended up in jail for nine months.

How could this happen?

Apparently the idiom he used was "the roof would go" or "then the roof goes". To a flight attendant, a passenger using words that indicate the roof of the plane is about to come off is not a laughing matter and one, apparently, that will force the plane to make an emergency landing.

I did find a link to the AP article (name changed to protect the innocent... we'll just refer to him as 'G'):


Source: ASSOCIATED PRESS
An intoxicated German passenger jailed for making a bomb threat really meant that his bladder - not the plane - was about to explode, a federal judge ruled. G, 23, who speaks little English, was freed Wednesday after spending nine months in prison on federal charges of interfering with a flight crew and making a false bomb threat.

Source: United States v. G, 841 F. Supp 1169 (S.D. Fla. 1993)
G was a passenger on a charter flight from Fort Lauderdale to Hanover, Germany. Shortly after take-off, he went to the middle of the plane, and, in the court's words "acted as if he thought he was in the toilet." Id. at 1170. When stopped by flight attendants, G announced "the roof was going to go." Id. He then made a broad sweeping gesture which the attendants thought indicated an explosion would occur. He became unruly, and the plane returned to Fort Lauderdale because of fear that he had brought a bomb aboard. Later, at his guilty plea hearing, G claimed his gesture was "to show that his bladder was going to explode and not the roof of the aircraft" and elaborated, "well, if my bladder explodes, then also the roof would go." Id. at 1171.

Sunday 8 April 2007

FreeBSD: APM not working on Dell Inspiron 3500

I've been running FreeBSD (recently upgraded to 6.2) on my Dell Inspiron 3500 w/ the Phoenix BIOS 4.0 Release 6.0 for some time now, but could never get APM (Advanced Power Management) to work. When I had a spare hour or two I'd research this topic to no avail. Today the pieces came together.

Problem: I wanted to see my battery level but couldn't.

Each time I would try to run apm to see my battery status I would get:

APM; /dev/apm: No such file or directory

Resolution:

Modified /boot/loader.conf to include the lines:


apm_load="YES"
hw.acpi.verbose=1
hint.acpi.0.disabled=0


and rebooted the laptop.

Now when I type apm I see:


APM version: 1.2
APM Management: Enabled
AC Line status: off-line
Battery Status: high
Remaining battery life: 99%
Remaining battery time: unknown
Number of batteries: 2
Battery 0:
Battery Status: high
Remaining battery life: 100%
Remaining battery time: unknown
Battery 1:
Battery Status: high
Remaining battery life: 98%
Remaining battery time: unknown

American Nightmare



Rising rate of foreclosures bring tragic end to dream of home ownership.
-Beacon News Sunday April 8, 2006


That's what the local press would have us believe. The press would have us believe that the foreclosure rate is on the rise. Wrong! That's what one might believe if all one did was read the front page of the Beacon News (a Chicago Sun-Times News Group paper).

Year over year we see that foreclosures have increased from 779 in 2003 to 1,223 in 2006; a 57% increase. That's what the front page would lead us believe. However, if we turn the page and dig deeper into the article we read,


About one out of every 100 homes... facing foreclosure, the same percentage as nationwide.


One percent! Hardly an epidemic and not on the rise! What the article failed to report is that this region, outside Chicago, is one of the fastest growing housing markets in the country! So with all the new houses being built, we would expect that the number of foreclosures, not percentage, would increase.

Guess the newspaper more interested in selling subscriptions, not information...

Wednesday 4 April 2007

Desktop goes cross platform



Google Desktop is hitting a milestone today: we're going cross platform! Google Desktop for the Mac (beta) is now available. We know that whether you use a PC or a Mac, a significant amount of personal content lives on the web and also on your computer. We're committed to helping you search all of that information.

Like the Windows version, Google Desktop for the Mac makes searching your desktop and the web faster, easier, and more comprehensive, enhances the desktop search experience with the Quick Search Box, and leverages Google technology to deliver speed and usability. It works with both PowerPC and Intel machines with Mac OS X 10.4+ and is compatible with Safari, Firefox, and Camino browsers. For this version, we focused on searching the desktop with speed, ease of use, relevance, and comprehensiveness. It does not have sidebar and gadgets, though we do plan to make Google Gadgets available on the Mac in the future. To find out more, read this post on our Mac Blog.

We look forward to adding more features and further improving performance and usability in the near future.

Monday 2 April 2007

Physicists, Mathematicians the best programmers?

Why is it that some software engineers and computer scientists are able to produce clear, elegant designs and programs, while others cannot? Is it possible to improve these skills through education and training? Critical to these questions is the notion of abstraction.

These are the questions Dr. Jeff Kramer of Imperial College London asks in his latest paper titled Is abstraction the key to computing? -- ACM Volume 50 Issue 4.

So perhaps I advanced Dr. Kramer's argument a bit too far to fit my educational background (Physics degree, Secondary Science Education Certification). However, here's why I believe Physicists in general are better software developers than their Computer Science (only) counterparts.

Abstraction Skills: Having to install, configure, manipulate laboratory equipment to produce results that prove or disprove an esoteric equation on the chalkboard is a great exercise in abstraction. Raise your hand if you have ever suspended an oil droplet in an electrostatic chamber (Millikan Oil Drop Experiment) and produced a value within one percent of the currently accepted value for the charge on an electron? I dare say that infinitely many Physics undergraduates have! Along the way burning themselves with hot oil and shocking themselves with high voltage DC power supplies!

The skills necessary to convert abstract, complex (Quantum Mechanics anyone?) ideas into easily digestible and meaningful equations and then convey those ideas to others is another form of abstraction. To distill down the complex into the essential leaving all extraneous bits out.

"Things should be as simple as possible, but no simpler"
- Einstein


Debugging Skills: Physicists have better problem solving skills than do their CS counterparts. They have to! It's just that simple. They have to because to earn a degree in Physics one has to solve countless Physics and Math problems (on paper and in the lab). This requires very good problem solving skills and the ability to view the 'big picture' while working on the minutia and to quickly jump back and forth. This makes for better debugging and problem solving.

Abstract Communication Skills: Physic teachers are able to carefully select the appropriate level of abstraction to include only that which is necessary or required to properly convey the idea for the target audience. The same lesson (F=ma) has to be conveyed differently to sophomores than to seniors. Good Physics teachers are able to do just that. This skill is valuable especially when in the boardroom trying to convey to the "Decision Makers" why one software implementation plan is better than another.

Is Abstraction Teachable? If so, then how? Good questions. Dr Kramer addresses the teaching of abstraction in his paper. Join the ACM and read it online.

Sunday 1 April 2007

April Fools

April 1. This is the day upon which we are reminded of what we are on the other three hundred and sixty-four.
- Mark Twain, Pudd'nhead Wilson, 1894

Wednesday 28 March 2007

Happy Birthday Gmail

Gmail turns 3 this year. When announced on April 1st, 2004 people thought it was an "April Fools" joke. However at the time the one Gigabyte for email storage it offered was four times that of Microsoft's Hotmail.

Yahoo now is offering unlimited storage (up from 1Gb) and it would appear that Microsoft has upped the Hotmail storage to 2Gb.

What sets Gmail/Google apart is their ease of integration and the ever increasing products (Gmail, blog, desktop search, notebook, analytics, etc) in the Google software family.

Tuesday 27 March 2007

Visual Studio turns 10 years old

It's hard to believe that Developer Studio turned ten years old on March 19th. While I'm not big time Developer Studio Power User I do use it each and every day to write server side software and have so since 1999. Here's why I like Developer Studio.
  1. MSDN -- w/o a doubt the best online C++ help
  2. Intellisense
  3. Debugger

What I don't like.
  1. Resource Hog
    1. Leaving the IDE running long term (multiple days) consumes memory and becomes sluggish
  2. Sometime Intellisense freaks out and takes minutes to rebuild its database

I still use ddd and Emacs when programming in the unix world and quite honestly I could easily go back to the world of emacs-man-ddd instead of using an integrated IDE like Developer Studio but as long as my employer insists on running the data center on Win32... so be it.

Monday 26 March 2007

The discipline of writing software

I've been using C/C++ static analysis tools for almost 20 years now. By 'static analysis' I mean lint. Lint on VAX/VMS; Lint on UNIX; Lint on Win32. By far the best static analysis tool I have ever used is PC-Lint/Flexelint by gimpel.

If you think that your compiler w/ warnings turned to the maximum value will catch your mistakes, you are wrong and are wasting your employer's revenues with your ignorance.

Compilers convert text files into machine instructions. The warnings they generate are merely secondary/tertiary artifacts of this process.

Most recently I presented a three year case study to my employer that clearly shows how the use of PC-Lint reduced software defects from 80%->60%->20% during that three year period.

Not only does lint catch your defects, but by repeatedly seeing the same errors it causes the astute programmer to rethink how he implements software.

Open Source Google Desktop Gadgets

Sometimes it's good to share. With that in mind, three of our most popular gadgets have been open sourced under Apache License 2.0 and are now hosted at code.google.com:

Moon Phase


Ticker for Trekkers


Wikipedia Search


If you've never visited code.google.com project hosting, you're in for a pleasant surprise. It's a completely free project-hosting solution that features source control, issue tracking, and a simple, clean interface.

So go ahead, jump on board, and start working on that feature you've always wanted. Please contact a project owner to be included in a project.

Even if you don't intend to contribute, please report issues and offer feedback.

We encourage gadget developers to take advantage of the talented Google Desktop development community by open sourcing their own gadgets on code.google.com. More information about project hosting is available at http://code.google.com/hosting.

More gadgets will be open sourced, so stay tuned. But most importantly, have fun!

Sunday 25 March 2007

Algorithmic-Trading blog created

In order to spare professional traders and software engineers working on algorithmic-trading from my mindless brain droppings about science and software in general I have created an algorithmic-trading blog. I hope this enhances the reading experience for all involved.

Friday 23 March 2007

Researchers develop intelligent, driverless car

If you thought intelligent cars capable of negotiating a city centre with no driver behind the wheel were just the dream of Hollywood film writers you could be wrong. Researchers at the University of Essex think their work developing an autonomous model car could pave the way for intelligent driverless cars.

One question... "At whom will I point my 'driving finger' when a driverless car cuts me off at an intersection?

Full Article Here

Thursday 22 March 2007

GOD is REAL unless declared INTEGER

John Backus, team leader for IBM in the 1950s, and credited for 'inventing' FORTRAN has passed away. Backus assembled a small group of IBM employees to "develop an easier way to program IBM's new 701 machine". What resulted was, in 1954, a paper titled, "Preliminary Report, Specifications for the IBM Mathematical FORmula TRANslating System, FORTRAN." Backus stayed with IBM for nearly 40 years before retiring in 1991.


Having learned FORTRAN 77 as my first 'real' language, on a CDC Cyber 205, I still have a fondness for it. I recall many a night, as an undergrad, punching cards containing what today seems like trivial lines of code, but at the time was a very complex problem. Waiting for the card reader to swallow the stack of waxed color coded cards containing FOR loops and SUBROUTINE brings back a flood of emotions and memories. Will the program compile? Will the card reader jam? When will I get my output? The undergraduate lab was in the basement of the Weber building on the campus of Colorado State University and as such there was a unique smell that came from being below ground level in an old building. A set of electrical conduits clearly visible because it was easier to run the power cables outside the walls created an industrial effect.


Side Note: Most creative use of the waxed punch cards? A civil engineering professor I worked for used the small rectangular chaff as surface analysis visual aids when filming hydrodynamics in river and flood plain studies. He'd have me duplicate a card that had every possible hole punched. I would go through boxes of minty fresh cards reducing them to Swiss cheese. We would then sprinkle the chaff on the surface and film the swirls and eddies.

Wednesday 21 March 2007

Importance of Quality Control

When I read the following headlines, I just have to sit back, scratch my head and ask, "What the heck is going on?" Where's the quality control?

Elementary state achievement tests contain errors, board says -- Northwest Herald, Illinois

Many of the errors � ranging from wrong directions on how to complete the exams to multiple-choice questions without a correct answer as an option � were caught before the March 13 testing window opened. School administrators were sent instructions on how to address the mistakes. For example, in seventh-grade reading booklets, students are directed to answer a question on the wrong page. A sixth-grade math question calls for answers in centimeters, but all multiple choice answers are in inches. Other mistakes are in the instructional manual and a Braille test.


Tests of Suspect Pet Food Kills 7 -- CBS

As many as seven animals died in tests of suspect dog and cat food by the manufacturer after complaints the products were poisoning pets around the country, the government said Monday.

I have to ask the obvious, if seven animals die while testing the pet food, why would you release the product?

Tuesday 20 March 2007

Algorithmic-Trading for Dummies

Will all the algorithmic-trading gurus; the so called boy wonders of Wall Street please get their act together?!

The problem is interface consistency. Sure, there is the FIX Protocol 'standard' that most algorithmic engines use. However, even FIX is stretched to its limit when dealing with algos.

So here's my suggestion to all of you who write algo engine interfaces... attend the FIX Protocol's Algorithmic Trading Working Group and figure this all out!

The diversity in describing an algo (FIX fields, values, etc) are costing all of us time and money. Time to read and understand these so called specifications and money to constantly keep changing our Order Management Systems (OMS) to keep up with your so called great ideas (like calling an order a 'day' order when it really is a 'good until cancel').

Is it really that hard to specify the fundamentals of trading:
  1. price
  2. time
  3. volume
  4. aggressiveness
  5. strategy

Furthermore, quite honestly, algos are money loosing ventures except for folks like me... We have to keep changing software to interface your silly algo engines so we keep getting a paycheck! However, CFOs are none to happy when passed in the hall and thanked by the likes of me for paying me in ever increasing amounts to invest in money losing ventures like algorithmic trading.

I now return you to your regularly scheduled production outage...

Monday 19 March 2007

Why we write Software

We write software for one of two reasons: to increase revenue or to decrease costs. When you distill down the essence of software development in the dot-com world it comes down to those two choices.

Sorry if this bursts your bubble, but that's it.

Oh sure, writing software is a great vocation, I highly recommend it.

However, understand that all those years spent learning, debugging, testing and patching, still comes does not resolve the question of why we do what we do?

For the 99 percent of us (myself included) who are *not* the top one percent of the programming elite (Stroustrup, Sutter, Gosling, Lamport, etc)... we write corporate software because some 'suit' thinks this idea will generate revenue, or some pointy-haired Dilbertian boss wants to reduce software overhead (cost).

It's somewhat different in the dot-gov and dot-org world, but not much. If this sounds harsh feel free to post a rebuttal.

Friday 16 March 2007

Our love affair with lists

What is it about humans and our affinity for lists?

Most of us learn sequentially (concrete-sequentially if I use the Gregorc nomenclature to be exact) so here's why I believe we humans like lists (in the form of a list of course):

Growing up I listened to Casey Kasem's Top 40, prior to that was Dick Clark's countdown. My first recollection of a list was all the things I my parents had for me to do before I could go outside and play.

If I search in the dictionary for the word list, I'm confronted with another list of the possible definitions for list (kind of self referential don't you think?).

Here's some others lists:
Which reminds me I have to end this and finish some things on my "Honey Do" list my wife posted on the refrigerator...

Top 10 reason why humans like lists:
  1. Linear
  2. Eye Catching
  3. Digestible
  4. Succinct
  5. Organizational ('todo' list)
  6. Convincing (list of offenses in court)
  7. Comprehensive (this list isn't)
  8. Practical
  9. Transferable (work list)
  10. Trackable (shopping list)

Thursday 15 March 2007

IT isn't fun anymore!

To some, information technology (IT) was never fun; IT was and is the realm of Dilbertian nerds and pointy-haired bosses. However, for some of us, IT was fun and still is! However, if you're of the "IT isn't fun anymore" ilk then read the article "How to Stop the Dilbertization of IT" by Deborah Perelman

Wednesday 14 March 2007

Living under a lucky star

I have, on many occasions, been accused of living under a lucky star. Not wanting to buy into the whole 'luck' paradigm... I may have to agree as I once again find myself in a 'lucky' situation being one of the few programmers in my organization that understand how to effectively use and program for multicore processors. Fortuitous I have to admit in light of the article below.

Where Are the Programmers?
EE Times (03/12/07) Merritt, Rick

At a time when the amount of students pursuing computer science degrees is declining, researchers are struggling with the parallel programming that will run on the next generation of multicore processors.

Tuesday 13 March 2007

Ronald Reagan Responsible for Google Putting a Research Lab in Poland?

While Al Gore may be the self proclaimed creator of the Internet, Ronald Reagan is why Google is putting a research lab in Poland.

Question this statement? Please read on...

Why Google Put a Research Lab in Poland
Christian Science Monitor (03/13/07) Woodard, Colin

Western companies are beginning to notice the value of moving operations to Eastern Europe, where the schools are producing many computer scientists that will work for one-third of the pay of those in Western Europe. The curriculum in many former Soviet-bloc countries is heavily grounded in math, given the former Soviet Union's emphasis on industrial and military production. IBM, Google, and Motorola have all recently opened research labs in Krakow, Poland. "Investment in universities and research in important areas will attract students to these areas, says Google's Kannan Pasupathy. "It's a nice circle which ultimately benefits everybody."

Recall that it was an incident involving Toshiba and the Soviet Union that forced the Reagan administration to use the Combat Command [COCOM] to enforced an international embargo of sensitive technology exports to the Soviet Union.

My colleagues in Krakow, who remember the embargo, tell me:

The universities may be an important factor but one thing that the author of the article is missing is that in fact probably the most important contributor to the high level of skills of Eastern-Bloc computer specialists was in fact the President Ronald Reagan who in the early eighties imposed sanctions, prohibiting the Western Bloc companies to export/share their electronic and computer technology and knowledge. We ended up with software but no manuals, operating systems with no documentations - a situation which forced the entire generation of passionate people [who] got into programming in the late 70s up to late 80s to debug, hack, investigate, figure out, study undocumented code.

And there you have why Ronald Reagan is responsible for Google putting a research lab in Poland.