Havoc's Blog

this blog contains blog posts

Brownsville Girl

An
underappreciated song
.

(This post was originally found at http://log.ometer.com/2005–11.html#2)

Job Listing

The official
listing is up
, you should submit your resume online there
for HR tracking if interested. Feel free to also email me with JOB in
the subject, as
mentioned before
.

(This post was originally found at http://log.ometer.com/2005–11.html#1)

Today’s Quotes

Quotes I enjoyed today, first from Steve Jobs here:

This stuff doesn’t change the world. It really doesn’t
… Technologies can make it easier, can let us touch people we might
not otherwise. But it’s a disservice to constantly put things in a
radical new light that it’s going to change everything. Things don’t
have to change the world to be important.

And from
Shigeru Miyamoto
illustrating the epic battle of Design
vs. Megapixel:

You know, in regard to the power of the Nintendo Revolution versus,
say, the Xbox 360, we’re looking at making a small, quiet, affordable
console. If you look at trying to incorporate all that, of course we
might not have the horsepower that some other companies have, but if
you look at the numbers that they’re throwing out, are those numbers
going to be used in-game? I mean, those are just numbers that somebody
just crunched up on a calculator. We could throw out a bunch of
numbers, too, but what we’re going to do is wait until our chips are
done and we’re going to find out how everything in the game is
running, what its peak performance is, and those are the numbers that
we’re going to release because those are the numbers that really
count.

While I liked the Jobs quote in all seriousness, I am also compelled
to point out this
example of something important that will not change the world
. We
definitely need a GNOME feature that does this. Write one. Do it.

(This post was originally found at http://log.ometer.com/2005–11.html#1.2)

It’s only technology

Interesting
article on web 2.0
from Nicholas Carr, in which he talks about
gratis-but-amateur-and-often-crappy
vs. costs-money-but-professional. Following links from IT Doesn’t
Matter
(which he also wrote, and I guess it caused a big furor), I found why
IBM and Dell are the most successful hardware companies
. The claim
in brief: because Dell is the cheapest possible adequate stuff, and
IBM is the most advanced premium-priced stuff, and everyone else is a
kind of half-assed compromise.

Half-baked thoughts:

  • Dell and IBM are both very Linux-entangled… somehow Linux is on
    both ends of this thing. Maybe because like “Intel Inside,” Linux is more a
    building block inside other technology solutions than it is a
    standalone entity.
  • Are Wikipedia and blogs comparable to Dell, and “New York Times, the Financial
    Times, the Atlantic, and the Economist” (Carr’s examples) like IBM?
    In other words, if you’re an “in the middle” publisher trying to
    charge for something of only moderate value, are you screwed?

I guess “low-cost provider” and “high-cost provider” are already
well-known business strategies if you’re an MBA-holder, so maybe this
isn’t news. I don’t really know what the received wisdom might be.

(This post was originally found at http://log.ometer.com/2005–10.html#30)

Surreal

This was on TV when I
powered it on tonight. It involves Sylvester Stallone singing country
music, for example while sitting on a picnic blanket with Dolly Parton
strumming acoustic guitar.

IMDB trivia item:

Original screenwriter Phil Alden Robinson was so offended by
Sylvester Stallone’s extensive re-working of his original screenplay
that he briefly considered having his name removed from the film’s
credits. He was later convinced that having his name on a film of
this “caliber” would look good on his resume.

(This post was originally found at http://log.ometer.com/2005–10.html#25)

Employment Opportunity

We are currently hiring a software developer at Red
Hat
to join a small project team I’m on. The first
attribute we are looking for is that you are an extremely good
developer, where “good” means both “smart” and
“professional.”

Slightly more detailed requirements of the current project are:

  • You know a lot about coding and deploying scalable server-side
    software, especially using Java. You are an expert in servlets,
    databases, and the layers in between. The more hands-on experience you
    have with big rooms full of servers and making code use them
    effectively, the more we want to talk to you.
  • You want to use these skills to have an impact on people’s lives.
  • You are interested in the risks, rewards, and hard work of trying to
    build a new sustainable business around new unproven software.
  • You can get to the Boston area and get started in the near future. It
    is not possible to telecommute to this job.
  • To have the skills and expertise we’re looking for, you have probably
    written several hundred thousand lines of code in your lifetime
    (i.e. you have a few years of experience). You should be comfortable
    designing and implementing complicated software from the ground up.

When/if we have a more thorough and official job description I will
post that also, but in the meantime don’t be shy about sending a
resume to hp@redhat.com, put “JOB”
in the subject, and I will forward it along. If you have some sample
code that is legally permissible to share with us, some examples of
your work would be extremely helpful as well. Hope to hear from you.

(This post was originally found at http://log.ometer.com/2005–10.html#24)

Tagged bookmarks

Did Epiphany seriously switch away from tag-based
bookmarks
right when the whole web
2.0
crowd is having a collective hype-gasm about tagging and
folksonomy? Epiphany was there first! Obviously the missing piece is
to make tags appear in a
larger font
according to popularity, thus harnessing more
collective intelligence.

So web
1.0
, people. Get with it.

(This post was originally found at http://log.ometer.com/2005–10.html#22)

NetworkManager

Thomas,
the whole thing you’re doing
(figuring out what to start) is not intended to exist — the norm would
be that the daemon starts automatically in the init script, and GNOME
autostarts the tray icon. But I believe the RPM doesn’t autostart stuff yet
because it’s all beta/experimental/dorks-only and it breaks on certain
kernel modules or wireless cards.

It’s not a complicated architecture. NM daemon controls the
kernel, and the UI for it is a GNOME tray icon or applet. You start
the two halves. At least as of the previous network manager, this is
what you had to launch:

$ su -
# service NetworkManager start
# exit
$ /usr/libexec/nm-applet &
$ bg; disown

In an on-by-default NM the init.d script would be in runlevels 3/5 and
nm-applet would be in the GNOME session, nothing to do manually.

Your log error looks like either dbus isn’t reloading the security config
post-install of NM, or NM daemon simply isn’t running.

That said, NM doesn’t work for me either, but it’s the fault of the
kernel drivers. The airo module with whatever version of the firmware
I have gets into a wedged state where it just prints debug spam over
and over and doesn’t work. Whatever race condition or sequence of
syscalls causes the wedging doesn’t happen often when just doing “ifup” and
“ifdown” rather than NetworkManager’s scanning etc. I have triggered
it from the command line before though usually in a “trying to find a
network” case where I’m running iwlist and bringing things up and down
much as NM would do.

Dan kindly documented

kernel problems discovered
in the course of hacking on NetworkManager.

(This post was originally found at http://log.ometer.com/2005–10.html#22.2)

Java server programming

I think Chris is
right about this
, Java’s convenience has been hampered by the license. JPackage helps
on some level but I’m not convinced putting Java into the UNIX
binary packaging mold is exactly what you want, and JPackage can’t
redistribute all the Java core runtimes that people use. As gcj/Classpath
matures it will help obviously. There’s also the whole Maven thing, in C programmer terms
you could think of this as “kind of like automake, but automatically
downloads dependencies.” Anyway, the de facto reality in the Java
world is that you just bundle all dependencies with your
app. Equivalent of static linking.

On the plus side though, the amount of open source code written
in Java is huge, largely server-side stuff. It tends to be much
more sane and reusable than your average C/C++ library, because the
“GLib” equivalent layer (collections, threads, IO, etc.) is a given
and thus libraries can interoperate with each other and with
applications. Another factor I’d say is that writing robust Java code
is a lot easier than writing robust C code and more people are able to
write acceptable libraries.

Open source is kind of “winning” in the Java world; from what I can
tell, the new EJB3
spec more or less has nothing to do with previous versions of EJB. The
persistence part looks like a rebranding of the open source Hibernate
project, using Java 5 annotations to dump Hibernate’s XML
configuration. Here’s a tutorial on
it
, and it’s pretty cool. I have no idea about the Java community
or what happened, but it certainly seems like a coup for open source.

The resulting situation is very strange, where everything below the
JDK is open source (Linux, etc.) and everything above it is also open
source (huge stack of Java code out there). Even the IDEs are open
source. All this open source stuff effectively defines the real,
complete platform that people use in practice. But it’s very difficult
to ship that platform working “out of the box” because there’s
this closed JDK in the middle. Classpath will save us…

The oddest thing about Java has to be their obsession with calling
everything a “bean.” As Colin points out, because they started calling
every object a “bean,” they had to rename objects to the special term
“POJO” (plain old java object). As far as I can tell, in the modern
Java world you can pretty much do s/bean/object/ on the docs with
no loss of information.

(This post was originally found at http://log.ometer.com/2005–10.html#21)

JavaScript

I have a new JavaScript theory which is that they were LISP-envious.
They were all “you know, Lisp had it right to design the language
around the One True data structure — they just had the wrong one. So
our new language is not list processing, it’s HASH TABLE
PROCESSING. HOLY SHIT. SCOPES ARE HASHES. OBJECTS ARE HASHES. TYPES
ARE HASHES. LISTS ARE HASHES. EVERYTHING YOU TYPE AUTOMATICALLY
BECOMES A HASH ENTRY. WOOOOOHOOOOOOOOOOO”

(This post was originally found at http://log.ometer.com/2005–10.html#18)