Peopleware, programming, and project management. International travel, billable hours, and other tomfoolery.
Friday, December 17, 2010
Mindsets - Growth or Fixed
Useful summary of Carol Dweck's ideas on growth versus fixed mindsets.
Sunday, November 21, 2010
How to sell high rate professional services and still save your clients money
How much does effectiveness cost? For example, how much per hour should one pay for a good accountant, or lawyer. My field is programming and engineering, so I'm going to talk in those terms. But it applies to amost all billable hour professionals.
So, we know that at very low costs, you may get someone who is just utterly useless for your purposes. They may not be forever broken -- maybe they're just a smart but inexperienced graduate. We all were once. But while they're at that stage of learning, they are barely worth the paper you wipe their noses with.
But the good thing is, they improve quickly. Start spending more and you get a little bit of improvement. Spend more and the increase gets even bigger. Something like this:

So, we know that at very low costs, you may get someone who is just utterly useless for your purposes. They may not be forever broken -- maybe they're just a smart but inexperienced graduate. We all were once. But while they're at that stage of learning, they are barely worth the paper you wipe their noses with.
But the good thing is, they improve quickly. Start spending more and you get a little bit of improvement. Spend more and the increase gets even bigger. Something like this:
Gnus - multiple imap accounts on the same server
Quick config snippet for Gnus. I have two primary email accounts -- one on Google Apps for work, and the other just plain gmail for personal. In moving to Gnus, initially I had a problem getting them both to work. The lisp for .gnus is simple. I'm using gnus-secondary-select-methods to configure my mail servers, like this:
That works fine but it prompts for usernames and passwords, so I need some entries in my .authinfo file to automate that. Unfortunately, a simple view of that would have me writing a .authinfo like this:
However, that didn't work. Gnus acted just as if it didn't recognize either of those and insisted on me authenticating interactively. But, helpful people at gmane.emacs.gnus.general (thanks Tassilo) provided the simple solution. All I had to do was append the "force yes" command to the end of each of those lines, like this:
Now it's working fine.
(setq gnus-secondary-select-methods
'(
(nnimap "work"
(nnimap-stream ssl)
(nnimap-address "imap.gmail.com")
(nnimap-server-port 993)
)
(nnimap "personal"
(nnimap-stream ssl)
(nnimap-address "imap.gmail.com")
(nnimap-server-port 993)
)
)
)
'(
(nnimap "work"
(nnimap-stream ssl)
(nnimap-address "imap.gmail.com")
(nnimap-server-port 993)
)
(nnimap "personal"
(nnimap-stream ssl)
(nnimap-address "imap.gmail.com")
(nnimap-server-port 993)
)
)
)
That works fine but it prompts for usernames and passwords, so I need some entries in my .authinfo file to automate that. Unfortunately, a simple view of that would have me writing a .authinfo like this:
machine imap.gmail.com login work-email password work-password port 993
machine imap.gmail.com login personal-email password personal-password port 993
But of course that won't work because both lines get triggered when Gnus tries to access either account, since both are on "imap.gmail.com". In practice I think it means it would just access my work account twice. But, according to Simon Josefsson:machine imap.gmail.com login personal-email password personal-password port 993
nnimap has solved this problem by letting you use, instead of the server address, the virtual Gnus server name when specifying username/passwords in the authinfo file.So that means I should be able to change the above to:
machine work login work-email password work-password port 993
machine personal login personal-email password personal-password port 993
machine personal login personal-email password personal-password port 993
However, that didn't work. Gnus acted just as if it didn't recognize either of those and insisted on me authenticating interactively. But, helpful people at gmane.emacs.gnus.general (thanks Tassilo) provided the simple solution. All I had to do was append the "force yes" command to the end of each of those lines, like this:
machine work login work-email password work-password port 993 force yes
machine personal login personal-email password personal-password port 993 force yes
machine personal login personal-email password personal-password port 993 force yes
Now it's working fine.
Thursday, October 28, 2010
Excel 2011 for Mac
I've toggled back and forth between Windows and Linux over the years. I much (*much*) prefer Linux, but a few applications forced me always to keep at least one foot in Windows. Those apps were: QuickBooks, Projector (a Professional Services Automation tool), and Microsoft Office. In fact only the first two really matter in and of themselves. For most of MS Office, you can shut it in a box with that bloody paperclip. I need Word and Powerpoint only to the extent that other people insist on using those proprietary file formats. But Excel is different. Excel 2007 kicks OpenOffice calc's a*se (I've used them both a lot). I do use Excel for stuff.
But I really don't like living in Windows. Apart from its exposure to Malware, the instability that's probably inevitable given its wide use just drives me nuts. Add to that collateral issues like the sheer amount of utter garbage trial/demo/ad/nag-ware that is inflicted on you when buying a new non-business machine, and also its constant attempts to "help" by guessing what I really want to do (which are never ever useful) and ... well, it sucks.
But about a year ago I decided that a reasonable compromise could be switching to Mac. A unix base, but able to run MS Office natively. Sounds cool. I'd still have to run Windows under Parallels or similar, but I'd get to live for most of my work in a much nicer OS.
But then I tried it and found that Office 2008 on the Mac is to Office 2007 (*The* Office) what the US economy is to a free market. Not Remotely The Same.
Well today I bought and installed the new Office 2011 for Mac. And after a *very* brief test I can say that I think that problem may have gone away. A key part of the test was to load up some Excel 2007 files, including some pivot tables from Projector, and some pretty intense INDIRECT()-based gaskets around those pivots. It all worked perfectly without even a warning.
Now although there were some macros in there (probably by virtue of the pivots) there was nothing in the way of VB. (VB? Messing up my lovely functional-esque pure Excel? Are you trying to be funny? If you need VB you need to go and learn more Excel. And if you *really* need VB, then you probably should be in Python or Ruby or something and dropping Excel completely.) So treat this, as I say, as a very brief test.
But so far, so good.
But I really don't like living in Windows. Apart from its exposure to Malware, the instability that's probably inevitable given its wide use just drives me nuts. Add to that collateral issues like the sheer amount of utter garbage trial/demo/ad/nag-ware that is inflicted on you when buying a new non-business machine, and also its constant attempts to "help" by guessing what I really want to do (which are never ever useful) and ... well, it sucks.
But about a year ago I decided that a reasonable compromise could be switching to Mac. A unix base, but able to run MS Office natively. Sounds cool. I'd still have to run Windows under Parallels or similar, but I'd get to live for most of my work in a much nicer OS.
But then I tried it and found that Office 2008 on the Mac is to Office 2007 (*The* Office) what the US economy is to a free market. Not Remotely The Same.
Well today I bought and installed the new Office 2011 for Mac. And after a *very* brief test I can say that I think that problem may have gone away. A key part of the test was to load up some Excel 2007 files, including some pivot tables from Projector, and some pretty intense INDIRECT()-based gaskets around those pivots. It all worked perfectly without even a warning.
Now although there were some macros in there (probably by virtue of the pivots) there was nothing in the way of VB. (VB? Messing up my lovely functional-esque pure Excel? Are you trying to be funny? If you need VB you need to go and learn more Excel. And if you *really* need VB, then you probably should be in Python or Ruby or something and dropping Excel completely.) So treat this, as I say, as a very brief test.
But so far, so good.
Saturday, October 23, 2010
Complexity management? You think it's gone? It's never gone!
On seeing my Sheldon impression, one of my guys helped me over the last hurdle with advice on getting that PATH setting for when I'm not launching emacs directly from a terminal (where the PATH is already set). Gordon said:
But why is this still a question, in 2010? It is now many years since another pal of mine first developed Arusha. We're now well into the age of such machinery as Puppet. Why am I even asking about managing my one Mac? Maybe there's some comfort to be had from things like the forthcoming Mac App Store. But it stills feels awfully GUI-ish and clicky, and I can't help the hairs on the back of my neck raising a little in concern -- probably unjustified -- that an optional Mac App Store eventually becomes an obligatory-without-a-possibly-DMCA-violating-jailbreak Mac App Store.
Of course this goes beyond just sysadmin. One of the approaches my team takes in our professional lives as experts in chip verification, in many ways an abstruse form of software test, is that everything should be automatable in the sense that it is written as a program. On the Big Day (called "tape out"), when person-years of design efforts are to be released to over $1m worth of manufacturing, we'd like to do the equivalent of typing two simple words -- "make tapeout" -- and have, via however many hours of building and processing and checking, the single digit "0" telling us we're good to go. But in over ten years of working with over 100 clients on over 200 projects across the planet, we have yet to see that ideal setup.
Why? Why is "configuration management" -- not just in version control, but in the other aspects of build management, release control, issue tracking, and workspace management -- still the poor cousin to fancy GUIs and IDEs and other such eye candy?
As Fred Brookes said, "Complexity is our business". And complexity, like Bob, is never gone. Why won't we accept that?
If you want to set PATH variables for GUI apps in OS X, there are two ways to go
Set up an ~/.MacOS/environment.plist
http://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPRuntimeConfig/Articles/EnvironmentVars.html
You should have a Property List Editor in /Developer/Applications/Utilities/Property List Editor.App (or quicksilver search for plist)
Or drop an entry into /etc/paths.d/
http://littlesquare.com/2008/01/upgraded-to-leopard-making-use-of-etcpathsd-and-path_helper/
First option will require restarting your user session, second option requires restarting the whole enchilada
Cool, thanks dude. I knew I hired you for a reason :-)
But the question is -- is that really the last hurdle? See, these kind of sysadmin-ish issues are to the geek what Bill Murray's Bob was to Richard Dreyfuss's Dr Leo Marvin in What About Bob?
As soon as I read through Gordon's suggestions the next thought was, but what happens when I move to a new Mac one day; how will I remember that I made these mods? I could always write it down somewhere I suppose, or I could back it up along with everything else. But I don't want to back up *everything*. How do I capture this important piece of information?
But why is this still a question, in 2010? It is now many years since another pal of mine first developed Arusha. We're now well into the age of such machinery as Puppet. Why am I even asking about managing my one Mac? Maybe there's some comfort to be had from things like the forthcoming Mac App Store. But it stills feels awfully GUI-ish and clicky, and I can't help the hairs on the back of my neck raising a little in concern -- probably unjustified -- that an optional Mac App Store eventually becomes an obligatory-without-a-possibly-DMCA-violating-jailbreak Mac App Store.
Of course this goes beyond just sysadmin. One of the approaches my team takes in our professional lives as experts in chip verification, in many ways an abstruse form of software test, is that everything should be automatable in the sense that it is written as a program. On the Big Day (called "tape out"), when person-years of design efforts are to be released to over $1m worth of manufacturing, we'd like to do the equivalent of typing two simple words -- "make tapeout" -- and have, via however many hours of building and processing and checking, the single digit "0" telling us we're good to go. But in over ten years of working with over 100 clients on over 200 projects across the planet, we have yet to see that ideal setup.
Why? Why is "configuration management" -- not just in version control, but in the other aspects of build management, release control, issue tracking, and workspace management -- still the poor cousin to fancy GUIs and IDEs and other such eye candy?
As Fred Brookes said, "Complexity is our business". And complexity, like Bob, is never gone. Why won't we accept that?
Friday, October 22, 2010
I'll hack if I want to
Being a wichtig CEO, I'm not supposed to hack anymore. Excel's OK, but even there I probably make far too much use of INDIRECT() than is respectable. I mean, I'm a captain of industry an' stuff. Officer class. Hacking's for the enlisted men. But wait. It's 5:00pm. Friday evening. The house is quiet. Wife out with friends. No one will know. Just a wee bit -- where's the harm.
Ha. Wee bit? A wee bit? It's never a wee bit!
And what makes it worse is that the more time you leave between exposures to code and all the trimmings, the more you feel sick and decrepit on the odd occasion you try to dive back in. And I'm actually not even talking about real coding here -- just messing with my new Mac's setup in a way most non-geeks wouldn't.
Here's a quick stream of (the lack of) consciousness I'm following at the moment.
Ha. Wee bit? A wee bit? It's never a wee bit!
And what makes it worse is that the more time you leave between exposures to code and all the trimmings, the more you feel sick and decrepit on the odd occasion you try to dive back in. And I'm actually not even talking about real coding here -- just messing with my new Mac's setup in a way most non-geeks wouldn't.
Here's a quick stream of (the lack of) consciousness I'm following at the moment.
Thursday, October 21, 2010
Eh, Yammer; gonnae no.
We use Yammer, the company-internal-use-only version of Twitter. We've been Yammering for a while now. It's cool. We have teams in Scotland, England, Germany, and Texas and Yammer helps provide a virtual version of popping your head over the cube wall and yelling, "ANYONE KNOW HOW TO DO X!?" But today, I got a status email update that made me sigh. And not in a good way. Snippets follow:
Sigh. Yes, yes, I've snipped some bits about how I can get back to my "follow everyone" situation, but why should I have to bother? And exactly what are they going to do anyway, on October 29th, the day of The Great Unfollowing? Are they just going to forcibly unfollow me from everyone in Verilab? If so, is that only because I currently follow everyone -- all 18 of 'em? And could I avoid the problem by temporarily unfollowing one person (and then re-following them on the 30th)? Or are they going to have everyone unfollow everyone no matter who, when or where? Surely not? I'm sure that will piss off a lot of users within large companies who have carefully selected their to-be-followed subset.
Sigh, again. Google. Yammer. All of you. Just gonnae no.
Hi Tommy, We noticed you are Following Everyone in your Yammer network.Ehm, OK. A bit creepy, but fair enough. In these days of Eric Schmidt, we've come to expect such.
Your interest in viewing all the messages in your company is fantastic.Well thank you. Vote of confidence from my SaaS people. And lest someone accuse me of being Schmidt-like, everyone in Verilab is on the main feed (and there's at least one feed I am not on -- mainly because I don't need to know if the Munich guys are planning another dinner of pancreas fajitas and beer). But anyway, nice as Yammer is being, doesn't it sound like they're setting me up for a "But ..."
Here's the thing:Ah, see! As Rachel told Josha about "However", that's just just a fancy "But...".
as Yammer networks grow in companies, we've learned a few things. We've learned that as your company network gets bigger, Following Everyone can clutter up your MyFeed and impair your ability to find what's most relevant to you.Yeah I suppose that could happen in a big company with hundreds of users. But we don't have hundreds. And you know that, don't you, 'cos you already know I'm following them all. No?
On Friday, October 29th, you will stop following everyone in your network. ...Excuse me?
This way your MyFeed will be focused on the messages that matter to you most.Excuse me?? You have a "matters most to Tommy" sniffer?
...We understand this is a slight change in how you use Yammer, but we know this will greatly improve your ability to find important information from your colleagues -- and help you get the most from your network.ExCUSE me?? Would you like to add some bad-word catchers too while you're at it? Maybe add some filters to my email?
Sigh. Yes, yes, I've snipped some bits about how I can get back to my "follow everyone" situation, but why should I have to bother? And exactly what are they going to do anyway, on October 29th, the day of The Great Unfollowing? Are they just going to forcibly unfollow me from everyone in Verilab? If so, is that only because I currently follow everyone -- all 18 of 'em? And could I avoid the problem by temporarily unfollowing one person (and then re-following them on the 30th)? Or are they going to have everyone unfollow everyone no matter who, when or where? Surely not? I'm sure that will piss off a lot of users within large companies who have carefully selected their to-be-followed subset.
Sigh, again. Google. Yammer. All of you. Just gonnae no.
as Yammer networks grow in companies, we've learned a few things. We've learned that as your company network gets bigger, Following Everyone can clutter up your MyFeed and impair your ability to find what's most relevant to you.
Yeah I suppose that could happen in a big company with hundreds of users. But we don't have hundreds. And you know that, don't you, 'cos you already know I'm following them all. No?
On Friday, October 29th, you will stop following everyone in your network. ...
Excuse me?
This way your MyFeed will be focused on the messages that matter to you most.
Excuse me?? You have a "matters most to Tommy" sniffer?
...We understand this is a slight change in how you use Yammer, but we know this will greatly improve your ability to find important information from your colleagues -- and help you get the most from your network.
ExCUSE me?? Would you like to add some bad-word catchers too while you're at it? Maybe add some filters to my email?
Sigh.
Yes, yes, I've snipped some bits about how I can get back to my "follow everyone" situation, but why should I have to bother? And exactly what are they going to do anyway, on October 29th, the day of The Great Unfollowing? Are they just going to forcibly unfollow me from everyone in Verilab? If so, is that only because I currently follow everyone -- all 18 of 'em? And could I avoid the problem by temporarily unfollowing one person (and then re-following them on the 30th)? Or are they going to have everyone unfollow everyone no matter who, when or where? Surely not? I'm sure that will piss off a lot of users within large companies who have carefully selected their to-be-followed subset.
Sigh, again. Google. Yammer. All of you. Just gonnae no.
Subscribe to:
Posts (Atom)