Archives for the Month of August, 2005

A quick note to texas-holdem

I know you are not a bot, if you continue to comment spam me, I’ll put up a page of links of texas-holdem to your competitor’s sites. (Gambler’s Anonymous comes to mind)
Update 1:44 am
[Note to readers: These all go to Gamblers Anonymous around the world. Please help out - you'll be deincentivizing gambling and comment [...]

Performance Tricks in IronPython

Curious how IronPython managed to beat CPython’s performance? I sure was.

Database Access and Strong Typing

Paul Vicks, Technical Lead of Visual Basic.Net at Microsoft writes on the shortcomings of strongly typed language:
One of the places where this is most evident, I think, is in the data access space. As anyone who’s used a data-intensive application from Excel to Access to FoxPro to SQL Server can tell you, data is extremely [...]

Card-It … neat idea

Card It perforates a piece of paper which two diagonal slots, at the same time, rubberstamping a line indicating where business card should be inserted.

Tweaking Zope Event Log

Sometimes, you encounter a strange bug on a running server and you wish to change the log level.

C:\Zope275>bin\python lib/python/ZServer/…
medusa/monitor_client_win32.py localhost 7099
>>> import logging
>>> e = logging.getLogger(’event’)
>>> print e.level
20
>>> print [h.level for h in e.handlers] # what are the handlers logging at?
[5, 25]
>>> # handler 0 effectively logs at level 20, because e.getEffectiveLevel() [...]

Hardware-based Virtualization

DevX has an introductory article on Intel’s new hardware-based virtualization. Virtualization enable data centers to consolidate their hardware by running say, four servers on a server with 4-CPU.
Most operating systems need to operate the CPU at Ring 0. How does software-based virtualization like VMWare and VirtualPC get around this problem? A special driver [...]

Skateblock

A clever way of stopping skateboarders from damaging pavements, handrails and public places. Noticed this from a GoogleAd next to a guy who blogged about skateboarding. Ironic.
Some photos of their product in action.

The True Meaning of Bespoke

A tailor on the Saville Row explains what is “bespoke”:
A lot of people use the terms “bespoke” and “made-to-measure” interchangeably. They are mistaken.
‘Bespoke’ is actually a term which dates from the 17th century, when tailors held the full lengths of cloth in their premises.
When a customer chose a length of material, it was said [...]

In Depth look at languages for the JVM

Steve Yegge, an engineer at Google, formerly of Amazon, implemented Sokoban (a 2D maze game) in 9 different languages running on the JVM (including jython, and Java 5).
In the review, he blasts Java for verbosity:
Stuff like this just kills me:

public SortedMap<ArrayList<MBeanServerInvocationHandler>> getFoo() {
SortedMap<ArrayList<MBeanServerInvocationHandler>> foo =
[...]

Effectiveness of Vulnerability Disclosure

The effectiveness of vulnerability disclosure must come under serious question with the efficiency of malware writers in releasing the Zotob worm just days after Microsoft provided a patch. In Australia, the Holden (General Motors) plant lost AUD$6m worth of production. It seems that these developers are using the patches to provide clues [...]

VB in Australia

Brad Abrams just reminded me that over here in Australia, VB is better known as a beer than a programming language. There’s a link to the MP3 of the song on VB ads here.

Type safety and Generics

I had a relevation what type-safety is all about when Tim Bray posted the following code snippet:
public interface Page<K extends Comparable<K>>
public class LocalPage<K extends Comparable<K>> implements Page<K>
Pair<K>[] p = (Pair<K>[]) new Pair[size];
It makes the language crash-proof by making it impossible to start. All this complication just to avoid the remote possibility a programmer might [...]

Translating Ruby’s Rake to Python

Martin Fowler wrote an introduction to the Rake (Ruby-Make), attesting to the power of Ruby as a tool for constructing domain specific languages.
Here’s an example of a Rake definition:
task :test => [:compile, :dataLoad] do
# run the tests
end

The above expresses test as a dependency on compile, and dataLoad.
In Python, it’ll read like this:
task( {’test’: [...]

OpenOffice Spreadsheet - Nasty Surprise Printing

I have had lousy experience working with OpenOffice spreadsheet. Selecting print does not automatically default to printing the current sheet you are working on. Several times I had walked to the printer to find out that I had printed out the wrong sheet.
It also doesn’t have the capability to cut and insert rows. Excel [...]