Coin introduces Arduino-BLE developer kit #

If our conversation with Gordon Williams about Espruino on episode #104 got you excited about hacking on Espruino or Arduino check out Coin’s Arduino-BLE Developer Kit.

A year ago, we were software developers venturing into the world of hardware. Not surprisingly, we encountered difficulty as we integrated Bluetooth Low Energy (BLE) into our product. At that time, existing BLE modules were confusing to integrate and didn’t meet our requirements. So we decided to build our own.

If you haven’t ordered your Coin yet use my referral link and help me get mine free!

Good evening. I’m Sir Trevor. #

I love when people rethink content editing with the web as its native platform. Sir Trevor is just that. It stores its data as JSON and Markdown, has a nice interface, supports many content types (blocks), and is easily extendable.

Give the example page a try to see what it’s capable of.

#111: Hoodie, noBackend and offline-first with Caolan McMahon

Andrew and Adam talk with Caolan McMahon from Hoodie to talk about very fast web development where you can build complete web apps in days, without having to worry about backends, databases or servers (with Hoodie). We discuss noBackend and the idea behind offline first.

Stripe Shop #

Stripe’s single-page shop built on Parse.

When we launched Stripe Shop, a lot of people asked us to open source it so they could build their own single-page stores. We’ve just released the code on Github; please feel free to borrow any parts you find useful!

#108: Exercism.io with Katrina Owen

Adam and Jerod talk with Katrina Owen – Panelist on Ruby Rogues, Instructor at Jumpstart Lab and creator of Exercism.io, an open source platform for crowd-sourced code reviews on daily practice problems.

#107: Balanced Payments with Marshall Jones

Andrew and Adam talk with Marshall Jones from Balanced Payments about all they do in open source, and how they approach being an open company that desires to release as much software as they can as open source. Sponsored by DigitalOcean – Use the code mentioned on the show to save $10! If you’re a […]

annyang! lets your users control your site with voice commands #

annyang! is an awesome little JavaScript library by Tal Ater that adds voice commands to your site via webkitSpeechRecognition. Using annyang! is as easy as:

if (annyang) {
  // Let's define a command.
  var commands = {
    'show tps report': function() { $('#tpsreport').show(); }
  };

  // Initialize annyang with our commands
  annyang.init(commands);

  // Start listening.
  annyang.start();
}

You’ll definitely want to see this one in action, so make sure to visit the project’s homepage where there are multiple demos.

annyang! only works in browsers that support webkitSpeechRecognition, so it should be used as an enhancement to your site unless you have a very specific audience.

And if you’re wondering about the name… yes. It is in reference to the hilarious Arrested Development character by the same (phonetic) name. Tal took creative liberty with the spelling to make sure the name wasn’t too annoying for those who don’t get the reference.

I pleaded with Tal to match the official spelling, but he simply responded with further Arrested Development references. I think the guy might have a problem. ;)

parallax.js: bringing real movement to the web #

parallax.js is a lightweight parallax engine that responds to the movements from your smartphone’s gyroscope and motion detection. The tool lets you specify depths and directions that determine how your webscape responds to physical movement.

Creating layers is super simple, as documented:

Simply create a list of elements giving each item that you want to move within your parallax scene a class of layer and a data-depth attribute specifying its depth within the scene. A depth of 0 will cause the layer to remain stationary, and a depth of 1 will cause the layer to move by the total effect of the calculated motion.

Parallax.js is useable in jQuery and Zepto as a plugin, too.

MIT Licensed. Browse the source code on Github.

Questhub, the social task tracker #

Have you ever needed to be encouraged, or even nudged
by fellow travelers to go ahead with your quests?
Questhub aims to help you with exactly this problem.

You define tasks (or quests), others can upvote them and comment on them,
and suddenly you are held accountable for your plans.
You can’t procrastinate any more.

Questhub also supports Stencils, which are quest ideas or templates.
You create one and someone else can finish it. Even repeatedly.

Vyacheslav Matyukhin, the author of Questhub describes it
as being a public task tracker with social features and game points.

A live, public version can be found at Questhub.io with several
‘realms’, such as Perl, Fitness,
and Chaos.

The source code, which is written in
Perl, using the Perl Dancer web framework and lots of JavaScript,
is distributed with the MIT license.

Meet RegExpBuilder: Verbal Expressions’ rich, older cousin #

Following the popularity of Verbal Expressions — a library which generates regular expressions by chaining semantic functions together — Andrew Jones reached out to tell us that he has a library in the same spirit as Verbal Expressions that is a little older and more feature rich. He calls it RegExpBuilder and there are currently versions in JavaScript, Dart, Java, and Python.

I asked Andrew to point out a few differences between Verbal Expressions and his offering. He replied,

RegExpBuilder allows you to specify all kinds of quanitites, whereas VerbalExpressions has focused on just a couple of situations (either it might have something, or it does have something). So in RegExpBuilder you can say “it has between 3 and 100″, or it has “at least 7″ or it has “at most 5″ of something. There are all kinds of ways of specifying quantity. Eg:

var regex = new RegExpBuilder()
  .startOfLine()
  .then("thechangelog is ")
  .max(7).of("really ")
  .then("cool")
  .getRegExp();

regex.test("thechangelog is really really really cool"); // true

and,

VerbalExpressions is mostly limited to working with strings. So for example, you pass in “http” to then(“http”), but unless your regular expression is very linear, you will have to deal with groups of patterns, and work with patterns themselves. RegExpBuilder allows you to pass in and work with patterns themselves, so you can do eitherLike(pattern1).orLike(pattern2), for example. Eg:

var pattern = new RegExpBuilder()
  .either("massively ")
  .or("amazingly ");

var regex = new RegExpBuilder()
  .startOfLine()
  .then("thechangelog is ")
  .max(7).like(pattern)
  .then("cool")
  .getRegExp();

regex.test("thechangelog is massively massively massively cool"); // true

and finally,

RegExpBuilder also has support for character classes (like letters, digits, etc), and advanced features like lookaheads

It’s nice to see some friendly competition in this space to push us all to greater heights.

RegExpBuilder is MIT licensed and hosted on GitHub.

Oh, Behave.js! #

Behave.js

From the docs:

Behave.js is a lightweight library for adding IDE style behaviors to plain text areas, making it much more enjoyable to write code in.

I’ve always been really frustrated by WYSIWYG editor’s ‘HTML mode’ – I think it would be interesting to combine Behave.js with something like Medium.js for the ultimate in-browser text editing domination.

Behave.js is MIT licensed. Source code on GitHub.

Medium.js – taking control of contenteditable #

Medium.js is a very minimal and straightforward approach to rich text editing in the browser that’s based on the awesome editor powering Medium.

From the docs:

Medium.js overrides many default keyboard events and substitutes a more cross-browser compliant way to interact with contenteditable elements. This means that you can use contenteditable without fearing your user is going to enter poor or invalid HTML. It keeps things tight, organized, and semantic.

MIT Licensed. Source code on GitHub.

Automate your GitHub processes with botdylan #

Heavily inspired by GitHub’s Hubot — botdylan lets you automate any process in GitHub.

From the readme:

We use Github heavily. There are some repetitive tasks that were taking away our time to hack on a better product. Since we are in the productivity space we decided to stop doing things manually and start to have a more productive environment to work with.

Here are a few examples of what you can do with botdylan:

  • Label issues with the status of the CI
  • Show a cowboy image when someone posts directly to develop
  • Label issues that have 2 or more thumbs
  • Post images on demand “image me…”
  • Label issues with the status of the PR (mergeable or not)
  • Ping inactive pull requests
  • Post message to your chat room (when the CI fails for instance)
  • Interact with other services via HTTP

botdylan runs as a daemon and gets configured through a config.json file that describes cron and hooks scripts. cron scripts execute periodically and hook scripts execute on github hook events.

$ ls /etc/botdylan
scripts/hooks
scripts/crons
config.json

$ botdylan --dir /etc/botdylan

Check out the project on GitHub to learn more.

ht/ Pau Ramon from Teambox

Stop writing Regular Expressions. Express them with Verbal Expressions. #

GitHub user jehna has fashioned a runaway hit with his unique way of constructing difficult regular expressions.

VerbalExpressions turns the often-obscure-and-tricky-to-type regular expression operators into descriptive, chainable functions. The result of this is quite astounding. Here’s the example URL tester from the README:

var tester = VerEx()
            .startOfLine()
            .then( "http" )
            .maybe( "s" )
            .then( "://" )
            .maybe( "www." )
            .anythingBut( " " )
            .endOfLine();

This style may be off-putting to old-school regex pros, but even they would have to admit that it’s quite approachable and easy to reason about.

The main project is a JavaScript library, but in the world of open source the more success you have, the more ports you get.

VerbalExpressions has been ported to so many other languages that a GitHub organization was created just to host them all. I think this idea struck a real nerve.