tfheen Mon, 29 Nov 2004 - Project finished, exam tomorrow
Last week was horrible with working on the project. I finally turned it
in Thursday. I was really, really tired and even though I was supposed
to go DDR-ing with Karianne, I didn't. I spent most of the weekend
recovering and made some buns on Sunday. The same day,
yiwaz decided to break down. Probably
the motherboard being broken. I've helped Jorunn with a bit of Scheme.
My scheme is fairly rusty, but we got through the assignment in a couple
of hours and I think she understands it a bit better now, at least.
When I got home, fiddled a bit more with yiwaz, but without any luck.
In fact, she just broke down a bit further. I'll call IBM tomorrow.
Karianne came down and discovered I had bought a bike helmet, which made
her very happy.
tfheen Fri, 26 Nov 2004 - GNOME is not a window manager
Wouter blogged a
bit about
how he has problems with using GNOME because it lacks sloopy focus.
Really, what you are complaining about is that metacity doesn't have
sloppy focus. Then use a different window manager. Please just change
what you have in /desktop/gnome/applications/window_manager/current to
E or whatever you prefer. I run a perfectly usable GNOME desktop with
openbox as my WM. Works fine, and I have sloppy focus. I don't like
flipping desktops with my mouse so I haven't investigated how to do
that.
tfheen Tue, 23 Nov 2004 - LaTeX (or rather pdflatex broken) again
Last fall, about two weeks before I was to hand in a large project with
my project group. rubber, a tool which in some ways resemble make,
but for LaTeX files got broken due to a new version of teTeX. Fair
enough, it was unstable.
Curiously enough, pdflatex is broken for me again this fall. It runs
fine, at least once, but generates a zero-byte .aux file. In addition,
the PDF is around 16k instead of around 250k. In addition, the PDF file
is invalid.
My workstation, which runs Ubuntu (warty) is fine, so is woody.
Tracking down all the differences between woody and sid or warty and
hoary is a fair amount of work, so I rather try to find out what goes
wrong than do a full binary search.
After a bit of tracking, I found out libpng 1.2.7 is broken if you have
alpha channels. If you don't have alpha channels, it's supposed to be
fine (but I can't test that -- my images are exported automatically from
dia and inkscape). Hope this is fixed before sarge releases..
tfheen Thu, 18 Nov 2004 - Plastic cards.
You know you use plastic cards (like bank axept and VISA) fairly much
when you are buying a coffee and decides to see whether you actually
have any cash discover not only some Norwegian money, but also a 50
Euro note. It's almost a month since I was in Italy with Karianne.
tfheen Wed, 17 Nov 2004 - Progressing
Things are slowly progressing again. My term project is coming to an
end, and I think it'll be ok. Somehow, and I'm not sure. I've begun
working a little bit on planet tut again,
adding a few people and understood how the caching works. (Since I
added Anders
and he uses RSS 0.91 which means you get all the posts cluttered up on
the top, similar to what I did to Planet
Debian yesterday.
Was at a picnic at Samfundet yesterday. Indoors, while it was snowing
a lot outside. Very fun. I got home not too late, but woke up fairly
late today with a slight headache. My head hitting the ceiling at
Klubbstyret might have something to do with it, though. A low ceiling
combined with dancing on the tables is not a good combination.
tfheen Tue, 16 Nov 2004 - freedesktop.org, fooishbar.org compromised
This is more of a heads-up for people who wonder why freedesktop.org
doesn't answer (or why fooishbar.org, daniels' box is down). The hosts
were compromised a short while ago and they are being worked on. fd.o
will hopefully be back in a few days, with new and beefier hardware.
Daniel has a blog on LJ where
he gives updates.
tfheen Tue, 16 Nov 2004 - RSS 0.91 sucks
I changed the base URL of my feed last night, which made Planet Debian
think all my posts were new. RSS 0.91 doesn't have a GUID field or
something similar, so it sucks. Going to switch to RSS2 and Atom soon,
I think, to avoid something similar in the future.
tfheen Fri, 12 Nov 2004 - Busy
Worked on my project yesterday, as usual, except that I was drawing
figures. I suck at drawing, but it went better after a while it went
better, even to the point of being ok-ish. Went to Samfundet
afterwards before heading off for dancing. Fun, fun, fun. I wonder
why I'm often reluctant going there, because it's fun each and every
time, and I'm getting better all the time.
Woke up to hear that Yassir Arafat has passed away. Not very
surprising, given his condition over the last few days, but still
sad. I hope the new leadership will be able to negotiate lasting
peace with Israel.
Haven't gotten much work done today, most of the day was spent in a
discussion on simulations in one of my classes. Slept a bit in the
math class, but it was a bit easier, so I'll be able to handle this,
at least. Went home afterwards. Karianne and I ate pancakes, and she
told me they were the best I'd ever made.
The evening was spent in front of the sewing machine, fixing up
costumes for the weekend's LARP. They went ok-ish, but I'm not too
good with the sewing machine, as I'm quite out of shape. Managed to
read a bit on Release Management in ITIL, which I'm presenting
tomorrow.
Busybusybusybusy.
tfheen Wed, 10 Nov 2004 - Last night's IBM vs MS debate (or open source vs commercial software)
Last night, I was at a debate between IBM and Microsoft on the
benefits of open source software and commercial software
respectively. I know that commerical doesn't imply closed-source, so
what the debate was really about was open versus closed source
software. Shame the organizers didn't grasp the difference.
It was a good debate. Microsoft's people were a lot better than IBM's
people, both because they were good and also because IBM had two
salespeople and only one technical guy. It didn't help that the
technical guy was from Skåne in Sweden, which made him hard to
understand.
The debate started with MS and IBM talking a bit about standards and
innovation. MS complained about standardization processes taking a
long time, which means it will in many cases slow innovation.
Standards are also costly. Patents were briefly covered, and IBM said
they were granted about 4 to 5000 patents per year. MS stumbled on
their part of the facts, claiming that TCP/IP was invented by Tim
Berners-Lee 15 years ago. (He was probably talking about HTTP, to his
defense.)
Anders Christensen had a short talk about different licenses used at
the department of computer and information science, which was short,
fun and to the point. IBM talked a little bit about the GPL and GNU;
it was hard to hear what the guy was saying, it was in Swedish and the
guy was a bit fluffy. Not very easy to describe, but his words were
often high-flying and hard to grasp.
MS then talked proprietary licenses and why they thought they were
good. They tried to say "we can show you the source as well", through
their Shared Source program. (But we'll only show you our deepest
secrets if you are a NSA, the IT department of the police or similar.)
Of course, they had to FUD a little with saying that you have to watch
the license if you use open source software. This is correct, but it
applies equally well to proprietary software. If you use third-party
software in your application, you have to understand the license, no
matter whether the license is free or not.
The IBM people clearly hadn't done their homework, as one of them said
(paraphrased): "Open source is no longer only used on open source
platforms", while this is how it all started. In the early days of
the GNU project, the platforms weren't free, it's only recently (last
ten years or so) that you have been able to run fully free operating
systems.
MS were asked whether they though the profit motivation of proprietary
software {companies} could interfere with user rights. They didn't
think so, which amazed me a bit. Isn't that fairly obvious, that in
certain situations, a company may want to do something which isn't in
the users' interest, in order to earn money?
The next part was "Innovation". IBM was getting increasingly boring
to listen to, saying a fair amount of self-evident things and being
completely non-agressive, which was sad to see. MS pointed out that
patents in many cases are just used for bartering between companies
rather than having a single company exploiting the invention for a
long time. This is probably the case, but what about the small and
poor who can't afford a license (or who doesn't get a license, even if
they have the money)? Patents are supposed to help innovation, but in
many cases, it helps stopping innovation just as much. MS showed the
common misunderstanding that free software is only based on volunteer
and "random" contributions. This might have been the case ten years
ago, but that hasn't been true for a long time.
The next big chunk was security. MS said they were a high-profile
target with 94% market share. Their biggest problems are worms and
email-based viruses rather than script kiddies, which are a bigger
problem for the Linux and UNIX world. It seems also MS is taking
security more seriously; last year they took all their developers
through both "how to code more securely" training. In addition, they
spent six months going through all their code with an eye on
security. Why they didn't catch the "what does scripting do in a mail
reader" problem, I have no idea.
I got some eye-opening quotes from them as well. "We do not tell
about security problems before we have a fix ready [...] anything else
would be irresponsible." This is fine, assuming that's MS are the
only ones who have found the bug and that there's no way to protect
oneself apart from patching. That's two fairly big assumes.
They also claimed responsibility for finding bugs before anybody else
does -- "We have the responsibility for finding bugs on our platform
in time". (Before they are found by somebody else and exploited.)
MS repeated their claim that they are often hit because they are big.
To a certain degree, that's probably correct. On the other hand;
where are all the apache, mysql and postgresql worms we should be
seeing, then? They also claimed that they fix security-related bugs
faster than the open source world. I don't think that's correct, but
I didn't have the statistics there, so I couldn't whack them with
anything.
Again, they talked a bit of technology development (which is really
just another way of saying more innovation). MS claimed to innovate
for the better of their users. Later, they got a question about their
embrace-and-extend attitude around Kerberos 5, where they gave the
worst answer I heard the whole evening. They claimed that
certification was important and that the other Kerberos 5
implementations weren't certified with the MS server. Well, Kerberos
5 is a standard, and it was extended a bit (in an incompatible
fashion) by MS with their Active Directory. (Which is really just a
Kerberos 5 and LDAP server with a fancy GUI.)
One more quote: "All our [MS'] file formates were originally designed
to talk to printers [...] We are doing the world a favor by not
opening them up." Funny, yes. However, many people need to read
those formats with other programs than they were originally created
with.
MS claimed to give full hardware-freedom. I was tempted to add: "As
long as you run on Intel (or compatible) platforms, sure". The also
gave some incredible FUD, that the linux kernel has had eight trojans
in different parts of the source. I know of the one attack on a CVS
mirror of the bitkeeper kernel repository, but none others.
All in all, an interesting debate, MS were defending themselves quite
well, but they were mostly on the defense. IBM were weak and
blunt-toothed, which was sad. The audience wasn't so weak and pressed
home when the answers were just avoiding the question.
tfheen Tue, 09 Nov 2004 - PHP-ers writing perl
Today, I had the dubious pleasure of hacking a bit of perl which
clearly wasn't written by a Perl coder, but rather somebody who
learned "programming" by hacking together PHP or something similar.
Take this little piece of code:
print "<DIV CLASS=\"caption\">";
my $tmp = &htmlize_caption ($info{$pathname}{'comment'}, 'slide');
print $tmp;
print "</DIV>\n";
- unecessary temporary variable
- ugly "-escaping
- three print statements and one assignment rather than a single print
statement.
This code should rather read:
print qq[<DIV CLASS="caption">],
htmlize_caption($info{$pathname}{'comment'}, 'slide'),
qq[</DIV>\n];
or
printf qq[<DIV CLASS="caption">%s</DIV>],
htmlize_caption($info{$pathname}{'comment'}, 'slide');
(Really, it should be using templates, but if you aren't using
templates, well, then you aren't.)
The code doesn't use strict, but it uses my, it uses long, long,
long sequences of print instead of chaining them or templating.
If you are going to write perl, please learn the language properly
rather than writing huge scripts which are hard to fix and maintain.
tfheen Tue, 09 Nov 2004 - Last month
I actually haven't written anything in my diary for about a month.
So, what has been going on? I've been to Italy with Karianne, which
was really, really nice. I've been writing on my thesis, which is
coming along, and I think I can make it within the time limit I have.
ITK has celebrated its fifth birthday,
which was large amounts of fun. I've hacked a bit of
microelectronics, with a PWM fan
controller,
helped release Warty
Warthog, the first
release of Ubuntu. Bought a camera and begun taking pictures again.
All in all, it's been a busy last month.
On top of everything, I've decided to move from raw.no, which is my
current domain, to err.no, which is both geekier and it's owned by
myself rather than being an unused domain owned by Hardware.no.
tfheen Mon, 08 Nov 2004 - Tech-friends
I know a lot of people. If I do /names (listing out all the people on
an IRC channel) on the different IRC channels I am on and then remove
people I don't talk to, or who are too inactive, I'm probably still
left with somewhere between 150 and 200. Possibly more. Most of them,
I don't really know; I know some of their technical expertise, I know
their names, but that's about it.
Once in a while, however, one gets to know them better. Some, through
blogs aggregated through Planet Debian and
similar sites. Big and small things: people changing jobs, having
children or being sick. It's a very strange feeling, they're
friends-ish, but not really friends. Some of them, I've never met and
never will. Always fun to meet them over a beer and doing keysigning or
similar geeky stuff when the opportunity comes around.
In a way, I really care about those people. I spend too much time on
IRC, so I see people come and go, both through the day and over time.
Today, a friend and valuable member of the community said he was going
to the doctor. Nothing wrong with that, people go see doctors all the
time without being fatally ill. Something in the tone of what he said
suggested otherwise, though. I hope he will be fine again, soon.
tfheen Tue, 02 Nov 2004 - PWM fan controller
I've talked a fair amount about my fan controller project earlier, but
today, the project entered a new phase. I got it running on my own
hardware (earlier, I used a friends STK500 development board, and his
computer and so on, so I actually had no code from then). The basic
stuff is working: I can adjust the speed from 0% to 90% duty cycle
using the small switches.
I now need to get the code needed for a serial protocol going and I'm
all set. The code is fairly easy, about 60 lines of C so far and I'm
hoping the serial code will be easy as well. In addition, I need to
make a proper board with real connectors and everything.
I also took a few pictures, so
it's apparent for the world I can't solder at all. The Atmel Mega32
microcontroller is a cute piece of hardware, though.
tfheen Mon, 01 Nov 2004 - Contentfilter (or mod_replace, or whatever) for pyblosxom
Annoyed at Liferea not handling Daniel Silverstone putting
… entities in his blog feed (which really isn't the fault
of him, nor of Liferea, but rather of Planet, which doesn't make sure
it spits out valid XML. So I threw together a small piece of code
translating said entity to the unicode equivalent. Stop-gap measure,
sure, but it works.
In case you are interested, the code is as follows:
__author__ = "Tollef Fog Heen"
__version__ = "0 (2004-11-01)"
__url__ = "http://raw.no/personal/blog"
def cb_postformat(args):
request = args["request"]
entry_data = args["entry_data"]
for k in entry_data.keys():
entry_data[k] = entry_data[k].replace("…", "…")