Jonathan Freeman

Contributing Editor

Jonathan Freeman is a software developer, consultant, and jazz musician living in Chicago. Through consulting, he's enjoyed working in various domains, from finance to healthcare to video games. While he specializes in JavaScript, both browser and server side, he also takes a keen interest in modern data stores (particularly graph databases) and distributed computing platforms.

JavaScript dapps: Using decentralized storage in Blockstack

JavaScript dapps: Using decentralized storage in Blockstack

Blockstack.js gives users full control of their application data in fewer than 10 lines of code

JavaScript dapps: User authentication with Blockstack

JavaScript dapps: User authentication with Blockstack

Take advantage of blockstack.js and blockchain to unlock decentralized authentication and authorization in 10 minutes

JavaScript dapps: Build decentralized apps with Blockstack

JavaScript dapps: Build decentralized apps with Blockstack

Blockstack demystifies app development on the blockchain, providing the tools and network that put users in full control of their data

JavaScript tutorial: Build and publish NPM packages in a pinch

JavaScript tutorial: Build and publish NPM packages in a pinch

With @pika/pack, you can automatically optimize for ES2018, Node.js, web, and build types with minimal configuration

Parcel bundler: Production builds and best practices

Parcel bundler: Production builds and best practices

You’ll need to add a little configuration, but it’s a small price to pay for super-smooth app bundling

Parcel bundler: Testing Parcel’s asset support

Parcel bundler: Testing Parcel’s asset support

Can Parcel live up to my first impression for heavier loads? Let’s try bundling JSON, YAML, CSS, LESS, React, and Elm

Parcel bundler: Like Webpack but effortless

Parcel bundler: Like Webpack but effortless

Could Parcel cure my project bootstrapping anxiety? So far, so good!

JavaScript tutorial: Using repeatable randomness with P5.js

JavaScript tutorial: Using repeatable randomness with P5.js

With repeatable randomness, we can take advantage of happy accidents when generating art—and preserve the results

JavaScript tutorial: Create a watercolor edge with P5.js

JavaScript tutorial: Create a watercolor edge with P5.js

To paint a watercolor in JavaScript, we need paper, water, and ink. Step two is the ink edge color.

JavaScript tutorial: Create a textured paper background with P5.js

JavaScript tutorial: Create a textured paper background with P5.js

To paint a watercolor in JavaScript, we need paper, water, and ink. Step one is paper.

JavaScript tutorial: Get started with generative art and P5.js

JavaScript tutorial: Get started with generative art and P5.js

Do you want to create art with code? P5.js brings the Processing software sketchbook to JavaScript

JavaScript promises: 3 gotchas and tricks to avoid them

JavaScript promises: 3 gotchas and tricks to avoid them

Promises, handlers, and chains are hardly straightforward. Follow these tips to keep your code clean and simple

Asynchronous JavaScript: How to use async and await

Asynchronous JavaScript: How to use async and await

Using async and await makes for more readable and maintainable asynchronous code, but does have downsides

How JavaScript promises work

How JavaScript promises work

Learn why JavaScript promises are like a gift box and get up to speed with JavaScript promise syntax

Asynchronous JavaScript: Callbacks and promises explained

Asynchronous JavaScript: Callbacks and promises explained

While callbacks work fine for handling asynchronous code, promises are cleaner and more flexible

The best open source software for cloud computing

The best open source software for cloud computing

InfoWorld’s 2018 Best of Open Source Software Award winners in cloud computing

The best open source software for software development

The best open source software for software development

InfoWorld’s 2018 Best of Open Source Software Award winners in software development

What is an API? Application programming interfaces explained

What is an API? Application programming interfaces explained

Application programming interfaces hide complexity from developers, extend systems to partners, organize code, and make components reusable

Bossie Awards 2017: The best software development tools

Bossie Awards 2017: The best software development tools

InfoWorld picks the top open source software for building systems and applications

What is JSON? JavaScript Object Notation explained

What is JSON? JavaScript Object Notation explained

JSON has eclipsed XML as the preferred data interchange format for web applications and web services. Here’s why

Load More