[]RSS

About Archives Artwork Comic Contact Philosophy Projects Tags

Linux kernel to support 65k CPUs

[Comment]

January 28th, 2008 in Links

x86 merge notes for an upcoming kernel release, including theoretical support for up to 65k CPUs, and 4k CPUs in more practical terms. Computing is back to where it started for me, except instead of 4k of RAM at the forefront it’s CPUs. We’re now talking about CPU support in the thousands … knowing in the back of our minds that in a decade it will be millions.

Whiteboard Jabber client

[Comment]

January 24th, 2008 in Links

Jabber + whiteboard for Linux, Windows, and Mac.

Top for MySQL

[Comment]

December 28th, 2007 in Links

MyTop is a top tool for MySQL. It’s a text application for Linux systems that shows you what’s happening on your DB server.

Linux desktop memory footprints compared

[Comment]

November 24th, 2007 in Links

A comparison of desktop memory usage, pitting KDE, Gnome, XFCE, and Plain XFree against each other in the battle for the smallest footprint.

Kick your CPU’s ass

[Comment]

November 17th, 2007 in Links

Have you ever wondered how to completely exhaust your Linux system’s CPU? Try cpuburn, a utility available for most distributions. It’s especially handy if you’re testing something like Amazon’s EC2 service.

Ubuntu 7.10 iPod touch/iPhone charging support

[Comment]

October 28th, 2007 in Links

I used to have to boot to my Windows partition regularly to charge my iPod touch, a feature that’s been added to Ubuntu 7.10. Now I only need to reboot if I need to resync it, which I do far less regularly. Yes, I’ll be buying a Mac this year1.

  1. which fixes the problem

Hack of the day: serial programming on Linux versus Windows

[Comment]

October 19th, 2007 in Programming

screenshotI borrowed a serial UPC scanner from work today for some Friday night hacking. It’s a ReaderWare LaserChamp/Flic Barcode reader re-branded under the SerialIO name. It came with a standard serial cable and didn’t have a manual.

First, I booted to my partition to see the raw data from the scanner.

$ cat /dev/ttyS0

No dice. I did some searching and found that the scanner likely ran at 4800 baud.

$ setserial /dev/ttyS0 baud_base 4800
$ cat /dev/ttyS0

^B043396143234

Ah, some data. I removed the control characters and had myself a UPC symbol. I wrote a script and scanned a bunch of books, CDs, and other crap sitting on my desk. I also found a manual for the scanner, which had some settings symbols1.

I booted to my XP partition and started . I wrote a Perl script to mimic what I did on Linux, except using the Win32::Serial module. I fired up CPAN to grab the library, but CPAN was down. I switched to ActiveState’s Perl distribution and grabbed their Win32:: PPM. I finished the script and tested it. It worked.

A while later I checked CPAN again, grabbing the Win32:: module using Cygwin’s Perl. It didn’t build. This seems typical for Cygwin and CPAN/Perl modules2. I moved on.

I switched to C# to see how it compared to Perl and the Linux/Bash hack. I whipped together a simple application3 that listened for data on a serial port, cleaned it up, and copied it to the clipboard. It worked4.

I also attempted to hook the C# code up to the Amazon API (to get ASINs), but found the networking libraries more complicated than I had time for5.

My favorite approach? Hands down, I liked the Bash script6 best. It was one line of code, including cleaning it up with sed. It’s not something I can ship, but it’s the way I’ll scan all of my books/CDs/DVDs.

The Perl Win32::Serial hack was longer (a dozen lines), but it also worked. It was no better than the 1-line Bash script, so I tossed it.

The C# hack consisted of a single form and its supporting class (a few dozen lines of code). It worked, and is easy to distribute. I’ll use this if I’m stuck doing something in Windows.

Total time for all 3 hacks? 3 hours and 25 minutes7.

  1. You print the page and scan the symbols to change the scanner’s settings
  2. Most of the tests failed for the Win32::Serial module
  3. And the .NET build of it
  4. C#’s serial code was nicer than Perl’s, but not as nice as the devfs hack
  5. Perl’s networking is much nicer than C#’s
  6. Bash and devfs’s /dev/ttyS0
  7. My wife and kids were out for the evening

Six things that Windows does right that Linux still doesn’t

[Comment]

October 9th, 2007 in top10

brainAs a follow-up to last year’s top10 list of things Linux does well, I figured I should write about what the Windows platform does right.

And as I’ve said before, I’ve been developing software for Windows and *nix on a daily basis for more than a decade. I’ve also used OSX (and earlier), WinCE, PalmOS, and many other operating systems. Each system has things that work well, and each has things that will suck the life out of you. Looking at the differences is a great way to learn about what works and what doesn’t.

Note to Digg readers: Windows succeeds as a platform because it’s everywhere, and it’s easy to build software for, something that’s only possible due to their great vendor support (and chair-fueled monopoly). And while Linux vendor support has improved vastly in the last 10 years, it is still no match for the base Microsoft has built. So what? Linux will get there (and it’s my home platform), it’s just not there yet.

What do I think Microsoft Windows does well?

  1. Snappy application startup and windowing. I dual boot most of my systems, and on equal systems (with reasonably optimized packages) Windows beats Linux hands-down in general snappiness (outside of older tools like vim). Recent Linux distributions have improved a lot, but they still lag in snap (especially startup times, window resizing, etc.). This goes for both KDE and Gnome applications. My definitive test? Firefox on both platforms: 250ms on WindowsXP, 1.5s on Ubuntu 6.10. This is partly a Gnome problem, partly an XFree problem, and partly a gcc problem. And if you haven’t noticed the difference, try measuring it yourself.
  2. 3d and wireless drivers. Hands down, most hardware vendors support Windows best. Linux still wins with most of the tangent hardware (printers, scanners, nics, etc.), but it tends to fall on itself with the proprietary mess of new-fangled 3d, capture, and wireless hardware. Some vendors like NVidia have improved their Linux support greatly (and I actually prefer NVidia’s newer XFree driver package over their Windows package), but in terms of support and performance, Windows XP’s vendor support has Linux beat.
  3. Stable ABI and APIs. While the Win32 APIs are a mess, they are binary stable. The nature of Gnu and OSS prefer source-stable APIs (which is also good). Binary compatibility, though, is handy for writing commercial software. Yes, commercial software can be written for Linux, but it makes more sense to release sources on Linux than to aim for widely-compatible binaries.
  4. Games. I’m not a PC gamer, but if I was XP (or 2k) would be the place to do it. Personally, I prefer my hand-held and console games.
  5. Specialty applications. Software development of nearly any specialty software is still cornered in the Windows market. We’ll all be happy when these vendors start supporting Mac, Linux, and web platforms, but that’s still years off. Until then, most people need to keep a Windows machine around. It’s not that custom Linux applications aren’t possible, it’s just that they’re so pervasive in the Windows world: every shop I’ve consulted at has a handful of custom applications that are Windows-only, and no longer maintained. This makes it very difficult for businesses to consider switching away from Windows.
  6. Browser plugins. Flash, for example, even on the newest Linux distros will stop working after a few months of updates (or may not work at all for some architectures). This is especially annoying now that Flash is actually useful, as sites like uTube and Google video use it to package video online. To contrast, I’ve never seen plugins stop working in IE or FireFox on Windows. Flash on Linux has lagged behind the other platforms too, and is not available for 64bit builds of Firefox.

New Linux text editor

[Comment]

October 5th, 2007 in Links

Scribes is the new Linux text editor on the block. It similar to Textmate (but not bundle-compatible), and has a Gnome UI.

Link: An overview of GNOME 2.20

[Comment]

October 2nd, 2007 in Links

An overview of GNOME 2.20 at ARS Technica.

Next page [>>]