Site uses cookies to provide basic functionality.
Javascript rendering is set to off by default when visiting the site via .onion and .i2p domains. It can be enabled back again in user's settings section. Javascript rendering set to off means, that you can disable javascript in your browser now and the site will remain functional.
There is also IRC server now available via native IRC clients or non javascript web based one.
Fonts can be adjusted in user's settings section as well.
Check FAQ for more.

OK


My Triumph Legend TT , which has been a trusty companion on various adventures , had an engine failure last summer. As a result, I’ve been without a working motorcycle for almost a year. This week finally things changed, and I bought a brand new Indian-built Royal Enfield Bullet . I’ve been drooling after this simple and beautiful bike for years, but have been hesitant. Finally last summer’s Death Monkey rally with the 50cc mopeds....

I have been watching videos from the Technology, Education and Design conference (TED) all afternoon. One particularly fascinating talk was Barry Schwartz talking about The Paradox of Choice. I find an almost Buddhist-like understanding of the problem of humanity in the modern world in his talk. But it was the closing words that fascinated me the most: “If you shatter the fishbowl, so that everything is possible, you don’t have freedom, you..



For one of the customers I currently work for, when we first designed the platform in Q1/2000, there was the “account” table, there we stored our users. There were always various pressures to move “inactive” users to a separate “archive” table. I was always against this decision. In Q4/2005, during a period of my absence, it was decided to implement this decision. A bunch of users were to be deleted, but “not quite”, in case we needed the..

From our Oracle test instance at uboot.com: 1360965 rows created. Elapsed: 00:01:17.90 That’s 1¼ minutes to insert (and index) over 1¼ million rows. And this is a very old test instance. I think the hardware was last updated 2-3 years ago. That’s pretty quick!

I have been using a trusty wireless mouse for about 3 months now. (I didn’t want a wireless mouse, but here in Macau, I didn’t know what was going on, so I walked into an expensive hardware store—the only hardware store I knew—and they only had wireless mice. Well I thought, it may be twice the price but even twice the price isn’t expensive, and I need a mouse…) It suddenly stopped working while I was using it.

I’ve often had discussions with people about whether the “enum” type in MySQL is a good thing or not. Basically there are two ways to use your database: As an unstructured bunch of “stuff” to store whatever the software needs to persist. Such databases use lots of “blob” data with serialized objects (it’s easy to program), tables with multiple functions (“object” table with “type” column), few constraints, and so on. As a representation o..

While moving a folder, with many subdirectories, to the Recycle Bin under Windows XP: I wondered if each file that is stored in the recycle bin has a “original path” attribute, with a max length 256 chars, and that stores the original path like “Dir1Dir2Dir3file.txt”. Maybe if files are nested too deeply that attribute cannot hold the value? It really seems that Windows does indeed have a path length limit. While checking some file..

I do really appreciate things that work elegantly. My girlfriend insisted we bought the following kettle, on account of its colour. It was quite an expensive kettle but it did look so good, I thought well, OK. But with its expense comes more than just its beauty. After the water has boiled, to open the spout, to pour the water, there is an extra plastic bit (looking like an ear) which stays cold. Meaning you don’t burn your hands o....





I don’t know how they do it, but here in Macau , one can buy e.g. a 1.5L plastic bottle of a non-fizzy drink such as still water, and instead of having a small space of air at the top, when one opens it The line of the water is exactly at the top of the bottle, i.e. one couldn’t fill it any more Before one gets a chance to observe #1, water has spilt out As far as I can see, the above is impossible (as well as unusual, from the perspec..

I don’t know on what technology the gmail rich text editor is based, nor the uboot rich text editor for composing blog posts (although the latter I should know!) but despite having different appearances (fonts etc) and existing in different websites, one can copy/paste formatted data (e.g. lists, bold) from one to the other (at least using Firefox ). The text takes on the appearance of the editor one copies it into. I don’t know how that..


CIO JP Rangaswami at investment bank Dresder Kleinwort Wasserstein talks about why he considers open source a corporate IT asset. In this talk, Rangaswami describes how DrKW wanted to create an internal incubator environment in order to combat skill attrition in the late 90s. In the course of doing this, they acquired OpenAdaptor and discovered almost accidentally benefits of the open source development model. The talk is a bit fleeting and..



This post is currently only a draft. Input on how to improve the structure is very welcome “A journey of a thousand miles begins with a single step.” - Lao-Tzu When doing architecture, we always have to content with the present state of the system. It is extremely tempting to ignore this picture of the ugly system and create your vision of how things should be in the future. It is also very easy to get people to agree on such a vision.

I need to change a bunch of functions in a bunch of classes to take a “user” object as opposed to a “user_id” number. I am using a scripting language. How am i going to do this? I am going to do it the best I can, then compile, but the compiler is not going to find any problem as they are the same “type” i.e. they are both values.

I am currently working on a small project with one or two other people. We don’t sit in the same office (or, right now, on the same continent or in the same timezone). Every time something is committed into our version control system (Subversion), everyone on the team gets an email. This lists: The files which have been changed (or added or deleted) The commit log message, i.e. written by the programmer, explaining what the commit repre..

Sverre Huseby examines some security issues with Spring-MVC. As it turns out, the Spring JSP form-taglib provide no HTML-escaping by default, making it very easy to get Cross-Site Scripting vulnerabilities included in the code. The article comes complete with a standalone application that illustrates the problem. Comments: [Anders Furseth] - Mar 7, 2007 As interesting as this is, Sverre has yet to report the issues to the Spring-MVC team, m..

Update: Added retrospective result example I learned by favorite team building exercise on the ROOTS conference in Bergen three years ago. Alistair Cockburn conducted a great workshop that really drove home the lessons of iterative development at the same time as it showed a very useful technique for conducting retrospectives. I have later conducted the same exercise as a workshop in different situations. Maybe the most fun occasion was Osl..

The following job advert appears today through Wednesday in the Macao Daily News. This is my first ever advertisement in a newspaper reading back to front!

Inspired by Per Mellqvist (and myself, to be fair), I wanted to explore the possibility of using a generic DAO or Repository interface for REST. Based on this simple idea, I was able to create a very cute and testable prototype of a full Web Service stack for REST based Web Services. The most interesting aspect was creating a universal test case for Repositories. This article shows how little code is required to implement and test a REST ba..



Some time back, I watched a video David Heinemeier Hansson give a talk on ActiveResource on RailsConf. The thing that struck me is how much Rails’ ideas are connected to those of Domain-Driven Design. Watching DHH is like seeing a version of Eric Evans on speed. The video is long, but very entertaining. And it is well worth watching even if you couldn’t care less about Rails. DHH explains in real concrete terms how to think in terms of Doma..

MIME::Lite predates Perl 5.8 which supports Unicode and UTF-8. But it’s easy to get MIME::Lite to work with Unicode bodies and subjects. To attach a plain text part to a message, with a string which contains unicode characters, use: $msg->attach( Type => 'text/plain; charset=UTF-8', Data => encode("utf8", $utf8string), ); To set the subject of a mail from a string containing unicode characters, use: use MIME::Base64; my $msg = MIME::..

A friend just asked me: I have a DB, informix actually but I think its unimportant. A column is a char(100). I have a string of text in a row in that col. the string is 4 characters long. When I select the char(100) column I get a space padded string of 100 characters with my string at the front. Have you ever seen this? Yep that’s normal. A char(100) column is exactly that: 100 characters, no more, no less. So if you put too few ch..



Based on the US Department of Defense standard DOD-STD-2167A, we have a well-defined process often referred to as Waterfall. If you are not familiar with the process, here is a short introduction. A project in the waterfall process goes through four phases before the project is completed. The first phase is the naïvite phase. This phase should always last 12, 18 or 24 months. 18 months is recommended. There is a detailed plan showing how, ..

In a recent thread on the Pragmatic Programmer mailing list, Dave Stagner said: [….] I think most software hovers near the border between “barely works” and “almost works”. Comments: [dave] - Aug 1, 2007 So much for my 15 minutes of fame. :}

I’m taking 6.170 Lab in Software Engineering this semester. The course sucks in various ways, but one of the most egregious, in my opinion, is that they force you to use CVS for your version control. Problem sets are distributed by the TAs importing them into your repository, and are then checked out later to be graded. Well, CVS sucks, and there’s no way I’m going to use it when there are sane, modern alternatives like SVN and SVK

I’m taking 6.170 Lab in Software Engineering this semester. The course sucks in various ways, but one of the most egregious, in my opinion, is that they force you to use CVS for your version control. Problem sets are distributed by the TAs importing them into your repository, and are then checked out later to be graded. Well, CVS sucks, and there’s no way I’m going to use it when there are sane, modern alternatives like SVN and SVK

Lately, I have had the rather dubious pleasure of reviewing some of our existing systems and find a plan for improving the maintainability of these systems. I have not done much work like this before, and I came in unprepared for the experience. Most systems that have been maintained for a number of years have a maddening complexity, especially if they include a range of technological elements. Cramming the systems into my head completely e..





7 visitors online