It's finally happened: jQuery is recommending npm for distributing plugins. My preferred client-side workflow is npm and Browserify, but I know many readers use Bower. Hopefully this shift will encourage more people to use npm for client-side libraries.
Lin Clark mentioned this in this week's npm Weekly, and also that npm has hit 1,000,000,000 downloads in a single month. Very impressive!
io.js 1.3.0 is out. As usual the details are in the nicely marked up changelog, which now contains links to commits. That makes it easier to look up what the commits actually do, because the one line descriptions can't always communicate the subtleties of the pull requests. You'll probably think I'm being sarcastic, but I was happy to see these changes:
I think it's @rvagg who writes this document, so thanks Rod for making it easier for us to see what's going on.
Jason Gerfen sent in proginoskes (GitHub: jas-/proginoskes, License: MIT, npm: proginoskes), a module for monitoring logs from multiple sources by using SSH as the transport. It gives you an object stream, so you can format the results however you want. You can also easily see each source, because the objects have a server property.
This will work really well if you're used to writing ~/.ssh/config with aliases for servers and keys. The configuration options for proginoskes allow you to define the port, username, private key, and log file location. You could easily pipe your server logs to multiple locations for archival purposes, stats, and error notifications.
Sponsored Content This post is about a commercial product that we think will appeal to DailyJS readers.
Hiring programmers is hard work. Finding candidates takes time, and then figuring out if they've really got the right skills can be tricky as well. I've done technical tests as part of interviews before, and some have actually been enjoyable, but most have been quite poorly conducted. Tests for Geeks is a service that aims to improve the technical testing process, by providing high-quality tests with reports that are easier for recruiters to understand, and tests that programmers can undertake and attach to their CVs.
To actually test candidates, you'll need a paid plan. Plans start at $29.95 for three tests, but you can buy unlimited tests for a month for $99.95. If you were looking to hire someone quickly and had lots of applicants, then naturally the unlimited plan would make sense. Also, the paid plans support custom branding, so you can use your own domain name and logo. Tests for Geeks have many other programming tests and the last one which they launched was iOS and Objective-C test.
One thing I like about Tests for Geeks is the recruiters I've worked with before can easily understand the reports. The coding test reports explicitly show the strength in each area, so if they've got better knowledge of the DOM you should see that on the report with a higher ranking. This is what the report looks like:
I've seen a few online test sites before, but this is the first one that I've used that is specifically designed for technical tests. If you haven't done a technical test before then you might like to try it out, or you could even create some new questions.
Many thanks to Tests for Geeks for sponsoring DailyJS!
Clint Heyer from the IT University of Copenhagen sent in Fltspc, which is a collaborative whiteboard. If you do group meetings where you want to work on snippets of text in a way that Google Docs doesn't quite cope with, then you might like to try this project out.
If you're interested in Clint's Android work, then also take a look at Anders Bech Mellson's Kiosker project. This is a generator for Android kiosk applications that displays a single web page, and it's configurable through JSON. It sounds like this is what the students have been using to demo their interactive experiments on tablets.
Mustache-Wax (GitHub: jvitela/mustache-wax, License: MIT) by Jonathan Vitela is an extension for Mustache.js which allows you to use formatters inside expressions, in a style inspired by AngularJS. By defining a list of methods on Mustache.Formatters, you'll be able to pass values through the filters.
The expressions use pipes, and you can chain them like this: ten | add : 3.14159 | add : twenty | add:-3. The expression syntax supports arguments, which are denoted with :.
The documentation is nicely presented, and the project is well-tested.
What do you do when you leave your computer/laptop at home while you visit family for the holidays? I always do this, thinking that it'll be better to spend some quality time with the family, but there are moments where people are doing their own thing and I wish I had a laptop to play with some code.
These days of course many of us tote around tablets or large phones, so there is some potential for hacking or at least learning about new programming techniques. One of my favourite apps is actually Vim, which you can get for iOS and Android:
To the uninitiated, Vim for a touchscreen sounds horrible, but it's actually pretty good -- because it's modal you can enter Command-line mode with : and leave with the escape key easily enough. If you're an experienced Vim user then it can be revealing to think about the mnemonics for commands rather than relying on muscle memory.
I also found that the big programming video services have iOS and Android apps, so you can study a new programming language, framework, or library:
Apple and Google's book stores also sell many technical books from the popular computer science book publishers, so you should be able to find something to do while your parents argue and your partner is walking the dog, wrangling toddlers, or snoozing after too much turkey.
It uses cursors, so the outer immutable structure swapped when a component's data is changed. This might sound like it would perform badly, but it only re-renders component trees that reference changed data.
The module is used by wrapping components with the omniscient function. The author's examples call this "component". These components only deal with their own piece of data, so they're nicely encapsulated and potentially easier to reuse.
The project has lots of examples and documentation, so it's worth reading through the readme first to get a feel for it.
Andrea Ferretti wrote in to say Paths.js has been updated to include tree charts, waterfall diagrams, Sankey diagrams and a preliminary version of force-directed graphs.
This is what the tree chart looks like:
tree = new Ractive
leaf: (point) ->
tree.on 'toggle', (event) ->
node = event.context.item
node.collapsed = not node.collapsed
The author is also working on performance improvements and lots of other cool stuff, so it's worth keeping an eye on this library.