Setting up Trac, Mercurial and SSH on Windows
WARNING - This blog post is long
This post has been edited since it was published. Please see the end of the article for any notes/modifications
Some Background Info
I had the need to do this for work recently. It was nothing short of a right royal pain in the butt. It was such a pain, in fact, that I have decided to document what I had to do to get it working so that other poor unfortunates will feel less pain if they have to do this themselves.
Almost regardless of the company and the software I'm working on, I use Mercurial for source code control. For the work I am doing at the moment, I was also using hg because the company I am involved with is relatively new and they hadn't yet sorted out a plan for version control or ALM. It was working quite well and I was pushing all my changes to my NAS box to make sure I had other copies backed up, etc. I was living the dream
.NET-fu: Signing an Unsigned Assembly (without Delay Signing)
This article is also available in: Italian
The code-base that I am currently working with consists of a large set of binaries that are all signed. The savvy .NET devs out there will know that any assembly that's used/referenced by a signed assembly must also be signed.
This is an issue when dealing with third-party libraries that are not signed. Sometimes you'll be lucky enough to be dealing with vendor that is happy to provide a set of signed assemblies, other times you won't. If your scenario fits the latter (as a recent one did for my colleagues and I), you need to sign the assemblies yourself. Here's how.
The Magic of Unity Builds
I realise that as time goes by, people are using my beloved C++ less and less. .NET (C# and VB.NET) and Java seem to be taking over the mainstream coding world. Languages such as Ruby and Python seem to be taking over the scripting world. For the most part, C and C++ seem to exist only in the gaming/entertainment, real-time and driver worlds.
In many colleges and univerties C++ is no longer taught as a core subject (along with Assembly language) which I find quite galling. It's a great language to learn, even if you never use it again. But the purpose of this post is not to preach the virtues and failures of the C++ language, but instead to talk about something that might aid those people who are using C++.
Avoid Writing Unintuitive Code
This blog post was inspired by a brief chat I had recently with Kirupa of kirupa.com. I subscribe to his blog's RSS feed as he comes out with some really good stuff. His recent post which showed a way of shuffling a List of strings (using C#) inspired a bit of thought on the topic of code readability, how and when it's learned (if at all) and why there is so little of it around.
Code quality and readability is something that isn't necessarily learned at University, nor is it something that can be mastered in a short period of time. It is something that anyone can learn. The main ingredients that are required are a bit of self-scrutiny, and the removal of the assumption that working code is the same as finished code.
And Help You I Shall!
My previous post on constructing meaningful questions was inspired by years of frustrating experiences on forums and bulletin boards, but it wasn't until I had a chat with me ol' mucka Dan that I realised that there are actually quite a few cases where good quality questions are given inappropriate or completely misleading answers.
The intent of this post is to cover that side of the argument. How do you give a meaningful answer to a well constructed question?
Creating Concrete Objects
Being a fan of OOP, I tend to write a lot of object-oriented code. Coming up with a meaningful object model that behaves in an appropriate way is just as important as having a meaningful interface to your objects. A concrete object is an object that actually behaves in the manner you'd expect without any wierd side-effects, and has the same kind of attributes that you'd expect of a primitive data type.
Creating concrete data objects/classes is a good thing to do, as it reduces the probability of bugs, and crazy side-effects. It's also an important first step in writing intuitive code - which will be the topic of a later blog post.
Help Me Help You!
Help!!
I need somebody...
Help!
Not just any body...
Help!
You know I need someone...
HEEEELP!
I have lost count of the times I've heard this (and not just when playing The Beatles). In fact, to be honest, I never kept count, but I know it's a lot.
On a daily basis I lose a fair bit of time helping my workmates. I get asked for help while I'm on IM from various "students" and friends I have around the web. I also get to help out family and friends on a regular basis face to face when I vist them or they visit me. I'm basically a constant source of solutions for I.T. and development related problems.
This is something I like! I enjoy helping people solve their problems. I enjoy helping them learn about something they don't know enough about. I like to see them take their new knowledge and apply it to other problems. It's a very satisfying experience.
Becoming a Geek Part 3: The Game Geek
Welcome to the next in the Becoming a Geek series. Today I'm going to cover the areas which I think a budding Game Geek needs to be adept in for him/her to be a true Game Geek. I'd like to make a clear distinction from the start that the Game Geek is a different beast to a Game Development Geek, and hence I won't be covering the development side in this post. I will, however, be covering the game development details in a later post in this series on the Development Geek.
Becoming a Geek Part 2: The Web Geek
Welcome to part 2 of my Becoming a Geek series. If you haven't already read part 1, I suggest you read it first. Before you can be a web geek, you'll need to be a General Geek. If you're already on the way to becoming a General Geek, here are a stack of hints to help you become a Web Geek.
Becoming a Geek Part 1: The General Geek
Contrary to popular belief, there are many types of geek. In this series, I'm going to give some basic tips on how to become one! This is the first part in the series, and so I'm covering the 'General Geek'.
Before I even went to university to get qualifications to become an official "paid" geek, I put a great deal of time and effort into tuning my skills in other areas that would help me excel at my job. Below is a list of things that I did which I believe really helped me achieve my goal, and I would recommend doing the same if you're looking to become a paid geek yourself!