The GIMP

I went out to get some more shots today. I decided to try shooting in raw mode instead of JPEG. The images were 7 MB instead of 2 MB, but I have a lot more control afterwards. It’s much slower when you shoot in burst mode, though, so I switched back to JPEG.

Afterwards, though, I wondered if I could open it. It turns out that Ubuntu handles it natively. (I can’t say the same for Windows.) So I uploaded the files to Flickr, but it turns out that Flickr doesn’t display .crw files. So I had to export it with the GIMP.

In addition to letting you export to JPEG, it lets you export to ASCII. And an HTML table. So, for grins, I exported one of my six-megapixel pictures to an HTML table. It popped up a warning that it would almost certainly crash my browser. I did it anyway. Several minutes later, it finished writing to disk. It was a little shy of 300MB. It didn’t really crash Firefox per se, but I didn’t see anything but gray table cells. I’m not sure what went wrong, really, but I can forgive it for not accurately displaying a 300MB table.

title=”Photo Sharing”>Bentley Falcon

That’s a JPEG. Although that was a native JPEG, not one saved from a CRW.

Absurdity

The news lately has been pretty surreal. By “lately” I mean the past few years.  For example, who would ever think that:

  • NASA would spend $8 million to discover just how often passenger airliners almost collide, and then refuse to release the results to as to not alarm people.
  • Our President would veto a children’s health care plan and say he did it to show that he was still relevant.
  • Our Vice President would almost always be in “an undisclosed location” and declare that he’s not bound by rules for the executive or legislative branch.
  • Our Vice President would shoot someone in the face.
  • One of the defense companies in Iraq would constantly get itself into deeper and deeper trouble.
  • People would begin shooting each other over a football game.
  • A conservative Senator would be arrested for soliciting gay prostitutes in an airport bathroom, and accidentally plead guilty.
  • Colbert, a “fake new anchor,” would announce his candidacy for President, and solicit the aforementioned conservative senator as his running mate, and articles would wonder whether or not he was being serious.
  • A fictional character would be outed as a homosexual, causing worldwide controversy.

Really, I’m not sure anything could hit the news and not surprise me these days?

Business Idea #49240924

I’m a big fan of things that don’t suck horribly. Sometimes I like to look up song lyrics on the Internet. And there are no sites that I’m a fan of, if you catch my drift…

There are a handful of lyrics sites that always rank highly on Google. But I’d say that 98% of the time, the lyrics contain egregious errors. They completely mishear a line (often in ways that just common sense can show is wrong), or have glaring misspellings, or just typos. And terrible formatting. Always.

I don’t get how a whole industry can be crappy, but that’s beside the point.

There’s a site called WikiLyrics. At one time the founder commented on a blog from years ago when I called for such a service. But the site is pretty hard to navigate, and looks too much like a wiki.

SongMeanings is the site I like most. The lyrics are usually spot-on. And, best of all, you can post comments on the ‘meaning’ of a song. But they have odd uptime problems, where the site will be down for days at a time. I haven’t been able to get to it for several days now.

If I had a lot of money, I’d buy out the handful of companies that always rank highly on Google for song lyric searches, along with Song Meanings, and develop one site to rule them all. Registered users could edit the lyrics, with some oversight. (My intuition says that music-related stuff is much more prone to vandalism.)

Rather than a bajillion obnoxious ads, we’d have a couple tasteful ads. Ideally, it would be more specific links: buy the song from a vendor who pays me a cut of every sale, and buy band merchandise with a similar arrangement. You could also try to work out something with concert tickets.

Work on setting up 30-second samples of the song. It is my understanding that 30 seconds counts as fair use.

Let people leave comments, but have Digg-style ‘voting.’ (Plus active moderators.) People can leave comments. The stupid ones get moderated down, the really stupid ones get deleted, but the good, insightful ones show up on top. The ones that say, “This song is about…”

And, most importantly, you need a nice clean, easy-to-use UI. Every single lyrics site gets this wrong. I don’t want to go through categories. I don’t want to have to specify whether it’s a song or an artist. I want to type in something and get it. I don’t want the lyrics to be in a 300-pixel wide frame that’s flanked by ads and other useless crap.

You can develop this on your own, but buying some other lyrics sites gives you steady traffic, high link rankings, and an established set of lyrics, however pathetic they may be. And, by buying them out, you ensure that the Internet has one less terrible website.

You are free to steal and use this idea. In fact, you are encouraged to steal and use this idea. 

Knowledge from the Bible

It just occurred to me how freaking weird the phrase “know, in the biblical sense” is.

You know we have a problem when a slang term for sex comes from the inerrant word of God.

  • Except that we can’t possibly know? (And I don’t mean know in the biblical sense…)
  • Except that we have no way of knowing if it’s really the word of God, either.

Sealegs

You know how they say that people who live on ships come onto land and sway back and forth?

I bought an XBox 360 for the school. (I’m being reimbursed, of course.) While I was there, I couldn’t help but pick up the VGA adapter for XBox, since I have a spare 17″ LCD monitor and a spare XBox here with me. I can now play at 1280×1024 (nice!) Still no match to the 1920-ish that we’ve got on the ridiculous LCD TV that Kyle bought, but still…  It sure beats trying to play on, say, a 17″ CRT TV.

So I spent the past half hour or so playing a demo of Blazing Angels. It’s kind of fun, but it takes a long time to get used to. When you keep the camera focused on your target, you can easily lose perspective of whether you’re flying up or down or what. So I died one too many times and got sick of it, so I moved over to the computer.

As I moved the mouse, I was rocking back and forth, and even more disoriented when the whole world didn’t sway with my mouse movements. It’s way more disorienting than I’d expect. Remind me to never become a sailor.

Words I Still Can’t Spell

Here’s a list of words I screw up almost every time I try to spell them:

  • Ubiquitous
  • Silhouette
  • Schizophrenia
  • Curiosity

(Ironically, I got every one right on my first try here.) Curiosity is the surprising one, because it’s a simple word. But why the heck isn’t it curiousity? I guess the key is that you drop the “u” sound when going from “curious” to “curiosity,” but it still messes with me. Ubiquitous just has way too many vowels. Silhouette is French, and I always screw up French words. There’s no reason for there to be an h in it, nor a u, really. And the problem with schizophrenia is that it’s prounounced “skit-za-phrenia,” so you expect a t in there, and you don’t expect it to start sch. But it does.

The JQ

Introducing a new measurement: an e-mail junk quotient (JQ), defined as e-mails deleted on sight divided by non-spam e-mails received over a given period of time. N.B. that JQ doesn’t factor in spam. It’s actual e-mails sent to you.

The past two days, my JQ has been at about 95%. It’s typically below 50%. It’s actually pretty remarkable how bad it is: I’ll check my e-mail, have four new messages, and just seeing the subject and the sender, I delete them. I don’t care about a marketing internship, because I’m not a marketing major. I don’t care about a study-abroad trip in London, especially when it’s the third e-mail I’ve had about it.

Am I alone here? So much of the e-mail I receive is just utter junk!

Conversations, Poor

A conversation I had yesterday.

What I thought was said:

Me: picks up a bag of Cheez-Its he brought to meeting Them: “Where did you get those?” Me: “I got it over in Adamian, at the vending machines.” Them: [incredulous look] Me: “I was going to go to Einstein’s for a bagel, but the line was too long.”

What was actually said:

Them: “Oh, nice haircut!” Me: “I got it at the vending machines in Adamian!” Them: [incredulous look] Me: [discusses attempt at dinner]

Fun with Shell Commands

I’m now running a mailserver, and I was trying to set up Mailman to handle a mailing list. I was having some odd behavior causing Mailman to barf up a fatal error, so I used a trailing monitor on the log file with tail -f.

In the course of doing that, I noticed several hosts connect attempting to deliver mail (presumably spam) to “bumttwagnerfor@domain…”, a bizarre address that definitely doesn’t exist.

It’s not a big deal, because the mail’s just bouncing. But it got irritating watching them all in the log file.

I wanted to ban them. It turns out that Linux makes this easy: there’s a hosts.deny file, and anyone in it is banned from connecting. I already have a script that watches for repeat failed login attempts on ssh and bans them. (And I have something like 200 IPs banned, although I suspect that it’s not purging them appropriately.)

All the log entries are in a common format, and look like this:

Oct 8 05:41:31 oxygen postfix/smtpd[23212]: NOQUEUE: reject: RCPT from unknown[62.233.163.250]: 550 5.1.1 : Recipient address rejected: User unknown in local recipient table; from= to= proto=ESMTP helo=<250.248/30.163.233.62.in-addr.arpa>

We can see (actually, guess, in my case) that the IP is the 10th ‘column’ (using a ‘space’ as a delimiter). So we can begin a rudimentary script to print out just that:

# grep bumttwagnerfor /var/log/messages  | awk '{ print $10}' | head
unknown[211.49.17.175]:
81.202.185.36.dyn.user.ono.com[81.202.185.36]:
host-89-228-234-224.kalisz.mm.pl[89.228.234.224]:
LSt-Amand-152-32-14-78.w82-127.abo.wanadoo.fr[82.127.29.78]:

But there’s an obvious problem: the hostname is rammed up against the IP. I want to just ban the IP, and strip out the hostname. The correct way is to write a lengthy regular expression to match just whatever’s between the [ and ]. (Note that you can’t just write a regular expression to match IPs: the very first one has an IP in its hostname, for example, which would throw you off.)

The quick and easy solution is to replace the [ with a space and the ] with a space, which gives you “hostname IP “. And then you use awk again to print it:

grep bumttwagnerfor /var/log/messages | awk '{ print $10}' | sed "s/[/ /g" | sed "s/]/ /g" | awk '{print $2}'

This is a pretty ugly command. Just the way I like it. 😉

But we’re not quite done! The format for hosts.deny is “Service: Address.” We’re just getting addresses here. I want the output to be something like ALL: 1.2.3.4 for each entry. (If they’re spamming me, I don’t want to allow them access to any other services.)

When it’s all said and done, here’s the command:

grep bumttwagnerfor /var/log/messages | awk '{ print $10}' | sed "s/[/ /g" | sed "s/]/ /g" | awk '{print "ALL", $2}'

You can just append a >> hosts.deny to deny them right away, or parse it through head or less to review first.

And viola. 440 IPs banned.

Seriously, though. wtf is going on? 440 different people have tried spamming this address that has definitely never existed.