Lat/long api: twofishes docker image

I’ve been working on a project requiring latitude and longitude for locations. We used the twofishes API.

If you want to use it, my colleague Andrew Blaney has made it available as a Docker image – it’s andrewblaney/twofishes

The API is originally by Foursquare.

Enjoy!

Advertisements

Machine learning translation and transcription: open source options

Using machine learning for translation, transcription and other language capabilities is very powerful.

What open source options are there? Here are just a few:

OpenNMT supports translation and summarisation.

Moses translation supports English, French, German, Spanish, Russian, Swedish and Finnish.

Apertium is a free/open-source machine translation platform, initially aimed at related-language pairs but expanded to deal with more divergent language pairs (such as English-Catalan).

Are there any open source machine learning transcription projects?

We’ll be adding our own SUMMA APIs to this list soon!

The junk news epidemic

News has a bigger problem than fake news: junk news. Readers are gorging on junk news about murder, terrorism, etc.

For example, the BBC have published 5 articles about murder in the last 24 hours. It’s published zero articles about heart disease, which is thousands of times more deadly.

What if articles about murder etc had an extra paragraph/sidebar that put the danger in perspective?

It doesn’t involve any tech innovation, just content innovation. Content is king!

How to promote unit testing JavaScript with Visual Code

So you want the developers on your team to write more unit tests.

One good way is make their IDE show any non-tested code in RED.

In the image above we can see that line 8 is marked red – it hasn’t been tested.

People focus on what’s visible, and there’s nothing more visible than highlighting the code as it’s being developed 🙂

How to set it up

There are 3 simple steps…

1. Generate test coverage reports

We can do this using NYC. To install it:

npm install nyc --save-dev

If you’re running your tests using npm and Mocha then you can integrate NYC via package.json. Just add it before mocha. Here’s an example:

...
 "scripts" {
   "test": "nyc --reporter=lcov mocha"
 }
 ...

After running npm test you should see that the file “coverage/lcov.info” has been generated.

2. Install the plugin

Install the Visual Code plugin called “Coverage Gutters” by ryanluker.

You’ll need to reload after installing it.

3. Display coverage!

To display coverage:

  1. Open the command palette (SHIFT + CMD + P)
  2. Choose Coverage Gutters: Display Coverage
  3. Visual Code will display a list of coverage files, choose the one relevant to your project.

This can also be toggled via the “Watch” button in the bottom-left of Visual Code.

4. Enjoy 🙂

Now, whenever npm test is run the gutter will update accordingly.

What… you want more?

You can also have the tests run automatically after npm start. To do this add a “poststart” script in package.json. For example:

...
 "scripts" {
  "start": "node app.js",
   "poststart": "nyc --reporter=lcov mocha",
   "test": "nyc --reporter=lcov mocha"
 }
 ...

I’d love to hear how other people give visibility of test coverage… leave a comment below!

Agile Coaching: The Robots Are Coming!

For a team to perform at the highest level they need the right culture.

Too many teams focus on Agile rituals (like story points and burndown charts) without understanding Agile principles (like self-organising teams, fast feedback and delighting customers).

I believe that every team deserves an experienced coach. To help with this i’m creating an AI product to coach Modern Agile and Lean Startup principles.

Modern Agile

I call it Zenboard. (Demo here).

Here are a couple of examples of what it does…

1. If there is too much work in progress then Zenboard will suggest that you help with that before starting something new.

2. If you start work on a card and it has no details then Zenboard might say, “Not clear what’s required? Conversation beats documentation”.

The secret sauce

1. Create good habits. A key driver of habits is variable rewards. Zenboard embodies variable rewards by sometimes giving simple praise (Good work!), sometimes giving a nudge (How can you get user feedback for this?), and sometimes staying quiet.

2. Timing matters. People are most open to nudges when they are at a pause point, such as having just moved a card into “In progress”.

3. Context matters. Different nudges are relevant depending on wether a card has just been created or is just being moved to “Done”, for example.

4. Conversations matter. We prompt face-to-face conversations where possible. We want people immersed in the team, not the tool.

5. Not just text. Pictures and memes have more impact than just text.

The future

This is just the start. We have big plans to improve our AI coaching!

What do you think? Leave a comment below.

To get started with Zenboard visit our Github page.

 

Modern Agile made easier

I love Modern Agile.

Modern Agile

I wish that more teams understood it, so i’m buiding a tool to help. It’s called Zenboard.

Here’s how it works…

1. Make People Awesome: collaboration

One of the best ways to make employees awesome is collaboration. Zenboard makes it easier to see where collaboration is needed.

Screen Shot 2018-01-01 at 19.18.18

It’s more flexible than Trello and easier to use than JIRA. (Demo here).

2. Make People Awesome: coaching

Zenboard features AI coaching. Here are a couple of examples…

(1) If there is too much work in progress then Zenboard will suggest that you help with that before starting something new.

(2) If you start work on a card and it has no details then Zenboard might say, “Not clear what’s required? Conversation beats documentation”.

There is no substitute for a human coach, but AI can give simple nudges that promote good habits and a healthy team culture.

3. Experiment & Learn Rapidly

Of course, you need to make not just employees awesome but customers awesome. For this you need to experiment & learn rapidly. You need to focus on outcomes rather than outputs.

Zenboard gives visibility to desired outcomes.

Screen Shot 2018-01-01 at 13.59.28

Zenboard’s AI coaching guides the team to experiment & learn.

4. Make Safety A Prerequisite

Future versions of Zenboard will let people flag safety issues.

5. Continuously Deliver Value

Coming soon. Zenboard will report on the outcome of past work, so it’s clear to the team if they are successfully delivering value or not.

To sum up

Zenboard doesn’t have all the answers, but it can move your team in the right direction.

Caveat: Zenboard is a work in progress!

Do you have an idea for how Zenboard can help with Modern Agile? Leave a comment below.

Give your team superpowers with this awesome team board

Your team can achieve great things.

You don’t need the world’s most talented individuals, but you do need great teamwork.

96257886-leicester-celebrate-sport_trans_nvbqzqnjv4bqes9sklwhb97omypqxfwardmug_p4bmixpmnwi0rc09u
Leicester famously won the Premier League with teamwork, not individual talent.

You need laser focus, deep collaboration and “user-centricity”.

Zenboard is a new team board that makes all of this easier. (Demo here).

Here’s how…

1. Laser focus

Tools like Trello and JIRA focus on tasks, but businesses are more interested in features and outcomes. Zenboard makes it easy to visualise features and desired outcomes as well as the associated tasks.

Screen Shot 2018-01-01 at 19.18.18

Having a clear goal isn’t enough though, team’s also need an easy way to organise their work.

Zenboard is simpler than JIRA and less restrictive than Trello (and other Kanban boards).

2. Collaboration

Zenboard’s layout makes it easier to see where collaboration is needed.

But Zenboard goes further: AI coaching. Here are a couple of examples…

1. If there is too much work in progress then Zenboard will suggest that you help with that before starting something new.

2. If you start work on a card and it has no details then Zenboard might say, “Not clear what’s required? Conversation beats documentation”.

These are simple nudges that promote good habits and a healthy team culture.

3. User-centric

Zenboard gives desired outcomes more visibility.

Screen Shot 2018-01-01 at 13.59.28

Focusing on outcomes instead of outputs opens more doors for experimentation and learning what your users really want.

This is a key part of the Lean Startup and Modern Agile movements.

Don’t worry if you’re unfamiliar with Lean Startup or Modern Agile, Zenboard’s AI coaching will guide you in the right direction.

To sum up

Zenboard doesn’t have all the answers, but it will move your team in the right direction – focused, collaborative and user-centric.

Caveat: Zenboard is a work in progress!