Fixing SMB issues with OSX Lion

Update: THIS DOES NOT APPLY TO MOUNTAIN LION. The technique mentioned here does not work on Mountain Lion

I use a Linksys NAS200 as a file share device at home. This uses Samba – an open-source port of Microsoft’s SMB file share protocol – for sharing files to other computers. This worked fine from my Mac when I was using Snow Leopard.

At some point after I upgraded to Lion (not exactly sure when, but I don’t think it was on upgrade day…), I tried to access the share and could connect. It turns out that Apple have discontinued support for older versions of the SMB protocol (pre-Windows XP versions, to be precise). Of course, that’s the exact version used by my NAS.

I found lots of suggestions on line to fix this, but the simplest one is just to re-enable the support. Apple have only turned it off by default, and you can turn it back on. I used the instructions I found in an Apple support notice to turn it on temporarily, like so:

sudo sysctl -w net.smb.fs.kern_deprecatePreXPServers=0
And this let me connect to my file server. Yay!
Unfortunately, this is only temporary. The command changes  a setting in the kernel (the foundation layer of the operating system), but it’s transient – it will get forgotten the next time you start the computer. A little bit of googling later, and I found how to make it permanent.

You need to edit the file /etc/sysctl.conf – the file may not exist, but if it does you probably want to back it up first. Add the setting from above into the file.

My sysctl.conf file ended up looking like this – I added a couple of extra settings I found while searching for this that significantly speed up transferring files, so a win all around (or so it seems):

# Re-enable smb support for my old LinkSys NAS200
net.smb.fs.kern_deprecatePreXPServers=0
# Maybe make NAS faster?
net.inet.tcp.delayed_ack=0

(The tip about delayed_ack came from this post over at MacWorld.com. Reasonably fine to do on a home network, but probably not a good idea on a busy network)

If you found this useful, please let me know. 🙂

The new user story backlog is a map

The new user story backlog is a map

I’ve been recommending a similar approach – though not as completely fleshed out – for the last few years. (I organise the spine of my map as a mind map, though – I like spreading it out in 2d instead of just a line)

Podcasts that I listen to

A work colleague asked me the other day for podcast recommendations, so I’m belatedly putting this list together. I tend to listen to podcasts when commuting and on my daily walks – about 90 minutes a day, more or less – and I usually listen to stuff that’s interesting or work-related.

Continue reading “Podcasts that I listen to”

Apache Felix – Apache Felix Maven Bundle Plugin (BND)

Apache Felix – Apache Felix Maven Bundle Plugin (BND).

Very handy way of creating an OSGI bundle out of an otherwise normal Maven project.

iBooks Author – what’s the fuss about?

So it’s been a couple of days now since Apple did their press event where they announced a new focus on education. A key part of this was the rollout of a new application – iBooks Author – and a new version of iBooks for the iPad and iPhone/iPod. Well, since then there’s been a flurry of outrage on the twitter-sphere.

TL;DR – People see Apple making cool tools, they hating. Apple only added options – maybe not as much as people like, but they didn’t take anything away. Biggest bitch seems to be that people won’t be able to use Apple’s free tool to write stuff for non-Apple platforms, and it’s so much better than the existing tools that people want to do exactly that.

Continue reading “iBooks Author – what’s the fuss about?”

Book Review – The Cucumber Book

The Cucumber Book

Title: The Cucumber Book – Behaviour-Driven Development for Testers and Developers

Authors: Matt Wynne, Aslak Hellesøy

Rating: 4/5

Overall, a solid introduction to the Cucumber testing tool, and BDD in general. About the only criticism I have of it is that it’s perhaps a little bit too Ruby focused – an example of working with an application or a database without leveraging Rails would have been nice.

Continue reading “Book Review – The Cucumber Book”

Book Review – Peopleware

Title: Peopleware: Productive Projects and Teams

Authors: Tom DeMarco, Timothy Lister

Rating: 5/5

I picked this as the first book to review on my endless quest for two simple reasons:

  • It is one of my all time favourite books – a true timeless classic that really should be mandatory reading for every knowledge worker.
  • I have both the first and second editions on my reading list, so I can do a two-fer and review them both at once.

I bought the first edition in a 2nd-hand bookstore for $15 – the price is still on the inside cover. Two days later, I ordered the second edition for the eight all-new chapters.

Overall, the book holds its age well – it’s nearly 25 years old now, as it was first published in 1987. If they release a ’25th anniversary’ edition, do pick it up.


The book is broken into six sections – the last of which is for the second edition only. The sections are:

  • Managing The Human Resource – several chapters on people management skills
  • The Office Environment– all about building productive and distraction free environments
  • The Right People – covers how important it is to get the right people for your environment, not necessarily the most skilled or the cheapest.
  • Growing Productive Teams – pretty obvious; this is about how you nurture teams, how you can help make them gel, and how you prevent them falling apart.
  • It’s Supposed To Be Fun To Work Here – enjoyment and satisfaction in the work environment – what a novel idea!
  • Son of Peopleware – a reflection on the 12 years between the two editions, lessons learnt and new insights.

It’s a little dated in some ways. Some of the specific problems described in the book have gone away or reduced, while some of the specific solutions aren’t quite right anymore. But as a whole, the book is still highly relevant.

Each section is broken into several chapters. In the first part of the book, each chapter focuses on a particular issue. That may be a common negative phenomenon or anti-pattern – Chapter 3 is about overtime and workaholics, while Chapter 7 is about issues with ‘The Furniture Police’ – the people who don’t let you re-arrange workspaces to enable greater collaboration. Or it may be a positive workplace practise, such as Chapter 21 ‘A Spaghetti Dinner’, which describes a simple team-building exercise and why it works. Each chapter is short and focused – any chapter can be read in just a few minutes, which makes this a great book to read in spurts.


Here’s an example from one of the early chapters – Chapter 4 “Quality – If Time Permits”:

The Flight from Excellence

Managers jeopardise product quality by setting unreachable deadlines. They don’t think about their action in such terms; they tink rather that what they’re doing is throwing down an interesting challenge to their works, something to help them strive for excellence.

Experienced (jaded) workers know otherwise. They know that under the gun, their efforts will be overconstrained. There will be no freedom to trade off resources to make on-time delivery possible. They won’t have the option of more people or reduced function. The only thing to give on will be quality. Workers kept under extreme time pressue will begin to sacrifice quality. They will push problems under the rug to be dealt with later or foisted of onto the product’s end user. They will deliver products that are unstable but not really complete. They will hate what they’re doing, but what other choice do they have?”

The chapter goes on to talk about how people don’t explicitly value quality – that given the choice between getting a barely working product on time and on budget, or getting the stable complete version a few weeks later for a correspondingly greater price, they tend to pick the former. And if it’s going to be on time and high quality, they’d rather have it earlier and buggier. While this culture is endemic – and any real world project will face pressures on both time and budget – a willingness to accept the merely adequate is a killer for craftsmanship. Another quote from the same chapter:

Allowing the standard of quality to be set by the buyer, rather than the builder, is what we call the flight from excellence. A market-derived quality standard seems to make good sense on as long as you ignore the effects on the builder’s attitude and effectiveness.

In other words, good people want to build good products that they are proud of. Having worked in more than one environment where building good products was always a struggle, this is a principle I can agree with at a gut level.


The book does have some gaps. In particular, it assumes that knowledge workers should work alone or in pairs, even when part of a collaborative team – this runs counter to some of the various Agile methodologies I’m a fan of, which put emphasis on the benefits of a co-located team working in a communal area. That said, there is little in this book I disagree with, and a lot that I’m in violent agreement with.

If I could make any manager I report to read just one book, it would be this one. If I could make them read a dozen, this would be the first – closely followed by several others by the same authors (“Slack”, by deMarco, is another favourite). It doesn’t matter that some of the advice in this book is 25 years old – it’s still important.

Installing Grails from Source

 

Having converted the customer-facing pages of Wotif.com from a Freemarker/WebWork/EJB stack to a Grails/Spring3 stack earlier this year, I’m now officially a huge Grails fan. In setting up a new dev box, I wanted to install it – but who wants to install a download, huh? I wanted to build it from source (you can tell I’m a former Gentoo user!). Here’s what I did.

Continue reading “Installing Grails from Source”

My Book Collection

Well, the technical ones, anyway – not shown are the two other similarly sized bookcases – and the other one which is a little more than twice as big – which are overflowing with my fiction collection.

(Click to embiggen)

The bottom two shelves (and a couple in the third row) are very dated – I don’t think anyone cares about the pre-OS7 Macintosh Toolbox anymore, for example. A number of the books in that row are from my university days.

The next three rows (including the slight spill over to the top row, which will soon force me to relocate the DVDs) are a more recent vintage – those are the books that I kept at work while I procrastinated about unpacking my study (Hey, I only moved in just under two years ago!). But I finally did that on the weekend, and now they’re home (except for a few I’ve lent out)

I gotta say, I’m thankful for ebooks – over the last two years, I’ve predominately bought ebooks. I’m not sure I could get their physical versions on the top shelf even without the DVDs (it would be another 24 books or so).

Anyway, the reason I’m posting this isn’t to brag or anything – it’s to set myself a challenge. I haven’t been keeping up with my reading over the last year for a number of reasons, up to and including battling with a moderate case of depression. I’m going to change that though – I’m going to go through those top shelves and re-read (or, in a few cases, read) each on that’s still relevant – which is most of them. I mean, I’m sure Webwork In Action was great in the day, but Webwork isn’t relevant to me anymore. Age isn’t a factor, though – in that bookcase somewhere is a 2nd-printing copy of The Mythical Man Month (which I picked up in a Lifeline store for $5!), and I’ve got both the original and the re-issue version of Peopleware in there. Then there’s the Psychology of Computer Programming – but that’s from the 20th anniversary printing.

Anyway, my challenge – to myself – will be to read and post a review of the books in there. One a week, with the first review due next Saturday (October 1), with an e-book thrown into the mix every so often as well. I’ll post a full set of the books within the next few days, and I’ll even see if I can turn it into a poll of sorts in case there’s books people want me to review first.

Watch this space for more.

Updated: You can see my Delicious Library collection, or you can view the page that will become a dynamic view over my books (but right now is just static)

Post-Release Testing – what’s that about, anyway?

One of the odder practices of “conventional” software development that I’ve ever come across is the post-release test cycle. It’s something that has baffled me ever since I first saw it; you go through the normal development cycle, including testing, and then you deploy to production – and then you test it again. Sometimes with test cases that weren’t done during development. Why?

Continue reading “Post-Release Testing – what’s that about, anyway?”