Home

Fri, Jul. 25th, 2008, 04:18 pm
Chair graveyard


Chair graveyard
Originally uploaded by InfiniteVoid
We got new chairs. See how the old, discarded ones huddle together
for warmth?

Fri, Jul. 18th, 2008, 02:18 pm
Little known fact ...


Little known fact ...
Originally uploaded by InfiniteVoid
I have actually been in a coma for the last seven years. The only
thing that keeps me animated is a steady flow of caffeine.

And brains.

Wed, Jul. 9th, 2008, 10:03 pm

"God, I'm glad that wasn't real, because I would have been forced to staple you."

Home watching Scare Tactics. I used to hate this show and avoid it but tonight it is cracking me up.

I was supposed to go downtown tonight to the Python Meetup, but after 45 minutes in traffic and 15 minutes looking for a place to park downtown, I was in such a foul mood I just turned around and went home. I've gotten really spoiled not having to do traffic to get to work.

Last night the neighbors thought 1:30am would be a good time to have friends over and play Rock Band loud enough to shake my floor. I went down and asked them to turn it down. After a couple minutes of banging on the door, they finally heard me between songs. A slightly drunk guy answered the door. "OH, yeah, sorry!"

They started up again at 8:30 tonight. I started wishing death upon them all at 8:34.

Wed, Jul. 9th, 2008, 10:34 am

Catholic Church: "Swallow.".

There have got to be more amusing headlines for this. Anyone?

Mon, Jul. 7th, 2008, 11:01 pm

So in addition to throwing lots of loud late night parties, my downstairs neighbors have added a new weapon to their insanity-making arsenal: a ceiling fan.

Namely, the person below me has apparently just discovered that he has a ceiling fan. And it is loud. Ok, not as loud as the drum set, or the Rock Band, or the gaggle of giggling girls on the porch below my bedroom window. But once everything else has died down and I think I'm going to finally go to sleep, there is the fan. And in the fresh silence, it is 10 times louder than my air conditioner or the compressor on the refrigerator. Louder than the cars and motorcycles racing down Jollyville.

And it is constant. It's off balance, and he ball bearings are stressing under the back-and-forth force.

Wa-WA wa-WA wa-WA wa-WA wa-WA... until it finally achieves enough resonance to push it into a new rhythm. Ba-wawa, ba-wawa, ba-wawa, digga-wa digga-wa didid-wa.... wa-WA, wa-WA, wa-WA, wa-WA.

I'm losing it.

wa-WA wa-WA wa-WA wa-WA wa-WA....

Fri, Jul. 4th, 2008, 08:34 pm

I just had an idea. Maybe democrats started flipping over to vote for immunity for the telecoms so that they can no longer hide behind the 5th amendment. At which point they could be forced to testify against the government officials who asked for private citizens' telephone records...

... and then I remembered that Democrats have no spines and that was that.

Thu, Jun. 26th, 2008, 11:40 pm
re: Beautiful Code

Since the last Austin Python Users Group Meeting, I've sortof been keeping an eye out for "beautiful code". And the other day I wrote some.

It's probably been written many times before. It's not very complicated. But reading it makes my inner programmer happy.

    // Reverse map(key->value) to map(value->key)
    public static <K,V> Map<V,K> reverseMap(Map<K,V> mapIn)
    {
        Map<V,K> mapOut = new HashMap<V,K>();
        
        for (Entry<K, V> e: mapIn.entrySet())
        {
            mapOut.put(e.getValue(), e.getKey());
        }
        
        return mapOut;
    }


At first I thought it was just because it was nice and generic. You can reverse a mapping of any two types. But as I rewrote it from scratch, I noticed another nice bit. You often get maps from Strings to Strings in Java. (And in fact, the case that prompted me to write the above method was such.) But by taking the extra step to make the method generic, I gave the types different aliases, which actually gives *more* compile-time type checking than had I just gone with Map<String,String>.

Anyway. </ramble>

Wed, Jun. 25th, 2008, 04:44 pm
Crash


Crash
Originally uploaded by InfiniteVoid



1. Why does my iPhone sometimes take crooked photos? Annoying.

2. re: the crash: No major injuries. I was inside and heard a loud *thud* followed by a steadily blaring car horn.

My neighbors and I ran outside to find the scene you see. Upside-down SUV. A young-looking (16-ish?) kid crawls out the passenger window (since the driver-side is completely crushed and under the car). Neighbor asks him if anyone else is in the car. No.

Kid runs off down the apartment complex. I assume to get his parents. Neighbors' guest follows him. (?)

Within about 60 seconds there are about 20 people on the scene gawking, checking the car for people. about 5 of them are on cell phones calling police/EMS/etc.

An ambulance and a police man show up about 1-2 minutes later.

About a minute later, Kid comes back with, I'm guessing, his mom. Police are talking to him. Crowd disperses. I come back inside.

Whew.

Oh yeah, the kicker? As my neighbors and I walk up the stairs to our apartments, the one that chased the guy down says that the kid was driving without a license.

Fri, Jun. 20th, 2008, 06:52 pm
Fail

Amusing Microsoft bugs that I have captured at work:

OS Fail

Version Fail

And another that a coworker showed me: Y2K Fail

Thu, Jun. 19th, 2008, 11:06 pm
Esperanto X-Sistemo en OS X

Antaŭ jaroj, iu diris al mi kiel fari esperantan klavaron (ĉu "enmeta-metodon"?) por OS X. Ĉiufoje, kiam mi bezonas denove instali OS X, mi bezonas re-serĉi ĝin. Por helpi Google (kaj vin, kara leganto), jen ĝi:

Making Esperanto keyboard layouts for Mac OS X
Kiel fari Esperantan Klavaron por OS X

Kaj, en kazo ke tiu artikolo kaj diskutu malaperus: mi diru ĝin ĉi tie:

1. Iru al: http://wordherd.com/keyboards/

2. Elektu la ĝustan dosiero-tipon por via sistemo. (Ŝajnas ke OS X 10.5 x86 bezonas la .xml version, sed antaŭe mi bezonis uzi la .rsrc version.)

3. Enmetu:

c c x:$109 X:$109 $20:c$20
Cc C x:$108 X:$108 $20:C$20

s s x:$015D X:$015D $20:s$20
Cs S x:$015C X:$015C $20:S$20

g g x:$011D X:$011D $20:g$20
Cg G x:$011C X:$011C $20:G$20

u u x:$016D X:$016D $20:u$20
Cu U x:$016C X:$016C $20:U$20

j j x:$0135 X:$0135 $20:j$20
Cj J x:$0134 X:$0134 $20:J$20

h h x:$0125 X:$0125 $20:h$20
Ch H x:$0124 X:$0124 $20:H$20

4. Elŝutu la dosieron. Kontrolu ke la finaĵo de via dosieronomo estas ĝusta. (.rsrs, .keylayout, ktp.)

5. Metu/Kopiu ĝin al en aŭ: /Library/Keyboard Layouts/
aŭ: ~/Library/Keyboard Layouts/

6. Malfermu "Sistemaj Agordoj", kaj elektu "Internacia"

7. Elektu vian novan klavaron kaj tajpu per la X-sistemo!

Mi jam faris du versiojn: .rsrc kaj .xml

Mon, Jun. 16th, 2008, 06:01 pm
Use the Source, Luke

So yeah, apparently bad APIs make me testy.

FYI, the fix is to hang onto the Call object after you Call.invoke(). Then you can say

catch (AxisFault ex) {
Message message = call.getMessageContext().getResponseMessage();
if (message == null) throw ex; // valid exception
// else: we actually GOT A response:
return message.getSoapEnvelope();
}

Mon, Jun. 16th, 2008, 03:59 pm
YouCantGetThereFromHereException

Dear Lazyweb,

Please see my complaint below. If you have suggestions (other than "OMG Java shoot yourself.") they would be appreciated.

15:55 <@NfNitLoop> ok, more bitching re: APIs.
15:55 <@NfNitLoop> Apache Axis...
15:55 <@NfNitLoop> has a Call object. Call has invoke(SoapEnvelope).
15:55 <@NfNitLoop> SoapEnvelope is basically DOM XML.
15:56 <@NfNitLoop> invoke() also returns a SOAPEnvelope.
15:56 <@NfNitLoop> (aka: the XML response.)
15:56 <@NfNitLoop> UNLESS the server returns a SOAP Fault.
15:56 <x^NamShub> >.<
15:56 <@NfNitLoop> in which case Axis throws an AxisFault ....
15:56 <@NfNitLoop> even though a Soap Fault IS CONTAINED WITHIN A SOAP ENVELOPE MOTHERFUCKERS.
15:57 <@NfNitLoop> and AxisFault seems to have no way to get at the original XML.
15:57 <x^NamShub> Axis pisses me off on more than one level.
15:57 <@NfNitLoop> I should just write my own fucking HTTP library.
15:57 <x^NamShub> You have discovered one.
15:57 <x^NamShub> NfNit: Pretty much.

Sun, Jun. 15th, 2008, 01:47 pm
Hot


Hot
Originally uploaded by InfiniteVoid

Sat, Jun. 14th, 2008, 11:29 pm
IM With the Sister

(11:22:17 PM) theSister: the guy that helped me at the apple store was a retard
(11:22:21 PM) theSister: I knew more than him
(11:22:26 PM) theSister: I am sad that apple hired him
(11:22:41 PM) theSister: he also sold me the wrong VGA adapter
(11:22:47 PM) theSister: and he told me that he doesn't even own a mac
(11:22:51 PM) theSister: :(
(11:23:05 PM) Me: WTF?
(11:23:08 PM) Me: seriously.
(11:23:12 PM) theSister: yeah
(11:23:19 PM) theSister: I was mad
(11:23:27 PM) theSister: and I had to go back again to exchange the adapter
(11:23:38 PM) theSister: he wasted my time
(11:23:47 PM) theSister: I should just get a job there
(11:23:50 PM) theSister: a night job
(11:24:02 PM) theSister: I could do it at that 24 hr store
(11:24:17 PM) theSister: but it is not in LA
(11:25:14 PM) Me: ah.
(11:25:40 PM) theSister: whatev
(11:25:45 PM) theSister: that will just be my backup plan
(11:25:54 PM) theSister: in case grad school doesn't work out
(11:25:56 PM) Me: hehe.
(11:26:31 PM) theSister: "Hi I have a masters in physical chemistry. How can I help you today?"
(11:27:07 PM) Me: "I spilled coke in my laptop, can I get a new one?"
(11:27:21 PM) theSister: No bitch. go home.

Sat, Jun. 14th, 2008, 01:20 pm
The view from pride


The view from pride
Originally uploaded by InfiniteVoid

Sat, Jun. 14th, 2008, 11:24 am

I tend to be a quiet person. I listen more than I speak. And every now and then I am reminded of why this is a good thing.

I volunteered to help man a booth at the Austin Pride Festival today with the Atheist Community of Austin. Faggotry and Heathenry is a nearly irresistible combination, even given today's forecasted high of 97°F.

So this morning I ran some errands. Picked up a folding char, complete with tote bag, for $21. Got $50 cash for buying parking and overpriced food at the festival.

Then I went for a haircut, which I meant to do yesterday but didn't quite feel like at 6:40 on a Friday evening.

Guy: "Come right this way. Wow, you've gotten furry since the last time I saw you."

What I thought: "Furry? I'm hardly furry. Well, OK, I'm kinda hairy, but no more than I am usually. How low *is* the neck on this shirt, again?"

What I said: "Oh?"

Guy: "Yep. So how would you like it cut this time?"

What I thought: "OH, my *hair*! God I'm an idiot. Of course you didn't mean... I mean, you cut hair for a living. It's why I *came* here. What was I thinking?"

What I said: "Pretty short. It's hot out."

I then kept myself to the usual small talk and gave a sizable tip.

Fri, Jun. 13th, 2008, 01:22 pm

Every now and then I get the urge to code something up for fun in my spare time. But most of the time when I get the urge, I can't think of anything cool to write. (well, with a sufficient cool/effort ratio.)

A couple ideas that I've got at the moment:

* Write a webapp to act as a middle-man between my iPhone and streaming radio stations (in particular, KUT) so that I can stream radio to my iPhone.

* Update bzr-svn so that you can do large checkouts (branches) from svn even if you've got the memory-leaky svn-python-1.4 bindings.

* Write a bzr gui in Python using WxPython.

Of course, I don't see myself having the willpower & time to accomplish these this weekend. Mostly just wanted to jot them down for my own benefit.

Anyone else working on interesting personal projects? I know djohns wrote an AJAX IRC gateway for his iPhone.

Thu, Jun. 12th, 2008, 10:23 am
Eclipse vs. Netbeans

In the last couple of weeks I've started using Netbeans instead of my usual, Ecilpse.

Previous versions of Netbeans had left me with a bad impression. It was slower and had fewer features than Eclipse. But what finally pushed me over the edge was when I checked out a project that a coworker had written in Netbeans. It had a fully functional, extensible Ant build file that was automatically generated (and maintained) by Netbeans. The coworker didn't even know it was there, but I got it for free in Eclipse.

So last week I started a fresh codebase for a project, and did so in Netebeans. Here's what I like so far:

* Though Eclipse uses SWT to speed up its GUI rendering and Netbeans uses Swing, Netbeans still seems to be snappier.

* Netbeans gave me a very nice Ant build file out of the box.

* ... and it was very easy to extend that buildfile with a couple of my own custom tasks.

* ... and Netbeans maintains the build script for me. If I add a library to my IDE, it gets added to the corresponding Ant classpath as well. If you write an Ant file in Ecilpse you have to maintain it yourself and it's easy for them to get out of sync.

* Netbeans also has the concept of separate directories for test code. All of that code is kept separate by my IDE and not included in any of the build output. I was previously accomplishing this with my own Ant file in Eclipse, but with Netbeans it's free.

* Netbeans came with GUI editors for XML, XSLTs and XSDs, the latter of which came in very handy for this project. Each had a single button that I could click to verify the file format or perform a transformation. (Eclipse may have similar tools, but why haven't I seen them before?)

Things that I don't like so far:

* Netbeans has fewer extensions. There's no addon for my SCM of choice (bzr). (But that hasn't affected this project.)

* The CVS functionality in Netbeans seems a little flaky. Sometimes I have to "commit" a few times to get my entire hierarchy saved into CVS. And a coworker had weird problems wherein Netbeans told him he had committed a file when its contents were clearly not in the CVS repository.

* Auto-completion is a little buggy too. A lot of times I'll be in the middle of typing and get a completion box partially obscuring my view, saying "No suggestions.". It seems stuck in that state, even if I actually am looking for suggestions. If I hit [Esc] and [Ctrl-space] to ask for a suggestion explicitly it will work again.

* Auto-completion does not attempt to correct my typing/spelling/capitalization. Eclipse does this, and I use it a lot. If I try to create a new HTTPListener, you should goddamn well know that I mean an HttpListener and suggest it with auto-completion.

* Netbeans, like Ecilpse, will mark any (compile-time) errors in the code. Eclipse's suggested fixes are much more useful though. If a method I'm calling throws an exception, both Eclipse and Netbeans will offer to generate a try/catch block for me, but Netbeans will surround my entire method body in a try block, while Eclipse will just enclose the offending method.

* ... When I type x = obj.someMethod(); and ask to create a local variable "x", Eclipse does what I want and finds the correct type for x and prepends its type to the line, importing if necessary. Netbeans likes to put those type declarations at the top of the block of code which drives me crazy.

* Even though I set up my preferred style for indentation and newlines, a lot of code generated by Netbeans seems to ignore those preferences.

* Netbeans has managed a couple of times to get out of sync with the filesystem. I couldn't find a "refresh" command and ended up having to restart Netbeans.

* Did I mention that Netbeans, while responsive once running, is even *slower* to start than Eclipse?

I wish I could have the best of both worlds. Netbeans's zippiness, Ant & testing support, Eclipse's plugins, (relative) stability, and smarter code completion.

I know! I'll write a NetBeans plugin for Eclipse! >:D

Wed, Jun. 11th, 2008, 08:57 am
Obama on religion & politics



Another reason I'm glad I voted for him.

Tue, Jun. 10th, 2008, 07:41 pm
Grammar Nazi

Names changed to protect the guilty. Trimmed for relevance.

19:12 <@NfNitLoop> I hate...
19:12 <_______> I Hate.
19:12 <@NfNitLoop> how so many people misuse "effect" and "affect"...
19:12 <x^NamShub> I.
19:12 <@NfNitLoop> that it makes me doubt my own (correct) usage.
19:13 <x^NamShub> THE EFFECT OF MISUSING AFFECT IS BAD AFFECT
19:13 <@NfNitLoop> "This doesn't affect our scope of work..." ya?
19:13 <_______> effect
19:13 <x^NamShub> ...
19:13 <@NfNitLoop> really? I thought it was X affects Y. The effect on Y is Z.
19:14 <x^NamShub> NfNit: affect is correct
19:14 <_______> I FAIL!
19:14 <_______> :)
19:14 <@NfNitLoop> x^NamShub: thanks. :)
19:14 <@NfNitLoop> But, case in point.
19:14 <_______> I know it's not "the affects"
19:14 <@NfNitLoop> I use affect, and people think I'm wrong. :p

20 most recent