On stupidity and drunken behavior

So, night before last I came home and hung out with some friends. We were a bit drunk, my roommate and Sak were fooling around and Sak slipped and fell on my bed. Problem was, my laptop was right underneath him, and so the LCD screen cracked. Bad, bad situation. Turns out repairing it would be more $$$ than the amount I paid for it in the first place, so I’m not really sure what to do on that front.

It’s a shame… I really was getting used to that laptop. I mean, I’ll probably just re-purchase the same one, but I dunno what’s gonna happen exactly.

In other news, I was playing with Glade 3 earlier today and decided that it really needs some work done on it. I would love to hack that project a bit if I had time. I mean, if someone can produce something like Gambas for Linux, then some sort of RAD tool for GTK is possible. I know the two aren’t really comparable (Glade uses libglade to dynamically load the GUI from XML files, Gambas is a “better VB”, i.e. a full environment), and that a lot of developers scoff at RAD tools for GTK, but I don’t think properly designed RAD tools are about “dumbing down UI design.” I think they are really about making UIs easier to design quickly, so that you can spend more time on the code that does stuff.

Also, I was checking out Mainsoft, with their product MainWin for J2EE. Interesting approach. They take Microsoft IL code and compile it to Java Bytecode. This means that for now, while Microsoft doesn’t support platforms other than Windows for .NET, you can actually convert take a .NET project and make it run in the JVM. I wonder if it works…

Linux innovations I recently discovered

I have to say, I wasn’t expecting to like the Linux laptop experience that much, but I was just playing with the synaptics driver written for XFree86/Xorg, and I can’t believe how much careful work has been put into it. The authors have a truly well-designed driver here. Let me give a quick resume:

  • Non-linear acceleration. This means that you can define a minspeed and a max speed for your mouse cursor, and also define an acceleration ratio for how quickly it goes between those two speeds. This allows you to have a slow moving cursor when you want to make fine movements (i.e. in the GIMP or when positioning an insert cursor), and still allows you to get across the screen by moving your finger quickly across the pad.
  • Fully working palm detection, so that when you are typing, you can still rest part of your hand on the trackpad and not move the cursor.
  • Support for all sorts of tapping. This is the one I love most. I can tap the pad for single click, double-tap for double-click, and double-tap and drag for selection and/or drag and drop. Additionally, one can tap with two fingers (middle and index, for example) for middle-click and tap the bottom-right-hand corner for right-click. Alternatively to the two-fingered middle-click, one can tap the top-right corner.
  • Support for vertical scroll on right side of trackpad. A great feature that allows you to slide your finger down the right side of your trackpad to achieve vertical scroll up or down.

Conclusion: you can do all your mousing from the pad, without even using the clicking buttons. It’s extremely intuitive, fast, and accurate. I’m impressed.

The other innovation I discovered was the taglist plugin for vim, which, when combined with exuberant-ctags, makes for quick source file browsing. Very handy for these OS class labs I’m working on, where the source files tend to be pretty big and involve lots of routines you didn’t code.

wifi detector bash script

I didn’t really like any of the wifi-related tools out there for switching networks, so I scratched an itch and coded my own. Read more if you’re interested in obtaining an easy-to-configure bash script that requires iwconfig, ifstate tools, zenity and dhcpcd, and can easily allow you to set an array of prioritized wireless networks which are scanned and joined if found. After you establish your connection, dhcpcd is called to negotiate your IP address. It works quite nicely, and allows me to move from network to network and only have to click a button to enable my wifi access. Check it out (code inside)…

The new Democratic Party, post-2004?

Olivia just tipped me off to watching Stanley Greenberg, author of “The Two Americas,” on C-SPAN2 BookTV. His final point was really powerful: that the democratic party’s new focus on the economy is pointing at a kernel of a much larger problem: the growing inequality between normal workers and the wealth of the owners of the corporations that employ them. He talked about how over the past three decades, income has barely increased for workers and costs have gone up by orders of magnitude. He talked about how people feel that they cannot even make economic progress, despite being hard workers. I’d write more about this, but I have to let it simmer: I think it’s a key to the arguments I’ve been developing over the past few months.

Getting Linux to run on an Averatec 3250 Notebook

It may have taken me a few hours and some lost hair, but I finally got Linux running (and running well) on my Averatec 3225 Notebook last night.

Kernel support is there for everything in 2.6.8.1, but the two major causes of problems are the Wifi chipset (RaLink’s 2500) and the built-in video (VIA’s S3/Unichrome chipset).

To find out how to get this stuff working decently well, read on.

On the economic “benefits” of globalization

I don’t normally watch The West Wing, but I watched a couple of episodes last night with Olivia. One of them had as a subplot the concern that a tech company was moving 17,000 programmer jobs to India, and a union organization wanted answers from the administration. The initial tone of the episode seems to speak to the concern of the workers, but the “ending moral” is that you can’t please everyone, and that globalization is ultimately “bad in the short-term but good in the long-term.”

I’m not sure if that’s the viewpoint of Aaron Sorkin, or if he simply wanted that viewpoint to show up in his show. But by hearing people talk about globalization so casually, I came to a very vivid realization. When people say, “Yes, 17,000 jobs are lost here, but it’s still good for our economy,” we don’t even realize what that person means when he or she says, “our economy.” Everyone has this different concept of the economy, and what exactly it is. For example, if I were to ask a bunch of people, even bunch of economists, what the economy is, would I get the same answer from each of them? Probably not.

Now, if we go down to the individual level, asking one of those programmers whose jobs was offshored what his economy is like, he would probably respond that his economy is quite shitty. And if we went to a community like Silicon Valley, from where the jobs were offshored, most people would say that the people of Silicon Valley are experiencing a rough economy.

But who is actually benefiting from the offshored jobs? Some people say “the corporation benefits,” but that too is an abstraction. The corporation was comprised of those 17,000 jobs (and others), so how could it possibly benefit if those jobs are gone? Definitely it doesn’t seem the corporation benefited from the relocation of 17,000 skilled workers. Do other workers benefit from the relocation of those workers? Probably not, as it creates team fragmentation, lowers morale, etc. So who benefits? Who?

Shareholders.

When people say “the economy gets better in the long-term,” what they mean is that shares of stock for shareholders goes up over time, and the stock market, as a whole, goes up. And shareholders are nothing more then the a privileged class, an elite, of America. So why do we let our economic future (the economic future of the workers) be decided by their wants and needs of the already-privileged shareholders? Why should I accept that 17,000 American jobs lost is worth the 2% increase in share price? And why do we implicitly accept this in our use of language surrounding the “national economy”?