Too much information: my new PC.

I’m a geek. Given you are reading this on my personal website, in a custom coded WordPress theme, that’s probably not a huge surprise. (If you don’t know what that last sentence meant, you may find the rest of this article pretty incomprehensible…)

When I am being using technology, I like it to be as productive as possible

As a geek, computers are a pretty big part of my life. I’m becoming more and more convinced that the invasive creep of technology into every aspect of our day isn’t brilliant, so I try to turn off the smartphone as much as possible, and haven’t dipped a toe into the world of tablets or smart watches. I’m trying to be intentional about technology: use it when I consciously want to be using it, and hide it the rest of the time.

Why a Desktop PC?

That intentionality makes one premise very important to me: when I am using technology, I like it to be as productive as possible.

Since I went to Uni 10 years ago, I’ve always had two computers: a laptop, and a desktop.

  • The laptop is great for getting things done out and about. It’s portable, that’s the whole point.
  • But when it comes to graphics editing, research, detailed emails, and a little bit of gaming, nothing beats multiple monitors on reasonably powerful desktop.

Last year, my creaking desktop PC hit the 5 years old mark, and it was time to upgrade to something new and shiny. Being in Africa meant it was sensible to wait until our return, so I spent the odd hour here and there fine tuning my plans….

Quiet, but powerful

My last PC served me very well, but it was always moderately noisy. Part of that was due to the relative inefficiency of technology 5 years ago compared to now – processors have generally not being getting a lot faster, but they have been getting more efficient:

The other reason for noisiness was that I didn’t plan for acoustic performance. My hard drives vibrated the whole case, and the case wedged against my desk and wall, so you could hear a hum from the hallway when my PC was on.

This year, I’ve become somewhat addicted to reading SilentPCReview (written by a guy who is so obsessed, he’s built an anechoic testing chamber in his cellar), alongside Toms Hardware and Anandtech. My understanding of quieting PCs has definitely grown.

So, what did I go for?

  1. I do triple screen graphic design and office work, with a little music and video editing.
  2. Occasionally, I play the odd game like Bioshock Infinite or GTAV, and when I do, its on a resolution of 3840 x 1024 – about half the megapixels of 4K, twice that of 1080p.
  3. Finally, and fairly importantly, I want it to last a minimum of 5 years.

Intel_i5_logoCPU:

I went for an i5-4690. It’s the fastest non-overclockable i5. I won’t really see the performance gains from the multithreadedness of the i7s, so not really worth an extra £75. I won’t be overclocking, since it’s performance at a cost of efficiency, not forgetting that high operating temperatures reduce longevity either. Didn’t even consider AMD processors, because they are behind the curve on both efficiency and performance.

02_asus_h97-plusMotherboard:

The other reason I won’t be overclocking is that it would involve me buying a more expensive Z97 motherboard. I chose a decent brand; Asus, and went with a mid-range mATX board, the H97M-Plus. I wanted at least 2 chassis fan controllers, which ruled out the H81s, but didn’t need M2.SATA or any other bells and whistles like WiFi.

GPU:

I wanted to be able to play any game out now, and still cope with midrange stuff in 4 or 5 years. 6789_03_asus_geforce_gtx_970_4gb_strix_oc_video_card_reviewIt made sense to futureproof for the Oculus Rift, in the event that I allow myself to commit that much money to, well, a toy. It needed minimum 3 monitor outputs, ideally with a spare HDMI port for audio in the future…

I was keen to go with Nvidia – both the last two AMD graphics cards I’ve had have given me numerous driver issues. I eventually chose Asus GTX 970 Strix since it has fantastic reviews, a well received cooling setup, and the capacity to run silently on idle, turning the fan on only once temperatures reach a certain point.

hx_savage_detailRAM:

My current laptop has 8Gb, which is enough, but I hit 7Gb now and then. On a desktop with silly amounts of screens and even sillier amounts of lazy multitasking, going above that is the sensible choice, and two sticks of 8Gb works out nearly the same as trying for 12Gb with more sticks, so I now have a HyperX Savage 16GB Kit 1866MHz DDR3 CL9.

Speedwise, I was fairly sure that there’s not a lot of noticeable difference between 1600Mhz and 2200Mhz. I threw a few feelers out there, and received various bits of totally conflicting advice. Finally, one really helpful guy actually reset his RAM to 1600Mhz, 1866Mhz then 2200Mhz, and did GTA V benchmarks for me at each speed. Surprisingly, the 1600 outperformed the higher speeds with a higher minimum frame rate and a higher average. This convinced me firmly that spending significant extra money on faster RAM was unlikely to be worthwhile. The DDR3 1866Mhz was just £1 more expensive than the 1600Mhz in the end.

2000557413Storage:

SSDs have become rapidly more affordable since I bought my last PC. I bought my Samsung 850 EVO 250Gb for around the same price an entry level 120Gb would have cost me last year.

That said, traditional storage is still vastly cheaper per gigabyte, so I picked up a compromise: a Seagate 2Tb Hybrid Drive with 8Gb SSD cache. I now have Windows, programs and documents on the SSD, then video, photos, music and games are on the HDD.

I picked up a cheap Pioneer BluRay reader. I’m well aware the world is leaving optical drives behind, but I have over a thousand CDs and DVDs. I like physical media, and still burn CDs fairly often. Plus, adding the BluRay player allows us to chill out with HD films in the Office – or will when I eventually commit to buying some Windows 10 playback software, anyway.

cxm600_sideview_aPSU:

Cutting back on a power supply is always a bad idea. I could have picked up something generic for £20, but the cheap components, variability of supply, chance of failure, and noisy internal fans made that an unattractive option. Using a modular PSU appealed, as unused cable restrict airflow, so I settled on the Corsair CX600M. I decided to err on the side of caution with capacity: I would have been fine with 500W, but 600W allowed a bit of headroom, and allows it to run at its most efficient between 50-80%.

coolermasterCase: 

Over several years, I’ve been keen to try out a positive pressure setup – where you have more air going into the case than out of it. The plus side of this approach is that all the excess air will push out from all the little gaps in the case: stopping dust going in. When coupled with dust filters installed over the intake fans, the total amount of clogging, heating, harmful dust inside the case should be drastically reduced: leading to increased longevity.

I settled on the Coolermaster N200, a miditower case with space for 5 120mm fans: 2 on the front, one on the side, one rear and one top rear. The downside of positive pressure is that it is less effective at cooling than negative pressure: but I hope several factors will help with this:

  • I’m not building a particularly hot, overclocked system.
  • There are going to be 3 intake fans, and one exhaust: so the total airflow through the case will still be pretty high.
  • The fan mount on top can act as a passive exhaust grill, above the CPU and Graphics card. This means that hot air rising at the back of the case will have an easy route to escape.
  • Finally, components not being insulated with dust will help to avoid unnecessary heat as time goes on.

XtraFloFans:

The N200 comes with two fans preinstalled: the Coolermaster XtraFlo. These are reasonably quiet fans, but not brilliant. I put these in as side intake and rear exhaust, connected to the same motherboard fan header via a splitter. These means I can’t control them seperately, but given they are the same model, they should spin at roughly thTruQuiete same speed, and generate a similar amount and character of noise when given a single voltage.

For my front two intakes, I used a pair of Antec TruQuiet fans: these are fairly high end silent cooling fans, with rubber corners for vibration isolation, and are barely audible at full speed in my desk setup. These are attached to my other motherboard header via splitter.

nh-l12CPU Cooler:

I chose the Noctua NH-L12, due to its great reviews, low profile, high airflow and non-sexy appearance (who cares, its inside a closed case, under a desk!). With dual near-silent fans that blow downwards towards the CPU, they should help with cooling and airflow for surrounding motherboard components.

Putting it all together…

So, I was rather looking forwards to building my PC, assembling the components, doing a burn in to check for faulty RAM, tidying up all the cables, etc… and then realised I could save myself the effort, and get a better job done, with a 3 year collect & return warranty included… for £30 extra. Given that this represented a 3% increase in cost, and gave me 3 years piece of mind, I gladly paid CCL Computers to build the monstrosity for me.

My fanatical obsession with the specific layout and setup of the machine was apparently welcomed by their technician, who wrote a friendly, slightly sarcastic letter in the package with the delivery (“Good one, CoolerMaster!”).

Software:

  • I’m running Windows 8.1, with no current plans to upgrade to Windows 10: rather scared of the reports of display driver problems. Despite the unavoidable truths of Lowry’s Law, I’ve found Windows 8 to be a great piece of software: with ClassicStart bringing Start Menu functionality, its basically just a faster Windows 7.
  • DisplayFusion manages my multimonitor taskbars and wallpaper with style and efficiency.
  • The entire Adobe Master Collection CS6 helps me out with web design, graphics, photo editing and video editing. Lightroom 4, a recent addition for me, is the best photo tool I’ve ever used, by a long way.
  • I recently got added to our church’s Office 365 program, and now have the latest version of Office. I still rather dislike the Ribbon, but I’ve grown to accept it, even if its less efficient than the tools it replaced.
  • Thunderbird is my email client, and, on the SSD, copes with the 10 email accounts superbly. It struggled on a standard hard disk, but on better hardware I’m completely happy with it.

Fan Profile:

Using the built in BIOS fan control software, my action plan is:

  1. Use the front intakes (the quietest fans) most of the time, steadily increasing their speed as temperatures rise in the case. When these hit around 80%…
  2. I’ll start up the CPU fans (a little bit noisier), steadily building them up, until both are at maximum.
  3. After that, I’ll start the side-exhaust fans (quite a lot noisier), slowly ramping those up to maximum also.
  4. Above 65°C, the GPU fan will kick in on its own, and is the noisiest fan of all – but that will only happen when I’m playing noisy games, and I won’t hear them anyway!

So far, that’s been working pretty well. Will continue to fiddle with it ad infinitum, but generally, I’m pretty happy.

Performance

First things first, and most importantly: its much faster than my old PC. It loads my important software fast, it plays games well, it boots fast, and its basically silent when I’m doing office work. Subjectively, it’s brilliant. And objectively…?

Gaming Performance

I tested it on a few common games. These have all been in triple screen 3840 x 1024 resolution – roughly the same megapixels as the “sort of half 4K” of 2560 x 1600 which you see in a fair number of reviews, if you feel like comparison. They are all set at fairly high end / ultra settings.

Game Minimum Average Maximum
Bioshock Infinite 44.4 91.9 157.2
Batman: Arkham Knight 45.6 55.3 60.29
GTA V 20 58.2 69.8

Interestingly, GTA V had a pretty low minimum – this was an average of 6 runs, in one of them, the lowest was actually 8fps! This is weird, as I find GTA runs knife-through-butter smooth, whereas Bioshock actually feels a bit juddery!

Traditional Benchmarks

Benchmark Score
3DMark FireStrike 9010
PassMark PerformanceTest 4804

With a level of forward thinking that is, frankly, uncharacteristic of me, I also have PassMark benchmarks from my last two desktops – the specs of which you can see here, if you are sad enough to care.

PassMark Performance.fw

 

Loading them in graphical form, its pretty impressive to see the huge improvement that 10 years has made in every category. DDR3 is a lot faster than SD, Multi-core processing has had an impact, SSDs are amazing…

Thermoacoustic Performance

I don’t have an expensive microphone that can acts as a reliable noise meter, nor do I have a room where I can isolate from outside noise interference. What I can say is that its quiet, and its cool.

Idle/Office: When doing office work, graphics editing, DVD watching, the CPU and Mobo hover around 30-35°C, the graphics card at around 40-42°C. The only fans on are the CPU and front fans, and I can’t hear them from my chair with the PC under the desk.

Gaming: Playing GTA V in triple monitor mode for an hour, my GPU sits between 50-65°C, and my CPU 40-45°C. Generally the GPU fan still doesn’t kick in, but my front and CPU fans are all on near maximum, the side and rear at around 60% power. There would be a noticeable whooshing air flow sound audible: but I don’t ever notice it because its a) fairly even and pleasant and b) I’m engrossed in a noisy game which is far louder than the fan noise.

In conclusion, I am extremely happy with both the noise and temperature of this rig. Pretty confident the airflow from the downdraft CPU fans help reduce the need for the noisier side/exhaust fans, and practically eliminate the need for the GPU fan at all.

Pictures

Feel free to click for even larger pictures of a fairly non-descript PC…

Front view Side view of case.

Front and side views. Note the magnetic side intake fan filter.

Taking the front panel off  Rubber fan screws helping reduce vibration.

Front cover taken off, and you can see the magnetic filters there too. Nice shot of those lovely TruQuiet fans, with rubberised screws to reduce vibration.

Inside, not a lot of space, but room for air to flow All settled down on my desk.

Not a terribly exciting computer inside, but there’s a beauty in compact efficiency!

Conclusion

We are done! I have a new PC, its amazing, I’m very happy.

Thanks for wading through this ridiculously long article. Much love to the hundreds of unneccesarily long articles I’ve read on sites like Ars Technica, The Verge and Silent PC Review, and thanks for the help from the guys at Build A PC on Reddit. Edit: And thanks to the 4,000 people who read this article yesterday from reddit!

If you’ve actually bothered to read this far, why not leave me a comment? Maybe I’ll post you the GeForce FX 5200 from my first PC

 

Bunny Bunny Moose Moose

Bunny bunny moose moose boxBunny Bunny Moose Moose is a party game from the team at Czech Games Edition. It involves the basic premise of sitting round a table putting your hands to your head, pretending to be a moose or a rabbit. By doing this you achieve two things: scoring points, and looking ridiculous.

Theme

It’s fairly light on storyline, like most party games. You and your friends are animals in the woods, trying to escape from the hunter. There’s a silly poem that the narrator reads out over and over again as they place cards on the table. That’s pretty much it, storyline wise.

Gameplay

The mechanics are a) simple and b) ridiculous. You use your hands on the side (or back) of your head to pretend to be a Moose, or a Bunny. Cards in front of the players steadily change, and you need to get the optimum arrangement of ears/antlers in order to get the most points at the moment the Hunter appears.

There are a range of cards, each with different values. In the picture below, you can see examples of these.Bunny Bunny Moose Moose cards

 

  • Top left – you get an extra point if you are a moose with left antler open and up.
  • Top right – you lose two points if you have any type of upwards antler on the right.
  • Bottom right – you get two points for a left bent ear at the back of your head.
  • Bottom middle – lose a point for each bent ear on the side of your head.
  • Bottom left – everything above is reversed – so you gain points for the negative things, and lose them for the positive things.
  • Top middle – the Hunter! When this appears, the round ends.

Sound complex? Its not too tricky, but the problem is that the cards change every few seconds, and its very easy to get confused: the rabbit ears especially look very similar, and, with the cards above, the difference between a Bunny ear on the side and back is worth either -1 or +2 points: a big change!

This is what people look like during a game.

Bunny bunny moose moose gameplay

I think its immediately obvious why this game is a great way to spend half an hour. There are even some additional optional rules to make things even harder/funnier – for example one involves sticking your tongue out alongside everything else: added stupid-looking complexity coupled with an already riotous dynamic is a recipe for success..

Sometimes, in a game, there are specific mechanics that jump out at you and say “Look at me, I’m a creative solution to a well known problem!” BBMM was designed by Vlaada Chvátil, creator of legendary games Space Alert and Galaxy Trucker: both great games, with totally unique mechanics, so I hoped for similar creative flourishes here.

I was not disappointed. In BBMM, the scoring track has a real splash of genius to it. Each player has two pieces – a Bunny and a Moose – and their piece is only advanced when you score points as the respective animal. The winner, at the end of the game, is the player who has both animals least behind.

For example, if I’ve won loads of points as the Bunny, but none as the Moose, even though I’m very far ahead with one animal, I’ll still lose to anyone who has played a more evenly spread game. This means that throughout the game, alongside frantically making stupid hand signals, you are also worrying about which animal you need points with, and how much everyone else is scoring with each type of beast themselves. It makes for a fun, tangled game, in which it is very difficult for any one player to jump unassailably into the lead.

Ease of Learning

BBMM is easy to learn. Maybe 3 minutes of explanation, and a new player can jump into their first round, picking up the rest as they go along.

The game is rated for ages 9+, which seems about right. That said, its possible to simplify the rules for the younger players, and have them compete happily with adults playing the full rules: with my four year old, we let him pretend to be whichever animal has the most cards on the table – he generally manages to beat me.

The rule book itself is not the simplest read. Given that I am able to explain the whole game to a newbie in a few minutes, we definitely struggled to pick the game up so rapidly in our first play. I can’t point to usual problems – a game this simple needs no index, for example – but the rules could definitely manage to explain the gameplay in a more intuitive way.

Conclusion

Bunny bunny moose moose gameplayFrankly, even saying the name “Bunny Bunny Moose Moose” gets everyone in the mood for an enjoyable, silly game. Its a party game: quick to pick up, quick to play, and it doesn’t matter too much who wins.

If you are super competitive person, you might initially get frustrated about what seems like a large random element – but this actually remains a game where skill can play more of a role than luck – if you wanted to put that much time into it.

That said, most people will not play this game in order to hone their animal impersonation skills, or to prove their mastery of strategic hand eye co-ordination – and rightly so. This is a fun, quick game to pull out at a party, or maybe to break the ice at the beginning of an evening before starting something a little more intense. And its great at that.

Lords Of War Review

I love Kickstarter. I can spend hours a day browsing through the various ideas, dreams and practical suggestions on there. There’s something incredible about the range of possibility, the idea that a great idea will exist or not based on my decision to support it…

The KS section I find myself continually coming back to is UK Tabletop Games. UK, because then the postage isn’t the same cost as the game itself, and board games, because board games are awesome.

Not always a great success

I’ve kickstarted a few games now, and, for the most part, they’ve been a mild disappointment. Cheap printing, uninspiring artwork, or, worst of all, uninspiring gameplay. That said, there’s a lot to be said for the thrill of the anticipation.

Never-the-less, last November, I decided to jump on the Lords of War: Templars versus Undead project. Its an extension to the first two award winning games, and it looked fun. The question was, would I be disappointed again?

Not what I ordered

Before I tell you how satisfied I’ve been with this game, let me tell you a little story of generosity. You see, I paid for the £25 Hell is Full pledge level. That includes the new add on, and a pack of the cards from the original game, Lords of War: Orcs versus Dwarves.

That should give me the stuff in the picture below:

What I ordered from Blackbox games

However, instead, when I received my parcel in the mail, it contained everything below:

What I recieved from Blackbox games

The reason? Insanely generous game developers.

Last week, when the game was posted, mine seemed to go missing. I dropped them an email, and Nick apologised for the delay, and kindly offered to send out an extra pack for free – all three for the price of two.

I was having a very bad day, and this was about the nicest thing that had happened to me all week, so I send an effusive email back. Nick’s response blew my mind:

Shit me Chris – sounds like you’re “livin’ the dream”!!!!

If that makes you smile – I’m going to send you on the house – the battlemat, 6 limited addition metallic cards and the Terrain & Weather deck.  Hell – and a card Tin and Teeshirt – what size are you?  Medium, Large or XL – being a junior Doctor you don’t have enough time to eat (or sleep) enough to be XXL!!!!!!!!

I have a natural human urge to give you advice or quote some shitty saying of wisdom – but no.  You know what you’re doing – I will just post the stuff out tomorrow.

All the best
Nick

Suffice to say, I’m still grinning ear to ear. Anyway, my review…

Concept

A 2 player collectible card game where you play as one of (currently) 6 races, playing cards onto a playing mat on the table. The mat is 7 cards wide and 6 cards high, and allows for a strategic placement element to the game, not found in standard card games.

Its available in boxes containing two decks: Orcs vs Dwarves, Elves vs Lizardmen, Templars vs Undead (plus the recently released Orcs vs Dwarves 2: Magic and Monsters, but I’ll review that when I get my greasy hands on it). Each box is completely standalone: it even comes with a paper game mat, so you are ready to rock and roll. Extra packs just allow you to play with more variations of armies, you don’t have to buy anything more than one set.

Crocodilian_BraveTheme

Lords of War treads a perfect middle line for theme. If you want setting, there’s tons of it: the cards are showered with fantastic artwork (the Lizardmen look especially great – see right), and there’s a whole section of their website dedicated to “The Lore of Lords of War” – with stories, maps, videos, audiobooks. On the other hand, if context is not your cup of tea, you can jump straight into the game and ignore it all: the mechanics hold up on their own.

The Weather and Terrain add on is a perfect example of this: for one camp they present a vision of an epic battle steeped in mist, as hail soaked archers struggle to visualise their targets… or to the more pragmatic players, your tactics need to adjust this round since ranged troops are ineffectual.

Gameplay

There’s nothing revolutionary about the basics: you take it in turns to plonk a card down on the table. You then work out if any card has been overwhelmed by attacks, and take them off the table. Your turn completes by bringing your hand back up to 6, either by taking a new card from your deck, or pulling a card off the table, if its not involved in the action.

playinglordsofwarIts a simple system, and it lets you focus on the important stuff, namely taking as many of your opponents cards as possible (you need 20 to win) or just trying to destroy their leadership (take 4 “command” cards to win).

Some cards can do ranged attacks (think catapults, archers), some are very strong in attack, but very weak in defence (beserkers, or “suicide cards”). Everyone gets an identical range of ranks in their deck, from Recruits (weak, rubbish, cannon fodder) to your General (think John McClane).

Again, I feel Lords of War manages to hit the difficult middle ground here: tactics and strategy matter, but luck evens out the playing field too. There are real chess-like moments, when you put a card down, check the table closely, and move your hand away… seeing, just a moment too late, the Trebuchet you forgot about, with you directly in its line of fire.

Ease of learning

This game is quick to teach, and allows new players to start getting tactical within the first game. I regularly “go easy” on new players, only to get halfway through the first game and find myself fighting for my life.

There are actually Core, Intermediate and Advanced rules, which allows you to slowly build on the complexity of the game with the more experienced gamers (read “Nerds”). That said, you can have a ton of fun keeping it simple – and that’s great for teaching it to people.

All the rules are on a single, double-sided A4 sheet. I have a few little criticisms: I find the rule sheet a little difficult for instantly grabbing rules from, and I’m not sure we play with the “extra” rules very often, but overall, this game is simple to learn, and great for introducing people to the hobby.

Overall

Whilst I enjoy reading rule books, visiting game shops and listening to hour long podcasts on topics like “Games with interesting mechanics”; my wife is much harder to tempt into playing board games than me. Yet, as we packed for our move to South Africa, it was she that insisted we bring absolutely everything with us, all 6 decks, the optional shiny cards, the full size felt backed gaming mat.

More than anything else, that shows how this game is a winner. I love it, my wife loves it, and everyone I’ve introduced it to has had a great time. Go buy it!

Avocado Cookies

AvocadoSo, Avocados are a thing you can get much more cheaply in Africa that you can in Lincolnshire. They also taste much better too. If you’ve never seen one, I’ve included a picture on the right.

They are also much healthier for you than butter, apparently full of “good fat”. Always up for a challenge, I decided to try and make some cookies, using avo instead of butter.

Given that maize is a local staple too, I chucked some of that in, which made this an even more South Africany treat.

Disclaimer: I am a proud member of the chuck-it-in-it’ll-be-fine school of cooking. I firmly believe a happy cook just throws stuff in a pan, rather than measuring 18g of this and 3.5 medium egg yolks of that; so take my measurements with a pinch of salt, so to speak. This recipe makes around 15 cookies. Ish.

Ingredients:

  • 2 or 3 medium avos – as ripe as possible.
  • 1 cup sugar – I literally used a coffee mug, rather than any kind of accurate measuring thing.
  • 1 cup chocolate powder (I used cheap stuff that’s full of sugar. If you use cocoa powder, you are going to want to add more sugar, around another 1/3 of a cup.)
  • A big spoon baking soda
  • 1 egg
  • Half a cup ACE chocolate maize (If you haven’t got this, just replace with flour).
  • 1.5 cups white flour
  • 1 cup chocolate chips. Or chocolate chunks. Or just eat the chocolate chunks, and have plain cookies. Mmmm, chocolate chunks!

Avocado CookieRecipe

  1. Mush the avos. I used a fork. If you have a blender, that would be easier, but you have less excuse to lick avo off your hands…
  2. Put all the powders in a bowl: flour, sugar, chocolate powder, baking sofa, maize, etc, and mix thoroughly.
  3. Now add the egg and avo mush, and mix thoroughly. It should be about as thick as butter thats been out of the fridge for half an hour. Add a little water to thin it, or more flour to thicken it, as needed.
  4. Put 1 inch balls onto an oven tray (greased with more avo!).
  5. Cook at about 180 degrees celcius for 12ish minutes. Peer at them through the door.
  6. At 10 minutes, quickly flatten them with a spatula – the avo doesn’t melt like butter, so they don’t go flat without extra help.
  7. Remove when browned, and allow to cool.
  8. Eat a cookie. Feel proud. Feel ashamed about eating all the chocolate chunks earlier. Get over it, eat another cookie.

Triathlon Chris

Over the past year and a half, I have become steadily more excited about being healthy. Lots of people seems to think that being vegetarian means that you are automatically more healthy: they forget that vegetarians are allowed to consume their body weight in cheese every day.

Since August 2013, I have lost around 18% of my body weight (about 16kg) and have become steadily more enamoured with cycling.

I’ve even started running: not exactly frequently, but somewhere in the middle ground between regularly and occasionally.

As part of this exciting new me, I signed up to do my first ever Sprint Triathlon, the XTERRA Buffelspoort LITE

Training

I decided firmly to do the triathlon in around mid December, giving me 6 weeks to train. And I kinda did, vaguely racking up some time in each of the three disciplines:

Swimming

Ultimately, doing 80 lengths of a 5 metre long pool feels a bit ridiculous.

My swimming training was pretty rubbish – I only managed around 4 swims in my 6 weeks. I did a few practice swims at Sodwana Beach, but the current there is insanely strong, and the waves are pretty ferocious, so it wasn’t the best preparation for a flat lake swim of 400m.

I also tried to do some practices in local lodge swimming pools – but these ranged from 5m to 10m wide, making them not very practical for working on my front crawl. Ultimately, doing 80 lengths of a 5m pool feels a bit ridiculous, and I got more tired from constantly turning round than from swimming.

Cycling

wpid-1421077162864_fact_1.jpgThis is definitely my strength – as you know, I love cycling. In the tri, I need to do 19.6km on tricky off-road hills. I bought a second hand Rocky Mountain Element 50 in Paarl, and it flew with us back to KZN.

I’ve had some lovely little rides on it, up Paarl Rock, Table Mountain, Signal Hill and a few decent ~20km trips around Mseleni. I also went after work on day to False Bay Park and spent a few hours rocketing around, as you can see in the picture on right.

Running

I’m steadily starting to appreciate running more in my life, and I went on around 1-2 runs a week. The triathlon involves a hilly, off-road 6km trail run: a good fit for the undulating off road territory around Mseleni hospital.

I generally aimed to do runs around 6-8km, although I think doing a few longer ones would have been a good idea. My favourite run was probably the one up Paarl Rock, where I was able to sprint back down the hill at a ridiculously fast pace.

The Big Day

We are staying with our lovely friends, Paul & Debbie, in the exciting township of Soshanguve. Buffelspoort is around an hour’s drive from Sosh, so we ended up leaving horribly early – 4:40am. Whilst my friends took part in the trail run, I had several hours in which to fix a rather annoying puncture of my back wheel. After a rather exhausting hour scrounging tools (and experience) from some helpful strangers, I finally had a fully inflated back wheel.

By 8:30am, we were at the starting point, and by 8:50, I was in the water surrounded by nearly 400 other men in leotards. Soon the ten second countdown began, and off we went!

Swimming

It turns out that swimming in a tight triathlon suit for the first time, whilst surrounded in every direction by hundreds of other swimmers, is quite stressful. I struggled to get my breathing rhythm sorted, and then, when I tried to stop, had people trying to clamber over me.

I actually began to panic a little, but after a minute or so, I switched to breast stroke, and made my way forwards. After the initial crush, the field thinned out, and I was able to get some space, calm down, and switch back to front crawl again, overtaking some of the people who had shot past me.

Getting out, I nearly tripped over a few times, but soon got my balance and jogged into the first transition.

Time: 400m in 10:21

Transition 1

Putting on tight cycling socks with wet, sandy feet is always a challenge. I was still a little disorientated after the near drowning, so somehow I wasted nearly half the time I spent swimming just getting changed over.

The guy who won the event did both his changeovers in around 40 seconds! Anyway, soon enough I had my bike, and was off past the start line.

Time: 4:37

Cycle

Buffelspoort-XTERRA-LITE-MTB-ROUTEIt felt good to be in the saddle. The first half a kilometre was on a sandy road (see route on right), and I began to relax.

Just as I was starting to focus on my cadence, we moved onto some tricky singletrack, and there was a traffic jam. Everyone had to stop and shuffle along for a bit until the crowd had dispersed a bit. During this time, the leading girls (who set off ten minutes after us) overtook, which was a little depressing.

After a few minutes, things had thinned out again, and off we went. Generally I found the terrain quite tricky, but only had to dismount briefly maybe 20 times over the 19.4km, pretty similar to many of the guys around me.

When we went onto the smoother tracks, especially uphill I was pleased to find I was much more bike fit than the group around me, and was able to power past people, overtaking a lot. Sadly, on the technical downhills I was much too much of a wimp, and a fair number of people overtook me each time (but less than I was passing on the uphills).

I suspect this is probably a result of lots of guys enjoying a little Saturday afternoon MTB, where they drive to a tricky trail and whizz around for an hour, but they don’t do very much long distance: the complete opposite of me.

Cycle Triathlon

Anyway, after a nerve wracking technical descent, I completed the bike course, and went into transition 2.

Time: 19.4km in 1:13:52

Transition 2

Second TransitionThe automated chip on my ankle didn’t record my entrance time into the transition, and combined it with my cycling time, so I guessed that I made better time than the first one, given that I wasn’t wet, and didn’t have to change my shoes.

I did apply lots of sun tan lotion, but managed to forget to put it on my back, leading to a nice burn that has left my race number, “1505” in white skin surrounded by tan on my shoulder. I was a little disorientated, and initially tried to apply the sun lotion as a deoderant, since it was in a spray can. Needless to say, my armpit did not get sunburnt.

Time: 3:00 (probably)

Run

Run RouteShortly after leaving the starting line, I started to get a pain in the left side of my chest, with a very rapid heart rate, around 180. I decided it made more sense to walk for a bit than to die, so it took me a few minutes to get going again. Most of the runners around me were in a worse state than me, and after my myocardial infarction had settled down, I began to pick up the pace.

To my surprise, I had a lot more energy left than the people around me, and I was able to steadily overtake for the rest of the run.

There was a very steep gradient on one uphill, which I walked part of, but aside from this, I didn’t need to stop for the rest of the race (except a brief moment to eat some fruit gums and grab a glass of water from a refreshment stand).

The last kilometre was very enjoyable, and my pace picked up more, the closer the finishing line came.

Running home

And then I was done, the race complete!

Time: 5.8km in 37:28

Results

Winners MedalMy overall time was 2 hours, 9 minutes, 19 seconds. I came 173rd, out of 585 racers (29% centile), or 144th out of 389 men (37% centile). Given that I was aiming for 60% centile, I’m pretty happy.

Given that running is really not my forte, I was very happy with that side of things: compared to the Puma trail run results from earlier in the day (which did the same route), if I had entered that and run the same time, I’d have come 20th out of 234 runners (9% centile) – and I’d already done the first two parts of a triathlon!

All in all, I had a fantastic time, and definitely plan to do lots more of them. I think I need to get a fair bit more training in, but just on the swimming, cycling and running parts.

January 17th, 2015

Leave a comment

geek, how to, links, web

Making a MediaWiki Theme

I love MediaWiki. I’ve been using it for MedRevise since 2007.

After 3 years of using a hacked up version of someone else’s theme, I decided to make my own theme. It was a big learning process, and I decided to share my knowledge… Unfortunately, 5 years ago, I stopped writing this how-to halfway through. It was for MediaWiki version 1.17.

Since then, there have been like 7 new major versions, and everything in “Code” I’ve written is hopelessly out of date. But the first three sections still have some value: Planning, Designing and Layout – so I thought I would publish it anyway.

Make your own Mediawiki theme

Ever thought it would be nice/useful to have your own wiki? There are lots of different bits of software out there for running a wiki, but the big one is MediaWiki – the same one used by Wikipedia. Now, your problem is that there are only so many ready made themes for MediaWiki. And there aren’t many good tutorials on doing it yourself. The tutorials out there are sparse at least.

So I’m going to give it a go, and I’ll explain it to you as I go. I warn you, this is aimed at an intermediate level. I am not going to explain how a div works, how to use CSS or much of that. Go to the amazing w3schools website for tutorials on these basics.

First things first.

There are four key stages to making any website:

Planning

You need to ask yourself some questions:

  • What is your website for? If there is a lot of information, you need to give prevalence to the content section, if there are lots of sections, maybe the menu needs extra prominence.
  • Who will use it? Is it going to be aimed at people new to the web, in which case it needs to be very clear and understandable. If its aimed at geeks, you maybe can play with the appearance more.
  • What will code put in? Database driven sites such as a wiki will need to import information. This information is usually of different sizes and lengths, in which case you will need to have an expandable or scrolling area for this information. Examples are menus, footer tags and content divs. Once you have really thought it out, get a piece of paper, and start sketching out some ideas, taking into account all your stuff above. Once you have a good idea, you can start…

Designing

Get yourself a good web graphics program. Photoshop isn’t really ideal here, lacking many of the measurement, image optimisation and slicing options that Fireworks has. But yeh, that’s my plug over. Get designing, and put in all the elements you think you need. Put in text and everything, and try to have all the text on a separate layer, so you can show the layout later without it. (If you don’t understand this, you’ll get it in the next step). Here is my first design for the new MedRevise:

Mockup of the design for the site.

Now, that is really very lovely. At least I think so, and its my site, so blah! And while I’m on the subject of accepting criticism, now is the time to get friends, families and geeks to look at this and give you feedback, before you spend hours putting it in code and everyone hates it. If you need a geek to ask, feel free to contact me.

Once your mum has finished telling you to add more flowers, and you are happy with your design, you can move onto…

Layout

You now need to turn your image into a web page. The first step is getting rid of all your text. Simple click the “eye” symbol next to your text layer, and you should end up with something like the image on the right:

Now, this step is complex, time consuming and laborious. It involves making all your divs and everything. I have chosen a very complicated design here, and I will not explain how to do everything. I will upload a tutorial at some point explaining how I got my middle div working, because I’m quite proud of that.

But basically, you want to end up with a site where you have your template design set up, with text tags saying “Insert Menu Code Here”, and “Insert Content Code Here”. In my case, I have decided to have a difficult left hand menu, so I will have to manually code changes to it, rather than having the option of mediawiki manually inserting the code for you.

Either way, you should end up with somewhat that looks like this… Screenshot of the finished template You might notice that I have moved my footer bar into the middle, as I realised it will work better there. Aside from this, I have kept it relatively close to my original design. I have also tested in in Firefox, Chrome, IE6, IE7 and IE8, to ensure that the majority of people accessing the site get to see it correctly. Use browsershots.org to do this yourself (its awesome).

Code

The final stage is making your theme do the things you want it to do. This can often take you as long, if not longer than everything else put together.

First off, go and read the MediaWiki manual on skinning.

Then start working through the article, changing it as you go through. I began by tackling the preheader. I used the following code:

/**
* MedRevise skin
*
* @version 4.0.0
* @author Chris Lowry (http://allaboutchris.co.uk / me@allaboutchris.co.uk)
* @license http://creativecommons.org/licenses/by-nc/3.0/ Attribution-Noncommercial 3.0 Unported
*
*/

// initialize
if( !defined( 'MEDIAWIKI' ) ){
die( "This skin file is not a valid entry point.\n" );
}

#Only needed for older MediaWiki instances
#require_once('includes/SkinTemplate.php');

// inherit main code from SkinTemplate, set the CSS and template filter
class SkinMedRevise extends SkinTemplate {
function initPage( OutputPage $out ) {
parent::initPage( $out );
$this->skinname = 'medrevise';
$this->stylename = 'medrevise';
$this->template = 'MedReviseTemplate';
}
}

class MedReviseTemplate extends QuickTemplate {
/* hijack category functions to create a proper list */

function getCategories() {
$catlinks = $this->getCategoryLinks();
if( !empty( $catlinks ) ) {
return "<ul id='catlinks'>{$catlinks}</ul>";
}
}

function getCategoryLinks() {
global $wgOut, $wgUser, $wgTitle, $wgUseCategoryBrowser;
global $wgContLang;

if( count( $wgOut->mCategoryLinks ) == 0 )
return '';

$skin = $wgUser->getSkin();

# separator
$sep = '';

// use Unicode bidi embedding override characters,
// to make sure links don't smash each other up in ugly ways
$dir = $wgContLang->isRTL() ? 'rtl' : 'ltr';
$embed = "<li dir='$dir'>";
$pop = '</li>';
$t = $embed . implode( "{$pop} {$sep} {$embed}", $wgOut->mCategoryLinks ) . $pop;

$msg = wfMsgExt( 'pagecategories', array( 'parsemag', 'escape' ), count( $wgOut->mCategoryLinks ) );
$s = $skin->makeLinkObj( Title::newFromText( wfMsgForContent( 'pagecategorieslink' ) ), $msg )
. $t;

# optional 'dmoz-like' category browser - will be shown under the list
# of categories an article belongs to
if( $wgUseCategoryBrowser ) {
$s .= '<br /><hr />';

# get a big array of the parents tree
$parenttree = $wgTitle->getParentCategoryTree();
# Skin object passed by reference because it can not be
# accessed under the method subfunction drawCategoryBrowser
$tempout = explode( "\n", Skin::drawCategoryBrowser( $parenttree, $this ) );
# clean out bogus first entry and sort them
unset( $tempout[0] );
asort( $tempout );
# output one per line
$s .= implode( "<br />\n", $tempout );
}

return $s;
}

/**
* Template filter callback for this skin.
* Takes an associative array of data set from a SkinTemplate-based
* class, and a wrapper for MediaWiki's localization database, and
* outputs a formatted page.
*/
public function execute() {
global $wgUser, $wgSitename, <span style="color: #ff0000;">$wgTitle</span>;
$skin = $wgUser->getSkin();

// retrieve site name
$this->set( 'sitename', $wgSitename );

// suppress warnings to prevent notices about missing indexes in $this->data
wfSuppressWarnings();

Now, I’ll be honest, I didn’t understand most of that. However, the Mediawiki walkthrough explained it nicely, and pretty much all I did was change the FooBar and foobar tags to MedRevise and medrevise. I also added $wgTitle to the execute function. I needed that for my login menu later. That done, it was time to chuck in the HTML header:

/* compose XHTML output */
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="<?php $this->text('xhtmldefaultnamespace') ?>" <?php
foreach( $this->data['xhtmlnamespaces'] as $tag => $ns ) {
?>xmlns:<?php echo "{$tag}=\"{$ns}\" ";
} ?>xml:lang="<?php $this->text('lang') ?>" lang="<?php $this->text('lang') ?>" dir="<?php $this->text('dir') ?>">
<head>
<meta http-equiv="Content-Type" content="<?php $this->text('mimetype') ?>; charset=<?php $this->text('charset') ?>" />
<?php $this->html('headlinks') ?>
<title><?php $this->text('pagetitle') ?></title>
<?php /*** general style sheets ***/ ?>
<style type="text/css" media="screen,projection">/*<![CDATA[*/
@import "<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/main.css?<?php echo $GLOBALS['wgStyleVersion'] ?>";
@import "<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/contents.css?<?php echo $GLOBALS['wgStyleVersion'] ?>";
/*]]>*/</style>
<?php /*** media-specific style sheets ***/ ?>
<link rel="stylesheet" type="text/css" <?php if(empty($this->data['printable']) ) { ?>media="print"<?php } ?> href="<?php $this->text('stylepath') ?>/common/commonPrint.css?<?php echo $GLOBALS['wgStyleVersion'] ?>" />
<link rel="stylesheet" type="text/css" media="handheld" href="<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/handheld.css?<?php echo $GLOBALS['wgStyleVersion'] ?>" />
<?php print Skin::makeGlobalVariablesScript($this->data); ?>
<?php /*** various MediaWiki-related scripts and styles ***/ ?>
<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('stylepath') ?>/common/wikibits.js?<?php echo $GLOBALS['wgStyleVersion'] ?>"><!-- wikibits js --></script>
<?php if($this->data['jsvarurl']) { ?>
<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('jsvarurl') ?>"><!-- site js --></script>
<?php } ?>
<?php if($this->data['pagecss']) { ?>
<style type="text/css"><?php $this->html('pagecss') ?></style>
<?php }
if($this->data['usercss']) { ?>
<style type="text/css"><?php $this->html('usercss') ?></style>
<?php }
if($this->data['userjs']) { ?>
<script type="<?php $this->text('jsmimetype') ?>" src="<?php $this->text('userjs' ) ?>"></script>
<?php }
if($this->data['userjsprev']) { ?>
<script type="<?php $this->text('jsmimetype') ?>"><?php $this->html('userjsprev') ?></script>
<?php }
if($this->data['trackbackhtml']) print $this->data['trackbackhtml']; ?>
<!-- Head Scripts -->
<?php $this->html('headscripts') ?>
<!-- Cufon Scripts -->
<script src="<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/js/cufon-yui.js" type="text/javascript"></script>
<script src="<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/js/Blippo.font.js" type="text/javascript"></script>
<script type="text/javascript">
Cufon.replace('h1');
</script>
</head>

I will be the first to admit that looks pretty awful. All you need to know is that you leave it basically untouched, simply adding the correct path to your style sheet, if necessary (I just had to rename mine to main.css), then add any scripts you want to add yourself at the end. I use cufon for font replacement, so I chucked that in at the end.

Next comes the nitty gritty, making individual bits and pieces appear exactly where you want them. I first decided to tackle the search bar, altering the code in the tutorial, and simplifying it because I only want one search button, not two.

I then worked out my login details section, and wrote some conditional code to do one thing when logged in, and another when logged out.

Thanks for reading, I hope its helpful to anyone who needs some (rather dated) hackery!

Crispy Potatoes Recipe

We all have Christmas traditions, and often that revolves around food. Katherine and I have spent our 6 years together slowly perfecting our Christmas selection.

I thought I would share how we make our awesome crispy Christmas potatoes (you can eat them when its not Christmas too, if you want!).

Disclaimer: I am a proud member of the chuck-it-in-it’ll-be-fine school of cooking. I firmly believe a happy cook just throws stuff in a pan, rather than measuring 18g of this and 3.5 medium egg yolks of that; so take my measurements with a pinch of salt, so to speak. This recipe makes as many potatoes as you need. I usually plan for 1-2 large potatoes per person.

Cooked Crispy PotatoesIngredients

  • Potatoes.
  • Flour.
  • Olive oil.
  • Salt and Pepper.

Recipe

  1. Peel and chop up your potatoes. You want biggish lumps – cut big potatoes into 4 pieces, small ones into halves.
  2. Boil up your potatoes with a little salt in the water (helps them get softer).
  3. Check them after about 15-20mins: you should be able to stick a knife in them, but you don’t want them completely soft either.
  4. Drain the water.
  5. Chuck some in a metal colander, so there are about 8 pieces of potatoes in it (use a big bowl if you don’t have a colander). If you have lots of potatoes, you might want to do them in a few batches, 8-10 at a time.
  6. Jiggle the colander for about 10-20 seconds. This bashes up all the edges of the potatoes, making them uneven. This leads to lots of extra crispy bits.
  7. Have a bowl with olive oil in, and one with flour in.
  8. Potatoes before BakingRoll each potato in the oil, so its covered, then roll in in the flour. Oil + flour = more crispy.
  9. Sprinkle a little more oil on top, and grind loads of salt and pepper all over it.
  10. By now, your potatoes should look something like the photo on the right (click for bigger picture).
  11. Cook them at 180°C ish in the oven. You’ll want to take it out a few times and stir it around with a spatula so that it gets cooked evenly.
  12. When they are golden, with some crispy brown bits, cover them in gravy and eat them all up.

If you don’t like gravy, then I’m afraid you are a bad person, and you are not allowed to make my potatoes.

my other sites

Names Not Numbers charity - because individuals matter! MedRevise - free medicine revision for student doctors When Will I Be Sober? An alcohol sobriety calculator. Plenty of Room - The Lowry family and life.

board games

Cheap Ass Games - Inexpensive and Wonderful Tabletop Games! Cool Mini Or Not!