Skip to content

Instantly share code, notes, and snippets.

Joakim Kolsjö joakimk

Block or report user

Report or block joakimk

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@joakimk
joakimk / notes.md
Last active Mar 19, 2019
Building custom ruby images to use the latest versions (e.g. to get security fixes earlier)
View notes.md

Building custom ruby-alpine

Check the alpine version of the previous image.

alpine3.9 master$ docker run -it ruby:2.5.4-alpine sh
/ # cat /etc/alpine-release 
3.9.2
/ # ruby -v
ruby 2.5.4p155 (2019-03-13 revision 67245) [x86_64-linux-musl]
@joakimk
joakimk / init.coffee
Last active Apr 5, 2018
Running tests in tmux from Atom
View init.coffee
# Atom -> Init Script...
child = require "child_process"
runTestInTmux = (focus) ->
editor = atom.workspace.getActiveTextEditor()
editor.save()
fullPath = editor.getPath()
projectPath = atom.project.getDirectories()[0].getPath() + "/"
@joakimk
joakimk / pipeline.md
Last active Mar 18, 2018
How we made our commit to production time twice as fast using heroku pipelines
View pipeline.md

Background

We started out with two apps.

  • foo-staging
  • foo-production

Our CI would run tests, then deploy to staging, run smoke tests and then run to production and run smoke tests.

This took about 22-25 min.

@joakimk
joakimk / webpacker-environment.js
Last active Oct 11, 2018
non-digested assets in webpack (e.g. non-stupid-digest-assets for webpacker)
View webpacker-environment.js
// Didn't find anything on google for this so I wrote my own. Use as a starting point if you have a similar problem.
// Please write comments if there is a better way to do this (or solve the same problem in another way) in webpack.
// Contents of config/webpack/environment.js:
const { environment } = require('@rails/webpacker')
// Generate undigested assets for use in embedded javascript, emails, etc.
// We previously used non-stupid-digest-assets for this.
@joakimk
joakimk / elm-and-atom.md
Last active Nov 20, 2017
Elm and Atom setup
View elm-and-atom.md

Some notes on my Elm development environment.

The most important thing is elm-format. It auto-formats the code when you save. You will likely miss this in other languages.

  1. brew install elm elm-format
  2. Install Atom
  3. Elm plugins: elm-format language-elm
  4. Vim plugins: ex-mode vim-mode-plus

Currently evaluating the elmjutsu plugin.

@joakimk
joakimk / code.js
Last active Jun 12, 2017
#live_coding Simple example
View code.js
/* jshint asi:true */
// PixiJS v4 example (WebGL rendering)
model = loadStateOrDefaultTo({
move: 1
})
tick = (delta) => {
if(codeHasChanged()) { return }
@joakimk
joakimk / research.md
Last active May 12, 2017
Research: Why is single Elixir unit tests slow to run?
View research.md

Instant-feeling unit tests improves productivity and developer happiness :)

Elixir tooling isn't quite there the way Ruby can be when optimized.

Ruby benchmarks:

  • instant 46ms base time (time ruby -e "")
  • instant 190ms running a ruby unit test doing nothing
  • in 50k line rails app:
    • okay 640ms bundler (time bundle exec ruby -e "")
@joakimk
joakimk / talks_and_articles.md
Last active Oct 6, 2016
A collection of good talks and articles by topic. Elixir, Elm, Ruby, ...
View talks_and_articles.md

Building a little list so I can more easily recommend the best talks and be able re-watch them myself.

Elm

@joakimk
joakimk / Update.elm
Last active Sep 22, 2016
One attempt at simple adding or updating a record in a list in Elm
View Update.elm
import UpdateList exposing (addOrUpdateById)
update msg model =
case msg of
NewOrUpdatedItem item ->
({model | items = model.items |> addOrUpdateById item}, Cmd.none)
@joakimk
joakimk / File.md
Created Sep 11, 2016
heroku: Could not connect to database to initialize transfer
View File.md

If you're seeing this error, try heroku ps:scale web=0 then import the database again and run heroku ps:scale web=1 afterwards. Found nothing on google for this error, so posting this gist with the solution that worked for me. Could have been a temporary error too.

You can’t perform that action at this time.