Why SOPA sucks – in a nutshell

This is a video (gif) by Matthew Inman (aka
“The Oatmeal”) about the craziness that is SOPA …
Tested oliver.doepner.net on all major browsers
I just tested my personal “résumé” – British would say “CV” – website at oliver.doepner.net successfully on IE8, IE9, Firefox 3.6 to 9, latest and older Chrome versions, Opera 10 and 11 and Safari 4 and 5.1. It works on all browsers and looks fine.
You might wonder if I have all these browser installed? No, I don’t. I used the amazing browserling.com service that runs all the various browsers in virtual machines “in the cloud”, and embeds the UI in their website. Cool stuff and currently free for everyone to use!
One caveat with browserling.com is a tool called IETester that they use to emulate the ancient IE5.5 and IE6 browsers. Its seems to have bugs related to PNG graphics which prevented reliable testing. So if anyone out there still uses IE5.5 or IE6: Please visit oliver.doepner.net and let me know if you can see the photo of me on the page with the transparency effect.
On the newer CSS3 capable browsers, my site now sports drop shadows and rounded corners, using border-radius and box-shadow.
I also tested W3C standards compliance (XHTML, CSS3) and all my pages did pass those tests as well. What a nice way to end the computer oriented part of the day …
Job trends – Programming languages
TIOBE index and trends
According to the current TIOBE index, Objective-C market share is growing the fastest. This is the native programming language of Apple devices like iPhone, iPad and iMac.
Indeed.com job ad trends
Absolute volume: Java is still leading the pack (as of 2011/2012).

Maven integration (m2e) for Eclipse 3.7.x (Indigo)
Sonatype’s Maven integration for Eclipse (m2e) has been migrated to eclipse.org and is now available from the default update site for Indigo.
This means that you no longer have to add any Sonatype update sites as mentioned on the old (now outdated) m2eclipse site.
In particular, this also means that the old “m2e-extras” update site is obsolete for Eclipse 3.7.x and later. Things like WTP integration or Subclipse integration are now available as “m2e connectors” through Window – Preferences – Maven – Discovery.
All of this is very poorly (or not at all) documented on the new m2e home page and some people had problems with these changes.
Programming principles for Java methods
Topics I want to cover in the future about Java methods:
- Minimalistic coding style
http://agilepainrelief.com/notesfromatooluser/2008/07/minimalist-coding-style.html
http://ssdl-wiki.cs.technion.ac.il/wiki/index.php/Spartan_programming
http://binstock.blogspot.com/2008/04/perfecting-oos-small-classes-and-short.html
http://kernel.org/doc/Documentation/CodingStyle - “Fail early” (or “fail fast”) principle
http://www.martinfowler.com/ieeeSoftware/failFast.pdf
http://c2.com/cgi/wiki?BouncerPattern - “Return early” principle
http://agilepainrelief.com/notesfromatooluser/2008/08/multiple-returns-from-a-single-method.html
http://onthethought.blogspot.com/2004/12/multiple-return-statements.html
http://www.javapractices.com/topic/TopicAction.do?Id=114 - Object creation methods (to allow final)
- Type generic methods (process a T vs create a T)
- Functional style: stateless static methods vs interfaces
- Javadoc: On interface not implementation
- Method naming guidelines
- Strategy parameters (often anonymous interface implementations)
- Exception handling methods (try-catch-finally, throwing exceptions)
- How to avoid setter/getter madness
- Method chaining API style (static factory method, builder methods)
JQuery DataTables column filters state saving
The JQuery DataTables plugin supports state saving for column filters. But it does not automatically set the column filter values to the saved values when the user navigates to a page that has saved filter state.
I saw the code suggested here and cleaned it up a little (for example, using the oSettings parameter of the fnInitComplete function).
$(document).ready(function() {
var oTable = $('#REPLACE_THIS_WITH_TABLE_ID').dataTable({
"bStateSave": true,
"fnInitComplete": function(oSettings, json) {
var cols = oSettings.aoPreSearchCols;
for (var i = 0; i < cols.length; i++) {
var value = cols[i].sSearch;
if (value.length > 0) {
$("tfoot input")[i].value = value;
}
}
}
});
$("tfoot input").keyup(function () {
oTable.fnFilter(this.value, $("tfoot input").index(this));
});
});
Please note that I completely removed all code that supported initial display texts in the filter fields (because I don’t use that).
Java News feeds
Some Java related RSS feeds:
- Open Source Java – Google News
- Artima Developer Spotlight
- IBM developerWorks : Java
- InfoQ – Java
- JAVA Developer Journal (sys-con)
- Javalobby
- JSFCentral
- Latest headlines from JavaWorld
- OracleTechnologyNetwork/java
- O’Reilly – Java
- theserverside.com
- Planet JDK
- Apache Java News
Forums:
Jenkins on minimalistic Debian Virtualbox VM (64bit)
A Jenkins build server (LTS release) can now be easily installed on the minimalistic Debian VM:
- Download and install Virtualbox
- Download debian-stable-amd64-minimal.ova and import it into Virtualbox
- Start the “debian-stable-amd64-minimal” VM in Virtualbox
- If you are outside Nova Scotia, please review debian-stable-amd64-minimal.txt and adjust locale, timezone and Debian mirror based on your location
- Start an ssh session to localhost, port 1111 (using PuTTY, for example)
- Log in as user (default password is “user”)
- Issue “sudo install.sh jenkins” (default root password is “root”)
- Press enter for any questions during installation
- Open http://localhost:8888/ in a browser on the host OS for Jenkins web ui
You can go to “Manage Jenkins” – “Configure System” and see that JDK, Ant and Maven entries are already configured for you.
Important: Make sure to change root and user passwords to something secure, as mentioned in debian-stable-amd64-minimal.txt.
Convert Virtualbox VDI for VMware Player
Regarding the VM that I mentioned in my previous post – this way I also got it to work in VMware Player:
- Install and start Virtualbox (https://www.virtualbox.org/wiki/Downloads)
- Go to File – Import Appliance (and import the ova file mentioned in my last post)
- Close Virtualbox
- Use VBoxManage on the command line to clone the VDI to VMDK, roughly as described here (but do not try to uninstall guest additions): http://scottlinux.com/2011/06/24/convert-vdi-to-vmdk-virtualbox-to-vmware/
- Create a new empty Linux/Debian VM in VMware Player
- Close VMware Player
- Edit the new vmx file so that it points to the cloned vmdk
- Then open the VM in VMware player again. Now it should boot into Debian.
Minimalistic Debian VM (64bit)
I uploaded a VM image to doepner.net: It is a minimalistic Debian VM that can be used as a base for lean servers. It is in OVA format, exported from Virtualbox 4.1.6. Details are in the corresponding txt file.
You can add the VM to your Virtualbox using “File” – “Import Appliance …”. VMware should also work but might require some compatibility conversion of the ova file.
Recipes for specific Nexus, Jenkins, Wiki, Bugzilla setups will follow … I will publish those as scripts/instructions relative to the minimal base image, rather than maintaining several VMs.
