<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom"><title>JSter</title><id>https://jster.net/</id><link rel="alternate" href="https://jster.net/"></link><link rel="self" href="https://jster.net/atom.xml"></link><updated>2026-05-03T06:26:16.000Z</updated><entry><title>JSter #255: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-255"></link><id>jster-255</id><published>2026-05-03T10:47:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Summer is the best day of the year.</p>
</blockquote>
<p>It's only about a month to this year's <a class="underline" href="https://futurefrontend.com/">Future Frontend</a> conference. I was also able to set up a seminar titled <a class="underline" href="https://www.sdlcai.org/">AI meets SDLC</a> for 13.10 at Aalto University. In addition I made my <a class="underline" href="https://learnscientificwriting.com/">scientific writing book</a> available to the public through the web. I've also been developing <a class="underline" href="https://slideotter.com/">a new experimental tool for slide authoring</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/7ASDuJY">WebReflection/d1-tags: Tagged-template helpers for Cloudflare D1</a></li>
<li><a class="underline" href="https://buff.ly/loMlnnk">Vue Data UI</a></li>
<li><a class="underline" href="https://buff.ly/JJUuIfl">alibaba/page-agent: JavaScript in-page GUI agent. Control web interfaces with natural language</a></li>
</ul>
<a href="#runtimes"><h2 class="inline" id="runtimes">Runtimes</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/AAFcbet">JSSE: A JavaScript Engine Built by an Agent</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/cYzkWVi">ChatGPT, Claude, and Gemini Render Markdown in the Browser. I Don't</a></li>
<li><a class="underline" href="https://buff.ly/W0RdYEg">Uses for nested promises</a></li>
</ul>
<a href="#icons"><h2 class="inline" id="icons">Icons</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://lucide.dev/">Lucide - Beautiful and consistent icons</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/Dt5kBd7">Async, Sync, in Between</a></li>
<li><a class="underline" href="https://buff.ly/tiFhdRK">Signals, the push-pull based algorithm</a></li>
<li><a class="underline" href="https://buff.ly/kCFTSd1">Test IDs are an a11y smell</a></li>
<li><a class="underline" href="https://ilo.im/16c0es">Under the hood of MDN's new frontend</a></li>
<li><a class="underline" href="https://buff.ly/7DnG2XG">The Three Pillars of JavaScript Bloat</a></li>
<li><a class="underline" href="https://ilo.im/16bcfg">The 49MB Web Page</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/0Apk8Zw">Fresh 2.3: Zero JS by default, View Transitions, and Temporal support</a></li>
<li><a class="underline" href="https://geajs.com/">Gea — Lightweight Reactive UI Framework</a></li>
<li><a class="underline" href="https://buff.ly/AMXH6hU">Datastar v1.0.0 - Hypermedia + SSE for profit and fun</a></li>
<li><a class="underline" href="https://buff.ly/wuYe94a">Spiceflow - The Type Safe TypeScript API Framework for React</a></li>
<li><a class="underline" href="https://buff.ly/17mjLpt">StreamUI/hyperstar: Server-driven UI for real-time web apps. No client code, no state sync, just TypeScript & JSX on the server, and every client sees the same thing</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/iSoxFAL">Vite Plugin Registry</a> - Discover plugins for your build tools</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/Vj1YzFb">jokull/agent-cms: Agent-first headless CMS on Cloudflare Workers. MCP-driven schema + content management, GraphQL delivery, FTS5 + Vectorize search.</a></li>
<li><a class="underline" href="https://buff.ly/SSObm1A">cloudflare/vinext</a> - Vite plugin that reimplements the Next.js API surface — deploy anywhere</li>
<li><a class="underline" href="https://tsdown.dev/">tsdown - The Elegant Bundler for Libraries</a></li>
<li><a class="underline" href="https://buff.ly/Mfayx89">npmgraph - NPM Dependency Diagrams</a></li>
<li><a class="underline" href="https://buff.ly/0yZxGlt">paulmillr/jsbt: JS Build Tools: helpers for building, benchmarking & testing secure JS apps.</a></li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">Typescript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://tsrx.dev/">TSRX</a> - TypeScript Language Extension for Declarative UI</li>
<li><a class="underline" href="https://ilo.im/16ccl3">TypeScript 7.0 Beta</a></li>
</ul>
<a href="#standards"><h2 class="inline" id="standards">Standards</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/fNNqbuR">Standard HTML Video & Audio Lazy-loading is Coming!</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/lCsBSrP">Pascal - a 3D building editor built with React Three Fiber and WebGPU</a></li>
</ul>
<a href="#security"><h2 class="inline" id="security">Security</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/WutAbXZ">Attackers Are Hunting High-Impact Node.js Maintainers in a Campaign</a></li>
</ul>
]]></content></entry><entry><title>JSter #254: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-254"></link><id>jster-254</id><published>2026-04-04T10:47:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>You can’t see it, but it’s JavaScript.</p>
</blockquote>
<p>Only two months to this year's <a class="underline" href="https://futurefrontend.com/">Future Frontend conference</a> at Espoo, Finland!</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/FuurpYA">chenglou/pretext - Pure JavaScript/TypeScript library for multiline text measurement & layout</a></li>
<li><a class="underline" href="https://buff.ly/rLsloCD">SuperSonic - SuperCollider's Synthesis Engine in the Browser</a></li>
<li><a class="underline" href="https://buff.ly/OMqtpfX">tinylibs/tinyclip: A tiny, cross-platform clipboard utility.</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://bit.ly/4c0Aa99">Introducing EmDash — the spiritual successor to WordPress that solves plugin security</a></li>
<li><a class="underline" href="https://arrow-js.com/">ArrowJS - Web framework designed for building with agents</a></li>
<li><a class="underline" href="https://buff.ly/gNiuGoW">Nitro v3 Beta is here</a></li>
<li><a class="underline" href="https://buff.ly/MSyf23i">Astro 6.0</a></li>
<li><a class="underline" href="https://buff.ly/iqqgEr1">StateSurface - Hypermedia inspired state-layout mapping runtime</a></li>
<li><a class="underline" href="https://buff.ly/n7pbS3C">Solid.js v2.0.0 Beta - The <Suspense> is Over</a></li>
</ul>
<a href="#security"><h2 class="inline" id="security">Security</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/abKc9Xc">Securing Local Development Environment Against Dependency Supply Chain Attacks</a></li>
<li><a class="underline" href="https://buff.ly/SQVQEJf">LavaMoat - Proactive supply-chain security at runtime</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/gRWtEZV">Guided Meditation for Developers</a></li>
<li><a class="underline" href="https://buff.ly/h1PSho3">Two React Design Choices Developers Don’t Like—But Can’t Avoid</a></li>
<li><a class="underline" href="https://buff.ly/ddK3HtC">Making React ProseMirror really, really fast</a></li>
<li><a class="underline" href="https://buff.ly/keCFcgP">Lies I was Told About Collaborative Editing, Part 2: Why we don't use Yjs</a></li>
<li><a class="underline" href="https://buff.ly/G7VF4Lp">Evolving the Node.js Release Schedule</a></li>
<li><a class="underline" href="https://buff.ly/Wu46ySp">How Strawberry Rewrote 130K Lines from React to Svelte in Two Weeks</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/Uzah5JU">Vitest 4.1 is out!</a></li>
<li><a class="underline" href="https://npmx.dev/">npmx - Package Browser for the npm Registry</a></li>
<li><a class="underline" href="https://ilo.im/16bd5y">Vite 8.0 is out!</a></li>
<li><a class="underline" href="https://buff.ly/VpiJVsw">Penpot - Like Figma but open source</a></li>
</ul>
<a href="#runtimes"><h2 class="inline" id="runtimes">Runtimes</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/2eJPRue">Announcing TypeScript 6.0</a></li>
<li><a class="underline" href="https://buff.ly/7FHwQYP">capricorn86/happy-dom: A JavaScript implementation of a web browser without its graphical user interface</a></li>
</ul>
<a href="#components"><h2 class="inline" id="components">Components</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/eJZsiAd">Cally: small, feature-rich calendar components</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/FyGIlDe">Audio Trails — Real-Time Microphone Visualizer</a></li>
</ul>
<a href="#standards"><h2 class="inline" id="standards">Standards</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/F7gxAhM">Temporal: The 9-Year Journey to Fix Time in JavaScript</a></li>
<li><a class="underline" href="https://buff.ly/p3KMXl6">Source Maps: Shipping Features Through Standards</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/Y95NMNe">Building a Procedural Hex Map with Wave Function Collapse</a></li>
<li><a class="underline" href="https://buff.ly/20rwsGu">Making keyboard navigation effortless</a></li>
</ul>
<a href="#benchmarks"><h2 class="inline" id="benchmarks">Benchmarks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/RIxHiKk">SPA vs. Hypermedia: Real-World Performance Under Load</a></li>
</ul>
]]></content></entry><entry><title>JSter #253: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-253"></link><id>jster-253</id><published>2026-03-04T10:47:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>When things go bad, don't JavaScript them.</p>
</blockquote>
<p>I recently gave a lecture about hypermedia and how it might be the solution for lighter web applications. <a class="underline" href="https://www.researchgate.net/publication/400934202_Hypermedia_-_The_solution_for_lighter_web_applications">You can find my lecture slides here.</a></p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/7qRHxMy">florianschepp/bsky-comments: A zero-dependency Web Component to embed Bluesky discussion threads on any website.</a></li>
<li><a class="underline" href="https://buff.ly/G5PMAmc">gitbrent/PptxGenJS: Build PowerPoint presentations with JavaScript. Works with Node, React, web browsers, and more.</a></li>
<li><a class="underline" href="https://buff.ly/kN0kpkr">shuding/better-all - Better Promise.all with automatic dependency optimization</a></li>
<li><a class="underline" href="https://nuqs.dev/">nuqs - Type-safe search params state management for React</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://varlock.dev/">varlock - Manage your .env</a></li>
<li><a class="underline" href="https://knip.dev/">Knip - Declutter your JavaScript & TypeScript projects</a></li>
<li><a class="underline" href="https://buff.ly/pK0aUdl">vercel-labs/agent-browser: Browser automation CLI for AI agents</a></li>
<li><a class="underline" href="https://buff.ly/WHGvolC">fpapado/svg-use: Tools and bundler plugins, to ergonomically load SVG files via use[href]</a></li>
<li><a class="underline" href="https://buff.ly/Y1AeMod">Introducing Hono CLI</a></li>
<li><a class="underline" href="https://npmx.dev/">npmx - Package Browser for the npm Registry</a></li>
<li><a class="underline" href="https://buff.ly/l9hN9Aq">React2AWS - Infrastructure as React Components</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/JO0GXC4">Why is WebAssembly a second-class language on the web?</a></li>
<li><a class="underline" href="https://bit.ly/46xsUQh">We deserve a better streams API for JavaScript</a></li>
<li><a class="underline" href="https://buff.ly/R7MszG9">How Cloudflare rebuilt Next.js with AI in one week</a></li>
<li><a class="underline" href="https://buff.ly/Vse96uZ">Fastest Frontend Tooling for Humans & AI</a></li>
<li><a class="underline" href="https://buff.ly/H8lVvWW">WebMCP – a much needed way to make agents play with rather than against the web</a></li>
<li><a class="underline" href="https://buff.ly/7qqBd9V">JS-heavy approaches are not compatible with long-term performance goals</a></li>
<li><a class="underline" href="https://buff.ly/38C2S1Y">Solid.js Best Practices</a></li>
<li><a class="underline" href="https://buff.ly/2aKV7qG">Death to Scroll Fade!</a></li>
</ul>
<a href="#runtimes"><h2 class="inline" id="runtimes">Runtimes</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/WoberlV">Node.js 24.14.0 (LTS)</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://voxjong.com/">VoxJong - CSS Mahjong Solitaire</a></li>
<li><a class="underline" href="https://buff.ly/4Xa4qVj">Descent in three.js</a></li>
<li><a class="underline" href="https://buff.ly/0WdVo3V">mrdoob/three-quake: A WIP port of Quake (1996) to Three.js.</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/1qbOnHo">RYBitten SVG Color Sphere</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/FzyFxLZ">Ember 6.10 Released</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/bnWs3ZW">Guide to testing React apps with Morph LLM</a></li>
</ul>
]]></content></entry><entry><title>JSter #252: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-252"></link><id>jster-252</id><published>2026-02-04T09:47:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Here we JavaScript again.</p>
</blockquote>
<p>I wrote <a class="underline" href="https://futurefrontend.com/blog/ff26-themes/">a post about my conference themes</a> so you have a better idea what to await from Future Frontend 2026 (8-9.6, Espoo, Finland).</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/CrVjc22">sprusr/mewmap: Interactive maps powered by SVG 🐈</a></li>
<li><a class="underline" href="https://buff.ly/7dhR5gN">supertalk - A type-safe, unified communication library for Web Workers, Iframes, and Node.js worker threads.</a></li>
<li><a class="underline" href="https://ilo.im/169xh1">jQuery 4.0.0</a></li>
<li><a class="underline" href="https://buff.ly/86WpJSU">A polyfill for the HTML switch element</a></li>
</ul>
<a href="#applications"><h2 class="inline" id="applications">Applications</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jscad.app/">JSCAD - JavaScript CAD</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/QQKY4O4">A 2x faster Rollup?</a></li>
<li><a class="underline" href="https://buff.ly/LQ9E7d7">The Incredible Overcomplexity of the Shadcn Radio Button</a></li>
<li><a class="underline" href="https://buff.ly/FWwjlUC">The 2025 Web Almanac with new insights is available now</a></li>
</ul>
<a href="#books"><h2 class="inline" id="books">Books</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/tgpZNJs">Free book - Accessibility For Everyone by Laura Kalbag</a></li>
<li><a class="underline" href="https://buff.ly/wTtGP09">The Micro-Frontend Architecture Handbook</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/Sk3ow2u">Build a dinosaur runner game with Deno, pt. 4</a></li>
</ul>
<a href="#runtimes"><h2 class="inline" id="runtimes">Runtimes</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/RbDfyrH">Node.js 25.4.0</a></li>
</ul>
<a href="#security"><h2 class="inline" id="security">Security</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/UkSnyuS">Denial of Service and Source Code Exposure in React Server Components Again</a></li>
<li><a class="underline" href="https://buff.ly/RvKo6bp">CVEs affecting the Svelte ecosystem - Update as soon as you can</a></li>
<li><a class="underline" href="https://buff.ly/Zca5zGq">Node.js — Mitigating Denial-of-Service Vulnerability from Unrecoverable Stack Space Exhaustion for React, Next.js, and APM Users</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/sUIrqAI">blackboardsh/electrobun: Build ultra fast, tiny, and cross-platform desktop apps with Typescript.</a></li>
<li><a class="underline" href="https://fontra.xyz/">Fontra - The browser based font editor</a></li>
<li><a class="underline" href="https://buff.ly/OFlILUo">lloydi/PolyPane-Config - Useful polypane configurations for a11y testing</a></li>
<li><a class="underline" href="https://buff.ly/edL2uT6">kettanaito/playwright-persona: Authentication in Playwright using personas.</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/2rDZXko">Google Balls</a></li>
</ul>
<a href="#news"><h2 class="inline" id="news">News</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/2LFWjZC">Astro is joining Cloudflare</a></li>
</ul>
<a href="#browsers"><h2 class="inline" id="browsers">Browsers</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/IDkzzu9">Just the Browser</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/GBOogVj">Replacing Toasts with Accessible User Feedback Patterns</a></li>
<li><a class="underline" href="https://ilo.im/169o2x">Date is out, Temporal is in</a></li>
<li><a class="underline" href="https://buff.ly/QoNykvr">Using your design system colors with contrast-color()</a></li>
<li><a class="underline" href="https://buff.ly/UvtGw5u">Managing TypeScript Packages in Monorepos</a></li>
</ul>
]]></content></entry><entry><title>JSter #251: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-251"></link><id>jster-251</id><published>2026-01-06T11:47:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScriptcalypse now!</p>
</blockquote>
<p>I've been sketching out <a class="underline" href="https://futurefrontend.com/">Future Frontend 2026</a> and I think we'll have a solid program for the conference again.</p>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://elysiajs.com/">Elysia - Ergonomic Framework for Humans</a></li>
<li><a class="underline" href="https://buff.ly/1Bkt20c">CopilotKit: React UI + elegant infrastructure for AI Copilots, AI chatbots, and in-app AI agents. The Agentic last-mile 🪁</a></li>
</ul>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/tSH3WkR">fp-pack - A practical functional toolkit for JavaScript and TypeScript. If you know functions, pipes, and currying, you can use it immediately</a></li>
<li><a class="underline" href="https://buff.ly/hwPjlvO">Announcing jax-js: an ML library for the web</a></li>
<li><a class="underline" href="https://buff.ly/BhDa6Y8">2Dphysics - Tiny physics engine written in JavaScript</a></li>
<li><a class="underline" href="https://buff.ly/6tXBZWX">Introducing Fate - tRPC with better ergonomics for React</a></li>
<li><a class="underline" href="https://base-ui.com/">Base UI is available now</a></li>
<li><a class="underline" href="https://buff.ly/7AUCsmP">Automerge - Version control for your data</a></li>
<li><a class="underline" href="https://buff.ly/Daqp3Rp">dlemstra/magick-wasm: The WASM library for ImageMagick</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/AzPnxdM">The Curious Case of the Shallow Session SPAs</a></li>
<li><a class="underline" href="https://buff.ly/JVrgbRM">JSON Schema Demystified: Understanding Schemas, Dialects, Vocabularies, and Metaschemas</a></li>
</ul>
<a href="#runtimes"><h2 class="inline" id="runtimes">Runtimes</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/W9bfGcE">require(esm) in Node.js: from experiment to stability</a></li>
<li><a class="underline" href="https://buff.ly/jSZJpgI">bellard/mquickjs: Micro QuickJS Javascript Engine for embedded systems</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/QqhYjDy">Introducing Flint - a new linter</a></li>
<li><a class="underline" href="https://buff.ly/rq9HkzU">roman01la/blender-react: A Blender addon that lets you create and manage 3D scenes using React components</a></li>
<li><a class="underline" href="https://buff.ly/Ksux52M">Vite 8 Beta: The Rolldown-powered Vite</a></li>
<li><a class="underline" href="https://buff.ly/glmczLP">Announcing Oxfmt Alpha</a></li>
</ul>
<a href="#books"><h2 class="inline" id="books">Books</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/x20olf7">gibbok/typescript-book: The Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and Open Source.</a></li>
</ul>
<a href="#jokes"><h2 class="inline" id="jokes">Jokes</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/xxIqsap">TailwindSQL - SQL Queries with Tailwind Syntax</a></li>
<li><a class="underline" href="https://buff.ly/4sCOEWQ">donlon/cloudflare-error-page: Cloudflare error page generator</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/QRUma4Y">bidicalc - Spreadsheet with a twist</a></li>
</ul>
<a href="#security"><h2 class="inline" id="security">Security</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/YaiEpm2">NPM Security Best Practices: How to Protect Your Packages After the 2025 Shai Hulud Attack</a></li>
<li><a class="underline" href="https://buff.ly/hgd2Vxk">No more tokens! Locking down npm Publish Workflows</a></li>
<li><a class="underline" href="https://buff.ly/k93yE26">Denial of Service and Source Code Exposure in React Server Components – Update your React now</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/u08k7kw">bluwy/tsconfig-grimoire: A collection of sacred information to deal with tsconfig.json for tooling authors and maintainers</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/GaoTRlM">Build your own router</a></li>
</ul>
]]></content></entry><entry><title>JSter #250: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-250"></link><id>jster-250</id><published>2025-12-04T14:47:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript Bells, JavaScript Bells, JavaScript all the way!</p>
</blockquote>
<p>The good thing about Winter is that it reminds us the value of Summer. We'll run the next Future Frontend conference (Espoo, Finland) at 8-9.6.26 so <a class="underline" href="https://futurefrontend.com/blog/ff26/">register to the conference while the tickets are still kind of cheap</a>.</p>
<a href="#security"><h2 class="inline" id="security">Security</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://m.cje.io/444mM0y">Critical Security Vulnerability in React Server Components – Update your React now</a></li>
<li><a class="underline" href="https://buff.ly/kcwubY5">Why XSS Persists in This Frameworks Era?</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/d8gmhLK">Tusk Drift - Automated API Testing From Live Traffic</a></li>
<li><a class="underline" href="https://buff.ly/8q8l96G">HTML Size Analyzer by DebugBear</a></li>
<li><a class="underline" href="https://jsxtool.com/">JSX Tool - React Dev Tools for Styling</a></li>
<li><a class="underline" href="https://buff.ly/ve5K0TG">Count Cachula - Local-first performance without the complexity</a></li>
<li><a class="underline" href="https://buff.ly/Dr7Y0C7">aidenybai/react-scan: Scan for React performance issues and eliminate slow renders in your app</a></li>
<li><a class="underline" href="https://buff.ly/3RsFfxi">Mediabunny - Complete media toolkit</a></li>
<li><a class="underline" href="https://buff.ly/BXM6zxv">pakastin/nomoji: Replace emojis in text with SVG images</a></li>
<li><a class="underline" href="https://buff.ly/eSuJ9uS">Storybook 10</a></li>
</ul>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/05zkI6N">buttondown/sniper-link - Confirm emails easily</a></li>
<li><a class="underline" href="https://buff.ly/rNq6Jah">Valibot v1.2</a></li>
<li><a class="underline" href="https://buff.ly/R7Zw62f">Prisma 7 Release: Rust-Free, Faster, and More Compatible</a></li>
<li><a class="underline" href="https://buff.ly/rtaxoJ5">hackfixme/miu: A small JavaScript data binding library</a></li>
<li><a class="underline" href="https://buff.ly/nReDfhL">bigskysoftware/fixi - Experimental hypermedia controls</a></li>
<li><a class="underline" href="https://buff.ly/AGukSml">Transformers.js - State of art machine learning for the web</a></li>
<li><a class="underline" href="https://buff.ly/u5lJAKI">gavoja/twcss - A tiny Tailwind alternative</a></li>
<li><a class="underline" href="https://buff.ly/6lKkaay">Interpol: A Low-Level Take on Tweening and Motion</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://ilo.im/168o3w">The Performance Inequality Gap 2026</a></li>
<li><a class="underline" href="https://buff.ly/cXpQN3g"></> htmx ~ The fetch()ening</a></li>
<li><a class="underline" href="https://buff.ly/ip2YC4Z">Musings on Isomorphic First Frameworks</a></li>
<li><a class="underline" href="https://buff.ly/cJOoh6a">What's an interactive element?</a></li>
<li><a class="underline" href="https://buff.ly/ZlxKeCC">ChatGPT sez Build with semantics first – HTML Accessibility</a></li>
<li><a class="underline" href="https://buff.ly/rfcY9Cn">An Introduction to the World Wide Web for Very Senior Programmers</a></li>
<li><a class="underline" href="https://buff.ly/hFxAA9q">Loren Built the Same App 10 Times: Evaluating Frameworks for Mobile Performance</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/MQsiKu6">How to "officially" deprecate methods with Node.js utilities</a></li>
<li><a class="underline" href="https://buff.ly/cd9xcGA">Your URL Is Your State</a></li>
<li><a class="underline" href="https://buff.ly/E9IzTMY">Simplify Your Code: Functional Core, Imperative Shell</a></li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/tXAoQDO">Tooltip Components Should Not Exist</a></li>
<li><a class="underline" href="https://buff.ly/Yl9Dtqq">The fate of small open source libraries in the era of AI</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/sGDvlQh">VoltAgent - TypeScript AI Agent Framework</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/lXW2VQh">The Perfect Date Picker</a></li>
</ul>
]]></content></entry><entry><title>JSter #249: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-249"></link><id>jster-249</id><published>2025-11-03T09:47:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>If we can't see the JavaScript in each other, we've already lost the fight.</p>
</blockquote>
<p>Maybe I mentioned it already but <a class="underline" href="https://futurefrontend.com/">remember to preregister for next year's Future Frontend conference</a> that takes place 8-9.6.26 at Espoo, Finland.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/MHkpDNd">alien-signals - The lightest signal library</a></li>
<li><a class="underline" href="https://buff.ly/NzzOiwK">idiomorph - a DOM-merging algorithm</a></li>
<li><a class="underline" href="https://buff.ly/j5SxILH">WebReflection/usignal: A blend of and solid-js basic reactivity API</a></li>
<li><a class="underline" href="https://buff.ly/54TgRcU">Lift HTML - a tiny Web Components helper library</a></li>
<li><a class="underline" href="https://buff.ly/oYCN5WW">OpenFreeMap - Easy to integrate maps</a></li>
<li><a class="underline" href="https://buff.ly/kd3ZJCs">uptake - Run a Bun cluster with a shared "worker" module</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/dJssHXv">Ember 6.8 Released</a></li>
<li><a class="underline" href="https://mastra.ai/">Mastra - The TypeScript AI framework</a></li>
<li><a class="underline" href="https://buff.ly/QJORPy0">Datastar - The hypermedia framework</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/WuXpe6d">Evalite - Test AI-powered apps in TypeScript</a></li>
<li><a class="underline" href="https://buff.ly/x8YbOwm">Vitest 4.0 is out</a></li>
<li><a class="underline" href="https://buff.ly/vfWnGrz">Hyperview - Native mobile apps, as easy as creating a web site</a></li>
<li><a class="underline" href="https://buff.ly/skEgQOA">Ultracite - The AI-ready formatter that helps you write and generate code faster</a></li>
<li><a class="underline" href="https://knip.dev/">Knip - Declutter your JavaScript & TypeScript projects</a></li>
<li><a class="underline" href="https://buff.ly/Oa3BO9C">ossjs/release: Minimalistic, opinionated, and predictable release automation tool.</a></li>
<li><a class="underline" href="https://buff.ly/47jFSLq">Bruno - Fast, Git-Friendly Open Source API Client</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://ilo.im/167ucx">Importing vs fetching JSON</a></li>
<li><a class="underline" href="https://buff.ly/5zgVNxf">The future of Lodash</a></li>
<li><a class="underline" href="https://buff.ly/or0NRWl">Datastar attribute plugin for signal value translation</a></li>
<li><a class="underline" href="https://buff.ly/1IVMkut">The killer feature of Web Components</a></li>
<li><a class="underline" href="https://buff.ly/fqCAPEt">Unpacking Remix 3 Pt.1: Frontend</a></li>
<li><a class="underline" href="https://buff.ly/igf21t7">The Perils of Reactivity</a></li>
<li><a class="underline" href="https://buff.ly/eWwaCMV">11ty Hacks for Fun and Performance</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/LxeD6lQ">Create Type-Safe API Clients: A Complete Guide</a></li>
<li><a class="underline" href="https://buff.ly/jcW5yXn">Build a guessing game with the Prompt API</a></li>
</ul>
<a href="#runtimes"><h2 class="inline" id="runtimes">Runtimes</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/zA66SEo">Node.js v25.0 is available</a></li>
</ul>
<a href="#news"><h2 class="inline" id="news">News</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/OWirsdw">Introducing the React Foundation</a></li>
</ul>
]]></content></entry><entry><title>JSter #248: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-248"></link><id>jster-248</id><published>2025-10-07T09:17:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>It takes two to JavaScript</p>
</blockquote>
<p>The Winter is coming. Snow in a month or so.</p>
<a href="#manifestos"><h2 class="inline" id="manifestos">Manifestos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/7Ws6oZG">A Progressive Complexity Manifesto</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/jqlVG3Q">How to migrate your website from Next.js to Astro</a></li>
<li><a class="underline" href="https://buff.ly/CavxPbz">Web Sustainability Guidelines (WSG) becomes a first public Draft Note</a></li>
<li><a class="underline" href="https://buff.ly/02Eymfb">Web Standards and the Fall of the House of Iamus</a></li>
<li><a class="underline" href="https://buff.ly/ze7Byvs">The bloat of edge-case first libraries</a></li>
<li><a class="underline" href="https://ilo.im/166jbx">Why do browsers throttle JavaScript timers?</a></li>
<li><a class="underline" href="https://ilo.im/166h9e">You no longer need JavaScript</a></li>
<li><a class="underline" href="https://buff.ly/No5phY6">state-ref - Building the State Management Library by Jinwoo Kim</a></li>
</ul>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://quietui.org/">Quiet UI - a UI library for the web</a></li>
<li><a class="underline" href="https://buff.ly/Acc7liO">React 19.2</a></li>
<li><a class="underline" href="https://buff.ly/oEc3kcY">mini-lit - Lightweight Lit components with shadcn-inspired theming, Tailwind CSS v4 styling, and Lucide icons</a></li>
<li><a class="underline" href="https://buff.ly/1QOkJIL">Cap'n Web: a new RPC system for browsers and web servers</a></li>
<li><a class="underline" href="https://buff.ly/w5vtlDK">Isograph v0.4.0 — the one with the VSCode extension</a></li>
<li><a class="underline" href="https://varlock.dev/">varlock - Magic env files built for sharing</a></li>
<li><a class="underline" href="https://buff.ly/NV3vhvm">nolimits4web/swiper: Most modern mobile touch slider with hardware accelerated transitions</a></li>
<li><a class="underline" href="https://buff.ly/kjsQLcg">Introducing hx-optimistic: Make Your HTMX Apps Feel Instant</a></li>
<li><a class="underline" href="https://buff.ly/cR6qLqA">PrimeReact - React UI Component Library</a></li>
<li><a class="underline" href="https://buff.ly/65cHutw">WebReflection/file-tree: A file tree component for the web</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/NTkwrSh">Progressive Complexity: When Islands Should be a Continent</a></li>
<li><a class="underline" href="https://buff.ly/PvYoroY">Simple, Accessible Multi-Select UI</a></li>
<li><a class="underline" href="https://buff.ly/gGL5nIF">Liquid Glass in the Browser: Refraction with CSS and SVG</a></li>
<li><a class="underline" href="https://buff.ly/SLsX8W3">Don't Inherit the Box Model</a></li>
<li><a class="underline" href="https://ilo.im/166gee">The Basics of Anchor Positioning</a></li>
<li><a class="underline" href="https://buff.ly/g2R3cv4">Unit Formatting with Intl in JavaScript</a></li>
</ul>
<a href="#security"><h2 class="inline" id="security">Security</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://t.co/u5Mb20g6qw">Popular Tinycolor npm Package Compromised in Supply Chain Attack</a></li>
<li><a class="underline" href="https://buff.ly/rYRH4fQ">npm Author Qix Compromised via Phishing Email in Major Supply Chain Attack</a></li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/Q5kWzIt">React Won by Default – And It's Killing Frontend Innovation</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/RkSSEM0">A complete guide to HTTP caching</a></li>
</ul>
<a href="#performance"><h2 class="inline" id="performance">Performance</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/f51yeDa">Obs.js: context-aware web performance for everyone</a></li>
<li><a class="underline" href="https://buff.ly/hPL0wwb">Making Sense of the Performance Extensibility API</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/Y1fV9wT">Mastro: the simplest website generator you’ve ever seen.</a></li>
<li><a class="underline" href="https://buff.ly/R0c9pRg">Introducing CEM Language Server</a> - The missing LSP for Web Components</li>
</ul>
<a href="#ai"><h2 class="inline" id="ai">AI</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/m00XplF">web-infra-dev/midscene: Your AI Operator for Web, Android, Automation & Testing.</a></li>
</ul>
]]></content></entry><entry><title>JSter #247: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-247"></link><id>jster-247</id><published>2025-09-03T11:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>I don't have money, but I have JavaScript.</p>
</blockquote>
<p>I have been looking into vibecoding lately. It's impressive and disappointing at the same time.</p>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://picocss.com/">Pico CSS - Minimal CSS Framework for semantic HTML</a></li>
<li><a class="underline" href="https://buff.ly/UQO74fK">trueadm/ripple: Ripple is a TypeScript UI framework for the web.</a></li>
</ul>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/LSCQ8a7">React Flow - Node-Based UIs in React</a></li>
<li><a class="underline" href="https://buff.ly/M0I9Bf7">Transformers.js - State-of-the-art Machine Learning for the Web</a></li>
<li><a class="underline" href="https://buff.ly/Me24Agt">Apache ECharts v6</a></li>
<li><a class="underline" href="https://buff.ly/wFgHFRu">jqjs - Pure-JavaScript implementation of the jq JSON query language</a></li>
<li><a class="underline" href="https://buff.ly/b7Uu04K">uhtml V5</a></li>
<li><a class="underline" href="https://buff.ly/7ljxMet">MingCute Icon - Carefully Designed Icon Library</a></li>
<li><a class="underline" href="https://unsuckjs.com/">UnsuckJS - Enhance HTML with lightweight JavaScript libraries</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/dbsXNFc">A Clock That Doesn't Snap</a></li>
<li><a class="underline" href="https://buff.ly/4BnPbdy">A gentle introduction to anchor positioning</a></li>
<li><a class="underline" href="https://buff.ly/a6DkYmB">Speeding up the JavaScript ecosystem - Semver</a></li>
<li><a class="underline" href="https://buff.ly/K3znaou">Why semantic HTML still matters</a></li>
<li><a class="underline" href="https://buff.ly/FK7HaRC">HTML popovers shown on interest should be accessible on mobile devices</a></li>
<li><a class="underline" href="https://buff.ly/CZYQKSt">React Server and Client Component Composition in Practice</a></li>
<li><a class="underline" href="https://buff.ly/Kr273bm">Composable Adopted Stylesheets</a></li>
<li><a class="underline" href="https://buff.ly/uHkwkK1">One weird trick to reduce Eleventy Image Build Times by 60%</a></li>
<li><a class="underline" href="https://buff.ly/z7R1x9l">Modern Node.js Patterns for 2025</a></li>
<li><a class="underline" href="https://buff.ly/wtVOijv">Making a faded text effect in (mostly) CSS</a></li>
<li><a class="underline" href="https://buff.ly/py4SkhP"><code>vi.mock</code> Is a Footgun: Why <code>vi.spyOn</code> Should Be Your Default</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/hBcWZSu">Oxlint Type-Aware Preview - The JavaScript Oxidation Compiler</a></li>
<li><a class="underline" href="https://penpot.app/">Penpot: The Design Tool for Design & Code Collaboration</a></li>
<li><a class="underline" href="https://buff.ly/Ap6gEpz">stacksjs/buddy-bot: 🐶 Automated & optimized dependency updates for JavaScript & TypeScript projects. Like Renovate & Dependabot.</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/pV8V58N">ghuntley/vibepad - leftpad with Claude</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/NC7gUMz">Reflections on the React community by Lee Robinson</a></li>
<li><a class="underline" href="https://buff.ly/3j3qaQB">How Do Committees Fail To Invent?</a></li>
<li><a class="underline" href="https://ilo.im/165rul">The web isn’t URL-shaped anymore</a></li>
<li><a class="underline" href="https://buff.ly/CXUqNSS">Building an Async Combobox with useSuspenseQuery() and useDeferredValue() in React</a></li>
<li><a class="underline" href="https://buff.ly/FXDPKcb">What evil martians learned from creating PostCSS</a></li>
<li><a class="underline" href="https://buff.ly/5ZMHgyO">How Ryan Built a Full-Stack React Framework 4x Faster Than Next.js With 4x More Throughput</a></li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/YU9K28j">Announcing TypeScript 5.9</a></li>
</ul>
]]></content></entry><entry><title>JSter #246: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-246"></link><id>jster-246</id><published>2025-08-04T16:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>To JavaScript or to not JavaScript</p>
</blockquote>
<p>Another month, another list of links to explore.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/pliJp6g">unnoq/mini-orpc: Simplified implementation of oRPC that includes essential features to help you understand the core concepts</a></li>
<li><a class="underline" href="https://buff.ly/wCO8CPo">kettanaito/rettime: A type-safe marriage of <code>EventTarget</code> and <code>EventEmitter</code>.</a></li>
<li><a class="underline" href="https://buff.ly/fNCE9Pn">fabian-hiller/formisch: The modular and type-safe form library for any framework</a></li>
<li><a class="underline" href="https://buff.ly/7RvnoeI">stan-smith/OpenFLOW: Make beautiful isometric infrastructure diagrams</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/84qXsmx">Layer Cake is a graphics framework for Svelte</a></li>
<li><a class="underline" href="https://buff.ly/Kat5a10">Next.js 15.4</a></li>
</ul>
<a href="#history"><h2 class="inline" id="history">History</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://ilo.im/165oqw">The many, many, many JavaScript runtimes of the last decade</a></li>
<li><a class="underline" href="https://buff.ly/7YDOhju">The History of React Through Code</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://ilo.im/165muq">It's time for modern CSS to kill the SPA</a></li>
<li><a class="underline" href="https://buff.ly/qNX8Sz8">A handy use of subgrid to enhance a simple layout</a></li>
<li><a class="underline" href="https://buff.ly/PSjqHFd">Taming JS Proxy API</a></li>
<li><a class="underline" href="https://buff.ly/Zd5dmmw">Simple live reload for developing static sites</a></li>
<li><a class="underline" href="https://buff.ly/WFit6kL">An email regex for reasonable people</a></li>
<li><a class="underline" href="https://buff.ly/e5UCtM9">Give footnotes the boot</a></li>
<li><a class="underline" href="https://buff.ly/HXkYSL3">Next.js Promise Racing</a></li>
<li><a class="underline" href="https://buff.ly/lGsOx6B">Resilient Import Maps - Better Theme Development and Beyond (2025)</a></li>
<li><a class="underline" href="https://buff.ly/FcAuovV">Tips for making regular expressions easier to use in JavaScript</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/QPtIMWh">JoviDeCroock/preact-mcp - MCP server for Preact ecosystem</a></li>
<li><a class="underline" href="https://fx.wtf/">fx – a terminal JSON viewer & processor</a></li>
<li><a class="underline" href="https://buff.ly/UnQud2V">lirantal/npq: safely install npm packages by auditing them pre-install stage</a></li>
<li><a class="underline" href="https://buff.ly/Bw7M52O">ArnaudBarre/tsl: An extension of tsc for type-aware linting</a></li>
<li><a class="underline" href="https://buff.ly/EN1Mw6l">Deno 2.4: deno bundle is back</a></li>
<li><a class="underline" href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-9/">Announcing TypeScript 5.9</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/0gMc5yX">Tapas Spent 40 Hours Writing Tests That Broke in 2 Weeks — A Confession Story</a></li>
<li><a class="underline" href="https://buff.ly/TTJKLRu">JavaScript dos and donts</a></li>
</ul>
<a href="#magazines"><h2 class="inline" id="magazines">Magazines</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/D565rMf">WebAssembly - ACM Queue</a></li>
</ul>
<a href="#security"><h2 class="inline" id="security">Security</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://bit.ly/4kQuh0P">Active Supply Chain Attack: npm Phishing Campaign Leads to Prettier Tooling Packages Compromise</a></li>
</ul>
<a href="#quiz"><h2 class="inline" id="quiz">Quiz</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jsdate.wtf/">The JavaScript Date Quiz</a></li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/NwITNO6">Why React Is No Longer the Undisputed Champion of JavaScript</a></li>
<li><a class="underline" href="https://buff.ly/1GDVRgb">Conferences, Clarity, and Smokescreens</a></li>
<li><a class="underline" href="https://buff.ly/Gw2Qsjn">The time is right for a DOM templating API</a></li>
</ul>
<a href="#components"><h2 class="inline" id="components">Components</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/qnolfEw">DavidHDev/react-bits: An open source collection of animated, interactive & fully customizable React components for building stunning, memorable websites.</a></li>
</ul>
]]></content></entry><entry><title>JSter #245: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-245"></link><id>jster-245</id><published>2025-07-03T16:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>You know, you don't JavaScript much, do you?</p>
</blockquote>
<p><a class="underline" href="https://futurefrontend.com/blog/ff25-recap/">Future Frontend 2025 was a success and we wrote a recap about the event.</a> Apart from that, it has been a pretty cool and rainy Summer in Finland so far and we were somehow lucky during the conference. If you want to participate the next one (8-9.6.26, Espoo, Finland), <a class="underline" href="https://ti.to/future-frontend/2026/with/pre-registration-for-the-conference">consider preregistering to Future Frontend 2026</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://kelpui.com/">Kelp - UI library for people who love HTML, powered by modern CSS and Web Components</a></li>
<li><a class="underline" href="https://buff.ly/02U3mjG">Jesterhearts/ratatui-wgpu: A wgpu based rendering backend for ratatui.</a></li>
<li><a class="underline" href="https://buff.ly/K5VejMf">wzhudev/reverse-linear-sync-engine: A reverse engineering of Linear's sync engine. Endorsed by its co-founder & CTO.</a></li>
<li><a class="underline" href="https://buff.ly/tFl441R">unnoq/orpc: Typesafe APIs Made Simple 🪄 h</a></li>
<li><a class="underline" href="https://buff.ly/SwjW5pP">cloudflare/workers-oauth-provider: OAuth provider library for Cloudflare Workers</a></li>
<li><a class="underline" href="https://unpic.pics/">Unpic - The best images for every framework</a></li>
<li><a class="underline" href="https://buff.ly/eSuvsRO">molefrog/wouter: 🥢 A minimalist-friendly ~2.1KB routing for React and Preact h</a></li>
<li><a class="underline" href="https://buff.ly/FhHvN8D">Shopify Storefront Web Components - Add Shopify to Any Site</a></li>
<li><a class="underline" href="https://zod.dev/v4">Introducing Zod 4 - runtime typechecker</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/r9qBMwo">LiveStore is a next-generation state management framework based on reactive SQLite and built-in sync engine.</a></li>
<li><a class="underline" href="https://buff.ly/XRSi9OM">H3 v2 beta</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/KG3YXP2">Boa - Implementing Temporal, the new date/time API for JavaScript (and Rust!)</a></li>
<li><a class="underline" href="https://buff.ly/q2sNNun">Selfish reasons for building accessible UIs</a></li>
<li><a class="underline" href="https://buff.ly/H4pJMSj">Next.js 15.1+ is unusable outside of Vercel</a></li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/d49jzZ5">JavaScript broke the web (and called it progress)</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/Wb8KkCP">Frontend test coverage with Storybook 9</a></li>
<li><a class="underline" href="https://buff.ly/SjrwE5T">Pick E2E Tests To Run Using AI Summaries</a></li>
<li><a class="underline" href="https://buff.ly/pxKF7UL">How to Choose the Right Playwright Locators</a></li>
<li><a class="underline" href="https://ilo.im/164g4x">Seamlessly Blend PHP with Node.js</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/zeNv8pT">Vite 7.0 is out!</a></li>
<li><a class="underline" href="https://buff.ly/8b2Zepw">Nx 21.2 Release: Big upgrades to Angular 20, NestJS 11, and Storybook 9</a></li>
<li><a class="underline" href="https://buff.ly/lomoU4t">Jest 30: Faster, Leaner, Better</a></li>
<li><a class="underline" href="https://buff.ly/Uc21cE0">Amaro - Node.js TypeScript wrapper</a></li>
<li><a class="underline" href="https://buff.ly/OOMBNI8">Vitest 3.2 is out!</a></li>
<li><a class="underline" href="https://buff.ly/C3Wg318">Announcing Rolldown-Vite</a></li>
<li><a class="underline" href="https://buff.ly/QjBLt65">Storybook 9 - The lean, mean component testing machine</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/u49ESPk">Nintendo Switch Homescreen recreated with CSS and a li'l bit of JS</a></li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://civet.dev/">Civet - Code more TypeScript with less syntax</a></li>
<li><a class="underline" href="https://buff.ly/15C0FyT">Announcing TypeScript Native Previews</a></li>
</ul>
]]></content></entry><entry><title>JSter #244: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-244"></link><id>jster-244</id><published>2025-06-04T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>There can be only one JavaScript</p>
</blockquote>
<p><a class="underline" href="https://futurefrontend.com/">Future Frontend conference</a> ran last week and from my perspective it was a success in many ways. I also <a class="underline" href="https://survivejs.com/research/">completed my doctoral defense successfully</a>.</p>
<p>Since there's somehow less action in the JavaScript space (or I notice less of it), I'll move to a monthly schedule with the mailing list for now. This may also be a sign of stability or shift of focus to AI/LLM.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/8g5dSIx">bholmesdev/simple-rsc: A simple React Server Components implementation that you can build yourself 🙌</a></li>
<li><a class="underline" href="https://virtuoso.dev/">React Virtuoso - Virtualization with React</a></li>
<li><a class="underline" href="https://buff.ly/qxzAVxs">luwes/little-vdom: 🍼 650B Virtual DOM - Use reactive JSX with minimal overhead</a></li>
<li><a class="underline" href="https://yak.js.org/">Next-Yak - Zero-runtime CSS-in-JS for Next.js powered by Rust</a></li>
<li><a class="underline" href="https://buff.ly/3tSYYsU">ValueMelody/melody-auth: A turnkey OAuth & authentication system, designed for both Cloudflare Workers and Node.js</a></li>
<li><a class="underline" href="https://sli.dev/">Slidev - Presentation slides for developers</a></li>
<li><a class="underline" href="https://buff.ly/vUSSVMr">tscircuit - Code Electronics with React</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/nynYmjh">Handling routes in JavaScript projects</a></li>
<li><a class="underline" href="https://buff.ly/XbkWdEF">Progressive JSON</a></li>
<li><a class="underline" href="https://buff.ly/dIkUW5t">Types as axioms, or: playing god with static types</a></li>
<li><a class="underline" href="https://buff.ly/fj7Q7du">Collaborative Text Editing without CRDTs or OT</a></li>
<li><a class="underline" href="https://ilo.im/163hyx">Polishing your typography with line height units</a></li>
<li><a class="underline" href="https://buff.ly/wgfgFFB">Untangling the LLM spaghetti with ElectricSQL</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/HMJn3B1">ESLint can now lint HTML using the html-eslint language plugin</a></li>
<li><a class="underline" href="https://buff.ly/14oDdza">formalsec/explode-js: Automated Exploit Generation for Node.js Packages</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://northflank.com/blog/why-we-ditched-next-js-and-never-looked-back">Why Northflank ditched Next.js and never looked back</a></li>
<li><a class="underline" href="https://buff.ly/TDUu738">RSC for Astro Developers</a></li>
<li><a class="underline" href="https://buff.ly/WHQTNvl">How Hardcover Fell Out of Love with Next.js and Back in Love with Ruby on Rails & Inertia.js</a></li>
<li><a class="underline" href="https://buff.ly/Tuiss4T">JavaScript, when is this?</a></li>
</ul>
<a href="#boilerplates"><h2 class="inline" id="boilerplates">Boilerplates</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/MLu7XO6">CSS boilerplate - Sensible CSS defaults for a new project</a></li>
</ul>
]]></content></entry><entry><title>JSter #243: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-243"></link><id>jster-243</id><published>2025-05-15T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>They call me Mister JavaScript!</p>
</blockquote>
<p><a class="underline" href="https://futurefrontend.com/">Future Frontend</a> takes place in a week and a half and <a class="underline" href="https://www.aalto.fi/en/events/public-defence-in-computer-science-msc-juho-vepsalainen">my defense</a> is a couple of days after that so it will be a busy week.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/U3kBmWu">LegendApp/legend-list: A high-performance list component for React Native</a></li>
<li><a class="underline" href="https://buff.ly/PS4bZOz">unnoq/orpc: Typesafe APIs Made Simple 🪄</a></li>
<li><a class="underline" href="https://tinybase.org/">TinyBase - A reactive data store & sync engine</a></li>
<li><a class="underline" href="https://buff.ly/J2mNwlY">Node.js Authentication from Lucia to Better Auth</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/y1WhwmR">Real-world uses of TypeScript’s utility types</a></li>
<li><a class="underline" href="https://buff.ly/9XYY7Ki">Faster Lazy Loading in React Router v7.5+</a></li>
</ul>
<a href="#react"><h2 class="inline" id="react">React</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/euE9qMj">Impossible Components in React</a></li>
<li><a class="underline" href="https://ift.tt/DvMqBuy">JSX Over The Wire</a></li>
<li><a class="underline" href="https://buff.ly/m3lBsOJ">Advanced React in the Wild</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://rwsdk.com/">RedwoodSDK - The React Framework for Cloudflare</a></li>
<li><a class="underline" href="https://buff.ly/ujxLKGg">LLM-first Web Framework</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/y1jmkLk">Heydon/principles-of-web-accessibility: How to approach accessible web interface design</a></li>
</ul>
]]></content></entry><entry><title>JSter #242: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-242"></link><id>jster-242</id><published>2025-05-02T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>I only JavaScript to calm my nerves.</p>
</blockquote>
<p><a class="underline" href="https://futurefrontend.com/">Future Frontend</a> (27-28.5, Espoo, Finland) is getting closer as it occurs at the end of the month. There are still some tickets left and I'm sure we'll fill our space well. There's also sauna in store.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/Xzq3fCh">danielroe/beasties: A library to inline your app's critical CSS and lazy-load the rest.</a></li>
<li><a class="underline" href="https://animejs.com/">Anime.js 4.0 - JavaScript Animation Engine</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/btNQ8iq">GSAP web animation framework is now free</a></li>
<li><a class="underline" href="https://buff.ly/FAIzDKq">Next.js 15.3 with Turbopack for builds</a></li>
<li><a class="underline" href="https://buff.ly/SUBcYiP">nordcraft - the open-source visual frontend framework</a></li>
<li><a class="underline" href="https://buff.ly/OfyawxN">mastra: The TypeScript AI agent framework. ⚡ Assistants, RAG, observability. Supports any LLM: GPT-4, Claude, Gemini, Llama.</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/kQlHGbe">A guide to destructuring in JavaScript</a></li>
<li><a class="underline" href="https://buff.ly/GOTXs44">Building Reusable Components with React 19 Actions</a></li>
</ul>
<a href="#tooling"><h2 class="inline" id="tooling">Tooling</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://heyapi.dev/">Hey API - High-quality tools for interacting with APIs</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/22Q8Pcc">React for Two Computers</a></li>
<li><a class="underline" href="https://buff.ly/PU47TcU">Simplify sharing with built-in APIs and progressive enhancement</a></li>
<li><a class="underline" href="https://buff.ly/EDtlt5O">Revealed: React's experimental animations API</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/0ANxiCI">Storybook 9 is now in beta</a></li>
<li><a class="underline" href="https://buff.ly/QnRMZza">plv8: V8 Engine Javascript Procedural Language add-on for PostgreSQL</a></li>
</ul>
]]></content></entry><entry><title>JSter #241: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-241"></link><id>jster-241</id><published>2025-04-17T13:13:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>A man without JavaScript is just a shadow of himself</p>
</blockquote>
<p>Spring is near in Finland, not much to go.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/LoBpjZz">How to Get Started with LynxJS. “Write Once, Render Anywhere”</a></li>
<li><a class="underline" href="https://v4.zod.dev/v4">Introducing Zod 4 beta</a></li>
<li><a class="underline" href="https://buff.ly/XjohDDw">ygwyg/diverce: vercel nextjs -> cloudflare workers</a></li>
<li><a class="underline" href="https://buff.ly/7kjuNvT">lukeautry/tsoa: Build OpenAPI-compliant REST APIs using TypeScript and Node</a></li>
<li><a class="underline" href="https://buff.ly/oGtpN00">Valibot v1 - The 1 kB schema library</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/ok8bLW4">CSS: Classes Seriously Sprawling</a></li>
<li><a class="underline" href="https://documenso.com/blog/why-we-moved-off-next-js">Why Documenso Moved off Next.js</a></li>
<li><a class="underline" href="https://buff.ly/tqTJRWX">You should know this before choosing Next.js</a></li>
<li><a class="underline" href="https://buff.ly/PPTfrGg">Testing design systems in 2025</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/srTAkYJ">Nue - Apps lighter than a React button</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://heyapi.dev/">Hey API - High-quality tools for interacting with APIs</a></li>
<li><a class="underline" href="https://buff.ly/aXLnU1N">Introducing vike-server</a></li>
<li><a class="underline" href="https://buff.ly/VVkHkeK">Fumadocs - Build excellent documentation with less effort using Next.js</a></li>
<li><a class="underline" href="https://buff.ly/OGNPgzW">nodejs/amaro: Node.js TypeScript wrapper</a></li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/rRvZJn7">Stop Using and Recommending React</a></li>
</ul>
]]></content></entry><entry><title>JSter #240: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-240"></link><id>jster-240</id><published>2025-04-03T10:13:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>You know, you don't JavaScript much, do you?</p>
</blockquote>
<p>It's less than two months to <a class="underline" href="https://futurefrontend.com/">Future Frontend</a> (27-28.5, Espoo, Finland). I also have my <a class="underline" href="https://www.aalto.fi/fi/tapahtumat/vaitos-tietotekniikan-alalta-msc-juho-vepsalainen">doctoral defense</a> at 30.5 so it will be a busy week for certain someone.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/k2HN7k2">Announcing TanStack Form v1</a></li>
<li><a class="underline" href="https://buff.ly/KfUkKCp">Tempo - The easiest way to work with Dates in JavaScript</a></li>
<li><a class="underline" href="https://buff.ly/gAAEm00">React Bits - Animated UI Components For React</a></li>
<li><a class="underline" href="https://buff.ly/C9vobXY">quansync-dev/quansync: "Superposition" between sync and async</a></li>
<li><a class="underline" href="https://buff.ly/4hD7DIi">unjs/unstorage: 💾 Unstorage provides an async Key-Value storage API with conventional features like multi driver mounting, watching and working with metadata, dozens of built-in drivers and a tiny core.</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/OLvZUMz">Monitoring JavaScript Bundle Size Changes in Remix</a></li>
<li><a class="underline" href="https://buff.ly/DceHYRO">Remix - Split Route Modules</a></li>
<li><a class="underline" href="https://buff.ly/93DMHzg">The Modern 2025 Web Components Tech Stack</a></li>
<li><a class="underline" href="https://buff.ly/4bh70BI">View Transition API: Single Page Apps Without a Framework</a></li>
<li><a class="underline" href="https://buff.ly/4i5pZlg">Rethinking Find-in-Page Accessibility: Making Hidden Text Work for Everyone</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://solito.dev/">Solito = React Native + Next.js</a></li>
<li><a class="underline" href="https://lynxjs.org/">Lynx - Native apps the web way</a></li>
<li><a class="underline" href="https://buff.ly/3CZyEXv">JimSchofield/minne: An ultra-light web component framework</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/rngzoaJ">Node Modules Inspector</a></li>
<li><a class="underline" href="https://buff.ly/0E6HsIu">antfu/vitest-package-exports: An Vitest util to get all exported APIs of a package and prevent unintended breaking changes.</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4ba5Qb7">The web on mobile</a></li>
</ul>
]]></content></entry><entry><title>JSter #239: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-239"></link><id>jster-239</id><published>2025-03-17T10:13:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>That'll do, JavaScript. That'll do.</p>
</blockquote>
<p>Winter is coming near its end in Finland. We likely have about one or two months of snow left before it gets too bright and warm. Fortunately curtains exist.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://xtermjs.org/">Xterm.js - Build terminals in browser</a></li>
<li><a class="underline" href="https://buff.ly/3CyOJmw">Introducing Mentoss: The fetch mocker</a></li>
<li><a class="underline" href="https://buff.ly/40PNGZ3">WebReflection/buffered-clone - A structured clone equivalent able to encode and decode as a buffer</a></li>
<li><a class="underline" href="https://buff.ly/4gdva1a">uhop/stream-json - The micro-library of Node.js stream components for creating custom JSON processing pipelines with a minimal memory footprint</a></li>
<li><a class="underline" href="https://buff.ly/4ga4spY">standard-schema: A standard interface for TypeScript schema validation libraries</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/45Y1oJm">Node-Based UIs in React - React Flow</a></li>
<li><a class="underline" href="https://buff.ly/3WSqcQB">alloc/tsc-lint: Find tsconfig files and use them for linting in parallel</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4gA5POW">The hidden cost of the internet: how your website is silently contributing to climate change (and how to fix it)</a></li>
<li><a class="underline" href="https://buff.ly/4hpoAWG">Page bloat update: How does ever-increasing page size affect your business and your users?</a></li>
<li><a class="underline" href="https://buff.ly/40p5Dfv">Build for the Web, Build on the Web, Build with the Web</a></li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/QJ2gcBm">A 10x Faster TypeScript</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3CC561K">Fast & Smooth Third-Party Web Fonts</a></li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3EaDgKj">Chrome - CSS attr() gets an upgrade</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/40vlOsF">PlasmoHQ/plasmo: 🧩 The Browser Extension Framework</a></li>
</ul>
]]></content></entry><entry><title>JSter #238: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-238"></link><id>jster-238</id><published>2025-03-04T10:13:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>I feel the need - the need for JavaScript.</p>
</blockquote>
<p>It's less than three months until <a class="underline" href="https://futurefrontend.com/">Future Frontend</a> (27-28.5, Espoo, Finland). It's not going to be a big conference (~200 people) but that's just good for the vibes.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/40oML1m">NextGlobeGen - Localize your Next.js App Router routes and content to serve your application for all users around the world</a></li>
<li><a class="underline" href="https://effector.dev/">effector - Write business logic with ease</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/QxkbU6a">LLM bots + Next.js image optimization = recipe for bankruptcy (post-mortem)</a></li>
<li><a class="underline" href="https://buff.ly/40tTG9t">JavaScript hashing speed comparison: MD5 versus SHA-256</a></li>
<li><a class="underline" href="https://buff.ly/3VDdqEE">A list of reasons why you should be using Cloudflare Workers for building your AI agent infrastructure/product/personal assistant</a></li>
</ul>
<a href="#mailing-lists"><h2 class="inline" id="mailing-lists">Mailing lists</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://thisweekinreact.com/?utm_source=jster">This week in React</a> - Join over 47.000 React developers</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4ke8S2t">Announcing TypeScript 5.8</a></li>
<li><a class="underline" href="https://buff.ly/4hHwZVq">Lightpanda - the future of browser automation (scraping, AI agents, etc.)</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4jbvcsM">Refactoring with codemods</a></li>
<li><a class="underline" href="https://buff.ly/4acT9fd">Debug your view transitions with Inspection Chamber</a></li>
<li><a class="underline" href="https://buff.ly/3Pri8Cc">1-billion row challenge with Node.js</a></li>
<li><a class="underline" href="https://buff.ly/4k8utcv">Speeding up the JavaScript ecosystem - Rust and JavaScript Plugins</a></li>
<li><a class="underline" href="https://buff.ly/4gYAxlD">Getting Real (small) With Compression Dictionaries</a></li>
<li><a class="underline" href="https://buff.ly/3ZJ9cg2">Downsize your JavaScript: Mastering Bundler Optimizations</a></li>
<li><a class="underline" href="https://buff.ly/4hFXvP6">Snapshot testing styled-components with Vitest</a></li>
</ul>
]]></content></entry><entry><title>JSter #237: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-237"></link><id>jster-237</id><published>2025-02-17T13:13:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>My JavaScript.</p>
</blockquote>
<p>Keep on coding.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://vento.js.org/">Vento - a new templating engine for Deno</a></li>
<li><a class="underline" href="https://modernjs.dev/en/">Modern.js - Inspire Creativity in Modern Web Development</a></li>
<li><a class="underline" href="https://github.com/cloudflare/workers-graphql-server">cloudflare/workers-graphql-server: 🔥Lightning-fast, globally distributed Apollo GraphQL server, deployed at the edge using Cloudflare Workers</a></li>
<li><a class="underline" href="https://openauth.js.org/">OpenAuth - Universal, standards-based auth provider</a></li>
<li><a class="underline" href="https://lea.verou.me/blog/2025/style-observer/">Style-observer: JS to observe CSS property changes, for reals</a></li>
</ul>
<a href="#toolkits"><h2 class="inline" id="toolkits">Toolkits</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jstack.app/">JStack - Full-Stack Next.js & TypeScript Toolkit</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://sonda.dev/">Sonda - Universal visualizer and analyzer for JavaScript and CSS</a></li>
<li><a class="underline" href="https://github.com/sitespeedio/browsertime">sitespeedio/browsertime: Measure and Optimize Web Performance</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jeremias.codes/2024/11/you-should-write-modern-css-today/">You should write modern CSS, today</a></li>
<li><a class="underline" href="https://www.frontendundefined.com/posts/monthly/react-state-management-reflections/">Reflections on managing state</a></li>
<li><a class="underline" href="https://calendar.perfplanet.com/2024/simple-web-performance-mentoring/">Simple Web Performance Mentoring</a></li>
<li><a class="underline" href="https://react.dev/blog/2025/02/14/sunsetting-create-react-app">Sunsetting Create React App</a></li>
<li><a class="underline" href="https://antfu.me/posts/move-on-to-esm-only">Move on to ESM-only</a></li>
<li><a class="underline" href="https://www.jovidecroock.com/blog/signals/">Preact Signals, why it matters</a></li>
</ul>
]]></content></entry><entry><title>JSter #236: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-236"></link><id>jster-236</id><published>2025-02-04T09:13:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Another day, another JavaScript post</p>
</blockquote>
<p>Not much to say. Keep on coding.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4bKnFNY">tokenami: CSS-in-JS reinvented for scalable, typesafe design systems. A modern approach to just-in-time atomic CSS using CSS variables — no bundler required.</a></li>
<li><a class="underline" href="https://buff.ly/4fzdH3L">nuqs - Type-safe search params state manager for React frameworks</a></li>
<li><a class="underline" href="https://buff.ly/3YEdHId">Starbase - SQLite on the edge</a></li>
<li><a class="underline" href="https://buff.ly/4jyMMY6">unjs/capnp-es: 🔥 TypeScript implementation of the Cap'n Proto serialization.</a></li>
<li><a class="underline" href="https://buff.ly/4jnGYjQ">Announcing ArkType 2.0</a></li>
<li><a class="underline" href="https://buff.ly/3E3JhbM">Unpic 1.0 – Image components for every framework</a></li>
<li><a class="underline" href="https://buff.ly/48IwXsB">tinylibs/picospinner: A lightweight, no dependency, pluggable CLI spinner library.</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4hLzAy5">Managing Timezones in JavaScript Apps</a></li>
<li><a class="underline" href="https://buff.ly/4jhG3Sb">Google begins requiring JavaScript for Google Search</a></li>
<li><a class="underline" href="https://buff.ly/40NLf9l">create-react-app is a zombie application</a></li>
<li><a class="underline" href="https://buff.ly/4hyWV61">How to achieve instant navigations on the web</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4jc490C">Angular 2025 Strategy</a></li>
<li><a class="underline" href="https://buff.ly/4jilHbt">Frontend frameworks, a 2024 year in review</a></li>
<li><a class="underline" href="https://buff.ly/4hcAR0g">Ember 6.0 Released</a></li>
<li><a class="underline" href="https://buff.ly/40D4ouy">Nue - A standards first web framework</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4htyGFr">Boa v0.20 - an ECMAScript engine written in Rust</a></li>
<li><a class="underline" href="https://buff.ly/4hp6weE">Node.js — Upcoming CVE for End-of-Life Node.js Versions</a></li>
<li><a class="underline" href="https://buff.ly/3Cg51kh">Tailwind CSS v4.0</a></li>
<li><a class="underline" href="https://buff.ly/3WqXJkt">Vitest 3.0 is out!</a></li>
</ul>
]]></content></entry><entry><title>JSter #235: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-235"></link><id>jster-235</id><published>2025-01-16T10:13:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Why is the JavaScript gone?</p>
</blockquote>
<p>I have managed to acquire most of the topics for <a class="underline" href="https://futurefrontend.com/">Future Frontend 2025 (27-28.5)</a>. It has been interesting to observe how AI affects the conference program as it is difficult to ignore its impact.</p>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3YRyKIO">hypermodeinc/modus: Modus: an open source, serverless framework for building intelligent functions and APIs, powered by WebAssembly</a></li>
<li><a class="underline" href="https://buff.ly/421fLxc">JavaScript Frameworks - Heading into 2025</a></li>
</ul>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4f84DTd">potree - WebGL point cloud viewer for large datasets</a></li>
<li><a class="underline" href="https://buff.ly/4704TA9">Radashi - TypeScript utility library</a></li>
<li><a class="underline" href="https://buff.ly/2LlLLF3">Vega - Visualization grammars</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3YQjaNB">drawdb-io/drawdb: Free, simple, and intuitive online database diagram editor and SQL generator.</a></li>
<li><a class="underline" href="https://buff.ly/3CcTCBr">sonda - Universal visualizer and analyzer for JavaScript and CSS bundles</a></li>
<li><a class="underline" href="https://buff.ly/3Uwl0Ax">Grasp - Search, replace, and refactor your JavaScript code based on its structure rather than its text</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4ar3lzB">The Performance Inequality Gap, 2024</a></li>
</ul>
<a href="#papers"><h2 class="inline" id="papers">Papers</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.researchgate.net/publication/388001154_Survey_of_Edge_Databases_for_the_Web">Survey of Edge Databases for the Web</a></li>
<li><a class="underline" href="https://www.researchgate.net/publication/387485302_Comparison_of_web_performance_optimization_techniques_-1990s_vs_2020s">Comparison of web performance optimization techniques -1990s vs. 2020s</a></li>
</ul>
]]></content></entry><entry><title>JSter #234: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-234"></link><id>jster-234</id><published>2025-01-06T11:13:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Happy new year JavaScripters!</p>
</blockquote>
<p>New year, new challenges. I have a small favor to ask you. I have a MSc student researching how AI is used for web development. To help out, <a class="underline" href="https://link.webropolsurveys.com/S/912CFE17C68C17B6">fill his query</a> (5-15 mins).</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3UlaKuU">Recharts - A composable charting library built on React components</a></li>
<li><a class="underline" href="https://buff.ly/3AbxTJh">Victory - React.js components for modular charting and data visualization</a></li>
<li><a class="underline" href="https://buff.ly/4gzK6Yx">capricorn86/happy-dom: A JavaScript implementation of a web browser without its graphical user interface</a></li>
<li><a class="underline" href="https://buff.ly/3XxNJWs">react-R/reactR: React for R</a></li>
<li><a class="underline" href="https://buff.ly/3T7t2PC">pg-nano: Type-safe calls to Postgres UDFs, rapid SQL-first schema development, libpq-based client library</a></li>
<li><a class="underline" href="https://buff.ly/3zUfpfY">nodejs/amaro: Node.js TypeScript wrapper</a></li>
<li><a class="underline" href="https://buff.ly/3W88zw6">WebReflection/promise: Abortable and Resolvable Promises.</a></li>
<li><a class="underline" href="https://buff.ly/4eM8cyA">errsole/errsole.js: Node.js logger with a built-in dashboard</a></li>
<li><a class="underline" href="https://react-rx.dev/">ReactRx - Hooks for combining React with Rx observables</a></li>
<li><a class="underline" href="https://buff.ly/44ZLZIW">matcha.css - Drop-in semantic styling library in pure CSS</a></li>
<li><a class="underline" href="https://base-ui.com/">Base UI - Unstyled UI components for building accessible web apps and design systems</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3zmSNop">ruvnet/drupaljs - Drupal ported to JavaScript</a></li>
<li><a class="underline" href="https://adonisjs.com/">AdonisJS - A fully featured web framework for Node.js</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4h53Raa">The unique position of Vite in our ecosystem</a></li>
<li><a class="underline" href="https://buff.ly/3Z5jrdb">A Guide To Accessible Form Validation</a></li>
<li><a class="underline" href="https://buff.ly/4e1opj6">A nice overview on how closures can bite you in React and cause memory leaks.</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3BSTxmi">Mutable Derivations in Reactivity</a></li>
<li><a class="underline" href="https://buff.ly/3Rg4Kkv">Deep Cloning Objects in JavaScript, the Modern Way</a></li>
<li><a class="underline" href="https://buff.ly/3WfCTUn">Dual Publishing ESM and CJS Modules with tsup and Are the Types Wrong?</a></li>
<li><a class="underline" href="https://buff.ly/3XJWnmb">CSS-only Custom Range Slider with Motion</a></li>
<li><a class="underline" href="https://buff.ly/3yotktU">On compliance vs readability: Generating text colors with CSS</a></li>
</ul>
]]></content></entry><entry><title>JSter #233: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-233"></link><id>jster-233</id><published>2024-12-17T08:13:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>You have no idea what I'm JavaScript of.</p>
</blockquote>
<p>This is the last JSter post of the year. See you next year.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4bCXrvT">latitude-dev/latitude: Developer-first embedded analytics</a></li>
<li><a class="underline" href="https://buff.ly/3ZwmdcR">srcl - Open source monospace component library for React</a></li>
<li><a class="underline" href="https://uaparser.dev/">UAParser.js - Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent & Client Hints data using JavaScript. Supports browser & node.js environment. Also available as jQuery plugin & TypeScript-ready development.</a></li>
<li><a class="underline" href="https://buff.ly/4ikcSxn">React v19 is now stable</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4bzPWG1">An intro to TSConfig for JavaScript Developers</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/41ww1Gm">Plain Vanilla - Simple components minimally</a></li>
<li><a class="underline" href="https://buff.ly/3ZKufAb">Spot Non-Composited Animations in Chrome DevTools</a></li>
<li><a class="underline" href="https://buff.ly/3ViYQC2">Avoiding unnecessary cleanup work in disconnectedCallback</a></li>
<li><a class="underline" href="https://buff.ly/3ZAWpxy">Understanding the Hoisting Behavior of let and const</a></li>
</ul>
<a href="#papers"><h2 class="inline" id="papers">Papers</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4ggbudF">Overview of Web Application Performance Optimization Techniques</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3KcWyzk">Impala - Very simple React and Preact static site generator</a></li>
<li><a class="underline" href="https://buff.ly/3Vkjq5f">Astro 5.0</a></li>
</ul>
<a href="#components"><h2 class="inline" id="components">Components</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3HiI7Yh">snow-fall Web Component</a></li>
</ul>
]]></content></entry><entry><title>JSter #232: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-232"></link><id>jster-232</id><published>2024-12-03T12:13:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>You’re playing it safe, just waiting for me to JavaScript up.</p>
</blockquote>
<p>Only a couple of weeks until xmas. It's a good time to pick up <a class="underline" href="https://adventofcode.com/">advent of code</a>.</p>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4fR2vzz">If Not React, Then What?</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3JJTIAU">Welcome to the world of Statecharts</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4fXFXgb">Anchor Positioning Is Disruptive</a></li>
<li><a class="underline" href="https://buff.ly/3MA9ApD">Building data-centric apps with a reactive relational database</a></li>
<li><a class="underline" href="https://buff.ly/3zPk5Bw">Rendering performant Sanity.io images</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://mastra.ai/">Mastra - The TypeScript AI framework</a></li>
<li><a class="underline" href="https://buff.ly/49bRXs5">better-auth: The most comprehensive authentication framework for TypeScript</a></li>
</ul>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3ZcS4is">JonasKruckenberg/imagetools: Load and transform images using a toolbox of custom import directives!</a></li>
<li><a class="underline" href="https://buff.ly/3V9uCl1">humanwhocodes/crosspost: A JavaScript utility for posting across multiple social networks at once</a></li>
<li><a class="underline" href="https://buff.ly/49253bk">React Router v7</a></li>
<li><a class="underline" href="https://buff.ly/3Z1yHsM">nanostores - A tiny (286 bytes) state manager for React/RN/Preact/Vue/Svelte with many atomic tree-shakable stores</a></li>
</ul>
<a href="#books"><h2 class="inline" id="books">Books</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3CMh8W6">Adactio: Journal—Going Offline is online for free</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4i7QQ0x">Vite 6.0 is out!</a></li>
<li><a class="underline" href="https://buff.ly/3ZhGm7t">Deno 2.1: Wasm Imports and other enhancements</a></li>
<li><a class="underline" href="https://buff.ly/3Z3iGCp">Announcing TypeScript 5.7</a></li>
</ul>
]]></content></entry><entry><title>JSter #231: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-231"></link><id>jster-231</id><published>2024-11-18T13:13:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript. It lives forever. Right there in your heart.</p>
</blockquote>
<p>I just finished a busy week at <a class="underline" href="https://websummit.com/">Web Summit</a> and I still have a writeup to do. Interestingly enough the event doesn't have much to do with the web although it started from those origins.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3JINxgr">Plaiceholder - Beautiful image placeholders without the hassle</a></li>
<li><a class="underline" href="https://buff.ly/3VPFFkr">brimdata/react-arborist: The complete tree view component for React</a></li>
<li><a class="underline" href="https://buff.ly/49CE9pm">ChrisShank/perfect-arrow: A custom element to declaratively define perfect arrows.</a></li>
<li><a class="underline" href="https://buff.ly/3vxxHSA">mastodon-post Web Component</a></li>
<li><a class="underline" href="https://buff.ly/4cehd22">Legend State - Performant state manager for React</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://tailus.io/">Tailus UI - an alternative to shadcn</a></li>
</ul>
<a href="#platforms"><h2 class="inline" id="platforms">Platforms</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3tbygQt">evoluhq/evolu: Local-first platform designed for privacy, ease of use, and no vendor lock-in</a></li>
</ul>
<a href="#sdks"><h2 class="inline" id="sdks">SDKs</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4hFkmup">AgentQL for fullstack developers: announcing our JavaScript SDK</a></li>
</ul>
<a href="#simulators"><h2 class="inline" id="simulators">Simulators</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3TGfeuV">CPU ALU Adder Simulator</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4a3WvR7">On popover accessibility - what the browser does and doesn't do</a></li>
<li><a class="underline" href="https://buff.ly/49YeBUi">Lossy CSS compression for fun and loss (or profit)</a></li>
<li><a class="underline" href="https://buff.ly/3C2Eu9y">Making content-aware components using CSS :has(), grid, and quantity queries</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3YSIKS3">stackblitz-labs/pkg.pr.new: Continuous (Preview) Releases for your libraries!</a></li>
<li><a class="underline" href="https://www.vlt.sh/">vlt - Develop, Run, Distribute, Discover, and Secure your Javascript Packages</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/43pCMr6">State of Node.js Performance 2023</a></li>
</ul>
]]></content></entry><entry><title>JSter #230: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-230"></link><id>jster-230</id><published>2024-11-03T17:13:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>An imaginary JavaScript?</p>
</blockquote>
<p>Winter is coming, but JavaScript ecosystem keeps on going despite the ice and snow.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://tinybase.org/">TinyBase - The reactive data store for local-first apps</a></li>
<li><a class="underline" href="https://buff.ly/4eTWvFz">rhettlunn/is-odd-ai: Why check if something is odd simply, when you can do it with ✨AI✨</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3YmCTDc">Next.js 15</a></li>
<li><a class="underline" href="https://buff.ly/4hgEBOZ">Medusa 2.0 - a composable e-commerce framework</a></li>
<li><a class="underline" href="https://buff.ly/4eYP5kr">Svelte 5 is alive</a></li>
<li><a class="underline" href="https://buff.ly/3Yu3Beb">Catalyst - a highly composable framework</a></li>
<li><a class="underline" href="https://buff.ly/408uiqc">Introducing Express v5: A New Era for Node.js Framework</a></li>
<li><a class="underline" href="https://buff.ly/3U9LUOz">The story of web framework Hono, from the creator of Hono</a></li>
<li><a class="underline" href="https://buff.ly/4exo4nV">Introducing Brisa: Full-stack Web Platform Framework 🔥</a></li>
<li><a class="underline" href="https://buff.ly/4dM2z1u">openwebf/webf: Build flutter apps with HTML/CSS and JavaScript.</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3CbgqkT">yamadashy/repopack: 📦 Repopack is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase to Large Language Models (LLMs) or other AI tools like Claude, ChatGPT, and Gemini.</a></li>
<li><a class="underline" href="https://buff.ly/32env2a">nolanlawson/fuite: A tool for finding memory leaks in web apps</a></li>
<li><a class="underline" href="https://buff.ly/3ND7kjr">EvoMaster - AI driven open source fuzzer for common web APIs (REST, GraphQL, RPC)</a></li>
<li><a class="underline" href="https://buff.ly/4eanoUM">Gitlip - Git hosted on Cloudflare</a></li>
<li><a class="underline" href="https://buff.ly/3NrHFKe">Announcing Nx 20</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3SjmBcn">Streaming HTML out of order without JavaScript</a></li>
</ul>
<a href="#theses"><h2 class="inline" id="theses">Theses</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4gSPUN8">BSc thesis - Survey of the current state of 3D production pipelines for the web</a></li>
</ul>
<a href="#boilerplates"><h2 class="inline" id="boilerplates">Boilerplates</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/48r8EiJ">DevVault - Next.js boilerplate for your next startup</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3fLI1bH">State of Frontend 2024</a></li>
<li><a class="underline" href="https://buff.ly/4h5Lv9I">A future for Web Components without the Shadow DOM</a></li>
</ul>
]]></content></entry><entry><title>JSter #229: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-229"></link><id>jster-229</id><published>2024-10-15T10:13:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>That's your JavaScript</p>
</blockquote>
<p>I recently <a class="underline" href="https://survivejs.com/blog/kaibanjs-interview/">interviewed Dariel Vila about KaibanJS for my blog</a>. KaibanJS is a framework that helps you orchestrate your AI agents. The interesting thing is that it's the first solution of its kind for JavaScript and the approach feels intuitive.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Y1lgZ7">superlucky84/state-ref: Universal state management library that can be easily integrated into UI libraries</a></li>
<li><a class="underline" href="https://buff.ly/4eDmYHb">Agentic - stdlib for TypeScript based AI agents</a></li>
<li><a class="underline" href="https://buff.ly/3zEA1t1">stacksjs/bun-spreadsheets: Easily generate spreadsheets, like CSVs and Excel files.</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4h1bkre">Announcing Deno 2</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3XEvoYM">KaibanJS - JavaScript Framework for Building Multi-Agent Systems</a></li>
<li><a class="underline" href="https://onestack.dev/">One, a React Framework</a></li>
<li><a class="underline" href="https://waku.gg/">Waku - The minimal React framework</a></li>
<li><a class="underline" href="https://buff.ly/4dsaHUO">Stricli - a framework for developing CLI applications with TypeScript</a></li>
</ul>
<a href="#polyfills"><h2 class="inline" id="polyfills">Polyfills</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4gSamxw">ungap/raw-json: JSON.rawJSON and isRawJSON ponyfill</a></li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Sxbwoy">_hyperscript - a small scripting language for the web</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3BzpKPk">Compound Components</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3NzpgLX">Web Animation recipes</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/47ODXDO">Solved by CSS Scroll-Driven Animations: hide a header when scrolling down, show it again when scrolling up</a></li>
</ul>
]]></content></entry><entry><title>JSter #228: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-228"></link><id>jster-228</id><published>2024-10-02T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>You are the JavaScript one</p>
</blockquote>
<p>We've started selling tickets for next year's Future Frontend conference. It will take place 27-28.5 at Espoo, Finland (close to Helsinki) and we'll focus on the intersection of AI, web design and development. The super early bird tickets (199€) are available until the end of October and you can <a class="underline" href="https://futurefrontend.com/blog/ff25/">learn more about Future Frontend 2025</a> at the conference website.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3BpBVOC">webpro/reveal-md: reveal.js on steroids! Get beautiful reveal.js presentations from any Markdown file</a></li>
<li><a class="underline" href="https://sli.dev/">Slidev - Presentation slides for developers</a></li>
<li><a class="underline" href="https://buff.ly/443uN3r">Panda CSS - Build modern websites using build time and type-safe CSS-in-JS</a></li>
<li><a class="underline" href="https://buff.ly/3HWxevO">decs/typeschema: 🛵 Universal adapter for TypeScript schema validation.</a></li>
<li><a class="underline" href="https://ui.full.dev/">Fulldev UI - Astro component and block library, open-source</a></li>
<li><a class="underline" href="https://buff.ly/4dcWFq3">Fastify v5 is Here!</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3I9qRoO">i18next - i18n framework for JavaScript</a></li>
<li><a class="underline" href="https://wxt.dev/">WXT - Next-gen Web Extension Framework</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3TCw5Qg">Deno 2.0 Release Candidate</a></li>
<li><a class="underline" href="https://safeql.dev/">SafeQL - Write safe SQL queries with confidence</a></li>
<li><a class="underline" href="https://buff.ly/3TzQzsW">ts-blank-space - Fast TS type eraser</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4ehsLSG">Why Varun switched from Cypress to Playwright</a></li>
<li><a class="underline" href="https://buff.ly/3OwgNJZ">Detailed React. Reconciliation, Renderers, Fiber, Virtual Tree</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Y52RMB">Partial Prerendering for Everyone with Cloudflare Workers • Solving the decision problem</a></li>
<li><a class="underline" href="https://buff.ly/3SDcyxs">Custom Elements Everywhere</a></li>
</ul>
]]></content></entry><entry><title>JSter #227: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-227"></link><id>jster-227</id><published>2024-09-17T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>With JavaScript, there's always a thing that you don't see coming.</p>
</blockquote>
<p>I have just a couple of quick things to mention: 1. there's a <a class="underline" href="https://javascript.tm/">petition to free JavaScript from its trademark</a> to allow free usage of the term 2. <a class="underline" href="https://www.youtube.com/live/7X-hnRPMths">today's Future Frontend meetup (18:00-21:00) where we built a techno will be livestreamed</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dndkit.com/">dnd kit – a modern drag and drop toolkit for React</a></li>
<li><a class="underline" href="https://buff.ly/3ZeXF9M">@pekkis/finnish-name-randomizer - Generate random Finnish names</a></li>
<li><a class="underline" href="https://buff.ly/494zahy">toad-scheduler - In-memory TypeScript scheduler</a></li>
<li><a class="underline" href="https://buff.ly/3vNg6pm">TypeSpec - Describe APIs</a></li>
<li><a class="underline" href="https://buff.ly/3w25sLm">tinybench - A simple, tiny and lightweight benchmarking library!</a></li>
<li><a class="underline" href="https://buff.ly/3uWk5Qk">electric-sql/pglite: Lightweight Postgres packaged as WASM into a TypeScript library for the browser, Node.js, Bun and Deno</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3AnZ5Va">A different way to think about TypeScript</a></li>
<li><a class="underline" href="https://buff.ly/4cYD1hn">The State of ES5 on the Web</a></li>
<li><a class="underline" href="https://buff.ly/46LjEH8">The Great npm Garbage Patch</a></li>
</ul>
<a href="#science"><h2 class="inline" id="science">Science</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4eltHF9">MSc thesis - Impact of React component libraries on developer experience - An empirical study on component libraries' styling approaches</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3XEyrAk">JavaScript RORO pattern</a></li>
<li><a class="underline" href="https://buff.ly/4d1NGYM">What is atomic state management?</a></li>
<li><a class="underline" href="https://buff.ly/3YXpJOM">The Monospace Web</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3XEvoYM">KaibanJS - AI agent framework for JavaScript</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Xci0cY">Announcing Rsbuild 1.0</a></li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4fYe4oT">Announcing TypeScript 5.6 RC</a></li>
</ul>
]]></content></entry><entry><title>JSter #226: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-226"></link><id>jster-226</id><published>2024-09-02T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>What took you so JavaScript?</p>
</blockquote>
<p>Given there's a lot of hype around AI, I took the bait and <a class="underline" href="https://survivejs.com/blog/singulatron-interview/">interviewed Janos Dobronszki</a> over at SurviveJS blog. Janos developed a tool called Singulatron that lets you run open source models easily on your own machine giving benefits, like having completely control over how your data is used.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4768Nb1">Announcing TypedSQL: Make your raw SQL queries type-safe with Prisma ORM</a></li>
<li><a class="underline" href="https://buff.ly/4e25TGo">bramus/style-observer: MutationObserver for CSS. Get notified when the computed value of a CSS property changes.</a></li>
<li><a class="underline" href="https://buff.ly/4g6t3Ns">WebSID - Commodore 64 synthesizer</a></li>
<li><a class="underline" href="https://pgtyped.dev/">PgTyped - Typesafe SQL in Typescript</a></li>
<li><a class="underline" href="https://buff.ly/4704TA9">Radashi - A collection of TypeScript utilities</a></li>
<li><a class="underline" href="https://buff.ly/3WW49aD">Instant - the realtime client-side database</a></li>
<li><a class="underline" href="https://buff.ly/4dtE7m9">Paraglide - Simple i18n for applications</a></li>
<li><a class="underline" href="https://buff.ly/4e7AVwL">Elementary Audio - A JavaScript library for digital audio signal processing</a></li>
<li><a class="underline" href="https://buff.ly/3HFSB40">kucherenko/jscpd: Copy/paste detector for programming source code.</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4dL2GLB">Announcing Rspack 1.0</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3yHauPq">An SSR Performance Showdown</a></li>
<li><a class="underline" href="https://buff.ly/3YYiUMI">Why web application size matters</a></li>
<li><a class="underline" href="https://buff.ly/3SVcUk3">Video with alpha transparency on the web</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://idx.dev/">Project IDX - Develop apps online with Google Gemini</a></li>
</ul>
<a href="#collections"><h2 class="inline" id="collections">Collections</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3YPWxJj">notthetup/awesome-webaudio: A curated list of awesome WebAudio packages and resources.</a></li>
</ul>
<a href="#fonts"><h2 class="inline" id="fonts">Fonts</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3WPTn5Z">Font with a built-in syntax highlighting</a></li>
</ul>
]]></content></entry><entry><title>JSter #225: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-225"></link><id>jster-225</id><published>2024-08-16T14:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>You're gonna need a bigger JavaScript</p>
</blockquote>
<p>Summer is close to over. There's still time to prepare for Winter.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3M21eII">WebReflection/gist-fs: A daily rate-limited way to have free storage in the wild.</a></li>
<li><a class="underline" href="https://buff.ly/3AfZQzw">Cheerio 1.0 Released, Batteries Included</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3ueVHZL">unjs/nitro: Create, build and deploy universal web servers. The open engine powering Nuxt and open to everyone.</a></li>
<li><a class="underline" href="https://buff.ly/493svUl">callstack/reassure: Performance testing companion for React and React Native</a></li>
<li><a class="underline" href="https://buff.ly/46FigWn">pakastin/nomoji: Replace emojis in text with SVG images</a></li>
<li><a class="underline" href="https://buff.ly/3tyvJ3d">MDTS - Exceptional Content & Docs with Next.js</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3BR3NWr">Memory Management in V8, garbage collection and improvements</a></li>
<li><a class="underline" href="https://buff.ly/3SjmBcn">Streaming HTML out of order without JavaScript</a></li>
<li><a class="underline" href="https://buff.ly/4dzz1oi">From Cypress to Playwright - cost, migration steps, timeline and AI tools</a></li>
<li><a class="underline" href="https://buff.ly/3LTBrlK">Async Derivations in Reactivity</a></li>
<li><a class="underline" href="https://buff.ly/47O5Xqh">Lexical state updates</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/46FgNiG">The Sneaky Costs of Scaling Serverless</a></li>
<li><a class="underline" href="https://buff.ly/3WRWFH6">A Wild Next.js Bug Chase</a></li>
<li><a class="underline" href="https://buff.ly/47dW4Bb">Concurrent React, External Stores, and Tearing</a></li>
</ul>
<a href="#sdks"><h2 class="inline" id="sdks">SDKs</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4dxk328">web-infra-dev/midscene: An AI-powered automation SDK can control the page, perform assertions, and extract data in JSON format using natural language.</a></li>
</ul>
<a href="#ui"><h2 class="inline" id="ui">UI</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3cW66hi">daisyUI — Tailwind CSS Components</a></li>
</ul>
]]></content></entry><entry><title>JSter #224: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-224"></link><id>jster-224</id><published>2024-08-01T09:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Round up the usual JavaScripts!</p>
</blockquote>
<p>We produced <a class="underline" href="https://www.youtube.com/watch?v=UNWLX6QI3ow">a mood video of Future Frontend 2024</a> in case you want to see what happened at the recent event.</p>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3ykSXvY">Garbage collection and closures</a></li>
<li><a class="underline" href="https://buff.ly/3zRfIrV">Styling Tables the Modern CSS Way</a></li>
<li><a class="underline" href="https://buff.ly/3QUglHd">Handling Time Zone in JavaScript</a></li>
</ul>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://maplibre.org/">MapLibre - performant open source mapping library</a></li>
<li><a class="underline" href="https://buff.ly/45Z20OE">lxsmnsyc/seroval: Stringify JS values</a></li>
<li><a class="underline" href="https://buff.ly/4dgJaGj">@lazarv/react-server - The easiest way to build React apps with server-side rendering</a></li>
<li><a class="underline" href="https://buff.ly/3W9MRXd">mjackson/fetch-super-headers: A drop-in replacement for JavaScript <code>Headers</code> with type-safe access</a></li>
<li><a class="underline" href="https://buff.ly/3zN1JU3">neg4n/d3-no-dom: 📊 Fully use D3.js (Data Driven Documents) in environments without DOM. Perfect for serverless e.g. Vercel Functions</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3y5mJF3">An update on invokers: Invoker commands in HTML</a></li>
<li><a class="underline" href="https://buff.ly/3YgOm8I">Benchmarking AWS Lambda Cold Starts Across JavaScript Runtimes</a></li>
<li><a class="underline" href="https://buff.ly/3WCEvbZ">A cleaner node modules ecosystem</a></li>
</ul>
<a href="#shims"><h2 class="inline" id="shims">Shims</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3WDHbq8">invoker shim for HTML command and commandfor</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/2JSmWm0">Wasp - Develop full stack apps faster</a></li>
<li><a class="underline" href="https://buff.ly/3Wrch47">Add code, not dependencies, with Sly CLi</a></li>
<li><a class="underline" href="https://buff.ly/4fd1lOY">thepassle/module-replacements-codemods</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3PwRrNg">Hono - Ultrafast web framework</a></li>
</ul>
]]></content></entry><entry><title>JSter #223: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-223"></link><id>jster-223</id><published>2024-07-16T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Hey kid, say hello to your JavaScript for me.</p>
</blockquote>
<p>There's nothing specific to announce. Carry on.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4646Fy1">edgejs - Simple templating engine for the edge</a></li>
<li><a class="underline" href="https://buff.ly/40lyyk0">WebReflection/linkedom: A triple-linked lists based DOM implementation.</a></li>
<li><a class="underline" href="https://buff.ly/3S3jyUU">LittleJS - The Tiny Fast JavaScript Game Engine</a></li>
<li><a class="underline" href="https://buff.ly/4bNF73a">neotraverse - a light alternative to traverse</a></li>
<li><a class="underline" href="https://buff.ly/2GCJX9D">Typesense - Fast, typo-tolerant open source search engine</a></li>
<li><a class="underline" href="https://buff.ly/3tXnmht">lucia-auth/lucia: Authentication, simple and clean</a></li>
<li><a class="underline" href="https://buff.ly/3wJmHxP">AutoAnimate - Add motion to your apps with a single line of code</a></li>
<li><a class="underline" href="https://buff.ly/3XGVpHz">WebReflection/sabayon: SharedArrayBuffer always on.</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://webvm.io/">WebVM - Linux virtualization in WebAssembly</a></li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3zgdwtJ">A Rant about Front-end Development</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/45WAbrg">Speeding up the JavaScript ecosystem - Isolated Declarations</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3W1zsSd">5 Misconceptions about React Server Components</a></li>
<li><a class="underline" href="https://buff.ly/3XNDbEu">Great animations</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3L4wpCF">javaScriptKampala/z-js: The literally low overhead js framework</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://makojs.dev/">Mako - An extremely fast, production-grade web bundler based on Rust</a></li>
</ul>
]]></content></entry><entry><title>JSter #222: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-222"></link><id>jster-222</id><published>2024-07-02T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>It's a JavaScript.</p>
</blockquote>
<p>I set up <a class="underline" href="https://www.youtube.com/playlist?list=PLKGgD1M40S4icv0bsHGriGw8pI9YjDZtk">a playlist based on Future Frontend 2024 content</a>. There's also a <a class="underline" href="https://www.flickr.com/photos/react-finland/albums/72177720318407680/">photo album</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3S4vsiu">Announcing TanStack Query v5</a></li>
<li><a class="underline" href="https://buff.ly/45HRcVV">stan-js - Fast and elegant state management solution with minimal configuration for your React, React Native and even vanilla-js apps</a></li>
<li><a class="underline" href="https://buff.ly/2Yzr15u">Shoelace: A forward-thinking library of web components.</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/474cqNc">Node.js Mobile</a></li>
<li><a class="underline" href="https://buff.ly/39uojQj">Payload CMS - Node & React TypeScript Headless CMS</a></li>
<li><a class="underline" href="https://buff.ly/3PNal14">oxc - A suite of high-performance tools for JavaScript and TypeScript written in Rust</a></li>
<li><a class="underline" href="https://buff.ly/3KLajVA">React Internals Explorer - easily see how React works</a></li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/443uN3r">Panda CSS - Build modern websites using build time and type-safe CSS-in-JS</a></li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Qpxvfv">Runtype Benchmarks for TypeScript</a></li>
<li><a class="underline" href="https://buff.ly/3RP7SpQ">tsperf - TypeScript performance made easy</a></li>
<li><a class="underline" href="https://buff.ly/45GfdwM">Announcing TypeScript 5.5</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3tvgO9J">Thinking Locally with Signals</a></li>
<li><a class="underline" href="https://buff.ly/46tbH8y">Skip links on ikea</a></li>
<li><a class="underline" href="https://buff.ly/2xhTlZe">Node module size: See how Adam reduced it by 90%</a></li>
</ul>
]]></content></entry><entry><title>JSter #221: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-221"></link><id>jster-221</id><published>2024-06-18T16:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Think big, think JavaScript</p>
</blockquote>
<p><a class="underline" href="https://futurefrontend.com/">Future Frontend 2024</a> is a wrap and I hope to edit the final videos during the next weeks as I receive the material.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/2I5wVkw">Editor.js - Free block-style editor with a universal JSON output</a></li>
<li><a class="underline" href="https://buff.ly/4ednhJb">WebReflection/buffer-to-base64: A base64 encoder/decoder with gzip or deflate abilities.</a></li>
<li><a class="underline" href="https://buff.ly/4cbte7G">jakebailey/every-ts: A utility to build and bisect any version of TypeScript</a></li>
<li><a class="underline" href="https://buff.ly/45ceJy9">ascorbic/cdn-cache-control - Easy cache header handling</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3wR0deN">Trigger - The open source background jobs framework</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3S3MrRz">TanStack/config: Configuration and tools for publishing and maintaining high-quality JavaScript packages</a></li>
<li><a class="underline" href="https://buff.ly/4epTNHX">ortoni-report - Better Playwright reports</a></li>
<li><a class="underline" href="https://buff.ly/32PkPns">lukeautry/tsoa: Build OpenAPI-compliant REST APIs using TypeScript and Node</a></li>
<li><a class="underline" href="https://buff.ly/46arsAK">RecipeUI - Open source alternative to Postman</a></li>
<li><a class="underline" href="https://buff.ly/4aTZ1ZE">Turborepo 2.0 - Monorepos go brr</a></li>
</ul>
<a href="#runtimes"><h2 class="inline" id="runtimes">Runtimes</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3th9r5s">Redfire75369/spiderfire: JavaScript Runtime built with Mozilla's SpiderMonkey Engine</a></li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4aM7Qoo">Announcing TypeScript 5.5 RC</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4aMkQKG">Demonstration of a simple Lorenz attractor that emits SVG</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4elkFsX">Why @mjhbessey is over with GraphQL after six years of using it</a></li>
<li><a class="underline" href="https://buff.ly/3Q2c5VR">Simplify sharing with built-in APIs and progressive enhancement</a></li>
</ul>
]]></content></entry><entry><title>JSter #220: Tools and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-220"></link><id>jster-220</id><published>2024-06-03T09:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>It's supposed to be JavaScript.</p>
</blockquote>
<p><a class="underline" href="https://futurefrontend.com/">Future Frontend 2024</a> conference is getting close (13-14.6). We'll produce a live stream and it will be announced through our <a class="underline" href="https://x.com/future_frontend">X account</a> in a week or so.</p>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3MKKKGl">yoavbls/pretty-ts-errors: 🔵 Make TypeScript errors prettier and human-readable in VSCode 🎀</a></li>
<li><a class="underline" href="https://buff.ly/3KnGp9H">yanthomasdev/lunaria: The missing localization management toolchain for open-source projects</a></li>
<li><a class="underline" href="https://buff.ly/3yB0OFD">Rustify your JavaScript tooling</a></li>
<li><a class="underline" href="https://buff.ly/3rsPCYq">recheck - The trustworthy ReDoS checker</a></li>
<li><a class="underline" href="https://buff.ly/3PwYl3D">npmgraph - Render dependency graph of a package</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4572umi">Practical barrel file guide for library authors</a></li>
<li><a class="underline" href="https://buff.ly/3UMHzAn">Speeding up the JavaScript ecosystem - Server Side JSX</a></li>
<li><a class="underline" href="https://buff.ly/3ULQbY5">Unblocking the Main Thread: Refactoring from Sync to Async in JavaScript</a></li>
<li><a class="underline" href="https://survivejs.com/blog/pyramid-of-doom/">JavaScript patterns - Pyramid of doom</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4aHNm04">Qlock - A JavaScript Quine Clock</a></li>
</ul>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3RExx4b">aidenybai/pattycake: Zero-runtime pattern matching</a></li>
<li><a class="underline" href="https://buff.ly/3wIsOXp">ofcoerce - Lightweight type coercion library</a></li>
<li><a class="underline" href="https://buff.ly/2sNTBQs">Swiper - The Most Modern Mobile Touch Slider</a></li>
<li><a class="underline" href="https://buff.ly/4dP6VWY">Introducing PigmentCSS: the next generation of CSS-in-JS</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3ZtaB9W">Orama - A resilient, innovative and open-source search experience to achieve seamless integration with your infrastructure and data</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3V7Teeu">Quantifying the Impact of Styled Components on Server Response Times</a></li>
<li><a class="underline" href="https://buff.ly/3RqzcdG">The Design System Ecosystem</a></li>
<li><a class="underline" href="https://buff.ly/3wt0J6h">The surprising cost of using image through CSS background property</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3K9DmSa">SolidStart 1.0: The Shape of Frameworks to Come</a></li>
<li><a class="underline" href="https://buff.ly/3WHDkZA">Byte - Simplify your API development with a minimal, performant JavaScript framework</a></li>
</ul>
]]></content></entry><entry><title>JSter #219: Frameworks and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-219"></link><id>jster-219</id><published>2024-05-16T09:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>What are you prepared to JavaScript?</p>
</blockquote>
<p>I recently completed the rewrite of <a class="underline" href="https://survivejs.com/">survivejs.com</a> although I still have to write a blog post describing the technical bits behind it as quite a lot of development effort went into the site. As <a class="underline" href="https://futurefrontend.com/">Future Frontend</a> (13-14.6, Helsinki) conference takes place in a month, that has been keeping me busy.</p>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3IOlGel">Gracile - A thin, full-stack, web framework</a></li>
<li><a class="underline" href="https://buff.ly/3sVhEMw">hex2f/marz: 🚀 A Fast and Lightweight React Server Components Framework for Bun</a></li>
<li><a class="underline" href="https://vanjs.org/">VanJS: A 1.0kB Grab 'n Go Reactive UI Framework without React/JSX</a></li>
<li><a class="underline" href="https://buff.ly/3UL8Sw9">DML - Object oriented web programming framework</a></li>
<li><a class="underline" href="https://buff.ly/3UB424l">Supercharge — an open-source Node.js framework, not just a web framework</a></li>
</ul>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/45Z20OE">lxsmnsyc/seroval: Stringify JS values</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4dHueSl">Athena Crisis, a game implemented in JavaScript, is now open source</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3ELxDzx">nksaraf/vinxi: The JavaScript Server SDK</a></li>
<li><a class="underline" href="https://buff.ly/46eJDFX">API Extractor helps you develop better TypeScript projects</a></li>
<li><a class="underline" href="https://buff.ly/3RmNVGC">tshy - TypeScript hybridizer</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3QBpBzj">Natural sorting of strings containing numbers</a></li>
<li><a class="underline" href="https://buff.ly/3Wrk7eq">New alternatives to innerHTML</a></li>
<li><a class="underline" href="https://buff.ly/3Wu5nvi">How Omri saved 16% of their bundle size using a Babel plugin</a></li>
<li><a class="underline" href="https://buff.ly/3ZkKr9C">Islands & Server Components & Resumability, Oh My!</a></li>
<li><a class="underline" href="https://buff.ly/4a1sIaD">Printing music with CSS Grid</a></li>
</ul>
]]></content></entry><entry><title>JSter #218: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-218"></link><id>jster-218</id><published>2024-05-01T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>All JavaScript is good JavaScript.</p>
</blockquote>
<p>I'm close to done with my <a class="underline" href="https://survivejs.com">SurviveJS</a> rework. The new site will have more content while being much lighter and faster to compile so that's all good.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://typespec.io/">TypeSpec - Describe your APIs concisely and more</a></li>
<li><a class="underline" href="https://buff.ly/4d8s2Dn">React 19 Beta</a></li>
<li><a class="underline" href="https://buff.ly/4b6aVQQ">json-editor - JSON Schema Based Editor</a></li>
<li><a class="underline" href="https://buff.ly/49P5CEh">rjsf-team/react-jsonschema-form: A React component for building Web forms from JSON Schema.</a></li>
<li><a class="underline" href="https://buff.ly/3JgvNZq">Introducing Declarative Routing for NextJS and React-Router</a></li>
<li><a class="underline" href="https://buff.ly/448qaWZ">tatethurston/nextjs-routes: Type safe routing for Next.js</a></li>
<li><a class="underline" href="https://www.loro.dev/">Loro – Reimagine state management with CRDTs</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4di8HPV">Default exports in CommonJS libraries</a></li>
<li><a class="underline" href="https://buff.ly/3JrSqul">Are Inline Styles Faster than CSS?</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4a17Dgy">VisBug v0.4.0 release notes</a></li>
<li><a class="underline" href="https://buff.ly/49Pkano">Kuto, a reverse JS bundler</a></li>
<li><a class="underline" href="https://buff.ly/3TJ5bFi">ESLint v9.0.0 released</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3TNMz7n">Sam's Experience with Qwik After 6 Months of Development</a></li>
<li><a class="underline" href="https://buff.ly/3vWfnm8">Deep Dive into Rspack & Webpack Tree Shaking</a></li>
<li><a class="underline" href="https://www.mux.com/blog/what-is-a-video-playback-engine">Why does my video player embed load so much JavaScript?</a></li>
</ul>
]]></content></entry><entry><title>JSter #217: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-217"></link><id>jster-217</id><published>2024-04-15T14:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>This is JavaScript!</p>
</blockquote>
<p>I've working on a new revision of <a class="underline" href="https://survivejs.com/">SurviveJS website</a> based on <a class="underline" href="https://gustwind.js.org/">Gustwind</a>. This type of work is good in testing framework ideas and fixing oversights in the original design and I think the end result will be worth the effort.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3JblQN0">xstate/store Simple event-based state management</a></li>
<li><a class="underline" href="https://buff.ly/3Q1bxii">aralroca/diff-dom-streaming - HTML Streaming Over the Wire! 🥳 Diff DOM algorithm with streaming to make only the necessary modifications, insertions and deletions between a DOM node and an HTML stream reader</a></li>
<li><a class="underline" href="https://buff.ly/3TL4o6W">openapi-zod-client - From openapi to Zod types</a></li>
<li><a class="underline" href="https://buff.ly/3rna49Y">Reasonable Colors</a></li>
<li><a class="underline" href="https://buff.ly/3J6MfM8">Superstate - Typesafe statecharts library</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3W1lTTd">How JSR was built</a></li>
</ul>
<a href="#editors"><h2 class="inline" id="editors">Editors</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3TYIqgX">deco - Open-Source web editor based on Preact, Tailwind and TypeScript</a></li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3TLkA84">woltsu/tsynamo: Type-friendly TypeScript DynamoDB query builder!</a></li>
<li><a class="underline" href="https://arktype.io/">ArkType - TypeScript's 1:1 validator, optimized from editor to runtime</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3VTzagx">cloudflare/orange - Build your own Zoom with CloudFlare Calls and WebRTC</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/48rqmmb">ElysiaJS - Ergonomic Framework for Humans</a></li>
</ul>
<a href="#react"><h2 class="inline" id="react">React</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3TK888D">MistCSS - Write React components using CSS only</a></li>
</ul>
<a href="#components"><h2 class="inline" id="components">Components</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3vF6IEv">Cally: small, feature-rich calendar components</a></li>
</ul>
]]></content></entry><entry><title>JSter #216: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-216"></link><id>jster-216</id><published>2024-04-02T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Think big, think JavaScript, never show any sign of weakness</p>
</blockquote>
<p>Spring is literally around the corner in Finland. Just a month to go till the snow is mostly gone!</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3YZQEr7">WebReflection/qsa-observer: handle elements lifecycle through CSS selectors</a></li>
<li><a class="underline" href="https://buff.ly/3w1PD4L">fabiospampinato/flimsy: A single-file <1kb min+gzip simplified implementation of the reactive core of Solid, optimized for clean code.</a></li>
<li><a class="underline" href="https://buff.ly/489B8x1">nairihar/threadshare: Simplify inter-thread data sharing in Node.js worker_threads with ThreadShare.</a></li>
<li><a class="underline" href="https://buff.ly/3VH1iTU">atlassian/pragmatic-drag-and-drop: Fast drag and drop for any experience on any tech stack</a></li>
<li><a class="underline" href="https://buff.ly/3TyTaCe">codepoint-iterator - A utility converting an iterable of UTF-8 filled Uint8Array's into Unicode code points</a></li>
<li><a class="underline" href="https://buff.ly/3SATlwL">unadlib/mutative: Efficient immutable updates, 2-6x faster than naive handcrafted reducer, and more than 10x faster than Immer.</a></li>
<li><a class="underline" href="https://buff.ly/48R67Nr">path-unified - Isomorphic path utilities for browser and server</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3VEhkOt">Optimization techniques for JavaScript</a></li>
<li><a class="underline" href="https://buff.ly/3IQQUBp">Self unregistering service workers</a></li>
<li><a class="underline" href="https://buff.ly/3OoT0vw">Nexar - Application architecture for Next.js App Router apps</a></li>
<li><a class="underline" href="https://buff.ly/4cnoNY4">require(esm) in Node.js</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3J0Orom">Angular and Wiz Are Better Together</a></li>
<li><a class="underline" href="https://firebolt.dev/">Firebolt - A new full-stack framework for React</a></li>
<li><a class="underline" href="https://buff.ly/3OqWk9E">SemanticComputing/sampo-ui: Sampo-UI – A framework for building user interfaces for semantic portals</a></li>
<li><a class="underline" href="https://buff.ly/48VD2Au">WinterJS 1.0 - The fastest JavaScript server</a></li>
<li><a class="underline" href="https://buff.ly/3T9Vn7a">Announcing AnalogJS 1.0 for Angular 🚀</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/490kH65">Deno in 2023</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jsr.io/">JSR: the JavaScript Registry - a superset of npm built with modern development flows in mind</a></li>
</ul>
]]></content></entry><entry><title>JSter #215: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-215"></link><id>jster-215</id><published>2024-03-16T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>I am become JavaScript.</p>
</blockquote>
<p>There's nothing specific to announce although I have been working on something potentially interesting. Keep on coding.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4ab7ZC2">jantimon/next-yak: a streamlined CSS-in-JS solution tailor-made for Next.js, seamlessly combining the expressive power of styled-components syntax with efficient build-time extraction and minimal runtime footprint</a></li>
<li><a class="underline" href="https://www.npmjs.com/package/path-unified">path-unified: Isomorphic path utilities</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3TCyMSg">react-geiger - Geiger meter but for React performance</a></li>
<li><a class="underline" href="https://buff.ly/4c88VZG">thepassle/module-graph - Visualize the module graph of your application easily through JavaScript</a></li>
<li><a class="underline" href="https://buff.ly/3wCEjz4">Cypress Vs SafeTest</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3IAqT9o">Comparison of JavaScript runtime performance in server usage</a></li>
<li><a class="underline" href="https://buff.ly/3ImYhjR">Case Study: 2023 refresh of lynnandtonic.com</a></li>
<li><a class="underline" href="https://buff.ly/42Zlz95">Why React Server Components Are Breaking Builds to Win Tomorrow</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3IBKIx4">How to read files quickly in JavaScript?</a></li>
<li><a class="underline" href="https://buff.ly/49CekGE">Simple RSC With Vinxi</a></li>
<li><a class="underline" href="https://buff.ly/3wKig9Q">Challenges in developing for multiple runtimes - case Oak</a></li>
<li><a class="underline" href="https://buff.ly/49IqWfq">No Outer margin</a></li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3TnOFfa">Announcing TypeScript 5.4 RC</a></li>
</ul>
]]></content></entry><entry><title>JSter #214: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-214"></link><id>jster-214</id><published>2024-03-04T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>It seems we serve the same JavaScript.</p>
</blockquote>
<p>There's nothing specific to announce this time around. Keep doing good work.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/49TX539">input-otp - Simple OTP entry component for React</a></li>
<li><a class="underline" href="https://buff.ly/3Img9M0">capo.js: get your ﹤𝚑𝚎𝚊𝚍﹥ in order</a></li>
<li><a class="underline" href="https://buff.ly/3uR9iH4">Fuse.js - Powerful, lightweight fuzzy-search library, with zero dependencies</a></li>
<li><a class="underline" href="https://buff.ly/3wuW1Vb">pragmatic-drag-and-drop - Tiny library for dnd</a></li>
<li><a class="underline" href="https://buff.ly/3UO1tww">WebReflection/literal-map - A Map that acts like an object literal to better reflect Python dictionaries in JS</a></li>
<li><a class="underline" href="https://buff.ly/3wwp4rb">facebook/react-strict-dom: React Strict DOM (RSD) is a subset of React DOM, imperative DOM, and CSS that supports web and native targets</a></li>
<li><a class="underline" href="https://buff.ly/3T3Slm4">htmz - a low power tool for html</a></li>
<li><a class="underline" href="https://buff.ly/3IhVg4B">QwikDev/pwa: Turn your Qwik Application into an offline compatible PWA</a></li>
<li><a class="underline" href="https://buff.ly/49wBlKC">WebReflection/partial: Partial function / Class application.</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4bWWVd9">Building a better-sqlite3 compatible JavaScript package with Rust</a></li>
<li><a class="underline" href="https://buff.ly/49BkTc6">JavaScript Bloat in 2024</a></li>
<li><a class="underline" href="https://buff.ly/3SxWo8y">The next evolution of serverless is stateful • Solving the decision problem</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3OVuQsW">mcollina/borp: node:test runner wrapper with TypeScript support</a></li>
<li><a class="underline" href="https://buff.ly/49aEXSI">Introducing SafeTest: A Novel Approach to Front End Testing</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3T0bVyy">random() distribution visualizer</a></li>
<li><a class="underline" href="https://buff.ly/3SziY0M">Demonstration code - SQLite/Turso combined with React</a></li>
</ul>
]]></content></entry><entry><title>JSter #213: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-213"></link><id>jster-213</id><published>2024-02-17T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>You don't know what JavaScript is. It's a relationship.</p>
</blockquote>
<p>There's nothing special to announce this time. Carry on and keep scripting.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3wkpNvJ">WebReflection/fetch: A fetch with Response abilities.</a></li>
<li><a class="underline" href="https://buff.ly/4bz5BX9">formkit/tempo: 📆 Parse, format, manipulate, and internationalize dates and times in JavaScript and TypeScript.</a></li>
<li><a class="underline" href="https://buff.ly/3SSeLGX">awslabs/llrt: LLRT (Low Latency Runtime) is a lightweight JavaScript runtime designed to address the growing demand for fast and efficient Serverless applications.</a></li>
<li><a class="underline" href="https://buff.ly/42xFg7x">jQuery 4.0.0 is available in beta</a></li>
</ul>
<a href="#react"><h2 class="inline" id="react">React</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/49G7xLP">What is coming for React</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/48hdWvR">nelipuu/zbind: Zig-TypeScript binding generator</a></li>
<li><a class="underline" href="https://buff.ly/49sM6xn">dax - Cross-platform shell tools for Node.js</a></li>
<li><a class="underline" href="https://buff.ly/42s1OH1">Storybook 8 Beta</a></li>
<li><a class="underline" href="https://buff.ly/482Qq5p">Simple stack 🌱 - Stack of tools to simplify Astro workflow</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3HVOWPL">Hono - ultrafast framework for the edge has reached 4.0</a></li>
<li><a class="underline" href="https://buff.ly/3SCMLpp">Towards Qwik 2.0: Lighter, Faster, Better</a></li>
<li><a class="underline" href="https://buff.ly/3Ovi3gw">Vocs – React Documentation Framework</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3SMq4jO">Hot Module Replacement is Easy</a></li>
</ul>
]]></content></entry><entry><title>JSter #212: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-212"></link><id>jster-212</id><published>2024-02-04T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript does not come without a tax of effort.</p>
</blockquote>
<p>One of my MSc students is doing <a class="underline" href="https://link.webropolsurveys.com/S/C8470021A862B4BE">a survey related to the adoption of JavaScript frameworks</a>. It would be very helpful if you could fill in the form as that will help to generate useful insights.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/49bOGIJ">edmundhung/conform: A type-safe form validation library utilizing web fundamentals to progressively enhance HTML Forms with full support for server frameworks like Remix and Next.js.</a></li>
<li><a class="underline" href="https://buff.ly/3HFMf4I">tinypool - A minimal and tiny Node.js Worker Thread Pool implementation (38KB)</a></li>
<li><a class="underline" href="https://buff.ly/3Sz0Khf">WebReflection/loop-once: A safer loop for sync or async unique use cases.</a></li>
<li><a class="underline" href="https://buff.ly/3YNh4MF">Faire/mjml-react: React component library to generate the HTML emails on the fly</a></li>
<li><a class="underline" href="https://buff.ly/47t0IM6">isographlabs/isograph: Build React apps powered by GraphQL data</a></li>
<li><a class="underline" href="https://buff.ly/3vv4szk">43081j/hanbi: A small javascript library for stubbing and spying on methods/functions</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3YV4bAe">ExpressoTS - Node.js Framework</a></li>
</ul>
<a href="#components"><h2 class="inline" id="components">Components</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/48tL7wY">Wedges — Open-source UI components for React</a></li>
</ul>
<a href="#security"><h2 class="inline" id="security">Security</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/48YcM9n">Investigating a major security vulnerability with Clerk's Next.js integration</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/48RVjj5">Next.js App Router migration: the good, bad, and ugly</a></li>
<li><a class="underline" href="https://buff.ly/4b9hgMb">TypeScript Might Not Be Your God: Case Study of Migration from TS to JSDoc</a></li>
<li><a class="underline" href="https://buff.ly/4206Ieb">Passle overengineered his blog</a></li>
<li><a class="underline" href="https://buff.ly/4aRE96E">Advancing Interaction to Next Paint</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3RURNLy">Ladle - Storybook-like tool for Vite</a></li>
<li><a class="underline" href="https://buff.ly/3Sj776K">SukkaW/nolyfill: Speed up your package installation process, reduce your disk usage, and extend the lifespan of your precious SSD.</a></li>
<li><a class="underline" href="https://buff.ly/494Ujrz">Vinxi - JavaScript Server SDK to build full stack apps and frameworks with your own opinions</a></li>
<li><a class="underline" href="https://buff.ly/47GIzu7">Counterscale: Web Analytics you can host yourself</a></li>
<li><a class="underline" href="https://buff.ly/48BLFAP">gql.tada teaches TypeScript to GraphQL</a></li>
<li><a class="underline" href="https://buff.ly/45lUIV4">TypeSchema - Universal adapter for TypeScript schema validation</a></li>
<li><a class="underline" href="https://buff.ly/3OxyAjn">Codemod Studio</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3u6X3WD">43081j/ecosystem-cleanup: A place to keep track of ongoing efforts to clean up the JS ecosystem</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4be36Ju">Fix Next.js routing to have full type-safety</a></li>
<li><a class="underline" href="https://buff.ly/45Or4aU">Going Build-less With Import Maps</a></li>
<li><a class="underline" href="https://buff.ly/48WEHWR">The future of React.use and React.useMemo - a powerful alternative to context selectors</a></li>
<li><a class="underline" href="https://buff.ly/3EbwIrR">useMemo overdose</a></li>
<li><a class="underline" href="https://buff.ly/47uVX5K">Shadow Themes with Web Components</a></li>
<li><a class="underline" href="https://buff.ly/41Le7Oi">Sidenotes In Web Design</a></li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3ydmFhD">hyperscript - An easy & approachable language for modern web front-ends</a></li>
</ul>
<a href="#fonts"><h2 class="inline" id="fonts">Fonts</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.monolisa.dev/?ref=survivejs">MonoLisa</a> - You can get additional 15% off from this font for coders by applying the coupon <code>AFFILIATED15</code> during the checkout.</li>
</ul>
]]></content></entry><entry><title>JSter #211: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-211"></link><id>jster-211</id><published>2024-01-16T13:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>You don't know what JavaScript is. It's a relationship.</p>
</blockquote>
<p>Here's a quick injection of JavaScript libraries and related injection. If you are within the region, we'll organize <a class="underline" href="https://meetabit.com/events/future-frontend-january-2024/">the first Future Frontend meetup</a> 31.1 at Helsinki.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/45lUIV4">TypeSchema - Universal adapter for TypeScript schema validation</a></li>
<li><a class="underline" href="https://buff.ly/3YNh4MF">Faire/mjml-react: React component library to generate the HTML emails on the fly</a></li>
<li><a class="underline" href="https://buff.ly/48tL7wY">Wedges — Open-source UI components for React</a></li>
<li><a class="underline" href="https://buff.ly/47t0IM6">isographlabs/isograph: Build React apps powered by GraphQL data</a></li>
<li><a class="underline" href="https://buff.ly/3vv4szk">43081j/hanbi: A small javascript library for stubbing and spying on methods/functions</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4206Ieb">Passle overengineered his blog</a></li>
<li><a class="underline" href="https://buff.ly/47uVX5K">Shadow Themes with Web Components</a></li>
<li><a class="underline" href="https://buff.ly/41Le7Oi">Sidenotes In Web Design</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4aRE96E">Advancing Interaction to Next Paint</a></li>
<li><a class="underline" href="https://t.co/kDbimDqqTE">When "Everything" Becomes Too Much: The npm Package Chaos of 2024</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3OxyAjn">Codemod Studio</a></li>
</ul>
]]></content></entry><entry><title>JSter #210: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-210"></link><id>jster-210</id><published>2024-01-05T13:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript doesn't mind cold.</p>
</blockquote>
<p>New year, new cold records.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Os6h5K">trekhleb/micrograd-ts: 🤖 A TypeScript version of karpathy/micrograd — a tiny scalar-valued autograd engine and a neural net on top of it</a></li>
<li><a class="underline" href="https://buff.ly/3RS38zc">gregberge/twc: Create reusable React + Tailwind components in one line</a></li>
<li><a class="underline" href="https://buff.ly/3tpTmeg">tr1ckydev/webview-bun: Bun bindings for webview, a tiny library for creating web-based desktop GUIs.</a></li>
<li><a class="underline" href="https://buff.ly/3GOZgIW">date-fns v3 is available now</a></li>
<li><a class="underline" href="https://buff.ly/3vPWZsH">WebGPU — All of the cores, none of the canvas</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3GW9Rlu">CableReady - Create complex apps driven by a server</a></li>
<li><a class="underline" href="https://buff.ly/481Ymon">Announcing SvelteKit 2</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3KAVpBk">Sending UI over APIs</a></li>
<li><a class="underline" href="kurtextrem.dehttps://buff.ly/3D7dsLA">Breaking Up with SVG-in-JS in 2023</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/4519pg6">Mark's Experience on Modernizing Packages to ESM</a></li>
<li><a class="underline" href="https://buff.ly/3OvPsXN">The Future of Native HTML Templating and Data Binding</a></li>
<li><a class="underline" href="https://buff.ly/3vdkcqq">Extracting Pokemon Red/Blue Map with JavaScript</a></li>
<li><a class="underline" href="https://buff.ly/3SyERvW">Running 1000 tests in 1s</a></li>
<li><a class="underline" href="https://buff.ly/43hgjMF">Sass in the Browser</a></li>
</ul>
<a href="#react"><h2 class="inline" id="react">React</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3S3SA01">React Server Components: the Good, the Bad, and the Ugly</a></li>
<li><a class="underline" href="https://buff.ly/4anmwv2">Announcing React Hydration Overlay - Easily Squash Hydration Errors</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/47Z4pu2">Let’s learn how modern JavaScript frameworks work by building one</a></li>
<li><a class="underline" href="https://buff.ly/4899dNe">Building an AI powered WebGL experience with Supabase and React Three Fiber</a></li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/46X2Mvi">TypeScript's Hidden Feature: Subtypes</a></li>
<li><a class="underline" href="https://buff.ly/3RyHluO">TS Docs - Reference docs for npm packages</a></li>
</ul>
<a href="#papers"><h2 class="inline" id="papers">Papers</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3RIg3Tb">Paper - Upcoming JavaScript web frameworks and their techniques</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3s3Iu1x">projen - A new generation of project generators</a></li>
</ul>
]]></content></entry><entry><title>JSter #209: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-209"></link><id>jster-209</id><published>2023-12-15T13:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>I will honor JavaScript in my heart, and try to keep it all the year</p>
</blockquote>
<p>xmas is getting close and it's 2024 soon. That means we're way closer to 2050 than 1980. Time flies.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/2Ev9HE1">Frappe Charts: Simple and Modern SVG Charts</a></li>
<li><a class="underline" href="https://buff.ly/49xEta6">Melt UI - Open source UI components for Svelte</a></li>
<li><a class="underline" href="https://buff.ly/47Kfoap">facebook/stylex: StyleX is the styling system for ambitious user interfaces.</a></li>
<li><a class="underline" href="https://buff.ly/42viAU5">WebReflection/proxy-pants: Secured and reliable Proxy based utilities for more or less common tasks.</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/41egfhm">Fuse.js: The opinionated framework for creating typesafe data layers</a></li>
<li><a class="underline" href="https://buff.ly/4127g2m">Fresh 1.6: Tailwind CSS plugin, simplified typings and more</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3NeSM9E">Astro 4.0</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3KhiTvx">You might not need Jest — the Node.js native test runner is great</a></li>
<li><a class="underline" href="https://buff.ly/3GFUg9p">Fast Buffer-to-String conversion in JavaScript with a Lookup Table</a></li>
<li><a class="underline" href="https://buff.ly/480CxoW">Event Based State Management</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/43XGJ6z">QuickJS: An Overview and Guide to Adding a New Feature</a></li>
<li><a class="underline" href="https://buff.ly/3sLRITO">Comparison of npm, pnpm, and yarn</a></li>
</ul>
]]></content></entry><entry><title>JSter #208: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-208"></link><id>jster-208</id><published>2023-12-01T13:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript is to my advantage.</p>
</blockquote>
<p>To gather leading minds of frontend space together, we'll organize <a class="underline" href="https://futurefrontend.com/blog/ff24/">the second edition of Future Frontend</a> 13-14.6.2024 at Helsinki, Finland. The conference has a single track organized a eight themed sessions. I expect our visitors will go back inspired and enjoy comfortably mild Finnish Summer.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3R8jClk">CSS Hooks - A new take on inline styles</a></li>
<li><a class="underline" href="Schema.orghttps://buff.ly/3N6iHjR">google/schema-dts: JSON-LD TypeScript types for  vocabulary</a></li>
<li><a class="underline" href="https://buff.ly/47Wllku">varsace - Design tokens as TypeScript variables</a></li>
<li><a class="underline" href="https://buff.ly/47UWUDX">Effect - TS library to support creation of complex applications</a></li>
<li><a class="underline" href="https://buff.ly/2WNqF7r">Plyr - A simple, customizable HTML5 Video, Audio, YouTube and Vimeo player</a></li>
<li><a class="underline" href="https://buff.ly/46qtjRB">DavidWells/analytics: Lightweight analytics abstraction layer for tracking page views, custom events, & identifying visitors</a></li>
<li><a class="underline" href="https://buff.ly/3WSfb0a">WebReflection/coincident: An Atomics based Proxy to simplify, and synchronize, Worker related tasks.</a></li>
<li><a class="underline" href="https://buff.ly/3ujrOY0">Nuka Carousel 7 for React</a></li>
<li><a class="underline" href="https://buff.ly/43b8BV6">jagenjo/litegraph.js: A graph node engine and editor written in Javascript similar to PD or UDK Blueprints, comes with its own editor in HTML5 Canvas2D</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/47wQ87B">A simple WebSocket benchmark in JavaScript: Node.js versus Bun</a></li>
<li><a class="underline" href="https://buff.ly/47sEY3z">How Qwik’s Astro Integration Beats Both React and Vanilla JS</a></li>
<li><a class="underline" href="https://buff.ly/3G7UPZj">JS Proxy Shenanigans</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3JMLOrO">Analog - metaframework for Angular</a></li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/47J4fWS">Announcing TypeScript 5.3</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/46pOumY">bytecodealliance/javy: JS to WebAssembly toolchain</a></li>
<li><a class="underline" href="https://buff.ly/3MNQaiV">Vite 5.0 is out!</a></li>
</ul>
]]></content></entry><entry><title>JSter #207: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-207"></link><id>jster-207</id><published>2023-11-15T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>In the beginning there was swamp, JavaScript, and Jussi</p>
</blockquote>
<p>Nothing to announce this time. Read on.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3FWHW4l">pilcrowOnPaper/monaco: A simple OAuth library made for fun</a></li>
<li><a class="underline" href="https://buff.ly/49xEta6">Melt UI - Open source UI library for Svelte</a></li>
<li><a class="underline" href="https://buff.ly/3UsfNrw">LocatorJS - click on any component to go to code.</a></li>
<li><a class="underline" href="https://buff.ly/3StcYbp">jsep - JavaScript expression parser</a></li>
<li><a class="underline" href="https://buff.ly/3FITKHd">bufferhead-code/nextjs-use-php - Use PHP code right within your React / Next.js App. With "use php";</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3StO5fB">Removing list styles without affecting semantics</a></li>
<li><a class="underline" href="https://buff.ly/3u5EcLf">Usability madness of the Modern Javascript UI</a></li>
<li><a class="underline" href="https://buff.ly/40hLDLn">Speeding up the JavaScript ecosystem - Tailwind CSS</a></li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Sxbwoy">bigskysoftware/_hyperscript: a small scripting language for the web</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/470fcTF">msw v2.0 - msw testing tool has reached a new major version</a></li>
<li><a class="underline" href="https://buff.ly/3QEOjiQ">Docusaurus 3.0 is available</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3PwRrNg">Hono - Ultrafast web framework for the Edges</a></li>
</ul>
<a href="#content-management"><h2 class="inline" id="content-management">Content Management</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Qp7yLR">Decap CMS - Open-Source Content Management System</a></li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">Typescript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/46WEJO5">Announcing TypeScript 5.3 RC</a></li>
</ul>
<a href="#boilerplates"><h2 class="inline" id="boilerplates">Boilerplates</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Sijjqb">haydenbleasel/next-forge: A production-grade boilerplate for modern Next.js apps.</a></li>
</ul>
]]></content></entry><entry><title>JSter #206: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-206"></link><id>jster-206</id><published>2023-11-01T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>No tricks, only JavaScript</p>
</blockquote>
<p>Lately I've been refactoring my site creator, <a class="underline" href="https://gustwind.js.org/">Gustwind</a>. Now it accepts HTML syntax and it's shaping up nicely although there's work left to be done.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Mdm9c2">jessquery - A modern, light (3k) alternative to jQuery</a></li>
<li><a class="underline" href="https://buff.ly/3Qxq4D1">data-guardian - a collection of security related utilities for TypeScript</a></li>
<li><a class="underline" href="https://buff.ly/43iRMYs">Color.js - let's get serious about color.</a></li>
<li><a class="underline" href="https://buff.ly/3QoLulM">blitz-js/superjson: Safely serialize JavaScript expressions to a superset of JSON, which includes Dates, BigInts, and more.</a></li>
<li><a class="underline" href="https://buff.ly/3ZYBoLL">React Knob Headless</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Qy7f2G">Next.js 14</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3MiWIpD">Announcing WinterJS - The most performant Service Workers</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3FzxCPn">Web Components Will Outlive Your JavaScript Framework</a></li>
<li><a class="underline" href="https://buff.ly/3MSZjY0">Unveiling the Magic: Exploring Reactivity Across Various Frameworks</a></li>
<li><a class="underline" href="https://buff.ly/45vh4ms">Speeding up the JavaScript ecosystem - The barrel file debacle</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/46JgDGg">Blind SVG Study Guide</a></li>
</ul>
<a href="#toolkits"><h2 class="inline" id="toolkits">Toolkits</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3rX1MJs">instant.dev - Build APIs with JavaScript and Postgres, fast</a></li>
</ul>
<a href="#runtimes"><h2 class="inline" id="runtimes">Runtimes</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3QcifRM">Node.js v21 is now available</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3MTtr5x">11 HTML best practices for login & sign-up forms</a></li>
<li><a class="underline" href="https://buff.ly/3M9bb7l">Deploy a Static WordPress Site to Kinsta for Free</a></li>
</ul>
]]></content></entry><entry><title>JSter #205: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-205"></link><id>jster-205</id><published>2023-10-16T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Today is going to be the most JavaScript day ever.</p>
</blockquote>
<p>I published <a class="underline" href="https://arxiv.org/abs/2309.03201">a short primer to disappearing frameworks</a> a while ago. It is freely available and captures the current movements in the frontend space.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Fdfrig">Lit Launch Day: Lit 3.0, Labs graduations, a compiler and more!</a></li>
<li><a class="underline" href="https://buff.ly/46MbTPP">Bau UI - Reactive library and components for building web user interface</a></li>
<li><a class="underline" href="https://buff.ly/3po6zCi">Kysely - The type-safe SQL query builder for TypeScript</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3RX4f0X">Why Fetch Promise Doesn't Reject on Error Responses</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3FcVBDQ">Fresh 1.5: Partials, client side navigation and more</a></li>
<li><a class="underline" href="https://buff.ly/3PwRrNg">Hono - Ultrafast web framework for the Edges</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Fb69mR">bruno - Fast, git friendly API client</a></li>
</ul>
<a href="#benchmarks"><h2 class="inline" id="benchmarks">Benchmarks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3RQgITW">Web server ‘hello world’ benchmark : Go vs Node.js vs Nim vs Bun</a></li>
</ul>
<a href="#components"><h2 class="inline" id="components">Components</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3tmXZFG">FastBootstrap: Bootstrap UI Components with Atlassian Design</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3rIaESV">Wind Waker JS - game demo</a></li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3ZHK2y3">Announcing TypeScript 5.3 Beta</a></li>
</ul>
<a href="#boilerplates"><h2 class="inline" id="boilerplates">Boilerplates</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/45fHb1I">Blazity/next-enterprise: 💼 An enterprise-grade Next.js boilerplate for high-performance, maintainable apps. Packed with features like Tailwind CSS, TypeScript, ESLint, Prettier, testing tools, and more to accelerate your development.</a></li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Aug70v">Scoped CSS is back</a></li>
</ul>
]]></content></entry><entry><title>JSter #204: Frameworks and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-204"></link><id>jster-204</id><published>2023-10-02T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript. It's not what you think it is.</p>
</blockquote>
<p>Another two weeks, another JSter post. Lots of frameworks this time.</p>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/469kA73">Rakkas - Bleeding edge React framework powered by Vite</a></li>
<li><a class="underline" href="https://buff.ly/3t8BTGK">Rezact/Rezact: A JavaScript Framework/Library (call it what you want) that blends the best of svelte, solid, react, and many others.</a></li>
<li><a class="underline" href="https://buff.ly/3ZF3YjI">dai-shi/wakuwork: Minimalistic React Framework</a></li>
<li><a class="underline" href="https://buff.ly/46lHYxB">Svelte - Introducing runes</a></li>
<li><a class="underline" href="https://buff.ly/3Pn83pr">Hwy is a lightweight, flexible, and powerful alternative to NextJS, based on HTMX instead of React</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/48BqUFP">Test Assertion Styles in JavaScript</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3PZEhsr">Photoshop is now on the web!. Enabled by WebAssembly, Web Components…</a></li>
<li><a class="underline" href="https://buff.ly/3mCJDxI">ECMAScript 2023 (ES14) — what to expect</a></li>
<li><a class="underline" href="https://buff.ly/3U247MQ">CSS-only Widgets Are Inaccessible</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3KZoKGY">Boshen/oxc: The JavaScript Oxidation Compiler</a></li>
<li><a class="underline" href="https://buff.ly/2S2qwKa">kasper/phoenix: A lightweight macOS window and app manager scriptable with JavaScript</a></li>
</ul>
<a href="#platforms"><h2 class="inline" id="platforms">Platforms</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3tbygQt">evolu: Local-first platform designed for privacy, ease of use, and no vendor lock-in to sync and backup precious data using SQLite and CRDT</a></li>
</ul>
<a href="#specifications"><h2 class="inline" id="specifications">Specifications</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/45VqrNf">Typesafe REST API Specification (TYRAS)</a></li>
</ul>
]]></content></entry><entry><title>JSter #203: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-203"></link><id>jster-203</id><published>2023-09-19T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Any programming languages whose errors take ten years to correct is quite a programming language</p>
</blockquote>
<p>The Winter is coming and it's only a matter of days that we'll get the first snow in Finland.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3lxZywQ">evanw/thumbhash: A very compact representation of an image placeholder</a></li>
<li><a class="underline" href="https://buff.ly/42xAWFe">vercel/satori: Enlightened library to convert HTML and CSS to SVG</a></li>
<li><a class="underline" href="https://buff.ly/3FxHycC">mlc-ai/web-stable-diffusion: Bringing stable diffusion models to web browsers. Everything runs inside the browser with no server support.</a></li>
<li><a class="underline" href="https://buff.ly/3qlzFxD">TimboKZ/Chonky: 😸 A File Browser component for React.</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3M3gg1R">Astro JS Framework: A Practical Guide To Building Faster Websites</a></li>
<li><a class="underline" href="https://buff.ly/3FxYZtH">Build your own sandwich with React Hooks</a></li>
</ul>
<a href="#polyfills"><h2 class="inline" id="polyfills">Polyfills</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3FSYavK">luwes/selectmenu-polyfill: Polyfill for the selectmenu element</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Ziw9pV">Nue - Frontend troublesolver</a></li>
<li><a class="underline" href="https://buff.ly/2JSmWm0">Wasp - develop full stack apps without the boilerplate</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3vv65tn">Draw SVG rope using JavaScript</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/2GjC3zI">graphql-editor/graphql-zeus: GraphQL client and GraphQL code generator with GraphQL autocomplete library generation ⚡⚡⚡ for browser,nodejs and react native</a></li>
<li><a class="underline" href="https://buff.ly/3sMWVut">Bun 1.0</a> - The popular Node alternative has reached 1.0</li>
<li><a class="underline" href="https://buff.ly/3AAoesH">SST - Build modern full-stack applications on AWS</a></li>
<li><a class="underline" href="https://buff.ly/45X6gxW">Quickboot.js - Reduce JavaScript beyond treeshaking</a></li>
</ul>
<a href="#design-systems"><h2 class="inline" id="design-systems">Design systems</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/2ZVI5A1">USWDS: The United States Web Design System</a></li>
</ul>
]]></content></entry><entry><title>JSter #202: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-202"></link><id>jster-202</id><published>2023-09-05T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>I'm in no hurry. I like the desert. I like JavaScript.</p>
</blockquote>
<p>It has been busy two weeks and the Fall is approaching.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3iBuVkC">aidenybai/million - An extremely fast virtual DOM that makes React up to 70% faster!</a></li>
<li><a class="underline" href="https://buff.ly/3yqhz2P">nanostores/router: A tiny (792 bytes) router for Nano Stores state manager</a></li>
<li><a class="underline" href="https://buff.ly/3y9soWW">fabiospampinato/pioppo: A tiny isomorphic batched logger. ~3x faster than regular logging in Node.</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3PhxKc3">Bridge is a strongly typed framework that auto-generates the OpenAPI specification and fully-typed Typescript client code</a></li>
<li><a class="underline" href="https://buff.ly/45tiuhP">Astro 3.0</a></li>
<li><a class="underline" href="https://buff.ly/3sleEIT">Fresh 1.4 – Faster Page Loads, Layouts and More</a></li>
<li><a class="underline" href="https://buff.ly/3ZF3YjI">dai-shi/wakuwork - Minimalistic React framework</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/47P96Xr">Educational Sensational Inspirational Foundational</a> - Collection of blog posts</li>
<li><a class="underline" href="https://buff.ly/3Otli7v">Things you forgot (or never knew) because of React</a></li>
<li><a class="underline" href="https://buff.ly/3Qw5zqO">The Next Generation of Web Layouts by Zeldman</a></li>
<li><a class="underline" href="https://buff.ly/3mifq6t">Making the Case for Signals in JavaScript</a></li>
<li><a class="underline" href="https://buff.ly/3EJoSX6">The Evolution of Signals in JavaScript</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/45wqf6T">Debugging Like A Pro-xy</a></li>
<li><a class="underline" href="https://buff.ly/3ypXRnZ">More Elegant Destructuring with JavaScript Generators</a></li>
<li><a class="underline" href="https://buff.ly/3YDo7rl">The .meta Directory: Let's Tidy Things Up 🧹🧹🧹</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/45KMQfC">Announcing Biome, a fork of Rome</a></li>
<li><a class="underline" href="https://buff.ly/2O3lfA0">Volta - The Hassle-Free JavaScript Tool Manager</a></li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/45ocM0S">Announcing TypeScript 5.2</a></li>
</ul>
<a href="#books"><h2 class="inline" id="books">Books</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3pEoyVg">gibbok/typescript-book - A free and concise TypeScript Book: A Concise Guide to Effective Development in TypeScript</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3qAaOLz">pakastin/flanets: Flanets 2D space flight simulator</a></li>
<li><a class="underline" href="https://buff.ly/3xOkIaw">iPod.js</a></li>
</ul>
<a href="#runtimes"><h2 class="inline" id="runtimes">Runtimes</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/45xF6xA">Deno 1.36: More flexible security and expanded testing APIs</a></li>
</ul>
<a href="#platforms"><h2 class="inline" id="platforms">Platforms</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3ZaFgrC">moonrepo - a developer productivity platform for scaling codebases</a></li>
</ul>
]]></content></entry><entry><title>JSter #201: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-201"></link><id>jster-201</id><published>2023-08-16T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>I am become JavaScript, the destroyer of worlds</p>
</blockquote>
<p>Not much to say this time. I have the dates for the next <a class="underline" href="https://futurefrontend.com/">Future Frontend</a>, though. It will take place 13-14.6.2024 at Helsinki, Finland.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3kx516r">WebReflection/nonchalance: The easiest way to augment DOM builtin elements.</a></li>
<li><a class="underline" href="https://buff.ly/3SEBbd4">ts-rest - Incrementally adoptable type-safety for your new and existing APIs</a></li>
<li><a class="underline" href="https://buff.ly/3IZ5zf0">macaron — CSS-in-JS with zero-runtime</a></li>
<li><a class="underline" href="https://buff.ly/3ONiPpE">fgnass/type-assurance - Lightweight type guards and assertions</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3ZF3YjI">dai-shi/wakuwork - Minimalistic React framework</a></li>
<li><a class="underline" href="https://buff.ly/3Zgn4MY">emilwidlund/nodl: A framework for computational node graphs.</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3mifq6t">Making the Case for Signals in JavaScript</a></li>
<li><a class="underline" href="https://buff.ly/3EJoSX6">The Evolution of Signals in JavaScript</a></li>
<li><a class="underline" href="https://buff.ly/3Z4O3Ld">Ryan Dahl, Node.js Creator, Wants to Rebuild How We Experience the Web</a></li>
</ul>
<a href="#platforms"><h2 class="inline" id="platforms">Platforms</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3ZaFgrC">moonrepo - a developer productivity platform for scaling codebases</a></li>
</ul>
<a href="#components"><h2 class="inline" id="components">Components</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://t.co/JZJWUf88tH">RippleUI - TailwindCSS Components</a></li>
<li><a class="underline" href="https://buff.ly/3SuaV4J">Konsta UI - Mobile UI components built with TailwindCSS</a></li>
</ul>
<a href="#benchmarks"><h2 class="inline" id="benchmarks">Benchmarks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/41BQ1oP">modderme123/js-reactivity-benchmark</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3EkYZfS">zachleat/performance-leaderboard-pagespeed-insights - A plugin to run Lighthouse on Pagespeed Insights against a set of urls to see which site is the fastest.</a></li>
</ul>
]]></content></entry><entry><title>JSter #200: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-200"></link><id>jster-200</id><published>2023-08-03T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>I'll beach off with you any day, JavaScript</p>
</blockquote>
<p>It's the 200th issue of JSter. That's a lot of links.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3xuUR9l">hwchase17/langchainjs - Building applications with LLMs through composability</a></li>
<li><a class="underline" href="https://buff.ly/3Y5rQxA">Introducing Valibot, a < 1kb Zod Alternative</a></li>
<li><a class="underline" href="https://buff.ly/3ltlfxz">natemoo-re/clack: Effortlessly build beautiful command-line apps</a></li>
<li><a class="underline" href="https://buff.ly/43xrdOp">Code Hike - Not just a syntax highlighter</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3JMLOrO">Analog - Full stack metaframework for Angular</a></li>
<li><a class="underline" href="https://buff.ly/3Doh4IY">Fresh 1.3 - Simplified Route Components and More</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3KgFmJR">Routing on the web is complicated - our routers should be simple</a></li>
<li><a class="underline" href="https://buff.ly/3XGj1sd">On building the enterprise-grade Node.js applications</a></li>
<li><a class="underline" href="https://buff.ly/3lIbf3w">JS Class fields potentially harmful</a></li>
<li><a class="underline" href="https://buff.ly/3YmzUJ8">The Market for Lemons</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3EhRXZz">ossjs/release: Minimalistic, opinionated, and predictable release automation tool.</a></li>
<li><a class="underline" href="https://buff.ly/3OkWv6G">fabiospampinato/banal: On-demand bundle analyzer, powered by esbuild.</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/410pjWh">WebContainers - Dev environments. In your web app</a></li>
<li><a class="underline" href="https://buff.ly/3I83pZL">Rendering strategies: CSR, SSR, SSG, ISR</a></li>
<li><a class="underline" href="https://buff.ly/3kWK7gP">Visual design rules you can safely follow every time</a></li>
</ul>
<a href="#standards"><h2 class="inline" id="standards">Standards</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Qf12sS">Messaging Layer Security is now an internet standard</a></li>
</ul>
]]></content></entry><entry><title>JSter #199: Tools and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-199"></link><id>jster-199</id><published>2023-07-17T14:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript isn't one important thing, it's everything.</p>
</blockquote>
<p>Carry on and keep JavaScripting. There's not much to say this time.</p>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3IAwOc8">egoist/dum: An npm scripts runner written in Rust.</a></li>
<li><a class="underline" href="https://buff.ly/3RzxTXG">denoland/deno_lint: Blazing fast linter for JavaScript and TypeScript written in Rust</a></li>
<li><a class="underline" href="https://buff.ly/3wRKxI7">PactumJS - Test whole pyramid</a></li>
<li><a class="underline" href="https://buff.ly/3CVr1h8">Module Federation: streamline your microfrontends</a></li>
<li><a class="underline" href="https://buff.ly/44qOxOx">Announcing TypeScript 5.2 Beta</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/2KBxctW">Form Field Usability: Avoid Multi-Column Layouts (13% Make This Form Usability Mistake)</a></li>
<li><a class="underline" href="https://buff.ly/3CVb8Y0">CommonJS is hurting JavaScript</a></li>
<li><a class="underline" href="https://buff.ly/3pBFs6Y">A Deep Dive Into SVG Path Commands</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/2toQ2Od">Convert JSON to Swift, C#, TypeScript, Objective-C, Go, Java, C++ and more with quicktype</a></li>
<li><a class="underline" href="https://survivejs.com/blog/relativeci-interview/">RelativeCI - In-depth bundle stats analysis and monitoring - Interview with Viorel Cojocaru</a></li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3LRdevC">The Power of CSS Blend Modes</a></li>
</ul>
<a href="#apis"><h2 class="inline" id="apis">APIs</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3IrEr6r">structuredClone() - Web APIs</a></li>
</ul>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Pzo0KV">TinyBase - The reactive data store for local-first apps</a></li>
</ul>
]]></content></entry><entry><title>JSter #198: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-198"></link><id>jster-198</id><published>2023-07-05T14:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>The only thing we have to fear is JavaScript itself.</p>
</blockquote>
<p>I recently gave a presentation titled <a class="underline" href="https://www.slideshare.net/bebraw/ecmascript-from-an-idea-to-a-major-standard">ECMAScript - From an idea to a major standard</a> (<a class="underline" href="https://arxiv.org/abs/2305.01373">paper</a>) at EURAS 2023. That's also the reason why this edition was delayed by a couple of days.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3PEbIkc">DrizzleORM - next gen TypeScript ORM</a></li>
<li><a class="underline" href="https://buff.ly/3kGjahI">Splide is a lightweight, flexible and accessible slider/carousel written in TypeScript. No dependencies, no Lighthouse errors</a></li>
<li><a class="underline" href="https://buff.ly/2rCuhcg">GoogleChromeLabs/quicklink: Faster subsequent page-loads by prefetching in-viewport links during idle time</a></li>
<li><a class="underline" href="https://buff.ly/43LWGNz">superlucky84/lithent - A lightweight Virtual DOM UI library</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3NCHifA">Qwik 1.2: Performance in Autopilot</a></li>
<li><a class="underline" href="https://buff.ly/3XqsFR4">Enhance - Full stack HTML first framework</a></li>
<li><a class="underline" href="https://buff.ly/3ouvVug">Medusa - Building blocks for digital commerce</a></li>
<li><a class="underline" href="https://buff.ly/3NzFbuh">NestJS v10 is now available</a></li>
<li><a class="underline" href="https://buff.ly/3NzMrqg">waiter-and-autratac/WaiterAndAUTRATAC: A pair of frameworks that allow delaying JavaScript code execution.</a></li>
<li><a class="underline" href="https://buff.ly/3Ctp4Iu">Fresh 1.2 - sharing state between islands, limited npm support, and more</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3lbwIlP">Modern Font Stacks</a> - Font stacks to choose from</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3XxZD1W">WebReflection/basic-devtools: Exports <code>$</code>, <code>$$</code>, and <code>$x</code> utilities as described in Chrome Console Utilities API reference</a></li>
<li><a class="underline" href="https://buff.ly/2L3DW43">Browsh - The modern text based browser</a></li>
<li><a class="underline" href="https://buff.ly/3yqPUiU">Fallback Font Generator</a></li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/2DVZZrL">kkuchta/css-only-chat: A truly monstrous async web chat using no JS whatsoever on the frontend</a></li>
<li><a class="underline" href="https://buff.ly/443uN3r">Panda CSS - The fastest way to build beautiful websites in React.</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3PB5zWh">A better way to use Dotenv</a></li>
<li><a class="underline" href="https://buff.ly/3LYCwbC">The problem with disabled buttons and what to do instead</a></li>
<li><a class="underline" href="https://buff.ly/3NBU8Mk">Misko's Take on a Unified Theory of Reactivity</a></li>
<li><a class="underline" href="https://buff.ly/42JflIJ">JavaScript Imports Under The Hood</a></li>
</ul>
]]></content></entry><entry><title>JSter #197: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-197"></link><id>jster-197</id><published>2023-06-16T14:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Elementary, my dear JavaScript.</p>
</blockquote>
<p><a class="underline" href="https://futurefrontend.com/2023/">The first edition of Future Frontend conference</a> finished last week and I consider it a success. We are currently in post-production mode to get the conference content online.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Y8qXmq">natemoo-re/ultramatter: <1KB frontmatter parser that supports a reasonable subset of YAML</a></li>
<li><a class="underline" href="https://buff.ly/3XH3fOn">WebReflection/not-so-weak: Iterable WeakMap and WeakSet</a></li>
<li><a class="underline" href="https://buff.ly/3HeSz3M">Tiptap - Headless WYSIWYG Text Editor</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3OYjOUI">Astro 2.6: Middleware</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/42JflIJ">JavaScript Imports Under The Hood</a></li>
<li><a class="underline" href="https://buff.ly/3Y5zmap">Forking Chrome to render in a terminal</a></li>
<li><a class="underline" href="https://buff.ly/43GB2tF">Sharing WebSocket Connections between Browser Tabs and Windows</a></li>
</ul>
<a href="#ui"><h2 class="inline" id="ui">UI</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/42jl3R7">shadcn/ui - Build your component library</a></li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3XLN2Yg">Master CSS - A Virtual CSS language with enhanced syntax.</a></li>
<li><a class="underline" href="https://buff.ly/2U3YrCB">PSone.css</a></li>
<li><a class="underline" href="https://buff.ly/2CGfjsL">Tufte CSS - Tufte style layout but in CSS</a></li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.effect.website/">Write better TypeScript with Effect</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/43sWW3Z">Starlight 🌟 Build documentation sites with Astro</a></li>
</ul>
]]></content></entry><entry><title>JSter #196: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-196"></link><id>jster-196</id><published>2023-06-03T14:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Even my JavaScript is capable of making an analogy</p>
</blockquote>
<p>It's happening. <a class="underline" href="https://futurefrontend.com/">Future Frontend</a> conference takes place next week (8-9.6). A little bird told me there will be a live stream available as well.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/2m4a7oM">retejs/rete: JavaScript framework for visual programming and creating node editor</a></li>
<li><a class="underline" href="https://buff.ly/3OJvGK0">fibo/flow-view: is a visual editor for Dataflow programming</a></li>
<li><a class="underline" href="https://buff.ly/3GEA5s3">Precedent - Building blocks for your Next.js project</a></li>
<li><a class="underline" href="https://buff.ly/3vZ5DEc">graphql/graphql-http: Simple, pluggable, zero-dependency, GraphQL over HTTP Protocol compliant server and client.</a></li>
<li><a class="underline" href="https://buff.ly/3S3X8AN">Crawlee - Build reliable crawlers</a></li>
<li><a class="underline" href="https://buff.ly/3QoKuws">mercurius-js/mercurius: Implement GraphQL servers and gateways with Fastify</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3iJhpPS">sandulat/routes-gen: Framework agnostic routes typings generator. Remix ☑️ SolidStart ☑️</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3OO3u94">Isomorphic Development</a></li>
<li><a class="underline" href="https://buff.ly/3WosMuu">Three attributes for better web forms</a></li>
<li><a class="underline" href="https://buff.ly/3irOkbP">The Challenges of Lazy Loading in JavaScript</a></li>
<li><a class="underline" href="https://buff.ly/3OAshwU">Build your own resumability</a></li>
<li><a class="underline" href="https://buff.ly/3izNnOo">A Cure for useState Hell</a></li>
<li><a class="underline" href="https://buff.ly/3Zs4QZT">The gotcha of unhandled promise rejections</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/2kNb8kF">NoFlo - Flow-Based Programming for JavaScript</a></li>
<li><a class="underline" href="https://buff.ly/3iI5Mc2">Gradient Designer</a></li>
<li><a class="underline" href="https://buff.ly/3H1PMep">SQLite Wasm in the browser backed by the Origin Private File System</a></li>
<li><a class="underline" href="https://buff.ly/3IJm7rk">why-is-node-running</a></li>
<li><a class="underline" href="https://buff.ly/41Xv72p">The Bun Bundler</a></li>
</ul>
]]></content></entry><entry><title>JSter #195: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-195"></link><id>jster-195</id><published>2023-05-15T14:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>That'll do JavaScript. That'll do.</p>
</blockquote>
<p>Another two weeks, another list of JavaScript resources.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3QlJaKE">tkrotoff/fetch: A Fetch API wrapper</a></li>
<li><a class="underline" href="https://buff.ly/2AFWG8O">elbywan/wretch: A tiny wrapper built around fetch with an intuitive syntax.</a></li>
<li><a class="underline" href="https://buff.ly/3WSsqNP">saarw/async-sequential-runner: TypeScript class for sequentially running async tasks to completion.</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3p7nYi9">Angular v16 is here!</a></li>
<li><a class="underline" href="https://buff.ly/44prioP">Qwik Reaches v1.0</a></li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/41zCGMs">JS private fields considered harmful</a></li>
<li><a class="underline" href="https://buff.ly/3MinYF4">Artem's struggle with Remix</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3W1wZWb">Introducing Deopt Explorer for TypeScript</a></li>
<li><a class="underline" href="https://buff.ly/3nU3d9u">Introducing Baseline: a unified view of stable web features</a></li>
<li><a class="underline" href="https://buff.ly/3HJeCQa">lxsmnsyc/forgetti: Solve your hook spaghetti (with more spaghetti). Inspired by React Forget.</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3nPIxzi">https annotated live</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3WTEr5z">New CSS Relative Units</a></li>
<li><a class="underline" href="https://buff.ly/3p6cCec">The Cost of Convenience</a></li>
</ul>
]]></content></entry><entry><title>JSter #194: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-194"></link><id>jster-194</id><published>2023-05-02T09:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>To JavaScript, and beyond</p>
</blockquote>
<p>Another two weeks has passed and I've compiled a list of links below.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3LbgBO4">aidenybai/hundred - Toy block virtual DOM</a></li>
<li><a class="underline" href="https://buff.ly/3RrThNU">Pagefind - Add search to your static site easily</a></li>
<li><a class="underline" href="https://buff.ly/3Locj7g">pmndrs/react-three-offscreen - Offscreen worker canvas for react-three-fiber</a></li>
<li><a class="underline" href="https://buff.ly/3GiCsSm">React Wrap Balancer</a></li>
<li><a class="underline" href="https://buff.ly/3d9mHxA">Open Props: sub-atomic styles</a></li>
<li><a class="underline" href="https://buff.ly/3okw32v">immer v10 has been released</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3WSR6FF">Micro-frontend development explained</a></li>
<li><a class="underline" href="https://buff.ly/354PQd2">A Web Components Primer</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3XcOvXb">publint - Lint if a package is published right</a></li>
<li><a class="underline" href="https://buff.ly/3XbxFIb">fwoosh - A lightning fast MDX based site generator</a></li>
<li><a class="underline" href="https://buff.ly/3MKKKGl">yoavbls/pretty-ts-errors - Make TypeScript errors prettier and human-readable in VSCode</a></li>
<li><a class="underline" href="https://buff.ly/41B96qi">Node.js 20 Now Available</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3Q1op78">A React Developer's First Take on Solid</a></li>
<li><a class="underline" href="https://buff.ly/3Vn9zJ4">A deep dive into Rematch - State Management for React</a></li>
<li><a class="underline" href="https://buff.ly/3A2A7Hf">Speeding up the JavaScript ecosystem - draft-js emoji plugin</a></li>
</ul>
]]></content></entry><entry><title>JSter #193: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-193"></link><id>jster-193</id><published>2023-04-17T09:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>What we do in JavaScript echoes in eternity</p>
</blockquote>
<p>Another two weeks, another bunch of links to check.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/2pVZOow">joshmarinacci/node-pureimage - Pure JS implementation of the HTML Canvas 2D drawing API</a></li>
<li><a class="underline" href="https://buff.ly/3G6rgrW">kolodny/immutability-helper - Mutate a copy of data without changing the original source</a></li>
<li><a class="underline" href="https://buff.ly/3J5dDuE">TanStack/bling - Framework agnostic transpilation utilities for client/server RPCs, env isolation, islands, module splitting, and more.</a></li>
<li><a class="underline" href="https://buff.ly/3LitqaM">Effect-TS/schema - Modeling the schema of data structures as first-class values</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3KcWyzk">ascorbic/impala - A very simple static React framework</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3hwN7ej">Oklab - A perceptual color space for image processing</a></li>
<li><a class="underline" href="https://buff.ly/3YC2l6Z">Why OKLCH is the future of colors in CSS</a></li>
<li><a class="underline" href="https://buff.ly/3RTdPP9">Best practices for creating a modern npm package</a></li>
<li><a class="underline" href="https://buff.ly/3FwxwHU">5 best practices for React with TypeScript security</a></li>
<li><a class="underline" href="https://buff.ly/3JOnUMs">Modularizing React Applications with Established UI Patterns</a></li>
<li><a class="underline" href="https://buff.ly/3T91R5M">Migrating from ts-node to Bun</a></li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/40go8RX">Thoughts on Svelte</a></li>
<li><a class="underline" href="https://buff.ly/3ZrFU3A">The problem with React</a></li>
</ul>
]]></content></entry><entry><title>JSter #192: Frameworks and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-192"></link><id>jster-192</id><published>2023-04-03T09:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Be careful. JavaScript lurks around every corner.</p>
</blockquote>
<p>Two weeks went by fast and here's the next batch of JSter links.</p>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/akash-joshi/rocketrpc">akash-joshi/rocketrpc</a> - A typesafe framework to destroy client-server barriers</li>
<li><a class="underline" href="https://www.builder.io/blog/qwik-rc-milestone">Qwik Reaches RC Milestone</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://pepelsbey.dev/articles/jumping-html-tags/">Jumping HTML tags. Another reason to validate your markup</a></li>
<li><a class="underline" href="https://frontendmastery.com/posts/rethinking-react-best-practices/">Rethinking React best practices</a></li>
<li><a class="underline" href="https://thenewstack.io/rich-harris-talks-sveltekit-and-whats-next-for-svelte/">Rich Harris Talks SvelteKit and What's Next for Svelte</a></li>
<li><a class="underline" href="https://wasp-lang.dev/blog/2023/03/17/new-react-docs-pretend-spas-dont-exist">New React docs pretend SPAs don't exist anymore</a></li>
<li><a class="underline" href="https://www.builder.io/blog/signals-vs-observables">Signals vs. Observables, what's all the fuss about?</a></li>
<li><a class="underline" href="https://dmitripavlutin.com/react-hooks-stale-closures/">Be Aware of Stale Closures when Using React Hooks</a></li>
<li><a class="underline" href="https://www.builder.io/blog/history-of-reactivity">A Brief History of Reactivity</a></li>
</ul>
<a href="#demonstrations"><h2 class="inline" id="demonstrations">Demonstrations</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/crutchcorn/offline-first-react-app">crutchcorn/offline-first-react-app</a> - An offline first React app with the ability to manually diff stale data from offline clients</li>
<li><a class="underline" href="https://github.com/PauloGoncalvesBH/running-playwright-on-aws-lambda">PauloGoncalvesBH/running-playwright-on-aws-lambda</a> - Running hundreds of Playwright E2E tests in a few seconds with AWS Lambda</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://rome.tools/blog/2023/03/28/rome12/">Announcing Rome v12</a></li>
<li><a class="underline" href="https://github.com/evilmartians/lefthook">evilmartians/lefthook</a> - Fast and powerful Git hooks manager for any type of projects</li>
<li><a class="underline" href="https://github.com/samchon/typia">samchon/typia</a> - Super-fast Runtime validator (type checker) with only one line</li>
<li><a class="underline" href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/">Announcing TypeScript 5.0</a></li>
<li><a class="underline" href="https://ladle.dev/">Ladle</a> - Develop and test your React stories faster</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/total-typescript/untypeable">total-typescript/untypeable</a> - Get type-safe access to any API, with a zero-bundle size option</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-4/">Speeding up the JavaScript ecosystem</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.plasmic.app/blog/how-react-server-components-work">How React server components work: an in-depth guide</a></li>
<li><a class="underline" href="https://dev.to/franciscomendes10866/how-to-create-a-job-queue-using-bull-and-redis-in-nodejs-20ck">How to Create a Job Queue using Bull and Redis in NodeJS</a></li>
</ul>
]]></content></entry><entry><title>JSter #191: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-191"></link><id>jster-191</id><published>2023-03-14T09:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript, still going strong</p>
</blockquote>
<p>I'll resume old biweekly schedule with this mailing list for now to see if that makes it easier to maintain. If not, I will revert back to monthly.</p>
<p>As I run conferences, I have good contacts in the space and this time around I have a special section for conference related discounts. You can share them with your friends if you know some that are interested.</p>
<a href="#conferences"><h2 class="inline" id="conferences">Conferences</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://webexpo.net/">WebExpo</a> - 19-21.4, Prague - Use the code <code>FutureFrontend</code> for a 20% discount during a checkout.</li>
<li><a class="underline" href="https://nodecongress.com/">Node Congress</a> - 14.4 and 17.4, Berlin (hybrid) - Use the code <code>JSter10</code> for a 10% discount for a full hybrid access ticket.</li>
<li><a class="underline" href="https://futurefrontend.com/">Future Frontend</a> - 6-9.6, Helsinki - <a class="underline" href="https://ti.to/future-frontend/2023/discount/JSTER_10">Use this link for a 10% discount for all tickets</a>.</li>
</ul>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/luwes/super-template">luwes/super-template</a> - Build-less template inheritance in the browser. Handy for example or demo pages.</li>
<li><a class="underline" href="https://github.com/drizzle-team/drizzle-orm">drizzle-team/drizzle-orm</a> - TypeScript ORM for SQL</li>
<li><a class="underline" href="https://openapistack.co/">openapi-stack</a> - Full stack typesafe API-first development for REST</li>
<li><a class="underline" href="https://github.com/WebReflection/promise">WebReflection/promise</a> - Abortable and Resolvable Promises</li>
<li><a class="underline" href="https://github.com/tldraw/signia">tldraw/signia</a> - Reactive signals that scale, by tldraw</li>
</ul>
<a href="#toolkits"><h2 class="inline" id="toolkits">Toolkits</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://superflare.dev/">Hello, Superflare</a> - Full stack toolkit for Cloudflare</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jakejs.com/">Jake</a> - JavaScript build tool / task runner for NodeJS</li>
<li><a class="underline" href="https://www.rspack.dev/">Rspack</a> - Rust-based, webpack compatible bundler</li>
<li><a class="underline" href="https://github.com/Boshen/oxc">Boshen/oxc</a> - The JavaScript Oxidation Compiler -> Linter</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://emnudge.dev/blog/react-hostage">React Is Holding Me Hostage</a></li>
<li><a class="underline" href="https://chrlschn.medium.com/react-is-the-new-ibm-6af2f4b04e5e">React is the New IBM. You’ll never get fired for picking it…</a></li>
<li><a class="underline" href="https://dev.to/this-is-learning/react-vs-signals-10-years-later-3k71">React vs Signals: 10 Years Later</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://strapi.io/blog/strapi-cloud-is-now-available">Strapi Cloud is live</a> - The open source headless solution has its cloud now</li>
</ul>
]]></content></entry><entry><title>JSter #190: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-190"></link><id>jster-190</id><published>2023-03-02T09:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript isn't what you think.</p>
</blockquote>
<p>It's only three months until <a class="underline" href="https://futurefrontend.com/">Future Frontend</a> conference (6-9.6) in Finland. Exciting times.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/ungap/esx">ungap/esx</a> - A template literal based ESX proposal</li>
<li><a class="underline" href="https://a11y-dialog.netlify.app/">a11y-dialog</a> - a lightweight yet flexible script to create accessible dialog windows.</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/tjkandala/baahu">tjkandala/baahu</a> - State machine-based UI framework</li>
<li><a class="underline" href="https://github.com/hydroxide-js/hydroxide">hydroxide-js/hydroxide</a> - Next Generation Reactive JavaScript Framework</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://civet.dev/">Civet</a> - CoffeeScript for TypeScript</li>
<li><a class="underline" href="https://github.com/total-typescript/ts-reset">total-typescript/ts-reset</a> - Resets (filter etc.) for TypeScript</li>
</ul>
<a href="#styling"><h2 class="inline" id="styling">Styling</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://typewind.dev/">Typewind</a> - Typesafe Tailwind</li>
<li><a class="underline" href="https://stylable.io/">Stylable</a> - CSS for components</li>
<li><a class="underline" href="https://jdan.github.io/98.css/">98.css</a> - Style like it's 1998</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dev.to/mikehtmlallthethings/svelte-vs-react-which-framework-to-learn-in-2023-50gf">Svelte vs React: Which framework to learn in 2023?</a></li>
<li><a class="underline" href="https://www.builder.io/blog/module-extraction-the-silent-web-revolution">Module Extraction: The Silent Web Revolution</a></li>
<li><a class="underline" href="https://www.builder.io/blog/useeffect-not-the-best-abstraction">Why useEffect May Not Be the Best Abstraction</a></li>
<li><a class="underline" href="https://svelte.dev/blog/streaming-snapshots-sveltekit">Streaming, snapshots, and other new features since SvelteKit 1.0</a></li>
<li><a class="underline" href="https://blog.openreplay.com/an-intro-to-redwoodjs/">An Introduction to RedwoodJS</a></li>
<li><a class="underline" href="https://www.zachleat.com/web/react-criticism/">A Historical Reference of React Criticism</a></li>
<li><a class="underline" href="https://www.infoxicator.com/is-react-going-anywhere">Is React going anywhere?</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://fly.io/">Deploy app servers close to your users</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://payloadcms.com/">Payload CMS</a></li>
<li><a class="underline" href="https://www.arrow-js.com/">ArrowJS</a> - an experimental tool for programming reactive interfaces using native JavaScript</li>
<li><a class="underline" href="https://www.11ty.dev/blog/eleventy-v2/">Eleventy v2.0.0</a> - the major static site generator has reached an important milestone</li>
<li><a class="underline" href="https://lightningcss.dev/">Lightning CSS</a> - An extremely fast CSS parser, transformer, bundler, and minifier</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.stefanjudis.com/today-i-learned/how-to-split-javascript-strings-with-intl-segmenter/">How to split JavaScript strings into sentences, words or graphemes with "Intl.Segmenter"</a></li>
<li><a class="underline" href="https://dev.to/modderme123/super-charging-fine-grained-reactive-performance-47ph">Super Charging Fine-Grained Reactive Performance</a></li>
<li><a class="underline" href="https://vicvijayakumar.com/blog/the-bff-backend-for-frontends-architectural-pattern">Who's your BFF? Rough notes on the popular BFF architecture pattern</a></li>
</ul>
<a href="#courses"><h2 class="inline" id="courses">Courses</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://kinsta.com/academy/course/node-js-full-stack-developer/">Free Course: Node.js Full Stack Developer Course</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.designsystems.com/iconography-guide/">A complete guide to iconography</a></li>
</ul>
]]></content></entry><entry><title>JSter #189: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-189"></link><id>jster-189</id><published>2023-02-03T15:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>In a few years npm will reach ten million packages</p>
</blockquote>
<p>The JavaScript ecosystem keeps growing at an exponential pace. One day we'll reach Mars and beyond.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://shiplab.github.io/vesseljs/">Vessel.js</a> - Design ships in JavaScript</li>
<li><a class="underline" href="https://github.com/11ty/eleventy-activity-feed">11ty/eleventy-activity-feed</a> - One feed to rule them all</li>
<li><a class="underline" href="https://airbnb.io/visx/">visx</a> - A collection of expressive, low-level visualization primitives for React</li>
<li><a class="underline" href="https://virtuoso.dev/">React Virtuoso</a> - Powerful yet easy-to-use React components that can render enormous data sets</li>
<li><a class="underline" href="https://www.npmjs.com/package/vanilla-jsoneditor">vanilla-jsoneditor</a> - A web-based tool to view, edit, format, transform, and validate JSON</li>
<li><a class="underline" href="https://github.com/ts-safeql/safeql">ts-safeql/safeql</a> - Validate and auto-generate TypeScript types from raw SQL queries in PostgreSQL</li>
<li><a class="underline" href="https://hyperfetch.bettertyped.com/">hyperfetch</a> - Data Fetching, Offline First, Caching, Queueing</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://patrickbrosset.com/articles/2022-10-24-do-you-really-understand-CSS-radial-gradients/">Do you really understand CSS radial-gradients?</a></li>
<li><a class="underline" href="https://daverupert.com/2023/01/so-you-want-to-make-a-new-js-framework/">So you want to make a new JS framework</a></li>
<li><a class="underline" href="https://adrianroselli.com/2022/11/your-accessibility-claims-are-wrong-unless.html">Your Accessibility Claims Are Wrong, Unless…</a></li>
<li><a class="underline" href="https://marvinh.dev/blog/speeding-up-javascript-ecosystem-part-2/">Speeding up the JavaScript ecosystem</a></li>
<li><a class="underline" href="https://dev.to/thepassle/the-javascript-ecosystem-for-the-dazed-and-confused-36il">Javascript Questions for the Dazed and Confused</a></li>
<li><a class="underline" href="https://2022.stateofjs.com/en-us/">The State of JS 2022</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://divriots.com/blog/introducing-jampack">Introducing Jampack</a> - Speed up your static site</li>
<li><a class="underline" href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-0-beta/">Announcing TypeScript 5.0 Beta</a></li>
<li><a class="underline" href="https://astro.build/blog/astro-2/">Astro 2.0</a> - The major site generator has reached a new milestone</li>
<li><a class="underline" href="https://www.locatorjs.com/">LocatorJS</a> - Click on a component to go to its code</li>
<li><a class="underline" href="https://github.com/pixel-point/fontpie">pixel-point/fontpie</a> - Get your layout shifts optimized with a CLI-generated piece of CSS</li>
<li><a class="underline" href="https://www.val.town/">val town</a> - Write scripts and run</li>
<li><a class="underline" href="https://github.com/zachleat/speedlify">zachleat/speedlify</a> - Benchmark the web performance and accessibility of sites over time</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://bennypowers.dev/posts/form-associated-custom-elements/">Form-Associated Custom Elements</a></li>
<li><a class="underline" href="https://itnext.io/the-hidden-power-of-custom-states-for-web-components-dcae5b048e20">The Hidden Power of Custom States For Web Components</a></li>
<li><a class="underline" href="https://lukeshiru.dev/articles/the-paired-hook-pattern">The paired hook pattern for React</a></li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://css-timeline.vercel.app/">CSS Timeline</a> - What was done and when</li>
<li><a class="underline" href="https://cube.fyi/">Cube CSS</a> - A new CSS methodology</li>
<li><a class="underline" href="https://stylifycss.com/">Stylify</a> - Code your website faster with CSS-like utilities</li>
<li><a class="underline" href="https://csswizardry.com/2022/09/critical-css-not-so-fast/">Critical CSS? Not So Fast!</a></li>
<li><a class="underline" href="https://github.com/joe-bell/cva">joe-bell/cva</a> - Class Variance Authority</li>
<li><a class="underline" href="https://www.npmjs.com/package/@acab/reset.css">@acab/reset.css</a> - Yet another CSS reset</li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://slowroads.io/">slow roads</a> - Endless driving zen</li>
</ul>
]]></content></entry><entry><title>JSter #188: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-188"></link><id>jster-188</id><published>2023-01-03T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>New year, new JavaScript libraries</p>
</blockquote>
<p>As a follow-up to <a class="underline" href="https://react-finland.fi/">React Finland</a>, we'll organize a new conference called <a class="underline" href="https://futurefrontend.com/">Future Frontend</a>. As you might have guessed from the name, it is more future focused and the pivot allowed us to invite speakers that we otherwise couldn't have invited. The conference takes place 05-09.06 in Helsinki, Finland and we've started early sales.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://stylable.io/">Stylable</a> - CSS for components</li>
<li><a class="underline" href="https://shoelace.style/">Shoelace</a> - A forward-thinking library of web components</li>
<li><a class="underline" href="https://blog.jquery.com/2022/12/13/jquery-3-6-2-released/">jQuery 3.6.2 Released!</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://beyondjs.com/">Beyond Docs</a> - The Full Stack Modular + Universal Typescript Framework</li>
<li><a class="underline" href="https://nextjs.org/blog/next-13-1">Next 13.1</a></li>
<li><a class="underline" href="https://grapesjs.com/">GrapesJS</a> - Free and Open Source Web Builder Framework</li>
<li><a class="underline" href="https://github.com/yisar/asta">yisar/asta</a> - Resumable SSR framework</li>
<li><a class="underline" href="https://open-next.js.org/">OpenNext</a> - Open source Next.js serverless adapter</li>
<li><a class="underline" href="https://github.com/gbj/leptos">gbj/leptos</a> - Build fast web applications with Rust</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://tamagui.dev/blog/version-one">Tamagui 1.0 🎉</a> - Ship cross-platform React apps in ½ the time with 2x performance</li>
<li><a class="underline" href="https://blog.nrwl.io/whats-new-in-nx-15-7e14e1ff282d">What’s new in Nx 15?. Nx v15 is finally here! Let’s go…</a></li>
<li><a class="underline" href="https://github.com/unjs/unplugin">unjs/unplugin</a> - Unified plugin system for Vite, Rollup, Webpack, and more</li>
<li><a class="underline" href="https://github.com/github/catalyst">github/catalyst</a> - Catalyst is a set of patterns and techniques for developing components within a complex application.</li>
<li><a class="underline" href="https://github.com/marcj/TypeRunner">marcj/TypeRunner</a> - High-performance TypeScript compiler</li>
<li><a class="underline" href="https://github.com/danielroe/fontaine">danielroe/fontaine</a> - Automatic font fallback based on font metrics</li>
<li><a class="underline" href="https://github.com/vituum/vituum">vituum</a> - Fast prototyping with template engines and integrated frontend tools. Vituum is a small wrapper around Vite</li>
<li><a class="underline" href="https://vitejs.dev/blog/announcing-vite4.html">Vite 4.0 is out!</a></li>
<li><a class="underline" href="https://ladle.dev/">Ladle</a> - Develop and test your React stories faster</li>
<li><a class="underline" href="https://github.com/g-plane/typed-query-selector">g-plane/typed-query-selector</a> - Better typed <code>querySelector</code> and <code>querySelectorAll</code></li>
<li><a class="underline" href="https://github.com/google/wireit">google/wireit</a> - Wireit upgrades your npm/pnpm/yarn scripts to make them smarter and more efficient</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://miketaylr.com/posts/2022/12/how-the-IE-11-ua-string-broke-sites-in-firefox.html">Remember when the IE 11 User-Agent forced Mozilla to freeze part of its User-Agent string (last week)</a></li>
<li><a class="underline" href="https://dev.to/srmagura/why-were-breaking-up-wiht-css-in-js-4g9b">Why We're Breaking Up with CSS-in-JS</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://philipwalton.com/articles/dynamic-lcp-priority/">Dynamic LCP Priority: Learning from Past Visits</a></li>
<li><a class="underline" href="https://djaytechdiary.com/react-hooks-best-practices-2023">React Hooks Best Practices 2023</a></li>
<li><a class="underline" href="https://domevents.dev/">Explore DOM Events 👩‍🔬</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://web.dev/building-a-dialog-component/">Building a dialog component</a></li>
<li><a class="underline" href="https://www.infoworld.com/article/3676577/intro-to-qwik-a-superfast-javascript-framework.html">Intro to Qwik: A superfast JavaScript framework</a></li>
<li><a class="underline" href="https://betterprogramming.pub/writing-your-first-qwik-component-18a0c50f2687">Writing Your First Qwik Component</a></li>
</ul>
<a href="#icons"><h2 class="inline" id="icons">Icons</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://lucide.dev/">Lucide</a> - Beautiful & consistent icon toolkit made by the community</li>
</ul>
]]></content></entry><entry><title>JSter #187: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-187"></link><id>jster-187</id><published>2022-12-05T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>XmasScript needs to become a thing</p>
</blockquote>
<p>Xmas is getting close and this is the last JSter post of the year.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dev.to/samchon/typescript-json-is-10-1000x-times-faster-than-zod-and-io-ts-8n6">Jeongho made 1,000x faster TypeScript Validator Library</a></li>
<li><a class="underline" href="https://github.com/arackaf/micro-graphql-svelte">arackaf/micro-graphql-svelte</a> - Light and simple GraphQL Svelte client with extensible, composable cache invalidation</li>
<li><a class="underline" href="https://www.tremor.so/">Tremor</a> - The React library to build dashboards fast</li>
<li><a class="underline" href="https://legendapp.com/open-source/state/">Legend</a> - A super fast and powerful state library for JavaScript apps</li>
<li><a class="underline" href="https://github.com/hazae41/xswr">hazae41/xswr</a> - Yet another React data (re)fetching library</li>
<li><a class="underline" href="https://telefunc.com/">Telefunc</a> - Remote Functions. Instead of API.</li>
<li><a class="underline" href="https://github.com/bigskysoftware/idiomorph">bigskysoftware/idiomorph</a> - A DOM-merging algorithm</li>
<li><a class="underline" href="https://github.com/WebReflection/uhtml">WebReflection/uhtml</a> - A micro HTML/SVG render</li>
<li><a class="underline" href="https://modularforms.dev/">Modular Forms</a> - The modular form library for SolidJS</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.liveviewjs.com/">LiveViewJS</a> - Simple yet powerful framework for LiveViews in NodeJS and Deno</li>
<li><a class="underline" href="https://tezjs.io/">TezJS</a> - A Revolutionary Jamstack Framework for Modern Websites</li>
<li><a class="underline" href="https://unpoly.com/">Unpoly</a> - Unobtrusive JavaScript framework</li>
<li><a class="underline" href="https://css-tricks.com/shoelace-component-frameowrk-introduction/">Introducing Shoelace, a Framework-Independent Component-Based UX Library</a></li>
<li><a class="underline" href="https://github.com/TahaSh/qwikql">TahaSh/qwikql</a> - A GraphQL client for Qwik framework</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://davidea.st/articles/javascript-at-array/">JavaScript [].at() is amazing and you should use it</a></li>
<li><a class="underline" href="https://mfaani.com/posts/interviewing/how-understanding-state-machines-helps-with-building-trees-and-graphs/">How Understanding State Machines Helps With Building Trees and Graphs</a></li>
<li><a class="underline" href="https://blog.openreplay.com/understanding-the-useid-hook-in-react/">Understanding the useId hook in ReactOpenReplay</a></li>
<li><a class="underline" href="https://blog.cloudflare.com/rendering-react-on-the-edge-with-flareact-and-cloudflare-workers/">Rendering React on the Edge with Flareact and Cloudflare Workers</a></li>
<li><a class="underline" href="https://reego.dev/blog/achieving-isr-on-cloudflare-workers">Incremental Static Regeneration on Cloudflare Workers</a></li>
<li><a class="underline" href="https://antfu.me/posts/why-not-prettier">Why antfu doesn't use Prettier</a></li>
<li><a class="underline" href="https://legendapp.com/open-source/legend-state/">Making React fast by default and truly reactiveOpen on CodeSandbox</a></li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://incrementalelm.com/typescript-blind-spots/">TypeScript's Blind Spots</a></li>
<li><a class="underline" href="https://blog.logrocket.com/understanding-infer-typescript/">Understanding infer in TypeScript</a></li>
<li><a class="underline" href="https://devblogs.microsoft.com/typescript/announcing-typescript-4-9/">Announcing TypeScript 4.9</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://tech-blog.agrittiwari.com/react-native-internals-for-web-developers">React Native Internals for Web Developers</a></li>
<li><a class="underline" href="https://space.matthewphillips.info/posts/where-web-components-went-wrong/">Where Web Components Went Wrong (And How We Can Turn It Around)</a></li>
<li><a class="underline" href="https://webreflection.medium.com/jsx-is-inefficient-by-default-but-d1122c992399">JSX is inefficient by default but</a></li>
<li><a class="underline" href="https://ped.ro/writing/variant-driven-components">Variant-driven components</a></li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buff.ly/3fYi2nz">Deno 1.28: Featuring 1.3 Million New Modules</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.blog/changelog/2022-11-09-npm-cli-v9-is-now-generally-available/">npm CLI v9 is now generally available</a></li>
<li><a class="underline" href="https://rome.tools/blog/2022/11/08/rome-10/">Announcing Rome v10</a></li>
</ul>
<a href="#starters"><h2 class="inline" id="starters">Starters</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/trpc/examples-next-prisma-starter">trpc/examples-next-prisma-starter</a> - Prisma + tRPC</li>
<li><a class="underline" href="https://github.com/cpojer/vite-ts-react-tailwind-template">cpojer/vite-ts-react-tailwind-template</a> - Minimal, sensible defaults, fast</li>
</ul>
]]></content></entry><entry><title>JSter #186: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-186"></link><id>jster-186</id><published>2022-11-02T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>No time to JavaScript</p>
</blockquote>
<p>It's almost Winter and the world of JavaScript keeps moving.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/11ty/is-land">11ty/is-land</a> - A new performance-focused way to add interactive client-side components to your web site</li>
<li><a class="underline" href="https://corset.dev/">Corset</a> - Cascading binding sheets</li>
<li><a class="underline" href="https://github.com/WebReflection/weak-value">WebReflection/weak-value</a> - A Map with weakly referenced values, instead of keys</li>
<li><a class="underline" href="https://www.react-calendar.com/">React Calendar</a></li>
<li><a class="underline" href="https://github.com/11ty/webc">11ty/webc</a> - Single File Web Components</li>
<li><a class="underline" href="https://pyodide.org/en/stable/index.html">Pyodide</a> - Python distribution for the browser and Node.js based on WebAssembly</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://kryogenix.org/code/browser/everyonehasjs.html">Everyone has JavaScript, right?</a></li>
<li><a class="underline" href="https://webreflection.medium.com/jsx-can-be-more-efficient-by-default-466cfd704fc0">JSX can be more efficient by default</a></li>
<li><a class="underline" href="https://dev.solita.fi/2022/09/28/accessibility-for-web-dev.html">Accessibility testing for web developers</a></li>
<li><a class="underline" href="https://bradfrost.com/blog/post/lets-talk-about-web-components/">Let’s talk about web components</a></li>
<li><a class="underline" href="https://marmelab.com/blog/2022/09/20/react-i-love-you.html">React I Love You, But You're Bringing Me Down</a></li>
<li><a class="underline" href="https://deno.com/blog/the-future-of-web-is-on-the-edge">The Future of the Web is on the Edge</a></li>
<li><a class="underline" href="https://whitep4nth3r.com/blog/write-a-new-javascript-framework/">whitep4nth3r changed her mind about writing new JavaScript frameworks</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/dudykr/stc">dudykr/stc</a> - Speedy TypeScript type checker</li>
<li><a class="underline" href="https://turbo.build/pack">Turbopack</a> - The successor of webpack</li>
<li><a class="underline" href="https://nodejs.org/en/blog/announcements/v19-release-announce/">Node.js 19 is now available!</a></li>
<li><a class="underline" href="https://github.com/rollup/rollup/releases/tag/v3.0.0">rollup/rollup/releases/tag/v3.0.0</a> - Rollup v3.0</li>
<li><a class="underline" href="https://lightningcss.dev/">Lightning CSS</a> - An extremely fast CSS parser, transformer, bundler, and minifier.</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://nextjs.org/blog/next-13">Next.js 13</a></li>
<li><a class="underline" href="https://dev.to/fabiospampinato/voby-simplifications-over-solid-no-babel-no-compiler-5epg">Voby: Simplifications Over Solid - No Babel, No Compiler</a></li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://swan-io.github.io/boxed/">Boxed: Functional utility types and functions for TypeScript</a></li>
<li><a class="underline" href="https://devblogs.microsoft.com/typescript/ten-years-of-typescript/">Ten Years of TypeScript</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://developers.redhat.com/articles/2022/08/09/8-elements-securing-nodejs-applications#6__externalizing_secrets">8 elements of securing Node.js applications</a></li>
<li><a class="underline" href="https://snyk.io/blog/best-practices-create-modern-npm-package/">Best practices for creating a modern npm package</a></li>
<li><a class="underline" href="https://davidwalsh.name/monitorevents">Monitor Events and Function Calls via Console</a></li>
<li><a class="underline" href="https://preactjs.com/blog/introducing-signals/">Introducing Signals for Preact</a></li>
<li><a class="underline" href="https://marvinh.dev/blog/running-1000-test-in-1s/">Running 1000 tests in 1s</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.accessibilitychecker.org/">Accessibility Checker</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.blog/2022-10-06-js13k-2022-winners/">JS13K 2022 winners</a></li>
</ul>
]]></content></entry><entry><title>JSter #185: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-185"></link><id>jster-185</id><published>2022-10-03T10:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>How many JavaScript developers does it take to change a LAMP?</p>
</blockquote>
<p><a class="underline" href="https://react-finland.fi/">React Finland 2022</a> is over and it went smoothly. We're currently in post-production phase but you can find uncut content online already.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://cmdk.paco.me/">Cmdk</a> - Fast, composable, unstyled command menu for React</li>
<li><a class="underline" href="https://plaiceholder.co/">Plaiceholder</a> - Beautiful image placeholders, without the hassle</li>
<li><a class="underline" href="https://github.com/unocss/unocss">unocss</a> - The instant on-demand atomic CSS engine</li>
<li><a class="underline" href="https://tamagui.dev/">Tamagui</a> - Universal UI for React Native</li>
<li><a class="underline" href="https://www.npmjs.com/package/fast-fuzzy">fast-fuzzy</a> - Fast fuzzy search utility</li>
<li><a class="underline" href="https://github.com/WiseLibs/better-sqlite3">WiseLibs/better-sqlite3</a> - The fastest and simplest library for SQLite3 in Node.js</li>
<li><a class="underline" href="https://github.com/bebraw/dragjs">bebraw/dragjs</a> - Simple utility to make it easier to implement drag based things (ie. sliders and such)</li>
<li><a class="underline" href="https://github.com/bokuweb/react-rnd">bokuweb/react-rnd</a> - A resizable and draggable component for React</li>
<li><a class="underline" href="https://github.com/fjmhzyh/Dragjs">fjmhzyh/Dragjs</a> - A light js library that makes your element draggable</li>
<li><a class="underline" href="https://interactjs.io/">interact.js</a> - JavaScript drag and drop, resizing, and multi-touch gestures for modern browsers (and also IE9+)</li>
<li><a class="underline" href="https://github.com/fabiospampinato/flimsy">flimsy</a> - A single-file <1kb min+gzip simplified implementation of the reactive core of Solid, optimized for clean code</li>
<li><a class="underline" href="https://github.com/t3-oss/create-t3-app">t3-oss/create-t3-app</a> - Quickest way to start a new web app with full stack typesafety</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://snyk.io/blog/npm-faker-package-open-source-libraries/">The npm faker package and the unexpected demise of open source libraries</a></li>
<li><a class="underline" href="https://charliegerard.dev/blog/aircraft-radar-system-rtl-sdr-web-usb/">Building an aircraft radar system in JavaScript</a></li>
<li><a class="underline" href="https://upmostly.com/web-development/why-qwik-is-potentially-the-future-of-js-frameworks">Why Qwik Is Potentially the Future Of JS Frameworks?</a></li>
<li><a class="underline" href="https://profy.dev/article/react-tech-stack">Most Popular React Tech Stack in 2022 (Based on Data)</a></li>
<li><a class="underline" href="https://kaleidawave.github.io/posts/introducing-ezno/">Introducing Ezno</a> - New compiler for the web</li>
<li><a class="underline" href="https://dev.to/this-is-learning/resumability-wtf-2gcm">Resumability, WTF?</a></li>
<li><a class="underline" href="https://formidable.com/blog/2021/node-esm-and-exports/">Getting Started with (and Surviving) Node.js</a></li>
<li><a class="underline" href="https://www.theverge.com/2022/8/18/23206110/james-webb-space-telescope-javascript-jwst-instrument-control">JavaScript had a hand in delivering James Webb Space Telescope’s images</a></li>
<li><a class="underline" href="https://tkdodo.eu/blog/avoiding-use-effect-with-callback-refs">Avoiding useEffect with callback refs</a></li>
</ul>
<a href="#apis"><h2 class="inline" id="apis">APIs</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://trpc.io/">tRPC</a> - Move Fast and Break Nothing. End-to-end typesafe APIs made easy.</li>
<li><a class="underline" href="https://github.com/sachinraja/trpc-pokemon">sachinraja/trpc-pokemon</a> - public tRPC Pokemon API</li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.chooseyourframework.dev/">Choose Your Framework</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.webpagetest.org/posts/removing-unused-preloads-on-festival-foods/">Improving Paint Metrics by Removing Unused Preloads</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.builder.io/blog/qwik-and-qwik-city-have-reached-beta">Qwik and Qwik City have reached beta!</a></li>
<li><a class="underline" href="https://picocss.com/">Pico.css</a> - Minimal CSS Framework for semantic HTML</li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://erock.prose.sh/typescript-terrible-for-library-developers">Typescript is terrible for library developers: We spend a disproportionate amount of time on types</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jmespath.org/">JMESPath</a> - JMESPath is a query language for JSON</li>
</ul>
<a href="#testing"><h2 class="inline" id="testing">Testing</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/CodeIntelligenceTesting/jazzer.js">CodeIntelligenceTesting/jazzer.js</a> - Coverage-guided, in-process fuzzing for the Node.js</li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://component-party.dev/">Component Party</a> - Comparison of components</li>
</ul>
]]></content></entry><entry><title>JSter #184: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-184"></link><id>jster-184</id><published>2022-09-02T11:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Mama always said life was like a box of JavaScript libraries</p>
</blockquote>
<p>A lot of libraries this time. That's all.</p>
<p>I also wrote documentation for my JSON based templating solution called <a class="underline" href="https://gustwind.js.org/breezewind/">Breezewind</a>. It's the core of jster.net and you can think it as a React inspired way to handle templates.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/bmoren/p5.collide2D">bmoren/p5.collide2D</a> - A collision detection library for 2D geometry in p5.js</li>
<li><a class="underline" href="https://fullcalendar.io/">FullCalendar</a> - The Most Popular JavaScript Calendar</li>
<li><a class="underline" href="https://github.com/developit/snarkdown">developit/snarkdown</a> - A snarky 1kb Markdown parser written in JavaScript</li>
<li><a class="underline" href="https://github.com/natemoo-re/ultrahtml">natemoo-re/ultrahtml</a> - A 1.75kB library for enhancing HTML</li>
<li><a class="underline" href="https://github.com/antlr/antlr4">ANTLR (ANother Tool for Language Recognition)</a> - A powerful parser generator for reading, processing, executing, or translating structured text or binary files</li>
<li><a class="underline" href="https://pinia.vuejs.org/">Pinia</a> - The Vue Store that you will enjoy using</li>
<li><a class="underline" href="https://github.com/JLCarveth/zjs">JLCarveth/zjs</a> - Yet Another JavaScript Runtime</li>
<li><a class="underline" href="https://github.com/validatorjs/validator.js">validator.js</a> - String validation</li>
<li><a class="underline" href="https://github.com/LyraSearch/lyra">LyraSearch/lyra</a> - Fast, in-memory, typo-tolerant, full-text search engine written in TypeScript</li>
<li><a class="underline" href="https://github.com/natemoo-re/ultrafetch">natemoo-re/ultrafetch</a> - RFC-7234 compliant caching for any <code>fetch</code> implementation</li>
<li><a class="underline" href="https://github.com/lxsmnsyc/waystone">lxsmnsyc/waystone</a> - MPAs that feels like SPAs</li>
<li><a class="underline" href="https://millionjs.org/">Million.js</a> - Virtual DOM into the future</li>
<li><a class="underline" href="https://superchargejs.com/docs/3.x/promise-pool">Promise pool</a></li>
<li><a class="underline" href="https://github.com/ferdikoomen/openapi-typescript-codegen">ferdikoomen/openapi-typescript-codegen</a> - NodeJS library that generates TypeScript or JavaScript clients based on the OpenAPI specification</li>
</ul>
<a href="#react"><h2 class="inline" id="react">React</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/jed/wc-jsx-runtime">jed/wc-jsx-runtime</a> - A JSX transform for Web Components</li>
<li><a class="underline" href="https://akx.github.io/react-curved-input/">react-curved-input</a></li>
<li><a class="underline" href="https://github.com/Shopify/react-native-skia">Shopify/react-native-skia</a> - High-performance React Native Graphics using Skia</li>
<li><a class="underline" href="https://github.com/dai-shi/react-hooks-global-state">dai-shi/react-hooks-global-state</a> - Simple global state for React with Hooks API without Context API</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://tauri.app/">Tauri</a> - Build smaller, faster, and more secure desktop applications with a web frontend</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dev.to/this-is-learning/the-javascript-paradox-2njj">The JavaScript Paradox</a></li>
<li><a class="underline" href="https://www.zachleat.com/web/build-benchmark/">Which generator builds Markdown the fastest?</a></li>
<li><a class="underline" href="https://dev-tester.com/check-your-sites-performance-with-artillery-and-playwright/">Check Your Site’s Performance With Artillery and Playwright</a></li>
<li><a class="underline" href="https://codemix.com/opaque-types-in-javascript/">Stronger JavaScript with Opaque Types</a></li>
<li><a class="underline" href="https://dev.to/jakobjingleheimer/custom-esm-loaders-who-what-when-where-why-how-4i1o">Custom ESM loaders: Who, what, when, where, why, how</a></li>
<li><a class="underline" href="https://betterprogramming.pub/rendering-dynamic-remote-containers-in-a-react-micro-frontend-1dd97019824f">Rendering Dynamic Remote Containers in a React Micro Frontend</a></li>
<li><a class="underline" href="https://jakearchibald.com/2022/img-aspect-ratio/">Avoiding <img> layout shifts: aspect-ratio vs width & height attributes</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://snyk.io/blog/slidev-101-coding-presentations-with-markdown/">Slidev 101: Coding presentations with Markdown</a></li>
<li><a class="underline" href="https://www.npmjs.com/package/npkill">npkill</a> - High-performance React Native Graphics using Skia</li>
<li><a class="underline" href="https://github.com/alloc/indo">alloc/indo</a> - More flexible monorepos</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.bitsrc.io/getting-started-with-fresh-the-new-deno-framework-47ac30545891">Getting started with Fresh: The New Deno Framework</a></li>
</ul>
]]></content></entry><entry><title>JSter #183: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-183"></link><id>jster-183</id><published>2022-08-03T11:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>When things are too dangerous to say, JavaScript.</p>
</blockquote>
<p>It's that time of the month again, JSter-time.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/pakastin/maze">pakastin/maze</a> - Maze generation visualization</li>
<li><a class="underline" href="https://www.ficusjs.org/">Ficus</a> - Lightweight libraries and tools for building modern web applications</li>
<li><a class="underline" href="https://github.com/srmagura/real-cancellable-promise">srmagura/real-cancellable-promise</a> - Cancellable promise library for JavaScript and TypeScript</li>
<li><a class="underline" href="https://github.com/react-hookz/web">react-hookz/web</a> - React hooks done right, for browser and SSR</li>
<li><a class="underline" href="https://ahooks.js.org/">ahooks</a> - A high-quality & reliable React Hooks library</li>
<li><a class="underline" href="https://github.com/maraisr/piecemeal">maraisr/piecemeal</a> - Send your data piecemeal</li>
<li><a class="underline" href="https://css-variable.js.org/">CSS Variable</a> - CSS Variables for your CSS-in-JS solution</li>
<li><a class="underline" href="https://formidable.com/open-source/react-native-zephyr/">React Native Zephyr</a> - TailwindCSS-inspired styling library for React Native</li>
<li><a class="underline" href="https://starbeamjs.com/">Starbeam</a> - Reactivity Made Simple and Fun</li>
<li><a class="underline" href="https://github.com/kwhitley/itty-router">kwhitley/itty-router</a> - A little router</li>
<li><a class="underline" href="https://nanojsx.io/">Nano JSX</a> - Lightweight 1kB JSX library</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://vestjs.dev/">Vest Validations Framework</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/unjs/unbuild">unjs/unbuild</a> - An unified javascript build system</li>
<li><a class="underline" href="https://bun.sh/">Bun is a fast all-in-one JavaScript runtime</a></li>
<li><a class="underline" href="https://github.com/gemini-testing/hermione">gemini-testing/hermione</a> - Browser test runner based on mocha and wdio</li>
<li><a class="underline" href="https://vitejs.dev/blog/announcing-vite3.html">Vite 3.0 is out!</a> - Faster, better, stronger bundler for the modern web</li>
<li><a class="underline" href="https://github.com/esbuild-kit/tsx">esbuild-kit/tsx</a> - TypeScript Execute (tsx): Node.js enhanced with esbuild to run TypeScript & ESM</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://nolanlawson.com/2022/06/27/spas-theory-versus-practice/">SPAs: theory versus practice</a></li>
<li><a class="underline" href="https://dev.to/tigt/making-the-worlds-fastest-website-and-other-mistakes-56na">Making the world's fastest website, and other mistakes</a></li>
<li><a class="underline" href="https://dev.to/this-is-learning/patterns-for-building-javascript-websites-in-2022-5a93">Patterns for Building JavaScript Websites in 2022</a></li>
<li><a class="underline" href="https://www.vidocsecurity.com/blog/hacking-swagger-ui-from-xss-to-account-takeovers/">Hacking Swagger-UI - from XSS to account takeovers</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.theodo.com/2022/07/simplify-your-applications-with-xstate/">Simplify your full-stack applications with XState</a></li>
<li><a class="underline" href="https://liveblocks.io/blog/how-to-animate-multiplayer-cursors">How to animate multiplayer cursors</a></li>
<li><a class="underline" href="https://deno.com/blog/wasmbuild">wasmbuild</a> - Using Rust in Deno and Web Apps</li>
<li><a class="underline" href="https://whistlr.info/2022/abortcontroller-is-your-friend/">AbortController is your friend</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://curl-flow.vercel.app/">Curl Flow</a></li>
<li><a class="underline" href="https://willymaps.github.io/spoke/">Hub and spoke</a></li>
</ul>
]]></content></entry><entry><title>JSter #182: Libraries, articles, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-182"></link><id>jster-182</id><published>2022-07-06T11:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript is a tool. They think I'm hiding in the shadows. But I am the shadows.</p>
</blockquote>
<p>It's time another JSter post. If you follow through <a class="underline" href="https://buttondown.email/jster">the mailing list</a>, then you'll notice the mail looks different now. That's because I moved to a service called Buttondown to simplify my workflow.</p>
<p>As a result, I might move back to a biweekly interval maybe in the fall as now it's simply faster to author the posts.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/moappi/json2html">json2html</a> - Json2html is a lightning fast client side javascript HTML templating library with wrappers for both jQuery and Node.js</li>
<li><a class="underline" href="https://papanasi.js.org/">Papanasi</a> - UI library to use cross frameworks</li>
<li><a class="underline" href="https://github.com/duetds/date-picker">duetds/date-picker</a> - Open source version of Duet Design System accessible date picker</li>
<li><a class="underline" href="https://serratus.github.io/quaggaJS/">QuaggaJS, an advanced barcode-reader written in JavaScript</a></li>
<li><a class="underline" href="https://github.com/oslabs-beta/dangoDB">oslabs-beta/dangoDB</a> - A MongoDB ODM for Deno</li>
<li><a class="underline" href="https://github.com/thoughtbot/fishery">thoughtbot/fishery</a> - A library for setting up JavaScript objects as test data</li>
<li><a class="underline" href="https://casl.js.org/v5/en/">CASL.js</a> - Isomorphic Authorization JavaScript library</li>
<li><a class="underline" href="https://github.com/esamattis/react-zorm">esamattis/react-zorm</a> - Type-safe form for React using Zod</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.angular.io/angular-v14-is-now-available-391a6db736af">Angular v14 is now available</a></li>
<li><a class="underline" href="https://markdoc.io/">Markdoc</a> - A powerful, flexible, Markdown-based authoring framework</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/colinhacks/zod">colinhacks/zod</a> - TypeScript-first schema validation with static type inference</li>
<li><a class="underline" href="https://deepkit.io/">Deepkit</a> - High performance TypeScript framework</li>
<li><a class="underline" href="https://www.wwt.com/article/typescript-records-and-mapped-types">TypeScript Records and Mapped Types</a></li>
<li><a class="underline" href="https://stripe.com/blog/migrating-to-typescript">Migrating millions of lines of code to TypeScript</a></li>
<li><a class="underline" href="https://devblogs.microsoft.com/typescript/announcing-typescript-4-7/">Announcing TypeScript 4.7</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://syntactic-sugar.dev/blog/nested-route/dependency-injection">Dependency Injection</a></li>
<li><a class="underline" href="https://changelog.com/news/run-the-latest-sqlite-beta-directly-in-your-web-browser-Zowk">Run the latest SQLite beta directly in your web browser</a></li>
<li><a class="underline" href="https://www.vendure.io/blog/2022/05/lightning-fast-headless-commerce-with-vendure-and-remix/">Lightning Fast Headless Commerce with Vendure and Remix</a></li>
<li><a class="underline" href="https://snyk.io/blog/5-ways-to-prevent-code-injection-in-javascript-and-node-js/">5 ways to prevent code injection in JavaScript and Node.js</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://developer.mozilla.org/en-US/docs/Learn/Forms">Web forms</a> - Working with user data</li>
<li><a class="underline" href="https://hoten.cc/blog/porting-zelda-classic-to-the-web/">Porting Zelda Classic to the Web</a></li>
<li><a class="underline" href="https://www.builder.io/blog/hydration-is-pure-overhead">Hydration is Pure Overhead</a></li>
<li><a class="underline" href="https://hire.jonasgalvez.com.br/2022/may/02/the-thing-about-fastify/">The Thing About Fastify</a></li>
<li><a class="underline" href="https://riffle.systems/essays/prelude/">Building data-centric apps with a reactive relational database</a></li>
<li><a class="underline" href="https://deno.com/blog/announcing-wintercg">Announcing the Web-interoperable Runtimes</a></li>
<li><a class="underline" href="https://fettblog.eu/the-road-to-universal-javascript/">The road to universal JavaScript</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.w3.org/WAI/ARIA/apg/">ARIA Authoring Practices Guide</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/postcss/postcss-media-minmax">postcss/postcss-media-minmax</a> - Writing simple and graceful Media Queries</li>
<li><a class="underline" href="https://storybook.js.org/blog/storybook-6-5/">Storybook 6.5</a></li>
<li><a class="underline" href="https://capri.build/">Capri</a> - Build static sites with interactive islands</li>
<li><a class="underline" href="https://www.cypress.io/blog/2022/06/01/cypress-10-release/">Announcing Cypress 10 with Component Testing Beta!</a></li>
<li><a class="underline" href="https://pre-commit.com/">pre-commit</a> - A Framework For Managing And Maintaining Multi Language Pre Commit Hooks</li>
</ul>
]]></content></entry><entry><title>JSter #181: Libraries, articles, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-181"></link><id>jster-181</id><published>2022-06-03T11:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>It's the JavaScript that I don't know that gets to me</p>
</blockquote>
<p>To my horror, I noticed early this week that <a class="underline" href="https://jster.net/">jster.net</a> is down. It turns out the server had gone offline. The original service was hosted in Ukraine and I imagine something bad happened. That meant I had to finish and deploy the new version on a sufficient level.</p>
<p>The new site is far faster than the old one as it's fully static. It doesn't have full feature parity with the old one yet and I'm restoring it bit by bit. That said, the index and the blog posts are up although you may notice something not rendering in a post for example.</p>
<p>On the plus side, <a class="underline" href="https://gustwind.js.org/">the new stack</a> is fairly nice and it renders fast. It takes about six seconds on my computer to render 3000 pages and roughly 10 seconds on Cloudflare Pages infrastructure (not counting Deno installation).</p>
<p>The process hasn't been fully optimized yet so that's a good sign in case I want to grow the index one day and then there are more tricks like incremental compilation and using edge workers to generate pages dynamically on demand.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/wooorm/starry-night">wooorm/starry-night</a> - Syntax highlighting, like GitHub</li>
<li><a class="underline" href="https://previewjs.com/">Preview.js</a> - Preview UI components in your IDE instantly</li>
<li><a class="underline" href="https://pchen66.github.io/Panolens/">Panolens.js</a> - A JavaScript panorama viewer</li>
<li><a class="underline" href="https://github.com/yjs/yjs">yjs</a> - Shared data types for building collaborative software</li>
<li><a class="underline" href="https://github.com/coder/code-server">coder/code-server</a> - VS Code in the browser</li>
<li><a class="underline" href="https://github.com/terotests/robowatch">terotests/robowatch</a> - Directory event watch with configuration</li>
<li><a class="underline" href="https://zagjs.com/">Zag</a> - UI components powered by Finite State Machines</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://docs.flutter.dev/whats-new#may-11-2022-google-io-edition-flutter-3-release">Flutter 3 is available</a></li>
<li><a class="underline" href="https://engineering.fb.com/2022/05/11/open-source/jest-openjs-foundation/">Meta Open Source is transferring Jest to the OpenJS Foundation</a></li>
<li><a class="underline" href="https://slinkity.dev/">Slinkity</a> - To eleventy and beyond</li>
<li><a class="underline" href="https://github.com/metissio/metiss">metiss</a> - Eliminate bugs via intelligent tests generation</li>
<li><a class="underline" href="https://github.com/usmanyunusov/nano-staged">usmanyunusov/nano-staged</a> - Tiny tool to run commands for modified, staged, and committed files in a GIT repository</li>
<li><a class="underline" href="https://github.com/projen/projen">projen</a> - A new generation of project generators</li>
<li><a class="underline" href="https://github.com/eemeli/ibid">eemeli/ibid</a> - Tools to automate your releases and changelogs, esp. for monorepos</li>
<li><a class="underline" href="https://github.com/ericclemmons/click-to-component">ericclemmons/click-to-component</a> - Option+Click React components in your browser to instantly open the source in VS Code</li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.slideshare.net/bebraw/the-future-is-mostly-static">The future is mostly static</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jason.today/falling-sand">Making a falling sand simulator</a></li>
<li><a class="underline" href="https://blog.openreplay.com/moving-from-next-to-remix/">Moving from Next to Remix</a></li>
<li><a class="underline" href="https://tinyclouds.org/javascript_containers">JavaScript Containers</a></li>
<li><a class="underline" href="https://dev.to/busypeoples/notes-on-advanced-typescript-runtime-validations-5b">Notes on Advanced TypeScript: Runtime Validations</a></li>
<li><a class="underline" href="https://hoten.cc/blog/porting-zelda-classic-to-the-web/">Porting Zelda Classic to the Web</a></li>
<li><a class="underline" href="https://www.ideamotive.co/blog/backbone.js-vs-react-what-to-choose-for-your-front-end">Backbone.js vs React</a></li>
<li><a class="underline" href="https://www.jackfranklin.co.uk/blog/working-with-react-and-the-web-platform/">Why I don't miss React: a story about using the platform</a></li>
<li><a class="underline" href="https://monorepo.tools/">Monorepo Explained</a></li>
<li><a class="underline" href="https://uxdesign.cc/supercharge-your-design-system-with-design-tokens-55044fa29142">Supercharge your Design System with Design Tokens</a></li>
</ul>
<a href="#security"><h2 class="inline" id="security">Security</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.blog/2022-05-26-npm-security-update-oauth-tokens/">npm security update: Attack campaign using stolen OAuth tokens</a></li>
<li><a class="underline" href="https://snyk.io/blog/jedi-lessons-to-level-up-javascript-security/">3 Jedi-inspired lessons to level up your JavaScript security</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/jantimon/next-relay-demo">jantimon/next-relay-demo</a> - Relay React Concurrency Example</li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://ts-error-translator.vercel.app/">TypeScript Error Translator</a></li>
</ul>
<a href="#aricles"><h2 class="inline" id="aricles">Aricles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://cpojer.net/posts/building-a-javascript-bundler">Building a JavaScript Bundler</a></li>
</ul>
<a href="#books"><h2 class="inline" id="books">Books</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://mitpress.mit.edu/books/structure-and-interpretation-computer-programs-1">Structure and Interpretation of Computer Programs</a> - Now in JavaScript</li>
</ul>
<a href="#icons"><h2 class="inline" id="icons">Icons</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://tabler-icons.io/">Tabler Icons: over 1950 vector icons for web design</a></li>
</ul>
<a href="#standards"><h2 class="inline" id="standards">Standards</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://web.dev/constructable-stylesheets/">Constructable Stylesheets</a></li>
</ul>
]]></content></entry><entry><title>JSter #180: Libraries, articles, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-180"></link><id>jster-180</id><published>2022-05-03T11:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>If we don't JavaScript, no one will</p>
</blockquote>
<p>Another month went by very fast. Perhaps the biggest news of the month is that the popular monorepo tool Lerna reached its end of life and won't be actively maintained anymore. If you are still using it, it's worth looking into options.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/gvergnaud/ts-pattern">gvergnaud/ts-pattern</a> - The exhaustive Pattern Matching library for TypeScript, with smart type inference</li>
<li><a class="underline" href="https://hackaday.com/2021/08/24/sqlite-on-the-web-absurd-sql/">SQLite On The Web: Absurd-sql</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://pyscript.net/">PyScript</a> - Python but in browser</li>
<li><a class="underline" href="https://qifi.org/">pure JS WiFi QR Code Generator</a></li>
<li><a class="underline" href="https://github.com/ghiscoding/lerna-lite">ghiscoding/lerna-lite</a> - Automate your workspace version & publish by using conventional-changelog-commits</li>
<li><a class="underline" href="https://github.com/lerna/lerna">lerna</a> - Lerna has reached end of life</li>
<li><a class="underline" href="https://retheme.org/">Retheme.org</a> - The internet without ads</li>
<li><a class="underline" href="https://jestjs.io/blog/2022/04/25/jest-28">Jest 28: Shedding weight and improving compatibility 🫶</a></li>
<li><a class="underline" href="https://nodejs.org/en/blog/announcements/v18-release-announce/">Node.js 18 is now available!</a></li>
<li><a class="underline" href="https://github.com/dutiyesh/chrome-extension-cli">dutiyesh/chrome-extension-cli</a> - The CLI for your next Chrome Extension</li>
<li><a class="underline" href="https://github.com/BuilderIO/mitosis">BuilderIO/mitosis</a> - Write components once, run everywhere. Compiles to Vue, React, Solid, Angular, Svelte, and more</li>
<li><a class="underline" href="https://storybook.js.org/blog/storybook-lazy-compilation-for-webpack/">Storybook Lazy Compilation for Webpack</a></li>
<li><a class="underline" href="https://astexplorer.net/">AST explorer</a></li>
<li><a class="underline" href="https://rome.tools/blog/2022/04/05/rome_formatter_release">Rome formatter is now available</a></li>
<li><a class="underline" href="https://astro.build/blog/astro-1-beta-release/">Astro (static site generator) 1.0 Beta Release</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.simform.com/blog/build-real-time-apps-node-js/">How to Build Real-time App with Node.js</a></li>
<li><a class="underline" href="https://blog.sapegin.me/til/javascript/transpiling-esm-in-node-modules/">Transpiling ESM files inside node_modules</a></li>
<li><a class="underline" href="https://hackernoon.com/use-indexeddb-with-idb-a-1kb-library-that-makes-it-easy-8p1f3yqq">How to use idb, a 1kb package that makes IndexedDB easy</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://ultrajs.dev/">Ultra: Un-bundle the Web</a></li>
<li><a class="underline" href="https://lexical.dev/">Lexical</a> - An extensible text editor framework that does things differently</li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://oscarotero.com/deno/">Deno Cheat Sheet</a></li>
<li><a class="underline" href="https://uxdesign.cc/naming-design-tokens-9454818ed7cb">The Practical Guide to Naming Design Tokens</a></li>
<li><a class="underline" href="https://www.ideamotive.co/node/guide">Node.js Development Business Guide</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.offerzen.com/blog/how-typescript-boosts-productivity">How I use TypeScript to Boost My Productivity</a></li>
<li><a class="underline" href="https://blog.sapegin.me/all/react-native-components/">Writing cross-platform components for web and React Native</a></li>
<li><a class="underline" href="https://nooshu.com/blog/2021/03/14/setting-up-cloudflare-workers-for-web-performance-optimisation-and-testing/">Setting up Cloudflare Workers for web performance optimisation and testing</a></li>
<li><a class="underline" href="https://dev.to/madsstoumann/frontend-security-npm-audit-and-script-integrity-kl3">Frontend Security: npm-audit and Script integrity</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://mythbusters.js.org/">MythBusters JS</a> - Busting JS myths</li>
</ul>
<a href="#design-systems"><h2 class="inline" id="design-systems">Design Systems</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://viljamis.com/2022/launching-nord-design-system/">Launching Nord Design System</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://arnofiva.github.io/world-sizes/">World Sizes</a></li>
</ul>
]]></content></entry><entry><title>JSter #179: Libraries, articles, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-179"></link><id>jster-179</id><published>2022-04-04T11:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>The JavaScript must flow</p>
</blockquote>
<p>I've been working on the <a class="underline" href="https://sidewind.js.org/ssr/">SSR capabilities of Sidewind</a> to prepare for the launch of the next version of jster.net. Let's see if I can get that live before the next mail.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/porsager/postgres">porsager/postgres</a> - The Fastest full featured PostgreSQL client for Node.js and Deno</li>
<li><a class="underline" href="https://github.com/capsidjs/capsid">capsidjs/capsid</a> - Declarative DOM programming library. Lightweight (1.79 kb)</li>
<li><a class="underline" href="https://github.com/phiresky/sql.js-httpvfs">phiresky/sql.js-httpvfs</a> - sql.js is a light wrapper around SQLite compiled with EMScripten for use in the browser</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://vanillaframework.io/">Vanilla</a> - A simple, extensible CSS framework</li>
<li><a class="underline" href="https://github.com/robtweed/golgi">robtweed/golgi</a> - Dynamically-loading WebComponent Assembly UI Framework</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/mbalabash/sdc-check">mbalabash/sdc-check</a> - Easy-to-use tool to inform you about potential risks in your project dependencies list</li>
<li><a class="underline" href="https://histoire.dev/">Histoire</a> - Fast stories powered by Vite</li>
</ul>
<a href="#environments"><h2 class="inline" id="environments">Environments</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://natto.dev/">natto</a> - A spatial environment in JavaScript</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://stars.chromeexperiments.com/">100,000 Stars</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://alexkondov.com/tao-of-node/">Tao of Node</a></li>
<li><a class="underline" href="https://snyk.io/blog/peacenotwar-malicious-npm-node-ipc-package-vulnerability/">Alert: peacenotwar module sabotages npm developers in the node-ipc package to protest the invasion of Ukraine</a></li>
<li><a class="underline" href="https://dev.to/progrium/native-apps-faster-than-electron-using-hostbridge-build-11jc">Native apps faster than Electron using hostbridge build</a></li>
<li><a class="underline" href="https://web.dev/interop-2022/">Interop 2022: browsers working together to improve the web for developers</a></li>
</ul>
<a href="#react"><h2 class="inline" id="react">React</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/4Catalyzer/found">4Catalyzer/found</a> - Extensible route-based routing for React applications</li>
<li><a class="underline" href="https://www.ladle.dev/">Ladle</a> - Develop and test your React stories faster</li>
<li><a class="underline" href="https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html">How to Upgrade to React 18</a></li>
<li><a class="underline" href="https://sim51.github.io/react-sigma/">React Sigma</a> - Render graphs with React</li>
<li><a class="underline" href="https://mantine.dev/">Mantine</a> - A fully featured React components library</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://betterprogramming.pub/runtime-data-validation-from-typescript-interfaces-1001ad22e775">Runtime Data Validation from TypeScript Interfaces</a></li>
<li><a class="underline" href="https://css-tricks.com/the-selectmenu-element/">The selectmenu HTML Tag</a></li>
<li><a class="underline" href="https://surma.dev/things/webgpu/">WebGPU</a> - All of the cores, none of the canvas</li>
<li><a class="underline" href="https://vercel.com/blog/monorepos-are-changing-how-teams-build-software">Monorepos are changing how teams build software</a></li>
</ul>
<a href="#proposals"><h2 class="inline" id="proposals">Proposals</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://devblogs.microsoft.com/typescript/a-proposal-for-type-syntax-in-javascript/">A Proposal For Type Syntax in JavaScript</a></li>
</ul>
]]></content></entry><entry><title>JSter #178: Libraries, articles, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-178"></link><id>jster-178</id><published>2022-03-03T11:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>It's not just a signal, it's JavaScript</p>
</blockquote>
<p>There are no words for what's happening in Ukraine right now. I can only hope the situation finds a peaceful resolution as soon as possible. That said, here's a monthly list of JavaScript links to study.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://braid.org/">Braid</a> - Synchronization for HTTP</li>
<li><a class="underline" href="https://github.com/cosinekitty/astronomy">cosinekitty/astronomy</a> - Astronomy Engine: multi-language calculation of Sun, Moon, and planet positions. Predicts lunar phases, eclipses, transits, oppositions, conjunctions, equinoxes, solstices, rise/set times, and other events. Provides vector and angular coordinate transforms among equatorial, ecliptic, and horizontal orientations.</li>
<li><a class="underline" href="https://github.com/fdaciuk/conduit-api">fdaciuk/conduit-api</a> - API for Real World App project (Conduit) using Node.js + TS with Functional Programming</li>
<li><a class="underline" href="https://github.com/matthewp/haunted">matthewp/haunted</a> - React's Hooks API implemented for web components</li>
<li><a class="underline" href="https://www.npmjs.com/package/classname-variants">classname-variants</a> - Stitches-like variant API for plain class names</li>
<li><a class="underline" href="https://www.npmjs.com/package/googlemaps-react-primitives">googlemaps-react-primitives</a> - Google Maps primitives for React</li>
<li><a class="underline" href="https://www.npmjs.com/package/react-api-query">react-api-query</a> - Hooks to use react-query with a typed API client</li>
<li><a class="underline" href="https://okazari.github.io/Rythm.js/">Rythm.js</a> - A JavaScript library that makes your page dance</li>
<li><a class="underline" href="https://github.com/terotests/numbot">terotests/numbot</a> - A configurable parser for text based logs</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/raimohanska/harmaja">raimohanska/harmaja</a> - Experimental frontend framework</li>
<li><a class="underline" href="https://github.com/BuilderIO/qwik">BuilderIO/qwik</a> - The HTML-first framework. Initialize apps of any size with < 1kb JS</li>
<li><a class="underline" href="https://github.com/pankod/refine">pankod/refine</a> - refine is a React-based headless framework for building data-intensive applications in no time ✨ It ships with Ant Design System, an enterprise-level UI toolkit.</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.benmvp.com/blog/filtering-undefined-elements-from-array-typescript/">Filtering undefined elements from an array in TypeScript</a></li>
</ul>
<a href="#security"><h2 class="inline" id="security">Security</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/Simek/yarn-lock-changes">Simek/yarn-lock-changes</a> - Creates a comment inside Pull Request with the human-readable summary of changes to the Yarn lock file</li>
<li><a class="underline" href="https://dev.to/kozlovzxc/injecting-backdoors-to-npm-packages-a0k">Injecting backdoors to NPM packages</a></li>
<li><a class="underline" href="https://enarx.dev/">Enarx</a> - WebAssembly + Confidential Computing</li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dev.to/thormeier/dont-try-this-at-home-css-as-the-backend-what-3oih">Don't try this at home: CSS <em>as</em> the backend - introducing Cascading Server Sheets!</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://2021.stateofjs.com/en-us/">The State of JS 2021</a></li>
<li><a class="underline" href="https://betterprogramming.pub/how-onchange-differs-between-react-and-vanilla-javascript-90b56d6a340a">How onChange Differs Between React and Vanilla JavaScript</a></li>
<li><a class="underline" href="https://dmitripavlutin.com/parseint-mystery-javascript/">Solving a Mystery Behavior of parseInt() in JavaScript</a></li>
<li><a class="underline" href="https://dev.to/this-is-learning/why-efficient-hydration-in-javascript-frameworks-is-so-challenging-1ca3">Why Efficient Hydration in JavaScript Frameworks is so Challenging</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://shadows.brumm.af/">Smooth Shadow</a> - Smooth shadow generator</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://levelup.gitconnected.com/an-accessible-modal-dialog-with-html-css-and-javascript-d885004d0b3a">An Accessible Modal Dialog with HTML, CSS, and JavaScript</a></li>
<li><a class="underline" href="https://height.app/blog/guide-to-build-context-menus">Building like it's 1984: A comprehensive guide to creating intuitive context menus</a></li>
<li><a class="underline" href="https://gist.github.com/DavidWells/53518b3c12344952641dc81cc7599939">Using a JavaScript proxy as low code REST client</a></li>
</ul>
]]></content></entry><entry><title>JSter #177: Libraries, articles, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-177"></link><id>jster-177</id><published>2022-02-03T08:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript is the beginning of wisdom, not the end</p>
</blockquote>
<p>As I've been rewriting my websites, it has been good time for me to revisit basic topics like image manipulation. I delved into <a class="underline" href="https://github.com/survivejs/website-cf-assets">image manipulation with Cloudflare Images</a>. It's a topic that will need a blog post later and I still have to expand my solution to fit all my needs.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://messageformat.github.io/messageformat/">MessageFormat</a> - i18n Plural and Gender Capable Messages</li>
<li><a class="underline" href="https://github.com/esamattis/react-zorm">esamattis/react-zorm</a> - Type-safe <form> for React using Zod</li>
<li><a class="underline" href="https://fakerjs.dev/update.html#what-is-faker">An update from the Faker team</a></li>
<li><a class="underline" href="https://github.com/adelsz/pgtyped">adelsz/pgtyped</a> - Typesafe SQL in TypeScript</li>
<li><a class="underline" href="https://trpc.io/">tRPC</a> - End-to-end typesafe APIs made easy</li>
<li><a class="underline" href="https://peerjs.com/">PeerJS</a> - PeerJS simplifies WebRTC peer-to-peer data, video, and audio calls</li>
<li><a class="underline" href="https://rehype-pretty-code.netlify.app/">Rehype Pretty Code</a> - Beautiful code blocks for your MD/MDX docs</li>
<li><a class="underline" href="https://typesense.org/">Typesense</a> - Lightning-fast, Open Source Search</li>
<li><a class="underline" href="https://incepter.github.io/react-async-states/docs/intro/">react-async-states</a> - A multi-paradigm React state management library</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/yusukebe/hono">yusukebe/hono</a> - Ultrafast web framework for Cloudflare Workers</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://height.app/blog/guide-to-build-context-menus">Building like it's 1984: A comprehensive guide to creating intuitive context menus</a></li>
<li><a class="underline" href="https://kdy1.dev/posts/2022/1/tsc-go">I'm porting tsc to Go</a></li>
<li><a class="underline" href="https://oliverjash-me.vercel.app/2022/type-safe-routing-in-react-with-fp-ts-routing-part-1">Type-safe routing in React with <code>fp-ts-routing</code> (part 1)</a></li>
<li><a class="underline" href="https://www.swyx.io/no-controlled-forms">You May Not Need Controlled Form Components</a></li>
<li><a class="underline" href="https://byteofdev.com/posts/deno/">State of the Web: Deno</a></li>
<li><a class="underline" href="https://survivejs.com/blog/how-to-tame-dev-deps/">How to tame the devDependencies of your project?</a></li>
</ul>
<a href="#apis"><h2 class="inline" id="apis">APIs</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat">Intl.ListFormat</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/wader/fq">wader/fq</a> - jq for binary formats</li>
<li><a class="underline" href="https://github.com/weiran-zsd/dts-cli">weiran-zsd/dts-cli</a> - Zero-config CLI for TypeScript package development</li>
<li><a class="underline" href="https://turborepo.org/">Turborepo</a> - Monorepos supercharged</li>
<li><a class="underline" href="https://denoflare.dev/">Denoflare</a> - Fast and easy way to develop and deploy Cloudflare workers</li>
<li><a class="underline" href="https://github.com/AlexSergey/rockpack">Rockpack</a> - A simple solution for creating React Application with Server Side Rendering, bundling, linting, testing within 5 minutes</li>
<li><a class="underline" href="https://github.com/suchipi/suchibot">suchipi/suchibot</a> - A cross-platform AutoHotKey-like thing with TypeScript as its scripting language</li>
<li><a class="underline" href="https://tixy.land/">(t,i,x,y) => "creative code golfing"</a></li>
<li><a class="underline" href="https://generator.jspm.io/">Import Map Generator</a></li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://devblogs.microsoft.com/typescript/announcing-typescript-4-6-beta/">Announcing TypeScript 4.6 Beta</a></li>
</ul>
<a href="#graphql"><h2 class="inline" id="graphql">GraphQL</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://benzene.vercel.app/">hoangvvo/benzene</a> - Fast and minimal JavaScript GraphQL Server</li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://car.js.org/">Multiplayer 2d car game!</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://examples.deno.land/">Deno by Example</a></li>
<li><a class="underline" href="https://github.com/orta/TypeScript-TSServer-Plugin-Template">orta/TypeScript-TSServer-Plugin-Template</a></li>
</ul>
]]></content></entry><entry><title>JSter #176: Libraries, articles, and tools</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-176"></link><id>jster-176</id><published>2022-01-03T04:33:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>2022 - Only twos and zeros</p>
</blockquote>
<p>Welcome to 2022. Let's hope it's better than 2021.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/mnater/Hyphenopoly">mnater/Hyphenopoly</a> - Hyphenation for node and Polyfill for client-side hyphenation</li>
<li><a class="underline" href="https://malinajs.github.io/docs/">Malina.js</a> - Performant Svelte-style evaluator</li>
<li><a class="underline" href="https://svelte-intl-precompile.com/">Svelte Intl Precompile</a> - The i18n library for Svelte that analyzes and compiles your translations at build time</li>
<li><a class="underline" href="https://github.com/devongovett/tree-sitter-highlight">devongovett/tree-sitter-highlight</a> - A syntax highlighter for Node powered by Tree Sitter. Written in Rust.</li>
<li><a class="underline" href="https://www.theatrejs.com/">Theatre.js</a> - Theatre.js is a JavaScript animation library with a GUI. It animates the DOM, WebGL, and any other JavaScript variable.</li>
<li><a class="underline" href="https://github.com/Matsuuu/vanilla-rough-notation">Matsuuu/vanilla-rough-notation</a> - A Vanilla JS Web Component implementation of the Rough Notation library</li>
<li><a class="underline" href="https://roughjs.com/">Rough.js</a> - Create graphics with a hand-drawn, sketchy, appearance</li>
<li><a class="underline" href="https://open-ui.org/">Open UI</a> - The missing industry standard definition of UI</li>
<li><a class="underline" href="https://github.com/anttiviljami/human-filetypes">anttiviljami/human-filetypes</a> - Human-friendly categorisation of file types based on extension or MIME type</li>
<li><a class="underline" href="https://github.com/exhibitionist-digital/ultra">exhibitionist-digital/ultra</a> - Deno + React: No build, no bundle, all streaming</li>
<li><a class="underline" href="https://maplibre.org/">MapLibre</a> - Open-source mapping libraries for developers of web and mobile applications.</li>
<li><a class="underline" href="https://codesandbox.io/post/sandpack-announcement">Introducing Sandpack</a> - The core of CodeSandbox is open source now</li>
<li><a class="underline" href="https://floating-ui.com/">Floating UI</a> - Powerful positioning primitives</li>
<li><a class="underline" href="https://open-props.style/">Open Props: sub-atomic styles</a> - Supercharged CSS variables</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.axlight.com/posts/how-valtio-proxy-state-works-react-part/">How Valtio Proxy State Works (React Part)</a></li>
<li><a class="underline" href="https://philipwalton.com/articles/performant-a-b-testing-with-cloudflare-workers/">Performant A/B Testing with Cloudflare Workers</a></li>
<li><a class="underline" href="https://www.stefanjudis.com/blog/highlights-from-the-web-almanac-2021/">Highlights of the Web Almanac 2021</a></li>
<li><a class="underline" href="https://almanac.httparchive.org/en/2021/">The 2021 Web Almanac</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://vitest.dev/">Vitest</a> - A blazing fast unit-test framework powered by Vite</li>
<li><a class="underline" href="https://github.com/facebook/create-react-app/releases/tag/v5.0.0">facebook/create-react-app/releases/tag/v5.0.0</a> - CRA v5.0</li>
</ul>
]]></content></entry><entry><title>JSter #175: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-175"></link><id>jster-175</id><published>2021-12-03T07:49:41.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>The good, the bad, the JavaScript</p>
</blockquote>
<p>X-mas is getting closer. I've been iterating on <a class="underline" href="https://gustwind.js.org/">Gustwind</a> and on a conceptual level it's starting to feel solid. I still have add a couple of features to be able to host JSter site through it but the end is in sight.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://gist.github.com/RedstoneWizard22/d07b326a438dd0449758c263cebd0e82">promise-worker.ts</a> - Make web workers fun</li>
<li><a class="underline" href="https://strapi.io/v4">Strapi v4 stable is live</a> - Headless CMS for all</li>
<li><a class="underline" href="https://fusejs.io/">Fuse.js</a> - a powerful, lightweight fuzzy-search library, with zero dependencies</li>
<li><a class="underline" href="https://github.com/molefrog/wouter">molefrog/wouter</a> - A minimalist-friendly ~1.5KB routing for React and Preact. Nothing else but HOOKS</li>
<li><a class="underline" href="https://undici.nodejs.org/#/">Undici</a> - A HTTP/1.1 client, written from scratch for Node.js.</li>
<li><a class="underline" href="https://www.npmjs.com/package/jarle/v/2.0.0-beta.0">jarle</a> - Just Another React Live Editor</li>
<li><a class="underline" href="https://github.com/coston/react-super-responsive-table">coston/react-super-responsive-table</a> - Turn the tables on unresponsive data</li>
<li><a class="underline" href="https://github.com/g-plane/typed-query-selector">g-plane/typed-query-selector</a> - Better typed <code>querySelector</code> and <code>querySelectorAll</code>.</li>
<li><a class="underline" href="https://www.pollen.style/">Pollen</a> - Utility-first CSS for the future</li>
<li><a class="underline" href="https://github.com/davidkpiano/flipping">davidkpiano/flipping</a> - Flipping awesome animations</li>
<li><a class="underline" href="https://github.com/aholachek/animate-css-grid">aholachek/animate-css-grid</a> - Painless transitions for CSS Grid</li>
<li><a class="underline" href="https://github.com/Yomguithereal/obliterator">Yomguithereal/obliterator</a> - Higher order iterator library for JavaScript and TypeScript</li>
<li><a class="underline" href="https://mantine.dev/">Mantine</a> - A fully featured React components library</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.placemark.io/post/good-magic-with-typescript">Good magic with TypeScript</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/vercel/ncc">vercel/ncc</a> - Compile a Node.js project into a single file. Supports TypeScript, binary addons, dynamic requires</li>
<li><a class="underline" href="https://tamagui.dev/">Tamagui</a> - Universal React design systems that optimize for native & web</li>
<li><a class="underline" href="https://github.com/open-source-labs/reactime">open-source-labs/reactime</a> - Chrome developer tool and time-travel debugger for React applications (Gatsby and Next.js compatible)</li>
<li><a class="underline" href="https://testcafe.io/">TestCafe</a> - End-to-end testing, simplified</li>
<li><a class="underline" href="https://dubzzz.github.io/fast-check.github.com/">fast-check</a> - Property based testing</li>
</ul>
<a href="#graphics"><h2 class="inline" id="graphics">Graphics</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://phosphoricons.com/">Phosphor Icons</a></li>
</ul>
<a href="#tips"><h2 class="inline" id="tips">Tips</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/voxpelli/types-in-js">voxpelli/types-in-js</a> - Tips and tricks for working with types in JavaScript</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jakearchibald.com/2021/dom-cross-fade/">Cross-fading any two DOM elements is currently impossible</a></li>
<li><a class="underline" href="https://leerob.io/blog/rust">Rust Is The Future of JavaScript Infrastructure</a></li>
<li><a class="underline" href="https://webcomponents.dev/blog/all-the-ways-to-make-a-web-component/">All the Ways to Make a Web Component</a></li>
<li><a class="underline" href="https://medium.com/@johan.isaksson/how-i-made-googles-data-grid-scroll-10x-faster-with-one-line-of-css-78cb1e8d9cb1">How I made Google’s data grid scroll 10x faster with one line of CSS</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/ryanmcdermott/clean-code-javascript">ryanmcdermott/clean-code-javascript</a> - Clean Code concepts in JavaScript</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hydrogen.shopify.dev/">Hydrogen</a> - Shopify's opinionated framework for building headless ecommerce</li>
</ul>
]]></content></entry><entry><title>JSter #174: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-174"></link><id>jster-174</id><published>2021-11-02T04:46:56.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Release the JavaScript</p>
</blockquote>
<p>As I want to revamp JSter website, I've started a little project called <a class="underline" href="https://gustwind.js.org/">Gustwind</a>. It's a highly performant static site creator built with Deno. It will still take plenty of iteration to take the project where I want it but it's shaping up.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blobity.dev/">Blobity</a> - The cursor rethought</li>
<li><a class="underline" href="https://www.sigmajs.org/">Sigma.js</a> - JavaScript library aimed at visualizing graphs of thousands of nodes and edges</li>
<li><a class="underline" href="https://www.npmjs.com/package/@monaco-editor/react">@monaco-editor/react</a> - Monaco editor for React</li>
<li><a class="underline" href="https://dndkit.com/">dnd kit</a> - Modern drag and drop toolkit for React</li>
<li><a class="underline" href="https://github.com/matubu/speed_highlight_js">matubu/speed_highlight_js</a> - Light, fast, and easy to use, dependencies free javascript syntax highlighter</li>
<li><a class="underline" href="https://github.com/josdejong/jsoneditor">josdejong/jsoneditor</a> - A web-based tool to view, edit, format, and validate JSON</li>
<li><a class="underline" href="https://github.com/lucacasonato/fresh">lucacasonato/fresh</a> - Preact, but super edgy</li>
<li><a class="underline" href="https://github.com/automerge/automerge">automerge</a> - A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged again automatically</li>
<li><a class="underline" href="https://github.com/josdejong/workerpool">josdejong/workerpool</a> - Offload tasks to a pool of workers on node.js and in the browser</li>
<li><a class="underline" href="https://vizzuhq.com/">Vizzu</a> - JavaScript library for animated data stories and visualizations</li>
<li><a class="underline" href="https://rematchjs.org/">Rematch</a> - Rematch is Redux best practices without the boilerplate</li>
<li><a class="underline" href="https://mui.com/blog/mui-core-v5/">Introducing MUI Core v5.0</a> - The UI library for React has reached a new major version</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/akheron/typera">akheron/typera</a> - Type-safe routes for Express and Koa</li>
<li><a class="underline" href="https://www.cstrnt.dev/blog/three-typescript-tricks">3 TypeScript Tricks I wish I knew when I learned TypeScript</a></li>
<li><a class="underline" href="https://devblogs.microsoft.com/typescript/announcing-typescript-4-5-beta/">Announcing TypeScript 4.5 Beta</a></li>
<li><a class="underline" href="https://dev.to/phenomnominal/i-need-to-learn-about-typescript-template-literal-types-51po">I need to learn about TypeScript Template Literal Types</a></li>
</ul>
<a href="#books"><h2 class="inline" id="books">Books</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://serviceworke.rs/">ServiceWorker Cookbook</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/qawolf/qawolf">qawolf</a> - Create browser tests 10x faster</li>
<li><a class="underline" href="https://parceljs.org/blog/v2/">Announcing Parcel v2!</a></li>
<li><a class="underline" href="https://github.com/amzn/style-dictionary">amzn/style-dictionary</a> - A build system for creating cross-platform styles</li>
<li><a class="underline" href="https://lumeland.github.io/">Lume</a> - A static site generator for Deno</li>
<li><a class="underline" href="https://storybook.js.org/blog/storybook-on-demand-architecture/">Storybook on-demand architecture</a></li>
<li><a class="underline" href="https://github.com/nodejs/corepack">nodejs/corepack</a> - Zero-runtime-dependency package acting as bridge between Node projects and their package managers</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jakearchibald.com/2021/cors/">How to win at CORS</a></li>
<li><a class="underline" href="https://ishadeed.com/article/conditional-border-radius/">Conditional Border Radius In CSS</a></li>
<li><a class="underline" href="https://weser.io/blog/spacing-children-in-react">Spacing children in React</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jsben.ch/">jsben.ch</a> - Performance Benchmarking Playground for JavaScript</li>
</ul>
<a href="#standards"><h2 class="inline" id="standards">Standards</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://design-tokens.github.io/community-group/format/">Design Tokens Format Module</a></li>
</ul>
]]></content></entry><entry><title>JSter #173: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-173"></link><id>jster-173</id><published>2021-10-05T03:44:36.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript in space is a real thing</p>
</blockquote>
<p>We've completed this year's <a class="underline" href="https://react-finland.fi/2021/schedule/">React Finland</a> and the content is available online. Hopefully we can run a live event next year!</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/BuilderIO/partytown">BuilderIO/partytown</a> - Relocate resource intensive third-party scripts off of the main thread and into a web worker.</li>
<li><a class="underline" href="https://motion.dev/">Motion One: The Web Animations API for everyone</a></li>
<li><a class="underline" href="https://mp2.dk/techblog/chowjs/">ChowJS: an AOT JavaScript engine for game consoles</a></li>
<li><a class="underline" href="https://github.com/jamiemccrindle/axax">jamiemccrindle/axax</a> - Async Iterator Extensions for JavaScript e.g. map, reduce, filter, flatMap, etc.</li>
<li><a class="underline" href="https://github.com/simdjson/simdjson/releases/tag/v1.0.0">simdjson/simdjson/releases/tag/v1.0.0</a> - Parsing gigabytes of JSON per second</li>
<li><a class="underline" href="https://www.npmjs.com/package/modern-async">modern-async</a> - A modern JavaScript tooling library for asynchronous operations using async/await and promises</li>
<li><a class="underline" href="https://github.com/shikijs/shiki">shiki</a> - A beautiful Syntax Highlighter</li>
<li><a class="underline" href="https://github.com/plausible/analytics">plausible/analytics</a> - Simple, open-source, lightweight (< 1 KB) and privacy-friendly web analytics alternative to Google Analytics.</li>
<li><a class="underline" href="https://stitches.dev/">Stitches v1.0</a> - Style your components with confidence</li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://css-tricks.com/grainy-gradients/">Grainy Gradients</a></li>
<li><a class="underline" href="https://houdini.how/">Houdini.how</a> - How to implement features with Houdini</li>
<li><a class="underline" href="https://iamvdo.me/en/blog/css-font-metrics-line-height-and-vertical-align">Deep dive CSS: font metrics, line-height and vertical-align</a></li>
</ul>
<a href="#standards"><h2 class="inline" id="standards">Standards</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://workers.js.org/">Worker Environments</a> - Worker Environments are the new standard for writing HTTP servers in JavaScript.</li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://bundle.js.org/">bundle</a> - A quick npm package size checker</li>
<li><a class="underline" href="https://deno-visualizer.danopia.net/">Deno Visualizer</a></li>
</ul>
<a href="#design-systems"><h2 class="inline" id="design-systems">Design Systems</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://design-system.w3.org/">Welcome to the W3C design system</a></li>
<li><a class="underline" href="https://www.uiguideline.com/components">UI Guideline</a> - The definitive guide to standardize the design/code of the UI Components based on the 39 most popular Reference Systems.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/phoboslab/q1k3">phoboslab/q1k3</a> - A tiny FPS for js13k</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://geoffrich.net/posts/svelte-scoped-styles/">How Svelte scopes component styles</a></li>
<li><a class="underline" href="https://gist.github.com/robinpokorny/01019f85dc41fe6196f957a9d6c89480">Symbols explained</a></li>
<li><a class="underline" href="https://fettblog.eu/dissecting-deno/">Dissecting Deno</a></li>
<li><a class="underline" href="https://giuseppegurgone.com/twitter-html/">Twitter's div Soup and Uglyfied CSS, Explained</a></li>
<li><a class="underline" href="https://arstechnica.com/information-technology/2021/09/npm-package-with-3-million-weekly-downloads-had-a-severe-vulnerability/">NPM package with 3 million weekly downloads had a severe vulnerability</a></li>
<li><a class="underline" href="https://skorks.com/2011/09/why-developers-never-use-state-machines/">Why Developers Never Use State Machines</a></li>
<li><a class="underline" href="https://www.obvibase.com/dev-blog/i-ve-used-the-pipe-function-2-560-times-and-i-can-tell-you-it-s-good">I've used the pipe() function 2,560 times and I can tell you it's good!</a></li>
<li><a class="underline" href="https://dzone.com/articles/react-18-things-you-need-to-know-about-react-js-la">React 18: Things You Need To Know About React JS Latest Version</a></li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-4.html">TypeScript 4.4</a></li>
<li><a class="underline" href="https://itnext.io/parse-dont-validate-incoming-data-in-typescript-d6d5bfb092c8">Parse, don’t validate, incoming data in TypeScript.</a></li>
<li><a class="underline" href="https://react-typescript-cheatsheet.netlify.app/">React TypeScript Cheatsheets</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/houston-io/precise-control-fewer-bugs-statecharting-a-phone-input-field-829bba2571cd">Precise control, fewer bugs with statecharts</a></li>
</ul>
<a href="#starters"><h2 class="inline" id="starters">Starters</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/Epiczzor/r3f-template">Epiczzor/r3f-template</a> - A starter project for react-three-fiber and some more useful packages</li>
<li><a class="underline" href="https://github.com/Elliotclyde/esbuild-react-starter">Elliotclyde/esbuild-react-starter</a> - A super simple starter pack for esbuild and react</li>
</ul>
<a href="#videos"><h2 class="inline" id="videos">Videos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.youtube.com/watch?v=2iK9zzhSKo4">Ryan Carniato on SolidJS</a></li>
</ul>
<a href="#graphql"><h2 class="inline" id="graphql">GraphQL</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.dream11engineering.com/lessons-learned-from-running-graphql-at-scale-2ad60b3cefeb">Lessons learned from running GraphQL at scale</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://accessibilityinsights.io/">Accessibility Insights</a></li>
<li><a class="underline" href="https://github.com/leanupjs/leanup">leanup</a> - Generic CLI to develop, test and build a SPA/PWA (framework independently)</li>
<li><a class="underline" href="https://chrome.google.com/webstore/detail/responsive-viewer/inmopeiepgfljkpkidclfgbgbmfcennb">Responsive viewer for Chrome</a></li>
</ul>
]]></content></entry><entry><title>JSter #172: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-172"></link><id>jster-172</id><published>2021-08-30T04:00:20.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript shot first.</p>
</blockquote>
<p><a class="underline" href="https://react-finland.fi/">The week of React Finland</a> (30.08-03.09) is here. There will be a lot of content and many topics go beyond React so be sure to tune in.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://miragejs.com/">Mirage JS</a> - An API mocking library for frontend</li>
<li><a class="underline" href="https://github.com/perceived-dev/optimistic-state">perceived-dev/optimistic-state</a> - Optimistic state with rollbacks and race condition handling</li>
<li><a class="underline" href="https://www.telerik.com/blogs/whats-coming-react-18">What’s Coming in React 18</a></li>
<li><a class="underline" href="https://reactnavigation.org/blog/2021/08/14/react-navigation-6.0/">React Navigation 6.0</a></li>
<li><a class="underline" href="https://github.com/sindresorhus/p-queue">sindresorhus/p-queue</a> - Promise queue with concurrency control</li>
<li><a class="underline" href="https://github.com/polygonplanet/chillout">polygonplanet/chillout</a> - Reduce CPU usage by non-blocking async loop and psychologically speed up in JavaScript</li>
<li><a class="underline" href="https://daisyui.com/">daisyUI</a> - Tailwind CSS Components</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://milkdown.dev/">Milkdown</a> - Plugin Based WYSIWYG Markdown Editor Framework</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://devblogs.microsoft.com/typescript/announcing-the-new-typescript-homepage/">Announcing the New TypeScript Homepage</a></li>
<li><a class="underline" href="https://github.com/egoist/tsup">egoist/tsup</a> - The simplest and fastest way to bundle your TypeScript libraries.</li>
<li><a class="underline" href="https://devblogs.microsoft.com/typescript/announcing-typescript-4-4-rc/">Announcing TypeScript 4.4 RC</a></li>
<li><a class="underline" href="https://itnext.io/practical-introduction-to-algebraic-datatypes-adts-in-typescript-1cb6952e4c6d">Practical introduction to algebraic datatypes (ADTs) in TypeScript</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/lahmatiy/react-render-tracker">lahmatiy/react-render-tracker</a> - React render tracker – a tool to discover performance issues related to unintentional re-renders and unmounts</li>
<li><a class="underline" href="https://github.com/unjs/unplugin">unjs/unplugin</a> - Unified plugin system for Vite, Rollup, and Webpack</li>
<li><a class="underline" href="https://github.com/LingDong-/fishdraw">LingDong-/fishdraw</a> - Procedurally generated fish drawings</li>
<li><a class="underline" href="https://astro.build/">Astro</a> - Build faster websites with less client-side JavaScript</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.bitsrc.io/9-super-useful-tricks-for-javascript-developers-4fd7193e0ac">9 Super Useful Tricks for JavaScript Developers</a></li>
<li><a class="underline" href="https://www.freecodecamp.org/news/build-an-android-news-app-with-react-native-and-native-base/">How to Build an Android News App with React Native and Native Base</a></li>
<li><a class="underline" href="https://around25.com/blog/how-to-implement-push-notifications-in-react-native/">How to Set up Push Notifications in React Native</a></li>
<li><a class="underline" href="https://www.theregister.com/2021/08/06/edge_super_duper_security_mode/">Microsoft wonders if disabling just-in-time compilation of JavaScript improves browser security</a></li>
<li><a class="underline" href="https://matsu.fi/posts/writing-typed-javascript/">Writing JavaScript, but with types!</a></li>
<li><a class="underline" href="https://www.bleepingcomputer.com/news/software/empty-npm-package-has-over-700-000-downloads-heres-why/">Empty npm package '-' has over 700,000 downloads</a></li>
</ul>
<a href="#graphql"><h2 class="inline" id="graphql">GraphQL</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://the-guild.dev/blog/graphql-response-caching-with-envelop">GraphQL Response Caching with Envelop</a></li>
<li><a class="underline" href="https://gqty.dev/">GQty</a> - A GraphQL client built for rapid iteration</li>
<li><a class="underline" href="https://github.com/marmelab/json-graphql-server">marmelab/json-graphql-server</a> - Get a full fake GraphQL API with zero coding in less than 30 seconds.</li>
</ul>
]]></content></entry><entry><title>JSter #171: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-171"></link><id>jster-171</id><published>2021-08-03T10:32:35.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript is always there for you</p>
</blockquote>
<p>Later this month, React Finland 2021 takes place online. There are forty speakers lined up and by registering for free you'll gain access to our virtual online venue. <a class="underline" href="https://react-finland.fi/">Find out more at the conference site</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/remorses/smart-glob">remorses/smart-glob</a> - Glob search in constant time thanks to git cache</li>
<li><a class="underline" href="https://github.com/adamrisberg/react-image-magnifiers">adamrisberg/react-image-magnifiers</a> - A collection of responsive, image magnifying React components for mouse and touch.</li>
<li><a class="underline" href="https://github.com/salvoravida/recoil-toolkit">salvoravida/recoil-toolkit</a> - Helpers for Recoil, the next generation state management library</li>
<li><a class="underline" href="https://vanilla-extract.style/">vanilla-extract</a> - Zero-runtime Stylesheets in TypeScript</li>
<li><a class="underline" href="https://dinerojs.com/">Dinero.js</a> - Dinero.js is a library for working with monetary values in JavaScript</li>
<li><a class="underline" href="https://github.com/vuejs/petite-vue">vuejs/petite-vue</a> - 5kb subset of Vue optimized for progressive enhancement</li>
<li><a class="underline" href="https://github.com/Shakeskeyboarde/tsstyled">Shakeskeyboarde/tsstyled</a> - React visual primitives with first-class TypeScript support and a tiny footprint</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/Rabios/Pancake">Rabios/Pancake</a> - Lightweight, Fast, Easy-to-use HTML5 2D game framework!</li>
<li><a class="underline" href="https://dev.to/matfrana/react-cms-the-missing-link-3iok">React CMS: The missing link</a></li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/rauschma/async-off">rauschma/async-off</a> - Convert async TypeScript code to sync</li>
<li><a class="underline" href="https://github.com/trpc/trpc">trpc</a> - End-to-end typesafe APIs made easy</li>
<li><a class="underline" href="https://www.infoworld.com/article/3626459/typescript-44-brings-performance-boosts.html">TypeScript 4.4 brings performance boosts</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://moiva.io/">Moiva.io</a> - Evaluate and discover npm packages</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.scottlogic.com/2021/07/27/union-types-react-components.html">Better React Components with TypeScript Union Types</a></li>
<li><a class="underline" href="https://buttercms.com/blog/angular-seo-how-to-make-search-friendly-pages">Angular SEO: How to make Search Friendly pages</a></li>
<li><a class="underline" href="https://www.thisdot.co/blog/how-to-implement-an-event-bus-in-typescript/">How to Implement an Event Bus in TypeScript</a></li>
<li><a class="underline" href="https://learnui.design/blog/tips-signup-login-ux.html">15 Tips for Better Signup / Login UX (Illustrated)</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://simonwillison.net/2021/Jul/28/baked-data/">The Baked Data architectural pattern</a></li>
<li><a class="underline" href="https://threatpost.com/npm-package-steals-chrome-passwords/168004/">NPM Package Steals Chrome Passwords</a></li>
<li><a class="underline" href="https://evilmartians.com/chronicles/what-i-learned-as-a-developer-from-accidents-in-space">What I learned as a developer from accidents in space</a></li>
<li><a class="underline" href="https://acko.net/blog/climbing-mt-effect/">Climbing Mount Effect</a></li>
<li><a class="underline" href="https://www.smashingmagazine.com/2021/06/web-workers-2021/">The State Of Web Workers In 2021</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dev.to/arcanis/yarn-3-0-performances-esbuild-better-patches-e07">Yarn 3.0 - Performances, ESBuild, Better Patches, ...</a></li>
<li><a class="underline" href="https://vitro.vercel.app/">Vitro</a> - Best way to build React components</li>
<li><a class="underline" href="https://evilmartians.com/chronicles/five-years-of-postcss-state-of-the-union">Five years of PostCSS: State of the Union</a></li>
<li><a class="underline" href="https://typedoc.org/">Type doc</a> - A documentation generator for TypeScript projects</li>
<li><a class="underline" href="https://github.com/hediet/vscode-delorean-js-debug">hediet/vscode-delorean-js-debug</a> - Step Back In (Pure) Functions</li>
<li><a class="underline" href="https://vitejs.dev/">Vite</a> - Lightning fast bundler</li>
</ul>
<a href="#cheatsheets"><h2 class="inline" id="cheatsheets">Cheatsheets</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://bootstrap-cheatsheet.themeselection.com/">Bootstrap 5 CheatSheet By ThemeSelection</a></li>
</ul>
]]></content></entry><entry><title>JSter #170: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-170"></link><id>jster-170</id><published>2021-07-05T08:27:20.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>One JavaScript - Shaken, not strirred</p>
</blockquote>
<p><a class="underline" href="https://react-finland.fi/blog/react-finland-2021/">React Finland 2021</a> will take place online 30.08-03.09 and we'll do live satellite events where possible. The main content will be freely available and we have a variety of workshops (most commercial) to choose from.</p>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://h3manth.com/ES2021/">ES2021 features list</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.graphql-modules.com/">GraphQL Modules</a> - Tooling for GraphQL servers</li>
<li><a class="underline" href="https://github.com/micromark/micromark">micromark</a> - The smallest commonmark compliant markdown parser that exists; new basis for @unifiedjs (hundreds of projects w/ billions of downloads for dealing w/ content)</li>
<li><a class="underline" href="https://packup.deno.dev/">Packup</a> - Packup is web application bundler for Deno, inspired by parcel</li>
<li><a class="underline" href="https://nextra.vercel.app/">Nextra</a> - Nextra is a Next.js based static site generator. 0 lines of code needed.</li>
<li><a class="underline" href="https://github.com/ToolJet/ToolJet">ToolJet</a> - An open-source no-code platform for building and deploying internal tools.</li>
<li><a class="underline" href="https://modern-web.dev/">Modern Web</a> - Guides, tools and libraries for modern web development.</li>
</ul>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/tdeekens/flopflip">flopflip</a> - Flip or flop features in your React application in real-time backed by flag provider of your choice</li>
<li><a class="underline" href="https://github.com/fwouts/react-screenshot-test">fwouts/react-screenshot-test</a> - A dead simple library to screenshot test React components</li>
<li><a class="underline" href="https://github.com/kevglass/gute">kevglass/gute</a> - Gute is a simple web games library</li>
<li><a class="underline" href="https://github.com/enquirer/enquirer">enquirer</a> - Stylish, intuitive and user-friendly prompts, for Node.js. Used by eslint, webpack, Generate, lint-staged, pm2, gluegun, hygen, GitHub Actions Toolkit, @airbnb/nimbus, and many others!</li>
<li><a class="underline" href="https://konvajs.org/index.html">Konva</a> - HTML5 2d canvas js library for desktop and mobile applications</li>
<li><a class="underline" href="https://github.com/TuSimple/naive-ui">TuSimple/naive-ui</a> - A Vue 3 Component Library. Fairly Complete. Customizable Themes. Uses TypeScript. Not too Slow.</li>
<li><a class="underline" href="https://github.com/sindresorhus/ow">sindresorhus/ow</a> - Function argument validation for humans</li>
<li><a class="underline" href="https://swiperjs.com">Swiper</a> - The Most Modern Mobile Touch Slider</li>
<li><a class="underline" href="https://github.com/tajo/react-range">tajo/react-range</a> - Range input with a slider. Accessible. Bring your own styles and markup.</li>
<li><a class="underline" href="https://www.npmjs.com/package/country-code-emoji">country-code-emoji</a> - Convert country codes to corresponding emojis</li>
<li><a class="underline" href="https://github.com/open-draft/until">open-draft/until</a> - Better async/await</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">Typescript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://devblogs.microsoft.com/typescript/announcing-typescript-4-3/">Announcing TypeScript 4.3</a></li>
<li><a class="underline" href="https://blog.openreplay.com/3-design-patterns-in-typescript-for-frontend-developers/">3 Design Patterns in TypeScript for Frontend Developers</a></li>
<li><a class="underline" href="https://souporserious.com/bundling-typescript-with-esbuild-for-npm/">Bundling TypeScript with Esbuild for NPM</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://developer.chrome.com/blog/memory-inspector/">Introducing the Memory Inspector</a></li>
<li><a class="underline" href="https://around25.com/blog/how-to-delegate-your-react-dialogs/">How to Delegate your React Dialogs</a></li>
<li><a class="underline" href="https://frontend-digest.com/using-playwright-to-test-next-js-applications-80a767540091">Testing Next.js with Playwright. My favourite new testing setup</a></li>
<li><a class="underline" href="https://jakearchibald.com/2021/serving-sharp-images-to-high-density-screens/">Half the size of images by optimising for high density displays</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://reactjs.org/blog/2021/06/08/the-plan-for-react-18.html">The Plan for React 18</a></li>
<li><a class="underline" href="https://mrale.ph/blog/2018/02/03/maybe-you-dont-need-rust-to-speed-up-your-js.html">Maybe you don't need Rust and WASM to speed up your JS</a></li>
<li><a class="underline" href="https://paulgray.net/pipeable-apis/">Pipeable APIs</a></li>
<li><a class="underline" href="https://cpojer.net/posts/building-a-javascript-testing-framework">Building a JavaScript Testing Framework</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/ihatereading-interview/">iHateReading - Where knowledge is shared - Interview with Shrey Vijayvargiya</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://remastered.hagever.com/">Remastered: a full-stack React framework</a></li>
</ul>
]]></content></entry><entry><title>JSter #169: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-169"></link><id>jster-169</id><published>2021-06-04T03:06:53.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript keeps on going</p>
</blockquote>
<p>Remember to tune in at the next <a class="underline" href="https://www.youtube.com/watch?v=AuwpOsrzHC8">React Finland vodcast</a> about design tools 29th of June 16:00 GMT+0.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/snackui/snackui">SnackUI</a> - SnackUI is a UI Kit for React Native + react-native-web that's much faster with an optimizing compiler</li>
<li><a class="underline" href="https://www.npmjs.com/package/safety-match">safety-match</a> - safety-match provides pattern matching for JavaScript, TypeScript, and Flow</li>
<li><a class="underline" href="https://github.com/gvergnaud/ts-pattern">gvergnaud/ts-pattern</a> - An exhaustive Pattern Matching library for TypeScript, with smart type inference</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.vendure.io/blog/2021/05/announcing-vendure-v1.0/">Announcing Vendure v1.0</a> - TS-friendly open source e-commerce framework</li>
<li><a class="underline" href="https://blog.getbootstrap.com/2021/05/05/bootstrap-5/">Bootstrap 5</a> - The popular CSS framework has reached a new milestone</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/devongovett/dprint-node">devongovett/dprint-node</a> - Like Prettier but 20x faster</li>
<li><a class="underline" href="https://orval.dev/">orval</a> - Generate client with appropriate type-signatures</li>
<li><a class="underline" href="https://blog.typicode.com/husky-git-hooks-javascript-config/">Why husky has dropped conventional JS config</a></li>
<li><a class="underline" href="https://github.com/toplenboren/simple-git-hooks">toplenboren/simple-git-hooks</a> - Like husky but in package.json</li>
<li><a class="underline" href="https://github.com/remorses/vitro">remorses/vitro</a> - Build and showcase your react components in isolation</li>
<li><a class="underline" href="https://github.com/rikukissa/typehole">typehole</a> - TypeScript development tool for Visual Studio Code that helps you automate creating the initial static typing for runtime values</li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/seek-oss/vanilla-extract">seek-oss/vanilla-extract</a> - Zero-runtime Stylesheets-in-TypeScript</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://around25.com/blog/replace-redux-with-context-api/">How to Replace Redux with Context API</a></li>
<li><a class="underline" href="https://cpojer.net/posts/rethinking-javascript-infrastructure">Rethinking JavaScript Infrastructure</a></li>
<li><a class="underline" href="https://dev.to/yelouafi/a-simple-rule-for-using-callbacks-in-react-4jah">A simple rule for using callbacks in React</a></li>
</ul>
]]></content></entry><entry><title>JSter #168: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-168"></link><id>jster-168</id><published>2021-05-05T05:40:19.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>To JavaScript or not to JavaScript</p>
</blockquote>
<p>The next React Finland vodcast takes place 26th of May (16:00 GMT+0) and we'll focus on Next.js. <a class="underline" href="https://www.youtube.com/watch?v=mMU-j0WoTCs">Join us</a> or watch later.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://xstyled.dev/">xstyled</a> - Build your entire website using JSX and Props</li>
<li><a class="underline" href="https://system-props.com/">System Props</a> - Theme-driven style props</li>
<li><a class="underline" href="https://github.com/fgnass/typed-rpc">fgnass/typed-rpc</a> - Lightweight JSON-RPC solution for TypeScript projects</li>
<li><a class="underline" href="https://github.com/KittyGiraudel/a11y-dialog">KittyGiraudel/a11y-dialog</a> - A very lightweight and flexible accessible modal dialog script</li>
<li><a class="underline" href="https://react-hot-toast.com/">react-hot-toast</a> - Smoking hot React toasts</li>
<li><a class="underline" href="https://github.com/nextapps-de/flexsearch">nextapps-de/flexsearch</a> - Next-Generation full text search library for Browser and Node.js</li>
<li><a class="underline" href="https://www.tiptap.dev/">tiptap</a> - Headless WYSIWYG Text Editor</li>
<li><a class="underline" href="https://github.com/pubkey/rxdb">pubkey/rxdb</a> - A realtime Database for JavaScript Applications</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/hfour/wsrun">hfour/wsrun</a> - Command runner for Yarn workspaces. Dependency aware</li>
<li><a class="underline" href="https://github.com/egoist/esmon">egoist/esmon</a> - Like nodemon but very esbuild</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://redwoodjs.com/">RedwoodJS</a> - Bringing full-stack to the Jamstack</li>
<li><a class="underline" href="https://github.com/seek-oss/vanilla-extract/tree/master/packages/sprinkles">sprinkles</a> - Zero-runtime atomic CSS framework for vanilla-extract.</li>
<li><a class="underline" href="https://github.com/asos-craigmorten/opine">asos-craigmorten/opine</a> - Fast, minimalist web framework for Deno ported from ExpressJS</li>
<li><a class="underline" href="https://github.com/dubzzz/fast-check">dubzzz/fast-check</a> - Property based testing framework for JavaScript (like QuickCheck) written in TypeScript</li>
<li><a class="underline" href="https://www.infoq.com/news/2020/12/inertia-modern-monolith/">Inertia.JS</a> - Lets developers write API-Free monolithic React/Vue/Svelte applications in PHP or Ruby</li>
<li><a class="underline" href="https://foalts.org/">Foal</a> - Node.JS framework for building web applications</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://itnext.io/vno-a-vue-deno-love-story-a9dd4d130ac7">vno: a vue / deno love story</a> - The first native build tool for compiling and bundling Vue single-file components in a Deno runtime</li>
<li><a class="underline" href="https://tech.trivago.com/2020/11/17/exploring-the-page-visibility-api-for-detecting-page-background-state/">Exploring the Page Visibility API for Detecting Page Background State</a></li>
<li><a class="underline" href="https://blog.logrocket.com/deno-alternatives-to-popular-node-projects/">Deno alternatives to popular Node projects</a></li>
</ul>
<a href="#standards"><h2 class="inline" id="standards">Standards</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://webdatarender.com/">Web Data Render</a> - New standard for light web sites</li>
</ul>
<a href="#platforms"><h2 class="inline" id="platforms">Platforms</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://capacitorjs.com/">Capacitor</a> - A cross-platform native runtime for web apps</li>
<li><a class="underline" href="https://cube.dev/">Cube.js</a> - Open Source Analytical API Platform</li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://bashooka.com/inspiration/css-grid-designs-effects/">20 Outstanding CSS Grid Designs & Effects</a></li>
</ul>
<a href="#a11y"><h2 class="inline" id="a11y">a11y</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://chrome.google.com/webstore/detail/wave-evaluation-tool/jbbplnpkjmmeebjpijfedlgcdilocofh">WAVE Evaluation Tool</a></li>
</ul>
]]></content></entry><entry><title>JSter #167: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-167"></link><id>jster-167</id><published>2021-04-12T05:59:06.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript does whatever JavaScript does</p>
</blockquote>
<p><a class="underline" href="https://react-finland.fi/blog/vodcast-03/">The next React Finland vodcast</a> will focus on full stack React (28th of April, 16:00 GMT+0). Expect to learn about Amplify, Next.js, and Blitz.js.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/pmndrs/jotai">pmndrs/jotai</a> - Primitive, flexible state management for React</li>
<li><a class="underline" href="https://github.com/zillow/react-slider">zillow/react-slider</a> - Accessible, CSS agnostic, slider component for React</li>
<li><a class="underline" href="https://github.com/yjs/yjs">yjs</a> - Peer-to-peer shared types</li>
<li><a class="underline" href="https://github.com/fakenickels/let-anything">fakenickels/let-anything</a> - Monadic syntax for JavaScript</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/github/catalyst">github/catalyst</a> - Catalyst is a set of patterns and techniques for developing components within a complex application</li>
<li><a class="underline" href="https://alephjs.org/">Aleph.js</a> - The React Framework in Deno</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/siddharthkp/bundlesize">siddharthkp/bundlesize</a> - Keep your bundle size in check</li>
<li><a class="underline" href="https://github.com/wclr/yalc">wclr/yalc</a> - Work with yarn/npm packages locally like a boss</li>
<li><a class="underline" href="https://squircley.app/">Squircley</a> - SVG generator for the famous shape</li>
<li><a class="underline" href="https://github.com/mutantcornholio/veendor">mutantcornholio/veendor</a> - A tool for storing your npm dependencies in arbitrary storage</li>
<li><a class="underline" href="https://github.com/ljosberinn/eslint-config-galex">ljosberinn/eslint-config-galex</a> - Impressive collection of ESLint rules</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://souporserious.com/bundling-workers-for-npm/">Bundling Web Workers for npm</a></li>
<li><a class="underline" href="https://snyk.io/blog/github-actions-to-securely-publish-npm-packages/">GitHub Actions to securely publish npm packages</a></li>
<li><a class="underline" href="https://humpf.etienne.tech/article">Using Damped Springs for animations</a></li>
<li><a class="underline" href="https://www.techatbloomberg.com/blog/10-insights-adopting-typescript-at-scale/">10 Insights from Adopting TypeScript at Scale</a></li>
<li><a class="underline" href="https://deno.com/blog/the-deno-company">Announcing the Deno Company</a></li>
<li><a class="underline" href="https://blog.sapegin.me/all/accessibility-testing/">The most useful accessibility testing tools and techniques</a></li>
<li><a class="underline" href="https://adamwathan.me/2019/10/17/persistent-layout-patterns-in-nextjs/">Persistent Layout Patterns in Next.js</a></li>
<li><a class="underline" href="https://mattanddesign.com/dont-design-for-mobile/">Don't design for mobile</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/blitz-interview/">Blitz.js - The Full-stack React Framework - Interview with Brandon Bayer</a></li>
</ul>
<a href="#node-js"><h2 class="inline" id="node-js">Node.js</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://serverjs.io/">Server.js</a> - Powerful server for Node.js</li>
</ul>
<a href="#graphql"><h2 class="inline" id="graphql">GraphQL</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/gajus/graphql-lazyloader">gajus/graphql-lazyloader</a> - GraphQL directive that adds Object-level data resolvers</li>
<li><a class="underline" href="https://dev.to/danielrearden/building-a-graphql-server-with-graphql-helix-2k44">Building a GraphQL server with GraphQL Helix</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://troisjs.github.io/little-planet/">Little planet</a></li>
</ul>
]]></content></entry><entry><title>JSter #166: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-166"></link><id>jster-166</id><published>2021-03-16T05:43:40.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript collects its garbage eventually</p>
</blockquote>
<p>I recently <a class="underline" href="https://react-finland.fi/blog/rf21-call-for-participants/">announced the React Finland event of this year</a>. It will take place in a hybrid form from 30th of August to 3rd of September. To shape the conference, we've opened <a class="underline" href="https://forms.gle/SeVygg8wEcXsANsB7">a call for participants</a>. Please let us know what topics to cover.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://webreflection.medium.com/linkedom-a-jsdom-alternative-53dd8f699311">LinkeDOM: A JSDOM Alternative. JSDOM is awesome, but it’s slow at…</a></li>
<li><a class="underline" href="https://github.com/google/incremental-dom">google/incremental-dom</a> - An in-place DOM diffing library</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/ealush/vest">ealush/vest</a> - Declarative validations framework</li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://natto.dev/">natto</a> - A space to fidget with JavaScript</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/carbondesign/color-palettes-and-accessibility-features-for-data-visualization-7869f4874fca">Color palettes and accessibility features for data visualization</a></li>
<li><a class="underline" href="https://dev.to/alexsergey/css-modules-vs-css-in-js-who-wins-3n25">CSS Modules vs CSS-in-JS. Who wins?</a></li>
<li><a class="underline" href="https://matsu.fi/posts/comparing-react-and-web-components-part-2-components/">Comparing React and Web Components. Part 2: Components</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/dabbott/javascript-playgrounds">dabbott/javascript-playgrounds</a> - An interactive JavaScript sandbox</li>
<li><a class="underline" href="https://www.npmjs.com/package/tachometer">tachometer</a> - Run benchmarks</li>
<li><a class="underline" href="https://volta.sh/">Volta</a> - The Hassle-Free JavaScript Tool Manager</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://css-tricks.com/creating-ui-components-in-svg/">Creating UI Components in SVG</a></li>
<li><a class="underline" href="https://snyk.io/blog/what-is-package-lock-json/">What is package lock json? Lockfiles for yarn & npm packages</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/rubico-interview/">Rubico - [a]synchronous functional programming</a> - Interview with Richard Tong</li>
</ul>
]]></content></entry><entry><title>JSter #165: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-165"></link><id>jster-165</id><published>2021-03-01T09:25:54.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript still has new tricks in its sleeves.</p>
</blockquote>
<p>I've started running a series of vodcasts for React Finland. In the first one we covered React components and in <a class="underline" href="https://react-finland.fi/blog/vodcast-02/">the next one</a> (29th of March) we'll discuss accessibility.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.npmjs.com/package/valtio">valtio makes proxy-state simple</a></li>
<li><a class="underline" href="https://nivo.rocks/">nivo</a> - nivo provides a rich set of dataviz components, built on top of the awesome d3 and Reactjs libraries</li>
<li><a class="underline" href="https://jaredforsyth.com/posts/local-first-database-hypermerge/">Local-first database: Hypermerge</a></li>
<li><a class="underline" href="https://github.com/taufik-nurrohman/color-picker">taufik-nurrohman/color-picker</a> - A simple color picker application written in pure JavaScript, for modern browsers</li>
<li><a class="underline" href="https://handsfree.js.org/">Handsfree.js</a> - Build handsfree User Experiences and add face, hand, and pose tracking to your projects in a snap</li>
<li><a class="underline" href="https://raam.joebell.co.uk/">raam</a> - Beautifully boring cosmetic-free React.js components for structure and layout</li>
<li><a class="underline" href="https://github.com/andrasq/node-qrpc">andrasq/node-qrpc</a> - Quicker Node.js remote procedure call</li>
<li><a class="underline" href="https://bennettfeely.com/ztext/">ztext.js</a> - Easy to implement, 3D typography for the web. Works with every font</li>
<li><a class="underline" href="https://github.com/mikaelbr/node-notifier">node-notifier</a> - A Node.js module for sending notifications on native Mac, Windows and Linux (or Growl as fallback)</li>
<li><a class="underline" href="https://github.com/iamkun/dayjs">iamkun/dayjs</a> - 2KB immutable date-time library alternative to Moment.js with the same modern API</li>
<li><a class="underline" href="https://github.com/a-synchronous/rubico">a-synchronous/rubico</a> - [a]synchronous functional programming</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://tonejs.github.io/">Tone.js</a> - Web Audio framework for creating interactive music in the browser</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/wclr/yalc">wclr/yalc</a> - Work with yarn/npm packages locally like a boss</li>
<li><a class="underline" href="https://github.com/akx/source-from-sourcemaps">akx/source-from-sourcemaps</a> - Extract original source from JavaScript sourcemaps</li>
<li><a class="underline" href="https://www.npmjs.com/package/hygen">hygen is the simple, fast, and scalable code generator that lives in your project</a></li>
<li><a class="underline" href="https://devblogs.microsoft.com/typescript/announcing-typescript-4-2/">TypeScript 4.2</a></li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.rucksackcss.org/">Rucksack</a> - makes proxy-state simple</li>
<li><a class="underline" href="https://animxyz.com/">AnimXYZ</a> - The first composable CSS animation toolkit</li>
<li><a class="underline" href="https://matthiasott.com/notes/focus-visible-is-here">:focus-visible Is Here</a></li>
<li><a class="underline" href="https://github.com/Faisal-Manzer/postcss-viewport-height-correction">PostCSS Viewport Height Correction</a> - PostCSS plugin to solve the popular problem when 100vh doesn’t fit the mobile browser screen</li>
</ul>
<a href="#svg"><h2 class="inline" id="svg">SVG</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://svgwave.in/">Svg Wave</a> - Generate SVG Waves</li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://textquest.io/">Text Quest: Unlock your imagination</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/carbondesign/color-palettes-and-accessibility-features-for-data-visualization-7869f4874fca">Color palettes and accessibility features for data visualization</a></li>
<li><a class="underline" href="https://dev.to/alexsergey/project-structure-repository-and-folders-review-of-approaches-4kh2">Project Structure. Repository and folders. Review of approaches.</a></li>
<li><a class="underline" href="https://formidable.com/blog/2020/resize-observer/">Is the Future of Web Design Polymorphic?</a></li>
</ul>
]]></content></entry><entry><title>JSter #164: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-164"></link><id>jster-164</id><published>2021-02-03T10:55:14.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript – Always evolving, always changing</p>
</blockquote>
<p>It's time for the second JSter post of the year. I'll be organizing two events later this month: <a class="underline" href="https://react-finland.fi/blog/vodcast-01/">Vodcast about React components</a> (24th of February) and <a class="underline" href="https://www.meetup.com/viennajs/events/276123836/">ViennaJS Live Coding: WebXR</a> (25th of February). Make sure to tune in!</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/andyrichardson/fielder">andyrichardson/fielder</a> - A field-first form library for React and React Native</li>
<li><a class="underline" href="https://github.com/jneen/parsimmon">jneen/parsimmon</a> - A monadic LL(infinity) parser combinator library for JavaScript</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dev.to/alexsergey/log-driven-development-3jmf">Log-Driven Development</a></li>
<li><a class="underline" href="https://allegro.tech/2020/08/using-eslint.html">Using ESLint to improve your app’s performance</a></li>
<li><a class="underline" href="https://labs.thisdot.co/blog/a-breakdown-of-rxjs-7-0-performance-improvements/">A Breakdown of RxJS 7.0 Performance Improvements</a></li>
<li><a class="underline" href="https://www.ably.io/topic/websockets-nodejs">Building realtime apps with Node.js and WebSockets: client-side considerations</a></li>
</ul>
<a href="#tooling"><h2 class="inline" id="tooling">Tooling</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/rafgraph/rollpkg">rafgraph/rollpkg</a> - Zero-config build tool to create packages with Rollup and TypeScript</li>
<li><a class="underline" href="https://rushjs.io/">Rush</a></li>
<li><a class="underline" href="https://www.npmjs.com/package/eslint-plugin-simple-import-sort">eslint-plugin-simple-import-sort</a> - Sort imports with ESLint</li>
</ul>
<a href="#videos"><h2 class="inline" id="videos">Videos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.youtube.com/watch?v=Gmb0yJKkBWM">Deno: Develop REST API + mongoDB + Linux (Ubuntu)</a></li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/a7ul/esbuild-node-tsc">a7ul/esbuild-node-tsc</a> - Build your Typescript Node.js projects using blazing fast esbuild</li>
<li><a class="underline" href="https://github.com/woutervh-/typescript-is">woutervh-/typescript-is</a> - TypeScript transformer that generates run-time type-checks</li>
<li><a class="underline" href="https://www.npmjs.com/package/tsconfig.js">tsconfig.js</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/rsms/estrella">rsms/estrella</a> - Lightweight and versatile build tool based on the esbuild compiler</li>
<li><a class="underline" href="https://github.com/elsaland/elsa">elsaland/elsa</a> - Elsa is a minimal, fast and secure runtime for JavaScript and TypeScript written in Go</li>
<li><a class="underline" href="https://github.com/snyk/vulncost">snyk/vulncost</a> - Find security vulnerabilities in open source npm packages while you code</li>
<li><a class="underline" href="https://preconstruct.tools/">Preconstruct</a> - Dev and build your code painlessly in monorepos</li>
<li><a class="underline" href="https://github.com/intuit/auto">intuit/auto</a> - Generate releases based on semantic version labels on pull requests</li>
</ul>
<a href="#react"><h2 class="inline" id="react">React</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://alexkondov.com/tao-of-react/">Tao of React</a></li>
<li><a class="underline" href="https://dev.to/alexsergey/server-side-rendering-from-zero-to-hero-2610">Server-Side Rendering from zero to hero</a></li>
<li><a class="underline" href="https://github.com/pmndrs/use-tweaks">pmndrs/use-tweaks</a> - Tweak React components with Tweakpanes</li>
</ul>
<a href="#snippets"><h2 class="inline" id="snippets">Snippets</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.30secondsofcode.org/">Short code snippets for all your development needs</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://theheadless.dev/">Learn Puppeteer & Playwright</a></li>
<li><a class="underline" href="https://souporserious.com/build-a-simple-flip-animation-in-react/">Build a Simple FLIP Animation in React</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/microsoft-design/leading-trim-the-future-of-digital-typesetting-d082d84b202">Leading-Trim: The Future of Digital Typesetting</a></li>
<li><a class="underline" href="https://codeascraft.com/2020/08/17/mutation-testing-a-tale-of-two-suites/">Mutation Testing: A Tale of Two Suites</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/pixelcraft-interview/">PixelCraft - a Pixel Art Editor</a></li>
<li><a class="underline" href="https://survivejs.com/blog/nullstack-interview/">Nullstack - Full-stack JavaScript Components</a></li>
<li><a class="underline" href="https://survivejs.com/blog/renderlesskit-interview/">Renderlesskit React - Collection of composable headless hooks</a></li>
<li><a class="underline" href="https://survivejs.com/blog/grucloud-interview/">GruCloud - Infrastructure as Code in JavaScript</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://nullstack.app/">Nullstack</a> - Full-stack JavaScript components</li>
<li><a class="underline" href="https://inertiajs.com/">Inertia.js</a> - Build single-page apps, without building an API</li>
</ul>
<a href="#apps"><h2 class="inline" id="apps">Apps</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/rgab1508/PixelCraft">rgab1508/PixelCraft</a></li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/kripod/css-shorthand-expanders">kripod/css-shorthand-expanders</a> - Type-safe functions to expand CSS shorthands into their longhand sub-properties</li>
</ul>
<a href="#deno"><h2 class="inline" id="deno">Deno</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/mdubourg001/ssgo">mdubourg001/ssgo</a> - The minimalistic but flexible static site generator for Deno</li>
</ul>
]]></content></entry><entry><title>JSter #163: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-163"></link><id>jster-163</id><published>2021-01-05T09:41:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>2021 - JavaScript has turned 25</p>
</blockquote>
<p>A new year has arrived and I've compiled a nice list of JavaScript related links for you as usual.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/kripod/react-layout-components">kripod/react-layout-components</a> - Layout components for React, primarily inspired by Every Layout</li>
<li><a class="underline" href="https://github.com/dumbmatter/fakeIndexedDB">dumbmatter/fakeIndexedDB</a> - A pure JS in-memory implementation of the IndexedDB API</li>
<li><a class="underline" href="https://github.com/humaans/react-machine">humaans/react-machine</a> - A state machine hook for React applications</li>
<li><a class="underline" href="https://github.com/pmndrs/react-three-flex">pmndrs/react-three-flex</a> - Flexbox for react-three-fiber</li>
<li><a class="underline" href="https://github.com/diegohaz/constate">diegohaz/constate</a> - React Context + State</li>
<li><a class="underline" href="https://github.com/kripod/otion">kripod/otion</a> - Atomic CSS-in-JS with a featherweight runtime</li>
<li><a class="underline" href="https://github.com/DanWahlin/Observable-Store">DanWahlin/Observable-Store</a> - Observable Store provides a simple way to manage state in Angular, React, Vue.js and other frontend applications</li>
<li><a class="underline" href="https://github.com/neomjs/neo">neo</a> - Create blazing fast multithreaded Web Apps</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://baseweb.design/">Base Web React UI Framework</a></li>
<li><a class="underline" href="https://github.com/boxine/pentf">boxine/pentf</a> - Parallel end-to-end test framework</li>
<li><a class="underline" href="https://github.com/grommet/grommet">grommet</a> - React-based framework that provides accessibility, modularity, responsiveness, and theming in a tidy package</li>
<li><a class="underline" href="https://fluidframework.com/">Fluid Framework</a> - Data Sync Reimagined</li>
<li><a class="underline" href="https://blog.getbootstrap.com/2020/12/07/bootstrap-5-beta-1/">Bootstrap 5 - Beta 1</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://saruni.dev/">Saruni</a> - The simplest way to write and deploy fast, scalable full-stack web applications in JavaScript</li>
<li><a class="underline" href="https://github.com/imcuttle/simple-hot-reload-server">imcuttle/simple-hot-reload-server</a> - Simple hot reload server by Node</li>
<li><a class="underline" href="https://www.npmjs.com/package/json-server">json-server</a> - Get a full fake REST API with zero coding in less than 30 seconds</li>
<li><a class="underline" href="https://github.com/ben-rogerson/twin.macro">ben-rogerson/twin.macro</a> - Twin blends the magic of Tailwind with the flexibility of css-in-js (emotion, styled-components and goober) at build time</li>
<li><a class="underline" href="https://webpack.js.org/blog/2020-12-08-roadmap-2021/">Webpack - Roadmap 2021 (2020-12-08)</a></li>
<li><a class="underline" href="https://hazel.org/">Hazel, a live functional programming environment featuring typed holes.</a></li>
</ul>
<a href="#deno"><h2 class="inline" id="deno">Deno</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dev.to/mrdoomy/node-or-deno-that-is-the-question-16h9">Node Or Deno, That Is The Question!? 🤔</a></li>
<li><a class="underline" href="https://github.com/rodolphocastro/dixture">rodolphocastro/dixture</a> - Dixture is a Deno module that helps you create random data for your tests</li>
<li><a class="underline" href="https://github.com/sholladay/pogo">sholladay/pogo</a> - Server framework for Deno</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://nsisodiya.medium.com/frontend-pattern-atomic-business-components-abc-17466f72dc37">Frontend Pattern — Atomic Business Components (ABC)</a></li>
<li><a class="underline" href="https://dev.to/abdisalan_js/how-one-developer-recreated-airdrop-using-just-javascript-2403">How One Developer Recreated AirDrop Using Just JavaScript</a></li>
<li><a class="underline" href="https://blog.logrocket.com/should-you-switch-from-react-to-svelte/">Should you switch from React to Svelte?</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.sarasoueidan.com/blog/toggle-switch-design/">On Designing and Building Toggle Switches</a></li>
<li><a class="underline" href="https://blog.maximeheckel.com/posts/switching-off-the-lights-part-2-fixing-dark-mode-flashing-on-servered-rendered-website/">Fixing the "dark mode flash" issue on server rendered websites</a></li>
<li><a class="underline" href="https://itnext.io/updating-uis-value-comparison-vs-mutation-tracking-9f6fe912dd9a">Updating UIs: value comparison VS mutation tracking</a></li>
<li><a class="underline" href="https://blog.appsignal.com/2020/09/09/nodejs-resiliency-concepts-recovery-and-self-healing.html">Node.js Resiliency Concepts: Recovery and Self-Healing</a></li>
<li><a class="underline" href="https://souporserious.com/the-key-to-conditionally-calling-react-hooks/">The Key to Calling React Hooks Conditionally</a></li>
<li><a class="underline" href="https://giuseppegurgone.com/synchronizing-async-functions/">Synchronizing Async Functions in Node.js</a></li>
<li><a class="underline" href="https://mattperry.is/writing-code/how-to-break-the-rules-of-react-hooks">How to break the rules of React Hooks</a></li>
<li><a class="underline" href="https://survivejs.com/blog/preloading-web-assets/">Preloading Web Assets</a></li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/rotvalli/css-gauge">rotvalli/css-gauge</a> - Pure CSS gauge component</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://casualdeveloper.net/post/2020-12-21-advanced-typescript-type-tricks/">Advanced TypeScript Type Tricks</a></li>
<li><a class="underline" href="https://github.com/type-challenges/type-challenges">type-challenges</a> - Collection of TypeScript type challenges with online judge</li>
<li><a class="underline" href="https://devblogs.microsoft.com/typescript/announcing-typescript-4-1/">Announcing TypeScript 4.1</a></li>
</ul>
<a href="#starters"><h2 class="inline" id="starters">Starters</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/netcoresaas/saas-vuejs-tailwindcss">netcoresaas/saas-vuejs-tailwindcss</a> - VueJS + TailwindCSS frontend for SaaS apps</li>
</ul>
]]></content></entry><entry><title>JSter #162: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-162"></link><id>jster-162</id><published>2020-12-01T12:14:00.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript is here to stay.</p>
</blockquote>
<p>It has been another busy month. I published <a class="underline" href="https://survivejs.com/blog/webpack-book-version-3/">a new major version of my webpack book</a>. Tomorrow, 2nd of December, <a class="underline" href="https://react-finland.fi/">React Finland mini-conference about performance</a> will take place.</p>
<p>We also published a new version of <a class="underline" href="https://www.monolisa.dev/?utm_source=jster">MonoLisa</a>, a popular font for coders. At the same time, we made the basic version a bit more affordable while offering more options.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/pioardi/poolifier">pioardi/poolifier</a> - Fast and small Node.js thread pools implemented</li>
<li><a class="underline" href="https://datatables.net/">DataTables</a> - Add advanced interaction controls to your HTML tables the free & easy way</li>
<li><a class="underline" href="https://github.com/vedantroy/typecheck.macro">vedantroy/typecheck.macro</a> - A easy (and fast) TypeScript validation library/macro. Automatically generate validation functions for TypeScript types.</li>
<li><a class="underline" href="https://github.com/getify/monio">getify/monio</a> - Async-capable IO Monad for JS, with several companion monads thrown in</li>
<li><a class="underline" href="https://github.com/pmndrs/zustand">pmndrs/zustand</a> - Bear necessities for state management in React</li>
<li><a class="underline" href="https://compiledcssinjs.com/">👷‍♀ Compiled</a> - The CSS in JS authoring experience we love without the runtime cost</li>
<li><a class="underline" href="https://resthooks.io/">Rest Hooks</a> - Delightful data fetching</li>
<li><a class="underline" href="https://github.com/saarw/flushout">saarw/flushout</a> - Flushout is a distributed data model based on event sourcing written in TypeScript.</li>
<li><a class="underline" href="https://github.com/josdejong/workerpool">josdejong/workerpool</a> - Offload tasks to a pool of workers on node.js and in the browser</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/bbc-design-engineering/shipping-progressive-web-apps-everywhere-190a421c606a">Shipping Progressive Web Apps everywhere</a></li>
<li><a class="underline" href="https://www.infoq.com/news/2020/11/deno-15-released/">Deno 1.5 Sees 3x Bundling Performance Improvement Due to Rust-Based JavaScript/TypeScript Compiler</a></li>
<li><a class="underline" href="https://blog.logrocket.com/8-ways-to-deploy-a-react-app-for-free/">10 ways to deploy a React app for free</a></li>
<li><a class="underline" href="https://www.smashingmagazine.com/2020/08/error-handling-nodejs-error-classes/">Better Error Handling In NodeJS With Error Classes</a></li>
<li><a class="underline" href="https://css-tricks.com/model-based-testing-in-react-with-state-machines/">Model-Based Testing in React with State Machines</a></li>
<li><a class="underline" href="https://medium.com/serverless-transformation/is-serverless-cheaper-for-your-use-case-find-out-with-this-calculator-2f8a52fc6a68">Is serverless cheaper for your use case? Find out with this calculator.</a></li>
</ul>
<a href="#animation"><h2 class="inline" id="animation">Animation</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/dixonandmoe/rellax">dixonandmoe/rellax</a> - Lightweight, vanilla javascript parallax library</li>
<li><a class="underline" href="https://michalsnik.github.io/aos/">AOS</a> - Animate On Scroll Library</li>
<li><a class="underline" href="https://github.com/janpaepke/ScrollMagic">janpaepke/ScrollMagic</a> - A library for magical scroll interactions</li>
<li><a class="underline" href="https://github.com/Rich-Harris/ramjet">Rich-Harris/ramjet</a> - Morph DOM elements from one state to another with smooth animations and transitions</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://frontity.org/">Frontity</a> - The React framework for WordPress</li>
<li><a class="underline" href="https://umijs.org/">UmiJS</a> - Extensible enterprise-level front-end application framework</li>
<li><a class="underline" href="https://arwes.dev/">Arwes</a> - Futuristic Sci-Fi and Cyberpunk Graphical User Interface Framework for Web Apps</li>
<li><a class="underline" href="https://github.com/blitz-js/blitz">blitz</a> - The Fullstack React Framework — built on Next.js</li>
</ul>
<a href="#styling"><h2 class="inline" id="styling">Styling</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/kenoxa/beamwind">kenoxa/beamwind</a> - A collection of packages to compile Tailwind CSS like shorthand syntax into CSS at runtime</li>
</ul>
<a href="#components"><h2 class="inline" id="components">Components</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/schrodinger/fixed-data-table-2">schrodinger/fixed-data-table-2</a> - React table component designed to allow presenting millions of rows of data</li>
<li><a class="underline" href="https://nadbm.github.io/react-datasheet/">React Datasheet Component</a> - Simple and highly customizable excel-like spreadsheet</li>
<li><a class="underline" href="https://github.com/naisutech/react-tree">naisutech/react-tree</a> - Hierarchical object tree component for React</li>
<li><a class="underline" href="http://www.natrube.net/custom-scroll/index.html">React CustomScroll</a> - A tiny React component for scroll bar customization, without dependencies but with a lot of features</li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/cv-compiler-interview/">CV Compiler</a> - The Fastest Way to Improve Your CV - Interview with Andrew Stetsenko</li>
<li><a class="underline" href="https://survivejs.com/blog/plasmic-interview/">Plasmic</a> - The fast and fun visual builder for React - Interview with Yang Zhang</li>
<li><a class="underline" href="https://survivejs.com/blog/multi-platform-interview/">Multi-platform applications with JavaScript</a> - Interview with Valentyn Poliskyi</li>
<li><a class="underline" href="https://survivejs.com/blog/enroute-interview/">Enroute - Envoy Route Controller</a> - Interview with Chintan Thakker</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/lastmjs/zwitterion">lastmjs/zwitterion</a> - A web dev server that lets you import anything*</li>
</ul>
]]></content></entry><entry><title>JSter #161: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-161"></link><id>jster-161</id><published>2020-11-03T04:33:38.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript - the language of the web</p>
</blockquote>
<p>In our fourth mini-conference at React Finland, we focused on <a class="underline" href="https://react-finland.fi/blog/rf-2020-online-mini-conf-vol-4-recap/">lessons learned</a>. The fifth one will take place early December and focus on <a class="underline" href="https://react-finland.fi/blog/online-mini-conf-vol-5/">React performance</a>.</p>
<p>In other news, given webpack 5 was finally released, I gave my webpack book <a class="underline" href="https://survivejs.com/blog/webpack-book-webpack-5-updates/">another pass of updates</a> to adapt to the changes in the major tool.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://sass-lang.com/blog/libsass-is-deprecated">Sass: LibSass is Deprecated</a></li>
<li><a class="underline" href="https://github.com/matthiasott/a11y-accordion-tabs">matthiasott/a11y-accordion-tabs</a> - A script for an accessible accordion tabs component</li>
<li><a class="underline" href="https://www.npmjs.com/package/p-limit">p-limit</a> - Run multiple promise-returning & async functions with limited concurrency</li>
<li><a class="underline" href="https://alvarotrigo.com/fullPage/">fullPage.js</a> - Create beautiful fullscreen scrolling websites</li>
<li><a class="underline" href="https://github.com/pubkey/broadcast-channel">pubkey/broadcast-channel</a> - BroadcastChannel to send data between different browser-tabs or nodejs-processes</li>
<li><a class="underline" href="https://github.com/ben-rogerson/twin.macro">ben-rogerson/twin.macro</a> - Twin blends the magic of Tailwind with the flexibility of css-in-js</li>
<li><a class="underline" href="https://github.com/daybrush/selecto">daybrush/selecto</a> - Selecto.js is a component that allows you to select elements in the drag area using the mouse or touch</li>
<li><a class="underline" href="https://github.com/komarovalexander/ka-table">komarovalexander/ka-table</a> - React Table component with Sorting, Filtering, Grouping, Virtualization, Editing and many more</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/phenomnomnominal/tsquery">phenomnomnominal/tsquery</a> - TypeScript AST query library</li>
</ul>
<a href="#graphql"><h2 class="inline" id="graphql">GraphQL</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/APIs-guru/graphql-lodash">APIs-guru/graphql-lodash</a> - Data manipulation for GraphQL queries with lodash syntax</li>
</ul>
<a href="#animation"><h2 class="inline" id="animation">Animation</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/bendc/animateplus">bendc/animateplus</a> - A+ animation module for the modern web</li>
</ul>
<a href="#react"><h2 class="inline" id="react">React</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://reactjs.org/blog/2020/10/20/react-v17.html">React v17.0</a> - New major releases without big changes</li>
<li><a class="underline" href="https://bumbag.style/">Bumbag</a> - Build accessible & themeable React applications with your Bumbag</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.npmjs.org/post/626173315965468672/npm-v7-series-beta-release-and-semver-major">npm v7 Series - Beta Release! And: SemVer-Major Changes in npm v7</a></li>
<li><a class="underline" href="https://adaptjs.org/">Adapt</a> - React for your infrastructure</li>
<li><a class="underline" href="https://rome.tools/">Rome Toolchain</a> - Everything in one toolchain for JavaScript</li>
<li><a class="underline" href="https://www.electronforge.io/">Electron Forge</a> - A complete tool for creating, publishing, and installing modern Electron applications</li>
<li><a class="underline" href="https://medium.com/@vasikarla.raj/storybook-for-native-d772654c7133">Storybook for React Native</a></li>
<li><a class="underline" href="https://github.com/AlexSergey/rockpack">Rockpack</a> - All-in-one solution for developing React applications with webpack</li>
<li><a class="underline" href="https://github.com/kitten/runruntypes">kitten/runruntypes</a> - A poor man's runtime-only type checker</li>
<li><a class="underline" href="https://webpack.js.org/blog/2020-10-10-webpack-5-release/">Webpack 5</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://codersociety.com/blog/articles/nodejs-application-monitoring-with-prometheus-and-grafana">Node.js Application Monitoring with Prometheus and Grafana</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.ryanfiller.com/blog/remark-and-rehype-plugins/">Transforming Markdown with Remark & Rehype</a></li>
<li><a class="underline" href="https://ncase.me/sight-and-light/">Sight and light</a> - How to create 2D visibility/shadow effects for your game</li>
<li><a class="underline" href="https://blog.sapegin.me/all/react-testing-4-cypress/">Modern React testing, part 4: Cypress and Cypress Testing Library</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://straker.github.io/kontra/">Kontra.js</a> - A lightweight JavaScript gaming micro-library created specifically for the Js13kGames game jam</li>
<li><a class="underline" href="https://codepen.io/ivorjetski/pen/OJXbvdL">A Pure CSS Game</a> - You must build a lighthouse</li>
<li><a class="underline" href="https://bongo.cat/">Bongo Cat</a> - Play bongos</li>
<li><a class="underline" href="https://codeout.codecapi.com/">Code out</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/algolia-with-netlify-interview/">Algolia with Netlify</a> - Interview with Samuel Bodin</li>
<li><a class="underline" href="https://survivejs.com/blog/eleventy-interview/">Eleventy - A simpler static site generator</a> - Interview with Jeremias Menichelli</li>
<li><a class="underline" href="https://survivejs.com/blog/e2e-interview/">End-to-end testing</a> - Interview with Erik Fogg</li>
<li><a class="underline" href="https://survivejs.com/blog/rockpack-interview/">Rockpack - Skip config, code React</a> - Interview with Sergey Aleksandrov</li>
</ul>
<a href="#retro"><h2 class="inline" id="retro">Retro</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/felixrieseberg/macintosh.js">felixrieseberg/macintosh.js</a> - A virtual Apple Macintosh with System 8, running in Electron</li>
</ul>
<a href="#music"><h2 class="inline" id="music">Music</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://orca.wtf/">ORCΛ</a> - An esoteric programming language designed to create sequencers</li>
<li><a class="underline" href="https://808303.studio/">Roland 808303.studio</a> - TR-808 drum machine and TB-303 bass synthesiser</li>
</ul>
]]></content></entry><entry><title>JSter #160: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-160"></link><id>jster-160</id><published>2020-10-05T13:50:55.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript - still running strong.</p>
</blockquote>
<p>It's time for the 160th JSter post. I updated <a class="underline" href="https://survivejs.com/blog/webpack-book-updated-to-webpack-5/">my webpack book to support webpack 5</a> recently.</p>
<p>The <a class="underline" href="https://react-finland.fi/blog/online-mini-conf-vol-4/">next React Finland mini-conference takes place 28th of October</a> and it's going to be about lessons learned.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/eldh/credt">eldh/credt</a> - CRDT-like data structures for building distributed, offline-first applications</li>
<li><a class="underline" href="https://github.com/sebastienfilion/functional">Functional</a> - Common Functional Programming Algebraic data types for JavaScript that is compatible with most modern browsers and Deno.</li>
<li><a class="underline" href="https://github.com/scurker/currency.js">scurker/currency.js</a> - JavaScript library for handling currencies</li>
<li><a class="underline" href="https://github.com/techfort/LokiJS">techfort/LokiJS</a> - JavaScript embeddable / in-memory database</li>
<li><a class="underline" href="https://magenta.tensorflow.org/">Magenta</a> - Make music and art using machine learning</li>
<li><a class="underline" href="https://github.com/duetds/date-picker">duetds/date-picker</a> - Accessible date picker</li>
<li><a class="underline" href="https://github.com/hazae41/mutevents">hazae41/mutevents</a> - Typed, async, and promiseable events for Deno</li>
<li><a class="underline" href="https://momentjs.com/docs/#/-project-status/">Moment.js</a> - Moment is considered legacy, please move on</li>
<li><a class="underline" href="https://eta.js.org/">Eta</a> - Lightweight, powerful, pluggable embedded JS template engine.</li>
<li><a class="underline" href="https://github.com/lukeed/watchlist">lukeed/watchlist</a> - Recursively watch a list of directories & run a command on any file system changes</li>
<li><a class="underline" href="https://github.com/giuseppeg/screensaver">Screensaver.js</a> - Starts a screensaver after timeout milliseconds of inactivity on your site</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://oruga.io/">Oruga</a> - Oruga UI is like a caterpillar, minimal and yet functional. It's in your hands turning it into a butterfly</li>
<li><a class="underline" href="https://github.com/chriskalmar/shyft">chriskalmar/shyft</a> - Shyft is a server-side framework for building powerful GraphQL APIs</li>
</ul>
<a href="#react"><h2 class="inline" id="react">React</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/luispuig/react-snaplist-carousel">luispuig/react-snaplist-carousel</a> - Snaplist with React</li>
<li><a class="underline" href="https://react-spectrum.adobe.com/blog/introducing-react-spectrum.html">Introducing React Spectrum</a></li>
<li><a class="underline" href="https://github.com/airbnb/visx">airbnb/visx</a> - Visualization components</li>
<li><a class="underline" href="https://github.com/vadimdemedes/ink">vadimdemedes/ink</a> - React for interactive command-line apps</li>
<li><a class="underline" href="https://github.com/pmndrs/jotai">pmndrs/jotai</a> - Primitive, flexible state management for React</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://benchmarkjs.com/">Benchmark.js</a> - A benchmarking library that supports high-resolution timers & returns statistically significant results.</li>
<li><a class="underline" href="https://github.com/malinajs/malinajs">malinajs</a> - Frontend compiler, inspired by Svelte</li>
<li><a class="underline" href="https://svelte.dev/blog/svelte-and-typescript">Svelte <3 TypeScript</a> - Svelte has a first-class support for TypeScript now</li>
<li><a class="underline" href="https://rushjs.io/">Rush</a> - A scalable monorepo manager for the web</li>
<li><a class="underline" href="https://github.com/mfrachet/cypress-audit">mfrachet/cypress-audit</a> - Run Lighthouse and Pa11y audits directly in your E2E test suites</li>
<li><a class="underline" href="https://github.com/postcss/postcss/releases/tag/8.0.0">postcss/releases/tag/8.0.0</a> - PostCSS has reached 8.0.0</li>
<li><a class="underline" href="https://deno.land/posts/v1.4">Deno 1.4</a> - Alternative to Node by Ryan Dahl</li>
<li><a class="underline" href="https://nx.dev/react/">Nx: Extensible Dev Tools for Monorepos</a></li>
<li><a class="underline" href="https://github.com/ComponentDriven/csf">Component Story Format</a> - An open standard for UI component examples based on JavaScript ES6 modules.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://visly.app/blog/state-management-in-visly">State management in Visly</a></li>
<li><a class="underline" href="https://web.dev/detached-window-memory-leaks/">Detached window memory leaks</a></li>
<li><a class="underline" href="https://survivejs.com/blog/how-to-learn-effectively-as-a-developer/">How to learn effectively as a developer</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/eleventy-interview/">Eleventy - A simpler static site generator - Interview with Jeremias Menichelli</a></li>
<li><a class="underline" href="https://survivejs.com/blog/nocode-interview/">NoCode programming - Doing more with less code - Interview with Alex Moldovan</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://gxding.com/doom-fire/">Simulate Fire in DOOM</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://nest.land/">nest.land</a> - A module registry for Deno</li>
</ul>
<a href="#styling"><h2 class="inline" id="styling">Styling</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://codepen.io/peritpatrio/pen/abNRqxZ">A fancy triangle layout</a></li>
<li><a class="underline" href="https://stitches.dev/blog/introducing-stitches">Stitches</a> - The modern CSS-in-JS library with near-zero runtime</li>
<li><a class="underline" href="https://github.com/nyancss/nyancss">nyancss</a> - Write plain CSS while reaping benefits of CSS-in-JS</li>
<li><a class="underline" href="https://github.com/lukejacksonn/oceanwind">lukejacksonn/oceanwind</a> - Tailwind.css as a runtime</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.npmjs.com/package/type-fest">type-fest</a> - A collection of essential TypeScript types</li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/s-macke/FSHistory">s-macke/FSHistory</a> - Play and Enjoy the History of Microsoft Flight Simulator</li>
</ul>
]]></content></entry><entry><title>JSter #159: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-159"></link><id>jster-159</id><published>2020-09-03T10:11:25.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript, still going strong</p>
</blockquote>
<p>I recently <a class="underline" href="https://survivejs.com/blog/webpack-book-updated-to-webpack-5/">updated my webpack book to support webpack 5 initially</a>. Webpack 5 will go out 10th of October so it's a good timing. During this work, I modernized the content heavily.</p>
<p><a class="underline" href="https://react-finland.fi/blog/rf-2020-online-mini-conf-vol-2-recap/">The second React Finland mini-conference about state management</a> took place a few days ago. <a class="underline" href="https://react-finland.fi/blog/rf-2020-online-mini-conf-vol-3/">The next one</a> will be about design systems and take place 22nd of September.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/alexandprivate/react-blurify">alexandprivate/react-blurify</a> - Apply blur effect to children components</li>
<li><a class="underline" href="https://github.com/nicojs/typed-inject">nicojs/typed-inject</a> - Type-safe dependency injection for TypeScript</li>
<li><a class="underline" href="https://github.com/davidkpiano/xactor">davidkpiano/xactor</a> - Actors for the modern web</li>
<li><a class="underline" href="https://www.npmjs.com/package/hyperhtml">hyperhtml</a> - A Fast & Light Virtual DOM Alternative</li>
<li><a class="underline" href="https://github.com/artalar/reatom">artalar/reatom</a> - State manager with a focus of all needs</li>
<li><a class="underline" href="https://github.com/kripod/glaze">kripod/glaze</a> - CSS-in-JS microlibrary for making design systems approachable with React</li>
<li><a class="underline" href="https://github.com/Popmotion/popmotion">Popmotion</a> - The animator's toolbox</li>
<li><a class="underline" href="https://github.com/pubkey/rxdb">pubkey/rxdb</a> - A realtime Database for JavaScript Applications</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/tauri-apps/tauri">Tauri</a> - Build smaller, faster, and more secure desktop applications with a web frontend</li>
<li><a class="underline" href="https://medium.com/@uplifted_latte_kangaroo_248/alibaba-midway-serverless-v1-0-lets-building-serverless-cloud-ecosystem-with-node-js-8bfa943c4fb7">Alibaba Midway Serverless v1.0</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.logrocket.com/comparing-state-machines-xstate-vs-robot/">Comparing state machines: XState vs. Robot</a></li>
<li><a class="underline" href="https://sebastienlorber.com/records-and-tuples-for-react/">Records & Tuples for React</a></li>
<li><a class="underline" href="https://dassur.ma/things/react-redux-comlink/">React + Redux + Comlink = Off-main-thread</a></li>
<li><a class="underline" href="https://ciechanow.ski/lights-and-shadows/">Lights and Shadows</a></li>
<li><a class="underline" href="https://codeburst.io/large-offline-datasets-with-apollo-client-c19c987e4a98">Large Offline Datasets with Apollo Client</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://statecharts.io/">Statecharts.io</a> - Statechart tools to make your code do more, visually</li>
<li><a class="underline" href="https://bundlers.tooling.report/">tooling.report</a> - Which bundler to use and when</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://avikdas.com/2020/07/08/barebones-webgl-in-75-lines-of-code.html">Barebones WebGL in 75 lines of code</a></li>
<li><a class="underline" href="https://dev.to/andyhaskell/testing-your-indexeddb-code-with-jest-2o17">Testing your IndexedDB code with Jest</a></li>
<li><a class="underline" href="https://frontstuff.io/how-i-dropped-250-kb-of-dead-css-weight-with-purgecss">How I Dropped 250 KB of Dead CSS Weight with PurgeCSS</a></li>
<li><a class="underline" href="https://giuseppegurgone.com/critical-css-extraction/">Critical-ish CSS Extraction</a></li>
<li><a class="underline" href="https://dev.to/gajus/using-node-js-sourcemaps-with-node-js-and-babel-2dpi">Using Node.js sourcemaps with Node.js and Babel</a></li>
<li><a class="underline" href="https://reachlightspeed.com/blog/using-the-new-high-performance-avif-image-format-on-the-web-today/">How to Use AVIF: The New Next-Gen Image Compression Format</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://gitlab.com/codebryo/pleasejs">The polite way of building a javascript util library for any project</a></li>
<li><a class="underline" href="https://www.npmjs.com/package/stacktracey">StackTracey</a> - Parses call stacks. Reads sources. Clean & filtered output. Sourcemaps. Node & browsers.</li>
<li><a class="underline" href="https://github.com/Elderjs/elderjs">elderjs</a> - Elder.js is an opinionated static site generator and web framework for Svelte built with SEO in mind</li>
<li><a class="underline" href="https://www.snowpack.dev/posts/2020-07-30-snowpack-2-7-release/">Snowpack 2.7</a> - The faster frontend build tool</li>
<li><a class="underline" href="https://devblogs.microsoft.com/typescript/announcing-typescript-4-0/">Announcing TypeScript 4.0</a></li>
<li><a class="underline" href="https://github.com/vitejs/vite">vite</a> - Native-ESM powered web dev build tool. It's fast.</li>
<li><a class="underline" href="https://github.com/alangpierce/sucrase">sucrase</a> - Super-fast alternative to Babel for when you can target modern JS runtimes</li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/extendsclass-interview/">ExtendsClass</a> - Tools for developers</li>
<li><a class="underline" href="https://survivejs.com/blog/midway-interview/">Midway</a> - A Node.js framework for Serverless</li>
</ul>
<a href="#graphql"><h2 class="inline" id="graphql">GraphQL</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dev.to/michallytek/announcing-typegraphql-1-0-1d7h">Announcing TypeGraphQL 1.0 🚀</a></li>
</ul>
<a href="#experiments"><h2 class="inline" id="experiments">Experiments</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/tvler/experimental-react-like-framework">experimental-react-like-framework</a> - A new, experimental frontend for React inspired by SwiftUI. In development.</li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/dabreegster/abstreet">dabreegster/abstreet</a> - A traffic simulation game exploring how small changes to roads affect cyclists, transit users, pedestrians, and drivers</li>
</ul>
<a href="#songs"><h2 class="inline" id="songs">Songs</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.youtube.com/watch?v=Qx0zSF6y70Y&feature=youtu.be">All you need is Javascript</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jazzkeys.plan8.co/">JazzKeys</a></li>
</ul>
]]></content></entry><entry><title>JSter #158: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-158"></link><id>jster-158</id><published>2020-08-04T10:06:51.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Toss a coin for your JavaScript</p>
</blockquote>
<p><a class="underline" href="https://react-finland.fi/blog/rf-2020-online-mini-conf-vol-2/">The second online mini-conference held by React Finland</a> takes place 27th of August and it's going to be about state management. Join us to learn more about the topic with David Khourshid, Christian Alfoni, Yan Lavryushev, and Sara Vieira (MC).</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/dai-shi/redux-in-worker">dai-shi/redux-in-worker</a> - Entire Redux in Web Worker</li>
<li><a class="underline" href="https://jgranstrom.github.io/zipson/">zipson</a> - A drop-in alternative to JSON.parse/stringify with added compression and streaming support</li>
<li><a class="underline" href="https://github.com/WebReflection/JSONH">WebReflection/JSONH</a> - A way to pack/unpack generic homogenous collections</li>
<li><a class="underline" href="https://github.com/jcubic/sysend.js">jcubic/sysend.js</a> - Send messages between pages that are open in the same browser</li>
<li><a class="underline" href="https://github.com/beatgammit/gzip-js">beatgammit/gzip-js</a> - A pure JavaScript implementation of the GZIP file format</li>
<li><a class="underline" href="https://github.com/jcubic/jquery.terminal">jcubic/jquery.terminal</a> - Terminal emulator as a jQuery plugin</li>
<li><a class="underline" href="https://github.com/retarsis/routeshub">retarsis/routeshub</a> - A route manager and pattern for Angular</li>
<li><a class="underline" href="https://github.com/miketalbot/js-coroutines">miketalbot/js-coroutines</a> - coroutines for JavaScript</li>
<li><a class="underline" href="https://splitting.js.org/">Splitting.js</a> - CSS variables for split words and characters</li>
<li><a class="underline" href="https://github.com/gajus/mutual-exclusion">gajus/mutual-exclusion</a> - Mutual Exclusion (mutex) object for JavaScript</li>
<li><a class="underline" href="https://github.com/lukeed/escalade">lukeed/escalade</a> - A tiny (183B to 210B) and fast utility to ascend parent directories</li>
<li><a class="underline" href="https://muuri.dev/">Muuri</a> - Infinite layouts with batteries included</li>
<li><a class="underline" href="https://github.com/vvo/tzdb">vvo/tzdb</a> - Time zone helpers</li>
<li><a class="underline" href="https://dev.to/imax153/graphics-ts-functional-bindings-for-the-html-5-canvas-api-1832">graphics-ts</a> - Functional Bindings for the HTML 5 Canvas API</li>
</ul>
<a href="#graphql"><h2 class="inline" id="graphql">GraphQL</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://nexus.js.org/index.html">GraphQL Nexus</a> - Declarative, Code-First GraphQL Schemas for JavaScript/TypeScript</li>
<li><a class="underline" href="https://github.com/genie-team/graphql-genie">graphql-genie</a> - Type definitions to an API</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/postcss/postcss-100vh-fix">postcss/postcss-100vh-fix</a> - PostCSS plugin to fix iOS’s bug with 100vh.</li>
<li><a class="underline" href="https://github.com/crewdevio/Trex">crewdevio/Trex</a> - A package manager for Deno</li>
<li><a class="underline" href="https://foambubble.github.io/foam/">Foam</a> - A personal knowledge management and sharing system</li>
<li><a class="underline" href="https://webglstudio.org/demo/">WebGLStudio</a> - 3D studio on the web</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dev.to/bahmutov/12-recipes-for-testing-react-applications-using-cypress-react-unit-test-46g6">12 Recipes for testing React applications using cypress-react-unit-test</a></li>
<li><a class="underline" href="https://areknawo.com/ecmascript-2020-biggest-new-features/">ECMAScript 2020 biggest new features</a></li>
<li><a class="underline" href="https://medium.com/google-developer-experts/coroutines-suspending-state-machines-36b189f8aa60">Coroutines: Suspending State Machines</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://thomazella.substack.com/p/cancellable-promise">Cancellable promise</a> - In Typescript. Also a little surprise.</li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/pichsenmeister/WienerScript">pichsenmeister/WienerScript</a></li>
<li><a class="underline" href="https://grain-lang.org/">Grain: A strongly-typed functional programming language for the modern web.</a></li>
</ul>
<a href="#random"><h2 class="inline" id="random">Random</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.reddit.com/r/spacex/comments/gxb7j1/we_are_the_spacex_software_team_ask_us_anything/">We are the SpaceX software team, ask us anything!</a></li>
</ul>
]]></content></entry><entry><title>JSter #157: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-157"></link><id>jster-157</id><published>2020-07-06T10:38:24.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>undefined is not a function</p>
</blockquote>
<p>Thanks to Google sponsorship, I was able to complete a new major version of <a class="underline" href="https://www.npmjs.com/package/webpack-merge">webpack-merge</a>, the popular tool for merging webpack configurations. It's written in TypeScript and while I dropped smart merging from it, other fixes and tweaks should make up for the omission.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/aribouius/jsonapi-react">aribouius/jsonapi-react</a> - A minimal JSON:API client and React hooks for fetching, updating, and caching remote data.</li>
<li><a class="underline" href="https://hooked-on-redux.js.org/">Hooked on Redux</a> - Redux on hooks</li>
<li><a class="underline" href="https://roughnotation.com/">RoughNotation</a> - A small JavaScript library to create and animate annotations on a web page</li>
<li><a class="underline" href="https://yabwe.github.io/medium-editor/">MediumEditor</a> - The dead simple inline editor toolbar.</li>
<li><a class="underline" href="https://silvia-odwyer.github.io/photon/">Photon</a> - A WebAssembly Image Processing Library</li>
<li><a class="underline" href="https://github.com/ryansolid/solid">ryansolid/solid</a> - A declarative JavaScript library for creating user interfaces</li>
<li><a class="underline" href="https://jaredforsyth.com/posts/local-first-database-gun-js/">Local-first database: gun.js</a></li>
<li><a class="underline" href="https://github.com/leeoniya/uPlot">leeoniya/uPlot</a> - A small (< 25 KB min), fast chart for time series, lines, areas, ohlc & bars</li>
<li><a class="underline" href="http://tabulator.info/">Tabulator</a> - The easy to use, fully featured, interactive table JavaScript library</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://audiomass.co/">AudioMass</a> - A free, open source, web-based Audio and Waveform Editor</li>
<li><a class="underline" href="https://www.snowpack.dev/posts/2020-05-26-snowpack-2-0-release/">Introducing Snowpack 2.0</a> - A build system for the modern web</li>
<li><a class="underline" href="https://github.com/lud2k/ts-react-display-name">lud2k/ts-react-display-name</a> - Typescript transformer that adds displayName to React components.</li>
<li><a class="underline" href="https://github.com/ericclemmons/amplify-flow">ericclemmons/amplify-flow</a> - Native app for GitHub issue management for Amplify JS</li>
<li><a class="underline" href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v3.0.0">typescript-eslint/typescript-eslint/releases/tag/v3.0.0</a> - A new major release</li>
</ul>
<a href="#styling"><h2 class="inline" id="styling">Styling</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://latex.now.sh/">LaTeX.css</a> - Make your site look like a LaTeX document</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/vriad/zod">vriad/zod</a> - A TypeScript driven validation library</li>
<li><a class="underline" href="https://gal.hagever.com/posts/typing-the-technical-interview-in-typescript/">Typing the Technical Interview in TypeScript</a></li>
<li><a class="underline" href="https://github.com/nicojs/typed-html">nicojs/typed-html</a> - TypeScript and JSX driven HTML templates</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@OlegVaraksin/how-to-make-ionic-storage-reactive-acdd8996f1e6">How to make Ionic Storage reactive</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.webf.zone/contemporary-front-end-architectures-fb5b500b0231">Contemporary Front-end Architectures</a></li>
<li><a class="underline" href="https://vriad.com/essays/zod">Designing the perfect Typescript schema validation library</a></li>
<li><a class="underline" href="https://dillonshook.com/a-critique-of-react-hooks/">A Critique of React Hooks</a></li>
</ul>
<a href="#testing"><h2 class="inline" id="testing">Testing</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/mfrachet/cypress-audit">mfrachet/cypress-audit</a> - Integration of Cypress with other test tooling</li>
</ul>
<a href="#data-structures"><h2 class="inline" id="data-structures">Data Structures</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/protobufjs/protobuf.js">protobuf.js</a> - A serialized data structure</li>
<li><a class="underline" href="https://msgpack.org/index.html">MessagePack: It's like JSON. but fast and small.</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://web.dev/optimize-cls/">Optimize Cumulative Layout Shift</a></li>
<li><a class="underline" href="https://developers.google.com/web/showcase/2016/service-worker-perf">Measuring the Real-world Performance Impact of Service Workers</a></li>
<li><a class="underline" href="https://web.dev/precache-with-workbox-react/">Precaching in Create React App with Workbox</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.webliero.com/">WebLiero</a> - Finnish classic on the web</li>
</ul>
<a href="#proposals"><h2 class="inline" id="proposals">Proposals</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/tc39/proposal-pattern-matching/blob/latest/README.md">tc39/proposal-pattern-matching/blob/latest/README.md</a> - Pattern matching for JavaScript</li>
</ul>
]]></content></entry><entry><title>JSter #156: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-156"></link><id>jster-156</id><published>2020-06-05T05:13:38.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>It's 2020 and we're still coding JavaScript</p>
</blockquote>
<p><a class="underline" href="https://react-finland.fi/blog/rf-2020-online-mini-conf-vol-1-recap/">The first React Finland mini-conference</a> took place 28th of May. I've included the videos from the session in the link and it also includes the QAs and the end panel.</p>
<p>The next mini-conf is going to be about state management and it's going to happen 27th of August.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/nikersify/pico">nikersify/pico</a> - Take browser screenshots in Javascript</li>
<li><a class="underline" href="https://github.com/dfahlander/Dexie.js">dfahlander/Dexie.js</a> - A Minimalistic Wrapper for IndexedDB</li>
<li><a class="underline" href="https://github.com/jncraton/box-line-text">jncraton/box-line-text</a> - Simple virtual whiteboarding</li>
<li><a class="underline" href="https://github.com/imazen/imageflow">imazen/imageflow</a> - High-performance image manipulation for web servers. Includes imageflow_server, imageflow_tool, and libimageflow</li>
<li><a class="underline" href="https://www.npmjs.com/package/better-logging">better-logging</a> - An alternative logger for JavaScript</li>
<li><a class="underline" href="https://recoiljs.org/">Recoil</a> - A state management library for React</li>
<li><a class="underline" href="https://github.com/manassarpatwar/Self-driving-AI">manassarpatwar/Self-driving-AI</a> - Self driving cars using NEAT</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blitzjs.com/">Blitz.js</a> - Rails-like framework for monolithic, full-stack React apps — built on Next.js</li>
<li><a class="underline" href="https://pixwlk.itch.io/pixelbox">Pixelbox.js</a> - Create 2D games in JavaScript</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/aholachek/bundle-wizard">aholachek/bundle-wizard</a> - Magically easy insight into the JavaScript loaded by a web app</li>
<li><a class="underline" href="https://www.npmjs.com/package/lerna-update-wizard">Lerna Update Wizard</a> - Command line interface for simplifying the process of bulk updating dependencies across multiple Lerna or Yarn Workspace packages.</li>
<li><a class="underline" href="https://preconstruct.tools/">Preconstruct</a> - Dev and build your code painlessly in monorepos</li>
<li><a class="underline" href="https://excalidraw.com/">Excalidraw</a> - Simple collaborative drawing on the web</li>
<li><a class="underline" href="https://yarnpkg.com/api/modules/plugin_typescript.html">@yarnpkg/plugin-typescript</a> - This plugin automatically adds @types/ packages into your dependencies when you add a package that doesn't include its own types.</li>
<li><a class="underline" href="https://github.com/atlassian/changesets">atlassian/changesets</a> - Changesets automate changelog generation</li>
<li><a class="underline" href="https://github.com/Thinkmill/manypkg/tree/master/packages/get-packages">@manypkg/get-packages</a> - A simple utility to get the packages from a monorepo, whether they're using Yarn, Bolt or pnpm</li>
<li><a class="underline" href="https://eslint.org/blog/2020/05/eslint-v7.0.0-released">ESLint v7.0.0 released</a></li>
<li><a class="underline" href="https://github.com/stefanjudis/netlify-menubar">stefanjudis/netlify-menubar</a> - Netlify menubar app to receive build information or trigger new builds</li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://animate.style/">Animate.css</a> - Just-add-water CSS animations</li>
<li><a class="underline" href="https://jdan.github.io/98.css/">98.css</a> - CSS like it's 1998</li>
<li><a class="underline" href="https://www.npmjs.com/package/@stitches/css">@stitches/css</a> - Atomic css-in-js</li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://programmingdigest.net/?utm_source=jster">Weekly News for Busy Web Devs</a> - Programming Digest is a weekly curated newsletter with the five most interesting stories in programming 👩‍💻, data 💾, and tech 📱️.</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/better-programming/using-workbox-with-next-js-a-step-towards-progressive-web-apps-a3f985f5f864">How to Use Workbox With Next.js</a></li>
<li><a class="underline" href="https://dev.to/addyosmani/loading-web-pages-fast-on-a-20-feature-phone-8h6">Loading web pages fast on a $20 feature phone</a></li>
<li><a class="underline" href="http://stevehanov.ca/blog/?id=148">How to detect if an object has been garbage collected in Javascript</a></li>
<li><a class="underline" href="https://htmldom.dev/">HTML DOM</a> - How to manage HTML DOM with vanilla JavaScript only?</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.amp.dev/2020/05/06/amp-web-vitals-a-better-web-together/">AMP + Web Vitals</a> – a better web, together</li>
<li><a class="underline" href="https://timkadlec.com/remembers/2020-04-21-the-cost-of-javascript-frameworks/">The Cost of Javascript Frameworks</a></li>
<li><a class="underline" href="http://www.tuitivegroup.com/good-fast-cheap/">Good, Fast, Cheap -- pick any two.</a></li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hegel.js.org/">Hegel</a> - An advanced static type checker</li>
<li><a class="underline" href="https://medium.com/@nodejs/node-js-version-14-available-now-8170d384567e">Node.js version 14 is available now</a></li>
<li><a class="underline" href="https://deno.land/v1">Deno, a Node.js alternative, has reached 1.0</a></li>
</ul>
<a href="#testing"><h2 class="inline" id="testing">Testing</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/testonjs/teston">testonjs/teston</a> - Test runner similar to tape, but with ES6 module support, simpler subtest syntax and nice indentation</li>
</ul>
<a href="#graphql"><h2 class="inline" id="graphql">GraphQL</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://nexus.js.org/">GraphQL Nexus</a> - Declarative, Code-First GraphQL Schemas for JavaScript/TypeScript</li>
<li><a class="underline" href="https://dev.to/zth/relay-the-graphql-client-that-wants-to-do-the-dirty-work-for-you-55kd">Relay: the GraphQL client that wants to do the dirty work for you</a></li>
</ul>
]]></content></entry><entry><title>JSter #155: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-155"></link><id>jster-155</id><published>2020-05-06T09:21:40.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript, eight days a week</p>
</blockquote>
<p>The online edition of <a class="underline" href="https://react-finland.fi/">React Finland</a> is getting closer. There will be a group of workshops at the end of the month. In addition, we'll begin a series of online mini-conferences with three speakers each including QAs and panels. The theme of the first one will be documentation.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/garmeeh/next-seo">garmeeh/next-seo</a> - Next SEO is a plug in that makes managing your SEO easier in Next.js projects</li>
<li><a class="underline" href="https://react-icons.github.io/react-icons/">React Icons</a> - Popular icons for React projects</li>
<li><a class="underline" href="https://github.com/lukeed/uid">lukeed/uid</a> - A tiny (134B) and fast utility to generate random IDs of fixed length</li>
<li><a class="underline" href="http://snapsvg.io/">Snap.svg</a> - The JavaScript SVG library for the modern web</li>
<li><a class="underline" href="https://www.npmjs.com/package/ts-polyfill">ts-polyfill</a> - Runtime polyfills for TypeScript libs, powered by core-js!</li>
<li><a class="underline" href="https://www.npmjs.com/package/iwanthue">iwanthue</a> - Colors for data scientists</li>
<li><a class="underline" href="https://github.com/KFlash/seafox">KFlash/seafox</a> - A blazing fast 100% spec compliant, self-hosted JavaScript parser written in TypeScript</li>
<li><a class="underline" href="https://github.com/open-draft/until">open-draft/until</a> - Gracefully handle Promises using async/await</li>
<li><a class="underline" href="https://www.npmjs.com/package/safety-match">safety-match</a> - Rust-style tagged union matching for JavaScript, with TypeScript types</li>
<li><a class="underline" href="https://github.com/Yomguithereal/pandemonium">Yomguithereal/pandemonium</a> - Typical random-related functions for JavaScript</li>
<li><a class="underline" href="https://github.com/erikmueller/cond-flow/">erikmueller/cond-flow/</a> - Elixir style cond for easy javascript control flow</li>
<li><a class="underline" href="https://dnajs.org/">dna.js ~~ An uncomplicated user interface library for building data-driven semantic templates</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://redwoodjs.com/">RedwoodJS</a> - Bringing full-stack to the Jamstack</li>
<li><a class="underline" href="https://crank.js.org/blog/introducing-crank">Crank.js</a> - A Reactish UI framework with generators</li>
<li><a class="underline" href="https://www.vendure.io/blog/2020/03/announcing-vendure-v0.10.0/">Announcing Vendure v0.10.0</a> - A framework for developing e-commerce</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.snowpack.dev/">Snowpack</a> - The fast, bundle-free build tool for modern web apps.</li>
<li><a class="underline" href="https://jestjs.io/blog/2020/05/05/jest-26">Jest 26: Tick Tock</a> - A new release of the major testing tool has arrived</li>
<li><a class="underline" href="https://github.com/ai/size-limit">ai/size-limit</a> - Calculate the real cost to run your JS app or lib to keep good performance. Show error in pull request if the cost exceeds the limit</li>
<li><a class="underline" href="https://www.npmjs.com/package/servor">servor</a> - A dependency free dev server for modern web application development</li>
<li><a class="underline" href="https://babeljs.io/blog/2020/03/16/7.9.0">Babel 7.9.0 Released: Smaller preset-env output, Typescript 3.8 support and a new JSX transform</a></li>
<li><a class="underline" href="https://eslint.org/blog/2020/02/whats-coming-in-eslint-7.0.0">What's coming in ESLint v7.0.0</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/better-programming/react-router-v6-in-two-minutes-a7a2963e2340">React Router v6 in Three Minutes</a></li>
<li><a class="underline" href="https://medium.com/javascript-scene/do-react-hooks-replace-redux-210bab340672">Do React Hooks Replace Redux?</a></li>
<li><a class="underline" href="https://hueniverse.com/square-brackets-are-the-enemy-ff5b9fd8a3e8">Square Brackets are the Enemy</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hamatti.org/guides/humane-guide-to-debugging/">Humane Guide to Debugging Web Apps</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://gitspo.com/analytics">GitSpo</a> - Analytics and Alerts for Open-Source</li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.quakejs.com/">quakejs.com</a></li>
</ul>
<a href="#graphql"><h2 class="inline" id="graphql">GraphQL</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/ganeshcse2991/validate-graphql">ganeshcse2991/validate-graphql</a> - A simple and elegant module that provides you an easy way to validate your GraphQL queries and mutation with your own logic and YUP validation framework</li>
<li><a class="underline" href="https://hasura.io/blog/gqless-fetch-your-graphql-data-automagically/">Fetch your GraphQL data automagically</a> - Building a movie app with Hasura & gqless</li>
<li><a class="underline" href="https://github.com/confuser/graphql-constraint-directive">confuser/graphql-constraint-directive</a> - Validate GraphQL fields</li>
<li><a class="underline" href="https://gqless.dev/">gqless</a> - GraphQL queries without typing</li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jantimon.github.io/css-framework-performance/">CSS-Framework Lighthouse Scores</a> - A performance comparison of css approaches</li>
</ul>
<a href="#parodies"><h2 class="inline" id="parodies">Parodies</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blogtitle.github.io/i-am-switching-to-js/">I Am Switching to JS</a></li>
</ul>
]]></content></entry><entry><title>JSter #154: Libraries, tools, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-154"></link><id>jster-154</id><published>2020-04-06T03:18:36.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript, the programming language where there are multiple truths</p>
</blockquote>
<p>It's time for another another montly JSter. Due to the on-going pandemic, we had to <a class="underline" href="https://react-finland.fi/blog/rf-2020-postponed/">postpone React Finland</a> to the next year. We'll be running online events this year to serve our community, though.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dnajs.org/">dna.js</a> - An uncomplicated user interface library for building data-driven semantic templates</li>
<li><a class="underline" href="https://reactjs.org/blog/2020/02/26/react-v16.13.0.html">React v16.13.0</a></li>
<li><a class="underline" href="https://github.com/jaredpalmer/mutik">jaredpalmer/mutik</a> - A tiny (495B) immutable state management library based on Immer</li>
<li><a class="underline" href="https://js-joda.github.io/js-joda/">Joda</a> - Immutable date and time library for javascript</li>
<li><a class="underline" href="https://moonjs.org/">Moon</a> - The minimal & fast library for functional user interfaces</li>
<li><a class="underline" href="https://www.npmjs.com/package/detect-browser">detect-browser</a> - This is a package that attempts to detect a browser vendor and version (in a semver compatible format) using a navigator useragent in a browser or process.version in Node.</li>
<li><a class="underline" href="https://github.com/brahmosjs/brahmos">brahmosjs/brahmos</a> - Super charged JavaScript library with modern React API and native templates</li>
<li><a class="underline" href="https://github.com/rsmbl/Resemble.js">rsmbl/Resemble.js</a> - Image analysis and comparison</li>
</ul>
<a href="#toolkits"><h2 class="inline" id="toolkits">Toolkits</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://mxb.dev/blog/emergency-website-kit/">Emergency Website Kit</a></li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hasura.io/blog/why-we-chose-typescript-for-hasura-console/">Why Hasura chose Typescript for the Hasura Console</a></li>
<li><a class="underline" href="https://github.com/ronami/meta-typing">ronami/meta-typing</a> - Functions and algorithms implemented purely with TypeScript's type system</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://souporserious.com/managing-indexed-collections-with-usemutablesource/">Managing indexed collections with useMutableSource</a></li>
<li><a class="underline" href="https://css-tricks.com/fixed-headers-and-jump-links-the-solution-is-scroll-margin-top/">Fixed Headers and Jump Links? The Solution is scroll-margin-top</a></li>
<li><a class="underline" href="https://github.com/luruke/browser-2020">luruke/browser-2020</a> - Things you can do with a browser in 2020 ☕️</li>
<li><a class="underline" href="https://dev.to/karataev/set-css-styles-with-javascript-3nl5">Set CSS styles with JavaScript</a></li>
<li><a class="underline" href="https://gist.github.com/tomhicks/6cb5e827723c4eaef638bf9f7686d2d8">Listen to your web pages</a></li>
<li><a class="underline" href="https://tympanus.net/codrops/2019/01/08/animated-mesh-lines/">Animated Mesh Lines</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://gist.github.com/paulirish/5d52fb081b3570c81e3a">What forces layout/reflow. The comprehensive list.</a></li>
<li><a class="underline" href="https://alistapart.com/article/accessibility-for-vestibular/">Accessibility for Vestibular Disorders: How My Temporary Disability Changed My Perspective</a></li>
<li><a class="underline" href="https://paqmind.com/en/blog/ssr-is-not-the-future">SSR is not the future of Web Development</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.npmjs.com/package/mini-html-webpack-plugin">mini-html-webpack-plugin</a> - A new major version with support for TypeScript out of the box has been released</li>
<li><a class="underline" href="https://dev.to/jantimon/html-webpack-plugin-4-has-been-released-125d">html-webpack-plugin 4 has been released!</a> - Faster, better</li>
<li><a class="underline" href="https://github.com/ryanelian/instapack">ryanelian/instapack</a> - All-in-one TypeScript and Sass compiler for web applications! 📦 🚀 </li>
<li><a class="underline" href="https://github.com/wilddeer/stickyfill">wilddeer/stickyfill</a> - Polyfill for CSS <code>position: sticky</code></li>
<li><a class="underline" href="https://github.com/evanw/esbuild/">evanw/esbuild/</a> - An extremely fast JavaScript bundler and minifier</li>
<li><a class="underline" href="http://witheve.com/">Eve</a> - Eve is a programming language and IDE based on years of research into building a human-first programming platform</li>
<li><a class="underline" href="https://github.blog/2020-02-12-supercharge-your-command-line-experience-github-cli-is-now-in-beta/">Supercharge your command line experience: GitHub CLI is now in beta</a></li>
</ul>
<a href="#testing"><h2 class="inline" id="testing">Testing</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/suchipi/test-it">suchipi/test-it</a> - Test-It is a test framework that gives you the best of node AND the browser</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://erichjames.com/2020/03/transition-ing-from-alpine-js-to-vue-js/">Transition-ing from Alpine.js to Vue.js</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://native-elements.stackblitz.io/">Native HTML elements with CSS superpowers</a></li>
</ul>
]]></content></entry><entry><title>JSter #153: Libraries, tools, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-153"></link><id>jster-153</id><published>2020-03-08T13:07:50.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript - still going strong</p>
</blockquote>
<p>Somehow the Winter months are always the busiest. And as if that wasn't enough, now there's this global virus to worry about.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://apprun.js.org/">AppRun</a> - A JavaScript library for building reliable, high-performance web applications using the Elm inspired Architecture, events, and components</li>
<li><a class="underline" href="https://github.com/nicojs/typed-html">nicojs/typed-html</a> - TypeSafe HTML templates using TypeScript. No need to learn a template library.</li>
<li><a class="underline" href="https://pancake-charts.surge.sh/">Pancake</a> - Charts for Svelte apps</li>
<li><a class="underline" href="https://hex-engine.dev/">Hex Engine</a> - A Modern 2D Game Engine for the Browser</li>
<li><a class="underline" href="https://mavo.io/">Mavo</a> - A new, approachable way to create Web applications</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://nextjs.org/blog/next-9-2">Next.js 9.2</a></li>
<li><a class="underline" href="https://blog.angular.io/version-9-of-angular-now-available-project-ivy-has-arrived-23c97b63cfa3">Angular 9</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://ericclemmons.com/blog/filesystem-routers-and-indexes">Filesystem Routers & Indexes</a></li>
<li><a class="underline" href="https://hugogiraudel.com/2020/02/03/lessons-from-building-n26-for-web/">Lessons from building “N26 for Web”</a></li>
<li><a class="underline" href="https://medium.com/codewind/checking-node-js-sub-dependencies-licenses-for-usage-and-redistribution-58fe70a77847">Checking Node.js sub-dependencies licenses for usage and redistribution</a></li>
<li><a class="underline" href="https://hankchizljaw.com/wrote/honesty-is-the-best-policy/">Honesty is the best policy</a></li>
</ul>
<a href="#a11y"><h2 class="inline" id="a11y">A11y</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.scottohara.me/note/2019/07/17/placeholder-link.html">The accessibility of placeholder links</a></li>
<li><a class="underline" href="https://catalin.red/css-resize-none-is-bad-for-ux/">CSS resize none on textarea is bad for UX</a></li>
<li><a class="underline" href="https://eldh.co/blurred-vision/">Blurred vision</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://stackshare.io/posts/top-developer-tools-2019">🏆 The Top 50 Developer Tools of 2019</a></li>
<li><a class="underline" href="https://github.com/bradlc/babel-plugin-tailwind-components">bradlc/babel-plugin-tailwind-components</a> - Use Tailwind with any CSS-in-JS library</li>
<li><a class="underline" href="https://github.com/ericclemmons/codelift">ericclemmons/codelift</a> - A No Code GUI for your existing React code</li>
<li><a class="underline" href="https://twitter.com/i/web/status/1231870133351669760">lirantal/is-website-vulnerable</a> - Find publicly known security vulnerabilities in a website's frontend JavaScript libraries</li>
<li><a class="underline" href="https://github.com/livegrep/livegrep">livegrep</a> - Interactively grep source code</li>
<li><a class="underline" href="https://tiny-helpers.dev/">Tiny Helpers</a> - A collection of free single-purpose online tools for web developers</li>
<li><a class="underline" href="https://neutralino.js.org/">NeutralinoJs</a> - Portable and lightweight cross platform application development framework</li>
<li><a class="underline" href="https://www.npmjs.com/package/depcheck">depcheck</a> - Understand your dependencies, understand your project</li>
</ul>
<a href="#bots"><h2 class="inline" id="bots">Bots</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/nteract/galleria">nteract/galleria</a> - GitHub bot that uploads screenshots from PR builds</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/algebraic-graphs/typescript">algebraic-graphs/typescript</a> - Algebraic graphs implementation in TypeScript</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://towardsdatascience.com/implementing-2d-physics-in-javascript-860a7b152785">Implementing 2D Physics in JavaScript</a></li>
</ul>
<a href="#desktop"><h2 class="inline" id="desktop">Desktop</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/styfle/awesome-desktop-js">styfle/awesome-desktop-js</a> - A list of awesome packages and frameworks for implementing javascript applications on the desktop</li>
</ul>
<a href="#environment"><h2 class="inline" id="environment">Environment</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dannyvankooten.com/website-carbon-emissions/">CO2 emissions on the web</a></li>
</ul>
<a href="#testing"><h2 class="inline" id="testing">Testing</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://stryker-mutator.io/">Stryker Mutator</a> - Test your tests with mutation testing</li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/debugging-interview/">Debugging JavaScript - Interview with Mehdi Osman</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dev.to/richharris/a-new-technique-for-making-responsive-javascript-free-charts-gmp">A new technique for making responsive, JavaScript-free charts</a></li>
</ul>
]]></content></entry><entry><title>JSter #152: Libraries and a lot more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-152"></link><id>jster-152</id><published>2020-02-05T04:31:04.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>2020 and we're still coding JavaScript</p>
</blockquote>
<p>It's time for the monthly JSter again. <a class="underline" href="https://react-finland.fi/">React Finland</a> is shaping up well and we're out of regular bird tickets for the conference soon. I've compiled a list of JavaScript links I've found interesting during the past month so please enjoy. I hope you find something useful.</p>
<p>One of the things I completed during past month was <a class="underline" href="https://sidewindjs.com/">Sidewind</a>. It's a light state manager built for JavaScript. State lives within the DOM and thanks to the modern web APIs I was able to keep it small. If you are using Tailwind for styling, Sidewind complements it well.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/lukeed/calendarize">lukeed/calendarize</a> - A tiny (202B) utility to generate calendar views</li>
<li><a class="underline" href="https://mavo.io/">Mavo</a> - A new, approachable way to create web applications</li>
<li><a class="underline" href="https://www.npmjs.com/package/tagtag">tagtag</a> - Easy HTML templating with JS</li>
<li><a class="underline" href="https://www.npmjs.com/package/hyperscript-html">hyperscript-html</a> - Fast and light hyperscript function to generate HTML</li>
<li><a class="underline" href="https://github.com/mattboldt/typed.js/">mattboldt/typed.js/</a> - A JavaScript typing animation library</li>
<li><a class="underline" href="https://github.com/lukeed/klona">lukeed/klona</a> - A tiny (366B) and fast utility to deep clone Objects, Arrays, Dates, RegExps, and more!</li>
<li><a class="underline" href="https://yomguithereal.github.io/mnemonist/passjoin-index">Passjoin Index</a> - Efficient Levenshtein distance queries</li>
<li><a class="underline" href="http://usecuid.org/">cuid</a> - Collision-resistant ids optimized for horizontal scaling and performance</li>
<li><a class="underline" href="https://zizzamia.github.io/perfume/">Perfume.js</a> - Perfume is a tiny, web performance monitoring library</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://feathersjs.com/">Feathers</a> - A framework for real-time applications and REST APIs</li>
<li><a class="underline" href="http://vulcanjs.org/">VulcanJS</a> - The full-stack React+GraphQL framework</li>
</ul>
<a href="#components"><h2 class="inline" id="components">Components</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://plete.dev/">plete</a> - A vanilla js autocomplete component that supports remote filtering</li>
<li><a class="underline" href="https://www.npmjs.com/package/@justinribeiro/lite-youtube">@justinribeiro/lite-youtube</a> - A web component that displays render YouTube embeds faster</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://levelup.gitconnected.com/overnightjs-the-best-way-to-use-expressjs-with-typescript-35d71941aade">OvernightJS</a> - The best way to use ExpressJS with TypeScript</li>
</ul>
<a href="#data-structures"><h2 class="inline" id="data-structures">Data Structures</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/anvaka/ngraph">anvaka/ngraph</a> - A set of graph algorithms</li>
</ul>
<a href="#language"><h2 class="inline" id="language">Language</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a> - Explanation of this little known yet useful feature</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/react-figma/react-figma">react-figma</a> - Render React components to Figma</li>
<li><a class="underline" href="https://dev.to/arcanis/introducing-yarn-2-4eh1">Introducing Yarn 2</a> - The popular package manager has reached a new major version</li>
<li><a class="underline" href="https://www.npmjs.com/package/pretty-quick">pretty-quick</a> - Run Prettier on your changed files</li>
<li><a class="underline" href="https://github.com/microsoft/playwright">microsoft/playwright</a> - Puppeteer but for multiple browsers</li>
<li><a class="underline" href="https://www.npmjs.com/package/why-npm-i-so-long">why-npm-i-so-long</a> - Figure out why installing from npm takes so long</li>
<li><a class="underline" href="https://github.com/atlassian/yarn-deduplicate">atlassian/yarn-deduplicate</a> - Deduplication tool for yarn.lock files</li>
</ul>
<a href="#polyfills"><h2 class="inline" id="polyfills">Polyfills</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/WICG/focus-visible">WICG/focus-visible</a> - Polyfill for :focus-visible</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.cloudflare.com/javascript-libraries-are-almost-never-updated/">JavaScript Libraries Are Almost Never Updated Once Installed</a></li>
<li><a class="underline" href="https://webdesign.tutsplus.com/articles/outside-in-ordering-css-properties-by-importance--cms-21685">“Outside In” — Ordering CSS Properties by Importance</a></li>
<li><a class="underline" href="https://blog.sapegin.me/all/internationalization/">Six donts of web app internationalization</a></li>
<li><a class="underline" href="https://observablehq.com/@mourner/were-kyiv-winters-as-snowy-as-i-remember-as-a-kid">Were Kyiv Winters as Snowy as I Remember as a Kid?</a></li>
<li><a class="underline" href="https://medium.com/@daniel_ordonez/javascript-libraries-for-self-typing-text-16e339a67582">JavaScript libraries for “Self typing text”</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://slides.com/vladimirnovick/vue3#/">Vue 3.0 changes and how to incorporate them into your Vue apps</a></li>
</ul>
<a href="#questions"><h2 class="inline" id="questions">Questions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://stackoverflow.com/questions/53135221/what-does-yarn-pnp">What is yarn PnP doing?</a></li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.mikenikles.com/blog/why-i-moved-from-react-to-svelte-and-why-others-will-follow/">Why I moved from React to Svelte and others will follow</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://itnext.io/build-ffmpeg-webassembly-version-ffmpeg-js-part-1-preparation-ed12bf4c8fac">Build FFmpeg WebAssembly version (= ffmpeg.js): Part.1 Preparation</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://neal.fun/deep-sea/">The Deep Sea</a></li>
</ul>
]]></content></entry><entry><title>JSter #151: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-151"></link><id>jster-151</id><published>2020-01-04T02:58:53.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>2020 is the year of JavaScript on desktop</p>
</blockquote>
<p>2020 is shaping up to be yet another year of JavaScript. <a class="underline" href="https://react-finland.fi">React Finland</a> (25-29.05) is almost out of early bird tickets so if you are coming and haven't picked up a ticket yet, it's a good chance to do that.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://atomiks.github.io/tippyjs/">Tippy.js</a> - Tippy.js is a highly customizable tooltip and popover library powered by Popper.js</li>
<li><a class="underline" href="https://bebraw.github.io/sidewind/">Sidewind</a> - Like Tailwind but for state</li>
<li><a class="underline" href="https://availity.github.io/availity-reactstrap-validation/">Availity</a> - Validation for reactstrap</li>
<li><a class="underline" href="https://github.com/aws-amplify/amplify-js">amplify-js</a> - A declarative JavaScript library for application development using cloud services</li>
<li><a class="underline" href="http://leocs.me/menuspy/">MenuSpy</a> - A JavaScript library to make navigation menus activate the item based on currently in view section.</li>
<li><a class="underline" href="https://github.com/etienne-dldc/literal-parser">etienne-dldc/literal-parser</a> - A small library to parse JavaScript array/object literal</li>
<li><a class="underline" href="https://github.com/etienne-dldc/democrat">etienne-dldc/democrat</a> - React, but for state management</li>
<li><a class="underline" href="https://medium.com/@leeb/dataloader-v2-0-925b4dccf8d6">DataLoader v2.0</a> - Data fetching layer for your application</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/alpinejs/alpine">alpine</a> - A rugged, minimal framework for composing JavaScript behavior in your markup</li>
<li><a class="underline" href="https://github.com/neomjs/neo">neo</a> - The webworkers driven UI framework</li>
<li><a class="underline" href="https://inertiajs.com/">Inertia.js</a> - Build single-page apps, without building an API</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://omarabid.com/the-modern-web">The modern web is becoming an unusable, user-hostile wasteland</a></li>
<li><a class="underline" href="https://gist.github.com/slikts/dee3702357765dda3d484d8888d3029e">A case for using <code>void</code> in modern JavaScript</a></li>
<li><a class="underline" href="https://thenextweb.com/podium/2019/12/19/the-evolution-of-web-design-in-the-2010s/">The evolution of web design in the 2010s</a></li>
<li><a class="underline" href="https://gist.github.com/Igogrek/36d47f7547b679e7dab2bc595e36c0e9">How I stopped loving Angular</a></li>
<li><a class="underline" href="https://danlevy.net/you-may-not-need-axios/">You may not need Axios</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://roadmap.sh/">Roadmaps to becoming a modern developer</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/One-com/livestyle">One-com/livestyle</a> - NodeJS middleware and binary for setting up a webserver that notifies the browser of CSS updates</li>
<li><a class="underline" href="https://github.com/terotests/ts2swagger">terotests/ts2swagger</a> - Create Swagger API from TypeScript classes</li>
<li><a class="underline" href="https://www.netlify.com/blog/2019/12/16/introducing-scully-the-angular-static-site-generator/">Introducing Scully: the Angular Static Site Generator</a></li>
<li><a class="underline" href="https://github.com/mikeal/reg">mikeal/reg</a> - Native ESM Package Manager</li>
<li><a class="underline" href="https://www.npmjs.com/package/syncpack">syncpack</a> - Manage multiple package.json files, such as in Lerna Monorepos and Yarn Workspaces</li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.npmjs.org/post/189591811407/new-products-and-a-glimpse-ahead">npm pro</a> - A new offering by npm for individual developers</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/cevek/ttypescript">cevek/ttypescript</a> - TypeScript tool to use custom transformers in the tsconfig.json</li>
</ul>
<a href="#3d"><h2 class="inline" id="3d">3D</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.scottlogic.com/2019/08/27/declarative-3d-for-the-modern-web.html">X3D: Declarative 3D for the Modern Web</a></li>
<li><a class="underline" href="https://webglstudio.org/">WebGLStudio.js</a> - 3D Development environment for the web</li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/squareboat-interview/">Squareboat</a> - Growing an IT Business - Interview with Gaurav Gupta</li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://pawelgrzybek.com/does-javascript-keep-you-too-busy-to-care-about-css-here-are-recent-features-you-want-to-know-about/">Does JavaScript keep you too busy to care about CSS? Here are recent features you want to know about!</a></li>
</ul>
<a href="#apis"><h2 class="inline" id="apis">APIs</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/WebReplay">Replay</a> - Record user behavior and play it back later</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://24ways.org/2019/making-a-better-custom-select-element/">Making a Better Custom Select Element</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://flyover.github.io/imgui-js/example/">Dear ImGui JavaScript + WebGL example</a></li>
</ul>
]]></content></entry><entry><title>JSter #150: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-150"></link><id>jster-150</id><published>2019-12-03T09:04:25.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>There's no too little JavaScript, only too much</p>
</blockquote>
<p>We announced <a class="underline" href="https://react-finland.fi">React Finland</a> (25-29.05) and <a class="underline" href="https://freezing-edge.fi">Freezing Edge</a> (01.06) events recently. React Finland will run third time and it's your chance to meet especially the Nordic community. Freezing Edge is a new, live-coding focused concept and we hope developers find it as well!</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://tiptap.scrumpy.io/">tiptap</a> - A renderless rich-text editor for Vue.js</li>
<li><a class="underline" href="https://stalniy.github.io/casl/">CASL</a> - An isomorphic authorization JavaScript library</li>
<li><a class="underline" href="https://github.com/lukeed/totalist">lukeed/totalist</a> - A tiny (181B to 224B) utility to recursively list all (total) files in a directory</li>
<li><a class="underline" href="http://gun.js.org/">Gun.js</a> - Decentralized Database</li>
<li><a class="underline" href="https://github.com/valu-digital/focus-trap">valu-digital/focus-trap</a> - Multi-Container Focus Trap</li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/chrisrowe/tailwindcss-grid">chrisrowe/tailwindcss-grid</a> - CSS Grid Tailwind Plugin</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://strapi.io/">Strapi</a> - Headless open source CMS</li>
<li><a class="underline" href="https://ghost.org/blog/3-0/">Ghost 3.0</a> - The popular blogging platform has reached a new major version</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://thisrobot.life/#why-finite-state-machines">Why finite state machines</a></li>
<li><a class="underline" href="https://v4.chriskrycho.com/2018/javascript-is-c.html">JavaScript is C</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://css-tricks.com/svg-line-animation-works/">How SVG Line Animation Works</a></li>
<li><a class="underline" href="https://medium.com/@kemalpiro/react-performance-tricks-why-is-it-so-fast-6ece8ade9762">React performance tricks</a></li>
<li><a class="underline" href="https://dev.to/gajus/handling-unhandled-promise-rejections-in-async-functions-5b2b">Preventing unhandled promise rejections in async functions</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://mathiasbynens.be/notes/shapes-ics#shapes">JavaScript engine fundamentals: Shapes and Inline Caches</a></li>
<li><a class="underline" href="https://nils-mehlhorn.de/posts/angular-environment-setup-testing/">Angular Environment Setup - Safe & Testable</a></li>
</ul>
<a href="#npm"><h2 class="inline" id="npm">npm</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://snyk.io/blog/why-npm-lockfiles-can-be-a-security-blindspot-for-injecting-malicious-modules/">Why npm lockfiles can be a security blindspot for injecting malicious modules</a></li>
<li><a class="underline" href="https://www.zdnet.com/google-amp/article/hacking-20-high-profile-dev-accounts-could-compromise-half-of-the-npm-ecosystem/">Hacking 20 high-profile dev accounts could compromise half of the npm ecosystem</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.npmjs.com/package/eslint-plugin-formatjs">eslint-plugin-formatjs</a> - Force messages to be translatable</li>
<li><a class="underline" href="https://github.com/freeCodeCamp/chapter">freeCodeCamp/chapter</a> - Open source alternative to meetup</li>
<li><a class="underline" href="https://github.com/gajus/format-graphql">gajus/format-graphql</a> - Sort GraphQL schema definition language (SDL) document</li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.pika.dev/registry">Pika Registry</a> - Universal JavaScript for everyone</li>
<li><a class="underline" href="https://free-for.dev/#/">Free for developers</a> - Free services for developers</li>
</ul>
<a href="#accessibility"><h2 class="inline" id="accessibility">Accessibility</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/simple-human/buttons-shouldnt-have-a-hand-cursor-b11e99ca374b#.b33l7fivt">Buttons shouldn’t have a hand cursor</a></li>
<li><a class="underline" href="https://www.matuzo.at/blog/beyond-automatic-accessibility-testing-6-things-i-check-on-every-website-i-build/">Beyond automatic accessibility testing: 6 things I check on every website I build</a></li>
</ul>
<a href="#design"><h2 class="inline" id="design">Design</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://spectrum.adobe.com/">Spectrum</a> - Adobe's design system</li>
</ul>
]]></content></entry><entry><title>JSter #149: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-149"></link><id>jster-149</id><published>2019-11-02T13:34:41.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript is the end and the beginning</p>
</blockquote>
<p>Little bird told me that <a class="underline" href="https://react-finland.fi">React Finland</a> (26-29.05.2020) and <a class="underline" href="https://freezing-edge.fi">Freezing Edge</a> (01.06.2020) conference tickets come available soon!</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/sinclairzx81/zero">sinclairzx81/zero</a> - 3D graphics rendering pipeline. Implemented in JavaScript. Run in a terminal.</li>
<li><a class="underline" href="https://js.cytoscape.org/">Cytoscape.js</a> - Graph theory (network) library for visualisation and analysis</li>
<li><a class="underline" href="https://github.com/leeoniya/uPlot">leeoniya/uPlot</a> - An exceptionally fast, tiny time series chart</li>
<li><a class="underline" href="https://medium.com/dailyjs/introducing-mikro-orm-typescript-data-mapper-orm-with-identity-map-9ba58d049e02">Introducing MikroORM, TypeScript data-mapper ORM with Identity Map</a></li>
<li><a class="underline" href="https://github.com/lukeed/throttles">lukeed/throttles</a> - A tiny (139B to 204B) utility to regulate the execution rate of your functions</li>
<li><a class="underline" href="https://chakra-ui.com/">Chakra UI</a> - Build accessible React apps & websites with speed</li>
<li><a class="underline" href="https://github.com/ai/nanoid">ai/nanoid</a> - Simple and reliable id generator</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://buttercms.com/blog/jamstack-vs-mean-vs-lamp-your-guide-to-picking-one">JAMStack vs MEAN vs LAMP</a></li>
<li><a class="underline" href="https://ymedialabs.com/progressive-web-apps">Why Progressive Web Apps Are The Future of Mobile Web [2019 Research]</a></li>
<li><a class="underline" href="https://www.filamentgroup.com/lab/load-css-simpler/">The Simplest Way to Load CSS Asynchronously</a></li>
<li><a class="underline" href="https://mattduffield.wordpress.com/2019/07/25/initial-thoughts-using-fastify/">Initial thoughts using Fastify</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/dailyjs/code-recipe-how-to-reverse-an-array-in-javascript-4a0306001d28">Code Recipe: How to Reverse an Array in JavaScript</a></li>
<li><a class="underline" href="https://dev.to/antjanus/using-prefetch-and-caching-for-better-javascript-bundle-loading-2p56">Using Prefetch and Caching For Better JavaScript Bundle Loading</a></li>
<li><a class="underline" href="https://dev.to/gajus/dynamically-generating-sql-queries-using-node-js-2c1g">Dynamically generating SQL queries using Node.js</a></li>
<li><a class="underline" href="https://www.a11ywithlindsey.com/blog/reducing-motion-improve-accessibility/">Reducing Motion to Improve Accessibility</a></li>
<li><a class="underline" href="https://every-layout.dev/blog/multi-column-manipulation/">Multi-column manipulation: Every Layout</a></li>
<li><a class="underline" href="https://medium.com/@gajus/capturing-stdout-stderr-in-node-js-using-domain-module-3c86f5b1536d">Capturing stdout/ stderr in Node.js using Domain module</a></li>
<li><a class="underline" href="https://kyusuf.com/post/completely-css-tabs/">Completely CSS: Tabs</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://getfal.co/">Falco</a> - An Open Source WebPageTest runner</li>
<li><a class="underline" href="https://tinacms.org/">TinaCMS</a> - Modern CMS that integrates with Gatsby and Next.js</li>
<li><a class="underline" href="https://github.com/getify/TypL">getify/TypL</a> - The JavaScript Type Linter</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/joonhocho/tsdef">joonhocho/tsdef</a> - TypeScript common pattern shortcut definitions / utility gist library</li>
<li><a class="underline" href="https://github.com/piotrwitek/utility-types">piotrwitek/utility-types</a> - Collection of utility types, complementing TypeScript built-in mapped types and aliases</li>
<li><a class="underline" href="https://github.com/pelotom/type-zoo">pelotom/type-zoo</a> - A menagerie of useful type operators for TypeScript</li>
<li><a class="underline" href="https://github.com/jawj/mostly-ormless">jawj/mostly-ormless</a> - Ergonomic Postgres from TypeScript</li>
<li><a class="underline" href="https://github.com/google/gts">google/gts</a> - TypeScript style guide, formatter, and linter</li>
</ul>
<a href="#testing"><h2 class="inline" id="testing">Testing</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/testing-library/cypress-testing-library">testing-library/cypress-testing-library</a> - Testing library bindings for Cypress</li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://docs.google.com/presentation/d/1wuwliPiKfg9UyHKhQGov9QQQhgllC5tnpxSWzgV8mTU/edit#slide=id.g6206491ef5_1_0">Deno - TSConf 2019</a> - Deno is the spiritual successor of Node</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://vr-ie6.glitch.me/">three.js vr</a> - Virtual Reality with three.js</li>
<li><a class="underline" href="https://paveldogreat.github.io/WebGL-Fluid-Simulation/">WebGL Fluid Simulation</a></li>
</ul>
]]></content></entry><entry><title>JSter #148: Libraries, tools, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-148"></link><id>jster-148</id><published>2019-10-04T12:42:11.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript is the beginning and the end</p>
</blockquote>
<p>It's time for another JSter link dump. I'm doing these monthly now as I'm too busy with work for time being.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/prismake/typegql">prismake/typegql</a> - Create GraphQL schema with TypeScript classes</li>
<li><a class="underline" href="https://www.npmjs.com/package/graphql-compose">graphql-compose</a> - A library for generating GraphQL schemas</li>
<li><a class="underline" href="https://haltu.github.io/muuri/">Muuri</a> - Responsive, sortable, filterable and draggable grid layouts</li>
<li><a class="underline" href="https://github.com/jaydenseric/next-graphql-react">jaydenseric/next-graphql-react</a> - Next.js config and App decorators for graphql-react, enabling server side rendered GraphQL queries</li>
<li><a class="underline" href="https://www.harp.gl/">harp.gl</a> - 3d web map rendering engine</li>
<li><a class="underline" href="https://github.com/pqina/filepond">pqina/filepond</a> - A flexible and fun JavaScript file upload library</li>
<li><a class="underline" href="https://github.com/Vincit/objection.js">Vincit/objection.js</a> - An SQL-friendly ORM for Node.js </li>
<li><a class="underline" href="https://github.com/mauriciosantos/Buckets-JS">mauriciosantos/Buckets-JS</a> - A complete, fully tested and documented data structure library written in pure JavaScript</li>
<li><a class="underline" href="https://github.com/lukeed/mri">lukeed/mri</a> - Quickly scan for CLI flags and arguments</li>
<li><a class="underline" href="https://github.com/lukeed/kleur">lukeed/kleur</a> - The fastest Node.js library for formatting terminal text with ANSI colors~!</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://typescene.dev/">TypesceneBatteryChargingCar</a> - Typescene is a robust front end framework made with TypeScript: strongly typed, no dependencies, no nonsense</li>
</ul>
<a href="#styling"><h2 class="inline" id="styling">Styling</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.styletron.org/">Styletron</a> - Styletron is an universal toolkit for component-oriented styling</li>
<li><a class="underline" href="https://seek-oss.github.io/treat/">treat</a> - Themeable, statically extracted CSS‑in‑JS with near‑zero runtime</li>
<li><a class="underline" href="https://css-tricks.com/regarding-css-global-scope/">Regarding CSS's Global Scope</a></li>
<li><a class="underline" href="https://frontstuff.io/in-defense-of-utility-first-css">In Defense of Utility-First CSS</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/voidcosmos/npkill">voidcosmos/npkill</a> - List any node_modules directories in your system, as well as the space they take up. You can then select which ones you want to erase to free up space</li>
<li><a class="underline" href="https://www.npmjs.com/package/eslint-config-es">eslint-config-es</a> - A strict ESLint configuration for ES2015+ and TypeScript</li>
<li><a class="underline" href="https://github.com/akx/npm-dep">akx/npm-dep</a> - Generate dependency graphs of npm packages</li>
<li><a class="underline" href="https://github.com/nodejs/citgm">nodejs/citgm</a> - citgm is a simple tool for pulling down an arbitrary module from npm and testing it using a specific version of the node runtime</li>
<li><a class="underline" href="https://www.npmjs.com/package/nanoprobe">nanoprobe</a> - A CLI to help better understand the massive amount of information that surrounds Node.js versions.</li>
<li><a class="underline" href="https://bellard.org/quickjs/">QuickJS Javascript Engine</a></li>
<li><a class="underline" href="https://github.com/entropic-dev/entropic">entropic-dev/entropic</a> - A package registry for anything, but mostly JavaScript</li>
<li><a class="underline" href="https://github.com/kristopolous/_inject">kristopolous/_inject</a> - JavaScript Code Injection for Debugging</li>
<li><a class="underline" href="https://github.com/ericclemmons/node-recorder">ericclemmons/node-recorder</a> - Simple recording & replaying of HTTP requests for predictable development & testing</li>
<li><a class="underline" href="https://github.com/Schniz/fnm">Schniz/fnm</a> - Fast and simple Node.js version manager, built in native ReasonML</li>
<li><a class="underline" href="https://github.com/Kickball/awesome-selfhosted">Kickball/awesome-selfhosted</a> - Awesome self-hosted services and tools</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dev.to/trilon/how-to-delete-all-nodemodules-folders-on-your-machine-43dh">How to delete ALL node_modules folders on your machine and free up HD space!</a></li>
<li><a class="underline" href="https://glebbahmutov.com/blog/api-testing-with-sever-logs/">Black box API testing with server logs</a></li>
<li><a class="underline" href="https://bitsofco.de/using-a-headless-browser-to-capture-page-screenshots/">Using a headless browser to capture page screenshots</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/amejiarosario/dsa.js-data-structures-algorithms-javascript">amejiarosario/dsa.js-data-structures-algorithms-javascript</a> - Data Structures and Algorithms explained and implemented in JavaScript</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hackernoon.com/building-a-react-todo-app-with-hasura-graphql-engine-511b703a7ef">Building a React Todo App with Hasura GraphQL Engine</a></li>
<li><a class="underline" href="https://uxdesign.cc/i-totally-forgot-about-print-style-sheets-f1e6604cfd6">I totally forgot about print style sheets</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/tomo-interview/">Tomo - Like CRA but more flexible - Interview with Jason Wohlgemuth</a></li>
</ul>
]]></content></entry><entry><title>JSter #147: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-147"></link><id>jster-147</id><published>2019-09-02T14:25:10.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Measure twice, code once</p>
</blockquote>
<p>It's JSter time again. Mainly libraries this time around.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/yelouafi/focused">yelouafi/focused</a> - Yet another Optics library in JavaScript. Based on the famous lens library from Haskell. Wrapped in a convenient Proxy interface</li>
<li><a class="underline" href="https://github.com/lukeed/arr">lukeed/arr</a> - A collection of tiny, highly performant Array.prototype alternatives</li>
<li><a class="underline" href="https://github.com/tabatkins/railroad-diagrams">tabatkins/railroad-diagrams</a> - A small JS+SVG library for drawing railroad syntax diagrams, like on JSON.org.</li>
<li><a class="underline" href="https://mermaidjs.github.io/">mermaid</a> - Diagrams in JavaScript</li>
<li><a class="underline" href="https://introjs.com/">Intro.js</a> - Step-by-step guide and feature introduction</li>
<li><a class="underline" href="https://github.com/wisercoder/uibuilder">wisercoder/uibuilder</a> - Typed HTML templates using TypeScript's TSX files</li>
<li><a class="underline" href="https://github.com/nodegui/nodegui">nodegui</a> - A library for building cross-platform native desktop applications with JavaScript and CSS like styling</li>
<li><a class="underline" href="http://frankforce.com/?p=6918">ZzFX – Zuper Zmall Zeeded Zound Zynth</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/Socialbakers/BakeryJS">Socialbakers/BakeryJS</a> - Dataprocessing framework for JavaScript</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://alistapart.com/article/server-to-client/">Server to Client</a> - How does it all go together</li>
<li><a class="underline" href="https://uxdesign.cc/what-you-should-know-about-skeleton-screens-a820c45a571a">Everything you need to know about skeleton screens</a></li>
<li><a class="underline" href="https://harry.garrood.me/blog/malicious-code-in-purescript-npm-installer/">Malicious code was in the purescript npm installer</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://css-tricks.com/fun-tip-use-calc-to-change-the-height-of-a-hero-component/">Fun Tip: Use calc() to Change the Height of a Hero Component</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jsonlog.io/">JSONLog</a> - Capture, Visualize, and Use Your Structured Data</li>
<li><a class="underline" href="https://github.com/jhwohlgemuth/tomo-cli">jhwohlgemuth/tomo-cli</a> - A friendly command line tool designed to help create sustainable software using web technology</li>
</ul>
]]></content></entry><entry><title>JSter #146: Articles and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-146"></link><id>jster-146</id><published>2019-08-16T05:46:34.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Life is like a box of JavaScript libraries; you never know what you're gonna get.</p>
</blockquote>
<p>It has been busy two weeks again and it's time for a JSter post.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/WICG/virtual-scroller">WICG/virtual-scroller</a> - Virtual scroller built on top of the web platform</li>
</ul>
<a href="#toolkits"><h2 class="inline" id="toolkits">Toolkits</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://nearley.js.org/">Nearley</a> - A modern parser toolkit for JavaScript</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://laravel-news.com/tiptap-rich-text-editor-framework-for-vue-js">Tiptap</a> - A Rich Text Editor Framework for Vue.js</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/thedaviddias/Front-End-Checklist">thedaviddias/Front-End-Checklist</a></li>
<li><a class="underline" href="https://buttercms.com/blog/front-end-performance-optimization-techniques">Best Front-End Performance Optimization Techniques</a></li>
<li><a class="underline" href="https://decembersoft.com/posts/say-goodbye-to-relative-paths-in-typescript-imports/">Say Goodbye to ‘../../../..’ in your TypeScript Imports</a></li>
</ul>
<a href="#accessibility"><h2 class="inline" id="accessibility">Accessibility</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.benjystanton.co.uk/blog/a-plan-for-accessible-charts/">A plan for accessible charts</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/flowingis/framework-compass-chart-d3851c25b45d">Framework Compass Chart</a> - A way to evaluate JavaScript frameworks</li>
<li><a class="underline" href="https://shift.infinite.red/react-native-faq-8dc5c1083baa">React Native FAQ</a></li>
<li><a class="underline" href="https://www.yazeedb.com/posts/explaining-the-best-javascript-meme-i-have-ever-seen/">Explaining the Best Javascript Meme I've Ever Seen</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://twitter.com/i/web/status/1158290308964204544">mattpocock/boilersuit</a> - A super-powered generator for selectors, reducers, actions, constants and sagas in react-boilerplate</li>
<li><a class="underline" href="https://github.com/open-draft/msw">open-draft/msw</a> - Client-side runtime API mocking using Service Workers</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.grossman.io/how-to-write-async-await-without-try-catch-blocks-in-javascript/">How to write async await without try-catch blocks in Javascript</a></li>
<li><a class="underline" href="https://medium.com/@lettier/your-easy-guide-to-monads-applicatives-functors-862048d61610">Your easy guide to Monads, Applicatives, & Functors</a></li>
<li><a class="underline" href="https://buttercms.com/blog/front-end-performance-for-beginners">Beginner's Guide to Front-End Performance Boost (part 1)</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/sketch-sh-interview/">Sketch.sh - Interactive ReasonML sketchbook - Interview with Nguyen Dang Khoa</a></li>
</ul>
]]></content></entry><entry><title>JSter #145: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-145"></link><id>jster-145</id><published>2019-08-01T13:12:42.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>There's no place like JavaScript</p>
</blockquote>
<p>It has been a busy month. I had to skip the previous edition of JSter as I was <a class="underline" href="https://survivejs.com/blog/csscamp-jscamp-2019/">busy with CSSCamp and JSCamp in Barcelona</a>. Now I'm back in action.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://ungap.github.io/">ungap</a> - Pragmatic polyfills</li>
<li><a class="underline" href="https://medium.com/@fastifyjs/fastify-v2-is-coming-to-town-ce279738bed6">Fastify v2 is coming to town</a></li>
<li><a class="underline" href="https://interactjs.io">interact.js</a> - JavaScript drag and drop, resizing, and multi-touch gestures for modern browsers (and also IE9+)</li>
<li><a class="underline" href="https://julie-ng.github.io/newtonjs-graph/">Newton Graph Library</a> - High-level dashboard visualization for architects and stakeholders</li>
<li><a class="underline" href="https://github.com/lukeed/classico">lukeed/classico</a> - A tiny (255B) shim when Element.classList cannot be used~!</li>
<li><a class="underline" href="https://itnext.io/typescript-machine-learning-simplicity-kalimdor-js-bb1ccadf0ad3">TypeScript + Machine Learning + simplicity = Kalimdor.js</a></li>
<li><a class="underline" href="https://splitting.js.org/">Splitting.js</a> - CSS Vars for split words & chars! (items, grids, images, too!)</li>
<li><a class="underline" href="https://scroll-out.github.io/">ScrollOut</a> - ScrollOut detects changes in scroll for reveal, parallax, and CSS Variable effects!</li>
<li><a class="underline" href="https://github.com/sadick254/scoped-style">sadick254/scoped-style</a> - A tiny css-in-js library</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/jaredpalmer/after.js">jaredpalmer/after.js</a> - Next.js-like framework for server-rendered React apps built with React Router 4</li>
<li><a class="underline" href="https://github.com/GoogleChromeLabs/carlo">GoogleChromeLabs/carlo</a> - Web rendering surface for Node applications</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.cypress.io/blog/2017/11/07/add-gui-to-your-e2e-api-tests/">Add GUI to your E2E API tests</a></li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/google/wwwbasic">google/wwwbasic</a> - BASIC language for the web</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://ts-ast-viewer.com/">TypeScript AST Viewer</a></li>
<li><a class="underline" href="https://devblogs.microsoft.com/typescript/announcing-typescript-3-2/">Announcing TypeScript 3.2</a></li>
<li><a class="underline" href="https://dev.to/gcanti/type-holes-in-typescript-2lck">Type holes in TypeScript</a></li>
<li><a class="underline" href="https://github.com/dsherret/ts-morph">dsherret/ts-morph</a> - TypeScript Compiler API wrapper for static analysis and programmatic code changes</li>
</ul>
<a href="#webassembly"><h2 class="inline" id="webassembly">WebAssembly</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://00f.net/2018/11/25/webassembly-doesnt-make-unsafe-languages-safe/">WebAssembly doesn’t make unsafe languages safe (yet)</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/BrunnerLivio/try">BrunnerLivio/try</a> - Quickly try out NPM packages inside a container</li>
<li><a class="underline" href="https://github.com/xaviervia/which-ramda-function-should-i-use">xaviervia/which-ramda-function-should-i-use</a></li>
<li><a class="underline" href="https://github.com/release-it/release-it">release-it</a> - Automate versioning and package publishing</li>
<li><a class="underline" href="https://httptoolkit.tech/view/javascript/">HTTP Toolkit</a> - Capture, view and debug your Node.js and web JS's HTTP traffic</li>
<li><a class="underline" href="https://www.npmjs.com/package/webpack-nano">webpack-nano</a> - A teensy, squeaky 🐤 clean Webpack CLI</li>
</ul>
<a href="#courses"><h2 class="inline" id="courses">Courses</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://learn.hasura.io/graphql/react-native/introduction/">Free React Native Course by Hasura</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2018/11/the-power-of-web-components/">The Power of Web Components</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/secure-coding-interview/">Secure Coding</a> - Interview with Liran Tal</li>
</ul>
<a href="#standards"><h2 class="inline" id="standards">Standards</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jsonresume.org/">JSON Resume</a> - JSON-based standard for resumes</li>
</ul>
]]></content></entry><entry><title>JSter #144: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-144"></link><id>jster-144</id><published>2019-07-02T14:29:37.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Eight days of JavaScript per week</p>
</blockquote>
<p>It's hot summer but coding never stops. I <a class="underline" href="https://survivejs.com/blog/workerconf-2019/">went to WorkerConf 2019 recently and wrote about my experiences</a>. If you like JavaScript backend development and outdoors, the Austrian conference is worth a look. If you want to visit Vienna in September, <a class="underline" href="https://halfstackconf.com/vienna/">check out HalfStack Vienna</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.npmjs.com/package/find-my-way">find-my-way</a> - A fast HTTP router</li>
<li><a class="underline" href="https://github.com/lmatteis/behavioral">lmatteis/behavioral</a> - Behavioral Programming for JavaScript</li>
<li><a class="underline" href="https://github.com/lukejacksonn/domz">lukejacksonn/domz</a> - A proxy function to help build virtual DOM trees from functions</li>
<li><a class="underline" href="https://www.npmjs.com/package/graphql-tag">graphql-tag</a> - Helpful utilities for parsing GraphQL queries</li>
<li><a class="underline" href="https://github.com/mourner/flatbush">mourner/flatbush</a> - A very fast static spatial index for 2D points and rectangles in JavaScript</li>
<li><a class="underline" href="https://graphology.github.io/">Graphology</a> - Multipurpose Graph object for JavaScript</li>
<li><a class="underline" href="https://github.com/mafintosh/csv-parser">mafintosh/csv-parser</a> - Streaming csv parser inspired by binary-csv that aims to be faster than everyone else</li>
<li><a class="underline" href="https://github.com/GoogleChromeLabs/comlink">GoogleChromeLabs/comlink</a> - Comlink makes WebWorkers enjoyable</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://clinicjs.org/">Clinic.js</a> - Tools to help diagnose and pinpoint Node.js performance issues</li>
<li><a class="underline" href="https://github.com/planetlabs/viewpoints">planetlabs/viewpoints</a> - Viewpoints is a tool for visualizing high dimensionality data using linked scatter plots</li>
<li><a class="underline" href="https://www.npmjs.com/package/ts2swagger">ts2swagger</a> - TypeScript classes to Swagger documentation and Express endpoints</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://webkit.org/blog/8452/canvas-debugging/">Canvas Debugging</a></li>
<li><a class="underline" href="https://tkareine.org/articles/lightweight-nodejs-version-switching.html">Lightweight Node.js version switching</a></li>
<li><a class="underline" href="https://uxdesign.cc/the-optimistic-ui-with-react-f1420e317d54">The optimistic UI with React</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@WebReflection/extending-built-in-elements-9dce404b75b4">Extending Built-in Elements</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://eqeq.js.org/">JavaScript Equality Table Game</a></li>
</ul>
]]></content></entry><entry><title>JSter #143: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-143"></link><id>jster-143</id><published>2019-06-17T13:33:36.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript shot first</p>
</blockquote>
<p>The dates for the next <a class="underline" href="https://react-finland.fi">React Finland</a> are clear. The event will take place 12-15.05. We are also planning a conference for November but it's a bit too early to announce that yet.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/lukeed/polka">lukeed/polka</a> - A micro web server so fast, it'll make you dance!</li>
<li><a class="underline" href="https://overmindjs.org/">Overmind</a> - Frictionless state management</li>
<li><a class="underline" href="https://github.com/gunn/pure-store">gunn/pure-store</a> - A tiny immutable store with type safety</li>
</ul>
<a href="#toolkit"><h2 class="inline" id="toolkit">Toolkit</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://perceptiontoolkit.dev/">Web Perception Toolkit</a> - Navigating with the camera</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-1-1f15e387e536">So You Want to be a Functional Programmer (Part 1)</a></li>
<li><a class="underline" href="https://medium.com/javascript-inside/slaying-a-ui-antipattern-in-fantasyland-907cbc322d2a">Slaying a UI Antipattern in Fantasyland</a></li>
<li><a class="underline" href="https://bradleytaunt.com/2019/06/08/html-like-1999/">Write HTML Like It's 1999</a></li>
<li><a class="underline" href="https://mxb.dev/blog/the-css-mindset/">The CSS Mindset</a></li>
<li><a class="underline" href="https://buttercms.com/blog/best-practices-for-building-a-large-scale-react-application">Best practices for building a large scale React application</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/lukeed/pwa">lukeed/pwa</a> - Universal PWA Builder</li>
<li><a class="underline" href="https://github.com/transitive-bullshit/awesome-mdx">transitive-bullshit/awesome-mdx</a> - List of awesome mdx resources</li>
<li><a class="underline" href="https://www.pika.dev/cdn">Pika CDN</a> - A CDN for modern JavaScript</li>
<li><a class="underline" href="https://github.com/palmerhq/tsdx">palmerhq/tsdx</a> - Zero-config CLI for TypeScript package development</li>
</ul>
<a href="#npm"><h2 class="inline" id="npm">npm</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://open-registry.dev/">Open-Registry</a> - A JavaScript Package Registry funded, developed and maintained by the community, for the community</li>
<li><a class="underline" href="https://www.npmjs.com/package/nrm">nrm</a> - Switch between npm registries easily</li>
<li><a class="underline" href="https://snyk.io/blog/npm-passes-the-1-millionth-package-milestone-what-can-we-learn/">npm passes the 1 millionth package milestone! What can we learn?</a></li>
</ul>
<a href="#ai"><h2 class="inline" id="ai">AI</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://aijs.rocks/">aijs.rocks</a> - A curated collection of inspirational AI-powered JavaScript apps</li>
</ul>
]]></content></entry><entry><title>JSter #142: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-142"></link><id>jster-142</id><published>2019-06-02T04:13:52.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Go where JavaScript is going to be, not where it has been.</p>
</blockquote>
<p>It's time for a JSter post again! If you live in Vienna area, <a class="underline" href="https://techmovienight.com">you could join me at Tech Movie Night!</a></p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/lukeed/semiver">lukeed/semiver</a> - A tiny (153B) utility to compare semver strings.</li>
<li><a class="underline" href="https://github.com/enquirer/enquirer">enquirer</a> - Stylish, intuitive and user-friendly prompts.</li>
<li><a class="underline" href="https://github.com/automerge/automerge">automerge</a> - A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged again automatically.</li>
<li><a class="underline" href="https://github.com/sveltejs/gl">sveltejs/gl</a> - WebGL bindings for Svelte</li>
<li><a class="underline" href="https://github.com/staltz/use-profunctor-state">staltz/use-profunctor-state</a> - React Hook for state management with profunctor lenses</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.angular.io/version-8-of-angular-smaller-bundles-cli-apis-and-alignment-with-the-ecosystem-af0261112a27">Angular 8</a> - Smaller bundles, CLI APIs, and alignment with the ecosystem</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.npmjs.com/package/eslint-plugin-async-protect">eslint-plugin-async-protect</a> - ESLint rules to help with async functions</li>
<li><a class="underline" href="https://www.npmjs.com/package/dependency-cruiser">dependency-cruiser</a> - Validate and visualize dependencies. With your rules.</li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://char.gd/blog/2019/you-dont-need-that-hipster-web-framework">You probably don't need that hip web framework</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jaysoo.ca/2017/05/10/learn-fp-with-react-part-2/">The Reader monad and read-only context</a></li>
<li><a class="underline" href="https://samdesota.com/2019/04/21/javascript-debuggers-are-broken.html">JavaScript debuggers are broken, and it's our fault.</a></li>
</ul>
<a href="#graphql"><h2 class="inline" id="graphql">GraphQL</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://developer.ibm.com/blogs/how-to-validate-your-graphql-queries-with-eslint/">How to validate your GraphQL queries with ESLint</a></li>
<li><a class="underline" href="https://blog.hasura.io/build-and-deploy-svelte-js-3-apps-using-graphql/">Build and Deploy Realtime Svelte 3 Apps Using GraphQL</a></li>
<li><a class="underline" href="https://smizell.me/micro/2019/02/why-people-like-graphql/">Why People Like GraphQL</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/webpack-ui-interview/">Webpack UI Interview with Even Stensberg</a></li>
<li><a class="underline" href="https://survivejs.com/blog/reasonml-interview/">ReasonML Interview with Gabriel Rubens</a></li>
<li><a class="underline" href="https://apiko.com/blog/react-native-future-2019/">React Native Future: Interview With Software Engineer at Facebook</a></li>
</ul>
<a href="#ui"><h2 class="inline" id="ui">UI</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/material-ui/material-ui-v4-is-out-4b7587d1e701">Material-UI v4 is out</a></li>
</ul>
<a href="#security"><h2 class="inline" id="security">Security</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://mahmoudsec.blogspot.com/2019/04/handlebars-template-injection-and-rce.html">Handlebars template injection and RCE in a Shopify app</a> - Update Handlebars if you are using it!</li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://speakerdeck.com/brimtown/statically-generating-performance">Statically Generating Performance</a></li>
</ul>
<a href="#conferences"><h2 class="inline" id="conferences">Conferences</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@amsterdamjs/are-you-a-tech-blogger-attend-amsterdam-jsnation-2019-for-free-ca0c365dec30">Are you a tech blogger? Attend Amsterdam JSNation 2019 for free</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://paveldogreat.github.io/WebGL-Fluid-Simulation/">WebGL Fluid Simulation</a></li>
</ul>
]]></content></entry><entry><title>JSter #141: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-141"></link><id>jster-141</id><published>2019-05-16T10:22:36.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>What we've got here is failure to JavaScript</p>
</blockquote>
<p><a class="underline" href="https://www.youtube.com/watch?v=BO_osndeLII">React Finland 2019</a> was a great success and we are already planning the next one. You can <a class="underline" href="https://www.youtube.com/watch?v=IqbOPkCwxlw&list=PL-a9lBflNu2oW1lU7fUvW0oAnbj-mxk2a">find all the presentations on our playlist</a> (the audio crops on the first one :().</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://msgpack.org/">MessagePack</a> - It's like JSON. but fast and small</li>
<li><a class="underline" href="https://reakit.io/">Reakit</a> - Build accessible rich web apps with React</li>
<li><a class="underline" href="http://tachyons.io/">Tachyons</a> - Create fast loading, highly readable, and 100% responsive interfaces with as little css as possible</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://tobiasahlin.com/blog/masonry-with-css/">CSS masonry with flexbox, :nth-child(), and order</a></li>
<li><a class="underline" href="https://web.dev/hands-on-portals">Hands-on with Portals: seamless navigations on the Web</a></li>
<li><a class="underline" href="https://flaviocopes.com/canvas/">HTML Canvas API Tutorial</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://learn.hasura.io/graphql/react/introduction/">GraphQL for React developers</a></li>
<li><a class="underline" href="https://github.com/you-dont-need/You-Dont-Need-Momentjs">you-dont-need/You-Dont-Need-Momentjs</a> - Maybe you don't need Moment.js</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://cvcompiler.com/blog/game-of-frameworks-javascript-trends-of-2019/">Game of Frameworks: JavaScript trends of 2019</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.npmjs.com/package/jsdeflate">jsdeflate</a> - Compressor for big/huge JavaScript files</li>
</ul>
<a href="#books"><h2 class="inline" id="books">Books</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/getify/functional-light-js">getify/functional-light-js</a> - Pragmatic, balanced FP in JavaScript</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://tinkersynth.com/">Tinkersynth</a> - Create art with knobs</li>
</ul>
]]></content></entry><entry><title>JSter #140: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-140"></link><id>jster-140</id><published>2019-05-03T06:37:44.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>A JavaScript. Shaken. Not stirred.</p>
</blockquote>
<p><a class="underline" href="https://medium.com/react-finland/react-finland-2019-blog-coverage-and-photo-galleries-73ebbbf47d8d">React Finland 2019</a> is over and I gathered the blog coverage, videos and photos into a single post for you. The conference was an overall success and it will take a while to digest all the learnings. We gathered the conference videos into <a class="underline" href="https://www.youtube.com/watch?v=IqbOPkCwxlw&list=PL-a9lBflNu2oW1lU7fUvW0oAnbj-mxk2a">a playlist</a> you could check out. Now it's time to take a little break from conferences and focus on other things. :)</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://bbc.github.io/VideoContext/">VideoContext</a> - An experimental video composition and rendering library for the browser.</li>
<li><a class="underline" href="http://financejs.org/">Finance.js</a> - JavaScript library for financial calculations</li>
<li><a class="underline" href="https://lingui.js.org/">LinguiJS</a> - Seamless internationalization in JavaScript</li>
<li><a class="underline" href="http://turfjs.org/">Turf.js</a> - Advanced geospatial analysis for browsers and Node.js</li>
<li><a class="underline" href="https://github.com/infusion/Complex.js/">infusion/Complex.js/</a> - A complex number library</li>
<li><a class="underline" href="https://github.com/infusion/Quaternion.js">infusion/Quaternion.js</a> - A JavaScript Quaternion library</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.tomharding.me/2017/03/03/fantas-eel-and-specification/">Fantas, Eel, and Specification 1: Daggy</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://nolanlawson.com/2019/02/10/building-a-modern-carousel-with-css-scroll-snap-smooth-scrolling-and-pinch-zoom/">Building a modern carousel with CSS scroll snap, smooth scrolling, and pinch-zoom</a></li>
<li><a class="underline" href="https://medium.freecodecamp.org/using-svg-as-placeholders-more-image-loading-techniques-bed1b810ab2c">How to use SVG as a Placeholder, and Other Image Loading Techniques</a></li>
<li><a class="underline" href="https://javascript.works-hub.com/learn/a-javascript-free-frontend-61275">Developing a Javascript-free frontend</a></li>
<li><a class="underline" href="https://blog.logrocket.com/why-you-should-use-css-env-9ee719ce0f24">Why you should use CSS env() – LogRocket</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/mauroreisvieira/stewed">mauroreisvieira/stewed</a> - Quick and efficiently responsive framework built in HTML & CSS and JavaScript</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.logrocket.com/is-typescript-on-node-js-good-enough-for-java-developers-f5e879e9e6d7">Is Typescript on Node.js good enough for Java developers?</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/xaviervia/which-ramda-function-should-i-use">xaviervia/which-ramda-function-should-i-use</a></li>
<li><a class="underline" href="https://www.npmjs.com/package/stacktracey">stacktracey</a> - Parses call stacks. Reads sources. Clean & filtered output. Sourcemaps. Node & browsers.</li>
<li><a class="underline" href="https://github.com/Bogdan-Lyashenko/codecrumbs">Bogdan-Lyashenko/codecrumbs</a> - Learn, design or document codebase by putting breadcrumbs in source code </li>
<li><a class="underline" href="https://github.com/simonw/datasette">simonw/datasette</a> - A tool for exploring and publishing data</li>
<li><a class="underline" href="https://twitter.com/i/web/status/1118790021358739456">ericclemmons/back-to-the-fixture</a> - Simple recording & replaying of HTTP requests for predictable development & testing.</li>
</ul>
<a href="#conferences"><h2 class="inline" id="conferences">Conferences</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://ebaytech.berlin/react-finland-2019-sketch-notes-64316793809e">React Finland 2019 Sketch Notes</a></li>
</ul>
]]></content></entry><entry><title>JSter #139: Mainly libraries</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-139"></link><id>jster-139</id><published>2019-04-15T05:02:45.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript - Still going strong</p>
</blockquote>
<p><a class="underline" href="https://react-finland.fi">React Finland 2019</a> is a week away. If you cannot make it, don't worry. We'll have a livestream of the event and we'll also share the recordings afterwards. You'll miss out the parties and sauna, though.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://pristine.js.org/">Pristine</a> - Vanilla javascript form validation micro-library</li>
<li><a class="underline" href="https://github.com/parcel-bundler/watcher">parcel-bundler/watcher</a> - A native C++ Node module for querying and subscribing to filesystem events</li>
<li><a class="underline" href="https://github.com/shoumma/organigram">shoumma/organigram</a> - A JSON based tree structure with drag and drop functionally to re-arrange the tree</li>
<li><a class="underline" href="https://github.com/ryansolid/solid">ryansolid/solid</a> - A declarative, efficient, and flexible JavaScript library for building user interfaces</li>
<li><a class="underline" href="https://github.com/React95/React95">React95/React95</a> - React like it's 1995</li>
<li><a class="underline" href="https://www.npmjs.com/package/bent">bent</a> - Functional HTTP client for Node.js w/ async/await</li>
</ul>
<a href="#graphql"><h2 class="inline" id="graphql">GraphQL</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.npmjs.com/package/graphql-typescript-definitions">graphql-typescript-definitions</a> - Generate TypeScript definition files from .graphql documents</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/rimeto/ts-optchain">rimeto/ts-optchain</a> - Optional chaining for TypeScript</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/swc-project/swc">swc-project/swc</a> - Super-fast JavaScript to JavaScript compiler written in Rust</li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://statsbot.co/blog/cubejs-open-source-dashboard-framework-ultimate-guide/">Cube.js, the Open Source Dashboard Framework: Ultimate Guide</a></li>
<li><a class="underline" href="https://statecharts.github.io/">Welcome to the world of Statecharts</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://alexnisnevich.github.io/untrusted/">Untrusted</a> - The continuing adventures of Dr. Eval</li>
</ul>
]]></content></entry><entry><title>JSter #138: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-138"></link><id>jster-138</id><published>2019-04-03T13:51:24.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript - too late to land to the moon, too early to land on Mars</p>
</blockquote>
<p><a class="underline" href="https://react-finland.fi/">React Finland</a> is in less than three weeks and I am already freaking out.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://editorjs.io/">Editor.js</a> - Next generation block styled editor</li>
<li><a class="underline" href="https://github.com/mikeal/r2">mikeal/r2</a> - HTTP client. Spiritual successor to reques</li>
<li><a class="underline" href="https://github.com/yelouafi/avenir">yelouafi/avenir</a> - Lightweight async library based on lazy futures</li>
<li><a class="underline" href="http://parsleyjs.org/">Parsley</a> - The ultimate JavaScript form validation library</li>
<li><a class="underline" href="https://guess-js.github.io/">Guess.js</a> - Libraries & tools for enabling Machine Learning driven user-experiences on the web</li>
</ul>
<a href="#styling"><h2 class="inline" id="styling">Styling</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://css-tricks.com/keep-math-in-the-css/">Keep Math in the CSS</a></li>
<li><a class="underline" href="https://nostalgic-css.github.io/NES.css/">NES.css</a> - Style like NES</li>
</ul>
<a href="#fonts"><h2 class="inline" id="fonts">Fonts</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://very-able-fonts.com/">very able fonts</a> - A playground for variable fonts</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.npmjs.com/package/terser">terser</a> - A JavaScript parser and mangler/compressor toolkit for ES6+</li>
<li><a class="underline" href="https://github.com/satya164/babel-test">satya164/babel-test</a> - An opinionated library to make testing babel plugins easier</li>
<li><a class="underline" href="https://www.pikapkg.com/blog/pika-web-a-future-without-webpack">Pika</a> - A future without webpack</li>
</ul>
<a href="#graphql"><h2 class="inline" id="graphql">GraphQL</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://strongloop.com/strongloop.com/strongblog/announcing-oasgraph/">Announcing OASGraph - a GraphQL Wrapper for REST APIs</a></li>
<li><a class="underline" href="https://graphqleditor.com/">GraphQL Visual Editor</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.stefanjudis.com/today-i-learned/property-order-is-predictable-in-javascript-objects-since-es2015/">Property order is predictable in JavaScript objects since ES2015</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@wei.surya/demystify-the-multi-threading-in-node-js-4ff07eae9abe">Demystify The Multi-threading in Node.JS</a></li>
<li><a class="underline" href="https://spin.atomicobject.com/2018/06/25/circular-dependencies-javascript/">How to Eliminate Circular Dependencies from Your JavaScript Project</a></li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://imba.io/">Imba</a> - Create complex web apps with ease!</li>
</ul>
<a href="#security"><h2 class="inline" id="security">Security</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@nodepractices/were-under-attack-23-node-js-security-best-practices-e33c146cb87d">We're under attack! 23 Node.js security best practices</a></li>
</ul>
<a href="#css-in-js"><h2 class="inline" id="css-in-js">css-in-js</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/managing-css-in-js-with-namespaces/">Managing css-in-js Components with Namespaces</a></li>
</ul>
]]></content></entry><entry><title>JSter #137: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-137"></link><id>jster-137</id><published>2019-03-17T07:47:30.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>No day without JavaScript</p>
</blockquote>
<p><a class="underline" href="https://react-finland.fi/">React Finland</a> is in almost within a month. Can't wait!</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://gpu.rocks/">gpu.js</a> - GPU Accelerated JavaScript</li>
<li><a class="underline" href="https://github.com/cristianbote/goober">cristianbote/goober</a> - A less than 1KB 🎉css-in-js alternative with a familiar API</li>
<li><a class="underline" href="https://github.com/gajus/slonik">gajus/slonik</a> - A PostgreSQL client with strict types, detail logging and assertions</li>
<li><a class="underline" href="https://github.com/KaTeX/KaTeX">KaTeX</a> - Fast math typesetting for the web</li>
<li><a class="underline" href="https://github.com/infusion/BitSet.js">infusion/BitSet.js</a> - An arbitrary size Bit-Vector implementation in JavaScript</li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/atomic-layout-interview/">atomic-layout - Layout composition as a React component</a> - Interview with Artem Zakharchenko</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/typestack/class-validator">typestack/class-validator</a> - Validation made easy using TypeScript decorators</li>
<li><a class="underline" href="https://medium.freecodecamp.org/typescript-curry-ramda-types-f747e99744ab">How to master advanced TypeScript patterns</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/dailyjs/goodbye-electron-hello-desktop-pwas-f316b8f39882">Goodbye Electron, Hello Desktop PWAs</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://umijs.org/">UmiJS</a> - Pluggable enterprise-level React application framework</li>
<li><a class="underline" href="https://zeroserver.io/">Zero Server</a> - Zero configuration web framework</li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://docs.google.com/presentation/d/1yhPGyhQrJcpJI2ZFvBme3pGKaGNiLi709c37svivv0o/preview">Vue 3.0 Updates</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.freecodecamp.org/introduction-to-imba-the-alternative-to-javascript-e2aa1e3d1769">An Intro to Imba: the JavaScript-compatible language for lightning fast DOM updates</a></li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://rsms.me/raster/">Raster</a> - CSS Grid System</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/lasso-js/lasso">lasso</a> - Advanced JavaScript module bundler, asset pipeline and optimizer</li>
</ul>
<a href="#ui"><h2 class="inline" id="ui">UI</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.arielverber.com/felipe/">Felipe</a> - Turn wireframes to UI</li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://explodingrabbit.com/super-mario-bros-crossover-4-0-experimental-preview-released-1212/">Super Mario Bros. Crossover 4.0 Experimental Preview Released</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://staratlas.com/">Star Atlas</a> - Star map in your browser</li>
</ul>
]]></content></entry><entry><title>JSter #136: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-136"></link><id>jster-136</id><published>2019-03-01T09:17:46.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>I'm gonna make him a JavaScript he can't refuse</p>
</blockquote>
<p><a class="underline" href="https://react-finland.fi/">React Finland</a> (24-26.04) has moved to the late stage in sales. The conference is shaping up well and I can't wait for it.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/VerbalExpressions/JSVerbalExpressions">JSVerbalExpressions</a> - If regular expressions are too much for you, try verbal expressions</li>
<li><a class="underline" href="https://github.com/RauliL/pakertaja">RauliL/pakertaja</a> - JavaScript library for building HTML</li>
<li><a class="underline" href="https://github.com/ruiaraujo/graphql-jit">ruiaraujo/graphql-jit</a> - GraphQL execution using a JIT compiler</li>
<li><a class="underline" href="https://shift.infinite.red/avoid-nightmares-nsfw-js-ab7b176978b1">NSFW.js</a> - Avoid nightmares</li>
<li><a class="underline" href="https://github.com/optimalbits/bull">optimalbits/bull</a> - Premium Queue package for handling distributed jobs and messages in NodeJS</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.logrocket.com/node-js-multithreading-what-are-worker-threads-and-why-do-they-matter-48ab102f8b10">Node.js multithreading</a> - What are Worker Threads and why do they matter?</li>
<li><a class="underline" href="https://blog.usejournal.com/12-strange-things-that-can-happen-after-installing-an-npm-package-45de7fbf39f0">12 strange things that can happen after installing a npm package</a> - npm is strange</li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/codecrumbs-interview/">Codecrumbs</a> - Document a Codebase by Breadcrumbs - Interview with Bohdan Liashenko</li>
</ul>
<a href="#lists"><h2 class="inline" id="lists">Lists</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/i0natan/nodebestpractices">i0natan/nodebestpractices</a> - The largest Node.js best practices list</li>
</ul>
<a href="#ux"><h2 class="inline" id="ux">UX</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://codepen.io/akx/pen/RdNrBx">UX Patterns from Hell - The escaping button</a></li>
</ul>
<a href="#art"><h2 class="inline" id="art">Art</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://codepen.io/ivorjetski/pen/xMJoYO">Pure CSS Still Life</a> - Someone has too much time</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://olavihaapala.fi/2019/02/19/how-i-made-my-blog-blazing-fast.html">How Olavi made his blog blazing fast</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://codepen.io/thegreatercurve/pen/vXxvEb">Pure CSS Animated Rubik's</a></li>
</ul>
]]></content></entry><entry><title>JSter #135: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-135"></link><id>jster-135</id><published>2019-02-18T06:04:35.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>I write JavaScript, eight days a week</p>
</blockquote>
<p>I'll be going to <a class="underline" href="https://typeofconf.com/">typeof conference</a> in Porto, Portugal at the end of March. </p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/daltonwebdev/console.chat">daltonwebdev/console.chat</a> - Chat in your console</li>
<li><a class="underline" href="https://overmindjs.org/">Overmind</a> - Frictionless state management. <a class="underline" href="https://survivejs.com/blog/overmind-interview/">See also the interview</a>.</li>
<li><a class="underline" href="https://github.com/modernserf/zebu">modernserf/zebu</a> - A compiler for little languages in tagged template strings</li>
<li><a class="underline" href="https://github.com/lukeed/httpie">lukeed/httpie</a> - A Node.js HTTP client as easy as pie!</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://imperavi.com/kube">Kube CSS & JS Framework</a></li>
<li><a class="underline" href="https://stimulusjs.org/">Stimulus</a> - A modest JavaScript framework for the HTML you already have</li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/labs42io/clean-code-typescript">labs42io/clean-code-typescript</a> - Clean Code concepts ported to TypeScript</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/KidkArolis/healthier">KidkArolis/healthier</a> - Opinionated, style-agnostic linter</li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://packtracker.io/">PackTracker</a> - Webpack bundle analysis, for every commit</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://developers.google.com/web/updates/2019/02/rendering-on-the-web">Rendering on the Web</a></li>
<li><a class="underline" href="https://43081j.com/2019/01/first-look-at-deno">First thoughts on Deno, the JavaScript/TypeScript run-time</a></li>
</ul>
<a href="#design-systems"><h2 class="inline" id="design-systems">Design Systems</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.carbondesignsystem.com/">Carbon Design System</a></li>
</ul>
<a href="#graphql"><h2 class="inline" id="graphql">GraphQL</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.npmjs.com/package/graphql-rate-limit-directive">graphql-rate-limit-directive</a> - Rate limiting for GraphQL</li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/react-finland/interview-typescript-with-michel-weststrate-8afd7fd24b32">TypeScript with Michel Weststrate</a></li>
</ul>
<a href="#tests"><h2 class="inline" id="tests">Tests</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://cantunsee.space/">Can't Unsee</a></li>
</ul>
<a href="#documentaries"><h2 class="inline" id="documentaries">Documentaries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://videos.honeypot.io/emberjs-documentary-2019/">Ember.js: The Documentary</a></li>
</ul>
]]></content></entry><entry><title>JSter #134: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-134"></link><id>jster-134</id><published>2019-02-04T13:19:12.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>I JavaScript, therefore I am</p>
</blockquote>
<p><a class="underline" href="https://react-finland.fi/">React Finland</a> has moved to selling regular bird tickets and the conference is rapidly approaching.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://h5p.org/">H5P</a> - Create and Share Rich HTML5 Content and Applications</li>
<li><a class="underline" href="https://github.com/znck/lazy-hydration">znck/lazy-hydration</a> - Lazy Hydration for Vue SSR</li>
<li><a class="underline" href="https://github.com/spoonx/wetland">spoonx/wetland</a> - A Node.js ORM, mapping-based. Works with MySQL, PostgreSQL, SQLite and more</li>
<li><a class="underline" href="https://github.com/lukeed/formee">lukeed/formee</a> - A tiny (532B) library for handling <code><form></code> elements</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://donejs.com/">DoneJS</a> - An open source JavaScript framework that makes it easy to build high performance, real-time web and mobile applications.</li>
</ul>
<a href="#generators"><h2 class="inline" id="generators">Generators</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://gridsome.org/">Gridsome</a> - Vue.js-powered static site generator</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://gillchristian.xyz/ts-earch">ts-earch</a> - Search engine for TypeScript</li>
<li><a class="underline" href="https://github.com/antonmedv/fx">antonmedv/fx</a> - Command-line tool and terminal JSON viewer</li>
<li><a class="underline" href="https://kyleshevlin.com/xstate-visualizer/">State Machines: The XState Visualizer</a></li>
<li><a class="underline" href="http://staticsiteboilerplate.com/">Static Site Boilerplate</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/coetry/reval">coetry/reval</a> - Evaluate javascript expressions as a microservice</li>
</ul>
<a href="#testing"><h2 class="inline" id="testing">Testing</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.matthewgerstman.com/functional-programming-fundamentals/">Functional Programming Fundamentals</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jaxenter.com/redom-javascript-library-154723.html">RE:DOM is a tiny JavaScript library with a huge personality</a></li>
<li><a class="underline" href="https://jaxenter.com/javascript-superstars-report-154573.html">Vue.js is the absolute rockstar of the JavaScript ecosystem</a></li>
</ul>
<a href="#fun"><h2 class="inline" id="fun">Fun</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/Athari/CssGitHubWindows">Athari/CssGitHubWindows</a> - GitHub but themed as Windows</li>
</ul>
<a href="#graphql"><h2 class="inline" id="graphql">GraphQL</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.freecodecamp.org/five-common-problems-in-graphql-apps-and-how-to-fix-them-ac74d37a293c">Five Common Problems in GraphQL Apps (And How to Fix Them)</a></li>
<li><a class="underline" href="https://blog.graphqleditor.com/graphql-vs-rest-errors/">GraphQL vs REST</a></li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://onux.com/jspp/">JS++</a> - JavaScript Classes, Modules, Type Checking and more</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://matthewrayfield.com/articles/animating-urls-with-javascript-and-emojis/">Animating URLs with JavasSript and Emojis</a></li>
</ul>
]]></content></entry><entry><title>JSter #133: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-133"></link><id>jster-133</id><published>2019-01-18T10:09:39.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p><code>${Array.from(new Array(10), () => NaN).join('')} Batman</code></p>
</blockquote>
<p><strong>React Finland 2019</strong> is getting closer. We still have some early bird tickets left but not for long. <a class="underline" href="https://medium.com/react-finland/seven-reasons-to-visit-2019-d290d3417b67">Read seven reasons to visit the event</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://tholman.com/elevator.js/">Elevator.js</a> - It's what you think it is</li>
<li><a class="underline" href="https://github.com/superfly/cdn">superfly/cdn</a></li>
<li><a class="underline" href="https://github.com/remy/memfetch">remy/memfetch</a> - Memoizing version of fetch for development</li>
<li><a class="underline" href="https://github.com/facebookincubator/fbt">facebookincubator/fbt</a> - I18n library by Facebook</li>
<li><a class="underline" href="https://www.npmjs.com/package/ts-option">ts-option</a> - Scala like Option type for TypeScript/JavaScript</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/script-8/script-8.github.io">script-8</a> - A fantasy computer for making, sharing, and playing tiny retro-looking games</li>
<li><a class="underline" href="https://www.telerik.com/blogs/whats-new-in-angular-7">What's New in Angular 7</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.npmjs.com/package/tsc-watch">tsc-watch</a> - Like tsc but with better hooks</li>
<li><a class="underline" href="https://github.com/atlassian/yarn-deduplicate">atlassian/yarn-deduplicate</a> - Deduplication tool for yarn.lock files</li>
<li><a class="underline" href="https://www.11ty.io/">Eleventy</a> - A light static site generator</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.24a11y.com/2018/accessible-svg-icons-with-inline-sprites/">Accessible SVG Icons with Inline Sprites</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hackernoon.com/how-i-started-doing-load-testing-on-graphql-without-writing-a-single-query-8604ba38b422">How I started doing load testing on GraphQL without writing a single Query</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://siakaramalegos.github.io/responsive-images-slides/#/">Responsive Images</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/danilw/card-game-GLSL">danilw/card-game-GLSL</a></li>
</ul>
]]></content></entry><entry><title>JSter #132: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-132"></link><id>jster-132</id><published>2019-01-04T05:04:31.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>They may take our lives, but they'll never take our JavaScript!</p>
</blockquote>
<p>It's time for a new year. <a class="underline" href="https://survivejs.com/blog/summary-of-2018/">I summarized mine in a post</a>. 2018 was a good one and I hope 2019 will be even better. My next main target is <a class="underline" href="https://react-finland.fi/">React Finland 2019</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://mermaidjs.github.io/">Mermaid</a> - Generation of diagrams and flowcharts from text in a similar manner as markdown</li>
<li><a class="underline" href="https://github.com/satya164/web-worker-proxy">satya164/web-worker-proxy</a> - A better way of working with web workers</li>
<li><a class="underline" href="https://nearley.js.org/">Nearley</a> - Modern parser toolkit for JavaScript</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/zerotomastery/tech-trends-showdown-react-vs-angular-vs-vue-61ffaf1d8706">Tech Trends Showdown🏆: React vs Angular vs Vue</a></li>
<li><a class="underline" href="https://quasar-framework.org/">Quasar Framework</a> - High Performance Full Frontend Stack</li>
<li><a class="underline" href="https://da-14.com/blog/10-best-nodejs-frameworks">10 Best Node.js Frameworks in 2018</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@lucamezzalira/a-night-experimenting-with-lit-html-585a8c69892a">A night experimenting with Lit-HTML</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.freecodecamp.org/a-new-approach-to-mocking-graphql-data-1ef49de3d491">A new approach to mocking GraphQL data</a></li>
<li><a class="underline" href="https://medium.com/@thomasburleson_11450/ngrx-facades-better-state-management-82a04b9a1e39">NgRx + Facades: Better State Management</a></li>
<li><a class="underline" href="https://paqmind.com/tutorials/programming-fundamentals/functions/">So you think you know JavaScript functions</a></li>
</ul>
<a href="#typescript"><h2 class="inline" id="typescript">TypeScript</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/akx/autotypes">akx/autotypes</a> - Finds non-stub @types/ packages for your package.json</li>
<li><a class="underline" href="https://www.npmjs.com/package/ee-ts">ee-ts</a> - Type-safe event emitters for TypeScript</li>
<li><a class="underline" href="https://hackernoon.com/with-typescript-3-and-substitute-js-you-are-already-missing-out-when-mocking-or-faking-a3b3240c4607">With TypeScript 3, you are already missing out when mocking or faking</a></li>
<li><a class="underline" href="https://medium.com/@mvaldesdeleon/using-ixmonad-to-enforce-good-hamburger-building-in-typescript-bcd584236dd4">Using IxMonad to enforce good hamburger building in TypeScript</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jonbellah.com/articles/intro-state-machines/">A Complete Introduction to State Machines in JavaScript</a></li>
</ul>
<a href="#testing"><h2 class="inline" id="testing">Testing</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.cypress.io/">Cypress</a> - JavaScript End to End Testing Framework</li>
<li><a class="underline" href="https://github.com/rickhanlonii/jest-watch-master">rickhanlonii/jest-watch-master</a> - Jest watch plugin for checking changes since master</li>
<li><a class="underline" href="https://github.com/bvaughn/jest-react-profiler">bvaughn/jest-react-profiler</a> - Jest helpers for working with the React Profiler API</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/cdonohue/polychrome">cdonohue/polychrome</a> - Easy color manipulation in ~2kb (gzipped)</li>
<li><a class="underline" href="https://www.npmjs.com/package/npm-scripts-info">npm-scripts-info</a> - Display the description of your npm scripts</li>
</ul>
<a href="#legacy"><h2 class="inline" id="legacy">Legacy</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/felixrieseberg/windows95">felixrieseberg/windows95</a> - Windows 95 in Electron</li>
</ul>
]]></content></entry><entry><title>JSter #131: Libraries and tutorials</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-131"></link><id>jster-131</id><published>2018-12-17T15:19:26.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>TypeScript to JavaScript as an airbag is to a car</p>
</blockquote>
<p>We announced <a class="underline" href="https://react-finland.fi/">React Finland 2019</a> (24-26.4.2019) recently. It's going to be one day of workshops and two days of conferences (single track) again. This time around we'll have professional MCs and even more speakers than before. It's not the worst reason to visit Finland.</p>
<p>I hope you enjoy xmas and have a great coming year!</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/umpox/TinyEditor">umpox/TinyEditor</a> - A functional HTML/CSS/JS editor in less than 400 bytes</li>
<li><a class="underline" href="https://github.com/WebReflection/domdiff">WebReflection/domdiff</a> - Diffing the DOM without virtual DOM</li>
<li><a class="underline" href="https://www.npmjs.com/package/redux-concise">redux-concise</a> - Redux but concise</li>
<li><a class="underline" href="https://www.nearform.com/blog/announcing-pino-v5-0-0/">Announcing Pino V5.0.0</a> - Low-overhead, newline-delimited-JSON logger</li>
<li><a class="underline" href="https://github.com/typeorm/typeorm">typeorm</a> - ORM for TypeScript and JavaScript</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/yazanaabed/what-i-know-about-testing-in-javascript-6657d2188c3a">Make JavaScript Testing Work for You</a></li>
<li><a class="underline" href="https://uxdesign.cc/how-to-fix-dragging-animation-in-ui-with-simple-math-4bbc10deccf7">How to fix dragging animation in UI with simple math</a></li>
<li><a class="underline" href="https://snipcart.com/blog/node-js-react-strapi-tutorial">Node.js with React: Full Stack JS with Strapi Tutorial</a></li>
<li><a class="underline" href="https://jrsinclair.com/articles/2018/how-to-deal-with-dirty-side-effects-in-your-pure-functional-javascript/">How to deal with dirty side effects in your pure functional JavaScript</a></li>
<li><a class="underline" href="https://blog.grossman.io/how-to-write-async-await-without-try-catch-blocks-in-javascript/">How to write async await without try-catch blocks in JavaScript</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://checklyhq.com/blog/2018/12/node.js-api-and-web-frameworks-for-2019/">Node.js API and Web Frameworks for 2019</a></li>
<li><a class="underline" href="https://levelup.gitconnected.com/a-recap-of-frontend-development-in-2018-715724c9441d">A Recap of Frontend Development in 2018</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://codepen.io/perbyhring/pen/wGQmNY">Let there be light</a></li>
</ul>
<a href="#exercises"><h2 class="inline" id="exercises">Exercises</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/jlengstorf/learn-fp-exercises">JSter auf Twitter: "jlengstorf/learn-fp-exercises</a> - A collection of exercises to accompany a half-day workshop on the basics of functional programming.</li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/trekhleb/javascript-algorithms">trekhleb/javascript-algorithms</a> - Algorithms and data structures implemented in JavaScript with explanations and links to further readings</li>
</ul>
]]></content></entry><entry><title>JSter #130: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-130"></link><id>jster-130</id><published>2018-12-03T13:29:20.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Where there's JavaScript, there's trouble.</p>
</blockquote>
<p>Another two weeks have gone and we are getting closer to xmas. I went to HalfStack London a while ago. <a class="underline" href="https://survivejs.com/blog/halfstack-2018/">Read my travel report</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/wayfair/data-snapshot">wayfair/data-snapshot</a> - A generic mock data manager for JavaScript tests, that helps you use data from real endpoints in tests.</li>
<li><a class="underline" href="https://github.com/KostyaTretyak/marked-ts">KostyaTretyak/marked-ts</a> - A full-featured markdown parser and compiler, written in TypeScript.</li>
<li><a class="underline" href="https://github.com/e-oj/Magic-Grid">e-oj/Magic-Grid</a> - A simple, lightweight Javascript library for dynamic grid layouts</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.hasura.io/the-ultimate-guide-to-schema-stitching-in-graphql-f30178ac0072">The ultimate guide to Schema Stitching in GraphQL</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@addyosmani/the-cost-of-javascript-in-2018-7d8950fbb5d4">The Cost Of JavaScript In 2018</a></li>
<li><a class="underline" href="https://medium.com/open-graphql/implementing-search-in-graphql-11d5f71f179">Implementing Search in GraphQL</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://eng.uber.com/fusionjs/">Introducing Fusion.js: A Plugin-based Universal Web Framework</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/trekhleb/javascript-algorithms">trekhleb/javascript-algorithms</a> - Algorithms and data structures implemented in JavaScript with explanations and links to further readings</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/cristianoc/genType">cristianoc/genType</a> - Auto generation of idiomatic bindings between Reason and JavaScript: either vanilla or typed with TypeScript/FlowType.</li>
<li><a class="underline" href="https://github.com/GoogleChromeLabs/ndb">GoogleChromeLabs/ndb</a> - An improved debugging experience for Node.js, enabled by Chrome DevTools</li>
<li><a class="underline" href="https://blogs.msdn.microsoft.com/typescript/2018/07/30/announcing-typescript-3-0/">Announcing TypeScript 3.0</a></li>
<li><a class="underline" href="https://webhint.io/">webhint</a> - The hinting engine for web best practices</li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://ipfs.io/">IPFS is the Distributed Web</a></li>
</ul>
]]></content></entry><entry><title>JSter #129: Libraries and then some</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-129"></link><id>jster-129</id><published>2018-11-18T16:03:38.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>From here to JavaScript</p>
</blockquote>
<p>It has been busy times as <a class="underline" href="https://react-finland.fi/">React Finland 2019</a> preparations have begun. The date has been set to 24-26.4. <a class="underline" href="https://survivejs.com/blog/halfstack-2018/">I visited HalfStack London 2018</a> recently to gain further conference experience.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/noble/noble">noble</a> - A Node.js BLE (Bluetooth Low Energy) central module</li>
<li><a class="underline" href="https://github.com/ericclemmons/hot-module">ericclemmons/hot-module</a> - Reload changed files in Node <em>without</em> restarting the server (like nodemon/piping/etc.)</li>
<li><a class="underline" href="https://github.com/davidkpiano/xstate">davidkpiano/xstate</a> - State machines and statecharts for the modern web</li>
<li><a class="underline" href="https://github.com/sasha240100/between.js">sasha240100/between.js</a> - Lightweight JavaScript (ES6) tweening engine</li>
<li><a class="underline" href="https://github.com/elbywan/wretch">elbywan/wretch</a> - A tiny wrapper built around fetch with an intuitive syntax</li>
</ul>
<a href="#apis"><h2 class="inline" id="apis">APIs</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://developers.google.com/web/updates/2018/07/page-lifecycle-api">Page Lifecycle API</a></li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@oleg008/what-if-we-stop-using-null-d705302b545e">What if we stop using null?</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://statecharts.github.io/">Welcome to the world of Statecharts</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/jxnblk/mdx-deck">jxnblk/mdx-deck</a> - MDX-based presentation decks</li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://js13kgames.com/games/1024-moves/index.html">js13k - 1024 moves</a></li>
</ul>
]]></content></entry><entry><title>JSter #128: Libraries and then some</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-128"></link><id>jster-128</id><published>2018-11-03T10:58:50.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>For every good JavaScript joke, there's a bad one.</p>
</blockquote>
<p><a class="underline" href="https://medium.com/graphql-finland/summary-of-graphql-finland-2018-a769460ebfdd">GraphQL Finland 2018</a> was a great success. <a class="underline" href="https://www.youtube.com/watch?v=aX-BxhkFd9g&feature=youtu.be">Check the conference videos online!</a></p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/avantcredit/gql2ts">avantcredit/gql2ts</a> - Convert a GraphQL schema to a TypeScript definition</li>
<li><a class="underline" href="https://github.com/threepointone/css-suspense">threepointone/css-suspense</a> - CSS loading for React the suspense way</li>
<li><a class="underline" href="https://github.com/diegohaz/styled-tools">diegohaz/styled-tools</a> - Useful interpolated functions for CSS-in-JS</li>
<li><a class="underline" href="https://github.com/sapegin/q-i">sapegin/q-i</a> - Node.js objects inspector with color highlighting</li>
<li><a class="underline" href="http://turtle.audio/">turtle.audio</a> - Turtle graphics but for audio</li>
<li><a class="underline" href="https://github.com/sapegin/richtypo.js">sapegin/richtypo.js</a> - HTML typography enhancer for Node</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://bendyworks.com/blog/drop-20k-from-your-production-angular-app">Drop 20K from your production Angular app</a></li>
<li><a class="underline" href="https://medium.com/open-graphql/save-hundreds-of-lines-of-code-in-your-next-graphql-app-with-this-one-weird-trick-3bef9ef0d45a">Save Hundreds of Lines of Code in Your Next GraphQL App With This One Weird Trick</a></li>
<li><a class="underline" href="https://www.dynatrace.com/news/blog/dynatrace-design-system-part-2/">Building & maintaining UI components with a Design System, Part 2</a></li>
</ul>
<a href="#architectures"><h2 class="inline" id="architectures">Architectures</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://speakerdeck.com/kamilmysliwiec/rethinking-enterprise-architectures-with-node-dot-js">Rethinking Enterprise Architectures with Node.js</a></li>
<li><a class="underline" href="https://3factor.app/">3factor app architecutre</a></li>
<li><a class="underline" href="https://www.mixnode.com/blog/posts/turn-the-web-into-a-database-an-alternative-to-web-crawling-scraping">Turn the web into a database: An alternative to web crawling/scraping</a></li>
</ul>
<a href="#platforms"><h2 class="inline" id="platforms">Platforms</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://keystonejs.com/">KeystoneJS</a> - Node.js CMS and web app platform</li>
<li><a class="underline" href="https://nodejs.org/en/blog/release/v11.0.0/">Node v11.0.0</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.hasura.io/firebase2graphql-moving-from-firebase-to-realtime-graphql-on-postgres-4d36cb7f4eaf">firebase2graphql</a> - Moving from firebase to realtime GraphQL on Postgres</li>
<li><a class="underline" href="https://medium.com/flow-type/on-the-roadmap-exact-objects-by-default-16b72933c5cf">On the Flow Roadmap: Exact Objects by Default</a></li>
</ul>
<a href="#graphql"><h2 class="inline" id="graphql">Graphql</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.youtube.com/watch?v=8KLwLzRlETc&list=PLVSuvWb4Q2Y7oxwvpzlwFxAO6IbIjMDgB">Adopting GraphQL in Large Codebases</a></li>
</ul>
<a href="#case-studies"><h2 class="inline" id="case-studies">Case Studies</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/google-design/google-photos-45b714dfbed1">Building the Google Photos Web UI</a></li>
</ul>
]]></content></entry><entry><title>JSter #127: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-127"></link><id>jster-127</id><published>2018-10-17T10:52:02.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript was created in two weeks. Then Brendan took a break.</p>
</blockquote>
<p>I have good news. <a class="underline" href="https://graphql-finland.fi/">GraphQL Finland</a> will have a free livestream. So tune in during the conference through <a class="underline" href="https://twitter.com/GraphQLFinland">@GraphQLFinland</a> where we'll announce the talks and link to the video.</p>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://bendyworks.com/blog/slaying-a-ui-antipattern-with-web-components-and-typescript">Slaying a UI Antipattern with Web Components (and TypeScript)</a></li>
<li><a class="underline" href="https://bendyworks.com/blog/tale-of-four-components">A Tale of Four Components</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://codeburst.io/top-10-javascript-errors-from-1000-projects-and-how-to-avoid-them-2956ce008437">Top 10 JavaScript errors from 1000+ projects (and how to avoid them)</a></li>
</ul>
<a href="#graph-ql"><h2 class="inline" id="graph-ql">Graph Ql</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/Volst/graphql-authentication">Volst/graphql-authentication</a> - Easy authentication with GraphQL</li>
</ul>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://monet.github.io/monet.js/">monet.js</a> - Powerful abstractions for JavaScript</li>
<li><a class="underline" href="https://github.com/gcanti/retry-ts">gcanti/retry-ts</a> - Retry combinators for monadic actions that may fail</li>
<li><a class="underline" href="https://github.com/lukeed/kleur">lukeed/kleur</a> - The fastest Node.js library for formatting terminal text with ANSI colors~!</li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@gajus/the-case-for-array-replace-cd9330707243">The case for Array#replace()</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/appalaszynski/javascript-exercises">appalaszynski/javascript-exercises</a> - JavaScript exercises</li>
<li><a class="underline" href="https://github.com/jxom/awesome-react-headless-components">jxom/awesome-react-headless-components</a> - Awesome headless components for React</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/AdaRoseCannon/three-paint">AdaRoseCannon/three-paint</a> - Demo using THREE.js to render into a Houdini Paint Worklet</li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://tailwindcss.com/">Tailwind CSS</a></li>
<li><a class="underline" href="https://dss-lang.com/">DSS (Deterministic StyleSheets) is a component-oriented CSS authoring system that compiles to high-performance atomic CSS classes-based stylesheets</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://twitter.com/i/web/status/1047762008228200448">sw-yx/babel-blade</a> - babel-blade solves double declarations for React components and GraphQL queries</li>
</ul>
]]></content></entry><entry><title>JSter #126: Libraries, the usual</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-126"></link><id>jster-126</id><published>2018-10-03T11:43:55.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Klaatu barada JavaScript</p>
</blockquote>
<p><a class="underline" href="https://graphql-finland.fi/">GraphQL Finland</a> is around the corner. Just a few weeks to go.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.npmjs.com/package/proxy-state-tree">proxy-state-tree</a> - An implementation of the Mobx/Vue state tracking approach, for library authors</li>
<li><a class="underline" href="https://www.npmjs.com/package/react-nodesy">react-nodesy</a> - Render a hierarchy of nodes</li>
<li><a class="underline" href="https://rabbitear.org/">Rabbit Ear, origami and creative code</a></li>
<li><a class="underline" href="https://github.com/GoogleChromeLabs/idlize">GoogleChromeLabs/idlize</a> - Helper classes and methods for implementing the idle-until-urgent pattern</li>
<li><a class="underline" href="https://amphtml.wordpress.com/2018/08/21/workerdom/">WorkerDOM</a> - Concurrency for JavaScript programming with the DOM</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/Kikobeats/git-authors-cli">Kikobeats/git-authors-cli</a> - Detect project contributors and add them into <code>package.json</code></li>
<li><a class="underline" href="https://github.com/terser-js/terser">terser</a> - JavaScript parser, mangler, optimizer and beautifier toolkit for ES6+</li>
<li><a class="underline" href="https://www.npmjs.com/package/np">np</a> - A better <code>npm publish</code></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://codeburst.io/five-tips-i-wish-i-knew-when-i-started-with-typescript-c9e8609029db">Five tips Alex wish he knew when he started with Typescript</a></li>
<li><a class="underline" href="https://www.theregister.co.uk/2018/08/22/npm_vulnerability_scanner">One-in-two JavaScript project audits by NPM tools sniff out at least one vulnerability</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dev.to/zkochan/flat-nodemodules-is-not-the-only-way-mo2">Flat node_modules is not the only way</a></li>
<li><a class="underline" href="https://codeburst.io/no-need-to-wait-for-the-holidays-start-decorating-now-67b9dabd60d7">No need to wait for the holidays, start Decorating now</a></li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://robinrendle.com/notes/i-dont-believe-in-full-stack-engineering/">Robin Doesn’t Believe in Full-Stack Engineering</a></li>
<li><a class="underline" href="https://www.reaktor.com/blog/fear-trust-and-javascript/">Fear, trust and JavaScript: When types and functional programming fail</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://mathiasbynens.be/notes/prototypes">JavaScript engine fundamentals: optimizing prototypes</a></li>
</ul>
<a href="#apis"><h2 class="inline" id="apis">Apis</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://9to5mac.com/2018/06/06/apple-maps-webapps-mapkit-js/">Apple Maps now available to embed into websites with MapKit JS</a></li>
</ul>
<a href="#benchmarks"><h2 class="inline" id="benchmarks">Benchmarks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/dominictarr/your-web-app-is-bloated">dominictarr/your-web-app-is-bloated</a> - Measuring memory usage of popular webapps</li>
</ul>
]]></content></entry><entry><title>JSter #125: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-125"></link><id>jster-125</id><published>2018-09-16T15:34:45.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>It takes two to JavaScript</p>
</blockquote>
<p>Another two weeks have gone by and it's time for another JSter.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://z-pattern-matching.github.io/">Z</a> - Native pattern matching for JavaScript</li>
<li><a class="underline" href="https://github.com/Flet/github-slugger">Flet/github-slugger</a> - Generate a slug just like GitHub does for markdown headings</li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/refract-interview/">Refract</a> - Manage Component Side Effects the Reactive Way - Interview with Thomas Roch</li>
<li><a class="underline" href="https://survivejs.com/blog/dss-interview/">DSS</a> - Deterministic Style Sheets - Interview with Giuseppe Gurgone</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/unsplash/strongly-typed-finite-state-machines-with-redux-and-typescript-3aac2b0332f5">Strongly-typed finite-state machines with Redux and TypeScript</a></li>
<li><a class="underline" href="http://randycoulman.com/blog/categories/thinking-in-ramda/">Thinking in Ramda</a></li>
</ul>
<a href="#case-studies"><h2 class="inline" id="case-studies">Case Studies</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.figma.com/figma-faster-d1947f9c26ca">Figma, faster with Web Assembly</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@gajus/automating-persistent-integration-testing-and-alerting-d507572a2618">Ensuring good service health by automating thorough integration testing and alerting</a></li>
<li><a class="underline" href="https://www.joshwcomeau.com/posts/dynamic-bezier-curves">Dynamic Bézier Curves</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://eslint.org/blog/2018/06/eslint-v5.0.0-released">ESLint v5.0.0 released</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.nativescript.org/blog/would-airbnb-have-fared-better-with-nativescript-instead-of-react-native">Would Airbnb Have Fared Better With NativeScript Instead of React Native?</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/sendanor/norjs">sendanor/norjs</a> - WIP full stack framework</li>
</ul>
]]></content></entry><entry><title>JSter #124: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-124"></link><id>jster-124</id><published>2018-09-05T12:35:55.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>The day JavaScript stopped working</p>
</blockquote>
<p><a class="underline" href="https://survivejs.com/blog/fall-2018-events/">My fall is going to be quite busy as I'll travel across Europe</a>. You'll see me in Prague, Yerevan, Zagreb, and Helsinki at least.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/gajus/roarr">gajus/roarr</a> - JSON logger for Node.js and browser</li>
<li><a class="underline" href="https://github.com/yallajs/yalla">yalla</a> - ES6 Templating Engine</li>
<li><a class="underline" href="https://github.com/developit/histore">developit/histore</a> - 200b key-value store backed by navigation state</li>
<li><a class="underline" href="https://github.com/terkelg/prompts">terkelg/prompts</a> - Lightweight, beautiful and user-friendly interactive prompts</li>
<li><a class="underline" href="https://github.com/Rich-Harris/shimport">Rich-Harris/shimport</a> - Use JavaScript modules in all browsers, including dynamic imports</li>
<li><a class="underline" href="http://kepler.gl/">kepler.gl</a> - Make an impact with your location data</li>
</ul>
<a href="#components"><h2 class="inline" id="components">Components</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/serverless/components">serverless/components</a> - An easier way to build applications with cloud services</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://nolanlawson.com/2018/09/01/a-tour-of-javascript-timers-on-the-web/">A tour of JavaScript timers on the web</a></li>
<li><a class="underline" href="http://2ality.com/2018/03/javascript-typescript-reasonml.html">JavaScript vs. TypeScript vs. ReasonML</a></li>
<li><a class="underline" href="https://ideamotive.co/blog/best-react-native-experts-blogs/">17 Best React Native Experts and Blogs To Follow In 2018</a></li>
<li><a class="underline" href="https://medium.freecodecamp.org/es9-javascripts-state-of-art-in-2018-9a350643f29c">ES2018: Javascript's new features in 2018</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://poi.js.org/">Poi</a> - A zero-config bundler for the web</li>
<li><a class="underline" href="https://github.com/Rich-Harris/agadoo">Rich-Harris/agadoo</a> - Check whether a package is tree-shakeable</li>
<li><a class="underline" href="https://babeljs.io/blog/2018/08/27/7.0.0">Babel 7 has been released</a></li>
<li><a class="underline" href="https://github.com/egoist/maid">egoist/maid</a> - Markdown driven task runner</li>
<li><a class="underline" href="https://github.com/mozilla/brackets">mozilla/brackets</a> - An open source code editor for the web, written in JavaScript, HTML and CSS</li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://angularjs-de.github.io/javascript-type-coercion/#/">JavaScript Type Coercion</a></li>
</ul>
<a href="#testing"><h2 class="inline" id="testing">Testing</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://bigtestjs.io/">BigTest</a> - A suite of JavaScript libraries and a framework to test your application</li>
</ul>
]]></content></entry><entry><title>JSter #123: Frameworks and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-123"></link><id>jster-123</id><published>2018-08-19T03:27:37.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Bring me a coffee. It's time to write to JavaScript.</p>
</blockquote>
<p>As usual, time for a new JSter. There's <a class="underline" href="https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-0.html">a new version of TypeScript</a> available. I've been playing with the language lately and now it feels like I should have picked it up earlier. Better late than never I suppose.</p>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/egoist/saber.js">egoist/saber</a> - A minimalistic framework for building static website using Vue.js</li>
<li><a class="underline" href="https://dojo.io/blog/2018/05/02/2018-05-02-Dojo2-0-0-release/">Introducing Dojo 2.0!</a></li>
</ul>
<a href="#data-structures"><h2 class="inline" id="data-structures">Data Structures</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/funkia/list">funkia/list</a> - An immutable list with unmatched performance and a comprehensive functional API.</li>
<li><a class="underline" href="https://medium.com/@reidev275/composable-immutable-property-access-with-lenses-in-typescript-798da4ddc30e">Composable, Immutable property access with Lenses in Typescript</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/javascript-in-plain-english/i-created-the-exact-same-app-in-react-and-vue-here-are-the-differences-e9a1ae8077fd">Sunil created the exact same app in React and Vue. Here are the differences.</a></li>
<li><a class="underline" href="https://medium.com/@cramforce/designing-very-large-javascript-applications-6e013a3291a3">Designing very large (JavaScript) applications</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.nexmo.com/blog/2018/08/07/sms-notifications-browser-with-angular-node-ably-dr/">How to Show SMS Notifications in the Browser with Angular, Node.JS, and Ably</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/ds300/patch-package/">ds300/patch-package</a> - Fix broken node modules with no fuss</li>
<li><a class="underline" href="https://strapi.io/">Strapi</a> - API creation made simple, secure and fast.</li>
<li><a class="underline" href="https://github.com/rvpanoz/luna">rvpanoz/luna</a> - Modern UI for npm</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://polyhedra.tessera.li/">Polyhedra Viewer</a></li>
</ul>
]]></content></entry><entry><title>JSter #122: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-122"></link><id>jster-122</id><published>2018-08-06T11:40:24.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>There's always room for one more JavaScript library</p>
</blockquote>
<p><a class="underline" href="https://graphql-finland.fi/">GraphQL Finland (October, Helsinki)</a> has reached the last week for early bird tickets. It should be great fun. :)</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://monet.github.io/monet.js/">monet.js</a> - Monadic types library for JavaScript</li>
<li><a class="underline" href="https://github.com/tehnokv/picojs">tehnokv/picojs</a> - A face detection library in 200 lines of JavaScript</li>
<li><a class="underline" href="https://github.com/iamkun/dayjs">iamkun/dayjs</a> - A light alternative to moment.js</li>
<li><a class="underline" href="https://github.com/mdx-js/mdx">mdx</a> - JSX in Markdown for ambitious projects</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/airbnb-engineering/react-native-at-airbnb-f95aa460be1c">React Native at Airbnb</a></li>
<li><a class="underline" href="https://medium.freecodecamp.org/here-are-three-upcoming-changes-to-javascript-that-youll-love-387bce1bfb0b">Here are three upcoming changes to JavaScript that you’ll love</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://engineering.linkedin.com/blog/2018/03/how-we-built-the-same-app-twice-with-preact-and-glimmerjs">Lighter than Lightweight</a> - How LinkedIn Built the Same App Twice with Preact and Glimmer.js</li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.sessionstack.com/how-javascript-works-the-rendering-engine-and-tips-to-optimize-its-performance-7b95553baeda">How JavaScript works</a> - The rendering engine and tips to optimize its performance</li>
<li><a class="underline" href="http://voidcanvas.com/nodejs-event-loop/">Node.js event loop workflow and lifecycle in low level</a></li>
<li><a class="underline" href="https://medium.freecodecamp.org/javascript-essentials-why-you-should-know-how-the-engine-works-c2cc0d321553">JavaScript essentials: why you should know how the engine works</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://basicscroll.electerious.com/">Parallax scrolling with CSS variables</a></li>
<li><a class="underline" href="https://medium.com/javascript-inside/slaying-a-ui-antipattern-in-fantasyland-907cbc322d2a">Slaying a UI Antipattern in Fantasyland</a></li>
<li><a class="underline" href="https://medium.com/dailyjs/threads-in-node-10-5-0-a-practical-intro-3b85a0a3c953">Threads in Node 10.5.0: a practical intro</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://delved.org/monoliths-always-pay-their-debts/">Monoliths always pay their debts</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/uppy-interview/">Uppy</a> - Painless Uploads for JavaScript - Interview with Artur Paikin</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://doesitmutate.xyz/">Does it mutate?</a></li>
<li><a class="underline" href="https://electronjs.org/releases#2.0.0">Electron 2.0</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://oatthegoat.co.nz/">Oat the Goat</a> - An interactive story</li>
<li><a class="underline" href="https://elements-of-physics.surge.sh/">Elements of Physics</a></li>
<li><a class="underline" href="https://floooh.github.io/tiny8bit/">8-Bit Emulators</a></li>
<li><a class="underline" href="https://demos.littleworkshop.fr/track">TRACK</a> - WebGL coolness</li>
<li><a class="underline" href="https://github.com/rhysd/vim.wasm">rhysd/vim.wasm</a> - Vim ported to WebAssembly</li>
</ul>
]]></content></entry><entry><title>JSter #121: Libraries, articles, utilities, tools</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-121"></link><id>jster-121</id><published>2018-07-15T14:50:13.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript, the hipster certified programming language.</p>
</blockquote>
<p>It's that time of the month again. npm almost had a disaster in their hands as a worm got through to the registry through a popular package. Enabling <a class="underline" href="https://docs.npmjs.com/getting-started/using-two-factor-authentication">two-factor authentication for npm</a> is recommended.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://js.tensorflow.org/">TensorFlow.js</a> - A JavaScript library for training and deploying ML models in the browser and on Node.js.</li>
<li><a class="underline" href="https://github.com/fluture-js/Fluture">Fluture</a> - FantasyLand compliant (monadic) alternative to Promises.</li>
<li><a class="underline" href="https://moment.github.io/luxon/">Luxon</a> - A powerful, modern, and friendly wrapper for Javascript dates and times.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://itnext.io/a-bloatless-web-d4f811c7991b">A Bloatless Web</a> - How to deal with browser bloat? Are there better ways? Spoiler: yes there are.</li>
<li><a class="underline" href="https://blog.benj.me/2018/07/04/mozilla-2018-faster-calls-and-anyref/">Making calls to WebAssembly fast and implementing anyref</a> - WebAssembly/JavaScript interop is getting fast.</li>
</ul>
<a href="#utilities"><h2 class="inline" id="utilities">Utilities</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/streamich/jsx-plus-plus">streamich/jsx-plus-plus</a> - What if JSX could be made better?</li>
<li><a class="underline" href="https://github.com/lukeed/dynamic-import-ponyfill">lukeed/dynamic-import-ponyfill</a> - Ponyfill <code>import()</code> in the browser.</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/ry/deno">ry/deno</a> - A secure TypeScript runtime on V8.</li>
<li><a class="underline" href="https://medium.com/pnpm/pnpm-version-2-is-out-a015268254d5">pnpm version 2 is out!</a> - pnpm, a npm client alternative, has reached a new major version. It maintains each package version only once on your computer making it both fast and space conserving.</li>
<li><a class="underline" href="https://vueds.com/">Vue Design System</a> - Design systems for Vue.js.</li>
<li><a class="underline" href="https://github.com/kitze/JSUI">JSUI</a> - A graphical application for visualizing your project and maintaining it.</li>
</ul>
]]></content></entry><entry><title>JSter #120: Libraries, articles, the usual</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-120"></link><id>jster-120</id><published>2018-07-04T10:53:51.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>The time has come to write some JavaScript</p>
</blockquote>
<p>It has been another busy two weeks. <a class="underline" href="https://medium.com/graphql-finland/workshops-at-graphql-finland-23f6a72312b2">We announced GraphQL Finland 2018 workshops</a> recently and we have a steady set of speakers. The conference is shaping up nicely.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/callbag/callbag">callbag</a> - A standard for JS callbacks that enables lightweight observables and iterables.</li>
<li><a class="underline" href="https://www.npmjs.com/package/fastpriorityqueue">fastpriorityqueue</a> - A fast, heap-based priority queue in JavaScript.</li>
<li><a class="underline" href="https://uppy.io/">Uppy File Uploader</a></li>
<li><a class="underline" href="https://sap.github.io/chevrotain/docs/">Chevrotain</a> - Parser Building Toolkit for JavaScript.</li>
<li><a class="underline" href="https://github.com/vincentriemer/assign.macro">vincentriemer/assign.macro</a> - A babel-macro to transpile <code>Object.assign</code>-style expressions to direct assignments for maximum performance.</li>
<li><a class="underline" href="https://ml5js.org/">ml5js</a> - Friendly Machine Learning for the Web.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.goodapi.co/rest-vs-graphql-a-critical-review-5f77392658e7">REST vs. GraphQL: A Critical Review</a></li>
<li><a class="underline" href="https://medium.com/@caspervonb/the-internet-is-at-the-mercy-of-a-handful-of-people-73fac4bc5068">The Node.js Ecosystem Is Chaotic and Insecure</a></li>
<li><a class="underline" href="https://blog.hasura.io/why-not-use-a-json-dsl-instead-of-graphql-d29f20cc97d2">Why you should use GraphQL instead of a JSON DSL</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://inclusive-components.design/">Inclusive Components</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/the-node-js-collection/node-js-can-http-2-push-b491894e1bb1">Node.js can HTTP/2 push!</a></li>
<li><a class="underline" href="https://hackernoon.com/frontend-in-the-backend-a-pattern-for-cleaner-code-b497c92d0b49">Backend-in-the-frontend: a pattern for cleaner code</a></li>
<li><a class="underline" href="https://medium.freecodecamp.org/avoiding-the-async-await-hell-c77a0fb71c4c">How to escape async/await hell</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/pwa-interview/">Progressive Web Apps - The Why and How - Interview with Maciej Caputa</a></li>
<li><a class="underline" href="https://survivejs.com/blog/proppy-interview/">Proppy - Functional props composition for components - Interview with Fahad Ibnay Heylaal</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/github/accessibilityjs">accessibilityjs</a> - Client side accessibility error scanner.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://atomiks.github.io/30-seconds-of-css/">30 Seconds of CSS</a></li>
</ul>
]]></content></entry><entry><title>JSter #119: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-119"></link><id>jster-119</id><published>2018-06-18T11:02:58.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript now.</p>
</blockquote>
<p>We announced a new technical event recently. <a class="underline" href="https://graphql-finland.fi/">GraphQL Finland</a> will be held in Helsinki 18-19 October. There will be a day of workshops and one day of talks and it's a good chance for you to learn more about this upcoming technology.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://roughjs.com/">Rough.js</a> - Create graphics with a hand-drawn, sketchy, appearanc</li>
<li><a class="underline" href="https://github.com/terotests/TaskRoll">terotests/TaskRoll</a> - Asynchronous computation builder</li>
</ul>
<a href="#graphql"><h2 class="inline" id="graphql">GraphQL</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/smooth-code/fraql">smooth-code/fraql</a> - GraphQL fragments made simple</li>
<li><a class="underline" href="https://github.com/confuser/graphql-constraint-directive">confuser/graphql-constraint-directive</a> - Validate GraphQL fields</li>
<li><a class="underline" href="https://blog.graph.cool/graphql-binding-2-0-improved-api-schema-transforms-automatic-codegen-5934cd039db1">GraphQL Binding 2.0</a> - Improved API, schema transforms & automatic codegen</li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://serviceworke.rs/">ServiceWorker Cookbook</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://juliango202.com/terrainver/">TerrainVer</a> - Worms-style cartoon terrain in JavaScript</li>
<li><a class="underline" href="https://blog.scottlogic.com/2018/04/26/webassembly-by-hand.html">Writing WebAssembly By Hand</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://netflix.github.io/pollyjs/">Polly.JS</a> - Record, replay, and stub HTTP interactions.</li>
<li><a class="underline" href="https://pnpm.js.org/">pnpm</a> - Fast, disk space efficient package manager</li>
<li><a class="underline" href="https://hacks.mozilla.org/2018/04/hello-wasm-pack/">Hello wasm-pack!</a></li>
<li><a class="underline" href="https://medium.com/netflix-techblog/netflix-flamescope-a57ca19d47bb">Netflix FlameScope</a> - Performance visualization</li>
<li><a class="underline" href="https://vuepress.vuejs.org/">VuePress</a> - Static site generator based on Vue</li>
<li><a class="underline" href="https://github.com/jlfwong/speedscope">jlfwong/speedscope</a> - A web-based viewer for sampling profiles</li>
</ul>
]]></content></entry><entry><title>JSter #118: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-118"></link><id>jster-118</id><published>2018-06-03T06:04:14.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript or not</p>
</blockquote>
<p>I'll be going to <a class="underline" href="https://survivejs.com/blog/summer-2018-events/">Graz and Hamburg</a> this Summer. Both are new cities to me so those should be fun trips to make.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://itnext.io/js-data-validation-with-forx-ee06986393af">JavaScript data validation with Forx</a></li>
<li><a class="underline" href="https://blotter.js.org/">Blotter.js</a> - A JavaScript API for drawing unconventional text effects on the web</li>
<li><a class="underline" href="https://stenciljs.com/">Stencil</a> - The magical, reusable web component compiler</li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://kanbasu.liip.ch/">Kanbasu</a> - A lightweight CSS framework written in Sass</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.hasura.io/architecture-of-a-high-performance-graphql-to-sql-server-58d9944b8a87">Architecture of a high performance GraphQL to SQL engine</a></li>
<li><a class="underline" href="https://www.imaginarycloud.com/blog/reasonml-react-as-first-intended/">ReasonML - React as first intended</a></li>
<li><a class="underline" href="https://hackernoon.com/writing-an-easing-function-a-slightly-interesting-story-70ce667c212a">Writing an easing function; a slightly interesting story</a></li>
<li><a class="underline" href="https://codeburst.io/inference-engines-5-examples-with-typescript-flow-and-reason-edef2f4cf2d3">Inference engines: 5 examples with TypeScript, Flow and Reason</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://javascriptreport.com/the-ultimate-guide-to-javascript-frameworks/">The Ultimate Guide to JavaScript Frameworks</a></li>
<li><a class="underline" href="https://github.com/hemanth/functional-programming-jargon">hemanth/functional-programming-jargon</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dev.to/codeprototype/async-without-await-await-without-async--oom">Async without await, Await without async</a></li>
<li><a class="underline" href="https://basicscroll.electerious.com/">Parallax scrolling with CSS variables</a></li>
<li><a class="underline" href="https://developers.google.com/web/updates/2018/01/paintapi">CSS Paint API</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/fastpack/fastpack">fastpack</a> - Faster than blazing fast bundler</li>
<li><a class="underline" href="https://github.com/lorenzofox3/zora">lorenzofox3/zora</a> - Lightest, yet Fastest Javascript test runner for nodejs and browsers</li>
<li><a class="underline" href="https://percy.io/">Percy</a> - Solving visual testing across design, development, and deployment</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://qrohlf.com/trianglify/">Trianglify by @qrohlf</a></li>
<li><a class="underline" href="https://webamp.org/">Webamp</a> - Winamp 2 in your browser</li>
</ul>
]]></content></entry><entry><title>JSter #117: Libraries and techniques</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-117"></link><id>jster-117</id><published>2018-05-15T12:54:43.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Just JavaScript it.</p>
</blockquote>
<p>Not much to say this time around. A new version of <a class="underline" href="https://reactabular.js.org/">my table framework for React</a> is progressing steadily.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/lukeed/trouter">lukeed/trouter</a> - A fast, small-but-mighty, familiar fish router</li>
<li><a class="underline" href="https://nerv.aotu.io/">Nerv</a> - A blazing fast React alternative, compatible with IE8 and React 16.</li>
<li><a class="underline" href="https://github.com/sindresorhus/ow">ow</a> - Function argument validation for humans.</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.angular.io/version-6-of-angular-now-available-cc56b0efa7a4">Version 6 of Angular Now Available</a></li>
<li><a class="underline" href="https://github.com/stimulusjs/stimulus">stimulus</a> - A modest JavaScript framework for the HTML you already have.</li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://milligram.io/">Milligram</a> - A minimalist CSS framework.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://stackoverflow.blog/2018/01/11/brutal-lifecycle-javascript-frameworks/">The Brutal Lifecycle of JavaScript Frameworks</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2018/05/progressive-web-apps-core-guides-on-mdn-web-docs/">Progressive Web Apps core guides on MDN Web Docs</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://slack.engineering/keep-webpack-fast-a-field-guide-for-better-build-performance-f56a5995e8f1">Keep webpack Fast: A Field Guide for Better Build Performance</a></li>
<li><a class="underline" href="https://dzone.com/articles/cover-your-apps-while-still-using-npm">Cover Your Apps While Still Using npm</a></li>
<li><a class="underline" href="https://blog.jmes.tech/react-fragment-and-semantic-html/">React.Fragment and Semantic HTML</a></li>
<li><a class="underline" href="https://blog.nrwl.io/production-bundling-with-bazel-839ac4c52041">Production Bundling With Bazel</a></li>
</ul>
]]></content></entry><entry><title>JSter #116: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-116"></link><id>jster-116</id><published>2018-05-03T13:22:47.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>New Wave of Heavy JavaScript</p>
</blockquote>
<p><a class="underline" href="https://medium.com/react-finland/react-finland-2018-lessons-learned-754a5f29067c">React Finland 2018 is a wrap!</a> The event was a great success and it's likely we'll organize it again next year as the feedback was positive.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/pshihn/rough">pshihn/rough</a> - Create graphics with a hand-drawn, sketchy, appearance.</li>
<li><a class="underline" href="https://github.com/Quiq/check-some">Quiq/check-some</a> - Component to help with form validation in React.</li>
<li><a class="underline" href="https://github.com/getify/CAF">getify/CAF</a> - Cancelable Async Functions.</li>
<li><a class="underline" href="https://js.tensorflow.org/">TensorFlow.js</a> - A WebGL accelerated, browser based JavaScript library for training and deploying ML models.</li>
<li><a class="underline" href="https://github.com/ballercat/walt">ballercat/walt</a> - JavaScript-like syntax for WebAssembly text format.</li>
<li><a class="underline" href="https://docusaurus.io/">Docusaurus</a> - Easy to Maintain Open Source Documentation Websites.</li>
</ul>
<a href="#graphql"><h2 class="inline" id="graphql">GraphQL</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/graphile/postgraphile">graphile/postgraphile</a> - A GraphQL API created by reflection over a PostgreSQL schema.</li>
<li><a class="underline" href="https://github.com/bradleyboy/tuql">bradleyboy/tuql</a> - Automatically create a GraphQL server from a sqlite database.</li>
</ul>
<a href="#styling"><h2 class="inline" id="styling">Styling</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://tailwindcss.com/">Tailwind CSS</a> - A Utility-First CSS Framework
for Rapid UI Development.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dev.to/voodooattack/introducing-nexusjs-a-multi-threaded-javascript-run-time-3g6">Introducing Nexus.js: A multi-threaded JavaScript run-time</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.patricktriest.com/game-of-thrones-leaflet-webpack/">Build An Interactive Game of Thrones Map (Part II)</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.callstack.io/4-tips-to-write-maintainable-react-components-7d18278643d0">4 tips to write maintainable React components</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@michaelsholty/give-parcel-a-try-you-may-like-it-75cd12a2bfb8">🚀Give Parcel a Try, You May Like It 🚀</a></li>
<li><a class="underline" href="https://github.com/JamieMason/syncpack">JamieMason/syncpack</a> - Manage multiple package.json files in Lerna Monorepos.</li>
<li><a class="underline" href="https://github.com/twbs/bootlint">twbs/bootlint</a> - HTML linter for Bootstrap projects.</li>
<li><a class="underline" href="https://codeburst.io/nectarjs-compiling-javascript-into-native-binaries-for-every-platform-2efb2083a4a">NectarJS</a> - Compiling JavaScript into Native Binaries for Every Platform</li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://bundlephobia.com/">BundlePhobia</a> - Find the cost of adding a npm package to your bundle.</li>
</ul>
]]></content></entry><entry><title>JSter #115: Libraries, the usual</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-115"></link><id>jster-115</id><published>2018-04-16T12:46:42.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript, JavaScript, JavaScript.</p>
</blockquote>
<p><a class="underline" href="https://react-finland.fi/">React Finland</a> is getting close! It's next week literally. Another conference, <a class="underline" href="https://worker.sh/">Worker Conf</a> was announced today. It's a day conference held in Dornbirn, Austria at 28th of June. If you like mountains, that's the place to be.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/Niryo/controllerim">Niryo/controllerim</a> - MobX-inspired state management for React.</li>
<li><a class="underline" href="https://github.com/s-macke/VoxelSpace">s-macke/VoxelSpace</a> - Terrain rendering algorithm in less than 20 lines of code.</li>
<li><a class="underline" href="http://savvior.org/">Savvior</a> - A multi-column layout alternative to Salvattore or Masonry, without CSS driven configuration or absolute positioning.</li>
<li><a class="underline" href="https://github.com/rangle/redux-beacon">rangle/redux-beacon</a> - Analytics integration for Redux and ngrx/store.</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.nexmo.com/blog/2018/03/28/build-chat-app-angular-material-stitch-javascript-dr/">Build a Chat Application with Angular Material and the Nexmo Stitch JavaScript SDK</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.freecodecamp.org/using-svg-as-placeholders-more-image-loading-techniques-bed1b810ab2c">How to use SVG as a Placeholder, and Other Image Loading Techniques</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/xaviergonz/makfy">xaviergonz/makfy</a> - npm scripts on steroids.</li>
<li><a class="underline" href="https://spiritapp.io/">Spirit</a> - Easy web animations for designers.</li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/lint-staged-interview/">lint-staged - Interview with Andrey Okonetchnikov</a> - Learn how to reduce the amount of time spent linting during development.</li>
</ul>
<a href="#boilerplates"><h2 class="inline" id="boilerplates">Boilerplates</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/hasura/react-native-auth-boilerplate">hasura/react-native-auth-boilerplate</a></li>
</ul>
]]></content></entry><entry><title>JSter #114: Libraries, data structures, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-114"></link><id>jster-114</id><published>2018-04-05T13:25:47.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>When JavaScript isn't enough.</p>
</blockquote>
<p>Remember to <a class="underline" href="https://survivejs.com/blog/webpack-book-updated-to-webpack-4/">check my updated webpack book</a> if you haven't already. I'll also <a class="underline" href="https://survivejs.com/blog/webpack-in-munich-may-2018/">do some touring next month</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://ui.toast.com">TOAST UI</a> - Make your site delicious.</li>
<li><a class="underline" href="https://github.com/funfix/funfix">funfix</a> - Functional Programming Library for JavaScript, TypeScript and Flow.</li>
<li><a class="underline" href="http://runtimejs.org/">runtime.js</a> - JavaScript library operating system for the cloud. Yes, it's crazy.</li>
</ul>
<a href="#data-structures"><h2 class="inline" id="data-structures">Data Structures</h2></a>
<ul class="list-disc list-inside">
<li>[rangle/typed-immutable-record(<a class="underline" href="https://github.com/rangle/typed-immutable-record">https://github.com/rangle/typed-immutable-record</a>) - Typed Immutable.js Record using Typescript interfaces.</li>
<li><a class="underline" href="https://github.com/ubilabs/kd-tree-javascript">ubilabs/kd-tree-javascript</a> - JavaScript k-d Tree Implementation.</li>
<li><a class="underline" href="https://github.com/anvaka/ngraph.path">anvaka/ngraph.path</a> - Path finding in a graph.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.ionicframework.com/the-end-of-framework-churn/">The end of Framework Churn</a></li>
<li><a class="underline" href="https://www.reaktor.com/blog/fear-trust-and-javascript/">Fear, trust and JavaScript: When types and functional programming fail</a></li>
<li><a class="underline" href="http://tonsky.me/blog/compatibility/">JavaScript v. backward compatibility</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://images.guide/">Essential Image Optimization</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://philipwalton.com/articles/deploying-es2015-code-in-production-today/">Deploying ES2015+ Code in Production Today</a></li>
<li><a class="underline" href="https://engineering.hexacta.com/didact-fiber-incremental-reconciliation-b2fe028dcaec">Didact Fiber: Incremental reconciliation</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://repl.it/">repl.it</a> - Instant programming environment for your favorite language.</li>
</ul>
<a href="#music"><h2 class="inline" id="music">Music</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://codepen.io/gregh/post/recreating-legendary-8-bit-games-music-with-web-audio-api">Recreating legendary 8-bit games music with Web Audio API by Greg Hovanesyan</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://webamp.org/">Winamp2-js</a></li>
</ul>
]]></content></entry><entry><title>JSter #113: Libraries and Techniques Mostly</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-113"></link><id>jster-113</id><published>2018-03-19T17:28:22.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Keep calm, and code JavaScript.</p>
</blockquote>
<p><a class="underline" href="https://survivejs.com/blog/webpack-book-updated-to-webpack-4/">My webpack book supports webpack 4 now!</a>. There will be <a class="underline" href="https://survivejs.com/blog/webpack-in-munich-may-2018/">webpack workshops with Tobias in Munich early May</a> as well.</p>
<blockquote>
<p>I will do a small online session at <a class="underline" href="https://reactdevsummit.com/">React Dev Summit</a>. Use the coupon <code>JUHO</code> to get 10% off. The live stream is free.</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/hugmanrique/turbo-ws">hugmanrique/turbo-ws</a> - Blazing fast low-level WebSocket server.</li>
<li><a class="underline" href="http://propelml.org/">PropelML</a> - What the creator of Node has been up to?</li>
<li><a class="underline" href="https://github.com/terkelg/prompts">terkelg/prompts</a> - Lightweight, beautiful and user-friendly interactive prompts.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jakearchibald.com/2018/third-party-css-is-not-safe/">Third party CSS is not safe</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://philipwalton.com/articles/responsive-components-a-solution-to-the-container-queries-problem/">Responsive Components: a Solution to the Container Queries Problem</a></li>
<li><a class="underline" href="http://raganwald.com/2018/03/03/reflections.html">More State Machine - From Reflection to Statecharts</a></li>
<li><a class="underline" href="https://dev.to/scastiel/bootstrap-a-reason-react-project-with-parcel--13fj">Bootstrap a Reason-React project with Parcel</a></li>
<li><a class="underline" href="https://blog.daftcode.pl/hyperapp-parcel-71823bd93f1c">Hyperapp + Parcel = 😎 – Daftcode Blog</a></li>
<li><a class="underline" href="https://medium.com/@MahmoudAlyuDeen/localize-your-react-app-with-zero-dependencies-ea14e0698cf7">Localize your React App with Zero Dependencies</a></li>
<li><a class="underline" href="https://blog.acolyer.org/2018/03/12/synode-understanding-and-automatically-preventing-injection-attacks-on-node-js/">Synode: understanding and automatically preventing injection attacks on Node.js</a></li>
<li><a class="underline" href="https://remysharp.com/2018/03/03/last-minute-node-debugging">Last minute node debugging</a></li>
</ul>
<a href="#tips"><h2 class="inline" id="tips">Tips</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://voidcanvas.com/javascript-performant-coding-tips/">17 JavaScript / Node performance coding tips to make applications faster</a></li>
</ul>
]]></content></entry><entry><title>JSter #112: Libraries, the Usual</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-112"></link><id>jster-112</id><published>2018-03-07T11:07:10.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>I'm gonna make him a JavaScript library he can't refuse.</p>
</blockquote>
<p>The Spring is coming in Vienna fast. <a class="underline" href="https://survivejs.com/blog/concat-2018/">I visited Concat 2018</a>, a web development event held in Salzburg. It was a great conference and I'll go again if I get the chance.</p>
<p><a class="underline" href="https://react-finland.fi/">React Finland</a> was sold out. There are still some workshop slots left. One of the major things we did during the process was to re-design the site. <a class="underline" href="https://medium.com/@okonetchnikov/redesigning-react-finland-fi-7f2dd6b5b487">Andrey Okonetchnikov wrote a post about redesigning react-finland.fi</a> and <a class="underline" href="https://medium.com/react-finland/case-study-react-finland-website-108a1128a683">I wrote a React Finland case study as well</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/oliviertassinari/i18n-extract">oliviertassinari/i18n-extract</a> - Manage localization with static analysis.</li>
<li><a class="underline" href="http://idangero.us/swiper/">Swiper</a> - Most modern mobile slider.</li>
<li><a class="underline" href="https://github.com/funfix/funfix">funfix</a> - Functional Programming Library for JavaScript, TypeScript and Flow.</li>
<li><a class="underline" href="https://github.com/terkelg/cantinflas">cantinflas</a> - Tiny mustache-like template engine in ~50 LOC.</li>
<li><a class="underline" href="https://github.com/funkia/list">funkia/list</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://donejs.com/">DoneJS</a> - DoneJS is an open source JavaScript framework that makes it easy to build high performance, real-time web and mobile applications.</li>
<li><a class="underline" href="https://github.com/google/bottery">google/bottery</a> - A conversational agent prototyping platform by Google.</li>
<li><a class="underline" href="https://zeit.co/blog/next5">Next.js 5</a> - Universal Webpack, CSS Imports, Plugins and Zones.</li>
<li><a class="underline" href="https://github.com/graphcool/graphql-yoga">graphcool/graphql-yoga</a> - Fully-featured GraphQL Server with focus on easy setup, performance and great developer experience.</li>
<li><a class="underline" href="https://headlesscms.org/">headlessCMS</a> - A List of Content Management Systems for JAMstack Sites.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hackernoon.com/redesigning-redux-b2baee8b8a38">Redesigning Redux</a></li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://mrale.ph/blog/2018/02/03/maybe-you-dont-need-rust-to-speed-up-your-js.html">Maybe you don't need Rust and WASM to speed up your JS</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.freecodecamp.org/every-javascript-framework-tutorial-written-more-than-5-minutes-ago-f96642d4f05">Every JavaScript framework tutorial written more than 5 minutes ago</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/verdaccio-interview/">Verdaccio - A lightweight npm proxy registry - Interview with Juan Picado</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/bfirsh/jsnes">bfirsh/jsnes</a> - A JavaScript NES emulator.</li>
<li><a class="underline" href="http://gamebeans.io/">GameBeans.io</a> - Web-based game creation tool.</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/zeit/pkg">zeit/pkg</a> - Package your Node.js project into an executable.</li>
<li><a class="underline" href="https://gojko.net/2018/02/25/javascript-testing-tools.html">Choosing the right JavaScript testing tool</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.shadertoy.com/view/4tjGRh">Planetary walkthrough shader</a></li>
</ul>
]]></content></entry><entry><title>JSter #111: Libraries, the Usual</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-111"></link><id>jster-111</id><published>2018-02-16T11:13:28.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Toto, I've a feeling we're not in JavaScript anymore.</p>
</blockquote>
<p><a class="underline" href="https://react-finland.fi/">React Finland</a> (24-26.4) is getting closer. I've been developing the technology around it and the process has taught me a lot about technologies like GraphQL. I'll likely publish a blog post about my learnings so far.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/sindresorhus/modern-normalize">https://github.com/sindresorhus/modern-normalize</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/sindresorhus/modern-normalize">sindresorhus/modern-normalize</a></li>
<li><a class="underline" href="https://www.npmjs.com/package/neo-async">neo-async</a> - A faster drop-in replacement for async.</li>
<li><a class="underline" href="https://nact.io/">nact</a> - Nact is Redux but for the server.</li>
<li><a class="underline" href="https://www.npmjs.com/package/react-functional">react-functional</a> - Add lifecycle methods to stateless functional components, without the class noise.</li>
<li><a class="underline" href="https://github.com/giuseppeg/dss">giuseppeg/dss</a> - Deterministic Style Sheets.</li>
<li><a class="underline" href="https://github.com/DmitrySoshnikov/regexp-tree">DmitrySoshnikov/regexp-tree</a> - Regular expressions processor in JavaScript.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/welldone-software/an-overview-of-javascript-testing-in-2018-f68950900bc3">An Overview of JavaScript Testing in 2018</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dev.to/btdev/hey-user-you-already-see-me11---svg-based-image-lazyloading-as-a-matter-of-enjoyable-ux-1de9">'Hey user, you already see me!!!11'</a> - SVG-based image lazyloading as a matter of enjoyable UX.</li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.hasura.io/an-exhaustive-guide-to-writing-dockerfiles-for-node-js-web-apps-bbee6bd2f3c4">An Exhaustive Guide to Writing Dockerfiles for Node.js Web Apps</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/parket-interview/">Parket - A state management library inspired by mobx-state-tree - Interview with Leah Ullmann</a></li>
<li><a class="underline" href="https://survivejs.com/blog/substyle-interview/">substyle - Build Styling Agnostic Components for React - Interview with Jan-Felix Schwarz</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/rage8885/OpenSC2K">rage8885/OpenSC2K</a> - SimCity 2000 in JavaScript.</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/nebrius/request-inspector">nebrius/request-inspector</a> - A request timing diagnostic tool for Web and Node.js applications.</li>
<li><a class="underline" href="https://medium.com/@devongovett/parcel-v1-6-0-46f4a2514668">Parcel v1.6.0: Zero Config ES6+ and JSX, Node and Electron Targets, Bundle Statistics, and more!</a></li>
</ul>
]]></content></entry><entry><title>JSter #110: Libraries, Articles, the Usual</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-110"></link><id>jster-110</id><published>2018-02-14T03:58:22.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>My JavaScript, where art thou?</p>
</blockquote>
<p><a class="underline" href="https://react-finland.fi/">React Finland</a> is progressing steadily and we are selling "regular bird" tickets now. We've reached our financial goals. We'll use some for the next year and perhaps meetups while also invest into this year's edition to improve the experience as much as we can.</p>
<p>I did some traveling during the past few weeks and wrote about <a class="underline" href="https://survivejs.com/blog/scriptconf-2018/">my experiences on ScriptConf 2018</a> and <a class="underline" href="https://survivejs.com/blog/agentconf-2018/">AgentConf 2018</a>. Especially the latter was a great conference to visit, and if it's possible, I'll visit both next year again.</p>
<p>Friends at <a class="underline" href="https://www.reason-conf.com/">Reason Conf</a> just opened sales, so if you are interested in an emerging new language and want to visit Vienna in May, check it out!</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/angus-c/just">https://github.com/angus-c/just</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/angus-c/just">angus-c/just</a> - A library of dependency-free utilities that do just do one thing.</li>
<li><a class="underline" href="https://github.com/jxnblk/system-components">jxnblk/system-components</a> - Create consistent design-system-driven React UI components.</li>
<li><a class="underline" href="https://github.com/baconjs/bacon.js">Bacon.js 2.0</a> - Reactive programming.</li>
<li><a class="underline" href="https://nhnent.github.io/tui.editor/">TOAST UI Editor</a> - GFM Markdown WYSIWYG Editor.</li>
<li><a class="underline" href="https://github.com/visionmedia/page.js">page.js</a> - Micro client-side router inspired by the Express router.</li>
</ul>
<a href="#styling"><h2 class="inline" id="styling">Styling</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://stylable.io/">Stylable</a> - CSS for components.</li>
<li><a class="underline" href="https://getbootstrap.com/docs/4.0/getting-started/introduction/">Bootstrap 4.0</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://quasar-framework.org/">Quasar Framework</a> - Build responsive websites, PWAs, hybrid mobile Apps (that look native!) and Electron apps, all simultaneously using same codebase, powered with Vue.</li>
<li><a class="underline" href="https://nestjs.com/">Nest</a> - A progressive Node.js framework for building efficient and scalable server-side applications.</li>
<li><a class="underline" href="https://github.com/lukeed/polka">GitHub</a> - A micro web server so fast, it'll make you dance!</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://benchling.engineering/from-200k-lines-of-coffeescript-to-zero-making-decaffeinate-super-stable-4de0ca68d9bc">From 200K lines of CoffeeScript to zero: making decaffeinate super-stable</a></li>
<li><a class="underline" href="https://risingstars.js.org/2017/en/">2017 JavaScript Rising Stars</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@zvona/react-native-and-typescript-meets-styles-b727ecf7e677">React Native and TypeScript meets Styles</a></li>
<li><a class="underline" href="https://blog.sessionstack.com/how-javascript-works-memory-management-how-to-handle-4-common-memory-leaks-3f28b94cfbec">How JavaScript works: memory management and how to handle 4 common memory leaks</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/shprink/web-components-todo">shprink/web-components-todo</a> - Todo list built with Web Components VS Polymer VS StencilJS VS Angular Elements.</li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/illuminate-interview/">Illuminate - Syntax highlighter for Node - Interview with Vivek Bansal</a></li>
<li><a class="underline" href="https://survivejs.com/blog/logux-interview/">Logux - Replace AJAX-REST - Interview with Andrey Sitnik</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@devongovett/parcel-v1-5-0-released-source-maps-webassembly-rust-and-more-3a6385e43b95">Parcel v1.5.0 released</a> - Source Maps, WebAssembly, Rust, and more!</li>
<li><a class="underline" href="https://github.com/nearform/node-clinic">nearform/node-clinic</a> - Diagnose your Node.js performance issues.</li>
<li><a class="underline" href="https://axe-core.org/">aXe</a> - Easy accessibility testing.</li>
<li><a class="underline" href="https://cuttlebelle.com/">Cuttlebelle</a> - The react static site generator that separates editing and code concerns.</li>
</ul>
]]></content></entry><entry><title>JSter #109: Libraries, articles, the usual</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-109"></link><id>jster-109</id><published>2018-01-15T05:58:41.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Chuck Norris debugs JavaScript code by staring at it. The code confesses eventually.</p>
</blockquote>
<p><a class="underline" href="https://www.reddit.com/r/javascript/comments/7olgo0/today_is_leftpad_20_pinkiepromise_pulled_from_npm/">Leftpad 2.0 occurred</a> as pinkie-promise was pulled from npm by accident. For this reason, it can be a good idea to run a proxy such as <a class="underline" href="http://www.verdaccio.org/">verdaccio</a> in front of npm as it isolates you from these kind of rare disasters.</p>
<p>We started the sales for <a class="underline" href="https://react-finland.fi/">React Finland 2018</a> (24-26.4.2018, Helsinki) and we've almost run out of our early bird tickets! There are also <a class="underline" href="https://react-finland.fi/for-sponsors/">sponsorship options for companies</a>.</p>
<p>I wrote <a class="underline" href="https://survivejs.com/blog/summary-of-2017/">a small summary on 2017</a>. I took my first proper vacation in years so this mailing list was on a brief hiatus. It's back to one post per two weeks again.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/Drulac/template-literal">https://github.com/Drulac/template-literal</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/Drulac/template-literal">Drulac/template-literal</a> - Simple template engine built on top of the new syntax.</li>
<li><a class="underline" href="https://medium.com/@nuxt_js/nuxt-js-1-0-is-out-bab1af459972">Nuxt.js 1.0 is out 🎉</a> - Nuxt.js is like Next.js but for Vue.</li>
<li><a class="underline" href="http://animejs.com/">anime.js</a> - Animations made easy.</li>
<li><a class="underline" href="http://fr.umio.us/why-ramda/">Why Ramda?</a> - Why would you use Ramda over Lodash and such?</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.npmjs.org/post/168978377570/new-package-moniker-rules">New moniker rules for npm</a></li>
<li><a class="underline" href="https://medium.com/@christianalfoni/the-story-of-cerebral-5793c08db2cc">The story of Cerebral</a> - Cerebral is perhaps the most underappreciated state management solution out there.</li>
<li><a class="underline" href="http://blog.blueclosure.com/2017/09/javascript-security-awareness.html">JavaScript Security Awareness - BlueClosure</a></li>
<li><a class="underline" href="https://medium.com/the-node-js-collection/the-current-state-of-implementation-and-planning-for-esmodules-a4ecb2aac07a">The Current State of Implementation and Planning for ESModules</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://webgl2fundamentals.org/">WebGL2 Fundamentals</a></li>
<li><a class="underline" href="https://auth0.com/blog/developing-npm-packages/">Developing NPM Packages</a> - See also <a class="underline" href="https://survivejs.com/maintenance/">my free maintenance book</a> to learn more about the topic.</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dassur.ma/things/actormodel/">An Actor, a model and an architect walk onto the web...</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/bem-interview/">BEM - Methodology to enable reuse in front-end development - Interview with Sergey Berezhnoy</a></li>
</ul>
<a href="#cheatsheets"><h2 class="inline" id="cheatsheets">Cheatsheets</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://shift.infinite.red/npm-vs-yarn-cheat-sheet-8755b092e5cc">npm vs. Yarn Cheat Sheet</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/fhinkel/type-profile">fhinkel/type-profile</a> - Collect runtime type information of your JavaScript code.</li>
<li><a class="underline" href="https://maierfelix.github.io/Iroh/">Iroh</a> - Dynamic code analysis for JavaScript.</li>
<li><a class="underline" href="https://github.com/wix/detox">wix/detox</a> - Gray Box E2E Tests and Automation Library for Mobile Apps.</li>
<li><a class="underline" href="https://github.com/GoogleChrome/rendertron">GoogleChrome/rendertron</a> - A dockerized, headless Chrome rendering solution.</li>
</ul>
]]></content></entry><entry><title>JSter #108: Libraries, Techniques, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-108"></link><id>jster-108</id><published>2017-12-15T05:40:07.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript another day.</p>
</blockquote>
<p><a class="underline" href="https://react-finland.fi/">React Finland</a> (24-26.4.2018 in Helsinki) ticket sales are getting close. Stay tuned!</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/WebReflection/ecma">https://github.com/WebReflection/ecma</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/WebReflection/ecma">WebReflection/ecma</a> - The simplest way to load ES modules or bundled fallbacks.</li>
<li><a class="underline" href="https://www.npmjs.com/package/upup">upup</a> - Kickstarting the Offline First Revolution.</li>
<li><a class="underline" href="https://fontawesome.com/">Font Awesome 5.0</a> - A new major release of the popular font library.</li>
</ul>
<a href="#testing"><h2 class="inline" id="testing">Testing</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/mrijk/speculaas">mrijk/speculaas</a> - Node implementation of clojure.spec.</li>
<li><a class="underline" href="https://github.com/eddyerburgh/avoriaz">eddyerburgh/avoriaz</a> - A Vue.js testing utility library.</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2017/12/actual-input-latency-and-the-hasal-testing-framework/">Actual Input Latency: cross-browser measurement and the Hasal testing framework</a></li>
<li><a class="underline" href="https://survivejs.com/react/advanced-techniques/styling-react/">Styling React</a></li>
<li><a class="underline" href="https://survivejs.com/react/getting-started/understanding-react-components/">Understanding React Components</a></li>
<li><a class="underline" href="https://codewords.recurse.com/issues/four/lazy-composable-and-modular-javascript">Lazy, composable, and modular JavaScript</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/redux-form-interview/">Redux Form - The best way to manage your form state in Redux - Interview with Erik Rasmussen</a></li>
<li><a class="underline" href="https://survivejs.com/blog/redux-zero-interview/">Redux Zero - Single Store, No Reducers - Interview with Matheus Lima</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://poi.js.org/">Poi</a> - Delightful web development.</li>
<li><a class="underline" href="https://github.com/developit/microbundle">developit/microbundle</a> - Zero-configuration bundler for tiny modules.</li>
<li><a class="underline" href="https://stenciljs.com/">Stencil</a> - The magical, reusable web component generator.</li>
<li><a class="underline" href="https://github.com/webpack/webpack/releases/tag/v4.0.0-alpha.1">webpack v4.0.0-alpha.1</a></li>
</ul>
]]></content></entry><entry><title>JSter #107: Libraries, Articles, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-107"></link><id>jster-107</id><published>2017-12-04T11:05:21.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript another day.</p>
</blockquote>
<p>I published <a class="underline" href="https://survivejs.com/blog/survivejs-webpack-and-maintenance/">a new version of my webpack book</a>. While doing this, I published <a class="underline" href="https://survivejs.com/maintenance/">a new book about JavaScript maintenance</a>. You can find both online if you want to have a look.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/cezarlz/pozition.js">https://github.com/cezarlz/pozition.js</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/cezarlz/pozition.js">cezarlz/pozition.js</a> - Geolocation Position. Plus Promise.</li>
<li><a class="underline" href="https://popmotion.io/">Popmotion</a> - The JavaScript motion engine.</li>
<li><a class="underline" href="http://animejs.com/">anime.js</a> - Another JavaScript animation engine.</li>
<li><a class="underline" href="https://citation.js.org/">Citation.js</a> - Convert citations from a format to another.</li>
<li><a class="underline" href="https://github.com/react-cosmos/react-cosmos">react-cosmos</a> -  Dev tool for creating reusable React components.</li>
<li><a class="underline" href="https://github.com/JedWatson/react-select">JedWatson/react-select</a> - A Select control built with and for React.</li>
<li><a class="underline" href="https://github.com/sunesimonsen/ukkonen">sunesimonsen/ukkonen</a> - Ukkonen's Approximate String Matching algorithm.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://malloc.fi/performance-cost-of-server-side-rendered-react-node-js">The Performance Cost of Server Side Rendered React on Node.js</a></li>
<li><a class="underline" href="https://medium.com/@cameronfletcher92/mobdux-combining-the-good-parts-of-mobx-and-redux-61bac90ee448">Mobdux: Combining the good parts of MobX and Redux – Cameron Fletcher</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2017/06/introducing-filterbubbler-a-webextension-built-using-reactredux/">Introducing FilterBubbler: A WebExtension built using React/Redux</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://gvwilson.github.io/js-vs-rc/">JavaScript versus Research Computing</a> - A Brief Guide for Those Who Regret That This Has Become Necessary.</li>
<li><a class="underline" href="http://www.vizitsolutions.com/portfolio/webgl/gpgpu/index.html">Unleash Your Inner Supercomputer</a> - Your Guide to GPGPU with WebGL.</li>
</ul>
<a href="#stories"><h2 class="inline" id="stories">Stories</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://snipcart.com/blog/progressive-migration-backbone-vuejs-refactoring">The Story of our Progressive Migration from Backbone to Vue.js</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://seg.phault.net/blog/2017/10/typescript-without-transpiling/">Get the advantages of TypeScript without transpiling</a></li>
<li><a class="underline" href="https://jakearchibald.com/2017/h2-push-tougher-than-i-thought/">HTTP/2 push is tougher than Jake thought</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/flow-runtime-interview/">Flow Runtime - A runtime type system for JavaScript with full Flow compatibility</a> - Interview with Charles Pick.</li>
<li><a class="underline" href="https://survivejs.com/blog/a-plus-interview/">a-plus-forms - A+ forms. Would use again</a> - Interview with Nikolay Nemshilov.</li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://presentations.survivejs.com/javascript-maintenance/">JavaScript Maintenance</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.adultswim.com/etcetera/elastic-man/">Elastic Man</a> - By Adult Swim. It's Morty!</li>
</ul>
]]></content></entry><entry><title>JSter #106: Libraries, Articles, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-106"></link><id>jster-106</id><published>2017-11-20T05:33:43.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>There's no script like JavaScript.</p>
</blockquote>
<p><a class="underline" href="https://react-finland.fi/">React Finland</a> (end of April 2018) ticket sales are getting closer, so remember to tune in to get one if you want to visit this northern country.</p>
<p>I <a class="underline" href="https://survivejs.com/blog/survivejs-webpack-and-maintenance/">split my webpack book into two books</a> recently. You can <a class="underline" href="https://survivejs.com/maintenance/">preview the maintenance book</a> online to get a better idea of the new one. The book lists a large number of good practices and helps you to improve your JavaScript projects.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/PolymerLabs/lit-html">https://github.com/PolymerLabs/lit-html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/PolymerLabs/lit-html">PolymerLabs/lit-html</a> - HTML template literals in JavaScript.</li>
<li><a class="underline" href="https://uber.github.io/deck.gl/#/">deck.gl</a> - Large-scale WebGL-powered data visualization.</li>
<li><a class="underline" href="https://yuschick.github.io/TickTock/">TickTock JS</a> - Making digital time mechanical.</li>
<li><a class="underline" href="https://frappe.github.io/charts/">Frappe Charts</a> - GitHub-inspired simple and modern charts for the web with zero dependencies.</li>
<li><a class="underline" href="https://serverjs.io/">Server.js</a> - Express alternative for Node.js.</li>
<li><a class="underline" href="https://moment.github.io/luxon/">Luxon</a> - A powerful, modern, and friendly wrapper for Javascript dates and times.</li>
<li><a class="underline" href="https://shift.infinite.red/solidarity-the-cli-for-developer-sanity-672fa81b98e9">Solidarity</a> - Add Solidarity to your project for multi-machine peace of mind.</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.angular.io/version-5-0-0-of-angular-now-available-37e414935ced">AngularJS 5.0</a></li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@tkh44/emotion-8-9f892346d0af">Emotion 8</a> - The popular CSS-in-JS solution has gained support for source maps and more.</li>
<li><a class="underline" href="https://github.com/rofrischmann/elodin">rofrischmann/elodin</a> - Quality and Optimisation tools for CSS in JavaScript</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/dev-channel/the-cost-of-javascript-84009f51e99e">The Cost Of JavaScript by Addy Osmani</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2017/11/go-beyond-console-log-with-the-firefox-debugger/">Go beyond console.log with the Firefox Debugger – Mozilla Hacks – the Web developer blog</a></li>
<li><a class="underline" href="https://medium.com/@gooddev.sergey/back-to-the-future-with-proxy-62f835f68c8d">Back to the future with Proxy</a></li>
<li><a class="underline" href="https://medium.com/javascript-inside/slaying-a-ui-antipattern-in-react-64a3b98242c">Slaying a UI Antipattern in React</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://ebaytech.berlin/into-the-great-unknown-migrating-from-mocha-to-jest-3baced083c7e">Into the Great Unknown - Migrating from Mocha to Jest</a></li>
<li><a class="underline" href="https://blog.acolyer.org/2017/11/08/fast-and-precise-type-checking-for-javascript/">Fast and precise type checking for JavaScript</a></li>
<li><a class="underline" href="https://blog.acolyer.org/2017/11/10/a-model-for-reasoning-about-javascript-promises/">A model for reasoning about JavaScript Promises</a></li>
<li><a class="underline" href="https://medium.com/@matuzo/writing-javascript-with-accessibility-in-mind-a1f6a5f467b9">Writing JavaScript with accessibility in mind</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/react-lite-interview/">react-lite - Implementation of React optimized for small size - Interview with Jade</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://presentations.survivejs.com/react-quo-vadis/">React - Quo Vadis?</a> - Current state of React and where it's going.</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.leaningtech.com/2017/11/cheerp-c-to-webassembly-20rc1-released.html">Cheerp 2.0RC1</a> - C/C++ to WebAssembly, mixed JavaScript/Wasm output, 30-90% smaller than Emscripten.</li>
<li><a class="underline" href="https://www.npmjs.com/package/subfont">subfont</a> - A command line tool to statically analyse your page in order to generate the most optimal web font subsets, then inject them into your page.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://anvaka.github.io/fieldplay/">Field Play</a> - Play with maths in a field simulation.</li>
</ul>
]]></content></entry><entry><title>JSter #105: Libraries, Articles, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-105"></link><id>jster-105</id><published>2017-11-01T05:53:53.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>I feel the need - the need for JavaScript!</p>
</blockquote>
<p>It has been time to travel for me. The <a class="underline" href="https://survivejs.com/maintenance/">Maintenance book</a> is getting closer, though.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/MadRabbit/a-plus-forms">https://github.com/MadRabbit/a-plus-forms</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/MadRabbit/a-plus-forms">MadRabbit/a-plus-forms</a> - A fresh approach for React forms.</li>
<li><a class="underline" href="https://konvajs.github.io/">Konva</a> - Canvas library for desktop and mobile applications.</li>
<li><a class="underline" href="https://github.com/delvedor/workq">delvedor/workq</a> - A super tiny work queue.</li>
<li><a class="underline" href="https://github.com/mattbierner/akh">mattbierner/akh</a> - Javascript Monad and Monad Transformer Collection</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jeremenichelli.io/2017/10/the-web-components-experience/">The web component experience</a></li>
<li><a class="underline" href="http://bennettfeely.com/image-effects/">Image Effects with CSS</a></li>
<li><a class="underline" href="https://tomdale.net/2017/09/compilers-are-the-new-frameworks/">Compilers are the New Frameworks</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://ropig.com/blog/end-end-tests-dont-suck-puppeteer/">End-to-end Tests that Don’t Suck with Puppeteer</a></li>
<li><a class="underline" href="https://monades.roperzh.com/get-to-know-the-actor-model/">Get to know the Actor Model</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/react-day-berlin-interview/">React Day Berlin - Fully Packed Day of Your Favorite React Content</a> - Interview with Robert Haritonov.</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/steelbrain/pundle">steelbrain/pundle</a> - A bundler built from the ground up for speed and extensibility.</li>
<li><a class="underline" href="https://github.com/Microsoft/napajs">Microsoft/napajs)</a> - A multi-threaded JavaScript runtime.</li>
<li><a class="underline" href="https://github.com/mikeal/cappadonna">mikeal/cappadonna</a> - Headless browser testing for tap with coverage reporting.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.mattzeunert.com/TodoCSS/">TodoCSS</a> - TodoMVC in CSS.</li>
<li><a class="underline" href="https://xem.github.io/sheet/">Sheet</a> - A 188b/253b spreadsheet app in HTML/JS.</li>
<li><a class="underline" href="https://github.com/veu/mini-tetris">veu/mini-tetris</a> - Tetris in 512b.</li>
</ul>
]]></content></entry><entry><title>JSter #104: Libraries, Articles, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-104"></link><id>jster-104</id><published>2017-10-16T08:48:52.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>One JavaScript library too far.</p>
</blockquote>
<p><a class="underline" href="https://github.com/survivejs/maintenance-book">My newest book about maintenance</a> keeps progressing steadily and is close to its first release. You can already peruse the initial contents online!</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/bvaughn/js-worker-search">https://github.com/bvaughn/js-worker-search</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/bvaughn/js-worker-search">bvaughn/js-worker-search</a> - JavaScript client-side search API with web-worker support.</li>
<li><a class="underline" href="https://github.com/alvarcarto/url-to-pdf-api">alvarcarto/url-to-pdf-api</a> - Self-hosted service for rendering HTML to PDF.</li>
<li><a class="underline" href="https://dio.js.org/">DIO</a> - Develop light, declarative UIs using JavaScript.</li>
<li><a class="underline" href="https://micromodal.now.sh/">Micromodal.js</a> - Micromodal.js is a lightweight, configurable and a11y-enabled modal library written in pure JavaScript.</li>
<li><a class="underline" href="https://www.npmjs.com/package/unfetch">unfetch</a> - Tiny 500b fetch "barely-polyfill".</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@benlesh/observables-and-finnish-notation-df8356ed1c9b">Observables and Finnish Notation</a> - Not only Hungarians have a notation. Now Finns have one too.</li>
<li><a class="underline" href="https://alexn.org/blog/2017/10/11/javascript-promise-leaks-memory.html">JavaScript's Promise Leaks Memory</a></li>
<li><a class="underline" href="https://www.jsblog.io/articles/christianalfoni/business_logic_as_a_data_structure">Business logic as a data structure</a></li>
<li><a class="underline" href="https://medium.com/@mikeal/ive-seen-the-future-it-s-full-of-html-2577246f2210">Mikeal has seen the future, it’s full of HTML</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://alexjoverm.github.io/series/Unit-Testing-Vue-js-Components-with-the-Official-Vue-Testing-Tools-and-Jest/">Unit Testing Vue.js Components with the Official Vue Testing Tools and Jest</a></li>
<li><a class="underline" href="https://mathiasbynens.be/notes/async-stack-traces">Asynchronous stack traces: why await beats .then()</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/snakesilk/snakesilk-engine">Snakesilk game engine</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://node.getglimpse.com/">Project Glimpse</a> - Full-stack Node.js web diagnostics.</li>
<li><a class="underline" href="https://workboxjs.org/">Workbox</a> - JavaScript Libraries for Progressive Web Apps.</li>
<li><a class="underline" href="https://github.com/webpack/webpack/releases/tag/v3.7.0">webpack v3.7.0</a></li>
<li><a class="underline" href="https://hackernoon.com/how-we-make-npm-packages-work-in-the-browser-announcing-the-new-packager-6ce16aa4cee6">How codesandbox makes packages work in the browser; announcing the new packager</a></li>
</ul>
]]></content></entry><entry><title>JSter #103: Libraries, Articles, techniques, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-103"></link><id>jster-103</id><published>2017-10-02T10:38:40.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript, now.</p>
</blockquote>
<p>I spent roughly a week in Prague and wrote about my <a class="underline" href="https://survivejs.com/blog/webexpo-2017/">experiences in WebExpo 2017</a>. In short, another great place in Europe to visit.</p>
<p>In other news, we are going to organize <a class="underline" href="https://react-finland.fi/">React Finland</a> at the end of April 2018 in Helsinki. The event will gather around three hundred React enthusiasts. We'll have a workshop day and two days for presentations in a single-track format.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/xtuc/async-reactor">https://github.com/xtuc/async-reactor</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://reactjs.org/blog/2017/09/26/react-v16.0.html">React v16.0</a> - Major version of the popular user interface library.</li>
<li><a class="underline" href="https://shopify.github.io/draggable/">Draggable</a> - A lightweight, responsive, modern drag and drop library.</li>
<li><a class="underline" href="https://github.com/xtuc/async-reactor">xtuc/async-reactor</a> - Render async Stateless Functional Components in React.</li>
<li><a class="underline" href="https://github.com/jeromeetienne/AR.js">jeromeetienne/AR.js</a> - Efficient Augmented Reality for the Web. 60 fps on mobile!</li>
<li><a class="underline" href="https://liike.js.org/">Liike</a> - Tiny tweening library.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.acolyer.org/2017/09/19/to-type-or-not-to-type-quantifying-detectable-bugs-in-javascript/amp/">To type or not to type: quantifying detectable bugs in JavaScript</a></li>
<li><a class="underline" href="https://medium.com/@paulvm/javascript-development-is-not-fun-for-me-anymore-ac4e9d7b89a3">JavaScript development is not fun for Paul anymore</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://codeburst.io/how-i-built-my-own-react-in-two-days-and-why-i-did-it-969c3d048f78">How Andrew Built His Own “React” in Two Days</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.jcoglan.com/2017/04/25/myers-diff-in-linear-space-implementation/">Myers diff in linear space: implementation</a></li>
<li><a class="underline" href="https://alistapart.com/article/yes-that-web-project-should-be-a-pwa">Yes, That Web Project Should Be a PWA</a></li>
<li><a class="underline" href="https://hackernoon.com/creating-awesome-spas-with-react-66b4e2043621">Creating Awesome SPAs With React</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2017/09/building-the-dom-faster-speculative-parsing-async-defer-and-preload/">Building the DOM faster: speculative parsing, async, defer and preload</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/kea-interview/">Kea - High level abstraction between React and Redux</a> - Interview with Marius Andra</li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://delved.org/What-if-I-told-you-that-HTTP-can-be-fast/#/0">What if Tomas told you that HTTP can be fast?</a></li>
<li><a class="underline" href="https://speakerdeck.com/siakaramalegos/lightning-fast-react-apps">Lightning Fast React Apps</a> by Sia Karamalegos.</li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://coffeescript.org/announcing-coffeescript-2/">Announcing CoffeeScript 2</a> - Not a joke.</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.viget.com/articles/blendid">Blendid</a> - One build tool to rule them all?</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://js13kgames.com/entries/amaz3d">AMAZ3D</a> - Amazing game in only 13k.</li>
</ul>
]]></content></entry><entry><title>JSter #102: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-102"></link><id>jster-102</id><published>2017-09-16T02:47:55.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>There's no time like JavaScript time.</p>
</blockquote>
<p>Time goes fast when you are having fun. I spent a week in Israel and wrote about my <a class="underline" href="https://survivejs.com/blog/react-next-2017/">experiences on React Next 2017</a>. In short, it's a great event worth visiting.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/automat/controlkit.js">https://github.com/automat/controlkit.js</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/automat/controlkit.js">automat/controlkit.js</a> - A lightweight controller and GUI library.</li>
<li><a class="underline" href="https://michalsnik.github.io/aos/">AOS</a> - Animate on scroll library.</li>
<li><a class="underline" href="http://scrollmagic.io/">ScrollMagic</a> - Magical scroll interactions.</li>
<li><a class="underline" href="https://unifiedjs.github.io/">unified</a> - An interface for processing text with syntax trees and transforming between them.</li>
<li><a class="underline" href="https://pressurejs.com/">Pressure.js</a> - Handle different touch interfaces through a single interface.</li>
<li><a class="underline" href="https://github.com/FormidableLabs/freactal">Freactal</a> - State management for React and React-like libraries.</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://zapier.com/engineering/how-to-build-redux/">Build Yourself a Redux</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/dailyjs/js-in-css-df4cf8b9b96c">Importing CSS as React/Preact components with webpack and unicorns</a></li>
<li><a class="underline" href="https://medium.com/@mikeal/modern-modules-d99b6867b8f1">Modern Modules in Node</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/frint-interview/">FrintJS - Build reactive applications with React and RxJS</a> - Interview with Fahad Ibnay Heylaal.</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/tkh44/babel-plugin-sitrep">tkh44/babel-plugin-sitrep</a> - Log all assignments and the return value of a function with a simple comment.</li>
<li><a class="underline" href="https://prepack.io/">Prepack</a> - A tool for making JavaScript code run faster.</li>
<li><a class="underline" href="https://code.facebook.com/posts/274518539716230">Yarn 1.0</a> - Workspaces and other goodies.</li>
</ul>
]]></content></entry><entry><title>JSter #101: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-101"></link><id>jster-101</id><published>2017-09-04T14:36:52.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>I like my JavaScript with vanilla.</p>
</blockquote>
<p>Third euro tour of the year is on-going. Busy days! I might see some of you at <a class="underline" href="http://react-next.com/">ReactNext</a> or <a class="underline" href="https://www.webexpo.net/">WebExpo</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/evilsoft/crocks">https://github.com/evilsoft/crocks</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/evilsoft/crocks">evilsoft/crocks</a> - A collection of well known Monadic Containers for your utter enjoyment.</li>
<li><a class="underline" href="https://jessekorzan.github.io/expodal/">explodal</a> - The Most Explosive Modal on the Web.</li>
<li><a class="underline" href="https://noobscroll.js.org/">NoobScroll</a> - A lightweight jQuery Plugin that adds some cool function to make scrolling more fun.</li>
<li><a class="underline" href="https://ramon.codes/projects/zuck.js/">zuck.js</a> - Facebook Stories. Kind of.</li>
<li><a class="underline" href="http://engineering.wingify.com/across-tabs/introduction.html">across-tabs</a> - Easily communicate among browser tabs (supports cross-origin).</li>
<li><a class="underline" href="http://snapsvg.io/">Snap.svg</a> - The JavaScript SVG library for the modern web.</li>
<li><a class="underline" href="https://dev-blog.apollodata.com/apollo-client-1-0-a-flexible-community-focused-javascript-graphql-client-2253b90e6c84">Apollo Client 1.0</a> - A flexible, community-focused JavaScript GraphQL client.</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2017/04/fathom-a-framework-for-understanding-web-pages/">Fathom</a> - A framework for understanding web pages.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@kdzwinel/filling-the-api-gaps-with-creativity-d20a28c13b14">Filling the API gaps with creativity</a></li>
<li><a class="underline" href="https://survivejs.com/webpack/what-is-webpack/">What is Webpack</a></li>
<li><a class="underline" href="https://medium.com/walmartlabs/the-benefits-of-server-side-rendering-over-client-side-rendering-5d07ff2cefe8">The Benefits of Server Side Rendering Over Client Side Rendering</a></li>
<li><a class="underline" href="https://snyk.io/blog/77-percent-of-sites-use-vulnerable-js-libraries">77% of sites use at least one vulnerable JavaScript library</a></li>
<li><a class="underline" href="https://javascript.info/ninja-code">Ninja code</a> - Are you a Ninja coder?</li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://mythbusters.js.org/#/">JS MythBusters</a> - A JavaScript optimization handbook from a high level point of view.</li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/neutrino-interview/">Neutrino - Create modern JavaScript applications with minimal configuration - Interview with Eli Perelman</a></li>
<li><a class="underline" href="https://survivejs.com/blog/idyll-interview/">Idyll - Narratives for the web - Interview with Matthew Conlen</a></li>
<li><a class="underline" href="https://koodiasuomesta.fi/en/interview-with-finnish-code-ambassador-of-2017-juho-vepsalainen/">Interview with Finnish Code Ambassador of 2017, Juho Vepsäläinen</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.npmjs.com/package/puppeteer">puppeteer</a> - A high-level API for headless Chrome.</li>
<li><a class="underline" href="http://reactide.io/">Reactide</a> - A dedicated IDE for React application development.</li>
</ul>
]]></content></entry><entry><title>JSter #100: Libraries, articles, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-100"></link><id>jster-100</id><published>2017-08-17T10:42:02.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>I see JavaScript people.</p>
</blockquote>
<p>My third Euro tour is progressing in hot Vienna. This has been a good time for me to relax a bit before further challenges (two major talks next month). Incidentally this is the hundredth post to this list!</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/harc/ohm">https://github.com/harc/ohm</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/harc/ohm">harc/ohm</a> - A library and language for building parsers, interpreters, compilers, etc.</li>
<li><a class="underline" href="https://feathersjs.com/">Feathers</a> - An open source REST and realtime API layer for modern applications.</li>
<li><a class="underline" href="https://github.com/PolymerLabs/lit-html">PolymerLabs/lit-html</a> - HTML template literals in JavaScript.</li>
<li><a class="underline" href="https://github.com/wooorm/refractor">wooorm/refractor</a> - Lightweight, robust, elegant virtual syntax highlighting using Prism.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/dailyjs/javascript-framework-battle-hello-world-in-each-cli-cfdba8bf5e4b">JavaScript Framework Battle: ‘Hello World’ in each Command-line interface</a></li>
<li><a class="underline" href="https://github.com/myshov/history-of-javascript">myshov/history-of-javascript</a> - History of JavaScript.</li>
<li><a class="underline" href="https://github.com/vasanthk/react-bits">vasanthk/react-bits</a> - React patterns, techniques, tips and tricks.</li>
<li><a class="underline" href="http://das.encs.concordia.ca/blog/why-do-developers-use-trivial-packages-npm/">Have we forgotten how to program…</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2017/03/why-webassembly-is-faster-than-asm-js/">Why WebAssembly is Faster Than asm.js</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://staltz.com/cold-and-hot-callbacks.html">Cold and hot callbacks</a> - Understand the difference.</li>
<li><a class="underline" href="https://medium.com/dailyjs/react-is-slow-react-is-fast-optimizing-react-apps-in-practice-394176a11fba">React is Slow, React is Fast: Optimizing React Apps in Practice</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2017/08/intersection-observer-comes-to-firefox/">Intersection Observer comes to Firefox</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2017/03/a-practitioners-perspective-on-a-frame-interview-with-roland-dubois/">A practitioner’s perspective on A-Frame - Interview with Roland Dubois</a></li>
<li><a class="underline" href="https://survivejs.com/blog/nextjs-interview/">Next.js - Framework for server-rendered React apps - Interview with Arunoda Susiripala</a></li>
<li><a class="underline" href="https://survivejs.com/blog/rekit-interview/">Rekit - Toolkit for building scalable React applications - Interview with Nate Wang</a></li>
<li><a class="underline" href="https://survivejs.com/blog/redux-first-router-interview/">Redux-First Router - Just dispatch actions - Interview with James Gillmore</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@tjholowaychuk/up-b3db1ca930ee">Up by TJ Holowaychuk</a> - Easier Serverless.</li>
<li><a class="underline" href="https://github.com/babel/babel/releases/tag/v7.0.0-alpha.19">Babel v7.0.0-alpha.19</a></li>
<li><a class="underline" href="https://runkit.com">RunKit is Node prototyping</a> - Prototype and explore your ideas.</li>
</ul>
]]></content></entry><entry><title>JSter #99: Libraries, articles, interviews, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-99"></link><id>jster-99</id><published>2017-08-01T05:33:44.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Toto, I've a feeling we're not in JavaScript anymore.</p>
</blockquote>
<p>My <a class="underline" href="https://survivejs.com/blog/fall-tour/">Fall Tour</a> is on its way. I'm running especially <a class="underline" href="https://survivejs.com/clinic/">webpack clinics</a> where people get a quick overview of the topic while gaining solutions to their specific problems.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/haltu/muuri">https://github.com/haltu/muuri</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.npmjs.com/package/idx">idx</a> - A utility function for traversing properties on objects and arrays.</li>
<li><a class="underline" href="https://smallwins.github.io/spacetime/">spacetime</a> - Manage timezones.</li>
<li><a class="underline" href="https://haltu.github.io/muuri/">Muuri</a> - MIT-licensed alternative to Masonry.</li>
<li><a class="underline" href="https://www.npmjs.com/package/upring">upring</a> - Application-level sharding for Node based on streams.</li>
</ul>
<a href="#architectures"><h2 class="inline" id="architectures">Architectures</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://sam.js.org/">SAM</a> - State-Action-Model, a new reactive/functional pattern that simplifies front-end architectures.</li>
</ul>
<a href="#programming-languages"><h2 class="inline" id="programming-languages">Programming Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://vvvvjs.com/">VVVV.js</a> - The visual programming language for the browser.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2017/03/why-webassembly-is-faster-than-asm-js/">Why WebAssembly is Faster Than asm.js</a></li>
<li><a class="underline" href="https://medium.com/@asolove/preact-internals-1-the-easy-parts-3a081fa36205">Preact internals #1: the easy parts</a></li>
<li><a class="underline" href="https://benmccormick.org/2017/07/19/ten-things-javascript/">Ten Things A Serious JavaScript Developer Should Learn</a></li>
</ul>
<a href="#cheat-sheets"><h2 class="inline" id="cheat-sheets">Cheat Sheets</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://websitesetup.org/jquery-cheat-sheet/">jQuery Cheat Sheet (png, pdf)</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://mo.github.io/2017/07/20/javascript-e2e-integration-testing.html">JavaScript tools for end-to-end testing web applications</a></li>
<li><a class="underline" href="http://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html">What's up with monomorphism?</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/documentationjs-interview/">documentation.js - The documentation system for modern JavaScript - Interview with Tom MacWright</a></li>
<li><a class="underline" href="https://survivejs.com/blog/rill-interview/">Rill - Universal web application framework - Interview with Dylan Piercey</a></li>
<li><a class="underline" href="https://survivejs.com/blog/dll-interview/">d-l-l - Easy, automatic, optimized DLL config handler for webpack - Interview with James Wiens</a></li>
<li><a class="underline" href="https://survivejs.com/blog/material-ui-interview/">Material-UI - React Components that Implement Google's Material Design - Interview with Olivier Tassinari</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2017/07/introducing-sphinx-js-a-better-way-to-document-large-javascript-projects/">Introducing sphinx-js, a better way to document large JavaScript projects</a></li>
<li><a class="underline" href="https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b">Introducing npx: an npm package runner</a></li>
<li><a class="underline" href="http://codecept.io/changelog/">CodeceptJS 1.0</a> - The popular acceptance testing tool has reached a major milestone.</li>
<li><a class="underline" href="https://csstriggers.com/">CSS Triggers</a> - Figure out what triggers a reflow.</li>
</ul>
]]></content></entry><entry><title>JSter #98: Libraries, techniques, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-98"></link><id>jster-98</id><published>2017-07-18T04:05:21.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>You can't handle the JavaScript!</p>
</blockquote>
<p>I managed to complete my second tour of Europe. The third one is near. This time around I'll spend a whole month at Vienna running <a class="underline" href="https://survivejs.com/clinic/">webpack and React clinics</a>. After that I'll head to <a class="underline" href="http://react-next.com/">ReactNext</a> and <a class="underline" href="https://www.webexpo.net/">WebExpo</a>. Busy months.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/ladda-js/ladda">https://github.com/ladda-js/ladda</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jaredreich.com/pell">pell</a> - The simplest and smallest WYSIWYG text editor for web, with no dependencies.</li>
<li><a class="underline" href="https://trackingjs.com/">tracking.js</a> - A modern approach for Computer Vision on the web.</li>
<li><a class="underline" href="http://ac-d3.com/">AC-D3</a> - A JavaScript Library for Building Audiovisual Charts in D3.</li>
<li><a class="underline" href="https://github.com/ladda-js/ladda">GitHub</a> - JavaScript data fetching layer with caching.</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://form.js.org/">Form JS Framework</a> - A Classic Form Styling With Ease</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://tomdale.net/2017/07/adventures-in-microbenchmarking/">Adventures in Microbenchmarking</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.vizitsolutions.com/portfolio/webgl/gpgpu/index.html">Unleash Your Inner Supercomputer</a> - Or how to handle WebGL and GPGPU.</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://benediktmeurer.de/2017/07/14/faster-collection-iterators/">Faster Collection Iterators</a></li>
<li><a class="underline" href="http://benediktmeurer.de/2017/06/29/javascript-optimization-patterns-part2/">JavaScript Optimization Patterns (Part 2)</a></li>
<li><a class="underline" href="https://hackernoon.com/a-tale-of-javascript-performance-61c282f89f2a">Intuition Engineering and the Chrome Heap Profile</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/dont-break-interview/">dont-break interview with Gleb Bahmutov</a></li>
<li><a class="underline" href="https://survivejs.com/blog/rollup-interview/">Rollup interview with Rich Harris</a></li>
<li><a class="underline" href="https://survivejs.com/blog/jss-interview/">JSS interview with Oleg Slobodskoi</a></li>
<li><a class="underline" href="https://survivejs.com/blog/renovate-interview/">renovate interview with Rhys Arkins</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/sapegin/jest-cheat-sheet">sapegin/jest-cheat-sheet</a></li>
<li><a class="underline" href="https://nextein.now.sh/">Nextein</a> - A static site generator built on top of Next.js.</li>
<li><a class="underline" href="https://engineering.policygenius.com/easy-contract-tests-with-eslint-plugin-graphql-4b139ecbd0d8">Easy Contract Tests with eslint-plugin-graphql</a></li>
<li><a class="underline" href="https://www.npmjs.com/package/butternut">butternut</a> - Experimental ES6 minifier.</li>
<li><a class="underline" href="https://engineering.hexacta.com/why-arent-you-using-prettier-4fe0a77713e8">Why aren’t you using Prettier?</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.slideshare.net/epoberezkin/auditing-development-guidelines-in-github-repositories">Auditing Development Guidelines in GitHub Repositories</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://aem1k.com/symmetry/">Symmetric JavaScript</a></li>
</ul>
]]></content></entry><entry><title>JSter #97: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-97"></link><id>jster-97</id><published>2017-07-02T13:56:30.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>It takes two to JavaScript</p>
</blockquote>
<p>The <a class="underline" href="https://survivejs.com/blog/euro-summer-tour-2017/">Summer tour</a> is nearing its end. Only Augsburg and London remain before a short visit to Finland.</p>
<p>Third tour is already being planned. It will likely begin from Vienna in form of <a class="underline" href="https://survivejs.com/clinic/">webpack clinics</a> at <a class="underline" href="https://survivejs.doodle.com/poll/mihayszmt5teb858">the end of July</a>. A clinic is a supercharged version of <a class="underline" href="https://survivejs.com/workshop/">my workshops</a>. You will learn a lot about webpack in a two hour intense session as I walk you through my material in a small group.</p>
<p>I'm also going to participate in <a class="underline" href="https://www.webexpo.net/prague2017/">WebExpo2017</a> in September (22-23rd). It's great to return to Prague again.</p>
<p>PS. There's a <a class="underline" href="https://survivejs.com/blog/hardcover-webpack-book/">hard-cover Edition of the webpack Book</a> available now.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/mapbox/polylabel">https://github.com/mapbox/polylabel</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/mapbox/polylabel">mapbox/polylabel</a> - A fast algorithm for finding the pole of inaccessibility of a polygon</li>
<li><a class="underline" href="https://github.com/steffest/bassoontracker">steffest/bassoontracker</a> - Web based old-school Amiga music tracker in plain old JavaScript</li>
<li><a class="underline" href="https://www.npmjs.com/package/renovate">renovate</a> - Keep npm dependencies up-to-date</li>
<li><a class="underline" href="https://emotion.now.sh/">emotion</a> - High performance JavaScript for your CSS</li>
<li><a class="underline" href="https://github.com/faceyspacey/redux-first-router#the-gist">faceyspacey/redux-first-router</a> - Seamless Redux-first routing</li>
</ul>
<a href="#animation"><h2 class="inline" id="animation">Animation</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://alexk111.github.io/SVG-Morpheus/">SVG Morpheus</a> - JavaScript library enabling SVG icons to morph from one to the other</li>
<li><a class="underline" href="https://github.com/veltman/flubber">veltman/flubber</a> - Tools for smoother shape animations</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@WebReflection/dom-handleevent-a-cross-platform-standard-since-year-2000-5bf17287fd38">DOM handleEvent: a cross-platform standard since year 2000</a></li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://adactio.com/journal/12461">Progressing the web</a></li>
<li><a class="underline" href="https://hackernoon.com/functional-programming-in-javascript-is-an-antipattern-58526819f21e">Functional programming in Javascript is an antipattern</a></li>
<li><a class="underline" href="https://medium.com/seek-blog/a-unified-styling-language-d0c208de2660">A Unified Styling Language</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/most-interview/">Most.js</a> - Monadic streams for reactive programming - Interview with Brian Cavalier</li>
<li><a class="underline" href="https://survivejs.com/blog/react-alicante-interview/">React Alicante</a> - The international React.js conference in Spain - Interview with Victoria Quirante</li>
<li><a class="underline" href="https://survivejs.com/blog/junior-interview/">Working with Junior Developers</a> - Interview with Aimee Knight</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/webpack/webpack/releases/tag/v3.0.0">webpack v3</a></li>
<li><a class="underline" href="https://mimic.js.org/">Mimic</a> - Seamless Client Side Mocks</li>
<li><a class="underline" href="https://www.iotacss.com/">iotaCSS</a> - Smart open source SASS based OOCSS framework built for scale</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://roman01la.github.io/js-memory-usage/">Data Structures Memory Usage in JavaScript</a></li>
<li><a class="underline" href="https://aiexperiments.withgoogle.com/sketch-rnn-demo">Sketch-RNN Demos</a> - Draw together with a neural network</li>
<li><a class="underline" href="https://hnpwa.com/">HNPWA</a> - Hacker News as a PWA against different technologies</li>
</ul>
]]></content></entry><entry><title>JSter #96: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-96"></link><id>jster-96</id><published>2017-06-17T14:26:05.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Every day is a JavaScript day</p>
</blockquote>
<p><a class="underline" href="https://survivejs.com/blog/euro-summer-tour-2017/">The Summer tour</a> is progressing. I still have a few cities left including Vienna, Augsburg (also München during the visit), and London.</p>
<blockquote>
<p>My webpack book is available as a <a class="underline" href="https://survivejs.typeform.com/to/LUQK0T">hard cover edition</a> which includes 30 minutes of consulting. Price - $100 for one, $150 for two including shipping and VAT (no surprises).</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/whackashoe/antimoderate">https://github.com/whackashoe/antimoderate</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/whackashoe/antimoderate">whackashoe/antimoderate</a> - The progressive image loading library for great good.</li>
<li><a class="underline" href="https://github.com/erikolson186/zangodb">erikolson186/zangodb</a> - MongoDB-like interface for HTML5 IndexedDB.</li>
<li><a class="underline" href="https://github.com/gmattie/Data-Pixels">gmattie/Data-Pixels</a> - Create pixel art programmatically.</li>
<li><a class="underline" href="https://github.com/adamhaile/S">adamhaile/S</a> - Simple, clean, fast reactive programming in JavaScript.</li>
<li><a class="underline" href="https://github.com/xaviergonz/makfy">xaviergonz/makfy</a> - npm scripts on steroids.</li>
<li><a class="underline" href="http://inversify.io/">InversifyJS</a> - A powerful IoC container for JavaScript apps powered by TypeScript.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://webkit.org/blog/6682/improving-color-on-the-web/">Improving Color on the Web</a> - This looks great on a retina display.</li>
<li><a class="underline" href="https://medium.com/the-thinkmill/javascripts-new-private-class-fields-93106e37647a">JavaScript’s new #private class fields</a> - I'm not so sure of this direction.</li>
<li><a class="underline" href="https://sonniesedge.co.uk/blog/a-day-without-javascript">A day without Javascript</a> - Worse than you can imagine.</li>
<li><a class="underline" href="https://yarnpkg.com/blog/2017/05/31/determinism/">Yarn determinism</a> - Or how it's different than npm 5 and why.</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hackernoon.com/neural-networks-from-scratch-for-javascript-linguists-part1-the-perceptron-632a4d1fbad2">Neural networks from scratch for JavaScript linguists (Part 1</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hackernoon.com/11-things-i-learned-reading-the-flexbox-spec-5f0c799c776b">11 things someone learned reading the flexbox spec</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/vx-interview/">vx - The Power of D3 with the Benefits of React - Interview with Harrison Shoff</a></li>
<li><a class="underline" href="https://survivejs.com/blog/unmarshaller-interview/">unmarshaller - Toolbox for configuration - Interview with Sven Sauleau</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://eslint.org/blog/2017/06/eslint-v4.0.0-released">ESLint v4.0.0</a></li>
<li><a class="underline" href="https://blog.risingstack.com/important-features-fixes-node-js-version-8/">The Important Features and Fixes of Node.js Version 8</a></li>
<li><a class="underline" href="https://github.com/bahmutov/rambo">bahmutov/rambo</a> - Automatic Ramda solution bot.</li>
</ul>
]]></content></entry><entry><title>JSter #95: Tour, libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-95"></link><id>jster-95</id><published>2017-06-03T02:30:51.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript me if you can.</p>
</blockquote>
<p>It's time to tour the Europe again! I'll be spending roughly two months on the road and visit at least Slovakia, Germany, Austria, and the UK. I may add more countries to the <a class="underline" href="https://survivejs.com/blog/euro-summer-tour-2017/">tour schedule</a> depending on the interest.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/sindresorhus/copy-text-to-clipboard">https://github.com/sindresorhus/copy-text-to-clipboard</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/sindresorhus/copy-text-to-clipboard">sindresorhus/copy-text-to-clipboard</a> - Copy text easily to clipboard through JavaScript.</li>
<li><a class="underline" href="https://polished.js.org/">polished</a> - A lightweight toolset for writing styles in JavaScript.</li>
<li><a class="underline" href="https://github.com/calmm-js/partial.lenses">calmm-js/partial.lenses</a> - Partial lenses is a comprehensive, high-performance optics library for JavaScript.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/webpack/the-state-of-javascript-modules-4636d1774358">The state of JavaScript modules</a></li>
</ul>
<a href="#graphics"><h2 class="inline" id="graphics">Graphics</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://magcius.github.io/xplain/article/rast1.html">Xplain</a> - X11 rendering explained through JavaScript.</li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://minicss.org/">mini.css</a> - Minimal, responsive, style-agnostic CCS framework.</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://peterbeshai.com/beautifully-animate-points-with-webgl-and-regl.html">Beautifully Animate Points with WebGL and regl</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/popper-interview/">Popper.js - Easy Tooltips and Popovers - Interview with Federico Zivolo</a></li>
<li><a class="underline" href="https://survivejs.com/blog/es-modules-interview/">ES Modules - Interview with Bradley Farias</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jaredforsyth.com/type-systems-js-dev/">Type systems will make you a better JavaScript programmer</a></li>
<li><a class="underline" href="http://presentations.survivejs.com/forms-in-react/">Forms in React</a></li>
<li><a class="underline" href="http://slides.com/malyw/houdini-codemotion#/">CSS Houdini- the bridge between CSS, JavaScript and the browser by Serg Hospodarets</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://nodejs.org/en/">Node.js 8.0</a></li>
<li><a class="underline" href="http://www.cdglabs.org/Shadershop/">Shadershop</a> - Build awesome math functions easily.</li>
<li><a class="underline" href="https://github.com/bower/bower/issues/2298#issuecomment-289846310">Consider deprecating Bower</a> - Time to move on.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://codepen.io/stefanweck/full/Vbgeax/">CodePen</a> - Water droplet WebGL shader.</li>
</ul>
]]></content></entry><entry><title>JSter #94: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-94"></link><id>jster-94</id><published>2017-05-16T11:25:03.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Frankly, my dear, I don't give a JavaScript</p>
</blockquote>
<p>I'm preparing my next Euro tour right now. The plan is to keep this more casual with time for potential clients. I'll be spending my time in Slovakia, Germany, Austria, and Great Britain and will have time for providing <a class="underline" href="https://survivejs.com/training/">webpack and React training</a>. A few have booked already.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/samknows/transform-when">https://github.com/samknows/transform-when</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/samknows/transform-when">transform-when</a> - Animate combining page position and time.</li>
<li><a class="underline" href="https://github.com/cerebral/marksy">marksy</a> - Render Markdown in React.</li>
<li><a class="underline" href="http://nanogallery2.nanostudio.org/">nanogallery2</a> - A light gallery.</li>
<li><a class="underline" href="https://alvarotrigo.com/fullPage/">fullPage.js</a> - One page scroll sections.</li>
<li><a class="underline" href="https://github.com/pegjs/pegjs/issues/503">pegjs is looking for a new maintainer</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@okonetchnikov/is-css-in-js-really-bad-for-ux-e9cce7b2da83">Is CSS-in-JS really bad for UX – Andrey Okonetchnikov</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2017/05/debugger-html-call-stack-improvements/">Debugger.html Call Stack Improvements</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://andyshora.com/easy-paper-js-tutorial.html">The Easy Paper.js Tutorial, building flat animated shapes with @PaperJS</a></li>
<li><a class="underline" href="https://medium.com/@graeme_boy/how-to-optimize-cpu-intensive-work-in-node-js-cdc09099ed41">How to Optimize CPU-Intensive Work in Node.js</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/async-reactor-interview/">async-reactor interview with Sven Sauleau</a> - Easy async components for React.</li>
<li><a class="underline" href="https://survivejs.com/blog/webpackbin-interview/">WebpackBin interview with Christian Alfoni</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://presentations.survivejs.com/re-imagining-webpack/">Re-imagining Webpack</a> - Slides from my overview talk of webpack and how it has evolved.</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.npmjs.com/package/uglify-es">uglify-es</a> - ES6 support for UglifyJS 3.</li>
<li><a class="underline" href="https://github.com/zeit/pkg">pkg</a> - Package your Node.js project into an executable.</li>
</ul>
<a href="#benchmarks"><h2 class="inline" id="benchmarks">Benchmarks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/JamieMason/npm-cache-benchmark">npm-cache-benchmark</a> - Yarn vs. npm5</li>
</ul>
<a href="#boilerplates"><h2 class="inline" id="boilerplates">Boilerplates</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/MatteoGabriele/create-npm-package">create-npm-package</a> - A starting point for npm packages.</li>
</ul>
]]></content></entry><entry><title>JSter #93: Techniques, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-93"></link><id>jster-93</id><published>2017-05-03T12:24:16.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>The search for JavaScript.</p>
</blockquote>
<p>The euro tour is finally over. I saw more cities than I can remember and learned a lot about Europe. You can learn more from my <a class="underline" href="https://survivejs.com/blog/euro-tour-2017-recap/">tour recap post</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/sindresorhus/promise-fun">https://github.com/sindresorhus/promise-fun</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jsbros.github.io/hedron/">Hedron</a> - A no-frills grid system for minimalists.</li>
<li><a class="underline" href="https://github.com/sindresorhus/promise-fun">sindresorhus/promise-fun</a> - Promise packages, patterns, chat, and tutorials.</li>
<li><a class="underline" href="https://github.com/MatteoGabriele/vue-analytics">MatteoGabriele/vue-analytics</a> - Vue plugin for Google Analytics</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@vladimirmetnew/history-of-spa-frameworks-angularjs-1-x-and-nostalgia-2e4a00df5ee2">History of SPA frameworks: AngularJS 1.x and nostalgia.</a></li>
<li><a class="underline" href="http://janhuenermann.com/projects/learning-to-drive">Self-driving cars in the browser</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://developers.google.com/web/updates/2017/04/headless-chrome">Getting Started with Headless Chrome</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://innolitics.com/10x/javascript-decorators-for-promise-returning-functions/">Decorating Async Javascript Functions</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2017/03/doubling-down-on-cross-browser-testing/">Doubling Down on Cross-Browser Testing</a></li>
<li><a class="underline" href="http://blog.rangle.io/refactoring-node-with-higher-order-functions/">Refactoring Node with Higher-Order Functions</a></li>
<li><a class="underline" href="https://nolanlawson.github.io/offlinefirst-2016-03/">IndexedDB: the good parts</a></li>
<li><a class="underline" href="http://www.christianalfoni.com/articles/2017_04_16_The-second-case-for-function-tree">The second case for function tree</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/codesandbox-interview/">CodeSandbox - Online React Playground - Interview with Ives van Hoorne</a></li>
<li><a class="underline" href="https://survivejs.com/blog/fluture-interview/">Fluture - Fantasy Land compliant alternative to Promises - Interview with Aldwin Vlasblom</a></li>
<li><a class="underline" href="https://survivejs.com/blog/scrimba-interview/">Scrimba - Interactive Screencasts Created in an Instant - Interview with Per Harald Borgen</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@kitze/introducing-sizzy-a-tool-for-developing-responsive-websites-crazy-fast-39a8c0061992">Sizzy</a> - A tool for developing responsive websites crazy-fast.</li>
<li><a class="underline" href="https://github.com/MRokas/SmartDebug.JS">MRokas/SmartDebug.JS</a> - Next-generation debugging through Stack Overflow.</li>
<li><a class="underline" href="https://pnpm.js.org/">pnpm</a> - Fast, disk space efficient package manager.</li>
<li><a class="underline" href="https://hackernoon.com/tools-for-radicals-73b7cbbfc276">Tools for Radicals</a></li>
<li><a class="underline" href="https://medium.com/@mbostock/a-better-way-to-code-2b1d2876a3a0">d3.express - A better way to code</a></li>
</ul>
]]></content></entry><entry><title>JSter #92: Libraries, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-92"></link><id>jster-92</id><published>2017-04-16T10:34:09.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript another day.</p>
</blockquote>
<p>My tour is half-way through and it has been a wild ride so far. A lot of work remains of course, but we'll see. I hope to have something to announce in the next post. :)</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/origamitower/folktale">https://github.com/origamitower/folktale</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/origamitower/folktale">origamitower/folktale</a> - A standard library for functional programming in JavaScript</li>
<li><a class="underline" href="https://lychee.js.org/">lychee.js</a> - Next-Gen Isomorphic Application Engine</li>
<li><a class="underline" href="https://github.com/dropbox/zxcvbn">dropbox/zxcvbn</a> - Low-Budget Password Strength Estimation</li>
<li><a class="underline" href="https://hackernoon.com/sazerac-data-driven-testing-for-javascript-e3408ac29d8c">Sazerac</a> - Data-driven Testing for JavaScript</li>
</ul>
<a href="#ui-libraries"><h2 class="inline" id="ui-libraries">UI Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://moonjs.ga/">Moon</a> - A minimal, blazing fast user interface library</li>
<li><a class="underline" href="https://github.com/WebReflection/viperHTML">WebReflection/viperHTML</a> - Isomorphic hyperHTML. Another light option.</li>
<li><a class="underline" href="https://ant.design/">Ant Design</a> - A UI design language and components for React</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://mjml.io/">MJML</a> - Easy responsive emails</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.contentful.com/blog/2017/04/04/es6-modules-support-lands-in-browsers-is-it-time-to-rethink-bundling/">ES6 modules support lands in browsers: is it time to rethink bundling?</a></li>
<li><a class="underline" href="https://medium.com/reloading/javascript-start-up-performance-69200f43b201">JavaScript Start-up Performance</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jvandemo.com/a-10-minute-primer-to-javascript-modules-module-formats-module-loaders-and-module-bundlers/">A 10 minute primer to JavaScript modules, module formats, module loaders and module bundlers</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://marcobotto.com/compiling-and-bundling-typescript-libraries-with-webpack/">Compiling and bundling TypeScript libraries with webpack</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/sanctuary-interview/">Sanctuary interview</a> - A refuge from unsafe JavaScript.</li>
<li><a class="underline" href="https://survivejs.com/blog/rambda-interview/">Rambda interview</a> - Like Ramda (FP library) but leaner and meaner.</li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://presentations.survivejs.com/re-imagining-webpack/">Re-imagining Webpack</a> - Or how I discovered webpack and what consequences that had.</li>
</ul>
<a href="#collections"><h2 class="inline" id="collections">Collections</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/sindresorhus/promise-fun">sindresorhus/promise-fun</a> - Promise packages, patterns, chat, and tutorials</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/lahmatiy/component-inspector">lahmatiy/component-inspector</a> - Component DOM inspector</li>
<li><a class="underline" href="https://github.com/tunz/js-vuln-db">tunz/js-vuln-db</a> - A collection of JavaScript engine CVEs with PoCs</li>
</ul>
]]></content></entry><entry><title>JSter #91: Libraries, tutorials, and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-91"></link><id>jster-91</id><published>2017-04-01T02:20:25.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>A JavaScript. Shaken, not stirred.</p>
</blockquote>
<p>It was busy two weeks again. I finally managed to get my <a class="underline" href="https://survivejs.com/blog/survivejs-webpack-20/">webpack book out there</a> and it is now <a class="underline" href="https://www.amazon.com/dp/9526868803">available as a paperback</a>. <a class="underline" href="https://survivejs.com/blog/euro-tour-2017/">The euro tour</a> begins properly next week. Austria (Vienna) was added to the schedule.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/rafaelrinaldi/group-by">https://github.com/rafaelrinaldi/group-by</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://glimmerjs.com/">Glimmer</a> - Fast and light-weight UI components for the web. Extracted from Ember.</li>
<li><a class="underline" href="https://redom.js.org/">RE:DOM</a> - Tiny (2 KB) turbo-boosted JavaScript library for creating user interfaces.</li>
<li><a class="underline" href="http://sinonjs.org/">Sinon.JS 2</a> - The popular mocking library has reached a new major version.</li>
<li><a class="underline" href="http://hackjutsu.com/Lepton/">Lepton</a> - A Lean GitHub Gist Client</li>
<li><a class="underline" href="https://github.com/rafaelrinaldi/group-by">rafaelrinaldi/group-by</a> - Group a list of objects by a given field name.</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://angularjs.blogspot.fi/2017/03/angular-400-now-available.html">Angular 4.0</a></li>
<li><a class="underline" href="https://frint.js.org/">Frint</a> - The Modular JavaScript Framework.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.chromium.org/2017/03/faster-3d-rendering-with-webgl-20.html">Chromium Blog: Faster 3D rendering with WebGL 2.0</a></li>
<li><a class="underline" href="https://medium.com/webpack/ag-grid-partners-with-webpack-24f8cf9d890b">ag-Grid Partners With webpack</a> - A new way to sponsor open source projects?</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://javascript.info/">The modern JavaScript tutorial</a> - The original Russian one was translated to English.</li>
<li><a class="underline" href="https://hackernoon.com/6-reasons-why-javascripts-async-await-blows-promises-away-tutorial-c7ec10518dd9">6 Reasons Why JavaScript’s Async/Await Blows Promises Away</a></li>
<li><a class="underline" href="https://blog.nrwl.io/managing-state-in-angular-applications-22b75ef5625f">Managing State in Angular Applications</a></li>
<li><a class="underline" href="https://blog.hellojs.org/ava-low-config-testing-for-javascript-71bd2d958745">AVA, low-config testing for JavaScript</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.manifoldjs.com/">manifoldJS</a> - A simple way to create hosted apps across platforms and devices.</li>
<li><a class="underline" href="https://github.com/juliangruber/travis-watch">juliangruber/travis-watch</a> - Stream live Travis results to your terminal.</li>
<li><a class="underline" href="https://github.com/verdaccio/verdaccio">verdaccio</a> - Private npm repository server. A successor of Sinopia.</li>
</ul>
]]></content></entry><entry><title>JSter #90: Libraries, articles, and doodads</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-90"></link><id>jster-90</id><published>2017-03-18T04:12:40.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Gone with the JavaScript.</p>
</blockquote>
<p>Interesting times. The webpack book has reached a release candidate version you can <a class="underline" href="https://survivejs.com/webpack/introduction/">study online</a>. Almost 70,000 words and over 30 chapters later, we are nearly there. I have a date in mind for the final release and to support it, I will have <a class="underline" href="https://survivejs.com/blog/euro-tour-2017/">a tour in Europe around April</a>. Countries include Finland, Norway, Germany, Czech, and Slovakia. I might see some of you there.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://cs.stanford.edu/people/karpathy/convnetjs/">https://cs.stanford.edu/people/karpathy/convnetjs/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@mlrawlings/marko-4-0-is-here-837884c5f60d">Marko 4.0</a> - Marko by eBay is a fast UI library designed server side rendering in mind. It's up to 5-50 times faster than other alternatives. It's not a direct replacement to React and such but still worth a look.</li>
<li><a class="underline" href="https://cs.stanford.edu/people/karpathy/convnetjs/">ConvNetJS</a> - Train Deep Learning models in your browser.</li>
<li><a class="underline" href="https://medium.com/@WebReflection/hyperhtml-a-virtual-dom-alternative-279db455ee0e">hyperHTML</a> - What happens when you build a UI library on top of ES6 templates? hyperHTML happens.</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@mattburgess/all-javascript-frameworks-are-terrible-e68d8865183e">All JavaScript frameworks are terrible</a> - Or are they?</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dev.to/sanjsanj/optimising-the-front-end-for-thebrowser">Optimising the front end for the browser</a> - The need for speed.</li>
<li><a class="underline" href="https://blog.google/products/chrome/experience-virtual-reality-web-chrome/">Experience Virtual Reality on the web with Chrome</a> - Virtual Reality is becoming a reality (pun intended) in browsers.</li>
</ul>
<a href="#parsing"><h2 class="inline" id="parsing">Parsing</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@chetcorcos/introduction-to-parsers-644d1b5d7f3d">Introduction to Parsers</a></li>
<li><a class="underline" href="https://medium.com/@gajus/parsing-absolutely-anything-in-javascript-using-earley-algorithm-886edcc31e5e">Parsing absolutely anything in JavaScript using Earley algorithm</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hackernoon.com/how-linting-and-eslint-improve-code-quality-fa83d2469efe">How linting and ESLint improve code quality</a></li>
<li><a class="underline" href="https://medium.com/@mweststrate/how-to-create-strongly-typed-npm-modules-1e1bda23a7f4">How to create strongly-typed npm packages</a></li>
<li><a class="underline" href="https://hackernoon.com/10-react-mini-patterns-c1da92f068c5">10 React mini-patterns</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.com/blog/code-quality-interview/">Code Quality Interview with João Caxaria</a> - What makes code good?</li>
<li><a class="underline" href="https://survivejs.com/blog/hyperapp-interview/">hyperapp Interview with Jorge Bucaran</a> - Learn more about this light UI library inspired by Elm.</li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/nhusher/asteroids">nhusher/asteroids</a> - 10k asteroids.</li>
<li><a class="underline" href="https://github.com/webrender/10ktower">webrender/10ktower</a> - Another 10k demo. Towers this time.</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://speedtracker.org/">SpeedTracker</a> - Monitor the performance of your site. What you don't measure you can't fix.</li>
<li><a class="underline" href="https://github.com/cs01/gdbgui/">cs01/gdbgui/</a> - A browser-based user interface for gdb.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://darioseyb.com/pathgraph/">Path Graph</a> - Visualizations for ray tracing algorithms.</li>
</ul>
]]></content></entry><entry><title>JSter #89: Libraries and bits</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-89"></link><id>jster-89</id><published>2017-03-02T03:25:35.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Not enough JavaScript.</p>
</blockquote>
<p>My <a class="underline" href="https://survivejs.com/blog/survivejs-webpack-19/">webpack book</a> is content complete now. Only tuning remains until it can hit the paper.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/developit/unfetch">https://github.com/developit/unfetch</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/developit/unfetch">developit/unfetch</a> - 0.5k polyfill for <code>fetch</code>.</li>
<li><a class="underline" href="https://animo.js.org/">Animo</a> - Manage transitions and animations through JavaScript.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://community.risingstack.com/the-worlds-fastest-javascript-memoization-library/">How Caio wrote the fastest JavaScript memoization library</a></li>
<li><a class="underline" href="http://mutanatum.com/posts/2017-01-12-Browser-FP-Head-to-Head.html">Selecting a platform</a> - Functional programming platforms duke it out.</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://rudiyardley.com/redux-single-line-of-code-rxjs/">Redux in a single line of code with RxJS</a></li>
<li><a class="underline" href="https://survivejs.com/webpack/techniques/testing/">Testing with Webpack</a> - A sneak peek at my book.</li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blogs.msdn.microsoft.com/typescript/2017/02/22/announcing-typescript-2-2/">Announcing TypeScript 2.2</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://mrale.ph/irhydra/2/">IRHydra</a> - Understand what V8 and Dart are doing.</li>
<li><a class="underline" href="https://facebook.github.io/jest/blog/2017/02/21/jest-19-immersive-watch-mode-test-platform-improvements.html">Jest 19</a> - Immersive Watch Mode & Test Platform Improvements</li>
<li><a class="underline" href="https://github.com/danger/danger-js">Danger.js</a> - Infrastructure level automation for projects.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://selfdrivingcars.mit.edu/deeptraffic/">DeepTraffic</a> - Traffic simulation with JavaScript.</li>
<li><a class="underline" href="https://anvaka.github.io/common-words/#">Most used words in programming languages</a> - Can you guess the most used words in JavaScript?</li>
</ul>
]]></content></entry><entry><title>JSter #88: Libraries and bits</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-88"></link><id>jster-88</id><published>2017-02-19T06:18:52.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Gone in the JavaScript.</p>
</blockquote>
<p>My <a class="underline" href="https://survivejs.com/blog/survivejs-webpack-18/">webpack book reached another milestone release</a>. This time around I put heavy focus on new content. There's still some left to develop, but it's getting close to paper.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/localForage/localForage">https://github.com/localForage/localForage</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/localForage/localForage">localForage</a> - Easy web storage.</li>
<li><a class="underline" href="http://mojs.io/">mo</a> - Motion graphics for the web.</li>
<li><a class="underline" href="https://tonejs.github.io/">Tone.js</a> - Interactive music in the browser.</li>
<li><a class="underline" href="https://aframe.io/">A-Frame</a> - WebVR made easy.</li>
<li><a class="underline" href="https://github.com/hyperapp/hyperapp">hyperapp</a> - 1k library for building JavaScript applications.</li>
<li><a class="underline" href="https://github.com/sudodoki/copy-to-clipboard">sudodoki/copy-to-clipboard</a> - Copy to clipboard using JavaScript.</li>
<li><a class="underline" href="https://github.com/bvaughn/js-search">bvaughn/js-search</a> - Efficient client-side search.</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://stemjs.org/">Stem.js</a> - The framework that tries not to be a framework.</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://rsms.me/wasm-intro">Introduction to WebAssembly</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/DAB0mB/radial-snake">DAB0mB/radial-snake</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://sokra.github.io/slides/webpack2/">webpack2 slides</a> by Tobias.</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://yoksel.github.io/pixel-glass-js/">Pixel Glass</a> - Check how your markup fits the design.</li>
<li><a class="underline" href="https://github.com/IonicaBizau/node-cobol">IonicaBizau/node-cobol</a> - Run COBOL from Node.</li>
<li><a class="underline" href="https://github.com/minimaxir/big-list-of-naughty-strings">minimaxir/big-list-of-naughty-strings</a> - For science.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/bastianallgeier/letter">bastianallgeier/letter</a> - Create letters in browser.</li>
</ul>
]]></content></entry><entry><title>JSter #87: Libraries and more</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-87"></link><id>jster-87</id><published>2017-02-04T10:55:05.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>The Good, the Bad, the JavaScript.</p>
</blockquote>
<p>A new version of the <a class="underline" href="http://survivejs.com/blog/survivejs-webpack-170/">SurviveJS webpack book</a> has arrived. The book is getting quite massive (around 330 pages), but the end result might be worth all the effort.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/nolanlawson/marky">https://github.com/nolanlawson/marky</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/nolanlawson/marky">nolanlawson/marky</a> - High-resolution JavaScript timer based on performance.mark() and measure().</li>
<li><a class="underline" href="https://skatejs.gitbooks.io/skatejs/content/">skatejs</a> - Write functional and performance web components.</li>
<li><a class="underline" href="https://ityped.surge.sh/">iType.js</a> - Simple typing animation.</li>
</ul>
<a href="#data-manipulation"><h2 class="inline" id="data-manipulation">Data Manipulation</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/sanctuary-js/sanctuary">sanctuary</a> - Refuge from unsafe JavaScript.</li>
<li><a class="underline" href="https://github.com/selfrefactor/rambda">selfrefactor/rambda</a> - Faster alternative to Ramda in just 7kB.</li>
<li><a class="underline" href="https://github.com/skaterdav85/validatorjs">skaterdav85/validatorjs</a> - A data validation library in JavaScript for the browser and Node.js, inspired by Laravel's Validator.</li>
</ul>
<a href="#data-structures"><h2 class="inline" id="data-structures">Data Structures</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/ide/mux">ide/mux</a> - A simple and convenient function that resolves promises in data structures like arrays, objects, Maps, and Sets.</li>
<li><a class="underline" href="https://github.com/pcbje/ggraph">pcbje/ggraph</a> - Graph visualization of big messy data.</li>
<li><a class="underline" href="https://yomguithereal.github.io/mnemonist/">Mnemonist</a> - Curated collection of data structures for the JavaScript language,</li>
</ul>
<a href="#routing"><h2 class="inline" id="routing">Routing</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://junctions.js.org/">junctions.js</a> - Simpler routing.</li>
</ul>
<a href="#state-management"><h2 class="inline" id="state-management">State Management</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@mweststrate/mobx-3-released-unpeeling-the-onion-ca877382f443">MobX 3</a> - Reactive state management.</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://mithril.js.org/">Mithril 1.0</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hackernoon.com/ripvanwinkle-js-returning-to-javascript-after-5-years-1dc17c57a518">RipVanWinkle.js</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2017/01/webgl-2-lands-in-firefox/">WebGL 2 lands in Firefox</a></li>
<li><a class="underline" href="https://blog.getexponent.com/good-practices-why-you-should-use-javascript-whenever-possible-with-react-native-26478ec22334">Good Practices: Why you should use JavaScript whenever possible with React Native</a></li>
<li><a class="underline" href="https://medium.com/@thisismissem/you-may-not-need-to-thunk-f5dc7a6fcbca">You may not need to thunk</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hackernoon.com/developing-isomorphic-applications-using-webpack-eca814a418ad">Developing isomorphic applications using webpack</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2017/01/typedarray-or-dataview-understanding-byte-order/">TypedArray or DataView: Understanding byte order</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hackernoon.com/how-to-get-a-performance-boost-using-webassembly-8844ec6dd665">How to get a performance boost using WebAssembly</a></li>
<li><a class="underline" href="https://wietse.loves.engineering/testing-promises-with-mocha-90df8b7d2e35">How to Test Promises with Mocha</a></li>
<li><a class="underline" href="http://codenroll.it/acceptance-testing-with-codecept-js/">Acceptance testing with CodeceptJS</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2017/01/using-immutable-caching-to-speed-up-the-web/">Using Immutable Caching To Speed Up The Web</a></li>
<li><a class="underline" href="https://hackernoon.com/server-side-rendering-shootout-with-marko-preact-rax-react-and-vue-25e1ae17800f">Server-side Rendering Shootout with Marko, Preact, Rax, React and Vue</a></li>
<li><a class="underline" href="https://github.com/ryanmcdermott/clean-code-javascript">Clean Code patterns implemented in JavaScript</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/unexpected-interview/">Unexpected</a></li>
<li><a class="underline" href="http://survivejs.com/blog/ajv-interview/">ajv</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://play.elevatorsaga.com/">Elevator Saga</a></li>
<li><a class="underline" href="http://thefounder.biz/">The Founder: Change the World</a></li>
<li><a class="underline" href="http://www.flexboxdefense.com/">Flexbox Defense</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/avajs/ava/releases/tag/v0.18.0">Ava 0.18.0</a> - More testing goodies.</li>
<li><a class="underline" href="https://colorme.io/">ColorMe</a> - Visualize the CSS color function.</li>
<li><a class="underline" href="https://codemix.github.io/flow-runtime/">Flow Runtime</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://tangrams.github.io/tangram-sandbox/tangram.html">Tangram Sandbox</a></li>
</ul>
]]></content></entry><entry><title>JSter #86: News of January 2017 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-january-2017-part-2"></link><id>jster-january-2017-part-2</id><published>2017-01-19T10:11:10.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript - Because you are worth it.</p>
</blockquote>
<p>It has been busy two weeks again. <a class="underline" href="https://medium.com/webpack/webpack-2-2-the-final-release-76c3d43bf144">Webpack 2 reached a final version</a>. This also gave me a good excuse to <a class="underline" href="http://survivejs.com/blog/survivejs-webpack-160/">push a new version of my webpack book out there</a>. It's getting closer and closer to paper and the end(?) is in sight.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/trentm/node-bunyan">https://github.com/trentm/node-bunyan</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/trentm/node-bunyan">Bunyan</a> - A logger for Node.</li>
<li><a class="underline" href="https://github.com/mochajs/mocha/blob/master/README.md">mocha needs your help</a></li>
<li><a class="underline" href="https://github.com/Gothdo/range">Gothdo/range</a> - A JavaScript implementation of the Python's range() function</li>
<li><a class="underline" href="https://www.npmjs.com/package/mitt">mitt</a> - A tiny event emitter, pubsub thinger.</li>
<li><a class="underline" href="http://alligatr.co.uk/lake.js/">lake.js</a> - Well, make a lake in JavaScript. Handy, eh?</li>
<li><a class="underline" href="https://github.com/wildhoney/switzerland">switzerland</a> - Neutral web components.</li>
<li><a class="underline" href="https://rawgit.com/stewartlord/identicon.js/master/demo.html">Identicon.js</a> - Identicons like in GitHub profiles of lazy people.</li>
<li><a class="underline" href="https://vocajs.com/">Voca: The JavaScript string library</a></li>
<li><a class="underline" href="https://www.npmjs.com/package/partial.lenses">partial.lenses</a> - Yup. Just what it says in the label.</li>
<li><a class="underline" href="https://date-fns.org/">date-fns</a> - Tired of moment? This one is for you.</li>
<li><a class="underline" href="https://infernojs.org/">Inferno</a> - Faster than React with a familiar API. What's not to like?</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://netbasal.com/a-taste-from-angular-version-4-50be1c4f3550">A Taste from Angular 4</a></li>
<li><a class="underline" href="https://medium.com/@Pier/firebase-the-great-the-meh-and-the-ugly-a07252fbcf15">Firebase: the great, the meh, and the ugly</a></li>
<li><a class="underline" href="https://medium.com/@maurice.de.beijer/what-should-be-in-a-single-page-application-9bbbf40c3862">What should be in a Single Page Application?</a></li>
<li><a class="underline" href="https://javascriptweblog.wordpress.com/2015/11/02/of-classes-and-arrow-functions-a-cautionary-tale/">Of Classes and Arrow Functions</a> - A horror story.</li>
</ul>
<a href="#security"><h2 class="inline" id="security">Security</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://snyk.io/blog/redos-and-catastrophic-backtracking/">Regular Expression Denial of Service and Catastrophic Backtracking</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.sambego.be/how-to-create-an-online-siri-like-personal-assistant/">How to create an online Siri-like personal assistant</a></li>
<li><a class="underline" href="http://zevross.com/blog/2014/09/30/use-the-amazing-d3-library-to-animate-a-path-on-a-leaflet-map/">Use the amazing D3 library to animate a path on a Leaflet map</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://nodesource.com/blog/eleven-npm-tricks-that-will-knock-your-wombat-socks-off">11 Simple npm Tricks That Will Knock Your Wombat Socks Off</a></li>
<li><a class="underline" href="https://hackernoon.com/10-things-i-learned-making-the-fastest-site-in-the-world-18a0e1cdf4a7">10 things a rando learned making the fastest site in the world</a></li>
<li><a class="underline" href="http://code.fitness/post/2017/01/js-perf-measurement.html">Measuring performance in JavaScript</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/isomorphic-webpack-interview/">isomorphic-webpack interview with Gajus Kuizinas</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.webcomponents.org/launch-announcement">webcomponents.org</a> - New element registry.</li>
<li><a class="underline" href="http://saijogeorge.com/css-puns/">CSS Puns & CSS Jokes</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://incheon.gg/">Incheon</a> - Online JavaScript game fun with open source.</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://rxjs-diagrams.com/">RxJS Diagrams</a></li>
<li><a class="underline" href="http://jlongster.com/A-Prettier-Formatter">A Prettier JavaScript Formatter</a></li>
<li><a class="underline" href="http://interlockjs.com/">InterlockJS</a> - Unify your build, whatever that means. Find out.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://bl.ocks.org/AntonLecock/e347a9aab4808a9efaa8643662267522">Pluto isn't that special, after all</a></li>
<li><a class="underline" href="http://benfry.com/aasd/">the genetic code</a></li>
</ul>
]]></content></entry><entry><title>JSter #85: News of January 2017 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/jster-january-2017-part-1"></link><id>jster-january-2017-part-1</id><published>2017-01-04T03:14:21.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript another day.</p>
</blockquote>
<p>As <a class="underline" href="https://github.com/webpack/webpack/releases/tag/v2.2.0-rc.3">webpack 2 is getting closer</a>, I've been pushing my webpack book forward. I revamped it completely and published <a class="underline" href="http://survivejs.com/blog/survivejs-webpack-150/">SurviveJS - Webpack v1.5.0</a>. There's still work to do till I can get a paper version out, but this was a nice step towards that goal.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/eldh/fimp">https://github.com/eldh/fimp</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/eldh/fimp">eldh/fimp</a> - Functional bindings for Immutable.js</li>
<li><a class="underline" href="https://dixonandmoe.com/rellax/">rellax</a> - Light parallax scrolling.</li>
<li><a class="underline" href="http://bits.24ways.org/">Bits</a> - The front-end component library for 24 ways.</li>
<li><a class="underline" href="http://woofjs.com/">WoofJS</a> - Scratch inspired library for making games.</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/angular/angular/blob/master/CHANGELOG.md">Angular 4 beta 1</a></li>
<li><a class="underline" href="https://vuetifyjs.com/">Vuetify.js</a> - Vue.js 2 component framework.</li>
<li><a class="underline" href="https://nuxtjs.org/">Nuxt.js</a> - A minimalistic framework for server-rendered Vue.js applications.</li>
<li><a class="underline" href="https://www.polymer-project.org/1.0/blog/2016-12-21-polymer-2.0-update">Polymer 2.0 is on the way!</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://macr.ae/article/sorting-algorithms.html">Sorting algorithms visualised</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.keithcirkel.co.uk/metaprogramming-in-es6-symbols/">Metaprogramming in ES6: Symbols and why they're awesome</a></li>
<li><a class="underline" href="https://medium.com/@gcanti/semigroups-f74f7643c0d4">Semigroups explained by Giulio Canti</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/styletron-interview/">Styletron interview with Ryan Tsao</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://textlint.github.io/">textlint</a> - Pluggable linting tool for text and Markdown.</li>
<li><a class="underline" href="https://github.com/fuse-box/fuse-box">fuse-box</a> - A blazing fast js bundler/loader with a comprehensive API.</li>
<li><a class="underline" href="https://github.com/wooorm/nspell">wooorm/nspell</a> - Hunspell compatible spell-checker for JavaScript.</li>
<li><a class="underline" href="https://github.com/Mevrael/assets-builder">Mevrael/assets-builder</a> - Node scripts and custom CLI made easy.</li>
</ul>
]]></content></entry><entry><title>JSter #84: News of December 2016 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-december-2016-part-1"></link><id>monthly-jster-december-2016-part-1</id><published>2016-12-19T10:24:41.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript another day</p>
</blockquote>
<p><a class="underline" href="https://medium.com/webpack/webpack-2-2-the-release-candidate-2e614d05d75f">webpack 2 reached a new release candidate</a> and final release seems imminent. To keep up with the world, I updated my <a class="underline" href="http://survivejs.com/blog/survivejs-webpack-142/">webpack book</a> to webpack 2 beta. In addition to the update, I refreshed the content quite a bit. There's still work left to be done, though.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://oboejs.com/">http://oboejs.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://oboejs.com/">Oboe.js</a> - Streaming JSON loading for Node and browsers</li>
<li><a class="underline" href="http://reactivex.io/rxjs/">RxJS 5.0</a> - Reactive extensions</li>
<li><a class="underline" href="https://threejs.org/">three.js</a> - A new major release</li>
<li><a class="underline" href="https://github.com/js-cookie/js-cookie">js-cookie</a> - Simple cookies</li>
<li><a class="underline" href="https://github.com/Legitcode/legible">legible</a> - Fluent HTTP queries</li>
<li><a class="underline" href="https://mathisonian.github.io/premonish/">premonish</a> - Predict where the user is going to click</li>
<li><a class="underline" href="https://github.com/brianneisler/mudash">brianneisler/mudash</a> - Lodash wrapper for Immutable.js</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@xilefmai/efficient-javascript-14a11651d563">Writing efficient JavaScript – Felix Maier</a></li>
<li><a class="underline" href="https://angularjs.blogspot.fi/2016/12/ok-let-me-explain-its-going-to-be.html">Angular: Ok... let me explain: it's going to be Angular 4.0, or just Angular</a></li>
<li><a class="underline" href="https://jakearchibald.com/2016/fun-hacks-faster-content/">Fun hacks for faster content</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://semaphoreci.com/community/tutorials/best-practices-for-spies-stubs-and-mocks-in-sinon-js">Best Practices for Spies, Stubs and Mocks in Sinon.js</a></li>
<li><a class="underline" href="https://github.com/deebloo/things-you-can-do-in-a-web-worker">deebloo/things-you-can-do-in-a-web-worker</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/inferno-interview/">Inferno</a> - Blazing fast, React-like UI library - Interview with Dominic Gannaway</li>
<li><a class="underline" href="http://survivejs.com/blog/svelte-interview/">Svelte</a> - The magical disappearing UI framework - Interview with Rich Harris</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://getfirebug.com/">Firebug has been discontinued</a></li>
<li><a class="underline" href="http://typestyle.io/">TypeStyle</a> - Making CSS typesafe</li>
<li><a class="underline" href="https://github.com/callumacrae/vue-test">vue-test</a> - Component testing for Vue.js</li>
<li><a class="underline" href="https://github.com/simeji/jid">simeji/jid</a> - JSON Incremental Digger</li>
<li><a class="underline" href="http://bennettfeely.com/flexplorer/">Flexplorer</a> - Learn how Flexbox works</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://googlechrome.github.io/ui-element-samples/parallax/">60 fps parallax demo by Google</a></li>
<li><a class="underline" href="http://wooorm.com/write-music/">Sentence length visualization</a></li>
</ul>
]]></content></entry><entry><title>JSter #83: News of November 2016 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-november-2016-part-2"></link><id>monthly-jster-november-2016-part-2</id><published>2016-12-02T03:17:50.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript framework a day keeps the doctor away</p>
</blockquote>
<p>It was another busy two weeks. There were two highlights. I released <a class="underline" href="https://reactabular.js.org/#/changelog">Reactabular 8</a>. I did some major restructuring there to make it easier to grow the project in the future. <a class="underline" href="https://www.npmjs.com/package/webpack-merge">webpack-merge</a> reached version 1.0 as I consider it stable now. I also <a class="underline" href="http://survivejs.com/blog/webpack-merge-interview/">wrote webpack-merge related interview</a> that explains the idea better.</p>
<blockquote>
<p>We are running <a class="underline" href="http://www.reactindiebundle.com/">React Indie Bundle</a> again this year. So if you want to pick up content on React, check it out.</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/aaronshaf/shaf-chart">https://github.com/aaronshaf/shaf-chart</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://aaronshaf.github.io/shaf-chart/">shaf-chart</a> - Convert tables to charts</li>
<li><a class="underline" href="http://smoothiecharts.org/">Smoothie Charts</a> - A JavaScript Charting Library for Streaming Data</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://svelte.technology/">Svelte</a> - The magical disappearing UI framework</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/javascript-inside/an-introduction-into-lenses-in-javascript-e494948d1ea5">An Introduction Into Lenses In JavaScript</a></li>
<li><a class="underline" href="https://medium.com/@DveMac/a-quick-tour-of-javascript-primitives-894eceee31c2">A quick tour of JavaScript primitives</a></li>
<li><a class="underline" href="https://css-tricks.com/intro-monkey-testing-gremlins-js/">An Intro to Monkey Testing with Gremlins.js</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@localvoid/how-to-win-in-web-framework-benchmarks-8bc31af76ce7">How to win in Web Framework Benchmarks</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.doiuse.com/">doiuse...?</a> - Figure out in which browsers your CSS breaks</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://react-styleguidist.js.org/">React Style Guide</a> - Live examples for your React components</li>
<li><a class="underline" href="https://devexpress.github.io/testcafe/">testcafe</a> - Automated browser testing for the modern web development stack</li>
<li><a class="underline" href="https://github.com/cramforce/splittable">cramforce/splittable</a> - Module bundler with support for code splitting, ES6 & CommonJS modules</li>
<li><a class="underline" href="https://github.com/GoogleChrome/sw-precache">GoogleChrome/sw-precache</a> - A node module to generate service worker code that will precache specific resources so they work offline</li>
<li><a class="underline" href="http://tachyons.io/xray/">X-ray</a> - A chrome plugin for aligning objects to a grid</li>
<li><a class="underline" href="https://github.com/DragonsInn/fontgen-loader">DragonsInn/fontgen-loader</a> - Automated webfont generation from SVG icons for webpack</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://artsexperiments.withgoogle.com/">Google Arts and Culture Experiments</a></li>
</ul>
]]></content></entry><entry><title>JSter #82: News of November 2016 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-november-2016-part-1"></link><id>monthly-jster-november-2016-part-1</id><published>2016-11-16T07:30:26.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript, sweet JavaScript</p>
</blockquote>
<p>It has been busy two weeks again. I gave my first keynote, did eight sessions over seven days and so on. You can read more about it in my <a class="underline" href="http://www.nixtu.info/2016/11/kharkivjs-2016-and-react-in-barcelona.html">travel report</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/jrainlau/LowPolifier">https://github.com/jrainlau/LowPolifier</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://superdom.site/">Superdom.js</a> - jQuery for millennials</li>
<li><a class="underline" href="http://htmlgl.com/">HTML GL</a> - WebGL through HTML syntax</li>
<li><a class="underline" href="https://michalsnik.github.io/aos/">AOS</a> - Animate on Scroll</li>
<li><a class="underline" href="https://github.com/jrainlau/LowPolifier">jrainlau/LowPolifier</a> - Style an image with low-poly</li>
</ul>
<a href="#data-structures"><h2 class="inline" id="data-structures">Data Structures</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://graphology.github.io/">graphology</a> - Graph structure for JavaScript</li>
<li><a class="underline" href="http://sigmajs.org/">Sigma</a> - A JavaScript library dedicated to graph drawing</li>
<li><a class="underline" href="https://github.com/navjobs/relation">navjobs/relation</a> - Clone of Laravel's Eloquent ORM for nodejs</li>
<li><a class="underline" href="https://github.com/arqex/freezer">arqex/freezer</a> - A tree data structure that emits events on updates, even if the modification is triggered by one of the leaves, making it easier to think in a reactive way</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://engineering.haus.com/why-tdding-your-frontend-feels-pointless-5f710fea7325">Why TDD’ing your frontend feels pointless</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://nick.balestra.ch/2016/creating-observables/">Understanding the observable type pt.2</a></li>
<li><a class="underline" href="https://medium.com/@domagojk/creating-a-scalable-javascript-application-with-cycle-js-589f4d4020a5">Creating a Scalable JavaScript Application with Cycle.js</a></li>
<li><a class="underline" href="https://medium.com/@DveMac/using-es6-to-create-a-tiny-functional-library-fe8e4667045c">Using ES6 to create a tiny, functional library</a></li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://aeflash.com/2014-11/avoid-foreach.html">Avoid forEach</a></li>
<li><a class="underline" href="https://nolanlawson.com/2016/10/13/progressive-enhancement-isnt-dead-but-it-smells-funny/">Progressive enhancement isn’t dead, but it smells funny</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2016/10/control-mechanisms-in-javascript-games/">Control mechanisms in JavaScript games</a></li>
<li><a class="underline" href="https://medium.com/@NetanelBasal/javascript-the-magic-behind-event-emitter-cce3abcbcef9">JavaScript — The Magic Behind Event Emitter</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hackernoon.com/19-things-i-learnt-reading-the-nodejs-docs-8a2dcc7f307f">19 things David learned reading the NodeJS docs</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2016/11/cooperative-scheduling-with-requestidlecallback/">Cooperative Scheduling with requestIdleCallback</a></li>
<li><a class="underline" href="http://blog.innerht.ml/the-misunderstood-x-xss-protection/">The misunderstood X-XSS-Protection</a></li>
<li><a class="underline" href="https://nodesource.com/blog/six-of-the-most-exciting-es6-features-in-node-js-v6-lts">6 of the Most Exciting ES6 Features in Node.js v6 LTS</a></li>
<li><a class="underline" href="http://www.webdesignerdepot.com/2016/10/4-modern-background-tricks-to-try-out/">4 modern background tricks to try out</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/starratio-interview/">StarRatio - Compare JavaScript Projects - Interview with Dmitry Zaets</a></li>
</ul>
<a href="#badges"><h2 class="inline" id="badges">Badges</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/exogen/badge-matrix">exogen/badge-matrix</a> - More advanced badges for projects using Travis or Sauce Labs</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/siddharthkp/cost-of-modules">siddharthkp/cost-of-modules</a> - Find out which of your dependencies is slowing you down</li>
<li><a class="underline" href="https://github.com/aserg-ufmg/JSCity">aserg-ufmg/JSCity</a> - Visualizing JavaScript source code as navigable 3D cities</li>
<li><a class="underline" href="https://github.com/jaridmargolin/inspect-process">jaridmargolin/inspect-process</a> - Dead simple debugging for node.js using chrome-devtools</li>
<li><a class="underline" href="https://hacks.mozilla.org/2016/10/webassembly-browser-preview/">WebAssembly Browser Preview</a></li>
<li><a class="underline" href="https://github.com/jasonlong/isometric-contributions">jasonlong/isometric-contributions</a> - GitHub contributions in isomorphic view</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://bl.ocks.org/alexmacy/41bf2c3727c59a3366528807c2c708b2">Web Audio Theremin & Oscilloscope</a></li>
</ul>
]]></content></entry><entry><title>JSter #81: News of October 2016 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-october-2016-part-2"></link><id>monthly-jster-october-2016-part-2</id><published>2016-11-01T14:00:35.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>If you can think of a common word, there's a npm package for it</p>
</blockquote>
<p>Busy days. To prepare for the future, I <a class="underline" href="http://presentations.survivejs.com">compiled my presentations to a site</a>. Check it out for slides on React, webpack, and more.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/nosir/obelisk.js">https://github.com/nosir/obelisk.js</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://maxwellito.github.io/vivus/">vivus.js</a> - Bring your SVGs to life</li>
<li><a class="underline" href="https://github.com/nosir/obelisk.js">obelisk.js</a> - JavaScript library for building pixel isometric graphics with HTML5 canvas</li>
<li><a class="underline" href="https://yomguithereal.github.io/talisman/">Talisman</a> - A straightforward and modular NLP, machine learning and fuzzy matching library for JavaScript</li>
<li><a class="underline" href="http://www.graphicsjs.org/">GraphicsJS</a> - A lightweight JavaScript graphics library with the intuitive API, based on SVG/VML technology</li>
<li><a class="underline" href="http://zeroclipboard.org/">ZeroClipboard v2.x</a></li>
<li><a class="underline" href="http://imakewebthings.com/waypoints/">Waypoints</a> - Trigger a function when you scroll to an element</li>
<li><a class="underline" href="http://minigrid.js.org/">Minigrid</a> - Minimal 2kb zero dependency cascading grid layout without pain</li>
<li><a class="underline" href="http://nanobar.jacoborus.codes/">nanobar.js</a> - Very lightweight progress bars. (699 gzipped bytes of vanilla js)</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://alibaba.github.io/weex/">Weex</a> - A framework for building Mobile cross-platform UI</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jazcash.com/a-javascript-journey-with-only-six-characters/">A Javascript journey with only six characters</a></li>
<li><a class="underline" href="http://seriot.ch/parsing_json.html">Parsing JSON is a Minefield</a></li>
<li><a class="underline" href="https://medium.com/drift-engineering/choosing-graphql-to-build-drifts-messaging-platform-8b4310facbc1">Choosing GraphQL to build Drift’s messaging platform</a></li>
<li><a class="underline" href="https://hackernoon.com/node-js-tc-39-and-modules-a1118aecf95e">Node.js, TC-39, and Modules</a></li>
<li><a class="underline" href="https://medium.com/webpack/sustaining-webpack-for-the-future-part-2-7055282d7864">Sustaining webpack for the future: Part 2</a></li>
<li><a class="underline" href="http://www.infoworld.com/article/3131489/javascript/javascript-projects-regroup-under-a-new-foundation.html">JavaScript projects regroup under a new foundation - JS Foundation</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@nsisodiya/stop-using-typeof-in-javascript-we-have-better-solution-5a09bfaa02a4">Stop using <code>typeof</code> in JavaScript, we have better solution</a></li>
<li><a class="underline" href="https://medium.com/@dschnr/using-clustering-to-create-a-new-d3-js-color-scale-dec4ccd639d2">Using clustering to create a new D3.js color scale</a></li>
<li><a class="underline" href="https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/">Tasks, microtasks, queues and schedules</a></li>
<li><a class="underline" href="https://medium.com/@kosamari/how-to-be-a-compiler-make-a-compiler-with-javascript-4a8a13d473b4">How to be* a compiler</a></li>
<li><a class="underline" href="https://glebbahmutov.com/blog/run-express-server-in-your-browser/">Run Express server in your browser</a></li>
<li><a class="underline" href="https://formidable.com/blog/2016/10/19/introducing-publish-diff/">Safer, more predictable <code>npm</code> publishing with <code>publish-diff</code></a></li>
<li><a class="underline" href="http://jaketrent.com/post/stub-dependencies-node-without-proxyquire/">Stub Dependencies in Node Without Proxyquire</a></li>
<li><a class="underline" href="http://slides.com/davidkhourshid/reactanim">Reactive Animations with CSS Variables by David Khourshid</a></li>
</ul>
<a href="#technology"><h2 class="inline" id="technology">Technology</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://v8project.blogspot.fi/2016/10/webassembly-browser-preview.html">V8 JavaScript Engine: WebAssembly Browser Preview</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2016/10/whats-new-in-indexeddb-2-0/">What’s new in IndexedDB 2.0?</a></li>
<li><a class="underline" href="https://codingbox.io/do-you-need-service-worker-in-your-web-app-d68131d65e2c">Do you need Service Worker in your web app?</a></li>
</ul>
<a href="#architecture"><h2 class="inline" id="architecture">Architecture</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/paldepind/functional-frontend-architecture">Functional frontend architecture</a></li>
<li><a class="underline" href="https://almin.js.org/">Almin.js</a> - Flux/CQRS patterns for JavaScript application.</li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/redom-interview/">RE:DOM - Tiny but Super Fast DOM Library - Interview with Juha Lindstedt</a></li>
<li><a class="underline" href="http://survivejs.com/blog/glamor-interview/">Glamor - Inline CSS for React et al - Interview with Sunil Pai</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://presentations.survivejs.com/advanced-webpack/">Advanced Webpack</a></li>
<li><a class="underline" href="http://presentations.survivejs.com/structuring-react-projects/">Structuring React Projects</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://garris.github.io/BackstopJS/">BackstopJS</a> - Catch CSS curve balls</li>
<li><a class="underline" href="http://cssicon.space/">CSS icons</a></li>
<li><a class="underline" href="https://www.npmjs.com/package/siege">siege</a> - HTTP benchmark your site</li>
<li><a class="underline" href="https://github.com/npm/npm/releases/tag/v4.0.0">npm v4.0.0</a></li>
<li><a class="underline" href="https://github.com/benoror/better-npm-run">benoror/better-npm-run</a> - Better NPM scripts runner</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://rainbowhunt.com/">RainbowHunt</a> - Rain demo</li>
<li><a class="underline" href="https://github.com/purag/archsim">purag/archsim</a> - A JavaScript processor simulator to design and execute any assembly language architecture</li>
</ul>
]]></content></entry><entry><title>JSter #80: News of October 2016 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-october-2016-part-1"></link><id>monthly-jster-october-2016-part-1</id><published>2016-10-16T04:04:58.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>If you can think of a JavaScript package name, it likely exists already</p>
</blockquote>
<p>Two weeks have gone again. I released a new major version of my <a class="underline" href="http://reactabular.js.org">table component for React</a>. The tree API has solidified and there are also a few goodies in store.</p>
<p>webpack has been accepted as a part of the <a class="underline" href="https://opencollective.com/webpack">Open Collective</a>. This means it's possible for individuals and companies to support the project now. You can read more about the scheme at the <a class="underline" href="https://medium.com/webpack/sustaining-webpack-for-the-future-part-1-32bea7f9e8a2">related blog post</a>.</p>
<p>webpack 2 documentation effort is going to the right direction as well and <a class="underline" href="https://medium.com/webpack/documentation-mvp-the-final-stretch-8b65f843f828#.1so9s2iz4">the documentation MVP is nearing completion</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/bredele/vomit">https://github.com/bredele/vomit</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://bitshadow.github.io/iconate/">iconate.js</a> - Transform your icons with trendy animations</li>
<li><a class="underline" href="http://tesseract.projectnaptha.com/">Tesseract.js</a> - Pure Javascript port of the popular Tesseract OCR engine</li>
<li><a class="underline" href="https://github.com/bredele/vomit">bredele/vomit</a> - Disgustingly powerful and easy library for building user interfaces</li>
<li><a class="underline" href="https://github.com/bcherny/json-schema-to-typescript">bcherny/json-schema-to-typescript</a> - Compile JSON Schema to TypeScript</li>
<li><a class="underline" href="https://github.com/thejameskyle/pretty-format">thejameskyle/pretty-format</a> - Stringify any JavaScript value</li>
<li><a class="underline" href="https://medium.com/@jrainlau/sphinxjs-a-very-light-js-library-which-to-encrypts-decrypts-a-string-to-from-an-image-5029230fa018">SphinxJS</a> - A very light JS library which could encode a string to an image, or decode an image to a string</li>
<li><a class="underline" href="http://inversify.io/">InversifyJS</a> - A powerful IoC container for JavaScript apps powered by TypeScript</li>
<li><a class="underline" href="https://github.com/laurisvan/request-promise-lite/">laurisvan/request-promise-lite</a> - Lightweight, promiseful http/https request client</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/dvajs/dva">dva</a> -  React and Redux based, lightweight and elm-style framework</li>
<li><a class="underline" href="http://www.adonisjs.com/">Adonis</a> - MVC Framework for NodeJs to write webapps with less code</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.honeypot.io/popularity-of-javascript-frameworks-and-libraries/">Popularity of JavaScript Frameworks and Libraries</a></li>
<li><a class="underline" href="https://infrequently.org/2016/09/what-exactly-makes-something-a-progressive-web-app/">What, Exactly, Makes Something A Progressive Web App?</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://solutionoptimist.com/2013/12/27/javascript-promise-chains-2/">Flattening Promise Chains</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/teaching-javascript-interview/">Teaching JavaScript - Interview with Bianca Gandolfo</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://javascript-game.firebaseapp.com/">JavaScript guessing game</a> - Guess the library/framework</li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://speakerdeck.com/mcirlanaru/speech-recognition-on-the-web-jsconf-iceland">Speech Recognition on the Web (JSConf Iceland)</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://yarnpkg.com/">Yarn</a> - A new JavaScript package manager by Facebook</li>
<li><a class="underline" href="https://github.com/googlechrome/lighthouse">googlechrome/lighthouse</a> - Auditing and performance metrics for Progressive Web Apps</li>
<li><a class="underline" href="https://keymetrics.io/2016/08/24/pm2-v2-released/">PM2 v2</a> - Supervisor for Node.js</li>
<li><a class="underline" href="https://formidable.com/blog/2016/10/12/introducing-nodejs-dashboard/">Introducing NodeJS-Dashboard</a></li>
<li><a class="underline" href="https://github.com/csstree/csstree">csstree</a> - Fast detailed CSS parser with syntax validation</li>
<li><a class="underline" href="https://github.com/nolanlawson/optimize-js">nolanlawson/optimize-js</a> - Optimize a JavaScript file for faster initial load by wrapping eagerly-invoked functions</li>
<li><a class="underline" href="https://500tech.github.io/bdsm/">BDSM</a> - Badass Server Mocks</li>
<li><a class="underline" href="http://open.blogs.nytimes.com/2016/09/13/introducing-kyt-our-web-app-configuration-toolkit/">Introducing kyt</a> - Web application configuration toolkit by New York Times</li>
<li><a class="underline" href="https://github.com/danvk/source-map-explorer">danvk/source-map-explorer</a> - Analyze and debug space usage through source maps</li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://matejkustec.github.io/SpinThatShit/">SpinThatShit</a> - A set of SCSS mixins for single element loaders and spinners</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://codepen.io/jhealey5/pen/JRGgVr">Interactive Kaleidoscope</a></li>
</ul>
]]></content></entry><entry><title>JSter #79: News of September 2016 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-september-2016-part-2"></link><id>monthly-jster-september-2016-part-2</id><published>2016-10-03T07:13:55.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript is the yellow language in GitHub</p>
</blockquote>
<p>Two weeks went fast. I put serious effort into upgrading my training material. Consider the following slide sets:</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.github.io/javascript-in-2016">JavaScript in 2016</a></li>
<li><a class="underline" href="http://survivejs.github.io/react-in-2016">React in 2016</a></li>
<li><a class="underline" href="https://survivejs.github.io/state-management-in-react/">State Management in React</a></li>
</ul>
<p>The material will likely live as more training gigs appear and I understand the topic better.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://medium.com/the-vue-point/vue-2-0-is-here-ef1f26acf4b8">https://medium.com/the-vue-point/vue-2-0-is-here-ef1f26acf4b8</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/the-vue-point/vue-2-0-is-here-ef1f26acf4b8">Vue 2.0 has been released</a></li>
<li><a class="underline" href="http://timeago.org/">timeago.js</a> - Tiny (2Kb) library for formatting dates. No dependencies.</li>
<li><a class="underline" href="https://getexponent.com/">Exponent</a> - Write native mobile applications using JavaScript</li>
<li><a class="underline" href="http://hyperform.js.org/">Hyperform</a> - Capture form validation back from the browser</li>
<li><a class="underline" href="https://medium.com/re-dom/master-the-dom-bc1a2a06089b">Master the DOM with RE:DOM – Medium</a></li>
<li><a class="underline" href="http://nodejs.jsnlog.com/">jsnlog</a> - Log exceptions on client and server under Node.js</li>
<li><a class="underline" href="https://cesiumjs.org/">Cesium</a> - 3D globes and maps with JavaScript</li>
<li><a class="underline" href="http://leafletjs.com/2016/09/27/leaflet-1.0-final.html">Leaflet 1.0</a> - The popular mapping library reached a milestone release</li>
<li><a class="underline" href="http://omrelli.ug/g9/gallery/">g9 Gallery</a> - Automatically interactive graphics</li>
<li><a class="underline" href="http://maquettejs.org/">Maquette</a> - Pure and simple virtual DOM library</li>
<li><a class="underline" href="https://github.com/tj/mdconf">tj/mdconf</a> - Markdown driven configuration</li>
<li><a class="underline" href="https://github.com/developit/jsxobj">developit/jsxobj</a> - Build JSON using JSX</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://argonjs.io/">argon.js</a> - A framework for adding augmented reality content to web applications</li>
</ul>
<a href="#scripts"><h2 class="inline" id="scripts">Scripts</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/deanhume/image-beast">deanhume/image-beast</a> - 1 kB script that decides the leanest image format to return based on your browser</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://davidwalsh.name/modernization-reactivity">Modernization of Reactivity</a></li>
<li><a class="underline" href="https://korynunn.wordpress.com/2016/09/19/i-promise-this-was-a-bad-idea/">I Promise this was a bad idea</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://mythbusters.js.org/">JS MythBusters</a> - An optimization handbook from a high level point of view</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.mgechev.com/2016/06/26/tree-shaking-angular2-production-build-rollup-javascript/">Building an Angular 2 Application for Production</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/react-game-kit-interview/">react-game-kit interview with Ken Wheeler</a></li>
<li><a class="underline" href="http://survivejs.com/blog/reactotron-interview/">Reactotron interview with Steve Kellock</a></li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blogs.msdn.microsoft.com/typescript/2016/09/22/announcing-typescript-2-0/">TypeScript 2.0 is now available!</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.irrlicht3d.org/pivot/entry.php?id=1513">JavaScript vs C++: Creating the same 3D game in both</a></li>
</ul>
<a href="#templates"><h2 class="inline" id="templates">Templates</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/leemunroe/responsive-html-email-template">A responsive HTML email template</a></li>
</ul>
<a href="#fonts"><h2 class="inline" id="fonts">Fonts</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.cssfontstack.com/">CSS Font Stack: Web Safe and Web Font Family with HTML and CSS code.</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/addyosmani/critical-path-css-tools">A collection of critical path CSS tools</a></li>
<li><a class="underline" href="http://pesticide.io/">Pesticide</a> - A chrome plugin for debugging layout issues</li>
<li><a class="underline" href="https://github.com/uber/image-diff">uber/image-diff</a> - Create image differential between two images</li>
<li><a class="underline" href="https://github.com/wearekuva/oui">wearekuva/oui</a> - Objects go in, UI comes out</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hackerlists.com/javascript-emulators/">100+ Emulators Written in JavaScript</a></li>
<li><a class="underline" href="http://pluvior.com/raindrops.html">Rain simulator</a> - The fall is here</li>
</ul>
]]></content></entry><entry><title>JSter #78: News of September 2016 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-september-2016-part-1"></link><id>monthly-jster-september-2016-part-1</id><published>2016-09-19T02:12:48.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Peace and JavaScript to everyone</p>
</blockquote>
<p>Things have been progressing quite nicely. I put a lot of effort into pushing my static site generator further, but I'll get back to that later once I have something tidy to show. I also wrote a <a class="underline" href="http://survivejs.com/blog/reactabular-interview/">small interview</a> about my table component for React so you can get the core ideas easily.</p>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/yoshuawuyts/choo">https://github.com/yoshuawuyts/choo</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://angularjs.blogspot.fi/2016/09/angular2-final.html">Angular 2.0 Final</a></li>
<li><a class="underline" href="https://bunnyjs.com/">BunnyJS</a> - Browser ES6 Framework</li>
<li><a class="underline" href="http://www.nx-framework.com/">NX Framework</a> - A next generation JavaScript framework</li>
<li><a class="underline" href="https://www.polymer-project.org/1.0/blog/2016-09-09-polymer-2.0">Polymer 2.0 Preview</a></li>
<li><a class="underline" href="https://github.com/yoshuawuyts/choo">choo</a> - Sturdy frontend framework</li>
</ul>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/VerbalExpressions/JSVerbalExpressions">Verbal Expressions</a> - RegExp for Busy People</li>
<li><a class="underline" href="https://github.com/uWebSockets/uWebSockets">uWebSockets</a> - Highly scalable WebSocket server library</li>
<li><a class="underline" href="https://github.com/Easyfood/pageAccelerator">pageAccelerator</a> - A very light solution to load web pages faster</li>
<li><a class="underline" href="https://winterbe.github.io/streamjs/">Stream.js</a> - Object Streaming Pipeline for JavaScript</li>
<li><a class="underline" href="https://trackingjs.com/">tracking.js</a> - A modern approach for Computer Vision on the web</li>
<li><a class="underline" href="http://benhowdle.im/grade/">Grade.js</a> - Generate complementary gradients based on image data</li>
<li><a class="underline" href="https://github.com/sindresorhus/screenfull.js/">sindresorhus/screenfull.js</a> - Simple wrapper for cross-browser usage of the JavaScript Fullscreen API</li>
<li><a class="underline" href="https://text-mask.github.io/text-mask/">Text Mask</a> - Conform user input to a string mask</li>
<li><a class="underline" href="http://knpw.rs/grumbles.js/">Grumbles.js</a> - Detect when your users are upset</li>
<li><a class="underline" href="https://sarcadass.github.io/granim.js/">Granim.js</a> - Create fluid and interactive gradients animations (10k)</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.risingstack.com/node-js-developer-survey-results-2016/">How Developers use Node.js</a></li>
<li><a class="underline" href="http://fr.umio.us/why-ramda/">Why Ramda?</a></li>
<li><a class="underline" href="http://jster.net/blog/mobile-application-trends-2016">Mobile Application UI: 6 Definitive Trends in 2016</a></li>
<li><a class="underline" href="https://medium.com/@tibastral/10-reasons-why-you-should-give-elm-a-try-62b56d305643">10 reasons why you should give Elm a try</a></li>
<li><a class="underline" href="https://medium.com/@tomdale/javascript-frameworks-distribution-channels-for-good-ideas-9f3b95c0e293">JavaScript Frameworks: Distribution Channels for Good Ideas</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dorey.github.io/JavaScript-Equality-Table/">JS Comparison Table</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2016/09/flyweb-pure-web-cross-device-interaction/">FlyWeb – Pure Web Cross-Device Interaction</a></li>
<li><a class="underline" href="http://marxist.js.org/">Marxist JS</a> - The classless JavaScript manifesto</li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/assetgraph-interview/">AssetGraph Interview</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://david-peter.de/cube-composer/">cube composer</a> - Learn composition through a game</li>
<li><a class="underline" href="http://www.babylonjs.com/">BabylonJS</a> - A complete framework for building 3D games</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://esbench.com/">ESBench</a> - Benchmarking for ES2015 Code</li>
<li><a class="underline" href="https://hacks.mozilla.org/2016/09/introducing-debugger-html/">Introducing debugger.html</a></li>
<li><a class="underline" href="https://github.com/byteclubfr/prez">byteclubfr/prez</a> - Generate Reveal.js slideshows from a set of markdowns</li>
<li><a class="underline" href="https://github.com/mcsoto/LogicJS">mcsoto/LogicJS</a> - Logic programming for JavaScript</li>
<li><a class="underline" href="http://unexpected.js.org/">Unexpected</a> - The extensible BDD assertion toolkit</li>
<li><a class="underline" href="http://jerryscript.net/">JerryScript</a> - JavaScript engine for Internet of Things</li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://tachyons.io/">Tachyons</a> - CSS Toolkit</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://rectangleworld.com/blog/archives/462">Generative Art in HTML5 Canvas – Sweeping Fractal Lines</a></li>
</ul>
]]></content></entry><entry><title>Mobile Application UI: 6 Definitive Trends in 2016</title><link rel="alternate" type="text/html" href="https://jster.net/blog/mobile-application-trends-2016"></link><id>mobile-application-trends-2016</id><published>2016-09-12T09:16:39.000Z</published><content type="text/html"><![CDATA[<p>In the past 20 years, apart from the Internet itself, mobiles have been one of the biggest catalysators of growth and innovation on a worldwide level. From the first Nokia phones, to the latest iPhone 7, these small devices interact with us on a daily basis, transforming how we work, socialize and even communicate with our family members.</p>
<p>Just as there's been a significant change in how the phones themselves look and work, a shift of equal magnitude has occured in the software running on these smarthpones. These days Java and JavaScript are among the top languages used in mobile applications the world over.</p>
<p>Thousands of quality scripts and frameworks are available on open-source sites such as GitHub, allowing for collaboration and contributions from students, professionals and everyone in between. All of this amounts to software far more solid and secure than people would have dared imagine just a decade earlier.</p>
<a href="#move-from-consumer-apps-to-enterprise-apps-"><h2 class="inline" id="move-from-consumer-apps-to-enterprise-apps-">Move from Consumer Apps to Enterprise Apps.</h2></a>
<div class="picture"><img src="/img/blog/118/office.jpg" alt="To enterprise apps" /></div>

<p>While there's still a large number of apps targeted for consumers being developed in 2016, there's been a surge in enterprise app requests at Nodes. We've seen large corporations and organizations open their eyes to the new possibilities that having several company-specific apps offer employees all over the world.</p>
<p>From the simple time-logging apps, to the semi-complex databases of organizational datasets, to the really sophisticated architectures integrating mobile apps with internal CRM, Inventory management systems, and many other internal systems on a whole.</p>
<p>Using open-source JavaScript packages and frameworks for enterprise applications can cut down costs significantly, while keeping the apps optimized and secure, due to the large number of GitHub contributors all sharing their particular expertises, adding value to the community at an ever increasing rate.</p>
<p>It's important to keep in mind that a large business back in 2010 had on average less than 1 app per organizational structure, but today that number is closer to 10. This has led to an improved workflow, better efficiency, and new tools to help managers and board members take direct and correct actions based on cold facts, and the speed in which this data is procured is in itself a valuable asset.</p>
<a href="#apps-are-being-integrated-with-devices-and-services-more-frequently-"><h2 class="inline" id="apps-are-being-integrated-with-devices-and-services-more-frequently-">Apps are being integrated with devices and services more frequently.</h2></a>
<div class="picture"><img src="/img/blog/118/pexels-02.jpg" alt="Increasing integration" /></div>

<p>Mobile applications are not just being set up to connect to internal enterprise infrastructure, but also connecting to general consumer electronics such as IoT devices, and a whole host of gadgets and gizmos falling somewhere in between.</p>
<p>The internet coverage is growing and stretching its tentacles far out to the least populated corners of the world, and with India's richest man pumping $20US Billion into free internet access for almost 1 billion indians this year, we are going to see a revitalized interest in the app market on a whole, and integrating apps with various services, providers and other systems are going to be one of the main driving forces behind this latest surge we imagine.</p>
<p>In particular large businesses are using these on an enterprise level, as described above, and IoT for consumers are also on the verge of taking off. But there's an entirely different middle-ground that might actually be the most profitable at the moment.</p>
<p>Sport stadiums, public roads and facilities, government sponsored buildings and open areas are just a few of the most interesting areas to follow.</p>
<p>These large entities all have the money to invest in connected devices, and a commercial interest in doing so. Unlike the private consumers that might just make their life slightly more convenient, these entities and organizations stand to profit by attracting more people to their locations, and creating new markets all together.</p>
<a href="#hybrid-app-development-losing-traction"><h2 class="inline" id="hybrid-app-development-losing-traction">Hybrid App Development Losing Traction</h2></a>
<div class="picture"><img src="/img/blog/118/imac.jpg" alt="Devices" /></div>

<p>There's been a lot of hype these past couple of years concerning the advance of hybrid development - but praxis has showed costs not always ranging much lower than native development, and the performance issues coupled with the lack of native hardware support has meant several large projects originally starting in hybrid frameworks, have moved to native development - mid project no less!</p>
<p>Another important issue is the fact that hybrid apps rarely feels as nice and sleek as their native counterparts, due to performance and integration, as well as the fundamental difference between coding software for multiple platforms at once, thereby skipping over device or OS specific features that can make all the difference on the end-users first impression.</p>
<p>At Nodes we still use both types of approaches, based on individual needs, so there's still cases where hybrid apps are clearly better, but they are not going to take over the world of native apps anytime soon by the looks of things.</p>
<a href="#the-internet-of-things-still-growing-stronger"><h2 class="inline" id="the-internet-of-things-still-growing-stronger">The Internet of Things still growing stronger</h2></a>
<div class="picture"><img src="/img/blog/118/code-01.jpg" alt="IoT code" /></div>

<p>While the initial craze has slowly begun to subside, the daily realities of IoT technology is beginning to make an impact on our daily lives. Initially lauded as being a game changer, this particular technology might very well change all of our lives, but perhaps not entirely as previously thought.</p>
<p>The cost of converting all devices in any given home is still too high, and even for newly built houses and apartments, the cost still acts as an inhibitor for most of the world’s population.</p>
<p>While the hardware is the limiting factor in the expansion of IoT devices at home, the cost of developing software for these devices are dwindling on an almost daily basis. From the older frameworks such as AngularJS, Backbone and Apache Cordova, to some of the latest such as Apple's Swift, the open-source languages and frameworks are lowering the barrier of entry for indie developers from all corners of the world.</p>
<p>So while the hardware still has some way to go before making a huge impact, the software part, both front- and backend-wise are ready and waiting..</p>
<a href="#location-based-services"><h2 class="inline" id="location-based-services">Location Based Services</h2></a>
<div class="picture"><img src="/img/blog/118/code-02.jpg" alt="Location matters" /></div>

<p>Beacon technology has been falling out of favor in general, with GPS taking over many aspects usually regarded as perfect beacon candidates, and with an ever increasing usage of GPS and 3G/4G Networks, as well as an increase in time online, the market is ripe for taking advantage of special offers in local areas, and many other location based services on a whole.</p>
<p>GSM and GPS are a few of the more commonly known points of entry, but another powerful feature is what's known as Control Plane Locating, similar to GSM localization by using cell signals and triangulating, but where GSM location uses multiple cell towers, CPL uses just one, and is thus slower and more inaccurate, but cheaper as well.</p>
<p>JavaScript and HTML5 can easily use geolocation in software applications for little to no cost for the developers or apps themselves, making this another great reason for the decline of Beacon technology this past year.</p>
<p>A combination of all services can provide any app with great location indication, without risking the user’s privacy or safety in the process, thus opening up for a number of interesting projects to take advantage of local advertising.</p>
<a href="#wearables"><h2 class="inline" id="wearables">Wearables</h2></a>
<div class="picture"><img src="/img/blog/118/pexels-01.jpg" alt="iWatch" /></div>

<p>While at first we were skeptical about including this point, due to the lack of explosiveness previously suggested in previous roundups, there's still a thing or two to be said about the wearables. Consumers haven't truly adopted all these gadgets and devices yet, Google Glass and Apple Watch having fallen somewhat under the radar compared to the marketing efforts put forth by the large companies.</p>
<p>The potential for wearables however, is one of a significant magnitude. Many experts seems to consider the cost as being the only real inhibitor, since the benefits of wearables are negligible in most cases, consumers are not prone to pay doubly so for their t-shirts or sneakers yet.</p>
<p>We’re still some years away from having super cheap wifi and gps chips installed in our everyday clothes, but a middle-ground is developing in areas such as Sports, Concert Venues and other areas, tying in with IoT as a whole - currently wearables are more like green energy, in that the commercially viable factor is the driving force behind innovation and adaptation.</p>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<ul class="list-disc list-inside">
<li>Enterprise applications seeing increasing levels of interest and activity</li>
<li>New markets for connected devices appearing and stabilizing</li>
<li>Waiting for the hardware cost to rival the software cost</li>
<li>The Internet of Things still gaining traction</li>
<li>Location Based Services with JS and HTML beating Beacon</li>
<li>Wearables still not worn in yet</li>
</ul>
<p>2016 is shaping up to be a year of transition, no real new technologies have emerged that are dominating the world of mobile apps, but there are several contenders ready to become the next big thing, once certain factors stabilize or they get more established.</p>
<p>Paired with a potentially lower cost of hardware, it will be interesting to follow the current trends and see which ones are going to make it, and which ones are going to fade away into oblivion.</p>
<a href="#about-guest-author"><h2 class="inline" id="about-guest-author">About Guest Author</h2></a>
<p>Mark Pedersen is an app developer at <a class="underline" href="http://www.nodesagency.com">Nodes</a> a UK and Denmark based company specializing in mobile application development for medium to large businesses and enterprises. He is actively reading up on the latest gadget gossip, and loves to play around with jsFiddle.</p>
]]></content></entry><entry><title>JSter #77: News of August 2016 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-august-2016-part-2"></link><id>monthly-jster-august-2016-part-2</id><published>2016-09-02T08:12:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Rock and JavaScript.</p>
</blockquote>
<p>Reactabular, that React table component of mine, <a class="underline" href="http://reactabular.js.org/">reached 3.0</a>. I also gave a presentation related to the topic. Check out the <a class="underline" href="https://survivejs.github.io/react-api-design">slides</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/pakastin/redom">https://github.com/pakastin/redom</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://redom.js.org/">RE:DOM</a> - DOM rethought</li>
<li><a class="underline" href="https://kyleamathews.github.io/typography.js/">Typography.js</a> - Nice typography for the web</li>
<li><a class="underline" href="http://introjs.com/">Intro.js</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.backalleycoder.com/2016/08/26/demythstifying-web-components/">Demythstifying Web Components</a></li>
<li><a class="underline" href="https://bocoup.com/weblog/test262-is-a-javascript-sideshow">Test262 is a JavaScript Sideshow</a> - Finding the quirks of JavaScript</li>
<li><a class="underline" href="http://www.macwright.org/2016/08/21/restrictive-not-opinionated.html">Restrictive programming</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://hecodes.com/2016/08/building-real-time-collaboration-applications-three-js/">Building Real-Time Collaboration Applications in Three.js</a></li>
<li><a class="underline" href="https://code.lengstorf.com/learn-rollup-js/">How to Bundle JavaScript With Rollup</a></li>
<li><a class="underline" href="http://www.telescopeapp.org/">Telescope: Build your own Hacker News, Reddit, or Product Hunt.</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/lodash/lodash/wiki/FP-Guide">Lodash FP Guide</a></li>
<li><a class="underline" href="https://github.com/thejameskyle/itsy-bitsy-data-structures">Itsy bitsy data structures</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jaketrent.com/post/handle-errors-node-app/">Handle Errors in a Node App</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2016/08/using-feature-queries-in-css/">Using Feature Queries in CSS</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/purescript-interview/">PureScript - Strongly Typed Programming Language Compiling to JavaScript - Interview with Phil Freeman</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/MattSurabian/DuckHunt-JS">Duck hunt in JavaScript</a></li>
<li><a class="underline" href="https://bombsweeper.js.org/">Bombsweeper!</a> - Minesweeper in JavaScript</li>
</ul>
<a href="#languages"><h2 class="inline" id="languages">Languages</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blogs.msdn.microsoft.com/typescript/2016/08/30/announcing-typescript-2-0-rc/">TypeScript 2.0 Release Candidate</a></li>
<li><a class="underline" href="https://bloomberg.github.io/bucklescript/">BuckleScript 1.0</a> - OCaml for the web</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/Munter/hyperlink">hyperlink</a> - Check your site links for errors</li>
<li><a class="underline" href="https://prosecco.surge.sh/">Prosecco</a> - The fast, future-friendly minifier by Rich Harris</li>
<li><a class="underline" href="https://alpha.trycarbide.com/">Carbide Alpha</a> - Interactive editor</li>
<li><a class="underline" href="https://github.com/keystonejs/keystone/issues/3415">Keystone CMS 4.0.0 Beta</a></li>
<li><a class="underline" href="https://www.npmjs.com/package/slow-deps">slow-deps</a> - Measure which dependencies in a project are slowest to install</li>
<li><a class="underline" href="http://documentcss.com/">DocumentCSS</a> - Create living style guides with interactive examples, that change as your design does</li>
<li><a class="underline" href="https://github.com/gmetais/sw-delta">gmetais/sw-delta</a> - An incremental cache for the web</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://codepen.io/tnottu/pen/QEPREE">Easiest spinner</a></li>
<li><a class="underline" href="https://codepen.io/Sukk4/pen/VjNowW">Pokeball 3D</a></li>
</ul>
]]></content></entry><entry><title>JSter #76: News of August 2016 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-august-2016-part-1"></link><id>monthly-jster-august-2016-part-1</id><published>2016-08-18T06:46:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Maybe I JavaScripted, maybe I didn't. - Matti Nykänen</p>
</blockquote>
<p>I published a new version of <a class="underline" href="http://reactabular.js.org/">Reactabular</a> so check it out if you need a table component for React. The logic is decoupled so you could reuse some of that in other environments. I also came up with <a class="underline" href="https://survivejs.github.io/react-api-design">slides related to the topic</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://alemangui.github.io/pizzicato/">https://alemangui.github.io/pizzicato/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://alemangui.github.io/pizzicato/">Pizzicato.js</a> - A Javascript library for web audio</li>
<li><a class="underline" href="http://domtastic.js.org/">DOMtastic</a> - Small, fast, and modular DOM & Event library for modern browsers</li>
<li><a class="underline" href="https://medium.com/@mweststrate/introducing-serializr-serializing-and-deserializing-object-graphs-with-ease-8833c3fcea02">Introducing serializr: serializing and deserializing object graphs with ease</a></li>
<li><a class="underline" href="https://github.com/liftoff/HumanInput">liftoff/HumanInput</a> - A JavaScript library for handling keyboard shortcuts and other human-generated events</li>
<li><a class="underline" href="http://popper.js.org/">Popper.js</a> - Poppers for websites</li>
<li><a class="underline" href="https://github.com/FelixRilling/chevronjs">FelixRilling/chevronjs</a> - A super tiny JavaScript service library</li>
<li><a class="underline" href="https://github.com/Ramotion/aquarelle">Ramotion/aquarelle</a> - Watercolor JavaScript effect</li>
<li><a class="underline" href="https://github.com/verlok/lazyload">verlok/lazyload</a> - Load images only as they enter the viewport</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@hnry/node-js-web-frameworks-are-slow-3b7dfb5e204d">Node.js web frameworks are slow</a></li>
<li><a class="underline" href="https://github.com/a0viedo/demystifying-js-engines">A selection of articles demystifying JavaScript engines</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2016/08/js13kgames-code-golf-for-game-devs/">js13kGames: Code golf for game devs</a></li>
<li><a class="underline" href="https://blog.risingstack.com/node-js-examples-how-enterprises-use-node-in-2016/">Examples of How Enterprises Use Node.js in 2016</a></li>
<li><a class="underline" href="https://medium.com/@bebraw/the-case-for-monorepos-907c1361708a">The Case for Monorepos</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/outsystems-experts/beyond-memory-leaks-in-javascript-d27fd48ae67e">Beyond Memory Leaks in JavaScript</a></li>
<li><a class="underline" href="http://teropa.info/blog/2016/08/08/angular-2-hot-loading-with-ngrx-store-and-webpack.html">Angular 2 Hot Loading with @ngrx/store and Webpack</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2016/08/animating-like-you-just-dont-care-with-element-animate/">Animating like you just don’t care with Element.animate</a></li>
<li><a class="underline" href="http://jaketrent.com/post/testing-es2015-riot-tags/">Testing es2015 Riot Tags</a></li>
<li><a class="underline" href="https://developers.google.com/web/showcase/2016/service-worker-perf">Measuring the Real-world Performance Impact of Service Workers</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/codeceptjs-interview/">CodeceptJS - Modern Era Acceptance Testing for Node.js - Interview with Michael Bodnarchuk</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://alf.nu/ReturnTrue">return true to win</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hyperterm.org/">HyperTerm</a> - Forget iTerm, the new king is here</li>
<li><a class="underline" href="http://www.shiftjs.com/">ShiftJS</a> - ShiftJS is an open source Swift to JavaScript transpiler written in JavaScript</li>
<li><a class="underline" href="https://github.com/launchkit/launchkit">launchkit</a> - A set of web-based tools for mobile app developers</li>
<li><a class="underline" href="https://github.com/rofrischmann/inline-style-prefixer">rofrischmann/inline-style-prefixer</a> - Run-time autoprefixer for inline style objects</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://sciencevsmagic.net/castles/">Castles made of castles</a> - WebGL demo</li>
<li><a class="underline" href="https://butterchurnviz.com/">Butterchurn Visualizer</a> - Milkdrop nostalgy</li>
<li><a class="underline" href="https://codepen.io/hexagoncircle/details/OXBJxV/">SMB3 Memory Card Game</a></li>
<li><a class="underline" href="https://dattasid.github.io/ProcInsect.html">Procedural insects</a></li>
</ul>
]]></content></entry><entry><title>JSter #75: News of July 2016 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-july-2016-part-2"></link><id>monthly-jster-july-2016-part-2</id><published>2016-08-03T08:48:03.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>To JavaScript or not.</p>
</blockquote>
<p>I managed to reach 1.0 with my table component, <a class="underline" href="http://reactabular.js.org/">Reactabular</a>. The development will go on, but from now I can focus more on other things like writing.</p>
<p>You might notice there are more links than usual. There is simply more content to <a class="underline" href="https://twitter.com/jsterlibs">tweet</a> these days. I might have to go to a weekly schedule with this mailing list but we'll see.</p>
<a href="#ui"><h2 class="inline" id="ui">UI</h2></a>
<p>{{ screenshot: <a class="underline" href="https://zingchart.github.io/zingtouch/">https://zingchart.github.io/zingtouch/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://zingchart.github.io/zingtouch/">ZingTouch</a> - A JavaScript gesture detection library for the modern web</li>
<li><a class="underline" href="http://monkberry.js.org/">Monkberry</a> - A JavaScript library for building web user interfaces</li>
<li><a class="underline" href="http://callmecavs.com/bricks.js/">Bricks.js</a> - A blazing fast masonry layout generator for fixed width elements</li>
<li><a class="underline" href="http://fela.js.org/">Fela</a> - Fela is a fast and modular library to handle styling in JavaScript.</li>
<li><a class="underline" href="http://anime-js.com/">anime.js</a> - A flexible yet lightweight JavaScript animation library. It works with CSS, Individual Transforms, SVG, DOM attributes and JS Objects.</li>
</ul>
<a href="#i18n"><h2 class="inline" id="i18n">i18n</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://slexaxton.github.io/Jed/">Jed</a> - Gettext Style i18n for Modern JavaScript Apps</li>
</ul>
<a href="#data-structures"><h2 class="inline" id="data-structures">Data Structures</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/cujojs/most">most.js 1.0</a> - Ultra-high performance reactive programming</li>
<li><a class="underline" href="https://github.com/leebyron/iterall">iterall</a> - Minimal zero-dependency utilities for using Iterables in all JavaScript environments.</li>
<li><a class="underline" href="https://github.com/rtfeldman/seamless-immutable">seamless-immutable</a> - Immutable data structures for JavaScript which are backwards-compatible with normal JS Arrays and Objects.</li>
<li><a class="underline" href="https://github.com/mars/episode-7">Episode 7</a> - Sequence async side-effects with ES6 generators and easily test them.</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.durandal.io/2016/07/27/aurelia-1-0-is-here/">Aurelia 1.0</a></li>
<li><a class="underline" href="https://vsavkin.com/two-phases-of-angular-2-applications-fda2517604be">Two Phases of Angular 2 Applications</a></li>
<li><a class="underline" href="http://freezeprosoftware.com/news/reactjs-vs-angularjs.aspx">ReactJS vs AngularJS</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@shaunbent/css-at-bbc-sport-part-1-bab546184e66">CSS at BBC Sport (Part 1)</a></li>
<li><a class="underline" href="https://eager.io/blog/the-languages-which-almost-were-css/">The Languages Which Almost Were CSS</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://dinosaurscode.xyz/tutorials/2016/07/15/three-js-tutorial-for-beginners/">Three.js Tutorial for Beginners</a></li>
<li><a class="underline" href="http://blog.krawaller.se/posts/stupidly-smart-components-in-choo/">Stupidly smart components in Choo</a></li>
<li><a class="underline" href="https://medium.com/@tarkus/how-to-build-and-publish-es6-modules-today-with-babel-and-rollup-4426d9c7ca71">How to Build and Publish ES6 Modules Today, with Babel and Rollup</a></li>
<li><a class="underline" href="http://houssein.me/redux/immutablejs/angular2/2016/07/04/angular2-with-immutablejs-and-redux.html">Building Angular 2 applications with Immutable.js and Redux</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://teropa.info/blog/2016/07/28/javascript-systems-music.html">JavaScript Systems Music - Learning Web Audio by Recreating The Works of Steve Reich and Brian Eno</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.freecodecamp.com/write-modern-asynchronous-javascript-using-promises-generators-and-coroutines-5fa9fe62cf74">Write Modern Asynchronous Javascript using Promises, Generators, and Coroutines</a></li>
<li><a class="underline" href="https://robots.thoughtbot.com/javascript-audio-api">Brief Introduction to JavaScript Audio API</a></li>
<li><a class="underline" href="https://github.com/1-liners/1-liners">JavaScript oneliners</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2016/06/webfont-preloading-for-html5-games/">Web Font preloading for HTML5 games</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/mostly-interview/">Mostly Adequate Guide to Functional Programming - Interview with Brian Lonsdorf</a></li>
<li><a class="underline" href="http://survivejs.com/blog/tcomb-interview/">tcomb - Type checking and DDD for JavaScript - Interview with Giulio Canti</a></li>
<li><a class="underline" href="http://survivejs.com/blog/redux-saga-interview/">redux-saga - Saga Middleware for Redux to Handle Side Effects - Interview with Yassine Elouafi</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://iros.github.io/d3-v4-whats-new/">Slides - D3.js v4 - What's new</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://whitestormjs.xyz/">WhitestormJS 1.0</a> - Easier Three.js.</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hyperterm.org/">HyperTerm</a> - Utterly tweakable terminal written in JavaScript</li>
<li><a class="underline" href="https://github.com/motion/pundle">Pundle</a> - Peaceful Bundles (pundles!) for everyone</li>
<li><a class="underline" href="http://chromelens.xyz/">ChromeLens</a> - Chrome DevTools extension to develop for the visually impaired</li>
<li><a class="underline" href="https://github.com/mochajs/mocha/blob/master/CHANGELOG.md">Mocha 3.0.0</a> - The popular test framework has received nice updates</li>
<li><a class="underline" href="http://jxnblk.com/formula/">Formula</a> - CSS calculator for bulletproof form and button styles that always line up</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://pattle.github.io/simpsons-in-css/">The Simpsons in CSS</a></li>
</ul>
]]></content></entry><entry><title>JSter #74: News of July 2016 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-july-2016-part-1"></link><id>monthly-jster-july-2016-part-1</id><published>2016-07-17T10:12:54.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>One language to rule them all. JavaScript.</p>
</blockquote>
<p>Another two weeks have gone. I'm closer to the final release of my <a class="underline" href="reactabular.js.org">table library for React</a>. I've also been working on <a class="underline" href="https://medium.com/webpack/webpack-2-docs-team-wants-you-20876c59e964">webpack 2 documentation</a> and the effort is well under way.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/flitbit/diff">https://github.com/flitbit/diff</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/flitbit/diff">flitbit/diff</a> - Utility for calculating deep difference, capturing changes, and applying changes across objects</li>
<li><a class="underline" href="https://github.com/planttheidea/crio">planttheidea/crio</a> - Immutable objects and arrays in a natural way</li>
<li><a class="underline" href="https://github.com/Gaafar/deppie">Gaafar/deppie</a> - Simple, elegant Dependency Injection framework</li>
<li><a class="underline" href="https://github.com/openfin/fin-hypergrid">openfin/fin-hypergrid</a> - A canvas-based super high performant grid control</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://eager.io/blog/everything-I-know-about-the-script-tag/">Everything Zack Bloom Knows About the Script Tag</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://cultureofdevelopment.com/blog/build-your-first-thing-with-web-assembly/">Build Your First Thing With WebAssembly</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.freecodecamp.com/dynamic-mocking-with-kakapo-js-bdbd3d7b58e2">Dynamic mocking with Kakapo.js</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/snabbdom-interview/">Snabbdom interview</a> - Learn about virtual DOM and this light implementation.</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/benjamn/reify">benjamn/reify</a> - Enable ECMAScript 2015 modules in Node today</li>
<li><a class="underline" href="https://github.com/developit/undom">developit/undom</a> - A 1kb minimally viable DOM Document implementation</li>
<li><a class="underline" href="http://mincss.com/">min</a> - Minimal CSS framework</li>
<li><a class="underline" href="https://github.com/albertxing/stool">albertxing/stool</a> - A JavaScript benchmarking utility</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://codepen.io/juliangarnier/pen/BsIih">CSS 3D Hartwig chess set (fully playable)</a></li>
<li><a class="underline" href="https://github.com/ManrajGrover/SingleDivProject">ManrajGrover/SingleDivProject</a> - Single div, lots of possibilities</li>
</ul>
]]></content></entry><entry><title>JSter #73: News of June 2016 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-june-2016-part-2"></link><id>monthly-jster-june-2016-part-2</id><published>2016-07-04T02:37:11.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript a day keeps the doctor away.</p>
</blockquote>
<p>I've been working on <a class="underline" href="reactabular.js.org">Reactabular</a>, a data grid component for React. There's more information at the <a class="underline" href="https://github.com/bebraw/reactabular/issues/148">beta thread</a>.</p>
<p>In other news <a class="underline" href="https://medium.com/webpack/webpack-its-getting-real-92c60fca1db1">webpack has received an official blog</a>. I'll be coordinating the documentation efforts. It's quite a challenge given there's a lot to cover.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://theonion.github.io/comcastifyjs/">https://theonion.github.io/comcastifyjs/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/d3/d3/releases/v4.0.0">D3 v4.0.0</a> - The most advanced SVG based visualization library has reached a major milestone</li>
<li><a class="underline" href="https://github.com/rstacruz/onmount">rstacruz/onmount</a> - Safe, reliable, idempotent and testable behaviors for DOM nodes</li>
<li><a class="underline" href="https://theonion.github.io/comcastifyjs/">ComcastifyJS by theonion</a> - If your site feels too fast, try this</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://robots.thoughtbot.com/you-don-t-need-javascript-for-that">You Don't Need JavaScript for That!</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2016/06/helping-web-developers-with-javascript-errors/">Helping web developers with JavaScript errors</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@leo/getting-started-with-javascript-robotics-5c54e716562c">Getting Started with JavaScript Robotics</a></li>
<li><a class="underline" href="https://ines.io/blog/dynamic-duotone-svg-jade">Dynamic duotone SVG images with feColorMatrix and Jade</a></li>
<li><a class="underline" href="https://29a.ch/2010/5/17/path-tracing-a-cornell-box-in-javascript">Path tracing a cornell box in Javascript</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jlongster.com/Exploring-Continuations-Resumable-Exceptions">Exploring Continuations: Resumable Exceptions</a></li>
<li><a class="underline" href="http://codersblock.com/blog/motion-detection-with-javascript/">Motion Detection with JavaScript</a></li>
<li><a class="underline" href="https://blog.risingstack.com/node-js-logging-tutorial/">How to Get Node.js Logging Right</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.vanillalist.com/">Vanilla List</a> - The Vanilla Javascript Repository</li>
<li><a class="underline" href="https://developer.mozilla.org/en-US/Learn">Learning web development</a> - MDN has a new learning section</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jasonpark.me/AlgorithmVisualizer/">Algorithm Visualizer</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://neography.com/experiment/circles/solarsystem/">Our Solar System</a></li>
<li><a class="underline" href="http://edankwan.com/experiments/particle-love/">Particle Love</a></li>
</ul>
]]></content></entry><entry><title>JSter #72: News of June 2016 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-june-2016-part-1"></link><id>monthly-jster-june-2016-part-1</id><published>2016-06-17T04:02:14.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>New day, new JavaScript library to learn.</p>
</blockquote>
<p>It has been another busy two weeks. The culmination point of that was a <a class="underline" href="http://survivejs.com/blog/survivejs-webpack-131/">new release of my Webpack book</a>. I also participated in <a class="underline" href="https://javascriptair.com/episodes/2016-06-08/">a Webpack themed JavaScript Air</a> and <a class="underline" href="http://threedevsandamaybe.com/introduction-to-webpack-with-juho-veps%C3%A4l%C3%A4inen/">Three Devs and a Maybe podcast (Webpack again)</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://blog.jquery.com/2016/06/09/jquery-3-0-final-released/">https://blog.jquery.com/2016/06/09/jquery-3-0-final-released/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.jquery.com/2016/06/09/jquery-3-0-final-released/">jQuery 3.0 Final Released!</a></li>
<li><a class="underline" href="https://gka.github.io/chroma.js/">chroma.js</a> - A tiny library for dealing with colors</li>
<li><a class="underline" href="https://github.com/power-assert-js/power-assert">Power Assert</a> - Descriptive assertion messages through the standard assert interface</li>
<li><a class="underline" href="http://www.vanillalist.com/plugins/rellax-js/">Rellax.js</a> - Lightweight parallax scrolling library for desktop browsers</li>
<li><a class="underline" href="http://ricostacruz.com/scour/">scour.js</a> - Traverse objects and arrays immutably</li>
<li><a class="underline" href="https://asvd.github.io/microlight/">Microlight.js</a> - A light code highlighting library</li>
<li><a class="underline" href="https://googlecreativelab.github.io/anypixel/">anypixel.js</a> - Create and control unusual displays with JavaScript</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2016/06/basics-of-building-3d-games-on-the-web/">Basics of building 3D games on the Web</a></li>
<li><a class="underline" href="https://www.sitepoint.com/lodash-features-replace-es6/">10 Lodash Features You Can Replace with ES6</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jster.net/blog/understanding-cors">Understanding CORS</a></li>
<li><a class="underline" href="http://jlongster.com/Implementing-Stepping-Debugger-JavaScript">Implementing a Stepping Debugger in JavaScript</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/npms-interview/">SurviveJS - npms.io interview</a> - A new service for discovering npm packages</li>
<li><a class="underline" href="http://survivejs.com/blog/mikey-interview/">SurviveJS - Mikey interview</a> - A powerful CLI for generating React/Redux projects</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://alm.tools/">ALM Tools for TypeScript</a> - An IDE just for TypeScript</li>
<li><a class="underline" href="http://blog.npmjs.org/post/145260155635/introducing-hooks-get-notifications-of-npm">npm has gained notification hooks</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://aatishb.github.io/drape/">Drape</a> - Cloth simulator</li>
<li><a class="underline" href="https://yiwenl.github.io/Sketches/">WebGL Sketches for inspiration</a></li>
</ul>
]]></content></entry><entry><title>Understanding CORS</title><link rel="alternate" type="text/html" href="https://jster.net/blog/understanding-cors"></link><id>understanding-cors</id><published>2016-06-07T09:01:26.000Z</published><content type="text/html"><![CDATA[<p>In this guest article by <a class="underline" href="https://twitter.com/monmohan_singh">Monmohan Singh</a> we'll explore the topic of CORS (Cross-Origin Resource sharing). It's one of those topics that comes up often in web development. We'll go through the basics, learn what's needed to support CORS, and walk through the ideas through sample code.</p>
<a href="#code-samples"><h2 class="inline" id="code-samples">Code Samples</h2></a>
<p>All the code shown in this post is available at <a class="underline" href="https://github.com/monmohan/cors-experiment">GitHub</a>. The server code has been written in Go while the client samples use JavaScript and <a class="underline" href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest">XMLHttpRequest</a>.</p>
<p>Although the server code is in Go, I don't expect you to understand the language in great detail. The code examples should read well despite the language. You can run the code locally by following instructions at the <a class="underline" href="https://github.com/monmohan/cors-experiment/blob/master/README.md">project readme</a>.</p>
<a href="#cross-origin-resource-sharing-cors-"><h2 class="inline" id="cross-origin-resource-sharing-cors-">Cross-Origin Resource Sharing (CORS)</h2></a>
<p><a class="underline" href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS">CORS</a> is a W3C specification that allows cross-domain communication from the browser. CORS is becoming increasingly more important as we use multiple API's and services to create a mashups and stitched user experiences. In order to understand CORS, we need to understand the concept of an <strong>origin</strong> first.</p>
<a href="#what-is-an-origin-"><h3 class="inline" id="what-is-an-origin-">What is an Origin?</h3></a>
<p>Two pages have the same origin if the protocol, port (if one is specified), and host are the same for both pages. This means that <code>http://api.mysite.com/resource.html</code> has same origin as <code>http://api.mysite.com/somepath/resource2.html</code> but a different origin than <code>http://api.mysite.com:99/resource.html</code> (different port) or <code>https://api.mysite.com:99/resource.html</code> (different protocol).</p>
<p>There are some exceptions to the above rule (mostly by, surprise surprise IE!) but they are non-standard.</p>
<a href="#same-origin-policy"><h3 class="inline" id="same-origin-policy">Same Origin Policy</h3></a>
<p>By default, Browsers enforce <strong>Same Origin Policy</strong> for HTTP requests initiated from within scripts. A web application using <code>XMLHttpRequest</code> can only make HTTP requests to its own domain.</p>
<p>One important thing to be aware of is that cross origin <strong>embedding</strong> is allowed. Browsers can load scripts (source), images, media files embedded within the page even if they are from a different origin.</p>
<a href="#how-does-cors-work-"><h3 class="inline" id="how-does-cors-work-">How Does CORS Work?</h3></a>
<p><a class="underline" href="https://www.w3.org/TR/cors/">The CORS standard</a> works by adding new HTTP headers that allow servers to describe the set of origins that are permitted to read that information using a web browser. It is important to note that the servers are in control, not the client. The following examples illustrate how this happens.</p>
<p>In this post we will focus on the main restriction, cross origin requests using <code>XMLHttpRequest</code>.</p>
<a href="#example-1-simple-request"><h2 class="inline" id="example-1-simple-request">Example 1 - Simple Request</h2></a>
<p>Let's see what happens when we do a cross origin <code>XMLHttpRequest</code>. For this example, we will be running two servers: PageServer and ApiServer.</p>
<p><strong>PageServer</strong> is a simple server which serves the requested page. This server runs on a port 12345 and serves an HTML file. You can override the port by providing -port option when running the server. Here is relevant code:</p>
<pre><code class="clojure">func fileHandler(w http.ResponseWriter, r *http.Request) {
  fmt.Printf("Requested URL %v\n", r.URL.Path)

  if *setCookie {
  http.SetCookie(w, &http.Cookie{Name: "token", Value: "secret_token"})
  }

  http.ServeFile(w, r, r.URL.Path[1:])
}

func main() {
  flag.Parse()
  http.HandleFunc("/", fileHandler)
  log.Fatal(http.ListenAndServe(fmt.Sprintf("localhost:%d", *port), nil))
}
</code></pre>

<p>Start the page server:</p>
<pre><code class="bash">$ cd pageserver
$ go run pageserver.go
</code></pre>

<p><strong>ApiServer</strong> is a server that exposes a basic User REST API that return a JSON representing a User object based on the user name in the request url. The User is just a simple struct saved in an in-memory map. The servers will run by default on port 12346</p>
<blockquote>
<p>NOTE: You can change the port by providing the -port option when you run the program but you will need to update the HTML files to point to new host:port combination</p>
</blockquote>
<p>Here's the implementation:</p>
<pre><code class="go">var userData = map[string]User{
  "john": User{"jdoe", "John", "Doe", "France"},
}
var port = flag.Int("port", 10001, "help message for flagname")

func userHandler(w http.ResponseWriter, r *http.Request) {
  w.Header().Set("Content-Type", "application/json")
  b, _ := json.Marshal(userData[r.URL.Path[len("/users/"):]])
  io.WriteString(w, string(b))

}

func main() {
  flag.Parse()
  http.HandleFunc("/users/", userHandler)
  log.Fatal(http.ListenAndServe(fmt.Sprintf("localhost:%d", *port), nil))
}
</code></pre>

<p>Run the simple ApiServer:</p>
<pre><code class="bash">$ cd apiserver
$ go run apiserver.go
</code></pre>

<p>Open the browser and load <strong><a class="underline" href="http://localhost:12345/showuser.html">http://localhost:12345/showuser.html</a></strong> .Here is how this looks</p>
<div class="picture"><img src="/img/blog/110/01.png" alt="ShowUser" /></div>

<p>If you click "show", it is supposed to go to <a class="underline" href="http://localhost:12346/users/john">http://localhost:12346/users/john</a> and get the user json to display but instead you see this error in console :</p>
<blockquote>
<p>showuser.html:1 XMLHttpRequest cannot load <a class="underline" href="http://localhost:12346/users/john">http://localhost:12346/users/john</a>. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '<a class="underline" href="http://localhost:12345">http://localhost:12345</a>' is therefore not allowed access.</p>
</blockquote>
<p>This is known as a <strong>Simple</strong> Cross origin <code>GET</code> request. Simple requests are requests that meet the following criteria:</p>
<ul class="list-disc list-inside">
<li>HTTP Method matches one of <code>HEAD</code>, <code>GET</code> or <code>POST</code></li>
<li>HTTP Headers matches one or more of these<ul class="list-disc list-inside">
<li><code>Accept</code></li>
<li><code>Accept-Language</code></li>
<li><code>Content-Language</code></li>
<li><code>Content-Type</code>, but only if the value is one of:</li>
<li><code>application/x-www-form-urlencoded</code>, <code>multipart/form-data</code>, <code>text/plain</code></li>
</ul>
</li>
</ul>
<p>Let's see what we can do to succeed in serving a simple cross origin request:</p>
<ul class="list-disc list-inside">
<li>Stop the simple apiserver</li>
<li>Start the apiserver_allow_origin server.</li>
</ul>
<pre><code class="bash">
$ go run apiserver_allow_origin.go
</code></pre>

<p>We added <code>Access-Control-Allow-Origin</code> header for any incoming <code>GET</code> request above. The value of the header is same as the value sent by browser for the <code>Origin</code> header in the request. This is equivalent to allowing requests that come from any origin (*) like this:</p>
<pre><code class="go">func corsWrapper(fn func(http.ResponseWriter, *http.Request)) httpHandlerFunc {
  return func(w http.ResponseWriter, r *http.Request) {
  origin := r.Header.Get("Origin")
  fmt.Printf("Request Origin header %s\n", origin)

  if origin != "" {
    w.Header().Set("Access-Control-Allow-Origin", origin)
  }

  fn(w, r)
  }
}
</code></pre>

<p>Let's attempt clicking the "show" button again. Given we have set the header, we should get data as expected:</p>
<pre><code class="json">{
  "UserName":"jdoe",
  "FirstName":"John",
  "LastName":"Doe",
  "Country":"France"
}
</code></pre>

<p>Its all good until we realize that just adding <code>Access-Control-Allow-Origin</code> isn't sufficient for certain "complex" requests (or anything which isn't covered in the Simple request). An example of such a request is a <code>POST</code> request with <code>Content-Type</code> set as <code>application/json</code>.</p>
<a href="#example-2-complex-request"><h2 class="inline" id="example-2-complex-request">Example 2 - Complex Request</h2></a>
<p>To get started, point your browser to <a class="underline" href="http://localhost:12345/createUser.html">http://localhost:12345/createUser.html</a> . This is a simple form which looks like below. Entering the data and clicking "create" send a <code>POST</code> request to the ApiServer in-memory store</p>
<div class="picture"><img src="/img/blog/110/02.png" alt="CreateUser" /></div>

<p>Add some string data in the form fields and click "create" button. This should convert the data to JSON and do a <code>POST</code> to <a class="underline" href="http://localhost:12346/users">http://localhost:12346/users</a> with the JSON data as the body of the request. Here is the relevant code in <strong>createUser.html</strong>:</p>
<pre><code class="javascript">function sendRequest(url) {
  var oReq = new XMLHttpRequest();

  oReq.addEventListener("load", reqListener);
  oReq.open("POST", url);
  oReq.setRequestHeader("Content-Type", "application/json")

  var data = serializeUser($('#fcreate').serializeArray());

  console.log(data)

  oReq.send(JSON.stringify(data));
}
</code></pre>

<p>But once you hit "create", the browser should show the following error:</p>
<blockquote>
<p>XMLHttpRequest cannot load <a class="underline" href="http://localhost:12346/users">http://localhost:12346/users</a>. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '<a class="underline" href="http://localhost:12345">http://localhost:12345</a>' is therefore not allowed access.</p>
</blockquote>
<a href="#pre-flight"><h2 class="inline" id="pre-flight">Pre-Flight</h2></a>
<p>What we called as "Complex" request actually causes two HTTP requests. The browser first issues a preflight or an <code>OPTIONS</code> request, which is basically asking the server for permission to make the actual request. Once permissions have been granted, the browser makes the actual request. In this case, the pre-flight request is something like below:</p>
<pre><code class="bash">OPTIONS /users HTTP/1.1
Host: localhost:12346
Connection: keep-alive
Access-Control-Request-Method: POST
Origin: http://localhost:12345
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36
Access-Control-Request-Headers: content-type
Accept: */*
Referer: http://localhost:12345/createUser.html
</code></pre>

<p>The preflight request contains a few additional headers:</p>
<ul class="list-disc list-inside">
<li><code>Access-Control-Request-Method</code> - The HTTP method of the actual request.</li>
<li><code>Access-Control-Request-Headers</code> - A comma-delimited list of non-simple headers that are included in the request. Notice that all CORS related headers are prefixed with <code>Access-Control-</code>.</li>
</ul>
<p>In order for the <code>POST</code> to succeed, the server should support this request, "granting" permission based on the above request headers. Lets do that:</p>
<ul class="list-disc list-inside">
<li>Stop apiserver_allow_origin</li>
<li>Start apiserver_preflight</li>
</ul>
<pre><code class="bash">$ go run apiserver_preflight
</code></pre>

<p>What we have done here is added some code in the apiserver to respond to <code>OPTIONS</code> request, granting the permission for <code>GET</code>, and <code>POST</code> calls with <code>Content-Type</code> header.</p>
<pre><code class="clojure">func optionsWrapper(fn func(http.ResponseWriter, *http.Request)) http.HandlerFunc {
  return func(w http.ResponseWriter, r *http.Request) {
  reqMethod := r.Header.Get("Access-Control-Request-Method")
  reqHeader := r.Header.Get("Access-Control-Request-Headers")

  //check for validity
  if (r.Method == "OPTIONS") && (reqMethod == "GET" || reqMethod == "POST") &&
    (strings.EqualFold(reqHeader, "Content-Type")) {
    w.Header().Set("Access-Control-Allow-Methods", "POST, GET")
    w.Header().Set("Access-Control-Allow-Headers", "Content-Type")
    return
  }

  fn(w, r)
  }
}
</code></pre>

<p>Enter data and hit "create" button again. You will see that the request succeeded. Using chrome tools or similar debugger, the response to <code>OPTIONS</code> request can be examined as well.</p>
<pre><code class="bash">>HTTP/1.1 200 OK
*Access-Control-Allow-Headers: Content-Type*
*Access-Control-Allow-Methods: POST, GET, OPTIONS*
Access-Control-Allow-Origin: http://localhost:12345
Date: Thu, 12 May 2016 10:10:13 GMT
Content-Length: 0
Content-Type: text/plain; charset=utf-8
</code></pre>

<p>The response headers from the server grant permission to the different cross origin request methods (comma separated list of <code>GET</code>, <code>POST</code>) and also the allowed headers (in this case <code>Content-Type</code> header).</p>
<p>In addition, the server can also return a header called <code>Access-Control-Max-Age</code>. The value of the header indicates how long the pre-flight response can be cached by the browser and hence browsers can skip the check for that duration.</p>
<a href="#handling-credentials"><h2 class="inline" id="handling-credentials">Handling Credentials</h2></a>
<p>By default, cookies are not included in CORS requests. This means that a cookie set by one origin will not sent as part of the HTTP request sent to the different origin. Let's see an example of that.</p>
<ul class="list-disc list-inside">
<li>Stop apiserver_preflight</li>
<li>Start apiserver_creds_fail</li>
</ul>
<pre><code class="bash">$ go run apiserver\_creds\_fail.go
</code></pre>

<ul class="list-disc list-inside">
<li>Stop pageserver</li>
<li>Start pageserver with cookie option set so that it sets a cookie when serving the page</li>
</ul>
<pre><code class="bash">$ go run pageserver.go -set-cookie
</code></pre>

<ul class="list-disc list-inside">
<li>Point your browser to <a class="underline" href="http://localhost:12345/showusermore.html">http://localhost:12345/showusermore.html</a>.</li>
</ul>
<p>The UI is same as showuser.html but the pageserver_cookie server now adds a cookie <code>(name="token", value="secret_token")</code> to the page when its served.</p>
<p>Also, the apiserver will attempt to read this cookie, and respond with additional secret data.</p>
<pre><code class="go">func userHandler(w http.ResponseWriter, r *http.Request) {
  w.Header().Set("Content-Type", "application/json")
  b, _ := json.Marshal(userData[r.URL.Path[len("/users/"):]])
  io.WriteString(w, string(b))

  if c, err := r.Cookie("token"); err == nil && c.Value == "secret_token" {
  io.WriteString(w, "<br/>Show Secret Data !!")
  }
}
</code></pre>

<p>Enter "john" in the text box and hit "show". The request doesn't succeed!
You will see following error in the console</p>
<blockquote>
<p>XMLHttpRequest cannot load <a class="underline" href="http://localhost:12346/users/john">http://localhost:12346/users/john</a>. Credentials flag is 'true', but the 'Access-Control-Allow-Credentials' header is ''. It must be 'true' to allow credentials. Origin '<a class="underline" href="http://localhost:12345">http://localhost:12345</a>' is therefore not allowed access.</p>
</blockquote>
<p>What happened here is that page tried to send the cookie to the different origin API server. Here is the <code>sendRequest</code> method from page</p>
<pre><code class="javascript">function sendRequest(url) {
  var oReq = new XMLHttpRequest();

  oReq.addEventListener("load", reqListener);
  oReq.withCredentials = true;
  oReq.open("GET", url);
  oReq.send();
}
</code></pre>

<p>Notice the <code>oReq.withCredentials = true;</code> statement. The <code>XMLHttpRequest</code> object needs to set a property called <code>withCredentials</code> in order to share the cookie to the different origin server. However that's not enough.</p>
<p>The server should have responded with a header called <code>Access-Control-Allow-Credentials</code> with value as <code>true</code> in order for this cookie to be accepted. This request header works in conjunction with the <code>XMLHttpRequest</code> property. If <code>withCredentials</code> is <code>true</code>, but there is no <code>Access-Control-Allow-Credentials</code> header, the request will fail. Let's try again</p>
<ul class="list-disc list-inside">
<li>Stop apiserver_creds_fail</li>
<li>Start apiserver_allow_creds</li>
</ul>
<pre><code class="bash">$ go run apiserver_allow_creds.go
</code></pre>

<p>What we done now is added support for <code>Access-Control-Allow-Credentials</code> header like htis:</p>
<pre><code class="go">func corsWrapper(fn func(http.ResponseWriter, *http.Request)) http.HandlerFunc {
  return func(w http.ResponseWriter, r *http.Request) {
  origin := r.Header.Get("Origin")
  fmt.Printf("Request Origin header %s\n", origin)

  if origin != "" {
    w.Header().Set("Access-Control-Allow-Origin", origin)
    w.Header().Set("Access-Control-Allow-Credentials", "true")
  }

  fn(w, r)
  }
}
</code></pre>

<p>Again enter "john" in the text box and hit "show". You should see the following response with the secret data text:</p>
<pre><code class="json">{
  "UserName":"jdoe",
  "FirstName":"John",
  "LastName":"Doe",
  "Country":"France"
}
</code></pre>

<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<p>Hopefully this has given a hands on experience with supporting CORS. There are few more optional headers supported by CORS. To learn more about the subject, please take a look at the links below:</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://code.google.com/archive/p/browsersec/wikis/Part2.wiki#Same-origin_policy">Browser Security Handbook</a></li>
<li><a class="underline" href="https://www.w3.org/TR/cors/">W3C Cross-Origin Resource Sharing</a></li>
<li><a class="underline" href="http://www.html5rocks.com/en/tutorials/cors/#toc-introduction">HTML5 Rocks</a></li>
<li><a class="underline" href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS">CORS on MDN</a></li>
</ul>
]]></content></entry><entry><title>JSter #71: News of May 2016 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-may-2016-part-2"></link><id>monthly-jster-may-2016-part-2</id><published>2016-06-03T03:32:23.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>The world changes. JavaScript stays.</p>
</blockquote>
<p>I reached a major milestone with my book effort as I <a class="underline" href="http://survivejs.com/blog/survivejs-react-253/">finished splitting up my book in two</a>. If you are interested in either Webpack or React, check them out.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://blog.jquery.com/2016/05/20/jquery-3-0-release-candidate-released/">https://blog.jquery.com/2016/05/20/jquery-3-0-release-candidate-released/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.jquery.com/2016/05/20/jquery-3-0-release-candidate-released/">jQuery 3.0 Release Candidate</a></li>
<li><a class="underline" href="http://webgazer.cs.brown.edu/">WebGazer.js</a> - Democratizing Webcam Eye Tracking on the Browser</li>
<li><a class="underline" href="https://medium.com/@mweststrate/mobx-2-2-explicit-actions-controlled-mutations-and-improved-dx-45cdc73c7c8d">MobX 2.2</a> - Explicit actions, controlled mutations and improved DX</li>
<li><a class="underline" href="https://rishabhp.github.io/bideo.js/">bideo.js</a> - Easy Fullscreen HTML5 Background Video</li>
<li><a class="underline" href="https://github.com/Erkaman/gl-rock">Erkaman/gl-rock</a> - Procedural rocks with WebGL</li>
<li><a class="underline" href="https://github.com/spion/promise-streams">spion/promise-streams</a> - A collection of node.js streams that work well with promises (through, map, reduce, etc...)</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://picturepan2.github.io/spectre/">Spectre.css</a> - Lightweight, responsive and modern CSS framework for faster and extensible development</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@andrewingram/why-im-not-using-your-date-picker-e61afc73501">Why I’m Not Using Your Date-picker</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.sitepoint.com/upgrade-to-angular-components/">Upgrade Your App to Angular 1.5 Components and Beyond!</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://ebay.gitbooks.io/mindpatterns/content/">MIND Patterns - Accessibility Patterns for the Web</a></li>
<li><a class="underline" href="https://gkedge.gitbooks.io/javascript-acceptance-testing/content/index.html">JavaScript Acceptance Testing Guide</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/modus-create-front-end-development/optimize-es6-output-size-performance-ninja-tricks-included-d4fc2d313f66">Optimize ES6 Code For Output Minification (Ninja Tricks Included)</a></li>
<li><a class="underline" href="https://mattdesl.svbtle.com/generative-art-with-nodejs-and-canvas">Generative Art with Node.js and Canvas</a></li>
<li><a class="underline" href="https://github.com/jed/140bytes/wiki/Byte-saving-techniques">Byte saving techniques</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.javapoly.com/">JavaPoly.js</a> - Java(script) in the browser</li>
</ul>
<a href="#testing"><h2 class="inline" id="testing">Testing</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/testdouble/test-smells">testdouble/test-smells</a> - A workbook repository of example test smells and what to do about them</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://tympanus.net/Development/DistortedButtonEffects/">Distorted Button Effects</a></li>
</ul>
]]></content></entry><entry><title>JSter #70: News of May 2016 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-may-2016-part-1"></link><id>monthly-jster-may-2016-part-1</id><published>2016-05-17T03:10:20.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript a day keeps the doctor away.</p>
</blockquote>
<p>The book effort is progressing as usual. I published <a class="underline" href="http://survivejs.com/blog/survivejs-webpack-120/">SurviveJS - Webpack 1.2.0</a> in preparation for a bigger one that's coming next. Stay tuned.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/mrdoob/stats.js/">https://github.com/mrdoob/stats.js/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/mrdoob/stats.js/">stats.js</a> - Easy FPS statistics</li>
<li><a class="underline" href="https://davidwalsh.name/can-zone">can-zone</a> - Zone based error handling with JavaScript</li>
<li><a class="underline" href="https://github.com/blog/2167-electron-1-0-is-here">Electron 1.0</a></li>
<li><a class="underline" href="https://github.com/marmelab/gremlins.js">gremlins.js</a> - Monkey testing library for web apps and Node.js</li>
<li><a class="underline" href="https://www.npmjs.com/package/strman">strman</a> - A Javascript string manipulation library without npm dependencies</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.infoq.com/articles/Angular2-TypeScript-High-Level-Overview">Angular 2 and TypeScript</a> - High level overview</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://angularjs.blogspot.fi/2016/04/5-rookie-mistakes-to-avoid-with-angular.html">Angular: 5 Rookie Mistakes to Avoid with Angular 2</a></li>
<li><a class="underline" href="https://www.toptal.com/nodejs/gulp-under-the-hood">Building a Gulp API Compatible Task Automation Tool</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://angular.io/docs/ts/latest/guide/webpack.html">Introduction to Webpack with Angular 2</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/builder-interview/">SurviveJS - Builder interview</a></li>
<li><a class="underline" href="http://survivejs.com/blog/nwb-interview/">SurviveJS - nwb Interview</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://vawks.com/blog/2014/03/22/the-joi-of-validation/">The Joi of Validation</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://robohydra.org/">RoboHydra</a> - Server mocking tool for Node.js</li>
<li><a class="underline" href="https://github.com/svg/svgo">svgo</a> - Nodejs-based tool for optimizing SVG vector graphics files</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://codepen.io/pakastin/pen/aNYZee">FRZR #5: animating lists demo</a></li>
</ul>
]]></content></entry><entry><title>JSter #69: News of April 2016 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-april-2016-part-2"></link><id>monthly-jster-april-2016-part-2</id><published>2016-05-03T10:45:15.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>There are only two inevitable things in life: JavaScript and taxes.</p>
</blockquote>
<p>Things are progressing quite well with my <a class="underline" href="http://survivejs.com/">SurviveJS</a> effort. I was invited to arrange a React workshop. As a result I created <a class="underline" href="https://survivejs.github.io/training/">a set of slides</a>. There are ten themes and each contains exercises at the end. So if you want to pick up basic understanding of React and the surrounding ecosystem, this could be a good chance to achieve that.</p>
<p>I also published <a class="underline" href="http://survivejs.com/blog/survivejs-webpack-110/">SurviveJS - Webpack v1.1.0</a>. As usual, there are minor tweaks, but also major improvements. There's more content now and I migrated to a smarter way to configure Webpack. It takes some pain out of the process and makes it easier to maintain complex configurations.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://medium.com/the-vue-point/announcing-vue-js-2-0-8af1bde7ab9">https://medium.com/the-vue-point/announcing-vue-js-2-0-8af1bde7ab9</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/the-vue-point/announcing-vue-js-2-0-8af1bde7ab9">Announcing Vue.js 2.0</a></li>
<li><a class="underline" href="https://github.com/angular/angular/blob/master/CHANGELOG.md">Angular 2 Release Candidate</a></li>
<li><a class="underline" href="https://github.com/sonnyp/polygoat">polygoat</a> - Make JavaScript functions that support both promise and callback styles</li>
<li><a class="underline" href="http://www.chartjs.org/">Chart.js 2.0</a></li>
<li><a class="underline" href="http://staltz.com/xstream/">xstream</a> - An extremely intuitive, small, and fast functional reactive stream library for JavaScript</li>
<li><a class="underline" href="http://umbrellajs.com/">Umbrella JS</a> - Tiny library for DOM manipulation, events and AJAX</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.risingstack.com/whats-new-in-node-v6/">What's new in Node v6?</a></li>
<li><a class="underline" href="https://medium.com/@sebjwallace/less-react-more-js-409e6e26e1">Less React, more JS</a></li>
<li><a class="underline" href="http://angularjs.blogspot.fi/2016/04/angular-2-react-native.html">Angular: Angular 2 + React Native</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://iceddev.com/blog/webusb-and-javascript-robotics/">WebUSB and JavaScript Robotics</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/kotatsu-interview/">SurviveJS - Kotatsu interview</a> - Less boilerplate</li>
<li><a class="underline" href="http://survivejs.com/blog/hashnode-interview/">SurviveJS - Hashnode interview</a> - A community of coders</li>
<li><a class="underline" href="http://survivejs.com/blog/frzr-interview/">SurviveJS - FRZR interview</a> - Learn about a light view library</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@lpaulger/modularize-legacy-javascript-2758ffcdcd3e">Modularize legacy javascript</a></li>
<li><a class="underline" href="https://auth0.com/blog/2016/01/26/four-types-of-leaks-in-your-javascript-code-and-how-to-get-rid-of-them/">4 Types of Memory Leaks in JavaScript and How to Get Rid Of Them</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://kosamari.com/presentation/openvis-2016/">Drawing on Canvas</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/dustinspecker/awesome-eslint">Awesome list of ESLint resources</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://buble.surge.sh/">Bublé – the blazing fast, batteries-included ES2015 compiler</a></li>
</ul>
]]></content></entry><entry><title>JSter #68: News of April 2016 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-april-2016-part-1"></link><id>monthly-jster-april-2016-part-1</id><published>2016-04-18T13:01:16.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>There can be only one JavaScript.</p>
</blockquote>
<p>Weeks seem shorter these days. Despite that I managed to release a new version of my book. See <a class="underline" href="http://survivejs.com/blog/survivejs210/">SurviveJS - Webpack and React 2.1</a> for more details. Check out also the <a class="underline" href="http://survivejs.com/webpack/introduction/">Webpack book</a>. You can read it free online and a part of the income goes directly to Webpack author to support its development.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://facebook.github.io/react/blog/2016/04/07/react-v15.html">https://facebook.github.io/react/blog/2016/04/07/react-v15.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://facebook.github.io/react/blog/2016/04/07/react-v15.html">React v15.0</a></li>
<li><a class="underline" href="http://rivetsjs.com/">Rivets.js</a> - Lightweight and powerful data binding + templating solution for building modern web applications.</li>
<li><a class="underline" href="https://github.com/kenwheeler/cash">cash</a> - An absurdly small jQuery alternative for modern browsers</li>
<li><a class="underline" href="https://cwmyers.github.io/monet.js/">monet.js</a> - Powerful abstractions for JavaScript. Monads, validation, immutable, etc.</li>
<li><a class="underline" href="http://substance.io/">Substance</a> - A JavaScript library for web-based content editing.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/graph-commons/analyzing-the-npm-dependency-network-e2cf318c1d0d">Analyzing the NPM dependency network</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.sitepoint.com/immutable-data-functional-javascript-mori/">Immutable Data and Functional JavaScript with Mori</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.nczonline.net/blog/2016/04/es6-module-loading-more-complicated-than-you-think/">ES6 module loading</a> - More complicated than you think.</li>
<li><a class="underline" href="https://css-tricks.com/debouncing-throttling-explained-examples/">Debouncing and Throttling Explained Through Examples</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/relax-interview/">Relax Interview</a> - New generation CMS on top of React and Node.js - Interview with Bruno Mota</li>
</ul>
<a href="#comparisons"><h2 class="inline" id="comparisons">Comparisons</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/ivan-kleshnin/reactive-polyglot">ivan-kleshin/reactive-polyglot</a> - FRP libraries / languages compared</li>
</ul>
<a href="#challenges"><h2 class="inline" id="challenges">Challenges</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://callumacrae.github.io/regex-tuesday/challenge1.html">Regex Challenge</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.npmjs.com/package/minty">minty</a> - Node process visualization</li>
<li><a class="underline" href="http://gruntjs.com/blog/2016-04-04-grunt-1.0.0-released">Grunt 1.0.0</a></li>
<li><a class="underline" href="https://github.com/liriliri/eruda">eruda</a> - Console for mobile JavaScript</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://webassembly.github.io/demo/">WebAssembly Demo</a></li>
</ul>
]]></content></entry><entry><title>JSter #67: News of March 2016 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-march-2016-part-2"></link><id>monthly-jster-march-2016-part-2</id><published>2016-04-03T12:57:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Return of the JavaScript</p>
</blockquote>
<p>I came to a little realization with my <a class="underline" href="http://survivejs.com/">SurviveJS</a> effort a while ago. I actually had two books in one! As a result I extracted a book out of the first one. See <a class="underline" href="http://survivejs.com/blog/survivejs-webpack-100/">SurviveJS - Webpack v1.0.0</a>. You can <a class="underline" href="https://leanpub.com/survivejs-webpack">purchase it through Leanpub</a> although there's a <a class="underline" href="http://survivejs.com/webpack/introduction/">free online edition</a> as well.</p>
<p>I still have to restructure the React book so that it doesn't have Webpack bits anymore. The idea is that once I complete this work, those who have bought <a class="underline" href="https://leanpub.com/survivejs_webpack_react">the current book</a> by then, will receive both. I feel this is the fairest way to deal with it.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://marak.github.io/faker.js/">https://marak.github.io/faker.js/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://marak.github.io/faker.js/">faker.js</a> - Generate massive amounts of fake data in the browser and Node.js</li>
<li><a class="underline" href="https://imgix.github.io/luminous/">Luminous</a> - Simple, standalone lightbox</li>
<li><a class="underline" href="https://github.com/MaiaVictor/PureState">PureState</a> - The stupidest state management library that works</li>
<li><a class="underline" href="https://blog.feathersjs.com/introducing-feathers-2-0-aae8ae8e7920">Introducing Feathers 2.0</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://bocoup.com/weblog/seams-in-javascript">Seams in JavaScript</a></li>
<li><a class="underline" href="https://segment.com/blog/the-deep-roots-of-js-fatigue/">The Deep Roots of Javascript Fatigue</a></li>
<li><a class="underline" href="http://blog.ionic.io/angular-is-a-design-pattern/">Angular is a Design Pattern</a></li>
</ul>
<a href="#webassembly"><h2 class="inline" id="webassembly">WebAssembly</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.infoworld.com/article/3042705/web-development/javascript-founder-brendan-eich-webassembly-is-a-game-changer.html">JavaScript founder Brendan Eich: WebAssembly is a game-changer</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2016/03/a-webassembly-milestone/">A WebAssembly Milestone</a> - Experimental Support in Multiple Browsers</li>
</ul>
<a href="#es6"><h2 class="inline" id="es6">ES6</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://ewanvalentine.io/es6-is-beautiful/">ES6 is beautiful</a></li>
<li><a class="underline" href="https://medium.com/@jayphelps/please-stop-referring-to-proposed-javascript-features-as-es7-cad29f9dcc4b">Please stop referring to proposed JavaScript features as ES7</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@benlesh/learning-observable-by-building-observable-d5da57405d87">Learning Observable By Building Observable</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://docs.google.com/presentation/d/1lZn-Awr6OhtBfCpSRZXVABG7O7ApxzHbCqIfTXubVG4/edit">Scala.js for large and complex frontend apps</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://knpw.rs/blog/using-lodash">Using Lodash as a Collection of Micro-Libraries</a></li>
<li><a class="underline" href="http://jamie-wong.com/2014/08/19/metaballs-and-marching-squares/">Metaballs and Marching Squares</a></li>
<li><a class="underline" href="https://developer.mozilla.org/en/docs/Web/API/Element/scrollIntoView">Element.scrollIntoView()</a></li>
<li><a class="underline" href="http://fr.umio.us/why-ramda/">Why Ramda?</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://guigrpa.github.io/storyboard/">Storyboard</a> - End-to-end, hierarchical, real-time, colorful logs and stories</li>
<li><a class="underline" href="https://github.com/3Dparallax/insight/">insight</a> - A helpful Chrome extension for WebGL development</li>
</ul>
]]></content></entry><entry><title>JSter #66: News of March 2016 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-march-2016-part-1"></link><id>monthly-jster-march-2016-part-1</id><published>2016-03-16T03:43:13.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>When in doubt, JavaScript.</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/hyperoslo/Hue">https://github.com/hyperoslo/Hue</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/hyperoslo/Hue">Hue</a> - All-in-one coloring utility</li>
<li><a class="underline" href="https://ondras.github.io/rot.js/hp/">rot.js</a> - Roguelike toolkit for JavaScript</li>
<li><a class="underline" href="https://github.com/pakastin/f">f</a> - Turboboosted view library in 2k</li>
<li><a class="underline" href="http://oboejs.com/">Oboe.js</a> - Streaming JSON loading for Node and browsers</li>
<li><a class="underline" href="http://introjs.com/">Intro.js</a> - Step-by-step guide and feature introduction</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://speakerdeck.com/chrisui/css-modules-who-what-where-when-and-why">CSS Modules: Who, what, where, when and why?!</a></li>
<li><a class="underline" href="http://developer.telerik.com/featured/whats-new-in-jquery-3/">What's New in jQuery 3</a></li>
<li><a class="underline" href="https://medium.com/javascript-and-opinions/state-of-the-art-javascript-in-2016-ab67fc68eb0b">State of the Art JavaScript in 2016</a></li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://benmccormick.org/2016/03/07/the-sad-state-of-the-backbone-ecosystem/">The Sad State of the Backbone Ecosystem</a></li>
<li><a class="underline" href="https://tech.instacart.com/why-we-moved-to-react/">Why Instacart moved to React</a></li>
<li><a class="underline" href="http://madebymike.com.au/writing/love-letter-to-jquery/">A love letter to jQuery</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/react-rocks-interview/">React.rocks interview</a></li>
<li><a class="underline" href="http://survivejs.com/blog/reindex-interview/">Reindex interview</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.benoitvallon.com/data-structures-in-javascript/the-trie-data-structure/">The Trie data structure</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2016/03/introducing-the-webvr-1-0-api-proposal/">Introducing the WebVR 1.0 API Proposal</a></li>
<li><a class="underline" href="https://www.smashingmagazine.com/2016/02/hardware-hacking-with-javascript-internet-of-things/">Hardware Hacking With JavaScript</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://garris.github.io/BackstopJS/">BackstopJS</a> - Catch CSS curve balls</li>
</ul>
]]></content></entry><entry><title>JSter #65: News of February 2016 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-february-2016-part-2"></link><id>monthly-jster-february-2016-part-2</id><published>2016-03-01T02:29:11.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Coding JavaScript, eight days a week</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://boba.space150.com/">http://boba.space150.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://callmecavs.com/bricks.js/">Bricks.js</a> - Blazingly fast masonry layout generator</li>
<li><a class="underline" href="http://boba.space150.com/">Boba.js</a> - Easier Google Analytics. Depends on jQuery</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://itowns.github.io/">iTowns</a> - JavaScript/WebGL framework for dealing with 3D geospatial data visualization</li>
</ul>
<a href="#platforms"><h2 class="inline" id="platforms">Platforms</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://veriacms.com/">Veria CMS</a> - A lightweight blogging platform powered by Node.js</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://thefullstack.xyz/excellent-javascript-developer/">The Difference Between Excellent, Good and Bad JavaScript Developers</a></li>
<li><a class="underline" href="http://survivejs.com/blog/styleguidist-interview/">react-styleguidist interview with Artem Sapegin</a></li>
<li><a class="underline" href="http://jster.net/blog/react-vs-preact">React and Preact: Differences, Pros and Cons</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://semaphoreci.com/community/tutorials/test-driving-ember-js-components">Test-Driving Ember.js Components</a></li>
<li><a class="underline" href="https://medium.com/@roman01la/understanding-transducers-in-javascript-3500d3bd9624">Understanding Transducers in JavaScript</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jrsinclair.com/articles/2016/gentle-introduction-to-functional-javascript-intro/">A Gentle Introduction to Functional JavaScript: Part 1</a></li>
<li><a class="underline" href="http://ipestov.com/webgl-for-all/">WebGL For All</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/ember-cli/ember-cli/releases/tag/v2.3.0">ember-cli 2.3.0</a></li>
</ul>
]]></content></entry><entry><title>React and Preact: Differences, Pros and Cons</title><link rel="alternate" type="text/html" href="https://jster.net/blog/react-vs-preact"></link><id>react-vs-preact</id><published>2016-02-20T03:55:11.000Z</published><content type="text/html"><![CDATA[<p>For a while, <a class="underline" href="https://facebook.github.io/react/">React</a> has been one of the favorite tools for front-end developers. Sometimes it can be a little heavy, though. A lighter alternative known as <a class="underline" href="https://developit.github.io/preact/">Preact</a> is largely compatible with React. We'll go over the differences in this post and also cover pros and cons.</p>
<a href="#what-are-the-differences-between-react-and-preact-"><h2 class="inline" id="what-are-the-differences-between-react-and-preact-">What Are the Differences Between React and Preact?</h2></a>
<p>There are a few key differences you should take into account. Note that you can use both. It might make sense to use React during development and swap to Preact for production. You will need to make sure you will use the subset of features Preact provides, though.</p>
<blockquote>
<p><a class="underline" href="https://github.com/Lucifier129/react-lite">react-lite</a> is another interesting alternative worth studying.</p>
</blockquote>
<a href="#api"><h3 class="inline" id="api">API</h3></a>
<p>Preact supports only <a class="underline" href="https://facebook.github.io/react/blog/2015/10/07/react-v0.14.html#stateless-functional-components">stateless functional components</a> and <a class="underline" href="https://facebook.github.io/react/docs/reusable-components.html#es6-classes">ES6 class based component definitions</a>. Fortunately, losing <code>createClass</code> doesn't hurt that much given these two are more than enough for most development needs.</p>
<a href="#size"><h3 class="inline" id="size">Size</h3></a>
<p>As Preact doesn't try to do everything that React does, its implementation can be much leaner. To give you a better idea, a minified version of React weighs around 135 kB. Serving it gzipped you should get around 80 kB. This can be pushed further by creating a production build as it strips some of the checks. Minified and gzipped version of Preact weighs mere 3kB. This difference alone is huge.</p>
<blockquote>
<p>react-lite sits somewhere in the middle somewhere between 10-20k when both gzipped and minified.</p>
</blockquote>
<a href="#performance"><h3 class="inline" id="performance">Performance</h3></a>
<p>Compared to React, Preact is definitely leaner and faster as well. <a class="underline" href="http://www.stefankrause.net/wp/?p=283">Benchmarking by Stefan Krause</a> supports this.</p>
<a href="#pros-and-cons"><h2 class="inline" id="pros-and-cons">Pros and Cons</h2></a>
<a href="#react"><h3 class="inline" id="react">React</h3></a>
<p><strong>Pros</strong></p>
<ul class="list-disc list-inside">
<li>It contains a very complex and at the same time a well-architected codebase.</li>
<li>Preact contains a lot of React's features. Though Preact also offers a few advanced features as well, but it will take time before Preact will start getting recognition – just like React does – by the majority of users.</li>
</ul>
<p><strong>Cons</strong></p>
<ul class="list-disc list-inside">
<li>The large and complex codebase makes it hard for developers (especially novices) to contribute.</li>
<li>Given React is a library, you will have to do some of the legwork yourself. This means you'll have to figure out how to deal aspects such as data handling and routing.</li>
</ul>
<a href="#preact"><h3 class="inline" id="preact">Preact</h3></a>
<p><strong>Pros</strong></p>
<ul class="list-disc list-inside">
<li>Preact comes loaded with many more features than react-lite. For one, the former can be rendered to a static HTML string using <a class="underline" href="https://www.npmjs.com/package/preact-render-to-string">preact-render-to-string</a>. Also, Preact adds many convenient features all of which are inspired by the work carried out in the React community.</li>
<li>Both this.props and this.state can be referenced manually, which makes the process of destructuring cleaner than in vanilla React.</li>
<li>The inputs of the <strong>Linked State updates</strong> state changes automatically resulting in cleaner code.</li>
<li>Preact enables you to avail the benefits of React-style components even in older websites based on jQuery and Backbone without causing overhead.</li>
<li>When it comes to developing a standard app that comprises of components, Preact batches state changes and thereby boosts performance considerably.</li>
</ul>
<p><strong>Cons</strong></p>
<ul class="list-disc list-inside">
<li>Preact does not support <a class="underline" href="https://facebook.github.io/react/docs/context.html">context</a> yet.</li>
<li><code>refs</code> are not supported yet. <a class="underline" href="https://github.com/developit/preact/issues/50">Support is planned</a>, though.</li>
<li>React <code>propTypes</code> are not supported.</li>
<li>Preact does not support synthetic event implementation of React. Instead, it relies on browser API. This could cause maintenance and performance issues due to impedance mismatch between the implementations if you are using them together (React for development, Preact for production).</li>
</ul>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<p>Many people have different takes on using Preact over the React. You can study the opinions of developers concerning these technologies at <a class="underline" href="https://news.ycombinator.com/item?id=10988746">the Hacker News thread</a>.</p>
<p>It's always better to attempt using something that introduces improvements in some already existing technology. The same is the case with React and Preact. Preact does offers a few interesting advantages over React although you'll lose something in the process.</p>
<hr>
<p>Maria Mincey is a software developer at <a class="underline" href="http://www.xicom.biz/">Xicom Technologies</a>, a software development company. They deliver comprehensive web applications for different industry verticals.</p>
]]></content></entry><entry><title>JSter #64: News of February 2016 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-february-2016-part-1"></link><id>monthly-jster-february-2016-part-1</id><published>2016-02-16T12:45:11.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>The good, the bad, the JavaScript</p>
</blockquote>
<p>I finally got the <a class="underline" href="http://survivejs.com/blog/survivejs200/">the 2.0 version of my Webpack/React book out</a>. In addition to <a class="underline" href="https://leanpub.com/survivejs_webpack_react">the digital version</a>, there's also <a class="underline" href="http://www.amazon.com/SurviveJS-Webpack-React-apprentice-master/dp/152391050X/">a paperback</a> available through Amazon now. I hope you enjoy it!</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://pressurejs.com/">http://pressurejs.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://pressurejs.com/">Pressure.js</a> - Easier Force Touch and 3D Touch</li>
<li><a class="underline" href="https://scrollrevealjs.org/">ScrollReveal</a> - Easy scroll animations for web and mobile browsers.</li>
<li><a class="underline" href="https://bebraw.github.io/react-pagify/">react-pagify</a> - Flexible paginator for React</li>
<li><a class="underline" href="https://github.com/dbushell/Pikaday">Pikaday</a> - Light date picker</li>
<li><a class="underline" href="http://github.hubspot.com/pace/docs/welcome/">PACE</a> - Automatic page load progress bar</li>
<li><a class="underline" href="https://github.com/angular/angular/blob/master/CHANGELOG.md#200-beta2-2016-01-28">Angular 2.0.0-beta2</a></li>
<li><a class="underline" href="https://github.com/caolan/highland">caolan/highland</a> - High-level streams library</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hughfdjackson.com/javascript/does-curry-help/">Does Curry Help?</a></li>
<li><a class="underline" href="https://blog.risingstack.com/how-enterprises-benefit-from-nodejs/">How Enterprises Benefit from Node.js</a></li>
<li><a class="underline" href="http://survivejs.com/blog/towards-common-components/">Towards a Common Component Definition</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://ipestov.com/hardcore-javascript-or-power-of-30-lines/">Hardcore JavaScript or Power of 30 Lines</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2016/01/webgl-off-the-main-thread/">WebGL Off the Main Thread</a></li>
<li><a class="underline" href="http://code.fitness/post/2016/01/javascript-enumerate-methods.html">Enumerating methods on a JavaScript class instance</a></li>
<li><a class="underline" href="https://blog.codeship.com/understanding-garbage-collection-in-node-js/">Understanding Garbage Collection and Memory in Node.js</a></li>
<li><a class="underline" href="https://medium.com/@drboolean/lenses-with-immutable-js-9bda85674780">Lenses with Immutable.js</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://gruntjs.com/blog/2016-02-11-grunt-1.0.0-rc1-released">Grunt 1.0.0 rc1</a></li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://esnextb.in/">ESNextbin</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://volkhin.com/RoadTrafficSimulator/">Road traffic simulator</a></li>
</ul>
]]></content></entry><entry><title>JSter #63: News of January 2016 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-january-2016-part-2"></link><id>monthly-jster-january-2016-part-2</id><published>2016-02-01T02:58:10.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Ain't got nothing but JavaScript. Eight days a week.</p>
</blockquote>
<p>My Webpack and React book reached <a class="underline" href="http://survivejs.com/blog/survivejs200-rc3/">2.0.0-rc3</a>. Feedback still keeps on coming so I'm still working towards a final release. After that the work starts again, but with a different direction.</p>
<p>If you want to ask me anything about Webpack or React, feel free to join my <a class="underline" href="https://github.com/survivejs/ama/issues">AmA</a> (Ask me Anything).</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.sitepoint.com/parallel-javascript-with-paralleljs/">http://www.sitepoint.com/parallel-javascript-with-paralleljs/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://voxelcss.com/">voxel.css</a> - Use this to get that Minecrafty feeling.</li>
<li><a class="underline" href="https://blog.formidable.com/the-only-correct-script-loader-ever-made-de507420e2b8">The Only Correct Script Loader Ever Made</a></li>
<li><a class="underline" href="https://github.com/msvbg/warbler">msvbg/warbler</a> - A simple parser combinator library with emphasis on ease of use</li>
<li><a class="underline" href="http://www.sitepoint.com/parallel-javascript-with-paralleljs/">Parallel JavaScript with ParallelJS</a></li>
<li><a class="underline" href="http://featurejs.com/">Feature.js</a> - Simple feature detection</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.discovermeteor.com/blog/the-state-of-meteor-part-2-what-happens-next/">The State Of Meteor Part 2: What Happens Next</a></li>
<li><a class="underline" href="https://jakearchibald.com/2016/streams-ftw/">2016 - The Year of Web Streams</a></li>
<li><a class="underline" href="http://developer.telerik.com/featured/what-to-expect-from-javascript-in-2016-frameworks/">What To Expect From JavaScript In 2016</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://lugolabs.com/circles">Create circular SVG charts with Circles</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.alexkras.com/simple-guide-to-finding-a-javascript-memory-leak-in-node-js/">Simple Guide to Finding a JavaScript Memory Leak in Node.js</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@evanwallace/rendering-realtime-caustics-in-webgl-2a99a29a0b2c">Rendering Realtime Caustics in WebGL</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/ericclemmons/npm-install-webpack-plugin">ericclemmons/npm-install-webpack-plugin</a> - Install dependencies to your Webpack project automatically.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://ncase.me/simulating/">Simulating The World (In Emoji)</a></li>
</ul>
]]></content></entry><entry><title>JSter #62: News of January 2016 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-january-2016-part-1"></link><id>monthly-jster-january-2016-part-1</id><published>2016-01-18T11:32:46.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript Enterprise Edition would come with classes, modules, etc.</p>
</blockquote>
<p>My book project, <a class="underline" href="http://survivejs.com/blog/survivejs200-rc2/">SurviveJS - Webpack and React</a>, reached v2.0 rc2. It might take a release candidate or two and it's ready for wider public I hope. But getting closer!</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://blog.jquery.com/2016/01/14/jquery-3-0-beta-released/">http://blog.jquery.com/2016/01/14/jquery-3-0-beta-released/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.jquery.com/2016/01/14/jquery-3-0-beta-released/">jQuery 3.0 Beta Released</a></li>
<li><a class="underline" href="https://github.com/lodash/lodash/releases/tag/4.0.0">Lodash 4.0.0</a> - Bye bye old IE (< 9), more ES6, more modularity, even emojis.</li>
<li><a class="underline" href="https://github.com/ReactiveX/RxJS/blob/master/CHANGELOG.md#500-beta1-2016-01-13">RxJS 5 beta</a> - Reactive programming!</li>
<li><a class="underline" href="https://mohayonao.github.io/timbre.js/beatbox.html">timbre.js</a> - Amazing looking sound synthesis library. How come nobody has built a front-end for this?</li>
<li><a class="underline" href="http://mac81.github.io/pure-drawer/">Pure Drawer</a> - Pure CSS transition effects for off-canvas views</li>
<li><a class="underline" href="https://gigamonkey.github.io/gg/">The Grammar of Graphics</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.freecodecamp.com/angular-2-versus-react-there-will-be-blood-66595faafd51">Angular 2 versus React: There Will Be Blood</a></li>
<li><a class="underline" href="https://css-tricks.com/should-i-use-a-video-as-a-background/">Should I use a video as a background?</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://vramana.github.io/blog/2015/12/21/codemod-tutorial/">How to write a codemod</a></li>
<li><a class="underline" href="https://vramana.github.io/blog/2016/01/13/codemods-path-to-painless-updgrade-in-ember/">Codemods: Path to painless upgrades in Ember</a></li>
<li><a class="underline" href="https://ada.is/blog/2016/01/08/number/">What's in a Number?</a></li>
<li><a class="underline" href="http://robotlolita.me/2015/11/15/how-do-promises-work.html">How do Promises Work?</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes/">"Real" Mixins with JavaScript Classes</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://pixelslivewallpaper.github.io/jadsdsengine/indexb.htm">JADSDS</a> - A friendly JavaScript based animator</li>
<li><a class="underline" href="http://steffe.se/?p=1737">p2.js soft wheel vehicle tutorial</a></li>
<li><a class="underline" href="http://www.cannonjs.org/">Cannon.js</a> - Physics engine</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://tympanus.net/Development/HoverEffectIdeas/">Hover Effect Ideas</a></li>
</ul>
]]></content></entry><entry><title>JSter #61: News of December 2015 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-december-2015-part-2"></link><id>monthly-jster-december-2015-part-2</id><published>2016-01-03T03:49:02.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>2016 - The year of JavaScript on desktop?</p>
</blockquote>
<p>It was a good year for me and I did a little <a class="underline" href="http://survivejs.com/blog/2015-recap/">recap about SurviveJS</a>. The upcoming 2.0 release is currently in <a class="underline" href="http://survivejs.com/blog/survivejs200-beta2/">beta mode</a>. A beta or two and we're ready for a final version.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://blissfuljs.com/">http://blissfuljs.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.hexagonjs.io/">Hexagon.js</a> - A modular, themeable collection of components for modern browsers.</li>
<li><a class="underline" href="http://blissfuljs.com/">Bliss.js</a> - Light utility library for common tasks.</li>
<li><a class="underline" href="http://mercury.sexy/hg_sdf/">hg_sdf</a> - A glsl library for building signed distance functions</li>
<li><a class="underline" href="https://medium.com/google-developer-experts/angular-new-features-in-angularjs-1-5-24f9b503af15">Angular 1.5</a></li>
<li><a class="underline" href="http://reactkomik.jscomic.net/">React Komik</a> - Create comics with React.</li>
<li><a class="underline" href="https://fengyuanchen.github.io/cropperjs/">Cropper.js</a> - Neat JavaScript image cropper.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="https://blog.risingstack.com/finding-a-memory-leak-in-node-js/">https://blog.risingstack.com/finding-a-memory-leak-in-node-js/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.risingstack.com/finding-a-memory-leak-in-node-js/">Hunting a Ghost</a> - How to find a memory leak in Node.js.</li>
<li><a class="underline" href="https://www.devbridge.com/articles/foundation-6-an-advanced-template-review/">Foundation 6: an advanced template review</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/12/compiling-to-webassembly-its-happening/">Compiling to WebAssembly: It’s Happening!</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://developers.google.com/web/showcase/case-study/lightsaber">Creating a Lightsaber with Polymer</a></li>
<li><a class="underline" href="http://www.christianalfoni.com/articles/2015_12_17_Exploring-Elm-part2">Exploring Elm - Part 2</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/codemod-interview/">Codemod - Refactoring Code Programmatically - Interview with Ramana Venkata</a> - Codemods provide an easier way to make big changes across codebases.</li>
<li><a class="underline" href="http://survivejs.com/blog/whitestormjs-interview/">WhiteStormJS - Three.js Based Game Engine - Interview with Alexander Buzin</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://angularclass.com/angular-2-for-react-developers/">Angular 2 for React developers</a></li>
<li><a class="underline" href="https://github.com/Mercateo/component-check">Mercateo/component-check</a> - A quick introduction to explore how components can be created in several frameworks.</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://raygun.io/blog/2015/06/useful-javascript-debugging-tips-you-didnt-know/">Useful JavaScript debugging tips you didn't know</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://documentation.js.org/">documentationjs</a> - Documentation generator.</li>
<li><a class="underline" href="https://jsverify.github.io/">JSVerify</a> - QuickCheck implementation for JavaScript.</li>
<li><a class="underline" href="https://github.com/amireh/happypack">amireh/happypack</a> - Speed-up for Webpack.</li>
<li><a class="underline" href="http://www.jsweet.org/">JSweet: a transpiler to write JavaScript programs in Java</a></li>
<li><a class="underline" href="http://xto6.js.org/">xto6</a> - ES5 code to eS6</li>
</ul>
<a href="#nostalgy"><h2 class="inline" id="nostalgy">Nostalgy</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://oldweb.today/">oldweb.today</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://css-tricks.com/password-strength-meter/">Password Strength <code>meter</code></a></li>
</ul>
]]></content></entry><entry><title>JSter #60: News of December 2015 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-december-2015-part-1"></link><id>monthly-jster-december-2015-part-1</id><published>2015-12-16T05:27:47.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Make const, not var</p>
</blockquote>
<p>The book keeps progressing. <a class="underline" href="http://survivejs.com/blog/survivejs1915/">SurviveJS 1.9.15</a> incorporates a nice amount of improvements. It's likely the last release before <em>2.0</em>. After that the cycle can begin again.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://angularjs.blogspot.fi/2015/12/angular-2-beta.html">Angular 2 Beta</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.maxpagels.com/2015/11/25/pure-javascript-vs-lodash-and-the-importance-of-decision-making-in-programming/">http://www.maxpagels.com/2015/11/25/pure-javascript-vs-lodash-and-the-importance-of-decision-making-in-programming/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.maxpagels.com/2015/11/25/pure-javascript-vs-lodash-and-the-importance-of-decision-making-in-programming/">Pure JavaScript vs. lodash, and the importance of decision-making in programming</a></li>
<li><a class="underline" href="http://tomdale.net/2015/11/javascript-frameworks-and-mobile-performance/">JavaScript Frameworks and Mobile Performance</a></li>
<li><a class="underline" href="https://blogs.windows.com/msedgedev/2015/12/05/open-source-chakra-core/">Microsoft Edge’s JavaScript engine to go open-source</a></li>
<li><a class="underline" href="https://emberway.io/ember-js-functional-programming-and-the-observer-effect-48901c3b84d7">Ember.js - Functional Programming and the Observer Effect</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://bost.ocks.org/mike/d3-plugin/">http://bost.ocks.org/mike/d3-plugin/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.christianalfoni.com/articles/2015_11_30_Exploring-Elm-part1">Exploring Elm - Part 1</a></li>
<li><a class="underline" href="http://bost.ocks.org/mike/d3-plugin/">Let’s Make a (D3) Plugin</a></li>
<li><a class="underline" href="https://www.maxcdn.com/blog/cdn-reporting-application-webpack-react/">Building a CDN Reporting Application with Webpack & React</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/google-developers/instant-loading-web-apps-with-an-application-shell-architecture-7c0c2f10c73">Instant Loading Web Apps With An Application Shell Architecture</a></li>
<li><a class="underline" href="https://github.com/vasanthk/async-javascript">vasanthk/async-javascript</a> - Evolution of Asynchronous JavaScript</li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/11/offline-web-apps-on-github-pages/">Offline Web Apps on GitHub Pages</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/11/offline-service-workers/">Offline Recipes for Service Workers</a></li>
<li><a class="underline" href="https://css-tricks.com/loading-web-fonts-with-the-web-font-loader/">Loading Web Fonts with the Web Font Loader</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://whatwebcando.today/">What Web Can Do Today</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://codecept.io/">CodeceptJS</a> - E2E testing for Node.js.</li>
<li><a class="underline" href="https://github.com/wekan/wekan">wekan/wekan</a> - The open-source Trello-like kanban built with Meteor</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.pokedex.org/">Pokedex.org</a></li>
</ul>
]]></content></entry><entry><title>JSter #59: News of November 2015 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-november-2015-part-2"></link><id>monthly-jster-november-2015-part-2</id><published>2015-12-01T06:50:35.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript can feed your cats/dogs/people.</p>
</blockquote>
<p>Things are going pretty solidly with my React book. It reached <a class="underline" href="http://survivejs.com/blog/survivejs1910/">version 1.9.10</a> with a nice amount of tweaks. There are still some coming as I want to improve the book while keeping it up to date.</p>
<p>I gave a presentation about it a while ago. In case you want to have an inside look at what it takes to write an indie book, feel free to go through <a class="underline" href="https://survivejs.github.io/how-to-write-a-book-and-survivejs-it">my slides</a>. The presentation digs more into the business side of things and it's a side you don't often get to see.</p>
<a href="#react-indie-bundle"><h2 class="inline" id="react-indie-bundle">React Indie Bundle</h2></a>
<p>The bigger news is that we published <a class="underline" href="http://www.reactindiebundle.com/">React Indie Bundle</a>. The bundle will be available for this week and my book is a part of it. It includes books, videos, and a bit of consulting on the higher tiers.</p>
<p>If you want to pick up something to do during the holidays, perhaps the bundle would work. It's also a fine present if you are into that sort of thing.</p>
<p>This is a good chance to support indie work. We even give a part of our earnings to tool and library authors. After all, it's those guys that enable everything in the first place.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/whackashoe/antimoderate">https://github.com/whackashoe/antimoderate</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/whackashoe/antimoderate">whackashoe/antimoderate</a> -  The progressive image loading library for great good!</li>
<li><a class="underline" href="http://www.dotnetcurry.com/angularjs/1214/angular2-developer-preview-new-features">Angular 2: Developer Preview</a></li>
<li><a class="underline" href="http://blog.durandal.io/2015/11/16/aurelia-beta-week-day-1-the-beta-is-here/">Aurelia Beta 1</a></li>
<li><a class="underline" href="http://zurb.com/article/1416/foundation-6-is-here">Foundation 6 Is Here!</a></li>
<li><a class="underline" href="https://github.com/ncsoft/Unreal.js">ncsoft/Unreal.js</a></li>
<li><a class="underline" href="https://github.com/plotly/plotly.js">plotly/plotly.js</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://engineering.khanacademy.org/posts/js-packaging-http2.htm">http://engineering.khanacademy.org/posts/js-packaging-http2.htm</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://engineering.khanacademy.org/posts/js-packaging-http2.htm">Forgo JS packaging? Not so fast</a></li>
<li><a class="underline" href="http://casualjavascript.com/javascript/es6/haskell/native/implementation/2015/11/12/haskell-in-es6-part-1.html">Haskell in ES6: Part 1</a></li>
<li><a class="underline" href="http://ma.tt/2015/11/dance-to-calypso/">Dance to Calypso</a> - WordPress admin went Node.</li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://reactivex.io/learnrx/">Functional Programming in JavaScript</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://reactjsnews.com/structuring-react-projects/">How to Structure a React Project?</a></li>
<li><a class="underline" href="http://www.a1k0n.net/2015/11/09/javascript-ft2-player.html">Playing Fasttracker 2 .XM files in Javascript</a></li>
<li><a class="underline" href="http://thenewcode.com/82/Recipes-for-Randomness-in-JavaScript">Recipes for Randomness in JavaScript</a></li>
<li><a class="underline" href="http://blogs.windows.com/msedgedev/2015/11/10/supercharging-javascript-performance-with-asm-js/">Supercharging JavaScript performance with asm.js</a></li>
<li><a class="underline" href="http://blog.getify.com/concurrently-javascript-2/">Concurrently JavaScript (2)</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/11/better-than-gzip-compression-with-brotli/">Better than Gzip Compression with Brotli</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/starhackit-interview/">Starhackit interview</a> - Full stack boilerplate!</li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.isaacchansky.me/days-since-last-new-js-framework/">Days Since A Javascript Framework</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/rachelnicole/robokitty">robokitty</a> - A DIY Cat (or dog. or human) Feeder powered by Node.</li>
</ul>
]]></content></entry><entry><title>JSter #58: News of November 2015 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-november-2015-part-1"></link><id>monthly-jster-november-2015-part-1</id><published>2015-11-16T04:38:46.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Coding JavaScript like it's '95</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://gridifier.io/">http://gridifier.io/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://gridifier.io/">Gridifier.io</a> - Async responsive HTML grids</li>
<li><a class="underline" href="https://fitzgen.github.io/wu.js/">wu.js</a> - Higher order functions for ES6 iterators</li>
<li><a class="underline" href="https://vega.github.io/vega/">Vega</a> - A Visualization Grammar</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.smashingmagazine.com/2015/11/flexbox-interfaces-tracks-case-study/">http://www.smashingmagazine.com/2015/11/flexbox-interfaces-tracks-case-study/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.smashingmagazine.com/2015/11/flexbox-interfaces-tracks-case-study/">Flexbox For Interfaces All The Way: Tracks Case Study</a></li>
<li><a class="underline" href="https://medium.com/@bojzi/anatomy-of-a-large-angular-application-f098e5e36994">Anatomy of a large Angular application</a></li>
<li><a class="underline" href="https://www.airpair.com/javascript/posts/a-year-using-ionic-to-build-hybrid-applications">A year using Ionic to build hybrid applications</a></li>
<li><a class="underline" href="http://engineering.widen.com/blog/future-of-the-web-react-falcor/">The Future of Web Development - React, Falcor, and ES6</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/survivejs-195/">SurviveJS - Webpack and React v1.9.5</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2015/10/html-5-games-3d-collision-detection/">HTML5 games: 3D collision detection</a></li>
<li><a class="underline" href="https://codewords.recurse.com/issues/four/lazy-composable-and-modular-javascript">Lazy, composable, and modular JavaScript</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/react-router5/">react-router5 - Routing Alternative for React - Interview with Thomas Roch</a></li>
<li><a class="underline" href="http://survivejs.com/blog/baobab-interview/">Baobab - Data Trees with Cursors - Interview with Guillaume Plique</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://threaditjs.com/">ThreaditJS</a> - An example application for SPA libraries/frameworks</li>
<li><a class="underline" href="http://juristr.com/apps/ng2beta/">Angular 2 Beta Burndown</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://tympanus.net/Development/RainEffect/">Rain Effect Experiments</a></li>
<li><a class="underline" href="http://synth.bitsnbites.eu/">JavaScript synth in 4K</a></li>
<li><a class="underline" href="https://jnicol.github.io/particleground/">Particleground demo</a></li>
</ul>
]]></content></entry><entry><title>JSter #57: News of October 2015 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-october-2015-part-2"></link><id>monthly-jster-october-2015-part-2</id><published>2015-11-02T07:25:00.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript is just a big tower of Babel.</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/jwagner/smartcrop.js">https://github.com/jwagner/smartcrop.js</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/jwagner/smartcrop.js">jwagner/smartcrop.js</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://nolanlawson.com/2015/10/19/the-struggles-of-publishing-a-javascript-library/">http://nolanlawson.com/2015/10/19/the-struggles-of-publishing-a-javascript-library/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://nolanlawson.com/2015/10/19/the-struggles-of-publishing-a-javascript-library/">The struggles of publishing a JavaScript library</a></li>
<li><a class="underline" href="http://javascriptplayground.com/blog/2015/10/state-of-frontend-tooling/">The state of front end tooling</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://codewords.recurse.com/issues/four/lazy-composable-and-modular-javascript">Lazy, composable, and modular JavaScript</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/10/porting-chrome-extensions-to-firefox-with-webextensions/">Porting Chrome Extensions to Firefox with WebExtensions</a></li>
<li><a class="underline" href="https://medium.com/google-developer-experts/angular-introduction-to-reactive-extensions-rxjs-a86a7430a61f">Angular - Introduction to Reactive Extensions (RxJS)</a></li>
<li><a class="underline" href="https://blog.jacobwgillespie.com/from-rest-to-graphql-b4e95e94c26b">From REST to GraphQL</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.sitepoint.com/tips-accessible-svg/">Tips for Creating Accessible SVG</a></li>
<li><a class="underline" href="http://www.d9websolutions.com/blog/web-development/getting-started-with-expressjs-4.html">Getting Started with ExpressJs 4</a></li>
<li><a class="underline" href="https://tsherif.wordpress.com/2015/10/05/from-web-to-webgl-a-guide-for-web-developers-entering-the-third-dimension/">From Web to WebGL: A Guide for Web Developers Entering the Third Dimension</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.nearform.com/nodecrunch/node-js-develop-debugging-techniques/">Node.js tips #1: develop debugging techniques</a></li>
<li><a class="underline" href="http://developer.telerik.com/featured/lazy-loading-images-on-the-web/">Lazy Loading Images on the Web</a></li>
<li><a class="underline" href="https://github.com/slightlyoff/ServiceWorker/blob/master/explainer.md">ServiceWorker explained</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/reactjs/react-future">reactjs/react-future</a></li>
<li><a class="underline" href="https://tc39.github.io/ecma262/">ECMAScript® 2016 Language Specification</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2015/10/html-5-games-tilemaps/">HTML 5 games: Tilemaps</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/samccone/drool">samccone/drool</a> - Automated memory leak detection and analysis</li>
<li><a class="underline" href="http://survivejs.com/blog/react-component-boilerplate-10/">React Component Boilerplate 1.0</a></li>
</ul>
]]></content></entry><entry><title>JSter #56: News of October 2015 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-october-2015-part-1"></link><id>monthly-jster-october-2015-part-1</id><published>2015-10-16T02:54:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript is just a great tower of Babel</p>
</blockquote>
<p>My book about Webpack and React keeps on progressing solidly. Of course it is a continuous struggle against technology that goes forward constantly but it feels like a major milestone is near and a paper version is in sight. See <a class="underline" href="http://survivejs.com/blog/survivejs-19/">SurviveJS v1.9.0</a> announcement for more information.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://facebook.github.io/react/blog/2015/10/07/react-v0.14.html">https://facebook.github.io/react/blog/2015/10/07/react-v0.14.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/zenorocha/clipboard.js">zenorocha/clipboard.js</a> - Manage clipboard through JavaScript</li>
<li><a class="underline" href="https://fgnass.github.io/spin.js/">spin.js</a> - Customizable spinners</li>
<li><a class="underline" href="https://facebook.github.io/react/blog/2015/10/07/react-v0.14.html">React v0.14</a></li>
<li><a class="underline" href="https://www.talater.com/upup/">UpUp</a> - a tiny script that makes sure your site is always there for your users</li>
<li><a class="underline" href="http://popmotion.io/">Popmotion</a> - a 12kb JavaScript motion engine</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://blog.xebia.com/2015/10/08/babel-free-backend-prototype/">http://blog.xebia.com/2015/10/08/babel-free-backend-prototype/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.xebia.com/2015/10/08/babel-free-backend-prototype/">Babel-free backend prototype – challenge accepted</a></li>
<li><a class="underline" href="https://css-tricks.com/design-considerations-text-images/">Design Considerations: Text on Images</a></li>
<li><a class="underline" href="https://meta.discourse.org/t/the-state-of-javascript-on-android-in-2015-is-poor/33889">The State of JavaScript on Android in 2015 is... poor</a></li>
<li><a class="underline" href="https://medium.com/javascript-scene/why-we-need-webassembly-an-interview-with-brendan-eich-7fb2a60b0723">Why We Need WebAssembly: An Interview with Brendan Eich</a></li>
<li><a class="underline" href="http://www.gopherjs.org/blog/2015/09/28/surprises-in-gopherjs-performance/">GopherJS</a> - JavaScript performance can be surprising when compared with Go.</li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/react-bootstrap-interview/">react-bootstrap</a> - Bridging React with Bootstrap</li>
<li><a class="underline" href="http://survivejs.com/blog/cerebral-interview/">Cerebral</a> - A good, emerging solution for structuring your React application</li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://coodict.github.io/javascript-in-one-pic/">Javascript in one picture</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://slides.com/gionkunz/back-to-the-future-angularjs2">Back to the Future with AngularJS 2 by Gion Kunz</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jonathancreamer.com/document-es6-with-esdoc/">Document ES6 with ESDoc</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://jamesfriend.com.au/pce-js/pce-js-apps/">PCE.js Classic Mac OS in the Browser</a></li>
</ul>
]]></content></entry><entry><title>JSter #55: News of September 2015 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-september-2015-part-2"></link><id>monthly-jster-september-2015-part-2</id><published>2015-10-01T15:48:09.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Twenty years ago JavaScript was a joke, now it's the future.</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://720kb.github.io/highlighter.js/">https://720kb.github.io/highlighter.js/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://720kb.github.io/highlighter.js/">Highlighter.js</a> - Highlighter.js allows you to easily navigate, select and highlight the DOM elements.</li>
<li><a class="underline" href="https://openseadragon.github.io/">OpenSeadragon</a> - Viewer for high-resolution zoomable images.</li>
<li><a class="underline" href="http://substance.io/">Substance</a> - Web based content editing.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://webdesignledger.com/2015-frontend-dev-tools">http://webdesignledger.com/2015-frontend-dev-tools</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://webdesignledger.com/2015-frontend-dev-tools">A Poll of Modern Frontend Web Developer's Preferred Tools</a></li>
<li><a class="underline" href="https://github.com/gre/behind-asteroids/blob/master/README.md">Behind Asteroids, The Dark Side (js13k)</a></li>
<li><a class="underline" href="https://thomashunter.name/blog/the-long-road-to-asyncawait-in-javascript/">The long road to Async/Await in JavaScript</a></li>
</ul>
<a href="#interviews"><h2 class="inline" id="interviews">Interviews</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/shaderfrog-interview/">Interview of Andrew Ray - The Author of ShaderFrog</a></li>
<li><a class="underline" href="http://survivejs.com/blog/cycle-interview/">Interview of André Staltz - The author of Cycle.js</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://dmitryfrank.com/articles/js_closures">How do JavaScript closures work under the hood</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://danthedev.com/2015/07/25/binary-in-javascript/">Binary in Javascript</a></li>
<li><a class="underline" href="http://ponyfoo.com/articles/testing-javascript-modules-with-tape">Testing JavaScript Modules with Tape</a></li>
<li><a class="underline" href="https://medium.com/@Zyklus/beautiful-seamless-javascript-testing-in-10-minutes-2a743637035b">Beautiful Seamless JavaScript Testing in 10 Minutes</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/douglascrockford/TheJavaScriptEncyclopedia">douglascrockford/TheJavaScriptEncyclopedia</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://fightcodegame.com/">FightCode - Program JavaScript bots</a></li>
</ul>
<a href="#comics"><h2 class="inline" id="comics">Comics</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.commitstrip.com/en/2015/09/16/how-to-choose-the-right-javascript-framework/">How to choose the right JavaScript framework</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://webglstudio.org/">WebGLStudio.js</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.geezer-x.com/panel.html">SVG Aircraft Instruments</a></li>
</ul>
]]></content></entry><entry><title>JSter #54: News of September 2015 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-september-2015-part-1"></link><id>monthly-jster-september-2015-part-1</id><published>2015-09-15T04:35:20.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript singularity is close?</p>
</blockquote>
<p>It's sometimes almost amazing to see how fast front-end development moves forward. As I was getting angsty on the subject, I <a class="underline" href="http://survivejs.com/blog/frontend-singularity-is-here/">wrote a post about it</a>. In the end it just means we have to be more focused and try to filter out the essential trends.</p>
<p>My book about Webpack and React reached a significant milestone with its <a class="underline" href="http://survivejs.com/blog/survivejs-18/">1.8 version</a>. There's new, Leanpub exclusive content. As usual, a large amount of improvements were made.</p>
<p>I also interviewed Dan Abramov, the author of <a class="underline" href="https://github.com/gaearon/react-hot-loader">react-hot-loader</a> and <a class="underline" href="https://rackt.github.io/redux/">redux</a>. If you want to know a bit about the history and the future of the projects, <a class="underline" href="http://survivejs.com/blog/redux-interview/">read on</a>.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://nikgraf.github.io/belle/">Belle</a> - Configurable React Components with great UX</li>
<li><a class="underline" href="http://alloyeditor.com/">Alloy Editor</a> - A modern WYSIWYG editor built on top of CKEDITOR</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://developer.telerik.com/featured/hail-babel-the-transpiling-overlord/">http://developer.telerik.com/featured/hail-babel-the-transpiling-overlord/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://developer.telerik.com/featured/hail-babel-the-transpiling-overlord/">Hail, Babel! The Transpiling Overlord</a></li>
<li><a class="underline" href="https://viget.com/extend/the-font-face-dilemma">The @font-face dilemma</a></li>
<li><a class="underline" href="http://angular-tips.com/blog/2015/06/why-will-angular-2-rock/">Why will Angular 2 rock?</a></li>
<li><a class="underline" href="http://jster.net/blog/mobile-application-trends">Mobile Application UI: 6 Definitive Trends in 2015</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="https://ditam.github.io/posts/fizzbuzz/fizzbuzz.html">https://ditam.github.io/posts/fizzbuzz/fizzbuzz.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://ditam.github.io/posts/fizzbuzz/fizzbuzz.html">Twenty ways to FizzBuzz in JavaScript</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/09/flash-free-clipboard-for-the-web/">Flash-Free Clipboard for the Web</a></li>
<li><a class="underline" href="http://spin.atomicobject.com/2015/08/24/learn-ember-js-quickly/">10 Steps for Ramping into Ember.js Quickly</a></li>
<li><a class="underline" href="http://es6katas.org/">Learn ECMAScript6 by doing it</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://strongloop.com/strongblog/an-introduction-to-javascript-es6-classes/">An introduction to ES6 classes</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@gerard.sans/angular-using-flux-6a835c9c0656">Angular - building Apps using Flux</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://nodejs.org/en/blog/release/v4.0.0/">Node v4.0.0 (Stable)</a></li>
<li><a class="underline" href="http://eslint.org/blog/2015/09/eslint-v1.4.0-released/">ESLint v1.4.0</a></li>
<li><a class="underline" href="http://shaderfrog.com/">ShaderFrog</a> - Easy WebGL shaders on the web</li>
<li><a class="underline" href="http://documentation.js.org/">documentationjs</a> - A documentation system so good, you'll actually write documentation</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://js13kgames.com/entries">js13k</a> - 2015 entries</li>
<li><a class="underline" href="http://codepen.io/tstoik/pen/EjMzRZ">8-bit Hovers</a> - See also <a class="underline" href="https://brightbrightgreat.com/2015/08/11/how-to-8-bit-hovers/">How-To: 8-Bit Hovers</a></li>
<li><a class="underline" href="http://llllll.li/randomColor/">Random color generator for JavaScript</a></li>
</ul>
]]></content></entry><entry><title>Mobile Application UI: 6 Definitive Trends in 2015</title><link rel="alternate" type="text/html" href="https://jster.net/blog/mobile-application-trends"></link><id>mobile-application-trends</id><published>2015-09-11T02:11:37.000Z</published><content type="text/html"><![CDATA[<p>In less than a decade mobile phones have transformed from calling devices to little computers. As a result mobile apps have become hugely popular. This is evidenced by the success of platforms by Apple and Google.</p>
<p>As the devices have evolved, so have the demands for mobile apps. Given competition can only get tougher, it is a good idea to understand mobile UI trends. That's what this post is about. Let's go through six trends prevalent in 2015.</p>
<a href="#1-flat-ui"><h2 class="inline" id="1-flat-ui">1. Flat UI</h2></a>
<div class="picture"><img src="/img/blog/90/0.png" alt="Flat UI" /></div>

<p>Flat user interfaces can be seen as a continuation to the idea of skeuomorphism introduced by the early versions of iOS. The idea was that we can bring people to the mobile by mimicking the real world. Now that people have gotten used to mobile, something new can be tried instead. That's what flat user interfaces are about.</p>
<p>They focus on simplicity and ease of use. Typically on a mobile screen you need clutter free design to facilitate quick access to what you want and flat interface just does that.</p>
<p>Over the years flat UI evolved to incorporate some important changes. With the inclusion of new elements like subtle layering of color, gradients and animated characters this design principle has become even more interesting and effective.</p>
<ul class="list-disc list-inside">
<li>Flat UI is focused on content.</li>
<li>Flat UI offers a clutter free design facilitating absolute ease of access and usability.</li>
<li>With the evolving elements like subtle layering, animated characters and gradients, it became even more dynamic and robust.</li>
</ul>
<a href="#2-contextual-ui"><h2 class="inline" id="2-contextual-ui">2. Contextual UI</h2></a>
<div class="picture"><img src="/img/blog/90/1.jpg" alt="Contextual UI" /></div>

<p>Consistency throughout the app interface is something that has lost its appeal to more contextual, purposive and diverse UI elements. Thanks to a wide range of device sensors that provide timely feedback on user activities, location and preferences, now users can be approached with befitting contextual UI elements.</p>
<p>For instance, when the user of a travel app is boarding a train to a different city, the app can show him a detailed list of the hotels, restaurants, hangout places, cab services and tourist attractions in the respective city.</p>
<p>This contextual display of content has become more popular with latest location technologies and app analytics. A context is derived from several factors including the location, typical user preference, user habits, and such.</p>
<ul class="list-disc list-inside">
<li>Contextual UI is practically and purposively oriented.</li>
<li>Through contextual UI the design elements meet the app analytics and latest location based technologies.</li>
<li>Advanced device sensors made user specific data a determinant factor in app UI design.</li>
</ul>
<a href="#3-full-screen-navigation"><h2 class="inline" id="3-full-screen-navigation">3. Full screen navigation</h2></a>
<div class="picture"><img src="/img/blog/90/2.jpg" alt="Full screen navigation" /></div>

<p>Navigation holds the key position in a satisfactory mobile user interface and user experience. Both ease of use and ease of access primarily refers to the ease of navigation. Bigger navigation buttons as part of flat UI design has become popular trend for some time. But that did not put a stop to this evolving trend of navigation that continues to be bigger.</p>
<p>Full screen navigation with large menu buttons is the latest trend that took user experience to the next level. Large menu and full screen navigation works great on mobile screens because this adds to the comfort and ease of mobile users to a great extent. Moreover, this design principle is also fully compatible with flat UI.</p>
<ul class="list-disc list-inside">
<li>Full screen navigation is attractive at a glance.</li>
<li>It offers extreme ease of use and ease of access.</li>
<li>It works great with flat UI, another popular design convention.</li>
</ul>
<a href="#4-ui-with-wearable-approach"><h2 class="inline" id="4-ui-with-wearable-approach">4. UI with wearable approach</h2></a>
<div class="picture"><img src="/img/blog/90/3.jpg" alt="UI with wearable approach" /></div>

<p>Slowly the focus from smartphones is getting shifted towards smart wearable devices. Naturally, your app UI must be in sync with the wearable counterparts as well. Using multiple mobile, wearable and smart devices and accessing the same app from different devices is now a necessity your UI design must take into account. This means that:</p>
<ul class="list-disc list-inside">
<li>The app UI must address the display and communication capabilities of the wearable devices.</li>
<li>UIs must be agile to offer optimum performance irrespective of the device in use.</li>
<li>Addressing diverse screen sizes and still maintaining consistency is important for UI design.</li>
</ul>
<a href="#5-storytelling"><h2 class="inline" id="5-storytelling">5. Storytelling</h2></a>
<div class="picture"><img src="/img/blog/90/4.jpg" alt="Storytelling" /></div>

<p>People love to hear a story even if it is about your brand or product. Instead of giving them dry information about your product or services or brand, engaging them with a storyline will engage more audience and make more people hear. With a right mix of visuals and texts you can tell a story about the brand or product and you would instantly see people engaged.</p>
<ul class="list-disc list-inside">
<li>Storytelling is great for quickly grabbing interest and engaging audience for longer.</li>
<li>Storytelling talks of ‘how’ about the brand and product rather that ‘what’.</li>
<li>Visual engagement is crucial to make audience stay afloat and here what you have to say.</li>
</ul>
<a href="#6-hidden-menu"><h2 class="inline" id="6-hidden-menu">6. Hidden menu</h2></a>
<div class="picture"><img src="/img/blog/90/5.jpg" alt="Hidden menu" /></div>

<p>Hidden menu has lately become a popular design convention. Especially for mobile devices it has a lot of significance. If you try to display everything, it will clutter the view. Hidde menu creates space and looks better. Hidden menus are often represented by a small dropdown menu icon at the top right corner of the screen offering both space and ease of access.</p>
<ul class="list-disc list-inside">
<li>It saves lot of space on the mobile screen display.</li>
<li>Following conventions like placing the menu icon at the top right corner is important for avoiding confusion.</li>
<li>It looks smart and helps accessing any part of app with ease.</li>
</ul>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<p>Finally to conclude one must admit that the effectiveness of all the above mentioned design attributes cannot be judged from their independent face value. For instance, while using full screen navigation you may not be able to use storytelling for your UI to the fullest extent.</p>
<p>Hidden menu is fine as long as you gave it a conventional icon and placed it prominently where users generally look for menu. Similarly, you can further add punch to your flat UI with blurred background or with subtle color hierarchy in buttons. How better you maneuver these design-attributes to the advantage of your users that remains crucial.</p>
<hr>
<p>Juned Ahmed is a IT consultant by profession and is working with <a class="underline" href="http://www.indianappdevelopers.com/">IndianAppDevelopers company</a> - the front runner in mobile app developers for hire. He believes in the power of mobile technologies and sharing latest information on iOS, Android development processes.</p>
]]></content></entry><entry><title>JSter #53: News of August 2015 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-august-2015-part-2"></link><id>monthly-jster-august-2015-part-2</id><published>2015-09-01T01:39:28.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>How do you comfort a JavaScript bug? You console it.</p>
</blockquote>
<p>The Webpack and React book keeps on progressing at a solid pace. We recently reached <a class="underline" href="http://survivejs.com/blog/survivejs-175/">1.7.5 milestone</a> with it. As the book develops, it becomes more accessible. There's also some new content on its way.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://facebook.github.io/relay/">https://facebook.github.io/relay/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blot.im/typeset/">Typeset.js</a> - an HTML pre-processor for web typography</li>
<li><a class="underline" href="https://ivopetkov.github.io/responsivelyLazy/">responsivelyLazy</a> - Lazy load responsive images</li>
<li><a class="underline" href="https://scravy.github.io/nodash/">nodash</a> - Haskell <a class="underline" href="https://hackage.haskell.org/package/base-4.7.0.0/docs/Prelude.html">Prelude</a> for JavaScript</li>
<li><a class="underline" href="https://facebook.github.io/relay/">Relay</a> - Flux evolved by Facebook</li>
<li><a class="underline" href="https://netflix.github.io/falcor/">Falcor</a> - Netflix's alternative to Relay</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://zombiecodekill.com/2015/08/12/the-javascript-paradox/">http://zombiecodekill.com/2015/08/12/the-javascript-paradox/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.sitepoint.com/the-es6-conundrum/">The ES6 Conundrum</a></li>
<li><a class="underline" href="http://zombiecodekill.com/2015/08/12/the-javascript-paradox/">The JavaScript Paradox</a></li>
<li><a class="underline" href="http://andyshora.com/slagging-off-javascript-frameworks.html">Slagging Off JavaScript Frameworks</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/08/es6-in-depth-the-future/">ES6 In Depth - The Future</a></li>
<li><a class="underline" href="http://survivejs.com/blog/mobservable-interview/">Reactive React - Interview with Michel Weststrate</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2015/08/es6-in-depth-modules/">ES6 In Depth - Modules</a></li>
<li><a class="underline" href="https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/">Tasks, microtasks, queues and schedules</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/08/flying-a-drone-in-your-browser-with-webbluetooth/">Flying a drone in your browser with WebBluetooth</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://css-tricks.com/making-charts-with-css/">Making Charts with CSS</a></li>
<li><a class="underline" href="https://css-tricks.com/localizing-times-in-javascript/">Localizing Times in JavaScript</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.npmjs.com/package/complexity-report">complexity-report</a> - Get complexity metrics for your code</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://depthy.me/#/sample/mango">Depthy</a> - The third dimension viewer</li>
</ul>
]]></content></entry><entry><title>JSter #52: News of August 2015 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-august-2015-part-1"></link><id>monthly-jster-august-2015-part-1</id><published>2015-08-17T04:43:12.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Always bet on JavaScript</p>
</blockquote>
<p>I released a new version of my free book about Webpack and React. See <a class="underline" href="http://survivejs.com/blog/survivejs-17/">SurviveJS - Webpack and React v1.7</a> for more details. It's moving along nicely.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://bevacqua.github.io/horsey/">https://bevacqua.github.io/horsey/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://bevacqua.github.io/horsey/">horsey</a> - Progressive and customizable autocomplete component</li>
<li><a class="underline" href="http://greweb.me/diaporama/">Diaporama</a> - WebGL powered slide engine</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<p>{{ screenshot: <a class="underline" href="http://emberjs.com/blog/2015/08/13/ember-2-0-released.html">http://emberjs.com/blog/2015/08/13/ember-2-0-released.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://emberjs.com/blog/2015/08/13/ember-2-0-released.html">Ember.js 2.0</a> - Angular, you have been challenged.</li>
<li><a class="underline" href="http://catberry.org/">Catberry.js</a> - Catberry is a framework with Flux architecture,
isomorphic web-components and progressive rendering</li>
<li><a class="underline" href="http://weblog.west-wind.com/posts/2015/Jul/18/The-Rise-of-JavaScript-Frameworks-Part-1-Today">The Rise of JavaScript Frameworks</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://scottksmith.com/blog/2015/06/08/secure-node-apps-against-owasp-top-10-injection/">http://scottksmith.com/blog/2015/06/08/secure-node-apps-against-owasp-top-10-injection/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://scottksmith.com/blog/2015/06/08/secure-node-apps-against-owasp-top-10-injection/">Secure Node Apps Against OWASP Top 10</a></li>
<li><a class="underline" href="https://medium.com/@bojzi/overview-of-the-javascript-ecosystem-8ec4a0b7a7be">Overview of the JavaScript ecosystem</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2015/08/es6-in-depth-subclassing/">ES6 In Depth: Subclassing</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/07/es6-in-depth-let-and-const/">ES6 In Depth: let and const</a></li>
<li><a class="underline" href="http://perfectionkills.com/understanding-delete/">Understanding delete</a></li>
<li><a class="underline" href="http://philipjc.me/javascript-changing-string-characters/">JavaScript, changing String characters</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/recreating-megaman-2-using-js-webgl">ReCreating Megaman 2 using JS & WebGL</a> - For fun and profit!</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.smashingmagazine.com/2015/07/designing-simple-pie-charts-with-css/">Designing Flexible Pie Charts With CSS and SVG</a></li>
<li><a class="underline" href="http://www.datchley.name/getting-functional-with-javascript-part-1/">Getting Functional with JavaScript (Part 1)</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://webglstudio.org/">WebGLStudio.js</a></li>
</ul>
]]></content></entry><entry><title>JSter #51: News of July 2015 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-july-2015-part-2"></link><id>monthly-jster-july-2015-part-2</id><published>2015-08-02T14:20:56.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Every day is a JavaScript day</p>
</blockquote>
<p>I've been working hard on my book about Webpack and React. Both are emerging technologies and this has been a good time to put something together on those just for the experience alone.</p>
<p>The book reached an important milestone with its <a class="underline" href="http://survivejs.com/blog/survivejs-15/">1.5 release</a>. Check the free online edition out. You can get fresh news related to the book through <a class="underline" href="https://buttondown.email/jster">its mailing list</a> so free free to subscribe.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/tessalt/echo-chamber-js">https://github.com/tessalt/echo-chamber-js</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/tessalt/echo-chamber-js">tessalt/echo-chamber-js</a> - Create an illusion of comments</li>
<li><a class="underline" href="http://router5.github.io/">router5</a> - Light HTML5 Router</li>
<li><a class="underline" href="http://xtype.js.org/">xtypejs</a> - Elegant, highly efficient data validation for JavaScript Apps</li>
<li><a class="underline" href="http://robinforest.net/forest-d3/">Forest D3</a> - Charting with D3</li>
<li><a class="underline" href="https://xudafeng.github.io/autoresponsive-react/">autoresponsive-react</a> - An Auto Responsive Grid Layout Library for React.js</li>
<li><a class="underline" href="https://github.com/canalplus/rx-player">canalplus/rx-player</a> - HTML5 video player with rx</li>
<li><a class="underline" href="https://github.com/chenglou/react-motion">chenglou/react-motion</a> - Better animations for React.js</li>
<li><a class="underline" href="http://projects.formidablelabs.com/spectacle/">Spectacle - a Spectabular Presentation Library Based on React.js</a></li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://materializecss.com/">Materialize</a> - A modern responsive front-end framework based on Material Design</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.codereadability.com/javascript-default-parameters-with-or-operator/">http://www.codereadability.com/javascript-default-parameters-with-or-operator/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.reindex.io/blog/you-might-not-need-underscore">You Might Not Need Underscore</a></li>
<li><a class="underline" href="http://www.codereadability.com/javascript-default-parameters-with-or-operator/">Don't use </a></li>
<li><a class="underline" href="http://ianfeather.co.uk/practical-questions-around-web-components/">Practical Questions Around Web Components</a></li>
<li><a class="underline" href="https://medium.com/chute-engineering/graphql-in-the-age-of-rest-apis-b10f2bf09bba">GraphQL in the age of REST APIs</a></li>
<li><a class="underline" href="https://medium.com/@nodesource/essential-steps-long-term-support-for-node-js-8ecf7514dbd">Essential Steps: Long Term Support for Node.js</a></li>
<li><a class="underline" href="https://aerotwist.com/blog/react-plus-performance-equals-what/">React.js + Performance = ?</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2015/07/es6-in-depth-classes/">ES6 In Depth: Classes</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/07/es6-in-depth-proxies-and-reflect/">ES6 In Depth: Proxies</a></li>
<li><a class="underline" href="http://www.nearform.com/nodecrunch/self-detect-memory-leak-node/">How to Self Detect a Memory Leak in Node</a></li>
<li><a class="underline" href="http://jaysoo.ca/2015/06/09/react-contexts-and-dependency-injection/">React Contexts and Dependency Injection</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://greweb.me/2015/08/making-performant-react-applications/">Making Performant React.js Applications</a></li>
<li><a class="underline" href="http://www.datchley.name/understanding-prototypes-delegation-composition/">Understanding Prototypes, Delegation & Composition</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/google-developers/exploring-es7-decorators-76ecb65fb841">Exploring ES2016 Decorators</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/blog/react-books/">A Quick Look at React.js Books</a></li>
<li><a class="underline" href="http://jamesknelson.com/es6-the-bits-youll-actually-use/">A Quick Tour Of ES6 (Or, The Bits You’ll Actually Use)</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://eslint.org/blog/2015/07/eslint-1.0.0-released/">ESLint 1.0.0 released</a></li>
<li><a class="underline" href="https://github.com/purifycss/purifycss">purifycss/purifycss - Clean up your CSS</a></li>
<li><a class="underline" href="https://github.com/facebook/react/wiki/Complementary-Tools">React.js - Complementary Tools</a></li>
<li><a class="underline" href="https://github.com/skidding/cosmos">skidding/cosmos - A tool to help you design React.js components</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/aserg-ufmg/JSCity/wiki/JSCITY">City based visualization of popular JavaScript libraries</a></li>
<li><a class="underline" href="http://codepen.io/Yakudoo/pen/YXxmYR">Chill the lion</a></li>
<li><a class="underline" href="http://codepen.io/rachsmith/blog/hack-physics-and-javascript-1">Hack Physics and JavaScript (part 1) by Rachel Smith on CodePen</a></li>
<li><a class="underline" href="http://divvy.vision/">Divvy Vision - Chicago Bike share visualization</a></li>
</ul>
]]></content></entry><entry><title>A Complete Guide on Developing Cross Platform Mobile Apps</title><link rel="alternate" type="text/html" href="https://jster.net/blog/mobile-framework-guide"></link><id>mobile-framework-guide</id><published>2015-07-21T01:36:04.000Z</published><content type="text/html"><![CDATA[<p>When developing cross platform mobile applications the question is how to do that. Going native has its benefits but then you'll end up having to implement an app per platform. Fortunately that's where various frameworks come into play. They hide some of the platform details from you while allowing code sharing.</p>
<a href="#benefits-of-using-mobile-frameworks"><h2 class="inline" id="benefits-of-using-mobile-frameworks">Benefits of Using Mobile Frameworks</h2></a>
<ul class="list-disc list-inside">
<li>It allows one to create a single code base and make it compatible with other platforms by making a few suitable tweaks.</li>
<li>You just need to learn one programming language instead of delving deep into a range of languages to deploy your app across multiple mobile platforms.</li>
<li>It offers a cost effective solution, as you won't need to hire various developers who possess niche expertise.</li>
<li>Since, you will be using a single code base, it augments agile mobile application development without compromising on the code quality.</li>
<li>With this approach, not only you will be able to quickly reach various mobile platforms, but it also ensures a sustainable success of your applications.</li>
</ul>
<a href="#key-points-to-take-into-account"><h2 class="inline" id="key-points-to-take-into-account">Key Points To Take Into Account</h2></a>
<p>While developing a cross platform mobile application can leverage your business by widening your reach to a whopping number of mobile users, there are several aspects that must be considered beforehand. I have uncovered a few of them here, let's explore them.</p>
<p><strong>Asset Reusability</strong></p>
<p>The style sheets and designs are not transferable from one project to another. And, if we consider the designers' assets such as mock-ups and wireframes, it is not easy for developers to work upon that. For this reason, developers are rather required to regenerate the design assets from the complex style sheets.</p>
<p>To overcome the issue, designers are readily opting assets via cloud-based libraries that help eradicate the redundant design processes. This certainly facilitates professionals to seamlessly reuse the assets for various devices. Furthermore, it also enables one to reuse and share the assets across multiple projects.</p>
<p><strong>Collaboration In Real Time</strong></p>
<p>A flawless and smooth collaboration among the various processes (including conception, design and development) while developing an application is essential for a harmonious app.</p>
<p>This can be accomplished by taking the cloud-based workspace into account. This will facilitate the real time sharing of resources, like notes, tools, annotations, etc., to help both designers and developers to work in equilibrium. And thus, improve the app development time.</p>
<p><strong>Genuine Form Factors</strong></p>
<p>The proliferation of mobile has created bottlenecks by making it complicated for designers to design for every possible combination of orientations, screen sizes, resolutions, and other design aspects.</p>
<p>Today, designers can choose a better methodology, instead of implementing the traditional blank canvas approach. There are several resourceful tools like WYSIWYG tools available out there that can proficiently serve the cause. Designers can place their designs within genuine framework of the device. This certainly helps them to scour how the targeted device is responding to the fluctuating form factors. Thereby, ensuring the optimal UX for every device and platform.</p>
<a href="#what-are-the-challenges-and-their-effective-solutions-"><h2 class="inline" id="what-are-the-challenges-and-their-effective-solutions-">What Are the Challenges and Their Effective Solutions?</h2></a>
<p><strong>Targeting multiple platforms both advanced and outdated mobile platforms</strong></p>
<p>Whenever we develop an application for a superior platform and want it to run smoothly on other devices and platforms as well, there is always the risk of creating a poor UX and bad app quality. Luckily, this can be combated by making the content quality and features scale alongside with the targeted platform.</p>
<p>You must ensure the performance of your application on multiple platforms to attain a sustainable success in the market. By doing so, you can make it certain that if someone recommends your app to his friends, they can also run your app without getting restricted by the device that they own.</p>
<p><strong>iOS Application approval time from the App Store</strong></p>
<p>The Apple App store needs a considerable amount of time to review an application and approve it. Due to this chronically slow application submission process, iOS users are often not able to get the updates as early as other platform users get. Thus, to ensure that the updates of your cross platform application are reaching on time to your potential users, you must cautiously plan the design and development of your app. One of the solution to efficiently deal with this issue is to create applications embracing backward compatibility.</p>
<a href="#cross-platform-mobile-frameworks"><h2 class="inline" id="cross-platform-mobile-frameworks">Cross Platform Mobile Frameworks</h2></a>
<p>Fortunately, there is no dearth of effective and efficient tools and frameworks that facilitate one to conveniently develop a desired application. Let's have a glance into the blissful cross platform mobile app development frameworks that make a much sought after choice.</p>
<a href="#appcelerator-titanium"><h3 class="inline" id="appcelerator-titanium">Appcelerator Titanium</h3></a>
<p>{{ screenshot: <a class="underline" href="http://www.appcelerator.com/product/">http://www.appcelerator.com/product/</a> }}</p>
<p><a class="underline" href="http://www.appcelerator.com/product/">Appcelerator Titanium</a> amazingly reuses the code while creating apps with native look and feel. It features a useful SDK and implements JavaScript to support cross platform application development for Android and iOS by reusing over 50% of the code. This open source framework saves a lot of valuable time, and being constantly maintained with a slew of developers, supports updated features.</p>
<a href="#adobe-phonegap"><h3 class="inline" id="adobe-phonegap">Adobe PhoneGap</h3></a>
<p>{{ screenshot: <a class="underline" href="https://build.phonegap.com/">https://build.phonegap.com/</a> }}</p>
<p><a class="underline" href="https://www.phonegap.com/">Adobe PhoneGap</a> is yet another prolific framework that delivers a fabulous performance. It makes code translation from CSS, HTML5 and JavaScript a breeze. This framework proficiently maintains the SDK separately for each mobile OS. It makes a much preferred choice for novice application developers.</p>
<a href="#unity-3d"><h3 class="inline" id="unity-3d">Unity 3D</h3></a>
<p>{{ screenshot: <a class="underline" href="http://unity3d.com/">http://unity3d.com/</a> }}</p>
<p><a class="underline" href="http://unity3d.com/">Unity 3D</a> is an incredible game engine that is known for delivering cutting edge graphics. Once you have developed your code in C#, Boo, or UnityScript, you can seamlessly export your app to a range of mobile platforms like Windows Phone, iOS, Android, etc.</p>
<a href="#corona"><h3 class="inline" id="corona">Corona</h3></a>
<p>{{ screenshot: <a class="underline" href="https://coronalabs.com/">https://coronalabs.com/</a> }}</p>
<p><a class="underline" href="https://coronalabs.com/"><strong>Corona</strong></a> has been optimized for 2D graphics, Corona SDK enables one to quickly start developing applications in a desired manner. You can rapidly develop a gaming app with this framework, without beginning from scratch. Its possess Lua coding language (which is based on C programming language) that facilitates powerful app development with a flair.</p>
<a href="#rhomobile"><h3 class="inline" id="rhomobile">RhoMobile</h3></a>
<p>{{ screenshot: <a class="underline" href="http://rhomobile.com/">http://rhomobile.com/</a> }}</p>
<p><a class="underline" href="http://rhomobile.com/"><strong>RhoMobile</strong></a> is a great companion that makes it really simple to develop a cross platform mobile app without compromising on its quality. You can integrate supreme functionalities into your app, while creating an intuitive and intriguing interface. It offers a valuable video tutorial that certainly makes it easier to get started and develop an astounding application that can run smoothly on various mobile platforms.</p>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<p>I hope this guide will help you understand what cross platform mobile app development is and how you can reap its benefits to proficiently boost your business values. There is frameworks galore, but it is always advisable to keep your potential audience and business goals in mind while choosing a suitable framework to ensure a worthwhile approach.</p>
<hr>
<p>Victoria Brinsley is a Android app developer for Appsted Ltd – a reputed <a class="underline" href="http://www.appsted.com/services/android-development">Android application development company</a>. In case, you are willing to avail a detailed information on the same, get in touch.</p>
]]></content></entry><entry><title>JSter #50: News of July 2015 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-july-2015-part-1"></link><id>monthly-jster-july-2015-part-1</id><published>2015-07-17T02:09:46.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>You know it's a JavaScript project when half of the files at project root are dotfiles</p>
</blockquote>
<p>As <a class="underline" href="http://survivejs.com/">SurviveJS</a> has begun to gain some steam behind it I've set up <a class="underline" href="http://survivejs.com/blog/">a blog</a> and <a class="underline" href="https://buttondown.email/jster">a mailing list</a> for it. Now the focus is on bumping up the quality of the current Webpack and React related book and going for a bigger release. So if you are interested in these topics, consider signing up.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://paulkinzett.github.io/toolbar/">https://paulkinzett.github.io/toolbar/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://cycle.js.org/">Cycle.js</a> - A fully reactive JavaScript framework for Human-Computer Interaction</li>
<li><a class="underline" href="https://paulkinzett.github.io/toolbar/">Toolbar.js</a> - A jQuery plugin that creates tooltip style toolbars</li>
<li><a class="underline" href="http://dynamicsjs.com/">Dynamics.js</a> - Create physics-based animations</li>
<li><a class="underline" href="http://jlongster.com/Transducers.js--A-JavaScript-Library-for-Transformation-of-Data">Transducers.js</a> - A JavaScript Library for Transformation of Data</li>
<li><a class="underline" href="http://madscript.com/boron/">Boron</a> - Nice looking modals for React</li>
<li><a class="underline" href="https://github.com/rtfeldman/seamless-immutable">rtfeldman/seamless-immutable</a> - Immutable, backwards compatible data structures for normal Arrays and Objects</li>
<li><a class="underline" href="http://stats.js.org/">js.org</a> - 10k most popular JavaScript projects on GitHub</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="https://medium.com/google-developers/introducing-incremental-dom-e98f79ce2c5f">https://medium.com/google-developers/introducing-incremental-dom-e98f79ce2c5f</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/google-developers/introducing-incremental-dom-e98f79ce2c5f">Introducing Incremental DOM</a> - Google's turn to push the web forward.</li>
<li><a class="underline" href="http://blog.ustunozgur.com/javascript/programming/books/videos/2015/06/17/how_to_be_a_great_javascript_software_developer.html">How to Become a Great JavaScript Developer</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://rigsomelight.com/2015/06/09/straightforward-live-functional-javascript-building-the-yome-widget.html">http://rigsomelight.com/2015/06/09/straightforward-live-functional-javascript-building-the-yome-widget.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://rigsomelight.com/2015/06/09/straightforward-live-functional-javascript-building-the-yome-widget.html">Straightforward (Live) Functional JavaScript: Building the Yome Widget</a></li>
<li><a class="underline" href="http://insin.github.io/react-lessons/">React Lessons</a> - Interactive React lessons</li>
<li><a class="underline" href="http://davidwalsh.name/3d-carousel">Crafting a 3D React Carousel</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/06/es6-in-depth-collections/">ES6 In Depth: Collections</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/06/es6-in-depth-symbols/">ES6 In Depth: Symbols</a></li>
<li><a class="underline" href="http://jmfurlott.com/tutorial-setting-up-a-simple-isomorphic-react-app/">Setting Up a Simple Isomorphic React app</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://prezi.com/x7h8k4vw8qla/a-brief-history-of-client-side-js-why-react-is-awesome/">A Brief History of client-side JS: Why React is Awesome</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.toptal.com/react/navigating-the-react-ecosystem">A Guide to React.js Tools and Libraries</a></li>
<li><a class="underline" href="https://unpm.nodesource.com/">Understanding npm</a> - Amazing visualization about npm</li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/ericdouglas/ES6-Learning">ericdouglas/ES6-Learning</a> - If you need to a list of ES6 resources to go through look no further</li>
<li><a class="underline" href="https://github.com/kolodny/exercises">kolodny/exercises</a> - Basic JavaScript coding challenges and interview questions</li>
<li><a class="underline" href="https://github.com/coodict/javascript-in-one-pic">coodict/javascript-in-one-pic</a> - Learn JavaScript in one picture</li>
<li><a class="underline" href="http://forthebadge.com/">For the Badge</a> - If you need a badge, might as well pick one from here</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://css-tricks.com/the-difference-between-throttling-and-debouncing/">The Difference Between Throttling and Debouncing</a></li>
<li><a class="underline" href="https://gist.github.com/paulirish/12fb951a8b893a454b32">bling dot js</a> - I.e. how to get most of the power of jQuery without jQuery</li>
</ul>
<a href="#comics"><h2 class="inline" id="comics">Comics</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://cube-drone.com/comics/c/relentless-persistence">Relentless Persistence</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/haydenbleasel/favicons">haydenbleasel/favicons</a> - Favicon generator for Node.js</li>
<li><a class="underline" href="https://symdiff.github.io/">symdiff</a> - symdiff helps you to figure out which style definitions to remove from your project</li>
<li><a class="underline" href="http://metaes.org/">MetaES</a> - JavaScript interpreter implemented in JavaScript. The world is complete now.</li>
<li><a class="underline" href="http://jster.net/blog/7-hassle-free-tools">7 Tools for Hassle Free JavaScript Development</a></li>
<li><a class="underline" href="https://github.com/facebook/graphql">facebook/graphql</a> - Time to go RESTless?</li>
<li><a class="underline" href="https://github.com/flyjs/fly">flyjs/fly</a> - New generation build system. Think it as a Koa version of Gulp.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://amid.fish/javascript-karplus-strong/">JavaScript Karplus-Strong</a> - Guitar synthesizer</li>
<li><a class="underline" href="http://soundofjs.com/">Sound of JS</a> - What does your JavaScript sound like?</li>
<li><a class="underline" href="https://github.com/codegolf/pac-man">codegolf/pac-man</a> - Pacman golfed under 0.5k of JavaScript</li>
</ul>
]]></content></entry><entry><title>7 Tools for Hassle Free JavaScript Development</title><link rel="alternate" type="text/html" href="https://jster.net/blog/7-hassle-free-tools"></link><id>7-hassle-free-tools</id><published>2015-07-06T05:19:59.000Z</published><content type="text/html"><![CDATA[<p>The rapidly growing interest in JavaScript has lead to an immense amounts of tools. From developer perspective it can be difficult to keep up as new ones keep on appearing. In this post we'll go through seven interesting ones. So let's get started.</p>
<a href="#hitch"><h2 class="inline" id="hitch">Hitch</h2></a>
<p>{{ screenshot: <a class="underline" href="http://hitchjs.com/">http://hitchjs.com/</a> }}</p>
<p>If writing CSS has been giving you jitters, then <a class="underline" href="http://hitchjs.com/">Hitch</a> is the tool for you. As a small i.e. 5.5k gzipped JavaScript prollyfill engine, Hitch provides you an extension model for your HTML and CSS. By including Hitch in your pages, you can go ahead with importing and leveraging CSS selectors.</p>
<a href="#webpack"><h2 class="inline" id="webpack">Webpack</h2></a>
<p>{{ screenshot: <a class="underline" href="https://webpack.github.io/docs/what-is-webpack.html">https://webpack.github.io/docs/what-is-webpack.html</a> }}</p>
<p>Webpack, a module bundler, is one of those tools that on the first look seems very simple. Don't let the first impression fool you. Webpack is a powerful tool that in fact solves the fundamental problem of web development. By adopting Webpack you can eliminate a lot of manual configuration from your project.</p>
<p>Webpack overrides import statements and allows you to load arbitrary assets through them. Better yet it can create bundles just the way you want it to. For instance you might want to split bundles (ie. app/vendor bundle) or load some of the dependencies dynamically. Webpack can do this and a lot more. Thanks to <a class="underline" href="https://gaearon.github.io/react-hot-loader/">react-hot-loader</a> it a delight to use particularly for <a class="underline" href="https://facebook.github.io/react/">React</a> developers.</p>
<p><a class="underline" href="http://survivejs.com/">SurviveJS - Webpack and React</a>, a freely available guide, shows you how to get started with Webpack and React. It illustrates well why Webpack is such a powerful yet underappreciated tool. See also <a class="underline" href="https://webpack.zeef.com/bebraw">the list of Webpack resources</a>.</p>
<a href="#eslint"><h2 class="inline" id="eslint">ESLint</h2></a>
<p>{{ screenshot: <a class="underline" href="http://eslint.org/">http://eslint.org/</a> }}</p>
<p><a class="underline" href="http://eslint.org/">ESLint</a> represents the newest evolutionary step of JavaScript linting tools. It allows you to detect possible errors in your code early on and hence saves both time and nerves. Compared to earlier tools, such as <a class="underline" href="http://jshint.com/">JSHint</a>, ESLint allows a wider range of customizability. You can implement your own rules easily for instance and tweak the tool to your liking. <a class="underline" href="http://survivejs.com/webpack_react/linting_in_webpack/">ESLint works well with Webpack</a>.</p>
<a href="#github-linker-chrome-extension"><h2 class="inline" id="github-linker-chrome-extension">GitHub Linker Chrome Extension</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/github-linker/chrome-extension">https://github.com/github-linker/chrome-extension</a> }}</p>
<p>As it can be painful to navigate through JavaScript projects using the GitHub user interface, <a class="underline" href="https://github.com/github-linker/chrome-extension">Github Linker</a> makes that a little easier. Using this Chrome extension you can jump directly to the target of a <code>require</code> statement. Even though this doesn't sound much every little bit counts.</p>
<a href="#github-1-chrome-extension"><h2 class="inline" id="github-1-chrome-extension">GitHub +1 Chrome Extension</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/ryanflorence/github-plusone-extension">https://github.com/ryanflorence/github-plusone-extension</a> }}</p>
<p>Don't you hate it when people <code>+1</code> a thread and then the thread gets all spammy? [GitHub +1]{<a class="underline" href="https://github.com/ryanflorence/github-plusone-extension}">https://github.com/ryanflorence/github-plusone-extension}</a> extension for Chrome takes care of this. It will get rid of the gunk and show +1's in a tidy little box at the top of the thread. Now only if GitHub turned this into a real feature and hacks like this wouldn't be needed.</p>
<a href="#atom"><h2 class="inline" id="atom">Atom</h2></a>
<p>{{ screenshot: <a class="underline" href="https://atom.io/">https://atom.io/</a> }}</p>
<p>GitHub's <a class="underline" href="https://atom.io/">Atom</a> is the greatest and the most beautiful contender for Sublime Text. Sponsored by GitHub the project has a strong backing and keeps on moving forward at a blistering pace. It reached 1.0 milestone just recently. At this pace it will continue to attract even more developers to Atom camp. Even though it's not a full-fledged IDE it does provide a ton of packages you can apply in your daily work.</p>
<a href="#nuclide"><h2 class="inline" id="nuclide">Nuclide</h2></a>
<p>{{ screenshot: <a class="underline" href="http://nuclide.io/">http://nuclide.io/</a> }}</p>
<p>Even though I just said Atom isn't an IDE, <a class="underline" href="http://nuclide.io/">Nuclide</a> sure is. It has been developed on top of Atom as a collection of packages and tries to provide more uniform development experience than what you might get otherwise. So if you are already using Atom maybe Nuclide is worth a look.</p>
<a href="#visual-studio-code"><h2 class="inline" id="visual-studio-code">Visual Studio Code</h2></a>
<p><a class="underline" href="https://code.visualstudio.com/">Visual Studio Code</a> is a strong, recent contender to Atom. Who would have thought you could run a version of Visual Studio on Linux or OS X one day? Well, here you have it. TypeScript fans should be thrilled!</p>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<p>So, that was a set of 7 impeccable JavaScript development tools that support you in simple and complex Java development. So, get on with making the most of
  these tools for creating scalable, and well-maintained Java based applications.</p>
<hr>
<p>Lucie Kruger is an application developer working with Mobiers Ltd, which is the leading <a class="underline" href="http://www.mobiers.com/services/android-development">Android application development company</a>. She provides concrete information on latest information on mobile technologies like iOS or Android development processes.</p>
]]></content></entry><entry><title>JSter #49: News of June 2015 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-june-2015-part-2"></link><id>monthly-jster-june-2015-part-2</id><published>2015-07-01T04:43:41.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>It takes two to JavaScript</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://bitshadow.github.io/iconate/">https://bitshadow.github.io/iconate/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://bitshadow.github.io/iconate/">iconate.js</a> - Transform your icons with trendy animations</li>
<li><a class="underline" href="http://loadfive.com/os/knwl/">Knwl.js</a> - A Javascript Natural Language Parser</li>
<li><a class="underline" href="http://jster.net/blog/7-mobile-ui-frameworks">7 Useful HTML5 UI Frameworks For Mobile App Development</a></li>
<li><a class="underline" href="http://rrees.me/2015/06/04/overview-of-javascript-reactive-frameworks/">An overview of Javascript reactive frameworks</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://blog.startifact.com/posts/graphql-and-rest.html">http://blog.startifact.com/posts/graphql-and-rest.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.startifact.com/posts/graphql-and-rest.html">GraphQL and REST</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/06/the-state-of-web-components/">The state of Web Components</a></li>
<li><a class="underline" href="http://getpostdelete.com/how-not-to-write-an-api.html">How not to write an API</a></li>
<li><a class="underline" href="https://medium.com/@dan_abramov/the-evolution-of-flux-frameworks-6c16ad26bb31">The Evolution of Flux Frameworks</a></li>
<li><a class="underline" href="https://medium.com/angularjs-meetup-south-london/angular-new-features-in-angular-1-4-b9b47077a8b2">Angular — New features in AngularJS 1.4</a></li>
<li><a class="underline" href="https://brendaneich.com/2015/06/from-asm-js-to-webassembly/">From asm.js to WebAssembly</a></li>
<li><a class="underline" href="http://jsart.co/11/replicating-art-with-js/">Replicating Art With JS</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://grigio.org/meteor-react-and-material-ui-the-easy-way/">http://grigio.org/meteor-react-and-material-ui-the-easy-way/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://grigio.org/meteor-react-and-material-ui-the-easy-way/">Meteor, React and Material UI the easy way</a></li>
<li><a class="underline" href="http://devdactic.com/react-native-for-beginners/">React Native For Beginners</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/06/es6-in-depth-arrow-functions/">ES6 In Depth: Arrow functions</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/05/es6-in-depth-destructuring/">ES6 In Depth: Destructuring</a></li>
<li><a class="underline" href="http://simonsmith.io/using-webpack-to-build-react-components-and-their-assets/">Using Webpack to build React components and their assets</a></li>
<li><a class="underline" href="http://jxnblk.com/react-icons/">Building SVG Icons with React</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://projects.formidablelabs.com/es6-interactive-guide/">ES6 Interactive Guide</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.netgusto.com/asynchronous-reactjs-component-loading-with-webpack/">Asynchronous ReactJS Component loading with Webpack</a></li>
<li><a class="underline" href="https://css-tricks.com/the-difference-between-throttling-and-debouncing/">The Difference Between Throttling and Debouncing</a></li>
<li><a class="underline" href="https://auth0.com/blog/2015/04/09/adding-authentication-to-your-react-flux-app/">Adding authentication to your React Flux app</a></li>
<li><a class="underline" href="http://gofore.com/ohjelmistokehitys/react-native-share-application-logic-web-mobile/">React Native – Share Your Application Logic on Web and Mobile</a></li>
<li><a class="underline" href="https://speakerdeck.com/hugocrd/dealing-with-streams-using-rxjs">Dealing with streams using RxJs</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/olistic/warriorjs">olistic/warriorjs</a> - Learn JavaScript the warrior way</li>
<li><a class="underline" href="https://react.zeef.com/nick.raienko">A Nice Collection of React Resources</a></li>
<li><a class="underline" href="https://github.com/MicheleBertoli/css-in-js">MicheleBertoli/css-in-js</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://engineering.khanacademy.org/posts/tota11y.htm">tota11y - an accessibility visualization toolkit</a></li>
<li><a class="underline" href="https://github.com/npm/npm/releases/tag/v3.0.0">npm 3.0.0</a></li>
<li><a class="underline" href="http://cssarrowplease.com/">cssarrowplease</a></li>
<li><a class="underline" href="http://jster.net/blog/speed-you-up-your-web-development">10 Web Development Tools to Speed You Up</a></li>
<li><a class="underline" href="http://ternjs.net/doc/demo.html">Tern</a> - Better editor tooling for JavaScript</li>
<li><a class="underline" href="https://github.com/skidding/cosmos">skidding/cosmos</a> - A development tool for designing truly encapsulated React components</li>
</ul>
]]></content></entry><entry><title>7 Useful HTML5 UI Frameworks For Mobile App Development</title><link rel="alternate" type="text/html" href="https://jster.net/blog/7-mobile-ui-frameworks"></link><id>7-mobile-ui-frameworks</id><published>2015-06-30T09:29:41.000Z</published><content type="text/html"><![CDATA[<p>Thanks to the advanced mobile app development frameworks available out there mobile application development is easier than ever. There is no dearth of prolific frameworks that facilitate developers to build captivating and trendy applications with a flair.</p>
<p>With the incessantly increasing demand of HTML5 mobile applications in the market, web developers are seeking tools and frameworks that can help them deliver remarkable UX. Fortunately, today we have HTML5 UI frameworks that are specifically designed to ensure an intuitive and classy interface to augment the usability of apps.</p>
<p>This post will showcase some of the best HTML5 UI frameworks available in the market.</p>
<a href="#what-is-a-ui-framework-"><h2 class="inline" id="what-is-a-ui-framework-">What is a UI Framework?</h2></a>
<div class="picture"><img src="/img/blog/82/html5ui.jpg" alt="HTML5 UI Framework" /></div>

<p>UI frameworks are basically libraries that empowers developers to efficiently build applications that deliver a high end user experience. These libraries include some CSS and JavaScript based files, which are then required to be used in an HTML file. These advanced web technologies make them ideal for both native hybrid and mobile web application development.</p>
<p>The hybrid apps feature a native wrapper that empowers HTML5 to control the entire UX, and they are developed via some wrapping technology like Cordova. A wrapping technology facilitates HTML5 to efficiently access the native functions of a targeted device.</p>
<p>Now, I hope it's clear that how an HTML5 UI framework can augment the usability of an application. Here are some impeccable frameworks that make a much sought after choice; let's explore them one by one.</p>
<a href="#twitter-bootstrap-3"><h2 class="inline" id="twitter-bootstrap-3">Twitter Bootstrap 3</h2></a>
<p>{{ screenshot: <a class="underline" href="http://getbootstrap.com/">http://getbootstrap.com/</a> }}</p>
<p><a class="underline" href="http://getbootstrap.com/">Twitter Bootstrap3</a> is the most popular UI framework for developing stunning mobile web applications. This advanced HTML, CSS and JavaScript compliant framework enable individuals from a novice to an expert to efficiently develop a desired mobile app.</p>
<p>It is specifically built to make front-end development a breeze, the source code of the framework implements famous Sass and LESS CSS preprocessors, and add to agile app development. Bootstrap3 is ideal to create responsive HTML5 applications with spectacular interface that can run seamlessly on any device.</p>
<a href="#ionic-framework"><h2 class="inline" id="ionic-framework">Ionic Framework</h2></a>
<p>{{ screenshot: <a class="underline" href="http://ionicframework.com/">http://ionicframework.com/</a> }}</p>
<p><a class="underline" href="http://ionicframework.com/">Ionic Framework</a> is a cutting edge hybrid tool that heightens hybrid mobile app development with the HTML5 technology. Its powerful, open source, front-end SDK enables one to design beautiful applications without compromising on the app quality.</p>
<p>It features a mobile-optimized library jam-packed with gestures, components (based on web technologies, including HTML, CSS and JavaScript), and resourceful tools. You can proficiently develop intriguing and highly interactive applications.</p>
<p>Works for a client-side MVC (Model View Controller) architecture, the Ionic framework is developed with Sass preprocessor and optimized for AngularJS. This helps deliver enticing performance with expeditious, feature-rich, powerful mobile applications. And, this is not it. The framework is not only ideal for app development, but also streamlines app testing process.</p>
<a href="#jquery-mobile"><h2 class="inline" id="jquery-mobile">jQuery Mobile</h2></a>
<p>{{ screenshot: <a class="underline" href="https://jquerymobile.com/">https://jquerymobile.com/</a> }}</p>
<p><a class="underline" href="https://jquerymobile.com/">jQuery Mobile</a> is the most commonly used HTML5 framework that is available around for a while now. This minimalist framework is built on the top of jQuery UI foundation. It delivers touch-optimized and responsive HTML5 apps that can smoothly run on various devices. It helps create cross-platform compatible results, and thus, makes a viable choice.</p>
<a href="#kendo-ui"><h2 class="inline" id="kendo-ui">Kendo UI</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.telerik.com/kendo-ui">http://www.telerik.com/kendo-ui</a> }}</p>
<p><a class="underline" href="http://www.telerik.com/kendo-ui">Kendo UI</a> is yet another prolific HTML5 and JavaScript mobile app development UI framework that helps create apps with out of the box design and functionalities. It heavily depends on a set of various jQuery-powered UI widgets.</p>
<p>It is lightweight and expedites the development process without leaving the app quality behind. This open source framework supports the integration with both the powerful AngularJS and Bootstrap. While there are numerous ready-to-use themes, it also includes a built-in theme builder to help tailor the look and feel of an app in a desired manner.</p>
<a href="#topcoat"><h2 class="inline" id="topcoat">Topcoat</h2></a>
<p>{{ screenshot: <a class="underline" href="http://topcoat.io/">http://topcoat.io/</a> }}</p>
<p><a class="underline" href="http://topcoat.io/">Adobe Topcoat</a> is a fabulous HTML5 UI framework that offers blissful features to develop modern mobile apps for free. The framework relies heavily on CSS instead of JavaScript, this provides a great control to designers. It, thus, facilitates designers to develop highly creative mobile applications with a flair.</p>
<p>You can develop impressive aesthetics with this captivating tool and ensure its success with a unique and engaging design. Although, the tool is primarily designed to meet the needs of desktop browsers, the integrated mobile stylesheet makes it perfect to develop touch-optimized mobile applications for mobile browsers.</p>
<a href="#sencha-touch"><h2 class="inline" id="sencha-touch">Sencha Touch</h2></a>
<div class="picture"><img src="/img/blog/82/sencha.jpg" alt="Sencha Touch" /></div>

<p><a class="underline" href="http://www.sencha.com/products/touch/">Sencha Touch</a> is one of the popular cross-platform HTML5 app development framework. It is an MVC (Modern View Controller) based framework and has gained a great momentum for developing hybrid applications.</p>
<p>It is exceptionally powerful and enables experts to deliver web applications with an amazing native look and feel. The intuitive interface of the tool makes it easy to develop pleasing applications embracing latest web design trends.</p>
<a href="#monaca"><h2 class="inline" id="monaca">Monaca</h2></a>
<div class="picture"><img src="/img/blog/82/monaca.jpg" alt="Monaca" /></div>

<p><a class="underline" href="https://monaca.io/">Monaca</a> is yet another commercial mobile application development platform that supports Cordova plugins and HTML5 APIs. It facilitates flexible hybrid application development with cloud based IDEs with resourceful tools and services. You can seamlessly and flawlessly manage the app development process.</p>
<p>By using the suitable Cordava plugin, you can proficiently compile and launch your application on multiple mobile platforms. Moreover, being a framework agnostic, it allows one to work with a desired framework to reap the benefits of its cloud-powered services.</p>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<p>Although there is a huge array of HTML UI frameworks, only a few of them are reliable and worthwhile. Above mentioned are some of the commendable HTML5 UI frameworks that augment mobile app development while ensuring miraculous user experience. All these frameworks have their own benefits, so you must take your prime objectives and target audience into account to streamline your choice with a framework which is most suitable for your project.</p>
<hr>
<p>This was a guest post by Addison Cohen. He is a mobile app developer working with Appsted Ltd, the leading <a class="underline" href="http://www.appsted.com/">mobile application development company</a> which delivers most comprehensive mobile application solutions. He loves sharing latest information on mobile technologies like iOS, Android development processes.</p>
]]></content></entry><entry><title>10 Web Development Tools to Speed You Up</title><link rel="alternate" type="text/html" href="https://jster.net/blog/speed-you-up-your-web-development"></link><id>speed-you-up-your-web-development</id><published>2015-06-21T13:51:57.000Z</published><content type="text/html"><![CDATA[<p>Web development is no more a daunting task as it used to be a few years ago. This has not been possible without the outstanding frameworks, tools and extensions.</p>
<p>Fortunately, there is a plethora of web development tools and extensions available out there that has made a web developer's life much easier. However, when an unlimited number of options are available in front, it often leads to confusion and ultimately make it hard to pick the most suitable option.</p>
<p>If you are a web developer and looking for proficient web development tools or extensions, we have compiled an array of superlative options available out there. Streamline your choice, and pick the best suitable tool as per your project needs and develop a requisite web solution with a flair.</p>
<p>Let's distill a list of noteworthy web development tools and extensions.</p>
<a href="#whatfont"><h2 class="inline" id="whatfont">WhatFont</h2></a>
<p>If you want to determine the font used in a web page that you liked, <a class="underline" href="https://chrome.google.com/webstore/detail/whatfont/jabopobgcpjmedljpbcaablpmlmfcogm">WhatFont Chrome extension</a> makes a great choice. Although there are tools like Chrome Inspector and Firebug that facilitates one to determine the used font, these tools also demand expertise to deploy them. Thus, such tools are not recommended to individuals from non-tech background. However, the WhatFont extension can help one to determine the font by simply hovering over the text. It is extremely simple and easy to implement.</p>
<p>While allowing one to inspect a font used on an web page, it also helps one to determine the services used to serve the web fonts. And, for accomplishing this in an appropriate manner, it supports the Google Font API and Typekit.</p>
<a href="#font-playground"><h2 class="inline" id="font-playground">Font Playground</h2></a>
<p><a class="underline" href="https://chrome.google.com/webstore/detail/font-playground/hdpmpnhaoddjelneingmbnhaibbmjgno">Font Playground</a> is an extremely resourceful extension that can benefit both developers and designers. By using this Chrome extension, you can seamlessly doodle with the local fonts and experiment the fonts available in the Google Font library. Also, since it allows one to tinker with the font attributes (like weight, text effect, font style, etc.,) without even making any real time changes, it makes a viable choice.</p>
<a href="#csscop-fxcop-for-stylesheets"><h2 class="inline" id="csscop-fxcop-for-stylesheets">CssCop - FxCop for Stylesheets</h2></a>
<p>{{ screenshot: <a class="underline" href="https://visualstudiogallery.msdn.microsoft.com/a921b98e-9430-4be2-bf53-1169e12bdb50">https://visualstudiogallery.msdn.microsoft.com/a921b98e-9430-4be2-bf53-1169e12bdb50</a> }}</p>
<p><a class="underline" href="https://visualstudiogallery.msdn.microsoft.com/a921b98e-9430-4be2-bf53-1169e12bdb50">CssCop</a> - FxCop for Stylesheets is yet another useful tool that analyzes the CSS used for appropriate browser compatibility issue, syntax, etc., by implementing the CSS Lint. Moreover, it also allows users to personalize the protocols adhered by CssCop as per their needs. So, you can tailor the functionality of the tool as per your project needs. This tool is compatible with different versions of Visual Studio, including 2013, 2012, 2010 and 14 CPT.</p>
<a href="#livereload"><h2 class="inline" id="livereload">LiveReload</h2></a>
<p>{{ screenshot: <a class="underline" href="http://livereload.com/">http://livereload.com/</a> }}</p>
<p><a class="underline" href="http://livereload.com/">LiveReload</a> is another useful tool that supports integration of the Chrome browser to make the genuine LiveRelad applications for Windows and Mac, and third-party applications (like Yeoman) run flawlessly and seamlessly. Its official website offers a complete guide to efficiently work with this tool, you may refer that before getting started.</p>
<a href="#browsersync"><h2 class="inline" id="browsersync">Browsersync</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.browsersync.io/">http://www.browsersync.io/</a> }}</p>
<p><a class="underline" href="http://www.browsersync.io/">Browsersync</a> is a popular alternative to LiveReload. There is integration for popular tooling (Grunt, Gulp, etc.). In addition there is a browser based user interface, URL history and a remote inspector useful for debugging on remote devices.</p>
<a href="#css-shack"><h2 class="inline" id="css-shack">CSS-Shack</h2></a>
<p><a class="underline" href="https://chrome.google.com/webstore/detail/css-shack/geiccgjkigajaicecnhdokggninehdlp">CSS-Shack</a> is a wonderful application for web and desktop users. You can efficiently create layer styles and push them in a single CSS file. You can efficiently accomplish both simple and complex tasks with this tool. Whether you want design websites or create a button only, it offers a proficient and highly creative tool.</p>
<a href="#web-developer-checklist"><h2 class="inline" id="web-developer-checklist">Web Developer Checklist</h2></a>
<p>{{ screenshot: <a class="underline" href="http://webdevchecklist.com/">http://webdevchecklist.com/</a> }}</p>
<p>To ensure that your website is embracing rules for better SEO, without leaving the site's performance and usability behind, the <a class="underline" href="http://webdevchecklist.com/">Web Developer Checklist</a> offers a brilliant option. The tool offers a great way to make your site stand out among your competitors.</p>
<a href="#rails-panel"><h2 class="inline" id="rails-panel">Rails Panel</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/dejan/rails_panel">https://github.com/dejan/rails_panel</a> }}</p>
<p>Have a better insight into the total request time, Database, view rendering and so forth by simply using the <a class="underline" href="https://github.com/dejan/rails_panel">Rails Panel</a>, a Chrome extension. It is quite easy to use and includes a documentation that further makes it easy for professionals to work on the web.</p>
<a href="#angular-batarang"><h2 class="inline" id="angular-batarang">Angular Batarang</h2></a>
<p><a class="underline" href="https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk">Angular Batarang</a> is an excellent extension that has been developed by the Angular team with a great precision. You can efficiently analyze nested scopes, view the associated DOM elements and easily get insights into models. Moreover, you can also identify your app's expression's performance and visualize dependencies.</p>
<a href="#ember-inspector"><h2 class="inline" id="ember-inspector">Ember Inspector</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/emberjs/ember-inspector">https://github.com/emberjs/ember-inspector</a> }}</p>
<p><a class="underline" href="https://github.com/emberjs/ember-inspector">Ember Inspector</a> is an invaluable tool that amazingly augments Ember.js debugging workflow. It basically helps inspect controllers, for which one just needs to select an element that renders in a context for additional information. You can also have better insights into models and the associated layers, attributes, etc. It allows you to work smoothly without delving deep into the Ember object graph. Both Chrome and Firefox are supported.</p>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<p>These are a few of the amazing web development tools that can help you develop a required web application with a breeze without compromising on the app quality. The aforementioned list also includes some exquisite tools that can augment web designing. Choose the suitable tools and extensions to conveniently develop a web application or a website and stay productive while delivering high end performance.</p>
<p>--</p>
<p>This was a guest post by Amanda Cline. Amanda has been working as app developer with Xicom Technologies Ltd- mobile app design and development company offering a range of software solutions like IT Outsourcing Services, Custom Software Development and Web and <a class="underline" href="http://www.xicom.biz/services/mobile-application-development/">Mobile Application Development Services</a>. Apart from this she has gathered an excellent amount of expertise as an IT support personal, blogger, computer programmer, App developer, a mentor and a trainer. You can contact her via <a class="underline" href="https://twitter.com/amandacline111">@amandacline111</a>.</p>
]]></content></entry><entry><title>JSter #48: News of June 2015 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-june-2015-part-1"></link><id>monthly-jster-june-2015-part-1</id><published>2015-06-15T06:21:47.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Saturday Night JS</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://github.com/szatkus/js2me">https://github.com/szatkus/js2me</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://scrollrevealjs.org/">scrollReveal.js</a> - Easily reveal elements as they enter viewport</li>
<li><a class="underline" href="https://nexts.github.io/Clusterize.js/">Clusterize.js</a> - Tiny plugin to display large data sets easily</li>
<li><a class="underline" href="https://github.com/Reactive-Extensions/rx.angular.js/">Reactive-Extensions/rx.angular.js</a> - AngularJS Bindings for RxJS</li>
<li><a class="underline" href="https://github.com/szatkus/js2me">szatkus/js2me</a> - Brings back memories</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://brewhouse.io/blog/2015/05/13/emberjs-an-antidote-to-your-hype-fatigue.html">http://brewhouse.io/blog/2015/05/13/emberjs-an-antidote-to-your-hype-fatigue.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://createdigitalmusic.com/2015/05/hardware-midi-chrome-audiotool-free-code-coming-html5/">Cool Things Chrome Can Do Now, Thanks to Hardware MIDI</a></li>
<li><a class="underline" href="http://searchengineland.com/tested-googlebot-crawls-javascript-heres-learned-220157">How Googlebot Crawls Javascript</a></li>
<li><a class="underline" href="http://brewhouse.io/blog/2015/05/13/emberjs-an-antidote-to-your-hype-fatigue.html">Ember.js: An Antidote To Your Hype Fatigue</a></li>
<li><a class="underline" href="https://segment.com/blog/deku-our-functional-alternative-to-react/">Deku: How we built our functional alternative to React</a></li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<p>{{ screenshot: <a class="underline" href="http://codemix.com/blog/why-babel-matters">http://codemix.com/blog/why-babel-matters</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://codemix.com/blog/why-babel-matters">Why Babel Matters?</a></li>
<li><a class="underline" href="http://pouchdb.com/2015/05/18/we-have-a-problem-with-promises.html">We have a problem with promises</a></li>
<li><a class="underline" href="http://joonaspajunen.com/the-abundance-of-javascript-libraries">The Abundance of JavaScript Libraries</a></li>
<li><a class="underline" href="https://medium.com/@cassiozen/flux-cargo-culting-3cae9ff27c0c">Flux Cargo-Culting</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@kevinle/building-functional-declarative-point-free-react-js-application-dc784fb0d8fc">Building functional, declarative, point free React JS application</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2015/05/es6-in-depth-rest-parameters-and-defaults/">ES6 In Depth: Rest parameters and defaults</a></li>
<li><a class="underline" href="https://medium.com/seek-ui-engineering/block-element-modifying-your-javascript-components-d7f99fcab52b">Block, Element, Modifying Your JavaScript Components</a></li>
<li><a class="underline" href="https://medium.com/@milankinen/good-bye-flux-welcome-bacon-rx-23c71abfb1a7">Goodbye Flux, welcome Bacon/Rx?</a></li>
<li><a class="underline" href="https://medium.com/javascript-scene/how-to-use-es6-for-isomorphic-javascript-apps-2a9c3abe5ea2">How to Use ES6 for Isomorphic JavaScript Apps</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://mrale.ph/talks/goto2015/#/">Benchmarking JavaScript</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://mosaic.academy/">Mosaic</a> - a JavaScript knowledge map</li>
<li><a class="underline" href="http://www.webdesigndegreecenter.org/choosing-javascript-framework/">Infographic</a> - Choosing Your Javascript Framework</li>
<li><a class="underline" href="https://github.com/hackhat/css-in-js-comparison">hackhat/css-in-js-comparison</a></li>
<li><a class="underline" href="http://www.geekpedia.com/KB53_A-list-of-keys-and-the-JavaScript-char-codes-they-correspond-to.html">A list of keys and the JavaScript char codes they correspond to</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://antwarjs.github.io/blog/antwar-050/">Antwar 0.5.0</a> - Static site generation using Webpack and React</li>
<li><a class="underline" href="http://fikascript.se/">FikaScript</a> - Write JavaScript in Swedish</li>
<li><a class="underline" href="https://jex.im/regulex/">Regulex</a> - JavaScript Regular Expression Visualizer</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.clicktorelease.com/code/cruciform/">cruciform</a> - Architecture demo in WebGL</li>
</ul>
]]></content></entry><entry><title>JSter #47: News of May 2015 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-may-2015-part-2"></link><id>monthly-jster-may-2015-part-2</id><published>2015-06-02T08:17:54.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>There's no script like JavaScript</p>
</blockquote>
<p>As hinted in the previous entry I have been working on a book. I have some good news. The Webpack/React book has <a class="underline" href="http://survivejs.com/">an official site</a> now. You can find the content there in case you are curious about the topic.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.ractivejs.org/">http://www.ractivejs.org/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.polymer-project.org/1.0/">Polymer 1.0</a> - Web Components. Now.</li>
<li><a class="underline" href="http://www.ractivejs.org/">Ractive.js</a> - Reactive templating</li>
<li><a class="underline" href="http://jquerymy.com/">jQuery.my</a> - Easy two way bindings for jQuery</li>
<li><a class="underline" href="http://elemental-ui.com/">Elemental UI</a> - Promising UI library for React</li>
<li><a class="underline" href="http://gaearon.github.io/react-dnd/">React DnD 1.0</a> - Drag and Drop. Not Dungeons and Dragons.</li>
<li><a class="underline" href="http://vorlonjs.com/">Vorlon.JS</a> - Platform-agnostic tool for remotely debugging and testing your JavaScript</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://jlongster.com/Why-React-Native-is-Different">http://jlongster.com/Why-React-Native-is-Different</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jlongster.com/Why-React-Native-is-Different">Why React Native is Different</a></li>
<li><a class="underline" href="https://www.airpair.com/angularjs/posts/top-10-mistakes-angularjs-developers-make">10 Top Mistakes AngularJS Developers Make</a></li>
<li><a class="underline" href="http://glebbahmutov.com/blog/paranoid-coding/">Paranoid coding</a></li>
<li><a class="underline" href="http://www.syntaxsuccess.com/viewarticle/decoupled-object-models-in-javascript">Decoupled object models in JavaScript</a></li>
<li><a class="underline" href="http://www.theserverside.com/tip/How-Netflix-modularized-their-JavaScript-Codebase">How Netflix modularized their JavaScript Codebase</a></li>
<li><a class="underline" href="https://blog.cloudflare.com/an-introduction-to-javascript-based-ddos/">An introduction to JavaScript-based DDoS</a></li>
<li><a class="underline" href="https://medium.com/@matthewwithanm/api-design-the-bind-operator-5a22d255bb18">API Design &: The Bind Operator</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="https://blog.algolia.com/modern-javascript-libraries-the-isomorphic-way/">https://blog.algolia.com/modern-javascript-libraries-the-isomorphic-way/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.algolia.com/modern-javascript-libraries-the-isomorphic-way/">Milliseconds Matter Modern JavaScript libraries: the isomorphic way</a></li>
<li><a class="underline" href="http://www.christianalfoni.com/articles/2015_04_26_Handling-complex-state-with-Baobab">Handling Complex State with Baobab</a></li>
<li><a class="underline" href="https://blogs.adobe.com/dreamweaver/2015/04/an-introduction-to-graphical-effects-in-css.html">An Introduction To Graphical Effects in CSS</a></li>
<li><a class="underline" href="http://davidtheclark.com/building-react-aria-menubutton/">Building an Open Source React Component</a></li>
<li><a class="underline" href="http://www.sitepoint.com/introduction-futuristic-new-router-angularjs/">An Introduction to the Futuristic New Router in AngularJS</a></li>
<li><a class="underline" href="https://facebook.github.io/react/blog/2015/05/01/graphql-introduction.html">GraphQL Introduction</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://elijahmanor.com/talks/js-smells/">Eliminate JavaScript Code Smells</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://eng.localytics.com/better-asynchronous-javascript/">Better Asynchronous JavaScript</a></li>
<li><a class="underline" href="http://www.sitepoint.com/immutability-react/">Immutability in React</a></li>
<li><a class="underline" href="http://blog.risingstack.com/the-react-js-way-flux-architecture-with-immutable-js/">The React.js Way: Flux Architecture with Immutable.js</a></li>
<li><a class="underline" href="http://blog.siftscience.com/blog/2015/best-practices-for-building-large-react-applications">Best Practices for Building Large React.js Applications</a></li>
<li><a class="underline" href="http://www.crmarsh.com/react-ssr/">Rendering React Components on the Server</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/05/es6-in-depth-generators/">ES6 In Depth: Generators</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/04/es6-in-depth-iterators-and-the-for-of-loop/">ES6 In Depth: Iterators and the for-of loop</a></li>
</ul>
<a href="#comics"><h2 class="inline" id="comics">Comics</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://notinventedhe.re/on/2015-5-19">Not Invented Here</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://survivejs.github.io/react-component-boilerplate/">react-component-boilerplate</a></li>
<li><a class="underline" href="http://projects.formidablelabs.com/component-playground/">component playground</a> - Render React components with editable source and live preview</li>
<li><a class="underline" href="https://code.visualstudio.com/Docs/editingevolved">Visual Studio Code</a> - Visual Studio goes full hipster!</li>
<li><a class="underline" href="http://wallabyjs.com/">Wallaby</a> - Commercial, intelligent test runner that runs your tests continuously</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://birdgames.nl/2015/05/js1k-post-mortem-train-window/">JS1k Train Window - post mortem</a></li>
<li><a class="underline" href="http://oos.moxiecode.com/js_webgl/spring/">Spring</a> - 3D demo</li>
<li><a class="underline" href="https://archive.org/details/msdos_2ND_REAL_shareware">Future Crew: Second Reality</a> - Classic</li>
</ul>
]]></content></entry><entry><title>JSter #46: News of May 2015 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-may-2015-part-1"></link><id>monthly-jster-may-2015-part-1</id><published>2015-05-16T08:54:26.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Always bet on JavaScript.</p>
</blockquote>
<p>I've been working on <a class="underline" href="https://leanpub.com/survivejs_webpack">a book about Webpack and React</a>. If either of those technologies interests you, please check it out. There's plenty of material to study. You can also find <a class="underline" href="https://github.com/survivejs/webpack_react">the material at GitHub</a> if you just want to have a quick peek.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://skitjs.com/">http://skitjs.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://skitjs.com/">skit</a> - JavaScript web application environment for first-class web clients. Also something offensive in Swedish.</li>
<li><a class="underline" href="https://github.com/jquery/globalize">jquery/globalize</a> - A JavaScript library for internationalization and localization that leverages the official Unicode CLDR JSON data</li>
<li><a class="underline" href="https://github.com/ericelliott/stampit">ericelliott/stampit</a> - OOP is better with stamps: Composable object factories</li>
<li><a class="underline" href="https://github.com/bendc/sprint">bendc/sprint</a> - A tiny, lightning fast jQuery-like library for modern browsers</li>
<li><a class="underline" href="https://fluxthis.io/">FluxThis</a> - The super-opinionated, yell-at-you-for-everything, immutable Flux framework by AddThis</li>
<li><a class="underline" href="https://bevacqua.github.io/dragula/">dragula</a> - Drag and drop simplified</li>
<li><a class="underline" href="https://callmecavs.github.io/layzr.js/">Layzr.js</a> - A small, fast, modern, and dependency-free library for lazy loading.</li>
</ul>
<a href="#frameworks"><h2 class="inline" id="frameworks">Frameworks</h2></a>
<p>{{ screenshot: <a class="underline" href="http://jsblocks.com/">http://jsblocks.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/foam-framework/foam">foam-framework/foam</a> - Feature-Oriented Active Modeller</li>
<li><a class="underline" href="http://jsblocks.com/">jsblocks</a> - Better MV-ish Framework</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://csswizardry.com/2015/04/cyclomatic-complexity-logic-in-css/">http://csswizardry.com/2015/04/cyclomatic-complexity-logic-in-css/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://csswizardry.com/2015/04/cyclomatic-complexity-logic-in-css/">Cyclomatic Complexity: Logic in CSS</a></li>
<li><a class="underline" href="http://techcrunch.com/2015/04/20/how-facebooks-react-native-will-change-mobile-apps/">How Facebook’s React Native Will Change Mobile Apps</a></li>
<li><a class="underline" href="https://medium.com/@bdauton/upcoming-features-in-the-next-chrome-devtools-b7edcb3002a5">Chrome DevTools upcoming features</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://es6katas.org/">Learn ECMAScript6 by doing it</a></li>
<li><a class="underline" href="http://mosaic.academy/exercise/let-and-const">Learn to use let and const</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/04/es6-in-depth-an-introduction/">ES6 In Depth: An Introduction</a></li>
<li><a class="underline" href="https://medium.com/angularjs-meetup-south-london/angular-new-router-preview-8002340e5427">Just another introduction to ngNewRouter</a></li>
<li><a class="underline" href="http://blog.ionic.io/angular-2-series-components/">Angular 2 Series: Components</a></li>
<li><a class="underline" href="http://jster.net/blog/learn-to-create-spas-with-react-and-om">How to use React and Om to make a Single Page Application</a></li>
<li><a class="underline" href="http://blog.risingstack.com/the-react-way-getting-started-tutorial/">The React.js Way: Getting Started Tutorial</a></li>
</ul>
<a href="#examples"><h2 class="inline" id="examples">Examples</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.tryolabs.com/2015/04/07/react-examples-mailbox/">React Examples: Mailbox</a></li>
<li><a class="underline" href="https://open.521dimensions.com/amplitudejs">amplitude.js</a> - Open source HTML5 audio player</li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://speakerdeck.com/jmorrell/jsconf-uy-flux-those-who-forget-the-past-dot-dot-dot-1">Flux - Those who forget the past...</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/mikechau/react-primer-draft">mikechau/react-primer-draft</a> - A primer for building web applications with React</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://rjzaworski.com/2015/01/putting-react-custom-proptypes-to-work">Putting React Custom PropTypes to Work</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/05/es6-in-depth-template-strings-2/">ES6 In Depth: Template strings</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.nativescript.org/blog/nativescript-1.0.0-is-now-available">NativeScript 1.0.0</a> - Develop native mobile apps using JavaScript</li>
<li><a class="underline" href="http://cody-cms.org/en/">Cody</a> - a CMS in Node.js</li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://webdesignstack.com/">Web Design Stack</a> - Web design resources under one roof</li>
<li><a class="underline" href="http://resizr.co/">.resizr</a> - Test your responsive web page</li>
</ul>
<a href="#hardware"><h2 class="inline" id="hardware">Hardware</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@nodesource/node-and-arm-b5e3eebf449">Node and ARM</a></li>
</ul>
<a href="#comics"><h2 class="inline" id="comics">Comics</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.commitstrip.com/en/2015/05/05/lost-generation/">Lost Generation</a></li>
</ul>
<p>--</p>
<p><a class="underline" href="http://www.appnext.com/platform.html">mobile monetization</a></p>
]]></content></entry><entry><title>How to use React and Om to make a Single Page Application</title><link rel="alternate" type="text/html" href="https://jster.net/blog/learn-to-create-spas-with-react-and-om"></link><id>learn-to-create-spas-with-react-and-om</id><published>2015-05-04T05:48:45.000Z</published><content type="text/html"><![CDATA[<p>In today’s guest article we’re going to use React, Om and Clojure to build a Single Page Application (SPA). SPAs are a great way to provide your audience with a desktop-level experience via traditional HTML, JavaScript, and CSS. While simple SPAs are easy to build using these technologies, large and complex SPA’s frequently become challenging to develop and maintain. One of the biggest challenges in these scenarios comes from a SPA’s reliance on JavaScript. That's where Om and Clojure come in.</p>
<a href="#about-react"><h2 class="inline" id="about-react">About React</h2></a>
<p>{{ screenshot: <a class="underline" href="https://facebook.github.io/react/">https://facebook.github.io/react/</a> }}</p>
<p>In 2013 Facebook released <a class="underline" href="https://facebook.github.io/react">React</a>, a JavaScript library with a new vision for client-side HTML rendering.  Unlike other client-side rendering engines, React maintains a “virtual DOM” that it compares to the browser’s HTML DOM.  Instead of re-rendering the entire HTML DOM when the application models change, React calculates the differences between the virtual and HTML DOM and only updates the HTML DOM content that has changed.</p>
<p>Rendering only the differences makes React incredibly fast and efficient, allowing it to scale for handling large complex views that would perform poorly if rendered in other client-side frameworks like <a class="underline" href="https://angularjs.org">AngularJS</a> or <a class="underline" href="http://emberjs.com">Ember.js</a>.</p>
<p>Unlike AngularJS and Ember.js, React only acts as a view engine and does not implement the other components of a typical SPA framework, such as routing and model management. To build a Single Page Application (SPA) with React, it must be combined with other libraries or integrated with existing SPA frameworks, such as AngularJS. When integrated with AngularJS, React renders the view and relies on AngularJS to handle the other typical SPA responsibilities.</p>
<a href="#clojure-a-javascript-alternative"><h2 class="inline" id="clojure-a-javascript-alternative">Clojure - a JavaScript Alternative</h2></a>
<p>{{ screenshot: <a class="underline" href="http://clojure.org/">http://clojure.org/</a> }}</p>
<p>JavaScript is a fantastic language, and many of the proposals in ECMA Script 6 and 7 will improve JavaScript even more, but most developers find that once applications grow beyond a certain threshold, they regret the loss of compiled language features, such as static typing and refactoring. These language features help developers discover bugs earlier in the development process and help larger teams work with unfamiliar code.</p>
<p>To solve this issue, <a class="underline" href="https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS">several groups of developers</a> have worked to cross-compile their favorite language into JavaScript. Cross-compiling allows a developer to work in a compiled language, such as Java, Scala, and C#, where you can rely on type safety. When the code is ready for testing or debugging, a cross-compiler takes the source and produces the equivalent JavaScript for execution in a JavaScript engine.</p>
<p><a class="underline" href="clojure.org">Clojure</a> is a Lisp-based language that compiles and executes on the JVM.  With <a class="underline" href="https://github.com/clojure/clojurescript">ClojureScript</a>, Clojure can be cross-compiled to JavaScript. Developing a SPA in a language like ClojureScript allows developers to utilize Clojure’s features like static type safety and immutability when working with large or complex applications. The Om project allows a developer using ClojureScript to interface with React in a client-side application. Let’s get started using React and Om to build a SPA.</p>
<a href="#getting-started"><h2 class="inline" id="getting-started">Getting Started</h2></a>
<p>First we need to install some prerequisites. At a minimum you’ll need <a class="underline" href="http://leiningen.org">Leiningen</a>, a JDK, and a Clojure-friendly editor. We recommend <a class="underline" href="http://lighttable.com">Light Table</a> but you can even use <a class="underline" href="https://github.com/jasongilman/SublimeClojureSetup">Sublime with some plug-ins</a> if you choose. Next, we’ll use Leiningen and a minimal Om template to start our project, <a class="underline" href="https://github.com/swannodette/mies-om">mies-om</a>. Open a command prompt and type the following:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedbash">lein new mies-om spa-tutorial
</code></pre>
<p>Leiningen sets up our minimal project template, but we’ll need some more modules to make a full SPA. As we mentioned, React does not have a router like a traditional SPA framework would. Here we’re going to setup <a class="underline" href="https://github.com/gf3/secretary">Secretary</a> as our router. We’re also going to pull in some helpers and macros to make Om programming easier, om-tools and http-kit. To make this change, edit your <code>project.clj</code> file to look like this:</p>
<p><strong>project.clj</strong></p>
<pre><code class="clojure">:dependencies [[org.clojure/clojure "1.6.0"]
       [org.clojure/clojurescript "0.0-2755"]
       [org.clojure/core.async “0.1.346.0-17112a-alpha"]
       [org.omcljs/om "0.8.8"]
       [prismatic/om-tools "0.3.11"]
       [http-kit "2.1.19"]
       [secretary “1.2.3”]]
</code></pre>

<p>also edit your core.cljs file to look like this:</p>
<p><strong>core.cljs</strong></p>
<pre><code class="clojure">(ns spa-tutorial.core
(:require [om.core :as om :include-macros true]
      [om-tools.dom :as dom :include-macros true]
      [om-tools.core :refer-macros [defcomponent]]
      [secretary.core :as sec :include-macros true]
      [goog.events :as events]
      [goog.history.EventType :as EventType])
</code></pre>

<p>Now we can test our changes, from the command prompt in your “spa-tutorial” directory, execute the following:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedbash">lein cljsbuild once spa-tutorial
</code></pre>
<p>Leiningen will pull our dependencies and build our source, cross-compiling JavaScript to the “/out” folder in your project. If you browse this folder you will see the JavaScript output from the <code>core.cljs</code> file as well as our dependent libraries like Om, React, and Secretary. To see if our tutorial worked, open a browser to the <code>index.html</code> file. You should see a big “Hello world!” message if you’ve made the correct edits.</p>
<p>Let’s look at the code in more detail. In the <code>core.cljs</code> file you’ll see our simple React component, defined as follows:</p>
<p><strong>core.cljs</strong></p>
<pre><code class="clojure">(fn [app owner]
  (reify om/IRender
  (render [_]
    (dom/h1 nil (:text app)))))
</code></pre>

<p>This component is a function that implements the IRender interface expected in the React lifecycle. Our function when rendered will produce an H1 containing the text from our app-state atom. We initialize our app-state atom to contain “Hello world!”. Go ahead and change this a few times and run <code>lein cljsbuild once spa-tutorial</code> to see it change in the browser.</p>
<a href="#adding-views"><h2 class="inline" id="adding-views">Adding Views</h2></a>
<p>The next step for a client SPA is building our views and routes between them. In the <code>core.cljs</code> file, make the following edits:</p>
<p><strong>core.cljs</strong></p>
<pre><code class="clojure">(ns spa-tutorial.core
(:require [om.core :as om :include-macros true]
      [om-tools.dom :as dom :include-macros true]
      [om-tools.core :refer-macros [defcomponent]]
      [secretary.core :as sec :include-macros true]
      [goog.events :as events]
      [goog.history.EventType :as EventType])
(:import goog.History))

(enable-console-print!)

(sec/set-config! :prefix "#")

;;setup history API
(let [history (History.)
  navigation EventType/NAVIGATE]
(goog.events/listen history
           navigation
           #(-> % .-token sec/dispatch!))
(doto history (.setEnabled true)))


;;components
;;navigation-view will be shared by our three main components
(defn navigation-view [app owner]
(reify
  om/IRender
  (render
   [_]
   (let [style {:style {:margin "10px;"}}]
   (dom/div style
        (dom/a (assoc style :href "#/")
           "Home")
        (dom/a (assoc style :href "#/contact")
           "Contact")
        (dom/a (assoc style :href "#/about")
           "About"))))))
;;home page component
(defn index-page-view [app owner]
(reify
  om/IRender
  (render
   [_]
   (dom/div
  (om/build navigation-view {})
  (dom/h1 "Index Page")))))

;;contact page component
(defn contact-page-view [app owner]
(reify
  om/IRender
  (render
   [_]
   (dom/div
    (om/build navigation-view {})
    (dom/h1 "Contact Page")))))

;;about page component
(defn about-page-view [app owner]
(reify
  om/IRender
  (render
   [_]
   (dom/div
  (om/build navigation-view {})
  (dom/h1 "About Page")))))


;;setup secretary routes
(sec/defroute index-page "/" []
(om/root index-page-view
     {}
     {:target (. js/document (getElementById "app"))}))

(sec/defroute contact-page "/contact" []
(om/root contact-page-view
     {}
     {:target (. js/document (getElementById "app"))}))

(sec/defroute about-page "/about" []
(om/root about-page-view
     {}
     {:target (. js/document (getElementById "app"))}))

;;initialization
(defn main []
(-> js/document
  .-location
  (set! "#/")))

(sec/dispatch! “/")
</code></pre>

<p>We’ve removed our simple starter component and added four new components: index-page, contact-page, about-page, and the shared component, navigation-view. These components are registered with Secretary via specific routes using the <code>sec/defroute</code> statement. As the client-side route changes, Secretary will overwrite the contents of React’s virtual DOM div element whose id=“app”. React notices the change and diff’s the new virtual DOM state versus the browser’s DOM and renders only the changed contents.</p>
<p>Notice that in our code, each React component is simply a Clojure function that implements the IRender interface. Om provides a familiar way to build HTML using methods such as <code>dom/h1</code> which renders an HTML H1 element. Clojure functions can call each other as shown in the interaction with the navigation-view. This allows us to build our page with React’s familiar component composition approach, breaking up functionality into smaller, reusable components.</p>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<p>If you want to learn more about using Clojure to write SPAs, you’ll want to investigate the many tools and utilities provided by ClojureScript and Leiningen. It’s very easy to setup a <a class="underline" href="https://github.com/clojure/clojurescript/wiki/The-REPL-and-Evaluation-Environments">Clojure REPL connected to your browser’s window</a> so that Clojure forms can be evaluated in the REPL console and the side-effects rendered into your browser.</p>
<p>You can also enable reloading of your cross-compiled JavaScript via a few changes to Leiningen’s command line and using a project like Figwheel. Both of these tools make developing Single Page Applications in Clojure more productive and can help when debugging your code.</p>
<p>This is a guest post provided by <a class="underline" href="https://thebhwgroup.com" title="The BHW Group, Austin Mobile App and Web Design">Brett Burnett, CEO @ The BHW Group</a></p>
<p>If you enjoyed this article, please consider visiting <a class="underline" href="https://thebhwgroup.com/blog">their blog</a>. You'll find frequent examples, guides, and comparisons of technologies, frameworks, and languages there.</p>
<blockquote>
<p><a class="underline" href="https://thebhwgroup.com" title="The BHW Group, Austin Mobile App and Web Design">The BHW Group</a> Brett represents is an Austin-based web & mobile application development company. They have released over 300 applications using a wide array of frameworks and languages. They love tinkering with, testing, and writing about emerging and established technologies.</p>
</blockquote>
]]></content></entry><entry><title>JSter #45: News of April 2015 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-april-2015-part-2"></link><id>monthly-jster-april-2015-part-2</id><published>2015-05-01T01:56:26.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Every day is a JS day</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://lab.ejci.net/favico.js/">http://lab.ejci.net/favico.js/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/dkoes/3Dmol.js">dkoes/3Dmol.js</a> - 3D molecule visualization</li>
<li><a class="underline" href="http://lab.ejci.net/favico.js/">favico.js</a> - Animate favicons</li>
<li><a class="underline" href="http://www.rq.crockford.com/">RQ</a> - Manage asynchronity with Mr. Crockford</li>
<li><a class="underline" href="https://github.com/ubolonton/js-csp">ubolonton/js-csp</a> - CSP channels for Javascript</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.stridenyc.com/blog/2015/3/4/coming-to-react-from-angular">http://www.stridenyc.com/blog/2015/3/4/coming-to-react-from-angular</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.stridenyc.com/blog/2015/3/4/coming-to-react-from-angular">Coming to React from Angular</a></li>
<li><a class="underline" href="https://medium.com/javascript-scene/the-dao-of-immutability-9f91a70c88cd">The Dao of Immutability</a></li>
<li><a class="underline" href="http://larseidnes.com/2015/01/05/the-wtf-factor-quantifying-js-library-weirdness/">The WTF Factor: Quantifying JS Library Weirdness</a></li>
<li><a class="underline" href="http://jster.net/blog/react-native-is-the-future">React Native: The Future of Mobile App Development</a></li>
<li><a class="underline" href="https://medium.com/@goatslacker/principles-of-flux-ea872bc20772">Principles of Flux</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://blog.codeprototype.com/2015/04/15/write-reacts-component-in-functional-way-with-ramda-and-pointfree-md/">http://blog.codeprototype.com/2015/04/15/write-reacts-component-in-functional-way-with-ramda-and-pointfree-md/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.codeprototype.com/2015/04/15/write-reacts-component-in-functional-way-with-ramda-and-pointfree-md/">Write React components in a functional way with Ramda and PointFree</a></li>
<li><a class="underline" href="http://toddmotto.com/es6-arrow-functions-syntaxes-and-lexical-scoping/">ES6 arrow functions, syntax and lexical scoping</a></li>
<li><a class="underline" href="https://up.svbtle.com/blackjackin-with-react-js">Blackjackin with React Jay Esse</a></li>
<li><a class="underline" href="http://www.technology-ebay.de/the-teams/mobile-de/blog/packing-the-web-like-a-boss.html">Packing the web like a boss</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.slideshare.net/jeharrell/9-antipatterns-for-nodejs-teams">9 Anti-patterns for Node.js Teams</a></li>
<li><a class="underline" href="https://speakerdeck.com/ariya/design-strategies-for-javascript-api">Design Strategies for JavaScript API</a></li>
<li><a class="underline" href="https://speakerdeck.com/addyosmani/devtools-state-of-the-union-2015">DevTools: State Of The Union 2015</a></li>
<li><a class="underline" href="https://speakerdeck.com/lettertwo/controllable-react-components">Controllable React Components</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://leanpub.com/survivejs_webpack/read">SurviveJS - Webpack and React</a> - Upcoming React/Webpack book</li>
<li><a class="underline" href="http://webglfundamentals.org/">WebGL Fundamentals</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@kevinle/functional-programming-with-ramda-5c56d09c518e">Functional programming with Ramda</a></li>
<li><a class="underline" href="http://davidwalsh.name/get-absolute-url">Get an Absolute URL with JavaScript</a></li>
<li><a class="underline" href="http://updates.html5rocks.com/2015/04/cut-and-copy-commands">Cut and Copy Commands</a></li>
<li><a class="underline" href="http://www.raymondcamden.com/2015/04/14/blowing-up-localstorage-or-what-happens-when-you-exceed-quota">Blowing up LocalStorage (or what happens when you exceed quota)</a></li>
<li><a class="underline" href="http://christianalfoni.com/articles/2015_04_19_The-ultimate-webpack-setup">The Ultimate Webpack Setup for Backend</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://updates.html5rocks.com/2015/04/devtools-timeline-improvements">DevTools Timeline: Now Providing the Full Story</a></li>
<li><a class="underline" href="http://mimosa.io/">Mimosa</a> - Tired of Grunt, Gulp etc. ?</li>
<li><a class="underline" href="https://github.com/sinelaw/infernu">sinelaw/infernu</a> - Type inference and checking for a safer JavaScript</li>
<li><a class="underline" href="https://facebook.github.io/react/blog/2015/04/17/react-native-v0.4.html">React Native v0.4</a></li>
<li><a class="underline" href="https://github.com/spite/ShaderEditorExtension">spite/ShaderEditorExtension</a> - Debug WebGL shaders in Chrome</li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://libscore.com/">Libscore</a> - See library usage per popular sites</li>
<li><a class="underline" href="http://validator.w3.org/mobile/">W3C mobileOK Checker</a></li>
<li><a class="underline" href="http://dns.js.org/">JS.ORG</a> - Get a nice domain for your JavaScript project - for free</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://shaunlebron.github.io/solar-system-of-js/">Solar System of JS</a></li>
</ul>
]]></content></entry><entry><title>React Native: The Future of Mobile App Development</title><link rel="alternate" type="text/html" href="https://jster.net/blog/react-native-is-the-future"></link><id>react-native-is-the-future</id><published>2015-04-17T03:27:49.000Z</published><content type="text/html"><![CDATA[<div class="picture"><img src="/img/blog/75/0.png" alt="React Native" /></div>

<p>For most users, Facebook is just a great way to keep in touch with friends and procrastinate. For developers, Facebook may be the company to shape the future of app development.</p>
<p>As Facebook’s portfolio of mobile apps is growing, the company has focused on developing better mobile apps, and recent developments might prove to be quite a game-changer in mobile app development. We’re talking about the React Native technology, an addon to the already popular React.</p>
<a href="#meet-react-native"><h2 class="inline" id="meet-react-native">Meet React Native</h2></a>
<div class="picture"><img src="/img/blog/75/1.png" alt="React Native is mobile" /></div>

<p>Facebook’s React was designed to create and design frontend interfaces. React Native takes things further, to mobile. You can author performant, JavaScript based mobile applications using it. The technology is already in use at some of Facebook's apps. It's impossible to know which parts are running on React Native and which are not.</p>
<p>React Native combines the joy of React development with unprecedented pace of development. You can avoid annoying compile cycles and focus on getting ahead. In addition you don't have to worry so much about underlying details. React Native takes care of a lot of that for you.</p>
<a href="#react-native-simplifies-native-app-development"><h2 class="inline" id="react-native-simplifies-native-app-development">React Native Simplifies Native App Development</h2></a>
<div class="picture"><img src="/img/blog/75/2.png" alt="React Native simplifies development" /></div>

<p>Native applications have to be built from ground up, platform per platform. This takes a lot of skill and expertise. Web applications do come with certain skill requirements but the situation is somewhat different. React Native builds on this idea and allows you to develop applications with native performance on less effort. You will still need to perform customizations per platform. Despite this React Native allows you to avoid a lot of work that would be otherwise necessary.</p>
<p>For starters, working with React Native removes the need to re-compile a work-in-progress app every time you want to test a new functionality you just added. React Native allows browser-like refreshing, essentially loading up the updated version of the code at the touch of a button. There have been experiments to avoid refresh and it might be just a matter of time till we reach that on mainstream.</p>
<p>This is a very innovative feature that will change the way developers think, write and test their code – no longer will they have to stress on getting everything right before going to testing, or wait for compilers to do their job; with React Native, it’s all simpler.</p>
<p>Since React Native will significantly speed up the coding and testing phase, errors are prone to happen, so that is another aspect the new framework focused on: error reporting. When an error is encountered, not only will React Native pinpoint it exactly into the code, but will also provide a clear explanation of what caused the error, and even suggest a fix. This will make troubleshooting a whole lot easier.</p>
<p>Shorter iterations increase quality and allow you to develop better applications faster. This is one of the main selling points of React Native in addition to the ease of supporting multiple platforms. You will still have to work hard but now you can focus the effort better.</p>
<a href="#react-native-across-platforms"><h2 class="inline" id="react-native-across-platforms">React Native Across Platforms</h2></a>
<div class="picture"><img src="/img/blog/75/3.png" alt="React Native Platforms" /></div>

<p>React Native was only introduced for iOS initially, but the framework is going to be available to Android developers as well. As stated before you will need to do some work to make your application work on these platforms as support is provided. Even though it's not "write once, run everywhere" kind of approach, this allows you to customize your application to fit platform idioms. This results in better user experience.</p>
<p>So far developers that have worked with React Native have been impressed. Consider checking out the following testimonials:</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jlongster.com/First-Impressions-using-React-Native">@jlongster's first Impressions using React Native</a></li>
<li><a class="underline" href="http://blog.scottlogic.com/2015/03/26/react-native-retrospective.html">Colin Eberhardt's retrospective on developing an application with React Native</a></li>
<li><a class="underline" href="http://herman.asia/building-a-flashcard-app-with-react-native">Herman Schaaf's diary of Building an iOS App with React Native</a></li>
<li><a class="underline" href="http://red-badger.com/blog/2015/03/04/react-native-the-killer-feature-that-nobody-talks-about/">Robbie McCorkell's React Native – The Killer Feature that Nobody Talks About</a></li>
</ul>
<a href="#why-react-native-is-revolutionary"><h2 class="inline" id="why-react-native-is-revolutionary">Why React Native is Revolutionary</h2></a>
<div class="picture"><img src="/img/blog/75/4.png" alt="React All the Things" /></div>

<p>If you’re a developer that writes native applications on just one platform, React Native doesn’t mean much to you. It’s basically just another way to do the things you already do. However, since React Native is JavaScript-alike, it represents a ginormous leap forward for web developers that want to tackle the field of native apps.</p>
<p>React Native will remove the need of learning complicated programming languages such as Objective C or Java – they can just put their JavaScript skills to use with React Native, and end up with a native app that’s feature-rich and easy to write. Mobile development just got easier and accessible to more people!</p>
<p>There are several websites full of resources and additional information on React Native, we've listed these below:</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://facebook.github.io/react-native/">The official React Native site</a></li>
<li><a class="underline" href="http://devdactic.com/react-native-for-beginners/">React Native For Beginners – The Next Big Thing?</a></li>
<li><a class="underline" href="http://www.reactnative.com/">Use React Native</a> - A starting point</li>
<li><a class="underline" href="https://github.com/jondot/awesome-react-native">jondot/awesome-react-native</a> - A massive list of React Native resources</li>
</ul>
<p>This is the guest post provided by Jason Phillips and <a class="underline" href="http://www.makeupgames365.com/">Make Up Games 365</a>.</p>
]]></content></entry><entry><title>JSter #44: News of April 2015 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-april-2015-part-1"></link><id>monthly-jster-april-2015-part-1</id><published>2015-04-15T02:40:02.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>NPM packages are like a box of chocolates. You never know what you are going to get.</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://reapp.io/">http://reapp.io/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://reapp.io/">Reapp</a> - Mobile apps using React</li>
<li><a class="underline" href="https://github.com/benfred/venn.js">benfred/venn.js</a> - Venn and Euler diagrams</li>
<li><a class="underline" href="https://kyleamathews.github.io/typography.js/">typography.js</a> - React typography</li>
<li><a class="underline" href="https://facebook.github.io/fixed-data-table/">FixedDataTable</a> - Nice tables for React by Facebook</li>
<li><a class="underline" href="http://synaptic.juancazala.com/">Synaptic</a> - Neural networks and visualization</li>
<li><a class="underline" href="http://riccardoscalco.github.io/textures/">Textures.js</a> - SVG patterns for data visualization</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://developer.telerik.com/featured/the-rise-of-typescript/">http://developer.telerik.com/featured/the-rise-of-typescript/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://developer.telerik.com/featured/the-rise-of-typescript/">The Rise of TypeScript?</a></li>
<li><a class="underline" href="https://medium.com/@slsoftworks/javascript-world-domination-af9ca2ee5070">JavaScript World Domination</a></li>
<li><a class="underline" href="http://www.intridea.com/blog/2015/3/24/angularjs-2-0-crazy-like-a-fox">AngularJS 2.0: Crazy Like A Fox?</a></li>
</ul>
<a href="#react-native"><h2 class="inline" id="react-native">React Native</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://herman.asia/building-a-flashcard-app-with-react-native">Diary of Building an iOS App with React Native</a></li>
<li><a class="underline" href="http://devdactic.com/react-native-for-beginners/">React Native For Beginners</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2015/03/understanding-inline-box-model/">Understanding the CSS box model for inline elements</a></li>
<li><a class="underline" href="https://medium.com/@jviereck/modularise-css-the-react-way-1e817b317b04">Modularise CSS the React way</a></li>
<li><a class="underline" href="http://webreflection.blogspot.fi/2015/03/aint-that-fetch.html">Ain't that fetch!</a></li>
<li><a class="underline" href="http://www.sitepoint.com/understanding-collisions-physics-babylon-js-oimo-js/">Understanding Collisions and Physics with Babylon.js and Oimo.js</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2015/04/peering-through-the-webrtc-fog-with-socketpeer/">Peering Through the WebRTC Fog with SocketPeer</a></li>
<li><a class="underline" href="https://medium.com/@addyosmani/auto-formatting-javascript-code-style-fe0f98a923b8">Auto-formatting JavaScript Code Style</a></li>
<li><a class="underline" href="http://webreflection.blogspot.fi/2015/03/bringing-custom-elements-to-ie8.html">Web Reflection: Bringing Custom Elements to IE8</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://fir.sh/projects/jsnes/">JSNES: A JavaScript NES emulator</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://semver.npmjs.com/">npm semantic version calculator</a></li>
<li><a class="underline" href="https://github.com/paulirish/memory-stats.js">paulirish/memory-stats.js</a></li>
<li><a class="underline" href="http://amokjs.com/">Amok</a> - No Reload Live Editing for JavaScript</li>
<li><a class="underline" href="http://nuclide.io/">Nuclide</a> - Atom based IDE for mobile and web development</li>
<li><a class="underline" href="http://blogs.msdn.com/b/visualstudio/archive/2015/03/25/node-js-tools-1-0-for-visual-studio.aspx">Node.js Tools 1.0 for Visual Studio</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://lmv.rocks/">3D Viewer Demo</a></li>
<li><a class="underline" href="https://github.com/gpbl/isomorphic500">gpbl/isomorphic500</a> - Isomorphic Fluxible demo for React guys</li>
<li><a class="underline" href="http://codepen.io/jakealbaugh/full/PwLXXP/">Heart of sort</a></li>
<li><a class="underline" href="http://www.p01.org/releases/JS1K_2015_impossible_road/">Making of js1k Impossible Road</a></li>
<li><a class="underline" href="http://species-in-pieces.com/">In Pieces</a> - CSS can do that?</li>
</ul>
]]></content></entry><entry><title>JSter #43: News of March 2015 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-march-2015-part-2"></link><id>monthly-jster-march-2015-part-2</id><published>2015-04-01T04:08:23.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>April fools everywhere</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://felixniklas.com/paperfold/">http://felixniklas.com/paperfold/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://felixniklas.com/paperfold/">Paperfold JS</a> - 3d Paperfold Animation Library. If you want fancy commenting system, this might be the way to go.</li>
<li><a class="underline" href="https://github.com/ericclemmons/react-resolver">ericclemmons/react-resolver</a> - Isomorphic library to recursively lazy-load data for React components</li>
<li><a class="underline" href="https://github.com/bevacqua/fuzzysearch">bevacqua/fuzzysearch</a> - Tiny and blazing-fast fuzzy search in JavaScript</li>
<li><a class="underline" href="http://vikramn.github.io/Re-Tag/">Re-Tag</a> - Google style tagging for React</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://rmurphey.com/blog/2015/03/23/a-baseline-for-front-end-developers-2015/">http://rmurphey.com/blog/2015/03/23/a-baseline-for-front-end-developers-2015/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://rmurphey.com/blog/2015/03/23/a-baseline-for-front-end-developers-2015/">A Baseline for Front-End [JS] Developers: 2015</a></li>
<li><a class="underline" href="http://unredacted.redalemeden.com/2015/initial-thoughts-about-react-native/">React Native: Initial ThoughtsReading Time: 2 minutes</a></li>
<li><a class="underline" href="http://artur.co/articles/moving-codecademy-to-es6-webpack-and-react/">Moving Codecademy to ECMAScript 6, Webpack, and React</a></li>
<li><a class="underline" href="https://medium.com/@dan_abramov/the-future-of-drag-and-drop-apis-249dfea7a15f">The Future of Drag and Drop APIs</a></li>
<li><a class="underline" href="http://www.infoq.com/research/javascript-frameworks-2015">JavaScript Frameworks in the Real World</a></li>
<li><a class="underline" href="http://hueniverse.com/2015/03/02/the-node-version-dilemma/">The Node Version Dilemma</a></li>
</ul>
<a href="#opinions"><h2 class="inline" id="opinions">Opinions</h2></a>
<p>{{ screenshot: <a class="underline" href="http://blog.yodersolutions.com/why-i-recommend-emberjs-over-angularjs/">http://blog.yodersolutions.com/why-i-recommend-emberjs-over-angularjs/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.yodersolutions.com/why-i-recommend-emberjs-over-angularjs/">Why Some Guy Recommends EmberJS over AngularJS</a></li>
<li><a class="underline" href="http://www.crashlytics.com/blog/building-user-interfaces-with-react/">Why Some Guys Are Converting to React</a></li>
<li><a class="underline" href="http://tantek.com/2015/069/t1/js-dr-javascript-required-dead">js;dr = JavaScript required; Didn’t Read</a></li>
</ul>
<a href="#notes"><h2 class="inline" id="notes">Notes</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/poteto/emberconf-2015">EmberConf 2015 Notes</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://facebook.github.io/react/blog/2015/03/19/building-the-facebook-news-feed-with-relay.html">Building The Facebook News Feed With Relay</a></li>
<li><a class="underline" href="http://www.raywenderlich.com/99473/introducing-react-native-building-apps-javascript">Introducing React Native: Building Apps with JavaScript</a></li>
<li><a class="underline" href="http://updates.html5rocks.com/2015/03/introduction-to-fetch">Introduction to fetch()</a></li>
<li><a class="underline" href="http://www.jvandemo.com/a-10-minute-primer-to-the-new-angular-router/">A 10 minute primer to the new Angular router</a></li>
<li><a class="underline" href="http://blog.romanliutikov.com/post/63383858003/how-to-forget-about-jquery-and-start-using-native">How to forget about jQuery and start using native JavaScript APIs</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/hemanth/paws-on-es6">hemanth/paws-on-es6</a> - Minimalist examples of ES6 functionalities</li>
<li><a class="underline" href="http://jster.net/blog/javascript-mobile-frameworks">Which JavaScript Frameworks to Use for Mobile Development?</a></li>
<li><a class="underline" href="https://github.com/pheuter/essential-react">pheuter/essential-react</a> - A minimal skeleton for building testable React apps using ES6</li>
<li><a class="underline" href="http://www.sitepoint.com/demystifying-react-components-state/">Demystifying React Components State</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://futurice.com/blog/declarative-apps-with-polymers-two-way-data-binding">Declarative web applications with Polymer’s two-way data-binding</a></li>
<li><a class="underline" href="https://medium.com/@joshuawcomeau/efficient-nested-react-components-dd9347e9b3f3">Efficient Nested React Components</a></li>
<li><a class="underline" href="https://medium.com/@learnreact/container-components-c0e67432e005">Container Components for React</a></li>
<li><a class="underline" href="http://blog.scottlogic.com/2015/03/05/reactjs-in-swift.html">Implementing React.js in Swift</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2015/01/from-mapreduce-to-javascript-functional-programming/">From Map/Reduce to JavaScript Functional Programming ✩ Mozilla Hacks – the Web developer blog</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://facebook.github.io/react-native/">React Native</a> - React on mobile in steroids</li>
<li><a class="underline" href="http://jackfranklin.co.uk/react-ast-viewer/">AST Viewer</a></li>
<li><a class="underline" href="https://www.nativescript.org/">NativeScript</a> - Cross-Platform Native Development with Javascript</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://codepen.io/tmrDevelops/pen/XJoZLj">Writing JavaScript with JavaScript</a> - Literally</li>
</ul>
]]></content></entry><entry><title>Which JavaScript Frameworks to Use for Mobile Development?</title><link rel="alternate" type="text/html" href="https://jster.net/blog/javascript-mobile-frameworks"></link><id>javascript-mobile-frameworks</id><published>2015-03-22T14:42:24.000Z</published><content type="text/html"><![CDATA[<p>Mobile applications specifically designed for mobile devices are part of a very fast growing market. Many app designers do not even need prior development knowledge. Knowledge of HTML, CSS and JavaScript will be enough to get you started. Any mobile application developed with web technology can now be used across multiple platforms</p>
<p>Thanks to the advancement in these products it is an excellent time for anyone to learn how to develop mobile apps. There are many tools online to assist in creating these mobile apps. Some of the best are:</p>
<a href="#ionic"><h2 class="inline" id="ionic">Ionic</h2></a>
<p>{{ screenshot: <a class="underline" href="http://ionicframework.com/">http://ionicframework.com/</a> }}</p>
<p><a class="underline" href="http://ionicframework.com/">Ionic framework</a> helps you to build mobile applications using common web technologies. It has a large variety of tools to assist new and experienced designers with the creation of interactive apps. It utilizes Angular.js. This enables two-way data binding and excellent interaction with APIs and backend services.</p>
<a href="#mobile-angular-ui"><h2 class="inline" id="mobile-angular-ui">Mobile Angular UI</h2></a>
<p>{{ screenshot: <a class="underline" href="http://mobileangularui.com/">http://mobileangularui.com/</a> }}</p>
<p><a class="underline" href="http://mobileangularui.com/">Mobile Angular UI</a> uses HTML 5 but in conjunction with Bootstrap 3 as well as the aforementioned Angular.js. It also utilises Bootstrap 3 mobile components. These are features which are not available in the standard Bootstrap 3, examples are overlays and sidebars. Impressive user interfaces can be created with a few simple Angular.js directives and only the necessary responsive media queries. These have been reduced to files to be added as needed.</p>
<a href="#intel-xdk"><h2 class="inline" id="intel-xdk">Intel XDK</h2></a>
<p>{{ screenshot: <a class="underline" href="https://software.intel.com/en-us/xdk/docs/intel-xdk-introduction">https://software.intel.com/en-us/xdk/docs/intel-xdk-introduction</a> }}</p>
<p><a class="underline" href="https://software.intel.com/en-us/xdk/docs/intel-xdk-introduction">Intel XDK</a> is a free to use application and is available on Linux as well as Windows and Mac. Whilst you are developing UI frameworks it is capable of supporting Twitter bootstrap, jQuery Mobile and Topcoat. There are also some standard templates to assist the novice in getting started.  An excellent feature of this product is the live preview on a connected device. This shows as you develop your app and allows you to manipulate it as you go for the best result.</p>
<a href="#appcelerator-titanium"><h2 class="inline" id="appcelerator-titanium">Appcelerator Titanium</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.appcelerator.com/titanium/">http://www.appcelerator.com/titanium/</a> }}</p>
<p><a class="underline" href="http://www.appcelerator.com/titanium/">Appcelerator Titanium</a> is an open source mobile application framework which allows all users to contribute to improving the framework and apps created. The apps can be created for several different mobile platforms and is an excellent way to create hybrid mobile apps. There is a choice of backend services – mobile platform APIs or cloud based services. There are also independent APIs which allow easy access to phone hardware. The application uses Alloy which is a MVC framework. Modules developed using the framework are very easy to apply to different apps which is a huge timesaver for developers creating many different apps.</p>
<a href="#sencha-touch"><h2 class="inline" id="sencha-touch">Sencha Touch</h2></a>
<p>{{ screenshot: <a class="underline" href="https://www.sencha.com/products/touch/">https://www.sencha.com/products/touch/</a> }}</p>
<p><a class="underline" href="https://www.sencha.com/products/touch/">Sencha Touch</a> is another product built on top of HTML 5. This product allows apps to be created which will work on iOS, Android and Blackberry.  It is very popular with those developers who specialise in hybrid apps. It is very easy to use as it provides the same feel regardless of which platform it is operating on. The downside of this product is the time taken to get started. Although anyone with basic knowledge can use it, a developer who invests time in researching its tools and functions will achieve far better results.</p>
<a href="#kendo-ui"><h2 class="inline" id="kendo-ui">Kendo UI</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.telerik.com/kendo-ui">http://www.telerik.com/kendo-ui</a> }}</p>
<p><a class="underline" href="http://www.telerik.com/kendo-ui">Kendo UI</a> is another product which uses HTML 5. The HTML 5 is a firm favourite for many mobile application development programs. This program utilises jQuery and several of its widgets. Any developer who has used jQuery before will find it very easy to use Kendo UI. The widgets remain licensed to Telerik but the majority of the rest of the program has been open sourced to allow the product to develop. There are several video tutorials to assist in getting started with this software.</p>
<a href="#comparison"><h2 class="inline" id="comparison">Comparison</h2></a>
<p>Which of the frameworks we just mentioned would you like to try out first?</p>
<table>
  <thead>
    <tr>
      <td>Framework</td>
      <td>Related Technologies</td>
      <td>Why to use for mobile?</td>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Ionic</td>
      <td>Angular.js, SASS</td>
      <td>Two-way data binding, good interaction with backend services and APIs</td>
    </tr>
    <tr>
      <td>Mobile Angular UI</td>
      <td>Angular UI</td>
      <td>Good quality interactive apps, impressive user interfaces</td>
    </tr>
    <tr>
      <td>Intel XDK</td>
      <td>jQuery Mobile, Topcoat</td>
      <td>Live preview on a connected device, simplified workflow for designers</td>
    </tr>
    <tr>
      <td>Appcelerator Titanium</td>
      <td>Alloy</td>
      <td>Hybrid mobile apps, real-time analytics</td>
    </tr>
    <tr>
      <td>Sencha Touch</td>
      <td></td>
      <td>Easy to develop apps</td>
    </tr>
    <tr>
      <td>Kendo UI</td>
      <td>jQuery</td>
      <td>Video tutorials, easy to use for app development, nice collection of widgets</td>
    </tr>
  </tbody>
</table>

<p>This is a guest post by Jason Phillips and <a class="underline" href="http://www.parkinggames365.net/">Parking Games 365</a>!</p>
]]></content></entry><entry><title>JSter #42: News of March 2015 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-march-2015-part-1"></link><id>monthly-jster-march-2015-part-1</id><published>2015-03-16T03:58:25.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Does anyone read these things?</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://mango.github.io/slideout/">http://mango.github.io/slideout/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://mango.github.io/slideout/">Slideout.js</a> - A touch slideout navigation menu for your mobile web apps.</li>
<li><a class="underline" href="http://facebook.github.io/react/blog/2015/03/10/react-v0.13.html">React v0.13</a></li>
<li><a class="underline" href="http://sbstjn.github.io/timesheet.js/">Timesheet.js</a> - Generate simple timesheets using JavaScript</li>
<li><a class="underline" href="http://benmccormick.org/2014/11/12/underscore-vs-lodash/">Underscore vs Lo-Dash</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://caspervonb.com/javascript/an-overview-of-javascript-in-2015-ecmascript-6/">http://caspervonb.com/javascript/an-overview-of-javascript-in-2015-ecmascript-6/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://caspervonb.com/javascript/an-overview-of-javascript-in-2015-ecmascript-6/">An Overview of JavaScript in 2015 (ECMAScript 6)</a></li>
<li><a class="underline" href="http://formidablelabs.com/blog/2015/03/01/launching-radium/">Inline Styles are the Future Thanks to Radium</a> - In React world anyway</li>
<li><a class="underline" href="http://www.allenpike.com/2015/javascript-framework-fatigue/">A JS framework on every table</a> - Can there be too many frameworks?</li>
<li><a class="underline" href="http://blogs.msdn.com/b/typescript/archive/2015/03/05/angular-2-0-built-on-typescript.aspx">Angular 2: Built on TypeScript</a></li>
<li><a class="underline" href="http://rauchg.com/2015/ecmascript-6/">@rauchg's thoughts on ES6</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://flexboxin5.com/">flexbox in 5 minutes</a></li>
<li><a class="underline" href="http://christianalfoni.github.io/javascript/2015/03/01/true-isomorphic-apps-with-react-and-baobab.html">True isomorphic apps with React and Baobab</a></li>
<li><a class="underline" href="https://medium.com/@dan_abramov/lint-like-it-s-2015-6987d44c5b48">Lint Like It’s 2015</a></li>
<li><a class="underline" href="http://davidwalsh.name/es6-generators">The Basics Of ES6 Generators</a></li>
<li><a class="underline" href="http://www.nixtu.info/2015/02/how-to-publish-and-maintain-npm-packages.html">How to Publish and Maintain NPM Packages?</a></li>
<li><a class="underline" href="http://ryanclark.me/getting-started-with-flux/">Introduction to Facebook's Flux architecture</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://speakerdeck.com/polarblau/coffeescript-vs-ecmascript-6">CoffeeScript vs. ECMAScript 6</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/lukehoban/es6features">lukehoban/es6features</a></li>
<li><a class="underline" href="http://aeflash.com/2015-02/react-tips-and-best-practices.html">React Tips and Best Practices</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.thomascoopman.eu/blog/Testing+ES6+code">Testing ES6 code</a></li>
<li><a class="underline" href="http://www.2ality.com/2015/03/no-promises.html">No promises: asynchronous JavaScript with only generators</a></li>
<li><a class="underline" href="http://jaicab.com/2015/03/03/introducing-localfont-a-localstorage-solution/">Introducing localFont</a> - Faster font loading thanks to LocalStorage.</li>
<li><a class="underline" href="http://hackflow.com/blog/2015/03/08/boiling-react-down-to-few-lines-in-jquery/">Boiling React Down to a Few Lines in jQuery</a></li>
<li><a class="underline" href="http://davidwalsh.name/combining-js-arrays">Combining JavaScript Arrays</a></li>
<li><a class="underline" href="http://blog.keithcirkel.co.uk/how-to-use-npm-as-a-build-tool/">How to Use npm as a Build Tool</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.mozilla.org/blog/2015/03/03/unity-5-ships-and-brings-one-click-webgl-export-to-legions-of-game-developers/">Unity 5 Ships and Brings One Click WebGL Export to Legions of Game Developers</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/t32k/stylestats">t32k/stylestats</a> - Get stats about your CSS</li>
<li><a class="underline" href="http://www.commitstrip.com/en/2015/03/02/getting-bored-change-your-stack/">Getting bored? Change your stack</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jspaint.ml/">JS Paint</a> - Nostalgy</li>
<li><a class="underline" href="https://gist.github.com/nbar1/6e7e0710bbe620c49b15">socks.js</a> - Sock washing simulator</li>
<li><a class="underline" href="https://www.shadertoy.com/view/Ms2SD1">Can you get seasick using JavaScript?</a></li>
</ul>
]]></content></entry><entry><title>JSter #41: News of February 2015 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-february-2015-part-2"></link><id>monthly-jster-february-2015-part-2</id><published>2015-03-02T03:51:11.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>It takes two exclamations to make one truth</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://fluxible.io/quick-start.html">http://fluxible.io/quick-start.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/taylorhakes/fecha">taylorhakes/fecha</a> - Lightweight date formatting and parsing (~1KB). If moment.js feels bloated, try this.</li>
<li><a class="underline" href="http://fluxible.io/quick-start.html">Fluxible</a> - Yahoo's implementation of Flux</li>
<li><a class="underline" href="https://github.com/flipboard/react-canvas">Flipboard/react-canvas</a> - Canvas backend for React. See also <a class="underline" href="http://engineering.flipboard.com/2015/02/mobile-web/">60fps on the mobile web</a></li>
<li><a class="underline" href="https://github.com/Yomguithereal/baobab">Yomguithereal/baobab</a> - JavaScript data tree with cursor</li>
<li><a class="underline" href="http://brm.io/matter-js/">Matter.js</a> - JavaScript physics engine</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="https://developer.atlassian.com/blog/2015/02/rebuilding-hipchat-with-react/">https://developer.atlassian.com/blog/2015/02/rebuilding-hipchat-with-react/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jlongster.com/Radical-Statements-about-the-Mobile-Web">Radical Statements about the Mobile Web</a></li>
<li><a class="underline" href="https://medium.com/@dan_abramov/the-case-for-flux-379b7d1982c6">The Case for Flux</a></li>
<li><a class="underline" href="https://developer.atlassian.com/blog/2015/02/rebuilding-hipchat-with-react/">Rebuilding HipChat with React.js</a></li>
<li><a class="underline" href="https://blog.mozilla.org/standard8/2015/02/09/firefox-hello-desktop-behind-the-scenes-flux-and-react/">Firefox Hello Desktop: Behind the Scenes – Flux and React</a></li>
<li><a class="underline" href="http://victorsavkin.com/post/110170125256/change-detection-in-angular-2">Change Detection in Angular 2</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.slideshare.net/x00mario/es6-en">ECMAScript 6 from an Attacker's Perspective</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://caines.ca/blog/2014/06/01/production-quality-node-dot-js-web-apps-part-i/">Production-Quality Node.js Web Apps</a></li>
<li><a class="underline" href="http://javascriptplayground.com/blog/2015/02/promises/">Embracing Promises in JavaScript</a></li>
<li><a class="underline" href="http://docs.railsbridge.org/javascript-to-do-list-with-react/javascript-to-do-list-with-react">Javascript To Do List With React</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/jmfurlott/react-styleguide">jmfurlott/react-styleguide</a></li>
<li><a class="underline" href="http://chantastic.io/2015-reactjs-conf/">Drawn notes of ReactConf</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://raganwald.com/2015/02/17/lazy-iteratables-in-javascript.html">Lazy Iterables in JavaScript</a></li>
<li><a class="underline" href="http://facebook.github.io/react/blog/2015/02/20/introducing-relay-and-graphql.html">Introducing Relay and GraphQL</a></li>
<li><a class="underline" href="http://jster.net/blog/quick-tips-for-html5-game-developers">Quick Tips for HTML5 Game Developers</a></li>
<li><a class="underline" href="https://gist.github.com/jamesgpearce/53a6fc57677870f93248">DIMOC: Do It Myself or Callback</a> - Heuristic for React.</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/postcss/postcss">postcss/postcss</a> - Process CSS using JavaScript plugins.</li>
<li><a class="underline" href="http://www.csstyle.io/">csstyle</a> - Clean, simple styling for the web</li>
<li><a class="underline" href="http://blog.purecss.io/post/111899477696/pure-0-6-0">Pure 0.6.0</a> - Yahoo's CSS framework has reached a new milestone</li>
<li><a class="underline" href="https://github.com/jesstelford/react-isomorphic-boilerplate">jesstelford/react-isomorphic-boilerplate</a></li>
<li><a class="underline" href="http://www.wearejh.com/news/browsersync-2-0/">BrowserSync 2.0</a> - Now with fancy browser-side UI to manage syncing</li>
<li><a class="underline" href="http://www.commitstrip.com/en/2014/11/25/west-side-project-story/">West Side-project story</a></li>
<li><a class="underline" href="http://scala-lang.org/news/2015/02/05/scala-js-no-longer-experimental.html">Scala.js no longer experimental</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://css-tricks.com/gooey-effect/">Gooey menu effect</a></li>
</ul>
]]></content></entry><entry><title>Quick Tips for HTML5 Game Developers</title><link rel="alternate" type="text/html" href="https://jster.net/blog/quick-tips-for-html5-game-developers"></link><id>quick-tips-for-html5-game-developers</id><published>2015-03-01T14:51:59.000Z</published><content type="text/html"><![CDATA[<div class="picture"><img src="/img/blog/69/1.jpg" alt="HTML5" /></div>

<p>When the HTML5 standard hit the web, a lot of things changed for the better. The new markup language boasted a whole lot of new features, and it didn’t took long for developers to jump in and put all the new tech to work. One of the fields that takes great advantage of what HTML5 has to offer is gaming; while browser games were considered soon-to-be-extinct due to the huge improvements brought by video games, HTML5 gives them another chance by allowing them to become a lot more complex, feature-rich, and visually appealing. If you’re planning on developing a HTML5-based game, here is a list of things to take into account.</p>
<a href="#html5-is-not-just-for-pcs"><h2 class="inline" id="html5-is-not-just-for-pcs">HTML5 is not just for PCs</h2></a>
<div class="picture"><img src="/img/blog/69/2.jpg" alt="Not just PCs" /></div>

<p>One of the main advantages of HTML5 is that it manages to incorporate a vast majority of functions that were previously dependent on the resource-hogging Flash framework straightly to the browser, with huge performance improvements. While on a regular PC this doesn’t mean much, as there’s plenty of computing power available, on a less-powerful device such as a smartphone this is a true blessing. Smartphones, PDAs, tablets and plenty other devices can now run games that were previously a no-go. However, while computing power is no longer a problem, screen size is.</p>
<p>Most devices come with smaller screens and use various built-in zoom features that might interfere with a game in some circumstances, so you should consider optimizing the game for multiple screen sizes. Once you have your mind set on certain sizes, use the <strong>viewport</strong> meta tag and set the user-scalable setting to off in order to prevent the device or the user from scaling. This is also useful when the game uses touch-controls, as it prevents accidental zooms. Check out <a class="underline" href="https://developer.mozilla.org/en/docs/Mozilla/Mobile/Viewport_meta_tag">MDN docs for more info on the viewport tag</a>.</p>
<a href="#get-sophisticated-with-preloading"><h2 class="inline" id="get-sophisticated-with-preloading">Get Sophisticated with Preloading</h2></a>
<div class="picture"><img src="/img/blog/69/3.jpg" alt="Preloader" /></div>

<p>Browser games used to be simple. “Used to” is the keyword here – they were simple just because the options were limited. HTML5 doesn’t have this drawback, though, so you can get as complex as you want nowadays.</p>
<p>Be that as it may, a more sophisticated game requires a more sophisticated approach. While simpler games have small sound and image files that are easy to load by the browser, a more complex game might have bigger files that take different times to load and execute, which can lead to an image/sound discrepancy.</p>
<p>To avoid such scenario, consider using a preloader that allows a game to load all its necessary resources before running. If you want to go the auto-way, there are various frameworks built specifically for creating games, which offer this feature as well as other useful features.</p>
<p>Check out this <a class="underline" href="http://jster.net/category/game-engines">comprehensive list of frameworks</a>, and find the one that meets your needs the best.</p>
<a href="#improve-performance-with-multi-tasking"><h2 class="inline" id="improve-performance-with-multi-tasking">Improve performance with multi-tasking</h2></a>
<div class="picture"><img src="/img/blog/69/4.jpg" alt="Web workers" /></div>

<p>HTML5 is already designed to take advantage of powerful hardware that includes powerful GPUs and multi-core processors, but you can take multi-tasking to a whole new level with your game by using web workers to perform various tasks. The result is that the game will be better optimized to begin with, running faster and smoother, but it will also open up the path to a better overall optimization and load-balancing over the cores of the CPU, as it will already be divided into “chunks” that can be assigned to a core or the other.</p>
<p>Keep in mind, though, that web workers cannot interact directly with the UI, so some coding tricks will be needed to translate the current UI state to web worker friendly code. Check <a class="underline" href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/basic_usage">MDN for more information on web workers</a>.</p>
<a href="#save-"><h2 class="inline" id="save-">Save!</h2></a>
<div class="picture"><img src="/img/blog/69/5.jpg" alt="Local storage" /></div>

<p>A major downside of old browser-games is that they lacked one crucial feature present in other types of games: saving. In the past, saving a game was only possible if the user was ok with creating an account (thus allowing the game to identify each user and save his personal preferences and stats on the server-side), or by using cookies.</p>
<p>Neither solution is very useful when the player attempts to play the game offline, though; luckily, HTML5 offers a different way of saving game with the help of DOM storage, which is a local storage solution. Unlike cookies, DOM storage does not expire after a certain time, making it a better approach.</p>
<p><a class="underline" href="https://developer.mozilla.org/en/docs/Web/Guide/API/DOM/Storage">MDN has more information about modern storage approaches</a>.</p>
<a href="#boilerplates"><h2 class="inline" id="boilerplates">Boilerplates</h2></a>
<p>If you just want to get something visible fast, you could use some boilerplate as a starting point. Examples of these are <a class="underline" href="https://github.com/IceCreamYou/HTML5-Canvas-Game-Boilerplate">HTML5 Canvas Game Boilerplate</a> and <a class="underline" href="https://github.com/mozilla/mortar-game-stub">Mortar Game Stub</a>. In addition many frameworks come with something to help you get started.</p>
<p>This will take help you to avoid some guesswork and get something visible faster. Of course as you get more experienced, you might just want to set up a boilerplate of your own to suit your tastes!</p>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<p>Just to recap, remember that you can target platforms beyond PC. Preloading can help you to get a smoother, or at least less confusing, gaming experience. Multi-tasking can help you to get some burden out of the render loop. If you don't feel like implementing a server based backend, you can get simple saving done using a local storage based approach. And finally boilerplates may help you to get up to speed faster.</p>
<p>This is the guest post provided by Jason Phillips and <a class="underline" href="http://www.airplanegames365.com/">Airplane Games 365</a>.</p>
]]></content></entry><entry><title>JSter #40: News of February 2015 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-february-2015-part-1"></link><id>monthly-jster-february-2015-part-1</id><published>2015-02-16T03:17:10.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Framework a day keeps doctor away</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://theonion.github.io/comcastifyjs/">https://theonion.github.io/comcastifyjs/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://theonion.github.io/comcastifyjs/">ComcastifyJS by theonion</a></li>
<li><a class="underline" href="http://gitlet.maryrosecook.com/">Gitlet</a> - Git in JavaScript</li>
<li><a class="underline" href="https://github.com/kofrasa/mingo">kofrasa/mingo</a> - JavaScript implementation of MongoDB query language</li>
<li><a class="underline" href="https://github.com/coderaiser/anyorder">coderaiser/anyorder</a> - Call function with any order of arguments</li>
<li><a class="underline" href="http://conditionerjs.com/">Conditioner.js • Frizz Free, Environment-aware, JavaScript Modules</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.jasimabasheer.com/posts/on-react.html">http://www.jasimabasheer.com/posts/on-react.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.jasimabasheer.com/posts/on-react.html">React makes the front-end a fully programmable system</a></li>
<li><a class="underline" href="http://blog.risingstack.com/how-google-sees-node-js/">How Google Sees Node.js</a></li>
<li><a class="underline" href="http://www.smashingmagazine.com/2015/01/22/angularjs-internals-in-depth/">AngularJS' Internals In Depth</a></li>
<li><a class="underline" href="http://techblog.netflix.com/2015/01/netflix-likes-react.html">Netflix Likes React</a></li>
<li><a class="underline" href="http://jlongster.com/First-Impressions-using-React-Native">First Impressions Using React Native</a></li>
<li><a class="underline" href="https://medium.com/@joaomilho/arguing-for-reactjs-7b80aafc6493">Arguing for ReactJS</a></li>
<li><a class="underline" href="http://ianobermiller.com/blog/2014/09/15/react-and-flux-interview/">React and Flux Interview</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://javascriptplayground.com/blog/2013/12/es5-getters-setters/">http://javascriptplayground.com/blog/2013/12/es5-getters-setters/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://javascriptplayground.com/blog/2013/12/es5-getters-setters/">JavaScript Getters and Setters</a></li>
<li><a class="underline" href="http://codelinks.net/reactjs-and-d3-build-real-time-components/">How to build a real-time dashboard of React.js components on top of D3</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://boyan.in/strategies-loading-scripts/">Strategies for loading scripts in your HTML page</a></li>
<li><a class="underline" href="http://www.decarpentier.nl/lens-distortion">Reducing stretch in high-FOV games using barrel distortion</a></li>
<li><a class="underline" href="https://www.paypal-engineering.com/2014/12/12/maintaining-javascript-code-quality-with-eslint/">Maintaining JavaScript Code Quality with ESLint</a></li>
<li><a class="underline" href="http://christianalfoni.github.io/javascript/2015/02/06/plant-a-baobab-tree-in-your-flux-application.html">Plant a Baobab tree in your flux application</a></li>
</ul>
<a href="#examples"><h2 class="inline" id="examples">Examples</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/voronianski/flux-comparison">voronianski/flux-comparison</a></li>
<li><a class="underline" href="https://github.com/jasonfarrell/threejs-normal-examples">jasonfarrell/threejs-normal-examples</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.nodejs.org/2015/02/06/node-v0-12-0-stable/">Node v0.12.0 (Stable)</a></li>
<li><a class="underline" href="http://www.fse.guru/isomorphic-javascript-libraries">Towards isomorphic js packages</a></li>
<li><a class="underline" href="https://github.com/RaveJS/rave">RaveJS/rave</a> - Zero-configuration application bootstrap and development</li>
<li><a class="underline" href="https://github.com/wizzard0/js2lua">wizzard0/js2lua</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://tryflow.org/">Try Flow online</a></li>
<li><a class="underline" href="http://daftpunkonsole.com/">Daft Punk Console</a></li>
</ul>
]]></content></entry><entry><title>JSter #39: News of January 2015 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-january-2015-part-2"></link><id>monthly-jster-january-2015-part-2</id><published>2015-02-03T03:34:33.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Array(16).join('lol' - 2) + ' Batman!'</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://facebook.github.io/react/blog/2015/01/27/react-v0.13.0-beta-1.html">http://facebook.github.io/react/blog/2015/01/27/react-v0.13.0-beta-1.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/lodash/lodash/releases/tag/3.0.0">lodash 3.0.0</a></li>
<li><a class="underline" href="http://facebook.github.io/react/blog/2015/01/27/react-v0.13.0-beta-1.html">React v0.13.0 Beta 1</a></li>
<li><a class="underline" href="http://aerolab.github.io/blockrain.js/">Blockrain.js</a> - Get a Tetris background for your site</li>
<li><a class="underline" href="http://www.tuxedojs.org/">Tuxx</a> - Framework based on React, Flux and CommonJS</li>
<li><a class="underline" href="https://muut.com/riotjs/">Riot 2.0</a> - Light alternative for frontend work</li>
<li><a class="underline" href="http://gabinaureche.com/TheaterJS/">TheaterJS, a typing effect mimicking human behavior.</a></li>
<li><a class="underline" href="http://dmauro.github.io/Keypress/">Keypress: A Javascript library for capturing input</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://blog.durandal.io/2015/01/26/introducing-aurelia/">http://blog.durandal.io/2015/01/26/introducing-aurelia/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://muut.com/riotjs/compare.html">Riot vs React vs Polymer</a></li>
<li><a class="underline" href="http://blog.durandal.io/2015/01/26/introducing-aurelia/">Introducing Aurelia</a> - Next generation framework</li>
<li><a class="underline" href="https://www.airpair.com/angularjs/posts/angular-vs-react-the-tie-breaker">Angular vs. React</a></li>
<li><a class="underline" href="http://www.letscodejavascript.com/v3/blog/2014/09/react_review">An Unconventional Review of React</a></li>
<li><a class="underline" href="http://www.letscodejavascript.com/v3/blog/2015/01/angular_review">An Unconventional Review of AngularJS</a></li>
<li><a class="underline" href="https://medium.com/@dan_abramov/youre-missing-the-point-of-react-a20e34a51e1a">You’re Missing the Point of React</a></li>
<li><a class="underline" href="http://orizens.com/wp/topics/why-functional-javascript-works-better-for-me-sometimes-and-maybe-for-others/">Why Functional Javascript Works Better For Me (sometimes, and maybe for others)</a></li>
<li><a class="underline" href="http://developer.telerik.com/featured/case-study-javascript-code-improvement/">A Case Study in JavaScript Code Improvement</a></li>
<li><a class="underline" href="https://buzzdecafe.github.io/code/2015/01/08/is-javascript-getting-worse/">Is JavaScript getting worse?</a></li>
<li><a class="underline" href="http://www.quirksmode.org/blog/archives/2015/01/the_problem_wit.html">The problem with Angular</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.delimited.io/blog/2015/1/21/selections-in-threejs">http://www.delimited.io/blog/2015/1/21/selections-in-threejs</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.delimited.io/blog/2015/1/21/selections-in-threejs">Selections in Three.js</a></li>
<li><a class="underline" href="http://6ftdan.com/danielpclark/2015/01/12/vanilla-javascript-stepping-into-the-language/">Vanilla JavaScript – Stepping into the language</a></li>
<li><a class="underline" href="http://maxogden.com/nested-dependencies.html">Nested dependencies</a> - Why <code>node_modules</code> works the way it does?</li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://rxmarbles.com/">RxMarbles: Interactive diagrams of Rx Observables</a></li>
<li><a class="underline" href="http://www.jackcallister.com/2015/01/05/the-react-quick-start-guide.html">The React Quick Start Guide</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://node-machine.org/">Node-Machine Project</a> - Open standard for Node.js function definitions</li>
<li><a class="underline" href="http://blog.codeship.com/mocha-js-chai-sinon-frontend-javascript-code-testing-tutorial/">Using Mocha JS, Chai JS and Sinon JS to Test your Frontend JavaScript Code</a></li>
<li><a class="underline" href="http://briandipalma.github.io/flux-for-components/">Flux for components</a></li>
<li><a class="underline" href="http://iamralpht.github.io/constraints/">Towards declarative touch interactions</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://play.elevatorsaga.com/">Elevator Saga</a></li>
</ul>
<a href="#comics"><h2 class="inline" id="comics">Comics</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://geek-and-poke.com/geekandpoke/2014/11/8/frameworks">Geek and poke on frameworks</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.progville.com/javascript/react-native-apps-react-js/">React Native</a> - React on native Android/iOS. This thing is going to be huge!</li>
<li><a class="underline" href="https://github.com/ariya/phantomjs/wiki/PhantomJS-2">PhantomJS 2</a></li>
<li><a class="underline" href="http://gaearon.github.io/react-hot-loader/">React Hot Loader</a></li>
<li><a class="underline" href="https://github.com/appsforartists/ambidex">appsforartists/ambidex</a> - Starting point for React based isomorphic apps</li>
<li><a class="underline" href="http://react.rocks/example/React_live_Editor">React live editor</a></li>
<li><a class="underline" href="http://tobyschachman.com/Shadershop/">Shadershop</a></li>
<li><a class="underline" href="https://noamlewis.wordpress.com/2015/01/20/introducing-sjs-a-type-inferer-and-checker-for-javascript/">Introducing SJS, a type inferer and checker for JavaScript (written in Haskell)</a></li>
<li><a class="underline" href="http://gcanti.github.io/flowcheck/">Flowcheck.js</a> - Runtime type checking for Flow</li>
</ul>
<a href="#css"><h2 class="inline" id="css">CSS</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://saeedalipoor.github.io/icono/">icono</a> - Pure CSS icons, with one element</li>
<li><a class="underline" href="http://lipis.github.io/flag-icon-css/">flag-icon-css</a> - Flag icons in CSS</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://sirxemic.github.io/Interstellar/">Interstellar</a></li>
<li><a class="underline" href="http://codepen.io/mieky/pen/GgEOwE/">CSS perpetual motion machine</a></li>
</ul>
]]></content></entry><entry><title>JSter #38: News of January 2015 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-january-2015-part-1"></link><id>monthly-jster-january-2015-part-1</id><published>2015-01-15T03:58:27.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>The truthiness is out there</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://ecomfe.github.io/echarts/index-en.html">https://ecomfe.github.io/echarts/index-en.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://ecomfe.github.io/echarts/index-en.html">ECharts by Baidu</a></li>
<li><a class="underline" href="http://daniel-lundin.github.io/snabbt.js/">snabbt.js - Minimalistic animation library</a></li>
<li><a class="underline" href="http://sean.is/poppin/tags/">Taggle.js - Form-ready, Delicious style tagging made easy</a></li>
<li><a class="underline" href="http://maxwellito.github.io/vivus/">vivus.js - Brings your SVGs to life</a></li>
<li><a class="underline" href="http://www.sitepoint.com/15-best-javascript-charting-libraries/">The 15 Best JavaScript Charting Libraries</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://blog.risingstack.com/iojs-overview/">http://blog.risingstack.com/iojs-overview/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.risingstack.com/iojs-overview/">IO.js Overview</a></li>
<li><a class="underline" href="http://www.sitepoint.com/10-web-predictions-2015/">10 Web Predictions for 2015</a></li>
<li><a class="underline" href="http://www.sitepoint.com/javascript-comes-age-2/">JavaScript Comes of Age (20!)</a></li>
<li><a class="underline" href="http://emberjs.com/blog/2014/12/22/inside-fastboot-the-road-to-server-side-rendering.html">Ember.js - On road to server-side rendering</a></li>
<li><a class="underline" href="https://medium.com/@gilbox/how-can-react-and-flux-help-us-create-better-stronger-faster-angular-applications-639247898fb">How can React and Flux help us create better Angular applications?</a></li>
<li><a class="underline" href="http://manuel.bernhardt.io/2014/12/30/generation-javascript/">Generation Javascript</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://staltz.com/dont-react/">Don't React - What sucks in React and what to do about that?</a></li>
<li><a class="underline" href="http://slides.com/contra/gulp">Learn Gulp in 10 minutes</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@oleg008/the-important-parts-131dda7f6f6f">JSS (a CSS alternative) - The important parts.</a></li>
<li><a class="underline" href="http://howchoo.com/g/understanding-javascript-hoisting">Understanding JavaScript hoisting</a></li>
<li><a class="underline" href="http://www.htmlxprs.com/post/49/playing-with-bootstrap-buttons-tutorial">Bootstrap Buttons Tutorial</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://leanpub.com/understandinges6/read/">Understanding ECMAScript 6</a></li>
<li><a class="underline" href="https://speakerdeck.com/addyosmani/front-end-tooling-workflows">Front-end Tooling Workflows</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://mrjoelkemp.com/2015/01/javascript-knowing-which-apps-youre-breaking-using-static-analysis/">JavaScript: Knowing which apps you’re breaking using static analysis</a></li>
<li><a class="underline" href="http://www.toptal.com/react/managing-view-state-with-react">Managing the View State with React</a></li>
<li><a class="underline" href="http://blog.vullum.io/running-average-with-node-js-streams/">Running Average with Node.js Streams</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://archive.org/details/softwarelibrary_msdos_games/v2">Software Library: MS-DOS Games - In your browser</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://gist.github.com/ericelliott/d576f72441fc1b27dace">Essential JavaScript Links</a></li>
<li><a class="underline" href="https://egghead.io/articles/angularjs-core-services-directive-definition-object-and-ui-router-cheat-sheets">AngularJS Cheat Sheets: Core Services, Directive Definition Object, and ui-router</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://iojs.org/">io.js - Node.js fork</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://thaggie.github.io/2015/01/06/conways-truth.html">Conway's Truth Table of JavaScript Truthiness</a></li>
</ul>
]]></content></entry><entry><title>JSter #37: News of December 2014 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-december-2014-part-2"></link><id>monthly-jster-december-2014-part-2</id><published>2015-01-02T06:55:59.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Where's my hoverboard?</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.jsbreakouts.org/">http://www.jsbreakouts.org/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.jsbreakouts.org/">Breakouts</a> - TodoMVC for JavaScript game engines</li>
<li><a class="underline" href="http://blog.fastmail.com/2014/12/20/open-sourcing-overturejs-the-js-lib-that-powers-fastmail/">Open-sourcing OvertureJS – the JS lib that powers FastMail</a></li>
<li><a class="underline" href="http://mattbierbaum.github.io/moshpits.js/">Moshpits.js</a> - Heavy metal JavaScript</li>
<li><a class="underline" href="https://github.com/MikeMcl/decimal.js">MikeMcl/decimal.js</a></li>
<li><a class="underline" href="http://touchstonejs.io/">TouchstoneJS</a> - ReactJS powered UI framework for developing beautiful hybrid mobile apps</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.2ality.com/2014/12/es6-oop.html">http://www.2ality.com/2014/12/es6-oop.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.2ality.com/2014/12/es6-oop.html">ECMAScript 6: new OOP features besides classes</a></li>
<li><a class="underline" href="http://csharperimage.jeremylikness.com/2014/12/the-top-5-mistakes-angularjs-developers_28.html">The Top 5 Mistakes AngularJS Developers Make Part 5: Failing to Test</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2014/12/you-cant-go-wrong-watching-javascript-talks/">You can’t go wrong watching JavaScript talks</a></li>
<li><a class="underline" href="http://paislee.io/migrating-to-angularjs-2-0/">Migrating to AngularJS 2.0</a></li>
<li><a class="underline" href="http://www.2ality.com/2011/05/semicolon-insertion.html">Automatic semicolon insertion in JavaScript</a></li>
<li><a class="underline" href="https://medium.com/javascript-scene/the-two-pillars-of-javascript-ee6f3281e7f3">The Two Pillars of JavaScript</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="https://hacks.mozilla.org/2014/12/introducing-the-javascript-internationalization-api/">https://hacks.mozilla.org/2014/12/introducing-the-javascript-internationalization-api/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://codeforgeek.com/2014/09/manage-session-using-node-js-express-4/">Manage session using Node.js and Express 4</a></li>
<li><a class="underline" href="http://www.macstories.net/tutorials/getting-started-with-javascript-for-automation-on-yosemite/">Getting Started with JavaScript for Automation on Yosemite</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2014/12/introducing-the-javascript-internationalization-api/">Introducing the JavaScript Internationalization API</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction">Introduction to DOM</a></li>
<li><a class="underline" href="http://thenodeway.io/">The Node Way</a> - Your Guide to Building Beautiful Node.js Applications</li>
<li><a class="underline" href="http://chimera.labs.oreilly.com/books/1234000000262">Programming JavaScript Applications</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.smashingmagazine.com/2012/11/05/writing-fast-memory-efficient-javascript/">Writing Fast, Memory-Efficient JavaScript</a></li>
<li><a class="underline" href="http://blog.keithcirkel.co.uk/why-we-should-stop-using-grunt/">Why we should stop using Grunt & Gulp</a></li>
<li><a class="underline" href="https://medium.com/@addyosmani/javascript-application-architecture-on-the-road-to-2015-d8125811101b">JavaScript Application Architecture On The Road To 2015</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.wercker.com/2014/12/23/Testing-in-Node.html">Advanced unit testing tools for Node.js</a></li>
<li><a class="underline" href="https://www.npmjs.com/package/slap">slap</a> - Sublimeish terminal based editor</li>
<li><a class="underline" href="http://slides.com/kof/jss">JSS by Oleg Slobodskoi</a> - Tired of CSS? Try JSS instead.</li>
<li><a class="underline" href="https://github.com/GianlucaGuarini/es6-project-starter-kit">GianlucaGuarini/es6-project-starter-kit</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://code.tutsplus.com/articles/resources-for-staying-on-top-of-javascript--cms-21369">Resources for Staying on Top of JavaScript</a></li>
</ul>
<a href="#random"><h2 class="inline" id="random">Random</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://callbackhell.com/">Callback Hell</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://codepen.io/kenjiSpecial/pen/gbrvpK">Particle Clock</a></li>
<li><a class="underline" href="http://codepen.io/BrianDGLS/pen/azNQZG">Hex code color = Time</a></li>
</ul>
]]></content></entry><entry><title>JSter #36: News of December 2014 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-december-2014-part-1"></link><id>monthly-jster-december-2014-part-1</id><published>2014-12-15T14:39:04.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Two weeks makes a fine language</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.buddhitechno.com/shadow/">http://www.buddhitechno.com/shadow/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/josephernest/bigpicture.js">josephernest/bigpicture.js</a> - Infinite zooming and panning in HTML pages</li>
<li><a class="underline" href="http://www.buddhitechno.com/shadow/">Shadow.js</a> - Give shadows to your images</li>
<li><a class="underline" href="http://alexk111.github.io/SVG-Morpheus/">SVG Morpheus</a> - Morph between SVG shapes</li>
<li><a class="underline" href="http://photoswipe.com/">PhotoSwipe: JavaScript Image Gallery</a></li>
<li><a class="underline" href="https://larukedi.github.io/laroux.js/">laroux.js</a> - Light alternative to jQuery</li>
<li><a class="underline" href="https://hacks.mozilla.org/2014/12/metricsgraphics-js-a-lightweight-graphics-library-based-on-d3/">MetricsGraphics.js – a lightweight graphics library based on D3</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.breck-mckye.com/blog/2014/12/the-state-of-javascript-in-2015/">http://www.breck-mckye.com/blog/2014/12/the-state-of-javascript-in-2015/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.breck-mckye.com/blog/2014/12/the-state-of-javascript-in-2015/">The State of JavaScript in 2015</a></li>
<li><a class="underline" href="https://reactjsnews.com/the-state-of-flux/">The State of Flux</a></li>
<li><a class="underline" href="https://www.airpair.com/node.js/posts/top-10-mistakes-node-developers-make">Top 10 Mistakes Node.js Developers Make</a></li>
<li><a class="underline" href="http://designmodo.com/typescript/">What is TypeScript? Pros and Cons</a></li>
<li><a class="underline" href="http://arstechnica.com/information-technology/2014/11/holiday-reading-for-a-certain-sort-if-hemingway-wrote-javascript/">Holiday reading for a certain sort: If Hemingway Wrote JavaScript</a></li>
<li><a class="underline" href="https://medium.com/@jeffwhelpley/is-angularjs-fast-enough-98dcf96406c8">Is AngularJS Fast Enough?</a></li>
<li><a class="underline" href="http://www.reddit.com/r/javascript/comments/2o7ie1/is_learning_angular_still_worth_it/">Is learning Angular still worth it?</a></li>
<li><a class="underline" href="http://www.slideshare.net/rmsguhan/react-meetup-mailonreact">Yahoo Mail moving to React</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://web-design-weekly.com/2014/09/24/diving-webpack/">http://web-design-weekly.com/2014/09/24/diving-webpack/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://web-design-weekly.com/2014/09/24/diving-webpack/">Diving into Webpack</a></li>
<li><a class="underline" href="http://dev.hubspot.com/blog/moving-backbone-to-flux-react">Relieving Backbone Pain with Flux & React</a></li>
<li><a class="underline" href="http://baconjs.blogspot.fi/2014/12/structuring-real-life-applications.html">Bacon.js blog: Structuring Real-Life Applications</a></li>
<li><a class="underline" href="http://creative-punch.net/2014/10/intro-html5-speech-synthesis-api/">Intro to the HTML5 Speech Synthesis API</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://espadrine.github.io/New-In-A-Spec/es6/">What's New In ES6</a></li>
<li><a class="underline" href="http://singlepageappbook.com/single-page.html">Single page apps in depth (a.k.a. Mixu' single page app book)</a></li>
<li><a class="underline" href="https://github.com/rwaldron/idiomatic.js/">rwaldron/idiomatic.js</a> - Idiomatic style guide</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.sitepoint.com/managing-client-state-angularjs/">Managing Client-Only State in AngularJS</a></li>
<li><a class="underline" href="http://iamralpht.github.io/physics/">Creating Animations and Interactions with Physical Models</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/sibartlett/colonizers">sibartlett/colonizers</a> - Settlers of Catan</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/svaarala/duktape">svaarala/duktape</a> - Light implementation of JavaScript suitable for embedded environments</li>
<li><a class="underline" href="http://bennettfeely.com/clippy/">Clippy</a> - Generate CSS clipping paths</li>
<li><a class="underline" href="http://kpuputti.github.io/flow-and-static-types/">Flow and static types for JavaScript</a></li>
</ul>
]]></content></entry><entry><title>JSter #35: News of November 2014 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-november-2014-part-2"></link><id>monthly-jster-november-2014-part-2</id><published>2014-12-01T12:03:33.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Java is to JavaScript as bat is to Batman</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://serratus.github.io/quaggaJS/">http://serratus.github.io/quaggaJS/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://serratus.github.io/quaggaJS/">QuaggaJS, an advanced barcode-reader</a></li>
<li><a class="underline" href="https://code.google.com/p/dat-gui/">dat-gui - A lightweight controller library</a></li>
<li><a class="underline" href="http://matthewja.com/Coffeequate/">Coffeequate</a> - Equation solver</li>
<li><a class="underline" href="https://hacks.mozilla.org/2014/11/interact-js-for-drag-and-drop-resizing-and-multi-touch-gestures/">interact.js for drag and drop, resizing and multi-touch gestures</a></li>
<li><a class="underline" href="https://github.com/staltz/cycle">staltz/cycle</a> - The next step after React?</li>
<li><a class="underline" href="http://gilbitron.github.io/Ideal-Image-Slider/">Ideal Image Slider</a></li>
<li><a class="underline" href="https://github.com/js-next/react-style">js-next/react-style</a></li>
<li><a class="underline" href="http://jquense.github.io/react-widgets/docs/">React Widgets</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://sitr.us/2014/11/21/flow-is-the-javascript-type-checker-i-have-been-waiting-for.html">http://sitr.us/2014/11/21/flow-is-the-javascript-type-checker-i-have-been-waiting-for.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://sitr.us/2014/11/21/flow-is-the-javascript-type-checker-i-have-been-waiting-for.html">Flow is the JavaScript type checker I have been waiting for</a></li>
<li><a class="underline" href="http://www.jvandemo.com/top-5-benefits-after-6-months-of-component-driven-angularjs-development/">Top 5 benefits after 6 months of component driven AngularJS development</a></li>
<li><a class="underline" href="http://jster.net/blog/developing-games-where-to-start">Developing Games in JavaScript – Where to Start?</a></li>
<li><a class="underline" href="http://www.philipotoole.com/is-node-js-just-a-stopgap/">Is node.js just a stopgap?</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2014/11/massive-the-asm-js-benchmark/">Massive: The asm.js Benchmark</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.krawaller.se/posts/a-reflux-todomvc-codebase-walkthrough/">A Reflux TodoMVC codebase walkthrough</a></li>
<li><a class="underline" href="http://h3manth.com/new/blog/2014/es6-array-methods/">ES6 Array methods</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://css-tricks.com/sublime-text-front-end-developers/">Sublime Text for Front End Developers</a></li>
<li><a class="underline" href="http://karpathy.github.io/neuralnets/">Hacker's guide to Neural Networks</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://wilsonpage.co.uk/preventing-layout-thrashing/">Preventing 'layout thrashing'</a></li>
<li><a class="underline" href="https://github.com/Gigacore/four-shadows">Gigacore/four-shadows</a> - Spice up your icons</li>
<li><a class="underline" href="http://federicoramirez.name/object-oriented-javascript/">PubSub Design Pattern</a></li>
<li><a class="underline" href="http://thoughts.amphibian.com/2014/11/call-now-log-later.html">Amphibian Abstracts: Call Now, Log Later</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2014/11/an-easier-way-of-using-polyfills/">An easier way of using polyfills</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2014/11/porting-to-emscripten/">Porting to Emscripten</a></li>
</ul>
<a href="#random"><h2 class="inline" id="random">Random</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://cube-drone.com/2014_02_19-Cube_Drone_76_Many_Angular_Ones.html">Angular Ones</a></li>
<li><a class="underline" href="http://anvaka.github.io/allnpmviz3d/">npm universe</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/iojs/io.js">iojs/io.js</a> - Node.js just got forked.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jordaneldredge.com/projects/winamp2-js/">Winamp2-js</a></li>
<li><a class="underline" href="http://js1k.com/2014-dragons/details/1951">JS1k - Highway at night</a></li>
</ul>
]]></content></entry><entry><title>Developing Games in JavaScript – Where to Start?</title><link rel="alternate" type="text/html" href="https://jster.net/blog/developing-games-where-to-start"></link><id>developing-games-where-to-start</id><published>2014-11-24T14:13:33.000Z</published><content type="text/html"><![CDATA[<p>Developing a game can be a challenging, complex task particularly if your aim is to make it attractive and packed with lots of capabilities. During the past few years JavaScript has become a good alternative to native development. It allows you to target many platforms at once.</p>
<p>The problem of course is where and how to start. You can definitely develop everything from scratch but often you might not have the time or interest to do all that. There are various libraries and frameworks available that encapsulate the most common concerns. Given the sheer amount of those, I’ll focus just on a few and try to go through basic functionality you might expect.</p>
<a href="#phaser-desktop-and-mobile-html5-game-framework"><h2 class="inline" id="phaser-desktop-and-mobile-html5-game-framework">Phaser - Desktop and Mobile HTML5 Game Framework</h2></a>
<p>{{ screenshot: <a class="underline" href="http://phaser.io/">http://phaser.io/</a> }}</p>
<p>To get some initial idea of what Phaser, an open source licensed framework, is capable of, check out <a class="underline" href="http://gamemechanicexplorer.com/">game mechanic explorer</a> implemented using it. The mechanics are useful beyond Phaser so it’s a good resource to bookmark.
Phaser deals with a large amount of game development related concerns. I’ve listed its main features below:</p>
<ul class="list-disc list-inside">
<li>Abstract interface over WebGL and Canvas (uses whichever is available behind the scenes)</li>
<li>Preloader to get your game assets loaded properly</li>
<li>Physics support through three different solutions ranging from something very light to a system with polygon and spring support</li>
<li>Sprites - besides showing graphics, you can deal with input as well. They can also be animated and grouped for easier handling.</li>
<li>Particle engine for jet streams and such</li>
<li>Multiple input options ranging from keyboard and mouse to touch</li>
<li>Sound support through various backends (Web Audio, HTML Audio)</li>
<li>Tilemaps so you can get that Zelda clone done</li>
<li>Device scaling to support multiple targets better</li>
</ul>
<p>In addition their engine is a plugin based one meaning it should be easy to extend in case you are missing something. If this sounded interesting, head to <a class="underline" href="http://phaser.io/">http://phaser.io/</a> in order to learn more about the engine.</p>
<a href="#crafty-code-like-a-fox"><h2 class="inline" id="crafty-code-like-a-fox">Crafty - Code like a fox</h2></a>
<p>{{ screenshot: <a class="underline" href="http://craftyjs.com/">http://craftyjs.com/</a> }}</p>
<p>Crafty, another open source alternative, shares a lot in common feature-wise. There is no WebGL support as of yet, though. The idea is the same in that there is a common interface over Canvas and DOM. It would not surprise me if Crafty supported WebGL one of these days.</p>
<p>Physics-wise it’s a more limited alternative as well. It looks like there is some third party support for the popular Box2D library and some basic collision detect in the library itself but that’s about it.</p>
<p>Rest seems more or less equal. When it comes to tilemaps, there’s a nice third party editor available: <a class="underline" href="https://github.com/Kibo/TiledMapBuilder">https://github.com/Kibo/TiledMapBuilder</a>.</p>
<p>To get started with Crafty, head to <a class="underline" href="http://craftyjs.com/">http://craftyjs.com/</a>.</p>
<a href="#pixi-renderer-2d-webgl-renderer-with-canvas-fallback"><h2 class="inline" id="pixi-renderer-2d-webgl-renderer-with-canvas-fallback">Pixi Renderer - 2D webGL renderer with canvas fallback</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.pixijs.com/">http://www.pixijs.com/</a> }}</p>
<p>Based on their tagline open source (MIT) Pixi focuses on performance. It is also a library, not an entire framework, so you are expected to use other libraries for the missing bits, such as audio or physics. You will get a lot of ready, though, as Pixi deals with asset loading, sprites and device interaction for you.</p>
<p>If you prefer to build your game out of perhaps easier to understand bits, Pixi could be a nice starting point: <a class="underline" href="http://www.pixijs.com/">http://www.pixijs.com/</a>.</p>
<a href="#impact-the-awesomest-way-to-create-even-more-awesome-html5-games-"><h2 class="inline" id="impact-the-awesomest-way-to-create-even-more-awesome-html5-games-">Impact - The Awesomest Way to Create Even More Awesome HTML5 Games!</h2></a>
<p>{{ screenshot: <a class="underline" href="http://impactjs.com/">http://impactjs.com/</a> }}</p>
<p>You could say the tagline of Impact doesn’t hold anything back. It comes with all the bells and whistles and there is a level editor included to make development easier. This doesn’t come for free, though. Expect to shell out $99 for a license. See <a class="underline" href="http://impactjs.com/">http://impactjs.com/</a> for more information.</p>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<p>I know there are heaps of JavaScript game engines out there. It is difficult to say where to start. It all depends on what you are going to do and how much you are willing to invest. If you want to go the commercial route, you might as well pick <a class="underline" href="http://unity3d.com/">Unity</a>. On the other hand some of the alternatives discussed here could do the trick as well.</p>
<p>There are pretty much two different approaches you could choose from. You can either pick a framework and hope it covers most, if not all, of your needs. Alternatively you could compose your game out of smaller libraries each of which cover some specific task. In this case you would pick something like Pixi and choose libraries to complement it as you hit the boundaries.</p>
<p>That said it is possible to extend frameworks such as Phaser and Crafty thanks to their flexible architecture. In practice it is a little difficult to say where the limits of this approach are. In the worst case you will need to modify the frameworks themselves to get things done but then this problem applies to libraries as well.</p>
<p>This post was written in collaboration with Jason Phillips and <a class="underline" href="http://www.dirtbikegames365.com/">Dirt Bike Games 365</a>.</p>
]]></content></entry><entry><title>JSter #34: News of November 2014 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-november-2014-part-1"></link><id>monthly-jster-november-2014-part-1</id><published>2014-11-16T08:37:02.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Do no eval.</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://flockingjs.org/">http://flockingjs.org/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://flockingjs.org/">Flocking: Creative Audio Synthesis for the Web!</a></li>
<li><a class="underline" href="http://www.goblinphysics.com/">Goblin Physics</a></li>
<li><a class="underline" href="https://github.com/cferdinandi/smooth-scroll">cferdinandi/smooth-scroll</a></li>
<li>[steida/este](<a class="underline" href="https://github.com/steida/este">https://github.com/steida/este</a> - Robust and comfortable dev stack for mobile/offline/frontend first isomorphic web apps)</li>
<li><a class="underline" href="http://fian.my.id/marka/">Marka - Beautiful transformable icons built for the web.</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://futurice.com/blog/combining-react-flux-and-web-components">http://futurice.com/blog/combining-react-flux-and-web-components</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://futurice.com/blog/combining-react-flux-and-web-components">Combining React, Flux & Web Components</a></li>
<li><a class="underline" href="http://pothibo.com/2014/11/thoughts-on-js-mv">Thoughts on JS MV*</a></li>
<li><a class="underline" href="http://modernweb.com/2014/10/15/javascript-architecture-23rd-century/">JavaScript Architecture for the 23rd Century</a></li>
<li><a class="underline" href="https://github.com/emberjs/rfcs/pull/15">The Road to Ember 2.0 RFC by tomdale</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.thinkful.com/learn/angularjs-tutorial-build-a-gmail-clone/">http://www.thinkful.com/learn/angularjs-tutorial-build-a-gmail-clone/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/@russbeye/this-does-not-have-to-be-rocket-science-fcca5bca3fdf">This Does Not Have To Be Rocket Science - Ie. how execution contexts work in JS</a></li>
<li><a class="underline" href="http://www.thinkful.com/learn/angularjs-tutorial-build-a-gmail-clone/">AngularJS Tutorial - Build a GMail Clone</a></li>
<li><a class="underline" href="http://jakearchibald.com/2014/es7-async-functions/">ES7 async functions</a></li>
<li><a class="underline" href="http://www.innoarchitech.com/scalable-maintainable-javascript-coupling/">How to Write Highly Scalable and Maintainable JavaScript: Coupling</a></li>
<li><a class="underline" href="http://jhusain.github.io/learnrx/">Functional Programming in Javascript - Interactive tutorial</a></li>
</ul>
<a href="#testing"><h2 class="inline" id="testing">Testing</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.smashingmagazine.com/2014/10/07/introduction-to-unit-testing-in-angularjs/">An Introduction To Unit Testing In AngularJS Applications</a></li>
<li><a class="underline" href="http://www.slideshare.net/FlorianFesseler/introduction-to-protractor">Introduction to Protractor</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://ramonvictor.github.io/protractor/slides/">Protractor for AngularJS: writing end-to-end tests has never been so fun</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://square.github.io/intro-to-d3/">Intro to D3</a></li>
<li><a class="underline" href="http://linkis.com/ponyfoo.com/articles/ttyPI">JavaScript Quality Guide</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://tympanus.net/codrops/2014/10/30/resizing-cropping-images-canvas/">Resizing and Cropping Images with Canvas</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2014/10/introducing-simd-js/">Introducing SIMD.js</a></li>
<li><a class="underline" href="http://codecondo.com/trigger-javascript-functions-css-media-queries/">How to Trigger JavaScript Functions with CSS Media-Queries</a></li>
<li><a class="underline" href="http://simplectic.com/blog/2014/transducers-explained-1/">Transducers Explained: Part 1</a></li>
<li><a class="underline" href="http://experiments.wemakesites.net/css3-and-svg-image-filters.html">CSS3 and SVG Image Filters</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/enaqx/awesome-react">enaqx/awesome-react - Collection of React related resources</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://oos.moxiecode.com/js_webgl/autumn/">Autumn - WebGL demo</a></li>
</ul>
]]></content></entry><entry><title>JSter #33: News of October 2014 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-october-2014-part-2"></link><id>monthly-jster-october-2014-part-2</id><published>2014-11-02T11:23:38.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>All JavaScript and no fun makes Jack a dull boy.</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://emberjs.com/blog/2014/10/26/ember-1-8-0-released.html">http://emberjs.com/blog/2014/10/26/ember-1-8-0-released.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://emberjs.com/blog/2014/10/26/ember-1-8-0-released.html">Ember.js 1.8</a></li>
<li><a class="underline" href="https://www.meteor.com/blog/2014/10/28/meteor-1-0">Meteor 1.0</a></li>
<li><a class="underline" href="http://facebook.github.io/react/blog/2014/10/28/react-v0.12.html">React v0.12</a></li>
<li><a class="underline" href="http://blog.getbootstrap.com/2014/10/29/bootstrap-3-3-0-released/">Bootstrap 3.3.0</a></li>
<li><a class="underline" href="http://formatjs.io/">FormatJS</a> - Internationalize your web apps on the client & server</li>
<li><a class="underline" href="http://mozilla.github.io/nunjucks/">Nunjucks</a> - Templating by Mozilla</li>
<li><a class="underline" href="http://watilde.github.io/beeplay/">beeplay.js</a> - Write songs in JavaScript</li>
<li><a class="underline" href="http://tristanedwards.me/sweetalert">SweetAlert</a> - Sweet replacement for alert()</li>
<li><a class="underline" href="http://react-bootstrap.github.io/components.html">React Bootstrap</a></li>
<li><a class="underline" href="https://github.com/zzmp/juliusjs">zzmp/juliusjs</a> - Speech recognition for the web</li>
<li><a class="underline" href="https://github.com/kimmobrunfeldt/progressbar.js">kimmobrunfeldt/progressbar.js</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://blog.jquery.com/2014/10/29/jquery-3-0-the-next-generations/">http://blog.jquery.com/2014/10/29/jquery-3-0-the-next-generations/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.jquery.com/2014/10/29/jquery-3-0-the-next-generations/">jQuery 3.0: The Next Generations</a></li>
<li><a class="underline" href="http://buzzdecafe.github.io/code/2014/10/02/not-haskell/">It turns out that JavaScript is not Haskell</a></li>
<li><a class="underline" href="http://www.infoworld.com/article/2838008/javascript/nginx-has-big-plans-for-javascript.html">Nginx has big plans for JavaScript</a></li>
<li><a class="underline" href="https://medium.com/este-js-framework/whats-wrong-with-angular-js-97b0a787f903">What’s wrong with Angular.js</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2014/10/blend4web-the-open-source-solution-for-online-3d/">Blend4Web: the Open Source Solution for Online 3D</a></li>
<li><a class="underline" href="http://dtrejo.com/why-is-node-being-forked.html">Why is Node Being Forked? by David Trejo</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://facebook.github.io/react/blog/2014/10/14/introducing-react-elements.html">Introducing React Elements</a></li>
<li><a class="underline" href="http://victorsavkin.com/post/99998937651/building-angular-apps-using-flux-architecture">Building Angular Apps Using Flux Architecture</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.sitepoint.com/anatomy-javascript-mv-framework/">http://www.sitepoint.com/anatomy-javascript-mv-framework/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.sitepoint.com/anatomy-javascript-mv-framework/">Anatomy of a JavaScript MV* Framework</a></li>
<li><a class="underline" href="http://www.awwwards.com/creating-3d-cube-a-practical-guide-to-three-js-with-live-demo.html">Creating 3D Cube: A Practical Guide to Three.js with Live Demo</a></li>
<li><a class="underline" href="http://blog.risingstack.com/node-js-security-tips/">Node.js Security Tips</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.mono-software.com/blog/post/Mono/242/Improving-AngularJS-long-list-rendering-performance-using-ReactJS/">Improving AngularJS long list rendering performance using ReactJS</a></li>
<li><a class="underline" href="http://www.htmlxprs.com/post/14/superpower-your-javascript-with-10-quick-tips">Superpower your JavaScript with 10 quick tips - For Beginners</a></li>
<li><a class="underline" href="http://joshbassett.info/2014/take-your-code-to-the-next-level-with-fkit/">Take Your Code to the Next Level with FKit</a></li>
<li><a class="underline" href="https://medium.com/@duilen/embed-d3js-charts-in-emails-b7c1cb725154">Embed D3js charts in emails</a></li>
<li><a class="underline" href="http://arqex.com/939/learning-much-javascript-one-line-code">Learning much javascript from one line of code</a></li>
<li><a class="underline" href="http://xahlee.info/js/js_event_delegation.html">JavaScript: Event Delegation</a></li>
<li><a class="underline" href="http://blog.mdnbar.com/javascript-common-tricks">JavaScript hacks explained</a></li>
<li><a class="underline" href="http://technology.amis.nl/2014/10/06/automatic-error-handling-in-angularjs/">Automatic error handling in AngularJS</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://docs.google.com/presentation/d/1XQP0_NTzCUcFweauLlkZpbbhNVYbYy156oD--KLmXsk/preview">Angular 2 Core</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/sebmck/6to5">sebmck/6to5</a> - Promising ES6 to ES5 transpiler</li>
<li><a class="underline" href="http://www.csstyle.io/">csstyle</a> - Clean, simple styling for the web</li>
<li><a class="underline" href="http://addyosmani.com/blog/fixmyjs/">Explorations In Automatically Fixing JavaScript Linting-errors</a></li>
<li><a class="underline" href="http://www.imgix.com/imgix-js">imgix.js</a> - Your toolbox for truly responsive images</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://nathanfriend.com/inspirograph/">Inspirograph</a> - Gears with D3</li>
</ul>
]]></content></entry><entry><title>JSter #32: News of October 2014 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-october-2014-part-1"></link><id>monthly-jster-october-2014-part-1</id><published>2014-10-15T12:50:33.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>It takes two to JS.</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://typicode.github.io/pegasus/">http://typicode.github.io/pegasus/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://angularjs.blogspot.com/2014/10/angularjs-130-superluminal-nudge.html">AngularJS: AngularJS 1.3.0 – superluminal-nudge</a></li>
<li><a class="underline" href="http://qiao.github.io/PathFinding.js/visual/">PathFinding.js</a> - Basic path finding algorithms for JavaScript to help you find your way back home.</li>
<li><a class="underline" href="http://verbnurbs.com/">verb</a> - A CAD library for the web. NURBS and all that fun.</li>
<li><a class="underline" href="http://typicode.github.io/pegasus/">Pegasus</a> - Pegasus loads your data in parallel with your other scripts.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.airpair.com/angularjs/posts/top-10-mistakes-angularjs-developers-make">http://www.airpair.com/angularjs/posts/top-10-mistakes-angularjs-developers-make</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.airpair.com/angularjs/posts/top-10-mistakes-angularjs-developers-make">10 Top Mistakes Angular.js Developers Make</a></li>
<li><a class="underline" href="http://www.techsonian.net/2014/09/from-backbone-to-react-our-experience-scaling-a-web-application">From Backbone To React: Our Experience Scaling a Web Application</a></li>
<li><a class="underline" href="http://www.airpair.com/js/javascript-framework-comparison">AngularJS vs. Backbone.js vs. Ember.js</a></li>
<li><a class="underline" href="http://developer.telerik.com/featured/apples-biggest-announcement-yet-isnt-phones-watches/">Apple's Biggest Announcement Yet Isn't About Phones Or Watches</a></li>
<li><a class="underline" href="http://blog.risingstack.com/from-angularjs-to-react-the-isomorphic-way/">From AngularJS to React: The Isomorphic Way</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.andrewray.me/reactjs-for-stupid-people/">ReactJS For Stupid People</a> - Of course that does not include you.</li>
<li><a class="underline" href="http://www.reddit.com/r/javascript/comments/2gfype/sustainability_vs_speed/">Sustainability vs Speed</a> - Good Reddit discussion on the topic.</li>
<li><a class="underline" href="http://docs.gl/">docs.gl</a> - OpenGL API documentation.</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://gcanti.github.io/2014/09/25/six-reasons-to-define-constructors-with-only-one-argument.html">Six reasons to define constructors with only one argument</a> - It just makes a lot of sense in JS.</li>
<li><a class="underline" href="http://davidwalsh.name/add-rules-stylesheets">Add Rules to Stylesheets with JavaScript</a></li>
<li><a class="underline" href="http://www.technofattie.com/2014/03/21/five-guidelines-for-avoiding-scope-soup-in-angular.html">5 Guidelines For Avoiding Scope Soup in Angular</a></li>
<li><a class="underline" href="http://www.sitepoint.com/emerging-patterns-javascript-event-handling/">Emerging Patterns in JavaScript Event Handling</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://gaearon.github.io/react-hot-loader/">http://gaearon.github.io/react-hot-loader/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://gaearon.github.io/react-hot-loader/">react-hot-loader</a> - JSX live reload for React fans out there.</li>
<li><a class="underline" href="http://codebeautify.org/view/jsonviewer">JSON Viewer</a> - You can also convert your JSON to enterprise friendly XML using this tool!</li>
<li><a class="underline" href="https://github.com/Lapple/ErrorBoard">Lapple/ErrorBoard</a> - Track and log JavaScript errors triggered by your users.</li>
<li><a class="underline" href="https://en.wikipedia.org/wiki/JavaScript_Style_Sheets">JavaScript Style Sheets</a> - A blast from the past. If only...</li>
<li><a class="underline" href="http://www.jsonml.org/">JsonML (JSON Markup Language)</a> - If you took HTML and replaced it with something nicer, you would end up with JsonML.</li>
<li><a class="underline" href="http://labs.ft.com/2014/09/polyfills-as-a-service/">Polyfills as a service</a></li>
<li><a class="underline" href="https://gist.github.com/addyosmani/fd3999ea7fce242756b1">108 byte CSS Layout Debugger</a></li>
<li><a class="underline" href="https://github.com/twbs/bootlint">twbs/bootlint</a> - Lint your Bootstrap.</li>
<li><a class="underline" href="http://jster.net/blog/best-chrome-apps-for-devs">5 of the Best Chrome Apps Available Today for Web Developers</a></li>
</ul>
<a href="#hardware"><h2 class="inline" id="hardware">Hardware</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.espruino.com/">Espruino</a> - A cheapo JavaScript embedded board.</li>
</ul>
]]></content></entry><entry><title>5 of the Best Chrome Apps Available Today for Web Developers</title><link rel="alternate" type="text/html" href="https://jster.net/blog/best-chrome-apps-for-devs"></link><id>best-chrome-apps-for-devs</id><published>2014-10-05T13:22:38.000Z</published><content type="text/html"><![CDATA[<p>Being a web developer nowadays is far different from what it used to be; I still remember when all you needed in order to get going was a text editor and a bucket of coffee. Nowadays, though, technology is changing at such a pace that it only takes a few blinks and you’ll end up falling behind with everything.</p>
<p>The best way to stay atop of the game is to make use of every resources available out there in order to simplify or automate everything you can in the development process, and one of the easiest methods of doing so is by customizing your web browser with the right apps to take you through the day. Here are five of the best Chrome apps that are totally worth your attention.</p>
<a href="#web-developer"><h2 class="inline" id="web-developer"><a class="underline" href="https://chrome.google.com/webstore/detail/web-developer/bfbameneiokkgbdmiekhjnmfkcnldhhm/details?hl=en">Web Developer</a></h2></a>
<div class="picture"><img src="/img/blog/58/1.png" alt="Web Developer" /></div>

<p>Chris Pederick’s Web Developer app is one of the most iconic apps in the field of web development, and it’s easy to understand why: it has pretty much everything you can think of. The initial extension was developed for Mozilla Firefox, being one of the primary reasons developers chose to use Firefox, but its recent porting to Chrome might have developers moving to Chrome as well.</p>
<p>Web Developer offers access to information about all the key elements of a webpage at the touch of a button, making it easy to view and edit code on the fly. If you’re looking for an all-in-one solution, Web Developer is it.</p>
<a href="#pagespeed-insights"><h2 class="inline" id="pagespeed-insights"><a class="underline" href="https://chrome.google.com/webstore/detail/pagespeed-insights-by-goo/gplegfbjlmmehdoakndmohflojccocli">PageSpeed Insights</a></h2></a>
<div class="picture"><img src="/img/blog/58/2.png" alt="PageSpeed Insights" /></div>

<p>Slow-loading pages are every developer’s nightmare, especially after spending countless hours on creating the perfect code. Making things even worse is the fact that this usually happens due to a minor JavaScript or CSS function; here’s where PageSpeed Insights comes into play.</p>
<p>While there are multiple sites and apps that provide page speeds assessments, most will only tell you that there’s a problem, without actually indicating where it is, or how it can be fixed. PageSpeed Insights does exactly that: analyzes the page, identifies problems and provides solutions. The Google Chrome app is especially useful if you’re working on an offline site, and want to make sure everything is in top shape before having the site go live.</p>
<a href="#wappalyzer"><h2 class="inline" id="wappalyzer"><a class="underline" href="https://chrome.google.com/webstore/detail/wappalyzer/gppongmhjkpfnbhagpmjfkannfbllamg">Wappalyzer</a></h2></a>
<div class="picture"><img src="/img/blog/58/3.jpg" alt="Wappalyzer" /></div>

<p>If you’ve ever found yourself just staring at a website and wonrdering how a certain feature was created, or what framework’s in use, Wappalyzer is the place to search for answers. This tiny app provides detailed information about every web page, and the technologies behind it, allowing you to get a better understanding of various things, which you will ultimately use to your advantage.</p>
<p>Wappalyzer comes with a large library of content management systems, platforms, JavaScript frameworks or web servers, so finding out what’s making a website’s wheels turn won’t have you digging through the source code for hints anymore.</p>
<a href="#jsonview"><h2 class="inline" id="jsonview"><a class="underline" href="https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc">JSONView</a></h2></a>
<div class="picture"><img src="/img/blog/58/4.jpg" alt="JSONView" /></div>

<p>The JSON format for storing and transporting data is becoming more popular by the day, with a lot of websites making use of it in an effort to become more developer-friendly. Be that as it may, browsers are not very JSON-friendly yet, meaning that JSON content won’t be displayed in an organized manner that’s easy to follow.</p>
<p>JSONView is here to save the day, offering two different methods of parsing JSON content (direct extraction from the page or via an additional XMLHttpRequest) and displaying it in a readable stream of data.</p>
<a href="#editthiscookie"><h2 class="inline" id="editthiscookie"><a class="underline" href="https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg?hl=en">EditThisCookie</a></h2></a>
<div class="picture"><img src="/img/blog/58/5.jpg" alt="EditThisCookie" /></div>

<p>Cookies are natural elements of all websites, but sometimes they tend to store a little bit more than they should have. If you want to test the behavior of the cookies generated by your own website, or any other site, EditThisCookie is one of the easiest ways of doing it.</p>
<p>Simply install the app and, with a single press of a button, you’ll get full access to the cookies generated by the site you’re on. You can easily view, edit and even lock the contents of the cookies, basically taking full control over the way cookies work.</p>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<p>So there you have them – five of the best Google Chrome Apps and extensions available for web developers now. What are your apps and extensions of choice?</p>
<p>This is a guest post by Jason Phillips and <a class="underline" href="http://www.traingames365.com/">Train Games 365</a>. Thanks Jason!</p>
]]></content></entry><entry><title>JSter #31: News of September 2014 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-september-2014-part-2"></link><id>monthly-jster-september-2014-part-2</id><published>2014-10-01T15:10:32.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Two minutes to JS.</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://lafikl.github.io/steady.js/">http://lafikl.github.io/steady.js/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.npmjs.org/package/axios">axios</a> - Promise based http client modeled after AngularJS $http. Works both client and serverside.</li>
<li><a class="underline" href="http://lafikl.github.io/steady.js/">Steady.js</a> - Just say no to jank on scroll.</li>
<li><a class="underline" href="http://www.jointjs.com/">JointJS</a> - Not what you think. JointJS actually provides means to build graphs and jointed shiz.</li>
<li><a class="underline" href="http://marmelab.com/blog/2014/09/15/easy-backend-for-your-restful-api.html">ng-admin: Add an AngularJS admin GUI to any RESTful API</a> - How come I never thought to implement something like this?</li>
<li><a class="underline" href="http://toddmotto.com/echo-js-simple-javascript-image-lazy-loading/">Echo.js, simple JavaScript image lazy loading</a> - Hooray for laziness!</li>
<li><a class="underline" href="http://khan.github.io/KaTeX/">KaTeX – The fastest math typesetting library for the web</a> - Yup, perfect for math freaks.</li>
<li><a class="underline" href="https://github.com/paypal/accessible-html5-video-player">paypal/accessible-html5-video-player</a> - It must be accessible because PayPal says so.</li>
<li><a class="underline" href="http://angular-data.pseudobry.com/">angular-data</a> - Finally Angular gets some backbone.</li>
<li><a class="underline" href="http://theonion.github.io/comcastifyjs/">ComcastifyJS by theonion</a> - If you think the images load too fast, try this.</li>
<li><a class="underline" href="http://gionkunz.github.io/chartist-js/">Chartist</a> - Responsive charts for everyone and their granny.</li>
<li><a class="underline" href="http://dev.windows.com/en-us/develop/winjs">WinJS</a> - Enjoy the Metro experience now on more platforms!</li>
<li><a class="underline" href="http://gwendall.github.io/way/">way.js</a> - Quick and simple two-way bindings. Because they are so cool anyway.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://radar.oreilly.com/2014/09/the-future-of-angularjs.html">http://radar.oreilly.com/2014/09/the-future-of-angularjs.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.2ality.com/2014/09/es6-modules-final.html">ECMAScript 6 modules: the final syntax</a> - Better learn this and transpile it to production.</li>
<li><a class="underline" href="http://radar.oreilly.com/2014/09/the-future-of-angularjs.html">The Future of AngularJS</a> - Yes, there's a future. It's not all React folks.</li>
<li><a class="underline" href="http://davidwalsh.name/css-js-animation">CSS vs. JS Animation: Which is Faster?</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/petehunt/webpack-howto">petehunt/webpack-howto</a> - Get started with webpack and understand why it's the way of the future to package your web apps.</li>
<li><a class="underline" href="http://zeroviscosity.com/category/d3-js-step-by-step">Zero Viscosity: D3.js Step by Step</a> - D3 can seem complex on the first sight. Going through this guide will help you get started.</li>
<li><a class="underline" href="http://vasir.net/blog/data-visualization/using-d3-and-svg-filters-to-create-fog-of-war">Using D3 and SVG Filters to Create a Fog of War Effect</a> - WarCraft anyone?</li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.joyent.com/developers/node">Node.js Production Practices</a> - So you got your Node app to production. What next?</li>
<li><a class="underline" href="http://www.bytearray.org/?p=5591">A JavaScript Refresh</a> - Refresh your JavaScript knowledge.</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.jcoglan.com/2014/02/05/building-javascript-projects-with-make/">Building JavaScript projects with Make</a> - Who would have thought the old champion would still continue to reign?</li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.kickstarter.com/projects/thoughtstem/codespells-express-yourself-with-magic">CodeSpells: Express Yourself With Magic by ThoughtSTEM</a> - Not just any magic. The JavaScript kind.</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://runtimejs.org/">http://runtimejs.org/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.npmjs.org/post/98131109725/npm-2-0-0">npm 2.0.0</a> - The biggest and most beautiful Node package manager reached 2.0.0. What that means for you?</li>
<li><a class="underline" href="http://runtimejs.org/">Runtime.JS</a> - Operating system kernel in JS. Why? Because.</li>
<li><a class="underline" href="http://nodered.org/">Node-RED</a> - Wire internet of things using Node and nodes. Yeah, this thing comes with a node editor. Pun intended.</li>
<li><a class="underline" href="http://bootswatchr.com/">BootSwatchr.com</a> - Generate themes for Bootstrap without tears.</li>
<li><a class="underline" href="https://github.com/inikulin/ineed">inikulin/ineed</a> - Web scraping and HTML preprocessing the easy way. Personally I use just request, async and cheerio but maybe that's just me.</li>
<li><a class="underline" href="https://github.com/vthibault/roBrowser">vthibault/roBrowser</a> - A browser thinger for a game known as Ragnarok Online. Vikings?!?</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://haxiomic.github.io/GPU-Fluid-Experiments/html5/">WebGL Fluid Experiment</a> - Guaranteed to melt your computer.</li>
<li><a class="underline" href="https://brainbrowser.cbrain.mcgill.ca/">BrainBrowser v2.1.0</a> - So what does it look like up there?</li>
<li><a class="underline" href="http://sunfishcode.github.io/blog/2014/09/09/js-simd.html">JS SIMD Demo</a> - If you know what SIMD means, check this out. If you don't know what SIMD means, check this out.</li>
</ul>
]]></content></entry><entry><title>JSter #30: News of September 2014 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-september-2014-part-1"></link><id>monthly-jster-september-2014-part-1</id><published>2014-09-16T12:32:14.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Remember that <a class="underline" href="http://nordicjs.com/">Nordic.js</a> is streaming for free at 18th and 19th.</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://pioneerjs.com/">http://pioneerjs.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://pioneerjs.com/">pioneer.js</a> - Easy to understand DSL for testing your app</li>
<li><a class="underline" href="https://github.com/tkambler/bonegular">tkambler/bonegular</a> - Backboneish models and collections for Angular.</li>
<li><a class="underline" href="https://github.com/subprotocol/genetic-js">subprotocol/genetic-js</a> - Genetic and evolutionary algorithms</li>
<li><a class="underline" href="https://github.com/roman01la/web-components-polyfills">roman01la/web-components-polyfills</a></li>
<li><a class="underline" href="http://rileyjshaw.com/terra/">terra.js</a> - Biological simulations and cellular automata</li>
<li><a class="underline" href="https://github.com/deloreanjs/delorean">deloreanjs/delorean</a> - Flux for React</li>
<li><a class="underline" href="https://github.com/fat/bean">fat/bean</a> - Event handling made simple</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://chromakode.com/post/notes-on-xkcd-pixels">Notes from the development of xkcd's "Pixels"</a></li>
<li><a class="underline" href="http://spoike.ghost.io/deconstructing-reactjss-flux/">Deconstructing ReactJS's Flux</a></li>
<li><a class="underline" href="http://uvarajg.wordpress.com/2014/08/24/understanding-the-node-js-event-loop/">Understanding the node.js event loop</a></li>
<li><a class="underline" href="http://www.syncano.com/reactjs-reasons-why-part-1/">6 Reasons to Use React.js as Your Next Framework</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="https://hacks.mozilla.org/2014/09/introducing-blast-js/">https://hacks.mozilla.org/2014/09/introducing-blast-js/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2014/09/introducing-blast-js/">Introducing Blast.js</a> - Spoiler: it's a text manipulation library</li>
<li><a class="underline" href="http://tech.pro/tutorial/2074/nodejs-managing-child-processes">Node.js: managing child processes</a></li>
<li><a class="underline" href="http://noflojs.org/documentation/">Getting started with NoFlo</a> - Nodes in Node.js</li>
<li><a class="underline" href="http://trevorburnham.com/presentations/flow-control-with-promises/">Flow Control With Promises</a></li>
<li><a class="underline" href="https://speakerdeck.com/addyosmani/javascript-memory-management-masterclass">JavaScript Memory Management Masterclass</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://gulpfiction.divshot.io/">Gulp Fiction</a> - Better than Pulp Fiction?</li>
<li><a class="underline" href="http://css-tricks.com/mega-list-svg-information/">A Compendium of SVG Information</a></li>
<li><a class="underline" href="https://speakerdeck.com/ariya/javascript-api-hall-of-shame">JavaScript API Hall of Shame</a> - Shame on you JS, shame on you</li>
<li><a class="underline" href="https://docs.google.com/presentation/d/1afMLTCpRxhJpurQ97VBHCZkLbR1TEsRnd3yyxuSQ5YY/preview#slide=id.p">React vs. Ember</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://davidwalsh.name/track-errors-google-analytics">Track Errors with Google Analytics</a></li>
<li><a class="underline" href="http://www.sitepoint.com/10-tips-make-node-js-web-app-faster/">10 Tips to Make Your Node.js Web App Faster</a></li>
<li><a class="underline" href="http://miromannino.com/projects/justified-gallery/">Justified Gallery</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.code-love.com/2014/09/09/plunker/">http://www.code-love.com/2014/09/09/plunker/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.code-love.com/2014/09/09/plunker/">Plunker: Open Editor Perfect for Angular.js</a></li>
<li><a class="underline" href="http://www.infoworld.com/article/2606724/javascript/161868-11-essential-JavaScript-tools-for-Web-developers.html">11 essential JavaScript tools for Web developers</a></li>
<li><a class="underline" href="http://codegeekz.com/20-fresh-javascript-tools-developers/">20 Fresh JavaScript Tools for Developers</a></li>
<li><a class="underline" href="http://gravit.io/">Gravit – unlock your design potential.</a> - Design tool. Yup.</li>
<li><a class="underline" href="https://github.com/slap-editor/slap">slap-editor/slap</a> - Sublimeish editor written in JS</li>
</ul>
]]></content></entry><entry><title>JSter #29: News of August 2014 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-august-2014-part-2"></link><id>monthly-jster-august-2014-part-2</id><published>2014-09-01T01:58:16.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript is like ice cream. Super yummy in small doses. Extremely painful in large quantities - @beders</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://yahooeng.tumblr.com/post/96098168666/important-announcement-regarding-yui">http://yahooeng.tumblr.com/post/96098168666/important-announcement-regarding-yui</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://yahooeng.tumblr.com/post/96098168666/important-announcement-regarding-yui">YUI is Retiring</a></li>
<li><a class="underline" href="http://www.airpair.com/js/javascript-framework-comparison">AngularJS vs. Backbone.js vs. Ember.js</a></li>
<li><a class="underline" href="http://rileyjshaw.com/sweep/">sweep.js</a> - Nice color transitions</li>
<li><a class="underline" href="http://mcluck90.github.io/psykick2d/">Psykick2D</a> - HTML5 game engine built with performance and usability in mind</li>
<li><a class="underline" href="http://p5js.org/">p5.js</a> - Alternative to Processing</li>
<li><a class="underline" href="http://blog.stevensanderson.com/2014/08/18/knockout-3-2-0-released/">Knockout 3.2.0 released</a></li>
<li><a class="underline" href="https://github.com/Raynos/mercury">Raynos/mercury</a> - A truly modular frontend framework</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.developerdrive.com/2014/08/10-essential-javascript-resources-for-html5/">http://www.developerdrive.com/2014/08/10-essential-javascript-resources-for-html5/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.developerdrive.com/2014/08/10-essential-javascript-resources-for-html5/">10 essential JavaScript resources for HTML5</a></li>
<li><a class="underline" href="http://charlieharvey.org.uk/page/javascript_the_weird_parts">Javascript: the weird parts -- Charlie Harvey</a></li>
<li><a class="underline" href="http://codeloveandboards.com/blog/2014/08/24/rails-and-react-i-a-happy-medium/">Rails and React I: A happy medium</a></li>
<li><a class="underline" href="http://blog.andyet.com/2014/08/13/opinionated-rundown-of-js-frameworks">Opinionated Rundown of JS Frameworks</a></li>
<li><a class="underline" href="http://blog.npmjs.org/post/94662089625/the-future-of-the-npm-website-lets-map-this-road">The future of NPM website</a></li>
<li><a class="underline" href="http://www.sitepoint.com/3-new-javascript-apis-may-want-follow/">3 New JavaScript APIs You May Want to Follow</a></li>
<li><a class="underline" href="http://codecondo.com/7-minimal-node-js-web-frameworks">7 Minimal Node.js Web Frameworks for 2014 and Beyond</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://bjorn.tipling.com/advanced-objects-in-javascript">http://bjorn.tipling.com/advanced-objects-in-javascript</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://bjorn.tipling.com/advanced-objects-in-javascript">Advanced objects in JavaScript</a></li>
<li><a class="underline" href="http://css-tricks.com/add-page-transitions-css-smoothstate-js/">How To Add Page Transitions with CSS and smoothState.js</a></li>
<li><a class="underline" href="http://moduscreate.com/better-builds-begin-with-broccoli/">Better Builds Begin with Broccoli</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/bevacqua/js/">A JavaScript Quality Guide</a></li>
<li><a class="underline" href="http://easings.net/">Easing Functions Cheat Sheet</a></li>
<li><a class="underline" href="http://jstherightway.org/">JS: The Right Way</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<p>{{ screenshot: <a class="underline" href="https://hacks.mozilla.org/2014/08/black-box-driven-development-in-javascript/">https://hacks.mozilla.org/2014/08/black-box-driven-development-in-javascript/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2014/08/black-box-driven-development-in-javascript/">Black Box Driven Development in JavaScript</a></li>
<li><a class="underline" href="http://www.code-experience.com/async-requests-with-react-js-and-flux-revisited/">Async requests with React.js and Flux, revisited.</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2014/08/browserify-and-gulp-with-react/">Browserify and Gulp with React</a></li>
<li><a class="underline" href="http://blog.keithclark.co.uk/pure-css-parallax-websites/">Pure CSS parallax scrolling websites</a></li>
<li><a class="underline" href="http://projects.lukehaas.me/css-loaders/">Single Element CSS Spinners</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://wagnerandrade.github.io/old-school-racing/">Old school racing</a></li>
<li><a class="underline" href="http://blogs.unity3d.com/2014/08/14/building-and-maintaining-value-for-developers/">WebGL available in Unity for free</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://experiments.wemakesites.net/html5-web-components.html">HTML5 Web Components and Custom Tags, built with X-Tags, Polymer or Pure JavaScript by Martin Ivanov (@wemakesitesnet)</a></li>
<li><a class="underline" href="https://github.com/danielstjules/pjs">danielstjules/pjs</a> - Pipeable javascript. Quickly filter, map, and reduce from the terminal</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://acko.net/files/pres/siggraph-2014-bof/online.html">MathBox²</a></li>
</ul>
]]></content></entry><entry><title>JSter #28: News of August 2014 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-august-2014-part-1"></link><id>monthly-jster-august-2014-part-1</id><published>2014-08-16T12:33:01.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Just JS it.</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://trackingjs.com/">http://trackingjs.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://trackingjs.com/">tracking.js</a> - A modern approach for Computer Vision on the web</li>
<li><a class="underline" href="http://antimatter15.com/ocrad.js/demo.html">Ocrad.js</a> - OCR for JS</li>
<li><a class="underline" href="https://github.com/facebook/immutable-js">facebook/immutable-js</a> - Immutable data structures</li>
<li><a class="underline" href="http://realm.io/">Realm - A mobile database</a></li>
<li><a class="underline" href="http://brm.io/matter-js/">Matter.js - 2D physics engine</a></li>
<li><a class="underline" href="https://airbnb.github.io/infinity/">Infinity.js</a></li>
</ul>
<a href="#competitions"><h2 class="inline" id="competitions">Competitions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://js13kgames.com/">js13k - 2014 edition</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.binpress.com/blog/2014/06/26/polymer-vs-angular/">http://www.binpress.com/blog/2014/06/26/polymer-vs-angular/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.binpress.com/blog/2014/06/26/polymer-vs-angular/">Here's the difference between Polymer and Angular</a></li>
<li><a class="underline" href="http://www.funnyant.com/reactjs-what-is-it/">React.js and How Does It Fit In With Everything Else?</a></li>
<li><a class="underline" href="http://www.smashingmagazine.com/2014/07/02/dont-be-scared-of-functional-programming/">Don't Be Scared Of Functional Programming</a></li>
<li><a class="underline" href="http://techcitynews.com/2014/07/24/is-javascript-here-to-stay/">Is JavaScript here to stay?</a></li>
<li><a class="underline" href="http://blog.testomato.com/dark-side-javascript/">The Dark Side of JavaScript</a></li>
<li><a class="underline" href="http://www.toptal.com/javascript/interview-questions">16 Great JavaScript Interview Questions and Answers</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://toddmotto.com/opinionated-angular-js-styleguide-for-teams/">Opinionated AngularJS styleguide for teams</a></li>
<li><a class="underline" href="http://youmightnotneedjquery.com/">You Might Not Need jQuery</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<p>{{ screenshot: <a class="underline" href="http://journal.stuffwithstuff.com/2014/07/15/a-turn-based-game-loop/">http://journal.stuffwithstuff.com/2014/07/15/a-turn-based-game-loop/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://journal.stuffwithstuff.com/2014/07/15/a-turn-based-game-loop/">A Turn-Based Game Loop</a></li>
<li><a class="underline" href="http://tech.beatport.com/2014/web-audio/beat-detection-using-web-audio/">Beat Detection Using JavaScript and the Web Audio API</a></li>
<li><a class="underline" href="https://www.campaignmonitor.com/blog/post/4240/creating-a-centred-responsive-design-without-media-queries">Creating a centered, responsive design without media queries</a></li>
<li><a class="underline" href="http://jaketrent.com/post/set-state-in-callbacks-in-react/">Set State in Callbacks in React</a></li>
<li><a class="underline" href="http://css-tricks.com/authoring-critical-fold-css/">Authoring Critical Fold CSS</a></li>
<li><a class="underline" href="https://medium.com/@quasado/common-pitfalls-with-html5-drag-n-drop-api-9f011a09ee6c">Common Pitfalls with the HTML5 Drag‘n’Drop API</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://textik.com/">Textik - ASCII Art Editor</a></li>
<li><a class="underline" href="https://anijs.github.io/studio/">AniJS Studio, Easy web animation prototypes everywhere</a></li>
<li><a class="underline" href="https://github.com/peter/jsonapitest">peter/jsonapitest</a> - Test your APIs</li>
</ul>
]]></content></entry><entry><title>JSter #27: News of July 2014 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-july-2014-part-2"></link><id>monthly-jster-july-2014-part-2</id><published>2014-08-01T09:55:18.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>All JS and no fun makes Jack a dull boy</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="https://afarkas.github.io/webshim/demos/">https://afarkas.github.io/webshim/demos/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://afarkas.github.io/webshim/demos/">Webshim</a> - A collection of shims</li>
<li><a class="underline" href="https://khan.github.io/react-components/">React Components by Khan Academy</a></li>
<li><a class="underline" href="http://tholman.com/intense-images/">Intense Images</a> - View images fully in full screen</li>
<li><a class="underline" href="https://github.com/simov/purest">simov/purest</a> - REST API client</li>
<li><a class="underline" href="https://holloway.github.io/ripple/">RippleButtons.js</a></li>
<li><a class="underline" href="https://github.com/tshr/navi">tshr/navi</a> - Simple object listener / notification system</li>
<li><a class="underline" href="https://hassankhan.github.io/emojify.js/">emojify.js</a> - For all you emos out there</li>
<li><a class="underline" href="https://github.com/ChrisAntaki/typesjs">typesjs</a> - Easy type checking</li>
<li><a class="underline" href="https://facebook.github.io/react/blog/2014/07/25/react-v0.11.1.html">React v0.11.1</a></li>
<li><a class="underline" href="http://www.checkman.io/please/">please.js</a> - Random pleasing colors</li>
<li><a class="underline" href="http://jackdcrawford.github.io/five/">Five.js by jackdcrawford</a> - High five!</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="https://www.joyent.com/blog/risingstack-writing-testable-apis-the-basics">https://www.joyent.com/blog/risingstack-writing-testable-apis-the-basics</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.joyent.com/blog/risingstack-writing-testable-apis-the-basics">Writing Testable HTTP APIs Using Node.js</a></li>
<li><a class="underline" href="http://www.ibm.com/developerworks/library/wa-famous/index.html">Create high-performance mobile UIs with Famo.us</a></li>
<li><a class="underline" href="http://es6rocks.com/2014/07/es6-interview-with-david-herman/">ES6 interview with David Herman</a></li>
<li><a class="underline" href="http://juliepagano.com/blog/2014/05/18/javascript-debugging-for-beginners/">JavaScript Debugging for Beginners</a></li>
<li><a class="underline" href="http://www.toptal.com/javascript/10-most-common-javascript-mistakes#.">10 Common JavaScript Coding Errors</a></li>
<li><a class="underline" href="http://www.creativebloq.com/web-design/examples-of-javascript-1233964">42 Top Examples of JavaScript</a></li>
<li><a class="underline" href="http://zombiecodekill.com/2014/07/12/the-future-is-javascript-only-less-terrible/">The Future is JavaScript, Only Less Terrible</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.codeproject.com/Articles/788325/HTML-Chat-with-AngularJs-Spike-Engine-and-Twitter">HTML5 Chat with AngularJs, Spike Engine and Twitter Bootstrap</a></li>
<li><a class="underline" href="http://krasimirtsonev.com/blog/article/Javascript-template-engine-in-just-20-line">JavaScript Template Engine in Just 20 Lines</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<p>{{ screenshot: <a class="underline" href="http://journal.gentlenode.com/node-2-node-js-cheatsheet/">http://journal.gentlenode.com/node-2-node-js-cheatsheet/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://journal.gentlenode.com/node-2-node-js-cheatsheet/">Node Cheatsheet</a></li>
<li><a class="underline" href="https://www.discovermeteor.com/">Discover Meteor</a></li>
<li><a class="underline" href="http://ihatetomatoes.net/guide-scrolling-animation-libraries/">The Guide to Scrolling Animation Libraries</a></li>
<li><a class="underline" href="https://github.com/sindresorhus/awesome-nodejs">sindresorhus/awesome-nodejs</a> - A curated list of delightful Node.js packages and resources</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<p>{{ screenshot: <a class="underline" href="http://journal.crushlovely.com/post/91371788978/7-patterns-to-refactor-javascript-applications-policy">http://journal.crushlovely.com/post/91371788978/7-patterns-to-refactor-javascript-applications-policy</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://journal.crushlovely.com/post/91371788978/7-patterns-to-refactor-javascript-applications-policy">7 Patterns to Refactor JavaScript Applications</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2014/07/adding-captions-and-subtitles-to-html5-video/">Adding captions and subtitles to HTML5 video</a></li>
<li><a class="underline" href="http://slides.com/bradoyler/nodejs-content-sites">Content Sites Using Node.js - Slides</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://ahineya.github.io/">JS Robot</a> - JavaScript challenges</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/SlexAxton/css-colorguard">SlexAxton/css-colorguard</a></li>
</ul>
]]></content></entry><entry><title>JSter #26: News of July 2014 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-july-2014-part-1"></link><id>monthly-jster-july-2014-part-1</id><published>2014-07-16T12:49:35.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>World Cup done, time to code some JS.</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://rubaxa.github.io/Ply/">http://rubaxa.github.io/Ply/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://rubaxa.github.io/Ply/">Ply</a> - Nice alerts</li>
<li><a class="underline" href="https://github.com/krasimir/gifffer">krasimir/gifffer</a> - Prevent autoplaying of GIFs</li>
<li><a class="underline" href="http://nimbly.github.io/angular-formly/">Formly for Angular</a> - JSON Schema forms with Angular</li>
<li><a class="underline" href="https://github.com/AppliedMathematicsANU/plexus-form">AppliedMathematicsANU/plexus-form</a> - JSON Schema forms with React</li>
<li><a class="underline" href="http://kristopolous.github.io/BOOTSTRA.386/">Bootsta.386</a></li>
<li><a class="underline" href="http://bouncejs.com/">Bounce.js</a></li>
<li><a class="underline" href="http://fastly.github.io/epoch/">Epoch by Fastly</a> - Real-time charting</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://blog.jquery.com/2014/07/03/dont-use-jquery-latest-js/">http://blog.jquery.com/2014/07/03/dont-use-jquery-latest-js/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.jquery.com/2014/07/03/dont-use-jquery-latest-js/">Don’t Use jquery-latest.js</a></li>
<li><a class="underline" href="http://www.smashingmagazine.com/2014/07/08/breakpoints-and-the-future-websites/">Breakpoints And The Future Of Websites</a></li>
<li><a class="underline" href="https://medium.com/prezi-engineering/how-and-why-prezi-turned-to-javascript-56e0ca57d135">How and why Prezi turned to JavaScript</a></li>
<li><a class="underline" href="http://www.nixtu.info/2014/07/how-i-learned-to-stop-worrying-and-love.html">How @bebraw Learned to Stop Worrying and Love React</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://designmodo.com/svg-patterns/">http://designmodo.com/svg-patterns/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://designmodo.com/svg-patterns/">How to Use SVG Patterns</a></li>
<li><a class="underline" href="http://webdesignporto.com/react-js-an-interactive-tutorial-to-get-started/">React.js: an interactive tutorial to get started</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.sitepoint.com/complete-guide-reducing-page-weight/">http://www.sitepoint.com/complete-guide-reducing-page-weight/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.sitepoint.com/complete-guide-reducing-page-weight/">The Complete Guide to Reducing Page Weight</a></li>
<li><a class="underline" href="http://simpl.info/">simpl.info</a> - Simplest possible examples of JS, HTML and CSS</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.html5rocks.com/en/tutorials/speed/v8/">http://www.html5rocks.com/en/tutorials/speed/v8/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.html5rocks.com/en/tutorials/speed/v8/">Performance Tips for JavaScript in V8</a></li>
<li><a class="underline" href="http://creative-punch.net/2014/02/responsive-gallery-directional-aware-hover/">Responsive gallery with directional-aware hover</a></li>
<li><a class="underline" href="http://rog.ie/blog/css-star-rater">CSS: Star Rater</a></li>
<li><a class="underline" href="http://jlongster.com/Compiling-JSX-with-Sweet.js-using-Readtables">Compiling JSX with Sweet.js using Readtables</a></li>
<li><a class="underline" href="http://bennettfeely.com/gradients/">CSS Gradients with background-blend-mode</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://breach.cc/">http://breach.cc/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jsonresume.org/">Json Resume</a></li>
<li><a class="underline" href="http://breach.cc/">Breach</a> - A browser for the HTML5 era</li>
<li><a class="underline" href="http://www.dirtymarkup.com/">Dirty Markup</a> - Cleans dirty markup</li>
<li><a class="underline" href="http://code.tutsplus.com/tutorials/debjs-the-tiniest-debugger-in-the-world--cms-21565">Deb.js: the Tiniest Debugger in the World</a></li>
<li><a class="underline" href="http://qrohlf.com/trianglify/">Trianglify by @qrohlf</a> - Triangle backgrounds</li>
</ul>
<a href="#videos"><h2 class="inline" id="videos">Videos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="bolshchikov/js-must-watch">bolshchikov/js-must-watch</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://3d.cl3ver.com/16l9j5">The Lifecycle of the HIV virus</a></li>
<li><a class="underline" href="http://codepen.io/noahblon/pen/CsxfH">3D CSS Typography</a></li>
<li><a class="underline" href="http://aelgru.github.io/">Visual Experiments</a></li>
</ul>
]]></content></entry><entry><title>JSter #25: News of June 2014 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-june-2014-part-2"></link><id>monthly-jster-june-2014-part-2</id><published>2014-07-01T05:57:56.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Summer of JavaScript</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://getspringy.com/">http://getspringy.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/codemix/fast.js">codemix/fast.js</a></li>
<li><a class="underline" href="http://stringjs.com/">string.js</a></li>
<li><a class="underline" href="http://visible.io/">D4</a> - D3 evolved.</li>
<li><a class="underline" href="http://getspringy.com/">Springy</a> - A force directed graph layout algorithm</li>
<li><a class="underline" href="http://www.collectionsjs.com/">Collections for JavaScript</a></li>
<li><a class="underline" href="http://minfwk.com/">min</a> - Tiny CSS framework</li>
<li><a class="underline" href="http://octicons.github.com/">Octicons</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://arstechnica.com/information-technology/2014/06/mozilla-puts-a-development-environment-into-the-browser-with-webide/">http://arstechnica.com/information-technology/2014/06/mozilla-puts-a-development-environment-into-the-browser-with-webide/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://arstechnica.com/information-technology/2014/06/mozilla-puts-a-development-environment-into-the-browser-with-webide/">Mozilla puts a development environment into the browser with WebIDE</a></li>
<li><a class="underline" href="https://thenewcircle.com/s/post/1468/hey_underscore_you_are_doing_it_wrong_brian_lonsdorf">Hey Underscore, You're Doing It Wrong!</a></li>
<li><a class="underline" href="http://fr.umio.us/why-ramda/">Why Ramda?</a> - Why underscore is so oldskool?</li>
<li><a class="underline" href="http://substack.net/weaning_yourself_off_jquery">weaning yourself off jquery</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://bocoup.com/weblog/building-command-line-tools-in-node-with-liftoff/">http://bocoup.com/weblog/building-command-line-tools-in-node-with-liftoff/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://bocoup.com/weblog/building-command-line-tools-in-node-with-liftoff/">Building Command Line Tools in Node with Liftoff</a></li>
<li><a class="underline" href="http://codepen.io/rachsmith/blog/controlling-the-canvas-with-javascript-objects">Controlling the Canvas with JavaScript Objects by Rachel Smith on CodePen</a></li>
<li><a class="underline" href="http://teropa.info/blog/2013/11/03/make-your-own-angular-part-1-scopes-and-digest.html">Make Your Own AngularJS, Part 1: Scopes And Digest</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<p>{{ screenshot: <a class="underline" href="http://kiro.me/blog/typeof_nan.html">http://kiro.me/blog/typeof_nan.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://gist.github.com/staltz/868e7e9bc2a7b8c1f754">The introduction to Reactive Programming you've been missing</a></li>
<li><a class="underline" href="http://kiro.me/blog/typeof_nan.html">NaN and typeof</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2014/06/introducing-the-web-audio-editor-in-firefox-developer-tools/">Introducing the Web Audio Editor in Firefox Developer Tools</a></li>
<li><a class="underline" href="https://github.com/substack/browserify-handbook">substack/browserify-handbook</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<p>{{ screenshot: <a class="underline" href="http://fr.umio.us/favoring-curry/">http://fr.umio.us/favoring-curry/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://fr.umio.us/favoring-curry/">Favoring Curry</a></li>
<li><a class="underline" href="http://toddmotto.com/minimal-angular-module-syntax-approach-using-an-iife/">Minimal Angular module/syntax approach using an IIFE</a></li>
<li><a class="underline" href="http://css-tricks.com/prefill-forms-dev/">Prefill Your Own Forms in Dev</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="https://developers.google.com/web/starter-kit/">https://developers.google.com/web/starter-kit/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://worldcup.sfg.io/">World Cup...in JSON</a></li>
<li><a class="underline" href="https://developers.google.com/web/starter-kit/">Web Starter Kit</a></li>
<li><a class="underline" href="http://wavepot.com/">wavepot</a> - The audio editor you have been missing.</li>
<li><a class="underline" href="http://ki-lang.org/">ki</a> - A lisp for your JavaScript</li>
<li><a class="underline" href="https://github.com/m59peacemaker/JavaScript.HardcoreMode">m59peacemaker/JavaScript.HardcoreMode</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<p>{{ screenshot: <a class="underline" href="http://pattle.github.io/simpsons-in-css/">http://pattle.github.io/simpsons-in-css/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://pattle.github.io/simpsons-in-css/">The Simpsons in CSS</a></li>
<li><a class="underline" href="http://www.alexras.info/code/orbital_objects/">WebGL Globe</a></li>
<li><a class="underline" href="http://codepen.io/christopheschwyzer/pen/htvdE">CSS3 Waving Flags</a></li>
</ul>
]]></content></entry><entry><title>JSter #24: News of June 2014 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-june-2014-part-1"></link><id>monthly-jster-june-2014-part-1</id><published>2014-06-16T05:45:06.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Sometimes you JS it, sometimes you don't</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://acidmartin.wordpress.com/2013/05/12/css3-reflections-enabler-javascript-class/">http://acidmartin.wordpress.com/2013/05/12/css3-reflections-enabler-javascript-class/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://acidmartin.wordpress.com/2013/05/12/css3-reflections-enabler-javascript-class/">CSS3 Image Reflections Enabler JavaScript Class</a></li>
<li><a class="underline" href="https://github.com/Selmanh/angularjs-form-builder">Selmanh/angularjs-form-builder</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2014/06/playcanvas-goes-open-source/">PlayCanvas Goes Open Source</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://tutorialzine.com/2014/06/10-tips-for-writing-javascript-without-jquery/">http://tutorialzine.com/2014/06/10-tips-for-writing-javascript-without-jquery/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://tutorialzine.com/2014/06/10-tips-for-writing-javascript-without-jquery/">10 Tips for Writing JavaScript without jQuery</a></li>
<li><a class="underline" href="http://derickbailey.com/2014/06/10/browserify-my-new-choice-for-modules-in-a-browser-backbone-app/">Browserify: My New Choice For Modules In A Browser / Backbone App</a></li>
<li><a class="underline" href="http://blog.codeclimate.com/blog/2014/06/05/choose-protocol-buffers/">5 Reasons to Use Protocol Buffers Instead of JSON For Your Next Service</a></li>
<li><a class="underline" href="http://patriciopalladino.com/blog/2012/08/09/non-alphanumeric-javascript.html">Brainfuck beware: JavaScript is after you!</a></li>
<li><a class="underline" href="http://code.tutsplus.com/tutorials/sharing-polymer-components-part-1--cms-21264">Sharing Polymer Components: Part 1</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.sitepoint.com/getting-started-browserify/">http://www.sitepoint.com/getting-started-browserify/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.ordinaryrobot.com/posts/throttle-function">Writing a Throttle Function</a></li>
<li><a class="underline" href="http://www.sitepoint.com/getting-started-browserify/">Getting Started with Browserify</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2014/06/easy-audio-capture-with-the-mediarecorder-api/">Easy audio capture with the MediaRecorder API</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<p>{{ screenshot: <a class="underline" href="http://codersblock.com/blog/multi-threaded-javascript-with-web-workers/">http://codersblock.com/blog/multi-threaded-javascript-with-web-workers/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://codepen.io/collection/whFob/">Adaptive, liquid image techniques for RWD</a></li>
<li><a class="underline" href="http://jsperf.com/new-with-prototype-vs-return-object">new with prototype vs return object</a></li>
<li><a class="underline" href="http://codersblock.com/blog/multi-threaded-javascript-with-web-workers/">Multi-Threaded JavaScript with Web Workers</a></li>
<li><a class="underline" href="https://github.com/JustinDrake/node-es6-examples">JustinDrake/node-es6-examples</a></li>
<li><a class="underline" href="http://krasimirtsonev.com/blog/article/Sorry-Chrome-killed-the-terminal">Sorry, Chrome killed the terminal</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<p>{{ screenshot: <a class="underline" href="http://code.tutsplus.com/articles/resources-for-staying-on-top-of-javascript--cms-21369">http://code.tutsplus.com/articles/resources-for-staying-on-top-of-javascript--cms-21369</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://code.tutsplus.com/articles/resources-for-staying-on-top-of-javascript--cms-21369">Resources for Staying on Top of JavaScript</a></li>
<li><a class="underline" href="https://gist.github.com/airportyh/8b29434a52a2eebf08d2">JSConf 2014 Slides, Codes and Notes.</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://jsnice.org/">http://jsnice.org/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://dogeon.org/">DSON</a> - Not enough doge yet?</li>
<li><a class="underline" href="http://jsnice.org/">JS NICE</a> - Statistical renaming, Type inference and Deobfuscation</li>
<li><a class="underline" href="http://www.youtube.com/watch?v=djQh8XKRzRg&feature=youtu.be">Introducing the Polymer Designer tool</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.playfuljs.com/a-first-person-engine-in-265-lines/">http://www.playfuljs.com/a-first-person-engine-in-265-lines/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://minghai.github.io/MarioSequencer/">Mario Sequencer</a></li>
<li><a class="underline" href="http://www.playfuljs.com/a-first-person-engine-in-265-lines/">A first-person engine in 265 lines</a></li>
</ul>
]]></content></entry><entry><title>JSter #23: News of May 2014 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-may-2014-part-2"></link><id>monthly-jster-may-2014-part-2</id><published>2014-06-03T05:09:34.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>The book Javascript Ninja has a Samurai on the cover. That happens because JS is not strongly typed.</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://blog.purecss.io/post/87107938596/pure-0-5-0">http://blog.purecss.io/post/87107938596/pure-0-5-0</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.purecss.io/post/87107938596/pure-0-5-0">Pure 0.5.0</a> - Light alternative to Bootstrap and Foundation.</li>
<li><a class="underline" href="http://socket.io/blog/introducing-socket-io-1-0/">Socket.IO 1.0</a></li>
<li><a class="underline" href="http://mootools.net/blog/2014/05/19/mootools-1-5-is-here/">MooTools 1.5</a></li>
<li><a class="underline" href="http://www.devbetas.com/2014/05/12/emberui-alpha/">EmberUI Alpha</a></li>
<li><a class="underline" href="http://codegeekz.com/10-best-javascript-libraries-for-may-2014/">10 Best JavaScript Libraries for May 2014</a></li>
<li><a class="underline" href="http://fluxxor.com/">Fluxxor</a> - Get started with your React/Flux app!</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://css-tricks.com/dangers-stopping-event-propagation/">http://css-tricks.com/dangers-stopping-event-propagation/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://engineering.gosquared.com/10-vital-aspects-of-building-a-node-js-application">10 Vital Aspects of Building a Node.JS Application</a></li>
<li><a class="underline" href="http://differential.io/blog/meteor-vs-angular">Meteor vs. Angular</a></li>
<li><a class="underline" href="http://css-tricks.com/dangers-stopping-event-propagation/">The Dangers of Stopping Event Propagation</a></li>
<li><a class="underline" href="https://medium.com/on-coding/understanding-flux-f93e9f650af7">Understanding Flux</a></li>
<li><a class="underline" href="http://leaky.me/javascript-closures/">Javascript Closures for a 6 year old</a></li>
<li><a class="underline" href="http://jlongster.com/Removing-User-Interface-Complexity,-or-Why-React-is-Awesome">Removing User Interface Complexity, or Why React is Awesome</a></li>
<li><a class="underline" href="http://bitworking.org/news/2014/05/zero_framework_manifesto">No more JS frameworks</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<p>{{ screenshot: <a class="underline" href="https://developers.google.com/web/fundamentals/">https://developers.google.com/web/fundamentals/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://glsl.io/">GLSL.io – Open Collection of GLSL Transitions</a></li>
<li><a class="underline" href="http://www.restapitutorial.com/httpstatuscodes.html">HTTP Status Codes</a></li>
<li><a class="underline" href="https://developers.google.com/web/fundamentals/">Web Fundamentals</a></li>
<li><a class="underline" href="http://www.thinkster.io/angularjs/GtaQ0oMGIl/a-better-way-to-learn-angularjs">A Better Way to Learn AngularJS</a></li>
</ul>
<a href="#books"><h2 class="inline" id="books">Books</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://tcorral.github.io/javascript-challenges-book/">JavaScript Challenges</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<p>{{ screenshot: <a class="underline" href="http://kolodny.github.io/blog/blog/2014/05/19/unoptimize-devtools-for-easy-debugging/">http://kolodny.github.io/blog/blog/2014/05/19/unoptimize-devtools-for-easy-debugging/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://medium.com/opinionated-angularjs/7bbf0346acec">Techniques for authentication in AngularJS applications</a></li>
<li><a class="underline" href="http://kolodny.github.io/blog/blog/2014/05/19/unoptimize-devtools-for-easy-debugging/">Unoptimize V8 for Easy Debugging</a></li>
<li><a class="underline" href="http://webapplog.com/migrating-express-js-3-x-to-4-x-middleware-route-and-other-changes/">Migrating Express.js 3.x to 4.x: Middleware, Route and Other Changes</a></li>
<li><a class="underline" href="http://blog.pics.io/sneak-peeks/in-browser-raw-processing-how-we-did-it/">In-browser RAW Processing: How We Did It</a></li>
<li><a class="underline" href="http://joshbassett.info/2014/reactive-uis-with-react-and-bacon/">Reactive UIs with React & Bacon</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://managore.itch.io/sunandmoon">The Sun And Moon by Daniel Linssen</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://facebook.github.io/fb-flo/">http://facebook.github.io/fb-flo/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/epeli/angry-caching-proxy">epeli/angry-caching-proxy</a></li>
<li><a class="underline" href="http://blog.nodejitsu.com/npmawesome-full-stack-traces-with-longjohn/">npmawesome: Full stack traces with longjohn</a></li>
<li><a class="underline" href="http://www.bootply.com/">Bootstrap Editor and Playground for JavaScript, CSS, HTML5 and jQuery.</a></li>
<li><a class="underline" href="http://facebook.github.io/fb-flo/">fb-flo</a> - Like LiveReload but better.</li>
<li><a class="underline" href="https://github.com/mozilla/scanjs">mozilla/scanjs</a> - Static analysis.</li>
<li><a class="underline" href="https://github.com/zeke/package-json-to-readme#readme">zeke/package-json-to-readme</a></li>
</ul>
<a href="#competitions"><h2 class="inline" id="competitions">Competitions</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://hola.org/challenge_js">JavaScript code challenge</a> - Make strftime 50x faster than original JS and win some cash.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.playfuljs.com/realistic-terrain-in-130-lines/">http://www.playfuljs.com/realistic-terrain-in-130-lines/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.khanacademy.org/cs/chubby-cat-3-d-practice-run/6223183463055360">Chubby Cat 3-D Practice Run</a></li>
<li><a class="underline" href="http://drum.rory.ie/">ng-drum</a></li>
<li><a class="underline" href="http://www.evolutionoftheweb.com/">The Evolution of the Web</a></li>
<li><a class="underline" href="http://www.playfuljs.com/realistic-terrain-in-130-lines/">Realistic terrain in 130 lines</a></li>
</ul>
]]></content></entry><entry><title>JSter #22: News of May 2014 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-may-2014-part-1"></link><id>monthly-jster-may-2014-part-1</id><published>2014-05-15T10:12:14.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript - The joke's on you.</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://quilljs.com/">http://quilljs.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://quilljs.com/">Quill</a> - WYSIWYG editor with plugin architecture</li>
<li><a class="underline" href="http://bilalq.github.io/eight-bit-color-picker/">Eight Bit Color Picker</a></li>
<li><a class="underline" href="http://briangonzalez.github.io/jquery.adaptive-backgrounds.js/">jquery.adaptive-backgrounds.js</a> - A jQuery plugin for extracting dominant colors from images and applying it to its parent</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="https://hacks.mozilla.org/2014/05/how-fast-is-pdf-js/">https://hacks.mozilla.org/2014/05/how-fast-is-pdf-js/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2014/05/how-fast-is-pdf-js/">How Fast is PDF.js?</a></li>
<li><a class="underline" href="http://codegeekz.com/best-javascript-tools-2014/">30 Best JavaScript Tools of 2014</a></li>
<li><a class="underline" href="http://redmonk.com/dberkholz/2014/05/02/github-language-trends-and-the-fragmenting-landscape/">GitHub language trends and the fragmenting landscape</a></li>
<li><a class="underline" href="http://www.code-experience.com/why-you-might-not-need-mvc-with-reactjs/">Why you might not need MVC with React.js</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://strongloop.com/strongblog/how-to-generators-node-js-yield-use-cases/">http://strongloop.com/strongblog/how-to-generators-node-js-yield-use-cases/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.hacksparrow.com/understanding-directory-references-in-node-js.html">Understanding Directory References in Node.js</a></li>
<li><a class="underline" href="http://qzaidi.github.io/2013/05/14/node-in-production/">10 Steps to Node.js Nirvana in Production</a></li>
<li><a class="underline" href="http://strongloop.com/strongblog/how-to-generators-node-js-yield-use-cases/">Generators in Node.js: Common Misconceptions and Three Good Use Cases</a></li>
<li><a class="underline" href="http://www.nczonline.net/blog/2014/04/29/creating-type-safe-properties-with-ecmascript-6-proxies/">Creating type-safe properties with ECMAScript 6 proxies</a></li>
<li><a class="underline" href="http://buildmy-site.com/blog/javascript-improving-javascript-performance/">Improving JavaScript Performance</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<p>{{ screenshot: <a class="underline" href="http://blog.codeship.io/2014/05/07/nodejs-beginners-guide.html">http://blog.codeship.io/2014/05/07/nodejs-beginners-guide.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.codeship.io/2014/05/07/nodejs-beginners-guide.html">The Absolute Beginner's Guide to Node.js</a></li>
<li><a class="underline" href="http://www.encoding.com/html5/">HTML5 Video Programming Complete Guide</a></li>
<li><a class="underline" href="https://coderwall.com/p/y0zkiw">Building large apps with AngularJS</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<p>{{ screenshot: <a class="underline" href="http://jonathancreamer.com/an-angular-event-bus-with-postal-js/">http://jonathancreamer.com/an-angular-event-bus-with-postal-js/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/petkaantonov/bluebird/wiki/Optimization-killers">Optimization Killers</a></li>
<li><a class="underline" href="http://davidherron.com/blog/2014-05-04/javascript-doesnt-tell-you-date-object-bad-heres-how-figure-out-crashing-your">JavaScript doesn't tell you the Date object is bad, here's how to figure that out before crashing your program</a></li>
<li><a class="underline" href="https://www.igvita.com/slides/2012/devtools-tips-and-tricks/">DevTools Tips and Tricks</a></li>
<li><a class="underline" href="http://creative-punch.net/2014/03/3D-rotator-using-jquery/">3D rotator using jQuery</a></li>
<li><a class="underline" href="http://jonathancreamer.com/an-angular-event-bus-with-postal-js/">An Angular.js event bus with postal.js</a></li>
<li><a class="underline" href="http://webapplog.com/breaking-bad-loops-in-javascript-libraries/">Breaking Bad (Loops in JavaScript Libraries)</a></li>
</ul>
<a href="#courses"><h2 class="inline" id="courses">Courses</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.codeschool.com/courses/shaping-up-with-angular-js">Shaping Up with Angular.js</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<p>{{ screenshot: <a class="underline" href="https://speakerdeck.com/amasad/javascript-debugging">https://speakerdeck.com/amasad/javascript-debugging</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://speakerdeck.com/amasad/javascript-debugging">JavaScript Debugging</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://flippinawesome.org/2014/05/05/slush-a-better-web-app-scaffolding-tool/">http://flippinawesome.org/2014/05/05/slush-a-better-web-app-scaffolding-tool/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://flippinawesome.org/2014/05/05/slush-a-better-web-app-scaffolding-tool/">Slush – A Better Web App Scaffolding Tool</a></li>
<li><a class="underline" href="https://www.codefellows.org/blogs/complete-list-of-javascript-tools">A List of Foundational JavaScript Tools</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://birdgames.nl/2014/04/js1k-post-mortem-minecraft/">JS1k post-mortem Minecraft</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://codepen.io/redclov3r/pen/bloIh">Pure CSS Under Construction GIF</a></li>
</ul>
]]></content></entry><entry><title>JSter #21: News of April 2014 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-april-2014-part-2"></link><id>monthly-jster-april-2014-part-2</id><published>2014-05-01T13:53:22.000Z</published><content type="text/html"><![CDATA[<blockquote>
<ol class="list-decimal list-inside">
<li>Think of a noun 2. Google <noun>.js 3. If library exists, drink</li>
</ol>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://briangonzalez.github.io/jquery.adaptive-backgrounds.js/">http://briangonzalez.github.io/jquery.adaptive-backgrounds.js/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://briangonzalez.github.io/jquery.adaptive-backgrounds.js/">jquery.adaptive-backgrounds.js</a></li>
<li><a class="underline" href="https://github.com/sahilm/reddit.js">sahilm/reddit.js</a></li>
<li><a class="underline" href="http://ripplejs.github.io/">ripple.js</a> - Reactive components</li>
<li><a class="underline" href="http://newsdev.github.io/pourover/">PourOver</a> - Filter and sort large collections</li>
<li><a class="underline" href="https://github.com/telerik/kendo-ui-core">telerik/kendo-ui-core</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://codeofrob.com/entries/you-have-ruined-javascript.html">http://codeofrob.com/entries/you-have-ruined-javascript.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://codeofrob.com/entries/you-have-ruined-javascript.html">You Have Ruined JavaScript</a></li>
<li><a class="underline" href="http://philipwalton.com/articles/stop-copying-social-code-snippets/">Stop Copying Social Code Snippets</a></li>
<li><a class="underline" href="http://blog.mikie.iki.fi/2014/04/jquery-makes-angularjs-50-slower-on.html">jQuery makes AngularJS 50% slower on an iPhone</a></li>
<li><a class="underline" href="http://strongloop.com/strongblog/comparing-node-js-promises-trycatch-zone-js-angular/">Comparing Node.js Promises, Try/Catch, Angular Zone.js and yes, Zone</a></li>
<li><a class="underline" href="http://developer.telerik.com/featured/seven-javascript-quirks-i-wish-id-known-about/">Seven JavaScript Quirks I Wish I’d Known About</a></li>
<li><a class="underline" href="http://www.bitnative.com/2014/04/14/angularjs-the-de-facto-standard-for-spa-development/">AngularJS: The De Facto Standard for SPA Development?</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://10consulting.com/2014/02/19/d3-plus-reactjs-for-charting/">http://10consulting.com/2014/02/19/d3-plus-reactjs-for-charting/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://10consulting.com/2014/02/19/d3-plus-reactjs-for-charting/">D3 and React</a></li>
<li><a class="underline" href="http://cliffmeyers.com/blog/2013/4/21/code-organization-angularjs-javascript">Code Organization in Large AngularJS and JavaScript Applications</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<p>{{ screenshot: <a class="underline" href="http://survivejs.com/">http://survivejs.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://survivejs.com/">Survive JavaScript</a></li>
<li><a class="underline" href="http://jsrecipes.org/#!/">JS Recipes</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.100percentjs.com/best-way-debug-node-js/">http://www.100percentjs.com/best-way-debug-node-js/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.100percentjs.com/best-way-debug-node-js/">How to debug Node.js? What is the best way to debug Node.js?</a></li>
<li><a class="underline" href="http://css-tricks.com/handling-z-index/">Handling z-index</a></li>
<li><a class="underline" href="http://www.williambrownstreet.net/blog/2014/04/faster-angularjs-rendering-angularjs-and-reactjs/">Faster AngularJS Rendering (AngularJS and ReactJS)</a></li>
<li><a class="underline" href="http://hadihariri.com/2014/04/21/build-make-no-more/">Build Tools - Make, No More</a></li>
<li><a class="underline" href="http://jimmyislive.tumblr.com/post/82901672809/angularjs-and-seo">Angular and SEO</a></li>
<li><a class="underline" href="http://davidwalsh.name/write-javascript-promises">Write Better JavaScript with Promises</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.modern.ie/en-us/virtualization-tools#escape-from-xp">http://www.modern.ie/en-us/virtualization-tools#escape-from-xp</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.modern.ie/en-us/virtualization-tools#escape-from-xp">Escape from XP</a></li>
<li><a class="underline" href="http://humbit.com/gkh/">Golden Krone Hotel</a></li>
<li><a class="underline" href="http://codepen.io/MSchutz/pen/tygdn">Game of Thrones - Quiz</a></li>
<li><a class="underline" href="http://alexnisnevich.github.io/untrusted/">Untrusted</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jackschaedler.github.io/goya/">GoyaPixel</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<p>{{ screenshot: <a class="underline" href="http://dobtco.github.io/formbuilder/">http://dobtco.github.io/formbuilder/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://codepen.io/juliangarnier/pen/idhuG">CSS 3D Solar System</a></li>
<li><a class="underline" href="http://dobtco.github.io/formbuilder/">Form Builder</a></li>
<li><a class="underline" href="http://qrohlf.com/trianglify/">Trianglify by @qrohlf</a></li>
<li><a class="underline" href="http://tympanus.net/Development/SidebarTransitions/">Sidebar Transitions</a></li>
</ul>
]]></content></entry><entry><title>JSter #20: News of April 2014 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-april-2014-part-1"></link><id>monthly-jster-april-2014-part-1</id><published>2014-04-15T06:08:46.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript - There can only be one.</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://snapsvg.io/">http://snapsvg.io/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://snapsvg.io/">Snap.svg</a></li>
<li><a class="underline" href="http://extensionizr.com/">Extensionizr</a> - Write a Chrome plugin in 60 seconds</li>
<li><a class="underline" href="http://msdn.microsoft.com/en-us/windows/dn632015">WinJS: The Windows Library for JavaScript</a></li>
<li><a class="underline" href="https://github.com/nosir/obelisk.js">nosir/obelisk.js</a></li>
<li><a class="underline" href="http://trevorlinton.github.io/webkit.js/demo.html">webkit.js</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://viralpatel.net/blogs/javascript-tips-tricks/">http://viralpatel.net/blogs/javascript-tips-tricks/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://viralpatel.net/blogs/javascript-tips-tricks/">21 JavaScript Tips & Tricks for JavaScript Developers</a></li>
<li><a class="underline" href="http://blogs.adobe.com/webplatform/2014/04/01/new-canvas-features/">New canvas features</a></li>
<li><a class="underline" href="http://techblog.netflix.com/2014/03/going-reactive-asynchronous-javascript.html">The Netflix Tech Blog: Going Reactive</a></li>
<li><a class="underline" href="http://daeken.com/2011-08-31_Superpacking_JS_Demos.html">Superpacking JS Demos – I, Hacker</a></li>
<li><a class="underline" href="http://flippinawesome.org/2014/03/24/string-templating-considered-harmful/">String Templating Considered Harmful</a> - Obligatory "Considered Harmful" article.</li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://creditcardjs.com/credit-card-type-detection">http://creditcardjs.com/credit-card-type-detection</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://creditcardjs.com/credit-card-type-detection">How to correctly detect credit card type</a></li>
<li><a class="underline" href="http://www.html5rocks.com/en/tutorials/developertools/async-call-stack/">Debugging Asynchronous JavaScript with Chrome DevTools</a></li>
<li><a class="underline" href="http://zurb.com/playground/osx-dock">Recreating the OS X Dock</a></li>
<li><a class="underline" href="https://www.ibm.com/developerworks/library/wa-nodejs-app/">Build a sentiment analysis application with Node.js, Express, sentiment and ntwitter</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<p>{{ screenshot: <a class="underline" href="http://blog.sourcing.io/mvc-style-guide">http://blog.sourcing.io/mvc-style-guide</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.sourcing.io/mvc-style-guide">JavaScript MVC Style Guide</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<p>{{ screenshot: <a class="underline" href="http://css-tricks.com/frosting-glass-css-filters/">http://css-tricks.com/frosting-glass-css-filters/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://css-tricks.com/frosting-glass-css-filters/">Frosting Glass with CSS Filters</a></li>
<li><a class="underline" href="http://css-tricks.com/stripes-css/">Stripes in CSS</a></li>
<li><a class="underline" href="http://addyosmani.com/blog/removing-unused-css/">Removing Unused CSS</a></li>
<li><a class="underline" href="https://github.com/yortus/asyncawait/tree/master/comparison">Comparison of async approaches</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://ondras.github.io/goldfish/">Goldfish</a> - Roguelike.</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://pesticide.io/">http://pesticide.io/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://pesticide.io/">Pesticide</a> - CSS debugging made easy.</li>
<li><a class="underline" href="https://github.com/google/tracing-framework">google/tracing</a></li>
<li><a class="underline" href="http://enjoycss.com/">Online CSS3 Code Generator With a Simple Graphical Interface</a></li>
<li><a class="underline" href="https://github.com/t32k/stylestats">t32k/stylestats</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://mattdesl.github.io/impressionist/app/">Impressionist paintings with Canvas</a></li>
<li><a class="underline" href="http://tympanus.net/Development/ProgressButtonStyles/">Progress Button Styles</a></li>
<li><a class="underline" href="http://schweigi.github.io/assembler-simulator/">Simple 8</a></li>
</ul>
]]></content></entry><entry><title>JSter #19: News of March 2014 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-march-2014-part-2"></link><id>monthly-jster-march-2014-part-2</id><published>2014-04-01T04:53:13.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>JavaScript - The Final Frontier</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://linqjs.codeplex.com/">http://linqjs.codeplex.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/marmelab/gremlins.js">gremlins.js - Monkey testing</a></li>
<li><a class="underline" href="http://earwicker.com/carota/">Carota - Rich text editor</a></li>
<li><a class="underline" href="http://linqjs.codeplex.com/">linq.js</a></li>
<li><a class="underline" href="http://colinbookman.com/2014/03/23/micio/">MicIO.js</a></li>
<li><a class="underline" href="http://josscrowcroft.github.io/accounting.js/">accounting.js</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="https://hacks.mozilla.org/2014/03/audio-tags-web-components-web-audio-%E2%99%A5/">https://hacks.mozilla.org/2014/03/audio-tags-web-components-web-audio-%E2%99%A5/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2014/03/audio-tags-web-components-web-audio-%E2%99%A5/">Audio Tags: Web Components + Web Audio = ♥</a></li>
<li><a class="underline" href="http://blog.falafel.com/Blogs/BasemEmara/basem-emara/2014/03/14/the-truth-about-false-in-javascript">The Truth about False in JavaScript</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2014/03/jsdelivr-the-advanced-open-source-public-cdn/">jsDelivr – The advanced open source public CDN</a></li>
<li><a class="underline" href="http://blog.angularjs.org/2014/03/angular-20.html">AngularJS 2.0 - What's in Store?</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://creative-punch.net/2014/02/making-animated-radial-menu-css3-javascript/">http://creative-punch.net/2014/02/making-animated-radial-menu-css3-javascript/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://flukeout.github.io/">CSS Diner</a></li>
<li><a class="underline" href="http://webreflection.blogspot.fi/2014/03/what-books-wont-tell-you-about-es5.html">What Books Didn't Tell You About ES5 Descriptors - Part 1</a></li>
<li><a class="underline" href="http://creative-punch.net/2014/02/making-animated-radial-menu-css3-javascript/">Making an animated radial menu with CSS3 and JavaScript</a></li>
<li><a class="underline" href="http://bacon-game.herokuapp.com/">Learn Your Bacon</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<p>{{ screenshot: <a class="underline" href="http://speakingjs.com/es5/">http://speakingjs.com/es5/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://speakingjs.com/es5/">Speaking JavaScript</a></li>
<li><a class="underline" href="http://wtfhtmlcss.com/">WTF, HTML and CSS?</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<p>{{ screenshot: <a class="underline" href="http://nicolasgallagher.com/custom-css-preprocessing/">http://nicolasgallagher.com/custom-css-preprocessing/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://nicolasgallagher.com/custom-css-preprocessing/">Custom CSS preprocessing</a></li>
<li><a class="underline" href="http://h3manth.com/new/blog/2014/tree-traversal-with-es6-generator/">Tree Traversal with ES6 Generator</a></li>
<li><a class="underline" href="http://engineering.silk.co/post/80056130804/reactive-programming-in-javascript">Reactive Programming in JavaScript</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.lessmilk.com/">http://www.lessmilk.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.lessmilk.com/">Lessmilk - One HTML5 game per week</a></li>
<li><a class="underline" href="http://hexapod.itch.io/nabokos">Nabokos.exe</a></li>
<li><a class="underline" href="http://rezoner.net/labs/limbs/">Limbs Repair Station</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/t32k/stylestats">StyleStats - CSS statistics</a></li>
<li><a class="underline" href="http://btmills.github.io/geopattern/geopattern.html">geopattern</a></li>
<li><a class="underline" href="https://github.com/slate/slate">Slate</a> - IRC client built with Node.js</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<p>{{ screenshot: <a class="underline" href="http://js1k.com/2014-dragons/demos">http://js1k.com/2014-dragons/demos</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://inear.se/urbanjungle/">Urban Jungle Street View</a></li>
<li><a class="underline" href="http://cssdeck.com/labs/css-3d-clouds">CSS 3D Clouds</a></li>
<li><a class="underline" href="http://www.wei-wang.com/ExplainGitWithD3/">Visualizing Git Concepts with D3</a></li>
<li><a class="underline" href="http://js1k.com/2014-dragons/demos">JS1K</a> - There be dragons</li>
<li><a class="underline" href="http://codepen.io/hans/pen/uDmzf">Gradients</a></li>
</ul>
]]></content></entry><entry><title>JSter #18: News of March 2014 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-march-2014-part-1"></link><id>monthly-jster-march-2014-part-1</id><published>2014-03-16T10:41:54.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>Fisherman's favorite MVC framework? ... Angular of course!</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://brunjo.github.io/rowGrid.js/">http://brunjo.github.io/rowGrid.js/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://elrumordelaluz.github.io/csshake/">CSShake</a> - Shaking CSS classes. So jittery.</li>
<li><a class="underline" href="https://github.com/raimohanska/ponyfood.js">ponyfood.js</a> - Vegetarian JavaScript FRP powered by cute ponies</li>
<li><a class="underline" href="http://brunjo.github.io/rowGrid.js/">RowGrid.js</a> - A jQuery plugin for placing items in straight rows.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://krasimirtsonev.com/blog/article/Dependency-injection-in-JavaScript">http://krasimirtsonev.com/blog/article/Dependency-injection-in-JavaScript</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://krasimirtsonev.com/blog/article/Dependency-injection-in-JavaScript">Dependency Injection in JavaScript</a></li>
<li><a class="underline" href="http://bolinfest.com/javascript/misunderstood.html">Frequently Misunderstood JavaScript Concepts</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2014/03/lessons-learnt-building-vizicities/">Lessons learnt building ViziCities</a></li>
<li><a class="underline" href="http://blog.m4nu.co/the-requirejs-itches-and-how-i-scratched-them-with-browserify/">@0mbre's RequireJS Itches and How He Scratched Them Using Browserify</a></li>
<li><a class="underline" href="http://danielhough.co.uk/blog/single-var-pattern-rant/">A criticism of the Single Var Pattern in JavaScript, and a simple alternative</a></li>
</ul>
<a href="#node-js"><h2 class="inline" id="node-js">Node.js</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.infoworld.com/t/javascript/nodejs-arrives-the-jvm-237435">http://www.infoworld.com/t/javascript/nodejs-arrives-the-jvm-237435</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.infoworld.com/t/javascript/nodejs-arrives-the-jvm-237435">Node.js Arrives for the JVM</a></li>
<li><a class="underline" href="http://caolanmcmahon.com/posts/how_i_want_to_write_node_stream_all_the_things_new/">How @caolan Wants to Write Node: Stream All the Things!</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://css-tricks.com/basics-css-blend-modes/">http://css-tricks.com/basics-css-blend-modes/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://css-tricks.com/basics-css-blend-modes/">Basics of CSS Blend Modes</a></li>
<li><a class="underline" href="http://lonely-pixel.com/blog/making-a-particle-engine-using-javascript-part-2">Making a Particle Engine Using JavaScript (part 2)</a></li>
<li><a class="underline" href="http://blog.lessmilk.com/how-to-make-flappy-bird-in-html5-1/">How to Make a Flappy Bird in HTML5 - Part 1</a></li>
<li><a class="underline" href="http://krasimirtsonev.com/blog/article/A-modern-JavaScript-router-in-100-lines-history-api-pushState-hash-url">A modern JavaScript router in 100 lines</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/getify/You-Dont-Know-JS">You Don't Know JS (book series)</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<p>{{ screenshot: <a class="underline" href="http://sdevgame.wordpress.com/2013/08/27/angularjs-drag-n-drop-re-order-in-ngrepeat/">http://sdevgame.wordpress.com/2013/08/27/angularjs-drag-n-drop-re-order-in-ngrepeat/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://sdevgame.wordpress.com/2013/08/27/angularjs-drag-n-drop-re-order-in-ngrepeat/">AngularJS drag ‘n’ drop re-order in ngRepeat</a></li>
<li><a class="underline" href="http://www.jacklmoore.com/notes/rounding-in-javascript/">Rounding Decimals in JavaScript</a></li>
<li><a class="underline" href="http://bergie.iki.fi/blog/dnode-make_php_and_node-js_talk_to_each_other/">DNode: Make PHP and Node.js talk to each other</a></li>
<li><a class="underline" href="http://ariya.ofilabs.com/2014/02/javascript-string-substring-substr-slice.html">JavaScript String: substring, substr, slice</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://mortimergoro.github.io/PingPongWebGL/">Ping Pong WebGL</a> - I'm actually better than that in real life.</li>
<li><a class="underline" href="http://www.puzzlescript.net/play.html?p=9200013">Puzzle Script Drod</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<p>{{ screenshot: <a class="underline" href="https://speakerdeck.com/rauschma/the-four-layers-of-javascript-oop">https://speakerdeck.com/rauschma/the-four-layers-of-javascript-oop</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://speakerdeck.com/rauschma/the-four-layers-of-javascript-oop">The Four Layers of JavaScript OOP</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://glyphrstudio.com/">http://glyphrstudio.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://glyphrstudio.com/">Glyphr Studio</a> - Free, HTML5 based font editor</li>
<li><a class="underline" href="http://wthimbleby.github.io/tailspin/">Tailspin</a> - Reversible JavaScript in JavaScript. Handy for developing an interactive programming environment.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://codepen.io/2013/popular">Top Pens of 2013</a></li>
<li><a class="underline" href="http://www.html5tricks.com/demo/SlidingImagePanels/">Sliding Image Panels with CSS3</a></li>
<li><a class="underline" href="http://www.jurassicsystems.com/">Jurassic Systems</a></li>
<li><a class="underline" href="http://carvisualizer.plus360degrees.com/classics/">Car Visualizer Classics</a></li>
</ul>
]]></content></entry><entry><title>JSter #17: News of February 2014 - Part 2</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-february-2014-part-2"></link><id>monthly-jster-february-2014-part-2</id><published>2014-03-02T08:15:36.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>There are three inevitable things in life: death, taxes and CORS.</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://parsleyjs.org/">http://parsleyjs.org/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://lo-th.github.io/Oimo.js/index.html">Oimo.js</a> - Physics for Three.js</li>
<li><a class="underline" href="http://cytoscape.github.io/cytoscape.js/">Cytoscape.js</a> - Graph analysis and visualization</li>
<li><a class="underline" href="http://voithos.github.io/brot.js/">brot.js</a> - Prepare yourself for the sheer awesomeness of Buddhabrot!</li>
<li><a class="underline" href="http://mark-rolich.github.io/Magnifier.js/">Magnifier.js</a> - Magnify those images</li>
<li><a class="underline" href="http://parsleyjs.org/">Parsley 2.0</a> - You know, the ultimate form validation library</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://taoofcode.net/promise-anti-patterns/">http://taoofcode.net/promise-anti-patterns/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://taoofcode.net/promise-anti-patterns/">Promise Anti-patterns</a></li>
<li><a class="underline" href="https://sourcegraph.com/blog/switching-from-angularjs-to-server-side-html">5 surprisingly painful things about client-side JS</a></li>
<li><a class="underline" href="http://flippinawesome.org/2014/02/17/what-every-javascript-developer-should-know-about-floating-points/">What Every JavaScript Developer Should Know About Floating Points</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2014/02/ember-js-what-it-is-and-why-we-need-to-care-about-it/">Ember.JS – What it is and why we need to care about it</a></li>
<li><a class="underline" href="http://davidwalsh.name/ways-css-javascript-interact">5 Ways that CSS and JavaScript Interact That You May Not Know About</a></li>
<li><a class="underline" href="http://davidwalsh.name/3d-transforms">How Nesting 3D Transformed Elements Works</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://codesquire.com/post/NodeSockAngularChat">Chat Application with Express, SockJs and Angular</a></li>
<li><a class="underline" href="http://ariya.ofilabs.com/2014/02/javascript-array-slice-vs-splice.html">JavaScript Array: slice vs. splice</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2014/02/live-editing-sass-and-less-in-the-firefox-developer-tools/">Live Editing Sass and Less in the Firefox Developer Tools</a></li>
<li><a class="underline" href="http://tryregex.com/">Try Regex</a> - Interactive tutorial</li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.quakejs.com/">http://www.quakejs.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.mrspeaker.net/dev/game/flappy/">Flappy Typing Tutor</a> - <a class="underline" href="https://github.com/mrspeaker/Omega500">Source</a></li>
<li><a class="underline" href="http://www.lobe.io/flappy-math-saga/">Flappy Math Saga</a></li>
<li><a class="underline" href="http://www.quakejs.com/">Quake.js</a> - Dum dum.</li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blite.iki.fi/presentations/gulp-intro/">Introduction to Gulp.js</a></li>
<li><a class="underline" href="http://markdalgleish.github.io/presentation-build-wars-gulp-vs-grunt/">Build Wars - Gulp vs. Grunt</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.solitr.com/blog/2014/02/broccoli-first-release/index.html">http://www.solitr.com/blog/2014/02/broccoli-first-release/index.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.solitr.com/blog/2014/02/broccoli-first-release/index.html">Broccoli</a> - Yup, we've got a new build tool!</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<p>{{ screenshot: <a class="underline" href="http://css-tricks.com/float-labels-css/">http://css-tricks.com/float-labels-css/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.itbrigadeinc.com/post/2012/04/22/Timeline-of-Events-integrated-with-Google-Maps.aspx">Timeline of Events integrated with Google Maps</a></li>
<li><a class="underline" href="http://css-tricks.com/float-labels-css/">Float Labels with CSS</a></li>
</ul>
]]></content></entry><entry><title>JSter #16: News of February 2014 - Part 1</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-february-2014-part-1"></link><id>monthly-jster-february-2014-part-1</id><published>2014-02-20T08:12:20.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>['hip', 'hip'] - @iamdevloper</p>
</blockquote>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://superconductor.github.io/superconductor/">http://superconductor.github.io/superconductor/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://superconductor.github.io/superconductor/">Superconductor</a> - Real-time visualizations. Up to million data points.</li>
<li><a class="underline" href="https://github.com/basco-johnkevin/cities-autocomplete">cities-autocomplete</a> - <a class="underline" href="http://blog.john.mayonvolcanosoftware.com/cities-autocomplete-using-jquery-and-geobytes-api/">Article</a></li>
<li><a class="underline" href="http://paypal.github.io/bootstrap-accessibility-plugin/">Bootstrap Accessibility Plugin</a></li>
<li><a class="underline" href="http://www.dropzonejs.com/">dropzone.js</a> - DnD file uploads with image previews. Not the kind of DnD you think!</li>
<li><a class="underline" href="https://github.com/zedshaw/jzed">jzed</a> - Functional alternative to jQuery. Yes, it really works.</li>
<li><a class="underline" href="https://github.com/jasondavies/d3-cloud">d3-cloud</a> - Word clouds! That's what I call cloud software.</li>
<li><a class="underline" href="http://carrot.github.io/share-button/">share-button</a> - Ditch those ugly native share widgets and replace them with something that looks nice!</li>
<li><a class="underline" href="http://instantclick.io/">InstantClick</a> - Turbocharge your website.</li>
<li><a class="underline" href="http://webreflection.blogspot.it/2014/02/restylejs-simplified-css-approach.html">restyle.js</a> - A simplified CSS approach.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://labs.tmw.co.uk/2014/01/speedtesting-gulp-and-grunt/">http://labs.tmw.co.uk/2014/01/speedtesting-gulp-and-grunt/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://labs.tmw.co.uk/2014/01/speedtesting-gulp-and-grunt/">Speedtesting Gulp.js and Grunt</a></li>
<li><a class="underline" href="http://differential.io/blog/meteor-10-is-coming">Meteor 1.0 is Coming</a> - Dinosaurs beware?</li>
<li><a class="underline" href="http://redbeacon.github.io/2014/02/04/My-love-affair-with-AngularJS/">Someone's Love Affair with AngularJS</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://toddmotto.com/mastering-the-module-pattern/">http://toddmotto.com/mastering-the-module-pattern/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://toddmotto.com/mastering-the-module-pattern/">Mastering the Module Pattern</a></li>
<li><a class="underline" href="http://toddmotto.com/avoiding-anonymous-javascript-functions/">Avoiding Anonymous JavaScript Functions</a></li>
<li><a class="underline" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript">A Re-introduction to JavaScript</a></li>
<li><a class="underline" href="http://www.webdesignporto.com/why-use-strict-in-javascript-can-save-you-hours/">Why "use strict" in JavaScript Can Save You Hours</a></li>
</ul>
<a href="#webgl"><h2 class="inline" id="webgl">WebGL</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://madebyevan.com/webgl-water/">WebGL Water</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://flapmmo.com/">FlapMMO</a> - Flap with others.</li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<p>{{ screenshot: <a class="underline" href="http://sathomas.me/jsdataviz/index.html">http://sathomas.me/jsdataviz/index.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.2ality.com/2013/06/basic-javascript.html">Basic JavaScript for The Impatient Programmer</a></li>
<li><a class="underline" href="http://sathomas.me/jsdataviz/index.html">Data Visualization with JavaScript</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://codegeekz.com/javascript-tools/">http://codegeekz.com/javascript-tools/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://codegeekz.com/javascript-tools/">15 JavaScript Tools to Improve Your Coding Skills</a></li>
<li><a class="underline" href="http://nightwatchjs.org/">Nighwatch.js</a> - Automated browser testing made easy. Write tests using Node.js, run against Selenium server.</li>
<li><a class="underline" href="http://www.jsonstub.com/">JsonStub</a> - Fake the backend while you develop the frontend.</li>
<li><a class="underline" href="http://eslint.org/">ESLint</a> - Now with proper <a class="underline" href="http://eslint.org/docs/integrations/">tool integrations</a>.</li>
</ul>
<a href="#tests"><h2 class="inline" id="tests">Tests</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://javascript-puzzlers.herokuapp.com/">Do You Really Know JavaScript?</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://atfws.com/square.html">The Lonely Life of a Square</a></li>
</ul>
]]></content></entry><entry><title>Monthly JSter #15: News of January 2014</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-january-2014-part-2"></link><id>monthly-jster-january-2014-part-2</id><published>2014-02-06T13:39:31.000Z</published><content type="text/html"><![CDATA[<p>So we managed to beat January. Good riddance! As usual it was a busy month for JS peeps. A lot of new libraries came out and a good deal of excellent content became available.</p>
<p>I won't stall you any longer. Dig in!</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://blog.jquery.com/2014/01/24/jquery-1-11-and-2-1-released/">http://blog.jquery.com/2014/01/24/jquery-1-11-and-2-1-released/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.jquery.com/2014/01/24/jquery-1-11-and-2-1-released/">jQuery 1.11 and 2.1 Released</a></li>
<li><a class="underline" href="https://github.com/loadfive/knwl.js">Knwl.js</a> - A natural language processor</li>
<li><a class="underline" href="http://badassjs.com/post/73526882798/webkit-js-its-happening-for-real-with-emscriptens">Webkit.js</a> - It's happening for real</li>
<li><a class="underline" href="https://github.com/alexei/sprintf.js">sprintft.js</a> - And C neckbeards cried tears of joy</li>
<li><a class="underline" href="https://github.com/ajacksified/Mediator.js">Mediator.js</a> - An implementation of the mediator pattern for asynchronous events in JavaScript</li>
<li><a class="underline" href="http://cube3x.com/2014/01/photojshop-jquery-photo-editing-library/">PhotoJShop</a></li>
<li><a class="underline" href="http://www.bchanx.com/slidr">slidr.js</a> - Slide transitions!</li>
<li><a class="underline" href="https://github.com/dreamlayers/em-dosbox/">em-dosbox</a> - Besides old DOS games it runs Windows 3.1 too. Solitaire time!</li>
<li><a class="underline" href="http://eliperelman.com/fn.js/">fn.js</a> - Functional love for everyone</li>
<li><a class="underline" href="http://soulwire.github.io/fit.js/">fit.js</a> - Fit things into other things</li>
<li><a class="underline" href="https://github.com/Codingbean/Shore">Shore</a> - Waveform generator</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="https://blog.mozilla.org/luke/2014/01/14/asm-js-aot-compilation-and-startup-performance/">https://blog.mozilla.org/luke/2014/01/14/asm-js-aot-compilation-and-startup-performance/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://blog.mozilla.org/luke/2014/01/14/asm-js-aot-compilation-and-startup-performance/">asm.js AOT Compilation and Startup Performance</a></li>
<li><a class="underline" href="http://www.sitepoint.com/javascript-generators-preventing-callback-hell/">JavaScript Generators and Preventing Callback Hell</a></li>
<li><a class="underline" href="http://zurb.com/article/1293/why-we-dropped-zepto">Why Zurb Dropped Zepto</a></li>
<li><a class="underline" href="https://medium.com/cool-code-pal/a1286881aed7">7 JavaScript Tips to Make You Feel Smarter</a> - And make other people hate you while at it.</li>
</ul>
<a href="#debugging"><h2 class="inline" id="debugging">Debugging</h2></a>
<p>{{ screenshot: <a class="underline" href="http://keyholesoftware.com/2014/01/06/advanced-debugging-techniques-in-javascript-part-1/">http://keyholesoftware.com/2014/01/06/advanced-debugging-techniques-in-javascript-part-1/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://keyholesoftware.com/2014/01/06/advanced-debugging-techniques-in-javascript-part-1/">Advanced Debugging Techniques in JavaScript - Part 1</a></li>
<li><a class="underline" href="http://blog.mariusschulz.com/2013/11/13/advanced-javascript-debugging-with-consoletable">Advanced JavaScript Debugging with console.table()</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<p>{{ screenshot: <a class="underline" href="http://coding.smashingmagazine.com/2014/01/13/better-javascript-library-for-the-dom/">http://coding.smashingmagazine.com/2014/01/13/better-javascript-library-for-the-dom/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://coding.smashingmagazine.com/2014/01/13/better-javascript-library-for-the-dom/">Writing A Better JavaScript Library For The DOM</a></li>
<li><a class="underline" href="http://blog.adtile.me/2014/01/16/a-dive-into-plain-javascript/">A Dive into Plain JavaScript</a></li>
<li><a class="underline" href="http://toddmotto.com/mastering-the-module-pattern/">Mastering the Module Pattern</a></li>
</ul>
<a href="#socket-io"><h2 class="inline" id="socket-io">Socket.io</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.auth0.com/2014/01/15/auth-with-socket-io/">Token-based Authentication with Socket.io</a></li>
</ul>
<a href="#performance"><h2 class="inline" id="performance">Performance</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.fogcreek.com/we-spent-a-week-making-trello-boards-load-extremely-fast-heres-how-we-did-it/">We spent a week making Trello boards load extremely fast. Here’s how we did it.</a></li>
</ul>
<a href="#webgl"><h2 class="inline" id="webgl">WebGL</h2></a>
<p>{{ screenshot: <a class="underline" href="https://hacks.mozilla.org/2014/01/webgl-deferred-shading/">https://hacks.mozilla.org/2014/01/webgl-deferred-shading/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2014/01/webgl-deferred-shading/">WebGL Deferred Shading</a></li>
<li><a class="underline" href="http://www.buildwithchrome.com/">Build with Chrome</a> - Admit it. You always wanted to become a Lego engineer.</li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<p>{{ screenshot: <a class="underline" href="http://gamasutra.com/blogs/AustinHallock/20140108/208242/10_of_the_Best_HTML5_Games_from_2013.php">http://gamasutra.com/blogs/AustinHallock/20140108/208242/10_of_the_Best_HTML5_Games_from_2013.php</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://gamasutra.com/blogs/AustinHallock/20140108/208242/10_of_the_Best_HTML5_Games_from_2013.php">10 of the Best HTML5 Games from 2013</a></li>
</ul>
<a href="#node-js"><h2 class="inline" id="node-js">Node.js</h2></a>
<p>{{ screenshot: <a class="underline" href="http://strongloop.com/strongblog/performance-node-js-v-0-12-whats-new/">http://strongloop.com/strongblog/performance-node-js-v-0-12-whats-new/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://strongloop.com/strongblog/performance-node-js-v-0-12-whats-new/">What's New in Node.js v0.12 - Performance Optimizations</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.jstherightway.org/">http://www.jstherightway.org/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.jstherightway.org/">JavaScript - The Right Way</a></li>
<li><a class="underline" href="http://youmightnotneedjquery.com/">You Might Not Need jQuery</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/mdevils/node-jscs">JSCS</a> - JavaScript code checker</li>
<li><a class="underline" href="http://html5test.com/">html5test</a> - How well does your browser support HTML5?</li>
</ul>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<blockquote>
<p>Where's the }); key on this keyboard?</p>
</blockquote>
]]></content></entry><entry><title>Monthly JSter #14: News of January 2014</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-january-2014-part-1"></link><id>monthly-jster-january-2014-part-1</id><published>2014-01-20T04:12:43.000Z</published><content type="text/html"><![CDATA[<p>Time to JSter again. This time we have quite the mixed bag and a couple of new categories even. Say hi to war stories, React, Build Systems and Dependency Management. Facebook's React has gained some hype in particular. Time will tell whether it will stick. Same goes for Gulp, a build system that aims to shake the hegemony of Grunt.</p>
<p>No matter what happens developers win as the tools and libraries become more mature. It's a good time to be a web developer. Something new to learn every day. :)</p>
<p>Remember that Monthly JSter is available as <a class="underline" href="https://buttondown.email/jster">a newsletter</a>. Our <a class="underline" href="http://feeds.feedburner.com/jster">RSS feed</a> contains some occasional extra content including interviews or book reviews.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://voxeljs.com/">voxel.js</a> - Open source voxel game building toolkit. Fancy a minecraft?</li>
</ul>
<a href="#node-js"><h2 class="inline" id="node-js">Node.js</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.mariocasciaro.me/dependency-injection-in-node-js-and-other-architectural-patterns">http://www.mariocasciaro.me/dependency-injection-in-node-js-and-other-architectural-patterns</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.mariocasciaro.me/dependency-injection-in-node-js-and-other-architectural-patterns">Dependency Injection in Node.js and Other Architectural Patterns</a></li>
<li><a class="underline" href="http://package.json.nodejitsu.com/">package.json - An Interactive Guide</a> - Figure out what those properties mean!</li>
</ul>
<a href="#3d"><h2 class="inline" id="3d">3D</h2></a>
<p>{{ screenshot: <a class="underline" href="http://learningthreejs.com/blog/2013/12/31/zero-to-nyancat-in-30-seconds-flat/">http://learningthreejs.com/blog/2013/12/31/zero-to-nyancat-in-30-seconds-flat/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://learningthreejs.com/blog/2013/12/31/zero-to-nyancat-in-30-seconds-flat/">Zero to Nyancat in 30 Seconds Flat!</a></li>
<li><a class="underline" href="http://davidwalsh.name/webgl-demos">9 Mind-Blowing WebGL Demos</a></li>
</ul>
<a href="#war-stories"><h2 class="inline" id="war-stories">War Stories</h2></a>
<p>{{ screenshot: <a class="underline" href="http://nathanleclaire.com/blog/2013/12/28/the-good-the-bad-and-the-ugly-of-sails-dot-js-realtime-javascript-mvc-framework/">http://nathanleclaire.com/blog/2013/12/28/the-good-the-bad-and-the-ugly-of-sails-dot-js-realtime-javascript-mvc-framework/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://nathanleclaire.com/blog/2013/12/28/the-good-the-bad-and-the-ugly-of-sails-dot-js-realtime-javascript-mvc-framework/">The Good, The Bad, and The Ugly of Sails.js, Realtime JavaScript MVC Framework</a></li>
<li><a class="underline" href="http://blog.thelonepole.com/2014/01/the-once-a-month-javascript-bug/">The Once-A-Month Javascript Bug</a></li>
</ul>
<a href="#angular-js"><h2 class="inline" id="angular-js">Angular.js</h2></a>
<p>{{ screenshot: <a class="underline" href="http://nathanleclaire.com/blog/2014/01/04/5-smooth-angularjs-application-tips/">http://nathanleclaire.com/blog/2014/01/04/5-smooth-angularjs-application-tips/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://nathanleclaire.com/blog/2014/01/04/5-smooth-angularjs-application-tips/">4 Smooth Angular.js Application Tips</a> - Tab highlighting, services, retaining state from view to view, AJAX calls from services. There. Spoiled that for you.</li>
<li><a class="underline" href="http://blog.auth0.com/2014/01/07/angularjs-authentication-with-cookies-vs-token/">Cookies vs. Tokens. Getting auth right with Angular.js</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<p>{{ screenshot: <a class="underline" href="http://toddmotto.com/everything-you-wanted-to-know-about-javascript-scope/">http://toddmotto.com/everything-you-wanted-to-know-about-javascript-scope/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://toddmotto.com/everything-you-wanted-to-know-about-javascript-scope/">Everything you wanted to know about JavaScript scope</a></li>
<li><a class="underline" href="http://johnpolacek.com/2013/04/16/awesome-responsive-screenshots/">Awesome Responsive Screenshots</a></li>
<li><a class="underline" href="http://media.tojicode.com/sfjs-vectors/">Efficient JavaScript Vector Math</a> - Slides</li>
<li><a class="underline" href="http://spion.github.io/posts/why-i-am-switching-to-promises.html">Why @spion is switching to promises?</a></li>
</ul>
<a href="#react"><h2 class="inline" id="react">React</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.lispcast.com/react-another-level-of-indirection">http://www.lispcast.com/react-another-level-of-indirection</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.lispcast.com/react-another-level-of-indirection">React: Another Level of Indirection</a></li>
<li><a class="underline" href="http://cjlarose.com/2014/01/09/react-board-game-tutorial.html">React beginner tutorial: implementing the board game Go</a></li>
</ul>
<a href="#build-systems"><h2 class="inline" id="build-systems">Build Systems</h2></a>
<p>{{ screenshot: <a class="underline" href="http://travismaynard.com/writing/getting-started-with-gulp">http://travismaynard.com/writing/getting-started-with-gulp</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://slid.es/contra/gulp#/">Gulp - The Streaming Build System</a> - Slides. Say bye to spaghetti and magic.</li>
<li><a class="underline" href="http://travismaynard.com/writing/getting-started-with-gulp">Getting Started with Gulp</a></li>
<li><a class="underline" href="https://gist.github.com/substack/8313379">Why ./task.js?</a></li>
</ul>
<a href="#dependency-management"><h2 class="inline" id="dependency-management">Dependency Management</h2></a>
<p>{{ screenshot: <a class="underline" href="http://dontkry.com/posts/code/browserify-and-the-universal-module-definition.html">http://dontkry.com/posts/code/browserify-and-the-universal-module-definition.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://dontkry.com/posts/code/browserify-and-the-universal-module-definition.html">Browserify and the Universal Module Definition</a></li>
<li><a class="underline" href="http://www.slideshare.net/johannilsson/dependencies-modules-browserify">Dependencies, Modules & Browserify</a> - Slides</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://matthewlein.com/ceaser/">http://matthewlein.com/ceaser/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://matthewlein.com/ceaser/">Ceaser - CSS Easing Animation Tool</a></li>
<li><a class="underline" href="http://www.datafiddle.net/">Datafiddle</a> - Like jsFiddle but for data. Write scrapers using this.</li>
<li><a class="underline" href="http://clrs.cc/">clrs.cc - A nicer color palette for the web</a> - Escape the 90s and look like a pro.</li>
<li><a class="underline" href="http://city41.github.io/breakouts/">Breakouts</a> - Like <a class="underline" href="http://todomvc.com/">TodoMVC</a> but for game engines!</li>
<li><a class="underline" href="https://github.com/giakki/uncss">uncss</a> - Remove unused styles from CSS. Bye bye bloat.</li>
</ul>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<blockquote>
<p>What's the coldest HTML tag? <br></p>
</blockquote>
]]></content></entry><entry><title>Monthly JSter #13: News of December 2013</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-december-2013-part-2"></link><id>monthly-jster-december-2013-part-2</id><published>2014-01-02T04:18:31.000Z</published><content type="text/html"><![CDATA[<p>JSter #13, and a new year, is here! A lot happened in the world of JavaScript the past year. Let's just say it was a good year for us developers. Many interesting releases were made and the tooling keeps on improving. There is still plenty to do of course. And if everything goes well, I think jster.net will look quite different the next time I write this post.</p>
<p>This was the first year for us with "Monthly JSter". It's more like biweekly JSter now as that makes more sense for both me and you. Perhaps a weekly schedule would be even nicer? Less content, more often. This is definitely something I need to consider. Also if you have any specific ideas, feel free to contact me directly and I'll see what we can do.</p>
<p>Remember that Monthly JSter is available as <a class="underline" href="https://buttondown.email/jster">a newsletter</a>. Our <a class="underline" href="http://feeds.feedburner.com/jster">RSS feed</a> contains some occasional extra content including interviews or book reviews.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://jsiso.com/">http://jsiso.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://koajs.com/">Koa - Next Generation Web Framework for Node.js</a> - Note that Koa depends on generators so you will need to use Node 0.11 (dev version).</li>
<li><a class="underline" href="https://github.com/pivotal/jasmine/blob/master/release_notes/20.md">Jasmine 2.0</a> - The popular testing framework reached 2.0!</li>
<li><a class="underline" href="http://jsiso.com/">JSIco - a Tilebased HTML5 Canvas Engine</a></li>
<li><a class="underline" href="http://okfnlabs.org/annotator/demo/">The Annotator</a> - This library lets you annotate pretty much anything on your site. It uses <a class="underline" href="http://annotateit.org/">AnnotateIt</a> as a backend.</li>
<li><a class="underline" href="http://ringjs.neoname.eu/">Ring.js - JavaScript Class System with Multiple Inheritance</a> - I don't use multiple inheritance myself but maybe someone still does.</li>
<li><a class="underline" href="http://cylonjs.com/">Cylon.js - JavaScript Robotics, By Your Command</a> - Just don't go and build cylons, please.</li>
<li><a class="underline" href="http://rubaxa.github.io/Sortable/">Sortable</a> - Nice little sorting library. Look ma, no jQuery!</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://css-tricks.com/dom/">http://css-tricks.com/dom/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.infoq.com/articles/modular-javascript">Developing Modular JavaScript Components</a></li>
<li><a class="underline" href="http://www.kenpowers.net/blog/the-power-and-limitations-of-partials/">The Power and Limitations of Partials</a></li>
<li><a class="underline" href="http://net.tutsplus.com/tutorials/javascript-ajax/the-essentials-of-writing-high-quality-javascript/">The Essentials of Writing High Quality JavaScript</a></li>
<li><a class="underline" href="http://swannodette.github.io/2013/12/17/the-future-of-javascript-mvcs/">The Future of JavaScript MVC Frameworks</a></li>
<li><a class="underline" href="http://www.richardrodger.com/monolithic-nodejs">Monolithic Node.js</a> - Even if you don't use Node.js, you should read this long article. It's a very refreshing take on web architectures and helps you understand why monolithic architectures should become a thing of the past.</li>
<li><a class="underline" href="http://adereth.github.io/blog/2013/12/23/counting-stars-on-github/">Counting Stars on GitHub</a> - It shouldn't come as a surprise JavaScript dominates.</li>
<li><a class="underline" href="http://blog.leanstack.io/keen-io-tech-stack/">The Tech Stack Behind Keen IO's Analytics Backend Service</a></li>
<li><a class="underline" href="http://css-tricks.com/dom/">What is the DOM?</a></li>
</ul>
<a href="#guides"><h2 class="inline" id="guides">Guides</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.html5rocks.com/en/tutorials/es6/promises/">http://www.html5rocks.com/en/tutorials/es6/promises/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.html5rocks.com/en/tutorials/es6/promises/">JavaScript Promises - There and Back Again</a></li>
<li><a class="underline" href="http://blog.codacy.com/short-guide-js-gotchas/">Short Guide to JavaScript Gotchas</a></li>
<li><a class="underline" href="http://callbackhell.com/">Callback Hell</a></li>
</ul>
<a href="#angular-js"><h2 class="inline" id="angular-js">Angular.js</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.yearofmoo.com/2013/12/staggering-animations-in-angularjs.html">http://www.yearofmoo.com/2013/12/staggering-animations-in-angularjs.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.revolunet.com/angular-for-mobile/">AngularJS for Mobile</a> - Slides.</li>
<li><a class="underline" href="http://www.sitepoint.com/unit-and-e2e-testing-in-angularjs/">Unit and End to End Testing in AngularJS</a></li>
<li><a class="underline" href="http://nathanleclaire.com/blog/2013/12/13/how-to-unit-test-controllers-in-angularjs-without-setting-your-hair-on-fire/">How to Unit Test Controllers in AngularJS Without Setting Your Hair on Fire</a></li>
<li><a class="underline" href="http://www.yearofmoo.com/2013/12/staggering-animations-in-angularjs.html">Staggering Animations in AngularJS</a></li>
<li><a class="underline" href="http://www.codeorbits.com/blog/2013/12/20/rapid-angularjs-prototyping-without-real-backend/">Rapid AngularJS Prototyping Without Real Backend</a></li>
</ul>
<a href="#ember"><h2 class="inline" id="ember">Ember</h2></a>
<p>{{ screenshot: <a class="underline" href="https://hacks.mozilla.org/2013/12/ember-inspector-on-a-firefox-near-you-2/">https://hacks.mozilla.org/2013/12/ember-inspector-on-a-firefox-near-you-2/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2013/12/ember-inspector-on-a-firefox-near-you-2/">Ember Inspector on a Firefox Near You</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.gamedev.net/page/resources/_/technical/game-programming/writing-fast-javascript-for-games-interactive-applications-r3516">http://www.gamedev.net/page/resources/_/technical/game-programming/writing-fast-javascript-for-games-interactive-applications-r3516</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.gamedev.net/page/resources/_/technical/game-programming/writing-fast-javascript-for-games-interactive-applications-r3516">Writing Fast JavaScript for Games and Interactive Applications</a></li>
<li><a class="underline" href="http://www.elijahmanor.com/grunt-away-those-pesky-console-log-statements/">Ways to Remove Those Pesky console.log Statements</a></li>
<li><a class="underline" href="http://ariya.ofilabs.com/2013/12/javascript-kinetic-scrolling-part-4.html">JavaScript Kinetic Scrolling: Part 4</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.myth.io/">http://www.myth.io/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.myth.io/">Myth</a> - CSS the way it was imagined.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.smartjava.org/content/all-109-examples-my-book-threejs-threejs-version-r63">http://www.smartjava.org/content/all-109-examples-my-book-threejs-threejs-version-r63</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.smartjava.org/content/all-109-examples-my-book-threejs-threejs-version-r63">109 Three.js Examples</a></li>
<li><a class="underline" href="https://github.com/anvaka/atree">Christmas Tree</a></li>
<li><a class="underline" href="http://jankoro.blogspot.fi/2013/12/javascript-training-games.html">JavaScript Training Games</a></li>
</ul>
<a href="#comics"><h2 class="inline" id="comics">Comics</h2></a>
<p>{{ screenshot: <a class="underline" href="http://dontkry.com/posts/comics/roommates.html">http://dontkry.com/posts/comics/roommates.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://dontkry.com/posts/comics/roommates.html">Node.js Gets Roommates</a></li>
</ul>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<blockquote>
<p>What're we doing today, Brain? The same thing we do every day, Pinky. Javascript.</p>
</blockquote>
]]></content></entry><entry><title>Monthly JSter #12: News of December 2013</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-december-2013-part-1"></link><id>monthly-jster-december-2013-part-1</id><published>2013-12-19T01:58:06.000Z</published><content type="text/html"><![CDATA[<p>JSter #12 has arrived. Some things of note happened earlier this month. <a class="underline" href="http://emberjs.com/blog/2013/12/04/ember-1-2-0-and-ember-1-3-0-beta-released.html">Ember 1.2.0</a> came available. Also <a class="underline" href="https://github.com/madrobby/zepto/releases/tag/v1.1.0">Zepto reached 1.1</a>. The new version includes support for IE11 and performance improvements. In addition PayPal announced something interesting Node.js related and overall the community just kept on churning out cool stuff.</p>
<p>Remember that Monthly JSter is available as <a class="underline" href="https://buttondown.email/jster">a newsletter</a>. Our <a class="underline" href="http://feeds.feedburner.com/jster">RSS feed</a> contains some occasional extra content including interviews or book reviews.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://emberjs.com/blog/2013/12/04/ember-1-2-0-and-ember-1-3-0-beta-released.html">http://emberjs.com/blog/2013/12/04/ember-1-2-0-and-ember-1-3-0-beta-released.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://emberjs.com/blog/2013/12/04/ember-1-2-0-and-ember-1-3-0-beta-released.html">Ember 1.2.0 and 1.3 Beta</a></li>
<li><a class="underline" href="http://pazguille.github.io/voix/">voix.js</a> - Add voice commands to your sites, apps or games</li>
<li><a class="underline" href="https://github.com/madrobby/zepto/releases/tag/v1.1.0">Zepto 1.1</a></li>
<li><a class="underline" href="http://visionmedia.github.io/move.js/">Move.js</a> - Simple CSS3 animations</li>
<li><a class="underline" href="http://medialize.github.io/URI.js/">URI.js</a> - Library for working with URLs.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="https://hacks.mozilla.org/2013/12/monster-madness-creating-games-on-the-web-with-emscripten/">https://hacks.mozilla.org/2013/12/monster-madness-creating-games-on-the-web-with-emscripten/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://resin.io/happy-18th-birthday-javascript/">Happy 18th Birthday JavaScript</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2013/12/monster-madness-creating-games-on-the-web-with-emscripten/">Monster Madness - Creating Games on the Web with Emscripten</a></li>
<li><a class="underline" href="http://lucumr.pocoo.org/2013/12/9/stop-being-clever/">Stop Being Cute and Clever</a></li>
<li><a class="underline" href="http://perfectionkills.com/exploring-canvas-drawing-techniques/">Exploring Canvas Drawing Techniques</a></li>
<li><a class="underline" href="http://www.infoworld.com/d/application-development/6-secrets-of-javascript-jedis-231322">6 secrets of JavaScript Jedis</a></li>
</ul>
<a href="#chrome-devtools"><h2 class="inline" id="chrome-devtools">Chrome DevTools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.html5rocks.com/en/tutorials/developertools/mobile/">http://www.html5rocks.com/en/tutorials/developertools/mobile/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.html5rocks.com/en/tutorials/developertools/mobile/">Chrome DevTools for Mobile: Screencast and Emulation</a></li>
<li><a class="underline" href="http://blog.teamtreehouse.com/5-great-hidden-features-in-the-chrome-devtools">5 Great Hidden Features in the Chrome DevTools</a></li>
</ul>
<a href="#node-js"><h2 class="inline" id="node-js">Node.js</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.infoq.com/news/2013/11/paypal-java-javascript">http://www.infoq.com/news/2013/11/paypal-java-javascript</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.infoq.com/news/2013/11/paypal-java-javascript">PayPal Switches from Java to JavaScript</a></li>
<li><a class="underline" href="http://jster.net/blog/develop-static-site-generators">Learn to Develop Static Site Generators</a></li>
<li><a class="underline" href="http://www.sebastianseilund.com/nodejs-async-in-practice">Node.js async in practice: When to use what?</a></li>
</ul>
<a href="#jquery"><h2 class="inline" id="jquery">jQuery</h2></a>
<p>{{ screenshot: <a class="underline" href="http://speckyboy.com/2013/12/11/jquery-plugins-2013/">http://speckyboy.com/2013/12/11/jquery-plugins-2013/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://speckyboy.com/2013/12/11/jquery-plugins-2013/">50 Most Useful jQuery Plugins from 2013</a></li>
</ul>
<a href="#angular-js"><h2 class="inline" id="angular-js">Angular.js</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.sitepoint.com/10-reasons-use-angularjs/">http://www.sitepoint.com/10-reasons-use-angularjs/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.sitepoint.com/10-reasons-use-angularjs/">10 Reasons Why You Should Use AngularJS</a></li>
<li><a class="underline" href="http://www.infoq.com/articles/backbone-vs-angular">Contrasting Backbone and Angular</a></li>
<li><a class="underline" href="http://nathanleclaire.com/blog/2013/12/07/dont-fear-directives-in-angular-dot-js/">Don't Fear Directives in Angular.js</a></li>
</ul>
<a href="#presentations"><h2 class="inline" id="presentations">Presentations</h2></a>
<p>{{ screenshot: <a class="underline" href="https://speakerdeck.com/rauschma/ecmascript-6-whats-next-for-javascript">https://speakerdeck.com/rauschma/ecmascript-6-whats-next-for-javascript</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.youtube.com/watch?v=2zmUSoVMyRU">15 Tricks to Master Chrome Developer Tools Console</a></li>
<li><a class="underline" href="https://speakerdeck.com/rauschma/ecmascript-6-whats-next-for-javascript">ECMAScript 6: What's Next for JavaScript?</a> - Slides</li>
<li><a class="underline" href="https://speakerdeck.com/rauschma/callable-entities-in-ecmascript-6">Callable Entities in ECMAScript 6</a> - Slides</li>
<li><a class="underline" href="https://speakerdeck.com/slexaxton/practicing-safe-script">Practicing Safe Script</a> - Slides</li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<p>{{ screenshot: <a class="underline" href="http://blog.ponyfoo.com/2013/11/19/fun-with-native-arrays">http://blog.ponyfoo.com/2013/11/19/fun-with-native-arrays</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.ponyfoo.com/2013/11/19/fun-with-native-arrays">Fun with Native Arrays</a></li>
<li><a class="underline" href="http://blog.repustate.com/twitter-postgis-d3-rob-ford-fun-with-data-visualizations/2013/12/03/">Twitter + GeoJSON + d3.js + Rob Ford = Fun with Data Visualizations</a></li>
<li><a class="underline" href="http://www.nixtu.info/2013/07/build-beforeafter-widget-using-css-and.html">Build a Before/After Widget Using CSS and JS</a></li>
<li><a class="underline" href="http://www.codeproject.com/Articles/687093/Understanding-JavaScript-Object-Creation-Patterns">Understanding JavaScript Object Creation Patterns</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://nodeapp.org/">http://nodeapp.org/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://nodeapp.org/">Node.app</a> - Node.js for iOS</li>
<li><a class="underline" href="https://github.com/philbooth/escomplex">escomplex</a> - Software complexity analysis of JavaScript-family ASTs. See also <a class="underline" href="https://github.com/philbooth/complexity-report">complexity-report</a>.</li>
<li><a class="underline" href="http://mir.aculo.us/dom-monster/">DOM Monster</a> - Analyze DOM performance using this bookmarklet.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://benvan.co.uk/lsys/">lsys</a> - l-systems in JavaScript</li>
<li><a class="underline" href="http://stephaneginier.com/sculptgl/">SculptGL</a> - Sculpting app in WebGL</li>
<li><a class="underline" href="http://www.p01.org/releases/minicraft/minicraft.htm">Minicraft</a> - Minecraft clone in 252 bytes</li>
<li><a class="underline" href="http://xem.github.io/miniCodeEditor/">MiniCodeEditor</a> - Online HTML/CSS/JS editor in 161+ bytes</li>
</ul>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<blockquote>
<p>Don't call us, we'll call you - said by Hollywood casting directors and asynchronous Node operations.</p>
</blockquote>
]]></content></entry><entry><title>Learn to Develop Static Site Generators</title><link rel="alternate" type="text/html" href="https://jster.net/blog/develop-static-site-generators"></link><id>develop-static-site-generators</id><published>2013-12-14T01:01:08.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>This article was originally published at <a class="underline" href="http://sdjournal.org/android-cake-released/">Software Developer's Journal</a>.</p>
</blockquote>
<p>Developing websites and services has never been as easy as it is now. There is a massive amount of technology available. Almost too much. And the pace isn't slowing down. On the contrary!</p>
<p>Especially since JavaScript broke through so to speak, the speed of development has been immense. During the past few years CSS frameworks, such as Bootstrap or Foundation, have made their way to the arsenal of web developers. On the backend side, Node.js has made waves. It is a good time to be a web developer.</p>
<p>One of the interesting developments has been the resurgence of static websites. They are simpler to understand than content management systems (CMS). Static by definition they are lightning fast to serve. Some of the dynamic functionality required may be implemented using JavaScript and external services. It is possible to get the best out of the both worlds.</p>
<p>In this article I will show you how to implement a simple static site generator using Node.js. I expect that you understand JavaScript and programming on a basic level. You should be able to pick up following skills by reading it:</p>
<ul class="list-disc list-inside">
<li>understand how to set up a Node.js project,</li>
<li>learn how to use <code>commander</code> to build cli user interfaces,</li>
<li>have a basic idea of what makes static site generators tick,</li>
<li>learn how to use <code>async</code> to take control of asynchronous control flow.</li>
</ul>
<a href="#static-site-generators"><h2 class="inline" id="static-site-generators">Static Site Generators</h2></a>
<p>Static site generators are simple on technical level. They simply transform content into a static format that is easy to host. Just dump the files on some server and off you go. The backend required is very minimal.</p>
<p>Compared to content management systems (CMS) they are somewhat crude. You will not be able to modify the content easily through a web based interface. At least without using a separate service.</p>
<p>Fortunately the security, speed and hosting advantages make up for it. Especially technically oriented people may find a static generator driven approach very lucrative. You can use git as your backend and edit the content in your favorite editor. No need for clunky web interfaces.</p>
<p>The speed advantage may be further increased by using a CDN that serves your static content close to the user. This can be beneficial also considering uptime. If your content is cached and served by another provider, it does not matter if your server goes down for a reason or another.</p>
<p>One of the biggest advantages static site generators have is the ease of maintenance. In case you are using a CMS, you will have to make sure your platform is up to date if you are hosting it yourself. This applies to static sites to limited extent.</p>
<p>The line between CMS and static generator can be blurry at times. It looks like services that make static generation more like CMS pop up continuously. That way it becomes easier for mainstream to adopt them.</p>
<a href="#generator-design"><h2 class="inline" id="generator-design">Generator Design</h2></a>
<p>It is no wonder there are so many static site generators out there. They are easy to implement. Just because there are not enough of those yet, I will show you how to create your own.</p>
<p>The basic recipe is very simple. In this case I will mimic the design of Jekyll, a popular generator. I will use Node.js for the implementation. Before getting ahead with that, it is a good idea to discuss through some basic concepts and technical design.</p>
<p>One important thing that most static site generators provide is a separation between layout and content. The idea is that the content will be injected within some layout in the end result. We may also inject some common metadata, such as the site author information, to it.</p>
<p>For its content Jekyll implements an interesting idea known as a YAML head matter. To give you a better idea of what the content looks like, consider the example below:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedyaml"><span class="hljs-attr">layout:</span> <span class="hljs-string">'default'</span>
<span class="hljs-attr">title:</span> <span class="hljs-string">'Static sites are fun!'</span>
<span class="hljs-attr">author:</span> <span class="hljs-string">'John Doe'</span>
<span class="hljs-meta">---</span>
<span class="hljs-string">Static</span> <span class="hljs-string">sites</span> <span class="hljs-string">are</span> <span class="hljs-string">fun!</span> <span class="hljs-literal">Yes</span><span class="hljs-string">,</span> <span class="hljs-string">they</span> <span class="hljs-string">are!</span>
</code></pre>
<p>First we define that we are going to use a <code>default</code> layout for this content. Then we have some metadata related to the post. We may use this information at the layout. We can also use the information when generating a blog archive for instance.</p>
<p>The layout will contain specific slots in which we will inject the data. Besides the metadata above we will have a special slot known as <code>content</code>. That represents the text part of our post below <code>---</code>.</p>
<a href="#directory-structure"><h3 class="inline" id="directory-structure">Directory Structure</h3></a>
<p>As it is nice to have files well organized, it is a good idea to define some sort of schema. I have described one below:</p>
<ul class="list-disc list-inside">
<li>/_layouts - The layouts</li>
<li>/_layouts/default.hbs - The default layout in Handlebars format</li>
<li>/index.md - Index (see above)</li>
<li>/_site - The output of our generator</li>
</ul>
<a href="#project-structure"><h2 class="inline" id="project-structure">Project Structure</h2></a>
<p>Now that we have some understanding of what we need to implement, it is a good time to get started with it. If you do not have Node.js set up yet and want to follow along, go at <a class="underline" href="http://nodejs.org/">http://nodejs.org/</a> and follow their installation instructions. After that you should have <code>node</code> and <code>npm</code> commands available at your terminal.</p>
<p>I will call my generator as <code>yayassg</code> (Yet Another Yet Another Static Site Generator). Incidentally <code>yassg</code> was taken at NPM so I had to settle for something else. If you want to develop yours further and release it at NPM, it is a very good idea to Google around for a while and check if the NPM entry is free.</p>
<p>As I like to use GitHub for hosting my project, I naturally use <code>git</code> for versioning. I tend to follow a certain project structure for projects such as this. My cli projects usually look like this:</p>
<ul class="list-disc list-inside">
<li>.gitignore - Ignores <code>node_modules/</code> at least</li>
<li>README.md - Describes the basic idea of the project</li>
<li>LICENSE - The licensing information. I like to use MIT for my projects</li>
<li>bin/yayassg - The cli entry point</li>
<li>lib/ - The library parts</li>
<li>package.json - NPM registration information</li>
<li>node_modules/ - Local Node.js modules installed by NPM. This will not be versioned</li>
</ul>
<a href="#package-json"><h3 class="inline" id="package-json">package.json</h3></a>
<p>NPM comes with a handy command known as <code>npm init</code>. Simply invoke that and it will ask you a series of questions related to your project. Most of the defaults are fine. In this case you may want to change the entry point of the project to <code>lib</code> as that is where we will be storing our library functionality.</p>
<p>After you have generated the file, you may want to add the following line to it:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjson"><span class="hljs-attr">"bin"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"bin/yayassg"</span>
</code></pre>
<p>This tells NPM where to find the entry point of our script. Study <a class="underline" href="https://npmjs.org/doc/json.html">https://npmjs.org/doc/json.html</a> to understand various properties of the file better.</p>
<a href="#cli"><h3 class="inline" id="cli">cli</h3></a>
<p>It is probably a good idea to implement that <code>bin/yayassg</code> then. After creating the file, remember to set it as executable (<code>chmod +x .yayassg</code>).</p>
<p>NPM contains a lot of modules that help in creating clis. One of these is known as <code>commander</code>. In order to add it to your project, execute <code>npm install commander --save</code>. That <code>--save</code> flags adds it to <code>package.json</code> in your project dependencies automatically. Sometimes it may be handy to add some dependency just for development usage (say testing). In this case you may want to use <code>--save-dev</code> instead.</p>
<p>Getting started with commander is quite simple. I have provided initial version of our cli below:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjs"><span class="hljs-meta">#!/usr/bin/env node</span>
<span class="hljs-keyword">var</span> program = <span class="hljs-built_in">require</span>(<span class="hljs-string">'commander'</span>);
<span class="hljs-keyword">var</span> yayassg = <span class="hljs-built_in">require</span>(<span class="hljs-string">'../lib'</span>);

<span class="hljs-title function_">main</span>();

<span class="hljs-keyword">function</span> <span class="hljs-title function_">main</span>(<span class="hljs-params"></span>) {
program.<span class="hljs-title function_">version</span>(<span class="hljs-built_in">require</span>(<span class="hljs-string">'../package.json'</span>).<span class="hljs-property">version</span>).
  <span class="hljs-title function_">option</span>(<span class="hljs-string">'-i --input <input>'</span>, <span class="hljs-string">'input directory'</span>).
  <span class="hljs-title function_">option</span>(<span class="hljs-string">'-o --output <output>'</span>, <span class="hljs-string">'output directory'</span>).
  <span class="hljs-title function_">parse</span>(process.<span class="hljs-property">argv</span>);

<span class="hljs-keyword">if</span>(!program.<span class="hljs-property">input</span>) <span class="hljs-keyword">return</span> <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">error</span>(<span class="hljs-string">'Missing input'</span>);
<span class="hljs-keyword">if</span>(!program.<span class="hljs-property">output</span>) <span class="hljs-keyword">return</span> <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">error</span>(<span class="hljs-string">'Missing output'</span>);

<span class="hljs-title function_">yayassg</span>(program.<span class="hljs-property">input</span>, program.<span class="hljs-property">output</span>);
}
</code></pre>
<p>To be able to run this, you will also need to define a stub for our library at <code>lib/index.js</code>:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjs"><span class="hljs-variable language_">module</span>.<span class="hljs-property">exports</span> = <span class="hljs-keyword">function</span>(<span class="hljs-params">input, output</span>) {
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(input, output);
};
</code></pre>
<p>After defining these two files you should be able to execute the cli using <code>bin/yayassg -i input -o output</code>. It doesn't do much yet but at least it runs.</p>
<a href="#lib"><h3 class="inline" id="lib">lib</h3></a>
<p>Next we need to define the whole logic and transformation part of the generator. The interface is quite simple. In this case we will rely on convention. We expect to find layouts from <code>_layouts</code> of the input directory. We need to go through each Markdown file there and then convert those into HTML at out output.</p>
<p>As using native filesystem API of Node.js can be a bit cumbersome, let's summon async and glob to rescue! Simply <code>npm install async glob --save</code> to add the library to the project.</p>
<p>Let's try to read our input files and layouts into variables next:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjs"><span class="hljs-keyword">var</span> path = <span class="hljs-built_in">require</span>(<span class="hljs-string">'path'</span>);

<span class="hljs-keyword">var</span> <span class="hljs-keyword">async</span> = <span class="hljs-built_in">require</span>(<span class="hljs-string">'async'</span>);
<span class="hljs-keyword">var</span> glob = <span class="hljs-built_in">require</span>(<span class="hljs-string">'glob'</span>);

<span class="hljs-variable language_">module</span>.<span class="hljs-property">exports</span> = <span class="hljs-keyword">function</span>(<span class="hljs-params">input, output</span>) {
<span class="hljs-keyword">async</span>.<span class="hljs-title function_">map</span>([
  path.<span class="hljs-title function_">join</span>(input, <span class="hljs-string">'**/*.md'</span>),
  path.<span class="hljs-title function_">join</span>(input, <span class="hljs-string">'_layouts'</span>, <span class="hljs-string">'*.hbs'</span>)
], glob, <span class="hljs-keyword">function</span>(<span class="hljs-params">err, paths</span>) {
  <span class="hljs-keyword">if</span>(err) <span class="hljs-keyword">return</span> <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">error</span>(err);

  <span class="hljs-title function_">main</span>(paths[<span class="hljs-number">0</span>], paths[<span class="hljs-number">1</span>], output);
});
};

<span class="hljs-keyword">function</span> <span class="hljs-title function_">main</span>(<span class="hljs-params">inputs, layouts, output</span>) {<span class="hljs-comment">/* TODO*/</span>}
</code></pre>
<p>We still need to transform the input files and put the output at an appropriate place. For the input we will need to separate the front matter and actual content. Layouts are easier. We can get away simply by compiling them. All of this will happen at the main function.</p>
<p>To be honest my initial go at it looked quite messy. Fortunately I managed to simplify my solution a lot my reformulating it as above and by utilizing <code>caolan/async</code> utility module. It is one of those modules that makes it a lot easier to deal with asynchronous code.</p>
<p>In this case I could have used synchronous, blocking versions of the file operations but I rather avoid that and do things the "hard" way. As an additional benefit of doing things the async way, it becomes very easy to split out tasks to separate Node.js processes. This can be somewhat beneficial.</p>
<a href="#main"><h3 class="inline" id="main">main</h3></a>
<p>The next snippet shows my <code>main</code> function and an associated helper in their entirety. We will go into those details in a little bit:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjs"><span class="hljs-keyword">var</span> <span class="hljs-keyword">async</span> = <span class="hljs-built_in">require</span>(<span class="hljs-string">'async'</span>);

<span class="hljs-comment">// ...</span>

<span class="hljs-keyword">function</span> <span class="hljs-title function_">main</span>(<span class="hljs-params">inputs, layouts, output</span>) {
<span class="hljs-keyword">async</span>.<span class="hljs-title function_">parallel</span>([
  readAndProcess.<span class="hljs-title function_">bind</span>(<span class="hljs-literal">null</span>, inputs, saltInputs.<span class="hljs-title function_">bind</span>(<span class="hljs-literal">null</span>, output)),
  readAndProcess.<span class="hljs-title function_">bind</span>(<span class="hljs-literal">null</span>, layouts, compileLayouts)
], <span class="hljs-keyword">function</span>(<span class="hljs-params">err, res</span>) {
  <span class="hljs-keyword">if</span>(err) <span class="hljs-keyword">return</span> <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">error</span>(err);

  fs.<span class="hljs-title function_">mkdir</span>(output, transform.<span class="hljs-title function_">bind</span>(<span class="hljs-literal">null</span>, res[<span class="hljs-number">0</span>], res[<span class="hljs-number">1</span>]));
});
}

<span class="hljs-keyword">function</span> <span class="hljs-title function_">readAndProcess</span>(<span class="hljs-params">input, process, cb</span>) {
<span class="hljs-keyword">async</span>.<span class="hljs-title function_">waterfall</span>([readFiles.<span class="hljs-title function_">bind</span>(<span class="hljs-literal">null</span>, input), process], cb);
}
</code></pre>
<p>There are a couple of things here that you should understand. First of all that <code>bind</code> may seem a bit weird if you haven't used it before. It allows us to perform <code>partial application</code> in JavaScript. Say we have a function <code>add</code> that takes two parameters: a and b. We could define <code>var addTwo = add.bind(null, 2);</code> and then invoke that with <code>addTwo(5)</code> to get seven.</p>
<p>It is one of those simple yet powerful concepts. If you are familiar with OOP and inheritance, this is the same thing but for functional programming. It allows you to specialize functions. In this case we use it to pass some extra data to our primary functions and make them more suited for this particular purpose.</p>
<p>In case you are wondering what's that <code>null</code> at the beginning about, it's the context or <code>this</code> of the function. That should explain it. If not, look into <a class="underline" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this"><code>this</code> at MDN</a>.</p>
<p>Next up you should understand how <code>async.parallel</code> and <code>async.waterfall</code> operate. <code>async.parallel</code> executes a list of given functions in any order. It expects the functions execute a callback (<code>cb(error, value)</code>) passed to it. Finally it will execute a function with the possible error and the results gained in a list. The order of the list is guaranteed to be the order of the original one.</p>
<p><code>async.waterfall</code> executes the given functions in order and passes the result of the current one to the next till finished. The result will be available at an optional function just like in <code>async.parallel</code>. In this case I use waterfall literally to read and process.</p>
<a href="#readfiles"><h3 class="inline" id="readfiles">readFiles</h3></a>
<p><code>readAndProcess</code> uses <code>readFiles</code>. Let's check that out next:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjs"><span class="hljs-keyword">function</span> <span class="hljs-title function_">readFiles</span>(<span class="hljs-params">inputs, cb</span>) {
<span class="hljs-keyword">async</span>.<span class="hljs-title function_">map</span>(inputs, <span class="hljs-keyword">function</span>(<span class="hljs-params">p, cb</span>) {
  fs.<span class="hljs-title function_">readFile</span>(p, <span class="hljs-keyword">function</span>(<span class="hljs-params">err, d</span>) {
  <span class="hljs-keyword">if</span>(err) <span class="hljs-keyword">return</span> <span class="hljs-title function_">cb</span>(err);

  <span class="hljs-title function_">cb</span>(<span class="hljs-literal">null</span>, {
    <span class="hljs-attr">data</span>: d.<span class="hljs-title function_">toString</span>(),
    <span class="hljs-attr">path</span>: p
  });
  });
}, cb);
}
</code></pre>
<p>This one uses an utility known as <code>async.map</code>. It executes a given function for a given list of items. Finally it executes a function with the results. If you have used <code>map</code> before, you should be familiar with the idea. For those not familiar with the idea, consider the following fact: <code>[34, 2, 3].map(function(v) {return v * 2;})</code> yields <code>[68, 4, 6]</code>. It is just a mapping from a space to another.</p>
<p>We still need to understand a couple of functions before we have something that works. The missing ones are <code>saltInputs</code>, <code>compileLayouts</code> and <code>transform</code>. Let's start with the salty one:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjs"><span class="hljs-keyword">var</span> path = <span class="hljs-built_in">require</span>(<span class="hljs-string">'path'</span>);

<span class="hljs-keyword">var</span> yaml = <span class="hljs-built_in">require</span>(<span class="hljs-string">'yaml'</span>).<span class="hljs-property">eval</span>;

<span class="hljs-comment">// ...</span>

<span class="hljs-keyword">function</span> <span class="hljs-title function_">saltInputs</span>(<span class="hljs-params">output, inputs, cb</span>) {
<span class="hljs-keyword">async</span>.<span class="hljs-title function_">map</span>(inputs, <span class="hljs-keyword">function</span>(<span class="hljs-params">input, cb</span>) {
  <span class="hljs-keyword">var</span> parts = input.<span class="hljs-property">data</span>.<span class="hljs-title function_">split</span>(<span class="hljs-string">'---\n'</span>);

  <span class="hljs-title function_">cb</span>(<span class="hljs-literal">null</span>, {
  <span class="hljs-attr">front</span>: <span class="hljs-title function_">yaml</span>(parts[<span class="hljs-number">0</span>]),
  <span class="hljs-attr">content</span>: parts[<span class="hljs-number">1</span>],
  <span class="hljs-attr">output</span>: path.<span class="hljs-title function_">join</span>(output, <span class="hljs-title function_">getName</span>(input.<span class="hljs-property">path</span>)) + <span class="hljs-string">'.html'</span>
  });
}, cb);
}

<span class="hljs-keyword">function</span> <span class="hljs-title function_">getName</span>(<span class="hljs-params">v</span>) {
<span class="hljs-keyword">return</span> path.<span class="hljs-title function_">basename</span>(v, path.<span class="hljs-title function_">extname</span>(v));
}
</code></pre>
<p>The idea of this function is to take our input and then map it into a format that is useful for us. I decided to call this function salt as that's what it does. It takes something and then adds some spice to it. In this case we deal with our front matter and content logic. The front matter is parsed and content is extracted. In addition it figures out where to place the output based on path.</p>
<p>I decided to use an external module for parsing YAML. You can add it to your project simply by invoking <code>npm install yaml --save</code>.</p>
<a href="#compilelayouts"><h3 class="inline" id="compilelayouts">compileLayouts</h3></a>
<p><code>compileLayouts</code> is another simple one. I got a bit lazy here and decided to compile all the available layouts whether or not they are used by input. You can try to implement that as a bonus exercise. Remember that <code>bind</code> is your friend. Here's my implementation:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjs"><span class="hljs-keyword">var</span> hbs = <span class="hljs-built_in">require</span>(<span class="hljs-string">'handlebars'</span>).<span class="hljs-property">compile</span>;

<span class="hljs-comment">// ...</span>

<span class="hljs-keyword">function</span> <span class="hljs-title function_">compileLayouts</span>(<span class="hljs-params">layouts, cb</span>) {
<span class="hljs-keyword">var</span> ret = {};

layouts.<span class="hljs-title function_">forEach</span>(<span class="hljs-keyword">function</span>(<span class="hljs-params">layout</span>) {
  ret[<span class="hljs-title function_">getName</span>(layout.<span class="hljs-property">path</span>)] = <span class="hljs-title function_">hbs</span>(layout.<span class="hljs-property">data</span>);
});

<span class="hljs-title function_">cb</span>(<span class="hljs-literal">null</span>, ret);
}
</code></pre>
<p>Given the handlebars compiler we use is synchronous by its nature, we don't have to use any async helpers in this case. A simple <code>forEach</code> will do. We aggregate the result in an Object (layout name -> compiled layout) as that works well with out input format.</p>
<a href="#transform"><h3 class="inline" id="transform">transform</h3></a>
<p>One more to go, <code>transform</code>:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjs"><span class="hljs-keyword">function</span> <span class="hljs-title function_">transform</span>(<span class="hljs-params">inputs, layouts</span>) {
inputs.<span class="hljs-title function_">forEach</span>(<span class="hljs-keyword">function</span>(<span class="hljs-params">v</span>) {
  fs.<span class="hljs-title function_">writeFile</span>(v.<span class="hljs-property">output</span>, layouts[v.<span class="hljs-property">front</span>.<span class="hljs-property">layout</span>]({
  <span class="hljs-attr">content</span>: v.<span class="hljs-property">content</span>
  }));
});
}
</code></pre>
<p>Funnily enough this function is one of our shortest ones. This is due to the fact that our data structures are somewhat ready at this point and all we need to do is to interpret them correctly. In this case we simply iterate our inputs and write them to output while compiling our content to the layouts.</p>
<p>If you followed along you should have now something that compiles. In case you want to see the source code in its entirety, check out <a class="underline" href="https://github.com/bebraw/yayassg">https://github.com/bebraw/yayassg</a>. You can also install the generator via NPM using <code>npm install yayassg -g</code>. Atfer that <code>yayassg -i input -o output</code> should work.</p>
<a href="#what-next-"><h2 class="inline" id="what-next-">What Next?</h2></a>
<p>The implementation we have so far is more of a proof of concept. You can definitely use it for simple sites already. There is a lot of room for expansion, however. I've listed some ideas below:</p>
<ul class="list-disc list-inside">
<li>add some visible output there (console.log),</li>
<li>provide progress information using progress module,</li>
<li>set up global configuration available for each layout (ie. config.json at input root),</li>
<li>load only layouts that are actually used by input,</li>
<li>compile only input that has changed.</li>
</ul>
<p>Where to take it depends entirely on your needs. Remember that you can use <code>npm version x.y.z</code> to bump up the version number of your module. This will update package.json, set up a git tag and perform a commit for you. That is very convenient! After that just hit <code>npm publish</code> (and possibly <code>npm adduser</code> before that) to make your module available for consumption.</p>
<p>In case you don't feel like coding and would rather work with something existing, check out <a class="underline" href="http://jster.net/category/static-site-generators">the static generator listing at JSter</a>. That will serve as a starting point.</p>
]]></content></entry><entry><title>Monthly JSter #11: News of November 2013</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-november-2013-part-2"></link><id>monthly-jster-november-2013-part-2</id><published>2013-12-01T15:12:49.000Z</published><content type="text/html"><![CDATA[<p>JSter #11 is here. Yes, it's the dark and cold season of the year (except for those down under). And JS peeps still keep rocking. This time we'll have an extra batch of demos.</p>
<p>Remember that Monthly JSter is available as <a class="underline" href="https://buttondown.email/jster">a newsletter</a>. Our <a class="underline" href="http://feeds.feedburner.com/jster">RSS feed</a> contains some occasional extra content including interviews or book reviews.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://foundation.zurb.com/">http://foundation.zurb.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://foundation.zurb.com/">Foundation 5</a> - The most(?) advanced responsive front-end framework in the world.</li>
<li><a class="underline" href="https://github.com/kupriyanenko/jbone">jbone</a> - Replacement jQuery for Backbone (2.5k)</li>
<li><a class="underline" href="http://jlord.github.io/sheetsee.js/">Sheetsee.js</a> - Google Spreadsheet as a backend. Reminds me of the MS Access days.</li>
<li><a class="underline" href="http://athaeryn.github.io/flyLabel.js/">Flylabel.js</a> - Placeholders don't have to be boring.</li>
<li><a class="underline" href="http://validatejs.org/">Validate.js</a>- A framework agnostic way to validate the structure of your objects.</li>
<li><a class="underline" href="http://namuol.github.io/cheet.js/">cheet.js</a> - Easy easter eggs for your site.</li>
<li><a class="underline" href="http://resumablejs.com/">Resumable.js</a> - Resumable.js provides multiple simultaneous, stable and resumable uploads via the HTML5 File API</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="https://hacks.mozilla.org/2013/11/the-pond-building-a-multi-platform-html5-game/">https://hacks.mozilla.org/2013/11/the-pond-building-a-multi-platform-html5-game/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://hacks.mozilla.org/2013/11/the-pond-building-a-multi-platform-html5-game/">The Pond - Building a Multi-Platform HTML5 Game</a></li>
<li><a class="underline" href="http://sitr.us/2013/05/22/functional-reactive-programming-in-javascript.html">Function Reactive Programming in JavaScript</a></li>
<li><a class="underline" href="http://www.elijahmanor.com/2013/10/front-end-web-dev-jokes.html">Front-End Web Dev Jokes</a></li>
<li><a class="underline" href="http://coding.smashingmagazine.com/2013/11/21/introduction-to-full-stack-javascript/">An Introduction to Full-Stack JavaScript</a></li>
<li><a class="underline" href="http://berzniz.com/post/68001735765/javascript-hacks-for-hipsters">JavaScript Hacks for Hipsters</a></li>
<li><a class="underline" href="http://net.tutsplus.com/tutorials/javascript-ajax/webgl-with-three-js-textures-particles/">WebGL With Three.js: Textures & Particles</a></li>
</ul>
<a href="#node-js"><h2 class="inline" id="node-js">Node.js</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.hanselman.com/blog/IntroducingNodejsToolsForVisualStudio.aspx">http://www.hanselman.com/blog/IntroducingNodejsToolsForVisualStudio.aspx</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.hanselman.com/blog/IntroducingNodejsToolsForVisualStudio.aspx">Introducing Node.js Tools for Visual Studio</a></li>
<li><a class="underline" href="http://www.joyent.com/blog/walmart-node-js-memory-leak">Walmart Node.js Memory Leak</a></li>
<li><a class="underline" href="http://www.nearform.com/nodecrunch/how-node-js-has-revolutionized-the-mailonline">How Node.js Has Revolutionised The Mail Online</a></li>
</ul>
<a href="#angular-js"><h2 class="inline" id="angular-js">Angular.js</h2></a>
<p>{{ screenshot: <a class="underline" href="http://blog.seevl.fm/2013/11/14/angularjs-back/">http://blog.seevl.fm/2013/11/14/angularjs-back/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.seevl.fm/2013/11/14/angularjs-back/">AngularJS: Learning the First Steps to Build a Music Discovery App</a></li>
<li><a class="underline" href="http://www.yearofmoo.com/2013/08/remastered-animation-in-angularjs-1-2.html">Remastered Animation in AngularJS 1.2</a></li>
</ul>
<a href="#presentations"><h2 class="inline" id="presentations">Presentations</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://docs.google.com/presentation/d/1e0z1pT9JuEh8G5DOtib6XFDHK0GUFtrZrU3IfxJynaA/preview#slide=id.p">AngularJS from an Ember.js Perspective</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.thecodeship.com/web-development/alternative-to-javascript-evil-setinterval/">http://www.thecodeship.com/web-development/alternative-to-javascript-evil-setinterval/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.thecodeship.com/web-development/alternative-to-javascript-evil-setinterval/">An Alternative to JavaScript's Evil setInterval</a></li>
<li><a class="underline" href="http://substack.net/task_automation_with_npm_run">Task Automation with NPM Run</a> - You don't need Grunt always!</li>
<li><a class="underline" href="http://tech.kinja.com/handling-500-lines-of-gruntfile-js-1470211529">Handling 500+ lines of Gruntfile.js</a></li>
<li><a class="underline" href="http://www.thecssninja.com/javascript/pointer-events-60fps">60fps Scrolling Using pointer-events: none</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<p>{{ screenshot: <a class="underline" href="http://npmjs.eu/">http://npmjs.eu/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://npmjs.eu/">npmjs.eu</a> - European NPM mirror to rescue when the original one goes down.</li>
<li><a class="underline" href="http://www.crunchzilla.com/">Crunchzilla</a> - JavaScript tutorials in an interactive form.</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.dinosrc.it/">http://www.dinosrc.it/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://www.shadertoy.com/">Shadertoy</a></li>
<li><a class="underline" href="http://www.dinosrc.it/">DynoSRC</a> - Eliminate HTTP requests for JavaScript files and serve differential updates on the fly.</li>
<li><a class="underline" href="https://github.com/facebook/huxley">huxley</a> - Catch visual regressions in web apps.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://middle-earth.thehobbit.com/">The Hobbit - a Journey Through Middle-Earth</a></li>
<li><a class="underline" href="http://jsfiddle.net/ondras/hYfN3/">Tiny Excel in less than 30 lines</a></li>
<li><a class="underline" href="http://codepen.io/suffick/pen/CqIxk">Super Simple Game Engine</a></li>
<li><a class="underline" href="http://www.nihilogic.dk/labs/juicydrop/">WinAmp in JavaScript</a></li>
<li><a class="underline" href="https://gist.github.com/nnarhinen/7666550">Observable Objects and Arrays with jQuery</a></li>
</ul>
<a href="#3d"><h3 class="inline" id="3d">3D</h3></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://thecodeplayer.com/walkthrough/3d-perspective-projection-canvas-javascript">3D Perspective Projection on Canvas</a></li>
<li><a class="underline" href="http://osmbuildings.org/?lat=52.52111&lon=13.40988&zoom=16">OSM Buildings</a></li>
<li><a class="underline" href="http://jsfiddle.net/vz5aZ/2/">JS1k Ray Tracer</a></li>
<li><a class="underline" href="http://david.li/waves/">Ocean Wave Simulation</a></li>
</ul>
<a href="#css"><h3 class="inline" id="css">CSS</h3></a>
<p>{{ screenshot: <a class="underline" href="http://thecodeplayer.com/walkthrough/css3-family-tree">http://thecodeplayer.com/walkthrough/css3-family-tree</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://codepen.io/Matori/pen/JFzok">Frosted Glass Effect in CSS</a></li>
<li><a class="underline" href="http://codepen.io/i0z/pen/mFLCw">Space Game in CSS</a></li>
<li><a class="underline" href="http://paullaros.github.io/stopwatch-in-css/">Stopwatch in CSS</a></li>
<li><a class="underline" href="http://thecodeplayer.com/walkthrough/css3-family-tree">CSS3 Family Tree</a></li>
</ul>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<blockquote>
<p>I like the smell of fresh JavaScript in the morning.</p>
</blockquote>
]]></content></entry><entry><title>Monthly JSter #10: News of November 2013</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-november-2013-part-1"></link><id>monthly-jster-november-2013-part-1</id><published>2013-11-15T15:15:45.000Z</published><content type="text/html"><![CDATA[<p>JSter #10 has arrived and is again packed with content. Remember, if you happen to come by some cool stuff you wish to share, you can always poke us at <a class="underline" href="https://twitter.com/jsterlibs">Twitter</a>.</p>
<p>Remember that Monthly JSter is available as <a class="underline" href="https://buttondown.email/jster">a newsletter</a>. Our <a class="underline" href="http://feeds.feedburner.com/jster">RSS feed</a> contains some occasional extra content including interviews or book reviews.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.javelinjs.com/">http://www.javelinjs.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.angularjs.org/2013/11/angularjs-120-timely-delivery.html">AngularJS 1.2.0</a> - The long awaited release is here. <a class="underline" href="http://jster.net/library/angularjs">JSter entry</a></li>
<li><a class="underline" href="http://bug7a.github.io/progressbar.js/">progressbar.js</a> - Who wouldn't need a progress bar every once in a while? <a class="underline" href="http://jster.net/library/progressbar-js">JSter entry</a></li>
<li><a class="underline" href="http://blog.chromium.org/2013/11/dart-10-stable-sdk-for-structured-web.html">Dart 1.0: A Stable SDK for Structured Web Apps</a> - Dart 1.0 is here! <a class="underline" href="http://jster.net/library/dart">JSter entry</a></li>
<li><a class="underline" href="http://zachbruggeman.me/dogescript/">dogescript in the WOWser</a> - CoffeeScript has been challenged.</li>
<li><a class="underline" href="http://www.javelinjs.com/">Javelin</a> - A large, bloated library with an unintuitive, verbose syntax and very few features by Facebook. <a class="underline" href="http://jster.net/library/javelin">JSter entry</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://christianheilmann.com/2013/10/31/perpetuating-terrible-javascript-practices/">http://christianheilmann.com/2013/10/31/perpetuating-terrible-javascript-practices/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://christianheilmann.com/2013/10/31/perpetuating-terrible-javascript-practices/">Perpetuating Terrible JavaScript Practices</a> - Sometimes even big corporations get it wrong.</li>
<li><a class="underline" href="http://mathiasbynens.be/notes/javascript-unicode">JavaScript has a Unicode Problem</a> - Even if something looks the same it's necessarily so. Fortunately ES6 comes to rescue.</li>
<li><a class="underline" href="http://www.matasano.com/articles/javascript-cryptography/">JavaScript Cryptography Considered Harmful</a> - Yes, it's a cliché title. TLDR; Don't use crypto inside browser. It's hard even if you know what you are doing. Just go SSL.</li>
<li><a class="underline" href="http://demosthenes.info/blog/775/Which-CSS-Measurements-To-Use-When">Which CSS Measurements to Use When</a></li>
<li><a class="underline" href="http://venturebeat.com/2013/11/08/the-future-of-web-apps-is-ready-isomorphic-javascript/">The Future of Web Apps Is -- Ready? -- Isomorphic JavaScript</a> - Yup. The pendulum is about to swing back. First it was all about backend, then about frontend and now people realize both are somewhat important.</li>
<li><a class="underline" href="http://codehum.com/page/how-and-why-building-a-3d-soft-engine-well-its-simply/">How and Why Building a 3D Soft Engine? Well, It's Simply...</a> - Learn to understand 3D by starting from the basics.</li>
</ul>
<a href="#angular-js"><h2 class="inline" id="angular-js">Angular.js</h2></a>
<p>{{ screenshot: <a class="underline" href="http://blog.scalyr.com/2013/10/31/angularjs-1200ms-to-35ms/">http://blog.scalyr.com/2013/10/31/angularjs-1200ms-to-35ms/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://weblogs.asp.net/dwahlin/archive/2013/04/12/video-tutorial-angularjs-fundamentals-in-60-ish-minutes.aspx">Video Tutorial: AngularJS Fundamentals in 60-ish Minutes</a></li>
<li><a class="underline" href="http://teropa.info/blog/2013/11/03/make-your-own-angular-part-1-scopes-and-digest.html">Make Your Own AngularJS, Par 1: Scopes and Digest</a> - Implementing some of the core concepts yourself will give you insight on how they work actually.</li>
<li><a class="underline" href="http://blog.scalyr.com/2013/10/31/angularjs-1200ms-to-35ms/">Optimizing AngularJS: 1200ms to 35ms</a></li>
<li><a class="underline" href="http://codetunes.com/2013/little-known-angular-directives/">Little-known Directives of Angular.js</a></li>
<li><a class="underline" href="http://andyshora.com/promises-angularjs-explained-as-cartoon.html">Promises in AngularJS, Explained as a Cartoon</a></li>
</ul>
<a href="#backbone-js"><h2 class="inline" id="backbone-js">Backbone.js</h2></a>
<p>{{ screenshot: <a class="underline" href="http://pragmatic-backbone.com/">http://pragmatic-backbone.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://pragmatic-backbone.com/">A Pragmatic Guide to Backbone.js Apps</a></li>
</ul>
<a href="#ember-js"><h2 class="inline" id="ember-js">Ember.js</h2></a>
<p>{{ screenshot: <a class="underline" href="http://coding.smashingmagazine.com/2013/11/07/an-in-depth-introduction-to-ember-js/">http://coding.smashingmagazine.com/2013/11/07/an-in-depth-introduction-to-ember-js/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://coding.smashingmagazine.com/2013/11/07/an-in-depth-introduction-to-ember-js/">An In-Depth Introduction to Ember.js</a></li>
<li><a class="underline" href="http://ugisozols.com/blog/2013/11/05/understanding-nesting-in-emberjs/">Understanding Nesting in Ember.js</a></li>
</ul>
<a href="#presentations"><h2 class="inline" id="presentations">Presentations</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.slideshare.net/EyalV/whats-new-in-ecmascript-60">http://www.slideshare.net/EyalV/whats-new-in-ecmascript-60</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.slideshare.net/EyalV/whats-new-in-ecmascript-60">What's new in ECMAScript 6.0</a></li>
</ul>
<a href="#techniques"><h2 class="inline" id="techniques">Techniques</h2></a>
<p>{{ screenshot: <a class="underline" href="http://css-tricks.com/tinted-images-multiple-backgrounds/">http://css-tricks.com/tinted-images-multiple-backgrounds/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://sporto.github.io/blog/2013/02/22/a-plain-english-guide-to-javascript-prototypes/">A Plain English Guide to JavaScript Prototypes</a> - Once you understand how the chain works, you have cracked most of it.</li>
<li><a class="underline" href="http://xahlee.info/js/js_getter_and_setter_properties.html">JavaScript Tutorial: Getter & Setter Properties</a> - If you have ever used Python's properties, you will love this. The syntax is a bit cumbersome but the functionality is somewhat priceless.</li>
<li><a class="underline" href="http://css-tricks.com/tinted-images-multiple-backgrounds/">Tinted Images with Multiple Backgrounds</a></li>
<li><a class="underline" href="http://phoboslab.org/log/2013/11/fast-image-filters-with-webgl">Fast Image Filters with WebGL</a></li>
<li><a class="underline" href="https://gist.github.com/josdejong/4537647">String Interpolation Method for underscore.js</a></li>
<li><a class="underline" href="http://sergimansilla.com/blog/extending-js-inline-unit-tests/">Extending JavaScript with Inline Unit Tests</a></li>
<li><a class="underline" href="http://sitr.us/2013/11/04/functional-data-structures.html">Functional Data Structures in JavaScript with Mori</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2013/11/live-editing-webgl-shaders-with-firefox-developer-tools/">Live Editing WebGL Shaders with Firefox Developer Tools</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<p>{{ screenshot: <a class="underline" href="http://zero.milosz.ca/">http://zero.milosz.ca/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://zero.milosz.ca/">Zeroes in JavaScript</a> - No, it's not PHP. It's JavaScript.</li>
<li><a class="underline" href="http://sideeffect.kr/popularconvention/#javascript">Popular Coding Conventions on GitHub</a> - How conventional are you?</li>
<li><a class="underline" href="https://github.com/airbnb/javascript">Airbnb JavaScript Style Guide</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://jscode.org/">http://jscode.org/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jsbeautifier.org/">JSbeautifier</a> - Got some mess to clean up? JSbeautifier will do that for you. In addition to JavaScript it supports HTML, JSON etc.</li>
<li><a class="underline" href="http://jscode.org/">jsCode</a> - Generate and share your own JavaScript coding guidelines.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.jasondavies.com/maps/rotate/">http://www.jasondavies.com/maps/rotate/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://shapeshifter.io/">Project Shapeshifter</a> - 3D modeling in your browser.</li>
<li><a class="underline" href="http://www.jasondavies.com/maps/rotate/">Rotate the World</a> - D3 is so great.</li>
<li><a class="underline" href="http://codepen.io/lbebber/pen/xrwja">Filling text with CSS</a></li>
</ul>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<blockquote>
<p>You have to understand this in JavaScript.</p>
</blockquote>
]]></content></entry><entry><title>Book Review - Instant Zepto.js by Ian Pointer</title><link rel="alternate" type="text/html" href="https://jster.net/blog/instant_zepto"></link><id>instant_zepto</id><published>2013-11-06T12:47:25.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>This time we'll have a special treat for you, a book review! The book we're reviewing this time was kindly provided by <a class="underline" href="http://www.packtpub.com/">Packt Publishing</a>. Thanks!</p>
</blockquote>
<p>{{ screenshot: <a class="underline" href="http://zeptojs.com">http://zeptojs.com</a> }}</p>
<p>You might be familiar with <a class="underline" href="http://zeptojs.com/">Zepto.js</a>, or just Zepto, already. It is the smaller brother of jQuery developed by <a class="underline" href="https://github.com/madrobby">Thomas Fuchs</a>. It shares most of the API while weighing a lot less. Hence the name Zepto (10^-21).</p>
<p>I have used Zepto before a little bit earlier. It is one of those libraries that is particularly useful in a mobile context where it is important to minimize library size. Apart from that it does not excite me a lot honestly.</p>
<p>This time I will be reviewing a book <em>Instant Zepto.js</em> by <strong>Ian Pointer</strong>. It is a part of <a class="underline" href="http://www.packtpub.com/">Packt Publishing</a>'s Instant series. This means the book itself is very light, just 48 pages out of which around 30 have been dedicated for content. The book is available only in e-book format and costs around ten euros/dollars. Even though quite cheap is the book worth it?</p>
<a href="#support-material"><h2 class="inline" id="support-material">Support Material</h2></a>
<p>The book comes with <a class="underline" href="https://github.com/falloutdurham/zeptojstarter">support material</a>. The fastest way to get started with that is simply to clone the repository, install <code>serve</code> (npm install serve -g), execute <code>serve</code> at your clone directory and then surf to <code>localhost:3000</code> at your browser. Studying the examples should give you some idea of the contents of the book. There is also <a class="underline" href="http://www.packtpub.com/create-mobile-web-apps-with-zeptojs/book">a TOC available at Packt site</a>.</p>
<a href="#content"><h2 class="inline" id="content">Content</h2></a>
<p><img src="/img/blog/34/zepto.jpg" alt="Zepto Book" class="" width="" height="" /></p>
<p>The beginning of the book goes through basic functionality of Zepto and contrasts it with jQuery. It would have been a very good idea to highlight the fact that certain pseudoselectors, like <code>:first</code>, don't work with Zepto. That selector in particular had slipped into an early example.</p>
<p>At times the code could have been formatted better and it could have benefitted from syntax highlighting. It is one of those small things that makes a difference.</p>
<p>Next the author goes through top three features of Zepto. These include animation, build system and mobile device support. Whereas the beginning was more like a reference these have been explained through examples. A good move.</p>
<p>Particularly the mobile examples rely on iOS. It would have been a nice idea to show how to emulate the touch events on desktop. After all you might not have a suitable device available.</p>
<p>The final parts of the book show how to check if a jQuery plugin works with Zepto and how to write your own Zepto plugins compatible with jQuery. Finally there is a brief discussion about differences of jQuery and Zepto.</p>
<p>The author lists Zepto related resources at the very end. A nice touch.</p>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<p>I have mixed feelings about the book. There is definitely useful content but is it worth ten bucks? It feels like the content and examples could have been pushed further. Particularly presentation could have been improved.</p>
<p>I would have appreciated discussion on common Zepto related problems. An app level example would have been very useful as well to see how it works as a part of a bigger whole.</p>
<p>If you are looking for a quick introduction to Zepto and don't feel like crawling through blogosphere, this might be a good starting point. Don't expect miracles, though.</p>
<blockquote>
<p>If you want us to review a JavaScript book, stay in touch! We are open to ideas.</p>
</blockquote>
]]></content></entry><entry><title>Monthly JSter #9: News of October 2013</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-october-2013-part-2"></link><id>monthly-jster-october-2013-part-2</id><published>2013-11-01T22:23:20.000Z</published><content type="text/html"><![CDATA[<p>Time for the second JSter blast of October. We've got some nice resources coming right up! There's even a headless Halloween surprise in store.</p>
<p>Remember that Monthly JSter is available as <a class="underline" href="https://buttondown.email/jster">a newsletter</a>. Our <a class="underline" href="http://feeds.feedburner.com/jster">RSS feed</a> contains some occasional extra content including interviews.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.chocolatechip-ui.com/">http://www.chocolatechip-ui.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.chocolatechip-ui.com/">ChocolateChip-UI</a> - Native look on mobile for web apps. <a class="underline" href="http://jster.net/library/chocolatechip-ui">JSter entry</a></li>
<li><a class="underline" href="http://facebook.github.io/react/blog/2013/10/16/react-v0.5.0.html">React v0.5</a> - <a class="underline" href="http://jster.net/library/react">JSter entry</a></li>
<li><a class="underline" href="https://github.com/jimhigson/oboe.js">oboe.js</a> - Parse JSON objects before response completes <a class="underline" href="http://jster.net/library/oboe-js">JSter entry</a></li>
<li><a class="underline" href="http://snapsvg.io/">Snap.svg</a> - The JavaScript SVG library for the modern web. <a class="underline" href="http://jster.net/library/snap-svg">JSter entry</a></li>
<li><a class="underline" href="https://github.com/facebook/regenerator">regenerator</a> - ES6 generators for ES5. <a class="underline" href="http://jster.net/library/regenerator">JSter entry</a></li>
<li><a class="underline" href="https://github.com/matthewhudson/device.js">device.js</a> - Conditional CSS and/or JavaScript based on device operating system. <a class="underline" href="http://jster.net/library/device-js">JSter entry</a></li>
<li><a class="underline" href="https://github.com/davidstutz/password-score">password-score</a> - Password scoring library. <a class="underline" href="http://davidstutz.de/password-score-password-strength-estimation-using-javascript/">Article</a>. <a class="underline" href="http://jster.net/library/password-score">JSter entry</a></li>
<li><a class="underline" href="http://github.hubspot.com/offline/docs/welcome/">Offline</a> - Alert your users of lost connection. <a class="underline" href="http://jster.net/library/offline">JSter entry</a></li>
<li><a class="underline" href="http://alvarotrigo.com/fullPage/">fullPage.js</a> - Create beautiful fullscreen scrolling websites. <a class="underline" href="http://jster.net/library/fullpage-js">JSter entry</a></li>
<li><a class="underline" href="https://moot.it/riotjs/">Riot.js</a> - MVC framework, in 1k! According to the author it is "The fastest, smallest and most powerful way to build large scale web applications". <a class="underline" href="http://jster.net/library/riot-js">JSter entry</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://blog.alexanderdickson.com/javascript-nes-emulator-part-1">http://blog.alexanderdickson.com/javascript-nes-emulator-part-1</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://html5hub.com/exploring-color-matching-in-javascript/">Exploring Color Matching in JavaScript</a></li>
<li><a class="underline" href="http://blog.alexanderdickson.com/javascript-nes-emulator-part-1">Write a NES Emulator with JavaScript</a></li>
<li><a class="underline" href="http://coding.smashingmagazine.com/2013/10/21/challenging-css-best-practices-atomic-approach/">Challenging CSS Best Practices</a></li>
<li><a class="underline" href="http://victorsavkin.com/post/63551894251/functional-refactoring-in-javascript">Functional Refactoring in JavaScript</a></li>
<li><a class="underline" href="http://domenic.me/2012/10/14/youre-missing-the-point-of-promises/">You're Missing the Point of Promises</a></li>
<li><a class="underline" href="http://davidwalsh.name/3d-websockets">Building a 3D MMO Using WebSockets</a></li>
<li><a class="underline" href="http://blog.carbonfive.com/2013/10/27/the-javascript-event-loop-explained/">The JavaScript Event Loop: Explained</a></li>
<li><a class="underline" href="http://css-tricks.com/well-rounded-compound-shapes-css/">Well Rounded: Compound Shapes in CSS</a></li>
</ul>
<a href="#angular-js"><h3 class="inline" id="angular-js">Angular.js</h3></a>
<p>{{ screenshot: <a class="underline" href="http://www.neevtech.com/blog/2013/08/17/5-cool-features-in-angularjs-1-2/">http://www.neevtech.com/blog/2013/08/17/5-cool-features-in-angularjs-1-2/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.neevtech.com/blog/2013/08/17/5-cool-features-in-angularjs-1-2/">5 Cool New Features in AngularJS 1.2</a></li>
<li><a class="underline" href="http://paulhammant.com/2013/10/23/a-lower-tech-style-of-angular-for-the-enterprise/">A Lower Technology Style of Angular for the Enterprise</a></li>
<li><a class="underline" href="http://www.ng-newsletter.com/posts/serious-angular-seo.html">What you need to know about Angular SEO</a></li>
<li><a class="underline" href="http://lhorie.blogspot.ca/2013/09/things-that-suck-in-angularjs.html">Things That Suck in AngularJS</a></li>
</ul>
<a href="#presentations"><h2 class="inline" id="presentations">Presentations</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://addyosmani.com/blog/the-future-of-data-binding-is-object-observe/">The Future of data-binding is Object.observe()</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<p>{{ screenshot: <a class="underline" href="http://startbootstrap.com/">http://startbootstrap.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://startbootstrap.com/">Start Bootstrap</a> - Free HTML Starter Templates for Bootstrap</li>
<li><a class="underline" href="http://es5.github.io/">Annotated ECMAScript 5.1</a></li>
<li><a class="underline" href="http://dochub.io/">DocHub</a> - Web development documentation in one place</li>
<li><a class="underline" href="https://dash.generalassemb.ly/">Dash</a> - Learn to make awesome websites</li>
<li><a class="underline" href="http://cssdb.co/">CSSDB</a> - A curated collection of great CSS, SASS, LESS and Stylus libraries</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.roblaplaca.com/examples/bezierBuilder/">CSS cubic-bezier builder</a></li>
<li><a class="underline" href="http://fiddlesalad.com/">Fiddle Salad</a> - Yup, a competitor to jsfiddle, jsbin and co.</li>
<li><a class="underline" href="http://theironcook.github.io/Kojak/">Kojak</a> - A simple JavaScript performance profiler</li>
<li><a class="underline" href="http://glsl.heroku.com/">GLSL Sandbox</a></li>
<li><a class="underline" href="http://www.kickjs.org/example/shader_editor/shader_editor.html">Kick.js shader editor</a></li>
<li><a class="underline" href="https://github.com/shakyShane/browser-sync">browser-sync</a> - Successor of LiveReload is here? See also <a class="underline" href="http://css-tricks.com/cross-browser-css-injection/">related article</a>.</li>
<li><a class="underline" href="http://triflejs.org/">TrifleJS</a> - Headless IE! Happy Halloween.</li>
<li><a class="underline" href="http://bekk.github.io/retire.js/">Retire.js</a> - Scan your Node.js app to find known vulnerabilities.</li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.puzzlescript.net/play.html?p=6860122">Heroes of Sokoban</a> - If you like Sokoban and RPGs, you will love this. <a class="underline" href="http://www.puzzlescript.net/play.html?p=6910207">Part 2</a>, <a class="underline" href="http://www.puzzlescript.net/play.html?p=7072276">Part 3</a>.</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<p>{{ screenshot: <a class="underline" href="http://tympanus.net/Development/AnimatedCheckboxes/">http://tympanus.net/Development/AnimatedCheckboxes/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://tympanus.net/Development/AnimatedCheckboxes/">Animated Checkboxes and Radio Buttons with SVG</a></li>
<li><a class="underline" href="http://mario.ign.com/">Museum of Mario</a></li>
<li><a class="underline" href="http://www.p01.org/releases/wolfensteiny/">Wolfensteiny</a> - You can achieve a lot in 251 bytes.</li>
<li><a class="underline" href="http://www.effectgames.com/demos/canvascycle/">Canvas Cycling</a> - Golden oldie.</li>
<li><a class="underline" href="http://codepen.io/LFeh/pen/qzDCJ">Cartman in CSS</a> - Kick ass.</li>
</ul>
<a href="#emulators"><h3 class="inline" id="emulators">Emulators</h3></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.teamten.com/lawrence/projects/turbo_pascal_compiler/demo/">Turbo Pascal</a> - <a class="underline" href="http://www.teamten.com/lawrence/projects/turbo_pascal_compiler/">Article</a></li>
<li><a class="underline" href="http://copy.sh/v24/">x86 emulator</a></li>
<li><a class="underline" href="http://jsmachines.net/demos/pc/cga-win101/xt-cga-win101.xml">Windows v1.01 emulator</a> - Those were the days.</li>
<li><a class="underline" href="http://jamesfriend.com.au/pce-js/">OS 7 emulator</a></li>
</ul>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<blockquote>
<p>Speed dating is awful. 7 minutes isn't long enough to explain closures to someone.</p>
</blockquote>
]]></content></entry><entry><title>Monthly JSter #8: News of October 2013</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-october-2013-part-1"></link><id>monthly-jster-october-2013-part-1</id><published>2013-10-16T11:38:22.000Z</published><content type="text/html"><![CDATA[<p>Okay guys. We're going to try something a little different here. On average we tweet around three times per day at <a class="underline" href="https://twitter.com/jsterlibs">@jsterlibs</a>. Roughly that means 90 links or so per month. That's a lot to click through.</p>
<p>As a result I'm trying out something a little different here. How would a bi-weekly publishing schedule sound? Then it's 45 links and I have time to include some commentary and there's less to click through. Everybody wins!</p>
<p>Remember that Monthly JSter is available as <a class="underline" href="https://buttondown.email/jster">a newsletter</a>. Our <a class="underline" href="http://feeds.feedburner.com/jster">RSS feed</a> contains some occasional extra content including interviews.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://github.hubspot.com/odometer/">http://github.hubspot.com/odometer/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/jakutis/httpinvoke">httpinvoke</a> - HTTP client library that shows a lot of promise!</li>
<li><a class="underline" href="https://github.com/petkaantonov/bluebird">Bluebird</a> - A promise library with stellar performance.</li>
<li><a class="underline" href="http://github.hubspot.com/odometer/">Odometer</a> - Awesome looking way to perform number transitions.</li>
<li><a class="underline" href="https://github.com/dobtco/formbuilder">FormBuilder</a> - Let your users build their own forms. Useful for survey builders etc. <a class="underline" href="http://dobtco.github.io/formbuilder/">Demo</a>.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://flippinawesome.org/2013/09/30/functional-reactive-programming-in-javascript/">http://flippinawesome.org/2013/09/30/functional-reactive-programming-in-javascript/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.nczonline.net/blog/2013/10/07/node-js-and-the-new-web-front-end/">Node.js and the new web front-end</a> - The good news is that we can leave business logic for the languages that are a good fit for that and insulate ourselves from that.</li>
<li><a class="underline" href="http://css.dzone.com/articles/how-make-bootstrap-3-theme">How to Make a Bootstrap 3 Theme The Proper Way</a></li>
<li><a class="underline" href="http://flippinawesome.org/2013/09/30/functional-reactive-programming-in-javascript/">Functional Reactive Programming in JavaScript</a></li>
<li><a class="underline" href="http://www.funnyant.com/choosing-javascript-mvc-framework/">Size Does Matter: Choosing a Javascript MVC Framework</a></li>
<li><a class="underline" href="http://www.leaseweblabs.com/2013/10/api-first-architecture-fat-vs-thin-server-debate/">API first architecture or the fat vs thin server debate</a></li>
<li><a class="underline" href="http://www.bestdesigntuts.com/10-time-saving-javascript-code-snippets-for-web-developers">10 Time-Saving JavaScript Code Snippets For Web Developers</a></li>
<li><a class="underline" href="http://strongloop.com/strongblog/how-to-heap-snapshots/">How-to: Heap Snapshots and Handling Node.js Memory Leaks</a> - The StrongLoop guys strike again. With quality content.</li>
</ul>
<a href="#presentations"><h2 class="inline" id="presentations">Presentations</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.testdouble.com/posts/2013-10-03-javascript-testing-tactics.html">JavaScript Testing Tactics</a></li>
<li><a class="underline" href="http://www.slideshare.net/sotomajor/grownup-javascript-with-angularjs">Grown-up JavaScript with AngularJS</a> - Slides only.</li>
<li><a class="underline" href="http://rachelnabors.com/javascript-for-designers/">JavaScript for Designers</a> - Show this to your designer friends!</li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<p>{{ screenshot: <a class="underline" href="http://ngmodules.org/">http://ngmodules.org/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://ngmodules.org/">ngmodules</a> - Find your Angular modules here.</li>
<li><a class="underline" href="http://www.bentobox.io/">bento</a> - Everything you need to know about web development apparently fits into a bento box.</li>
<li><a class="underline" href="http://daneden.me/animate/">Animate.css</a> - A collection of cool, fun(!) and cross-browser animations.</li>
<li><a class="underline" href="http://christopheviau.com/d3list/">The Big List of D3.js Examples</a></li>
<li><a class="underline" href="http://jsbin.com/OqUWagu/24">Collection of Promise Experiments</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://nodeos.github.io/">http://nodeos.github.io/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://harpjs.com/">harp</a> - The static web server with built-in preprocessing. Need to host some Markdown files quick and get them rendered? Harp does that.</li>
<li><a class="underline" href="http://benweet.github.io/stackedit/">StackEdit</a> - A sweet, web-based MarkDown editor.</li>
<li><a class="underline" href="http://nodeos.github.io/">NodeOS</a> - Not a troll, I promise.</li>
<li><a class="underline" href="https://github.com/mixu/nwm">nwm</a> - Window manager for X11 developed using Node.js.</li>
<li><a class="underline" href="http://jsil.org/">JSIL</a> - JSIL transforms .NET applications and libraries into cross-browser JavaScript. So if you are into dotnet, this might be your thing.</li>
<li><a class="underline" href="http://html5snippet.net/">html5snippet</a> - More competition to jsbin, jsfiddle and co.</li>
<li><a class="underline" href="http://stridercd.com/">Strider CD</a> - Open source continuous integration and deployment server.</li>
<li><a class="underline" href="http://cubic-bezier.com/">cubic-bezier</a> - Understand how <code>cubic-bezier</code> CSS declaration works.</li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<p>{{ screenshot: <a class="underline" href="http://toys.usvsth3m.com/javascript-under-pressure/">http://toys.usvsth3m.com/javascript-under-pressure/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://toys.usvsth3m.com/javascript-under-pressure/">You Can't JavaScript Under Pressure</a> - Or can you? Extra challenge: use only functional solutions.</li>
<li><a class="underline" href="http://www.hover.ie/">Hover</a> - Yes, it's the same they included in CD-ROM version of Windows 95. Nostalgy!</li>
<li><a class="underline" href="http://www.fullscreenmario.com/">Full Screen Mario</a> - Tidit-tiddyti-ti...</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://play.lso.co.uk/">LSO Play</a> - Experience LSO's performance from the pole position. Never before has an orchestra been this close to the audience.</li>
<li><a class="underline" href="http://plunk.org/~grantham/ray1/">1987 ray-tracer ported to WebGL</a> - The WebGL port is realtime. Quite sweet actually.</li>
<li><a class="underline" href="http://www.cloudpaint.com/client/index.php">MacPaint</a></li>
<li><a class="underline" href="http://littleworkshop.fr/landscapes/">Digital Landscapes</a> - Beautiful landscapes implemented in WebGL.</li>
<li><a class="underline" href="http://zoomquilt.org/">The Zoomquilt</a> - Supposedly deadmau5 works well with this. You didn't hear that from me, though.</li>
</ul>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<blockquote>
<p>When a JavaScript date has gone bad - "Don't call me, I'll callback you. I promise!"</p>
</blockquote>
]]></content></entry><entry><title>Monthly JSter #7: News of September 2013</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-september-2013"></link><id>monthly-jster-september-2013</id><published>2013-10-02T10:01:18.000Z</published><content type="text/html"><![CDATA[<p>September, another month filled with JavaScript coding! The community definitely kept busy again. This time we have an extra dose of demos available. You might also be interested in <a class="underline" href="http://js13kgames.com/">js13k entries</a>.</p>
<p>Remember that Monthly JSter is available as <a class="underline" href="https://buttondown.email/jster">a newsletter</a>. Our <a class="underline" href="http://feeds.feedburner.com/jster">RSS feed</a> contains some occasional extra content.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://html9responsiveboilerstrapjs.com/">http://html9responsiveboilerstrapjs.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://html9responsiveboilerstrapjs.com/">HTML9 Responsive Boilerstrap JS</a> - Do I need to say more?</li>
<li><a class="underline" href="https://www.talater.com/annyang/">annyang!</a> - Speech recognition for your site!</li>
<li><a class="underline" href="http://ojjs.org/">OJ</a> - Build websites with objects. Weird but strangely working idea.</li>
<li><a class="underline" href="http://marianoguerra.github.io/json.human.js/">json.human.js</a> - JSON formatting for human beings, not just programmers.</li>
<li><a class="underline" href="http://fabricjs.com/">Fabric.js 1.3</a> - Fabric.js reached version 1.3. See <a class="underline" href="https://github.com/kangax/fabric.js/blob/master/CHANGELOG.md">change log</a> for details.</li>
<li><a class="underline" href="http://www.peter-eigenschink.at/projects/steganographyjs/">steganography.js</a> - Hide data into images on your site. For whatever good that might do...</li>
<li><a class="underline" href="https://github.com/sureshdsk/browser-specific-css">browser-specific-css</a> - Write CSS aimed for specific browser, device or operating system.</li>
<li><a class="underline" href="http://www.fullstack.io/choc/">choc</a> - Step through code in a visual manner. Perfect for education.</li>
</ul>
<a href="#ui"><h3 class="inline" id="ui">UI</h3></a>
<p>{{ screenshot: <a class="underline" href="http://designmodo.github.io/Flat-UI/">http://designmodo.github.io/Flat-UI/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://lab.ejci.net/favico.js/">favico.js</a> - Finally a way to do cool stuff with favicons!</li>
<li><a class="underline" href="http://designmodo.github.io/Flat-UI/">Flat UI</a> - It doesn't get flatter than this.</li>
<li><a class="underline" href="https://github.com/BrandwatchLtd/tabler">tabler</a> - Build dynamic tables on client side. <a class="underline" href="http://jster.net/library/tabler-js">JSter entry</a></li>
<li><a class="underline" href="https://togetherjs.com/">TogetherJS</a> - Allow collaboration on your site.</li>
<li><a class="underline" href="http://kylestetz.github.io/CLNDR/">CLNDR</a> - Calendar plugin for jQuery with some class. <a class="underline" href="http://jster.net/library/cldnr">JSter entry</a></li>
<li><a class="underline" href="http://semantic-ui.com/">Semantic UI</a> - Humanize your semantics.</li>
<li><a class="underline" href="https://github.com/jonathanstark/FastActive">FastActive</a> - Make websites and web apps feel as responsive as native apps on touch devices.</li>
<li><a class="underline" href="http://quasimondo.com/ZorroJS/">ZorroJS</a> - Combine transparency of PNGs with size of JPGs.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://flippinawesome.org/2013/08/19/ractive-js-expressions-and-the-new-wave-of-reactive-programming/">http://flippinawesome.org/2013/08/19/ractive-js-expressions-and-the-new-wave-of-reactive-programming/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://flippinawesome.org/2013/08/19/ractive-js-expressions-and-the-new-wave-of-reactive-programming/">Ractive.js Expressions and the New Wave of Reactive Programming</a></li>
<li><a class="underline" href="http://generatedcontent.org/post/60400838960/intltips">Internationalization API tips and tricks</a></li>
<li><a class="underline" href="http://blog.teamtreehouse.com/implementing-native-drag-and-drop">Implementing Native Drag and Drop</a></li>
<li><a class="underline" href="http://tech.pro/blog/1561/five-helpful-tips-when-using-requirejs">Five Helpful Tips When Using RequireJS</a></li>
<li><a class="underline" href="http://www.thomasboyt.com/2013/09/01/maintainable-grunt.html">More maintainable Gruntfiles</a></li>
<li><a class="underline" href="http://jster.net/blog/taming-big-data-with-udi-falkson">Taming Big Data - Interview with Udi Falkson of iknow.io</a></li>
<li><a class="underline" href="http://ericleads.com/2013/04/youre-optimizing-the-wrong-things/">You’re Optimizing The Wrong Things</a></li>
<li><a class="underline" href="http://www.clientcide.com/deep-thoughts/how-to-become-a-javascript-badass/">How to Become a JavaScript Badass</a></li>
<li><a class="underline" href="http://mainroach.blogspot.in/2013/09/extreme-javascript-minimization.html">Extreme Javascript Minimization</a></li>
<li><a class="underline" href="http://dotnet.dzone.com/articles/quick-tip-%E2%80%93-empty-javascript">Quick Tip – Empty a JavaScript Array</a></li>
</ul>
<a href="#backend"><h3 class="inline" id="backend">Backend</h3></a>
<p>{{ screenshot: <a class="underline" href="http://martinfowler.com/articles/asyncJS.html">http://martinfowler.com/articles/asyncJS.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://martinfowler.com/articles/asyncJS.html">Testing Asynchronous JavaScript</a></li>
<li><a class="underline" href="http://spion.github.io/posts/analysis-generators-and-other-async-patterns-node.html">Analysis of generators and other async patterns in node</a></li>
<li><a class="underline" href="http://h3manth.com/new/blog/2013/es6-on-nodejs/">ES6 on Node.js</a></li>
<li><a class="underline" href="http://tamaspiros.co.uk/2013/09/19/what-is-the-mean-stack/">What is the MEAN stack?</a></li>
</ul>
<a href="#mvc"><h3 class="inline" id="mvc">MVC</h3></a>
<p>{{ screenshot: <a class="underline" href="http://www.ng-newsletter.com/posts/d3-on-angular.html">http://www.ng-newsletter.com/posts/d3-on-angular.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.shinetech.com/2013/09/06/backbone-is-not-enough/">Backbone Is Not Enough</a></li>
<li><a class="underline" href="http://tutorialzine.com/2013/08/learn-angularjs-5-examples/">Learn AngularJS With These 5 Practical Examples</a></li>
<li><a class="underline" href="http://www.ng-newsletter.com/posts/d3-on-angular.html">D3 on AngularJS</a></li>
<li><a class="underline" href="http://www.sitepoint.com/10-reasons-use-angularjs/">10 Reasons Why You Should Use AngularJS</a></li>
<li><a class="underline" href="https://moot.it/blog/technology/frameworkless-javascript.html">Frameworkless JavaScript</a></li>
</ul>
<a href="#ui"><h3 class="inline" id="ui">UI</h3></a>
<p>{{ screenshot: <a class="underline" href="http://philipwalton.github.io/solved-by-flexbox/">http://philipwalton.github.io/solved-by-flexbox/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://philipwalton.github.io/solved-by-flexbox/">Solved by Flexbox</a></li>
<li><a class="underline" href="http://davidwalsh.name/write-css-javascript">Write Your CSS with JavaScript</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<p>{{ screenshot: <a class="underline" href="http://garann.github.io/template-chooser/">http://garann.github.io/template-chooser/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/audreyr/favicon-cheat-sheet">favicon-cheat-sheet</a></li>
<li><a class="underline" href="http://garann.github.io/template-chooser/">Template engine chooser</a></li>
<li><a class="underline" href="http://tympanus.net/codrops/2013/05/07/a-collection-of-page-transitions/">A Collection of Page Transitions</a></li>
<li><a class="underline" href="http://www.dungeonsanddevelopers.com/">Dungeons & Developers</a></li>
<li><a class="underline" href="http://www.comp.nus.edu.sg/~cs1101s/sicp/">SICP in JavaScript</a></li>
<li><a class="underline" href="http://kangax.github.io/es5-compat-table/">ECMAScript 5 compatibility table</a> - There's one for <a class="underline" href="http://kangax.github.io/es5-compat-table/es6/">ES6</a> too. Truly a lifesaver.</li>
<li><a class="underline" href="http://sighjavascript.tumblr.com/">Sigh, JavaScript</a></li>
<li><a class="underline" href="http://www.browserswarm.com/">BrowserSwarm</a> - Testing automation.</li>
<li><a class="underline" href="http://smacss.com/">SMACSS</a> - Also known as "Scalable and Modular Architecture for CSS"</li>
<li><a class="underline" href="http://braythwayt.com/2013/10/01/javascript-allonge-is-free.html">JavaScript Allonge is Free</a> - It's an ebook.</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://getfireshell.com/">http://getfireshell.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://getfireshell.com/">FireShell</a> - Fiercely quick front-end boilerplate and workflows.</li>
<li><a class="underline" href="https://www.google.com/webdesigner/">Google Web Designer</a> - Bring ideas (or ads) to life across screens.</li>
</ul>
<a href="#services"><h2 class="inline" id="services">Services</h2></a>
<p>{{ screenshot: <a class="underline" href="http://thecodeplayer.com/">http://thecodeplayer.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://errormator.com/">Errormator</a> - Track errors and performance issues in your app.</li>
<li><a class="underline" href="http://node-modules.com/">node-modules</a> - Yet another search engine for Node.js modules.</li>
<li><a class="underline" href="http://www.codewars.com/">Codewars</a> - Katas, lots of them.</li>
<li><a class="underline" href="http://www.codeavengers.com/">Code Avengers</a> - Courses, challenges and the shiz.</li>
<li><a class="underline" href="http://developer.here.com/javascript-apis/api-explorer">HERE API</a> - Alternative to Google Maps.</li>
<li><a class="underline" href="http://thecodeplayer.com/">TheCodePlayer</a> - Video style walkthroughs showing how to create something from scratch.</li>
<li><a class="underline" href="https://www.debuggify.net/">debuggify</a> - Error analytics for modern JavaScript applications.</li>
</ul>
<a href="#hardware"><h2 class="inline" id="hardware">Hardware</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.dragoninnovation.com/projects/22-tessel">http://www.dragoninnovation.com/projects/22-tessel</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.dragoninnovation.com/projects/22-tessel">Tessel</a> - It's available now.</li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<p>{{ screenshot: <a class="underline" href="http://jswarrior.fusioncharts.com/">http://jswarrior.fusioncharts.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jswarrior.fusioncharts.com/">The JavaScript Warrior</a> - Runs on JavaScript. Literally.</li>
<li><a class="underline" href="http://nodeschool.io/">Learn Node.js via Adventures</a></li>
<li><a class="underline" href="http://hellorun.helloenjoy.com/">HelloRun</a></li>
<li><a class="underline" href="http://fir.sh/projects/jsnes/">JSNES</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<p>{{ screenshot: <a class="underline" href="http://jsmess.textfiles.com/">http://jsmess.textfiles.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/rezoner/chirp/wiki/Chirp-composer---reference">Chirp</a> - Chiptunes in JavaScript.</li>
<li><a class="underline" href="http://www.christianostman.com/sthlmjs/">sthlmjs meetup slides</a> - A different kind of WebGL presentation.</li>
<li><a class="underline" href="http://codepen.io/anon/pen/goKce">Pacman in CSS</a> - Omnomnom.</li>
<li><a class="underline" href="https://www.justareflektor.com/">Just a reflektor</a>, <a class="underline" href="https://github.com/unit9/justareflektor">source</a></li>
<li><a class="underline" href="http://jlongster.com/s/lljs-cloth/">Tearable cloth in asm.js</a></li>
<li><a class="underline" href="http://aem1k.com/world/">World in 1k</a></li>
<li><a class="underline" href="http://jsmess.textfiles.com/">JavaScript MESS</a> - Nostalgy.</li>
<li><a class="underline" href="http://fikascript.se/">FikaScript</a> - Swedish version of JavaScript. Jättebra!</li>
<li><a class="underline" href="http://s-macke.github.io/jor1k/">jor1k</a> - OpenRISC OR1K Javascript Emulator Running Linux.</li>
<li><a class="underline" href="http://www.projekktor.com/demos/audioslideshow/">Projekktor</a> - Audio synced slides.</li>
</ul>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<blockquote>
<p>To make a mistake is human and to repeat that mistake over millions of browsers is JavaScript.</p>
</blockquote>
]]></content></entry><entry><title>Taming Big Data - Interview with Udi Falkson of iknow.io</title><link rel="alternate" type="text/html" href="https://jster.net/blog/taming-big-data-with-udi-falkson"></link><id>taming-big-data-with-udi-falkson</id><published>2013-09-19T14:18:16.000Z</published><content type="text/html"><![CDATA[<p>These days it's very easy to bump into term "big data". What is it like to develop a service around it? That is what we are about to find out as Udi Falkson of <a class="underline" href="http://iknow.io/">iknow.io</a> will tell a bit about his story and some of the technology choices they have made.</p>
<a href="#hi-udi-can-you-tell-us-something-about-yourself-"><h4 class="inline" id="hi-udi-can-you-tell-us-something-about-yourself-">Hi, <a class="underline" href="https://twitter.com/udi">@udi</a>. Can you tell us something about yourself?</h4></a>
<p>Hi.  I'm Udi, the co-founder and head of product at iknow.io.  Earlier in my career, I was one of the first engineers working on Yahoo! Answers and I'm also the creator of <a class="underline" href="http://isitnormal.com">isitnormal.com</a>.</p>
<a href="#can-you-describe-what-big-data-is-about-how-does-iknow-io-relate-to-it-"><h4 class="inline" id="can-you-describe-what-big-data-is-about-how-does-iknow-io-relate-to-it-">Can you describe what big data is about? How does iknow.io relate to it?</h4></a>
<p>The amount of raw, available data out there in the world is growing exponentially.  Sites like <a class="underline" href="http://www.data.gov/">data.gov</a> and others are giving the public all kinds of great data to play with.  However, no good tools have emerged to make all this data accessible and useful to the majority of people that really care about it.  This is what we're changing with iknow.io.</p>
<p>Today, unless you're a computer programmer or a scientist, working with anything more complicated than what will fit into a simple spreadsheet is not possible.  Most people are shut out of the game.  We are taking these complex data-sets and making them useful for anyone to explore and analyze.  We do this by sourcing, merging and cleaning the data and providing a new breed of intuitive data analysis and comparison tools for people to use.</p>
<p>We currently have detailed data about Movies and US Congress.  NBA data is coming very soon, and many more verticals will be added in the future.</p>
<a href="#what-kind-of-technical-challenges-have-you-encountered-during-its-development-"><h4 class="inline" id="what-kind-of-technical-challenges-have-you-encountered-during-its-development-">What kind of technical challenges have you encountered during its development?</h4></a>
<p>What we are doing is extremely technically challenging.  Our amazing back-end team has built systems from the ground-up to scalably handle extremely large datasets of drastically varying structures.  To account for the different ways that data can be organized (for example, movie data and congressional data have very different structures), we have built our systems around a proprietary graph database.  To complement our graph database, we make heavy use of existing technologies, like Redis, Mongodb, Sphinx Search and Postgres.</p>
<p>The biggest challenge we've encountered is that data is messy, really messy.  This fact led us to build a suite of in-house data cleanup and matching tools that have enabled us to efficiently load, update and organize these complex data sets and provide them to our users in a seemingly simple format that hides the real complexity from them.</p>
<p>On the front-end, our data analysis tools are rather advanced and it's taken our very small front-end team (just me) quite a bit of work to get them working nicely.  There are also a few particular UI touches that required quite a bit of effort to get working across all browsers, such as our data results table view that has persistent horizontal and vertical scrolling headers.</p>
<a href="#you-mentioned-you-have-chosen-to-use-backbone-on-the-front-end-side-the-framework-has-received-some-criticism-lately-new-options-such-as-angular-and-ember-js-have-arisen-why-did-you-choose-backbone-are-you-happy-with-your-choice-"><h4 class="inline" id="you-mentioned-you-have-chosen-to-use-backbone-on-the-front-end-side-the-framework-has-received-some-criticism-lately-new-options-such-as-angular-and-ember-js-have-arisen-why-did-you-choose-backbone-are-you-happy-with-your-choice-">You mentioned you have chosen to use Backbone on the front-end side. The framework has <a class="underline" href="http://blog.shinetech.com/2013/09/06/backbone-is-not-enough/">received some criticism</a> lately. New options, such as Angular and Ember.js have arisen. Why did you choose Backbone? Are you happy with your choice?</h4></a>
<p>Most of our front-end code is standard server-side Python (Django).  For our more complex and interactive data analysis tools, we opted to provide our users with a more responsive, client-side experience.  We used Backbone.js for this, and the client-side UI communicates with our query engine via REST apis.  I selected Backbone after a lot of research and I'm more or less happy with it.  It's relatively light-weight and there's very little magic, but I have run into a few small bugs and the code can get messy if you're not careful.  A Backbone program will be only as good as the programmer writing it, because it does very little work for you.  What it does do is give you just enough of a structure to work with so you can keep things manageable and maintainable.</p>
<p>That said, I'm very interested in Angular and Ember and have read a lot about them.  When I started building iknow.io nearly a year ago both of these other frameworks were not quite as mature and I didn't feel comfortable going with either one.  If I were to start over again today, I think I'd give them both serious consideration and I'm leaning towards Angular for my next such project.</p>
<a href="#how-do-you-see-the-future-of-javascript-development-are-there-any-particular-trends-in-sight-you-would-like-to-highlight-"><h4 class="inline" id="how-do-you-see-the-future-of-javascript-development-are-there-any-particular-trends-in-sight-you-would-like-to-highlight-">How do you see the future of JavaScript development? Are there any particular trends in sight you would like to highlight?</h4></a>
<p>Javascript is being used more and more on the server, and it has become tempting to use it for the whole stack to be able to share code between the front-end and back-end.  In our case, Python is so strong when it comes to number crunching (we make heavy use of <a class="underline" href="http://pandas.pydata.org/">Pandas</a>), that it didn't make sense for us to do so, but I see this becoming more and more common in the future and I know <a class="underline" href="http://getinstinct.com">a few people</a> that are building sites this way today.</p>
<a href="#given-jster-is-a-javascript-catalog-can-you-please-list-some-of-your-favorite-libraries-"><h4 class="inline" id="given-jster-is-a-javascript-catalog-can-you-please-list-some-of-your-favorite-libraries-">Given JSter is a JavaScript catalog, can you please list some of your favorite libraries?</h4></a>
]]></content></entry><entry><title>Monthly JSter #6: News of August 2013</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-august-2013"></link><id>monthly-jster-august-2013</id><published>2013-09-02T15:03:34.000Z</published><content type="text/html"><![CDATA[<p>The JS people have been busy as ever it seems. Time to go through some highlights of the month.</p>
<p>Remember that Monthly JSter is available as <a class="underline" href="https://buttondown.email/jster">a newsletter</a>. Our <a class="underline" href="http://feeds.feedburner.com/jster">RSS feed</a> contains some occasional extra content.</p>
<p>Psst. If you happen to come by some awesome content and would like us to feature it, poke <a class="underline" href="https://twitter.com/jsterlibs">@jsterlibs</a> at Twitter.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://yeoman.io/blog/hello-1.0.html">http://yeoman.io/blog/hello-1.0.html</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://emberjs.com/blog/2013/08/31/ember-1-0-released.html">Ember 1.0</a> - The long awaited Ember 1.0 is here! And just in time for Monthly JSter. <a class="underline" href="http://jster.net/library/ember-js">JSter entry</a></li>
<li><a class="underline" href="http://blog.getbootstrap.com/2013/08/19/bootstrap-3-released/">Bootstrap 3</a> - Another long awaited release. Now with mobile first approach.</li>
<li><a class="underline" href="http://yeoman.io/blog/hello-1.0.html">Yeoman 1.0</a> - The Kraken is out! More generators than the doctor prescribed.</li>
<li><a class="underline" href="http://jsep.from.so/">jsep</a> - A simple JavaScript expression parser written in JavaScript.</li>
<li><a class="underline" href="https://github.com/jonathantneal/polyfill">polyfill</a> - Polyfill combinator that selectively polyfills what the browser needs.</li>
<li><a class="underline" href="https://github.com/medialize/URI.js">URI.js</a> - Mutate URIs easily.</li>
<li><a class="underline" href="http://intentionjs.com/">intention.js</a> - Light weight way to dynamically restructure HTML in a responsive manner.</li>
<li><a class="underline" href="http://taskjs.org/">task.js</a></li>
<li><a class="underline" href="http://thechangelog.com/stop-writing-regular-expressions-express-them-with-verbal-expressions/">Verbal Expressions</a></li>
</ul>
<a href="#ui"><h3 class="inline" id="ui">UI</h3></a>
<p>{{ screenshot: <a class="underline" href="http://wagerfield.github.io/parallax/">http://wagerfield.github.io/parallax/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.fineuploader.com/2013/08/16/fine-uploader-s3-upload-directly-to-amazon-s3-from-your-browser/">Fine Uploader 3.8</a> - Now with S3 uploads. <a class="underline" href="http://jster.net/library/fine-uploader">JSter entry</a></li>
<li><a class="underline" href="http://ricostacruz.com/nprogress/">NProgress.js</a> - A monoscopic progress bar. <a class="underline" href="http://jster.net/library/nprogress-js">JSter entry</a></li>
<li><a class="underline" href="http://parsleyjs.org/">Parsley.js</a> - Powerful form validation. <a class="underline" href="http://jster.net/library/parsley-js">JSter entry</a></li>
<li><a class="underline" href="http://mozilla.github.io/brick/">Brick</a> - UI Components for Modern Web Apps. <a class="underline" href="http://jster.net/library/brick">JSter entry</a></li>
<li><a class="underline" href="http://wagerfield.github.io/parallax/">parallax.js</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: <a class="underline" href="http://readwrite.com/2013/08/09/why-javascript-will-become-the-dominant-programming-language-of-the-enterprise">http://readwrite.com/2013/08/09/why-javascript-will-become-the-dominant-programming-language-of-the-enterprise</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://coding.smashingmagazine.com/2013/08/02/other-interface-atomic-design-sass/">The "Other" Interface: Atomic Design With Sass</a></li>
<li><a class="underline" href="https://gist.github.com/jareware/4738651">Advanced SCSS</a></li>
<li><a class="underline" href="http://wildermuth.com/2013/8/3/JavaScript_Promises">JavaScript Promises</a> - Understand the pattern!</li>
<li><a class="underline" href="http://www.toptal.com/javascript/guide-to-full-stack-javascript-initjs">Init.js: A Guide to the Why and How of Full-Stack JavaScript</a></li>
<li><a class="underline" href="http://www.sencha.com/blog/toward-modern-web-apps-with-ecmascript-6">Toward Modern Web Apps with ECMAScript 6</a></li>
<li><a class="underline" href="https://blog.mozilla.org/security/2013/08/16/introducing-fuzzdb/">Introducing FuzzDB</a></li>
<li><a class="underline" href="http://readwrite.com/2013/08/09/why-javascript-will-become-the-dominant-programming-language-of-the-enterprise">Why JavaScript Will Become The Dominant Programming Language Of The Enterprise</a></li>
<li><a class="underline" href="http://jster.net/blog/javascript-data-structures">Get Most Out of JavaScript Data Structures</a></li>
<li><a class="underline" href="http://jster.net/blog/sorted-maps-in-javascript#.UiMQwmT08U8">Sorted Maps in JavaScript</a></li>
<li><a class="underline" href="http://www.thinkful.com/learn/javascript-best-practices-1/">JavaScript Best Practices Part 1</a></li>
</ul>
<a href="#mvc"><h3 class="inline" id="mvc">MVC</h3></a>
<p>{{ screenshot: <a class="underline" href="http://joelhooks.com/blog/2013/08/03/learn-angularjs-in-a-weekend/">http://joelhooks.com/blog/2013/08/03/learn-angularjs-in-a-weekend/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://wekeroad.com/2013/08/22/js-frameworks-are-amazing-and-no-one-is-happy">JavaScript Frameworks Are Amazing and Nobody Is Happy</a></li>
<li><a class="underline" href="http://eeroanttila.wordpress.com/2013/08/01/organizing-frontend-code-of-a-single-page-app/">Organizing frontend code of a single page app</a></li>
<li><a class="underline" href="http://angular-tips.com/blog/2013/08/why-does-angular-dot-js-rock/">Why Does Angular.js Rock?</a></li>
<li><a class="underline" href="http://joelhooks.com/blog/2013/08/03/learn-angularjs-in-a-weekend/">Learn AngularJS this Weekend</a></li>
<li><a class="underline" href="http://coding.smashingmagazine.com/2013/08/09/backbone-js-tips-patterns/">Backbone.js Tips And Patterns</a></li>
</ul>
<a href="#graphics"><h3 class="inline" id="graphics">Graphics</h3></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://learningthreejs.com/blog/2013/08/02/how-to-do-a-procedural-city-in-100lines/">How to Do a Procedural City in 100 Lines</a></li>
<li><a class="underline" href="http://html5hub.com/using-webgl-to-add-3d-effects-to-your-website/">Using WebGL to Add 3D Effects to Your Website</a></li>
<li><a class="underline" href="http://acko.net/blog/zero-to-sixty-in-one-second/">Zero to Sixty in One Second</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<p>{{ screenshot: <a class="underline" href="http://easings.net/">http://easings.net/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/jmcunningham/AngularJS-Learning">AngularJS-Learning</a> - The largest(?) collection of Angular related resources.</li>
<li><a class="underline" href="https://flipboard.com/section/the-javascript-%26-html5-magazine-bmOTsK">The JavaScript Magazine</a> - Especially useful for those using Flipboard.</li>
<li><a class="underline" href="http://thechangelog.com/stop-writing-regular-expressions-express-them-with-verbal-expressions/">Stop writing Regular Expressions. Express them with Verbal Expressions</a></li>
<li><a class="underline" href="http://easings.net/">easings.net</a> - If you animate, you will love this</li>
<li><a class="underline" href="http://www.learn-js.org/">Learn JS</a> - Interactive JavaScript tutorials</li>
<li><a class="underline" href="http://codecombat.com/">Code Combat</a> - If you want to learn by martial arts, this might be a better choice.</li>
<li><a class="underline" href="https://github.com/emberjs/website/issues/663">Ember Cookbook 1.0</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://jqueryboilerplate.com/">http://jqueryboilerplate.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://livestyle.emmet.io/">Emmet LiveStyle</a> - Bidirectional editing for Chrome, Safari and Sublime Text. It will change your life. At least a little bit.</li>
<li><a class="underline" href="http://jqueryboilerplate.com/">jQuery Boilerplate</a> - So that developing jQuery plugins is less tedious.</li>
<li><a class="underline" href="http://www.mean.io/">MEAN stack Boilerplate</a> - Starting point for some MEAN work.</li>
<li><a class="underline" href="https://github.com/mauricecruz/chrome-devtools-zerodarkmatrix-theme">ZeroDarkMatrix Theme for Chrome</a> - Chrome Inspector looks good in black, doesn't it?</li>
<li><a class="underline" href="http://tridiv.com/">Tridiv</a> - Web based editor for creating 3D shapes in CSS. <a class="underline" href="http://codepen.io/juliangarnier/details/hzDAF">Demo</a></li>
</ul>
<a href="#hardware"><h2 class="inline" id="hardware">Hardware</h2></a>
<p>{{ screenshot: <a class="underline" href="http://technical.io/">http://technical.io/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://technical.io/">Tessel</a> - JavaScript right on the hardware</li>
<li><a class="underline" href="http://www.espruino.com/">Espruino</a> - Another alternative</li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://codepen.io/meanyack/pen/KIJdD">Paper plane animation</a></li>
<li><a class="underline" href="http://hughsk.github.io/disc/">disc</a></li>
<li><a class="underline" href="http://kojika17.com/demo/4lines/">Camera icon</a></li>
<li><a class="underline" href="http://www.wrist.im/">Wrist watch</a></li>
</ul>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<blockquote>
<p>The only color Chuck Norris uses in his CSS declarations? #bada55</p>
</blockquote>
]]></content></entry><entry><title>Sorted Maps in JavaScript</title><link rel="alternate" type="text/html" href="https://jster.net/blog/sorted-maps-in-javascript"></link><id>sorted-maps-in-javascript</id><published>2013-08-26T22:31:02.000Z</published><content type="text/html"><![CDATA[<blockquote>
<p>This time we have a guest post by <a class="underline" href="https://github.com/monmohan">Monmohan Singh</a>. He is the author of <a class="underline" href="https://github.com/monmohan/dsjslib">dsjslib</a>, a collection of data structures.</p>
</blockquote>
<p>JavaScript objects themselves can serve as Maps.
There are <a class="underline" href="http://www.less-broken.com/blog/2010/12/lightweight-javascript-dictionaries.html">some caveats</a> but by and large
it is possible to use plain Objects as Maps in JavaScript.</p>
<p><strong>However a JavaScript object by default can't be used as a ordered Map (ordered on keys)</strong> .
ECMAScript specification doesn't define any explicit ordering of keys (while enumerating or otherwise). Most Browsers iterate over
properties in the order they were created.</p>
<p><strong>Sorted Maps</strong> are a data structure available in other languages (example <em>TreeMap</em> class in java collections)
Note that the ordering happens on <strong>dynamic data set</strong>. This means that the ordering is maintained irrespective of new
insertions or deletions to the Map. Compare that to say using <strong>JavaScript Array sort() which is static</strong> i.e additions/deletions
of elements in the array will not maintain order or require repeated sorts to maintain order (which would roughly be O(N*logN) cost everytime)
This structure can be used in applications where the need is to</p>
<ul class="list-disc list-inside">
<li>automatically maintain a sorted order of objects</li>
<li>the set of objects can dynamically grow or shrink</li>
<li>able to iterate through the sorted list of objects</li>
<li>able to lookup the objects based on some key</li>
</ul>
<p>In this article, we will discuss in detail about AVL Tree implementation in JavaScript which can be used create a sorted Map on dynamic data set.
It is taken from <a class="underline" href="http://monmohan.github.io/dsjslib"><strong>dsjslib</strong></a>, a collection of some standard data structures (like sorted map) not available in JavaScript.</p>
<p>AVLTree in dsjslib is a Sorted Map with O(log N) access time for insert, delete and find operations . Also provides listing the sorted keys and values in O(N) time.</p>
<p>The article assumes some familiarity with Binary Search Tree data structure</p>
<a href="#quick-look-at-binary-search-trees-bst-"><h3 class="inline" id="quick-look-at-binary-search-trees-bst-">Quick Look at Binary Search Trees (BST)</h3></a>
<p>A binary search tree is a binary (each node has maximum of two children) tree with the additional property that for each node, the key is greater than the key of its left child and less than the key of its right child. A simple but powerful data structure.
Below is a binary search tree built from the following sequence of keys:
15, 11, 21, 17, 13, 9</p>
<p><img src="/img/blog/28/basic_bst.png" alt="Basic Tree" class="" width="" height="" /></p>
<p>BST allow insert, delete and search of a key in order of height of the tree (O(h)). Searching basically involves comparing key in each node and then deciding to go left (if key is less than the node or right if key is greater) .. This means that the number of comparisons would less than or equal to the longest path from root to leaf (or in other words the height of the tree). So as long as the height of the tree is kept small we are good. In simple BSTs height depends on the sequence of keys being inserted.</p>
<p>Here is a BST for following sequence of keys 9, 11, 13, 15, 17, 21</p>
<p><img src="/img/blog/28/tree_linked_list.png" alt="Basic Tree" class="" width="" height="" /></p>
<p><strong>It’s not a tree anymore but a linked list!!</strong>
Now insert, delete and search take order of number of elements in the tree.</p>
<a href="#avltree-a-balanced-search-tree"><h3 class="inline" id="avltree-a-balanced-search-tree">AVLTree - A balanced search Tree</h3></a>
<p>Unlike a simple binary search tree, an AVL tree introduces additional constraints which force it to be a balanced tree after every operation - so, there are no worst case scenarios as you get in a binary tree.</p>
<p>We will discuss the AVLTree implementation in dsjslib.</p>
<p>So lets take the same example and see what we can do to avoid a tree becoming a linked list. Lets start building a BST and add 9, 11, 13</p>
<p><img src="/img/blog/28/tree_avl_1.png" alt="Basic Tree" class="" width="" height="" /></p>
<p>At this stage, what if <strong>we pull 9 node down and make 11 the root</strong>, the tree looks like</p>
<p><img src="/img/blog/28/threenodes.png" alt="Basic Tree" class="" width="" height="" /></p>
<p><strong>Its still a binary search tree and also one in which the height of the tree is less than the earlier .</strong>
This is the idea behind AVL Trees to rotate the tree at certain nodes on insertion and deletion and maintain low height in the tree which guarantees O(logN) performance.</p>
<a href="#maintaining-the-balance"><h3 class="inline" id="maintaining-the-balance">Maintaining the balance</h3></a>
<p>AVLTrees maintain balance in similar way i.e. rotating the tree</p>
<a href="#formal-notions"><h4 class="inline" id="formal-notions">Formal Notions</h4></a>
<ol class="list-decimal list-inside">
<li>Height of a node is defined as following</li>
</ol>
<ul class="list-disc list-inside">
<li>Non-existent nodes have height -1</li>
<li>Leaf nodes have height 0</li>
<li>A non-leaf node height = Max{leftNodeHeight,rightNodeHeight}+1
Example depicted below</li>
</ul>
<p><img src="/img/blog/28/tree_avl_v1.png" alt="Basic Tree" class="" width="" height="" /></p>
<ol start="2" class="list-decimal list-inside">
<li>The AVL Tree node invariant says that for any node, the difference between the left and right subtree height can’t be more than 1. This leads to maintaining the height
O(log Number of nodes)</li>
</ol>
<p>Steps are</p>
<ol class="list-decimal list-inside">
<li>After insertion or deletion find the node where violation occurs</li>
<li>Once we have the node which was inserted (or parent of the node deleted), move up the tree checking the height difference until we a find node where violation occurs (height difference between subtrees is more than 1).</li>
<li>In dsjslib.AVLTree, this is taken care by the function checkAVLProperty(node). This function is invoked post insertion or deletion of a node</li>
</ol>
<p>Consider the implementation below:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjavascript"><span class="hljs-comment">// do simple BST insert</span>
<span class="hljs-title class_">AVLTree</span>.<span class="hljs-property"><span class="hljs-keyword">prototype</span></span>.<span class="hljs-property">put</span> = <span class="hljs-keyword">function</span>(<span class="hljs-params">key, value</span>) {
  <span class="hljs-keyword">var</span> ins = <span class="hljs-variable constant_">BST</span>.<span class="hljs-property"><span class="hljs-keyword">prototype</span></span>.<span class="hljs-property">put</span>.<span class="hljs-title function_">call</span>(<span class="hljs-variable language_">this</span>, key, value);

  <span class="hljs-keyword">try</span> {
    <span class="hljs-comment">//find where is the violation</span>
    <span class="hljs-variable language_">this</span>.<span class="hljs-title function_">checkAVLProperty</span>(ins.<span class="hljs-property">node</span>);
  } <span class="hljs-keyword">catch</span> (vErr) {
    <span class="hljs-comment">//rebalance the tree at that node</span>
    <span class="hljs-variable language_">this</span>.<span class="hljs-title function_">rebalance</span>(vErr);
  }

  <span class="hljs-keyword">return</span> ins;
}
</code></pre>
<p>Checking AVLProperty involves checking the difference in height between left and right subtree.
The height is recursively (pre) calculated. Implementation below:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjavascript"><span class="hljs-title class_">AVLTree</span>.<span class="hljs-property"><span class="hljs-keyword">prototype</span></span>.<span class="hljs-property">checkAVLProperty</span> = <span class="hljs-keyword">function</span> (<span class="hljs-params">node</span>) {
  <span class="hljs-keyword">if</span> (!node) <span class="hljs-keyword">return</span>;

  <span class="hljs-keyword">var</span> lc = node.<span class="hljs-property">leftChild</span>, rc = node.<span class="hljs-property">rightChild</span>;
  <span class="hljs-keyword">var</span> hdiff = (rc ? rc.<span class="hljs-property">height</span> : -<span class="hljs-number">1</span>) - (lc ? lc.<span class="hljs-property">height</span> : -<span class="hljs-number">1</span>);

  <span class="hljs-keyword">if</span> (<span class="hljs-title class_">Math</span>.<span class="hljs-title function_">abs</span>(hdiff) > <span class="hljs-number">1</span>) {
    <span class="hljs-keyword">if</span> (debug)<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">"AVL Height violation at Node key"</span> + node.<span class="hljs-property">key</span>);

    <span class="hljs-keyword">throw</span> {<span class="hljs-string">'node'</span>:node, <span class="hljs-string">'hdiff'</span>:hdiff};
  }

  <span class="hljs-variable language_">this</span>.<span class="hljs-title function_">checkAVLProperty</span>(node.<span class="hljs-property">parent</span>);
}
</code></pre>
<a href="#fixing-the-balance"><h4 class="inline" id="fixing-the-balance">Fixing the Balance</h4></a>
<p>Once we have found the node where violation occurs we need to fix that. There are 4 cases to consider</p>
<ol class="list-decimal list-inside">
<li><em>Right-Right heavy</em></li>
</ol>
<p><img src="/img/blog/28/tree_avl_v1.png" alt="AVL Tree" class="" width="" height="" /></p>
<p>The node where the violation occurs (9, shown in Red) is right heavy. Its right child height is more than its left child height) AND the child (11) is also right heavy.
This can be fixed by <strong>single LEFT rotation at violated node (9)</strong></p>
<p><img src="/img/blog/28/tree_avl_v1_fx.png" alt="AVL Tree" class="" width="" height="" /></p>
<ol start="2" class="list-decimal list-inside">
<li><em>Left-Left heavy</em></li>
</ol>
<p>Symmetrical to right-right heavy case and right rotation at violated node fixes it</p>
<ol start="3" class="list-decimal list-inside">
<li><em>Right-Left heavy</em></li>
</ol>
<p>This case is little bit trickier. In this case (example shown below), the violated node is right heavy but the right child is left heavy (its left child height is -1, right child height is 0 which is greater than -1)</p>
<p><img src="/img/blog/28/tree_avl_v2.png" alt="AVL Tree" class="" width="" height="" /></p>
<p>Lets see if we can fix this by applying our earlier knowledge and rotating left at violated node .</p>
<a href="#try-1-fails"><h5 class="inline" id="try-1-fails">TRY 1 , FAILS</h5></a>
<p><img src="/img/blog/28/tree_avl_v2_fail.png" alt="AVL Tree" class="" width="" height="" /></p>
<p>We can see that it doesn’t fix the problem. Now the violation occurs at the new parent i.e 11</p>
<p>These cases are fixed by two rotations</p>
<p>i. First rotate right at the left heavy child(11)</p>
<p><img src="/img/blog/28/tree_avl_v2_fix1.png" alt="AVL Tree" class="" width="" height="" /></p>
<p>ii. Now this is a know case of right-right heavy, lets rotate left at the violated node to balance it</p>
<p><img src="/img/blog/28/tree_avl_v2_fix2.png" alt="AVL Tree" class="" width="" height="" /></p>
<ol start="4" class="list-decimal list-inside">
<li><em>Left-Right heavy</em></li>
</ol>
<p>Is symmetric to case c) above and in this case the violated node is left heavy but its left child is right heavy. Applying the same logic as above, it will be fixed by, first a left rotation of the left child and then a right rotation at the violated node.</p>
<a href="#implementation-of-rotation"><h5 class="inline" id="implementation-of-rotation">Implementation of Rotation</h5></a>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjavascript"><span class="hljs-title class_">AVLTree</span>.<span class="hljs-property"><span class="hljs-keyword">prototype</span></span>.<span class="hljs-property">rebalance</span> = <span class="hljs-keyword">function</span>(<span class="hljs-params">vError</span>) {
  <span class="hljs-keyword">var</span> balance = vError.<span class="hljs-property">hdiff</span>, vNode = vError.<span class="hljs-property">node</span>;
  <span class="hljs-keyword">var</span> child = balance > <span class="hljs-number">1</span> <span class="hljs-comment">/*right heavy*/</span> ? vNode.<span class="hljs-property">rightChild</span> : vNode.<span class="hljs-property">leftChild</span>;

  <span class="hljs-comment">//+ve, right heavy, -ve left heavy</span>
  <span class="hljs-keyword">var</span> childBalance = <span class="hljs-variable language_">this</span>.<span class="hljs-title function_">_nodeHeight</span>(child);

  <span class="hljs-comment">/**
    * node is right heavy but child is left heavy and vice-versa
    * <span class="hljs-doctag">@type</span> {<span class="hljs-type">Boolean</span>}
    */</span>
  <span class="hljs-keyword">var</span> zigzag = balance > <span class="hljs-number">1</span> ? childBalance < <span class="hljs-number">0</span> : childBalance > <span class="hljs-number">0</span>;

  <span class="hljs-comment">/* Requires double rotation */</span>
  <span class="hljs-keyword">if</span> (zigzag) {
    <span class="hljs-comment">//rotate on child first</span>
    <span class="hljs-variable language_">this</span>.<span class="hljs-title function_">rotate</span>(child, childBalance > <span class="hljs-number">0</span>? <span class="hljs-string">'l'</span>: <span class="hljs-string">'r'</span>)
  }

  <span class="hljs-comment">//rotation on node where violation occurs</span>
  <span class="hljs-variable language_">this</span>.<span class="hljs-title function_">rotate</span>(vNode, balance > <span class="hljs-number">1</span>? <span class="hljs-string">'l'</span>: <span class="hljs-string">'r'</span>);
}
</code></pre>
<a href="#summary"><h2 class="inline" id="summary">Summary</h2></a>
<ul class="list-disc list-inside">
<li><em>dsjslib.AVLTree</em> provides support for an ordered map (ordered on keys).</li>
<li>Ordering can be controlled by passing a custom comparator function when creating the AVLTree</li>
<li>The time complexity for put(K,V), get(K), delete(K) is O(logN) where N is the number of keys.</li>
<li>Also supports listing of ordered pairs {key:k,value:v} in O(N)</li>
<li>This would be much more efficient than using plain JavaScript objects and always sorting on demand</li>
<li>Check out <a href="http://monmohan.github.io/dsjslib" target="_blank">dsjslib site</a> and the  <a href="http://github.com/monmohan/dsjslib" target="_blank">github repository</a></li>
</ul>
]]></content></entry><entry><title>Get Most Out of JavaScript Data Structures</title><link rel="alternate" type="text/html" href="https://jster.net/blog/javascript-data-structures"></link><id>javascript-data-structures</id><published>2013-08-24T19:45:10.000Z</published><content type="text/html"><![CDATA[<p>JavaScript comes with a variety of data types and structures. As <a class="underline" href="http://edutechwiki.unige.ch/en/ECMAScript_data_types">defined in the specification</a> the basic primitive types are Numbers, Strings, Boolean, Null and void. In addition there complex data types: Arrays and Objects. If you have coded even a little bit using JavaScript, you have likely used most of these.</p>
<p>In this post I will go through some common gotchas and help you to understand better how to get most out of the structures.</p>
<p>I have adapted most of the content from a little ebook of mine, <a class="underline" href="http://survivejs.com/">Survive JS</a>. It is freely available and a very quick read. It might not be as known as some other ebooks but you still might pick a thing or two out of it.</p>
<a href="#basic-primitives"><h2 class="inline" id="basic-primitives">Basic Primitives</h2></a>
<div class="picture"><img src="/img/blog/27/complex.jpg" alt="It's primitive" /><div class="caption">Primitives by <a href="http://www.flickr.com/photos/46267286@N07/8647250845/">Simon and his camera</a> (CC BY-ND)</div></div>

<p>As I mentioned JavaScript comes with a set of primitive types. Numbers are a bit special as they can be either integer or float. There is no clear separation unlike in some languages. There are a couple of Number related functions you should be aware of, though. The ones you will likely use the most are <code>parseInt</code> and <code>parseFloat</code>. These functions allow you to convert a string presentation, or another number, into a Number looking like an integer or a float.</p>
<a href="#parseint-and-parsefloat"><h3 class="inline" id="parseint-and-parsefloat">parseInt and parseFloat</h3></a>
<p>Especially <code>parseInt</code> comes with some baggage. It is important to understand that in case <code>radix</code> parameter is not provided, it may interpret the given string as octal. That may be something you may want to avoid. That is why you should always define the radix to be sure. Consider using <code>parseInt('123', 10);</code>. Check out <a class="underline" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt">MDN documentation on parseInt</a> to understand what you can achieve with the function.</p>
<p><code>parseFloat</code> just parses the given string and returns it as a float Number. It is rarely used but you should be at least aware of it. Again, consult <a class="underline" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat">MDN documentation on parseFloat</a> to understand its behavior better.</p>
<a href="#strings"><h3 class="inline" id="strings">Strings</h3></a>
<div class="picture"><img src="/img/blog/27/strings.jpg" alt="Yup, these count" /><div class="caption">Strings by <a href="http://www.flickr.com/photos/9121646@N07/1470227776/">Rogerio Melo</a> (CC NC-ND)</div></div>

<p>Strings are sequences of characters by definition and come with a set of utility methods. I won't go into detail on those. There is a certain one I like to use a lot, though. It's <code>split</code>. If you perform <code>'your string'.split('')</code>, you end up with an Array of characters. After that you can use all the nice functionality JavaScript Arrays come with. Once you are done with the manipulation, just <code>join('')</code> it back to a string.</p>
<p>One little quirk related to strings has to do with concatenation. Unfortunately <code>+</code> character was chosen to represent it. Sometimes this may yield interesting results. So be careful with concat. If you want to try something else, consider implementing <code>format</code> that allows you to perform string replacements easily. Internally you can piggyback on the <code>replace</code> method. Just to give you an idea of the possible syntax, consider following:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjavascript"><span class="hljs-title function_">format</span>(<span class="hljs-string">'{{amount}} {{object}}s on shelf'</span>, {<span class="hljs-attr">amount</span>: <span class="hljs-number">5</span>, <span class="hljs-attr">object</span>: <span class="hljs-string">'bottle'</span>});
</code></pre>
<p>Or you could just use some existing templating engine although that might be overkill depending on your case. To make things easier, I've implemented an example based on an <a class="underline" href="http://www.nixtu.info/2013/03/templating-in-javascript.html">earlier blog post of mine</a> below:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjavascript"><span class="hljs-keyword">var</span> ctx = {
  <span class="hljs-attr">name</span>: <span class="hljs-string">'jude'</span>
};
<span class="hljs-keyword">var</span> tpl = <span class="hljs-string">'hey {{ name }}! {{ name }} is great'</span>;

<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-title function_">format</span>(tpl, ctx));

<span class="hljs-keyword">function</span> <span class="hljs-title function_">format</span>(<span class="hljs-params">tpl, ctx</span>) {
  <span class="hljs-keyword">return</span> tpl.<span class="hljs-title function_">replace</span>(<span class="hljs-regexp">/\{\{([a-zA-Z ]*)\}\}/g</span>, <span class="hljs-keyword">function</span>(<span class="hljs-params">m, g</span>) {
    <span class="hljs-keyword">return</span> ctx[g.<span class="hljs-title function_">trim</span>()] || <span class="hljs-string">''</span>;
  });
}
</code></pre>
<p>Overall the algorithm is really simple. We just match each slot of our template using a regex globally and then replace them using context data. In case data is not found we inject an empty. Without that check we would end up with <code>undefined</code> which isn't particularly cool.</p>
<p>As the <a class="underline" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">default methods of String</a> are not enough always, people have developed libraries that provide some of the missing functionality. We have listed these <a class="underline" href="http://jster.net/category/strings">string libraries at JSter</a>.</p>
<a href="#boolean"><h3 class="inline" id="boolean">Boolean</h3></a>
<p>Suppose you have something you wish to convert into a boolean. That's where <code>!!</code> comes in. As you know, <code>!</code> inverts a value and yields a boolean. If we perform that twice, we end up with a boolean and end up with the original truth value. Simple as that.</p>
<p>There are also the following shorthands you may find handy:</p>
<ul class="list-disc list-inside">
<li>Ternary  - a? b: c - Selects b if a is true, else selects c</li>
<li>Logical AND - a && b - If a, selects b, else selects a</li>
<li>Logical OR - a || b - If a, selects a, else selects b</li>
</ul>
<p>Logical AND can be handy for checking whether object exists before accessing its value (ie. `var a = foo && foo.bar;). This can be handy if you are trying to access some property of an object that might not exist and want to avoid a ReferenceError.</p>
<p>Logical OR is commonly used to set default values. Consider the example below:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjavascript"><span class="hljs-keyword">function</span> <span class="hljs-title function_">sum</span>(<span class="hljs-params">a, b</span>) {
  a = a || <span class="hljs-number">10</span>;
  b = b || <span class="hljs-number">10</span>;

  <span class="hljs-keyword">return</span> a + b;
}
</code></pre>
<p>There is one gotcha in our example, though. Can you spot it? What happens if either a or b is zero by intention? That's right, our calculation will yield invalid results. How would you resolve this? I can think of a couple of ways but it's hard to give an authorative, "correct" answer.</p>
<p>Fortunately we should get default parameter values and other goodies with ES6 as <a class="underline" href="http://www.sencha.com/blog/toward-modern-web-apps-with-ecmascript-6/">discussed by Ariya Hidayat</a>. There are some various other goodies as well but I won't get into those at this post.</p>
<p>You can find expanded discussion on <a class="underline" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators">logical operations at MDN</a>.</p>
<a href="#null-and-undefined"><h3 class="inline" id="null-and-undefined">null and undefined</h3></a>
<p><code>null</code> and <code>undefined</code> are an interesting pair. <code>undefined</code> signifies an absence of value whereas <code>null</code> is a value on its own. It just happens to be a null value. If you define a variable without assigning a value to it, its value will be <code>undefined</code> by default.</p>
<p>Generally these values get hidden below dynamic typing. You probably shouldn't check for a null explicitly. Often you can get away with something like <code>if(foo)</code> or <code>if(!foo)</code> and can hide the null or undefined.</p>
<a href="#arrays"><h2 class="inline" id="arrays">Arrays</h2></a>
<p>Arrays are just Objects in disguise. They just happen to behave like arrays in various other languages. You can also use them to simulate other data structures, such as queues and stacks, quite easily. In case you want to implement a queue with a fixed length, consider the following example:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjavascript"><span class="hljs-keyword">function</span> <span class="hljs-title function_">queue</span>(<span class="hljs-params">len</span>) {
  <span class="hljs-keyword">var</span> ret = [];

  ret.<span class="hljs-property">push</span> = <span class="hljs-keyword">function</span>(<span class="hljs-params">a</span>) {
    <span class="hljs-keyword">if</span>(ret.<span class="hljs-property">length</span> == len) ret.<span class="hljs-title function_">shift</span>();
    <span class="hljs-keyword">return</span> <span class="hljs-title class_">Array</span>.<span class="hljs-property"><span class="hljs-keyword">prototype</span></span>.<span class="hljs-property">push</span>.<span class="hljs-title function_">apply</span>(<span class="hljs-variable language_">this</span>, <span class="hljs-variable language_">arguments</span>);
  };

  <span class="hljs-keyword">return</span> ret;
}

<span class="hljs-keyword">var</span> a = <span class="hljs-title function_">queue</span>(<span class="hljs-number">3</span>);
a.<span class="hljs-title function_">push</span>(<span class="hljs-string">'cat'</span>);
a.<span class="hljs-title function_">push</span>(<span class="hljs-string">'dog'</span>);
a.<span class="hljs-title function_">push</span>(<span class="hljs-string">'chimp'</span>);
a.<span class="hljs-title function_">push</span>(<span class="hljs-string">'giraffe'</span>);
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(a); <span class="hljs-comment">// should contain dog, chimp, giraffe now</span>
</code></pre>
<p>We did a little trick there and overrode the default behavior of <code>push</code>. There are some extra methods hanging around but we don't care as this is just a quick and dirty solution.</p>
<p>Since the introduction of ES5 arrays have come with a set of handy methods including <code>map</code>, <code>filter</code>, <code>reduce</code> and <code>forEach</code>. These are useful especially for functional programming. You simply take some data and then transform it into a form you find useful. These methods become particularly useful when you combine them with helper functions. Consider the example below:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjavascript"><span class="hljs-keyword">var</span> data = [{<span class="hljs-attr">name</span>: <span class="hljs-string">'Bjorn'</span>}, {<span class="hljs-attr">name</span>: <span class="hljs-string">'Joe'</span>}, {<span class="hljs-attr">name</span>: <span class="hljs-string">'Rahul'</span>}];
<span class="hljs-keyword">var</span> names = data.<span class="hljs-title function_">map</span>(<span class="hljs-title function_">prop</span>(<span class="hljs-string">'name'</span>));

<span class="hljs-keyword">function</span> <span class="hljs-title function_">prop</span>(<span class="hljs-params">name</span>) {
  <span class="hljs-keyword">return</span> <span class="hljs-keyword">function</span>(<span class="hljs-params">v</span>) {
    <span class="hljs-keyword">return</span> v[name];
  };
}
</code></pre>
<p>Especially the <code>map</code> part looks deceptively simple. We are missing list comprehensions and other jazz from vanilla JavaScript but by implementing, or using, a set of utility functions like <code>prop</code>, you can get a lot more out of it. To give you another pattern, check this out:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjavascript"><span class="hljs-keyword">var</span> data = [{<span class="hljs-attr">name</span>: <span class="hljs-string">'Bjorn'</span>}, {<span class="hljs-attr">name</span>: <span class="hljs-string">'Joe'</span>}, {<span class="hljs-attr">name</span>: <span class="hljs-string">'Rahul'</span>}];
<span class="hljs-keyword">var</span> names = data.<span class="hljs-title function_">map</span>(<span class="hljs-title function_">prop</span>(<span class="hljs-string">'name'</span>)).<span class="hljs-title function_">filter</span>(<span class="hljs-title function_">not</span>(<span class="hljs-title function_">startsWith</span>(<span class="hljs-string">'J'</span>)));

<span class="hljs-keyword">function</span> <span class="hljs-title function_">startsWith</span>(<span class="hljs-params">val</span>) {
  <span class="hljs-keyword">return</span> <span class="hljs-keyword">function</span>(<span class="hljs-params">v</span>) {
    <span class="hljs-keyword">return</span> v.<span class="hljs-title function_">indexOf</span>(val, <span class="hljs-number">0</span>);
  };
}

<span class="hljs-keyword">function</span> <span class="hljs-title function_">not</span>(<span class="hljs-params">fn</span>) {
  <span class="hljs-keyword">return</span> <span class="hljs-keyword">function</span>(<span class="hljs-params">v</span>) {
    <span class="hljs-keyword">return</span> !<span class="hljs-title function_">fn</span>(v);
  };
}
</code></pre>
<p>Yup. We implemented a couple of more factories. The core logic is very simple and readable, though. JavaScript's closures make this way of working possible and allow us to push a lot of detail into library level.</p>
<p>There are other ways to compose and end up in the same result. We could for instance implement a function to literally <code>compose</code> (<code>compose(startsWith('J'), not)</code>) and build our semantics based on that. In languages such as Haskell this is actually a first order feature of the language and you may use simply <code>.</code> to pipe the result from a function to another.</p>
<p>Given its functionality, JavaScript provides some good tools for this sort of programming. The syntax might not be as elegant as in certain languages but there is definitely a lot of power under the hood.</p>
<blockquote>
<p>In order to use the ES5 features, you will need to use shims for older browsers. To get a better idea, have a look at <a class="underline" href="http://kangax.github.io/es5-compat-table/">@kangax's excellent ES5 compatibility table</a>.</p>
</blockquote>
<a href="#objects"><h2 class="inline" id="objects">Objects</h2></a>
<div class="picture"><img src="/img/blog/27/appleorange.jpg" alt="Apples and oranges" /><div class="caption">Apples and oranges by <a href="http://www.flickr.com/photos/26176646@N04/2492945625/">TheBusyBrain</a> (CC BY)</div></div>

<p>Objects are the basic construction blocks in JavaScript. You can declare quite complex structures using them and then serialize them using the popular <a class="underline" href="http://json.org/">JSON format</a>. In fact JSON was modeled after JavaScript objects, hence the name JavaScript Object Notation.</p>
<p>There's the whole OOP side to Objects but I won't get into that. Instead, consider checking out <a class="underline" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript">MDN's introduction to OOP in JavaScript</a> to get a better idea. Personally I'm more interested in objects as a data structure.</p>
<p>Sometimes you may need to perform various transformations on object based data structures. Sure, there's the good old for-in syntax but it would be nice to be able to use map, filter and co. As it happens there are some ways to achieve this.</p>
<a href="#zips"><h3 class="inline" id="zips">zips</h3></a>
<p>To be exact, zip is a function that takes two lists and returns a list of lists like this:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjavascript"><span class="hljs-keyword">var</span> a = [<span class="hljs-number">0</span>, <span class="hljs-number">1</span>, <span class="hljs-number">2</span>];
<span class="hljs-keyword">var</span> b = [<span class="hljs-string">'a'</span>, <span class="hljs-string">'b'</span>, <span class="hljs-string">'c'</span>];
<span class="hljs-keyword">var</span> result = <span class="hljs-title function_">zip</span>(a, b); <span class="hljs-comment">// [[0, 'a'], [1, 'b'], [2, 'c']]</span>
</code></pre>
<p>You can also define function <code>unzip</code> that performs the reverse and extracts two lists out of a resulting zip.</p>
<p>In order to make it easier to manipulate object structures, we can define two functions: <code>otozip</code> and <code>ziptoo</code>. The former converts an object to zip and the latter converts zip to an object. I've sketched out basic implementations below:</p>
<pre class="overflow-auto -mx-4 bg-gray-100 md:mx-0"><code class="undefinedjavascript"><span class="hljs-keyword">function</span> <span class="hljs-title function_">otozip</span>(<span class="hljs-params">o</span>) {
  <span class="hljs-keyword">return</span> <span class="hljs-title function_">zip</span>(<span class="hljs-title function_">keys</span>(o), <span class="hljs-title function_">values</span>(o));
}

<span class="hljs-keyword">function</span> <span class="hljs-title function_">zip</span>(<span class="hljs-params">a, b</span>) {
  <span class="hljs-keyword">var</span> ret = [];
  <span class="hljs-keyword">var</span> i, len;

  <span class="hljs-keyword">for</span>(i = <span class="hljs-number">0</span>, len = <span class="hljs-title class_">Math</span>.<span class="hljs-title function_">min</span>(a.<span class="hljs-property">length</span>, b.<span class="hljs-property">length</span>); i < len; i++) {
    ret.<span class="hljs-title function_">push</span>([a[i], b[i]]);
  }

  <span class="hljs-keyword">return</span> ret;
}

<span class="hljs-keyword">function</span> <span class="hljs-title function_">keys</span>(<span class="hljs-params">o</span>) {
  <span class="hljs-keyword">return</span> <span class="hljs-title class_">Object</span>.<span class="hljs-title function_">keys</span>(o); <span class="hljs-comment">// ES5</span>
}

<span class="hljs-keyword">function</span> <span class="hljs-title function_">values</span>(<span class="hljs-params">o</span>) {
  <span class="hljs-keyword">var</span> ret = [];
  <span class="hljs-keyword">var</span> k, v;

  <span class="hljs-keyword">for</span>(k <span class="hljs-keyword">in</span> o) {
    v = o[k];

    <span class="hljs-keyword">if</span>(o.<span class="hljs-title function_">hasOwnProperty</span>(k)) { <span class="hljs-comment">// ES5</span>
      ret.<span class="hljs-title function_">push</span>(v);
    }
  }

  <span class="hljs-keyword">return</span> ret;
}

<span class="hljs-keyword">function</span> <span class="hljs-title function_">ziptoo</span>(<span class="hljs-params">a</span>) {
  <span class="hljs-keyword">var</span> ret = {};
  <span class="hljs-keyword">var</span> i, len;

  a.<span class="hljs-title function_">forEach</span>(<span class="hljs-keyword">function</span>(<span class="hljs-params">v</span>) { <span class="hljs-comment">// ES5</span>
    ret[v[<span class="hljs-number">0</span>]] = v[<span class="hljs-number">1</span>];
  });

  <span class="hljs-keyword">return</span> ret;
}
</code></pre>
<p>There's a small gotcha in that <code>ziptoo</code>. In case your zip happens to contain multiple pairs with the same first value, only the last pair will end up in the result. That is just the way objects work by design.</p>
<p>The functions add some performance overhead but ease manipulation as you can use the utilities we covered earlier. If you are using <a class="underline" href="https://github.com/caolan/async">caolan/async</a>, you may find the pattern useful for aggregating results of various operations into objects.</p>
<p>I've packaged the functionality in a module of my own. You may find it at NPM as <a class="underline" href="https://npmjs.org/package/annozip">annozip</a>.</p>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<p>So far we have pretty much just scratched the surface a little bit. We could still discuss advanced data types, generators and such but those are better left for other posts as this one is getting quite long already. In the meantime you can check out various libraries focusing on <a class="underline" href="http://jster.net/category/functional-programming">functional programming</a>. No doubt you will find something useful there.</p>
<p>I hope you learned some little trick from this post. In case you happen to have some particular tricks in mind, do let us know at the comment section! I just covered some which I happen to find useful. Those are more or less useful depending on your usage patterns. Till the next time!</p>
]]></content></entry><entry><title>Monthly JSter #5: News of July 2013</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-july-2013"></link><id>monthly-jster-july-2013</id><published>2013-08-01T16:34:02.000Z</published><content type="text/html"><![CDATA[<p>Even July was a busy month for JS people. You guys are never gonna give up, huh? Anyway, let's proceed with our monthly listing of important and not so important happenings.</p>
<p>To celebrate the Summer we updated the outlook of the site. Let us know what you think!</p>
<p>Remember that Monthly JSter is available as <a class="underline" href="https://buttondown.email/jster">a newsletter</a>. And when we say monthly, we mean it. One post a month, that's it. Given the content in this post, we might turn it into a biweekly thing, though.</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<p>{{ screenshot: <a class="underline" href="http://getbootstrap.com/">http://getbootstrap.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://github.com/dunxrion/console.image">console.image</a> - Because you have always wanted to put memes into your Chrome Inspector</li>
<li><a class="underline" href="https://github.com/kitcambridge/evil.js">evil.js</a> - Give hotlinkers what they earn.</li>
<li><a class="underline" href="http://worrydream.com/Tangle/">tangle</a> - Reactive documents in your browser. <a class="underline" href="http://jster.net/library/tangle">JSter entry</a></li>
<li><a class="underline" href="https://github.com/pazguille/aload">Async Load</a> - Load images etc. asynchronously.</li>
<li><a class="underline" href="http://h5bp.github.io/Effeckt.css/dist/">Effeckt.css</a></li>
<li><a class="underline" href="http://phonegap.com/blog/2013/07/19/adobe-phonegap-3.0-released/">PhoneGap 3.0</a> - <a class="underline" href="http://jster.net/library/phonegap">JSter entry</a></li>
<li><a class="underline" href="http://brunch.io/">Brunch 1.7</a> - Assemble HTML5 applications. <a class="underline" href="http://jster.net/library/brunch">JSter entry</a></li>
<li><a class="underline" href="http://bower.io/">Bower 1.0</a> - A package manager for the web. <a class="underline" href="http://jster.net/library/bower">JSter entry</a></li>
<li><a class="underline" href="http://news.qooxdoo.org/qooxdoo-3-0-released">Qooxdoo 3.0</a> - A universal framework with a coherent set of components. <a class="underline" href="http://jster.net/library/qooxdoo">JSter entry</a></li>
<li><a class="underline" href="http://blog.getbootstrap.com/2013/07/27/bootstrap-3-rc1/">Bootstrap 3 RC1</a> - Sleek, powerful frontend framework. <a class="underline" href="http://jster.net/library/twitter-bootstrap">JSter entry</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://glennstovall.com/blog/2013/06/27/angularjs-an-overview/">AngularJS: An Overview</a> - What's this AngularJS thing anyway?</li>
<li><a class="underline" href="http://odiseo.net/javascript/front-end-optimizations-you-can-do-right-now-on-your-existing-code">Front-end optimizations you can start doing right now</a></li>
<li><a class="underline" href="http://blog.anguscroll.com/if-kerouac-wrote-javascript">If Kerous wrote JavaScript (and Dr Johnson wrote CoffeeScript)</a></li>
<li><a class="underline" href="http://www.inear.se/2013/07/cube-slam-behind-the-three-scene/">Cube Slam - Behind the THREE.Scene()</a></li>
<li><a class="underline" href="http://net.tutsplus.com/tutorials/javascript-ajax/eight-cool-features-coming-in-es6/">Eight Cool Features Coming in ES6</a></li>
<li><a class="underline" href="http://seravo.fi/2013/javascript-the-winning-style">JavaScript, the winning style</a></li>
<li><a class="underline" href="http://philsturgeon.co.uk/blog/2013/07/building-a-decent-api">Building a Decent API</a></li>
<li><a class="underline" href="http://jster.net/blog/leveling-up-with-html5-games-contests">Leveling Up with HTML5 Games Contests</a></li>
<li><a class="underline" href="http://ryanflorence.com/2013/es6-modules-and-browser-app-delivery/">ES6 Modules, Build Tools and Browser App Delivery</a></li>
<li><a class="underline" href="https://www.hackerschool.com/blog/21-little-lisp-interpreter">Little Lisp Interpreter</a></li>
<li><a class="underline" href="http://12devs.co.uk/articles/promises-an-alternative-way-to-approach-asynchronous-javascript/">Promises – an alternative way to approach asynchronous JavaScript</a></li>
<li><a class="underline" href="http://blog.safaribooksonline.com/2013/07/25/an-arduino-powered-bbq-thermometer/">Building an Arduino Powered BBQ Thermometer</a> - Powered by Node.js</li>
</ul>
<a href="#node-js"><h3 class="inline" id="node-js">Node.js</h3></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.strongloop.com/promises-in-node-js-with-q-an-alternative-to-callbacks/">Promises in Node.js with Q - An Alternative to Callbacks</a></li>
<li><a class="underline" href="http://blog.strongloop.com/monitoring-stress-testing-nodejs-apps/">Monitoring and Stress Testing Node.js Apps</a></li>
<li><a class="underline" href="http://nicolashery.com/parse-data-files-using-nodejs-streams/">Parse data files using Node.js streams</a></li>
</ul>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.thinkster.io/">http://www.thinkster.io/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.thinkster.io/">thinkster</a> - A better way to learn AngularJS.</li>
<li><a class="underline" href="http://requirebin.com/">RequireBin</a> - The power of Node.js in browser, sort of. See also <a class="underline" href="http://maxogden.com/node-packaged-modules.html">related article</a>.</li>
<li><a class="underline" href="http://npmsearch.com/">npmsearch</a> - A better way to navigate NPM.</li>
<li><a class="underline" href="http://devdocs.io/">DevDocs</a> - All of those APIs behind one, spiffy interface.</li>
<li><a class="underline" href="http://www.javascriptoo.com/">javascriptoo</a> - Every JavaScript project you should be looking into. That's quite a few to be honest.</li>
<li><a class="underline" href="http://pineapple.io/">pineapple.io</a> - Tutorials, tools and assets for developers and designers</li>
<li><a class="underline" href="https://github.com/codylindley/frontend-tools">codylindley/frontend-tools</a> - Landscaping with Frontend Development Tools</li>
<li><a class="underline" href="http://pineapple.io/resources/tagged/javascript?type=tutorials&sort=all_time">Nice list of tutorials</a> by <a class="underline" href="http://pineapple.io/">pineapple.io</a></li>
<li><a class="underline" href="http://techslides.com/50-javascript-charting-and-graphics-libraries/">50 JavaScript Libraries for Charts and Graphs</a></li>
<li><a class="underline" href="http://anti-code.com/devtools-cheatsheet/">Chrome Devtools Cheatsheet</a></li>
<li><a class="underline" href="http://uptodate.frontendrescue.org/">How to Keep Up to Date on Front-end Technologies</a></li>
<li><a class="underline" href="https://github.com/GoogleChrome/chrome-app-samples">Chrome App Samples</a></li>
<li><a class="underline" href="http://fredsarmento.me/frontend-tools/">Frontend Tools</a></li>
</ul>
<a href="#videos"><h2 class="inline" id="videos">Videos</h2></a>
<p>{{ screenshot: <a class="underline" href="http://www.egghead.io">http://www.egghead.io</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://varelidi.com/D-I-Y-Code-Tutorials">DIY Code Tutorials for JavaScript</a></li>
<li><a class="underline" href="http://www.egghead.io/">Egghead</a> - Short videos on AngularJS</li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<p>{{ screenshot: <a class="underline" href="http://yeoman.io">http://yeoman.io</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://yeoman.io/">Yeoman</a> - Yeoman provides workflows for modern webapps. They recently released 1.0 RC1.</li>
<li><a class="underline" href="https://github.com/nzakas/eslint/">eslint</a> - JSLint and JSHint just got some company!</li>
<li><a class="underline" href="https://github.com/jazzychad/gistblog">gistblog</a> - A blogging platform built on GitHub gists. <a class="underline" href="http://jster.net/library/gistblog">JSter entry</a>.</li>
<li><a class="underline" href="http://xkcdgraphs.com/">Create Your Own XKCD-style Graphs</a></li>
<li><a class="underline" href="http://www.objectplayground.com/">Object playground</a> - Inception!</li>
<li><a class="underline" href="http://www.implicitcad.org/">ImplicitCAD</a> - Powerful, Open Source, Programmatic CAD</li>
<li><a class="underline" href="https://github.com/rogerwang/node-webkit">node-webkit</a> - Node.js + Webkit = Awesomeness</li>
<li><a class="underline" href="https://github.com/bwiklund/EnterprisifyJS">EnterprisifyJS</a> - Because your code is never enterprise enough</li>
<li><a class="underline" href="https://github.com/node-inspector/node-inspector">node-inspector</a> - <a class="underline" href="http://blog.strongloop.com/announcing-a-new-and-improved-node-js-debugger/">New and improved</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.slideshare.net/nzakas/enough-withthejavascriptalready">Enough with the JavaScript Already!</a></li>
<li><a class="underline" href="http://www.slideshare.net/domenicdenicola/es6-the-awesome-parts">ES6 - The Awesome Parts</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<p>{{ screenshot: <a class="underline" href="http://give-n-go.tumblr.com/">http://give-n-go.tumblr.com/</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://revealjs.herokuapp.com/">revealjs</a> - Control your presentation using gestures.</li>
<li><a class="underline" href="http://davidwalsh.name/canvas-demos">9 Mind-Blowing Canvas Demos</a> - Well, go blow your mind then.</li>
<li><a class="underline" href="http://cssdeck.com/labs/pure-css-minion">Pure CSS Minion</a></li>
<li><a class="underline" href="http://stephaneginier.com/sculptgl/">SculptGL</a></li>
<li><a class="underline" href="http://codepen.io/anon/pen/tvaio">CSS Horse</a> - See also <a class="underline" href="https://twitter.com/horse_js">@horse_js</a>.</li>
<li><a class="underline" href="http://synth.soundkeep.com/">Synth</a> - For all of those Jan Hammer wannabes</li>
<li><a class="underline" href="http://give-n-go.tumblr.com/">Give ´n´ Go</a> - A curated gallery of Dribbble shots reworked as interactive CodePen pens.</li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://bitsquest.bitbucket.org/">Bit's Quest</a> - Back in the day we played Police Quest and such. Ah, nostalgy.</li>
<li><a class="underline" href="https://mod.it/8UmnmJ11">JS Crossword Vol 2.</a></li>
</ul>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<p><a class="underline" href="http://ro-che.info/ccc/20.html">CCC #20: Weird language</a></p>
]]></content></entry><entry><title>Leveling Up with HTML5 Games Contests</title><link rel="alternate" type="text/html" href="https://jster.net/blog/leveling-up-with-html5-games-contests"></link><id>leveling-up-with-html5-games-contests</id><published>2013-07-18T18:42:41.000Z</published><content type="text/html"><![CDATA[<p>Evan Burchard is the author of <a class="underline" href="http://www.amazon.com/The-Web-Game-Developers-Cookbook/dp/0321898389">The Web Game Developer's Cookbook</a> and the Final Boss at <a class="underline" href="http://fightmagicrun.com">FightMagicRun</a>.  A founding trustee of the <a class="underline" href="http://awesomefoundation.org">Awesome Foundation</a>, he loves rooting for the underdog and helping new coders get started.</p>
<a href="#introduction"><h2 class="inline" id="introduction">Introduction</h2></a>
<p>Traditionally web based games have been developed using a platform such as Flash. During the past few years the situation has begun to change, though. Particularly the emergence of HTML5 technologies has lead to some new trends. HTML5 games are one such trend.</p>
<p>I've listed some reasons below why getting into HTML5 game development may be worth your while.</p>
<ul class="list-disc list-inside">
<li>You started programming because of games.</li>
<li>You find yourself saying "I use jQuery for most stuff" when asked about JS. Games get you working with real JS.</li>
<li>Your JavaScript is not as good as your server-side code in another language (Ruby, Java, Python, etc.).</li>
<li>You have never thought about performance in JavaScript. Games tend to execute code in a large loop, so performance must be considered.</li>
<li>You want to learn Node.js, but learning Node.js AND real JS at the same time seems too complicated.</li>
<li>You want to actually make money selling games. This is possible, and getting easier all the time.</li>
</ul>
<p><a class="underline" href="http://jster.net">jster.net</a> shows currently nearly 100 more reasons, or game engines. When you add in various commercial and cross-platform engines, that number grows significantly. So you could say there are plenty of starting points.</p>
<p>To make HTML5 games with these engines, you could read a book or a tutorial in isolation, but learning in the right context is important. If you want to learn quickly, consider entering a contest.  Proving to yourself that you can quickly make a game feels good, and you will uncover knowledge gaps that you might sweep under the rug if you were just following a book or a tutorial.</p>
<p>There are two main types of competitions: game jams and contests. Jams are more community oriented whereas contests focus more on the result.</p>
<a href="#game-jams"><h2 class="inline" id="game-jams">Game Jams</h2></a>
<p>Game Jams are a well established concept among game makers, and tend to have entrants who use tools like GameMaker, Unity, and Flash libraries that aid their ability to make games quickly. The focus tends to be on the games rather than the tools. They are unlike tech conferences where improving in technologies and techniques is paramount.</p>
<p>In-person jams like the Global Game Jam are a great way to collaborate and learn more about game design as well as game development. That said, these also provide challenges to developers because they tend to only last for a day or two.  Global Game Jam and Ludum Dare* both have a 48 hour window to make a game from scratch. Typically even large jams don't have prizes for winners, but that doesn't stop big names like Notch, the maker of minecraft, from participating.**</p>
<p>On the smaller side of things, impromptu jams spring up all the time.  All it takes is a few friends wanting to try out new ideas and share them with others. Because jams can be organized informally and with short notice, a search for "game jam", "gamejam" or "#gamejam" on Twitter will give more up to date information on upcoming contests than relying on Google search.</p>
<p>Here are a few popular game jams you should know about:</p>
<a href="#yearly"><h3 class="inline" id="yearly">Yearly</h3></a>
<p>{{ screenshot: <a class="underline" href="http://globalgamejam.org">http://globalgamejam.org</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://globalgamejam.org/">Global Game Jam</a> (<a class="underline" href="http://radstronomical.com/media/ekg.html">Entry</a>)</li>
<li><a class="underline" href="http://nordicgamejam.org/">Nordic Game Jam</a> (<a class="underline" href="http://joon.be/toy/pressx/">Audience Award 2nd Place</a>)</li>
</ul>
<a href="#three-per-year"><h3 class="inline" id="three-per-year">Three per Year</h3></a>
<p>{{ screenshot: <a class="underline" href="http://www.ludumdare.com">http://www.ludumdare.com</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.ludumdare.com">Ludum Dare</a> (<a class="underline" href="http://www.ludumdare.com/compo/ludum-dare-26">2nd Place Overall</a>)</li>
</ul>
<a href="#monthly"><h3 class="inline" id="monthly">Monthly</h3></a>
<p>{{ screenshot: <a class="underline" href="http://22jams.com">http://22jams.com</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.ludumdare.com">Mini Ludum Dare</a></li>
<li><a class="underline" href="http://22jams.com/">22 Jams</a></li>
</ul>
<a href="#contests"><h2 class="inline" id="contests">Contests</h2></a>
<p>Throughout the year, there are dozens of contests. Some are specific to a platform such as Flash, iPhone, or HTML5.  Some require use of a specific game engine or development environment. Some have a social mission and others are just for fun.</p>
<p>For the most part, they are infrequent, so if you miss them, you might have to wait a year to participate. And that's assuming the contest will happen again.  On the plus side, unlike game jams, they usually offer prizes of cash or free tools and services.</p>
<p>On the downside, hefty sponsorship sometimes means that sponsors require a licensing agreement as a condition of entry.  It is not uncommon for contests to be longer than a typical 2 day jam length.</p>
<p>Here of some contests of note:</p>
<a href="#yearly"><h3 class="inline" id="yearly">Yearly</h3></a>
<p>{{ screenshot: <a class="underline" href="http://www.igf.com">http://www.igf.com</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.igf.com">Independent Games Festival</a> (<a class="underline" href="http://www.newgrounds.com/portal/view/591565">Excellence in Narrative Winner</a>)</li>
<li><a class="underline" href="http://www.jenniferann.org/">Life.Love. Game Design Challenge</a> (<a class="underline" href="http://www.jenniferann.org/what-kind-of-monster/2013-video-game-to-stop-teen-dating-violence.htm">Door Prize</a>)</li>
<li><a class="underline" href="http://nodeknockout.com/">Node Knockout</a> (<a class="underline" href="http://somethingcoded.nko3.jitsu.com/">Overall Winner</a>)</li>
<li><a class="underline" href="http://js1k.com/">JS1K</a> (<a class="underline" href="http://js1k.com/2012-love/demo/1175">8th Place</a></li>
</ul>
<a href="#past"><h3 class="inline" id="past">Past</h3></a>
<p>{{ screenshot: <a class="underline" href="http://js13kgames.com">http://js13kgames.com</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://js13kgames.com/">JS13KGames</a> (<a class="underline" href="http://js13kgames.com/games/spacepi/index.html">1st Place</a>)</li>
<li><a class="underline" href="http://blog.udacity.com/2013/05/html5-game-development-contest-winners.html">Udacity Game Development Challenge</a> (<a class="underline" href="http://cs255.foxesandshotguns.com/">1st Place</a>)</li>
<li><a class="underline" href="https://gameon.mozilla.org/en-US/">Mozilla's Game On</a>(<a class="underline" href="http://bombermine.com/#/">Best Web-Only Game</a>)</li>
<li><a class="underline" href="https://blog.mozilla.org/gameon/2013/01/08/github-game-off-winners/">GitHub Game Off</a> (<a class="underline" href="http://gregbatha.com/branches/">Winner</a>)</li>
<li><a class="underline" href="http://10k.aneventapart.com/">An Event Apart 10K</a>(<a class="underline" href="http://10k.aneventapart.com/2/Uploads/621/">Grand Prize Winner</a>)</li>
</ul>
<a href="#upcoming"><h3 class="inline" id="upcoming">Upcoming</h3></a>
<p>{{ screenshot: <a class="underline" href="https://developer.tizen.org/contests/tizen-app-challenge">https://developer.tizen.org/contests/tizen-app-challenge</a> }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://developer.tizen.org/contests/tizen-app-challenge">Tizen App Challenge</a></li>
</ul>
<p>You can also use <a class="underline" href="http://compohub.net/">CompoHub</a> to keep track of upcoming competitions.</p>
<a href="#fightmagicrun-com"><h2 class="inline" id="fightmagicrun-com">FightMagicRun.com</h2></a>
<p>{{ screenshot: <a class="underline" href="http://fightmagicrun.com">http://fightmagicrun.com</a> }}</p>
<p><a class="underline" href="http://fightmagicrun.com">FiMaRu</a> has a fresh take on game contests.  The 48-hour timeframe is preserved from the larger game jam tradition, because it's enough time to do something interesting, but not enough time for an otherwise fun event to feel like a burden.  It's weekly, so you can reliably participate in a contest any time you want.  It's HTML5 specific, so everyone making games can help move the web forward.</p>
<p>Participation does not imply any transfer of rights as it does in some contests.  And the prize is $100, which is enough to be about as interesting as a big poker night, but small enough to ensure a good mix of beginners and established game devs.  $100 also allows for the contest to be weekly. The details of the contest are explained <a class="underline" href="http://fightmagicrun.com/blog/posts/contest-details">here</a>. And yes, you can <a class="underline" href="http://fightmagicrun.com">register</a> for a contest this weekend.</p>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<p>If you're looking to lock down your JavaScript better or make a game in an intense, but short timeframe, competitions are everywhere.  You have your pick from anything to huge events like Global Game Jam to smaller jams with friends to 4 million dollar competitions to 100 dollar competitions.  And when you find the context to learn and create games with people you like, it won't just be fun for you, you'll also be making fun for others.</p>
<p>*Ludum Dare also has a 72 hour competition.</p>
<p>**One of Notch's entries: <a class="underline" href="https://s3.amazonaws.com/ld48/index.html">https://s3.amazonaws.com/ld48/index.html</a></p>
]]></content></entry><entry><title>Monthly JSter #4: News of June 2013</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-june-2013"></link><id>monthly-jster-june-2013</id><published>2013-07-01T20:35:10.000Z</published><content type="text/html"><![CDATA[<p>It looks like the JS people are pretty busy even in the Summer months. I mentioned about a sibling service in <a class="underline" href="http://jster.net/blog/monthly-jster-may-2013">our previous monthly JSter</a>. We've officially released it! Check out <a class="underline" href="http://www.cdnperf.com/">CDNperf</a>.</p>
<p><strong>CDNperf</strong> is a service that allows you to benchmark various CDN providers focusing on JavaScript libraries and frameworks. Our service uses <a class="underline" href="https://www.pingdom.com/">Pingdom</a> as the data provider. The user interface is development of our own.</p>
<p>Remember that Monthly JSter is available as <a class="underline" href="https://buttondown.email/jster">a newsletter</a>. We promise to spam you only once per month!</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://bramp.github.io/js-sequence-diagrams/">js-sequence-diagrams</a> - Write your UML sequence diagrams! <a class="underline" href="http://jster.net/library/js-sequence-diagrams">JSter entry</a></li>
<li><a class="underline" href="https://github.com/TooTallNate/ansi-canvas">ansi-canvas</a> - Render canvas to your terminal. <a class="underline" href="http://jster.net/library/ansi-canvas">JSter entry</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://daker.me/2013/06/5-html5-javascript-apis-to-keep-an-eye-on.html">5 HTML5 Javascript APIs to keep an eye on</a></li>
<li><a class="underline" href="http://jlongster.com/A-Study-on-Solving-Callbacks-with-JavaScript-Generators">A Study on Solving Callbacks with JavaScript Generators</a></li>
<li><a class="underline" href="http://www.webdirections.org/blog/build-a-motion-activated-security-camera-with-webrtc-canvas-and-device-orientation/">Build a motion activated security camera, with WebRTC, canvas and Device Orientation</a></li>
<li><a class="underline" href="https://medium.com/code-adventures/174f1fe66127">Callbacks vs Coroutines</a></li>
<li><a class="underline" href="http://engineering.linkedin.com/nodejs/blazing-fast-nodejs-10-performance-tips-linkedin-mobile">Blazing fast node.js: 10 performance tips from LinkedIn Mobile</a></li>
<li><a class="underline" href="http://eviltrout.com/2013/06/15/ember-vs-angular.html">AngularJS vs Ember</a></li>
<li><a class="underline" href="http://javascriptplayground.com/blog/2013/06/refactoring-js/">Refactoring DOM Heavy JS</a></li>
<li><a class="underline" href="https://zapier.com/engineering/intro-to-web-workers/">Intro to Web Workers</a></li>
<li><a class="underline" href="http://blog.nodejitsu.com/npm-innovation-through-modularity">npm: innovation through modularity</a></li>
<li><a class="underline" href="http://blog.strongloop.com/a-comparison-of-node-js-paas-hosting-providers/">Comparing Node.js Support on PaaS Hosting Providers</a></li>
<li><a class="underline" href="http://nerds.airbnb.com/performance-tuning/">Performance Tuning</a> - See how the <a class="underline" href="https://www.airbnb.com/">airbnb</a> guys do it.</li>
<li><a class="underline" href="http://bradfrostweb.com/blog/post/mobile-web-problems/">Mobile Web Problems and How to Avoid Them</a></li>
</ul>
<p>{{ screenshot: <a class="underline" href="http://jsbooks.revolunet.com/">http://jsbooks.revolunet.com/</a> }}</p>
<a href="#resources"><h2 class="inline" id="resources">Resources</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jsbooks.revolunet.com/">JSbooks</a> - A collection of free JavaScript related books.</li>
<li><a class="underline" href="https://github.com/blakeembrey/code-problems">blakeembrey/code-problems</a> - Common code problems solved in JavaScript.</li>
<li><a class="underline" href="http://nodezoo.com/">NodeZoo</a> - Search engine for Node.js modules.</li>
<li><a class="underline" href="http://devtoolsecrets.com/">Secrets of the Browser Developer Tools</a></li>
<li><a class="underline" href="http://webplatformdaily.org/">Open Web Platform Daily Digest</a></li>
<li><a class="underline" href="http://thetoolbox.cc/">The Toolbox</a> - A collection of the best time-saving apps, tools, and widgets from around the web.</li>
<li><a class="underline" href="https://github.com/dypsilon/frontend-dev-bookmarks">dypsilon/frontend-dev-bookmarks</a> - If you don't feel overwhelmed yet, check out this list!</li>
<li><a class="underline" href="http://www.javascriptcookbook.com/">The JavaScript Cookbook</a> - Common problems and their solutions</li>
</ul>
<p>{{ screenshot: <a class="underline" href="http://www.json-generator.com/">http://www.json-generator.com/</a> }}</p>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.json-generator.com/">JSON Generator</a> - Dummy data generator for dummies.</li>
<li><a class="underline" href="https://david-dm.org/">David</a> - David watches your Node.js dependencies and keeps your project up to date</li>
<li><a class="underline" href="https://picni.cc/">picnicc</a> - Custom builds made easy</li>
<li><a class="underline" href="http://hitchjs.com/">Hitch</a> - Extension model for CSS</li>
<li><a class="underline" href="http://www.modern.ie/en-US/virtualization-tools#downloads">IE Virtual Machines</a></li>
<li><a class="underline" href="https://github.com/philipwalton/html-inspector/">HTML Inspector</a></li>
<li><a class="underline" href="https://github.com/NV/chrome-devtools-autosave">NV/chrome-devtools-autosave</a> - Auto-saving CSS and JavaScript changes from the Chrome Developer Tools.</li>
<li><a class="underline" href="http://devo.ps/blog/2013/06/26/goodbye-node-forever-hello-pm2.html">Goodbye node-forever, hello PM2</a></li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://michaelbrooks.ca/deck/jsconf2013">Master the CLI with Node</a></li>
<li><a class="underline" href="http://www.slideshare.net/BenLin2/webconf-nodejsproductionarchitecture">node.js - production site architecture</a></li>
<li><a class="underline" href="http://alupark.fi/presentations/typography/">Typography ABC</a></li>
<li><a class="underline" href="http://www.slideshare.net/guypod/a-picture-costs-a-thousand-words18062013">A Picture Costs a Thousand Words</a></li>
<li><a class="underline" href="https://speakerdeck.com/wesleyhales/a-baseline-for-web-performance-with-phantomjs">A Baseline for Web Performance with PhantomJS</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://seriouslyjs.org/">Seriously</a> - Amazing video compositor in JavaScript.</li>
<li><a class="underline" href="http://bl.ocks.org/mourner/5780503">Leaflet, Jony Ive edition</a></li>
<li><a class="underline" href="http://rednuht.org/genetic_cars_2/">Genetic Cars 2</a></li>
</ul>
<a href="#games"><h2 class="inline" id="games">Games</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jakearchibald.github.io/request-quest/">Request Quest</a></li>
<li><a class="underline" href="http://muchmala.com/">muchmala</a> - Jigsaw the mmorpg</li>
<li><a class="underline" href="https://npmjs.org/package/stream-adventure">stream-adventure</a></li>
</ul>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<blockquote>
<p>Array(16).join('lol' - 2) + ' Batman!';</p>
</blockquote>
]]></content></entry><entry><title>Monthly JSter #3: News of May 2013</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-may-2013"></link><id>monthly-jster-may-2013</id><published>2013-06-07T13:22:45.000Z</published><content type="text/html"><![CDATA[<p>It was a busy month to put it mildly. You should see some of the results soon in a form of a sibling service.</p>
<p>I provided an <a class="underline" href="http://royal.pingdom.com/2013/05/22/web-dev-projects/">interview at Pingdom's blog</a>. Besides that I contributed a <a class="underline" href="http://gun.io/blog/finding-javascript-libraries/">guest post for gun.io</a>. In this case the topic was "How do I find JavaScript libraries?" and you can probably guess which service was mentioned there amongst a few others.</p>
<p>This will be the first time "Monthly JSter" will be available as <a class="underline" href="https://buttondown.email/jster">a newsletter</a>. So in case you came by this post by accident and are interested in this sort of content, do subscribe. Besides our montly one you might enjoy reading <a class="underline" href="http://javascriptweekly.com/">JavaScript Weekly</a>. <a class="underline" href="http://html5weekly.com/">HTML5 Weekly</a> is somewhat excellent too. The lists have linked to us a couple of times. Thank you for that!</p>
<p>I think I've bored you enough. Time to scavenge through <a class="underline" href="https://twitter.com/jsterlibs">our Twitter feed</a> and <a class="underline" href="http://jster.net/blog">blog archives</a>. :)</p>
<p>{{ screenshot: Turbulenz }}</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://turbulenz.com/">Turbulenz</a> - The game engine <a class="underline" href="http://news.turbulenz.com/post/49430669886/turbulenz-engine-goes-open-source">went open source</a>. See also <a class="underline" href="http://jster.net/library/turbulenz">JSter entry</a>.</li>
<li><a class="underline" href="http://pijs.io/">Pijs.io</a> - <a class="underline" href="http://www.raspberrypi.org/">Raspberry Pi</a> + <a class="underline" href="http://nodejs.org/">Node.js</a> = Sheer awesomeness as in Pijs.io</li>
<li><a class="underline" href="http://mixitup.io/">MixItUp</a> - A beautiful filtering and sorting library. <a class="underline" href="http://jster.net/library/mixitup">JSter entry</a></li>
<li><a class="underline" href="http://theonion.github.io/fartscroll.js/">fartscroll.js</a> - Doubles your conversion rates, for a while anyway. <a class="underline" href="http://jster.net/library/fartscroll-js">JSter entry</a>.</li>
<li><a class="underline" href="http://www.polymer-project.org/">Polymer</a> - A structured way to build web apps. <a class="underline" href="http://jster.net/library/polymer">JSter entry</a></li>
<li><a class="underline" href="http://dtao.github.io/lazy.js/">lazy.js</a> - Like <a class="underline" href="http://underscorejs.org/">Underscore</a>, but lazier. <a class="underline" href="http://jster.net/library/lazy-js">JSter entry</a></li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<p>{{ screenshot: marionettejs }}</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://9elements.com/io/index.php/comparison-of-marionette-and-chaplin/">JavaScript MVC frameworks: A Comparison of Marionette and Chaplin</a></li>
<li><a class="underline" href="http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and">The MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.js</a></li>
<li><a class="underline" href="http://jster.net/blog/html5-prototyping-services">Simpler Web Design with HTML5 Prototyping Services</a></li>
<li><a class="underline" href="https://segment.io/blog/tips-for-maintaining-an-open-source-library/">Tips for Maintaining an Open-Source Library</a></li>
<li><a class="underline" href="https://hacks.mozilla.org/2013/05/compiling-to-javascript-and-debugging-with-source-maps/">Compiling to JavaScript, and Debugging with Source Maps</a></li>
<li><a class="underline" href="http://ruoyusun.com/2013/05/25/things-i-wish-i-were-told-about-angular-js.html">Things I Wish I Were Told About Angular.js</a></li>
<li><a class="underline" href="http://jlongster.com/A-Study-on-Solving-Callbacks-with-JavaScript-Generators">A Study on Solving Callbacks with JavaScript Generators</a></li>
<li><a class="underline" href="http://jster.net/blog/batman-js-interview-with-nick-small-shopify">Fighting crimes with Batman.js - Interview with Nick Small of Shopify</a></li>
</ul>
<a href="#tutorials"><h2 class="inline" id="tutorials">Tutorials</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://rockyj.in/2013/05/11/yeoman_and_backbone.html">Building HTML5 Apps with Yeoman and Backbone</a></li>
<li><a class="underline" href="http://thomasstreet.net/blog/spreadsheet.html">Building a Spreadsheet in 20 Minutes with Angular.js</a> - The first steps towards your own version of Excel</li>
<li><a class="underline" href="http://jster.net/blog/cross-browser-kango-extensions-and-backbone">Building Cross-Browser Extensions with Kango and Backbone</a></li>
<li><a class="underline" href="http://gun.io/blog/Building-Backbone.js-apps-with-Backlift-Views-and-Templates/">Building Backbone.js apps with Backlift Part 1: Views and Templates</a></li>
</ul>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.thomasboyt.com/2013/05/02/announcing-charcoal.html">Charcoal, the easiest way to create Ember projects</a></li>
<li><a class="underline" href="http://www.explainjs.com/">ExplainJS</a> - View comments and code side by side</li>
<li><a class="underline" href="http://theintern.io/">Intern</a> - A promising approach to testing your web app. See also <a class="underline" href="http://jster.net/library/intern">JSter entry</a></li>
<li><a class="underline" href="http://www.jshint.com/blog/2013-05-07/2-0-0/">JSHint 2.0.0</a></li>
<li><a class="underline" href="http://projects.jga.me/jquery-builder/">jQuery Builder</a> - Create a custom build of your favorite(?) library</li>
<li><a class="underline" href="https://groups.google.com/forum/#!msg/haxelang/h_KliNPb-jM/AQdmP7M3KO0J">Haxe 3.0</a></li>
<li><a class="underline" href="http://www.json-generator.com/">JSON Generator</a> - Perfect for your dummy needs</li>
</ul>
<a href="#slides"><h2 class="inline" id="slides">Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://speakerdeck.com/anguscroll/the-politics-of-javascript">The Politics of JavaScript</a> - Excellent slides by Angus Croll. His <a class="underline" href="http://javascriptweblog.wordpress.com/">blog is awesome too</a>.</li>
<li><a class="underline" href="http://slid.es/zz85/the-js1k-experience">The j1k Experience</a> - Superb slides by <a class="underline" href="https://twitter.com/BlurSpline">@BlurSpline</a></li>
<li><a class="underline" href="https://speakerdeck.com/mourner/high-performance-data-visualizations">High Performance Data Visualizations</a></li>
<li><a class="underline" href="http://michaelbrooks.ca/deck/jsconf2013">Master the CLI with Node</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.unrealengine.com/html5/">Epic Citadel</a> - It doesn't get more epic than that. You might remember this demo from iOS and Android devices.</li>
<li><a class="underline" href="http://archiveroom.net/">GitHub ArchiveRoom</a> - Explore your <a class="underline" href="https://github.com/">GitHub</a> archive in 3D. How neat is that?</li>
<li><a class="underline" href="http://js1k.com/2013-spring/demos">js1k Spring Demos</a></li>
<li><a class="underline" href="http://codeincomplete.com/posts/2013/4/30/javascript_gauntlet/">JavaScript Gauntlet</a> - Yes, Gauntlet is back</li>
<li><a class="underline" href="http://hn.premii.com/">HackerNews frontend for the mobile</a> - Nice work by <a class="underline" href="https://twitter.com/premii">@premii</a></li>
<li><a class="underline" href="http://codepen.io/onediv/pen/AsDev">CSS NES</a> - <a class="underline" href="https://twitter.com/One_div">@One_div</a> put a NES in your CSS</li>
</ul>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<blockquote>
<blockquote>
<p>What's the favorite bread of JS developers?</p>
</blockquote>
</blockquote>
<blockquote>
<blockquote>
<p>NaN</p>
</blockquote>
</blockquote>
]]></content></entry><entry><title>Fighting crimes with Batman.js - Interview with Nick Small of Shopify</title><link rel="alternate" type="text/html" href="https://jster.net/blog/batman-js-interview-with-nick-small-shopify"></link><id>batman-js-interview-with-nick-small-shopify</id><published>2013-05-20T13:22:40.000Z</published><content type="text/html"><![CDATA[<p>There are many MVC frameworks for client-side development. According to GitHub stats, <a class="underline" href="http://angularjs.org/"><strong>AngularJS</strong></a> is now the second most popular JavaScript MVC framework right after Backbone. What made Angular popular? I'd say people like it because of its declarative style and bidirectional data binding in views. But did you know that there is another framework that provides similar binding features and a lot more? It is called <a class="underline" href="http://batmanjs.org/"><strong>batman.js</strong></a>. In many cases it looks a bit like AngularJS. As you know, there is Google behind Angular, but batman.js is maintained by <a class="underline" href="http://shopify.com"><strong>Shopify</strong></a> (also no stranger to open source) and looks really promising.</p>
<p>Batman's views rely heavily on HTML data attributes. Compared to Angular Batman is less modular, placing its namespace in global scope for easier access. batman.js is written in CoffeeScript and shares the principle of "convention over configuration" inspired by Ruby on Rails. This makes its code more compact and readable, much faster to write and prototype, and easier to jump into a new project. The downside is that the learning curve now includes learning all of the conventions that the framework provides.</p>
<p>{{ screenshot: batman.js }}</p>
<p>Let's take a quick look at some code from both frameworks. Here is a controller built both in AngularJS and batman.js.
<em>(I will use CoffeeScript in this example)</em></p>
<script src="https://gist.github.com/DavertMik/9ec02b30f18609acd6e9.js"></script>

<p>As you see they are pretty similar, but personally I find batman.js's code a lot cleaner.</p>
<p>One problem with batman.js is the documentation. Batman in general has a bit of a smaller community and fewer tutorials available. Still, I tried it once for my project <a class="underline" href="http://mailican.com">Mailican</a> and I must say the experience was really positive.</p>
<p>After <a class="underline" href="http://jster.net/blog/batman-js-mvc-for-superheroes">I discovered Batman.js</a>, I was really interested to speak with its creator, <a class="underline" href="http://github.com/nickjs"><strong>Nick Small</strong></a> from <strong>Shopify</strong>.</p>
<a href="#hi-nciagra-why-did-you-decide-to-build-your-own-mvc-framework-"><h4 class="inline" id="hi-nciagra-why-did-you-decide-to-build-your-own-mvc-framework-">Hi, <a class="underline" href="http://twitter.com/nciagra"><strong>@nciagra</strong></a>. Why did you decide to build your own MVC framework?</h4></a>
<p>We set out to rebuild the Shopify merchant interface as a JavaScript application. We wanted a super-fast runtime experience, the ability to prototype new features more quickly, and a more responsive and interactive user interface. Think back to those early Wild West days of JavaScript MVC frameworks. Off the top of my head, at the time, there was JavascriptMVC, Backbone and early code for SproutCore 2.0. Of these, we liked Backbone the most, but knew that it wouldn't give us nearly enough support to easily build our huge application. That was the idea; to build a framework that would let us work the way we want with our designers and developers, support us as the app grew to hundreds of files and classes, and follow the ideas inherent in our culture of how a Shopify app should be developed.</p>
<a href="#how-hard-is-to-maintain-an-open-source-project-of-that-size-are-you-the-only-core-developer-"><h4 class="inline" id="how-hard-is-to-maintain-an-open-source-project-of-that-size-are-you-the-only-core-developer-">How hard is to maintain an open source project of that size? Are you the only core developer?</h4></a>
<p>It's definitely a challenge. batman.js is developer as an extraction from <a class="underline" href="http://shopify.com/2">Shopify 2</a>, so all of the many many developers we have here are potential contributors, and <a class="underline" href="http://github.com/hornairs">many</a> <a class="underline" href="http://github.com/matthelm">of</a> <a class="underline" href="http://github.com/kristianpd">them</a> <a class="underline" href="http://github.com/cjoudrey">are</a>. There is also a growing number of external contributors—working on some really amazing projects—who send us some great pull requests. I'd say the biggest challenge for us is managing our time between batman.js and the Shopify product, but it does mean that all of the code going into batman.js is code being used in our production app.</p>
<a href="#why-did-you-choose-coffeescript-for-your-project-wouldn-t-plain-javascript-provide-more-control-over-the-code-"><h4 class="inline" id="why-did-you-choose-coffeescript-for-your-project-wouldn-t-plain-javascript-provide-more-control-over-the-code-">Why did you choose CoffeeScript for your project? Wouldn't plain JavaScript provide more control over the code?</h4></a>
<p>Take your pick: we like writing in CoffeeScript better, Shopify is a Ruby shop and CoffeeScript looks familiar to Rubyists, it results in far less and far cleaner code, it allows us to build more expressive DSL's, and there is almost zero overhead or downsides to using it. Anything you can do in JavaScript you can also do in CoffeeScript, so no, it wouldn't provide any additional control. Plus, you can drop into JavaScript at any point (we don't).</p>
<a href="#probably-many-javascript-developers-start-with-backbone-and-end-up-with-building-their-own-framework-architecture-what-issues-they-should-keep-in-mind-developing-a-mvc-framework-maybe-you-could-share-some-tips-and-advices-"><h4 class="inline" id="probably-many-javascript-developers-start-with-backbone-and-end-up-with-building-their-own-framework-architecture-what-issues-they-should-keep-in-mind-developing-a-mvc-framework-maybe-you-could-share-some-tips-and-advices-">Probably many JavaScript developers start with Backbone and end up with building their own framework architecture. What issues they should keep in mind developing a MVC framework? Maybe you could share some tips and advices?</h4></a>
<p>We've learned a ton about framework design and the JavaScript environment throughout this process. I can definitely recommend building your own framework that suits your own needs if one doesn't already exist and if you have the time, energy, and follow through to dedicate to it. That said, there's a lot of knowledge that Shopify and all the other framework developers have generated that you lose out on by rolling your own; I'd definitely also recommend trying out a few that appeal to you and reading through the code to try to avoid some of the most common pitfalls in framework development.</p>
<a href="#what-are-the-future-plans-for-batman-js-"><h4 class="inline" id="what-are-the-future-plans-for-batman-js-">What are the future plans for batman.js?</h4></a>
<p>The next release of batman.js is going to be a big, breaking release. We've decided to clean up a lot of API's and make everything more consistent. We're also going to bring everything in line with Rails 4 and remove a lot of old cruft and code paths that either aren't being used any more or just don't belong in the core of the framework. You can see some early results of this in master right now. Performance and documentation are also huge concerns. We have a dedicated suite of tools for testing batman.js performance, and it's getting really, really good. Documentation is also extremely important to us, and we'll have some really neat developments on that front to go along with the new version!</p>
<a href="#and-as-we-are-a-javascript-libraries-site-please-tell-us-of-your-favorite-javascript-libraries-"><h4 class="inline" id="and-as-we-are-a-javascript-libraries-site-please-tell-us-of-your-favorite-javascript-libraries-">And as we are a JavaScript libraries site, please tell us of your favorite JavaScript libraries.</h4></a>
]]></content></entry><entry><title>Building Cross-Browser Extensions with Kango and Backbone</title><link rel="alternate" type="text/html" href="https://jster.net/blog/cross-browser-kango-extensions-and-backbone"></link><id>cross-browser-kango-extensions-and-backbone</id><published>2013-05-09T15:34:23.000Z</published><content type="text/html"><![CDATA[<p>A while ago I developed a service known as <a class="underline" href="http://mailican.com">Mailican</a>. The idea is simple.
The service allows you to define aliases for your actual email. You can then control these aliases
via Mailican. Unfortunately creating them can be a bit cumbersome at times as you have to create them
through the service. As it happens there's a nice way to work around this problem: browser extensions!</p>
<p>I decided that the extension would create a popup with the list of current user emails. Here's an example:</p>
<p><img src="https://dl.dropbox.com/u/930833/Menu_004.png" alt="Extension" class="" width="" height="" /></p>
<p>To get list of available emails I had to connect to my application server via REST protocol. 
In order to make list flexible with ability to add new emails on the fly I decided to use a form in the top.
And to manage all this things I included <strong>Backbone</strong>. It worked well for me and I must say it is great framework for such lightweight applications.</p>
<p>{{ screenshot: Kango }}</p>
<p>I chose <strong>Kango Extensions</strong> for creating extensions. Besides being <strong>free</strong> (except for IE), Kango is cross-browser.
Unlike it's competitor <a class="underline" href="http://crossrider.com/">Crossrider</a>, Kango is just a build tool with a set of open APIs. 
In Crossrider you can develop only using a cloud IDE and all the apis are closed. I prefer to keep my code to myself and to work in local environment. 
Maybe Kango has less features, but at least I control and own everything I produce in this case. </p>
<a href="#starting-with-kango-extensions"><h2 class="inline" id="starting-with-kango-extensions">Starting with Kango Extensions</h2></a>
<p>Kango is easy to install. Just download it from <a class="underline" href="http://kangoextensions.com/kango/kango-framework-latest.zip">official site</a> and unzip somewhere.</p>
<p>From now on you can use <code>kango</code> console utility to execute tasks. We have only two here: <code>create</code> and <code>build</code>. But that's enough.
Let's create a project:</p>
<p><code>~/kango/kango.py create ~/my_extension</code></p>
<p>By running this you will get folder <code>my_extension</code> filled with lots of folders and boilerplate code. Like on this screenshot (I added Backbone and Underscore later)</p>
<p><img src="https://dl.dropbox.com/u/930833/Selection_005.png" alt="Files" class="" width="" height="" /></p>
<p>We should stick to <code>src/common</code> folder which contains cross-browser code. Once you run </p>
<p><code>~/kango/kango.py build ~/my_extension</code></p>
<p>source code will be translated and placed to <code>src/browsername</code> folders of this dir. And packages will be stored in <code>output</code> dir.</p>
<a href="#preparing-assets"><h2 class="inline" id="preparing-assets">Preparing Assets</h2></a>
<p>The main extension file is <code>src/common/main.js</code>. I'm using it only to define popup style. In it you can store your background scripts which may stay alive all the time browser is running.
But I need only popup to be shown. Nothing more. </p>
<script src="https://gist.github.com/DavertMik/5540534.js"></script>

<p>It is important to notice that you need to <strong>set fixed width and height to your popup</strong>. </p>
<p>Currently only Chrome allows popups to be autosized. As defined a popup is taken from <code>popup.html</code> file. </p>
<p>Let's create it and include all required assets.</p>
<script src="https://gist.github.com/DavertMik/5540548.js"></script>

<p>As you see we are using local path for JavaScript files. As you guessed that files should be placed into the same <code>common</code> directory. Kango APIs are available by default,
but other libs you should download manually. You can take them from <a class="underline" href="http://www.jsdelivr.com/">JSDelivr CDN</a> for example.</p>
<p>I created <code>popup.js</code> file to place all JavaScript code in it. To use any of browser features we should stick to Kango API. 
For example, we need to use <code>KangoAPI.onReady</code> instead of the familiar <code>jQuery.ready()</code>. And to open links in a browser we need to access browser tabs apis.</p>
<script src="https://gist.github.com/DavertMik/5540615.js"></script>

<a href="#defining-models"><h2 class="inline" id="defining-models">Defining Models</h2></a>
<p>For my extension I use 2 Backbone models: <code>Mail</code> and <code>User</code>. All their data were taken from 3rd party service. 
You can't use standard Backbone methods to run cross domain requests from extension. 
I redefined the <code>fetch</code> method of my models to work with Kango APIs. And here the User model I've got:</p>
<script src="https://gist.github.com/DavertMik/5540641.js"></script>

<p>As you see, I'm rendering special SignIn view If user info can't be fetched. </p>
<p>Similarly I define model <code>Mail</code> model and <code>MailCollection</code> to represent a list of emails. They will be fetched and managed the same way.</p>
<script src="https://gist.github.com/DavertMik/5540669.js"></script>

<p>I put corresponding <code>fetch</code> model into <code>MailCollection</code>. In final script this collection was too long, so I won't post it here.</p>
<a href="#working-with-views"><h2 class="inline" id="working-with-views">Working with Views</h2></a>
<p>At first we need to define all templates in <code>popup.html</code>. I'm using Underscore templates so nothing new here: <code><script type="text/x-underscore-template"></code> works well.</p>
<p>In <code>popup.js</code> we should use Backbone Views to represent templates: </p>
<script src="https://gist.github.com/DavertMik/5540704.js"></script>

<p>I attached events to represent model fetching, and creating a new emails over form. When new email is created I submit POST request via <code>kango.xhr</code> and attach email to list if everything is successful.</p>
<a href="#make-it-work-together"><h2 class="inline" id="make-it-work-together">Make it work together</h2></a>
<p>When models, templates, and views are defined we need to launch them. It can be done in cool async way:</p>
<script src="https://gist.github.com/DavertMik/5540722.js"></script>

<p>To try your new extension in a browser you should execute <code>~/kango/kango.py build ~/my_extension</code>.
This will produce packaged extensions to all 4 browsers. I used <strong>Chromium</strong> as a primary tool to develop and debug my extension. 
Open <em>Extensions</em> tab then drag and drop your newly created <code>*.crx</code> file placed in <code>output</code> folder.</p>
<p><img src="https://dl.dropbox.com/u/930833/Extensions%20-%20Chromium_007.png" alt="chromium" class="" width="" height="" /></p>
<p>To debug your popup you can use Chrome DevTools. Launch them by right-clicking on your extension button. </p>
<p><img src="https://dl.dropbox.com/u/930833/Menu_008.png" alt="menu" class="" width="" height="" /></p>
<p>Yes, manage popup. Also consider using <a class="underline" href="https://github.com/aterris/backbone.debug">Backbone Debug</a> script see all model views interactions in console.</p>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<p>I didn't use much of Kango Extensions API in these examples. I found them well documented, though. And you can use them as a wrapper for browser <code>messaging</code> or <code>storage</code> APIs.
Kango Extensions works smoothly and output extensions worked well in all tested browsers. BackboneJS allowed me to keep my code structured and to work well with data.</p>
<p>The day I wrote this post <a class="underline" href="http://kangoextensions.com/blog/2013/05/08/version-120-released.html">Kango Extensions 1.2 were released</a>. And that's great news! I wish good luck to this project, more features and more popularity.
Thanks, Kango for my new Mailican extension. I still need to publish it in all the browser extension catalogs, but that's another story.</p>
]]></content></entry><entry><title>Simpler Web Design with HTML5 Prototyping Services</title><link rel="alternate" type="text/html" href="https://jster.net/blog/html5-prototyping-services"></link><id>html5-prototyping-services</id><published>2013-05-07T15:44:12.000Z</published><content type="text/html"><![CDATA[<p>Web is becoming a second desktop now. And the requirements for web apps goes the same as for desktop apps. Especially for the UI part. 
It's a bad idea to start developing UI in Photoshop. You can't test application behavior, responsiveness, grids, on static image. 
Same goes for oldschool paper+pen method. You just don't aware of poroportions and sizes of your components, so drawed wireframes will look completely different when they come to HTML+CSS.</p>
<p>Modern way or prototyping stands for opening text editor and writing some HTML code with Twitter Bootstrap included. 
But actually why would you do this if there are services that does just the same in <strong>WYSIWYG</strong> way?
It is much easier to try different elements, positions, just by moving them through pages, without editing HTML or CSS. 
So why not to use this tools. You may stick to well known <strong>Bootstrap</strong>, use <strong>Foundation</strong> or custom framework. </p>
<p>Let's list them all. Choose the tool that fit your needs better.</p>
]]></content></entry><entry><title>Monthly JSter #2: News of April 2013</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-april-2013"></link><id>monthly-jster-april-2013</id><published>2013-05-03T02:51:16.000Z</published><content type="text/html"><![CDATA[<p>It's that time of the month again, the monthly JSter time that is. We started this tradition <a class="underline" href="http://jster.net/blog/monthly-jster-march-2013">a month ago</a> and intend to keep at it. Compared to last time we changed the format a little bit. Now it's more of an aggregate of our <a class="underline" href="https://twitter.com/jsterlibs">Twitter feed</a>. It can be very difficult to keep up with the fast moving scene and this little contribution of ours hopefully helps in that.</p>
<p>The service itself grew steadily during the past month. We refreshed the outlook a little bit and kept on doing small things here and there. And of course the amount of libraries we index keeps on growing. We also had our very first guest post by <a class="underline" href="http://indiegamr.com/">Olaf Horstmann</a>. Check out his awesome article <a class="underline" href="http://jster.net/blog/tools-to-package-your-html5-app-for-mobile-devices">Tools to Package Your HTML5 App for Mobile Devices</a>. Thanks for your contribution Olaf!</p>
<p>If you want to promote your JavaScript tool or library JSter's blog is the right place for that. Write a post about your library (tutorial, overview, or anything else) and we will publish it. In case you are interested in becoming a guest author, let us know. You may contact Michael at <em>davert.jster<at>mailican.com</em> or just poke us at Twitter. Either way works.</p>
<p>I think I've rambled enough. Enjoy the listings below!</p>
<p>{{ screenshot: jQuery }}</p>
<a href="#libraries"><h2 class="inline" id="libraries">Libraries</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jster.net/library/jquery">jQuery 2.0</a> - <a class="underline" href="http://blog.jquery.com/2013/04/18/jquery-2-0-released/">News</a>. In short support for older IE has been dropped and the library trimmed. Now it's possible to assemble your own jQuery even.</li>
<li><a class="underline" href="http://jster.net/library/ender">Ender 1.0</a> - Ender, a frontend package manager, reached version 1.0</li>
<li><a class="underline" href="http://jster.net/library/rivets-js">Rivets.js</a> - Declarative data binding. Works with Backbone for instance.</li>
<li><a class="underline" href="http://jster.net/library/rendr">Rendr</a> - <a class="underline" href="http://nerds.airbnb.com/weve-open-sourced-rendr-run-your-backbonejs-a/">Blogpost</a>, basically allows you to render Backbone views on server (Node.js) too</li>
<li><a class="underline" href="https://github.com/substack/node-browserify">Browserify</a> - Node.js style require in browser. It reached version 2.0 two months ago and has been stabilizing since.</li>
</ul>
<p>{{ screenshot: Brackets }}  </p>
<a href="#tools"><h2 class="inline" id="tools">Tools</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://brackets.io/">brackets.io</a> - Finally an editor built web development as a priority number one! Still in early stages but looks very promising already.</li>
<li><a class="underline" href="http://www.lighttable.com/">Light Table</a> - Light Table, an interactive IDE, reached 0.4.0 recently. There are some JS related goodies included.</li>
<li><a class="underline" href="https://github.com/auchenberg/dependo">dependo</a> - Visualize your CommonJS or AMD module dependencies in a force directed graph report</li>
<li><a class="underline" href="http://ariya.ofilabs.com/2013/01/javascript-code-complexity-visualization.html">Plato</a> - Plato provides a complexity report on your code. Spot the knots and whatnots.</li>
<li><a class="underline" href="https://github.com/marijnh/tern">Tern</a> - Tern takes JavaScript editing to the next level. Expect a plugin for your favorite text editor soon. Note that brackets.io comes with Tern already.</li>
<li><a class="underline" href="http://jsoneditoronline.org/">JSON Editor Online</a> - A nice way to visualize your JSON so that even Jason may understand it. No offense Jason.</li>
</ul>
<a href="#articles"><h2 class="inline" id="articles">Articles</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://blog.jcoglan.com/2013/03/30/callbacks-are-imperative-promises-are-functional-nodes-biggest-missed-opportunity/">Callbacks are imperative, promises are functional: Node’s biggest missed opportunity</a></li>
<li><a class="underline" href="https://github.com/eoftedal/writings/blob/master/published/javascript-security-cheat-sheet.md">Single Page Web App Security Cheat Sheet</a></li>
<li><a class="underline" href="http://jster.net/blog/html5-presentation-impress-reveal-deck-bespoke">Enhance Your Next Presentation with HTML5</a></li>
<li><a class="underline" href="http://blog.izs.me/post/48281998870/unix-philosophy-and-node-js">Unix Philosophy and Node.js</a></li>
<li><a class="underline" href="http://jster.net/blog/tools-to-package-your-html5-app-for-mobile-devices">Tools to Package Your HTML5 App for Mobile Devices</a></li>
<li><a class="underline" href="http://jster.net/blog/chaplin-brunch-author-interview">Interview with Paul Miller: maker of Chaplin and Brunch</a></li>
<li><a class="underline" href="http://jster.net/blog/Esa-Matti-Suuronen-interview-underscore-string">Interview with Esa-Matti Suuronen, developer of underscore.string</a></li>
</ul>
<a href="#demos"><h2 class="inline" id="demos">Demos</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://daniellmb.github.io/JavaScript-Scope-Context-Coloring/example/scope-coloring.html">JavaScript Scope Context Coloring</a> - Maybe you will understand JavaScript scopes after checking out this demo</li>
<li><a class="underline" href="http://starlogs.net/">Star Logs</a> - Your GitHub project logs displayed in a rather interesting way</li>
<li><a class="underline" href="http://artpolikarpov.github.io/garmoshka/">Accordion</a> - Yes, you can play it</li>
<li><a class="underline" href="http://gitlife.mrmikea.com/">GitLife</a> - Now you can put those hard earned GitHub contributions in work</li>
<li><a class="underline" href="http://qiao.github.io/PathFinding.js/visual/">Pathfinding visualization</a> - AI guys will love this</li>
<li><a class="underline" href="http://www.keithclark.co.uk/labs/css3-fps/">CSS3 FPS</a> - And there you thought it would be impossible to implement Doom using some JavaScript and CSS</li>
</ul>
<a href="#presentation-slides"><h2 class="inline" id="presentation-slides">Presentation Slides</h2></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.slideshare.net/TrevorBurnham/sane-async-patterns/">Sane Async Patterns</a></li>
<li><a class="underline" href="https://docs.google.com/presentation/d/1DNljLkRpe9LIDfcqcpHzdLvEOyuVH4d1y9dtAJBr1I8/preview">DevTools can do THAT?</a></li>
<li><a class="underline" href="http://www.slideshare.net/bebraw/survive-javascript-strategies-and-tricks">Survive JavaScript - Strategies and Tricks</a></li>
</ul>
]]></content></entry><entry><title>Interview with Esa-Matti Suuronen, developer of underscore.string</title><link rel="alternate" type="text/html" href="https://jster.net/blog/Esa-Matti-Suuronen-interview-underscore-string"></link><id>Esa-Matti-Suuronen-interview-underscore-string</id><published>2013-04-29T17:29:03.000Z</published><content type="text/html"><![CDATA[<p>This time we'll be discussing with Esa-Matti Suuronen of <a class="underline" href="http://www.opinsys.fi/">Opinsys</a>. A company known for its Linux based thin client solutions used in educational sector. Esa-Matti or <a class="underline" href="https://github.com/Epeli">Epeli</a> or just <a class="underline" href="https://twitter.com/EsaMatti">@EsaMatti</a> is particularly known for his <a class="underline" href="http://jster.net/library/underscore-string">underscore.string</a> library and has published several high profile posts over at <a class="underline" href="http://esa-matti.suuronen.org/">his blog</a>.</p>
<p>Time for some questions!</p>
<a href="#first-of-all-how-did-you-end-up-developing-underscore-string-why-did-it-become-such-a-success-"><h4 class="inline" id="first-of-all-how-did-you-end-up-developing-underscore-string-why-did-it-become-such-a-success-">First of all, how did you end up developing <em>underscore.string</em>? Why did it become such a success?</h4></a>
<p>I was looking for a library that would provide some missing bits from the
Javascript standard library I was used to in some other languages. I asked this
Stackoverflow <a class="underline" href="http://stackoverflow.com/questions/2999611/javascript-helper-libraries-no-dom-or-ajax-stuff">question</a> which lead me to the Underscore.js which did
implement everything I needed except the string extensions. Since I had already
quite a few string helper functions lying around it was pretty simple to put
Underscore.string together.</p>
<p>{{ screenshot: underscore-string }} </p>
<p>The popularity comes pretty much by piggybacking on the success of
<strong>Underscore.js</strong>. Quite soon after I released it <strong>Jeremy Ashkenas</strong> offered to link
to it from the Undescore.js page and being probably the only proper
Javascript string library with tests at the time. Also Big part of any even
remotely successful library is maintaining the project and I definitely cannot
take the credit for that. I gotta give big thanks to <a class="underline" href="https://github.com/edtsech">@edtsech</a> and <a class="underline" href="https://github.com/rwz">@rwz</a>
for taking care of the project. Thanks!</p>
<a href="#are-there-any-other-projects-you-would-like-to-specifically-mention-"><h4 class="inline" id="are-there-any-other-projects-you-would-like-to-specifically-mention-">Are there any other projects you would like to specifically mention?</h4></a>
<p><a class="underline" href="http://epeli.github.io/backbone.viewmaster/">Backbone.ViewMaster</a>. When I first started with <strong>Backbone.js</strong> the biggest
trouble for me was how to manage nested views views with it. Since I'm a big
believer of small and decoupled components and in Backbone.js your basic
component is a View. I ended up doing a lot of those. Originally I planned to
just first work my way with plain Backbone.js and then to migrate to something
like Marionette.js when I actually would see the need for it. But soon I
realized that I had already solved my biggest issues with just a small base
View I was inheriting from. Since I already had documented it for my colleagues
I ended up releasing it as a library. If you just need help with view nesting
with Backbone.js I think ViewMaster can take you a long way with just 1kb of
additional code.</p>
<a href="#what-reasons-drove-you-from-requirejs-to-browserify-how-do-you-see-the-future-of-modular-javascript-"><h4 class="inline" id="what-reasons-drove-you-from-requirejs-to-browserify-how-do-you-see-the-future-of-modular-javascript-">What reasons drove you from RequireJS to Browserify? How do you see the future of modular JavaScript?</h4></a>
<p>Well, I wasn't very happy with <strong>RequireJS</strong> even when I first started with it
because I mostly use node.js for my backend needs so CommonJS based solution
would have been a much better fit for me. But back then I didn't feel that
there where any flexible and robust enough solutions out there until <strong>Browserify</strong>
v2 was released. For a long time resisted using RequireJS. I even created <a class="underline" href="https://github.com/epeli/piler">Piler</a>
which was a module system agnostic solution for packing and compiling
Javascript modules.</p>
<a href="#if-you-had-to-start-a-javascript-project-say-a-client-and-a-backend-for-that-right-now-what-tools-would-you-use-why-"><h4 class="inline" id="if-you-had-to-start-a-javascript-project-say-a-client-and-a-backend-for-that-right-now-what-tools-would-you-use-why-">If you had to start a JavaScript project (say a client and a backend for that) right now, what tools would you use? Why?</h4></a>
<p>I would use everything mentioned here.</p>
<p><strong>Backbone.js</strong>. Combined with ViewMaster it gives me just enough features I need
without getting too much in the way.</p>
<p><strong>Node.js</strong>. The apps I'm building today are so client heavy it doesn't really make
sense to use any other language for the 10% of the code I write for the backend
and node.js is definitely the best Javascript server-side solution out there.
Also I quite often leverage Websockets and I think node.js still has the best tools working with those.
For the server-side frameworks I don't have that strong opinions. I would
probably go with Express since it's very well supported and maintained.</p>
<a href="#what-kind-of-advice-would-you-provide-for-javascript-newcomers-"><h4 class="inline" id="what-kind-of-advice-would-you-provide-for-javascript-newcomers-">What kind of advice would you provide for JavaScript newcomers?</h4></a>
<p>Learn it well. If you want get break from all those legacy Java projects learn
Javascript well and you'll have lot of new opportunities opening to you. There
are dozens of Javascript positions open right now looking for guys and gals
being able to write robust Javascript. It's not the easiest language to learn
but it's definitely worth it and you'll find that underneath the rough surface
there is actually a pretty nice language.</p>
<a href="#and-lastly-as-we-are-a-javascript-library-catalog-after-all-could-you-please-list-some-of-your-favorite-libraries-"><h4 class="inline" id="and-lastly-as-we-are-a-javascript-library-catalog-after-all-could-you-please-list-some-of-your-favorite-libraries-">And lastly, as we are a JavaScript library catalog after all, could you please list some of your favorite libraries?</h4></a>
]]></content></entry><entry><title>Interview with Paul Miller: maker of Chaplin and Brunch</title><link rel="alternate" type="text/html" href="https://jster.net/blog/chaplin-brunch-author-interview"></link><id>chaplin-brunch-author-interview</id><published>2013-04-25T16:42:52.000Z</published><content type="text/html"><![CDATA[<p>Today we have very special guest. He is a passionate open source developer with many projects out there. Particularly two stand out: <strong>Chaplin</strong> an MVC framework built on top of Backbone and <strong>Brunch</strong> a build tool, Yeoman/Grunt alternative. These projects are used by thousands of developers and helps us to make better software. For example, the new <a class="underline" href="https://delicious.com/">Delicious</a>, that well-known dinosaur from Web 2.0 era, is now blazingly fast thanks to Chaplin MVC framework and Brunch.</p>
<p>Say hello to <strong>Paul Miller</strong>. Today we will ask him about his projects, future plans, and how to become a better JavaScript developer. Don't switch the channel.</p>
<a href="#hi-paulmillr-please-tell-us-more-about-yourself-what-do-you-do-where-you-live-and-how-did-you-end-up-in-javascript-development-"><h4 class="inline" id="hi-paulmillr-please-tell-us-more-about-yourself-what-do-you-do-where-you-live-and-how-did-you-end-up-in-javascript-development-">Hi, @paulmillr. Please tell us more about yourself. What do you do, where you live, and how did you end up in JavaScript development?</h4></a>
<p>I do mostly tools for web devs these days, but i’m also launching non-dev-related projects.</p>
<p>I started doing JS a long time ago, just when I started doing web dev. Back in 2011 i’ve thought web applications are the future and started doing them, discovered Backbone and stuff.</p>
<p>{{ screenshot: Chaplin }}  </p>
<a href="#how-did-the-chaplin-project-get-started-can-you-tell-us-a-brief-history-of-it-"><h4 class="inline" id="how-did-the-chaplin-project-get-started-can-you-tell-us-a-brief-history-of-it-">How did the Chaplin project get started? Can you tell us a brief history of it?</h4></a>
<p>Matthias Schäfer had separated some parts of moviepilot.com into one reusable framework and named it as <strong>Chaplin</strong>.</p>
<p>I’ve came to the project after like two weeks and instantly saw Chaplin potential, then decided to help with its development.</p>
<p>Thanks to Chaplin community, first year was very productive — lots of companies had adopted Chaplin and contributed. I hope this year will be even better.</p>
<a href="#we-both-agree-that-backbone-framework-is-awesome-it-is-simple-and-flexible-unlike-chaplin-it-s-awesome-too-but-in-order-to-use-it-you-should-learn-chaplin-conventions-coffeescript-requirejs-amd-brunch-and-others-why-should-developers-do-that-what-benefits-they-would-achieve-by-using-these-technologies-"><h4 class="inline" id="we-both-agree-that-backbone-framework-is-awesome-it-is-simple-and-flexible-unlike-chaplin-it-s-awesome-too-but-in-order-to-use-it-you-should-learn-chaplin-conventions-coffeescript-requirejs-amd-brunch-and-others-why-should-developers-do-that-what-benefits-they-would-achieve-by-using-these-technologies-">We both agree that Backbone framework is awesome. It is simple and flexible unlike Chaplin. It's awesome too, but in order to use it, you should learn Chaplin conventions, CoffeeScript, RequireJS, AMD, Brunch, and others. Why should developers do that? What benefits they would achieve by using these technologies?</h4></a>
<p>Backbone is cool, but it lacks opinions. It just gives some core concepts, you’re supposed on your own to figure out how to use them and where.</p>
<p>I really like what Chaplin does here. It pushes some best practices that made us productive. This makes your code consistent, clear and very maintainable. It is easy for new devs to continue making your app after that.</p>
<p>Learning today’s web application stack is not as hard as it seems. In my experience, team which was working with Django had been able to learn the whole stack and write production-quality code in something like 2-6 weeks. This included coffeescript, backbone, underscore, jquery, chaplin and brunch. Quite a lot when you think about it.</p>
<a href="#you-might-think-memory-management-is-a-thing-of-a-past-but-it-s-definitely-not-how-should-one-approach-this-topic-how-to-write-better-javascript-code-that-doesn-t-leak-too-much-"><h4 class="inline" id="you-might-think-memory-management-is-a-thing-of-a-past-but-it-s-definitely-not-how-should-one-approach-this-topic-how-to-write-better-javascript-code-that-doesn-t-leak-too-much-">You might think memory management is a thing of a past but it's definitely not. How should one approach this topic? How to write better JavaScript code that doesn't leak too much?</h4></a>
<p>Controlling life cycle of components in your app really matters. In order to avoid leaks it’s important to pick a right architecture that will have some concept of manual memory cleanup.</p>
<p>Everyone makes mistakes, so it’s better to make them as loud as possible for early detection. Freezing (<code>Object.freeze()</code>) / sealing (<code>Object.seal()</code>) your objects and ECMAScript 5 strict mode helps with that. When the object becomes unneeded and you’re ready to pass it to garbage collector, delete all properties from it, unbind all handlers and freeze it. If anything from outside will try to change object somehow, you will get a nice exception.</p>
<p>{{ screenshot: Brunch }}  </p>
<a href="#a-few-words-about-your-future-plans-what-can-we-expect-from-chaplin-brunch-and-ost-io-"><h4 class="inline" id="a-few-words-about-your-future-plans-what-can-we-expect-from-chaplin-brunch-and-ost-io-">A few words about your future plans. What can we expect from Chaplin, Brunch, and <a class="underline" href="http://ost.io">Ost.io</a>?</h4></a>
<p>Brunch will get source maps support. This is really much requested feature. Today there are no solutions for headless automatic compilation of files with source maps. You still need to manually do most of the job.</p>
<p>As for Chaplin, we want to release stable version (1.0). Before that we hope to incorporate view transition support and AJAX handlers auto-abortion / stacking. Backbone doesn’t help us much here, just like with memory management. And, of course, we want to improve documentation. Screencasts and more examples would be nice to have.</p>
<p>I hope to push <strong>ost.io</strong> as a default application example for todomvc “successor” — <a class="underline" href="http://tastejs.com">taste.js</a>. We’re still discussing possibilities, though I persist on the forum. My main points:</p>
<ul class="list-disc list-inside">
<li>it is more complex than todomvc and many other examples. CRUD, authentication, consumption of REST API data, app-wide persisted views — everything is here. Some folks say that app should show more than this and i’m absolutely open on any new features and ideas.</li>
<li>it is real-world. Actual people provide support for their stuff there. I don’t like the idea of building another application just to show how tech behaves.</li>
<li>it is working right now. Ost.io demostrates real code today, the spec is there too. <a class="underline" href="http://en.wikiquote.org/wiki/Steve_Jobs">Real artists ship™</a>.</li>
</ul>
<a href="#and-traditional-question-as-we-are-a-javascript-libraries-site-please-name-a-few-libraries-a-frontend-developers-should-look-at-to-gain-new-superpowers-"><h4 class="inline" id="and-traditional-question-as-we-are-a-javascript-libraries-site-please-name-a-few-libraries-a-frontend-developers-should-look-at-to-gain-new-superpowers-">And traditional question. As we are a JavaScript libraries site, please name a few libraries a frontend developers should look at to gain new superpowers.</h4></a>
<p>I’m a big aficionado of ultra-small libs that do only one thing these days. Chaplin stack is not like that, though. So I prefer small components to full-size libs.</p>
<p>But there are some common libs that really help me.</p>
]]></content></entry><entry><title>Tools to Package Your HTML5 App for Mobile Devices</title><link rel="alternate" type="text/html" href="https://jster.net/blog/tools-to-package-your-html5-app-for-mobile-devices"></link><id>tools-to-package-your-html5-app-for-mobile-devices</id><published>2013-04-22T18:17:11.000Z</published><content type="text/html"><![CDATA[<p>This time we'll have a special treat for you, a guest post by <strong>Olaf Horstmann</strong>. A digital media developer from Stuttgart, Germany. He has worked in several locations around the globe, including the US, China and Indonesia, and runs a blog known as <a class="underline" href="http://indiegamr.com">indiegamr</a>. Recently he published an ebook, <a class="underline" href="http://indiegamr.com/zerotoappstore/">"From Zero to App Store"</a>. It shows you how to create and publish HTML5 games for the mobile.</p>
<a href="#introduction"><h2 class="inline" id="introduction">Introduction</h2></a>
<p>While your HTML5 application/game already runs perfectly in any desktop-browser, it might not be entirely trivial to port it to mobile. Which tools or services should you use? In the following article four popular build-services and tools are compared, with conclusions on which service suits which purpose.</p>
<p>{{ screenshot: <a class="underline" href="http://ludei.com/tech/cocoonjs">http://ludei.com/tech/cocoonjs</a> }}</p>
<a href="#cocoonjs"><h2 class="inline" id="cocoonjs">CocoonJS</h2></a>
<p><strong>In one sentence</strong>: <a class="underline" href="http://ludei.com/tech/cocoonjs">"CocoonJS is a platform that allows developers to deploy, accelerate, and monetize their JavaScript HTML5 games in the App store and Google Play."</a></p>
<a href="#pros"><h4 class="inline" id="pros">Pros</h4></a>
<p> CocoonJS is the only Build-Service in this list that will display your canvas content on a native, hardware-supported OpenGL-stage (Ejecta does the same, but is not a build-service). This means that your canvas app will be able to display thousands of graphic-objects without a problem. Something not currently possible with pure HTML5.</p>
<p>CocoonJS features a launcher app for iOS and Android. It will download your zipped HTML5-contents and allows you debug it right away, so you can test your app on the device in seconds without the hassle of building and deploying it with XCode or Eclipse etc. Additionally CocoonJS features several ready-to-use plugins to access native features, Facebook or Twitter, ads or in-app purchases via JavaScript.</p>
<p>The file-size limit for projects is currently 30MB but can be unlocked to be 200MB upon request.</p>
<a href="#cons"><h4 class="inline" id="cons">Cons</h4></a>
<p>CocoonJS displays HTML-markup through a WebView but its primary focus is on the accelerated projection of canvas contents. When releasing an app, some knowledge on XCode is required. The build service will only create a ready-to-use XCode project. The APK generated for Android requires signing through the command line.</p>
<p><strong>Price</strong>: Currently CocoonJS is in a free beta and packaged apps will have a CocoonJS splash screen. This may be removed on a special-request. At the time of writing it is unknown how much it will cost and when they will start charging customers, but if you plan on using CocoonJS expect to start paying for the service within 2013.</p>
<a href="#example-apps"><h4 class="inline" id="example-apps">Example Apps</h4></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://itunes.apple.com/us/app/videopuzzle/id417372287">Video Puzzle (iOS)</a></li>
<li><a class="underline" href="http://ludei.com/games">List of games in the stores</a></li>
</ul>
<hr>
<p>{{ screenshot: <a class="underline" href="http://impactjs.com/ejecta">http://impactjs.com/ejecta</a> }}</p>
<a href="#ejecta"><h2 class="inline" id="ejecta">Ejecta</h2></a>
<p>In one sentence: <a class="underline" href="http://impactjs.com/ejecta">"A Fast, Open Source JavaScript, Canvas & Audio Implementation for iOS"</a></p>
<a href="#pros"><h4 class="inline" id="pros">Pros</h4></a>
<p>Ejecta is Open Source and free to use. It works similar to CocoonJS and displays canvas contents on a native OpenGL stage. Additional support for the GameCenter and iAds also works out of the box and since Ejecta is Open Source it can be easily extended through Objective-C. Thanks to the Open Source community there are forks available such as <a class="underline" href="https://github.com/apitaru/Ejecta-HEART-CreateJS">Ejecta-HEART-CreateJS</a>.</p>
<a href="#cons"><h4 class="inline" id="cons">Cons</h4></a>
<p>The only real downside of Ejecta is that it’s only available for XCode/iOS. Besides that Ejecta requires more knowledge on XCode than the other services to build and deploy a project because it is a library/tool and not a build-service. Also Ejecta focuses only on the canvas so it is not possible to display any other elements besides the canvas content.</p>
<p><strong>Price:</strong> Free & Open Source</p>
<a href="#example-apps"><h4 class="inline" id="example-apps">Example Apps</h4></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="https://itunes.apple.com/us/app/biolab-disaster/id433062854">Biolab Disaster</a></li>
<li><a class="underline" href="http://www.steamclash.com/">Steamclash</a></li>
</ul>
<hr>
<p>{{ screenshot: <a class="underline" href="https://build.phonegap.com/">https://build.phonegap.com/</a> }}</p>
<a href="#phonegap-build"><h2 class="inline" id="phonegap-build">PhoneGap Build</h2></a>
<p>Note that in this case we refer only to PhoneGap Build service, NOT the PhoneGap technology itself. Pretty much anything the build service can do can also be achieved with PhoneGap directly, though.</p>
<p><strong>In one sentence</strong>: <a class="underline" href="https://build.phonegap.com/">"Simply upload your HTML5, CSS, and JavaScript assets to the Adobe® PhoneGap™ Build cloud service and we do the work of compiling for you."</a></p>
<a href="#pros"><h4 class="inline" id="pros">Pros</h4></a>
<p> PhoneGap Build will take care of the whole build process. The built apps are ready to be uploaded directly to the app-marketplaces, so there is absolutely no knowledge on XCode, Eclipse or the like required. In addition to iOS and Android™ PhoneGap Build is able to target Windows® Phone, Blackberry® 5/6/7, WebOS and Symbian™ from the very same codebase.</p>
<p>PhoneGap build supports pretty much any native function of your phone and thanks to the big and established PhoneGap community there are a ton of plugins available. Plus there is a free plan available for a single app. To test an application during development it can be installed once and then updated over the air and it also features a console on the desktop, similar to the WebKit console, which comes in really handy for debugging.</p>
<p>PhoneGap Build is a project by Adobe. It's up to you to decide whether this is positive or negative.</p>
<a href="#cons"><h4 class="inline" id="cons">Cons</h4></a>
<p>While PhoneGap primarily wraps your HTML sources in a native app, it "only" uses the device’s built in technology for that (WebView). This means there is no projection on hardware-accelerated OpenGL stages or the like, which makes this technology less useful for graphically intense games. Also the maximum file-size of an uploaded projected is currently limited to 10MB and there are no official plans to extend this limit.</p>
<p><strong>Price:</strong> Starts at $9.99/month but there is a free plan available.</p>
<p><strong>Example Apps:</strong> There are no official examples listed, but the technology has been proven in countless apps in the App Store.</p>
<hr>
<p>{{ screenshot: <a class="underline" href="https://trigger.io/">https://trigger.io/</a> }}</p>
<a href="#trigger-io"><h2 class="inline" id="trigger-io">Trigger.io</h2></a>
<p>In one sentence: <a class="underline" href="https://trigger.io/how-it-works/">"Apps created using our framework are native: they can use device features / UI components and can be submitted to galleries such as the App Stores and Google Play."</a></p>
<a href="#pros"><h4 class="inline" id="pros">Pros</h4></a>
<p> Trigger.io works very similar to the PhoneGap technology and wraps the HTML codebase inside a WebView. Additionally it is possible to include native UI elements through JavaScript. With the Trigger.io toolkit you can build iOS apps on Windows®. The only other technology capable of this is Flash. Like with PhoneGap, no knowledge and no use of XCode or Eclipse is required. Based on its own claims, Trigger.io can be up to 5x faster than PhoneGap. It also features the use of native components like SMS, camera, location etc.</p>
<a href="#cons"><h4 class="inline" id="cons">Cons</h4></a>
<p>Trigger.io wraps the HTML codebase inside a WebView and is therefore not as fast as CocoonJS or Ejecta when it comes to canvas applications and especially games. Beside that is Trigger.io by far the most expensive choice of all.</p>
<p><strong>Price:</strong> The pricing starts at $19/month and ends at $799/month if you pay for a whole year. When you pay from month to month the service will be significantly more expensive and can range from 39$ all the way up to $999/month depending on the package.</p>
<a href="#example-apps"><h4 class="inline" id="example-apps">Example Apps</h4></a>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://www.fetchnotes.com/">Fetchnotes</a></li>
<li><a class="underline" href="http://ravelapp.com/">Ravel</a></li>
</ul>
<hr>
<a href="#comparison"><h2 class="inline" id="comparison">Comparison</h2></a>
<p>In the table below you can see all features and tools listed side-by-side:</p>
]]></content></entry><entry><title>Enhance Your Next Presentation with HTML5</title><link rel="alternate" type="text/html" href="https://jster.net/blog/html5-presentation-impress-reveal-deck-bespoke"></link><id>html5-presentation-impress-reveal-deck-bespoke</id><published>2013-04-12T16:38:17.000Z</published><content type="text/html"><![CDATA[<p>I remember the days when Opera team came to our university with presenting their features of their browser and sharing their vision of the future of Web.
I was amazed by the fact that all their slides (with animations) were done in pure HTML5. All presentation was held in the Opera browser itself.
"Awesome", that was what I thought. But, honestly, in those days only real geeks would choose coding HTML, CSS, JS over drag-n-drop style of <strong>PowerPoint</strong>.
It was the time were HTML5 support was limited, and browsers were trying to at least pass the new ACID tests.
And I'm not really sure whether Opera's presentation engine was a real HTML5 implementation or just a built-in feature of their browser.</p>
<p>But times change and HTML5 came for all the web, all platforms, all browser (mostly). Even games are built with HTML5. So why should we choose PowerPoint.
You know, it's not free. Actually, I have an answer for this. We still need some knowledge of HTML5, CSS3, JavaScript to build a good presentation.
But that should not actually matter for us, web developers.</p>
<p>Here is a list of presentation HTML5 engines you want to try. Engines like <strong>Deck.js</strong>, <strong>Impress.js</strong> of them are pretty complex, but they give you all the control and flexibility of presentation.
Engines like <strong>Reveal.js</strong> are simple in use and provide you with nice prebuilt, themes and markdown engine to design slides pragmatically. And you now what? Opera has it's presentation engine too. Meet <strong>Shower</strong>, which looks pretty simple to start <em>(Upd: no, it is personal project, not related to Opera)</em>. 
Also please take a look at <strong>Bespoke.js</strong>, it was released a few months ago but already got a lot of attention and 1000 stars on Github.</p>
]]></content></entry><entry><title>Templating in JavaScript - Featuring Mustache, Jade, Transparency</title><link rel="alternate" type="text/html" href="https://jster.net/blog/templating-javascript-mustache-jade-transparency"></link><id>templating-javascript-mustache-jade-transparency</id><published>2013-03-29T19:17:02.000Z</published><content type="text/html"><![CDATA[<p>In this post I will introduce the concept of templating. It is very likely you have already used some template engine. As a result I will go through the fundamentals quickly and then focus on a set of JavaScript ones.</p>
<p>You will see various approaches. There is no single right way to deal with it and sometimes it comes down to personal tastes. In this case I'll focus on just a few engines, namely <code>Mustache</code>, <code>Jade</code> and <code>Transparency</code>. You can find a <a class="underline" href="http://jster.net/category/templating-engines">full list of engines</a> at our service in case you can see the available options.</p>
<a href="#why-to-use-templating-"><h2 class="inline" id="why-to-use-templating-">Why to Use Templating?</h2></a>
<p>Before getting too ahead of ourselves let's define an anti-pattern. That is, constructing HTML structures using DOM or some DOM wrapper such as <a class="underline" href="http://jster.net/library/jquery">jQuery</a>. If you notice yourself constructing a structure this way, think twice. It is both more maintainable and more developer friendly to extract the structure within a template of some sort and leave logic to JavaScript.</p>
<a href="#how-to-use-templating-"><h2 class="inline" id="how-to-use-templating-">How to Use Templating?</h2></a>
<p>At simplest level it's just a matter of performing a <code>replace</code> operation. I've included an example of a naive implementation below:</p>
<script src="https://gist.github.com/bebraw/5271769.js"></script>

<p>Essentially you just provide some data which to render into the template. The actual details vary based on engine you are using. Some of them allow you to include logic into the template, some do not. There are a couple that piggyback on good old DOM and abstain from providing any special syntax altogether.</p>
<p>There are also differences related to the way the engines allow you to structure your templates. For instance in some cases you may include partial templates within your master ones. This allows you to split certain commonalities in sections of their own.</p>
<a href="#where-to-use-templating-"><h2 class="inline" id="where-to-use-templating-">Where to Use Templating?</h2></a>
<p>Templating techniques may be used both on the frontside and backend side of the fence. Some JavaScript templating engines have been designed to be used just this way. There are some that focus particularly on backend. <a class="underline" href="http://jster.net/library/jade">Jade</a> is a good example of one. Apparently it is possible to use it at <a class="underline" href="http://stackoverflow.com/questions/6575743/using-jade-templates-jade-lang-com-client-side">frontend</a> with a bit of hackery although I have not given that technique a go. Just saying that the line can be a bit blurry at times.</p>
<p>There is a huge amount of templating engines available for Node.js. In this post I will focus mainly on the frontend side since that's what JSter is all about after all.</p>
<p>It is possible to use templating on the frontend in various ways.  In case I want to share templates with my frontend code, I usually simply render the templates on the backend within <code>script</code> tags with <code>type</code> set as <code>text/template</code>. After that it is simply a matter of selecting the element (remember to attach a unique id!) and using the data the way you want. For instance you could compile it through some templating engine I'll go through in a bit.</p>
<p>Lately I have been playing around with <a class="underline" href="http://jster.net/library/requirejs">RequireJS</a> plugins that allow you to include templates directly within your modules. I consider this a cleaner approach as you may store templates within files of their own. And furthermore they may be included in a resulting build.</p>
<a href="#types-of-templating-engines"><h2 class="inline" id="types-of-templating-engines">Types of Templating Engines</h2></a>
<p>Roughly templating engines may be split into logicless, ones with logic and then those that don't actually implement any specific syntax. I will examine these categories in more detail next.</p>
<a href="#logicless-templating-engines"><h3 class="inline" id="logicless-templating-engines">Logicless Templating Engines</h3></a>
<p>{{ screenshot: mustache.js }}</p>
<p>Logicless templating engines such as <a class="underline" href="http://jster.net/library/mustache-js">mustache</a> and <a class="underline" href="http://jster.net/library/hogan-js">Hogan</a>, which implements mustache syntax, and <a class="underline" href="http://jster.net/library/dustjs">dust</a> have become somewhat popular. <a class="underline" href="http://jster.net/library/handlebars-p">Handlebars</a>, a superset of mustache, <a class="underline" href="http://yehudakatz.com/2010/09/09/announcing-handlebars-js/">extends the syntax further</a>.</p>
<p>Just to give you an idea of the syntax, consider the example below. It is based on <a class="underline" href="http://mustache.github.com/#demo">mustache documentation</a>. You can play around with the syntax there.</p>
<p>Markup:</p>
<script src="https://gist.github.com/bebraw/5271765.js"></script>

<p>Data:</p>
<script src="https://gist.github.com/bebraw/5271757.js"></script>

<p>As you can see it is fairly simple to inject data to your template. The scheme relies on extra markup. The logic is hidden within a concept they call as <code>tags</code>. That "empty" bit at the end is a good example of this. Give it is true, the text will be shown. Else it will be hidden.</p>
<a href="#templating-engines-with-logic"><h3 class="inline" id="templating-engines-with-logic">Templating Engines with Logic</h3></a>
<p>{{ screenshot: Jade }}</p>
<p>Personally I like to use <a class="underline" href="http://jster.net/library/jade">Jade</a> especially on the backend side given it integrates well with <a class="underline" href="http://nodejs.org/">Node.js</a> and provides a light syntax resembling <a class="underline" href="http://yaml.org/">YAML</a>. If you like <a class="underline" href="http://haml.info/">HAML</a>, you are bound to like Jade. Apparently it is possible to use Jade even on the <a class="underline" href="http://stackoverflow.com/questions/6575743/using-jade-templates-jade-lang-com-client-side">frontend</a> although I have not given it a go.</p>
<p>Just to give you an idea what Jade syntax looks like, consider the example below. I simply took the mustache code and ported it to Jade. It uses the same data as above.</p>
<p>Markup</p>
<script src="https://gist.github.com/bebraw/5271763.js"></script>

<p>It reads quite well at least in my eyes. I may have missed some tricks to make it even tidier but you get the idea. You can give the syntax a go over at <a class="underline" href="http://naltatis.github.com/jade-syntax-docs/">Jade documentation</a>.</p>
<a href="#dom-and-binding"><h3 class="inline" id="dom-and-binding">DOM and Binding</h3></a>
<p>{{ screenshot: Transparency }}  </p>
<p><a class="underline" href="http://jster.net/library/transparency">Transparency</a> and <a class="underline" href="http://jster.net/library/weld">Weld</a> use yet another approach I find very interesting. The libraries work both on frontend and backend (Node.js). What makes them special is that these libraries operate directly on DOM avoiding having to define custom syntax of their own. It will be very interesting to see whether this sort of techniques become more prevalent as opposed to something like mustache.</p>
<p>Next I will show you what the example I implemented above using <code>mustache</code> looks like when <code>Transparency</code> is used instead. Since you should be familiar with Jade by now I've defined a simple structure using it:</p>
<script src="https://gist.github.com/bebraw/5271772.js"></script>

<p>For Transparency to work its magic we'll need to bind the data to the structure and define logic as needed.</p>
<script src="https://gist.github.com/bebraw/5271770.js"></script>

<p>There are a couple of differences I would like to highlight. First of all the actual markup is very light. This makes Transparency very designer friendly. It's up to the coder to do the "heavy" lifting. In this case we use directives to bind some attributes we may not bind directly. Both "url" and "first" provide examples of these.</p>
<p>If we wanted we could eliminate that "first" bit we could simply use a bit of CSS for that. In fact that is the approach I would take. In this case we just illustrate how conditional logic works with directives.</p>
<p>As you can see it is possible to achieve a lot without a specific templating syntax. It will take some extra effort to deal with those special cases (like "url" in this case). I think it should be possible to at least minimize this effort with composition. So in practice there might not be that much code or at least it would be more compact.</p>
<a href="#comparison"><h2 class="inline" id="comparison">Comparison</h2></a>
]]></content></entry><entry><title>Monthly JSter #1: Trending Libraries on March 2013</title><link rel="alternate" type="text/html" href="https://jster.net/blog/monthly-jster-march-2013"></link><id>monthly-jster-march-2013</id><published>2013-03-21T16:20:11.000Z</published><content type="text/html"><![CDATA[<p>For not to get lost in all this libraries we have on JSter we decided to deliver each month a brief summary on Jster updates.
You will discover the most fresh and the most popular JavaScript libraries that were recently started or added to Jster. 
Don't miss them as they may save you the hours of work and ehnance any web applications. But before we start we have an announcement.</p>
<a href="#jster-team-needs-your-help"><h4 class="inline" id="jster-team-needs-your-help">JSter team needs your help</h4></a>
<p>Right now we are working on a project that will (as we think it) help web developers in managing user feedback. 
Meet <a class="underline" href="http://bugira.com">Bugira</a>, a bugtracker that allows any visitor of your site to submit you a prefessional bugreport. 
Within this report you will receive the most complete data you might need to discover the issue and reproduce it.
You will know user's browser, OS, last actions and snapshot of a last page the user seen before the bug occur.</p>
<p>To bring this product to you <strong>we need to collect feedback from our potential clients</strong>. 
Indeed we require this to move on receiving investments. <strong><a class="underline" href="http://www.surveymonkey.com/s/982RCG9">Pass this survey</a></strong> and get a free year of premium access to Bugira (once it is launched).
Thanks for your time and let's go back to topic.</p>
<a href="#javascript-libraries-discovered-on-march-2013"><h4 class="inline" id="javascript-libraries-discovered-on-march-2013">JavaScript libraries discovered on March 2013</h4></a>
]]></content></entry><entry><title>How to build Minesweeper MMO? An interview with Mienfield.com author</title><link rel="alternate" type="text/html" href="https://jster.net/blog/mienfield-author-interview"></link><id>mienfield-author-interview</id><published>2013-03-13T14:24:55.000Z</published><content type="text/html"><![CDATA[<p>Today we'd like to announce a new interview section on JSter. We will ask professional JS developers (and open-source) contributors to share their experience, ask for sources of their motivation.</p>
<p>Our guest, <a class="underline" href="twitter.com/borbit">@borbit</a>, has taken minesweeper the game to a completely new level. He recreated it in HTML5, making it a complete MMO game. That's right. You can play it with your friends now.</p>
<p>Traditionally developing this sort of games has been an arduous process. These days HTML5 based technologies have provided new alternatives as <a class="underline" href="http://mienfield.com">mienfield.com</a> proves.</p>
<p>What is it like to build HTML5 games? Are the technologies really ready for that? In this interview @borbit shares his experience.</p>
<p>{{ screenshot: Mienfield }}</p>
<a href="#hi-borbit-how-did-you-end-up-developing-a-mmo-version-of-minesweeper-can-you-describe-the-history-of-the-project-"><h4 class="inline" id="hi-borbit-how-did-you-end-up-developing-a-mmo-version-of-minesweeper-can-you-describe-the-history-of-the-project-">Hi, @borbit. How did you end up developing a MMO version of minesweeper? Can you describe the history of the project?</h4></a>
<p>Hi, @bebraw. I was really inspired by guys from Massively FUN. They created an awesome game called Word2 (<a class="underline" href="http://wordsquared.com/">wordsquared.com</a>). I liked the idea of an endless puzzle, so I've decided to build something similar. Since I am a big fan of original minesweeper game, the idea immediately came to my mind.</p>
<p>At the beginning, it was a "just for fun" project where I could gain some experience in modern web technologies. My friends and colleagues really liked the idea, they saw a potential in it, so that was huge motivation for me to continue working on Minefield.</p>
<a href="#what-kind-of-technology-do-you-use-what-difficulties-have-you-had-during-development-and-how-did-you-solve-them-"><h4 class="inline" id="what-kind-of-technology-do-you-use-what-difficulties-have-you-had-during-development-and-how-did-you-solve-them-">What kind of technology do you use? What difficulties have you had during development and how did you solve them?</h4></a>
<p>The biggest challenge for me was implementation of robust server logic. Since it was endless and multiplayer I had to care about fast field generation and preventing of race conditions. The solution to make generation fast was cutting the whole field on certain tiles with specified size (20x20 cells). This approach gave a possibility to "lazy" generate the field only where people were playing. Race conditions are being resolved on the database layer by means of <a class="underline" href="http://en.wikipedia.org/wiki/Compare-and-swap">compare-and-swap</a> methodology.</p>
<p>On server side I use <strong>Node.js</strong>. It is a big, fast-growing platform with fantastic community behind it. Big number of rich, well tested modules let me entirely concentrate on the game implementation. It had almost everything I wanted for implementing Minefield. Also, I am very happy with choice of <strong>Redis as a database</strong>. It is lightning-fast, advanced key-value store with support of various data structures for all occasions.</p>
<p>On client side I had a few difficulties with graphics implementation. I had to care about speed of field rendering and animations. The whole field is represented as a grid of tiles. Since I coudn't find any suitable library for this kind of UI, I started developing <a class="underline" href="https://github.com/borbit/tiler">Tiler</a>. Each tile contains three Canvas elements: background layer, foreground layer and animation layer. This is a quite standard approach to canvas drawing optimization, it is being used to avoid unnecessary canvas state changes.</p>
<a href="#where-did-you-find-the-free-time-for-this-project-"><h4 class="inline" id="where-did-you-find-the-free-time-for-this-project-">Where did you find the free time for this project? ;)</h4></a>
<p>I've been working on Minefield at my spare time and unfortunately there is always not enough of it. I wish I had more (dreaming about full time job on HTML5 games).</p>
<a href="#what-advice-would-you-give-to-other-js-developers-thinking-of-building-their-own-games-"><h4 class="inline" id="what-advice-would-you-give-to-other-js-developers-thinking-of-building-their-own-games-">What advice would you give to other JS developers thinking of building their own games?</h4></a>
<p>Let's build awesome multiplayer games! You will definitely get lots of fun developing it!</p>
<a href="#as-we-are-javascript-libraries-site-please-share-your-favorite-libs-you-use-and-you-d-like-to-recommend-"><h4 class="inline" id="as-we-are-javascript-libraries-site-please-share-your-favorite-libs-you-use-and-you-d-like-to-recommend-">As we are JavaScript libraries site, please share your favorite libs you use and you'd like to recommend.</h4></a>
]]></content></entry><entry><title>Web UI Frameworks Worth a Try</title><link rel="alternate" type="text/html" href="https://jster.net/blog/web-ui-frameworks-worth-a-try"></link><id>web-ui-frameworks-worth-a-try</id><published>2013-03-06T17:45:52.000Z</published><content type="text/html"><![CDATA[<p>We have been used to the fact that every second site looks like Twitter. That's because of their awesome <a class="underline" href="http://twitter.github.com/bootstrap">Bootstrap</a> UI framework.
We've seen CSS frameworks before, but all of them were narrow enough to solve one problem at a time. Usually this meant a grid layout and resetting CSS.
Twitter Bootstrap not only provides you with flexible responsive grids but adds many useful components. 
It's pretty easy to build a prototype site just by adding appropriate classes into your tags and see how beautiful CSS3 magic unfold on your pages.</p>
<p>From another point of view, a site built with Bootstrap loses it's individuality. When you see Twitter buttons and menus, you can even forget what site are you at.
They generally look just the same. It's pretty ok, when you do a site for <a class="underline" href="http://moms.io/">non-profitable organizations</a> or an <a class="underline" href="http://codeception.com">open-source project</a>.
Such sites will look clean and handy without a penny spent on designing them.</p>
<p>But how to make site look more unique?</p>
<p>Let's try something different then. There are many UI frameworks available. Most of them are free but some are commercial.
Some can be great alternatives to Bootstrap and some are targeted for mobile usage. So here they are, with their official descriptions.</p>
]]></content></entry><entry><title>Batman.js: Advanced Guide for Superheroes</title><link rel="alternate" type="text/html" href="https://jster.net/blog/batman-js-mvc-for-superheroes"></link><id>batman-js-mvc-for-superheroes</id><published>2013-02-11T12:15:16.000Z</published><content type="text/html"><![CDATA[<p><a class="underline" href="http://jster.net/blog/why-should-you-use-client-side-mvc-framework">Last time I wrote</a> about a journey of a backend developer to the world of client side MVC frameworks. 
It is often a good idea to research a bit before settling on one. Last time I listed four of these: <a class="underline" href="http://jster.net/library/backbone-js">BackboneJS</a>, <a class="underline" href="http://jster.net/library/angularjs">AngularJS</a>, <a class="underline" href="http://jster.net/library/batman-js">BatmanJS</a>, and <a class="underline" href="http://jster.net/library/canjs">CanJS</a>.
Although Backbone and Angular are getting increasingly popular I've chosen to use Batman.js instead. I'll elaborate on the exact reasons on another post. For now let's just focus on its basics.</p>
<a href="#batman-for-dummies"><h2 class="inline" id="batman-for-dummies">Batman for Dummies</h2></a>
<p>{{ screenshot: Batman.js }}</p>
<p>Batman.js uses <strong>Rails</strong> conventions and it is based on <strong>CoffeeScript</strong>. This way you don't have to bother with boilerplate code for event submitting and handling. 
With data-bindings it provides you won't use any client-side templates, except for plain HTML. This way Batman is comparable to AngularJS. But I found the superhero framework a bit smarter. 
I'd encourage you to try Batman.js, especially if you are a Ruby on Rails developer. </p>
<a href="#batman-not-so-good-at-interacting-with-others"><h2 class="inline" id="batman-not-so-good-at-interacting-with-others">Batman - Not So Good at Interacting with Others</h2></a>
<p>The weak part of Batman.js is its documentation. 
So if you are a superhero, (and probably you are), prepare to use your superpowers for reading source code, asking questions in Google Groups and so on. 
I'd suggest you to start learning it with the next resources:</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://batmanjs.org">Official site</a></li>
<li><a class="underline" href="https://github.com/Shopify/batman">GitHub Repo (with even better docs)</a></li>
<li><a class="underline" href="http://www.speg.com/batman/">A nice tutorial</a></li>
<li><a class="underline" href="http://www.zhubert.com/blog/2012/05/12/batman-dot-js-and-rails-part-1/">Building app with Rails + Batman</a></li>
<li><a class="underline" href="http://jsfiddle.net/VMtdq/3/">Demo application on JSFiddle</a></li>
</ul>
<a href="#batman-the-utility-belt"><h2 class="inline" id="batman-the-utility-belt">Batman - The Utility Belt</h2></a>
<p>If your super powers are not strong enough to read all this links at once, put this post into bookmarks, and return when you have a running app.
It's really easy to get one running. And If you start working with a real project you might want to know how to deal with some common issues.
Let me show you some useful tricks. I will use <strong>Batman.JS 0.13</strong> in the next examples.</p>
<a href="#dealing-with-current-user-session"><h3 class="inline" id="dealing-with-current-user-session">Dealing with Current User Session</h3></a>
<p>It's not documented, but the main application file is a great storage of singleton objects. Such as user sessions.</p>
<script src="https://gist.github.com/DavertMik/4739675.js"></script>

<p>When you set something in global scope you can access it on different routes anywhere on page. So If you need to display a user name somewhere in menubar, you can use simple data-binding:
<code><span data-bind="currentUser.name"></span></code></p>
<a href="#destroying-objects"><h3 class="inline" id="destroying-objects">Destroying Objects</h3></a>
<p>The other non-trivial issue you should deal with is deletion of a resource. By Batman's convention the <code>DELETE</code> method can't be a route but an event. So how to use it?</p>
<script src="https://gist.github.com/DavertMik/4739732.js"></script>

<p>As you see you can use <code>withArguments</code> filter in a view. This will pass an object from current context to controller.</p>
<a href="#handling-views"><h3 class="inline" id="handling-views">Handling Views</h3></a>
<p>How can you enhance views rendered by controller? Let's say to add some cool effect or attach a tooltip to a node.</p>
<script src="https://gist.github.com/DavertMik/4739800.js"></script>

<p>In this example we switched a focus to newly rendered form field. To skip rendering at all, your controller should return <code>@render false</code>. Otherwise a <code>Batman.View</code> object will be instantiated and rendered to the <code>main</code> yield place.
To render a view into any other place, you should use create a new container with different <code>data-yield</code>.</p>
<script src="https://gist.github.com/DavertMik/4739871.js"></script>

<a href="#dynamic-views"><h3 class="inline" id="dynamic-views">Dynamic Views</h3></a>
<p>It may seem hard to understand how can you handle the dynamically built views. If you render some html with <code>data-foreach</code> iterator, you have no control over inner elements. 
You are allowed to use only <code>data</code> attributes to manipulate inner html. To add flexibility we cab attach a <code>view</code> object to generated elements.</p>
<script src="https://gist.github.com/DavertMik/4739914.js"></script>

<a href="#counters"><h3 class="inline" id="counters">Counters</h3></a>
<p>Sometimes you may need to perform very basic calculations and display them in views.
In the next example we have an application with limited number of user invites. We should always show on a page how many users can be invited before the limit is reached.</p>
<script src="https://gist.github.com/DavertMik/4739990.js"></script>

<p>In this example I did an interesting trick. I took a value from DOM and inserted it into Batman model. 
This gives you very cool opportunities. With Batman you can render a page completely in Rails, and then pass all your data into HTML tags. Than this data can be taken by Batman and used for manipulations.
No need to make an backend application without rendering and views. You can use your plain old HTML templates from server and enhance them with Batman's data bindings. </p>
<a href="#batman-lives-forever"><h2 class="inline" id="batman-lives-forever">Batman Lives Forever</h2></a>
<p>And that's all for today. I hope that helped you a bit in using Batman.
This is a very comprehensive MVC framework and it's very simple in use. 
Probably one day it will get better documentation and more examples.</p>
]]></content></entry><entry><title>Why Should You Use Client-Side MVC Framework?</title><link rel="alternate" type="text/html" href="https://jster.net/blog/why-should-you-use-client-side-mvc-framework"></link><id>why-should-you-use-client-side-mvc-framework</id><published>2013-02-06T11:37:40.000Z</published><content type="text/html"><![CDATA[<a href="#looking-from-the-server-s-side"><h2 class="inline" id="looking-from-the-server-s-side">Looking From the Server's Side</h2></a>
<p>Let me start with introduction. My name is Michael Bornarchuk, and I am a web developer since 2004.
I've built many sites and applications powered by PHP or Ruby (and <a class="underline" href="http://jster.net">Jster</a> is on of them). As many backend developers I was trying to figure out what client-side <strong>Javascript MVC frameworks</strong> are good for. You know, we didn't hear about them before 2012. At least, I didn't. 
For backend part we had many wonderful MVC frameworks in all popular languages. We have <strong>Ruby on Rails</strong>, we have <strong>Django</strong>, <strong>Symfony</strong>, <strong>Play</strong>, and others.
And now the <strong>MVC</strong> buzzword came to Javascript and met more buzz-friends there: <strong>MVVM</strong>, <strong>Backbone.js</strong>, <strong>Ember.js</strong>, <strong>SproutCore</strong>, <strong>Knockout</strong>, <strong>AngularJS</strong>. What are these things? Do they help developing web applications?
For years I was using jQuery and it was ok. So why should I change my mind and use that new geeky stuff? </p>
<p>Well, those were my thoughts about a month ago. I was concerned with the fact that moving logic to client makes rendering slower (yeah, a well known Twitter experience). 
There are still various issues that can't be done only on server side. Finding the right balance between server and client something that every developer should take on her own.
When this balance is not reached we may come to logic and code duplication. I.e. we do form validation on client because it's fast and looks nice, but we do the same stuff on server for security reasons.  </p>
<p>So it's all about balance. You can put all your code to server side and use jQuery for simple interactions. And it works. Worked for years.
Why to invent something new? <strong>The need of client-side MVC frameworks is clear when you start operate not only with HTML but with data on your page</strong>.</p>
<a href="#from-hypertext-to-hyperdata"><h2 class="inline" id="from-hypertext-to-hyperdata">From HyperText to HyperData</h2></a>
<p>Here is an example. You want to list all users on a page using with ajax pagination. Each time you click "<code>Next page</code>" an ajax request with page number is sent to backend
and HTML is retrieved back. That works fine and cool. But what if you need to display a counter of users on a page: "<code>10 active users, 2 banned users</code>"?
Server can render them too, but, let's say you need this counters in navbar, and this means server will have to replace all the page to make counters work correctly.</p>
<p>In that very moment you think, that server should return not only HTML of page, but also a number of active and banned users. And the response itself can't be HTML anymore. 
It should be completely reworked to return JSON serialized data, it's HTML part to be rendered and counters updated. But well, wouldn't it look nicer, if 
we get rid of HTML in response at all? It's just not very flexible. If need another counter, maybe number of admin users on a page, we will have to update server and client code respectfully to handle this new counter.
And so we come to issue I described. Code and logic duplication. So the ideal solution is to return the listed users collection in JSON, process this data,
perform all required calculations, render HTML and put that into page.</p>
<a href="#brave-new-world"><h2 class="inline" id="brave-new-world">Brave New World</h2></a>
<p>The gates are opened. Part of the application's logic has moved to the client. And here we are in situation when we need to deal somehow with all that data that comes from server.
Various user collections, article collections, comment collections. We need a tool to update parts of a web page depending of their state.</p>
<p>Don't forget for CRUD actions. When we deal with data on client it's natural to make all interactions on client and only synchronize changes with server over <strong>REST API</strong>.
So adding or deleting user should not make page to reload as we can update page according to current data state. </p>
<p>What tools should be used for managing data collections and web page interactions? You are right! They are MVC frameworks!
There are many of them but we need a lightweight solution that keeps right a balance between server a client logic. </p>
<p>Consider choosing one of them. To make a better choice you can  refer to the <a class="underline" href="http://todomvc.com/">TodoMVC</a> site. There you will see an example application created with different frameworks.</p>
<p>{{ screenshot: TodoMVC }}</p>
<p>Personally I just can't take and move everything to client in a moment. And I still want that most of rendering to be performed on server. 
And I want to have a full control over DOM with the tools I'm used to: <strong>jQuery and it's plugins</strong>. And here are some great MVC frameworks for that:</p>
]]></content></entry><entry><title>JavaScript Storage Libraries Explored</title><link rel="alternate" type="text/html" href="https://jster.net/blog/javascript-storage-libraries-explored"></link><id>javascript-storage-libraries-explored</id><published>2013-01-28T14:33:45.000Z</published><content type="text/html"><![CDATA[<p>It isn't uncommon to need a way to persist some data in browser. Traditionally <a class="underline" href="https://developer.mozilla.org/en-US/docs/Web_Development/HTTP_cookies">cookies</a> were used for this purpose. Since then better alternatives, such as <a class="underline" href="https://developer.mozilla.org/en-US/docs/DOM/Storage">Web Storage</a> have emerged. As if that wasn't enough, there is also a <a class="underline" href="http://www.w3.org/TR/IndexedDB/">Indexed Database</a> and <a class="underline" href="http://www.w3.org/TR/webdatabase/">Web SQL</a>.</p>
<p>In <a class="underline" href="http://csimms.botonomy.com/2011/05/html5-storage-wars-localstorage-vs-indexeddb-vs-web-sql.html">his comparison</a> Christian Simms points out that <em>Indexed Database</em> and <em>Web SQL</em> in particular are robust alternatives. Since the post the development of <em>Web SQL</em> has halted, however. Of the three <strong>Web Storage</strong> is the best supported at the moment althoug it is also the simplest alternative being a key-value store.</p>
<p>From a web developer's point of view this is quite a dilemma. How do you make any sense of that mess? What if you are not happy with Web Storage and want better queries for instance? As it happens there are multiple solutions for this problem.</p>
<hr>
<a href="#lawnchair"><h2 class="inline" id="lawnchair">Lawnchair</h2></a>
<p>{{ screenshot: lawnchair }}</p>
<p><a class="underline" href="http://jster.net/library/lawnchair">Lawnchair</a> is an example of a storage library inspired by <a class="underline" href="http://couchdb.apache.org/">CouchDB</a>. It uses an adapter based design. This means it is possible to use the same API while the actual database backend is selected based on platform.</p>
<p><a class="underline" href="http://jster.net/library/artemia">Artemia</a> builds on Lawnchair and provides some functionality of its own. This includes various queries. Unfortunately it seems the development of Artemia has stalled while Lawnchair keeps on being active.</p>
<hr>
<a href="#pouchdb"><h2 class="inline" id="pouchdb">PouchDB</h2></a>
<p>{{ screenshot: PouchDB }}</p>
<p><a class="underline" href="http://jster.net/library/pouchdb">PouchDB</a> is bit of an interesting case. Just like <em>Lawnchair</em> it builds on CouchDB. What makes it special is the fact that it can sync with an actual database. This applies for offline usage as well. It is possible to sync between PouchDB databases too.</p>
<p><em>PouchDB</em> is currently in alpha preview so consider it experimental. On conceptual level it seems very interesting, though.</p>
<hr>
<a href="#ydn-db"><h2 class="inline" id="ydn-db">ydn-db</h2></a>
<p>{{ screenshot: ydn-db }}</p>
<p>Just like <em>lawnchair</em> <a class="underline" href="http://jster.net/library/ydn-db">ydn-db</a> implements adapter design. What makes it special is its support for schemas. If you are looking for something full featured <em>ydn-db</em> seems like a good pick even though it doesn't seem particularly popular at the moment.</p>
<hr>
<a href="#story-js"><h2 class="inline" id="story-js">story.js</h2></a>
<p>{{ screenshot: story.js }}</p>
<p><a class="underline" href="http://jster.net/library/story-js">story.js</a> implements adapter design. What makes it special is the query language that resembles LINQ.</p>
<hr>
<a href="#localstorage-wrappers"><h2 class="inline" id="localstorage-wrappers">localStorage Wrappers</h2></a>
<p>There are quite a few wrappers for <em>localStorage</em>, part of <em>Web Storage</em> API. I've listed these briefly below:</p>
<ul class="list-disc list-inside">
<li><a class="underline" href="http://jster.net/library/store-js">store.js</a> fixes one particular restriction of <em>Web Storage</em> as it allows you to store data without having it being cast to string always.</li>
<li><a class="underline" href="http://jster.net/library/taffydb">TaffyDB</a> provides more comprehensive queries. The API works on a bit higher level overall than <em>store.js</em>.</li>
<li><a class="underline" href="http://jster.net/library/bankersbox">BankersBox</a> focuses on providing <a class="underline" href="http://redis.io/">Redis</a>-like API. Each "database" is accessed by id. After that the syntax familiar from Redis may be used. There is also adapter design familiar from <em>Lawnchair</em>.</li>
<li><a class="underline" href="http://jster.net/library/lostorage-js">IoStorage.js</a> has a similar interface as <em>cookie.js</em> below.</li>
<li><a class="underline" href="https://github.com/ded/Kizzy">Kizzy</a> provides the usual get/set syntax. In addition there is support for older Internet Explorers thanks to its usage of persistent XML store.</li>
<li><a class="underline" href="http://jster.net/library/lsd-js">lsd.js</a> provides yet another alternative API for localStorage.</li>
<li><a class="underline" href="http://jster.net/library/rockstage-js">Rockstage.js</a> is another pretty generic wrapper.</li>
</ul>
<hr>
<a href="#cookie-wrappers"><h2 class="inline" id="cookie-wrappers">Cookie Wrappers</h2></a>
<p>As you might expect there are wrappers for cookies too. Of these I would like to mention <a class="underline" href="http://jster.net/library/cookies-js">Cookies.js</a> and <a class="underline" href="http://jster.net/library/cookie-js">cookie.js</a> in particular. Feature-wise <em>cookie.js</em> seems a bit more comprehensive than <em>Cookies.js</em> and provides chaining for instance. EDIT: <em>Cookies.js</em> provides chaining too.</p>
<hr>
<a href="#conclusion"><h2 class="inline" id="conclusion">Conclusion</h2></a>
<p>There are definitely quite a few storage libraries available. You can find a few more at <a class="underline" href="http://jster.net/category/storage-libraries">our full listing</a>. Many seem to focus on wrapping localStorage. Fortunately there are a few conceptually different around. I hope this post gave you some insight to the field as it is. Let us know if we missed some awesome library or made some terrible mistake at the comments.</p>
]]></content></entry><entry><title>Brief Overview of HTML5 Canvas Libraries</title><link rel="alternate" type="text/html" href="https://jster.net/blog/brief-overview-of-html5-canvas-libraries"></link><id>brief-overview-of-html5-canvas-libraries</id><published>2013-01-11T15:38:00.000Z</published><content type="text/html"><![CDATA[<p><a class="underline" href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html">HTML5 Canvas</a> is a good example of immediate graphics. This "draw and forget" way of working is enough for some purposes. For instance you could write a simple drawing application this way. Unfortunately it isn't entirely trivial to implement interactive applications on top of <em>Canvas</em> without some decent effort. It gets more complicated when you are dealing with a lot of objects and you have to consider performance.</p>
<p>This is where various libraries wrapping the <em>Canvas</em> kick in. I will concentrate on a few popular ones in this post. You can find various others at <a class="underline" href="http://jster.net/category/canvas-wrappers">our canvas wrapper category</a>. In addition you might be interested in checking out <a class="underline" href="http://jster.net/category/visualization-libraries">various visualization libraries</a> and those focusing on <a class="underline" href="http://jster.net/category/image-manipulation">image manipulation</a>.</p>
<a href="#easeljs"><h2 class="inline" id="easeljs">EaselJS</h2></a>
<p>{{ screenshot: EaselJS }}</p>
<p><strong>EaselJS</strong> is an example of a library inspired by Flash. You will gain <em>hierarchical display list</em>, interactivity and animation helpers there. The concept of display list is quite powerful. It allows you to define relationships between graphical objects. As you manipulate parent objects, these manipulations are propagated to the children as well.</p>
<a href="#paper-js"><h2 class="inline" id="paper-js">Paper.js</h2></a>
<p>{{ screenshot: Paper.js }}</p>
<p>As you might want sometimes a whole <em>scene graph</em> (or as we call it on web development side, Document Object Model), you could complement <strong>EaselJS</strong> with <a class="underline" href="https://github.com/bloomingbridges/AtelierJS">AtelierJS</a>. <em>Paper.js</em> actually implements scene graph as a core feature. This allows you to split objects on multiple layers within the same Canvas. Sometimes you might get away with using multiple Canvas elements and CSS z-index but that's not what you want always.</p>
<p>Interestingly <strong>paper.js</strong> comes with a language of its own, <em>PaperScript</em>. As you probably know dealing with math can be sometimes a bit painful in JavaScript as you cannot overload operators easily. Instead your code ends up looking like <code>v1.mul(v2.add(v3))</code> which doesn't parse particularly well. <em>PaperScript</em> solves this and provides a couple of custom objects.</p>
<a href="#fabric-js"><h2 class="inline" id="fabric-js">Fabric.js</h2></a>
<p>{{ screenshot: Fabric.js }}</p>
<p>Just like <strong>EaselJS</strong>, <strong>Paper.js</strong> comes with its own interactivity helpers. <strong>Fabric.js</strong> provides support for interactivity as well and comes with its own Object model as these libraries usually do. The specialty of <strong>Fabric.js</strong> seems to be its SVG-to-Canvas parser. Interestingly this applies to the other direction too!</p>
<a href="#kineticjs"><h2 class="inline" id="kineticjs">KineticJS</h2></a>
<p>{{ screenshot: KineticJS }}</p>
<p><strong>KineticJS</strong> seems more or less comparable to libraries mentioned already. It's specialty is that it uses multiple canvas elements internally to achieve better performance. <a class="underline" href="https://twitter.com/softrli">@softrLi</a> seems quite excited about it in <a class="underline" href="http://www.softr.li/blog/2012/06/20/which-html5-canvas-javascript-library-should-i-use">his comparison of Canvas libraries</a>. Probably for a good reason.</p>
<a href="#comparison"><h2 class="inline" id="comparison">Comparison</h2></a>
]]></content></entry><entry><title>Top 12 JavaScript Libraries Started in 2012</title><link rel="alternate" type="text/html" href="https://jster.net/blog/javascript-libraries-started-in-2012"></link><id>javascript-libraries-started-in-2012</id><published>2012-12-26T18:21:11.000Z</published><content type="text/html"><![CDATA[<p>The year of apocalypse is about to finish. Nothing happened. It was a good year for JavaScript, though. Many amazing projects were started this year. In this post we will go through a collection of the most popular ones based on their GitHub starrings.</p>
<p>All these libraries are different, but notable on their own. The true leader of list is <strong>Meteor</strong>. They received over 6500 stars on GitHub and over <a class="underline" href="http://techcrunch.com/2012/07/25/andreessen-horowitz-keeps-eating-the-software-world-with-11-2-million-investment-in-javascript-framework-company-meteor/">$11 Million investment</a> from
Andreessen Horowitz. That makes Meteor the promising project in upcoming 2013. Or maybe a most overestimated one? What do you think?</p>
<p>Most of the projects picked on our list focus on UI improvements. Examples of these include alerts and notifiers. One curious case is <strong>Yeoman</strong>. It aims to make JavaScript development by wrapping together various tools and enables developers to generate a scaffolding for their own projects.</p>
]]></content></entry><entry><title>WebGL 3D Engines and Tools</title><link rel="alternate" type="text/html" href="https://jster.net/blog/webgl-3d-engines-and-tools"></link><id>webgl-3d-engines-and-tools</id><published>2012-12-17T17:48:08.000Z</published><content type="text/html"><![CDATA[<p>Pretty much all modern desktop <a class="underline" href="http://caniuse.com/#search=webgl">browsers support WebGL</a> Internet Explorer being a notable exception. Even then you can use hacks such as <a class="underline" href="http://www.iewebgl.com/">IEWebGL</a> to get the support. Although the whole specification is quite new, there has been some interest. Google Maps is a nice example of a high profile application using it.</p>
<p>Since working with bare APIs is often quite arduous, many wrappers have emerged. Of these particularly <strong>three.js</strong> and <strong>PhiloGL</strong> have become popular. Libraries such as <strong>glMatrix</strong>,<strong>WebGLU</strong>, <strong>lightgl.js</strong> and <strong>csg.js</strong> provide helpers for particular purposes. It is even possible to emulate Canvas2D with WebGL by using <strong>webgl-2d</strong>.</p>
]]></content></entry><entry><title>The Others: CoffeeScript, Dart, TypeScript...</title><link rel="alternate" type="text/html" href="https://jster.net/blog/js-alternatives-coffeescript-dart-typescript"></link><id>js-alternatives-coffeescript-dart-typescript</id><published>2012-12-10T14:20:40.000Z</published><content type="text/html"><![CDATA[<p>Javascript is almost a ubiquitous language. In a way it is comparable to C in its heyday. It is the language you need to know, or at least be aware of these days. Besides being a handy language for displaying various doodads on your site (ie. a lá jQuery) it is used for application development. There are even ways to program embedded systems using it (see <a class="underline" href="http://semu.github.com/noduino/">noduino</a> for an example).</p>
<p>The language isn't without its quirks. As a result various alternative languages compiling to JavaScript have emerged. Usually they provide some missing functionality and implement language concepts of their own. 
If you want a use OOP-style, or get rid fo nasty callbacks, or add some strict typing to your functions? Well, should definetely check these languages.</p>
<p>For instance if you are into classical OOP instead of prototypal and want some syntactical sugar, you might enjoy <strong>CoffeeScript</strong>.
In case you wish to have a stricter typing system, you could find <strong>Dart</strong> or <strong>TypeScript</strong> interesting. Those that enjoy functional programming, could perhaps enjoy <strong>ClojureScript</strong> or <strong>Roy</strong>.
The following list contains various alternatives. You do not have to stick with vanilla JavaScript unless you want to. It does not hurt to know JavaScript well but having higher level options available is always a good thing.</p>
]]></content></entry><entry><title>JavaScript Color Pickers</title><link rel="alternate" type="text/html" href="https://jster.net/blog/javascript-color-pickers"></link><id>javascript-color-pickers</id><published>2012-12-06T12:00:55.000Z</published><content type="text/html"><![CDATA[<p>If you are building an application that deals with graphics somehow, you are likely going to need a color picker. Fortunately
there are quite a few of those available for JavaScript. <a class="underline" href="http://www.w3.org/TR/html-markup/input.color.html">HTML5 includes <code>color</code> input</a> type even. One color picker, aptly
named <strong>nativeColorPicker</strong>, provides a shim for Internet Explorer so that you have got all bases covered. Other pickers
available are more specialized.</p>
<p>One example of these is <strong>colorjoe</strong>. That is a widget I developed myself after getting frustrated with existing alternatives.
My primary goals were to make it scaleable using CSS (no images needed) and make it easy to adjust. I think I succeeded in
these goals quite well. <a class="underline" href="http://www.daviddurman.com/">David Durman's</a> <strong>Flexi</strong> shares the goal of avoiding images. It is actually a lot lighter than
<code>colorjoe</code> (19k vs. 4k. minified) though given its modular nature it should be possible to get rid of some of that fat
if needed.</p>
<p>Besides these three there are quite a few pickers available. Enjoy the listing below for some. If you are missing your
favorite, let us know and we'll add it to the catalog!</p>
]]></content></entry><entry><title>Top 7 Backbone Alternatives</title><link rel="alternate" type="text/html" href="https://jster.net/blog/top-7-backbone-alternatives"></link><id>top-7-backbone-alternatives</id><published>2012-12-03T16:26:13.000Z</published><content type="text/html"><![CDATA[<p>It has become trendy to write Backbone based applications. But <strong>Backbone is not the only Javascript MVC framework in the
world</strong>. And as many developers say maybe not the best one for every purpose. You may find it too lightweight, and it may
lack the features you actually require. For example, you may want controllers and actual MVC stack, UI widgets, etc.
If you feel like Backbone is not for you there are many other different frameworks worth to check out. In this post
I will list some of the most popular ones.</p>
]]></content></entry></feed>