Lock Stock Pomodoros

I give you http://pom.ianchanning.com. Pomodoros with a Lock Stock film quote at the end of each one.

I’m a little obsessive about timers (see bottom) and the other pomodoro timers I’ve tried failed on different counts.

I’ve tried to cram everything I find useful about a timer.

Firstly spacebar to start/stop. The timer should be something that sits in the background and requires minimal attention. So a quick ctrl+tab to get the the pomodoro tab and then hit space and then back to your work.

Secondly the timer appears in the title bar and it appears first. Then you can easily see that it’s running so that you can still see the timer when you have lots of tabs open.

Thirdly there’s a start and stop. Possibly this flies against what a Pomodoro timer should do. However any timer I have I want to be able to start/stop/reset. That’s just what a timer should do, it’s annoying if it doesn’t.

Fourthly the timer has to notify you properly when the pomodoro finishes. This is achieved through a buzzer and a browser notification. Notifications sometimes don’t work or you don’t see them so you need the buzzer backup. Sorry IE folks your browser is still terrible and can’t handle the Javascript Notifications and I can’t be bothered to fix it when it’s just for a personal project.

Fifthly a count of the pomodoros is useful to know how many you cranked out in the day.

Sixthly, a bit of browser responsiveness goes a long way.

And that’s it. No more please.

Well except I needed to put something in the notification so I jazzed things up with quotes from Lock Stock and Two Smoking Barrels. If you can’t take the ‘c’ word at least once then this timer is not for you.

For those who got this far. I started with the most basic timer I could think of that still had a simple start-stop mechanism. Then after staring at the jquery code I’d copied I realised I could make a generic jquery ticker function. So I can tick 25 minutes down and then tick the pomodoro count up 1 each time. The rest is a codged together front end on top of that.

Scrum unsucked

[Photo credit: darkmatter]

I’ve been reading into Scrum closer recently and it just seems like a horrible corruption of an inspirational idea, that could much more easily be integrated into normal project practices.

Agile

I love the agile principles. I’m repeating them here for my own benefit, I like a good list as much as the next.

  1. Customer satisfaction by rapid delivery of useful software
  2. Welcome changing requirements, even late in development
  3. Working software is delivered frequently (weeks rather than months)
  4. Working software is the principal measure of progress
  5. Sustainable development, able to maintain a constant pace
  6. Close, daily cooperation between business people and developers
  7. Face-to-face conversation is the best form of communication (co-location)
  8. Projects are built around motivated individuals, who should be trusted
  9. Continuous attention to technical excellence and good design
  10. Simplicity—the art of maximizing the amount of work not done—is essential
  11. Self-organizing teams
  12. Regular adaptation to changing circumstances

Each principle makes sense, even if, perhaps, it isn’t attainable.

Their manifesto is harder to figure out, but still has a great aspirational feel to it.

We value this Over this
Individuals and interactions Processes and tools
Working software Comprehensive documentation
Customer collaboration Contract negotiation
Responding to change Following a plan

However importantly note that the second column is still valued, but just not as much as the first.

Scrum

Now read the Scrum Guide™ (TM!). Scrum just seems like a conversion of agile concepts into sucky word project management.

I realised I’d already got it wrong with what a sprint was – I thought it was two weeks work. They suggest that it should be a month’s worth of work – which makes sense, but why not just call it a month’s worth of work – or if it’s going to be less just call it an increment.

Anyway I read through the Scrum Guide and here’s my unsucked version of their main concepts.

Scrum Guide™ Unsucked agile guidelines™
The Scrum Team The Team
The Product Owner The Client
The Development Team The Developers
The Scrum Master The Project Manager
The Sprint The Sprint (it isn’t actually that bad a word) / Increment
Sprint Planning Planning
Daily Scrum Talk
Sprint Review Sprint Update
Sprint Retrospective Sprint Review
Scrum Artifacts Documents
Product Backlog Issues
Sprint Backlog Sprint Issues
Increment Completed Issues
Artifact Transparency Simplification
Definition of “Done” Happy Client

Can I have a word…

Scrum style

“Shall we go over the Sprint Review later? I’m not convinced that the Product Backlog contains all that we require for the definition of done. The Daily Scrum this morning wasn’t great as the Scrum Master had to get the Development Team to better explain their progress to The Product Owner. We need to make the Sprint Backlog artifact more transparent as The Product Owner feels we haven’t followed what we agreed at the last Sprint Retrospective.”

vs sane

“Shall we go over the Sprint update later? I’m not convinced that the issues contain all that we require for the client to be happy. The talk this morning wasn’t great as the Project Manager had to get the developers to better explain their progress to the business. We need to simplify the Sprint’s issues as the client feels we haven’t followed what we agreed at the last Sprint review.”

Please let the first type of conversation cease.

Second hand bicycles

In response to a blog post ‘Why I keep fixing my bike‘ about the risks of buying a dodgy second hand bike, I wrote the following comment. It’s something I’m quite passionate about so worth storing on my own blog…

I have bought at least 7 bikes second hand through either ebay or gumtree all without problem. Every bike has been exactly what I was looking for. I wouldn’t buy off an ebay seller with only a small repuatation – and almost all sellers I have seen when searching ebay have 100+ reputation.

I think the chances of getting a lemon are quite small, but you always have to be careful.

With a bicycle you are predominantly paying for a decent frame as the rest can be replaced. Its fairly unlikely that the frame will have been damaged. So buy bikes that have well made frames e.g. Cannondale. I’ve purchased a Specialized, Cannondale, Merkx, Orange, Klein and Marin bikes. Most of the bikes I bought would have had a new value in excess of $1000. I’d be most wary of buying a Specialized bike as they are the most common and the current Specialized bikes I’ve seen have very poor welding on the frames.

Certainly don’t go buying cheap branded bikes new bikes e.g. and shop’s own brand. If you’ve got very little money you can pick up old retro racing bikes for less than $100.

Limit your search to only bikes that are near buy (i.e. 30 minute drive) so that you don’t waste much time.

There are many things you can look for:

  1. Has the bike been stored inside – if you see a photo of it hanging up in a garage on its own rack its a pretty good bet that it has
  2. Buy ‘fixed’ bikes without suspension as the suspension can be expensive to replace
  3. Look at the type of gears that it has
  4. Check how detailed the spec of the bike is – does the person list exactly all the components – this gives an indication of how much the person cares about the bike
  5. Do they state where they bought it from
  6. Do they display high quality images of close ups of the gears, the joins of the frame where cracks appear
  7. What have they been using the bike for
  8. How often do they clean the bike
  9. Ask what year the bike is from as well as the exact make and model – then hopefully you can find a reference to how much the bike was when it was new.
  10. Check the welding on the bike frame – how clean are the welds. You shouldn’t be able to see the welds – as that means it was a cheaply made bike by machines and never finished off.

Installing Node.js on Windows 8

Node comes with an installer, but I hit a couple of bugs that knackered my initial attempts to call either node or npm.

I followed the installation instructions trying to run a command for the first time and got 'node' is not recognized as an internal or external command. For anyone else with the same issue here’s what I stumbled through.

I’m running Windows 8.1 (64-bit) with Node v0.10.32.

  1. Run the .msi installer
  2. This installs it to C:\Program Files\nodejs

In that directory is node.exe for running node commands and npm.bat for installing node modules.

Environment variables

The simplest solution for this is just to do a restart, but for thos who don’t want to aka me…

The installer doesn’t seem to install the environment variables properly (at least it didn’t when I was using windows 8).

So although if you edit the Environment variables you will see that C:\Program Files\nodejs in the path, if you go into a command prompt and type echo %PATH% it doesn’t appear.

I’m not sure why – but I had to make a minor modification to the PATH, save it and then put the modification back for the nodejs to show up in the path.

Then you can run either node or npm from anywhere.

Get the home page server example.js working

Here’s the code just in case something changes:

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

For some reason even though C:\Program Files\nodejs had been added to the system PATH it wasn’t showing up in my path when running dos commands – it took editing the path and saving it to suddenly show up the nodejs in the path.

Once you’ve got the path set up properly then you just have to create the example.js file and run the following commands from a windows command prompt:

> cd C:\path\to\node\example
> node example.js

Getting npm working

  1. There is a npm.bat command in C:\Program Files\nodejs
  2. However there’s a known npm issue that requires that the %APPDATA%\npm directory has been created manually otherwise npm doesn’t work
  3. You’ll get an error along the lines Error: ENOENT, stat 'C:\Users\[username]\AppData\Roaming\npm'
  4. So you have to create your own %APPDATA%\npm

N.B. For “dummies”, aka me: where ever you run npm install in the windows command prompt it will create a node_modules directory and install the module under there
e.g.

C:\Users\[username]> npm install grunt

will install grunt into C:\Users\[username]\node_modules\grunt not into %APPDATA% or C:\Program Files\nodejs\node_modules

One woman can’t have a baby in nine months

A billion monkeys can't be wrong

As all software developers know, nine women can’t have a baby in a month. Or in Fred Brooks’s more elegant phrasing: “The bearing of a child takes nine months, no matter how many women are assigned.” (The Mythical Man Month, p. 17) The point, of course, is that some tasks are, as Brooks would say, “sequentially constrained”. They’re going to take a certain amount of time no matter what — the time can’t be reduced by having more people work on them.

On the other hand, is it actually the case that one woman can have a baby in nine months? Suppose we have just been put in charge of Project New Baby that must produce a brand new baby in nine months. How should we staff the project. Easy enough — nine women can’t have a baby in a month, right? No point in overstaffing so we’ve…

View original post 873 more words

ntwdblib download

For years I have had problems running the mssql driver. Its getting phased out – i.e. it doesn’t work with PHP 5.3 but if you have to support older applications then you need to use the mssql driver. The problem is, is that the default installation of PHP 5.2 (currently PHP 5.2.17) which you can download from http://windows.php.net just doesn’t work with the mssql driver.

The problem is the ntwdblib.dll. The version that has always worked for me is 2000.80.194.0 – all others fail. The version that comes with the PHP msi installer (I use the 64 bit installer) is version 2000.80.2039, which should in theory be newer and work better. So each time I install PHP I then have to go in and overwrite the dll.

The next problem you have is finding a reliable dll. The proper way to get it is from the SQL Server 2000 SP4 installation (yes, the file is that old). If you google for the file there’s no pages that I find that seem a trust worthy resource for this file.

So I’ve uploaded the file to my site n.b. its a different site from this WordPress blog as I doubt WordPress.com will allow me to upload dlls.

Download

The Money Parable

From the faraway land of reddit

This is not my work – I just love the story and want an easy place to read it.

By otherwiseyep 

http://www.reddit.com/r/finance/comments/utf5u/where_has_all_the_money_in_the_world_gone/

Chapter 1

(relix already hit on some of this)

It’s hard to explain this to a five-year-old, because there are some fairly abstract concepts involved, but here goes…

All actual “money” is debt. All of it, including monetary gold, etc. (Don’t argue with me yet, I’ll get to that.)

Imagine a pretend world with no money, some kind of primitive village or something. Now let’s invent paper money. You can’t just print a bunch of paper that says people have to give you stuff, because nobody would honor it. But you could print IOUs. Let’s walk through this…

  • Let’s say you’re an apple-farmer and I’m a hunter. You want some meat but haven’t harvested your crops yet. You say to me, “hey, go hunt me some meat and I’ll give you 1/10th of my apple harvest in the fall”. Fair enough, I give you meat, you owe me apples. There’s probably a lot of this kind of stuff going on, in addition to normal barter. In time, standard “prices” start to emerge: a deer haunch is worth a bushel of apples, or whatever.

  • Now, let’s say a week later, I realize that my kid needs a new pair of shoes more than I need a bushel of apples. I come back to you and say, “Hey remember that bushel of apples you owe me? Could you write a marker, redeemable for one bushel of apples, that I can give to the shoemaker in trade for a pair of shoes?” You say okay, and we have invented a transferable note, something a lot like money.

  • In time, our little village starts to figure out that a note redeemable for a bushel of apples can be swapped for all kinds of things. The fisherman who doesn’t even like apples will accept apple-certificates in trade for fish, because he knows he can trade them to boat-builder who loves apples. In time, you can even start to hire farm-workers without giving them anything except a note promising a cut of the future harvest.

Now, you are issuing debt: a promise to provide apples. The “money” is a transferable IOU– your workers get a promise to provide value equal to a day of farm-work, or whatever, and it’s transferable, so they can use it to buy whatever they want. The worker gets fish from the fisherman, not in exchange for doing any work or giving him anything he can use, but in exchange for an IOU that the fisherman can redeem anywhere.

So far so good. But there are a couple of forks in the road here, on the way to a realistic monetary system, that we’ll address separately:

  • What happens if your apple orchard is destroyed in a wildfire? Suddenly all the notes that everyone has been trading are basically wiped out. It didn’t “go” anywhere, it’s just gone, it doesn’t exist. Real value was genuinely destroyed. There is no thermodynamic law of the conservation of monetary value– just as you and I created it by creating transferable debt, it can also be genuinely destroyed. (We’ll get back to this in a minute, it gets interesting).

  • The second issue is that, in all probability, the whole town is not just trading apple-certificates. I could also issue promises to catch deer, the fisherman could issue promises of fish, and so on. This could get pretty messy, especially if you got the notion to issue more apple-certificates than you can grow: you could buy all kinds of stuff with self-issued debt that you could never repay, and the town wouldn’t find out until harvest-time comes. Once again, value has been “destroyed” people worked and made stuff and gave you stuff in exchange for something that doesn’t exist, and will never exist. All that stuff they made is gone, you consumed it, and there is nothing to show for it.

The above two concerns are likely to become manifest in our village sooner or later, and probably sooner. This leads to the question of credit, which is, at its most basic, a measure of credibility. Every time you issue an apple-certificate, you are borrowing, with a promise to repay from future apple-harvests.

After the first couple of town scandals, people will start taking a closer look at the credibility of the issuer. Let’s say the town potato-farmer comes up with a scheme where his potato-certificates are actually issued by some credible third-party, say the town priest or whatever, who starts every growing season with a book of numbered certificates equal to the typical crop-yield and no more, and keeps half of the certificate on file, issuing the other half. Now there is an audit trail and a very credible system that is likely to earn the potato-grower a lot of credit, compared to other farmers in town. That means that the potato-grower can probably issue more notes at a better exchange rate than some murkier system. Similarly, the town drunk probably won’t get much value for his certificates promising a ship of gold.

Now we have something like a credit market emerging, and the potato-farmer is issuing something closer to what we might call a modern “bond”…

(continued in a reply to this post…)

 

Chapter 2

[reply to post]

  • So some time goes by and people start catching onto this system of creditworthiness, and farmers and fishermen and so on start to realize that they can get better value for their IOUs by demonstrating credibility. People with shakier reputations or dubious prospects may not be able to “issue money”, or might only be able to do so at very high “interest”. E.g., a new farmer with no track-record might have to promise me twice as many potatoes in exchange for a deer haunch, due to the risk that I might never see any potatoes at all.

  • This obviously gets very messy fast, as different apple- and potato-certificates have different values depending on whether they were issued by Bob or Jane, and everyone has to keep track of and evaluate whose future apples are worth what.

  • Some enterprising person, maybe the merchant who runs the trading-post, comes up with the idea to just issue one note for all the farms in town. He calls a meeting with all the farmers, and proposes to have the town priest keep a book of certificates and so on, and the farmers will get notes just like everyone else in exchange for the crops they contribute to the pool, and the merchant will keep a cut of the crops with which to hire some accountants and farm-surveyors to estimate the total crop yields across town and so on.

  • Everyone agrees (or at least, enough farmers agree to kind of force the other ones to get on-board if they want to participate meaningfully in the town economy), and we now have something like a central bank issuing something like fiat currency: that is, currency whose value is “decided” by some central authority, as opposed to the kind of straight-up exchange certificates that can be traded for an actual apple from the issuer, for example.

  • Now we have something that looks a lot like a modern monetary system. The town can set up audit committees or whatever, but the idea is that there is some central authority basically tasked with issuing money, and regulating the supply of that money according to the estimated size of ongoing and future economic activity (future crop yields).

  • If they issue too much money, we get inflation, where more apple-certificates are issued than apples grown, and each apple-note ends up being worth only three-quarters of an apple come harvest-time. If they issue too little currency, economic activity is needlessly restricted: the farmers are not able to hire enough workers to maximize crop yields and so on, the hunter starts hunting less because his deer meat is going bad since nobody has money to buy it, and so on.

At this point, you may be asking, “Why the hell go through all this complexity just to trade apples for deer and shoes? Isn’t this more trouble than it’s worth?”

The answer is because this is a vastly more efficient system than pure barter. I, as a hunter, no longer need to trade a physical deer haunch for a bushel of apples to carry over to the shoemaker in order to get shoes. You, as an apple-farmer, can hire workers before the crop is harvested, and therefore can grow more, and your workers can eat year-round instead of just getting a huge pile of apples at harvest-time to try and trade for for whatever they will need for the rest of the year.

So back to money…

The thing to remember is that all throughout, from the initial trade to this central-banking system, all of this money is debt. It is IOUs, except instead of being an IOU that says “Kancho_Ninja will give one bushel of apples to the bearer of this bond in October”, it says “Anyone in town will give you anything worth one bushel of apples in trade.”

The money is not an actual thing that you can eat or wear or build a house with, it’s an IOU that is redeemable anywhere, for anything, from anyone. It is a promise to pay equivalent value at some time in the future, except the holder of the money can call on anybody at all to fulfill that promise– they don’t have to go back to the original promisor.

This is where it starts getting interesting, and where we can start to answer your question…

(for the sake of simplicity, let’s stop calling these notes “apple certificates”, and pretend that the village has decided to call them “Loddars”).

  • So now you’re still growing apples, but instead of trading them for deer-haunches and shoes, you trade them for Loddars. So far, so good.

  • Once again, you want some meat, except harvest time hasn’t come yet so you don’t have any Loddars to buy meat with. You call me up (cellphones have been invented in this newly-efficient economy), “Hey otherwiseyep, any chance you could kill me a deer and I’ll give you ten Loddars for it at harvest-time?”

  • I say, “Jeez, I’d love to, but I really need all the cash I can get for every deer right now: my kid is out-growing shoes like crazy. Tell you what: if you can write me a promise to pay twelve Loddars in October, I can give that to the shoe-maker.” You groan about the “interest rate” but agree.

Did a lightbulb just go off? You and I have once again created Money. Twelve loddars now exist in the town economy that have not been printed by the central bank. Counting all the money trading hands in the village, there are now (a) all the loddars that have ever been printed, plus (b) twelve more that you have promised to produce.

This is important to understand: I just spent money on shoes, which you spent on deer meat, that has never been printed. It’s obviously not any of the banknotes that have already been issued, but it’s definitely real money, because I traded it for new shoes, and you traded it for a dead deer.

  • Once you and I and others start to catch on that this is possible, that we can spend money that we don’t have and that hasn’t even been printed yet, it is entirely possible for a situation to arise where the total amount of money changing hand in the village vastly exceeds the number of loddars that have actually been printed. And this can happen without fraud or inflation or anything like that, and can be perfectly legitimate.

  • Now, what happens if another wildfire hits your orchard? Those twelve loddars are destroyed, they are gone, the shoe-maker is twelve loddars poorer, without spending it and without anyone else getting twelve loddars richer.

The money that bought your deer and my shoes has simply vanished from the economy, as though it never existed, despite the fact that it bought stuff with genuine economic utility and value.

 

 

Chapter 3

[final reply to post]

Sidebar on gold and gold-backed currency and stuff like that:

Because I said I would get to it…

The above pretend history of the pretend village is not how modern money actually came to be. In reality, things are much less sequential and happen much more contemporaneously without the “eureka!” moments. The above was a parable to illustrate how money works to a 5-year-old, not an actual history of how money emerged.

Until fairly recent times, paper money was not really very useful or practical for most purposes, especially if you wanted to spend money in a different village than where it was printed.

If we go back in time a period before ATMs, wire-transfers, widespread literacy, etc, then a piece of paper written in Timbuktu is not likely to get you very far in Kathmandu. You could take your apples and deer-haunches and shoes around with you to trade, but the earliest naturally-emerging currencies tend to be hard things that were rare and easily-identifiable (jewels, colored shells, etc), and they frequently coincided with the personal decorations of the rich, in a self-reinforcing feedback loop (people with a surplus of time and food could decorate themselves with pretty things, which became valuable as status symbols, which made them more valuable as decorations, which made them more valuable as barter objects, which made them more prestigious shows of wealth, etc).

Gold emerged as a sort of inevitable global currency, before people even thought of it as currency. It is rare, portable, easy to identify, can easily be made into jewelry, and can be easily quantified (unlike, say, jewels or seashells, which are harder to treat as a “substance”). Once word got around that rich people like it, it became easy to barter with anyone, anywhere, for anything.

In the early stages, it was not really the same thing as “money”, it was just an easy thing to barter. But it had money-like characteristics:

  • If someone walked into your apple-orchard offering to trade a yellow rock for apples, you might look at them a little funny. What use does an apple-grower have for a yellow rock?

  • But if you know that rich people in town covet this soft yellow metal as something they can make jewelry out of, then you might be happy to trade apples for it.

  • Once everyone knows that rich people will trade for this stuff, it becomes something like actual currency: neither the hunter, the shoemaker, nor the fisherman in town has much use for it, but because they know they can redeem it for the stuff they do want and need, it becomes a sort of transferable IOU that can be redeemed anywhere, i.e., money.

The early history of paper money did not evolve the way I described in the earlier posts (although it could have, and would have got to the same place). Instead, the early history of paper money was certificates issued by storage-vaults of precious metals (i.e., early “banks”). Instead of carrying around yellow and silver rocks, you could deposit them somewhere and get a piece of paper entitling the holder to withdraw a certain quantity of gold or silver or whatever.

Pre-1934 dollars, like virtually all paper currency until fairly recently, could be redeemed for physical gold or silver at a Federal Reserve Bank, and dollars were only printed if the treasury had enough physical gold and silver to “pay off” the bearer with precious metals.

For a whole lot of reasons that are topics for another discussion, decisions were made that eventually led to the abandonment of the “gold standard” and now the dollar, like most modern currencies, is pure fiat paper: it’s only “worth” whatever everyone agrees it is worth, and can only be “redeemed” by trading it to someone else for whatever they will give you for it. There are long, loud, and ongoing feuds over whether that was a good idea, and I’m not going to get into that here.