OJ’s rants What would OJ do?

25Jun/108

BFPG June Meetup

Erlang LogoThe time has come for another meeting of the Functional Programming minds! This months BFPG Meetup, starting 6pm Monday 28th, is the first one at our new venue: Microsoft HQ, Waterfront Place, Brisbane. For details on the location, take a look at the BFPG about page.

Erlang LogoThis month we have three speakers, and I am one of them! In my talk, "Erlang - Why should you care?", I will be giving a fairly non-technical introduction to Erlang. I'll be covering off the features of the language, some of its design goals and its history. I aiming to show that this language is not one that was spawned out of academia and that it has been applied in the real-world ever since its conception. If I have time, I'll also be giving a small demonstration of one of the neatest features of the technology.

Erlang Logo
I'll be posting the slides and demonstration code here on this blog as well as BFPG's home after the meetup has taken place.

Myself and my comrades, Tom and Tony, will aim to provide a fun and interesting evening at our new venue. Based on the RSVPs so far, it looks like we are going to have one of the biggest turn-outs to date. This is probably due to the exposure we got during last month's talk by Dave Thomas. There are still plenty of spots left, so if you're keen to come along, go and sign up. Bring your friends, your friend's friends and your mum.

I hope to see you there!


Update (6th July 2010): We had a fantastic turn-out of just short of 50 people (a record breaker for the group so far!). My talk seemed to be fairly well-received. No rotten tomatoes were thrown and the crowd seemed engaged through most of the talk. It felt good! I think many people wanted to see more code, but since that wasn't the focus of the talk they were a little disappointed. If people are keen for more Erlang goodness at future meetups, then I'll be happy to dive a little deeper.

As promised, here are the slides:

  1. PPTX
  2. PDF (Google Docs)
  3. PPT (Google Docs)

If you have issues reading the slide deck, or would like it in another format, then please drop me a line.

22May/100

Dave Thomas at YOW! Nights Brisbane

Haskell LogoTwo nights ago I was fortunate enough to attend a YOW! Nights conference held at the local Microsoft Office here in Brisbane. The speaker for the session was none other than Dave Thomas, the man behind the likes of ObjectMentor. Not only is this guy incredibly switched on, he is thought-provoking and very entertaining to boot. I've been to a few of these sessions in the past but I've never seen one as packed out as this one. It was great to see such a turn-out, which no doubt was boosted by the presence of both the Queensland MSDN Users Group and the Brisbane Functional Programming Group.

14Mar/109

The Issue of Perception

What is Perception?

As cheesy as it sounds, I'm going to start off with a definition ripped straight off Dictionary.com:

per·cep·tion

–noun

  1. the act or faculty of apprehending by means of the senses or of the mind; cognition; understanding.
  2. immediate or intuitive recognition or appreciation, as of moral, psychological, or aesthetic qualities; insight; intuition; discernment: an artist of rare perception.
  3. the result or product of perceiving, as distinguished from the act of perceiving; percept.
  4. Psychology. a single unified awareness derived from sensory processes while a stimulus is present.
  5. Law. the taking into possession of rents, crops, profits, etc.

A classic EscherTake a moment to digest the meaning of the word. Can you see how subjective it is? One's perception varies greatly depending on the observer. The motivation of the observation is also going to skew how one is perceived. The relationship one has with the observer is also going to impact how that observer perceives you.

Finally, it's important to note that what was perceived and any point in time is not necessarily the same as what actually occurred.

2Mar/1031

I’m so impressed I want to pay you less

Slave driverThe title of this post is a statement that I've heard a few times in the past while at work. The people who said it might not have used those exact words, but the intent is the same. Usually I hear it in the following form:

"We're very happy with the work you've done for us as a contractor. We want to keep you on, but would like you to take a job as a permanent employee and continue to work on the project."

Once they've made this point, they then feel the need to harp on about the good points of becoming a permanent employee. Things such as job security, sick/annual leave and better hours tend to get mentioned. All of them are complete bullshit of course.

There is no such thing as job security. Sick and/or annual isn't enough to make up for the difference in pay. Hours tend to always be worse when you're working for the man, because you're expected to do whatever needs to be done regardless of the hours. This is worse if you're working on mission-critical stuff.

5Feb/100

Truncated Pages

Not too long ago I mentioned that I'd setup and installed Nginx on this server. All seemed well to start off with, then on certain occasions I started to notice that some pages were being served truncated while I was at work. I thought that the issue was work-related, as they have a fairly draconian security policy in place and I thought that it had something to do with severing the connection.

This assumption was proved false a few days ago when I received an email about my Trac/Mercurial/SSH post not rendering properly in someone else's browser. Dammit!

So this time I actually did a bit of research by delving into the log files (yes, I know.. genius isn't it!) and determined that there was indeed a problem. Thankfully it was fairly simple to resolve. For some reason the fastcgi instances were failing to function periodically when attempting to access a folder on disk. In short, some of the temp folders were owned by the right user, and some of them weren't. After modifying the ownership of the appropriate folders, everything seems to be running nicely.

Yet more proof that the admin is an idiot.

If after I post this you notice any truncation at all across the site, please let me know! Cheers!

Tagged as: , No Comments
28Jan/1015

The Wrong Decision by the Wrong Person

The wrong tool.There is one thing about my industry that I still find truly amazing (and not in a good way). This is despite the fact that it has happened to me so many times that you think I'd be used to it! I'm talking about non-technical people making technical decisions.

For some reason, it's a very common practice for those people who don't have expertise in a certain field to make decisions for people working in that field. The best example I can think of off the top of my head is the answer to the question: "Which technology should we use?"

Let me take a step back in time for a moment.

4Jan/102

Katacast: Shopping Checkout in Erlang

I've recently discovered the joys of CodeKatas. If you're a geek looking for a way to sharpen your saw then I highly recommend taking a look at these and trying a few out. They're great fun and they're a good way of getting your feet wet with new languages (especially if you're tired of Project Euler).

11Dec/098

It’s OK to Fail

Epic FailYes. You read that right. It's OK to fail. Yes, I am talking to you. You... that guy who is part of every team. The one who seems to feel the need to be right about everything. The one who thinks that everything new has already been done 15 years prior. The one who believes that every project they have participated in has been a profound success, and that a project-level failure (which includes missing deadlines or blowing the budget) is something they have never experienced. Failure is not only OK, it's something that you must experience somewhere along the way so you know when you've succeeded.

31Oct/0925

The Future is Erlang

erlangFor quite a while I've been using my spare cycles to chew over a problem. This problem is not one that hasn't been solved before, but one that I feel can be solved in a much better way. From the bit of research that I've done, I can see at least three areas which can be improved on dramatically. So I've decided, after a long period of deliberation, to go ahead and build my solution and release it to the world as a service!

I know, this kind of thing happens thousands of times a day. Some arbitrary geek decided to build the next killer app and expects to make a crapload of cash out of it. While that would be nice, the ultimate goal isn't the cash. The goal for me is to build something that gets used, and for me to begin to master an area of technology that I've had a quiet passion for for a long period of time now.

My plan is simple. While learning the technologies that I will be using I'll be building another application and blogging about it so that all of you can learn with me. Meanwhile, I shall use my learnings to build this other application at the same time.

The final result should be a series of posts which help other people learn the technology stack, give better coverage and visibility to languages and technologies that a lot of the geek world doesn't know about (and really should!), and for me to carve myself a bit of a niche here on the East coast of Ozland. I am hoping to be able to consult my services out to other businesses as a result.

For those that are interested in following along, here is the full tech stack and toolset that I'll be using:

  • Erlang - A fantastic cross-platform functional programming language that has some amazing features.
  • Webmachine - A HTTP toolkit which sits on top of Mochiweb that makes it easy to build well-behaved HTTP applications.
  • Nitrogen - An Erlang-based framework that makes it easy to build websites.
  • Riak or CouchDB - Both of these amazing pieces of tech are potential candidates for the back-end storage. I'm not yet sure which one I'll go with.
  • jQuery - A great JavaScript library for the front-end.
  • VIM - My favourite text editor :)
  • Xubuntu - Ubuntu Karmic Koala with XFCE as the window manager.
  • Mercurial - My favourite version control system.
  • Trac - A project tracking tool.
  • VirtualBox - My choice for virtualisation. I tend to run Windows 7 as my primary OS, so most of my dev will be in a VM. When I get my desktop machine back up and running (with all three monitors!) it'll most likely multiboot Win 7 and Xubuntu.
  • Google Wave - I'll be using this for communications with some really switched on people in the Erlang community who have kindly offered to help me with questions and whatnot specific to some of the areas of tech I've mentioned above.

During the course of my blogging/learning I'll be focussing on Webmachine, Riak/CouchDB, Erlang and Nitrogen. All the other tools will probably get mentioned along the way, but the primary goal is to focus on these things.

I'm really excited! I'm currently in the process of documenting my goals and the design for the main application. Once that's done, I'll get started with the fun stuff. I've got a lot to do and it should be a fun ride. I hope you enjoy following along!

10Sep/0912

Now Running Nginx

clarkson_faceFor the last couple of years, the server which has powered this site (and a few other sites) has been running the free version of Litespeed web server. After feeling the resource burden of Apache, Litespeed was a breath of fresh air! The fact that the "full" version wasn't free didn't bother me, I was happy to stick with the standard edition as it seemed more than capable of handling the meagre traffic that this site generates.