Quantcast
Channel: marijnhaverbeke.nl/blog
Browsing all 45 articles
Browse latest View live

Interning symbols

Mike Ajemian wrote something about dynamically interning symbols using the ~:@ format construct to upcase parts of the symbol's name. This works fine on standard CLs, but if you want to write something...

View Article


HTTP Caching

(This is something I wrote for a now-defunct web publication in 2008. I've inlined the text here.) Giving caches a chance Though it tends to get treated as one, HTTP is not just a dumb file-transfer...

View Article


Announcing: ST-JSON

After dragging my JSON implementation through various projects, and having several incompatible versions exist at the same time, I got permission to open-source it from the company that originally paid...

View Article

Postmodern 1.13 released

There were a handful of small fixes still sitting around, as well as the deftable addition. It has been four months since 1.12, so: 1.13! Champagne all around. Download.

View Article

Parse-js library released

I've released the JavaScript parser (in Common Lisp) that I had sitting around as a proper package. It's small, fast, and complete, but not terribly well-documented. Get it from the project page.

View Article


Announcing: CL-TK

I've just put my Common Lisp Tcl/Tk bindings online. They differ from the existing LTK library in that they... Support for both FFI bindings and talking to a wish shell. Have hardly any 'wrapper'...

View Article

A Gentle Introduction to Machine Fundamentals

Read this post at http://marijnhaverbeke.nl/turtle/.

View Article

Cursor motion & bi-directional text

"Unicode is hard" is a commonplace among developers. And I guess it is hard. Witness the amount of systems that get things like string en- and decoding wrong. And that is the easy part—the real fun...

View Article


Heckle, or how I shall try to blog again

Last week, the need for a platform to publish my bi-directional text story on forced me to think about blogging software once more. I had heard that all the cool kids are now using Jekyll on their...

View Article


CodeMirror's document representation

This post is part of an ongoing series of articles that aim to document the internals of the CodeMirror code editor. I will use the cm-internals tag to distinguish these posts—if you intend to hack on...

View Article

JavaScript closure vs. object look-up performance

Note: the question asked in this post, "why aren't closures super-fast?", was thorougly answered by Vyacheslav Egorov in his followup. Reading that is probably more informative than reading the text...

View Article

Faking an editable control in browser JavaScript

This is a post in the cm-internals series, describing the internals of the CodeMirror editor. The problem it tackles is this: you are writing a JavaScript control that needs to act as a text input...

View Article

CodeMirror 2.34 and 3.0beta1 released

I've just marked the current state of the master branch as version 2.34. The main changes are: New mode: Common Lisp Fix right-click select-all on most browsers. Change the way highlighting happens:...

View Article


CodeMirror's mode system

A CodeMirror mode is a module that helps CodeMirror, a code editor, highlight and optionally smart-indent text in a specific programming language or other kind of structured text format. Code editors...

View Article

Acorn: yet another JavaScript parser

Acorn is a JavaScript parser written in JavaScript. Another one. Just like: The original UglifyJS parser The new UglifyJS parser ZeParser The Narcissus project's parser Esprima Acorn produces a...

View Article


Overloading plain text: CodeMirror marked ranges

One common feature request that CodeMirror version 1 was fundamentally unable to support (due to its reliance on contentEditable), and which was thus built into version 2 from the start, is...

View Article

A tale of a pathological scrolling model

When you've lied about something, it tends to take more and more lies to cover up the discrepancies created by the first lie. A very similar thing happened when CodeMirror needed to fake its...

View Article


Postmodern 1.19 released

Postmodern is a Common Lisp library for communicating with a PostgreSQL database. Sabra Crolleton recently published a nice collection of examples for the library. That reminded me that it's been over...

View Article

Parsing line noise as JavaScript

I am writing a tool that tries to enhance a JavaScript code editor by doing some halfway serious static analysis on code, as it is being written. To analyze code, you'll want to parse it,...

View Article

Shared documents in CodeMirror

From the very start, CodeMirror was set up as a system with zero unused abstractions. This is a doctrine that I've come to esteem highly: write code that solves the current problem you have, and not a...

View Article
Browsing all 45 articles
Browse latest View live


Latest Images