Snow Leopard was received in the post on the 29th and quickly installed. I say quickly; it took a little less than an hour to upgrade my machine though I am assured a fresh install takes less than 10 minutes.
No unexpected problems after the install: iStat menus don't work, neither does PlugSuit. iStat I was surprised about but PlugSuit is a hack which, had I thought about it, would have been sure it would fail.
First impressions? Exactly the same as for Leopard 10.5: "is that it?"
The only really obvious improvement is Mail, which is now blindingly fast. Seriously, it's nearly as quick as Thor on the Amiga. The problem here is that gpgMail has failed again. When will Apple give us a stable API to add these features in? PGP / GPG is essential!
Expose is better. Spotlight seems quicker, but I've not tested in detail as I've had little use of it yet. In general, the whole machine does seem quicker overall. I really don't think I've had any pauses or waits for something to react while using 10.6 today, in situations where 10.5 would leave me waiting for Finder to open a directory or crawl through for preview thumbnails.
I expect Snow Leopard to mature over the coming months as software is released and upgraded to take advantage of the revamped internals. I really do feel the same about 10.6 as I did for 10.5 (in that I couldn't see the need to upgrade from 10.4) but as 10.5 matured and realised its potential I found Tiger to be less and less attractive.
A while ago I had a CRB check at work. There were servers onsite used to host websites for schools and so, to be safe, everyone was checked with the Criminal Records Bureau. It was more to give customers confidence than for any practical reason.
What sticks in my mind was this:
I received a copy of the CRB results, and naturally the employer received their copy. Mine letter and results were of course marked 'confidential'. The odd part was that the employer wanted to have a photocopy of my results in addition to what they received - they are not supposed to do that. I remarked to the HR person at the time that it was a bit odd, but I wasn't opposed to letting them have a look at my "private and confidential" documents.
The next day I receive an email from the boss. I'm not a good communicator perhaps, as by the time my quip had been relayed to his ears it'd changed its meaning and he'd taken some offence.
The email stated why the CRB was done, why it was important, why they wanted it, etc. etc. - missing the point of my light-hearted concern that they wanted copies of my documents, labelled explicitly as for my eyes only, when they had received their own versions.
The best part was that in the email I was assured that the CRB check was completely confidential. To highlight this, he extracted details from my results and placed them in the email (fair enough that the 'details' were that there was nothing on CRB).
http://news.bbc.co.uk/1/hi/england/tyne/8115216.stm
A group of passengers refuse to board a plane when told that a plane should be balanced when flying.
What the story fails to state is that they were all avionic engineer.. oh, no they weren't? They were all physics profess... no? They were all pilots? No?
Ah ain't getting on no dahm pe-lane.
Silly pilot. Planes go faster when all the weight is in the nose. Ask any boy racer - you have to put the back seats down in your Saxo for best performance.
iPhone tethering uses standard Bluetooth protocols, so you can tether from Linux. I'm not aware of how you'd do this over USB - for my situation (using the iPhone as connectivity for my CarPC) Bluetooth is ideal.
First install Bluetooth utilities on Linux and ensure you are running a kernel with all Bluetooth support compiled in or otherwise available as modules.
Make sure you have something on Linux that'll prompt you for the PIN - kbluetooth or similar for graphical desktops. Pair the phone and the computer - I did this from the iPhone end - and enter the same PIN on each end. Ensure tethering is enabled and switched on on the iPhone.
You can get the iPhone's address on Bluetooth using 'hcitool scan' while the iPhone is in discovery mode.
On Linux:
modprobe bnep
pand --connect [IPHONE_ADDRESS] --service NAP --autozap
You should now see a new interface connected:
ifconfig bnep0
Depending on your Linux distribution, it may automatically run DHCP (this is how the iPhone gives your computer a NAT'd IP). Otherwise:
dhclient bnep0
(or whatever you use normally)
All done, have fun with Internet everywhere :-)
There is a famous list among developers called The Joel Test: http://www.joelonsoftware.com/articles/fog0000000043.html
It gives a guide to how best to develop software. I don't agree with everything - e.g. writing code during an interview, but it's a good guide to best practise in keeping your software quality up and your developers happy.
This list is all well and good if you're building a development team, or looking to work with one. Do they score 10? I'd like a job. Do they score 3? Let's keep looking...
But what about appraising somewhere you already work? I found a question on stackoverflow.com (my new favourite website) which appealed to the streak of good old British negativity in me - The Anti-Joel Test. What aspects of what you see around you every day contribute to worst-practise, making development ever more difficult?
Take a look here: http://stackoverflow.com/questions/901320/anti-joel-test
There are some jaded, real-world-affected people posting in there..
I've compiled a list of my favourites, based on past and present experiences.
I've been working on some software for a while. The idea was a search engine which answered questions directly, rather than sending you to a page with the answer.
I'm giving up now and hope to make some cashmoney using the algorithms elsewhere, since I've just had a play with Wolfram|Alpha. The primary test which I have been basing my idea on was asking what the weather is today and getting a straight answer. Wolfram isn't perfect but it passes the test.
As an aside, I asked it to compare the population and GDP of the UK and France. Try it yourself and look at how France has much less money per head than us. Then ask yourself why France is capable of building planes, spacecraft, rockets, trains, nukes, subs, helicopters and just about everything non-trivial that the UK now is only capable of buying from abroad. A little bit of politics there but since the MP's allowances have been made public I've been wondering where the supposed vast riches of the nation are going - not to imply that it all goes on moats and biscuits, of course; the total allowances for every MP might only pay for a feasibility study to put some traffic lights on a B-road in rural Wales.
mod_wsgi in daemon mode is a massive improvement over both mod_python and mod_wsgi in embedded mode.
mod_python was causing Apache2 to use the full memory and swap of my 256MB Slicehost server; that's around 700MB total commit. The same happened with mod_wsgi initially. The reason being that for each Apache process launched, the whole of my application's footprint was fetched into memory.
Partial solutions are to reduce the number of Apache processes, which bring its own problems when you don't have enough to serve your users.
mod_wsgi in daemon mode solves this by launching separate python-specific processes to look after your code, leaving Apache to look after incoming requests and static files. A single python process can look after a hundred Apaches.
It should have only taken a few minutes to configure daemon mode over embedded, but it was not obvious to me how to start the daemon. I spent a lot of time researching how to do it until I finally read the correct part of the documentation: mod_wsgi actually looks after this for you; there's no separate daemon to start.
Here's my configuration:
WSGIDaemonProcess unique_process_id processes=2 threads=4 maximum-requests=100 display-name=%{GROUP}
WSGIScriptAlias / /var/www/website/wsgi.py
WSGIProcessGroup unique_process_id
That's all you need over the daemon mode. There are a huge number of configuration options to tweak the way it runs which I won't go into here, but you can make it do pretty much whatever you need.
In terms of performance, I suspect that a daemon won't be as fast as a python-per-request, but since embedded in my experience eventually leads to swapping, daemon modes wins out overall.
What is it that you want your developers to do? I suspect that you want them to write code. The smaller the company, the more additional tasks there may be. But fundamentally, it's about writing code.
So how do you as an employer or manager ensure that they can do this most effectively?
There is much to be balanced. Lets try to dissect the options, paths and consequences, ranging from make-or-break to petty annoyances.
General office environment noise
The office must be reasonably quiet, but not silent.
Bad: sales people yelling down phones. The words enter the consciousness of the programmer, causing them to name variables after whatever product the salesbod is selling. The lies, ignorance and half truths also affect their state of mind: my thoughts are still swimming with a statement made by a salesbod about four years ago, regarding how Linux was so much easier to hack than Windows since you can see the source code.
Total quietness is bad too, at least in shared offices - you don't want to hear every creak of the office chairs, every slurp of coffee. Create some ambient noise with some desktop computers or aircon.
The computer
Programmers really do tend to need very good computers. Yes, even when hacking PHP/HTML. It's also a good idea to allow the programmer to use their platform of choice. If you're writing cross platform code, as everyone outside of Microsoft now does, then platform should not matter.
This, however, is much more than allowing your coder to have a Mac or Linux box. It must permeate the very fabric of your IT infrastructure.
I once tried to run Linux within a wholly Microsoft office. It did not go well. There is no reason for it not to have worked, but every aspect of the network fought against the alien invader. Exchange would not talk to open clients, network shares defaulted to settings which resulted in poor performance or even lack of connection with Samba, and more.
It's not just the infrastructure but also choice of software, as I'll come on to in a moment. Case in point: Microsoft Dynamics CRM. This truly awful, bottom of the barrel CRM software is a web application - however, it's a web application which runs only in Internet Explorer. Not only must you only connect from Windows, but you're locked into using IE no matter what your browser preference.
The computer must work for the developer. It must not be a continual uphill struggle to get anything done.
Software - development
You can code using only a text editor, but while that's fun for a bit you'll need more to keep developers happy and to improve productivity. I spent many years with only a text editor, even one which doesn't colourise code. You can learn much from coding in that way, but a business is less about learning and more about doing - get tools that help with the doing.
Thankfully much of the best software development tools are free for most development environments, but don't be afraid to spend. Example: Trac is quite a wonderful tool for ticketing and viewing source and changes in a Subversion repository. But if you have a few developers and the budget, then Atlassian products are a much better proposition.
Don't be afraid to spend if your company is profitable. Especially, don't dither over essentials - if your development environments are contained on VMWare images, ensure that your new Mac developers have a copy of VMWare Fusion. Don't leave them to spend months using every email address they have to continually download expiring trial versions - it will infect their thinking for years to come.
Software - office
You hope that your developers should never need to touch anything but their IDE, but in small companies it will be the case that developers need to raise sales orders, consult the CRM, query the ERP, connect to their email, use the phones, ...
I've touched on this above. Basically if you base your infrastructure on an MSDN subscription then you'll only keep .NET programmers happy. Good luck with that.
Of course, there's the other side to this - many non-programmers will be conditioned to use Windows, Office, and Outlook. Be careful that those not ready to use a non-Exchange mail server are retrained and don't poison the project - it is possible for an incorrectly used Outlook to make it appear that Zimbra is broken and certain types of people will use that to destroy the working atmosphere.
The computer - my home
So, you standardise your company on Windows. You have a Windows Server or five to run the network. You decide to ensure uniformity across your field of view in the office and implement Group Policy from Windows Server. You force a bland image with the company logo as a desktop image onto every Windows client desktop.
Good: no more sci/fi fantasy images. No more car images. No more nakidity.
Bad: your programmer probably had only a black backdrop, visible only for the few seconds that it takes to swap applications. Like one of a million paper cuts, this adds to a general sense of depression.
You go further. You announce that all webpages visited are tracked and monitored, and action will be taken if anything bad is accessed. 'Bad' is not defined, but you announce that you're already tracking people going to job sites. MSN is banned, then allowed, then conversations tracked. I understand this and recognise the business requirements, but you should also realise that it continues to poison the thoughts of those who never took advantage, never used MSN, but did like to check the news pages at lunch time. Especially if implemented before announced (if you announce) that it is happening.
You go further. You start blocking websites. Perhaps you have an employee who spends all day on Facebook. Fine, discipline them. Don't take it out on everyone else. Very especially, don't blanket ban websites for minor causes. Don't ban BBC News because some sales bod keeps watching the boxing results. This can have consequences beyond getting an extra minute or two of sales call time.
My example: every Monday morning I'd listen to Goon Show on BBC7 while trudging through the mindless tasks of the day. The same tasks, each Monday, performed with my eyes closed and my mind switched off. I'd often return and listen to other BBC shows throughout the week. Yes, this used bandwidth - but I took advantage of my position of being able to see MRTG graphs of utilisation to ensure that this 30kbit/s never impacted the business. As noted, my 5 minute lunch break would consist of browsing the news sites, and BBC News is the one site to rule them all. Imagine the impact on my day if the BBC was blanket banned. The BBC of all things.
Push your developers
Lack of challenge will turn them away. Real programmers want new challenges. New languages. New opportunities to push the boundaries. If the opportunity is there, push them into doing something new. Some will grumble early on, but the rewards from success blot out any and all negative aspects.
Don't push your developers
In non-coding aspects, don't push so hard. Programmers want to be stretched in technology, science, maths and logic. They don't like being needled about things irrelevant to the task in hand until they submit. Time sheets are a good example of this. How closely are you watching?
Get buy-in
Not just from developers, but in general: ask opinions of those involved before implementing policies.
"We're putting a new wall across your office."
"We're changing the CPU in your computer."
It gets difficult when you start scaling the numbers, but for a team of less than 10 its not difficult.
The developer abstraction layer
Read: http://www.joelonsoftware.com/articles/DevelopmentAbstraction.html
Some will want to be involved in raising invoices, the sales process, etc. etc. - these people may well become managers. Most find this a distraction.
Don't insult or threaten
Here's another general point. No matter who you employ, unless they do something incredibly stupid then you really shouldn't tell them their work is awful (at least when done to spec), or indeed threaten to kill them for asking where the printer paper is. Just good manners.
http://www.dailypost.co.uk/news/north-wales-news/2009/04/11/anger-at-nor...
A parent commenting on a mobile phone mast on a school:
“And whose bright idea was it to place a mast on a school? It’s disgraceful as there is still a lot of uncertainty around the safety of these antennas.”
Exactly how much uncertainty is there regarding the electromagnetic spectrum?
Should we just give up, go back to stone tools? Oh crap, but stones emit radiation... Wood tools? No, that would emit carbon. No tools? But we're surrounded by rock and soil and plant and animals, all emitting poisons and radiation and evil! And the sun! My word, how much radiation comes off the sun! More than earth has ever produced. Quickly, we must jettison ourselves into deep space, away from sources of energy. Oh no, we would need oxygen - oxygen destroys cells... Bother.
Apple are getting expensive. Yes, Apple products always are expensive but for the last three or four years prices have been low enough for me to justify moving to Mac from Linux - almost entirely (he said, typing on a Mandriva Linux box).
But lately, between the dollar/pound and other effects, Apple prices in the UK have gone through the roof.
MacBook (plastic): was £700. Decreased to sub-700 post the 15% VAT change.
After the new MacBook introduction, it gained a new Nvidia graphics chip and went up to £719 even though in US$ it was reduced by around 10%.
Mac Mini: up 25% to £500.
iMac: up from £800 to £950.
Importantly, if they had cost this a year or two ago I would not have bought them. The iMac was competitive against even a custom PC - it is not now although its pricing is on par with Dell equivilents.
What about the hidden costs?
The remote is no longer included with the machines. I didn't get one with a MacBook back in September 2008, even, though I did back in January. For the Mac Mini this is important - it is used in the sort of situations where the remote is most likely to be used - media, set top box, etc. I got one with my £800 iMac, yet if I upgraded to the £950 basic model now I wouldn't get one.
Moving on, the display adaptors. You MUST have a display adaptor. Apple use MiniDVI and DisplayPort and you need a special adaptor to connection to VGA or DVI.
For MiniDVI, these were £15 - I have a VGA and DVI for the MacBooks and a VGA on my iMac.
For DisplayPort, they're up to £20. Incredible. I'm all for making a profit, but these is really skimming cash off consumers.
Hard Disks and Memory have always been expensive in the Apple shop, but take a look at the 8GB costs - £800! Consider that they charge £200 for the 4GB removed to install the 8GB in the configurator.
I suppose Apple know what they're doing. I love my Macs. Linux would be difficult to back to full time. Windows is almost completely out of my life. Give it five years and I'll be forced into upgrading in some way... My PowerBook lasted four years and is still in use today, although not by me.