Category: Code

The Developers Union

Dear Apple,

We believe that people who create great software should be able to make a living doing it. So we created The Developers Union to advocate for sustainability in the App Store.

Today, we are asking Apple to publicly commit — by the tenth anniversary of the App Store this July — to allowing free trials for all apps in the App Stores before July 2019. After that, we’ll start advocating for a more reasonable revenue cut and other community-driven, developer-friendly changes.

Think of The Developers Union more as a movement than an actual union, they’re a group of united developers with a common goal, which is to get free trials for all apps in the app stores, and they don’t just mean using a subscription model, but letting you trial an app before you buy.

To get some more info, Brent Simmons, one of the members, wrote an interesting piece about this group

Some of the press coverage about The Developers Union uses words like “angry” and “fed up.” These aren’t accurate characterizations at all. Nobody’s mad here!

But here‘s the deal: Apple controls the App Store and its economics. The system could be set up better to support high-quality apps, by indies, that last for years.

Apple doesn’t have to, of course. But we can ask! It’s totally okay to ask, so we are.

We think that an important first step would be a standardized, App-Store-supported way of offering free trials. (And where, once purchased, Family Sharing works.)

Trial versions have worked great for years for indie Mac developers, before the App Store, and we think it would benefit indies on the iOS and Mac App Stores.

And the platform would get better — and more sustainable — apps. Everyone wins!

If you agree, you can sign up. Add your name. Add your app.


I’m thinking of my friends, of developers I admire, of up-and-coming developers I haven’t even heard of yet. I — quite selfishly! — want them to thrive. I want to see what great stuff they could make. I want everybody to have the opportunity I’ve had.



Hosting Live Webinars with JavaScript, Node.js, AdonisJs and Twilio Programmable Video

Twilio just published a post I wrote recently about using AdonisJS and Twilio Programmable Video to create a handy webinar system.


It was fun to write this post since a webinar system meant you could have two types of users.

  1. Host(s): the person or persons presenting the webinar who viewers could watch live.
  2. Viewers: the people watching the webinar but not sending video.

I’m working on part 2 now which will integrate Twilio’s Programmable Chat into the webinars as well.



Stimulus is a JavaScript framework with modest ambitions. It doesn’t seek to take over your entire front-end—in fact, it’s not concerned with rendering HTML at all. Instead, it’s designed to augment your HTML with just enough behavior to make it shine. Stimulus pairs beautifully with Turbolinks to provide a complete solution for fast, compelling applications with a minimal amount of effort. modest JavaScript framework for the HTML you already have.

I’ve been playing with Stimulus since it was released, and it’s interesting. I can see this being a good answer for stuff like WordPress themes that are designed to be server side but, like any site, could benefit from client-side JavaScript enhancements.


JavaScript for People Who Hate JavaScript

Zach Holman:

I have a long history with JavaScript, dating back to the glory days of the most perfect technology ever to have graced computers: DHTML.

DHTML was totally rad, like how the Budweiser frogs were rad. In the late 90’s you really couldn’t do much of anything on the web except add 88×31 buttons and build with 1×1.gif spacer tricks. But then Dynamic HTML came out in IE4 and a whole world of hover animations, mouse pointer effects, and pretty much nothing else were possible. It was really cool.

Then I did a bunch of other JavaScript from time to time. Everything was pretty terrible until jQuery and Mootools and a slew of other frameworks finally came out in the mid-2000s. That make things almost tolerable for awhile.

Then I started working at GitHub, and my JavaScript experience basically degraded to slinging together some horrific string concatenation and then pushing a pull request, making sure to CC the @github/js team so they would fix everything for me.

Suffice to say, I’ve hated JavaScript for quite some time. But now I’m building a hip new calendar called During, it made a lot of sense to get back into this crappy frontend junk, since a calendar is one of them client-side-heavy apps your parents warned you about growing up.

You know what’s fucked up? I’m kind of loving JavaScript now. I think 2017 is finally the year of “JavaScript on the Desktop”, where “DESKTOP” is an acronym for Developers Enjoy javascript now even though they thought it Sucked compared To Other Programming languages before. (I’m really shit at abbreviations, sorry.)


Anyway, I’m pretty excited about all this stuff, which is a fun feeling. Hasn’t really been since Rails 0.10 since I’ve been this jazzed up about specific tools in programming. And that’s really cool. Being a novice again — even if it’s for a language I first tried, in some form, almost two decades ago — is a really eye-opening, frustrating, and exciting experience. A+ would learn JavaScript again in 2037.

I’ve been using JavaScript since 1998, I can relate to what Zach’s saying here.

I never left JavaScript though and continued using it throughout the years on both server and client side, especially use it heavily with Flybase, but with React and other technologies out now, it’s gotten to be so much more powerful.

When it comes to JavaScript, this is an exciting year for it.


Using Yarn with Docker

Martino Fornasa:

Facebook recently released Yarn, a new Node.js package manager built on top of the npm registry, massively reducing install times and shipping a deterministic build out of the box.

Determinism has always been a problem with npm, and solutions like npm shrinkwrap are not working well. This makes hard to use a npm-based system for multiple developers and on continuous integration. Also, npm slowness in case of complex package.json files causes long build times, representing a serious blocker when using Docker for local development.

This article discuss how to use Yarn with Docker for Node.js development and deployment.

Yarn is pretty powerful, and combining it with Docker to help make builds smoother makes it even more useful.


Yarn: A new package manager for JavaScript

In the JavaScript community, engineers share hundreds of thousands of pieces of code so we can avoid rewriting basic components, libraries, or frameworks of our own. Each piece of code may in turn depend on other pieces of code, and these dependencies are managed by package managers. The most popular JavaScript package manager is the npm client, which provides access to more than 300,000 packages in the npm registry. More than 5 million engineers use the npm registry, which sees up to 5 billion downloads every month.

We’ve used the npm client successfully at Facebook for years, but as the size of our codebase and the number of engineers grew, we ran into problems with consistency, security, and performance. After trying to solve for each issue as it came up, we set out to build a new solution to help us manage our dependencies more reliably. The product of that work is called Yarn — a fast, reliable, and secure alternative npm client.

We’re pleased to announce the open source release of Yarn, a collaboration with Exponent, Google, and Tilde. With Yarn, engineers still have access to the npm registry, but can install packages more quickly and manage dependencies consistently across machines or in secure offline environments. Yarn enables engineers to move faster and with confidence when using shared code so they can focus on what matters — building new products and features.

You can try yarn right now:

npm install -g yarn

The yarn CLI replaces npm in your development workflow, either with a matching command or a new, similar command:

npm install → yarn

With no arguments, the yarn command will read your package.json, fetch packages from the npm registry, and populate your node_modules folder. It is equivalent to running npm install.

npm install --save <name>yarn add <name>

They’ve removed the “invisible dependency” behavior of npm install <name> and split the command. Running yarn add <name> is equivalent to running npm install --save <name>.


How One Developer Broke Node, Babel, and Thousands of Projects

Chris Williams:

A couple of hours ago, Azer Koçulu unpublished more than 250 of his modules from NPM, which is a popular package manager used by JavaScript projects to install dependencies.

Koçulu yanked his source code because, we’re told, one of the modules was called Kik and that apparently attracted the attention of lawyers representing the instant-messaging app of the same name.


Unfortunately, one of those dependencies was left-pad. The code is below. It pads out the lefthand-side of strings with zeroes or spaces. And thousands of projects including Node and Babel relied on it.

Azer Koçulu ( via Erik Aybar ):

When I started coding Kik, didn’t know there is a company with same name. And I didn’t want to let a company force me to change the name of it. After I refused them, they reached NPM’s support emphasizing their lawyer power in every single e-mail CC’ing me.


I’m apologize from you if your stuff just got broken due to this. You can either point your dependency to repo directly (azer/dependency) or if you volunteer to take ownership of any module in my Github, I’ll happily transfer the ownership