Someone’s melted my keyboard!

Got a Maltron keyboard on hire for the next
few weeks. Its very strange. People also think I am for using it. I’ve just
about gotten used to the fact that all the keys are at different heights and
angles, but its all the control keys that are giving me real difficulty.
Several times I’ve gone to hit alt-tab and got \’ instead. Most of the
non-letter keys are in different positions, and muscle memory is working against
me. My mind thinks alt-tab, but my body is doing ‘left arm over, thumb back,
second finger up’ before I can catch it. Its an oddly jarring sensation. I
know what I want to do, but my fingers defy me.

Oddest things so far:

  • Return is under the left thumb
  • …as is backspace
  • …and tab

Coolest things so far:

  • Opening brackets, braces, angle brackets etc. is done with the left hand,
    closing them with the right. Appeals to my logical programmer nature.
  • Angle brackets are unshifted, which makes typing markup a lot easier.
  • The shift-lock key (as distinct from caps-lock).
  • ctrl-alt-del are next to each other and can be activated by drumming one
    hand over them.

Internet not obsolete yet

The Top Seven Things Wrong with the Internet. The Internet is in serious need of an upgrade in a number of areas. Some of these problems already have fixes, they’re just not being rolled out because it’s considered too hard, or there are large vested interests in maintaining the status quo. (This was originally going to be a top ten, but I ran out of writing time during my lunch hour. I may amend the list later.) (1003 Words) [The Fishbowl]

To address some of your points:

1. DDOS attacks.

ISP’s already have the ability to contain some of these and make them less damaging. Its called something like ‘Packet Egress Filtering’. One of the ways that DDOS attacks like SYN floods and the ‘ping of death’ work is that they get lots of machines to send packets with spoofed IP addresses. In the example of SYN floods (as I understand it – I may be wrong) zombie machines are instructed to send out TCP SYN requests (the initial ‘handshake’ request for opening a connection to another machine), with the source IP spoofed to be that of the machine being targeted for the denial-of-service. A server receiving a SYN request will send an ACK response to the source IP to acknowledge the connection. If sufficient zombies are all sending spoofed SYN packets, the target is buried under a flood of ACK packets all coming from well-meaning servers that are under the impression it tried to initiate a connection with them. The really sneaky part is that each individual middle-man machine would only see a very minor increase in traffic, as its the aggregated total of all the middle-men sending ACK’s that swamps the target system. A variation of this (I’m more fuzzy on this one so I may be even more wrong) is sending SYN packets directly to the victim system, with source IP’s spoofed to be non-existant. The victim will try and send an ACK response, which will go nowhere, so it will try again, several times before giving up. Given enough SYN packets, it will eventually be spending its entire time trying to send ACK’s and not servicing genuine requests.

How does egress filtering address these issues? An ISP knows which IP address ranges belong to it, and could put this data into their routers, such that any packet that arrives at the inside edge of their network that claims to be from an IP that is NOT within the ISP’s allocated range could simply be dropped. This would prevent packets with spoofed source IP addresses ever getting out of the originating network.

This is about the limits of my knowledge on this. More info:

here, and here

3. IP numbers.

IPv6 is on its way, with mind-boggling numbers of er, numbers, unfortunately inertia (and upgrade cost) is against us on this one. It will get here eventually (I hope).

7. Amero-centricity.

Agreed. 🙂

Refuse Collection Engineering

Turbo-charging Java HotSpot Virtual Machine, v1.4.x to Improve the Performance and Scalability of Application Servers. This paper describes the requirements of a Telecommunication (Telco) application server written in Java, and how those requirements might influence Java virtual machine design. Most of the discussion is not limited to Telco alone, but applies to the enterprise as well. [Java-Channel]

Some serious detail on java garbage collection here. Tweaking GC can have major impacts on application performance. I’ve obtained speed-ups of up to 500% on batch operations (turning a 1-hour task into a 12 minute one) by doing this. For almost all server-side or long-running batch applications, the default young generation size is way, way too small, and should be increased to a significant proportion of the JVM’s maximum memory.


is your friend.

Healthy Competition

Aspects and Attributes are both Big News in java blog land currently. I’ll say
this about MS: one positive thing .net has done is kicked us all in our
complacency, and inspired a whole raft of really excellent projects. Its great
to see the number of committed java people who are out there learning from .net
and adding the good bits to java.

Open (Source) Government

Australian government backs open source. According to this articlethe Australian government is backing the use of open source software for it’s e-government platform. The Federal… [<big>kev’s</big> catalogue of this and that.]

Yet another government threatens to slip out from under the fist of Microsoft. Don’t they know that’s not allowed?

Hope rises every time I read another story like this. The ‘TCPA plan’ (aka. all your [apps/music/data/anything else we think of] are belong to us) will only gain ground if there is sufficient passive acceptance. If enough major governments and large institutions start using open source, TCPA / Palladium might actually be killed before it ever gets going.

My computer is mine. For better or worse. Nobody gets to choose what I run except me. Why is this such a hard concept for organisations like MS and the RIAA to grasp? How would consumers react if their cars only allowed them to drive on approved roads? Or only accepted fuel at filling stations operated by ‘trusted’ oil companies?

LCD Lust

We just got a shipment of gorgeous 18″ LCD screens at work. They are fantastic, and much, much easier on the eyes than CRT screens. I was amazed. I have a dual-head graphics card so I stuck my new screen next to my old one, and the difference is huge. Although before I saw the new screen, I would have said the old one was excellent.

If you can swing it, get one, your eyes will thank you.

Any port in a storm, as long as its 80

OpenSymphony Wiki online. OpenSymphony has a new Wiki online, powered by SnipSnap. It should be useful for on-the-fly documentation writing and tip sharing. Already the WebWork Cookbook has moved there and got some extra contributions! [rebelutionary]

Looks great, but for as long as its on any port other than 80, I won’t be able to see it from work. 😦 Trying to get ports opened in our corporate firewall tends to generate a reaction similar to saying “Hi, mind if hack the network, install packet sniffers on all the servers, set fire to the office and sell all our data to the competition?”.

Development Dichotomies

Don’t get me wrong, I love XP and Agile, and Test-First is a better object designer than I am. Unit tests have also saved my bacon on more than one occasion. Its just that sometimes, its strangely liberating to throw caution to the wind and code like crazy without a safety net. Some of the most fun (and technically cool) things I’ve done have been hacked together in an afternoon, with no regard to anything other than the single idea that I’m trying to express. My JMock-alike fake servlet framework (have to discuss getting that open-sourced with the PTB’s) is one example. I’ve tweaked bits and pieces since, but the core took shape in a single afternoon of manic coding.


PS. The ‘just do it’ technique only works (for me) when coding something truly engaging. Most production code isn’t on the cutting edge of cool, and thats when test-first helps me to stay focussed and catches my silly mistakes.