RSSAmplifier

Blog

Welcome on madbean

Recent content in Welcome on madbean

madbean.comRSS feed ↗40 posts

Latest posts

Creating HTTP redirect files in S3 from local files

Feedback? See Mastodon cross-post. Context You are using AWS S3 in static website hosting mode. You have some URLs on your static site that you want returned as 3xx redirects. You want to use x-amz-website-redirect-location S3 object metadata item to implement these HTTP redirects (documentation). Problem But the tool you are using (perhaps a static site generator like Hugo or Jekyll) does not…

Got a Jolt!

FishEye and Clover won Jolt awards (archive) this year! FishEye in the “Change and Configuration Management” category and Clover in the “Testing Tools” category. They are “the Oscars of our industry” which – for better or for worse – is about right. But I still I have a fondness for the Jolt awards. The first time I saw the awards in Dr Dobbs…

On Balance

There used to be an SBS program that aired late Saturday nights called Eat Carpet (on wayback). It featured a handful of short films each week and was standard viewing for me for quite a few years after I finished Uni. I don’t know exactly when it was, but it was on Eat Carpet that I saw the best animated short I had ever, and still have ever, seen. After that I would often watch Eat Carpet…

Talking nerdy

So, as I said 3 months ago, I’m now at Atlassian. I couldn’t imagine a workplace more compatible with the old Cenqua lifestyle. I mean, we had a DnD group up and running in the first few weeks! Atlassian has a rich and vibrant technical culture – the internal blogs are pure bliss. And there is always room for a bit of fun, which lead to the following little video blog:

Goodbye, Hello

Today, Atlassian acquired Cenqua. More details here. Kinda seems surreal typing that in. But without a doubt exciting. Certainly seems surreal that I’ll be moving to Sydney, but that is real exciting too. Not much more to say than that at the moment, other than it is full steam ahead on making FishEye, Crucible and Clover kick more arse than ever before. And looking forward to catching up…

Serving one Apache site from two parallel directories

Some of you may say &ldquo;whytf umofo&rdquo;, and some may say &ldquo;I&rsquo;ve always wanted to be able to do that!&rdquo;. This hack is for the later, but I will try below to explain to the former why it is useful. If anyone knows of an easier way to do it, please let me know. Apache httpd serves static content out of its DocumentRoot : DocumentRoot /usr/local/apache/htdocs <Directory…

All-knowing, but not all-subscribing

Civilization IV here I come

It is probably best to make clear that I&rsquo;m a hard-core Civilization fan. I&rsquo;ve spent large slabs of my life playing each of the first three versions, large slabs that are measured in metric tons. Everyone say it with me: just one more turn. So it was always a given that I&rsquo;d be buying Civilization IV when it came out. And that is not even taking into account how great it actually…

Space-Time Ray-Tracing using Ray Classification

In 1996, I completed an honours year attached to my Comp. Sci. This involved a thesis, in which I choose to investigate a certain optimization technique in computer graphics. The impressive title of my thesis was: Space-time ray-tracing using ray-classification. I occasionally get the odd email about it, and the ftp server at Macquarie Uni that housed my paper, code and animations is now gone, so…

The start of this worker thread

I was reminded by BMC today of the beginnings of my working life. He and OJB were outstanding mentors for me in my padwan years. I still use their advice every day, particularly the most useful insight BMC ever imparted to me: Don&rsquo;t mix your busies and your busies. I interviewed for that job in late 1996, and started in January 1997. Knowing that they were looking for someone to jump with…

About

This is my site on the net. I am Matt Quail (a.k.a. Spud). About Matt Quail I&rsquo;m a co-founder at Two Muffins. I was once a code poet for Atlassian (formerly Cenqua). You can contact me on spud [at] madbean [dot] com. I&rsquo;m on Mastodon @spuddy. I was on Twitter: @spudbean.

JarWars

Back

Totally Gridbag

Back

Apache Foundation&#39;s exponential rise

I&rsquo;m sure we are all aware of the Apache webserver&rsquo;s dominance. But Apache is just not httpd, it is a vibrant community of software projects. Well, I think we can just let this graph speak for itself: (click image for larger version) This is the line-count graph of Apache&rsquo;s CVS repository, generated using FishEye1,2. Random info about this data: This graph counts lines in any text…

Now for some coder gear you can really wrap you cheeks around

As I hinted at the other day, we have been secretly working on some killer products, and we are now ready to release them. If you are into XP, then you really need to be into XP&hellip; if you know what I mean. That is why I&rsquo;m so excited about our new PairOn (archive) product. Love the one you&rsquo;re with baby, love the one you&rsquo;re with. But of all our new product line-up, it is The…

FishEye goes 1.0 ... but wait there&#39;s more

So FishEye finally goes 1.0, and I&rsquo;m all full of heady yay-for-going-one-dot-zero-ness. Some people have commented that FishEye 1.0 has been a long time coming, but the secret is that we have also been working on a killer tool that will revolutionize the way you write code. And if you are into XP, then we have got some sweet, sweet gear for you too. I can&rsquo;t comment much more at the…

Spore: If they sell it, I will buy it

We all thought that was cool. But Wright wasn&rsquo;t done yet. Spore: If they sell it, I will buy it.

1111111111

Revenge of the T

Watch animation. Just heard on the grapevine that they are going to ship a special &ldquo;Java enabled&rdquo; plot-line as one of the extras on the Star Wars Episode III DVD. Trailer attached. For over a thousand generations the *casting* knights were the guardians of peace and justice in the old *JDK*. Before the dark times. Before the *Tiger*! (You can view the real Episode III trailer at…

java.util.regex.Pattern StackOverflowError&#39;s on (x|y)*

I&rsquo;ve been doing a fair whack of regex processing in Java recently. I must admit that having a regex library in the language is very useful, and Java&rsquo;s java.util.regex.Pattern implements a very complete regex library (all the &ldquo;Perl5&rdquo; stuff, non-greedy quantifiers, Unicode character classes, etc). So I was completely surprised when it started throwing StackOverflowError. The…

A perfect example of how IDEA *just works*

People I know who use Eclipse ask me why I use IntelliJ IDEA, when Eclipse is really good and free. Well, it&rsquo;s little gems like the following that put IDEA miles above anything and everything else. And you don&rsquo;t even have to know what all the gems are, they just appear when they need to. I was writing some unit tests for some new code, and one of my tests was failing.

Totally Gridbag

So, I figured I&rsquo;d make an animated weblog&hellip; thing. Watch animation. (Music: CeeCee. Thanks to: bph.)

Rolling on the floor

Seeing Inside Jack Youtube today made me laugh-out-loud. But I didn&rsquo;t start rolling on the floor until this happened: First I hear a crack which was enough to scare four kinds of crap out of me. And then next thing I know I&rsquo;m on my arse, on the floor, wondering &ldquo;What the&hellip;? What the!?&rdquo; Maybe I should cut back on the muffins.

Company name refactored

The team decided we needed to spruce up our website a bit, and we didn&rsquo;t stop refactoring &rsquo;till we ended up with a new company name. We are now Cenqua (pronounced SEN-kwa). We used to be &ldquo;Cortex&rdquo;, or &ldquo;The Cortex&rdquo;, or any one of a number of other variations that turn up millions of hits on Google. But now we have a nice, Google-friendly name. BPH tells me this is…

Lucene made my app embarrassingly fast

Inverted index, Dictionary compression: Lucene&rsquo;s swift hand strikes. God damn Lucene is fast; no, like, really fast. Faster than should be possible. Even too fast. Embarrassingly fast. &ldquo;We can&rsquo;t implement that feature, it will be too slow&rdquo; I&rsquo;ve been putting the finishing touches to our new product, getting it ready for its first public demo (ob-plug: If you use CVS,…

OutOfMemoryError

I recently spent an exhausting day tracking down a memory leak problem. It wasn&rsquo;t the hours and hours working out a recipe to reproduce the problem that finally got to me. It wasn&rsquo;t finally realising that the problem was being caused by a third party library (not my fault!) that finally got to me. You can be debugging and debugging for hours and hours, and you can be assured that it…

Talking Tiger, generically speaking

Maybe Java Generics (JSR 14) adds too complexity to programming in Java, maybe it doesn&rsquo;t. Maybe there was too much partaking of the generics Kool-aid. Whatever. You are going to have to learn to read Generics code, and maybe even how to write your own Generic classes. Hopefully this article will push those code-grokking neurons in the right direction. (Dang namit: &ldquo;generic&rdquo; is…

Groking Enum (aka Enum E extends Enum E )

Enum&rsquo;s named constants; No more tricky integers. Tiger pounces here. So, yay! The tiger beta has been released, and implements JSR 201 (currently in public review). 201 includes the new enum language facility, so I thought I would have a play around. The results follow, for those who dare to tread &ndash; the tiger pounces here. Diving in Here is an example of some code defining and using…

The final red pill

It ends tonight. It ends tonight. See this Slashdot article for trailer downloads (or thematrix.com). I love these movies.

[PPOYCTJD] My cat...

Note: This was written in honour of Post pictures of your cat to Javablogs Day (PPOYCTJD). This is a picture of my cat. Okay, sure, it&rsquo;s not a cat. I mean, most cats aren&rsquo;t green, aren&rsquo;t they? Yep, that&rsquo;s right, it&rsquo;s not my cat, it&rsquo;s my kermit. But it is sitting on the lounge. And I could probably squirt water at it if necessary. Would that help? Also in the…

Playing jokes on other developers

On the subject of developer morale, I was just reminded by a friend of a joke he played on me while at University. A cruel, cruel joke. We were doing a group software engineering project together, and we were in the middle of &ldquo;code crunch&rdquo; mode. I was trying, trying, trying to track down a NULL pointer bug. I was at it for freaking HOURS. I had even come in early to the computer labs…

Ant&#39;s cool morale booster: splash task

Spotted the use of the <splash> task in the Hibernate build.xml today (via BPH). So of course I had to add it to Clover&rsquo;s build file. You can see the results in the following screenshot. The <splash> task shows an image and a progress bar while the build is executing (the image can even be an animated .gif). This is cool and fun, but &ldquo;cool&rdquo; is not the only reason why I added it…

On verbosity, Ant&#39;s syntax and XML

I&rsquo;ve been tweaking quite a few Ant build files at work in the last couple of weeks. Firstly, thank crap for IDEA and its Ant completion mode (Eclipse has a similar mode). Also, being able to comment out a whole XML block with Ctrl-Shift-/ is nice, too. Secondly, there is a certain amount of noise in an Ant XML file. Now, I know that I recently made noises myself in defence of Ant&rsquo;s…

Matt&#39;s first law of software complexity

The first law of thermodynamics states something like this: the total energy of the system plus the surroundings is constant. Or basically energy is conserved; it cannot be created or destroyed, just moved around. This first law is an important realization for chemists/physicists, and underpins the way they look at problems. I think there is a similar realization that can be made regarding the…

UPDATED: The world&#39;s best cut-copy-paste preventer

(Greets: Conor, OJB, Malcolm and BPH.) UPDATED (2003-07-09T06:54:05+0000) Brendan has implemented this as an IDEA plugin Your innovation got me thinking - of a lateral solution - no hardware mods required. see attached :-)

BMC&#39;s four rules for meeting attendence

BMC has posted some of his thoughts on meetings. I used to work with BMC, and meetings never did seem to get in our way. BMC&rsquo;s four rules for meeting attendence: If someone hasn&rsquo;t spoken in the last 10 minutes at a meeting, then they shouldn&rsquo;t be there. If one person speaks more than 80% of the time, then it is a presentation rather than a meeting. Use email or voice mail to…

Code idiom: using logical ^ to change your mind

This idiom is a cool little trick, but I&rsquo;ve seen coders scratching their head trying to work out what it does; so a detailed explanation is in order. The ^ bitwise exclusive-or operator (or &ldquo;XOR&rdquo;) is standard computer science fare. An XOR is often used to flip bits in a byte/word. In Java, the ^ bitwise operator works on all the integer types (int, byte, short, char, and long)…

The first program I ever wrote myself

The other day, I recalled first program I ever wrote. Actually, I remember it distinctly. I was in Year 8 (aged 13 or 14) of high school. It was a bright warm summers day but cool and dark in the computer lab (the curtains were always closed on such days). Some mates and I had spent the last couple of weeks typing programs from books into the Apple IIe computers in the lab.

Code idiom: inserting a separator between the elements in a list

I use the following code idiom all the time. I know it seems simple, and I know there are other ways of doing it, but when I first saw it a penny dropped. Writer out = ...; List l = ...; String sep = ''; for (Iterator i = l.iterator(); i.hasNext(); ) { String s = (String) i.next(); out.write(sep); out.write(s); sep = ','; } You can see how this works:

First post

Just a test post.