Using the Web Audio API to Make a Modem
What do you do when you cannot copy text between computers due to lack of internet connectivity? I built a modem using the Web Audio API, allowing data transfer via audio.
The latest blog posts to take off on Hacker News. 4,615 posts.
What do you do when you cannot copy text between computers due to lack of internet connectivity? I built a modem using the Web Audio API, allowing data transfer via audio.
Two years ago, I started the ProseMirror project because I wanted to take a stab at a better approach to WYSIWYG-style editing. Today, I'm releasing version 1.0 of the library . The architecture and scope of the project have changed quite a bit during its lifetime, but I feel that the original goal has been met.
In this article I’d like to present a list of django packages (add-ons) that I use in most of my projects. I am using django for more than 5 years as my day to day work tool to develop applications for the public sector organization I work for. So please keep in mind that these packages are targeted to the…
I’ve been doing the local usergroup circuit with this lately and have been asked to write it up.
I’ve added a faceted search engine to this blog, powered by PostgreSQL. It supports regular text search (proper search, not just SQL“like” queries), filter by tag, filter by date, filter …
During the introduction of the iPhone X a hilarious gif made the Twitter rounds, showing a list scrolling past the new notch.
There are two kinds of client applications: The first kind has a “refresh” or “reload” button to make sure your app’s in sync with its server’s view of the world. The second kind is broken.
Design principles and an instantiation for a post webapp world
I'm killing Disqus comments on my blog. Here's why.
The Apple Watch desperately needs standalone podcast playback, especially with the LTE-equipped Series 3, which was designed specifically for exercising without an iPhone.
Reactive programming and thread sharing. Javascript, Node.js, Go, Rails, Elixir and Erlang. Rewind the clocks to Windows 3.1 In 1992 with Windows 3.1 we had this thing non-preemptive multitasking, i.e. “Cooperative Multitasking”. Cooperation is a funny term, it should actually be “Programmer Controlled Multitasking”…
Something is going on. The people are unhappy. The spectre of civil unrest stalks our programming communities.
Bringing the web up to speed with WebAssembly Haas et al., PLDI 2017 This is a joint paper from authors at Google, Mozilla, Microsoft and Apple describing the motivations for WebAssembly together w…
Most web developers I talk to these days love writing JavaScript with all the newest language features—async/await, classes, arrow functions, etc. However, despite the fact that all modern browsers can run ES2015+ code and natively support the features I just mentioned, most developers still transpile their code to…
These are solid year-over-year updates — at least as impressive as the iPhone 7 was over the iPhone 6S. If they hadn’t debuted alongside the iPhone X we’d be arguing about whether these are the most impressive new iPhone models since the iPhone 6.
Google bought the .dev gTLD and Chrome 63 started force-redirecting every .dev domain to HTTPS via preloaded HSTS, breaking local dev setups. Here's why, and …
Big companies like to bury unpleasant news on Fridays: A few weeks ago, Facebook announced they have decided to dig in on their patent clause addition to the React license, even after Apache had sa…
WebGL is, all things considered, a pretty decent API. It’s not a great API, but that’s just because OpenGL is also not a great API. It gives you raw access to the GPU and is pretty low-level. For those intimidated by something so low-level, there are quite a few higher-level engines like three.js and Unity which are…
Do not use the ASCII character 0x60 (grave accent) as a left quotation mark together with 0x27 (apostrophe), because it will look silly with modern correct fonts.
Note: I just spoke at Coldfront 2017 about why I’m such a big proponent of the Web. What follows is essentially that talk as a blog post (I’ll add a link to the video once it is published).
There's a ton of interest these days in 'CSS in JS'. The premise is simple: CSS operates in a global namespace, which can result in undesirable side effects, spaghetti code, and extremely difficult to maintain codebases. JavaScript used to do this, and we fixed it by encapsulating everything in modules and using tools…
My current "investment thesis" is that what we call web frameworks are transforming from runtime libraries into optimizing compilers. When it comes to eking performance out of hand-authored JavaScript and accompanying runtime libraries, we've reached the point of diminishing returns.
Last year I found a design error in the MD5 version of the hashing method used by Mastercard Internet Gateway Service. The flaw allows modification of transaction amount. They have awarded me with a bounty for reporting it. This year, they have switched to HMAC-SHA256, but this one also has a flaw
JSX react in depth - an interactive tutorial
HTML Components (HTC), introduced in Internet Explorer 5.5, offers a powerful new way to author interactive Web pages. Using standard DHTML, JScript and CSS knowledge, you can define custom behaviors on elements using the “behavior” attribute. Let’s create a behavior for a simple kind of “image roll-over” effect. For…
JavaScripters often complain about the complexity of React. But to ClojureScripters, React is very nice. What's the difference? In this article, we explore 6 mistakes Reacters make, including mutable state everywhere, Lifecycle Methods and, non-reusable components.