Being the thoughts and writings of one Gustaf Erikson; father, homeowner, technologist.
This category contains posts about computing, programming, and development
Rui posts some tips on how to manage your email more effectively with Outlook.
We’ve been using some of those techniques with the support box. I use
“reply to all” for all mails, so we always get a copy of the reply in
the same conversation. As we are two working with this, it’s a godsend
to have a complete record of the conversation around the issue.
We use the nifty coloured flags to manage workflow. My issues are
orange, my coworker’s are blue, issues awaiting answers are purple,
escalated issues are green etc. This works pretty well, as you can
easily spot issues that haven’t been addressed yet.
We have 2 archives, one based on the year’s quarter, and one where we
put all escalated issues. Having mails sorted by conversation makes it
easy to archive.
However, Rui’s tip about using a smart mailbox to combine your inbox
and Sent items makes a lot of sense. It addresses the shortcomings of
having to do a reply to yourself all the time.
We’ve worked around the limitations of Outlook’s default filtering by writing a little perl skript that counts the number of issues and alerts us if they are too old.
Posted at 14:40,
in the comp category. Comments [0]
I had to try to extract about 12,000 IP addresses from our click
database, over a period of one and a half months. The table is
famously big[1] (140,000 rows a day) and indexed on the date.
I don’t know what flew in me, but my first attempt was to generate SQL
queries for each IP and run that query over the timespan. That’s
12,000 queries at about a minute apiece, in other words 8 days. Plus I
couldn’t run it all the time, as it bogged down the database.
Then I found a better way. I took all rows for the timespan and
checked if the IP was in a hash. If it was, I kept it, otherwise I
just went on to the next one. I can’t believe I was so stupid I tried
the first approach at all, and that I’m now blogging about it…
[1] in our system, you probably have much bigger tables.
Posted at 21:22,
in the comp category. Comments [0]
Due to a little accident, my wife’s standard laptop is hors de
combat — basically, I dropped our son on it (from a small height, I
hasten to add) and the power connection broke. So it boots, for about
5 seconds, before discovering that the battery is flatter than Kansas.
I have in my possession an elderly laptop with no more than 256M of
RAM, much too little to run a modern Microsoft OS. So I decided to
check Ubuntu out. This is supposed to be
“Linux for human beings”, so I figured this would be OK for non-geeks.
I downloaded an install CD via BitTorrent and used it to install
it. The installation went really well. I had to fight my old-skool
Debian and OpenBSD instincts and just let things go as
designed. Ubuntu has made a great product — it installed seamlessly
on the lappy and presented a clean, workable graphical interface that
I think will be acceptable for Linux-o-phobes.
The only thing that didn’t work out of the box was the wi-fi pc-card I
bought expressedly for its OpenBSD compatibility. However, I
discovered that I had no less than four wi-fi cards lying around, and
the oldest 3Com card worked fine.
I’ve been using this laptop all day (in between re-stacking our
woodpile) and I really enjoy it. Small stuff, like Alt-Tab
window-switching and Alt-F4 window close work exactly like in
Windows. But having a real Debian system underneath just feels sooo
much better than Windows crap leavened with Cygwin goodness.
Posted at 17:05,
in the comp category. Comments [0]
Hilarious article in El Reg:
If the latest news from the wonderful world of Pandemia has got your
organisation running around like a headless Romanian chicken, then
don’t fret: Gartner has released an essential guide to avian
influenza, aka bird flu, aka Black Death II, which mercifully states
that although you will most likely be lying dead among the
smouldering ruins of society, your IT infrastructure can be saved
for future generations.
The article supplements Gartner’s tips (“Assign someone in your
business to track biological threats such as the avian flu. […]”)
with the following:
- Bulk buy flowers and coffins as part of your business continuity preparedness for a permanent workforce outage scenario.
- Assign someone in your business to stand on the roof and shoot anything with wings.
- Set up email autoresponders to communicate: “Sorry, I’m out of the office due to death.”
- Lock infected employees in their homes with broadband access and then paint a red cross on the door.
- Leave a full set of instructions on how to reboot the servers for the next generation emerging blinking into the post-apocalyptic landscape.
- Try to stay calm.
Posted at 23:30,
in the comp category. Comments [0]
Rui:
The last couple of hours were spent poring over a couple of Rails
applications, and arriving at the (predictable) conclusion that Ruby
can be just as incomprehensible as Perl when written by squirrels on
the same kind of crack.
Shouts to Anders at ork…
See also www.GodHatesPerl.com :-)
Posted at 08:32,
in the comp category. Comments [0]
The Daily WTF:
At some point in your career as a programmer, you will be tricked into maintaining a VBA (Visual Basic for Applications, aka Word/Excel macros) application. I’d tell you how to get out of it, but I really don’t think it’s possible. All I know is that at some point between admitting to have knowledge of Excel and cursing under your breath while typing VBA, you will be coaxed into giving some “quick help” on a spreadsheet.
Then there follows an astounding example of horrible horrible VBA
code, and the replacement: 3 lines.
There were some dangerous moments in the beginning of my current
employment when people were nerving themselves to ask me for VBA help,
but now I think it’s forgotten. And if it isn’t, I have to hunt down
those people and administer more memory suppressants…
Posted at 23:44,
in the comp category. Comments [0]
Matthew: Generation VIC20.
Chris: So Dad, what’s a computer science class for at school?
Me: Well, you learn to program there for example.
Chris: Program?
Me: Yes, to write computer programs using a special language.
Chris: You mean like games?
Me: Well, yes I suppose.
Chris: Like Star Wars Knights of the Old Republic?
Me: Umm, no.
Classic.
I guess you could learn a lot by copying source code, even if it was
just BASIC spaghetti code. With line numbers.
Posted at 18:33,
in the comp category. Comments [0]
For me, and many others, the word “proprietary” is
pejorative. Proprietary tech is closed, not open; hidden, not shared;
expensive, not free.
But I’ve noticed that in certain contexts, “proprietary” is loaded
with positive context: it denotes quality and smartness that you only
get when you pay clever people lots of money to develop great
technology.
This is jarring.
Posted at 21:21,
in the comp category. Comments [0]
Cool hack in Unix: if you know the zonefile abbreviation for a
timezone, you can use it to get the date there:
$ TZ=PST8PDT date
Tue Aug 30 05:07:39 PDT 2005
This also works:
$ TZ=America/Los_Angeles date
Tue Aug 30 05:08:17 PDT 2005
Timezone files are in /usr/share/zoneinfo
on OpenBSD and Linux.
Posted at 14:09,
in the comp category. Comments [0]
Mike:
Sony really doesn’t like people being able to do what they want with
Sony devices, so the thing is rife with all sorts of crippling
roadblocks to innovation (I think the technical term for this is DRM,
but I just call it teh suq).
Posted at 15:05,
in the comp category. Comments [0]
This is quick basic intro to GNU Screen.
If you haven’t installed screen
, do so. It rocks.
Starting up
Start screen. You’ll get a splash screen. Hit space to make it go away.
Depending on your flavour of *nix, you’ll get between 1 and n
screens. First one is numbered 0. Try to switch to screen 1: Ctrl-a
1
. If you get a message, create screen 1 with Ctrl-a c
(create). Now you can switch back and forth between 0 and 1 with
Ctrl-a 0
and Ctrl-a 1
.
Want a “real” Ctrl-a
? (If you’re in Emacs, you do.) Type Ctrl-a a
.
Detaching
Start an editor in one screen, load a file and start editing. Detach
with Ctrl-a d
(detach). Logout of the shell, then login
again. Attach to the screen: screen -r
(reattach). You should be
back where you left. Continue editing.
Finally
Screen is perfect for flaky connections, you’ll be back where you left
off even if you get a hangup.
You can use screen -r -d
to cleanly reattach from another session.
If you want a bunch of screens at startup, edit your ~/.screenrc
. Mine looks like this:
shell -$SHELL
screen -t SHELL0 0
screen -t ROOT 1
screen -t SHELL2 2
screen -t SHELL3 3
screen -t SHELL4 4
screen -t SHELL5 5
The first line starts the current $SHELL
in login mode. The others
set up six windows and gives them titles.
Type man screen
for more info.
Happy screening!
Update: here’s a more full-featured tutorial. (Via NTK.)
Updated on Friday, 2005-11-04.
Posted at 23:22,
in the comp category. Comments [0]
… or the the Grand Unified To-Do List: does it exist?
I’ll soon be having 3 main sources of things to do:
- the Bugzilla system, used for stuff like accounts, and also to keep track of things we have committed for the tech team to handle
- the soon-to-be-implemented issue tracking system for support work
- ad-hoc stuff using Outlook (phone calls, random cow-orkers wandering up and presenting requirements for multi-week projects in 2 sentences, &c)
Wouldn’t it be great if I could get a unified view of all this, so I
could slice and dice and prioritise GTD-style?
Posted at 23:41,
in the comp category. Comments [0]
Peter mailed this to the internal tech
list:
// FIXME: Please note that this is a fulhack, made in panic before christmas.
// Should be removed och purged ASAP.
// ... Well, that didn't happen... surprised?
// ... and it just keeps growing...
(A “fulhack” is Swedish for “ugly hack”.)
Posted at 16:10,
in the comp category. Comments [0]
Matt has written a nice tutorial on how to use
Django in a simple CRUD situation:
Django Generic Views:
CRUD.
(CRUD, by the way, stands for Create, Read, Update, Delete — basic
database manipulation. The title of this post is in no way a
reflection on Django on my part.)
Matt and others are very excited over Django — it’s Ruby on Rails for
Python. I’ve been meaning to learn Python for a long time, but lately
I’ve felt I’m too old a dog for new tricks. More on this in a later
post, maybe.
Posted at 20:18,
in the comp category. Comments [0]
milardj:
Loving Perl is starting to resemble an 80’s John Hughes movie -
really digging this girl but slightly embarrased about it and afraid
you’re friends will find out.
Posted at 22:20,
in the comp category. Comments [0]
Aristotle writes:
Hooking Markdown into the browser, and in fact into any application
that has text input widgets at all, is actually more simple than
might at first appear: you just need
xclip (or some equivalent,
I suppose, if you.re not on X11). This little tool can dump any of
the X11 selections, such as the clipboard, to its stdout or slurp
its stdin into one of the selections.
Thus, I have this shell oneliner bound to a keyboard shortcut in my window manager:
xclip -o -sel clip | Markdown | SmartyPants -2 | xclip -sel clip
With that in place, I simply write my entries in a natural format,
then I copy, hit a key, and paste, and there they are, turned to
HTML and typographically smartened. Presto.
Anyone know of a Windows analogue of xclip
?
* Well, at work I support the damn OS, and at home I just
enjoy the eye-candy…
Update: Jim pointed me to UnxUtils and the programs pclip.exe
and gclip.exe
. Here’s Jim’s post on how to use these with PyTextile, and here’s my version for Markdown + SmartyPants
c:\cygwin\usr\local\bin\pclip.exe | \
c:\cygwin\bin\perl.exe c:\cygwin\usr\local\bin\Markdown.pl | \
c:\cygwin\bin\perl.exe c:\cygwin\usr\local\bin\SmartyPants.pl | \
c:\cygwin\usr\local\bin\gclip.exe
The gnarly code is due to my choice of paths in Windows.
The code works, sorta, but it doesn’t return DOS line endings
(\r\n
). I guess you could hack Markdown to do this.
Updated on Thursday, 2005-08-18.
Posted at 22:05,
in the comp category. Comments [0]
Russ talks about personal devel
projects and the
need to find time to do them.
I’m in a similar situation. I really need to do more development in my
spare time, if only because it’s fun. I also need to learn more
programming (especially in the Java space) for professional
reasons. The hard part is finding the time to do it.
I have plenty of excuses, first and foremost being three kids from the
ages of three to fifteen, and a house built in the 20s, renovated in
the 40s and extended in the 60s. I should also be doing some sort of
exercise before my belly becomes too noticable.
Maybe moving to Windows at home was a mistake. It’s too easy just to
futz around on Windows, to do work you need a Unix laptop with a basic
window manager and an instance of Emacs.
Posted at 23:34,
in the comp category. Comments [0]
This list is here so that I can check out hardware in stores via the
phone.
- ADMtek ADM8211 based CardBus/PCI adapters (atw) (G)
- Aironet Communications 4500/4800 ISA PnP, PCMCIA and PCI 802.11b adapters (an)
- Aironet 4500/4800
- Cisco 340/350
- Atheros AR521x based CardBus 802.11a/b/g adapters (ath), including: (G)
- 3Com 3CRPAG175
- Aztech WL830PC
- D-Link DWL-A650
- D-Link DWL-AB650
- D-Link DWL-AG650
- D-Link DWL-G650B
- Elecom LD-WL54AG
- Elecom LD-WL54
- Fujitsu E5454
- Fujitsu FMV-JW481
- Fujitsu E5454
- I/O Data WN-AB
- I/O Data WN-AG
- I/O Data WN-A54
- Linksys WPC51AB
- Linksys WPC55AG
- NEC PA-WL/54AG
- Netgear WAB501
- Netgear WAG511
- Netgear WG511T
- Orinoco 8480
- Orinoco 8470WD
- Proxim Skyline 4030
- Samsung SWL-5200N
- SMC SMC2735W
- Sony PCWA-C700
- Sony PCWA-C300S
- Sony PCWA-C500
- Atheros AR521x based PCI 802.11a/b/g adapters (ath), including: (G)
- D-Link DWL-A520
- D-Link DWL-AG520
- D-Link DWL-G520
- HP NC4000
- Linksys WMP55AG
- Netgear WAG311
- Netgear WG311
- Proxim Skyline 4032
- Senao NL-5354MP
- Atmel AT76C50x based USB 802.11b adapters (atu), including: (G)
- Acer Peripherals AWL300
- Acer Peripherals AWL400
- Aincomm AWU2000B
- Bluetake BW002
- D-Link DWL-120
- Geowave GW-US11S
- Linksys WUSB11
- Linksys WUSB11-V28
- Netgear MA101 rev B
- OQO model 01 builtin wireless
- Ovislink AirLive WL-1120USB
- OvisLink AirLive WL-1130USB
- SMC 2662W-AR
- SMC 2662W-V4
- Intel PRO/Wireless 2100 802.11b adapters (ipw) (G)
- Intel PRO/Wireless 2200BG/2225BG/2915ABG 802.11a/b/g adapters (iwi) (G)
- Intersil PRISM-2-3 based 802.11b Compact Flash adapters (will be detected as PCMCIA adapters) (wi)
- Buffalo AirStation
- D-Link DCF-660W
- ELSA XI800
- Linksys WCF12
- Netgear MA701
- Intersil PRISM 2-3, Lucent Hermes and Symbol Spectrum 24 based PCMCIA 802.11b adapters (wi), including:
- 3Com AirConnect 3CRWE737A
- ACTIONTEC HWC01170
- Addtron AWP-100
- Agere Orinoco
- ARtem Onair
- BUFFALO AirStation
- Cabletron RoamAbout
- Compaq Agency NC5004
- Contec FLEXLAN/FX-DS110-PCC
- Corega PCC-11
- Corega PCCA-11
- Corega PCCB-11
- Corega CGWLPCIA11
- Dlink DWL650 revisions A1-J3
- ELSA XI300
- ELSA XI325
- ELSA XI325H
- EMTAC A2424i
- Ericsson Wireless LAN CARD C11
- Gemtek WL-311
- Hawking Technology WE110P
- I-O DATA WN-B11/PCM
- Intel PRO/Wireless 2011
- Intersil Prism II
- Linksys Instant Wireless WPC11
- Linksys Instant Wireless WPC11 2.5
- Linksys Instant Wireless WPC11 3.0
- Lucent WaveLAN
- NANOSPEED ROOT-RZ2000
- NEC CMZ-RT-WP
- Netgear MA401
- Netgear MA401RA
- Nokia C020 Wireless LAN
- Nokia C110/C111 Wireless LAN
- NTT-ME 11Mbps Wireless LAN
- Planex GW-NS11H Wireless LAN
- Proxim Harmony
- Proxim RangeLAN-DS
- Samsung MagicLAN SWL-2000N
- SMC 2632 EZ Connect
- Symbol Spectrum24
- TDK LAK-CD011WL
- US Robotics 2410
- US Robotics 2445
- Intersil PRISM 2-3 and Symbol Spectrum24 based PCI 802.11b adapters (wi), including:
- 3Com AirConnect 3CRWE777A PCI
- Belkin F5D6000 PCI (a rebadged WL11000P)
- Corega CGWLPCIA11 PCI
- Eumitcom WL11000P PCI
- Dlink DWL520 PCI revisions A and B
- Global Sun Technology GL24110P PCI (untested)
- Global Sun Technology GL24110P02 PCI
- Intersil Mini-PCI
- LinkSys WDT11 PCI (a rebadged GL24110P02)
- NDC/Sohoware NCP130 PCI
- Netgear MA301 PCI
- Netgear MA311 PCI
- US Robotics 2415 PCI (rebadged WL11000P)
- Nortel E-mobility 211818-A
- Symbol LA4123
- Intersil PRISM 2.5/3 based USB 802.11b adapters (wi), including:
- Acer Warplink USB-400
- Actiontec HWU01170
- AirVast WM168b
- Ambit WLAN
- Apacer Wireless Steno MB112
- ASUS WL-140
- Compaq W100
- Corega WLUSB-11
- Corega WLUSB-11 Key
- D-Link DWL-120 (rev F)
- D-Link DWL-122
- I-O DATA WN-B11/USB
- Intel PRO/Wireless 2011B
- Intersil Prism 2X
- JVC MP-XP7250
- Linksys WUSB11 v3.0
- Linksys WUSB12
- Melco WLI-USB-KB11
- Melco WLI-USB-KS11G
- Melco WLI-USB-S11
- Microsoft MN510
- Netgear MA111 (version 1 only)
- Pheenet WL-503IA
- Planex GW-US11H
- Siemens SpeedStream SS1022
- Sitecom WL-022
- Syntax USB-400
- US Robotics 1120
- Z-Com XI-725/726
- Z-Com XI-735
- ZyXEL ZyAIR B-200
- Ralink RT2500 based CardBus 802.11b/g adapters (ral), including: (G)
- MSI CB54G2
- Surecom EP-9428-g
- Ralink RT2500 based PCI 802.11b/g adapters (ral), including: (G)
- ASUS WL-130g
- Minitar MN54GPC-R
- Raytheon Raylink and Aviator 2.4/PRO PCMCIA 802.11 FH adapters (ray)
- Realtek RTL8180L based CardBus 802.11b adapters (rtw), including: (G)
- Corega CG-WLCB11V3
- Netgear MA521
(G): Drivers for hardware marked with (G) are only included
in the GENERIC kernels, but are not included on the various
distribution floppies (including the cd-rom boot image).
(Source: OpenBSD i386 hardware list.)
Updated on Tuesday, 2005-03-08.
Posted at 21:49,
in the comp category. Comments [0]
I feel a need to keep an eye on what the hell I’m doing at work, and
how long time I spend doing it. I know that there are lots of apps
around which help you track time spent on projects, but most of them
are graphical apps. I wanted a console app that could live in my
screen
session so that I could work from home and still have a
totalitarian view of what I was doing at any given point in time.
A quick trawl through Freshmeat didn’t
turn up anything other than the aforementioned graphical apps, so I
happily sat down and started work on my own, using my recently
acquired knowledge of Perl’s terminal capabilities. I wanted a
full-screen app that I would just press a button in and switch tasks.
While writing this, I needed a trivial time conversion that I had
forgotten. While googling for it, I discovered a time tracking app
written in Perl that used it for its own purposes:
tt
. Ironic, huh? The app
isn’t exactly what I envisioned, but it’s more full-featured than
mine, so I’ll give it a try. Otherwise I’ll develop my own app
further.
Posted at 22:32,
in the comp category. Comments [0]
I’ve tried learning Python through Mark Pilgrim’s excellent Dive
Into Python, but I’ve
discovered that I haven’t enough time to really get into it. Perl is
the language I use most days, both in work and personally, and it’s
hard for me to break out of the Perlish mindset. Any “serious” Python
coding would be sysadmin and report stuff, and I’d just try to remake
Python in Perl’s image.
I’ve finally grokked Perl references, and I’m reading the second
edition of the Perl Cookbook with real pleasure. Some of the
quirkier passages from the first edition are gone (and Randal Schwartz
seems to be persona non grata in this edition), but that’s
outweighed by the treatment of Perl’s Unicode support (crufty and
gnarly though it may be — the price of backward compatibility) and
the new switch
statement. Perl must be the only language older than
10 years where switch
is an experimental feature.
Jim has apparently volunteered to become
the Perl expert at his salt mine, for which he deserves equal praise
for foolhardiness and pity. I think that he’ll find enough cool stuff
in Perl to satisfy his C++ roots, what with all the esoterica
available in the dark corners of CPAN
(Acme::Bleach
,
anyone? Or how about
Acme::Apache::Werewolf
,
by a hardcore Warren Zevon fan?)
I’ll never be a Perl guru, but I do think I can become a competent
Perlist.
Posted at 21:56,
in the comp category. Comments [0]
Today in #mobitopia:
16:16 <Netminder> tags are the new black
16:16 <diego_> heh that's good :)
16:16 <Moof> Netminder: I'm currently writing tag-aware blogging software
16:17 <diego_> I am writing a tag-aware operating system. There will be no
files or applications or anything. Only tags.
16:17 <Netminder> my pet monkey just received first round funding on a
tag-enabled venture he's working on.
16:17 <diego_> I am talking to Shell as well, developing tag-based fuels.
Posted at 17:37,
in the comp category. Comments [0]
I spent my free time this weekend re-designing my app for calculating
Swedish
holidays. It was
pretty crufty, having evolved from a simple app to update our
time-reporting database to being all things to all people — at least
those that grok command-line Perl. Let’s face it — that audience is me.
So I ripped out the central part which actually computes the dates and
put it in a module. I wanted to write a CGI that could be used online,
so I had to research how to install Perl modules as a normal user,
enable taint mode et cetera et cetera. I’m 15 minutes from
deployment when I suddenly think “hey, this is so freaking simple it
must have been done already” — and did a google for “svenska
helgdagar”.
Of course, #2 on that list is a
worthy competitor, with English and Swedish
translations, flag days, and output to different calendar formats.
Humph.
Anyway, my efforts are
here. Python
version next!
Posted at 14:23,
in the comp category. Comments [0]
For a long time I have been having trouble sending mail to people
using Microsoft’s mail clients Outlook and Outlook Express. I use
Gnus, an all-singing, all-dancing news-mail-and-everything reader for
use in Emacs.
The trouble was that if I included any 8-bit characters in the header
of the message, Outlook would translate any 8-bit characters in the
body of the message to an equal sign and two hex characters. This was
intensely irritating, as I naturally assume that all free software is
superior to commercial offerings, especially Microsofts.
The trouble is that the version of Gnus I’m using (v5.8.7) doesn’t
encode the headers in quoted-printable, thus confusing Outlook no end.
The solutions is to place the following in your .emacs
or .gnus
file:
;; iso-8859-1 support for headers
(require 'gnus-msg)
(add-to-list 'gnus-group-posting-charset-alist
'(message-this-is-mail 'iso-8859-1 (iso-8859-1)))
Thanks to Kai Großjohann for this info.
Keywords: Gnus, gnus newsreader, GNU/Emacs, Emacs, Xemacs, MIME,
mime, quoted-printable, transfer-encoding, Microsoft Outlook, Outlook
Express, mangled, 8-bit characters.
Note: this was originally posted on another server, I’m posting it
here in an effort to clean up my online life.
Posted at 16:17,
in the comp category. Comments [0]
Russ got cracked. His website (and all
the others on the same box) was defaced, his logs erased, and his life
disrupted. The idiot responsible probably had no motive other than
racking up a big number of defaced sites.
This points to a scary thought: many people nowadays have their
professional reputations on one server: weblog, email, development. If
this box is cracked, you can spend a lot of time trying to restore
from backups (you do have backups, don’t you?), while your
reputation crumbles around you. Your server has become a single point
of failure.
Having a computer is hard. Just owning a Windows box implies being a
sysadmin. Unix systems are generally more secure, but you do need to
keep up on advisories and patches.
I see a need for a service that handles security on your box, with
money back if you do get cracked. But that service probably exists,
and costs $BIGNUM per month. The seemingly low barrier to entry in the
online world — a couple of hundred for a colo box — carries a hidden
cost.
Posted at 21:03,
in the comp category. Comments [0]
An RSS feed of bugs from Bugzilla would be just great.
There’s an extension providing this
but it isn’t exactly trivial to install.
It doesn’t help that the machine we’re running Bugzilla on does at
least a hundred other things, all mission-critical. We really need a
scratch/support box for messing with this kind of stuff.
Posted at 11:11,
in the comp category. Comments [0]
Russ shows how to upgrade the RAM in the Mac
mini.
Russ doesn’t say, but I’m pretty sure that this voids the warranty on
the beast. You can read than between the lines in quotes such as:
You have to jam the putty knife into the side of the machine, then
pull back (with enough force to bend the putty knife) and it’ll pop
and crackle and come apart. Just jamming the putty knife in though
is quite the feat - it’s definitely a snug fit and just doesn’t feel
like you’re doing the right thing at all.
You think?
Apple could have made this a bit easier, I’m sure there’ll be blood
on the cases of more than few minis. But it’s definitely possible
and straight forward to do upgrades yourself.
Well, it isn’t in Apple’s best interest to make it easy for consumers
to upgrade their minis. In the first place, it really makes it hard to
provide customer support when someone has jammed in some random hunk
of RAM in the machine without reading the instructions or spec. Apple
cuts down on the tech support questions plagueing the PC world by
providing a locked down, controlled platform.
Secondly, it removes a lucrative income source in after sales
upgrades. And thirdly, and possibly most important, making it possible
for users to self-service their mini would ruin the looks of the
machine.
Posted at 21:39,
in the comp category. Comments [0]
Arghh!! Engineering a hardware upgrade suddenly doesn’t seem worth it
when you have to contend with re-installing every little damn piece of
software that’s needed to make Windows bearable.
My gnus
can’t display HTML mail anymore, and
trying to fix that leads to installing lots of little packages from
cygwin just to compile a program that dumps core.
The Oracle client is the install program from Hell.
The new monitor can only do 85 Hz @ 1200x1024, but then you get weird
moving Moiré patterns all over the screen. Higher resolutions don’t
have this, but then you only get 75 Hz.
Firefox will export bookmarks, but not the ones in your toolbar —
which are all the ones containing the weird internal application URLs
that no-one can remember.
Update: all of the four monitors we bought have the same defect. As
I generously traded in my previous monitor to a co-worker who was
suffering under a execrable Dell 17” “short-neck” (read as
“shit-neck”) I now have to put up with an older 17” Dell monitor which
is much worse than my previous one.
Also, re-packing monitors suck. They are heavy and hard to fit into
the boxes again.
Updated on Friday, 2024-08-27.
Posted at 23:51,
in the comp category. Comments [0]
Matthew asks how
one goes about to teach kids to code. Viking is too small yet, but
it’s an interesting question. I know Hanna is quite proficient in
HTML, mostly by copying and pasting, but Leo has shown no interest
whatsoever in coding.
Part of the problem is the polished and complex nature of todays
computers. In our day, you could slavishly copy pages of code and get
something that worked. Even if it was just copying, you got down and
dirty with the code. Some of it stuck. A curious kid (which I was not)
could explore further, learning more and more. Whether learning Basic
and VIC-20 assembler was a good thing is another question…
But now? Who can feel that they can produce something like Doom 3 by
themselves?
Having said that, I believe a programming environment should have a
graphic component. A former co-worker’s son loves (loved? it’s been a
while) a DOS-based program for scripting dungeon adventures. A
language of that kind could introduce the building blocks of
programming — loops, conditionals, events — in a fun way that gives
instant feedback and makes debugging fun.
An OO component could make it easy to “clone” your succesful monster,
trap, whatever, and re-use the code. Introducing test cases is perhaps
overkill at this stage…
I haven’t seen Lego’s Mindstorm stuff, but if anyone can make IDEs for
kids, it should be them.
Update: Bill Ward writes in a comment:
For me it was BASIC on the Commodore too. But today’s kids have
options as well. I think Javascript may be a good choice. My wife
is taking a Flash class at the local college, and teaching me what
she is learning. That could be a good choice too, except for the
fact that it’s rather expensive.
I remember someone prophesying that Windows Scripting would be the
next “laymans programming language”, but I haven’t seen MS promoting
it that way. Having an easy to learn powerful scripting language built
into the OS would introduce lots of people to programming, not just
kids.
Updated on Monday, 2024-10-04.
Posted at 23:49,
in the comp category. Comments [0]
Russ gives
Konfabulator for Windows a
big thumbs up. And sure, it’s cool, and the widgets are really nicely
done graphically.
But I’m still too much of a textmode guy to really appreciate it. Even
though I use an analogue watch, I prefer the modeline of my emacs to
show me the date, time, and week of year. I prefer to ask the mobibot
the values of the stocks I follow, and the weather can be gauged by
looking out of the window.
Besides, I have my screen full of apps. I never see my desktop.
But perhaps I’ll come round. If only Windows had working virtual
desktop support.
Frank has
some more thoughts.
Regarding the mobile angle, I’m not wholly convinced that Konfabulator
would work “out of the box”. It’s very mouse-oriented (being based on
JavaScript, after all). There are some difficulties in getting it to
work in the majority of devices that have keypad/joystick input.
But for ease of development, I’m sure it can’t be beat.
Update: I maybe should have mentioned the number 1 reason I didn’t
stick with Konfabulator: no nixie tube
clock widgets.
Comments
Nick Wilson writes:
Besides, I have my screen full of apps. I never see my desktop
Being a 100% Linux guy, the first thing I do when i boot is open
about a half dozen command line screens. I like the look of
konfabulator but isnt it just a pretty toy?
For people that spend much of their waking day in front of a pc,
like me, its so much simpler to be “text orientated”. Whereas I
browse graphically, have some neat games and stuff I occasionaly get
time to play, i really do appreciate a good functional no thrills
text app.
Take email for example, Mutt is my
app of choice, its ugly, but highly functional and very powerful.
I think things like konfabulator will be the ‘darling of the moment’
at very best. Give me solid functionality without thrills any day of
the week..
Nick W
I’m with you all the way, Nick, but I still think we (Linux users and
Windows “power users”) are a minority. Konfabulator represents the
eye-candy market which is much bigger than the fast-and-effective
command line market. It may be faddish, but there’s money in them thar
faddish hills.
Updated on Wednesday, 2024-11-10.
Posted at 23:48,
in the comp category. Comments [0]
I upgraded the Ultra 5 to OpenBSD 3.6. Some
notes for next time:
The machine doesn’t boot from the floppy, use the cd-rom image
instead.
Don’t just delete the entries in /var/db/pkg
, cleanly remove old
packages with pkg_delete -q /var/db/pkg/\*
instead. Or in other
words, RTFM.
Now I just need to get tramp
working so that I can edit these posts
in greater comfort and security.
Update: I discovered I need the latest X stuff too, for
ghostscript. I can’t remember if the installation tgz sets should be
handled specially, I just did a tar xzf xbase36.tgz -C /
and hoped
for the best.
Updated on Thursday, 2024-12-02.
Posted at 23:45,
in the comp category. Comments [0]
Believe it or not, but this
post describes my own
thoughts a couple of weeks ago.
Basically, it argues that plentiful and cheap bandwidth will make ASP
for consumers more and more attractive.
My take on this is that instead of bandwidth providers becoming pure
ASPs (i.e., only providing a thin client and access to remote
applications hosted at the provider), you could rent a full-featured
PC that would be pre-configured with the neccessary applications
(anti-virus, firewall, backup) and that would be remotely managed by
the provider.
Users that wanted to go their own way would be free to do so, but if a
majority of users used managed resources putbreaks of viruses and worm
would be easier to spot and have a harder time to propagate.
The flaw in this argument is that such a solution would be
Microsoft-based, and I doubt that there’s a cost-effective way to
remotely manage thousands of PCs and still make a profit.
Update: this /. comment elaborates further.
Updated on Sunday, 2005-01-02.
Posted at 23:43,
in the comp category. Comments [0]
Jeff writes:
How can you tell experienced programmers from beginners? New
programmers think if they work hard, they might succeed. Experienced
programmers know that if they work really hard, they might not fail.
[…]
I’d seriously question the credentials — or at least the
intellectual honesty — of any developer who denied being a part of
any software disasters.
Posted at 14:31,
in the comp category. Comments [0]
Need to combine two or more PDF files into one under Unix? Use the
following command:
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=merged.pdf \
source1.pdf source2.pdf source3.pdf etc.pdf
Obviously, you’ll need Ghostscript
for this to work.
(From macosxhints)
Posted at 10:17,
in the comp category. Comments [0]
I’ve been running with a plain coloured background in my window
manager for a while, but I wanted to run something more fun. Since I
tried it last (back in 2000 or so),
xplanet has become much more
featureful, so I decided to try it out.
However, there’s no OpenBSD port of it, so
I had to compile it myself.
After downloading and untarring, I ran the configure
script. I
missed some warnings about libraries that couldn’t be found (more on
this below) but got an exit zero from the script. Onward to make
.
Now make barfed when compiling some cpp files in the src/libprojection
directory. The error was:
ProjectionBonne.cpp: In method `ProjectionBonne::ProjectionBonne(int, int, int)':
ProjectionBonne.cpp:37: implicit declaration of function `int snprintf(...)'
Chris Davies suggested adding the line
#include <stdio.h>
to the affected CPP files (three in all) and the make went swimmingly
from then on.
Well, until I tried to run the app. That’s when I found out I didn’t
have JPEG support compiled in.
I did have the libraries and headers needed, but they were in
/usr/local
. I used the following invocation to configure
to remedy
this:
./configure CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib
The next step is to find some images of planets other than Earth. For
some reason (IP related, no doubt) they’re not included in the source
distribution.
Posted at 16:07,
in the comp category. Comments [0]
Correctly formatted date strings are needed for RSS generation, among other things RSS. Diego
shows how to do this in
Java. This
is my version in Perl
#!/usr/bin/perl -w
use strict;
use POSIX qw(strftime);
my $now = time();
# We need to munge the timezone indicator to add a colon between the hour and minute part
my $tz = strftime("%z", localtime($now));
$tz =~ s/(\d{2})(\d{2})/$1:$2/;
# ISO8601
print strftime("%Y-%m-%dT%H:%M:%S", localtime($now)) . $tz . "\n";
# RFC822 (actually RFC2822, as the year has 4 digits)
print strftime("%a, %e %b %Y %H:%M:%S %z", localtime($now)) . "\n";
The output is
2005-01-05T01:35:08+01:00
Wed, 5 Jan 2005 01:35:08 +0100
There are some small issues I haven’t found clarification for at this
late hour of writing. The first is whether the day should be
zero-padded in the RFC822 case. As it is now it’s space-padded.
The second is how to handle locale settings — RFC822 specifies that
the weekdays and months be in the US locale. I’m pretty sure that you
need extra magic in Perl for this not to work, but I’ll take a look
at that tomorrow.
Yet another reason to standardize on ISO8601, I guess.
Posted at 14:21,
in the comp category. Comments [0]
A supercharged grep. Haven’t tried it
live yet, just posted here for future reference.
Posted at 00:23,
in the comp category. Comments [0]
Should it really be like this?
Posted at 23:41,
in the comp category. Comments [0]
Despite the misgivings detailed here I bit
the bullet and upgraded from 3.4 to 3.6. I followed the instructions
in the upgrade minifaq and added the new users for the privsep
services in each step (3.4 to 3.5, 3.5 to 3.6)
I’m a bit vague on how NTP is implemented now, but the machine is
simply a terminal and having the correct time is not essential.
The installing and upgrading docs on OpenBSD.org have much more
emphasis on using packages (i.e. pre-compiled binaries) instead of
ports (basically, a make
skeleton for installing an app from source)
than before. This is interesting, as I recently ran across this
amusing page lambasting those
clueless lusers who insist that compiling everything from source is
the be all and end all if Un*x computing. I felt a bit stung by this
page, because in the past I have enjoyed cd
ing to /usr/ports
and
compiling from source. It’s been painfully slow on occasions, but it’s
felt more real.
My guess is that the OpenBSD community, in its usual level-headed,
no-nonsense way, realised that the docs were leading people astray and
simply said “use the packages” more clearly. So from now on, I will.
Next up is the Ultra5, which needs a serial cable. Someone at work
borrowed it a while back and now it’s gone, so I have to dig up another
one in meatspace. Sigh.
Posted at 14:36,
in the comp category. Comments [0]
Yesterday I realised that both the Stinkpad at home and the Ultra5 at
work were running OpenBSD 3.4, 2 point releases behind the current
release. Browsing through the upgrade
minifaq I found
that the time-honoured procedure of updating by compiling the source
tree is deprecated.
So now I have to find a floppy and a serial cable for the Ultra, and
try to find out which PC-card that I can use to upgrade the
Stinkpad. Then I have to get the install floppy, upgrade the userland,
then upgrade /etc
, and finally re-install ports.
Sigh.
I’m so tired of this. No offense to the OpenBSD team, but I can’t be
bothered anymore. But I also don’t want to go the Debian way on the
lappy and lose all my customisations (X, desktop stuff, Terminal
font…. the list goes on and on).
Maybe it’s time to get a Mac.
Posted at 16:57,
in the comp category. Comments [0]
Good roundup. I haven’t played with fonts in Un*x for a long
while. My current desktop only runs at 800x600, and I nearly only use
terminals there anyway.
Posted at 23:09,
in the comp category. Comments [0]
From the article:
“The Copyright Owners urge a re-examination of the law in the light
of what they believe to be proper public policy, expanding
exponentially the reach of the doctrines of contributory and
vicarious copyright infringement,” the court wrote. “Not only would
such a renovation conflict with binding precedent, it would be
unwise. Doubtless, taking that step would satisfy the Copyright
Owners’ immediate economic aims. However, it would also alter
general copyright law in profound ways with unknown ultimate
consequences outside the present context.”
Exactly.
However, this means that the RIAA/MPAA will continue to go after
individual file traders, instead of trying to cut down the software
behind the networks.
Posted at 23:39,
in the comp category. Comments [0]
So here I am, validating all
my pages as XHTML 1.0, when I read these links:
- Content-typing XHTML
- Sending XHTML as text/html Considered Harmful
Basically, XHTML 1.0 isn’t mature enough to use on the web. Use HTML 4.01 instead.
The problem is that I’d like my blog to be readable on mobile devices,
who expect XHTML content. And the mod_rewrite
trickery mentioned is
way overkill according to me.
Who knew it was such hard work being a good Netizen?
Posted at 23:38,
in the comp category. Comments [0]
This just hit my inbox:
OpenNTPD 3.6 has just been released. It will be available from the
mirrors listed at
http://www.openntpd.org/ shortly. This
is our first formal release.
This is really cool. NTP is the Network Time
Protocol, useful for making your computer as accurate as an atomic
clock. Essential for logging stuff across the network, detecting net
anonomalies, et cetera. But it’s also complex and hard to get
right. I’m sure the OpenNTP team have applied their usual mix of code
auditing, clear coding, and crypto integration as in
OpenBSD and
OpenSSH.
The OpenBSD project is fast becoming the OpenTLA project — freeing
the world, one protocol at a time.
Update: changed the title to reflect the correct project name: OpenNTPD.
Updated on Monday, 2005-09-05.
Posted at 22:12,
in the comp category. Comments [0]
Thanks to Rafe I have a shell
account on symbiandiaries.com from where
I host this blog.
I hacked up a quick script that tar-gzips my blog, the plugins dir,
and some other files and mails the resulting file in an attachement to
my Gmail account. After about a month, I
delete backups that are too old.
This presented no problems, as the file was usually under 700
kB. Being a belt-and-braces kind of guy, I keep a copy of the file on
the symbiandiaries.com account.
Today I received a warning mail from the system warning me that the
account was nearing it’s quota limit. I quickly discovered a number of
35 MB files in the backup directory. I had backed up the movies from
the
cruise
two weeks ago.
I fixed this via the --exclude
directive to GNU tar
, deleted the
offending files in my account, then logged into Google to check how
they were affecting my 1 GB quota there.
They weren’t affecting it at all. They weren’t there.
Obviously, Gmail blocks mails with attachments larger than a certain
amount. I can’t argue with that, it’s their system, and sending big
attachments via SMTP is evil. But it lulled me into a false sense of
security, because for nearly a week, I had no backup of this blog.
The lesson here is don’t try to use a system for something it’s not
designed to handle. I’ll continue mailing my backups to gmail, but
I’ll be watching them carefully for size from now on.
Posted at 18:41,
in the comp category. Comments [0]
Seen in a Usenet .sig:
--
For Sale: Apple iPod, 15 GB model, lightly used, 167 songs loaded.
The RIAA says it's worth about $25 million.
I'll let it go for $5 million, plus shipping.
Posted at 22:14,
in the comp category. Comments [0]
I tried out iTunes (on Win32) today, as I’m interested in adaptive
playlists (a thing I’ve been waiting for a long time) and tracking
what I listen to when. But a number of things made me go back to
Winamp.
No ogg support.
No “always-on-top” for the miniplayer.
Ctrl-M to switch sizes didn’t always work.
No obvious way to send a file to a remote host containing info on
the song currently playing.
Totally random ordering of songs for some albums. Despite having id3
tags in order and track numbers in the filenames, the order was
scrambled.
Totally confusing id3 integration — you have to choose the precise
version from a dropdown containing +6 entries. Granted, this may be
because the id3 seems totally fscked, but still…
On the plus side, clean interface, and kudos for being able to remove
all mentions of the ITMS.
I think I can gather stats on playing habits with the same Winamp
plugin I use to post “now playing” info. Adaptive playlists will have
to wait a bit.
Posted at 22:57,
in the comp category. Comments [0]
Well, despite my punditry Gmail is real.
And now, thanks to Terje, I have an account!
I opted for the staid gerikson, instead my university
Marathon nicknames of “Baskerbosse” or
“Ebola”. So, bring on the spam! I’ve got a gigabyte
to fill up…
It’s chilling to think that with Google’s grip on search, blogs (via the blogging tool
Blogger), social networks (via Orkut), and now Gmail, they have a
pretty good way of finding out everything about your online
activities. I wouldn’t recommend planning starting a company or
having an affair via Gmail. But I think it’ll be a great
spamtrap.
Posted at 22:02,
in the comp category. Comments [0]
For some reason (probably because I feel an itch to hack) I was
thinking about Plan 9 today. So it seemed an omen that /. had a call
for questions for Rob Pike, co-creator of Unix and Plan 9.
I read some of the links in the article, and this pessimistic
view left me
thinking. Pike’s point is that (academic) software research no longer
matters. We’re in a sterile wasteland of Windows, Linux, and the
Web. No new ideas are being explored.
Well, that’s fine as far as it goes, but a meme that’s brewing is the
coming dominance of mobile devices and content — quite different from
desktop or server computing.
These points from the article show some possible fields for research:
Only one GUI has ever been seriously tried, and its best ideas date
from the 1970s. (In some ways, it’s been getting worse; today the
screen is covered with confusing little pictures.) Surely there are
other possibilities. (Linux’s interface isn’t even as good as
Windows!)
Ties in nicely with this
post.
There has been much talk about component architectures but only one
true success: Unix pipes. It should be possible to build interactive
and distributed applications from piece parts.
Again relevant in the mobile space.
The future is distributed computation, but the language community
has done very little to address that possibility.
Who knows? Mobiles are getting more and more powerful. GPS, encryption
need processing.
The Web has dominated how systems present and use information: the
model is forced interaction; the user must go get it. Let’s go back
to having the data come to the user instead.
Also very relevant from a user perspective. Data must come to you,
when and where you want it, with a minimum of fuss.
Will academia pick up the thrown gauntlet? Lets hope someone does.
Posted at 23:56,
in the comp category. Comments [0]
I need some way to backup the ailing windows box upstairs, whihc is
suffering from an advanced form of WinXP palsy. So I grabbed an old
266Mhz box from the closet, installed a bigger disk, downloaded the
sarge
iso via Bittorrent and installed Debian for the first time in
2 years.
I’m using OpenBSD for the most part these days, but I couldn’t be
bothered to find diskettes and boot from them, then install via the
network. So I went the easy route and installed Linux instead.
Debian is still hard to understand. In some ways it’s more limited
than OpenBSD — you can’t say that your box will get its network
configurations from DHCP if you’re not hooked up to a network already,
and the partition program is hard to fathom. The replacement for the
infamous dselect
, aptitude
, is really just more of the same, but a
bit less counter-intuitive.
But in general, I know my way around Debian well enough to get
going. Now I have to decide whether just to copy everything in the
“Documents and Settings” subdirectories over via FTP, or to trust the
Migration wizard in Windows.
Posted at 20:35,
in the comp category. Comments [0]
Thanks to Frank for tipping me off to
Macdesktops.com. I now have a classic
nerd desktop consisting of a pair of colliding galaxies.
Posted at 14:06,
in the comp category. Comments [0]
Guess which is more fun to work with?.
Posted at 15:54,
in the comp category. Comments [0]
The desktop upstairs won’t start normally, and I’ve got a hunch that
the hard drive is too fragmented. This is propably not the case, but
Windows encourages the feeling that your system is getting crufty and
needs to be cleaned. (Unlike Unices, which just putter along, maturing
like fine wines:
[ ger@openbsd: ~ ]% uptime
9:17PM up 284 days, 13:04, 5 users, load averages: 0.21, 0.32, 0.32
[ gustaf@ultra5: ~ ]% uptime
9:17PM up 34 days, 14:45, 1 user, load averages: 0.23, 0.15, 0.10
[ gustaf@oddjob: ~ ]$ uptime
9:18pm up 42 days, 10:11, 16 users, load average: 7.84, 6.61, 5.40
(I probably shouldn’t have used a parenthesis here.))
The question is: why do I have to defragment my hard drive manually?
(and don’t mention Task Scheduler — I trust that app about as far as
I can spit a rat). Why can’t the operating system — the piece of
software I paid good money for, the prop keeping Microsoft’s profit
margins in the double digits each freaking year, the “bastion of
innovation” that each and every citizen of this planet should use
instead of “viral, Communist” free software — why can’t this fabulous
piece of tech handle this simple task itself?
For crying out loud, Linux, developed by long-haired geeks in Finland,
never neeeds to be defragmented manually. Neither does OpenBSD.
Posted at 21:25,
in the comp category. Comments [0]
I admit it, the new Toshiba is way nicer to use than my pokey old
Thinkpad. But one thing bugs me a lot. We have a wireless network, and
every once in a while, I lose connection to it. This is in the exact
same place as where I use the Thinkpad running OpenBSD, and it never
has this problem.
When Windows loses the connection, it won’t reconnect automatically
because the network isn’t secure. This is a Good Thing, of course, but
still highly irritating to lose all the ssh
connections at once. Thank god for screen
. The
question is, why does the connection go away?
Posted at 21:55,
in the comp category. Comments [0]
A concise
definition of
the BSD License.
Posted at 21:31,
in the comp category. Comments [0]
This followup
to Joel Spolsky’s piece on
Microsoft’s future APIs is worth reading for the historical
perscpective.
Computing is older than Microsoft, and even a 800-pound gorilla one
day gets old and tired.
Posted at 10:58,
in the comp category. Comments [0]
Cory Doctorow speaks at Microsoft about DRM.
DRM systems are broken in minutes, sometimes days. Rarely,
months. It’s not because the people who think them up are stupid.
It’s not because the people who break them are smart. It’s not because
there’s a flaw in the algorithms. At the end of the day, all DRM
systems share a common vulnerability: they provide their attackers
with ciphertext, the cipher and the key. At this point, the secret
isn’t a secret anymore.
Posted at 11:09,
in the comp category. Comments [0]
I uploaded my
2,001th
work unit to Seti@Home today.
That’s it. I expect I’ll hear about it if they find anything anyway.
Posted at 12:59,
in the comp category. Comments [0]
Let’s face it, Outlook Express and Internet Explorer are more or less
orphaned by Microsoft today. They went flat out to crush Netscape, and
now MS is resting on their wilted spinach leaves (laurels are too
grand for this kind of thing).
Martin says it
best, and
Jim agrees. Join the
evolution. Install Firefox for
web browsing and
Thunderbird for mail.
I’m an inch from saying “I don’t support that” when someone complains
about IE or Outlook Express.
Posted at 10:17,
in the comp category. Comments [0]
As of now, I have 1,995 work units reported at
SETI@Home. I’ve
decided to stop at 2,000 (or more likely 2,001, since I may forget to
check the status… besides, 2001 is more symbolic).
It’s been fun, but rather open-ended. No end in sight, unlike the
distributed crypto challenges out there. And in the end, it’s just
about egoboost — I’ve got more WUs completed than you, nyah nyah.
So I’m quitting while I’m ahead.
Posted at 01:01,
in the comp category. Comments [0]
Charles Miller has written a funny
post
on why the Mac is so desirable. That post, and this, makes the
implicit assumption that you are male.
The Mac as mistress metaphor is very good, but I find it mildly
offensive to use the metaphor that Windows is a prostitute. I don’t
disapprove of prostitution per se. It’s just that for this metaphor
to work, 90% of the computer-using population of the world would be
having most of their relationships with prostitutes.
I would rather say that Windows is a female co-worker. Not
unattractive, reasonably efficient (in her Win2000/XP guise), but
prone to gaffes and embarrassing behaviour that kind of makes you dread
meeting her in the hall or having lunch with her.
Linux on the desktop could well be a psychotic
girlfriend. I
wouldn’t know, I’ve never used Linux as a desktop system, and I’ve
never had a psychotic girlfriend. I do know that my laptop running
OpenBSD and blackbox is a female co-worker
that I would feel very comfortable with, even though I am
married. Perhaps a hyper-efficient personal secretary.
Windows as a server is a female relative in a old peoples’ home who
calls you in the middle of the night and rambles senilely. You’re
happy to pay other people take care of her, and secretly wish that she
would just die quietly.
Linux or *BSD as a server, on the other hand, is like a grandmother
who is a world-class cook with a physics degree. You can always drop
by her house, she is endlessly supportive and helps you with your
life, without asking much in return. You love her all the more for it.
Posted at 13:41,
in the comp category. Comments [0]
I learned Perl in my first real consulting gig at
Agero. A large business directory company in
Sweden wanted to synchronise their print catalogue with the
Web. Additionally, they wanted an interface for customers to create
their own ads on the Web. This was the sexy part of the project. I
wasn’t involved there.
The synchronisation didn’t work yet, so every Monday my colleague had
to take a 650 MB XML-file and feed it to a Java program that inserted
the contents into a big old Oracle database running on a Sun
Starfire. She was much more billable than I was, so as I incautiously
admitted to Un*x knowledge I was asked if I could take over this job.
The XML was full of errors, unescaped ampersands, invalid
characters… The Java program choked if it couldn’t parse the file,
so you had to manually search for the error and fix it, then try
again. A successful run took about 9 hours.
I started by chopping up the file into the component entries and
checking for bad stuff. This is trivial, just set $/
to whatever end
element suits your fancy, but it took some reading of the Perl
Cookbook before I had it nailed.
Then I started looking at how to automate this stuff. I eventually
wrote a sophisticated run-control program that could be started with
at
, and that sent email when something went wrong.
Just when I had cut down the effective load time from three days to
about 11 hours, the whole project got axed. I later learned that this
was the third attempt to integrate the print version with an online
database.
The contractor more or less blamed the whole debacle on us, even
though it could be fairly laid at bad project management and
unrealistic promises from the client to its customers. Oh well.
In the middle of my next project, I was cd
ing up from a directory
over a slow ssh
link and accidentally rm
d all my perl code. When I
called the admins of the machine they helpfully informed me that as
the machine wasn’t in production it didn’t have backups.
So now I know more Perl than I really want to. But I’m still learning
more every day.
Posted at 14:55,
in the comp category. Comments [0]
Anyone who reads Erik’s linkblog
will be astounded about two things:
damn, there’s a lot of Java projects, and
how the hell does Erik
do it?
The list of projects is impressive, and for me as a novice Java
maintainer, a bit daunting. How can one person keep up with all this? And everyone seems to be on first-name basis, not just with the
developers, but with the projects themselves. What the heck is
Maven, anyway?
But it’s not just one happy family. There’s a dark side to the Java
development scene, and it rises to the surface
here.
This person probably has a name, but I prefer to consider him or her
as a cry from the collective subconscious of those Java programmer
who’re having trouble just staying on top of Java, never mind all the
whimsically named frameworks and tools.
Both Erik and Russ are on the Bileblog’s
shitlist. But
so is everyone else.
Posted at 15:54,
in the comp category. Comments [0]
Googling around for an emacs implementation of the Blogger API, I
stumbled over
color-mode.el
by Don Knuth, and
pmwiki.el by
my old university friend Christian
Ridderström.
Knuth violates the emacs interface guidelines, but I guess he can get
away with it. On the other hand, a celebrity deathmatch between RMS
and Knuth would be something I would see on Pay per view…
The world is a small place, at least if you like emacs.
Posted at 21:12,
in the comp category. Comments [0]
Part of my responsibilities is taking care of new computer installs at
work. We have recently purchased several top-notch Dell Inspiron
8100s. These have 15” widescreen displays.
To prevent ridiculously small font sizes, Dell ships with the DPI
settings set to 120. This means that fonts look bigger, but also that
Internet Explorer also scales the images on websites. These appear
blurry and jagged.
Not surprisingly, this is a top issue at Dell’s support
forums. The
“solution” is a registry hack: change the value of the key
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\UseHR
from
1 to 0.
Additionally, when I tried to read an article on MSDN about this, IE
froze when trying to load the page.
I will recommend Mozilla for our users in the future.
Posted at 11:27,
in the comp category. Comments [0]
After a tip from
Rui, I’ve
started to sort my work mail (mail addressed to me personally, and the
support box) into quarterly archives.
Long experience has told me never to throw away mail, and the quarter
seems to be a good time period in which to ask yourself “when did I
get that mail?”
Posted at 10:57,
in the comp category. Comments [0]
The Dilbert newsletter has gone HTML. I guess that’s so they can sell
more adverts. I wouldn’t know, because I read my mail in
gnus. So this just means I have to resize my
ssh window so that the text doesn’t wrap.
But the really bad thing about it is it isn’t funny.
Posted at 17:08,
in the comp category. Comments [0]
Kasei: The Importance of Fudgability is an interesting “common sense” view on how to design an application.
Posted at 14:27,
in the comp category. Comments [0]
Learn about the fifteen spaces defined in Unicode at this page.
Posted at 19:25,
in the comp category. Comments [0]
In the interest of my co-worker’s sanity, I have resolved to
concentrate my hatred and loathing of Microsoft products to a
five-minute period each morning.
This way, they will not be upset by my outbursts of anger at the
crappiness of MS products, business practices, advertising, or general
view of computing.
The actual litany is not finished, but I find the following to be restful:
We hates them, hates them forever!!!
Posted at 10:54,
in the comp category. Comments [0]
So I need emacs 21.3 to be able to use ange-ftp to update
this blog. I just can’t go around ftp:ing by hand, losing all sync,
missing one measly comma and having to do it again.
I download the src and run configure — it can’t figure out which arch
I’m on. No problem, I get the package from the openbsd server. Hmm,
can’t run, missing some libc .so file. Huh. Well, the machine should
be running 3.4 anyway.
I get the src and ports packages, untar them, run the whole CVS update
thing, and start to read the upgrade
minifaq. Lot’sa stuff to do, but I follow the steps. Config the
kernel and try to compile. Won’t even let me run make depend. Seems to
be expecting a file swapgeneric.c somewhere — but that file should be
somewhere else entirely.
So now I’m waiting for reply on the sparc64 mailing list. We’ll see
what happens.
Update: turns out to have been some kind of problems with my CVS
update. Works now after a fresh get.
Posted at 12:34,
in the comp category. Comments [0]