Are you over 18 and want to see adult content?
More Annotations
![A complete backup of hotflushrecordings.com](https://www.archivebay.com/archive2/92d87fc3-e6c3-4843-97ef-e7e81c8c6b12.png)
A complete backup of hotflushrecordings.com
Are you over 18 and want to see adult content?
![A complete backup of suburbanautogroup.com](https://www.archivebay.com/archive2/8f04c511-dc7e-4749-9c9c-bb30430d2082.png)
A complete backup of suburbanautogroup.com
Are you over 18 and want to see adult content?
![A complete backup of kitchenistic.com](https://www.archivebay.com/archive2/21d9f291-544b-4140-abfc-cdf3093e187e.png)
A complete backup of kitchenistic.com
Are you over 18 and want to see adult content?
![A complete backup of mercadolibre.com.ve](https://www.archivebay.com/archive2/7d309c75-d16b-4ed1-b8e5-0475a6398fed.png)
A complete backup of mercadolibre.com.ve
Are you over 18 and want to see adult content?
![A complete backup of webtemsilcisi.com](https://www.archivebay.com/archive2/6af10e7b-a943-41ba-b358-4ac1d8c81431.png)
A complete backup of webtemsilcisi.com
Are you over 18 and want to see adult content?
![A complete backup of minutesmatter-mcadd.org](https://www.archivebay.com/archive2/9050ce53-42ea-4014-9219-a92e3a918ae8.png)
A complete backup of minutesmatter-mcadd.org
Are you over 18 and want to see adult content?
Favourite Annotations
![A complete backup of coloradoevents.org](https://www.archivebay.com/archive2/96d8d948-f06d-44a1-b827-be05981a75c7.png)
A complete backup of coloradoevents.org
Are you over 18 and want to see adult content?
![A complete backup of eshop-stickers.com](https://www.archivebay.com/archive2/39791095-aa1a-4ef4-ba2c-714fbcfeae9a.png)
A complete backup of eshop-stickers.com
Are you over 18 and want to see adult content?
![A complete backup of ausbatteries.com](https://www.archivebay.com/archive2/d5adcef7-a7cd-43d0-be33-83cc93e772b8.png)
A complete backup of ausbatteries.com
Are you over 18 and want to see adult content?
![A complete backup of dantuckerautos.com](https://www.archivebay.com/archive2/c9d640fb-1810-4c52-ae08-e5675f9fa7b1.png)
A complete backup of dantuckerautos.com
Are you over 18 and want to see adult content?
![A complete backup of conroysflowersdowney.com](https://www.archivebay.com/archive2/4c780c53-f680-41fd-92ba-1d7a4592ec9c.png)
A complete backup of conroysflowersdowney.com
Are you over 18 and want to see adult content?
![A complete backup of dragnetscreening.ng](https://www.archivebay.com/archive2/dd6fead7-d367-4a77-9706-dde4e13b0b9a.png)
A complete backup of dragnetscreening.ng
Are you over 18 and want to see adult content?
![A complete backup of top10brainpills.com](https://www.archivebay.com/archive2/a02df94e-ffb7-4d4b-aecc-ce05177d10b1.png)
A complete backup of top10brainpills.com
Are you over 18 and want to see adult content?
Text
CHRISTIAN JOHANSEN
Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on. This approach introduces some friction, and in this post I'll share some pointers for improved editing and git workflow. September 17 2020 Git BUILDING STATIC SITES IN CLOJURE WITH STASIS Building static sites in Clojure with Stasis. Stasis is a static site toolkit for Clojure. Unlike pretty much every other static site generator, though, it is not an "opinionated framework", or packed full with flavor-of-the-month templating languages and whatnot. It is just a few functions that helps with creating websites that can behosted
PROCESSING DATA WITH CLOJURE AND GO ¶Processing data with Clojure and Go. I recently wrote about a better playlist shuffle with Go, where I presented my ideal implementation of a "shuffle" that isn't very random at all.In that post I outlined the algorithm and showed off my implementation in Go (one of my earliest uses of said language). PROPER URLS FOR YOUR SPA ON S3 BEHIND CLOUDFRONT ¶Other uses for Edge Lambdas. Edge Lambdas can be used as a light backend for mostly static sites hosted on S3/Cloudfront. In addition to URL rewrites, I've used the viewer response hook to add custom headers (CSP, HSTS, etc).The viewer request hook can also be used toadd authentication.
EDITING FOR CLEANER MERGES ¶Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on. SECURING HAPROXY SITES WITH LET'S ENCRYPT SSL CERTIFICATES ¶Securing HAProxy sites with Let's Encrypt SSL Certificates. In this article: Provisioning free SSL/TLS certificates from Let's Encrypt; Configuring HAProxy to serve multiple SSL domains CLOJURE IN PRODUCTION WITH TOOLS.DEPS Clojure in Production with tools.deps. In this post I'll show you how my project is packaging and running Clojure apps in production, using tools.deps as a build tool. Credit where credit's due: my awesome colleague Alf Kristian Støyle did the heavy lifting on this setup. Use tools.deps to manage dependencies and build class paths. ¶ SETTING UP AN API GATEWAY PROXY RESOURCE USING ¶Setting up an Api Gateway Proxy Resource using Cloudformation. I just spent the better part of a day trying to figure out how to do something as seemingly simple as configuring an AWS Api Gateway catch-all endpoint to proxy to another HTTP service. GIT SUBTREE FOR MULTIPLE DIRECTORIES ¶Git Subtree for Multiple Directories. Your git repository has grown over time, and it's time for parts of it to become its own separate repo. Depending on how much you want to extract, you have two options: git filter-branch or git subtree split. Published May 3 2018 OPTIMIZED OPTIMUS ASSET PATHS FROM CLOJURESCRIPT ¶Optimized Optimus Asset Paths from ClojureScript. If you're building a web application with Clojure, chances are you either are or should be using Optimus to optimize and serve your assets. One of the optimizations Optimus can employ is to create "cache buster" URLs, which means that /images/logo.png in development might become /images/0951812be272/logo.png in production.CHRISTIAN JOHANSEN
Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on. This approach introduces some friction, and in this post I'll share some pointers for improved editing and git workflow. September 17 2020 Git BUILDING STATIC SITES IN CLOJURE WITH STASIS Building static sites in Clojure with Stasis. Stasis is a static site toolkit for Clojure. Unlike pretty much every other static site generator, though, it is not an "opinionated framework", or packed full with flavor-of-the-month templating languages and whatnot. It is just a few functions that helps with creating websites that can behosted
PROCESSING DATA WITH CLOJURE AND GO ¶Processing data with Clojure and Go. I recently wrote about a better playlist shuffle with Go, where I presented my ideal implementation of a "shuffle" that isn't very random at all.In that post I outlined the algorithm and showed off my implementation in Go (one of my earliest uses of said language). PROPER URLS FOR YOUR SPA ON S3 BEHIND CLOUDFRONT ¶Other uses for Edge Lambdas. Edge Lambdas can be used as a light backend for mostly static sites hosted on S3/Cloudfront. In addition to URL rewrites, I've used the viewer response hook to add custom headers (CSP, HSTS, etc).The viewer request hook can also be used toadd authentication.
EDITING FOR CLEANER MERGES ¶Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on. SECURING HAPROXY SITES WITH LET'S ENCRYPT SSL CERTIFICATES ¶Securing HAProxy sites with Let's Encrypt SSL Certificates. In this article: Provisioning free SSL/TLS certificates from Let's Encrypt; Configuring HAProxy to serve multiple SSL domains CLOJURE IN PRODUCTION WITH TOOLS.DEPS Clojure in Production with tools.deps. In this post I'll show you how my project is packaging and running Clojure apps in production, using tools.deps as a build tool. Credit where credit's due: my awesome colleague Alf Kristian Støyle did the heavy lifting on this setup. Use tools.deps to manage dependencies and build class paths. ¶ SETTING UP AN API GATEWAY PROXY RESOURCE USING ¶Setting up an Api Gateway Proxy Resource using Cloudformation. I just spent the better part of a day trying to figure out how to do something as seemingly simple as configuring an AWS Api Gateway catch-all endpoint to proxy to another HTTP service. GIT SUBTREE FOR MULTIPLE DIRECTORIES ¶Git Subtree for Multiple Directories. Your git repository has grown over time, and it's time for parts of it to become its own separate repo. Depending on how much you want to extract, you have two options: git filter-branch or git subtree split. Published May 3 2018 OPTIMIZED OPTIMUS ASSET PATHS FROM CLOJURESCRIPT ¶Optimized Optimus Asset Paths from ClojureScript. If you're building a web application with Clojure, chances are you either are or should be using Optimus to optimize and serve your assets. One of the optimizations Optimus can employ is to create "cache buster" URLs, which means that /images/logo.png in development might become /images/0951812be272/logo.png in production.GIT - CJOHANSEN.NO
Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on. CLOJURE - CJOHANSEN.NO Clojure in Production with tools.deps. A lean and fast setup for packaging Clojure applications for production using tools.deps. April 14 2019 Clojure, tools.depsCLOJURE TO DIE FOR
¶Clojure to die for. There are many reasons to love Clojure; homoiconicity, persistent data structures, macros, and the list goes on.In this post, I want to focus on a few "details" in the language that really puts the icing on the cake, and clears up many commonsituations for me.
A UNIFIED SPECIFICATION ¶A Unified Specification. Your frontend application state lives in Datascript (it should anyway), and you use spec (again, you should) to enforce constraints on your data. Datascript needs a schema that asserts some facts about your data, while specs cover the rest. If you're consuming an API not specifically tailored for your app you also need some code to map API data to the Datascript schema.¶ GO - CJOHANSEN.NO
A Better Playlist Shuffle with Go. Shuffling music playlists with less random and more cleverness, using Go. April 19 2019 Go, Spotify CLOJURE IN PRODUCTION WITH TOOLS.DEPS Clojure in Production with tools.deps. In this post I'll show you how my project is packaging and running Clojure apps in production, using tools.deps as a build tool. Credit where credit's due: my awesome colleague Alf Kristian Støyle did the heavy lifting on this setup. Use tools.deps to manage dependencies and build class paths. ELISP - CJOHANSEN.NO An introduction to Emacs Lisp. A long, thorough introduction to programming in Lisp in general, and Emacs Lisp in particular. July 12012 Elisp, Emacs
AN INTRODUCTION TO EMACS LISP An introduction to Emacs Lisp. As a long-time passionate Emacs user, I've been curious about Lisp in general and Emacs Lisp in particular for quite some time. Until recently I had not written any Lisp apart from my .emacs.d setup, despite having read both An introduction to programming in Emacs Lisp and The Little Schemer last summer. SPOTIFY - CJOHANSEN.NO A Better Playlist Shuffle with Go. Shuffling music playlists with less random and more cleverness, using Go. April 19 2019 Go, Spotify QUERYING ACROSS DATOMIC DATABASES ¶Querying across Datomic databases. Among its many, many unique and interesting features, Datomic supports datalog queries across multiple databases. I recently had a chance to actually use this feature, and thought I'd share an actual example of it.CHRISTIAN JOHANSEN
Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on. This approach introduces some friction, and in this post I'll share some pointers for improved editing and git workflow. September 17 2020 Git PROCESSING DATA WITH CLOJURE AND GO ¶Processing data with Clojure and Go. I recently wrote about a better playlist shuffle with Go, where I presented my ideal implementation of a "shuffle" that isn't very random at all.In that post I outlined the algorithm and showed off my implementation in Go (one of my earliest uses of said language). BUILDING STATIC SITES IN CLOJURE WITH STASIS Building static sites in Clojure with Stasis. Stasis is a static site toolkit for Clojure. Unlike pretty much every other static site generator, though, it is not an "opinionated framework", or packed full with flavor-of-the-month templating languages and whatnot. It is just a few functions that helps with creating websites that can behosted
CLOJURE - CJOHANSEN.NO Clojure in Production with tools.deps. A lean and fast setup for packaging Clojure applications for production using tools.deps. April 14 2019 Clojure, tools.deps A UNIFIED SPECIFICATION ¶A Unified Specification. Your frontend application state lives in Datascript (it should anyway), and you use spec (again, you should) to enforce constraints on your data. Datascript needs a schema that asserts some facts about your data, while specs cover the rest. If you're consuming an API not specifically tailored for your app you also need some code to map API data to the Datascript schema. CLOJURE IN PRODUCTION WITH TOOLS.DEPS Clojure in Production with tools.deps. In this post I'll show you how my project is packaging and running Clojure apps in production, using tools.deps as a build tool. Credit where credit's due: my awesome colleague Alf Kristian Støyle did the heavy lifting on this setup. Use tools.deps to manage dependencies and build class paths. GIT SUBTREE FOR MULTIPLE DIRECTORIES ¶Git Subtree for Multiple Directories. Your git repository has grown over time, and it's time for parts of it to become its own separate repo. Depending on how much you want to extract, you have two options: git filter-branch or git subtree split. Published May 3 2018 SECURING HAPROXY SITES WITH LET'S ENCRYPT SSL CERTIFICATES ¶Securing HAProxy sites with Let's Encrypt SSL Certificates. In this article: Provisioning free SSL/TLS certificates from Let's Encrypt; Configuring HAProxy to serve multiple SSL domains ¶ SETTING UP AN API GATEWAY PROXY RESOURCE USING ¶Setting up an Api Gateway Proxy Resource using Cloudformation. I just spent the better part of a day trying to figure out how to do something as seemingly simple as configuring an AWS Api Gateway catch-all endpoint to proxy to another HTTP service. OPTIMIZED OPTIMUS ASSET PATHS FROM CLOJURESCRIPT ¶Optimized Optimus Asset Paths from ClojureScript. If you're building a web application with Clojure, chances are you either are or should be using Optimus to optimize and serve your assets. One of the optimizations Optimus can employ is to create "cache buster" URLs, which means that /images/logo.png in development might become /images/0951812be272/logo.png in production.CHRISTIAN JOHANSEN
Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on. This approach introduces some friction, and in this post I'll share some pointers for improved editing and git workflow. September 17 2020 Git PROCESSING DATA WITH CLOJURE AND GO ¶Processing data with Clojure and Go. I recently wrote about a better playlist shuffle with Go, where I presented my ideal implementation of a "shuffle" that isn't very random at all.In that post I outlined the algorithm and showed off my implementation in Go (one of my earliest uses of said language). BUILDING STATIC SITES IN CLOJURE WITH STASIS Building static sites in Clojure with Stasis. Stasis is a static site toolkit for Clojure. Unlike pretty much every other static site generator, though, it is not an "opinionated framework", or packed full with flavor-of-the-month templating languages and whatnot. It is just a few functions that helps with creating websites that can behosted
CLOJURE - CJOHANSEN.NO Clojure in Production with tools.deps. A lean and fast setup for packaging Clojure applications for production using tools.deps. April 14 2019 Clojure, tools.deps A UNIFIED SPECIFICATION ¶A Unified Specification. Your frontend application state lives in Datascript (it should anyway), and you use spec (again, you should) to enforce constraints on your data. Datascript needs a schema that asserts some facts about your data, while specs cover the rest. If you're consuming an API not specifically tailored for your app you also need some code to map API data to the Datascript schema. CLOJURE IN PRODUCTION WITH TOOLS.DEPS Clojure in Production with tools.deps. In this post I'll show you how my project is packaging and running Clojure apps in production, using tools.deps as a build tool. Credit where credit's due: my awesome colleague Alf Kristian Støyle did the heavy lifting on this setup. Use tools.deps to manage dependencies and build class paths. GIT SUBTREE FOR MULTIPLE DIRECTORIES ¶Git Subtree for Multiple Directories. Your git repository has grown over time, and it's time for parts of it to become its own separate repo. Depending on how much you want to extract, you have two options: git filter-branch or git subtree split. Published May 3 2018 SECURING HAPROXY SITES WITH LET'S ENCRYPT SSL CERTIFICATES ¶Securing HAProxy sites with Let's Encrypt SSL Certificates. In this article: Provisioning free SSL/TLS certificates from Let's Encrypt; Configuring HAProxy to serve multiple SSL domains ¶ SETTING UP AN API GATEWAY PROXY RESOURCE USING ¶Setting up an Api Gateway Proxy Resource using Cloudformation. I just spent the better part of a day trying to figure out how to do something as seemingly simple as configuring an AWS Api Gateway catch-all endpoint to proxy to another HTTP service. OPTIMIZED OPTIMUS ASSET PATHS FROM CLOJURESCRIPT ¶Optimized Optimus Asset Paths from ClojureScript. If you're building a web application with Clojure, chances are you either are or should be using Optimus to optimize and serve your assets. One of the optimizations Optimus can employ is to create "cache buster" URLs, which means that /images/logo.png in development might become /images/0951812be272/logo.png in production. CLOJURE - CJOHANSEN.NO Partitioning data. Functions like map, filter, and reduce are useful tools that many developers keep in their toolbox.partition may not be as commonly known, but in this post I'll show you why it should be.. December 21 2020 Clojure, Functional programmingGIT - CJOHANSEN.NO
Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on.CLOJURE TO DIE FOR
¶Clojure to die for. There are many reasons to love Clojure; homoiconicity, persistent data structures, macros, and the list goes on.In this post, I want to focus on a few "details" in the language that really puts the icing on the cake, and clears up many commonsituations for me.
DATASCRIPT
A Unified Specification. An approach to describing the structure of data in ClojureScript applications in one place, and using it to power Datascript schemas, specs, and TOOLS.DEPS, FIGWHEEL-MAIN, DEVCARDS, AND EMACS ¶tools.deps, figwheel-main, Devcards, and Emacs. Thanks to tools.deps, setting up a ClojureScript project in 2019 can be simpler (in terms of moving pieces) than it used to be, but there are still pitfalls.. All these tools have excellent reference docs, but sometimes I miss cross-cutting tutorial-style docs on how to piece everything together.CLOJURE.SPEC
A Unified Specification. An approach to describing the structure of data in ClojureScript applications in one place, and using it to power Datascript schemas, specs, and ELISP - CJOHANSEN.NO An introduction to Emacs Lisp. A long, thorough introduction to programming in Lisp in general, and Emacs Lisp in particular. July 12012 Elisp, Emacs
YAHTZEE - CJOHANSEN.NO Yahtzee - cjohansen.no SPOTIFY - CJOHANSEN.NO A Better Playlist Shuffle with Go. Shuffling music playlists with less random and more cleverness, using Go. April 19 2019 Go, Spotify QUERYING ACROSS DATOMIC DATABASES ¶Querying across Datomic databases. Among its many, many unique and interesting features, Datomic supports datalog queries across multiple databases. I recently had a chance to actually use this feature, and thought I'd share an actual example of it.CHRISTIAN JOHANSEN
Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on. This approach introduces some friction, and in this post I'll share some pointers for improved editing and git workflow. September 17 2020 Git PROCESSING DATA WITH CLOJURE AND GO ¶Processing data with Clojure and Go. I recently wrote about a better playlist shuffle with Go, where I presented my ideal implementation of a "shuffle" that isn't very random at all.In that post I outlined the algorithm and showed off my implementation in Go (one of my earliest uses of said language). BUILDING STATIC SITES IN CLOJURE WITH STASIS Building static sites in Clojure with Stasis. Stasis is a static site toolkit for Clojure. Unlike pretty much every other static site generator, though, it is not an "opinionated framework", or packed full with flavor-of-the-month templating languages and whatnot. It is just a few functions that helps with creating websites that can behosted
CLOJURE - CJOHANSEN.NO Clojure in Production with tools.deps. A lean and fast setup for packaging Clojure applications for production using tools.deps. April 14 2019 Clojure, tools.deps A UNIFIED SPECIFICATION ¶A Unified Specification. Your frontend application state lives in Datascript (it should anyway), and you use spec (again, you should) to enforce constraints on your data. Datascript needs a schema that asserts some facts about your data, while specs cover the rest. If you're consuming an API not specifically tailored for your app you also need some code to map API data to the Datascript schema. CLOJURE IN PRODUCTION WITH TOOLS.DEPS Clojure in Production with tools.deps. In this post I'll show you how my project is packaging and running Clojure apps in production, using tools.deps as a build tool. Credit where credit's due: my awesome colleague Alf Kristian Støyle did the heavy lifting on this setup. Use tools.deps to manage dependencies and build class paths. GIT SUBTREE FOR MULTIPLE DIRECTORIES ¶Git Subtree for Multiple Directories. Your git repository has grown over time, and it's time for parts of it to become its own separate repo. Depending on how much you want to extract, you have two options: git filter-branch or git subtree split. Published May 3 2018 SECURING HAPROXY SITES WITH LET'S ENCRYPT SSL CERTIFICATES ¶Securing HAProxy sites with Let's Encrypt SSL Certificates. In this article: Provisioning free SSL/TLS certificates from Let's Encrypt; Configuring HAProxy to serve multiple SSL domains ¶ SETTING UP AN API GATEWAY PROXY RESOURCE USING ¶Setting up an Api Gateway Proxy Resource using Cloudformation. I just spent the better part of a day trying to figure out how to do something as seemingly simple as configuring an AWS Api Gateway catch-all endpoint to proxy to another HTTP service. OPTIMIZED OPTIMUS ASSET PATHS FROM CLOJURESCRIPT ¶Optimized Optimus Asset Paths from ClojureScript. If you're building a web application with Clojure, chances are you either are or should be using Optimus to optimize and serve your assets. One of the optimizations Optimus can employ is to create "cache buster" URLs, which means that /images/logo.png in development might become /images/0951812be272/logo.png in production.CHRISTIAN JOHANSEN
Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on. This approach introduces some friction, and in this post I'll share some pointers for improved editing and git workflow. September 17 2020 Git PROCESSING DATA WITH CLOJURE AND GO ¶Processing data with Clojure and Go. I recently wrote about a better playlist shuffle with Go, where I presented my ideal implementation of a "shuffle" that isn't very random at all.In that post I outlined the algorithm and showed off my implementation in Go (one of my earliest uses of said language). BUILDING STATIC SITES IN CLOJURE WITH STASIS Building static sites in Clojure with Stasis. Stasis is a static site toolkit for Clojure. Unlike pretty much every other static site generator, though, it is not an "opinionated framework", or packed full with flavor-of-the-month templating languages and whatnot. It is just a few functions that helps with creating websites that can behosted
CLOJURE - CJOHANSEN.NO Clojure in Production with tools.deps. A lean and fast setup for packaging Clojure applications for production using tools.deps. April 14 2019 Clojure, tools.deps A UNIFIED SPECIFICATION ¶A Unified Specification. Your frontend application state lives in Datascript (it should anyway), and you use spec (again, you should) to enforce constraints on your data. Datascript needs a schema that asserts some facts about your data, while specs cover the rest. If you're consuming an API not specifically tailored for your app you also need some code to map API data to the Datascript schema. CLOJURE IN PRODUCTION WITH TOOLS.DEPS Clojure in Production with tools.deps. In this post I'll show you how my project is packaging and running Clojure apps in production, using tools.deps as a build tool. Credit where credit's due: my awesome colleague Alf Kristian Støyle did the heavy lifting on this setup. Use tools.deps to manage dependencies and build class paths. GIT SUBTREE FOR MULTIPLE DIRECTORIES ¶Git Subtree for Multiple Directories. Your git repository has grown over time, and it's time for parts of it to become its own separate repo. Depending on how much you want to extract, you have two options: git filter-branch or git subtree split. Published May 3 2018 SECURING HAPROXY SITES WITH LET'S ENCRYPT SSL CERTIFICATES ¶Securing HAProxy sites with Let's Encrypt SSL Certificates. In this article: Provisioning free SSL/TLS certificates from Let's Encrypt; Configuring HAProxy to serve multiple SSL domains ¶ SETTING UP AN API GATEWAY PROXY RESOURCE USING ¶Setting up an Api Gateway Proxy Resource using Cloudformation. I just spent the better part of a day trying to figure out how to do something as seemingly simple as configuring an AWS Api Gateway catch-all endpoint to proxy to another HTTP service. OPTIMIZED OPTIMUS ASSET PATHS FROM CLOJURESCRIPT ¶Optimized Optimus Asset Paths from ClojureScript. If you're building a web application with Clojure, chances are you either are or should be using Optimus to optimize and serve your assets. One of the optimizations Optimus can employ is to create "cache buster" URLs, which means that /images/logo.png in development might become /images/0951812be272/logo.png in production. CLOJURE - CJOHANSEN.NO Partitioning data. Functions like map, filter, and reduce are useful tools that many developers keep in their toolbox.partition may not be as commonly known, but in this post I'll show you why it should be.. December 21 2020 Clojure, Functional programmingGIT - CJOHANSEN.NO
Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on.CLOJURE TO DIE FOR
¶Clojure to die for. There are many reasons to love Clojure; homoiconicity, persistent data structures, macros, and the list goes on.In this post, I want to focus on a few "details" in the language that really puts the icing on the cake, and clears up many commonsituations for me.
DATASCRIPT
A Unified Specification. An approach to describing the structure of data in ClojureScript applications in one place, and using it to power Datascript schemas, specs, and TOOLS.DEPS, FIGWHEEL-MAIN, DEVCARDS, AND EMACS ¶tools.deps, figwheel-main, Devcards, and Emacs. Thanks to tools.deps, setting up a ClojureScript project in 2019 can be simpler (in terms of moving pieces) than it used to be, but there are still pitfalls.. All these tools have excellent reference docs, but sometimes I miss cross-cutting tutorial-style docs on how to piece everything together.CLOJURE.SPEC
A Unified Specification. An approach to describing the structure of data in ClojureScript applications in one place, and using it to power Datascript schemas, specs, and ELISP - CJOHANSEN.NO An introduction to Emacs Lisp. A long, thorough introduction to programming in Lisp in general, and Emacs Lisp in particular. July 12012 Elisp, Emacs
YAHTZEE - CJOHANSEN.NO Yahtzee - cjohansen.no SPOTIFY - CJOHANSEN.NO A Better Playlist Shuffle with Go. Shuffling music playlists with less random and more cleverness, using Go. April 19 2019 Go, Spotify QUERYING ACROSS DATOMIC DATABASES ¶Querying across Datomic databases. Among its many, many unique and interesting features, Datomic supports datalog queries across multiple databases. I recently had a chance to actually use this feature, and thought I'd share an actual example of it.CHRISTIAN JOHANSEN
Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on. This approach introduces some friction, and in this post I'll share some pointers for improved editing and git workflow. September 17 2020 Git PROCESSING DATA WITH CLOJURE AND GO ¶Processing data with Clojure and Go. I recently wrote about a better playlist shuffle with Go, where I presented my ideal implementation of a "shuffle" that isn't very random at all.In that post I outlined the algorithm and showed off my implementation in Go (one of my earliest uses of said language). BUILDING STATIC SITES IN CLOJURE WITH STASIS Building static sites in Clojure with Stasis. Stasis is a static site toolkit for Clojure. Unlike pretty much every other static site generator, though, it is not an "opinionated framework", or packed full with flavor-of-the-month templating languages and whatnot. It is just a few functions that helps with creating websites that can behosted
A UNIFIED SPECIFICATION ¶A Unified Specification. Your frontend application state lives in Datascript (it should anyway), and you use spec (again, you should) to enforce constraints on your data. Datascript needs a schema that asserts some facts about your data, while specs cover the rest. If you're consuming an API not specifically tailored for your app you also need some code to map API data to the Datascript schema. CLOJURE IN PRODUCTION WITH TOOLS.DEPS Clojure in Production with tools.deps. In this post I'll show you how my project is packaging and running Clojure apps in production, using tools.deps as a build tool. Credit where credit's due: my awesome colleague Alf Kristian Støyle did the heavy lifting on this setup. Use tools.deps to manage dependencies and build class paths. GIT SUBTREE FOR MULTIPLE DIRECTORIES ¶Git Subtree for Multiple Directories. Your git repository has grown over time, and it's time for parts of it to become its own separate repo. Depending on how much you want to extract, you have two options: git filter-branch or git subtree split. Published May 3 2018 SECURING HAPROXY SITES WITH LET'S ENCRYPT SSL CERTIFICATES ¶Securing HAProxy sites with Let's Encrypt SSL Certificates. In this article: Provisioning free SSL/TLS certificates from Let's Encrypt; Configuring HAProxy to serve multiple SSL domains A BETTER PLAYLIST SHUFFLE WITH GO ¶A Better Playlist Shuffle with Go. On the rare occasions that I hit "shuffle" in music players like Spotify, I don't really want completerandomization.
¶ SETTING UP AN API GATEWAY PROXY RESOURCE USING ¶Setting up an Api Gateway Proxy Resource using Cloudformation. I just spent the better part of a day trying to figure out how to do something as seemingly simple as configuring an AWS Api Gateway catch-all endpoint to proxy to another HTTP service. WEBSLIDES SYNTAX HIGHLIGHTING WITH PRISM The only thing missing out of the box was easy syntax highlighting of code snippets. Luckily, adding that with Prism.js is a breeze. Download and unpack the Webslides bundle. Then go to Prism's download page to customize your build - choosing the theme, the languages you need support for, and optionally any plugins.CHRISTIAN JOHANSEN
Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on. This approach introduces some friction, and in this post I'll share some pointers for improved editing and git workflow. September 17 2020 Git PROCESSING DATA WITH CLOJURE AND GO ¶Processing data with Clojure and Go. I recently wrote about a better playlist shuffle with Go, where I presented my ideal implementation of a "shuffle" that isn't very random at all.In that post I outlined the algorithm and showed off my implementation in Go (one of my earliest uses of said language). BUILDING STATIC SITES IN CLOJURE WITH STASIS Building static sites in Clojure with Stasis. Stasis is a static site toolkit for Clojure. Unlike pretty much every other static site generator, though, it is not an "opinionated framework", or packed full with flavor-of-the-month templating languages and whatnot. It is just a few functions that helps with creating websites that can behosted
A UNIFIED SPECIFICATION ¶A Unified Specification. Your frontend application state lives in Datascript (it should anyway), and you use spec (again, you should) to enforce constraints on your data. Datascript needs a schema that asserts some facts about your data, while specs cover the rest. If you're consuming an API not specifically tailored for your app you also need some code to map API data to the Datascript schema. CLOJURE IN PRODUCTION WITH TOOLS.DEPS Clojure in Production with tools.deps. In this post I'll show you how my project is packaging and running Clojure apps in production, using tools.deps as a build tool. Credit where credit's due: my awesome colleague Alf Kristian Støyle did the heavy lifting on this setup. Use tools.deps to manage dependencies and build class paths. GIT SUBTREE FOR MULTIPLE DIRECTORIES ¶Git Subtree for Multiple Directories. Your git repository has grown over time, and it's time for parts of it to become its own separate repo. Depending on how much you want to extract, you have two options: git filter-branch or git subtree split. Published May 3 2018 SECURING HAPROXY SITES WITH LET'S ENCRYPT SSL CERTIFICATES ¶Securing HAProxy sites with Let's Encrypt SSL Certificates. In this article: Provisioning free SSL/TLS certificates from Let's Encrypt; Configuring HAProxy to serve multiple SSL domains A BETTER PLAYLIST SHUFFLE WITH GO ¶A Better Playlist Shuffle with Go. On the rare occasions that I hit "shuffle" in music players like Spotify, I don't really want completerandomization.
¶ SETTING UP AN API GATEWAY PROXY RESOURCE USING ¶Setting up an Api Gateway Proxy Resource using Cloudformation. I just spent the better part of a day trying to figure out how to do something as seemingly simple as configuring an AWS Api Gateway catch-all endpoint to proxy to another HTTP service. WEBSLIDES SYNTAX HIGHLIGHTING WITH PRISM The only thing missing out of the box was easy syntax highlighting of code snippets. Luckily, adding that with Prism.js is a breeze. Download and unpack the Webslides bundle. Then go to Prism's download page to customize your build - choosing the theme, the languages you need support for, and optionally any plugins.CHRISTIAN JOHANSEN
Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on. This approach introduces some friction, and in this post I'll share some pointers for improved editing and git workflow. September 17 2020 Git A UNIFIED SPECIFICATION ¶A Unified Specification. Your frontend application state lives in Datascript (it should anyway), and you use spec (again, you should) to enforce constraints on your data. Datascript needs a schema that asserts some facts about your data, while specs cover the rest. If you're consuming an API not specifically tailored for your app you also need some code to map API data to the Datascript schema.CLOJURE TO DIE FOR
¶Clojure to die for. There are many reasons to love Clojure; homoiconicity, persistent data structures, macros, and the list goes on.In this post, I want to focus on a few "details" in the language that really puts the icing on the cake, and clears up many commonsituations for me.
EDITING FOR CLEANER MERGES ¶Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on. TOOLS.DEPS, FIGWHEEL-MAIN, DEVCARDS, AND EMACS ¶tools.deps, figwheel-main, Devcards, and Emacs. Thanks to tools.deps, setting up a ClojureScript project in 2019 can be simpler (in terms of moving pieces) than it used to be, but there are still pitfalls.. All these tools have excellent reference docs, but sometimes I miss cross-cutting tutorial-style docs on how to piece everything together. ELISP - CJOHANSEN.NO An introduction to Emacs Lisp. A long, thorough introduction to programming in Lisp in general, and Emacs Lisp in particular. July 12012 Elisp, Emacs
YAHTZEE - CJOHANSEN.NO Yahtzee - cjohansen.no SPOTIFY - CJOHANSEN.NO A Better Playlist Shuffle with Go. Shuffling music playlists with less random and more cleverness, using Go. April 19 2019 Go, SpotifyLETSENCRYPT
Christian Johansen ¶ Letsencrypt Letsencrypt. Securing HAProxy sites with Let's Encrypt SSL Certificates QUERYING ACROSS DATOMIC DATABASES ¶Querying across Datomic databases. Among its many, many unique and interesting features, Datomic supports datalog queries across multiple databases. I recently had a chance to actually use this feature, and thought I'd share an actual example of it.CHRISTIAN JOHANSEN
Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on. This approach introduces some friction, and in this post I'll share some pointers for improved editing and git workflow. September 17 2020 Git PROCESSING DATA WITH CLOJURE AND GO ¶Processing data with Clojure and Go. I recently wrote about a better playlist shuffle with Go, where I presented my ideal implementation of a "shuffle" that isn't very random at all.In that post I outlined the algorithm and showed off my implementation in Go (one of my earliest uses of said language). BUILDING STATIC SITES IN CLOJURE WITH STASIS Building static sites in Clojure with Stasis. Stasis is a static site toolkit for Clojure. Unlike pretty much every other static site generator, though, it is not an "opinionated framework", or packed full with flavor-of-the-month templating languages and whatnot. It is just a few functions that helps with creating websites that can behosted
A UNIFIED SPECIFICATION ¶A Unified Specification. Your frontend application state lives in Datascript (it should anyway), and you use spec (again, you should) to enforce constraints on your data. Datascript needs a schema that asserts some facts about your data, while specs cover the rest. If you're consuming an API not specifically tailored for your app you also need some code to map API data to the Datascript schema. CLOJURE IN PRODUCTION WITH TOOLS.DEPS Clojure in Production with tools.deps. In this post I'll show you how my project is packaging and running Clojure apps in production, using tools.deps as a build tool. Credit where credit's due: my awesome colleague Alf Kristian Støyle did the heavy lifting on this setup. Use tools.deps to manage dependencies and build class paths. GIT SUBTREE FOR MULTIPLE DIRECTORIES ¶Git Subtree for Multiple Directories. Your git repository has grown over time, and it's time for parts of it to become its own separate repo. Depending on how much you want to extract, you have two options: git filter-branch or git subtree split. Published May 3 2018 SECURING HAPROXY SITES WITH LET'S ENCRYPT SSL CERTIFICATES ¶Securing HAProxy sites with Let's Encrypt SSL Certificates. In this article: Provisioning free SSL/TLS certificates from Let's Encrypt; Configuring HAProxy to serve multiple SSL domains A BETTER PLAYLIST SHUFFLE WITH GO ¶A Better Playlist Shuffle with Go. On the rare occasions that I hit "shuffle" in music players like Spotify, I don't really want completerandomization.
¶ SETTING UP AN API GATEWAY PROXY RESOURCE USINGAPI GATEWAY PROXY FUNCTIONAPI GATEWAY PROXY REQUESTAWS API GATEWAY PROXY MODE ¶Setting up an Api Gateway Proxy Resource using Cloudformation. I just spent the better part of a day trying to figure out how to do something as seemingly simple as configuring an AWS Api Gateway catch-all endpoint to proxy to another HTTP service. WEBSLIDES SYNTAX HIGHLIGHTING WITH PRISM The only thing missing out of the box was easy syntax highlighting of code snippets. Luckily, adding that with Prism.js is a breeze. Download and unpack the Webslides bundle. Then go to Prism's download page to customize your build - choosing the theme, the languages you need support for, and optionally any plugins.CHRISTIAN JOHANSEN
Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on. This approach introduces some friction, and in this post I'll share some pointers for improved editing and git workflow. September 17 2020 Git PROCESSING DATA WITH CLOJURE AND GO ¶Processing data with Clojure and Go. I recently wrote about a better playlist shuffle with Go, where I presented my ideal implementation of a "shuffle" that isn't very random at all.In that post I outlined the algorithm and showed off my implementation in Go (one of my earliest uses of said language). BUILDING STATIC SITES IN CLOJURE WITH STASIS Building static sites in Clojure with Stasis. Stasis is a static site toolkit for Clojure. Unlike pretty much every other static site generator, though, it is not an "opinionated framework", or packed full with flavor-of-the-month templating languages and whatnot. It is just a few functions that helps with creating websites that can behosted
A UNIFIED SPECIFICATION ¶A Unified Specification. Your frontend application state lives in Datascript (it should anyway), and you use spec (again, you should) to enforce constraints on your data. Datascript needs a schema that asserts some facts about your data, while specs cover the rest. If you're consuming an API not specifically tailored for your app you also need some code to map API data to the Datascript schema. CLOJURE IN PRODUCTION WITH TOOLS.DEPS Clojure in Production with tools.deps. In this post I'll show you how my project is packaging and running Clojure apps in production, using tools.deps as a build tool. Credit where credit's due: my awesome colleague Alf Kristian Støyle did the heavy lifting on this setup. Use tools.deps to manage dependencies and build class paths. GIT SUBTREE FOR MULTIPLE DIRECTORIES ¶Git Subtree for Multiple Directories. Your git repository has grown over time, and it's time for parts of it to become its own separate repo. Depending on how much you want to extract, you have two options: git filter-branch or git subtree split. Published May 3 2018 SECURING HAPROXY SITES WITH LET'S ENCRYPT SSL CERTIFICATES ¶Securing HAProxy sites with Let's Encrypt SSL Certificates. In this article: Provisioning free SSL/TLS certificates from Let's Encrypt; Configuring HAProxy to serve multiple SSL domains A BETTER PLAYLIST SHUFFLE WITH GO ¶A Better Playlist Shuffle with Go. On the rare occasions that I hit "shuffle" in music players like Spotify, I don't really want completerandomization.
¶ SETTING UP AN API GATEWAY PROXY RESOURCE USINGAPI GATEWAY PROXY FUNCTIONAPI GATEWAY PROXY REQUESTAWS API GATEWAY PROXY MODE ¶Setting up an Api Gateway Proxy Resource using Cloudformation. I just spent the better part of a day trying to figure out how to do something as seemingly simple as configuring an AWS Api Gateway catch-all endpoint to proxy to another HTTP service. WEBSLIDES SYNTAX HIGHLIGHTING WITH PRISM The only thing missing out of the box was easy syntax highlighting of code snippets. Luckily, adding that with Prism.js is a breeze. Download and unpack the Webslides bundle. Then go to Prism's download page to customize your build - choosing the theme, the languages you need support for, and optionally any plugins.CHRISTIAN JOHANSEN
Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on. This approach introduces some friction, and in this post I'll share some pointers for improved editing and git workflow. September 17 2020 Git A UNIFIED SPECIFICATION ¶A Unified Specification. Your frontend application state lives in Datascript (it should anyway), and you use spec (again, you should) to enforce constraints on your data. Datascript needs a schema that asserts some facts about your data, while specs cover the rest. If you're consuming an API not specifically tailored for your app you also need some code to map API data to the Datascript schema.CLOJURE TO DIE FOR
¶Clojure to die for. There are many reasons to love Clojure; homoiconicity, persistent data structures, macros, and the list goes on.In this post, I want to focus on a few "details" in the language that really puts the icing on the cake, and clears up many commonsituations for me.
EDITING FOR CLEANER MERGES ¶Editing for cleaner merges. As we add new code to existing files, it feels natural to append – add new functions at the end of the file, new requires at the end of the list of requires, and so on. TOOLS.DEPS, FIGWHEEL-MAIN, DEVCARDS, AND EMACS ¶tools.deps, figwheel-main, Devcards, and Emacs. Thanks to tools.deps, setting up a ClojureScript project in 2019 can be simpler (in terms of moving pieces) than it used to be, but there are still pitfalls.. All these tools have excellent reference docs, but sometimes I miss cross-cutting tutorial-style docs on how to piece everything together. ELISP - CJOHANSEN.NO An introduction to Emacs Lisp. A long, thorough introduction to programming in Lisp in general, and Emacs Lisp in particular. July 12012 Elisp, Emacs
YAHTZEE - CJOHANSEN.NO Yahtzee - cjohansen.no SPOTIFY - CJOHANSEN.NO A Better Playlist Shuffle with Go. Shuffling music playlists with less random and more cleverness, using Go. April 19 2019 Go, SpotifyLETSENCRYPT
Christian Johansen ¶ Letsencrypt Letsencrypt. Securing HAProxy sites with Let's Encrypt SSL Certificates QUERYING ACROSS DATOMIC DATABASES ¶Querying across Datomic databases. Among its many, many unique and interesting features, Datomic supports datalog queries across multiple databases. I recently had a chance to actually use this feature, and thought I'd share an actual example of it. I am CHRISTIAN JOHANSEN. I make my living as a software developer. My hobbies include playing, recording and mixing music, baking, brewing, cooking, and board games. Check out my resume if you're interested in my work, or would consider hiring me for your project. I occasionally tweet as@cjno .
¶BLOG POSTS
DEVOPS! DEV? OPS!
Det skorter for tiden ikke på bedrifter i IT-sfæren som skryter av at de driver med Devops. Men gjør de egentlig det? Hvis løsningen er et "devops-team" eller stillingsutlysninger for "en devopser", er sjansen dessverre liten for at vi henter ut det beste devops har å bypå.
December 17 2019AWS
JAVASCRIPT COERCION 101 Det er lite vi utviklere elsker mer enn å peke på galskap i JavaScript, så som + 2 === "2", men dersom jobben din er å skrive kode i dette språket, eller språk som kompilerer til JavaScript uten å skjule denne oppførselen (eksempelvis TypeScript og ClojureScript) vil du spare mye tid i feilsøking og koding ved å forstå _hvorfor_ting er som de er.
November 27 2019JavaScript NÅR AWS-REGNINGA BLIR SKYHØY Det er fort gjort å komme opp og gå i skyen, men før du får sukk for deg har du en løsning der du nærmest skuffer penger i retning Amazon. Hva gjør du den dagen du oppdager at AWS-regninga er MYE høyere enn du hadde forventet? September 25 2019AWSAWS FREE TIER
Dette er en liten historie om hvordan EFS nærmest tok livet av Kubernetes-clusteret vårt, og hvordan du kan unngå å havne i samme knipa — selvom du ikke bruker EFS. July 24 2019AWS , EFSCSS GRID
CSS grids har endelig gitt oss en enkel og fleksibel modell for layout på nett. Med bare noen få properties kan du stort sett pakke float helt bort, få full kontroll over kilde-rekkefølge og et kraftig verktøy for responsiv design på kjøpet.July 3 2019CSS
A BETTER PLAYLIST SHUFFLE WITH GO Shuffling music playlists with less random and more cleverness, usingGo.
April 19 2019Go , Spotify CLOJURE IN PRODUCTION WITH TOOLS.DEPS A lean and fast setup for packaging Clojure applications for production using tools.deps April 14 2019Clojure , tools.deps TOOLS.DEPS, FIGWHEEL-MAIN, DEVCARDS, AND EMACS A primer on setting up a ClojureScript project with tools.deps, figwheel.main, devcards, and optionally Emacs. January 19 2019Clojure , ClojureScript , Devcards , Emacs , Figwheel A UNIFIED SPECIFICATION An approach to describing the structure of data in ClojureScript applications in one place, and using it to power Datascript schemas, specs, and coercions for data from external sources. September 26 2018Clojure , Datascript ,clojure.spec
GIT SUBTREE FOR MULTIPLE DIRECTORIES How to split Git repos.May 3 2018Git
PROCESSING DATA WITH CLOJURE AND GO April 20 2018Clojure , Go , Spotify WEBSLIDES SYNTAX HIGHLIGHTING WITH PRISMApril 4 2018CSS
OPTIMIZED OPTIMUS ASSET PATHS FROM CLOJURESCRIPT March 31 2018Clojure SECURING HAPROXY SITES WITH LET'S ENCRYPT SSL CERTIFICATES March 10 2018HAProxy , Letsencrypt ,TLS/HTTPS
SETTING UP AN API GATEWAY PROXY RESOURCE USING CLOUDFORMATION December 11 2017AWS Api Gateway , Cloudformation IDEMPOTENT CLOUDFORMATION UPDATES October 19 2017Cloudformation QUERYING ACROSS DATOMIC DATABASES Among its many, many unique and interesting features, Datomicsupports datalog
queries across multiple databases. I recently had a chance to actually use this feature, and thought I'd share an actual example of it. June 17 2017Clojure , Datomic ANNOTATING DATOMIC TRANSACTIONS Datomic creates a transaction entity every time you transact data. These entities can be freely extended for a multitude of use cases. June 17 2017Clojure , Datomic REFERENTIALLY TRANSPARENT CRUD June 17 2017Clojure , DatomicCLOJURE TO DIE FOR
A selection of the details that makes Clojure such an enjoyable language to work with. March 11 2014Clojure BUILDING STATIC SITES IN CLOJURE WITH STASIS An in-depth code-along guide to building static web sites powered bythe Stasis library.
March 10 2014Clojure AN INTRODUCTION TO EMACS LISP A long, thorough introduction to programming in Lisp in general, and Emacs Lisp in particular July 1 2012Elisp , Emacs2006 - 2019
Follow me (@cjno) on Twitter christian@cjohansen.noDetails
Copyright © 2024 ArchiveBay.com. All rights reserved. Terms of Use | Privacy Policy | DMCA | 2021 | Feedback | Advertising | RSS 2.0