Unix Toolbox
A friend pointed me to this very useful list of Unix/Linux/BSD commands, worth taking a look at and bookmarking.
Update on CentOS 5.3
I tried my best with CentOS 5.3 but it had a serious problem on my core i7 motherboard, for some reason everything was running about half as fast as it should have been, cpu bound application were spending a lot more time than they should have been in system land. I was getting better performance running under VMware on my MacPro!
I posted a questions to the CentOS forums and, getting no answer after 24 hours, decided to install Fedora 11, which seems to work well so far. The 150+ updates which are installed on top of a fresh install are hardly inspiring given that Fedora 11 came out barely 3 weeks ago, but everything seems to be ok so far.
Except for two drives failures in quick succession, same model and same amount of run time, both ran out of spare sectors within days if each other.
CentOS 5.3
I was very happy to see that CentOS 5.3 had been released because it now supports the ethernet adaptor on my intel core i7 board. I was forced to use Fedora 10 because CentOS 5.2 did not support the ethernet adaptor. I used to be a fan of Fedora, but no more, they are just too many issues with it, for example the network refuses to come up when the machine boots, and Xorg regularly pegs the CPU rendering the machine unresponsive.
Tomorrow I am ditching Fedora 10 and moving to CentOS 5.3, good riddance.
XML Editor and XSLT Debugger
<oXygen/> looks like a nice tool for dealing with XML files:
<oXygen/> is a complete cross platform XML editor providing the tools for XML authoring, XML conversion, XML Schema, DTD, Relax NG and Schematron development, XPath, XSLT, XQuery debugging, SOAP and WSDL testing.
The integration with the XML document repositories is made through the WebDAV, Subversion and S/FTP protocols. <oXygen/> also supports browsing, managing and querying native XML and relational databases.
The world’s best XML Editor is available as an Eclipse IDE plugin, bringing unique XML development features to this widely used Java IDE.
If only it were not so expensive, ouch!
Document Palette
I have been looking for a tool like this for the Mac for a while. Something which allows me to create a new document somewhere on the file system based on a template of some sort.
This capability has been in Windows for a while, and which I first ran into when I tried out HP NewWave.
To equals() or not to equals()
“How to Write an Equality Method in Java” from Artima:
Class
java.lang.Objectdefines anequalsmethod, which subclasses may override. Unfortunately, it turns out that writing a correct equality method is surprisingly difficult in object-oriented languages. In fact, after studying a large body of Java code, the authors of a 2007 paper concluded that almost all implementations ofequalsmethods are faulty.
The article goes into some depth on how to write a good equals method, and on the pitfalls that surround such a method. The article also makes a reference to “Effective Java Second Edition” by Josh Bloch which I am currently reading:
In Item 8 of Effective Java1, Josh Bloch describes the difficulty of preserving the equals contract when subclassing as a “fundamental problem of equivalence relations in object-oriented languages.” Bloch writes:
There is no way to extend an instantiable class and add a value component while preserving the equals contract, unless you are willing to forgo the benefits of object-oriented abstraction.
NOSQL Conference Videos
I was not able to attend the NOSQL Conference on June 11th, 2009 in San Francisco, but the Braindump blog posted links to the presentations and videos.
Hadoop and Project Voldemort
Great article in two parts (part 1, part 2) co-authored by Elias Torres (a colleague and friend) on using Hadoop and Project Voldemort for managing very large datasets.
It was interesting to read about the deployment issues they had to deal with as I dealt with some of the same issues with the indices for the search engine at Feedster (the update cycle there was 10 minutes), and the issue with key lookup as I had to engineer that for the search engine.
MySQL 5.1.35 – (AMD64 / Intel EM64T)
I was amazed to run into a crashing bug in MySQL 5.1.35 – (AMD64 / Intel EM64T), in fact it took me a while to track down because checking the MySQL server log never occurred to me. It came down to a single statement:
DELETE FROM enclosures WHERE item_key = '...'
I backed down to 5.1.34 and it worked fine, same configuration in my.cnf. Very odd.
Sandboxing on Windows
This is a little off the beaten path for me, but I was interested in this post by a Googler about sandboxing on Windows:
Sandboxing is a technique that Google Chrome employs to help make the browser more secure, and was discussed in a previous blog post. On Windows, getting a process sandboxed in a way that’s useful to us is a pretty complicated affair. The relevant source code consists of over 100 files and is located under the sandbox/ directory in Chromium’s Open Source repository. But for our Mac and Linux ports, sandboxing is a very different story. On Linux there are a number of different sandboxing mechanisms available. Different Linux distributions ship with different (or no) sandboxing APIs, and finding a mechanism that is guaranteed to work on end-user’s machines is a challenge. Fortunately, on Mac OS X, the OS APIs for sandboxing a process are easy to use and straightforward.
I don’t know if they looked at Sandboxie at all, but it seems to be something they could have used.






leave a comment