tech

Damn GNOME Applets

I want nice RSS reader. I’ve wanted one for a while now. I even made one. It’s pretty cool, for being a ticker. Only there’s one catch. It’s a GNOME applet.

Fuck.

You can’t install a GNOME applet locally. You have to install it in /usr, which makes it absolutely useless unless you’re the sysadmin. God damn it. There’s just no good reason to do that. That’s just laziness. Unix has always been (mostly) agnostic, and then here comes GNOME botching things up as usual.

I really don’t want to have to use something Tickershock, since I already have something better. Well maybe I’ll give in.

Linux, can still blow me

personal
tech

Permalink

Evolution in Your Hand

E.Coli can now metabolize citrate. Actually, one specific colony at Michigan State can.

For the past 20 years, Richard Lenski has been keeping 12 separate colonies of E.Coli alive in a petri dish. Every 500 generations, he freezes a sample, in order to stop their growth. Recently, one of the colonies has developed the ability to metabolize citrate, one of two nutrients in their substrate. This is important, because until now, E.Coli can not metabolize citrate. In fact, this is one of the distinguishing characteristics of E.Coli. Now after 31,500 generations, it can. This ability developed after many simple natural random changes to the E.Coli genome. Examining the
saved cultures, it was determined that the critical change occurred somewhere around the 20,000th generation.

The take away: Someone has watched evolution occur.

Take that Mike Seaver.

memes
tech

Permalink

Missing the Point

Uhura comes in Red Rock with a tethered hands free while carrying the phone in his hand.

Good thing he splurged.

personal
tech

Permalink

QOTD: tail -f

tail (GNU coreutils) 5.97:

tail: warning: following standard input indefinitely is ineffective

Interestingly enough, not only does it let you do this (Yay UNIX!), but this message doesn’t exist in tail (textutils) 2.1 from four years previously in 2002. I also find it interesting that GNU moved tail from textutils to coreutils as well.

qotd
tech

Permalink

VIA Makes Fun-Sized Computer


So I saw this article on /. about burning up a some VIA chip, and for some reason I read it. I think because I thought there actually was an answer about how long it took for the chip to die without a heatsink. Apparently this is all some marketing stunt by VIA to promote their new ARTiGo Pico-ITX builder kit. Normally I don’t really care too much about this stuff, but I’ll admit that sometimes those modded cases are kind of cool, albeit in that incredibly lame way. The thing that caught my eye about the the Pico-ITX was that it’s smaller than a baseball, and is designed to fit (with a 2.5 inch IDE drive) into a 5.25 inch drive bay.

Wow. I can have multiple complete machines within my main machine. Imagine a Beowulf cluster of those! ;)

tech

Permalink

Microsoft and NBC Uninvent the VCR

So Microsoft is colluding with General Electric (via NBC-Universal) to break television and to move us 30 years into the past. That’s right. Microsoft conspired to remove the ability to record television shows. Why? They probably got paid off. I suspect this is part of the .

Should anyone really be surprised that this happened? Of course not! Microsoft shoved their ironically named, “Play for Sure” digital restrictions management scheme overboard and screwed all the those dumb enough to exchange money for something they don’t control. (This goes for both the end users and the device “partners.”)

So just in case any of you still don’t understand how things like this work. You are not a customer. You are a commodity. You don’t even have a seat at the table. Microsoft, GE, none of the megacorps care about you. You’re a resource to be exploited, and are bought and sold like a jailhouse bitch.

tech

Permalink

Fuck You GCC!

Yesterday I spent several hours trying figure out why g++ couldn’t resolve a set of nested templates. I figured it was a strange problem with how C++ worked. It didn’t make any sense to me because I could see how the templates should be resolved. I just couldn’t figure out why it wasn’t working. It certainly looked like inheritance was screwing up the template resolution. (This is the code.) I emailed John the code, and he didn’t have any problems compiling it. That’s when I realized, it’s a fucking compiler bug in g++ 4.1.2.

fuckyou-cpp.cpp: In function ‘void serialize(std::ofstream&, std::vector >*) [with V = std::basic_string, std::allocator >]’:
fuckyou-cpp.cpp:100: instantiated from here
fuckyou-cpp.cpp:18: error: no matching function for call to ‘serialize(std::basic_ofstream
>&, std::basic_string, std::allocator >*)’
fuckyou-cpp.cpp: In function ‘void unserialize(std::ifstream&, std::vector >*) [with V = std::basic_string, std::allocator >]’:
fuckyou-cpp.cpp:114: instantiated from here
fuckyou-cpp.cpp:38: error: no matching function for call to ‘unserialize(std::basic_ifstream
>&, std::basic_string, std::allocator >*)’

Update: Sat May 10 19:04:30 PDT 2008
So after much tribulations, I thought I figured out how g++ resolved templates. In fact, I thought I figured it out, right up until the moment I tested my theory. Then it worked. Then I intentionally tried to break the code, and it still worked. Damn it. I thought I learned something, only for it turn out that I didn’t learn anything. I learned all about -frepo (and how it can cause an infinite loop in some versions of g++), #pragma implementation and #pragma declaration, and -fno-implicit-templates (and how it works on the entire file, thus breaking STL code), and even different template resolution methods.

Now the code I wrote works without any of those switches, and without shoving explicit declarations in a separate file. I have no idea why. I asked Arek to test it on a newer version of g++, and he said that my fuckyou-cpp.cpp didn’t work on anything newer. But he did mention that he got it to work by just flipping the order of template declarations.

So I guess these are the lessons:

  1. Make sure you put the vaguest template declaration first.
  2. If you need an untemplated version (i.e. the template is fully specified), then put that in a cpp file separate from the hpp file that will be included in the other files. If you don’t you’ll get multiple declarations of the untemplated version since it’s now contained in multiple files.

tech

Permalink

QOTD: For the Greater Harmony Edition!

Safari can’t open the page “http://en.wikipedia.org/wiki/Tiananmen_Square_protests_of_1989” because the server unexpectedly dropped the connection, which sometimes occurs when the server is busy. You might be able to open the page later.

Maybe it just winked out, but then again, maybe The Atlantic and Slashdot were a wrong.

UPDATE: Fri Apr 18 07:22:44 China Standard 2008
After Ryan suggested googling a certain religious group, I got a connection reset for the query and now:

Safari can’t open the page “http://www.google.com/” because the server unexpectedly dropped the connection, which sometimes occurs when the server is busy. You might be able to open the page later.

Huzzah!

On a related note, CNN International dropped out when they were talking about the Olympic torch protests regarding Tibet. I think it dropped out when they ran footage of the Tibetan protests being put down.

UPDATE: Fri Apr 18 19:16:23 China Standard 2008
I saw the Tibet footage I thought that was taken out. I don’t remember what channel it was, but it was there. I guess I don’t know what was going on with CNN. I have heard that CNN International was censored sometimes, though.

personal
politics
qotd
tech

Permalink

Clean Slate

Last year or so, I decided to move all my bookmarks from my local machine over to del.icio.us . I know. I know. Seven years late to the party. I’ve had these bookmarks for a while. Like since 1994. I have a lot of bookmarks. 1178 as of right now.

When I uploaded them, del.icio.us autotagged them according to what folder they were in. (Folders! Ha! Completely unwieldy.) Of course all of them were imported as unshared and tagged “imported”. My first reaction was to go through, fix the tags, and then share all the bookmarks; but then I realized that life was too short to do that, so I decided just to fix them as needed. I still have almost 700 tagged as “imported”.

I still bookmark stuff, but then I realized that I can’t find anything in it. I have no idea what’s there. Bookmarking was essentially giving props to something at one brief moment in time, but now I have no idea what it was. I have so many, I don’t think I can honestly use them.

I think I want to get rid of them. Just get rid of them all. Then, add them back as I need them. Granted, I should probably keep some that honestly are hard to find. (UCSC reimbursement form! I’m looking at you!) But do I really need a link to:

No. Of those links, the only one I visited more than once was the Dell i8k debian setup one. It used to be useful, but it’s not anymore. That machine was scrapped for parts, and I hate running linux as a desktop machine.

I backed up my bookmarks so I can reimport them, but really I think I just need to bite bullet and chuck them all.

personal
tech

Permalink

Dear Interweb: Stop Compressing Compressed Files

Dear Interweb,

AVI files, MP3 files, in fact, pretty much every media file you care about, have this thing called a “codec.” This thing tells how the audio/video is encoded. These things are made by some pretty smart people. People that know math. Now if all a codec did was encode the audio/video, they wouldn’t be very interesting. Essentially, there’d be just one. The reason why there are so many codecs, is that these things compress the data.

So if the data is compressed, then why are you trying to compress it more? Do you think it will compress it more? No. Quite the opposite. Compressing and already compressed file, makes it bigger.

Seriously. It makes it bigger.

But don’t take my word for it. Try it yourself!

Let’s look at this file:

ewdp-iamlegend_alt.cd1.xvid.avi.rar 707 MB
ewdp-iamlegend_alt.cd1.xvid.avi 700 MB

Wow. Raring that that AVI certainly made it so much smaller. Imagine if we would rar that rar! Wow!

tech

Permalink