Top 5 Recommended Upgrades for your PC

I have made a lot of different upgrades and modifications to my PC, as you can see here. Some of the upgrades have made more of a difference than others though. Here is what I think you should be concentrating on, if you’re looking to upgrade.

upgrades

  • Solid State Hardisk (SSD) – Solid State hard drives use flash memory instead of the moving disk platters of traditional hard disks. It is the same type of storage as your USB stick. This type of storage is a lot faster to access compared to magnetic storage. Upgrading will result in a huge performance increase for most systems if you are changing from a traditional hard disk. Get as big a size as you can afford. If you play computer games or do a lot of media production work, then the added space will be useful. They have reduced in price over the years, the first SSD I bought was £120 for 120GB SSD back in 2012, in 2015 I just bought a 250GB SSD for £50. So it’s definitely affordable now.
  • Large Monitor – If you can get a 27″-32″ monitor then do so. It has made so much difference to the day to day usage of my PC. I would recommend 1440p if you can. 1440p is half the resolution of 4K. I wouldn’t recommend a 4K monitor yet in 2015 as I don’t think they have enough software support, and the cost is considerable for a decent screen. If you’re a gamer, then you might want to aim for a higher refresh speed, but I’d say this should be a secondary consideration to the screen space. Look on TFTCentral for reviews and guides to the different screen types available.
  • Good Soundcard and Surround Sound Speaker System – Headphones are OK, but even a basic surround sound soundcard and speaker system is going to be so much better. I have a Asus Xonar Phoebus Solo which I recommend, it’s a 7.1 surround sound card. I have a cheap £60 set of surround sound speakers, Logitech Z506 Surround Sound Speakers. Surround sound really makes a difference in gaming and movies. I think it’s the seperate subwoofer that has the most effect, so if you are not that convinced by surround sound, you could get a 2.1 (two speakers and a subwoofer) setup for a bit less.
  • Ergonomic Mouse and good mousemat – Chances are, most of the time you’re at your PC, you will be using the mouse. It is therefore really important you have a good mouse that won’t damange your hand after a few years use and is comfortable to use. Modern mice use laser scanners to track the position of the mouse on a flat surface. A higher resolution laser (measured in DPI – dots per inch) means that you can get more accurate tracking. Therefore look for high DPI mice for gaming or fine detail work as well as an ergonomic fit and lots of buttons. I recommend Logitech mice, after having had several Razer mice that didn’t last very long. I would also pick up a steel mousemat, as they never get tangled up in your mouse like the fibre mousemats do.
  • Recent Graphics Card – If you are into gaming or 3D modelling work, you would often prioritise this over any other upgrade. A new graphics card means that your existing games will run faster on higher detail settings, and you can play new games on higher settings with better framerate. I don’t think it matters too much whether you go for Nvidea or AMD as long as you can run the games you want to run. If you are not interested in running the latest games, then perhaps you don’t need this, but you may be missing out in the future.

Too much Scrolling! – Tips for Dealing with Mouse-Wheel Finger Repetitive Strain Injury

Recently I had noticed I’d been having quite bad problems with my fingers based on the fact that I had been scrolling the mouse wheel too much when scrolling through web pages. Here are a number of options you can take if you are in a similar situation as me:

Change OS’s scrolling speed to its maximum

This is the easiest change on most modern OSs, and will result in less scroll movements made by your fingers, because each scroll movement will move the screen down by a full screen height, (equivalent to a page down). This can be a bit annoying though as you lose accuracy when you want to just scroll down a small amount, it takes a bit of getting used to. Also you are still using the same muscles, just not as often.

Use keyboard shortcuts for scrolling

Space and shift-space should perform scrolling up and down in Firefox and Chrome on OSX and Windows. The more you avoid using the mouse and use the keyboard, the less you will use the same muscle in your fingers each time. Of course you may develop keyboard-related RSI, but so far I haven’t been affected by this.

Change to an Ergonomic Mouse

At work I now use an ergonomic Logitch mouse which has a responsive scroll wheel, and an option to ‘unlock’ the movement of the scroll wheel, allowing it to freely spin which results in greater comfort. Before I was using a work mouse which had a scroll wheel which you had to press down very hard to get it to do anything.

Use a Touchpad

You can get freestanding touchpads for Windows and OSX, which operate like a laptop’s touchpad. This has the advantage that you can also use trackpad gestures – Windows 8 onwards and modern versions of OSX have their own sets of handy gestures for speeding up use. I recommend the Logitech T650 Wireless Touchpad for Windows 8 onwards, and the – expensive but very impressive – Apple Magic Pad 2 for OSX . You can also get the Apple Magic Pad 1 which is half the price, but the feedback and gesture support isn’t quite as good. A trackpad is not much use for gaming but for normal browsing and office use it’s fine.

Biggest Disappointment Purchases for PC – Razer Tiamat + Lightpack

As you can see, I buy a lot of bits and pieces for my PC. Occasionally though, I buy something that I feel was a disappointment, or not worth the investment. This post is meant to caution against other people making the same mistake.

Razer Tiamat – 7.1 Surround Sound Gaming Headset, with microphone (http://www.razerzone.com)

razer-tiamat71-gallery-5

This was a big dissapointment in a couple of ways. The first, and most obvious in hindsight now I’m actually working on spatial audio for a living at BBC R&D, is that 7.1 surround sound headsets are a joke. There is no way you can get enough seperation between the different speaker drivers when your ears are so close to the speakers. If you have a soundcard or motherboard that supports surround sound, do yourself a favour and get a surround sound speaker set.

The second problem is that the Razer Tiamat has issues with electrical hum from the unshielded cables it uses. I replaced it with the ROCCAT Kave XTD 5.1 Analog surround sound headset which is better, although still not anything like the surround sound speaker setup which I now have.

Lightpack – Backlight kit with adaptive lighting for games (www.lightpack.tv)

lightpack

I took a risk on this, it was a kickstarter idea which offered the promise of an ‘intelligent’ backlight which changed colours depending on what was on the screen. And it did work pretty well.. back when I was running Windows 7. Since upgrading to Windows 10, I haven’t been able to get it to work properly when playing games with Playclaw, which is my main use for it. I even had to purchase Playclaw, as the software which comes with Lightpack doesn’t work well. It still has limited use for me in terms of a colour spectrum effect for music when I throw a party, through using third-party software such as Ambibox. But the company really should improve its software to work with Windows 10 gaming. It didn’t even work well for me under Windows 8.

My Favourite OSX Apps for Development

I’ve just recently bought a Macbook Pro for myself, after having used a MBP at work for 4 years. I find it to be a really powerful development environment for the development I do, in languages such as Java, PHP, Ruby, Python and JS. Here is what I use day-to-day:

OSX El Capitan

I haven’t found anything not to like about this upgrade. I don’t use a lot of external devices, for which Bruce has found problems with El Capitan’s new restricted driver management for Arduinos and others. I like the fact I can use split screen functionality to side-by-side two windows easily, a feature that I very much like in Windows 10 too.

iTerm 2

This is an awesome terminal, better than OSX’s terminal. Nothing much more to say about it.

Fish Shell

This shell has fast and smart command-line completion which is very handy and I’d highly recommend it if you use the commandline a lot and are not totally won over by Bash. It looks nice too.

Homebrew

This is pretty much essential for command line OSX. It is a package manager which downloads and compiles the latest version of open source packages on your Mac. If you don’t use it already, get used to it.

IntelliJ WebStorm

WebStorm is great for debugging JavaScript applications, which I seem to be doing a lot of lately. I recommend the IntelliJ IDEA family of IDEs, once you get use to them, they are a great help in productive development. There are also vim and Emacs keybindings.

vim

If you are a fan of vim you will know what I mean when I say I can’t be without it. My Dotfiles show my .vimrc and plugin configuration.

git

Thankfully the BBC has moved over to Github, meaning all my coding uses Git. It is so useful, and not just for storing code, you can store anything.

iTunes

I use Apple Music, and iTunes Match, so iTunes is a must. It annoys me at times, but I just have to live with it.

Alfred

Alfred is a replacement for Spotlight search in OSX. It has a lot of functionality that I’m still getting my head around, but it speeds up my OSX workflow a lot when undertaking frequent tasks such as Google searching.

Evernote

Evernote is so useful for making and sharing notes on my phone, mac, work computer.. anywhere

Droplr

This is something someone only recently recommended to me. It seems very useful from what I’ve seen, great way to share images files, screenshots, webcasts.. anything. Also it has as expiry policy for media, like Snapchat, so it doesn’t exist on the internet for generations to come.

Next Big Thing: Voice Control for Home Automation

Amazon-Echo-Main-Image

So, I have totally bought in to the home automation craze that is currently ‘the next big thing’ in the technology world in 2015. Apple has released iOS 9 with their HomeKit home automation framework, Google have the Nest series of smart devices, and there are numerous emerging competitors and hundreds of devices out there right now that will network together in your home.

For the uninitiated, a ‘virtual assistant’ is a cloud-connected voice processing system which you can ‘talk’ to. This is how a voice assistant essentially works:

1. You speak into the device. Your device will record what you’ve said, and send it to the cloud.
2. In the cloud, sophisticated and adaptive voice recognition software analyses what you’ve said and converts it into text.
3. The text command is run on a server somewhere, for example the command, ‘what is the weather today?’ will fetch the latest weather report for your area and summarise it.
4. The summarised report is converted into speech and streamed back to your device.

Apple have Siri, Microsoft have Cortana, Google has Google Now and Amazon have Alexa. These are all voice assistants which utilise the power of big data and machine learning over millions of requests to improve their own accurately.

The more people use virtual assistants, the better they get. Apple have been really pushing Siri, including it in the Apple Watch and most recently the new Apple TV. Not necessarily because it’s what people want *now*, but because they are banking on enough people using it so it snowballs into the lead, vastly improves in functionality, and becomes ubiquitous in the home, maybe 5-10 years down the line.

Apple’s Siri has reported a 40% reduction in errors recently, meaning only 5% of the words it processes, on average, are misread. This clearly can, and will, improve as more people use it.

The speech recognition capability in Siri now has a 5 percent word error rate, thanks to a 40 percent reduction on the part of Apple, Craig Federighi, Apple’s senior vice president of software engineering, said today at Apple’s 2015 Worldwide Developers Conference in San Francisco.

Amazon, meanwhile, has the ‘Alexa’ virtual assistant, which seems to have most use in home automation. Although Siri is linked in with Apple’s ‘HomeKit’ automation standard, HomeKit-enabled devices are only just now starting to be released, and reliability is currently a problem. Meanwhile, Google have concentrated on providing a small number of reliable devices in their Wi-Fi enabled ‘Nest’ series. Google’s Nest Thermostat has recently integrated Amazon’s Alexa virtual assistant to recognise speech commands such as ‘turn up the temperature to 20 degrees’.

What a lot of people are saying is the ‘killer app’ for virtual assistants is the handsfree speaker and microphone unit ‘Amazon Echo’. Amazon Echo is a small unit with a highly sensitive microphone and speaker, which sits in your living room and you can ‘talk’ to it, just like you would with Google Now or Apple’s Siri. The best thing about Amazon Echo is that it can talk to other smart home devices, such as the popular Phillips Hue lights, the Nest thermostat, various security cameras. It also integrates with the site IFTTT.com which is like a giant patchbay for smart devices, allowing you to connect them together and cause a state in one device to trigger an action.

So you can be sitting in your living room, and say ‘Dim all the lights in the house’ and Amazon Echo will do just that.

Unfortunately though, due to the fact that it uses Microsoft’s Bing search and doesn’t give you an option to choose a different search engine, it is not legal to sell the Amazon Echo in the UK due to a non-competition covering search engines in EU law. Therefore there is still an open gap in the market for this type of product, one which Apple’s HomeKit and Siri integration is racing to fill. However the closed nature of the HomeKit world means that it is likely that it won’t integrate with the non-Apple setup of Google Nest and others.

Introversion, Extroversion and the BBC Software Engineer

introvert

Whether you agree with Myers-Briggs personality profiling or not, like fellow BBC’er Ian Forrester I have found them a useful frame of reference from which to discuss my personality, because I see similarities between my perception of me, and the classification.

I took the Myers-Briggs personality profiling, and it has labelled me on several occasions an INTP:

INTPs are marked by a quiet, stoic, modest, and aloof exterior that masks strong creativity and enthusiasm for novel possibilities. Their weaknesses include poor organization, insensitivity to social niceties, and a tendency to get lost in abstractions. Keirsey referred to INTPs as Architects, one of the four types belonging to the temperament he called the Rationals

I – Introversion preferred to extraversion: INTPs tend to be quiet and reserved. They generally prefer interacting with a few close friends rather than a wide circle of acquaintances, and they expend energy in social situations (whereas extraverts gain energy).

Is this bad news for me? Introversion can be seen as a negative in today’s hyper-communicative world, especially for a team-based work environment. However I don’t think it need be a problem in an organisation that prioritises abstract thinking and creativity, because introverts are often very strong in both. The technology and R&D side of the BBC, I would argue, is such an organisation.

I know a few people from Imperial College London, one of the top universities in the world for Computer Science (and Science Technology Engineering and Medicine in general) and have found it full of technically gifted introverts. Now, I didn’t go to Imperial myself, but it does seem that there is a correlation between introversion and high amounts of technical ability. I have found this also with a lot of software engineers that I have worked with.

I am not saying necessarily that all good software engineers are extreme introverts, in fact I would say that this is untrue in a number of cases. This is because Agile software engineering often uses techniques such as pair programming from Extreme Programming, and it helps to have extroversion when dealing with hyper-social practices such as programming as a pair every day all day (which I have done, and found it very draining).

In fact, I have noticed that technical ability is less important than your ability to work in a team at the BBC. I generally have fairly good social skills and tend to like introverts so I personally have not had a problem with dealing with people who were very introverted but were technically quite brilliant. However it was clear that these types of people just didn’t seem to fit in quite as well in BBC teams with high collaboration aspects. I think this may be down to cultural fit rather than something we can extrapolate over all software engineering organisations.

512eTxcGW6L._SX379_BO1,204,203,200_

Indeed, aside from my anecdotal evidence, in the book ‘Making Software’ Jo E. Hannay analyses the academic research on what type of personality programmers have, and what effect this has on their work. She writes;

We found that programmers deviated from a reference group in that they are lower on Extraversion, lower on Emotional Stability, and higher on Openness to Experience [Hannay et al. 2010]. See also [Moore 1991], [Smith 1989], [Woodruff 1979], [Capretz 2003], and [Turley and Bieman 1995] for related results. Programmers are also more homogeneous than the population as a whole; that is, programmers vary less in personality than do people in general.

So programmers tend to be introverts. Not really hugely suprising is it? However, she also notes:

We investigated .. in the context of 198 professional programmers pair programming over one day [Hannay et al. 2010]. We found that personality was a weak predictor of pair programming performance. Even crude measures of expertise, task complexity, and even the country in which the programmers where employed had greater predictive power than personality. The study also included an analysis of personality on individual programming and whether the effect on performance of pairing up had anything to do with personality. Again, expertise and task complexity are stronger predictors than personality.

Therefore an introverted personality is a poor predictor of pair programming performance across the industry. She goes on to say:

In ethnographic studies focusing on personality issues and disruption in software engineering team collaboration, it was found that disruption is bad, but lack of debate (which is a mild form of disruption) is worse [Karn and Cowling 2006], [Karn and Cowling 2005]. It is argued that pairs or teams with personalities that are too alike will lead to lack of debate. This finds empirical confirmation in [Williams et al. 2006] and [Walle and Hannay 2009]. In particular, differences in Extraversion has the largest effect: pairs whose peers have different levels of Extraversion collaborate more intensely (that is, engage in more discussion) than those with more similar levels.

She is saying that a pair of extroverted and introverted personalities collaborate more strongly than a homogenous pair. To me, this is good evidence that introversion and extroversion have their place in modern software development teams across the industry, and both types of personality should be culturally valued for collaboration, not just extroverts, even at hyper-collaborative organisations such as the BBC.

Completed Eurorack

modular

I’ve finished my 6U Eurorack case. It took me 9 months to build, buying a couple of modules a month.

Goals

I wanted to make a self-contained dual voice synthesizer that would interface with my 2x Doepfer Dark Energy MK1s and my Microbrute, on a budget. I also wanted to add some random sound generation features.

I chose to make the synthesizer out of Doepfer modules because they are easy to find cheap second-hand, and also because they are well-engineered. (If they’re good enough for Kraftwerk, who am I to complain?)

eurorack

Oscillators and Sound Generation

  1. 2x standard Doepfer A-110-1 VCOs with pulse-width modulation. I am no expert, but find these oscillators sound good enough for the money.
  2. A-118 Random Noise module, which outputs white and coloured noise. This has been useful for adding noise to a patch, as well as feeding the random noise generator through the quantizer and S&H modules for interesting random effects.

LFOs and Envelopes

  1. A-143-3 Quad LFO, which has been very useful in modulating my external gear, such as my Microbrute and Doepfer Dark Energy synths. I find it’s a good utility module to just patch something up for modulation, even though I rarely find myself using all 4 LFOs at once.
  2. A-145 LFO – I actually find myself wishing this was a VCLFO so that I could make midi-synced LFO sweeps, and might replace it with one eventually. I like the reset feature though.
  3. 2x A-140 ADSR – Standard envelopes, I bought two so I can modulate the VCA and filter separately at the same time, as is standard in synthesizers.

Mixers and VCAs

  1. A-132-3 Dual VCA – Another standard module, this is particularly useful as it has two VCAs, so I can feed each oscillator into its own separate VCA. I would like another one of these so I could amplify the output of the noise module separately from the VCOs.
  2. 2x A-138 Exponential Mixers – I have two so I can mix multiple waveforms from the VCOs with the white noise output from my noise generator module. The mixer in the bottom right corner of the case has rubber no-slip knobs, and I use it for the main output from my synth.

Quantizer and S&H

  1. A-156 Dual Quantizer – This is a really fun module which I use with LFOs, envelopes and my noise generator to make musical sounds from non-musical sources. I think it will come into its own when I get the Make Noise Maths module, which is on my ‘next steps’ list.
  2. A-148 Dual Sample & Hold – This is a module I haven’t quite grasped the utility of yet, I currently use it wired up to filters and a LFO for S&H filter effects.

Filters

I love filters.. so I got quite a few!

  1. A-120 VCF1 Low Pass Filter (Moog style) – The standard moogy filter, nothing wrong with it. I like the sound but mostly use it for filter sweeps.
  2. A-127 Triple Voltage Controlled Resonance Filter with Breakout Box – This is the key element of my setup. It allows for some really nice multiple filter chaining effects. I have the top filter set to ‘Low Pass’ mode, and the second and third filters set to ‘Band pass’ mode. Since I already have a LP filter in the Moog style A-120 I may change this back so it becomes a triple BP filter, which is the default. You can make some really nice patches with the inbuilt LFOs modulating the filter sweeps, but usually I will wire it up to my Quad LFO for modulation. As a unit, it is really good at making vowel-like sounds for eerie ‘almost human voice’ effects. The breakout box, which I haven’t soldered in yet, so haven’t actually used, will expand the possibilities of the unit even more, allowing me to put separate filers on each oscillator, for example. Love this module.
  3. A-106-1 Xtreme Filter – I haven’t used this much yet, but I just had to have the MS-20 style LP/HP filter in my case, and this filter ticks all the boxes.

MIDI Interface and Multiples

  1. Kenton Pro Solo MIDI-to-CV interface – I use this with my computer, allowing me to send CV for the oscillators through the Intelligel Buff Mult. It has clock out and a bunch of different features, such as portamento and even a LFO.
  2. Intelligel ‘Buff Mult’ – My only non-Doepfer module. This is a buffered multiplier, meant to make sure that fast pitch changes are duplicated correctly over the oscillators. I also wire up my Doepfer Dark Energy Mk1s to this, so I can have 4 oscillators playing at once.
  3. A180-1 Multipler – Just a standard multiplier which I use because I don’t use stackable cables (can’t afford them).

Things I’d like to Learn More About

Some things I have been meaning to investigate in my own time, but haven’t, because life just gets in the way.

  1. Maths
  2. – It might surprise a few people that, as a software developer, I never took maths to A-level. I picked up a bit of maths in my CS degree, but I never really got a firm grounding in it. This has prevented me from understanding and coding advanced stuff in game development, understanding audio to a decent level, and generally doing things in which I consider the more interesting fields of computing.

  3. Music Theory
  4. – I have been getting better at playing the piano/keyboard by ear, but I have never fully learned to read music, and I would like to.

  5. Electronics
  6. – I would love to be able to build simple DIY synthesiser module kits for my Eurorack setup. I imagine I’d have to start on something small though.

It would be great if I could take courses in these subjects, via the OU or something similar. I just have to find the time.