null Building Interactive Charts in JavaScript: A Developer’s Guide on SitePoint.
#javascript
145 posts
Yesterday
30 May
Comprehensive guide covering this topic with practical implementation details. Claude Code Plan Mode: The Read-First Workflow for Complex Refactors on SitePoint.
28 May
Comprehensive guide covering this topic with practical implementation details. DeepSeek R2: What Developers Need to Know Before August on SitePoint.
Comprehensive guide covering this topic with practical implementation details. DeepSeek API + OpenAI SDK: A Developer's Quick-Start Guide on SitePoint.
24 May
Comprehensive guide covering this topic with practical implementation details. Vibe Coding 2026: The Structured Guide to AI-First Development on SitePoint.
Comprehensive guide covering Vitest 4 Browser Mode: Component Testing Without Playwright with practical implementation details. Vitest 4 Browser Mode: Component Testing Without Playwright on SitePoint.
Comprehensive guide covering this topic with practical implementation details. OpenAI Codex CLI: Terminal-First Coding Agent Tutorial (2026) on SitePoint.
22 May
null 5 Best JavaScript Beautifier Tools for Clean and Readable Code on SitePoint.
21 May
Wave Function Collapse is an algorithm that generates structured randomness. There are plenty of reasons to want structured randomness. Maybe you want to create a randomized world map, with rivers coming out of lakes, and mountains ranges gradually sloping, like in Minecraft. Or maybe you want to create randomized towns, with the layout of the […] The post Introduction to…
19 May
Comprehensive guide covering TypeScript 6.0 Migration: What Changed and How to Adapt Your tsconfig with practical implementation details. TypeScript 6.0 Migration: What Changed and How to Adapt Your tsconfig on SitePoint.
Comprehensive guide covering React useOptimistic: Production Patterns for Instant UI Updates with practical implementation details. React useOptimistic: Production Patterns for Instant UI Updates on SitePoint.
18 May
HTML images just got better, with the subtlest change to your codebase Photo by Adi Suyatno I know what you’re thinking. Scott, I landed on Medium on a small but not mobile-small display and the download chunk related to images in my home feed was like 7% smaller. First of all, thank you for noticing. Second, what if I told…
10 May
Element: Stop Using JavaScript Dropdown Libraries" rel="nofollow" > Element: Stop Using JavaScript Dropdown Libraries" /> Comprehensive guide covering The Element: Stop Using JavaScript Dropdown Libraries with practical implementation details. The Element: Stop Using JavaScript Dropdown Libraries on SitePoint.
Comprehensive guide covering Continue.dev for Developers: The Complete Local AI Coding Assistant Setup with practical implementation details. Continue.dev for Developers: The Complete Local AI Coding Assistant Setup on SitePoint.
Comprehensive guide covering Qwen3-Coder-Next Local Deployment: A Complete Developer Guide (2026) with practical implementation details. Qwen3-Coder-Next Local Deployment: A Complete Developer Guide (2026) on SitePoint.
Comprehensive guide covering TypeScript 5.8 Erasable Syntax: Running TS Directly in Node.js with practical implementation details. TypeScript 5.8 Erasable Syntax: Running TS Directly in Node.js on SitePoint.
Comprehensive guide covering Gemma 3 Local LLM Deployment: Google's AI for Developers (2026) with practical implementation details. Gemma 3 Local LLM Deployment: Google's AI for Developers (2026) on SitePoint.
Comprehensive guide covering CSS sibling-index() and sibling-count(): Native List Staggering Without JavaScript with practical implementation details. CSS sibling-index() and sibling-count(): Native List Staggering Without JavaScript on SitePoint.
Comprehensive guide covering React 19 use() Hook: Data Fetching Patterns That Actually Work with practical implementation details. React 19 use() Hook: Data Fetching Patterns That Actually Work on SitePoint.
1 May
Time is a construct but it can still break your software
Stack OverflowRyan welcomes Jason Williams, senior software engineer at Bloomberg and the creator of Rust-based JavaScript engine Boa, to the show to dive into why date and time handling in JavaScript is so difficult and how the Temporal proposal aims to fix it. …
29 Apr
My software development team had a client who wanted to represent activity on a stage, not in the usual top-down layout that shows up all over the internet. A 3D stage? Reasonable request, slightly unreasonable visual problem. My wacky idea: what if this was mostly CSS? Maybe a little JavaScript. But mostly CSS. It turns […] The post How to…
24 Apr
Comprehensive guide covering AI Agent Testing Automation: Developer Workflows for 2026 with practical implementation details. AI Agent Testing Automation: Developer Workflows for 2026 on SitePoint.
Comprehensive guide covering Claude Code vs Cursor vs Copilot: The 2026 Developer Comparison with practical implementation details. Claude Code vs Cursor vs Copilot: The 2026 Developer Comparison on SitePoint.
Comprehensive guide covering Next.js AI Streaming: Building Real-Time Apps with Vercel AI SDK with practical implementation details. Next.js AI Streaming: Building Real-Time Apps with Vercel AI SDK on SitePoint.
17 Apr
Learn how to build user interfaces that visualize DeepSeek R1's reasoning chain in real-time. Build Reasoning UIs with DeepSeek R1: Visualize Chain-of-Thought (2026) on SitePoint.
13 Apr
We were annoyed with the slow performance of our frontend unit tests, so we made them much faster! It turned out that swapping out the test runner is an easy and efficient way to keep the migration effort low, while reaping the benefits of much faster execution times.
8 Mar
Learn how I added Bluesky likes and avatars to my Astro blog using the bluesky-likes web components package. No API keys, no server-side code, just a few lines of Astro magic.
18 Dec 2025
The fourth edition of Node.js Design Patterns is here. As one of the authors, I share why we wrote a new edition, what's new, and my thoughts on where Node.js is heading.
20 Dec 2024
Forms are everywhere online, from signing up for newsletters to making purchases. But let’s be honest — nothing’s more frustrating than a form that’s hard to fill out or riddled with unclear error messages. In this post, we’ll dive into practical tips and tricks to make your form validation seamless, user-friendly, and maybe even enjoyable! We’ll walk through tips for…
13 Feb 2024
We had a project where we aimed to optimize page load times while preserving SEO benefits. One of the techniques we employed was enabling ISR (Incremental Static Regeneration), which caches the page’s HTML response on the CDN network until the TTL (Time to Live) expires. However, we also encountered challenges with parts of the pages […] The post Nuxt 3…
24 Jan 2024
This article discuss the reason why I wanted to migrate this blog from Gatsby to Astro and the process I followed to do it. Plus a bunch of interesting and quirky bugs that I had to troubleshoot and fix along the way.
21 Jan 2024
Writing testable code is a vital skill in software engineering. Let’s explore practical advice, strategies, and tactics for writing more testable code, unlocking the benefits of modularity, reusability, and high quality software in your projects. Embracing testability in your coding practice isn’t just about catching bugs; it’s about fostering a culture of quality and efficiency in your projects. A good…
18 Jan 2024
Update: to enhance the clarity of the Nuxt 3 documentation, we have opened a pull request (PR) that has already been merged. Now, the functionality of ISR/SWR rendering modes is better explained. The backstory We were developing a listing site using Nuxt 3 and aimed to optimize page load times while maintaining SEO benefits by choosing the […] The post…
31 Dec 2023
The world of JavaScript has evolved significantly, and interview trends have changed a lot over the years. This guide features 10 essential questions that every JavaScript developer should know the answers to in 2024. It covers a range of topics from closures to TDD, equipping you with the knowledge and confidence to tackle modern JavaScript challenges. As a hiring manager,…
10 Nov 2023
The software industry sees an interesting tension between generative AI capturing the software lifecycle and low-level languages aiming for better performance. As developers we must understand these trends and find a strategy. Learn one or both?
31 Oct 2023
To deliver against our vision and enable a better online experience for everyone, we’ve been working hard on making Firefox even faster. We’re extremely happy to report that this has resulted in a significant improvement in speed over the past year. The post Down and to the Right: Firefox Got Faster for Real Users in 2023 appeared first on Mozilla…
24 Oct 2023
Accepting online payments is now a universal must-have, catering to everyone from solo entrepreneurs to massive global corporations. PayPal’s Standard Checkout allows for seamless integration of PayPal’s Payment Buttons component into your e-commerce app, granting you the power to accept online payments. In this guide, I am going to show how to add Standard Checkout to a simple shopping app,…
5 Sept 2023
Firefox performance on Vue.js has improved significantly throughout the year. Most recently, we sped up reactivity with Proxy optimizations. This change landed in Firefox 118, so it’s currently on Beta and will ride along to Release by the end of September. The post Faster Vue.js Execution in Firefox appeared first on Mozilla Hacks - the Web developer blog.
8 Aug 2023
This blog post will walk through how we developed UniFFI: a Rust library for auto-generating foreign language bindings. We will walk through some of the issues that arose along the way and how we handled them. The post Autogenerating Rust-JS bindings with UniFFI appeared first on Mozilla Hacks - the Web developer blog.
13 Jul 2023
Threads is a new social network from the Instagram team that rocketed to 100 million members in just 5 days. Obviously, Threads membership got a boost from the 2.35 billion members of Instagram, but don’t write off those membership growth numbers. To be counted as a threads member, you need to download the app and create your Threads profile, which…
3 Apr 2023
Running Riteway’s usage example tests in SudoLang running on ChatGPT using GPT-4 I have been a long-time advocate of Test-Driven Development (TDD) because of its many productivity and quality benefits. You can read more about those in “TDD Changed My Life” . When I realized that GPT-4 was capable of following complex instructions, one of the first things I thought…
17 Mar 2023
TL;DR — Great, but Can’t Replace Expert Mentors, Yet! Actual Photo of ChatGPT Teaching Puppies to Code (Just Kidding it’s Midjourney) GPT-4 was just released , and it represents significant enhancements over ChatGPT powered by GPT-3.5. Among the enhancements is an improved ability to maintain coherence over longer sessions and larger prompts. I spent years building EricElliottJS.com to teach developers…
13 Feb 2023
Storing Postman scripts within reusable components in an OpenAPI definition In programming, “hacking” has historically meant making something do what it wasn’t originally intended to do, like using a whistle from a cereal box prize to play the tone into a pay phone to get free long distance calls. Today, it also refers to finding an inelegant solution to a…
9 Oct 2022
This is continues of my previous post about how to remove unused CSS and convert unclear JavaScript to protect your source code in the post-build process. If you are using CSS libraries like Bootstrap, Tailwind CSS, etc.. and sometimes multiple frameworks. But your application components are not using all of the styles and it adds more weight to the application…
6 Oct 2022
Nowadays most applications are developed based on large CSS libraries like Bootstrap, Tailwind CSS, etc.. and sometimes multiple frameworks. But your application components are not using all of the styles and it adds more weight to the application performance. This post will explain the Angular post-build process to remove unused CSS and hidden JavaScript files that enhance the application security…
1 Sept 2022
Groupon maintains literally hundreds of NPM modules, both open source and internal. Many of these are consumed by our custom NodeJS-based middleware web layer we call “The Interaction Tier” (itself a topic for another post someday). As folks write new modules, a common question is “what’s the best way to export things from our published modules to maximize compatibility?” —…
9 Aug 2022
Learn how to create a private, invite-only website using Next.js, AirTable, custom React hooks, and Vercel deploy. The post covers backend APIs in Next.js, data storage with AirTable, validating access with invite codes, collecting user input, and deploying the final app.
21 Jul 2022
RedwoodJS & BlitzJS are meta-frameworks that provide tooling for creating SPAs, server-side rendered pages & statically generated content, providing a CLI to generate e2e scaffolds. The post RedwoodJS vs. BlitzJS: The Future of Fullstack JavaScript Meta-Frameworks appeared first on RisingStack Engineering.
27 Jun 2022
As part of our work to ensure a free and open web, we've been working together with Ecma International, and many partners to write a License inspired by the W3C Document and Software License. Our goal was that JavaScript’s status would align with other specifications of the Web. In addition, with this new license available to all TCs at Ecma…
10 Jun 2022
In this article, we have compiled a list of some of the most vital JavaScript interview questions and answers you should definitely know the answers for. The post JavaScript Interview Questions & Answers appeared first on RisingStack Engineering.
12 May 2022
Firefox uses a multi-process model for additional security and stability while browsing: Web Content (such as HTML/CSS and Javascript) is rendered in separate processes that are isolated from the rest of the operating system and managed by a privileged parent process. This way, the amount of control gained by an attacker that exploits a bug in a content process is…
31 Jan 2022
Learn to JAM with scripts, mock servers, and the visualizer Jamstack originally referenced a web architecture composed of JAM: JavaScript, APIs, and Markup. Websites could be delivered statically, such as serving HTML from static hosting, while providing dynamic content and an interactive experience through JavaScript and APIs. “A modern web development architecture based on client-side JavaScript, reusable APIs, and prebuilt…
6 Dec 2021
In Firefox 95, we're shipping a novel sandboxing technology called RLBox — developed in collaboration with researchers at the University of California San Diego and the University of Texas — that makes it easy and efficient to isolate subcomponents to make the browser more secure. This technology opens up new opportunities beyond what's been possible with traditional process-based sandboxing, and…
1 Nov 2021
This post explains how to conditionally create resources in AWS CDK using CfnCondition. It provides a practical example of creating an S3 bucket based on an SSM parameter value. The post covers defining a condition, attaching it to a low-level CDK construct, and importing the conditionally created resource.
20 Oct 2021
Welcome to our Hacks: Decoded Interview series! We spoke with Thomas Park over email about coding, his favourite apps and his past life at Mozilla. Thomas is the founder of Codepip, a platform he created for coding games that helps people learn HTML, CSS, JavaScript, etc. The most popular game is Flexbox Froggy. The post Hacks Decoded: Thomas Park, Founder…
8 Oct 2021
Firefox 93 comes with lots of lovely updates including AVIF image format support, filling of XFA-based forms in its PDF viewer and protection against insecure downloads by blocking downloads relying on insecure connections. The post Lots to see in Firefox 93! appeared first on Mozilla Hacks - the Web developer blog.
7 Oct 2021
Last year, during lockdown, many discovered the importance of PDF forms when having to deal remotely with administrations and large organizations like banks. Firefox supported displaying PDF forms, but it didn’t support filling them: users had to print them, fill them by hand, and scan them back to digital form. We decided it was time to reinvest in the PDF…
8 Sept 2021
Release time comes around so quickly! This month we have quite a few CSS updates, along with the new Object.hasOwn() static method for JavaScript. The post Time for a review of Firefox 92 appeared first on Mozilla Hacks - the Web developer blog.
10 Aug 2021
August is already here, which means so is Firefox 91! For developers, Firefox 91 supports the Visual Viewport API and Intl.DateTimeFormat object additions. The post Hopping on Firefox 91 appeared first on Mozilla Hacks - the Web developer blog.
6 Aug 2021
This post explains how to use CDK to provision Ubuntu EC2 instances on AWS. It covers finding the right AMI, adding security groups, using init scripts, installing AWS utilities, and more.
3 Aug 2021
Last month, Gregor Weber and Peter Bengtsson added an autocomplete search to MDN Web Docs, that allows you to quickly jump straight to the document you're looking for by typing parts of the document title. This is the story about how that's implemented. The post How MDN’s autocomplete search works appeared first on Mozilla Hacks - the Web developer blog.
8 Jul 2021
In this Stripe & JS tutorial, I’ll show how you can create a simple webshop using Stripe Payments integration, React and Express. The post Stripe & JS: Payments Integration Tutorial appeared first on RisingStack Engineering.
8 Jun 2021
When implementing a language feature for JavaScript, an implementer must make decisions about how the language in the specification maps to the implementation. Private fields is an example of where the specification language and implementation reality diverge, at least in SpiderMonkey– the JavaScript engine which powers Firefox. To understand more, I’ll explain what private fields are, a couple of models…
22 Apr 2021
We are happy to announce that Pyodide has become an independent and community-driven project. We are also pleased to announce the 0.17 release for Pyodide with many new features and improvements. Pyodide consists of the CPython 3.8 interpreter compiled to WebAssembly which allows Python to run in the browser. The post Pyodide Spin Out and 0.17 Release appeared first on…
13 Nov 2020
With Warp (also called WarpBuilder) we’re making big changes to our JIT (just-in-time) compilers, resulting in improved responsiveness, faster page loads and better memory usage. The new architecture is also more maintainable and unlocks additional SpiderMonkey improvements. This post explains how Warp works and how it made SpiderMonkey faster. The post Warp: Improved JS performance in Firefox 83 appeared first…
6 Oct 2020
Let's learn the Dart language as JS developers: We dive into OOP, classes, inheritance, and mixins, asynchrony, callbacks, async/await and streams. The post Beginner Dart Language Tutorial for JavaScript Developers appeared first on RisingStack Engineering.
28 Jul 2020
Firefox 79 offers a new Promise method, more secure target=_blank links, logical assignment operators, tooling improvements for better JavaScript debugging, and many other updates of interest to web developers. In addition, shared memory is back at last, with a safer implementation. The post Firefox 79: The safe return of shared memory, new tooling, and platform updates appeared first on Mozilla…
21 Jul 2020
At Mozilla, we want the web to be capable of running high-performance applications so that users and content authors can choose the safety, agency, and openness of the web platform. Shared-memory multi-threading is an essential low-level building block for high-performance applications. However, keeping users safe is paramount, which is why shared memory and high-resolution timers were effectively disabled at the…
18 Jun 2020
Yulia Startsev, a JavaScript engineer on Firefox's SpiderMonkey team, introduces her new Twitch stream called Compiler Compiler. In the three opening interactive episodes, we get an inside look at how the JavaScript Specification, ECMA-262, is implemented in SpiderMonkey, by reading the spec and fixing issues in the implementation. The post Compiler Compiler: A Twitch series about working on a JavaScript…
4 Jun 2020
Regular expressions – commonly known as RegExps – are a powerful and heavily used tool for manipulating strings in JavaScript. This post describes how we updated the RegExp engine in SpiderMonkey, Firefox's JavaScript engine, by building a shim layer to V8's Irregexp. The outcome: reduced maintenance and stronger collaboration among the browsers, full support for all the new RegExp features,…
2 Jun 2020
Firefox 77 is now available with a variety of developer tool updates and new web platform features. With your feedback, we've removed performance bottlenecks, resulting in faster, leaner JavaScript debugging. We also report on some changes to Firefox extensions, including fewer permission requests. The post New in Firefox 77: DevTool improvements and web platform updates appeared first on Mozilla Hacks…
5 May 2020
Firefox 76 delivers great new features for web platform support, such as Audio Worklets and Intl improvements, on the JavaScript side. Also, we’ve added a number of topnotch improvements to Firefox DevTools to make JavaScript debugging and development easier and quicker. The post Firefox 76: Audio worklets and other tricks appeared first on Mozilla Hacks - the Web developer blog.
26 Apr 2020
The middleware framework Middy reached version 1.0, bringing middleware capabilities to AWS Lambda. This allows cleaner handler code by extracting cross-cutting concerns into reusable middleware.
11 Mar 2020
This article is more about understanding the Event Emitters in Angular and Ionic. Data flow is the most important when you build an application to communicate with components. Event Emitters will help you to even bind using @Input @Output decorators. Here is a simple example to display and update the user profile using Angular Event Emitters. For this demo I…
4 Mar 2020
Optimizing the integration of Firefox Developer Tools with the SpiderMonkey JavaScript engine has resulted in many benefits, including the new asynchronous call stack tracking now available in Firefox Developer Edition. In this post you can learn how that was done, down to detailed changes to memory management. The post Future-proofing Firefox’s JavaScript Debugger Implementation appeared first on Mozilla Hacks -…
11 Feb 2020
Today we’ve released Firefox 73, with useful additions that include CSS and JavaScript updates, and numerous DevTools improvements. We’ve added to CSS logical properties, pushed performance forward in the Console and the Debugger, and improved the WebSocket inspector. Thanks to all for the ongoing DevTools feedback. The post Firefox 73 is upon us appeared first on Mozilla Hacks - the…
7 Jan 2020
Though we are moving to a more frequent four-week browser release cycle, the Firefox 72 release is feature-rich and full of goodies. It includes many requested DevTools' updates and improvements. We also introduce Shadow Parts and the CSS Motion Path, and useful new JavaScript features. Plus, Picture-in-picture for video is now enabled for Mac and Linux users too! The post…
15 Oct 2019
The Firefox DevTools team and our contributors were hard at work over the summer, getting Firefox 70 jam-packed with improvements. We are especially excited about our new WebSocket inspection feature. To use the inspector now, download Firefox Developer Edition, and open the DevTools’ Network panel to find the Messages tab. Then, keep reading to learn more about WebSockets and the…
6 Oct 2019
Released a tiny npm package today: @0xadada/random-emoji, a javascript random emoji function with zero dependencies. $ yarn add @0xadada/random-emoji $ node > const random = require('@0xadada/random-emoji'); > random() '😁' let a = random(); // defaults to 'emoticons' let b = random('emoticons'); let c = random('food'); let d = random('animals'); let e = random('expressions'); console.log(a, b, c, d, e); // 😍…
16 Sept 2019
I love bookmarklets, those small and elegant lines of javascript that you can bookmark and which do random functions in the browser when clicked. uri-editor.js is 1-line of HTML that’ll run a text editor in your browser. Drag the link into your bookmarks to save it as a quick browser-based editor tool for those moments you need a quick editor…
8 Sept 2019
Learn how to configure NPM packages to publish only the files needed by users, avoiding bloating node_modules folders.
5 Sept 2019
Firefox Debugger has evolved into a fast and reliable tool chain over the past several months and it’s now supporting many cool features. Though it's primarily used to debug JavaScript, did you know that you can also use Firefox to debug your TypeScript applications? Jan 'Honza' Odvarko walks through some real world examples. The post Debugging TypeScript in Firefox DevTools…
30 Aug 2019
Modern web applications load and execute a lot more JavaScript code than they did just a few years ago. While JIT (just-in-time) compilers have been very successful in making JavaScript performant, we needed a better solution. We’ve added a new, generated JavaScript bytecode interpreter to the JavaScript engine in Firefox 70. Instead of writing a new interpreter from scratch, we…
11 Jul 2019
We’re going to talk about a common request when working with relational data in Vuex. Why and how to cache method-style getter invocations, though the principles would also apply to method-style computed properties. If you have been following recent Vue v3 RFCs, you might have come across the Advanced Reactivity API , which comes as a very welcome direction for…
9 Jul 2019
Firefox 68 is available today, sporting support for big integers, whole-page contrast checks checks for accessibility, and a completely new implementation of a core Firefox feature: the ever-awesome URL bar. Dan Callahan also reports on updated CSS scroll-snapping and other features, DOM API updates, next steps in the WebRender implementation, and more. The post Firefox 68: BigInts, Contrast Checks, and…
18 Jun 2019
This talk was presented at the Boston Ember.js Community meetup at Salsify, Inc about a unique usecase for deploying FastBoot in order to do server-side rendering of Ember applications at scale. I review traditional, single-page web applications, I discuss server-side rendering by introducing Ember FastBoot. I showcase our architecture and provide a quick summary of how we use FastBoot in…
29 May 2019
In what ways can empirical evidence be used in the design of a language like JavaScript? At TC39, as stewards of the JavaScript specification, how do we answer questions about the design of JavaScript and help make it accessible to the thousands of new coders who join the industry each year? To answer this we need to experiment, and I…
8 May 2019
Let's take a look at StackOverflow’s usage statistics by creating an interactive calendar heatmap using D3.js! The post Tutorial: Building a D3.js Calendar Heatmap (to visualize StackOverflow Usage Data) appeared first on RisingStack Engineering.
16 Apr 2019
Pyodide is an experimental project from Mozilla to create a full Python data science stack that runs entirely in the browser. We think it’s worthwhile to work on moving the JavaScript data science ecosystem forward, and that's why we built and released Iodide earlier this year. In the meantime, we’re meeting data scientists where they are by bringing the popular…
19 Mar 2019
Proper state handling in React will make your components simple and maintainable. Poor choices will give you lots of headaches in the long-term. There are plenty of options for managing state in a React app. But there’s very little guidance about which one you should use in any situation. Let’s fix that. The solution you pick to manage state should…
18 Feb 2019
This article shows how to quickly build web app prototypes using Fastify for the backend API and Preact for the frontend UI. It also covers how to dockerize the app for easy sharing. Key points are the plugin architecture of Fastify, the lightweight nature of Preact, and the use of htm for defining UI without transpilation.
21 Jan 2019
This article explores different ways to create iterators and iterable values in Javascript for dynamic sequence generation, specifically using functions, iterators, iterables and generators. It provides code examples for implementing the Fibonacci sequence with each approach.
11 Nov 2018
This article explores how to simulate multiple return values in JavaScript using arrays and objects. It covers use cases like React Hooks and async/await error handling. The pattern enables elegant APIs but has performance implications.
18 Oct 2018
I came across an interesting interview question, along the lines of ”How would you make this work?” add(2, 5); // multiple arguments style > 7 add(2)(5); // currying, a chained invocation style > 7 add(1,2)(3,4) // both > 10 I thought this was a very interesting question, so took some time to implement a multi-argument / curried function. Heres what…
12 Oct 2018
“It works on my machine” is something you don’t want to experience in your team. This is especially true when working on a React Native Application as your team might consist of Android Experts, iOS Experts, and Javascript Experts. The all know their part of the development environment very well, but errors in other parts might seem very alien to…
9 Oct 2018
This is the 1st post of the ‘Learn JavaScript for Free’ series - in these chapters you will find free materials and a roadmap for learning JS from scratch. The post Want to Learn JavaScript for Free? Start Here! appeared first on RisingStack Engineering.
12 Jun 2018
Lately at work, my colleagues build some awesome tooling to fetch data in an easy way. It’s built around RxJS, which I previously had very little knowledge about. I saw cool ways of getting and combining data, which inspired me to build a little game with RxJS in React Native. The game idea is to have a ball on a…
25 Apr 2018
This talk is a code walkthrough, implementing a date picker to showcase the power of ember-changeset and contextual components. Given at the Ember Boston Community meetup. Ember-changeset is an addon that provides an abstraction over Ember models such that only valid data will ever be set in a model. Contextual components are a set of conventions that allow a developer…
24 Mar 2018
One pattern I’ve used quite a lot while working with React at the BBC and Discovery Channel is the Data Container pattern. It became popular in the last couple of years thanks to libraries like Redux and Komposer. The idea is simple. When you build UI components in React you feed data into them via […]
9 Dec 2017
This series of blog posts is about the network related performance issues. The goal is to give you a set of tools to use that will provide you with insights that help you deliver fewer and shorter loading screens to your customers. Make sure you check out the first part, too: Performance Monitoring for the Frontend — An introduction Getting…
1 Nov 2017
Foreword Our Curations engineering team makes heavy use of serverless architecture. While this typically gives us the benefit of reduced costs, flexibility, and rapid development, it also requires us to ensure that our processes will run within the tight memory and lifecycle constraints of serverless instances. In this article, I will describe an actual case […]
23 Oct 2017
A couple of weeks ago we introduced a new feature in Teamwork Chat called Project Rooms . Project Rooms are a great way to create dedicated real-time communication channels for specific projects. Our next priority was to take this feature even further. Project Rooms in Teamwork Chat. Embedded Teamwork Chat Currently Project Rooms can be used inside Teamwork Chat, but…
9 Oct 2017
In early 2015, I was working at an artificial intelligence startup. My team was planning to build a web application to connect to our neural network platform. The team as a whole had experience (on the AI–side) with Python, and the web team had a lot of experience using Django. We’d implemented a hybrid-app in Cordova using Backbone.js the previous…
11 Aug 2017
23 Jun 2017
15 Jun 2017
Luciano Mammino recounts his experience speaking at the Shift conference in Split, Croatia about Serverless architecture and its pros and cons. He provides links to his talk video, slides, and a Twitter moment.
12 Jun 2017
When npm@5 was just released this question was the first one I have googled. No doubts it comes to mind since new npm version introduced a lot of yarn’s features. In other words: should I still use yarn after installing npm@5? Yarn features Why do people use yarn in the first place? npm had some known issues. Well, we all…
26 Apr 2017
Context and Higher Order Components: Two Immediately Applicable Topics from the Advanced React Workshop
BazaarvoiceThanks to Bazaarvoice I recently attended an “Advanced React Workshop” put on by React Training and taught by Ryan Florence, one of the creators of React Router. Ryan was an engaging teacher and the workshop was filled with memorable quotes. Here are some highlights: The great conundrum of accessibility is that learning it is not […]
11 Apr 2017
The author gave a talk on building universal JavaScript web apps at Codemotion Rome 2017. He updated his Judo Heroes demo to v2 with React 15.4, React Router 4, Webpack 2, and Express 5. The talk got positive feedback from the audience. Slides and video are linked.
31 Mar 2017
This article explains how short URLs work and provides code examples to expand them in Node.js using request module or tall library. It covers basics of URL redirection, shows how to disable auto-redirect in request module, and introduces tall - a promise-based Node.js library to unshorten URLs.
21 Feb 2017
This past October I participated in an awesome Open Source event called “Hacktoberfest”, sponsored by Digital Ocean and GitHub. Hacktoberfest is a month-long celebration of Open Source where developers are encouraged to contribute to the community. Participation is easy: Pull requests can be made in any GitHub-hosted repositories/projects. A contribution can be anything—fixing bugs, creating […]
14 Feb 2017
This post summarizes a talk about building a serverless architecture on AWS Lambda using the Serverless framework. It covers topics like authentication, authorization, testing, CI/CD, and cost monitoring. The presenters share lessons learned from real-world experience building a production serverless application.
8 Jan 2017
This article is one in a series about writing client-focused JavaScript without the help of libraries and frameworks. It's meant to help developers remember that they can write good code on their own using nothing but native APIs and methods. For more, check out the original article on writing small
26 Nov 2016
This blog post summarizes a talk about building a Universal JavaScript application with React given at Codemotion Milan 2016. It includes commentary for each slide, photos from Twitter, and a video recording. The post explains what Universal JavaScript is, its benefits, challenges, and walks through demo code to add server-side rendering and routing to a React app.
8 Nov 2016
Yesterday I had the good fortune to attend Empire Node at The National Museum of the American Indian, courtesy of InRhythm. A good time was had by all and we got to see some great talks! There was programmable music, smart ways to get into code style linting and, of
5 Nov 2016
Environment variables are declared with the ENV statement and are notated in the Dockerfile either with $VARIABLE_NAME or ${VARIABLE_NAME}. Passing variables at build-time The ENV instruction sets the environment variable to the value. The environment variables set using ENV will persist when a container is run from the resulting image. For example: The Dockerfile allows you to specify arguments […]
25 Sept 2016
Luciano Mammino recently participated in two interviews discussing his work with Node.js and JavaScript as well as his experience as an author writing books about Node.js design patterns.
1 Aug 2016
Monitoring systems allow you to monitor changes to your front-end code base over time, catching any regression issues and monitoring the ongoing effects of any performance optimisation changes. Easy to use dashboards are a must when it comes to monitoring the state of your web apps. Companies like Calibre or SpeedCurve offer this as a […]
18 Jul 2016
The package mock-require is useful if you want to mock require statements in Node.js. It has a simple API that allows you to mock anything, from a single exported function to a standard library. Here’s an example: app/config.js app/services/content.js test/services/content_spec.js
15 Jul 2016
Bazaarvoice’s Small Web App Technologies (SWAT) team is pleased to announce that we are open sourcing swat-proxy – a tool to inject applications onto third-party webpages. In third-party web application development it is difficult to be certain how our applications will look and behave on a client’s webpage until they are implemented. Any number of things could interfere – including…
17 Apr 2016
You too can write vanilla JavaScript! A mistake that a lot of developers make when they first approach a problem (me included!) is to start thinking about the problem from the top down. They start thinking of the problem at hand in terms of frameworks and plugins and pre-processors and
14 Feb 2016
We explore two approaches to support both callbacks and promises in async JavaScript modules: 1) promisify callback functions, 2) make callback optional and return promise. The second allows flexible use of callbacks or promises.
27 Jan 2016
Delegating event listeners in JavaScript is generally a good practice. It allows us to create only one event listener for events that might be triggered on a variety of nodes and across multiple contexts. If we're just looking to listen for any given click on a page it would be
18 Jan 2016
Gulp-cozy is an experimental NPM package that allows you to separate Gulp tasks into small modules inside a dedicated folder, making them easier to maintain. It brings Node.js modularity principles into your Gulp workflow.
29 Nov 2015
The new kid in town is called Template Strings. Template Strings are demarked by a backtick(`) on either end and can contain other backticks if they are escaped by a backslash(ie. let my_string = `some cool \`escaped\` thing`). This new kind of primitive in JavaScript is different from
Writing Immediately Invoked Function Expressions or IIFEs in ES6(Also known as ES2015 now) just got a lot easier with the introduction of fat arrow functions. (global => { const MY_CONSTANT = 'api key or something' let counter = 0 let some_array = [1,2,34,5,6,7] counter = some_array.
15 Nov 2015
Notes from the book: JavaScript: The Good Parts by Douglas Crockford Index JavaScript: The Good Parts Primitives Execution Flow Equality Loops / Enumeration Object Literals Arrays Delete Global Abatement Reference Reflection Functions Prototype Function Invocation Pattern Constructor Invocation pattern Closure Modules WTF JavaScript: The Good Parts A walkthrough many of the useful code examples from Douglas Crockfords’ seminal book, JavaScript:…
25 Oct 2015
This tutorial explains how to use Gulp and vinyl-ftp to watch local files for changes and automatically upload updates to a website via FTP. Useful for quickly editing legacy sites only accessible through FTP.
8 Sept 2015
This blog post provides a beginner's guide to managing versioning and deployment of static websites using Git for version control, Flightplan.js for automated deployment, and Nginx for serving. It outlines a simple yet complete workflow for implementing continuous delivery and rollbacks.
11 May 2015
The flickr-set-get command line app makes it easy to download entire Flickr galleries. It uses the Flickr API and Node.js asynchronous programming to download photos in parallel. The post explains the motivation behind the project, the technologies used, and how the asynchronous code works.
6 Mar 2015
A couple of years ago, my former colleague Alex Sexton wrote about the techniques that we use at Bazaarvoice to deploy client-side JavaScript applications and then load those applications in a browser. Alex went into great detail, and it’s a good, if long, read. The core idea, though, is pretty simple: an application is bootstrapped […]
20 Oct 2014
One of MongoDB’s arguments when evangelising MongoDB is the fact that MongoDB is a “schemaless” database: Why Schemaless? MongoDB is a JSON-style data store. The documents stored in the database can have varying sets of fields, with different types for each field. And that’s true. But it doesn’t mean that there is no schema. There … Continue reading Stop Claiming…
6 Jun 2014
At Data Geekery, we love Java. And as we’re really into jOOQ’s fluent API and query DSL, we’re absolutely thrilled about what Java 8 will bring to our ecosystem. Java 8 Friday Every Friday, we’re showing you a couple of nice new tutorial-style Java 8 features, which take advantage of lambda expressions, extension methods, and … Continue reading Java 8…
28 Feb 2014
The post explains how to integrate twig.js with BazingaJsTranslationBundle to handle translations consistently between PHP and JavaScript. It shows how to build a custom Twig extension to translate strings with the Bazinga Translator object and handle differences in parameter formatting.
11 Jul 2011
Hi all… Here we are, again. This will be a quick post, just for warning in a specific case. When you’re using the jQuery Form plugin by malsup.com you are making an AJAX call, but it does not send some variables that identify a XMLHttpRequest (in my case I’m using the plugin with a upload … Continue reading jQuery Form…
Hi all, Sometimes a big part of an application uses AJAX to get content. When getting new content we get new events, already declared in the webapp. For example: $(function(){ $('a.class1').bind('click', function(){ // code here }); }); If the new content (via AJAX) has a link with class1 class, it won’t call this javascript code, … Continue reading Using live…
21 Jun 2011
Boa tarde, pessoal! Utilizar onKeyUp para fazer chamadas Ajax é bem interessante, melhorando e muito a experiência do usuário com o sistema, de maneira que os resultados da pesquisa vão aparecendo na medida que ele pressiona as teclas no teclado. Porém, imagine, a cada tecla que o usuário pressiona é uma chamada Ajax na aplicação, … Continue reading setTimeOut para…
21 Jul 2010
It’s good to be back. I let the old blog field lie fallow in order to focus on work in Ecma TC39 (JS standards), Firefox 3.5, 3.6 and 4; and recently on a new project that I’ll blog about soon. In the mean time [UPDATE and in case the embedded video fails], here’s the video … Continue reading "A Brief…
8 Jun 2009
When you profile a web page with Page Speed, it evaluates the page’s conformance to a number of different rules. These rules are general front-end best practices you can apply at any stage of web development. Google provides documentation of each of the rules, so whether or not you run the Page Speed tool, you can refer […]
16 Feb 2009
Aptana has just released a beta version of its ActiveRecord.js which is an ORM JavaScript library that implements the ActiveRecord pattern. It works with AIR and other environments: ActiveRecord.js is a single file, MIT licensed, relies on no external JavaScript libraries, supports automatic table creation, data validation, data synchronization, relationships between models, life cycle callbacks […]
22 Jan 2009
During his keynote presentation at OSCON last year, Ubuntu founder Mark Shuttleworth described application extensibility as an important enabler of innovation and user empowerment. Citing the Firefox web browser and its rich ecosystem of add-ons as an example, Shuttleworth suggested that the Linux community could deliver a lot of extra value by making scriptable automation […]
23 Aug 2008
I’m extremely pleased to announce the launch of TraceMonkey, an evolution of Firefox’s SpiderMonkey JavaScript engine for Firefox 3.1 that uses a new kind of Just-In-Time (JIT) compiler to boost JS performance by an order of magnitude or more. Results Let’s cut straight to the charts. Here are the popular SunSpider macro- and micro-benchmarks average … Continue reading "TraceMonkey: JavaScript…
4 Apr 2008
It seems (according to one guru, but coming from this source, it’s a left-handed compliment) that JavaScript is finally popular. To me, a nerd from a tender age, this is something between a curse and a joke. (See if you are in my camp: isn’t the green chick hotter?) Brendan Eich convinced his pointy-haired boss … Continue reading "Popularity"
10 Nov 2005
Goals Here are some design notes for JS2, starting with my goals, shared in large part by ECMA TG1 for ECMA-262 Edition 4: Support programming in the large with stronger types and naming. Enable bootstrapping, self-hosting, and reflection. Backward compatibility apart from a few simplifying changes. (Goal 2 implies many things beyond what is discussed … Continue reading "JS2 Design…
13 Jun 2005
With DHTML and AJAX hot (or hot again; we’ve been here before, and I don’t like either acronym), I am asked frequently these days about JavaScript, past and future. In spite of the fact that JS was misnamed (I will call it JS in the rest of this entry), standardized prematurely, then ignored and stagnated … Continue reading "JavaScript 1,…