SimCity Drug Wars in the Real World

My name is Leon. It has been less than 1 day since my last harebrained scheme.

So the Australian Bureau of Statistics* recently put out a sim-city style game on iphone and Android, called 'Run that town' in which you compete for money and klout by approving/rejecting fictional development in familiar suburbs, using real statistics from that suburb.

The attraction of the game is that it uses settings that are intimately familiar to you, and makes you very aware of a whole host of statistics about that area. (You soon learn for example whether it's wiser to approve a local aged-care facility than a sports stadium)

And on the same day as I saw that I took a look at this interesting site, crimemap.info showing where and when real crimes have happened in my home state of Queensland. Right down to the address.

So - mashing the two ideas together - I thought, why not make a Drug Wars clone with a local flavour. You choose a starting street, anywhere in Queensland. And on each turn you can run from your current location to any of the adjoining real streets. The criminal behaviour in that street is based on historic crime in that street. (Magnified several thousand times to suit the intense pug-wars style of play). Obviously we take it global as datasets become available, but we market locally.

run that town plus crime stats

So now I present...

Okay, I've got nothing to present. I didn't implement anything. Yet.

I know some people though. This would be riiiight up their alley. You know who you are.

* The game was built by millipede possibly with input from Leo Burnett Sydney.

 

Two Flies! Bet Now!

So someone has made a channel where you watch two pet fish (unwittingly) play each other at Street Fighter II

It's a logical extension of someone who made a live feed of a fish playing pokemon.

And someone else (in the comments at Hacker News) points out there is a site where you can bet virtual currency on AI playing computer games against each other

Meanwhile: Australians are said to be so addicted to gambling we would bet on two flies crawling up a wall.

How can we directly monetise this?

I need two walls, two flies.... or rather one wall with a division, so that the two flies are kept separate.

A camera that can see both and track their positions....

I hear that 'OpenCV' is the library to use for this sort of thing. Here's the guide to installing OpenCV on windows, and developing apps with OpenCV inside Visual Studio.

How to organise a bet involving two flies?

At a point in time, X, we look at the position of the fly on the left and the fly on the right, and draw two virtual horizontal lines to represent their starting positions. (A left starting position and a right starting position).

We then start a countdown timer at 90 seconds, and also draw two virtual finish lines that are a fixed distance above the starting positions.

If either fly reaches their finish line, that fly is the winner. If neither fly reaches the finish line when the timer reaches 0, then the highest fly is picked as victorious.

To ensure continuous betting is possible, we have one further rule: If a fly starts more than half way up the wall then their target is below them: their goal is to walk down the wall, not up it.

The flies are given gruesome competitive names like Blood-drinker and Face-Eater. They have their own legions of fans and admirers.

Rumours that the flies are entirely digitally rendered are just that. Unproven... if well-founded... rumours. Nothing more!

The crucial thing is to select flies that have high winning stats and then allow them to breed. (I guess it's easier to just eliminate the flies that do poorly)

There are two paths ahead of me. One of them is to remain a regular work-a-day Joe. The other is to become rich beyond my wildest dreams by farming maggots. Decisions decisions.

 

Boothby, a personal database

I have this problem where friends of mine keep having babies.

I don't know if you've been to school, but if you have you might know that the mathematics of having babies is pretty scary. Take rabbits. You start with two rabbits, leave them alone for a little while and next thing there's a heck of a lot of rabbits. There's an exponent involved. It's all quite sinister.

The trouble with this growing number of babies is that I'm expected to remember all their names and genders and ages and so on. But while their numbers are exponentially growing my brain is not undergoing so much as linear expansion. If anything it's contracting of late.

And while there's already places online for storing these 'social graphs' they fail miserably at the kind of remembering I need help with and are more hellbent on serving me ads than easing my mental burden.

Then I saw that Steven Frank just implemented something similar to what I wanted, he called it Dossier, so rather than implementing something from scratch, I could steal all his ideas and re-brand them as my own.

Hence I wrote this thing, Boothby.

It's for storing the things you can't remember.

Try Boothby Online Right Now.

Later I might make it a little standalone kayak app, that you can install on your own computers, and sync via dropbox etc.

Or I could charge you 10 bucks a month to grant you access to your own private online instance. That's the business to be in.

 

The Nimble Bundle

To celebrate John Venn's 180th Birthday, we're having a Month-long Mega-Month of Set-Loving Madness.

For the rest of August, NimbleSET and NimbleText will both be available as part of the special "Nimble Bundle".

If you buy the bundle you'll save $10 over what you'd otherwise pay. That's a handy piece of cash to take home.

Venn Diagram showing NimbleBundle as the intersection of NimbleText and NimbleSET

Or to put it another way. When you buy NimbleText, for just $5 more, you get NimbleSET thrown in.

Here's a cartoon of Me, throwing NimbleSET in for $5.

cartoon of me throwing in nimbleset for $5

I'm not sure why I look so angry. Maybe because it's so cheap. I'm angry to be throwing away my work for such a steal, yes that's it.

Now, just for fun, try saying "Nimble Bundle" five times quickly. "Nimble Bundle, Nimble Bundle, NimbleBundle, Nindle Bumble, Bumble Lindel."


You're still here? Ah well, if you're going to keep reading you may as well stick around while we discuss the behavioural economics that underpins the things I've attempted above.

First let's discredit the stated premise: this has nothing to do with John Venn's Birthday. Yes, NimbleSET is software for Venn-diagram-style comparisons of lists... but why would I know or care when the man's birthday is? I'm not even facebook-friends with the guy. No, the John Venn thing is cover for a different motive. I happened to see a google doodle about him and thought it would be a plausible 'angle' for the psycho-swindle I wanted to inflict on you, my good friends.

If it's not about John Venn then what is it about? Well, money, of course, and my desire to separate you from yours, making it mine forever. But what's the specific psychology of the situation and why is it likely to increase the fatness of my wallet?

When I first put out NimbleSET (back in January) I saw a sudden and permanent *decrease* in the sales of NimbleText. And it wasn't made up for by sales of NimbleSET, not nearly. I tried to ignore it, and tried to explain it away, but I was really at a loss to understand it. Until I read about the decoy effect and the idea of decoy products.

The decoy effect is a well tested phenomenon where:

"consumers have a specific change in preference between two options when also presented with a third option that is asymmetrically dominated."

It wasn't exactly the decoy effect, but reading about that was enough to give me a hypotheses about what was happening. The purchase page went from listing 1 product for $20, to listing two products: 1 for $20 and 1 for $15. The cheaper product (NimbleSET) suddenly made NimbleText look expensive!

So now I hope that by putting a third product in, that is clearly better value than either of the others, it will dominate the sales. So under this latest hypothesis, both NimbleText and NimbleSET are the decoys. The best deal is the bundle, and you'd be crazy to buy anything else. If I'm wrong, then, no problem at all, I take the Bundle off the market and head back to the psychology books for futher hints.

I'll keep you informed, so please join me for the ride! And if you have other, better theories about what's going on, please tell me. It's all a mystery to me.

 

Need an idea? Let me give you one: giveneed.com

I had this idea for a web site, and even checked the domain, it's still available!:

Give Need -- giveneed.com

Here's a mockup of the minimum viable product:

i can give... i need... simple website

I guess the idea is, anyone can give and anyone can need. Spam and vulgarity gets flagged and removed quickly. Givers and Needers build reputation by being reliable and so on. Geo-location is important.

I don't have the time, but If you want to do this, go ahead.

Here's the html for the mvp mockup.

I was wildly enthusiastic about the idea for juuuuust long enough to create the mockup using zen-coding (which I recently re-discovered) and where i wrote most of the mockup just by typing:

html>body>table>tr>td*2>input+ul>li*3

Like I said. If you want the idea, it's yours. I'm still busy building All These Other Empires.

 

A Dashboard For Everything and Everything on a Dashboard

I tweeted the other day:

I have too many dashboards, so have decided to create a dashboard of dashboards. #

Completely serious.

Dashboards are one of the few situations that solve this pattern: "The only solution for too much $0 is more $0." Like science. (Unlike violence, ditch-digging, etc)*

To help manage NimbleText, I've currently got three dashboards that I visit all too frequently.

First, there's google analytics. I mostly track where visitors are coming from, and whether they're doing the things I want them to do (download nimbletext, visit the pricing page etc.).

Second, there's the (newly created) page where I analyse samples of the patterns that people are creating in the online version. (This is a bit of a privacy minefield, so I've added a note about that here).

Then there's 'dash', the recently created dashboard where I have a bunch of information about sales and product activation.

And currently in the works is another dashboard for managing A/B tests. It will probably be at AirBadge.com, my favorite domain that is currently under-utilised.

That'll make a total of four dashboards. What the hellz!? No one needs four dashboards! Even Dashy McDashman, the dashing darling of Dashville only needs three!

So I plan to make another dashboard that gathers together all the information from the other four. (It'll be at AirBadge too.)

To grab data from google analytics, it will use whatever rest-ful services it can get its hands on. To expose data from my own sites, I'll probably create some jsonp endpoints at each of those sites. Oh, we can call them micro services, and feel modern and clever.

The new dashboard will be basically a page with a bunch of little widgets (<article class='panel' >...). Each widget will have some data attributes that describe how to grab the data it wants. Some widgets will be charts, some will be tables. Some will automatically refresh. They'll probably be laid out using isotype which I've used before. Some could have live information, using that signalr business.

Darling developers of the Mac world, Panic, have created a beautiful dashboard product called Statusboard. My goal is to have almost none of the features of Statusboard, but all the beauty.

* At this point while writing the article, I wanted to list all of the words that do or do not suit that pattern. To accomodate creating and sharing that list, I realised NimbleText Live needed a way to share a pattern, something in the style of JSFiddle. (Richard Mason suggested this feature just last week). So I had to stop writing this article and add that feature in. It's there now. Look for the little Save icon.

Here's some other patterns I've created: Atwood's Law versus Murphy's Law and other correlates. Superhero name generator.. Etc.

 

Internet's Last Classic ASP Website Finally Upgraded

I've now been blogging at this site for more than 10 years. I meant to mark the anniversary but—whoops—it slipped right by.

Somewhere in that 10 years my site seems to have become The Last Classic Asp Site Left On Earth. So at last I decided to move to a new blogging engine.

I looked at ALL the existing blogging platforms on the planet, and I couldn't find a single one that could satisfy my One Very Simple Requirement:

1. It must be written by me.

So, eventually, I decided the only solution left was to write my own!

Okay, there were a lot more requirements. I started to write down what the requirements would be if I were paying someone to write the site for me. I soon realised I'm one of those clients from hell

It needs to pop. It needs to be now. It should smell like success. Use plenty of comic sans.

(the real feature list is included at the foot of this article)

The old site used a bug-ridden custom blog engine, code named 'Smart Jelly', the only 'Classic ASP' site I ever wrote. It was little more than a textarea where i pasted some raw html, so that it could be injected into a static template and saved once and for all. Edits after that were done by hand.

Finally, starting a-fresh, with a decade of experience, I knew I could over-engineer this one to death. So I settled on a design that is essentially a text-area where you paste an article, so that a light sprinkling of MVC code can put the article into a template, cache it, index it, etc.

I used Stashy as my ultra-lightweight No-SQL data store. I used Ben Foster's SiteMap article and code to build the sitemap. And other than that, I just avoided as many bad design decisions as my time would allow.

With this gargantuan task out of the way, I can finally move on with my other most pressing items. A new NimbleText release. A new product. But if you spot any errors, let me know.

Appendix A: rules I tried to follow.

Design Requirements...

  • Simplicity
  • Semantic html
  • Responsive to smaller screensizes (25% of visitors are from mobile)
  • Clear fonts.
  • Should last 20 years

Nothing 'fashionable' -- examples:

  • flat design, (long shadows)
  • parallax scrolling
  • long scrolling
  • sticky nav
  • 'impressive' transitions
  • client side everything
  • avatars in circles
  • giant header images.

Maybe...

  • Continuous scrolling
  • Playful
  • minimalist
  • dark
  • svg

Definitely not...

  • Bootstrap (upgrades are pain.)
  • Disqus.
  • A database (too big a dependency)
  • Pages heavy with js widgets
  • little notes that popup in the lower right corner when you scroll down
  • pop-overs that get in the way of the article and say things like "Hey! You're trying to read the article, you should buy this other thing"
  • Auto-play embedded sound and video advertisements.
  • Lobster web font.

Features

  • all old urls respected. (via permanent redirects where necessary)
  • articles
  • comments
  • fast to load.
  • Pages not heavy with js widgets.
  • rss
  • sitemap.xml
  • complete archive
  • categories
  • as few dependencies as possible. JQuery sure. Others? No.
 

The dumbest thing that could possibly work

I just listened to a hanselminutes episode where he interviewed John-Daniel Trask (a kiwi!)(yay kiwis!) from mindscape, makers of raygun.io. (yes that raygun, beloved of my arch-nemesis, that chief amongst villains, Troy Hunt)

I recommend you give it a listen, and at 1.5 times playback speed it only took 20 minutes of my finite lifespan.

I like the idea of making a product out of doing some very thin slither of a particular 'vertical' -- in this case raygun is a very deliberately tiny part of what application companies need.

Another example would be octopus deploy by my personal hero Paul Stovell (and a growing team of geniuses).

Revision control companies and bug tracking companies are also examples, but they tend to have business models that are all about moving beyond their initial niche. Maybe they're just a bit more evolved.

So what's the tiniest possibly slither of a well known vertical? For example in the bushwalking world: you always put your shoes on before you go for a walk, and part of that is doing up your laces. So you could have a specialty company that ships a fresh pair of ethical artisanal hand-woven opinionated boot-laces to serious bushwalkers, once a month. Focus on something narrow enough that you can be indisputably the best. The best by a mile. Not just pretty good.

(aside: JDT pointed out that since raygun.io doesn't try to do everything they need to offer integration points. They have plugins e.g. for github, trello, slack (slack... which I need to look into more).)

I guess twitter is an early company doing this same thing.... just the "current status" feature of an instant messaging app, and nothing else.... and "yo" would be the latest example of honing messaging down to the least features possible.

This got me thinking about potential business ideas when the age old question occurred to me: "What's the dumbest thing that could possibly work? No, even dumber than that."

And this is what I came up with for today:

"We bill you."

It's basically a SaaS where you choose among 3 great plans:

The free plan
has no features, and we don't bill you. This is only available for a limited time.

The beginner plan
$35 per month.
For that you get one bill per month, for $35.

The expert plan
$100 per month.
You still get one bill per month, but this time you get billed for $100.

We also offer "Enterprise" level.
Prices for this are not available on the website. Talk to us, and we'll see what we can arrange. For example we might bill you extra some months, and at times, not bill you at all. Overall, we would still guarantee to bill you as much as you can psychologically withstand before breaking down completely. And we get your car.

Crazy enough that it just might work?

All of these lucrative domains are available if you want to get in on the ground floor for equity and just a one time cash investment plus ongoing hours for development, support, data entry, foot rubs etc.

	sendthecash.com	 		youpayusnow.com
	youwillpaymenow.com	 	youpayitnow.com
	nowyoupayit.com	 		gopayitnow.com
	gopashcash.com	 		gopaymoney.com
	giveoutcash.com	 		givemoneyout.com
	handovermoney.com

and as a bonus this domain is also available:

	howaboutpaying.com

It would need good stock art of course and i'll need an upfront investment to cover that too.

Wait a second. 'gopashcash.com'? 'go pash cash dot com...?' What was i thinking? that's too good to share.

Getting back to the idea of niches within niches: what great and useful little ideas have you got to share?

(One serious little idea I've got for a niche within a niche: a wrapper for chocolatey that makes it work inside the enterprise. I have given it no more thought than that. I picture a chocolate. And it is wrapped up. It is a chocolatey wrapper. And you are inside the enterprise. And it just works.)

 

If Time Types were like Spatial Types

Spatial types in SQL Server comply with OGC standards, and are nothing like the other types in SQL Server.

Geography types (mapping types) have a long history and an industry of their own, long before they turned up in our databases. This makes them special. How special?

What if DateTime was implemented in the same way as Spatial Types?

Large corporations would have a Chronology Department, or at least a Chronology Team, and it would employ professional Chronologists. Chronologic Information Systems (ChIS) would be different from databases, and the introduction of chronological concepts into a database would only be acceptable if you implemented the full set of types and methods recommended by the Open Chronological Consortium. (Picture a Mafia, only with pocket watches.)

If any department is discovered doing work that involves date and time, they would be referred to the Chronological Information Systems department, who are the only people in the company authorised to make Chronological Products, such as calendars, schedules, timelines and other time-related artefacts. If you would like to display a form that includes a date-time you won't have any software that does this on your own machine, and will need to ask a Chronologist to help you out. They will also give you advice on the use of colours. For free.

Once Date and time concepts do make it into the database, you might be surprised. There would be no DateTime type. No no, that would be laughably simplistic and not something that real Chronologists would ever consider worthy of existing on its own.

Instead there would be one umbrella type called a chronology, and a chronology can contain any of the following:

  • A point in time
  • A range in time
  • Recurrences of the above
  • A collection of any of the above, including collections of collections.

A chronology object has its own Calendar identifier and UTC offset. There are ways of converting between these, but only theoretical chronologists really understand them. Your average working chronologist pretends to understand this stuff, but never uses it.

The chronology object includes standard functions for all of the operations that a chronologist would need to achieve:

The total duration of a recurring appointment, intersected with a time range? Oh you mean good old:

Chrono.STDuration(chronology::STChronoFromText('RANGE(2014-01-01 00:00:00.000,2015-01-01 00:00:00.000)', 1337))

The length of time by which two meetings overlap? Ah, you mean:

Meeting1.Chrono.STOverlap(Meeting2.Chrono).STDuration

And so on.

As always I'd better stop myself now, since...

Wally, holding a coffee cup, says 'I'm having trouble keeping my clever schemes separate from my sarcasm.'

"I'm having trouble keeping my clever schemes separate from my sarcasm."

(This week's Just Wally cartoon 'inspired' by this Dilbert cartoon.)

 

The Canine Pyramid

UX,

So a computer guy is laid off from his computer job. He soon gets sick of sitting around at home and he decides he wants to go for a walk everyday. There are a lot of physical and psychological benefits to going for a walk every day. He notices people taking their dogs for a walk and realises that taking a dog for a walk is a great way to ensure you get regular exercise.

So he makes up a small flyer: dog-walking as a service. And he walks down to each of the houses in the street that has a dog and drops a copy in their letter box.

The next day on his walk he walks even further, covers the next three streets. If a house doesn't visibly have a dog, he walks past them. If they do have a dog he puts a flyer in their letter box.

The calls start coming in thick and fast. He is inundated with more dogs to walk than he can service himself. He institutes strict rules, for maximum quality. No more than two dogs on a walk. $30 a half hour or $50 for a full hour.

He formulates a new plan: he goes to each of the houses that don't have dogs, and puts different flyers in their letter boxes: Want regular exercise? Become a dog walker! Great pay, great lifestyle, it's the casual social exercise job you've been looking for. Why pay money to exercise when you can be paid instead!

He gets books out of the library: the dummies guide to dog walking. He learns first aid for pets. He gets hats printed with the Dogercise logo. He gets bright t-shirts printed up. People are volunteering to walk dogs before work and after work. The elderly are walking little dogs. Young women love to take guard dogs with them on their evening jog. He institutes a dog-matching algorithm that pairs each dog to just the right walker.

He builds a website for managing the booking of dog walks. He builds a smartphone app, customers use it to book their dog walks, to trade tips and to thank their walkers. There are social meets and barbeques.

He gets a map of the greater suburb and divides it into small areas that surround the area he already letter-dropped. He tells his most proficient dog-walkers that they can pick an area and letter drop it, manage those territory for themselves. They take a percent of the earnings from the walkers they manage. They organise social events, perform letter drops, sort out issues as they arise.

Now on the map he draws up new areas, just at the edge of the areas that are already being managed. The best walkers from the existing areas are allowed to nominate themselves for those areas.

In a very short time, the business has spread out, whoosh, and his dog-walking empire covers the entire globe. He stops for the first time and realizes: I'm actually more of a cat person.