A Sample Issue Tracker Spreadsheet

I put together a simple issue tracker spreadsheet for a project I was working on. Nothing fancy – just something to keep track of bugs, tasks, and sub-tasks without the overhead of setting up a full issue tracking system. The idea was to have something lightweight that anyone on the team could open and update without needing special software. You can grab it here: sample issue tracker spreadsheet It’s got the basics: issue type, status, priority, resolution, assignee, reporter, dates, and an SLA column. The sample data shows what it looks like with a mix of open, verified, and closed issues at different priority levels. ...

1 October 2011 · 1 min · 136 words · Shafiq Alibhai

Iomega Customer Service in India

A few months back I picked up a Prestige portable hard drive from IT dot COM, a shop in Margao, Goa. It worked fine for a while, then one day the indicator light started blinking and wouldn’t stop. The drive wouldn’t show up on any of the computers I plugged it into. I was in Hyderabad at the time. I looked up authorised Iomega service centres nearby and found none. None in Hyderabad, none in Secunderabad. So I waited till I was back in Goa and took the drive to the store. ...

28 September 2011 · 2 min · 281 words · Shafiq Alibhai

Replacing an IP address with sed

Sometimes you need to swap an IP address out of a file. Maybe you are moving a server to a new host, updating a config, or just tired of grepping through logs to find the old address. Whatever the reason, sed makes it trivial. The trick is matching the dotted-decimal pattern. An IP address is four groups of numbers separated by dots, so the regex needs to capture that structure. Here is the one-liner: ...

20 June 2011 · 2 min · 237 words · Shafiq Alibhai
Zap v3 v2344

Black & Blue — a free PSD template

This is a template I designed for Zap Web Online — a web solutions company that wanted a dark, techy look. The brief was fairly open: make it look fast, modern, and a bit futuristic. Hence the name. The layout is a fixed-width centre column on a textured metallic background. The header has the Zap Web logo on the left, a four-item navigation bar (Home, About Us, Portfolio, Contact) with blue highlight on the active tab, and a “Chat Live” button tucked into the top right of the banner. The banner itself is a glowing blue waveform against a black gradient with the tagline “Lightning Fast Web Solutions”. ...

16 June 2011 · 2 min · 256 words · Shafiq Alibhai

How I Built My First Website for My College

Hello everyone! Today I want to share with you the first project I ever did: the college website! This was a very old project that I did with the help of Subhash Dasyam. It was a great learning experience for me and I’m excited to tell you more about it. The Project The college website was a simple static website that showcased the information and achievements of our college, ASTRA. It had pages for the departments, faculty, students, events, gallery, and contact. It also had a login system for the admin and the students. ...

14 June 2011 · 2 min · 356 words · Shafiq Alibhai

Disable services in Solaris 10

Managing services on Solaris 10 is nothing like Linux. There are no /etc/init.d/ scripts, no service command, no chkconfig. Instead, Solaris uses SMF — the Service Management Facility — and everything goes through svcadm. If you are new to Solaris, this can feel unnecessarily complicated. It is not, once you learn the pattern. Disabling a service You need root privileges or sudo access. The command is: svcadm disable network/cswpuppetd:default The argument is the service FMRI (Fault Management Resource Identifier). For Puppet installed from OpenCSW, the FMRI is network/cswpuppetd:default. The :default part refers to the default instance of the service. Some services have multiple instances, but most only have one. ...

23 May 2011 · 3 min · 428 words · Shafiq Alibhai

Puppet logs on Solaris 10

Puppet on Solaris 10 stores its logs in the SMF log directory, which is different from the /var/log location you might be used to on Linux. If you are looking for the usual log files and cannot find them, this is probably why. Agent logs The Puppet agent (puppetd) runs as an SMF service, and its log is at: /var/svc/log/network-cswpuppetd:default.log To watch it in real time: tail -f /var/svc/log/network-cswpuppetd:default.log Master logs The Puppet master (puppetmasterd) follows the same pattern: ...

19 May 2011 · 2 min · 257 words · Shafiq Alibhai

Release Engineering 101 — Using Version Control System (Subversion)

The build script from the last post turns your source code into something runnable. But it does not tell you which version of the source code you are building. That is where version control comes in. I am going to use Subversion for this post because that is what most of the projects I have worked on have used, and it is still the most common version control system in enterprise Java development. Git is fine for other kinds of projects, but the concepts here apply regardless of which system you choose. ...

11 May 2011 · 6 min · 1067 words · Shafiq Alibhai

Notes on Build Scripts — What I Learned the Hard Way

I wrote my first build script in my second year of college. It was a shell script that compiled a few Java files and copied the output into a folder. It worked. For that project, at least. Three years later, working on a team project with five other developers, I realised that script was useless. It assumed a specific directory layout. It assumed a specific version of the JDK. It assumed nobody had moved the source files. It assumed the build machine had the same libraries installed as my laptop. It assumed a lot of things, and every assumption was a potential failure point. ...

9 May 2011 · 6 min · 1078 words · Shafiq Alibhai

Release Engineering 101 — Build Scripts

Every project I have worked on, from small college assignments to larger team efforts, has eventually hit the same wall: someone runs the build, something breaks, and nobody knows why. The code was fine five minutes ago. The build server is down. The classpath is wrong. The compiled output is three versions behind. It is frustrating, it is wasteful, and it is entirely preventable. The fix is a build script. ...

7 May 2011 · 4 min · 791 words · Shafiq Alibhai