Winamp2-js – implementation of Winamp 2.9 in HTML5 and JavaScript

Atwood’s Law states that any application that can be written in JavaScript, will eventually be written in JavaScript.  Winamp2-js is yet another example supporting this law.  It is a re-implementation of Winamp 2.9, a classic Windows MP3 player from decades ago, done in HTML5 and JavaScript.

The source code is on GitHub and a live demo is available here.

Automerge – a JSON-like data structure for concurrent multi-user editing

Collaborative editing is a very challenging subject, technically speaking.  The old days of users editing a file, sending it to another user, and back are long gone.  Version control tools like git helped with tracking changes and resolving conflicts.  But the newer generation of tools – Google Docs for example – push the bar even higher.  Now many users expect real-time, transparent collaborative tools, which allow multiple users to work on the same document at the same time and without any additional technical complexity.

Automerge is one project that helps the developers to build such collaborative tools, by providing a library of JSON-like data structures, which can be edited in parallel and then merged back together.

Automerge […] supports automatic syncing and merging:

  • You can have a copy of the application state locally on several devices (which may belong to the same user, or to different users). Each user can independently update the application state on their local device, even while offline, and save the state to local disk.(Similar to git, which allows you to edit files and commit changes offline.)
  • When a network connection is available, Automerge figures out which changes need to be synced from one device to another, and brings them into the same state.(Similar to git, which lets you push your own changes, and pull changes from other developers, when you are online.)
  • If the state was concurrently changed on different devices, Automerge automatically merges the changes together cleanly, so that everybody ends up in the same state, and no changes are lost.(Different from git: no merge conflicts to resolve!)

 

Replacing jQuery With Vue.js: No Build Step Necessary

Replacing jQuery With Vue.js: No Build Step Necessary” article looks at one of the ways to migrate from jQuery to Vue.js as in almost drop-in replacement.  It’s a nice starter guide for people who have been using jQuery for years and are now looking at more powerful and modern JavaScript frameworks.

Quick Guide to GraphQL for BackEnd & FrontEnd

GraphQL is one of those technologies which is constantly on my radar, just waiting for the right time and project to try it on.  For now, I’m just slowly moving to that target, collecting links to resources in the meantime.

Introduction & Quick Guide to GraphQL for BackEnd & FrontEnd” is a new addition to my collection.  This article, much like many others, provides a brief introduction to the technology.  And it also shows a practical example of how to design and implement GraphQL API both on the front and back ends.  I give it extra credits for mentioning GraphiQL in-browser IDE for exploring GraphQL.

Carbon – beautiful screenshots of your source code

Carbon – is a very simple, but very useful web tool for creating beautiful screenshots of the source code.  And yes, before you start correcting me, I know that source code is always more useful as a listing, which can be copy-pasted, searched, and so on, rather than an image.  But there are still plenty of scenarios when you just need it fixed and frozen.

Carbon provides plenty of flexibility in a very friendly user interface – code highlighting for a variety of programming languages and configuration files, editor themes, window controls, fonts, and more.   There’s also a very simple way to tweet the screenshot directly from Carbon, if that’s what you want to do.