recentpopularlog in

edavey : javascript   170

« earlier  
JavaScript for impatient programmers (beta)
A book by Dr. Axel Rauschmayer
About the book

Goal of this book: make JavaScript less challenging to learn for newcomers, by offering a modern view that is as consistent as possible.


Get started quickly, by initially focusing on modern features.
Test-driven exercises and quizzes for most chapters.
Covers all essential features of JavaScript, up to and including ES2018.
Advanced sections occasionally let you dig deeper (if you want to).
No prior knowledge of JavaScript is required, but you should know how to program.
august 2018 by edavey
Plunker is an online community for creating, collaborating on and sharing your web development ideas

Like codepen
november 2016 by edavey
Falcor: One Model Everywhere
Falcor lets you represent all your remote data sources as a single domain model via a virtual JSON graph. You code the same way no matter where the data is, whether in memory on the client or over the network on the server.
august 2015 by edavey
successor to browserify, they say..
june 2015 by edavey
Aerotwist - Guitar Tuner
Given we have the Web Audio API and getUserMedia, I wondered if I could make a passable guitar tuner. Looks like I can, and in the process I learned way more stuff about audio than I care to mention. Cool stuff, though! I thought I'd do a breakdown of what went into building it.
guitar  javascript  music 
june 2015 by edavey
Re-thinking the JavaScript utility belt, Highland manages synchronous and asynchronous code easily, using nothing more than standard JavaScript and Node-like Streams. You may be familiar with Promises, EventEmitters and callbacks, but moving between them is far from seamless. Thankfully, there exists a deeper abstraction which can free our code. By updating the tools we use on Arrays, and applying them to values distributed in time instead of space, we can discard plumbing and focus on the important things. With Highland, you can switch between synchronous and asynchronous data sources at will, without having to re-write your code. Time to dive in!

Made by @caolan, with help and patience from friends - Leave a tip or fork this :)
javascript  streams 
april 2015 by edavey
A primer for building Single-Page Applications with React.
react  javascript 
april 2015 by edavey
Yadda brings true BDD to JavaScript test frameworks such as Jasmine, Mocha, QUnit, Nodeunit, WebDriverJs and CasperJS. By true BDD we mean that the ordinary language (e.g. English) steps are mapped to code, as opposed to simply decorating it. This is important because just like comments, the decorative steps such as those used by Jasmine, Mocha and Vows can fall out of date and are a form of duplication.

Yadda's BDD implementation is like Cucumber's in that it maps the ordinary language steps to code. Not only are the steps less likely to go stale, but they also provide a valuable abstraction layer and encourage re-use. You could of course just use CucumberJS, but we find Yadda less invasive and prefer it's flexible syntax to Gherkin's. Yadda's conflict resolution is smarter too.
bdd  integration_testing  javascript 
march 2015 by edavey
Codecs — Audiocogs
Web browsers are becoming more and more powerful, and new APIs like the Web Audio API and Audio Data API are making the web an ever more interesting and dynamic place. At Audiocogs we are invested in improving the state of audio on the web, and with JSMad showed that decoding audio purely in JavaScript is possible thanks to these APIs and the hard work of browser makers and spec authors. Now we’ve done it again — not just once, but three more times! With these, it is possible to play MP3, Apple Lossless, FLAC, and AAC even in browsers without native support.

With JSMad we showed that decoding audio in JavaScript is possible, courtesy of these APIs and the hard work of browser creators and spec authors. After that, we ported the recently open sourced Apple Lossless decoder to JavaScript as alac.js. However, we decided that wasn’t enough, so we rolled out flac.js. Then, suddenly, aac.js appeared.
audio  javascript 
march 2015 by edavey
History.js gracefully supports the HTML5 History/State APIs (pushState, replaceState, onPopState) in all browsers. Including continued support for data, titles, replaceState. Supports jQuery, MooTools and Prototype.
march 2015 by edavey
A simple library for unidirectional dataflow architecture inspired by ReactJS Flux.
javascript  react  flux 
february 2015 by edavey
Getting Started • Waypoints
Waypoints is the easiest way to trigger a function when you scroll to an element.
javascript  ui 
january 2015 by edavey
CodeMirror: User Manual
CodeMirror is a code-editor component that can be embedded in Web pages. The core library provides only the editor component, no accompanying buttons, auto-completion, or other IDE functionality. It does provide a rich API on top of which such functionality can be straightforwardly implemented. See the addons included in the distribution, and the list of externally hosted addons, for reusable implementations of extra features.
javascript  ui 
january 2015 by edavey
Amp — utility functions as individual npm modules
Project goals:

Excellent, cross-browser test coverage
Independently maintained and versioned
Strict semver for versioning
Try very hard to maintain APIs, ideally staying on 1.x.x version
Try to consider the published versions "done" code
Provide easy to remember names (by using namespacing)
Minimize unneeded interdependencies
Many of the tests and implementations were ported from Underscore.js in order to benefit from its battle-tested code. Much props to Jeremy Ashkenas and the other underscore contributors. This project would not exist if not for them and underscore's generous MIT license.
underscore  javascript 
january 2015 by edavey
Databound provides Javascript a simple API to the Ruby on Rails CRUD.
api  javascript  rails 
january 2015 by edavey
jasmine-headless-webkit -- The fastest way to run your Jasmine specs!
jasmine-headless-webkit uses the QtWebKit widget to run your specs without needing to render a pixel. It's nearly as fast as running in a JavaScript engine like Node.js, and, since it's a real browser environment, all the modules you would normally use, like jQuery and Backbone.js, work without any modifications. If you write your tests correctly, they'll even work when running in the Jasmine gem's server with no changes to your code.
jasmine  javascript 
january 2015 by edavey
jasmine-jquery provides two extensions for the Jasmine JavaScript Testing Framework:

a set of custom matchers for jQuery framework
an API for handling HTML, CSS, and JSON fixtures in your specs
jasmine  javascript  jquery 
january 2015 by edavey
Top 10 Mistakes Node.js Developers Make
Node.js has seen an important growth in the past years, with big companies such as Walmart or PayPal adopting it. More and more people are picking up Node and publishing modules to NPM at such a pace that exceeds other languages. However, the Node philosophy can take a bit to get used to, especially if you have switched from another language.

In this article we will talk about the most common mistakes Node developers make and how to avoid them. You can find the source code for the examples on github.
nodejs  javascript 
december 2014 by edavey
What you should know about JavaScript regular expressions
Regular expressions in JavaScript may not always be intuitive. I aim to provide some clarity by providing examples about things I have found myself getting stuck on. This post covers a few topics including state in regular expressions, regular expression performance and various things that have tripped me up.
javascript  regex 
december 2014 by edavey
Modern js utility library

1) 101 will be maintained to minimize overlap with vanilla JS.

101 utils are made to work well with vanilla JS methods.
101 will only duplicate vanilla JS to provide Functional Programming paradigms, or if
the method is not available in a widely supported JS version (currently ES5).
Other libraries often duplicate a lot of ES5: forEach, map, reduce, filter, sort, and more.
2) No need for custom builds.

With 101, import naturally, and what you use will be bundled.
Each util method is a module that can be required require('101/<util>').
Currently node/browserify is supported, I will add other module system support on request.
Other libraries can be large, and require manually creating custom builds when optimizing for size.
november 2014 by edavey
JavaScript Best Practices Part 1 | Thinkful Programming Guides
This guide, the first in a two part series, was adapted from a popular slideshow by Christian Heilmann, a Web Evangelist at Mozilla. Though JavaScript has a few notoriously tricky features, it's more important than ever in software development. This list of best practices uses code samples and side-by-side examples to help you write more readable, efficient code.
october 2014 by edavey
Hamlet - Simple and powerful reactive templating
Never touch the DOM by hand again - Hamlet does a great job of transparently keeping your model code in sync with the DOM. So much so that in most cases you never have to access a DOM element by hand. The resulting markup is free of excess attrs, data-attrs, and directives.
Iterate quickly with error proof templates - Automatic binding between model code and DOM elements makes templates very portable. Iterate quickly, moving templates around without having worry about code breaking or updating brittle selectors.
july 2014 by edavey
Select2 3.5.0
Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.
javascript  jquery  select 
june 2014 by edavey
Patterns for Asynchronous Programming with Promises | Joe Zim's JavaScript Blog
Promises are currently the best tool we have for asynchronous programming and they appear to be our best hope for the forseeable future, even if they'll be hiding behind generators or async functions. For now, we'll need to use promises directly, so we should learn some good techniques for using them right now, especially when dealing with multiple asynchronous operations, whether they happen in parallel or sequentially.
april 2014 by edavey
A JavaScript graph library for analysis and visualisation (compatible with CommonJS/Node.js, jQuery 1.4+, and plain JavaScript)
graph  javascript  visualization 
february 2014 by edavey
Rails + AngularJS - A generic approach
One of the best things I found with the mix Rails+AngularJS is that you can have many small AngularJS applications in your project. In my case one thing is very important to me is that AngularJS doesn’t manipulates DOM, all you want to do in your view is html and some new elements, in html too, but reading a template, you can understand what’s happened all the time.
angular  rails  javascript 
january 2014 by edavey
Frequently Misunderstood JavaScript Concepts
Frequently Misunderstood JavaScript Concepts
by Michael Bolin, October 28, 2013

This is a complete "reprint" of Appendix B from my book, Closure: The Definitive Guide. Even though my book was designed to focus on Closure rather than JavaScript in general, there were a number of pain points in the language that I did not think were covered well in other popular JavaScript books, such as JavaScript: The Good Parts or JavaScript: The Definitive Guide. So that the book did not lose its focus, I relegated this and my essay, "Inheritance Patterns in JavaScript," to the back of the book among the appendices. However, many people have told me anecdotally that Appendix B was the most valuable part of the book for them, so it seemed like this was worth sharing more broadly in hopes that it helps demystify a language that I have enjoyed so much.
november 2013 by edavey
id3.js - Javascript ID3 tag parser
id3.js is a JavaScript library for reading and parsing ID3 tags of MP3 files. id3.js can parse both ID3v1 and ID3v2 tags within a browser or Node environment. It also supports reading from local files (Node-only), same-origin URLs (AJAX) and File instances (HTML5 File API).
mp3  javascript  audio 
november 2013 by edavey
Functional Reactive Programming in JavaScript | Flippin' Awesome
FRP’s primary strengths involve helping you eliminate complexity in two key areas: dealing with user input, and dealing with asynchronous operations. If you’ve ever had to deal with the twisted chains of callback spaghetti that can quickly arise when handling either problem, then FRP may be for you.
javascript  functional_reactive_programming  FRP 
october 2013 by edavey
Showcase | Dracula Graph Library
Dracula is a set of tools to display and layout interactive graphs, along with various related algorithms.

No Flash, no Java, no plug-ins. Just plain JavaScript and SVG. The code is released under the MIT license, so commercial use is not a problem.
javascript  graph  nodes  svg 
august 2013 by edavey
Knockout : Introduction
Knockout is a JavaScript library that helps you to create rich, responsive display and editor user interfaces with a clean underlying data model. Any time you have sections of UI that update dynamically (e.g., changing depending on the user’s actions or when an external data source changes), KO can help you implement it more simply and maintainably.
july 2013 by edavey
Wealthfront Engineering: Reactive Charts with D3 and Reactive.js
At Wealthfront we've been using Reactive.js to do things a little differently. We describe our visualizations as a flow of information, not as an imperative set of rendering steps. To illustrate this, we'll build up a simple bar chart that shows how Reactive.js can change the way you write, and interact with your visualizations
d3  javascript  visualisation  guitar 
april 2013 by edavey
Path Transitions
When implementing realtime displays of time-series data, we often use the x-axis to encode time as position: as time progresses, new data comes in from the right, and old data slides out to the left.
javascript  d3  guitar 
april 2013 by edavey
Promises in javascript with Q
javascript  promises  development 
march 2013 by edavey
A javascript regular expression editor, like rubular
regex  javascript  development 
march 2013 by edavey
Web Audio API overview (Part 1 of 2)
In the next 2 blog posts I’ll be showing you some essential features of the Web Audio API. You can find its specification here. The Web Audio API provides nearly all the functionality of a normal synthesizer, one of the reasons why it is so powerful.
audio  javascript  fft  spectrum  guitar 
march 2013 by edavey
Javascript Sound Experiments - Spectrum Visualization [ProcessingJS + WebAudio] « stc || infobar >> research
This entry is just a quick add-on for my ongoing sound related project that maybe worth sharing. I came up with the need of visualizing sound spectrum. You might find a dozen of tutorials on the topic, but I didn’t think that it is so easy to do with processingJS & Chrome’s WebAudio Api. I found a brilliant and simple guide on the web audio analyser node here . This is about to make the visuals with native canvas animation technique. I used the few functions from this tutorial and made a processingJS port of it. The structure of the system is similar to my previous post on filtering:

1. Load & playback the sound file with AudioContext (javascript)
2. Use a function to bridge native javascript to processingJS (pass the spectrum data as an array)
3. Visualize the result on the canvas
javascript  audio  fft  spectrum  processing  guitar 
march 2013 by edavey
Exploring the HTML5 Web Audio: visualizing sound |
If you've read some of my other articles on this blog you probably know I'm a fan of HTML5. With HTML5 we get all this interesting functionality, directly in the browser, in a way that, eventually, is standard across browsers. One of the new HTML5 APIs that is slowly moving through the standardization process is the Web Audio API. With this API, currently only supported in Chrome, we get access to all kinds of interesting audio components you can use to create, modify and visualize sounds (such as the following spectrogram).
javascript  audio  guitar  fft  spectrum 
march 2013 by edavey
RequireJS is a JavaScript file and module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments, like Rhino and Node. Using a modular script loader like RequireJS will improve the speed and quality of your code.
javascript  development 
february 2013 by edavey
Welcome! Buster.JS is... — Buster.JS 0.7.0 documentation
A browser JavaScript testing toolkit. It does browser testing with browser automation (think JsTestDriver), QUnit style static HTML page testing, testing in headless browsers (PhantomJS, jsdom), and more. Take a look at the overview!
javascript  development  testing 
february 2013 by edavey
TimelineSetter creates beautiful timelines.

It is a command-line utility that takes a specially-structured CSV file as input and outputs standards-compliant HTML/CSS/JavaScript. It supports any span of time from minutes to years, and supports multiple parallel event series in a single timeline. It can handle custom descriptions and even arbitrary HTML in each event “card.” It creates fluid embeds that will look great at any width.

TimelineSetter “bakes out” timelines, ready for uploading directly into your CMS, Amazon S3, or however you typically serve static files. It requires no server-side processing at all once you’ve generated a timeline.
timeline  javascript  visualization 
december 2012 by edavey
RSVP.js provides simple tools for organizing asynchronous code.

Specifically, it is a tiny implementation of Promises/A and a mixin for turning objects into event targets.

It works in node and the browser. You can get the browser build in browser/rsvp.js and browser/rsvp.min.js.

RSVP.Promise is an implementation of Promises/A that passes the promises test suite written by Domenic Denicola.

It passes both the primary suite, which tests explicit compliance with the Promises/A spec, and the extension tests, which test compliance with commonly accepted practices around promises in JavaScript.

It delivers all promises asynchronously, even if the value is already available, to help you write consistent code that doesn't change if the underlying data provider changes from synchronous to asynchronous.

It is compatible with TaskJS, a library by Dave Herman of Mozilla that uses ES6 generators to allow you to write synchronous code with promises. It currently works in Firefox, and will work in any browser that adds support for ES6 generators. See the section below on TaskJS for more information.
javascript  asynchronous 
october 2012 by edavey
elasticsearch - tutorials - JavaScript Web Applications and elasticsearch
In this article, we will write a simple task management application in JavaScript, using elasticsearch as a persistence layer. This is how the finished appplication should look like.

Instead of using plain jQuery and HTML, though, we will use Ember.js, a self-described “framework for ambitious applications”.
ember  javascript 
september 2012 by edavey
Timeline JS - Beautifully crafted timelines that are easy, and intuitive to use.
There are lots of timeline tools on the web but they are almost all either hard on the eyes or hard to use. Create timelines that are at the same time beautiful and intuitive for users

TimelineJS is great for pulling in media from different sources. Just throw in a link from Twitter, YouTube, Flickr, Vimeo, Google Maps or SoundCloud and TimelineJS will format it to fit perfectly. More media types will be supported in the future.

Creating one is as easy as filling in a Google spreadsheet or as detailed as JSON.
javascript  timeline 
august 2012 by edavey
trunk8 is a text truncation extension to jQuery. When applied to a large block of text, trunk8 will cut off just enough text to prevent it from spilling over.

Unlike conventional truncation that just limits the character length of text, trunk8 measures the content area for spill-over and intelligently chooses the text that best fits in the given space.
javascript  truncation  string  text  jquery 
august 2012 by edavey
Rivets by mikeric
Rivets.js is a declarative, observer-based DOM-binding facility that plays well with existing frameworks such as Backbone.js, Spine.js and Stapes.js. It aims to be lightweight (1.2KB minified and gzipped), extensible, and configurable to work with any event-driven model.
july 2012 by edavey
Leaflet - a modern, lightweight JavaScript library for interactive maps by CloudMade
Leaflet is a modern, lightweight open-source JavaScript library for mobile-friendly interactive maps. It is developed by CloudMade to form the core of its next generation JavaScript API. Weighing just about 22kb of gzipped JS code, it still has all the features most developers ever need for online maps, while providing a fast, pleasant user experience.

It is built from the ground up to work efficiently and smoothly on both desktop and mobile platforms like iOS and Android, taking advantage of HTML5 and CSS3 on modern browsers. The focus is on usability, performance, small size, A-grade browser support, convention over configuration and an easy-to-use API. The OOP-based code of the library is designed to be modular, extensible and very easy to understand.
javascript  maps 
may 2012 by edavey
Poltergeist 0.6.0: Javascript error handling and remote debugging: Jon Leighton
My goal with Poltergeist is to create the fastest and best Capybara driver. A common problem when using Capybara, particularly when using a headless driver, is debugging. To be the best driver, Poltergeist needs to be the easiest to debug.
capybara  testing  development  ruby  javascript  poltergeist 
april 2012 by edavey
« earlier      
per page:    204080120160

Copy this bookmark:

to read