February 08, 2010
Navigation Pet Peeve: Solved!
I had a good experience today with the Google Maps mobile app; one of those moments where technology did exactly what I wanted it to do. It makes me think that the developers actually use it themselves and care about making it work for all the different ways people want to use it.
But first, my navigation pet peeve. The most frequent way I want to use a navigation device is to get around a traffic jam. I already know how to get where I'm going, but there is traffic in the way and the goal becomes to take a less efficient route.
This usually happens on a highway, so I get off at the first exit, fire up the navigation software at a traffic light, and type in the address of the place I want to end up. This is where every standalone GPS device I've ever used pisses me right the fuck off because the first thing it says is to make a u-turn and get back on the god damn highway. And then when I (obviously) don't make the u-turn, it's a series of "Recalculating... make a u-turn at [the next intersection]" until I've already figured out how to get halfway to where I want to go. Tekmology being unhelpful.
But today, I fired up the app on my phone after getting off the highway, and it actually told me something useful! Realization didn't dawn for a couple minutes, but I wasn't immediately instructed to flip a bitch every 30 seconds.
Now, who knows whether this is something that the developers had a meeting about or whether their product manager just made it a requirement, but however this fucking sweet feature made it into the app, thank you for solving my pet peeve! Now to find the next one...
March 24, 2009
website mashup
I haven't been updating this site regularly, but I have been using a blogging service called Tumblr for a while now. It's pretty minimalist, but definitely less micro than Twitter, in that it allows you to post other media types (images, video, audio) in addition to just text.
The only super easy way to get your Tumblr feed onto an existing domain (without using the APIs and writing actual code) is to point your whole domain at your Tumblr page. That's not what I wanted at all, but I've been too lazy to spend the time integrating.
However, over the last few evenings, I've done just that, and what you see on this site is (as of */10) posts from those two sites, mashed together. Enjoy!
April 17, 2007
the RIAA makes its move
I got an email today, from the founder of Pandora, which is an innovator in online music distribution based on the user's unique musical tastes. He asked me to sign a petition to Congress opposing "a recent decision by the Copyright Royalty Board in Washington, DC to almost triple the licensing fees for Internet radio sites like Pandora" retroactive to January 1, 2006. This is a power grab by the RIAA to put its competitors out of business. Sign the petition and do your part to promote innovation in music and music distribution. What I attached to my petition signature is after the jump.
The record companies are greedy and inept. They exist to exploit distribution channels that are quickly becoming obsolete because of the internet and the streaming technologies it enables. So they try to change laws to make their competitors' business models illegal. This is America. This is supposed to be the democratic free market where I vote with my wallet. Innovate or die. But the record...*ahem*, excuse me, packaging and distribution companies can afford to change the rules because they've been exploiting musicians for so long. Is this still America? Is this still the democracy of the free market? I say no. Not for the companies they are trying to bankrupt, and not for the average music listener who just wants to hear music and buy what they like for reasonable prices.Without sites like Pandora, it is not possible for me to find music I like on my terms without paying ridiculous amounts of money to record companies. And make no mistake, that's where the money goes, it doesn't make it to the artist. To quote Courtney Love's speech to the Digital Hollywood online entertainment conference, given in New York on May 16, 2000, "Piracy is the act of stealing an artist's work without any intention of paying for it. I'm not talking about Napster-type software. I'm talking about major label recording contracts." If I want to support an artist, I don't go to the store and buy their CD, because I know none of that money goes to them. I go to a concert, something, anything other than supporting what is essentially, in the parlance of our times, the MAFIAA.
February 01, 2007
Boston, you are retarded.
So if you haven't heard, Boston got its panties in a bunch over some LED signs that were part of a guerilla marketing campaign for Aqua Teen Hunger Force (ATHF), which is one of the most bizarre (and amusing) shows on [adult swim]. Then [adult swim] goes and puts this shit up on their website, completely validating Boston's reaction. Unbelievable. Boston can kiss my fucking ass. THEY'RE LEDS. Good lord.
Tell them they suck for apologizing. I did:
I don't appreciate you validating the city of Boston's knee jerk retarded reaction to a harmless advertising campaign. I also don't appreciate you selling the advertising firm down the river so quickly. I realize you have a bunch of pussies in suits upstairs telling you what to do, but for $deity's sake, a disproportionate response to a bunch of LEDs doesn't require you to put on the kneepads and apologize profusely to a bunch of morans.
June 08, 2006
i hate hardware
I am posting this from my workstation.
So I am apparently retarded and awesome for kind of the same reason. My workstation is loud. Less so now, but it's still loud. It was louder before. The other day, I built a MythTV box and it was really loud so I bought a Zalman CNPS6000-Cu CPU fan to make it quieter. Then my MythTV box was really quiet. Quiet enough that I could hear my other computer (my workstation) a lot more. So I ordered a Zalman CNPS5700D-Cu CPU fan for my workstation. Then, in the middle of a workday...
during my lunch break, I decide it would be a wonderful idea to install said 5700D-Cu cooler to make my workstation quieter. But afterwards it doesn't turn on.FUCK. The CPU fan turns on, but the motherboard doesn't beep at all and there is no video signal. I spend about 3 hours trying to fix this, but nothing works. I am completely stumped.
I assume either my processor or motherboard got fried. I order a new processor and motherboard from NewEgg. They get here today (Ok, technically yesterday) and I start testing my old components to see which is broken, CPU or motherboard. Keep in mind that I fucking hate "debugging" hardware (yes, the origin of the phrase 'debugging' refers to hardware, blah blah), so I am drinking some fantastic wine while doing this. No, I don't spill it into my computer case, as "hilarious" as that would be.
So I put the old CPU into the new motherboard. It does the same shit. No beeps, CPU fan turns on. I screw around with my hardware for a little while longer, looking for anything that might be wrong. Eventually, I look directly at the bottom of my P4 2.4G processor. Is that a bent pin?! Wonderful. It is. And of course, now when I think back, I can remember wondering why the processor feels weird when I seat it in the socket.
Somehow, ONE PIN out of the 42 thousand on the back of a socket 478 processor managed to bend itself in the most inconvenient way possible. How do I fix this? I have no fucking clue, I'm a keyboard jockey. Kevin suggests using a plastic mechanical pencil to bend the pin back into a close enough position that it will be accepted into the socket. I (of course) continue drinking copious amounts of wine, because otherwise, it will go bad. Wine can do that, I think. Why am I drinking wine? I don't even really like wine. It's Ok, I guess.
After about an hour of gingerly prodding the 1/42000 pin into its original position, it seats correctly. Everything starts working perfectly. Now I have an extra motherboard and processor just waiting for me to spend more $$ to get them up and running. Dammit.
April 13, 2006
mssql stored procedure garbage
since nobody on the internet seems to need to know this, or i just don't know how to search for it, here we go:
in order to execute a stored procedure in mssql from a database other than the one it exists in, you need to create a synonym for the stored procedure you want to execute in the database you want to execute it from. index that.
November 18, 2005
free mind fuck
Scott Adams has persuaded his publisher to put his book, Gods Debris up for free download. I'm going to read it. It's going to be awesome.
/puts on Mind Condom (tm)
October 26, 2005
how to edit mozilla context menus
http://forums.mozillazine.org/viewtopic.php?t=14776
I hate the "Close Other Tabs" item in context menus when you right click on a tab in Mozilla. It finally pissed me off enough (because I click it accidentally sometimes when I'm just trying to close one tab) to figure out how to remove it.
my userChrome.css:
menuitem[label="Close Other Tabs"] { display: none; }
other stuff you could put in userChrome.css (you probably don't want to delete everything...):
/*Remove Right Click ContextMenu Items*/
#context-back,
#context-bookmarklink,
#context-copyemail,
#context-sep-copyimage,
#context-sep-copylink,
#context-forward,
#context-sep-open,
#context-openlink,
#context-openlinkintab,
#context-sep-paste,
#context-sep-properties,
#context-reload,
#context-savepage,
#context-sep-selectall,
#context-viewpartialsource-mathml,
#context-viewpartialsource-selection,
#context-frame-sep,
#context-stop,
#context-sep-stop,
#context-sep-undo,
#context-viewbgimage { display: none !important }
#context-showonlythisframe,
#context-viewsource,
#context-viewinfo { display: none; }
menuitem[label="Reload Frame"],
menuitem[label="Open in New Window"],
menuitem[label="Expand"],
menuitem[label="Manage Folder"],
menuitem[label="New Folder..."],
menuitem[label="Open"],
menuitem[label="Open in New Tab"],
menuitem[label="Bookmark This Frame..."],
menuitem[label="Show Only This Frame"],
menuitem[label="Save Frame As..."],
menuitem[label="View Frame Source"],
menuitem[label="View Frame Info"],
menuitem[label="Open Frame in New Window"] { display: none; }
/* Remove menu buttons */
menu[label="File"],
menu[label="Go"],
menu[label="Edit"],
menu[label="View"],
menu[label="Tools"],
menu[label="Bookmarks Toolbar Folder"],
menu[label="Help"] { display: none !important; }
/* Remove menu items */
menuitem[label="Open Link in New Tab"],
menuitem[label="New Window"],
menuitem[label="Open File..."],
menuitem[label="Close"],
menuitem[label="Close Tab"],
menuitem[label="Close Window"],
menuitem[label="Save Page As..."],
menuitem[label="Exit"],
menuitem[label="Add to Bookmarks..."],
menuitem[label="Bookmarks Toolbar"],
menuitem[label="Open in Tabs"],
menuitem[label="JavaScript Console"],
menuitem[label="Page Info"],
menuitem[label="Page Setup..."],
menuitem[label="Print Preview"],
menuitem[label="Print..."] { display: none; }
/* Removes majority of menu separators */
menuitem + menuseparator {display: none;}
/* Removes remainder of menu separators except Bookmarks Toolbars..unknown */
menu[label="Sidebar"] + menuseparator,
menu[label="Character Coding"] + menuseparator,
menu[label="Bookmarks Toolbar Folder"] + menuseparator,
menu[label="Mozilla Firebird & Mozilla Information"] + menuseparator,
menu[label="Mozilla & Phoenix Information"] + menuseparator,
menu[label="Quick Searches"] + menuseparator,
menu[label="Middle Eastern"] + menuseparator { display: none !important; }
October 21, 2005
O'Doyal Rules!
An open letter to Doyal Bryant:
<obvious>
<FUCK />
<YOU />
</obvious>
Sue me.
September 27, 2005
verizon phone lockdown illegal?
IANAL, but I just got a new phone and rather than paying Verizon to pull my old phone numbers off my lame LG VX6000, I transferred them over manually, culling the lame ducks in the process. So if I tell you I don't have your phone number anymore, you should laugh nervously. And then I read this article and thought perhaps what they did was illegal...?
If I don't want to have my data trapped in a proprietary format, I will avoid those proprietary applications. What is the sense of using the proprietary application and then asking for an open source tool to access the data?You own your data, even when it's trapped in a proprietary application. There is a term in American law, conversion, for the act of refusing to give back property of others that has been entrusted to you for safekeeping. This is probably illegal wherever you live, too, and when proprietary vendors trap your data and refuse to let you get at it except through their application, they may be committing a crime.
stored procedures in postgresql via libqp
This entry will have an astronomical geek index, so if you have no idea what the title means, you should probably just move along, nothing to see here.
This is a work in progress, and will potentially have a sequel.
Let's outline the problem at hand. There is a postgresql database. You'd like to connect to it. You've decided to implement in C, and therefore you will be using libpq to connect to your database. Connecting isn't really that difficult, but as has been discovered by me and my more-technical-than-usual project manager, there is not much documentation at all to be had on the specifics of postgresql stored procedures and using them in conjunction with libpq.
So I'll assume the reader is competent enough to get the postgresql libraries installed. That leaves us with how, exactly, to get data into and back out of the database. There are a couple classes of stored procedures, some of which can be handled trivially, and others which can't. Here's a trivial case:
/* so you have PGresult *r,
* which is the result of calling a stored procedure
* that returns a single integer. */
if (PQresultStatus(r) == PQ_TUPLES_OK) {
if (PQntuples(r)) {
fprintf(stderr, "got [%d]\n", PQgetvalue(r, 0, 0));
}
}
...
August 06, 2005
trading cards
Hello. So, I was talking to this guy in a bar. And he was all "You should make trading cards of yourself." But then I was all "But that's SO pretentious." And then we got into this whole long discussion and our waitress ended up punching this guy, in the bar. Ok, that didn't really happen. But I had you going there! I went to Chuck E Cheese's, for a thing:
They have this REALLY AWESOME thing where you sit in a little open booth thing and put in 1 token and it takes a picture of you, which it then converts to grayscale and applies a pencil effect. And it simulates Chuck sketching it while you wait, and he even makes a mistake that he has to erase! Then he tells you that you look good, even though that huge ZIT he just drew and erased was actually there and you really look like crap. I want one of those machines, and then every time someone comes over, I can make them get their picture taken and I can hang it up on the wall like they do in restaurants, and then I can say "Look over there, on that wall, that's everyone who has been in my house. I drew those. That's right."
June 17, 2005
geeeeeeky
[I am] 75% geeky.
You're the ultimate geek. I'd write that in Klingon, but you'd probably correct my grammar. Get a girlfriend.The current average score is: 33.05%
Fact: 40.79% of people who took this test admit to wearing a costume "just for fun".
May 26, 2005
nifty new project (ICF)
Brian gave me a good idea the other day. That day sucked, and I didn't really feel like I got anything done at work, and I wanted to get something done, so I knocked that out when I got home. Thus was the (drumroll) Interactive Color Field born. Click once to turn it on, then move your mouse around in the browser window to paint, then click again to turn it off. Repeat as desired.
May 02, 2005
what a guy!
it snuck up on me... new episode of Family Guy last night! "Let he who is without sin kick the first ass!"
April 25, 2005
it's a cat, duh!
I'm suddenly envisioning an advanced, human-quality AI in an abandoned lab, where there is no input but when a cat walks over a keyboard that has been left active, which the cat does regularly because of that psychic perversity embedded in their feline genes.
The AI never had the keyboard input explained to it, and all other input is turned off. So it's in limbo, except when it gets characters splattered at it, apparently at random...
- a sentient post
April 21, 2005
keep digging
This week at work we've been having Perl (a programming language) training. We contracted MJD (so close) to come teach us stuff, and it's been cool. I've been working with perl for a while now, and he's published a bunch of useful perl stuff on his website, so I recognized the name. I've learned stuff from his site (and recommended it in turn for clear, concise explanations) in the past, so it was cool to get to meet him in person. He's a really nice guy, and a good teacher.
And then I told him his shirt was ugly. Or that's what it sounded like. I actually own almost exactly the same shirt he was wearing, but in a different color (mine's green, his was blue). The girl I went to prom with bought it for me in Hawaii.
We used to have Ugly Shirt Day every Tuesday, and holy crap were some of those shirts spectacularly ... noticeable. So one week I totally forgot until Tuesday morning, and the funniest thing I could find was this shirt that is identical (or perhaps completely different) to/from the one MJD was wearing. So I figured it would be kind of amusing to mention our Ugly Shirt Day tradition... thus the post title.
March 29, 2005
pay by value
Cash can be stolen and used easily. Cards can be stolen and used, but you can get the money back. Big difference.
Pay by value is much better than pay by reference.
If you lose cash, you lose the value, but no pointer escapes the transaction. If you pay by reference, you leave a trail of pointers around increasing the risk of someone dereferencing your wallet.
-MillionthMonkey, Identity Thief Victim Gets Last Laugh
March 25, 2005
new book backend
I hardly ever update the book sidebar on the main page because it's too much work. There is no custom module to do it for me where I just enter an ISBN and it looks up the image and links somewhere to a product page automatically for me. Too much work, most of the time, unless I'm feeling overly productive. And then my productivity is wasted hacking ad hoc HTML.
So, in true lazy computer nerd fashion, I decided to make the computer do the work for me.
I enter the ISBN, it gets the cover image for me, and I have nice easy chunks I can work with to piece together how I want the book to be displayed. Plus, I get to inflict my reading choices on whoever comes to my website!
March 22, 2005
which NetHack monster are you?
|.e.|
#+...|
.?.h.+#
.....|
why verizon can kiss my ass
http://www.nuclearelephant.com/papers/v710.html
Code As Law, as implemented by Verizon:
BellSouth is the local telephone company where I live. Ironically, they don't seem as much concerned about the features of my home phone or answering machine as Verizon is about my mobile phone. Why is that? Could it be that BellSouth realizes the equipment belongs to me? Yes! Before things were broken up by the courts, AT&T (who owned the network at the time) used to charge their customers equipment rental fees just to own a telephone. In fact, it was at one time illegal to plug anything into your phone jack that wasn't sanctioned AT&T equipment. Asinine, huh? Well, not as much as repeating history. Unfortunately, Verizon doesn't need the courts to outlaw competing technologies - they're able to do it themselves now by blacklisting ESNs, as Ms. Raney gladly explained to me.
March 14, 2005
may the best team win. duke sucks.
Almost one (1) year ago today, I posted about writing a bracket randomizer for my NCAA Men's Basketball picks. Last year's still works. For old time's sake, see if you can get the Terps to not choke. I guarantee they won't choke anywhere in this year's bracket, mainly because THEY AREN'T THERE.
February 22, 2005
"code as law" breaks down in court
"[I]nteroperable devices" may use proprietary security systems to lock out unauthorized interoperability, but a technology developed solely for this functional purpose is not copyrightable.
-ArsTechnica, Lexmark's DMCA aspirations all but dead
Suck it, DMCA-enforced monopolies! (At least on one front...)
February 01, 2005
weed out the dumb canucks
Alienware has a contest. Great. But if you read the last line of the eligibility section, it says:
If a winner is a Canadian resident, they will have to answer an unaided, time-limited math skill-testing question as a condition to receiving a prize.Now that's comedy.
January 24, 2005
inferior usefulness through apathetic complicity
Governments, "as the true representatives of their country", should have an increased voice in the governance of the internet, Communications Minister Ivy Matsepe-Casaburri said on Thursday. Also, "It must be shared based on need. We must allow newcomers to enter in the same way as the more established users" (this is a red herring argument[1]).
Even if most government/bureaucratic structures weren't hopelessly corrupt (*cough*OilForFood), needlessly self-perpetuating, and overly complex (*cough*USTaxCode), hyperlinks subvert hierarchy. Command and control power structures are streamlined, if not obsoleted by the internet (i.e. empowering the individual), which is why China tries to block content it doesn't want its citizens to see. I wonder if Ivy thinks the Chinese government is a "true representative [of its citizens]"...
[1] I know what John Galt would say; "The only proper propose of a government is to protect man's rights..." The internet and the services it provides and enables is available with very limited restrictions. Letting governments get involved would only pollute that environment and add more barriers to entry.
January 11, 2005
the biggest problem
In 1989, a random of the journalistic persuasion asked hacker Paul Boutin "What do you think will be the biggest problem in computing in the 90s?"
Paul's straight-faced response: "There are only 17,000 three-letter acronyms." (TLAs) (To be exact, there are 26^3 = 17,576 - 46,656 if you include 0-9 (as my last employer did), 74,088 with !@$^&*, and even more if you include 1337 5¶34|< (cyrillic, etc).) I don't think there will be any trouble now that SVLAs like CAPTCHA are becoming more visible (pun intended).
December 30, 2004
100 years of einstein
As [Einstein] said in 1932, “the real goal of my research has always been the simplification and unification of the system of theoretical physics.” He never succeeded in unifying physics, but he did, much as it may seem paradoxical to the layman, succeed in simplifying it. Once one learns the complex mathematical language required to express his ideas, Einstein's theories are the simplest and most obvious of any in physics.
-Miraculous Visions, The Economist
August 14, 2004
digital media competition, ass
from a /. thread:
[We should] treat the race to scramble and descramble content as a kind of market competition that should be unfettered by the DMCA--or new FTC rulesThis is the most intelligent thing I've heard anybody say about the copy protection controversy.
Back in the 70s and early 80s HBO was broadcast through the air like DirecTV. People used to build their own receivers using antennas made out of coffee cans (I know -- I had one). After HBO had harassed and threatened antenna owners for several years, the courts finally ruled that the company couldn't control what people did with the broadcast signal in their own homes. HBO's next move was to scramble the signal, which was easily defeated by those with access to spectrum analyzers but largely stymied the coffee-can community. The eventual solution was for HBO to join the cable world.
I always thought this was the sensible way to handle the controversy. Make companies do business in the real world, rather than letting them reshape [the world] to their needs [through legislation]. Lately our government has gone in the opposite direction, with legislators tailoring laws to suit the demands of their financial backers.
One thing that must be repeated over and over is that copyright infringement is not stealing, because copyright is not property. It's a temporary restriction imposed on everybody except the copyright holder. Copyright holders don't "own" anything, and copyright doesn't give them any extra rights, it takes rights away from everybody else for a limited time. Copyright infringement may cause financial losses, but so do lots of other things -- arson, vandalism, assault, murder, for example -- and we don't call those things theft.It's important to keep repeating this because the content industry has essentially hijacked the concepts of property ownership and theft. They play the part of the little old lady chasing a purse snatcher, and they label critics of current copyright laws as socialists threatening the whole concept of private property.
July 29, 2004
sea monster battery
I was just talking to a user who had been having problems with her machine -- it was losing its settings every time she turned it on.
Her: "I asked my boyfriend about it. He knows about computers, and he said it sounds like it might need a new SEA MONSTER BATTERY."
It took me a while to figure out what she meant.
---
(emphasis mine... bwahahaha) priceless
and a hint for the less computer-literate among us
June 26, 2004
new menu
i just finished up a new link menu in the right sidebar. it works for me, but if it doesn't work for you, let me know. google should actually recognize those urls as links now, because they're not hidden away in a form element. yay!
May 20, 2004
a what of whats?
Latent type checking gives you much more flexibility in your programming. The way I describe it to C++ programmers is that with latent typing, or Python in general, when you write a function, you get templates without templates. What you're saying in C++ with a template is that you've got code that doesn't care what type it works with. As long as these operations can be performed, then the code is happy. It's actually being evaluated at compile time and spewing out horrible error messages if it fails. But the idea is that the programmer is able to say, "I would like a Bag of Cats." The thing says, OK, as long as I can perform these various operations on Cats that I want to, I don't care if it's Cats or whatever. That's what you get for free with Python without any of that template syntax. It turns out that's incredibly powerful. It makes your programming a lot easier to write and, I think, to read.
-Bruce Eckel, artima.com interview
April 13, 2004
blog spammers: ~50, me: ∞
It works! Thanks to some sort-of-related projects at work and also thanks in big part to Mr. Obtrusive Gay Porn Spammer, I now have spam comment protection. Feast your eyes:
and comment on this post to see it in action (or go here to play). i'm late for stuff, but i'll post the code if anyone wants it.
March 19, 2004
randobracket liiiiiives!
I don't really follow college basketball that much. It's fun to watch with fun people, but there is already fun happening there, so the basketball is just a nice touch. Anyway, I started making my NCAA bracket selections for the pool that I'm in and, while doing so, got really bored. So instead of picking teams, I wrote a randomizer. It was harder than I thought, but the hardest part was the design.
When I write things like that (I also wrote a brute-force solution to Drive Ya Nuts), it's hard to get an algorithm that's flexible enough to cover the entire problem, so the working result tends to look like a piece of crap and be really hard to debug. When my QA team of one (props to Rico) pointed out an intermittent error, I briefly cursed creation. But it's fixed now. You may stop panicking.
Ah, randomness:
March 15, 2004
my first graphs
Graphs are cool. They help people understand things that are hard to explain in other ways or they organize information differently in order to try to infiltrate your brain.I like video games. First Person Shooters, Real Time Strategy, Turn-Based Strategy, Role Playing Games and almost any combination of those. The problem with a lot of video games (especially RPGs) is that they are so complicated that it's hard to remember all the information you need to know in order to play the game effectively.
In particular, I'm playing Final Fantasy Tactics: Advance right now. The character progression is cool, but it's hard to remember all the different dependencies and all the abilities associated with each class. So I graphed them. Woo! code warning:
#!/usr/bin/perl -w use strict; use GraphViz; open F,'<races' or die "couldn't read races: $!\n"; my $fc; { local $/ = undef; $fc = <F> } close F; # race -> base -> child # split on 3+ "blank" lines my @races = split /(?:\s*?\n\s*?){3,}/, $fc; for my $race (@races) { my $g = GraphViz->new(); my ($r,@r,$flag); $r = $1 if $race =~ /=.*?\n(.*?).\n/s; # grab race name $g->add_node($r); $race =~ s/^.*?\-\s*?\n//s; # only keep ability information # iterate over abilities, saving class and prerequisite while ($race =~ m|^(\w+(?:\s\w+)?)\s*\-\s+(.*)$|gm) { my ($class, $prereq) = ($1, $2); $g->add_node($class); if ($prereq =~ m|N/A|) { # print "base [$class]\n"; $g->add_edge($r,$class); } else { # print " child [$class] "; print "(multiple) " if $prereq =~ /,/; # print "dependency [$1] " while $prereq =~ /(\d (\w+(?:\s*\w+)?))/g; while ($prereq =~ /(\d) (\w+(?:\s*\w+)?)/g) { my ($label, $dep) = ($1, $2); my @options = (style => 'dotted', fontcolor => 'red', dir => 'both'); $g->add_edge($dep, $class, label => $label, @options); } # print "\n"; } } $g->as_png("$r.png"); }
March 12, 2004
most?!
http://www.cnn.com/2004/TECH/ptech/03/11/resumes.fraud.reut/index.html
Breaking into a database is relatively easy because MOST DATABASE SERVERS ARE NOT PASSWORD PROTECTED, said Alfred Huger, director of engineering at anti-virus company Symantec.
Emphasis mine, obviously. That has got to be one of the stupidest things I've ever heard. EVERY database server I've ever used or even heard anything about has been pasword protected. I have an extremely hard time believing Mr. Alfred Huger's statement. The reporter should have at least asked him to provide a source to back up that statement. If I ever found out that a company that I bought a product or service from had a database (such as a database of attendees to, say, a university) that wasn't password protected, I would probably sue them. That's just gross negligence.
March 11, 2004
yeah, ok MT
So today I decided I'd like to have a list of the books I've read recently (besides the ones I'm reading RIGHT NOW) in my sidebar. It's there now, but only because I (and several other people) are awesome. Here's how it went:
MT: "You can't do that."(Conquistador == me + links below)
Conquistador: "0wn3d."
lastn entries by last modified on
I hate installing crap (DBI) when there is another way to do something, so I decided to try this:
which functionally fell short of what I wanted to do, in that it wouldn't let me filter out a certain number of posts from just one category. I grok perl, so I decided to MAKE IT WORK!!1 (code follows, beware)
The following code segment is what I had to change to display the last couple entries in my book category ordered descending by modified_on date:
in DateTags.pl around line 196: sub dt_n_entries { # skip some stuff my $cat_id = ''; if (defined $args->{category} ) { my $iter = MT::Category->load_iter({ blog_id => $ctx->stash('blog')->id }); my %cats; while (my $obj = $iter->()) { $cats{$obj->label()} = $obj->id(); } $cat_id = $cats{$args->{category}}; } my @entries = MT::Entry->load({ blog_id => $ctx->stash('blog')->id, status => MT::Entry::RELEASE() }, { sort => $column, start_val => $ts, direction => $direction, limit => $args->{'n'}, join => [ 'MT::Placement', 'entry_id', { category_id => $cat_id } ] }); # skip some more stuff } # end of functionI looked around at what I would have to change to add that functionality without also using a plugin, and got thoroughly confused. This way turned out to be easier, and doesn't introduce a performance hit when rebuilding the site as far as I can tell. Como esta el YAAAY!?
February 20, 2004
oasis of competence
i'm a communication effectiveness freak. one of my pet peeves (when reading things intended to be informative and/or instructional) is when people use big words when diminutive ones will suffice. so it follows that i'm constantly looking up words. i also like finding random words that mean funny or appropriate things (like omphaloskepsis or sesquipedalian). so today i wanted to find funny or appropriate words ending in 'tic' (don't ask)
i started off at Merriam Webster's site. my first search was for *tic, fully expecting it to return the definition of 'tic', but the wildcard actually worked! it returned 400/3k results, but it worked. so i tried a*tic: 400/457 resultscloser still. so i tried a[t-z]*tic, and that (correctly interpolating the character range) worked too!! anyway, at $30/year, the price for the premium service was right for me. i still feel all tingly.
February 12, 2004
the "how many redhots" game
we've got a gumball machine thing full of redhots in our office and whoever guesses closest to the number of redhots actually in the thing without going over wins tickets to The Producers (note: depending what kind of tickets they are, that's like $600!). first runner up wins the gumball machine.
the part that holds the candy is a sphere about 5" in diameter, 60% filled with redhots, which are equilateral triangles with 1/3" sides and about 1/8" thick. the volume of the sphere is about 65.5"^2; 60% of that is 39.3"^2.
the volume of a redhot is about 0.004846875"^2, based on the volume of a trapezoid tank. if the redhots could be arranged perfectly with no gaps inside of the sphere, you could fit 9825 of them in there, if i did that right. but since it's impossible to arrange them perfectly, this is where the (rest of the) guesstimate comes in... i'm thinking somewhere in the 6-7k neighborhood. anyone care to check my math?
February 09, 2004
All About Bob
one of my co-workers, let's call him "Bob", is in the national guard and got activated a while ago. he's been in Ft. Bragg for a while and has become the resident computer geek, because he didn't bring this, a staple of every serious computer professional's wardrobe. at least those who don't know how to separate business from pleasure.
i miss bob. bob made work more fun by inspiring stuff like Ugly Shirt Tuesday and the Beard Race. bob is in North Carolina... *sniff* but bob has a blog! sporadic updates from Ft. Bragg, where the 1nt4rw3b doesn't flow like milk and honey, but it's something. so fire up the beef jerky and canned air. and who wants to help me figure out fun ways to smuggle alcohol into an army base through the mail?
January 15, 2004
alignment test
http://www.wizards.com/default.asp?x=dnd/dnd/20001222b
dungeons and dragons style alignment test good|evil|neutral [chaotic] or any non-conflicting combination
I came out Neutral. When I play video games and the like that require me to pick an alignment, I usually go with Chaotic Good, but Neutral will do, I suppose.
space saver
i've posted a lot of link entries on this website... about 600 as of this writing (always wanted to say that). and there is an html page generated for each one of those posts. by themselves, they're not all that big, but when you add in all the extraneous html that's on each page, it starts to add up!
the blogging software i use (Movable Type) isn't really set up to save space. it caches everything, which means that anytime a change to a page is made, any affected pages are regenerated from the database. it does have a quasi-include mechanism, which i guess isn't supposed to save space, but succeeded in making me use it instead of SSI initially.
i decided enough was enough when my archives directory (which is nothing but text/html files) passed the 10 meg mark. i pulled anything that wasn't entry-specific out into server side includes, 3 total, and saved a good amount of space, traded off against the server's processing power. it might not sound like a lot (3.3k, 2.2k, 2.1k), but multiplied by 800+ entries... *whew*
December 26, 2003
Cube: open source fps
http://wouter.fov120.com/cube/index.php4
Cube is an open source multiplayer and singleplayer first person shooter game built on an entirely new and very unconventional engine. Cube is a landscape-style engine that pretends to be an indoor FPS engine, which combines very high precision dynamic occlusion culling with a form of geometric mipmapping on the whole world for dynamic LOD for configurable fps & graphic detail on most machines. Uses OpenGL & SDL.
Allows in-engine editing of geometry in full 3D (you fly around the map, point / drag stuff to select it / modify it), which can even be done simultaneously with others in multiplayer (a first!). Has simplistic but effective fine grain vertex lighting that looks like lightmapping and can do dynamic lights & shadows. Doesn't need any kind of map precompilation, even lighting is done on the fly. Has very simplistic quad-tree world structure that can do slopes (heightfields with caps) and slants, water, does decent collision detection & physics, has client/server networking that goes a long way in giving a lag-free game experience, and features a Doom/Quake-style singleplayer (2 game modes, savegames) and multiplayer (12 game modes, master server / server browser, demo recording) game with some uncompromising brutal oldskool gameplay.
marey chrismiss
I dunno about you, but I had a great Christmas. I slept in late and bathed myself in media for almost the entire day. I read The Mission for a while, watched a bunch of Family Guy, South Park, and The Name of the Rose, which my Tivo minion recorded for me. Oh, and I did laundry and tried to make my stupid kernel recognize eth0. All in all, quite a productive day.
December 23, 2003
December 17, 2003
js is teh suck
ok so i recently started using linux as a desktop at work and was impressed with how much it had evolved since the last time i tried it (redhat 7). but that's not really the point of this post. i'm here to bitch about how my carefully engineered cross-browser javascript breaks in frickin netscape 6 on linux even though it's fine on stupid windows in IE, Opera, Mozilla, and Netscape 7.1
the annoying part is that it's not really broken all the time, just the first time you mouse over the link bar at the top. it's supposed to be dark blue when you mouse over it and gray the rest of the time. except, the first time you mouse over it, it goes retarded and decides to stay blue onmouseout. then, on(subsequent)mouseover, it flips normally, except backwards. ARRRGH! i tried to fix it for like an hour and then got mad and decided to ignore it EXCEPT I CAN"T. so if you're awesome at javascript for linux netscape and bored, please feel free to gank my nav code and fix it.
but if i fix it before you do, i don't owe you a beer...
December 10, 2003
gallery
the pictures i took this weekend are now online! our net connection at work died today, and for some weird reason, i could still access my website... so i threw together a little gallery script, which you're looking at right now if you clicked that link. enjoy!
November 28, 2003
w.bloggar
this blogging software was recommended to me and i'm giving it a try. this is my first post using it. the only thing i haven't figured out is how to add a post in multiple categories. everything else seems pretty easy.
EDIT: as far as i can tell, i have to log in to do the multiple category thing.
November 25, 2003
ie annoyances
So recently I haven't been able to view the source of any web pages I visit... which was annoying, but workable. Also, any images I would try to save would force me to save as bitmap. So today I googled for '"view source" doesn't work' and found this, which described all the symptoms and told my dumb ass how to fix it. Clear cache early and often! Stupid IE...
October 23, 2003
heat death == bad
"Inf is Perl 6's standard numerical infinity value, so a list that runs to Inf takes ... well ... forever to actually build. But writing 1..Inf is OK in Perl 6, since the elements of the resulting list are only ever computed on demand. Of course, if you were to print(1..Inf), you'd have plenty of time to go and get a cup of coffee. And even then (given the comparatively imminent heat death of the universe) that coffee would be really cold before the output was complete. So there will probably be a warning when you try to do that."
-Damian Conway, Exegesis 3 (emphasis added)
October 14, 2003
anti-open-source FUD, explained
the following is a direct quote from a post in this /. thread, referring to this Forbes article. i found it to be very clearly written and educational (imagine that, in a /. post...) and thought i'd share it. imitation is, of course, the highest form of flattery.
=====
Forewarning: The open source community is not portrayed in positive light so you might want to skip reading this.
I'd suggest it is very important to read this. I think it's a bit simplistic to say that Forbes is a "Microsoft shill." Rather, Forbes is heavily invested in the status quo of business circa the early 21st century, and is naturally threatened (and apparently not a little confused) by open source and what it represents.
Anyone who bothers to give it a little thought realizes that in the modern economic system, the wealth of the 5% that own 85% of everything is protected by a business environment where the barriers of entry are too high to permit the appearance of significant competition from below. Every once in a while, emerging technologies can be harnessed to create an Apple or a Microsoft to challenge the more traditional, say, IBM.
Now, it's plain enough that we among the 95% are largely responsible for all of this wealth getting shuffled around. We do the work, we buy the products. Our retirement plans sit around for 40 years, a nice capital base in the market while the fat cats try to speculate their way to another billion. In general, we aren't able to muster sufficient organization or marshall enough of our resources together to have a conscious, guided effect on these things.
It's little surprise, then, that Forbes falls back on the rhetoric of Communism and revolution to characterize the Open Source movement, because it represents a similar kind of threat to that system. Labor unions, for example, represent an attempt to collectivize the theoretical power of a group (workers are required for business to be done, workers can choose to see themselves in a collective bargaining position opposite those that own the business) to shift the balance of power between labor and management. Communism represents the attempt to acheive this reordering on the national scale through conventional political means (democratic processes and conquest). Open source has succeeded up to this point by a similar route - harnessing the distributed power of a group of individuals to achieve results normally available only to major players.
Unlike these things, though, while the Open Source "movement" may be informed by an ideology, the integrity of its product is maintained by an adherence to the strictly capitalist, legal definition of intellectual property. What is truly offensive to the Forbes set is that the grubby horde would have the audacity to coopt one of THEIR legal power tools to create a product that nakedly opposes the dynamics of the status quo.
The basic argument of this article, if you strip away the snide asides about the irony of those open source commies suing people for violating their I.P. just like regular businessmen, fercryin'outloud, is that by legally defending it's licenses, the Open Source community will discourage people who don't wish to abide by those licenses from adopting software released under them. Uh, yes, that is correct, sir. Businesses which wish to develop proprietary technologies with closed source software should not use GPL code.
Is Forbes genuinely incapable of understanding that the whole point of Open Source is that it represents a parallel software development strategy that is opposed to the conventional business paradigm of proprietary I.P., or are they engaged in conscious propaganda in defense of the status quo? In the end it doesn't matter, the result is the same. The principle of open source licensed software is a genuine economic threat to the conventional I.P. business paradigm, but it is completely impotent if the licenses are not enforced. So I'd say, don't skip this article - study it carefully and learn the strategy of your opponents.
October 13, 2003
Super Mario, Psychologist
http://www.gcc.edu/news/collegian/10.10.03/nintendo_overdose.htm
video games addiction learn relationships
And I quote:
===============
My real insights came from the original "Super Mario Brothers," which taught me more about relationships than Jerry Springer, Ann Landers and Confucius combined:
Lesson no. 1: If someone gets between you and your woman, you should either stomp on his head or light him on fire.
Lesson no. 2: Look before you leap into that green pipe of commitment, or else the piranha plant of emotional baggage might bite you in the butt.
And, most importantly, lesson no. 3: You can search all you want for the girl of your dreams – you can brave the dungeon of vulnerability, avoid the fireballs of embarrassment and dodge the dragon of apocalyptic, life-shattering rejection – but seven times out of eight your only reward will be a midget in a vest saying, "Sorry, your princess is in another castle."
September 24, 2003
episode 1 of disgaea
i got the last copy of disgaea from best buy in laurel last night. apparently i got lucky cause it's hard to find at a lot of other places.
so i started playing it after i finally got home. i had planned on going out to dollar bud night, but everyone else that was gonna go bailed for one reason or another, so i stayed home and had a great time playing my new game.
it's a turn-based strategy rpg. and it's funny. no really, you get pet penguins that call you dood and everything. it took me a while to get the hang of it, but it's quite fun. i even cleared the first episode. dood!
September 15, 2003
September 10, 2003
ascii art rulz0rs!
____ . _ . /# /_\_ |\_|/__/| | |/o\o\ / / \/ \ \ | \\_/_/ /__|O||O|__ \ / |_ | |/_ \_/\_/ _\ | | ||\_ ~| | | (____) | || | ||| \/ \/\___/\__/ // | |||_ (_/ || \// | | || || | | ||\ ||_ \ \ //_/ \_| o| \______// /\___/ __ || __|| / ||||__ (____(____) (___)_)thanks chris!
September 08, 2003
back to Camelot
i've played a bunch of video games. ever since i got a computer, i've enjoyed games. then came MMORPGs. games with no end. an irc client with a game built on top of it. any way you look at it, it's much more than a traditional game.
there is a thriving industry providing online games to gamers. my MMORPG experience started with Ultima Online, which was plaged with exploitable bugs, griefing player killers and overpowered skills, continued on to EverQuest, which was clogged with twinks, power gamers and time sinks that weren't even rudimentarily disguised, dropped me into DAoC, on to Shadowbane, and back to DAoC. i am subscribed to 2 MMORPGs right now, and actively play 1 of them. i played Shadowbane for a while but didn't really enjoy it... the game isn't balanced, and there is no easy way to learn how to make an effective character.
the other MMORPG i play (the one i actually do play) is Dark Age of Camelot. Its backstory is derived from mythology, its gameplay is intuitive, and its chat system is excellent. i had stopped playing DAoC for a while, but have since started again, inspired by several of my co-workers who had started playing Shadowbane and were looking for less retarded alternatives. in case you'd like to know, i play on the Galahad server and my character's name is Hansel McNasty. feel free to drop in and say hi.
August 15, 2003
the friday five (online habits)
1. How much time do you spend online each day?
It's my job to be online. I'd say I spend 10 hours a day or more online.
2. What is your browser homepage set to?
Google. I find it's easier to find what I need by using Google than even by navigating most websites as intended. Isn't that sad? Shame on us.
3. Do you use any instant messaging programs? If so, which one(s)?
Yes, I use AOL Instant Messenger. I've also used ICQ, which seemed like a good idea at the time. Also, through some weird neurochemical reaction, I still remember my ICQ account number and password.
4. Where was your first webpage located?
Heh. My first website was on Geocities. Then they sold their customers to Yahoo!, who then fired all the Geocities employees whose jobs could be automated and power-grabbed all the former Geocities users' IP rights.
5. How long have you had your current website?
Record Created on 26-May-1999, but I've only recently started using it for something useful.
August 08, 2003
some spammer likes me
apparently some spammer decided it would be clever to forge some email headers so they look like they were from me, so when they bounce, they would come to me... so if you got spam "from me", you really didn't, and i got approximately 1400 bounces in my mailbox. grrr
August 05, 2003
Stuntman for the PS2
I bought this game last night, and it's ok. The review of the game at TechTV seems accurate (3/5 star rating). The gameplay is great, but the repetition needed to just figure out what you need to do to pass the level along with the long load times make it hard to play for very long. I definitely think a better walkthrough for each stunt would have made this game much better.
But for $15 at Best Buy, I guess you get what you pay for.