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

So, if we take a moment to look at the following responses to questions that the leaders of the three parties involved in the “Digital Debate” on YouTube gave, concerning the Digital Economy Bill: Sure, we get some tired old rhetoric, as expected. However, the key point here is that both Labour and the Conservatives appear to believe that they've done the right thing with this bill. Combine this with the fact that Gordo....

So, if we take a moment to look at the following responses to questions that the leaders of the three parties involved in the “Digital Debate” on YouTube gave, concerning the Digital Economy Bill: Sure, we get some tired old rhetoric, as expected. However, the key point here is that both Labour and the Conservatives appear to believe that they've done the right thing with this bill. Combine this with the fact that Gordo....

Stop. Don't do it. I know what you're thinking. You're thinking: "This code is ugly. It's messy, it's big, it seems too complicated with too many features, trying to get my head into it will be too time consuming, I'll just rewrite this. It won't take long. A few hours, maybe". I'm here to tell you: Don't do it.

Stop. Don't do it. I know what you're thinking. You're thinking: "This code is ugly. It's messy, it's big, it seems too complicated with too many features, trying to get my head into it will be too time consuming, I'll just rewrite this. It won't take long. A few hours, maybe". I'm here to tell you: Don't do it.


Reading this blog post, Destructuring binds in Ruby just now reminded me of a feature I love about Prolog which I wish would make it into other languages. Firstly, I love assigning a list to a list of lvalues i.e. variables; this is possible in both PHP and Perl which I use regularly; and no doubt many other languages. (But not Java: why not!?) ($a, $b) = ($b, $a); // Perl list($a, $b) = array($b, $a); // PHP PHP, as always, wins..

Tour of Flanders Photo - rob.sh - 16 years ago - eng
After ordering from the official Tour of Flanders Sportive photographers , I got a photo of me on the Bosberg. Feel the burn!

Tour of Flanders Photo - rob.sh - 16 years ago - eng
After ordering from the official Tour of Flanders Sportive photographers , I got a photo of me on the Bosberg. Feel the burn!

Here’s a little trick question. Check out the execution plan below. What the hell, shouldn’t the INDEX/TABLE access be the other way around?! Also, how come it’s TABLE ACCESS FULL (and not by INDEX ROWID) in there? This question is with a little gotcha, but can you come up with a query which produced such plan? ;-) ---------------------------------------------- | Id | Operation | Name | E-Rows | -----------------------------------..

Here’s a little trick question. Check out the execution plan below. What the hell, shouldn’t the INDEX/TABLE access be the other way around?! Also, how come it’s TABLE ACCESS FULL (and not by INDEX ROWID) in there? This question is with a little gotcha, but can you come up with a query which produced such plan? ;-) ---------------------------------------------- | Id | Operation | Name | E-Rows | -----------------------------------..

UKNOF 16: Enhancing BGP - rob.sh - 16 years ago - eng
After a late programme committee request, I presented on “Enhancing BGP” at UKNOF 16. The presentation was intended to be an update on the current drafts in the IDR working group, and give some encouragement to operators to get involved, and contribute. I’ll put the video up when the Tom at PortFast and Brandon of Bogons have done their excellent job on it. For the meantime, the slides are linked below. There's also a..

UKNOF 16: Enhancing BGP - rob.sh - 16 years ago - eng
After a late programme committee request, I presented on “Enhancing BGP” at UKNOF 16. The presentation was intended to be an update on the current drafts in the IDR working group, and give some encouragement to operators to get involved, and contribute. I’ll put the video up when the Tom at PortFast and Brandon of Bogons have done their excellent job on it. For the meantime, the slides are linked below. There's also a..

I've been spending most of this weekend knees deep in HTML5, localStorage, CSS3 for a hobby weekend project of mine: FridgeList The original intention was to create a HTML5 web app using the Facebook Graph API, since I've been pretty excited about that. But then I got this idea for a super simple task list and I guess the Facebook Graph project will have to wait....

A method for dynamically changing form action depending on which submit button is clicked using JavaScript. Does not require knowledge of the forms name.

I've been spending most of this weekend knees deep in HTML5, localStorage, CSS3 for a hobby weekend project of mine: FridgeList The original intention was to create a HTML5 web app using the Facebook Graph API, since I've been pretty excited about that. But then I got this idea for a super simple task list and I guess the Facebook Graph project will have to wait....

Did you know that it’s possible to use EXPLAIN PLAN FOR CREATE INDEX ON table(col1,col2,col3) syntax for explaining what exactly would be done when an index is created? That’s useful for example for seeing the Oracle’s estimated index size without having to actually create the index. You can also use EXPLAIN PLAN FOR ALTER INDEX i REBUILD to see whether this operation would use a FULL TABLE SCAN or a FAST FULL INDEX SCAN (offline ..

Did you know that it’s possible to use EXPLAIN PLAN FOR CREATE INDEX ON table(col1,col2,col3) syntax for explaining what exactly would be done when an index is created? That’s useful for example for seeing the Oracle’s estimated index size without having to actually create the index. You can also use EXPLAIN PLAN FOR ALTER INDEX i REBUILD to see whether this operation would use a FULL TABLE SCAN or a FAST FULL INDEX SCAN (offline ..





I'm a Software Engineer based in Brisbane Australia, with a focus on developing web based systems. I enjoy functional programming, domain…

This article updated on the august 11, 2010. Around half a year ago or so I had a unique idea (at least I had never heard or read about it before) on how to block web spam. It is very simple, yet very powerful. Normally comment spam, false registrations and other such spam are being [...]

This article updated on the august 11, 2010. Around half a year ago or so I had a unique idea (at least I had never heard or read about it before) on how to block web spam. It is very simple, yet very powerful. Normally comment spam, false registrations and other such spam are being [...]

There are so many buzz words in this industry that gain momentum, and people tend to start using them everywhere, trying to insert some jizz into whatever their product is. In the last couple of years the term "Cloud" has been one of the most popular ones. It comes in many forms of course. Some of them include "In the cloud", "Cloud computing", "Cloud based services", etc.

There are so many buzz words in this industry that gain momentum, and people tend to start using them everywhere, trying to insert some jizz into whatever their product is. In the last couple of years the term "Cloud" has been one of the most popular ones. It comes in many forms of course. Some of them include "In the cloud", "Cloud computing", "Cloud based services", etc.

Drop pods are back - etodd.io - 16 years ago - eng
And they're much more interesting now. Instead of delivering reinforcements, they now act as cash dispensers. So rather than receiving a flat sum every match, you'll have to earn your money by remaining near a drop pod. Currently, the pod doesn't make you wait and then dump all the cash on you in one transaction; the money is deposited in $10 increments every second. We'll see whether that changes or not.

I recently consulted one big telecom and helped to solve their sporadic performance problem which had troubled them for some months. It was an interesting case as it happened in the Oracle / OS touchpoint and it was a product of multiple “root causes”, not just one, an early Oracle mutex design bug and a Unix scheduling issue – that’s why it had been hard to resolve earlier despite multiple SRs opened etc.

I recently consulted one big telecom and helped to solve their sporadic performance problem which had troubled them for some months. It was an interesting case as it happened in the Oracle / OS touchpoint and it was a product of multiple “root causes”, not just one, an early Oracle mutex design bug and a Unix scheduling issue – that’s why it had been hard to resolve earlier despite multiple SRs opened etc.

Some time ago I wrote that since Oracle 10.2, some of the buffer cache can physically reside within shared pool granules. I just noticed this in an 11.2 instance: SQL> select * from v$sgastat where name like ‘KGH%’; POOL  NAME  BYTES ------------ -------------------------- ---------- streams pool KGH: NO ACCESS  4186144 So, it looks that also streams pool can surrender parts of its memory granules to buffer cache..

Some time ago I wrote that since Oracle 10.2, some of the buffer cache can physically reside within shared pool granules. I just noticed this in an 11.2 instance: SQL> select * from v$sgastat where name like ‘KGH%’; POOL  NAME  BYTES ------------ -------------------------- ---------- streams pool KGH: NO ACCESS  4186144 So, it looks that also streams pool can surrender parts of its memory granules to buffer cache..

It looks like, once again, there's another attribute flying around the global BGP table causing Quagga instances to crash (if based on 0.99.9 - I believe the bug is fixed in 0.99.10). This relates to the 2007 draft that introduced AS_PATHLIMIT - see ietf.org - draft-ietf-idr-as-pathlimit . This attribute is actually relatively interesting, from an operator's point of view, where control that is more granular than setting the common no-exp..

It looks like, once again, there's another attribute flying around the global BGP table causing Quagga instances to crash (if based on 0.99.9 - I believe the bug is fixed in 0.99.10). This relates to the 2007 draft that introduced AS_PATHLIMIT - see ietf.org - draft-ietf-idr-as-pathlimit . This attribute is actually relatively interesting, from an operator's point of view, where control that is more granular than setting the common no-exp..

The past two weeks have been pretty hectic for me - Midgard Gathering in Poland, some meetings in Berlin, and the Linux Collaboration Summit in San Francisco. And then, thanks to the Eyjafjallajökull eruption in Iceland and the resulting flight cancellations , the trip back became a little bit more complicated. My original KLM flight on April 17th was cancelled, and as the best offer from the airline was to get me home on 27th....

I just had the problem I’d placed a script into /etc/cron.daily on my Debian Lenny system but it wasn’t getting run (or at least it didn’t seem so). Two things I learned: Execute the following to see which scripts would get run: ``` run-parts --test /etc/cron.daily ``` In my case, the reason the script was never executed was that I called it xyz.sh as it was a shell script; the dot in the filename was the problem. I removed the dot..

Twitter recently launched a development platform called @anywhere. You can find more information about that on https://dev.twitter.com/ (Side note: I really like the design of the site)

Between Java 1.0 and Java 1.3 (1996-2002 according to Wikipedia) there was no way to split strings into an array or a list. In Java 1.4 the authors of Java saw it fit to introduce a method to split strings, String csvData = "field1,field2,field3"; String[] fields = csvData.split(","); However they did not introduce a method to “join” strings! Even in Java 7 there is no way to do this, e.g. via a static String.join method (2002-now).

Twitter recently launched a development platform called @anywhere. You can find more information about that on https://dev.twitter.com/ (Side note: I really like the design of the site)

It was announced today that the Library of Congress will digitally archive all public tweets. Every public tweet that’s been sent since 2006 and every public tweet in the future will be stored on their servers. Of course, your private and reserved messages will remain private, but there is now a serious public archive of […]

I'm a big fan of webcasts (video podcasts).  I have my favorites in various categories that I watch regularly. My viewing pattern is somewhat different from watching standard TV shows or something lik...

In Java 1.4 there was the function Arrays.asList. You could pass it an array and it would make a list out of it. String[] myArray = new String[] { "foo", "bar" }; List myList = Arrays.asList(myArray); In Java 1.5 this was retrofitted for varargs; you could simply pass elements to the function List myList = Arrays.asList("foo", "bar"); I never really understood how that worked in a backwards-compatible way; I mean either the fu..

I'm a big fan of webcasts (video podcasts).  I have my favorites in various categories that I watch regularly. My viewing pattern is somewhat different from watching standard TV shows or something lik...

A couple of weekends ago, CS Grupetto rolled out to Flanders for the Ronde van Vlaanderen sportive, and to catch the race live. The sportive was brutal, lots of “power climbs” (although I’m not so sure that I can say I ‘powered’ up most of them - the Muur and Koppenberg and I have unfinished business), in rain, hail, and gusty winds. The pavé brings a new definition to bike control, and in the wet it’s quite an experience. The point o..

A couple of weekends ago, CS Grupetto rolled out to Flanders for the Ronde van Vlaanderen sportive, and to catch the race live. The sportive was brutal, lots of “power climbs” (although I’m not so sure that I can say I ‘powered’ up most of them - the Muur and Koppenberg and I have unfinished business), in rain, hail, and gusty winds. The pavé brings a new definition to bike control, and in the wet it’s quite an experience. The point o..

16 visitors online