{
    "componentChunkName": "component---src-templates-tags-tsx",
    "path": "/tags/javascript/",
    "result": {"data":{"site":{"siteMetadata":{"title":"Frontside Software"}},"allBlogPost":{"totalCount":19,"edges":[{"node":{"id":"99a9ec7e-1881-5df7-981e-e9b3f9c6d09c","slug":"/blog/2017-06-21-building-a-ci-cd-deployment-solution-for-the-iot/","title":"Building a Continuous Integration & Deployment Solution for the IoT.","authorNodes":[{"name":"Elrick Ryan","slug":"/people/elrick-ryan/"}],"markdown":{"excerpt":"Great, Scott! Even Doc may say we are in the future. Embedded devices and systems are everywhere and today almost every one of them is connected to the internet. Currently, there are over an estimated…","frontmatter":{"description":"Smart homes, smart devices, smart vehicles. The Internet of Things is here! You want to be able to build software for IoT and deploy, maintain, and update it on your devices that may be located anywhere and within anything. This is the first part of our IoT setup connecting users to the Internet of Things.","date":null,"img":{"childImageSharp":{"fixed":{"src":"/static/9f5a632758b3cb3ce95ab74e84c5c4c4/2a4de/2017-06-21-building-a-ci-cd-deployment-solution-for-the-iot_main-image-iot-blog.png"}}}}}}},{"node":{"id":"6ab0879e-c343-5f07-b800-b3136dc1f7d3","slug":"/blog/2023-12-18-announcing-effection-v3/","title":"Announcing Effection 3.0 -- Structured Concurrency and Effects for JavaScript","authorNodes":[{"name":"Charles Lowell","slug":"/people/charles-lowell/"}],"markdown":{"excerpt":"Effection is Structured Concurrency and Effects for JavaScript. It’s a library purpose-built to help developers write code that can easily manage the most complex concurrent computations whether in…","frontmatter":{"description":"A major milestone in bringing Structured Concurrency and Effects to JavaScript, Effection 3.0 has excellent TypeScript support, a powerful new context API, and harmonizes perfectly with the JavaScript APIs you know and love.","date":"December 18, 2023","img":{"childImageSharp":{"fixed":{"src":"/static/ffbaf23c1012bc2af2221c370fb1c7da/2a4de/2023-12-18-announcing-effection-v3.png"}}}}}}},{"node":{"id":"23f82221-cf1e-58a6-a6a7-42cf13929228","slug":"/blog/2023-12-11-await-event-horizon/","title":"The await event horizon in JavaScript","authorNodes":[{"name":"Charles Lowell","slug":"/people/charles-lowell/"}],"markdown":{"excerpt":"There is a boundary around every black hole where the velocity required to escape its gravitational pull exceeds the speed of light. Once anything, including light itself, passes over that threshold…","frontmatter":{"description":"Why async functions in JavaScript are insufficient as a Structured Concurrency primitive","date":"December 11, 2023","img":{"childImageSharp":{"fixed":{"src":"/static/f41050ac2ccba19fd9dd0c46f90fc75f/2a4de/2023-12-11-await-event-horizon.png"}}}}}}},{"node":{"id":"0ffa7bbd-5737-501d-bfcd-6b05c1f15628","slug":"/blog/2022-12-01-deno-is-blazing-fast-for-humans/","title":"Deno is \"blazing fast\" for humans","authorNodes":[{"name":"Charles Lowell","slug":"/people/charles-lowell/"}],"markdown":{"excerpt":"Are you old enough to remember back in the day when Node.js was the new kid on the block? I am. I remember the excitement of having a dead-simple way to run JavaScript on the server. I remember being…","frontmatter":{"description":"Every systems claims to be \"blazing fast\", but does that actually mean faster development?","date":"December 01, 2022","img":{"childImageSharp":{"fixed":{"src":"/static/6338b121b8c5fea12925f33ea1533ab1/2a4de/2022-12-01-deno-is-blazing-fast-for-humans.png"}}}}}}},{"node":{"id":"920e0bee-e778-5a03-943d-2ee190c8da61","slug":"/blog/2022-01-13-auth0-simulator/","title":"Simplified local development and testing with Auth0 simulation","authorNodes":[{"name":"Paul Cowan","slug":"/people/paul-cowan/"}],"markdown":{"excerpt":"Auth0 is an excellent service that lets you focus on your app instead of trying to stay up to date with the latest safe and secure authentication practices. However, what’s not so great is having to…","frontmatter":{"description":"Auth0 can be difficult to manage in local development and within testing environments such as CI/CD pipelines. An Auth0 simulator can save you from branching your code or maintaining mocks in your tests.","date":"January 13, 2022","img":{"childImageSharp":{"fixed":{"src":"/static/c671689697dc07b7c5bc20c9cd078abe/2a4de/2022-auth-simulator.png"}}}}}}},{"node":{"id":"fc0c6e59-0f9c-56c5-8f44-9b37f8694a59","slug":"/blog/2021-10-26-effection-async-await/","title":"Effection: for when async/await is not enough","authorNodes":[{"name":"Jonas Niklas","slug":"/people/jonas-niklas/"}],"markdown":{"excerpt":"Everyone who has built a complex system in JavaScript has hit a critical moment where the illusion of control comes crashing down. Those are the moments when there are dozens (maybe hundreds) of…","frontmatter":{"description":"Everyone who has built a complex system in JavaScript has hit a critical moment when concurrent processes become unmanageable. But with Effection—an OSS async/await alternative—you'll spare memory leaks and headaches. ","date":"October 26, 2021","img":{"childImageSharp":{"fixed":{"src":"/static/c588855a2e02779b29504f163481ca0a/2a4de/2021-intro-effection.png"}}}}}}},{"node":{"id":"9c42e6d7-fc4e-55f5-9bd3-1411d87bee14","slug":"/blog/2018-11-06-build-a-family-tree-maker-using-react-hooks-and-microstates/","title":"Build a Family Tree maker using React Hooks and Microstates","authorNodes":[{"name":"Taras Mankovski","slug":"/people/taras-mankovski/"}],"markdown":{"excerpt":"Demo of Family Builder Component In this tutorial, we will create a Family Tree marker component using React Hooks and Microstates. The Family Tree maker will allow the user to enter their name, then…","frontmatter":{"description":"If you use React, you probably know about the React Hooks RFC that was introduced at ReactConf. It’s an exciting proposal because it promises to bring the power of class components to function components. It also a convention for creating React extensions that feel like first-class APIs in the React ecosystem. React Hooks API and Microstates bring expressiveness of React function components to a whole new level. ","date":"November 06, 2018","img":{"childImageSharp":{"fixed":{"src":"/static/7e5c20fcd943e76e94d77a4566eaa74d/4fe8c/2018-06-14-what-is-new-in-wcag-2-1_wcag-2-1-image.jpg"}}}}}}},{"node":{"id":"84f0ec8c-88e1-5a23-9815-7a2fff97e52b","slug":"/blog/2018-09-18-four-reasons-to-use-append-instead-of-object-assign-and-object-spread/","title":"Four reasons to use append() instead of Object.assign() and Object spread","authorNodes":[{"name":"Charles Lowell","slug":"/people/charles-lowell/"}],"markdown":{"excerpt":"Warning! This post was manufactured in a facility that also processes Monoids and may contain traces of functional programming. I'd like to share with you what is easily one of my top 5 favorite…","frontmatter":{"description":"Object.assign is just a special case of a universal concept in functional programming. By opting to use a universal function to back this universal concept, you can inherit all kinds of awesome for free.","date":"September 18, 2018","img":{"childImageSharp":{"fixed":{"src":"/static/ffe8863c073fd4b2e4ba00507530a5db/2a4de/2018-09-18-four-reasons-to-use-append-instead-of-object-assign-and-object-spread_merge-sign.png"}}}}}}},{"node":{"id":"e678036d-50c0-5ba0-b78d-555bac45c861","slug":"/blog/2018-07-03-functional-rephrasing-using-an-async-function-functor/","title":"Functional Rephrasing Using an Async Function Functor","authorNodes":[{"name":"Charles Lowell","slug":"/people/charles-lowell/"}],"markdown":{"excerpt":"One of my favorite things about the the math framework is that it\nhelps you look for (and also find) patterns of composability around\nyou in your programming world. At the time I wrote: As you start…","frontmatter":{"description":"Once you know that they're there, Functors pop up in all kinds of surprising places. Here we take a simple exploration of how the JavaScript async function construct is actually a Functor and how we can use that for great good.","date":"July 03, 2018","img":{"childImageSharp":{"fixed":{"src":"/static/5c83db51eae5499a9c56557f45581b9a/4fe8c/2018-07-03-functional-rephrasing-using-an-async-function-functor_starry-night.jpg"}}}}}}},{"node":{"id":"2603d5dc-dd4e-5028-892a-c9fc235462f2","slug":"/blog/2018-02-19-math-is-just-another-framework/","title":"Math is Just Another Framework","authorNodes":[{"name":"Charles Lowell","slug":"/people/charles-lowell/"}],"markdown":{"excerpt":"What a bunch of complicated gobbledygook. I mean first off, you have\nto have like, a PhD in mathematics just in order to get started with\ncrap like that, and then if you do decide to put in the work…","frontmatter":{"description":"Functional programming with typeclasses rooted in category theory may seem like some esoteric practice reserved for the truly pointy-haired. But guess what? You do it every day.","date":"February 19, 2018","img":{"childImageSharp":{"fixed":{"src":"/static/c144534e4c0964a999b59b2abc61db23/4fe8c/2018-02-19-math-is-just-another-framework_graphs.jpg"}}}}}}},{"node":{"id":"9bc500f9-d2ce-5648-946e-1ef27bdbac02","slug":"/blog/2017-06-01-one-helpful-way-to-think-about-javascript-decorators/","title":"One Helpful Way to Think About JavaScript Decorators","authorNodes":[{"name":"Charles Lowell","slug":"/people/charles-lowell/"}],"markdown":{"excerpt":"Why Decorators? It is an important question; one many tutorials rush past in their hurry to talk about the what and how. Of course, after being exposed to enough doses of what and how, you can usually…","frontmatter":{"description":"JavaScript decorators are coming, but what are the class of problems which they're useful for? In this brief tour of decorators, we'll try to answer that question by contrasting them with comparable technology from other languages.","date":"June 01, 2017","img":{"childImageSharp":{"fixed":{"src":"/static/5bdaef2c99b94bac1ebfbfce229c49b9/4fe8c/2017-06-01-one-helpful-way-to-think-about-javascript-decorators_russian-dolls.jpg"}}}}}}},{"node":{"id":"4bab4526-2a49-59aa-9f87-243861a7594c","slug":"/blog/2016-01-22-functional-templating-in-ember/","title":"Functional Templating in Ember","authorNodes":[{"name":"Charles Lowell","slug":"/people/charles-lowell/"}],"markdown":{"excerpt":"TL;DR --  Avoid using \"magically bound\" internal component properties in your templates at all costs. Instead be explicit about only passing values around through actions and block params. This will…","frontmatter":{"description":"See how easy it is to build a fully formed image upload widget complete with preview and progress bars when you apply functional programming techniques to your handlebars templates","date":"January 22, 2016","img":{"childImageSharp":{"fixed":{"src":"/static/dd57d22b676f75ef5a4e78895f742818/fad57/2016-01-22-functional-templating-in-ember_lisp-all.png"}}}}}}},{"node":{"id":"552e3d37-78b7-52ad-8e8e-06065597e7b4","slug":"/blog/2014-05-16-programming-in-the-wild-west/","title":"Programming in the Wild West","authorNodes":[{"name":"Brandon Hays","slug":"/people/brandon-hays/"}],"markdown":{"excerpt":"Much like revisiting a neighborhood from my youth, when I reflect on my scant few years in software I'm astonished at how much has changed. This might have also struck you at some point. Perhaps you…","frontmatter":{"description":null,"date":"May 16, 2014","img":{"childImageSharp":{"fixed":{"src":"/static/2a1a0a3c66cbac1302754ed793ab03db/473cd/2014-05-16-programming-in-the-wild-west-1.png"}}}}}}},{"node":{"id":"03bafe22-c7a0-5b40-ab44-6f7a0bcaf9d4","slug":"/blog/2012-12-04-therubyracer-rides-again/","title":"The Ruby Racer Rides Again","authorNodes":[{"name":"Charles Lowell","slug":"/people/charles-lowell/"}],"markdown":{"excerpt":"It began during RailsConf. My fingers were itching to code, so between sessions I started\ntinkering with some of the more fanciful enhancements to\nThe Ruby Racer I'd been contemplating as well as…","frontmatter":{"description":null,"date":"December 04, 2012","img":null}}}},{"node":{"id":"91f0768d-fb10-5ba7-9875-65dd22bea695","slug":"/blog/2011-06-13-therubyracer-isnt-threadsafe-yet/","title":"The Ruby Racer isn't threadsafe... yet.","authorNodes":[{"name":"Charles Lowell","slug":"/people/charles-lowell/"}],"markdown":{"excerpt":"In which I explain problems unique to running The Ruby Racer in a multithreaded environment,\nwhich users are affected by these problems, and what is to be done for them. UPDATE: This issue has been…","frontmatter":{"description":null,"date":"June 13, 2011","img":null}}}},{"node":{"id":"581a91cf-5326-546f-b793-dbd69b6f6d52","slug":"/blog/2010-10-25-accessing-javascript-objects-from-ruby/","title":"Accessing Javascript Objects from Ruby","authorNodes":[{"name":"Charles Lowell","slug":"/people/charles-lowell/"}],"markdown":{"excerpt":"Awhile back, I wrote a post on how to access Ruby objects from inside your JavaScript enviroment when using The Ruby Racer. It showed just some of the many ways that you can access Ruby state and call…","frontmatter":{"description":null,"date":"October 25, 2010","img":null}}}},{"node":{"id":"07c91fef-747d-5497-8d67-5cae6d9bf139","slug":"/blog/2006-08-04-taming-the-rhino-making-mozillas-javascript-command-line-a-little-less-brutish/","title":"Taming the Rhino","authorNodes":[{"name":"Charles Lowell","slug":"/people/charles-lowell/"}],"markdown":{"excerpt":"As you can see, javaString is a reference to an actual  object, and has access to all the methods of that class, many of which are not contained in the native javascript . Embedding goes two ways. Not…","frontmatter":{"description":null,"date":"August 04, 2006","img":null}}}},{"node":{"id":"7ac3226f-22cf-58e5-96d1-4ed7b3f38ffa","slug":"/blog/2006-07-15-live-stylesheets/","title":"Live Stylesheets","authorNodes":[{"name":"Charles Lowell","slug":"/people/charles-lowell/"}],"markdown":{"excerpt":"var cssText = $('cssText').value\nif (style.styleSheet) { //IE only\nstyle.styleSheet.cssText = cssText\n} else {\n//for some reason this fails in IE.\nvar text = document.createTextNode(cssText)\nstyle…","frontmatter":{"description":null,"date":"July 15, 2006","img":null}}}},{"node":{"id":"ef4135b9-045f-5606-aab0-1a1e3aa2b32e","slug":"/blog/2006-07-08-learning-javascript-from-the-command-line/","title":"Learning Javascript from the Command Line","authorNodes":[{"name":"Charles Lowell","slug":"/people/charles-lowell/"}],"markdown":{"excerpt":"","frontmatter":{"description":null,"date":"July 08, 2006","img":null}}}}]}},"pageContext":{"tag":"javascript"}},
    "staticQueryHashes": ["1241260443"]}