The other morning, the Developer Channel version of Google Chrome prompted me to upgrade with the following text box:

Chrome Upgrade Message

Updated with my own screenshot

So I dutifully updated as I usually do, only to start experiencing crashes on just about any page I loaded. I know Google was going for humour here, but I think they were oddly prophetic this time….

I found myself in need of a new microphone for my computer, as the cord on my cheap Staples-brand one broke. After spending the day looking around town for a nice set that fully covered my ears, I found these at Future Shop:

Razer Carcharias

Razer Carcharias - Image Credit: hardwarelogic.com

However, at $99 CAD, they were a little outside of my price range. All was not lost, though – I walked up the counter and asked if the clerk could do anything about the price. After being initially rebuffed (“Sorry, this is the best price I can offer”), I pulled out my Nexus One and loaded up Barcode Scanner. I proceeded to scan the UPC code on the box, then do a Product Search. I showed the clerk that, according the results listed, I could get the same product from Wal-Mart for $69 CAD.

Five minutes later, I walked out with my new $69 headset. And I can honestly say, they are the best headphones I’ve ever owned.

Best. Phone. Ever.

Wow. That’s nearly all I can say. Nearly. However, there are a few quick notes:

  • The screen is absolutely amazing. In terms of smart phones, I have an iPhone 3G, an HTC Dream and Magic, and now this, and I can say without a word of hyperbole that the N1 has the best screen of them all.
  • The ‘softkeys’ at the bottom of the screen (Back, Menu, Home, and Search) are a little odd – they’re actually part of the touch screen, and you have to tap them at their tops, not in the centre of the keys as you’d expect. Very easy to get used to, though.
  • Rooting was incredibly easy following Cyanogen’s guide – Warning: HTC says that you’ll void your warranty by unlocking the bootloader. Proceed with caution, even though there have been statements honouring the warranty if the issue is completely unrelated to software.
  • The sound quality is excellent, and I had no troubles getting it to pair with my Jabra Bluetooth headset. A2DP works stunningly, with none of the choppiness/disconnects that I had on the Dream and Magic when listening to music.
  • Signal quality is on par with what I was getting with Dream/Magic with Rogers in south-central British Columbia.
  • This thing is fast. Not just the HSDPA+ connection, but everything. Wow.
  • Live Wallpapers == Coolest Thing Ever.

I’ll post more on this later after I’ve had more time to play with it, but really. Wow.

Yes, you read it right. I’m surprised there hasn’t been more news about this, but the Nexus One is now for sale in Canada, and it works on Rogers, Telus, and presumably Bell. Mine is already on order, and I’ll report back when it gets in with an unboxing and information post.

So far, it looks like the only difference between this Nexus One and the TMO one offered previously is the radio. As such, most cooked ROMs should work with it (as long as they include a library that allows access to the slightly different radio) – so hopefully, we won’t have another Magic 32A/32B issue on our hands.

More to come soon!

Update: According to Twitter user @AngioNicholai, the AT&T Nexus One runs CyanogenMod 5.x without issue!

Update #2: Additional confirmation by @PaulOBrien.

Update #3: First-hand confirmation! Cyanogen’s 5.0.4.1 works beautifully on my new Nexus!

One of the things I loved about my old iPhone was the built-in Exchange sync. I could sync my email, my calendar, and even my contacts (although I only did the first two). Life was good.

After moving to the Android platform, however, I was disappointed to discover that although an Exchange email app was included, it wouldn’t allow you to directly sync an Exchanged-based calendar. A little searching provided a way, though.

  1. Make sure you’re running Office 2003 or 2007 – if you have the Office 2010 Beta installed, it won’t work. If you still want to sync, uninstall 2010 and install 2003 or 2007, then follow the Special Note at the end of the post.
  2. Download the Google Calendar Sync tool.
  3. Install, follow on-screen instructions.
  4. ???
  5. Profit!

Now it should be noted that I did this, and at first it didn’t work as I was using Office 2010 Beta 2. Even after uninstalling it and installing Office 2007, I still couldn’t sync and received this error:

Could not connect to Microsoft Outlook: error -2147319779

A little searching turned up this link, which contained a hint at the solution. When you install Office 2010, it creates the following registry key:

HKEY_CLASSES_ROOTTypeLib’{00062FFF-0000-0000-C000-000000000046}9.4

In the same key, there should also be a ’9.3′ entry. With Office 2010 uninstalled, you can safely remove the ’9.4′ key. Now, restart Google Calendar Sync, and everything should work just fine.

One major caveat with this solution is that your computer has to be up-and-running for the calendar to actually synchronize – fortunately, this isn’t much of a problem if you’re the only one updating your calendar. With any luck, though, Google will eventually support full Exchange syncing with Android.

Edit: I probably should point out that this is for ROMs without official Exchange support (such as Cyanogenmod, which syncs Exchange mail, but not the calendar). Some official ROMs, like HTC’s, actually include Exchange calendar syncing out-of-box.

Update: There’s an APK floating around that gives you the Exchange (Corporate) Calendar. I won’t link it here, but a Google search for “CorpCal.apk” should give you what you need.

Further Update: Froyo will feature native Exchange Calendar sync, so CorpCal will be rendered moot when the update finally hits.

Even Further Update: Froyo, which has been released OTA for the Nexus One, does in fact feature native Calendar syncing with Exchange. This article is handy if you’re stuck on an older ROM, but if not, just use the official method.

I’ve tried to use Google Chrome before, but it always fell short of Firefox. I’m happy to report, however, that I’ve now made the switch and couldn’t be happier!

The biggest thing that bugged me about Chrome was the lack of extensions. Everything else, including the odd bookmark system, was fine once I stuck with it for a while, but I just couldn’t live without extensions. That’s changed now.

Adblock+ for Chrome: Finally Chrome has Adblock+, just like Firefox. Chrome had an adblocker almost as soon as extensions were enabled, however Adsweep uses an odd proxy system which slowed down browsing, had privacy issues, and failed to block a large number of ads. Adblock+ for Chrome uses the same blacklists as Adblock for Firefox, so it’s easy to use custom lists or the same subscriptions you used with Firefox, such as EasyList USA.

Gmail Checker: Provided by Google as a sample extension (with source code), Gmail Checker allows you to check a single Gmail account. This is fine, however aside from a standard Gmail account, I also have a Hosted Gmail account that I use more often. Because they provide the source code for the extension, though, it was easy to modify it to check my account. Here’s how:

Update: this section is now largely just an exercise in modifying extensions as Gmail Checker Plus has been released. It supports checking both Gmail and Hosted accounts (you can do one, the other, or both).

  1. Download the source code for Gmail Checker. Put all of the files together in one folder (don’t forget the images). Make sure to leave all the filenames as they are.
  2. Open ‘background.html’ in Wordpad.
  3. Find the line var gmail = “http://mail.google.com/”; – Change it to var gmail = “https://mail.google.com/a/laslow.net/”; (replace laslow.net with your domain).
  4. Find the line var gmailAtomRef = “http://mail.google.com/mail/feed/atom”; and replace it with var gmailAtomRef = “https://mail.google.com/a/laslow.net/feed/atom”; (again replacing laslow.net with your domain).
  5. Save and close the file.
  6. Open ‘manifest.json’ in Wordpad.
  7. Change the name and description to something of your liking. This will identify the extension on the extensions page. If you leave it as the defaults and install both your version and the official Gmail version, you won’t be able to tell the difference.
  8. Save and close the file.
  9. (Optional) Edit the images so that you will be able to tell the difference between your custom extension and the Google one (otherwise you’ll end up with two identical icons beside each other when both extensions are installed).
  10. Open Chrome.
  11. Click the Wrench Menu, then choose Extensions.
  12. Click the ‘+’ beside Developer Mode on the right, then choose ‘Pack Extension’.
  13. For the ‘Extension root directory’, point it to the folder you saved the source files in. Leave ‘Private key file’ alone (unless your updating the extension – then select the .pem file Chrome created when you first made the extension).
  14. Chrome will now create two files – a .crx file and a .pem. Keep the .pem safe, as you’ll need it if you want to update the extension later (see step 13). The .crx file is your extension.
  15. Open the .crx file in Chrome – when prompted, allow it to install the extension.
  16. Sign in to your Hosted Gmail account. Life is now good!

The lack of these two extensions had kept me from Chrome for a long time. Now that they’re here, though, I’ve made the switch and I’m not looking back!

So there’s been a lot of news lately about Google’s newly announced operating system cleverly called ‘Chrome OS’. What is it? In short, it’s a bare-bones Linux distribution (yes, it uses a Linux kernel for both the ARM and x86 versions) that puts focus on web applications. What does this mean to the consumer? Probably not a whole lot.

Here’s the thing: there’s a cycle that goes on between people/businesses having Desktop Systems and Thin Clients. This has been going on for ages. With a desktop system (which most people are used to), everything is literally at your finger tips. All of the software is installed on your local computer, and that’s where you do most of your work. If you’re in a business, chances are you save your files on to a remote server, but that’s typically in the same building.

With Thin Clients, things are a little different. In days of old, you had a terminal, which consisted of a monitor and keyboard. This was networked to a mainframe-type setup, which housed everything. These days, Thin Clients typically have a very minimal operating system (either something *nix based, or Windows CE) that allows you to use Citrix, Remote Desktop (terminal services), etc… to connect to a server that contains all of your apps. Not a lot of difference.

Chrome OS, from everything that’s been said, definitely appears to be of the Thin Client sort – basically, you boot it up and you’re on the web. Done. Likely you’ll be able to muck about with installation, and it will hopefully still support Offline applications, however the goal appears simple: once you’re connected, you’ll be using Google Apps. Yep, you’ll be in the ‘cloud’, with all of the benefits and problems that go with it.

Depending on your needs, this is all well and good. If you have a broadband connection, you’re laughing. If you have a netbook, the target platform, this is supposed to be Nir-freaking-vana. However, I’m not convinced. Not yet, anyways.

The problem is, if this thing were to launch right now, I can’t imagine it would do horribly well. With cell phones capable of tethering, 3G USB sticks, and WiFi hotspots everywhere, internet access really isn’t a problem. And now that netbooks have matured and are actually usable (my 8GB SSD Acer AspireOne proves that it doesn’t pay to be an early adopter) and Windows 7 nearly out the door, what’s the point of yet-another-OS?

The pre-releases of Windows 7 run amazing well on netbooks (there are even rumors that Microsoft is making an ARM port of it). Fedora 11 is brilliant (even on my slow-as-hell AspireOne), and I’ve heard that Ubuntu rocks the platform. Intel is pushing Moblin (I’ve tried it, and I really don’t care for the UI). Even OS X runs well, according to the Hackint0sh crowd. All that said, why is Google bothering with making an OS of it’s own? Will it be a fork of one of the above distros? Will it retain binary compatibility with it’s upstream brothers? Until it’s out, we won’t know for sure.

All that I can say is that I don’t think it deserves the hype. We need to sit back, wait for Google to bless us with a beta, and then start hailing it as the best think since sliced bread or just another OS.

The DiNozzo method. Not pretty, but it’s effective.

- Leroy Gibbs, NCIS

I downloaded the Privately Web Browser from the App Store this evening, but was a little disappointed that it doesn’t include the ability to change the home page.  Having jail broken my iPhone hours after getting it, though, the workaround was pretty obvious.

By default, Privately uses http://start.sax.net as it’s homepage. This really doesn’t work for me, as I like to have Google at the ready, and although it has a search box, I like having the ability to search images/groups/etc… at one click instead of two. This method will work for nearly any site, though. To change the start page, simply do the following:

  1. Open Terminal (again, you will need to have jailbroken your iPhone, and be slightly comfortable with a *nix CLI).
  2. ping the site that you want for your homepage so you can get it’s IP address. ping google.ca -c 1 works well, as it will only ping once and won’t flood your console before you can ^C out of it. At time-of-posting, the IP for Google.ca was 64.233.187.104.
  3. If you have sudo installed, type sudo nano /etc/hosts (replace nano with your favorite editor, such as emacs or vim). If you don’t have sudo, type su -, then your root password, and then nano /etc/hosts.
  4. At the bottom of the file, enter “64.233.187.104   start.sax.net” (without the quotes, and using whichever IP address you want instead of Google’s).
  5. Save changes and exit.
  6. Close Terminal and open Privately.

You’ll noting that the address still shows as start.sax.net, however the site you chose will load as the home page.

A few things to note:

  • This won’t work if you want a specific page on a site (eg, www.example.com/whatever.html)
  • If the server hosts multiple sites off one IP address, you’ll get whatever the default site for that IP address is (which, in some cases, will be a placeholder page)
  • If you don’t know what a CLI is, or have no idea what nano, emacs, or vim are, this isn’t for you.
  • And, of course, you’re iPhone needs to be jailbroken. If you haven’t done it and don’t know how, I won’t offer support. Plenty of information here.

After pushing out Google Desktop Search to a few departments, I received scattered complaints that searches were coming up with nothing, even if the exact document name was being mentioned (eg, search terms “Policy Manual” and the document is named “Policy Manual”).

I did a little digging and found that although all of the XP systems were working, none of the Vista computers (32 bit or 64bit) were. Huh. At first I thought that maybe the GPO hadn’t hit some of the computers, but then found that all of the effected Vista computers were in the same OU as the working XP ones (also evidenced by GDS being installed in the first place).

Checking the GDS options, all of them reported that the network location (\serversharenamehere) had a status of ‘Crawl not yet started’. Now, before you jump down my throat screaming “GDS doesn’t search network drives”, let me clear this up: it does. All of the XP systems had happily indexed the same network location, just none of the Vista systems had.

After playing around a little bit, I found the answer.

GDS waits until the computer is idle before attempting to crawl it’s list of allowed locations. The problem is, in Vista, Windows Search (which is built-in) does the same thing, and seems to always do so before GDS gets a chance to start. Therefore, because Windows Search is indexing, the system is no longer idle and GDS won’t crawl.

To fix this, I simply stopped and disabled the Windows Search Service and left the computer to idle. Sure enough, no more ‘Crawl not yet started’ message. Success!

Edited to remove references to Enterprise edition when not appropriate.

Google Desktop has been in use at our organization long before I started here, however one of the things that’s irked me about it is the lack of official 64-bit support. Specifically, installation is possible on 64-bit editions of Windows, however a flag (specifically, the ‘/force’ flag) is required when running the installer to get it to actually install.

So although I can manually install the app on workstations, it’s a bit of a pain as a lot of the 64-bit machines were missed when they were originally setup. As such, I whipped up a nice little GPO that takes care of everything for me, and has some flexibility for installation detection. There are probably easier ways of doing this, but I was in a rush when I wrote the script, and it works very well.

Instructions

To start, download the Google Desktop Enterprise package. This contains a .ADM file that can be used in both Server 2003 and Server 2008 Group Policy Management consoles. Create a new GPO, and import the .adm in to the User ConfigurationPoliciesAdministrative Templates object (Server 2003 doesn’t have the Policies folder, it just goes right to Administrative Templates). It’s important to do it on the User side rather than the computer side, given the actual installation process.

After the import, it’s important to note that Server 2008 will place the Google object under Classic Administrative Templates (ADM), instead of just in the Administrative Templates folder. Now configure the settings you want for GDE, and you’re almost set.

Here’s the fun part now – the actual installation. Download the Google Desktop Setup file from Google. Because I’m too lazy to make a transform for the .MSI, I dug back in to my DOS knowledge and made a batch file to map a drive to a server with a publically-available share, run the Google Desktop installer from the mapped drive with the /force switch, and then disconnect the drive.

The main advantage to doing this if I want to update the installer with a newer version later, I just have to swap out the file – I don’t have to screw around with transforms again. The script goes as follows:

@ECHO OFF
Color 1F
Title Google Desktop Installer
c:
cd \windows\system32
if exist “gds_installed” GOTO End
ECHO Installing Google Desktop Search
ECHO.
net use x: \\public\installs >nul
start /wait x:\GDE\GoogleDesktopSetup.exe /force /silent
net use x: /delete >nul
echo Installed > gds_installed
exit

:End
ECHO Google Desktop Search already installed! Exiting!
exit

Alter the server name (public in the example) and path to the installer, and then save the file with the .BAT or .CMD extension in the domains scripts folder, or somewhere accessable to users that will be running the script. Remember, users have to have Read and Execute permission to the folder containing the setup executable and the script.

Once saved, add the batch file to the GPO’s logon script (again, under User Configuration). Once done, link the GPO to the Organizational Units (OU’s) that you want GDE installed. Presto! You’re done!

The Script Explained

The very first part makes the window a nice blue with white writing and gives it a title, just in case the user happens to see it (although typically it runs before Explorer loads, and even then it’s usually minimized). Immediately after, it makes sure it’s in the C Drive and changes to the Windows\System32 folder and uses an IF EXIST to see if a file named gde_installed is present. If it is, it uses a GOTO to skip the installation and end the batch job.

If gde_installed isn’t in the system32 folder, it maps \publicinstalls (the globally-available share) to the X Drive, which isn’t used in our organization. It then changes to X:, runs the GDS installer with the /force and /silent flags to install it unattendedly, then it disconnects the X: drive so the users won’t see it, and creates the gde_installed file in the system32 folder.

Details

In the batch file, you’ll note the use of >nul. This simply directs console output into nothingness so the command window, if seen, only shows what I have ECHO‘ed to it. You’ll also notice that the GoogleDesktopSetup.exe program is executed using start /wait. This forces the batch process to wait for the installation to finish before moving on. Without it, it will try to disconnect the X: drive too soon, which will it to prompt the user to forcefully disconnect the drive. As this is a fully automated process, and console output is sent to nul, we don’t want this to happen, hense the /wait flag.