Thursday 22 November 2012

Raspberry Pi

Just bought my first Raspberry Pi, model B. Not sure yet what for, yet. But I just liked the idea of playing with it. Will need to look for ideas.

Saturday 17 November 2012

New tools

This last week my company finally got my department licenses for Resharper and LinqPad. Ecstatic is the word.

Not just for having the tools (which will be useful) but because they have spent the money. What we do is important and we are getting some support now. We have have even increased the size of our department by 60% (well, it was a small department)

With the consent of my boss (the development manager) I am introducing procedures, practices and tools that will be beneficial for us. Before there was nothing. We are finally doing unit testing with NUnit, we finally have a branching strategy, we use stylecop, we have daily and weekly meetings, ...

All this is leading to, on one side, a better environment where to work (we all agree on that) and, on the other side, making the internal tools that we develop more efficient and robust (soon we should start seeing tangible benefits). Our morale is high.

It is going to be a long road, but I am happy to be at the beginning (so I can see the difference between the before and after) and be the driving force behind it. I've been looking a long time forward to introduce what other lucky developers consider standard.

Friday 19 October 2012

Be a cow

A colleague just mentioned that reading code from a big application is like staring like a big field of grass, boring and daunting. My answer was: be like a cow, concentrate on a small patch and eat it, then go to the next, then to the next. It becomes more manageable.

Saturday 30 June 2012

The Ethernet Wars

Well, got CentOS installed. Got a couple users created and then I realised that I couldn’t connect to the network. As my knowledge of Linux is lost, a quick check in internet to find the lspci command, opening the server to check what kind of board I had and finally got to the on board ethernet card. Well, the onboard ethernet is an Atheros, who doesn’t seem to interested in releasing Linux drivers. I found some possible driver, which lend me to learn to use yum (easy peasy, as long as you know what you want to install) to get the kernel source and the development tools installed. And, of course, the compile filed.

Although at some point I will want to sort that out, my priorities are other. Therefore, I have ordered an Edimax Network Card that has Linux Drivers. Let’s see when it arrives.

Interesting story about this. I could say that I have always been applying Nemawashi (yes, I’m reading The Toyota Way). But the reality is that I’m impatient once: I have taken a decision, I want it to happen as soon as possible. To get the network card as quickly as possible the first port of call was PcWorld, because is big and I know where is located … and their selection of network cards is dismal: just of one brand, of which I wasn’t sure it supported well Linux (certainly their website didn’t have available drivers to download). So I checked Amazon, and I could get a guaranteed next day delivery. And that is what I have done.

Meanwhile, I should use my USB stick to get X-Planner, Bugzilla and Mercurial installed. The quicker I get this phase done, the quicker I can get to the meat of what I really want to do … code.

The first step

Well, finally I have started my linux server project. It has only taken like 4 years since it came to my mind. But while before there was no reason behind it to do it, now there are specific reasons. Although the way I reached to those reasons has been a bit unconventional.

The initial thoughts


I’m trying to compliment what I do at work as programmer analyst, and hopefully soon as System Analyst, to increase my experience, broaden my skill set and, why not, been able to show to current or prospective employers that I have the necessary ability to do certain projects. For that, I decided a couple of small applications that I want to do. Then I decided to actually plan myself properly, otherwise I lack the focus to carry out pet projects at home. I did investigate several project planners out there. After some consideration I decided to set with X-Planner Plus.

The setup


Now, my current personal computer is a MacBook Pro with Win 7 in BootCamp. X-Planner has only instructions to install on Linux and Windows. I have not checked if I could make it work on Mac Os X. Which basically gets down to MySql and Tomcat, as X-Planner itself is done on Java. I did install it on my Win 7 installation. And then I realised that the two initial projects that I wanted to create where for Mac (will use them to learn Objective-C). Which means switching back and forth. Could have looked into installing X-Planner into Mac, but then I decided to do it “properly”.

Therefore, I quickly gather some requirements for a server:

  • Has to be cheap (all the other decisions that I have here have this in common).
  • It has to have a decent amount of RAM
  • It has to have a big hard drive (will server as repository/backup until I get a NAS system)
  • There is no need of a monitor (I have a spare monitor and I can connect to the TV)

So, I looked online and got at Currys an Advent DT2204 for £300 to be used as a Linux Server. 6GB RAM and 1 TB hard drive. Ticked the boxes that I wanted to cover. Mind you, I could have looked online about the compatibility with Linux. But then, I could fudge my way around for the time being (which, in fact, I will have to do).

Then it came to a decision of OS. And again: It has to be cheap. But is more than that:

  • It has to be cheap
  • At work we use a Microsoft stack, so I will want to get out of it as much as possible
  • There has to be relatively good support and documentation, as I don’t want to spend that much time on configuring the server.

The only one to tick all three was Linux, and from all the possible options I went with CentOS, which is based on Red Hat. It is not at the top of the technological curve, but I didn’t want it to be. I want a stable server, and using a fork of a very stable Linux distribution I think is a good idea. I think if I was creating a company, I will get Red Hat as my server OS.

Now, as I’m explaining why I’m choosing the different components, I should explain why I choose X-Planner:

  • Has to be cheap
  • I should be able to install it on my computer, can’t be hosted by a third party
  • I should be able to use it from more than one computer / OS

And there were not that many options covering all requirements. So X-Planner was the chosen one. It forces you to install both MySQL and Tomcat, which doesn’t mean that I will use them in future projects (maybe will look to other options, don't know yet). That decision will be taken when needed on a per-project basis.

So only two things left to choose to have all the necessary tools: a bug tracking system, and more importantly, a source control system.

For the bug tracking system I had already in my mind Bugzilla. Still covers my requirements:

  • Has to be cheap
  • Has to be outside of the Microsoft stack
  • I have to be able to install it on my server

For the source control system similar requirements were made:

  • Has to be cheap
  • Has to be outside of the Microsoft stack
  • I have to be able to install it on my server

There was as well a desire, though not requirement, of being a distributed source control. I am already using a Server-client architecture at work, no need to do the same, if I want to broaden my skills. So Bazaar, Git and Mercurial will be the main competitors. And I choose Mercurial. Reasons: The learning curve is not as steep as Git, and I have dabbled with it before.

The chosen ones


So configuration of my server once everything is installed:

Probably will end adding things as I fiddle with different technologies/projects.

Now, to fix the ethernet on-board card that is not working (gotta love Linux :-p )