When you live in a command line, configurations are a deeply personal thing. They are often crafted over years of experience, battles lost, lessons learned, advice followed, and ingenuity rewarded. When you are away from your own configurations, you are an orphaned refugee in unfamiliar and hostile surroundings. You feel clumsy and out of sorts. You are filled with a sense of longing to be back in a place you know. A place you built. A place where all the short-cuts have been worn bare by your own travels. A place you proudly call… $HOME.
A JSON alternative that retains references, handles circular dependencies, and encodes almost every data type available to standard JavaScript. - cierelabs/json-complete
I’ve written the small library `re-template-tag` that provides a template tag function for composing regular expressions. This blog post explains how it works.
JSON is the de facto standard when it comes to (un)serialising and exchanging data in web and mobile programming. But how well do you really know JSON? We'll read the specifications and write test cases together. We'll test common JSON libraries against our test cases. I'll show that JSON is not the easy, idealised format as many do believe. Indeed, I did not find two libraries that exhibit the very same behaviour. Moreover, I found that edge cases and maliciously crafted payloads can cause bugs, crashes and denial of services, mainly because JSON libraries rely on specifications that have evolved over time and that left many details loosely specified or not specified at all.
To me, it makes more sense for these pieces to be bundled together in an isolated module that is self contained, and can even be packaged easily into a library.
I want to share with you a tip for cleaner code when you need to validate your code with a bunch of if statements. How many times did you get an annoying exception because you forgot to check one…
We present and compare all possible alternatives you can use to parse languages in JavaScript. From libraries to parser generators, we present all options