Sunday, March 02, 2008

Can't select Debug or Release configurations in Visual Studio 2005?

When you first install Visual Studio Express, it avoids confusing beginners by hiding the build configurations. Of course, this confuses the people who understood it already...

  • Select 'Tools->Options' and if it's not already checked, check 'Show all settings'.
  • Now choose 'Projects and Solutions' and check 'Show advanced build configurations'.

Perhaps now that I've blogged it, I'll remember it next time... :)

Saturday, February 16, 2008

OpenSVN Review

UPDATE #2: Assembla is no longer free, so I looked for other options and I've switched to XP-Dev.com.

UPDATE #1: Following writing this review, and the suggestion in the posts below, I looked into using Assembla. I've now been using it for several months for version control for home. I find it very fast, and haven't seen it go down once. I highly recommend it!


ORIGINAL POST:

I recently bought a laptop, so that I don't have to be sat at a desk to ruin my eyes. I wanted to use my laptop for a bit of coding, but Perforce, the version control system I had been using, was installed on my desktop machine. This meant that my desktop had to be turned on, for my laptop to be able to check things in and out. This bugged me, so I started to look for solutions were my source could be hosted online.

There are lots of companies out there who will host your source code. They mostly use the open source systems CVS and Subversion (also known as SVN). Some companies charge monthly, with increasing fees for increasing server space and/or numbers of users. Some have a 'free' service, but the restrictions are pretty tight. If you're interested in open source development, and don't mind the world seeing your code, then there are other free hosting options out there too.

I found one SVN hosting site which was completely free, didn't have tight restrictions, and didn't require that your code is open source - OpenSVN (OpenSVN.csie.org). It's operated by some students at National Taiwan University. As I'm always interested in a bargain, I thought I'd give it a try. After 5 weeks of using it, here are my thoughts:


  • The presentation on the OpenSVN site is poor. The other project hosting sites, with their art work and stock photos of people pointing at monitors, make you feel a lot more comfortable about putting your valuable source in their hands. Plus the OpenSVN site has some kind of bad certificate, which makes IE7 give dire warnings.
  • After the initial setup of the account, you don't need to go back to their site. Just use TortoiseSVN (or a similar windows client) to manipulate your files. I chose TortoiseSVN, and after a short learning period, I really like it.
  • The server has been down on four days of the 5 weeks that I've been using it. This hasn't caused big problems for me, as I just code on my own, for fun, and am OK waiting for them to fix it. If however I was working in a group, at a serious development company, this level of down-time would be unnacceptable.
  • I've not needed tech support, but doubt that whatever they provide would be on a par with what a professional hosting company could provide.
  • Initially I was a bit concerned about whether it would be too slow. I've found it to be fast enough for my needs - just checking in/out relatively small amounts of code. I'd say it takes about 15 seconds to either check in, or get latest, for an average amount of change. If however you were thinking of storing larger binary data (e.g. textures) then it may be worse.


Overall, OpenSVN is OK. I find the occasional down time acceptable, considering that it's free. If you use it, I recommend that you also make your own backup procedures, and not rely on theirs. For home development, when it comes to backing up a version control system, I'm of the belief that it's OK to just back up the last good version. If the history gets lost, then it's just tough turkey.

If you're new to SVN and hosted version control, then it's a good idea to use OpenSVN first so you can get a better feel for what your needs are before shopping for a commercial/reliable service.

What do you use?

Friday, February 01, 2008

Version Control at Home

If you spend time programming at home, I strongly recommend using some kind of version control system, such as CVS, Subversion or Perforce.

Basically a version control system is a repository which stores a history of all the major versions of your source files. You can modify a bunch of files, and then 'check them in' together. Since the system knows all the versions of your files, you can do things like:
  • Compare different versions of a file, to see what changed, and when code was introduced.
  • 'Get' and old version of all your source. This can be handy if your code stops working, and you have trouble working out why. You can go back, find the version which last worked, and then compare the versions.
  • Discard the changes you've made since you last checked in, reverting back to the last good version. This is one of my favourites :)
You can also do more advanced things, like branching the code base. This can allow you to keep a stable branch, if you're going to attempt some big/risky changes.

CVS and Subversion are both free. Perforce is free for small scale personal use (2 users max). Perforce is quite popular in gaming companies too. I use Perforce at work, and so decided to use it at home too. Installing a version control system can be a bit daunting, but there are good tutorials out there if you look.

I don't recommend version control to the absolute beginner, it's better to focus on learning the language and making little sample apps. But if you're going to work on one program, for a while, then I recommend it.

Friday, January 25, 2008

Gateway T5450 Laptop M-6750 Review


I recently picked up this laptop on sale at Best Buy (of all places!) for $750.


Pros:

- 3GB of ram is great. (It means less disk thrashing, which means faster performance)

- 250 GB HDD (minus a bit for some fluff) is a good amount of storage.

- The 1.66 GHz Core 2 Duo seems good enough for my needs. The large memory helps keep it fed.

- Generally, I find performance in Vista to be fine, including with the fancy Aero interface running.

- It's lovely and shiny. The red lid, and wrist rest area look great. It's got a brushed steel look around the keyboard. The screen is one of those high gloss ones (which worried me at first, but I now like). Plus Vista looks pretty. All round, it's a lovely machine to look at.

- It's nice having the built-in webcam and microphone for Skype.



Cons:

- The 'Fn' key is in the corner of the keyboard, instead of the left 'Ctrl' key, as it is on most normal keyboards. This means I'm constantly messing up copy/paste type operations.

- The built in speakers are really weak, though this is true for most laptops.

- The integrated / shared memory graphics card won't be good for modern games, but it's fine for regular windows. Plus the extra large ram makes up for it using main memory.

- Comes with a bunch of trialware and other junk which takes a while to remove ('PC Decrapifier' got rid of about half).

- The volume slider touchpad doesn't work as well as I'd like.

- The webcam doesn't always work, sometimes requiring a reboot, though that might be due to something I've done.
- {EDIT} A quiet but slightly annoying whistling type noise sometimes comes through the sound card. I've found that it goes away when sounds are made (e.g. MP3 or windows noises), so I think the sound card drivers might be a little off. It annoyed me a little at first, but I'm used to it now.


Overall:

I'm really glad I bought it. The few niggles I list aren't a big deal for me.

{Edit - Wow, this post got a lot of hits. It seems some people have had a lot of problems with the machine. Mine's still fine 7 months on, but buyer beware...}