Posts Tagged ‘software’

Ada Lovelace Day

Wednesday, March 25th, 2009

AdaIt’s easier for women to feel motivated to pursue traditionally male-dominated interests if they can see other women working in those fields; but yet, women’s contributions to technical fields are often invisible. So Suw Charman-Anderson started Ada Lovelace Day to bring these women out of the shadows by encouraging as many people as possible to blog about women in technology on the same day.

March 24? Why, that’s today! Here are some of my computing heroines:

  • Ada Lovelace herself, of course! She’s now thought of as the first computer programmer — she was friends with Charles Babbage and wrote a set of instructions for calculating on his Analytical Engine that’s thought of as the first program (although the engine was never built, so she would never get to test her code).
  • Grace Murray Hopper was a freakin’ badass. She was a Navy admiral who pioneered the idea that computer programming languages should be similar to English (helping make possible COBOL’s leap away from assembly language to a new level of abstraction, which made programming a lot easier!). She was also one of the first people to develop and promote standards for computer languages and systems.
  • Maria Webster is the author of the blog dotfiveone: Geekspace for Women, which covers everything from science fiction to hands-on electronic circuit building. By providing a space on the internet targeted toward women who are already quite geeky, thanks very much, Ms. Webster definitely helps to fill a niche that’s too often neglected.
  • Valerie Aurora (formerly known as Val Henson) is a kernel hacker, filesystem geek, and Linux developer who also wrote this great HOWTO Encourage Women in Linux.
  • Cathy Malmrose overcame childhood discouragement of her technical interests to found and run ZaReason, one of the few hardware vendors to sell systems with Linux preinstalled. Ms. Malmrose also makes a point of sharing information about open-source software in an open, friendly way to people in her community; as a t-shirt on her site says, “Friends help friends use Linux”!
  • Everyone involved in LinuxChix, a great support/information-sharing organization whose motto is “Be polite, be helpful.” Words to live by!
  • Gina Levow is an AI/computational linguistics researcher who was also one of my computer science professors in college; she gave me my first technical jobs, first as her research assistant (which is where I first learned UNIX-y command line magic) and then as a grader for an introductory CS class.
  • Anne Rogers was another one of my CS professors; her Operating Systems (and Computer Architecture) classes were an intense boot camp for learning the inner workings of computers, and after taking them, I knew I was compelled to pursue even more technical knowledge.
  • Yikes, that list ended up way longer than I planned (I kept thinking of more awesome ladies to add)! I’d also recommend searching for more Ada Lovelace Day posts — I really enjoyed seeing other bloggers’ profiles of accomplished technical women.

Windows Vista and Ubuntu Dual-Boot (Gateway T-1628; resolving install error 0×80070017)

Thursday, March 12th, 2009

So Internet Explorer 7 has been out for a while now, and I finally caved — I can’t get it to work using the wonderful ies4linux, so I need to have a copy of Windows available to test sites in action.

Fortunately I still had the re-installation disc from the copy of Vista I wiped from the laptop when I got it. Here’s how I set up my dual-boot:

  1. Burn an Ubuntu Live CD; boot from that CD, and launch the GParted partition editor from the System > Administration menu.

    Note: This step is where I ran into the most issues. I tried to create a new partition for Windows, following the instructions from this guide — but the Windows install would freeze at “expanding files 0%”, and later give me error # 0×80070017. Googling suggested that this error might have been a problem with the disc, but that didn’t really make sense since this was a factory disc. Eventually I figured out that it just meant there was some problem communicating between the disc and the hard drive — Vista didn’t like the partition I’d set up after my Ubuntu partition.

    Here’s how I solved this issue: I used GParted to move my Ubuntu install forward on the disk, then created a partition (without formatting it) for Vista at the beginning of the drive. Then — since Ubuntu’s bootloader was still at the beginning of the drive, and Vista gets confused when it sees that trace of another operating system — I needed to zero out the new partition, with dd if=/dev/zero of=/dev/sda1 where sda1 is the new partition. Warning! If you try to use that command without knowing what you are doing, you may well zero out your whole drive!! ALWAYS HAVE BACKUPS.

  2. Put in Windows CD; choose “Custom Install”; select the new partition as the destination (it should be called “Unallocated” or something — it was pretty recognizable after my work with GParted); click through until it starts installing; wait a LONG LONG time.
  3. Boot into Windows! Plug in ethernet cord; reboot to install drivers, etc. that allow me to have nice things like correct screen resolution and wireless internet.
  4. Use the Ubuntu Live CD and these instructions to restore my bootloader and set up dual-boot
  5. Happily choose between Ubuntu and Vista every time I boot up!

In general, this install would have gone a lot smoother had Vista been able to peacefully coexist with another bootloader. Different versions of Linux have no problem living on different partitions, and when you have an existing Windows install, you can easily install Linux in a separate partition without any confusion. But then, I guess that’s because Linux is designed to be used the way its users want to use it, and Windows is designed to be used the way Microsoft wants you to use it.

Using Vista a little bit gave me a better appreciation for people who try Linux and don’t care for it — I found myself disliking things about Vista just because it was unfamiliar and didn’t come set up the way I like it. But even though I know I could customize it and get more comfortable with it, I’ll still stick with Ubuntu for most of my computing, since I know it’s what ultimately gives me the most flexibility.

New Blog Software!

Monday, October 27th, 2008

This blog is now powered by Wordpress! I switched over from Blogger in part because Wordpress offers more features and extensibility — like that tasty tag cloud over there — and also in part because I keep the free-as-in-beer-and-speech Wordpress code on my own server, where I can read and modify it, or not, to my heart’s content. Ah, delicious freedom!

Plus, Wordpress was not only super-easy to install and set up, but importing all my old Blogger posts and implementing redirects from the Blogger page addresses and feeds to the new versions took just a few minutes. It’s not surprising that Wordpress is considered the best blogging platform out there!

It’s sporting the default Wordpress theme for now, but expect an exciting redesign of both this blog and my portfolio site in the coming weeks!

Familiarity Now vs. Effectiveness Later

Monday, May 26th, 2008

It’s a familiar adage that an effective user interface is designed to be familiar; users don’t like to encounter systems that make them think on the first try, which usually means they like to encounter interfaces that are as close as possible to the ones they’ve encountered before. This is on my mind because I’m currently learning the interface for a new music player; it has quite a learning curve, based in large part on its unfamiliarity (not that “File” is the most reasonable choice, in hindsight, for a menu name, but is “Engage” really any better?). But the more I dig into Amarok, the more I realize that it’s incredibly full-featured, and it’s just not possible to display every feature in a commonly-understood way; once I learn the basic operations, they seem straightforward and natural.

I’m reminded that the high learning curve is a common criticism of Linux — you’ll have to learn the command line, or my favorite text editor (of course! Ctl-@ Ctl-n Ctl-n Ctl-w Ctl-y to copy and paste a couple lines!), or the Gimp, or any number of unfamiliar solutions to familiar problems. But many people, once they learn these solutions, realize that the initially tricky solution can be more efficient in the long run, and that difficult-to-figure-out interfaces are often so because there are so many things you can do with them (Photoshop’s advanced features aren’t too intuitive to figure out, either).

Building a familiar interface will allow quicker adoption of your product; but a lot of the software people are loyal to the longest doesn’t necessarily have the most intuitive interface, but the one that helps you get things done once you’ve learned it.

Ubuntu Installations

Thursday, February 21st, 2008

Yesterday I installed Gutsy Gibbon on my boyfriend’s Dell laptop (the Inspiron 9200). I continue to be amazed at how smoothly Ubuntu installations run; wireless (!!!) and printing worked out of the box. The one weird glitch is that at bootup, after the phrase “Starting up…” appears, the load hangs with a blank screen — until you press Ctl-Alt-F2. No idea why, but I’ll keep tinkering.

I also recently switched from Gentoo to Ubuntu on my main desktop workstation, after using Gentoo as my primary operating system for about a year. I picked Gentoo (with fluxbox!) initially because I wanted to start from scratch, know everything on my system, and gain the knowledge and experience that would come from compiling and installing everything myself. And I did — but now I’m ready for a setup where, when I plug in my digital camera, I’m prompted to download pictures instead of digging around in /dev/ looking for the device. I know that if I want to install/uninstall/tweak/configure anything, I have the freedom to do so — the freedom of the GPL!
When I initially put the Ubuntu live disk into my desktop, I was booted into busybox (initramfs) rather than the Ubuntu desktop; the fix was to press F6 at the boot menu and edit the boot parameters (if I recall correctly, add ‘all_generic_ide’ before the ‘–’). After that, everything installed smoothly — I was able to put the existing contents of my hard drive in a new partition, which is now my dedicated /home partition.

This is my third recent Ubuntu installation — at Christmas I installed it on my mom’s Dell Vostro (dual-booting with XP — I love that the installation disk makes it easy to keep your Windows installation as-is). That needed some configuration for the wireless card, but other than that everything was simple to get set up.

Since last year’s Feisty (which I installed on my (now-defunct) iBook, after dual-booting Edgy and OSX) I’ve been totally psyched about Ubuntu; its out-of-the-box settings and programs, for ease of use, sane defaults, configurability, etc top any proprietary system I’ve used. Hardware support isn’t consistent enough for the non-technical user to be able to install it on their own; but non-technical users rarely install their own systems, proprietary or free. Once it’s set up, the modern Ubuntu distribution strikes the perfect balance of ease-of-use and workability (as good as or better than Windows or OSX) and configurability (potentially infinite, as with any GPL’d product!), perfect for any level of user.

Rails Recipes

Tuesday, July 10th, 2007

Anyone developing any kind of web app with Rails should definitely pick up a copy of Rails Recipes. Even for a relatively simple app, I consistently find myself saying “I wonder if that book has anything I can adapt to do this task” and then it has, not something I can adapt, but something that is exactly right for the task at hand.

It’s really a lot like Rails in general — once you’re working in it, it’s so obvious that of course not every developer should have to reinvent the wheel for every part of an application when nearly every web app has these same parts. I’m a little bothered, though, that it seems so innovative — duh, there should be a framework that makes it easy to develop the stuff that everyone is developing, and duh, just like I don’t have to figure out how to make bread by trial and error, I shouldn’t have to figure out how to code an AJAX preview by trial and error. I guess I need to get better at training myself to think DRYly, so this kind of process will seem as natural as it should.