logo
Header graphic 3 of 9

Categories

Archives

Other stuff

Other sites

I wish this site were powered by Django

June 23rd, 2007

Raymond Chen on software compatibility

Filed under: Technology — jm @ 14:20

The sample chapter of his book called “The Old New Thing” (named after his weblog) makes for great reading on a lazy saturday afternoon! :-)

June 19th, 2007

Teh funnies

Filed under: General, Technology — jm @ 18:11

For a long time now, I read the excellent thedailywtf.com WorseThanFailure and most of the entries are funny, some contain interesting lessons and some are horrifying. But this one’s really great, so I want to reproduce it here:

What, Me Layer?

In these days of Web 2.0, the line between outdated (and therefore obsolete) and retro (and therefore cool again) can get pretty blurred. Desktop Applications: outdated (unless they’re HTML-based or made by Google). Client/Server: retro (no green-screens please!). Tiered Design: retro (but only if at least two tiers are AJAX/JavaScript-based).

See what I mean? It’s hard to keep up. Greg Ward’s predecessors must have gotten pretty confused along the way as well. Following is a single line from their Web 2.0-based medical application.

    public class Patient extends JavascriptStringBuilder

And yes, “Patient” means exactly what you think it does. As does “Javascript.”

Original link: What, Me Layer?

June 14th, 2007

Some interesting stuff

Filed under: Education, General, Politics — jm @ 20:29

Time sure flies. My last post seems like yesterday, but somehow I missed a month inbetween :-/. However, interesting stuff is happening everywhere:

Link time

  • The BBC reports: FBI tries to fight zombie hordes. It finally happened, the Umbrella corporation messed up big time! (I should have known better, but I really thought of the walking dead, in a shopping mall preferably, first).

  • Safari for Windows, now I don’t need to buy a MacBook to test our websites. Somehow that hurts a little bit inside :-(

  • I don’t know about you, but somehow this site is disturbing: OMG!!1!

Maps

A couple of interesting maps came my way recently

Teh funnies

April 27th, 2007

Link time.

Filed under: General — jm @ 18:08

Teh funnies:

Interesting:

Did you ever wonder why Java apps aren’t popular on OSX? They just don’t fit in. They are horrendous to look at, unusable, and slow. The technical term for that is “shit software”, and it’s starting become clear to me that Mac users don’t tolerate shit.
Update - they do however pay for software such as “un-installers”, and ftp clients :-)

March 26th, 2007

“Schöne Grüße an Herrn Beckstein”

Filed under: Cutting the crap, Deutschland, Politics — jm @ 15:26

“Greetings to Mr. Beckstein”

Mr. Beckstein is the secretary of the interior for Bavaria. In my opinion one of the most dysfunctional politicians ever elected, he’s constantly trying to erode every constitutional right in Germany to further his own agenda and his far-right conservative viewpoint. He’s not really a topic for this post, just someone I really disagree with and who constantly spouts ill-informed ideas on how Germany has to protect itself from terrorists to computer-gamers.

Now, Bruce Schneier mentions an article by The Guardian that the British “Home office” released a statement saying that 10,000 passports have been issued in fake names in the last year.

10,000!

…and that’s what they admit to. The real number is probably higher. Just to make this clear: these aren’t fake passports, these passports are real passports, with RFID-chip, biometric security, holograms and every other gimmick these expensive booklets have, they are just issued in a fake name. So much for increasing our security against terrorism with technology.

I’ve said it before: “biometric security” in passports is nothing but a idiotic, boneheaded and incredibly expensive subsidy for the “Bundesdruckerei”. Simply because counterfeit passports are at most a small threat to our security. The british government itself gives out enough fake passports each year for an army of terrorists. How many have been issued in Germany?

This kind of crap happens when you confuse identity with intention, like every one of these self-anointed “terrorism-fighter-politicians” does (here’s where Mr. Beckstein comes into the picture). They should have invested all this money in the fire departments and other emergency services. That would have helped not only against terrorism, but against all kinds of threats, it’s just not something these people care about anymore.

The christian far-right’s latest perversion in the US

Filed under: Cutting the crap — jm @ 13:31

Purity balls!

Little girls as young as nine promise their fathers that they’ll stay virgins and get jewelry for it! Awwww… what a cute idea. That said, I fear that these poor fathers are in for one heck of a disappointing experience. I really hope they still tell their girls about responsible protection and I also find there’s something to be said about the psychological trauma that makes these people think of this crap.

Back in the middle-ages and still in some parts of the world, a girl’s father owns her virginity and can sell it as he sees fit, what can you say… history repeats itself.

via Jeremy Zawodny’s linkblog

March 25th, 2007

Django, Java and framework functionality

Filed under: Django, Java, Python, Technology — jm @ 08:06

Update: This post addresses the differences between Django and Tapestry 4.1 and it’s a bit outdated. I wrote another, higher-level, post on that topic that you might want to read.

It seems that every web framework has the desperate need for displaying tabular data, but only few solve it as well as Tapestry does with contrib:Table. Even if you’re stuck with plain JSP there’s the excellent Displaytag library. Django has no such thing at the moment.

Not only that, the more I work with Django the more it reminds me of early Servlet-based development environments. urls.py resembles <url-pattern>s, Middleware can be compared to javax.servlet.Filters. Now, of course, Django is much more fun to develop with, because of its Admin-application, the newforms library, it’s pythonic and it supports rapid-turnaround development. So there’s no XML-juggling involved and you don’t repeat yourself and generally the design revolves around easy to guess interfaces. But really, I’m missing some of the features that are available in a Java software stack.

Currently, if I’m working with Java that means I have:

Feature Library
Component-oriented development Tapestry 4.1
Dependency Injection and module discovery Apache Hivemind and of course Spring
Full Ajax support Tapestry 4.1
Declarative, fine-grained security Acegi, combined with Tapestry-Acegi (modified for form-based authentication)
Database access JPA / Hibernate
RSS/Atom support Rome
Full PDF support iText
Real full-text search Lucene

Of all these, Python has only a few equivalents. Rome, for example, is modeled after Mark Pilgrim’s excellent Universal feed parser and Django’s ORM solution works for most cases (I happen to think that EJB3 did a few things right), but there’s no equivalent to iText in terms of functionality and feature support and Acegi/Spring-security is simply the most-advanced authentication/authorization-library there is.

So if Sun would finally stop diluting the standard library and instead get their act together on fast and painless class-reloading, it would be a blast to work with (feature-wise, not language-wise, which might be fixable by using JVM-based scripting languages like Groovy or JRuby). But as long as I have to wait 30 seconds per round-trip for Tomcat to restart, I’d rather shoot myself than attempt to develop a CRUD web-application with Java again. If only someone wrote something like Django’s Admin application for Tapestry and JPA…

For now, it might at least be possible to integrate some of the libraries mentioned above with Python, by using gcj along the lines of PyLucene.

So I guess if I find time, which I don’t have, it’s pretty clear what has to be done. Someone needs to develop an Admin-application for Tapestry based on contrib:Table, BeanForm, JPA and annotations and then someone needs to develop a contrib:Table-lookalike and a fine-grained authentication and authorization middleware for Django based on decorators for views, but with the possibility of an external configuration file (dare I say it: possibly XML-based).

March 05th, 2007

Paranoia

Filed under: Cutting the crap, Politics — jm @ 05:05

Paranoia

Unfortunately, the author’s gallery web application seems to be down. Found via Bruce Schneier.

February 18th, 2007

DRM on crack

Filed under: Cutting the crap — jm @ 14:00

Black is white, up is down. This Macrovision executive is high as a kite. Translation From PR-Speak to English of Selected Portions of Macrovision CEO Fred Amoroso’s Response to Steve Jobs’s ‘Thoughts on Music’. Funny!

February 06th, 2007

Restoring/accessing a disk that was part of an accidentally deleted nVidia nForce RAID-1 array

Filed under: Technology — jm @ 14:34

This entry should help people that are just as stupid as I am sometimes :-)

I have a MSI K8N Neo4 Platinum motherboard, based on nVidia’s excellent nForce4 chipset and I use the integrated SATA RAID controller to run a 2 disk RAID-1 array. Together with weekly or monthly backups on an external harddrive and internet-connected SVN servers, this makes for fairly secure storage, at least I didn’t loose data even though I suffered 3 harddrive-failures over the last 2 years.

Two weeks ago, however, one of the drives in the RAID-1 array started making a rather disturbing clicking noise and every so often the whole system froze. I disconnected the drive and immediately ordered two new 320GB drives to replace the current 2×160GB setup. I opted for reinstalling Windows XP, as I figured that the system needed that anyway and thus for the time being, I ran a degraded RAID array. As all data had been mirrored on both drives, I could still boot and continue to work normally. When the new drives arrived in the mail a few days later, I hooked them up on the SATA controller and then I did something fairly stupid:

  1. I rebooted the machine

  2. pressed F10 to enter the RAID BIOS

  3. created a new RAID-1 array using the two new 320GB drives

  4. and then I deleted the degraded 160GB array :-/.

As I later found out: if you do the same thing using nVidia’s MediaShield drive management application, you get a big, fat warning that you won’t be able to access that drive anymore, but the RAID BIOS just asks you to confirm your decision. So after installing Windows XP x64 on the new drives, I wasn’t able to access the old drive anymore and if I say “wasn’t able to access” I don’t mean that I couldn’t read its data, the drive wasn’t there at all. Windows didn’t even list it in its Storage Management MMC Snap-In. Only MediaShield recognized it, offering to create a new RAID array if I connect another harddrive, as a RAID array needs to consist of at least 2 drives.

To make a long story short, I googled a lot and found out that when you delete a nForce Raid-array, the BIOS overwrites the drive’s MBR and part of the first 128 sectors on the disk. Everything else remains intact. So all the NTFS data on the disk was still there, it just wasn’t accessible. There were a few other guys having approximately the same problem on nVidia’s forum, but they didn’t get much help.

So here’s how to fix it (at least it worked for me)

  1. Go to cgsecurity.org and download a Linux bootdisk containing TestDisk, an excellent open-source data rescue suite

    I used the excellent System Rescue CD as it only uses about 100MB and therefor is significantly smaller than Knoppix, for example.

  2. Burn the ISO image to a CD-R.

  3. Boot Linux from the CD and start testdisk.

  4. Find the missing disk (use its size and its controller’s index as hints).

  5. Use the “Write MBR”-option to write a new MBR on the disk.

  6. Scan the disk for partitions, it should find one or more NTFS partitions.

  7. Rewrite the partition table.

    NTFS keeps multiple copies of the master partition table around and this option makes TestDisk copy the backup NTFS partition table to the main partition table.

  8. Reboot

  9. It might be necessary (I didn’t test that) to disable SATA RAID for the SATA port that the old disk is connected to in the BIOS, but generally the disk should be accessible again.

I hope these steps work for you too. Good luck.

As to why nVidia’s otherwise well-working RAID BIOS doesn’t make mirrored drives accessible on their own by default if you remove a RAID-1 array from the configuration… I don’t know. Seems like a fairly obvious oversight on part of their engineers to me…

« Previous PageNext Page »