Contributing to iText
Recently I’ve been working on a coding project in my spare time where I stumbled upon a bug in an open source library I was using. As I’m a software developer who works on a few open source projects already I figured I should investigate and try to fix the problem myself and contribute back.
As some people can be wary of contributing to an established open source project I figured this post detailing what I went through may encourage others to take part too.
…Fivium Hack Day 2015
In my previous post I wrote about organising the Fivium Hack Day 2015, this post will be about how the event went, what people created and who ended up going home with prizes.
After all the organising we had around 15-20 staff taking part, which for a company of 40-50 isn’t bad considering not everyone in the company is a developer. Everyone taking part was a software developer or support tech, but as we started on a Friday at lunchtime we did get some idea discussion with some of the staff from other roles in the company such as software testers, marketing and company directors. Having the event start on the Friday afternoon gives a good chance for non-developers to take part where they can and to get a view of what the rest of us are doing which helps spread knowledge and encourage ideas.
…Organising a Hack Day
Some people may think that organising a hack day is just a matter of picking a date, sending an email invite and hoping the internet holds up but actually there’s quite a a lot of things to do if you want to make a hack day fun.
Back in February 2014 I organised the inaugural Fivium Hack Day, you can read about how the event turned out in my post Fivium Hack Day in April 2014. but I didn’t give too many details about the time & effort that went into organising the event.
…3D Printing
A couple of months ago something broke in my office. Typically in a modern office, especially at a software development company, when something breaks it is software with bugs. For a change it turned out to be a hardware failure, and not hardware like an SSD or their Air Con (which happens to frequently break) but a gear inside a large piece of archaic office machinery.
Mystery JS Alert
One of my fellow developers at work recently started complaining that he was getting an alert showing up on his page on a development system. Obviously this raised our XSS-aware eyebrows and investigations soon started.
Thanks to the way JQuery subsumes event handlers it can sometimes be very tricky to find out what exactly was triggering the alert, and without finding out what triggers the alert you can’t find the problem and fix it. Alerts can also be hard to get a debugger to breakpoint on, if at all possible.
…Disassembling and Modifying C#
Recently I was working with a C# tool and found it didn’t quite do what I was expecting. Knowing that C# is fairly similar to Java in terms of compiling down to bytecode and running on a language VM I figured I might have a go at disassembling the C# executable and attempting to patch what I needed.
As a Java developer who occasionally has to deal with bugs in third party, closed-source, libraries I have become fairly adept at disassembling code to figure out what’s going on and potentially patch it to have the behaviour I need. Reverse engineering should never be the first option to try, and it is more often than not against the ToS and licenses of whatever third party code you’re meddling with (sometimes Oracle post crazy rants against third party investigations of their code) but sometimes it’s the only way to truly find out what is going on, especially when the documentation is short on details or outright incorrect.
…Java Keystore
This is just a quick one but it’s something I forget every time and always forget where to look.
I deal with lots of Java software at work and on our development network we have our own self-signed SSL certificate which we use for self-hosted internal tools. This can cause issues when bits of Java software need to communicate with those self-signed SSL using tools. This post is here to explain my common use-case and a common pitfall I have when doing it.
…JVM Core Dumping
The work I do for Fivium is mostly developing a Java servlet called FOXopen which is a stateful web framework that typically runs on top of Tomcat.
Unfortunately, as with all software, it occasionally crashes and hangs (typically using 100% CPU stuck in a GC loop). When a Java application has hung because of underlying memory issues the best way to investigate the cause would be to dump all the memory, a Heap Dump.
…QCon 2015
QCon is A practitioner-driven conference focused on facilitating the spread of knowledge and innovation in enterprise software development, or at least that’s what their Twitter account says. This is a post about some of the interesting talks I saw at QCon London 2015.
I’ve been before, in 2013, and had a great time. The talks at QCon are always some of the most varied of any conference I’ve been to. Rather than focusing on one area there are many tracks of talks with individual talks ranging from management techniques and agile processes to low level bit-packing binary messages for nano-second performance gains.
…Keyboards
I’ve been typing on keyboards since I was around 5, but the hardware was never something I considered and I can’t even remember which brand of keyboard we had on our first PC back in the early 90’s.
Recently I have been converted from using thin laptop-style keyboards to mechanical keyboards and thought I’d write a post with some information about why I switched and what’s different for me.
…