Friday, 26 June 2009
Jim Donovan points out the top to bottom $117m IT reengineering of the NZ Immigration department equates to $234k per person. With a budget and a timeline like that, it will only take another stroke of legislation to render it all obsolete.
If there is any IT function that needs to be agile rather than waterfall, it is compliance-oriented IT. I have worked on government projects that were started in anticipation of legislative changes, but nobody knows exactly what, or when it will be passed, but the department is expected to carry them out immediately.
Under this scenario, I.T. should only be a matter of record keeping, leaving complex rules to be driven by users. Knowing well that these rules will likely change again in three years time, when the next election comes around.
Tags: agile, government
Posted in Thinking IT | No Comments »
Wednesday, 24 June 2009
Like any other information junkie, my browser is full of open tabs of material that I would have liked to have read, but simply lost interest or took too long to read. It occurred to me that I would normally read books at a faster pace, but somehow the screen wasn’t conducive for speed reading. [...]
Posted in General | No Comments »
Wednesday, 17 June 2009
Dale Underwood, of Echquote writes compellingly of how the rise internet has dis-intermediated the sales department:
By 2005 it got to the point that there was almost no reason to directly contact any sales person to find product information. Just Google it.
Usually, lead is captured at the website in exchange for a free report, or whitepaper. [...]
Posted in Marketing | No Comments »
Tuesday, 2 June 2009
One of the little things I found enjoyable while trying out Clojure was discovering the merge-with command. After counting the each of the subbranch and collecting the results in dictionaries, the dictionaries were merged together.
clojure.core/merge-with
([f & maps])
Returns a map that consists of the rest of the maps conj-ed onto
the first. [...]
Tags: clojure
Posted in Java, lisp | No Comments »
Tuesday, 2 June 2009
I had printed out the list of functions and macros in the Clojure API page, and it filled out two A4 pages. Where to start though? I walked the entire clojure and clojure contrib directory and counted the number of function calls. Here are the top stats.
sym count len
clojure.core/list 3872 17
quote 2749 5
defn 1757 4
clojure.core/seq 1481 16
clojure.core/concat 1480 19
= 1074 1
let 1042 3
is 885 2
. 836 1
if 826 2
defmethod 431 9
def 407 3
complex 377 7
defn- 376 5
fn 356 2
first 346 5
defmacro 298 8
clojure.core/apply 264 18
deftest 257 7
str 252 3
when 244 4
imaginary 238 9
recur 237 5
apply 229 5
instance? 220 9
nil 217 3
and 214 3
next 208 4
cl-format 206 9
fn* 197 3
ns 194 2
map 193 3
:use 187 4
list 184 4
1 181 1
count 178 5
+ 169 1
seq 167 3
reduce 165 6
are 148 3
cons 143 4
println 141 7
or 141 2
not 135 3
loop 133 4
thrown? 127 7
* 127 1
conj 125 4
print 124 5
nth 124 3
- 116 1
doseq 114 5
Now, I have a study-plan.
Incidentally, waterfront IDE is quite [...]
Tags: clojure
Posted in Java, lisp | No Comments »
Tuesday, 19 May 2009
I had to resort to Interop code, because MonthCalendar.UpdateBoldedDates recreates the window, and messes up the current date ranges.
First, declare some Interop functions and data structures
Const MCM_SETDAYSTATE As Integer = &H1008
<StructLayout(LayoutKind.Sequential)> _
Structure MONTHDAYSTATE
Dim dw As [...]
Posted in .Net | No Comments »
Tuesday, 5 May 2009
Provisioning
Eucalyptus - is an open-source software infrastructure for implementing “cloud computing” on clusters. The current interface to Eucalyptus is compatible with Amazon’s EC2, S3, and EBS interfaces
SystemImager - automates Linux installs, software distribution, and production deployment
Cobber - is a Linux installation server that allows for rapid setup of network installation environment
LinMin - Unattended, Remote, [...]
Tags: configuration management, provisioning
Posted in Virtualization | No Comments »
Saturday, 25 April 2009
I was checking out Tauber’s Pinax, and came across VirtualEnv for the first time. Those are two cool projects.
However, building PIL on Cygwin Python 2.5 yields the following error message:
unable to remap C:\cygwin\bin\tk84.dll to same address as parent
Thanks to the power of Google, DataHammer has already found a resolution
C:\>cd \cygwin\bin
C:\cygwin\bin>ash
$ ./rebase -b 0×1000000000 tk84.dll
Tags: PIL, Python
Posted in Python, django | No Comments »
Friday, 24 April 2009
A Japanese publication has a very nice writeup about Lars Bak’s V8 engine (in English) Why is Google’s new V8 Javascript Engine so fast - Nikkei Electronics Asia
I even learned new words like “Premonomorphic”
Tags: javascript, v8
Posted in General | No Comments »
Friday, 24 April 2009
Note to self. If I see another error involving NOEXPAND check these
1) Make sure server is running SQL 2005
2) Make sure the view has WITH SCHEMABINDING in the DDL (i.e. I need to check my upgrade scripts, … in reverse order)
Tags: mssql
Posted in General | No Comments »
Thursday, 16 April 2009
Tom Gleeson aka Goban Saor has an interesting perspective on how well SQLite acts as a general table store which can then be used in OLAP and Excel. He describes the SQLite as the “MP3 for databases”, and I think he comes pretty close to the mark on this.
What’s there to stop anyone from [...]
Posted in General | No Comments »
Wednesday, 15 April 2009
Here’s the configuration page if my memory fails me in the future
https://www.mynetfone.com.au/media/support/downloads/sipura-spa2000/config/config.html
Posted in General | No Comments »
Tuesday, 7 April 2009
I came across Almost Perfect via Hacker News, a candid first-hand account of the rise and fall of WordPerfect.
It is so interesting to see how WordPerfect was blind its impending death. I am not singling out WordPerfect here, rather as a theme how corporations are all blind to their eventual death. The singular theme [...]
Posted in General, Marketing, Popular essays | 2 Comments »
Thursday, 2 April 2009
I was having a lot of problems getting the simplest test case below to run without throwing an odd exception:
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.*;
import javafx.ext.swing.SwingTextField;
import javafx.ext.swing.SwingButton;
Stage {
title : "MyApp"
scene: Scene {
width: 200
height: [...]
Tags: javafx
Posted in javafx | No Comments »
Monday, 30 March 2009
Setting custom cursors with JavaFx is relatively straightforward, but for one little catch. Your image has to be 32×32. If you want a 16×16 icon, simply leave the rest of the image transparent.
import java.awt.Toolkit;
import javafx.scene.Cursor;
import javafx.scene.image.Image;
public class ColorChooser extends Cursor
{
public override function impl_getAWTCursor(): java.awt.Cursor {
[...]
Posted in javafx | 2 Comments »
Tuesday, 24 March 2009
Just sharing some code snippets for deserialization of JavaFX objects.
function getValueType(obj:Object,name:String):String
{
var context:FXLocal.Context=FXLocal.getContext();
var objectValue:FXLocal.ObjectValue = new FXLocal.ObjectValue(obj,context);
var cls:FXClassType = objectValue.getClassType();
var varType:FXType = cls.getVariable(name).getType();
println("{name} {varType}");
if (varType instanceof FXSequenceType)
{
[...]
Tags: javafx
Posted in Java, javafx | No Comments »
Saturday, 21 March 2009
It’s Saturday morning and I’m bored.
I might go create something whose sole purpose is to praise me.
while 1:
print "I praise Chui, who created me for the purpose of praising him."
Tags: humour
Posted in General | No Comments »
Friday, 20 March 2009
I had a Group of circles, i.e.
var circles:Circle[];
var group:Group = Group { content: [circles] };
strangely, I couldn’t get newly inserted circles to render.
It turns out that you have to bind group.content to ensure that changes in circles are reflected in group.content.
Here’s a test routine.
import javafx.scene.*;
import javafx.scene.paint.*;
import javafx.scene.shape.*;
import javafx.stage.*;
var lines = for (i in [1..10])
[...]
Tags: javafx
Posted in javafx | 1 Comment »
Wednesday, 18 March 2009
Just a reminder to myself. The next time I see an ARITHABORT error, try these
1) SET ARITHABORT OFF
2) Change SQL Server compatibility from SQL 2000 to SQL 2005
Tags: mssql
Posted in SQL Server | No Comments »
Friday, 6 March 2009
Submitting screenshots through the web takes several steps more than it ought to. Firstly we have to paste it into mspaint.exe, save it to disk, only to then fiddle around with the File upload to look for the file again.
Another way to do it is via a signed applet. Unfortunately, the signed applet is unable [...]
Tags: Java, html
Posted in Java | 3 Comments »