Upthrust

This is the weblog of Milinda Pathirage

Category: Programming

Architecting Systems for Scale

With the recent advancements in cloud technologies some people think that cloud will solve their scalability issues and it’s easy to achieve scalability using available cloud technologies. But it’s not true. Building scalable systems are hard, you need to understand what your problem is and you need to plan your scalability architecture based on that. [...]

C, The Beautiful Language

On slow days, I’ll poke around the kernel, sched.c, page_alloc.c, etc., and it very much feels like I’m peering in on a living thing. I can see the code steering the execution, the logic funneling the energy of the program, and even though I’m not a kernel hacker, I can almost get the gist of what [...]

Slowed Down by Messy Code

Messy code can be result of not getting the abstractions right, violating single responsibility principle, not writing simple and direct code and various reasons that I haven’t mention(Want to know more, read “Clean Code“). I  was slowed down by messy code I have written sometime ago. The code I wrote without taking abstractions and module boundaries into [...]

Configure JDK Documentation in IntelliJ IDEA on Mac OS X 10.6.x

I began to use Macbook Pro as my personal laptop couple months ago and most of the work I am doing involve Java. I am using IntelliJ IDEA as my Java IDE and I had a issue with documentation popups that shown during code completion for JDK classes. I only saw compiled signatures and I [...]

Literate Programming

I believe that the time is ripe for significantly better documentation of programs, and that we can best achieve this by considering programs to be works of literature. Hence, my title: “Literate Programming.” Let us change our traditional attitude to the construction of programs: Instead of imagining that our main task is to instruct a computer [...]

Why Tools Are Important For Middleware?

In the first quater of 2009, we released first version of WSO2 Business Process Server(BPS). And we released WSO2 BPS with experimental BPEL4People and WS-Human Task support in first quater of 2010. But we did a big mistake by not releasing proper tools at both times. This lead to several problems, like usability issues for [...]

SSL Debugging

There will be situations where you need to debug SSL connection when dealing with Web Services security and other client-server scenarios which uses SSL for security. Following two articles from Prabath describes various methods and tools out there for SSL debugging. In addition to normal SSL related scenarios, he specifically talks about how you can [...]

Objective-C Concepts

Objective-C tutorial on Cocoa Dev Central is a great place to start with Objective-C. This is not a normal hands-on guide, but it’ll help you lot to understand basic concepts if you are new to Objective-C.

The Two Things About Computer Programming

Computer programming: Every problem can be solved by breaking it up into a series of smaller problems. The computer will always do exactly what you tell it to. Software Engineering: Writing the code is the easy part. Writing it so someone else can understand it later is the important part. Make it work, then make [...]

Notification Script For Maven Builds On Mac OS X

This post describes a way to trigger a notification sound and notification bubble when Maven build is finished in Mac OS X.