Top.Mail.Ru
? ?

perial, posts by tag: programming - LiveJournal

or how I learned to stop worrying and love the Computer

Entries by tag: programming

Debugging real life
Cool
perial
As a programmer, I have a highly developed talent for figuring out ways code can go wrong. Corner case arguments? Weird combinations? Illegal uses? Gotta find them all, and make sure they don't break the system. Gotta think of every way things can go south.

It's not a great help in trying to be optimistic about my life. Even when things look great, I perforce think of how it could all crash and burn.

How do I turn off the debugger?

Hitting the high notes
Computers
perial
I've been reading Joel on Software blog recently, finding it extremely interesting both at a technical level and for thinking about careers and companies in general. In particular, I want to share this entry, called Hitting the High Notes which very nicely nails some of what makes programming different from engineering and more similar to design. The blog in general is very much worth reading for anyone in IT, and parts are also quite interesting for everybody else. Also, he has a great writing style.

One perk of being a sysadmin
Computers
perial
Not long till System administrator appreciation day, now.

It's been a while since I've been a sysadmin, and I only had that thankless job for about a year, but at the Friday bar I noticed that I have more interesting stories from that time than from all the time I've been a programmer. There's just very little of story value about programming. "The server crashed, and it was just because I'd forgotten a semicolon" is not as interesting as "I cleaned up /scratch, and a Ph.D. student lost his only copy of his thesis".

I rock like a rocking thing that rocks
Computers
perial
At least when it comes to making web interfaces. I'm part of doing a working prototype of a system for surveying installations. In two days, I took it from a fairly standard data entry system that requires a lot of clicking around to a system with substantial workflow support that makes use of available data whenever possible. It's slick and getting slicker. I'm really getting fond of the Dojo Templated system, which makes it really easy to make customizable and reusable HTML widgets. I'll be writing more about it over on my programming blog soon. I feel very competent at work right now, and I'm very happy to have moved to a place where I actually learn something new at quite a clip.

I have also started to learn Ruby on Rails in my spare time, in order to support quaryn_dk's thesis work. And I'm making a 3-D printer as well as putting up a photo exhibit at one of the nicer restaurants in town. My plate is full.

It's all meaningless!
Cool
perial
According to this, good programmers are strongly correlated with people who can accept meaninglessness:


To write a computer program you have to come to terms with this, to accept that whatever you might want the program to mean, the machine will blindly follow its meaningless rules and come to some meaningless conclusion.


They found a near-perfect correlation between those who use a consistent model to solve problems -- even when it doesn't make sense -- and those who become good programmers. So maybe being consistently late is a good thing?

Somehow, this reminds me of any number of gamers who will insist that whatever the rules says gives them the bigger bonus should be allowed. No wonder the local RPG group started out at the CS department.

It finally happened
Cool
perial
I was editing some text in Emacs and its quirks and weirdnesses just became too much for me. I saved out and switched to GEdit, a barebones editor that just the standard keybindings that I'm getting used to from IntelliJ and other places. My 15-year-long affair with Emacs is over. I will only go back for things where I really need Emacs' combined macro & programming capabilities, and if I find a good editor that can do similar things, I may never go back. It's been fun, Emacs, but you haven't grown with the rest of the world.

I hear they elected some black guy in a country several thousand kilometers away. Good for them.

Job update
Cool
perial
My three months trial period is nearly up at the new job (not naming it this time, as the prez has a running search on the name and quickly picked up on my last post:), and I still like it a lot. It can be a bit hectic at times, especially when our sales people promise things that just don't fit well with our design, and require it be ready in a week. But I'm learning a lot of Javascript, Oracle SQL, and various frameworks. I'm finding I seem to be a faster coder than other people there, at least I've been the one to finish my tasks first (and not because they're small, I got handed the single largest enhancement in this release pretty much alone). And despite what the old-timers say, the database is not a horrid mess -- everything has well-defined keys and foreign keys following an understandable naming pattern. That alone makes it a lot easier to understand, and will help me a lot when I for the next release get to try my hand at JPA -- again, singlehandedly.

Javascript madness
Cool
perial
Just found out a freaky thing about Javascript. Not only does each function have an argument.object that includes a callee field containing the function itself (allowing anonymous recursive functions), you can rewrite it. The code behind the cut defines a function that always makes a recursive call at the end, except to escape it rewrites its own identity. Tee-hee:)
Recursive madnessCollapse )

Grrr
Cool
perial
The thing I dislike the most about Gnome is how little information for developers there seems to be. Trying to find something about how the thumbnailer is supposed to be incorporated into a project, I just find patches and blog entries, not actual documentation. Given that many other projects have no such problem, and Gnome apparently has no problem writing all manner of other stuff. This is not the first time either. This really delays adoption of the good stuff that there truly is in Gnome.

Creating a KIPI plugin
Photography
perial
So I'm going to create a plugin for my photo organizing program, KPhotoAlbum. This pugin will allow me to experiment with various ways of measuring relative sharpness of an image, in order to automatically find the sharpest of a series of images of the same subject (similar to what my old Coolpix 955 did, called "Best Shot Selector"). It's a way to fake image stabilization -- any time you take a series of handheld pictures right after each other, some will be more shaken than others, and some might even be acceptably still. Great for when you can't use a tripod for one reason or the other. Since this is the first time I make a KIPI plugin, I'll jot down notes on my wiki