Learning about Git

Lately I’ve been learning the git source code control system. It’s a distributed version control system, which means there is no central repository. It’s especially good for working on multiple branches.

Everyday GIT with 20 Commands

Alas, currently git doesn’t work well on Windows. (Due to many of its utilities being written in a hodge-podge of Unix shell scripts. Pretty lame. If they’d just used C, Perl, or Python it would have been very easy to port.)

Linux in a Windows-centric home network

I was a happy Microsoft employee for many years, and as a result, I run multiple Windows Vista machines at home. My family and I are happy with the system, especially the Vista Media Center / Xbox 360 combination that we use as our Digital Video Recorder, so I’m in no hurry to try and replace my Windows servers with a Linux ones.

This leaves my poor Ubuntu 7.10 Macbook as something of the odd man out. Over the past few weeks I’ve been learning how to configure it to work with my mostly Windows network.

Wireless Networking

This worked out-of-the-box. If I recall correctly, I had more trouble connecting to my home wireless network when running Apple Macintosh OS X 10.4. Hah, for what it’s worth, my wireless router is a Linksys router that’s running Linux, so effectively there’s no Windows involved. But I wanted to mention that wireless networking and Internet connectivity worked well out-of- the-box.

Connecting to a Windows Vista File Share

Here’s where I ran into my first problem. It turns out that there are multiple ways of connecting to a Windows server in Linux/Ubuntu, and they don’t all work reliably. I found that the UI-based way, using the Ubuntu “Places” menu, didn’t work for me. I could connect to my windows server, and view the server’s directories, but I couldn’t reliably read the files. Accessing files was very slow, and reading large files would always time out.

I was able to access my Windows Vista shares by following these instructions:

Mounting Windows Shares in Ubuntu <– allowed me to read my Window shares.

Permission issues with smb and cifs <– allowed me to delete files on my shares.

The downside of the command-line approach is that you don’t get a nice icon on your desktop, you have to navigate to /mnt/myshare/… yourself. But it’s reliable. You can partially work around this by creating a symbolic link from your desktop to your share. The reason this is a partial work-around is that Nautilus will think that the resulting directory is a “local” directory, so it will try to do i/o intensive things like create preview icons. Oh well.

For what it’s worth, the reliability problem with the default way of accessing Windows shares seems to be due to Ubuntu using the older, out-of-date smbfs system instead of the more modern cifs system. You’d think a hip, happening OS like Ubuntu would fix this problem, but it’s a long-standing one, so I guess it hasn’t made it to the top of their priority list yet.

Windows Printing

This was easy.

  1. First I shared out my printer on my Windows Vista machine. (I never bothered to do that before.)
  2. Then on my Ubuntu machine I choose the System:Administration:Printing menu item.
  3. Clicked on the New Printer icon
  4. Chose “Windows Printer via SAMBA”.
  5. Fill in the dialog box. Use the handy “verify” button to verify that you’ve done it right.
  6. Click on Forward and finish the configuration.

I was pleased to find my printer’s model number mentioned in the driver list. Everything worked the first time.

Ubuntu 7.10 Beta Issues

I’m still getting used to using Ubuntu 7.10 beta on my Macbook.

Unresolved Bugs

  • The bottom task-switcher bar sometimes disappears.
  • Firefox doesn’t quit cleanly - it always crashes.
    • No big deal, this just means that I need to deal with a “do you want to restore” dialog every time Firefox starts up.
  • Macbook Audio can’t be muted.
    • This appears to be a long-standing Ubuntu / Macbook bug, due to the way Macbook audio muting is implemented. Someone needs to write a driver, and unfortunately audio driver writers don’t seem to care much about Macbook laptops.

Resolved Bugs

  • Support for a one-button trackpad
    • Choose System:Administration:Synaptic
    • Use synaptic to install the mouseemu package to allow F11,F12 buttons to emulate middle and right mouse clicks.
  • Phantom button clicks while moving the mouse:
    • Choose System:Preferences:Mouse:Touchpad
    • Un-check “Tap to Click”.
    • Choose Close.
  • Problems connecting to Windows Vista Printers and Windows Vista Shares:
  • Enable Cleartype-like nice looking anti-aliased fonts:
    • Choose System:Preferences:Appearence:Fonts
    • Choose “Subpixel Smoothing”.
  • Enable Java:
    • Choose System:Administration:Synaptic
    • Install sun-java6-jdk
  • Enable Flash:
    • Choose System:Administration:Synaptic,
    • install ubuntu-restricted-extras.
    • This installs a bunch of useful software that should be in the default Ubuntu install, but isn’t due to political differences between the software authors and the Ubuntu packagers.