About a year before moving to Sydney, I was on the verge of buying a house in the UK. I was serious about it: I had learnt about mortgages, calculated my budget, and even smiled at an estate agent. I viewed 40 properties before I finally came to my senses, and realised that becoming a homeowner is probably the only boring way to put yourself in a lifetime of debt.
Here’s one thing I will never forget about the experience: out of those 40 houses, 39 had cripplingly, devastatingly, pathetically small windows. Why most people in the UK seem happy to ignore and perpetuate this obscene design flaw is a mystery to me.
Anyway, I’m happy to say that my new room here in Sydney has two sets of huge 2x3m French windows – one East facing, one West facing – each one leading to a balcony. Aside from being awesome, this leaves me with just one solid wall, and therefore an excuse to fulfill a childhood dream1: Read more…
In Eclipse, breakpoint icons tend to get obscured by other notification icons, like override or quick-fix notifications.
The workaround, as described in this bug comment, is to configure the breakpoint annotation type with additional display properties.
To do so, open General > Editors > Text Editors > Annotations and configure your breakpoint annotations as you see fit:
If you select “Text as: Dashed Box”, you can get something like this (note the dashed box around the method name, indicating a method entry breakpoint):
Not the prettiest solution, but at least that’s one less mild annoyance to deal with.
I’ve lived in Australia for 5 months now, and although I’m yet to venture outside of Sydney, I feel fully qualified to provide some tips on making the most of your time should you ever come over. Read more…
I confess I rant about Ant a fair bit, but in truth Ant tasks provide a lot of useful functionality. Even if you don’t use Ant directly, you can still take advantage of the tasks by using, say, Groovy’s AntBuilder.
Ant and File Permissions
Ant’s file system tasks, however, have one big disadvantage: they tend to lose or ignore Unix file permissions. This well-documented limitation Read more…
After 7 fantastic years with IBM, I thought it might be time for a little change. So, I have left Chandler’s Ford for Sydney and joined Atlassian.
Sydney Bound
I thought spending 22 hours sitting on the Heathrow/Singapore/Sydney flight might be overwhelmingly boring, but it turned out OK. I didn’t get to ride an A380 – they were temporarily pulled just before my ticket was booked – but the replacement A747-400 was surprisingly comfy. Using SeatGuru helped Read more…
z/OS UNIX is a facet of z/OS that makes the operating system more approachable to those of us who weren’t brought up around 3270 terminals. Amongst other things, it provides support for remoting into the z/OS mainframe under a choice of UNIX shells (a simple Bourne-style shell or tcsh), access to a hierarchical file system, and a handful of Unix tools like ls, vi and grep (which work fine, as long as you don’t expect them to behave quite the same way as on other Unix systems). Like the rest of the operating system, z/OS UNIX is an EBCDIC environment.
EBCDIC Variants
My previous post brought up the topic of variant characters in EBCDIC. In summary, the characters shown below can be represented by different byte values depending on the locale under which a user is running:
1
\ ^ ~ ! [ ] { } # | ` $ @
This raises following question: how can you distribute a z/OS UNIX shell script that will “just work” for any z/OS user, given that entities like the comment character (#), hashbang (#!), pipes (|) and the variable marker ($) might need to be represented by different bytes in different locales? Read more…
One of the projects I’ve been working on over the past few months is the Dynamic Scripting feature pack for CICS. It runs on z/OS, which is an interesting environment for a few reasons – not least because it’s an EBCDIC platform.
Know your charset
A character set defines which byte value is used to represent a given character. So the choice of character set is a concern that should crop up whenever raw bytes are interpreted as character sequences, or character sequences are converted to raw bytes. For example, care should be taken to use the correct character set when writing text to a file, or reading character data from the body of an HTTP response.
Often, it’s tempting to ignore the concern. The vast majority of Read more…
Here’s a little example sMash app showing how to authenticate with Twitter using OAuth. If you’re not familiar with OAuth, here’s a good introduction (part II is especially useful).
The maximum classpath length that Java can handle depends on many factors, including platform and JDK implementation. As far as I can tell, the limit is usually undocumented, but can be as low as a few thousand characters. Additionally, elements beyond Java’s control, such as the shell, can also affect how many characters can safely be used in a classpath.
In practice, this means that the classpath you request can be truncated before the JRE processes it… and you might not find out until you get a very confusing ClassNotFoundException.
Launching with a ludicrously long classpath? Java might miss some of it!
If circumstances dictate an uncomfortably long classpath at launch time, there are a few ways to condense it without resorting to single-character symbolic links. Read more…
I couldn’t find a simple example that explicitly shows how to connect to DB2 from sMash, so I put one together. You can grab the resulting example sMash application using the zero command line like this:
1 2
zero modulegroup addurl http://soal.org/sMash/repo/
zero create db2App from soal:db2App
(On a side note, notice how I’m hosting a zero repository containing my app right here on soal.org! Read more…
DPC ended last weekend, so I’m a little late with my write-up. However, the event was sufficiently memorable to still be fresh in my mind.
Like the vast majority of attendees, I was massively impressed by the superb selection of talks and the attention to detail inherent in every aspect of the organisation of DPC ’09. Big thanks to the Ibuildings folks for this. One example of the love they poured into the event is the conference introduction video, which was played on a large screen before the opening keynote. It included customized avatars for every speaker, including me… even though I was a very late addition to the speaker list!
Jonathan Lawrence and I will be presenting an introduction to WebSphere sMash at the Dutch PHP Conference on Friday. Here’s a quick overview of what we’ll be talking about:
Don’t hesitate to come chat with us between the talks, particularly if you’re curious about running PHP on the Java Virtual Machine or integrating PHP and Java code.
Last night I presented the Standard PHP Library at the PHP London User Group. The aim was to give an overview of the extension and to entice people into coming to TestFest, of which the London and Manchester incarnations will be focussing on SPL.
Thanks to all who attended! Here are the slides for those who couldn’t make it:
Today Ant and I did a quick demo of sMash at SAP Inside Track London 2009, an unconference organized by Darren Hague and Nigel James. The idea was to show how sMash could be used to rapidly script up situational web apps (aka “satellite apps”) that integrate with SAP and provide extra, peripheral functionality.
After the talk, Dennis Howlett fired a few questions at me on camera:
What a brilliant day and an great way to learn about SAP & meet SAP mentors!
I now have a few sMash apps sitting on my VPS, running on different ports. I wanted to be able to access each of them on their own subdomain – like this :
It took less than an hour to get this blog up and running on WebSphere sMash on a Virtual Private Server, starting from nothing at all. Here’s how you can get started too: Read more…