For the past few years, I’ve not been a particularly happy PC user.
Although my PC was cheap, I’m fed up with a large do-it-yourself box of hot, noisy components that breed dust bunnies.
I’m a programmer, not a system builder.
Unfortunately, finding a replacement PC that has decent performance, is cool, quiet and hopefully smaller, has been a challenge. I use Linux Mint (a fantastic OS, by the way), and a docked laptop is probably the closest match to what I’m looking for.
The problem is that the majority of Windows compatible laptops that I could use just don’t meet my requirements. They’re either anaemically underpowered, or are stuffed to the gills with hardware that causes them to be hot and noisy.
Good luck trying to find a model that can output at 1440p for my Dell Ultrasharp monitor.
Due to circumstances beyond my control, last month I was forced to start using a low-end MacBook Pro as my daily driver, leaving my desktop PC to gather dust, which is something it’s good at.
After some time using it, I’ve decided that although it has an underpowered Intel HD3000 GPU, the CPU is more than adequate for the work I do, and it meets my cool and quiet requirements. If I could just buy a version of it with a better GPU that can output at 1440p, it would perfect…
Browsing through Apple’s website, I found the device I was looking for: A 27″ iMac with a quad core i5 CPU, a 1440p display, and a fast GTX675MX GPU.
Although not cheap, there really is no option for me. The closest Windows device that I could find is a 27″ Dell XPS One, which has faster CPU for less money, but the most important component, the graphics card, is a lot slower.
I’d always thought of Apple computers as overpriced, but in this particular case, the high-end 27″ iMac is reasonable compared to the alternative.
Rather than go through yet-another-boring-review, I’ve decided that I’ll just list the things I like or dislike about it, from the point of view of someone who’s relatively new to Apple computers.
Things I like
- The look.
- The screen. I was using a Dell Ultrasharp 1440p monitor, and this is just as good, so I’m very happy. It’s a shame I can’t fit them next to each other on the desk…
- The lack of noise. No more deafening silence when I finish work for the day.
- The low operating temperature. My old PC could heat the room if the door was shut.
- The GPU. It’s very capable, though it will date over time because it can’t be upgraded.
- One cable. It’s so nice to be rid of the bundle on the floor where the dust bunnies nested. The robot can now get under the desk to keep it clean.
- Timemachine. There’s nothing as easy to use for backups on Linux Mint, which resulted in not backing up as regularly as I should have.
- Sleep mode. It often doesn’t work properly on Linux because the hardware manufacturers will try to tkeep power management systems secret.
Things that I’m not impressed by
- Where’s the “cut” option when right mousing on a file? I move files more than I copy them and I shouldn’t have to fumble with the keyboard to do it.
- Finder regularly misbehaving. Sometimes clicking on the icon does nothing. I then have to right mouse on the icon to open the context menu to bring a window to the front. A reboot fixes it, which is inconvenient.
- The Magic Mouse. It looks nice, and it works, except when it occasionally scrolls itself without touching it, or when I accidentally brush my palm against the back of it, or when it goes berserk in some games.
- The wireless keyboard. It looks like a toy in front of such a large screen. A numeric keypad would have been handy, and it’s not like the keyboard would have had to be much larger to fit a couple of extra keys 0n.
- The “on” button. It’s almost hidden at the back, on the opposite side to where the IO ports are.
- Open source software. I use a fair number of open source packages, and the Mac really isn’t user friendly for them. Some are native, but don’t work quite right, some require jumping through hoops, such as installing X11.
Things I don’t like
- Glue. They glued it together, so what happens if dust builds up inside and it needs to be cleaned out?
- Thinness. Apple have made a big deal about how thin it is, but it’s really just an illusion that makes it photogenic for marketing purposes. I’d be indifferent to this, if it hadn’t pushed the USB ports to the back where they are more awkward to get to.
- Installing MacOS apps. Some do it though the app store, some manually, some have to be dragged to the left, some to the right, and updates have to be done manually sometimes as well. I’ve been spoiled by Linux Mint where it’s so easy to install software and keep it up to date.
Overall, it’s a great machine, and I can recommend the 27″ models for anyone looking for a no-fuss desktop computer that’s easier to live with than a laptop. Although pricey, it’s not excessive considering the hardware inside.
I’m not so keen on the 21.5″ models though. When compared to the larger ones, the specs on the smaller iMacs are significantly weaker, yet the price is fairly high. If you are set on an all-in-one iMac, and were looking at the 21.5″ models, I’d definitely try to scrape up a little more cash.






What day is it with Unity?
Time has been slipping away what with setting up the new Mac and going through my old Linux Mint hard drive to bring everything across. Everything, that wasn’t trashed when the old Linux PC slid off the desk onto the floor while I was trying to make space for the iMac… at least I’d backed up most of the stuff on the old PC before I started moving stuff around.
One of the things that caught me out about Unity is the use of reserved file and folder names. A few days ago, I created a new script file, after which I tried to compile the project. This resulted in a load of errors appearing from nowhere, with messages like “The name ‘Editor’ does not denote a valid type (‘not found’)”. Because this was immediately following the migration from the MacBook to the iMac, I spent some time checking the code to make sure everything had come across properly.
Eventually, I figured out that it was actually the name of the new script that was the problem: “ShapeEditor”. “Editor” is a reserved word which Unity uses to identify editor extensions, and any class that has the word in it’s name has to reside under a folder called “Editor”. Renaming the script file fixed all the compilation errors, but it’s an easy mistake to make, and the error messages it produces aren’t exactly obvious.
There’s other similar reserved words, such as the folder name “Resources” which Unity will look in whenever you call a function such as Resources.Load to instantiate an object at runtime.
Yet more plugins
Progress has been slow on my game because I’m continually backtracking and re-doing bits as I learn more about Unity. I’m not trying to make perfect code, what I am trying to do is to find the most efficient way of writing code for Unity so that the next project will be faster and easier to write.
For instance, I decided that I wanted to add a grid to the level editor so that I could get an accurate view of the where all the objects are placed on the 2D game area. Unity’s line drawing functionality doesn’t seem to be particularly useful – In fact, it’s much like Shiva, the only line drawing calls are used for debugging, and don’t show up in final code.
The logical solution is to create lines using vectors as part of an object. I started off by constructing a grid from an array of lines in Inkscape, then imported it as an SVG spline to bypass having to figure out how to create an object from scratch with Unity. By messing around with the scale I was able to get the grid to match the size of the blocks on the 2D game area, and then I implemented drag and drop, with the ability to paint new objects into the scene from a palette of pre-defined splines imported from Inkscape. This turned out to be a lot of work because of the calculations involved in lining everything up and have it all at the same scale.
The result was several hundred lines of code spread across a number of files.
Once I had it working, I realised that I needed to alter the size of the grid slightly to account for the relatively narrow screen aspect ratio of some iOS devices. My fiendish plans unravelled due to the difficulty of adjusting the lines on the grid, and then applying the same changes to all the objects in the scene. While Googling for solutions, I came across yet another Unity plugin called “Grid Framework”. It wasn’t free, but for $20, I was able to implement a much better solution that allows me to control the size of everything in the game world from one line of code. The plugin also halved the amount of code that was needed to run the editor… if only I’d thought of looking for a grid plugin before I’d started…
Speaking of purchases, I have just bought a license for creating iOS apps with Unity, in addition to the Android one I already have.
The only outstanding compiler now is the Blackberry one, which I hope will become available soon, and I also hope is compatibile with all the plugins I’ve purchased… I still haven’t heard if Blackberry still has plans to upgrade the old Playbook to BB10 – it would be silly for them not to do it because they need all the goodwill they can get when facing off against Android and iOS.