Skip to content

Instantly share code, notes, and snippets.

Avatar

Sebastian Porto sporto

View GitHub Profile
@sporto
sporto / description.md
Last active May 13, 2020
Back to issue
View description.md

The problem

There are several pages in our app where users arrive from different places.

e.g. Page A -> Page C Page B -> Page C

In Page C we want to show a link back to the previous page. E.g.

@sporto
sporto / replace.nim
Created Apr 21, 2020
Replace text in files
View replace.nim
# nim c -r ./scripts/replace.nim ./replacements.csv
import strutils, sequtils, os, sugar
proc split_line(line: string): seq[string] =
line.split("|")
proc get_replacements(filename: string): seq[seq[string]] =
filename
.readFile()
View QuickChart URL
https://quickchart.io/chart?bkg=white&c=%2F%2F%20Edit%20me!%0A%7B%0A%20%20type%3A%20%27bar%27%2C%0A%20%20%20options%3A%20%7B%0A%20%20%20%20legend%3A%20%7B%0A%20%20%20%20%20%20position%3A%20%27bottom%27%2C%0A%20%20%20%20%20%20labels%3A%20%7B%0A%20%20%20%20%20%20%20%20boxWidth%3A%2012%2C%0A%20%20%20%20%20%20%20%20padding%3A%2020%2C%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%7D%2C%0A%20%20%20%09scales%3A%20%7B%0A%20%20%20%20%09xAxes%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20stacked%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20gridLines%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20offsetGridLines%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20drawOnChartArea%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20ticks%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20fontSize%3A%2014%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20maxTicksLimit%3A%205%2C%0A%20%2
@sporto
sporto / elm-touch-and-measure.js
Created Jul 18, 2018
Touch Elm files and recompiles
View elm-touch-and-measure.js
/*
This script touches each elm file
And recopiles it, then stores the time taken
*/
const r = require("ramda")
const dir = "./src/Elm"
const fs = require("fs")
const childProcess = require('child_process')
const async = require('async')
@sporto
sporto / elm-elmi-timestamps.js
Last active Jul 18, 2018
Compare timestamps of elmi files
View elm-elmi-timestamps.js
/*
This script compares timestamp of elmi files
To try getting files that take a long time to compile
But this attempt has proven very useful
*/
var fs = require("fs")
var path = require("path")
var dir = "./elm-stuff/build-artifacts/0.18.0/Versent/stax/1.0.0/";
View how-to-use-react-inside-elm.md

Register Element

First you will need document-register-element

yarn add document-register-element

Add script to register elements

@sporto
sporto / exceptions.md
Last active Oct 4, 2017
What is wrong with exceptions?
View exceptions.md

Exceptions are surprising

Given something like this:

proc sub(): string {.raises: [OSError].} =
    raise newException(OSError, "OS")
	...

proc main() =
@sporto
sporto / interactor.rb
Created Jul 22, 2017
A pattern for interactors
View interactor.rb
class DoSomething
def self.build(dep:)
->(user:) {
self.new(dep: dep, user: user).call
}
end
def initialize(dep:, user:)
@dep = dep
@user = user
@sporto
sporto / clipboard.history.json
Last active Mar 9, 2020
Visual Studio Code Settings Sync Gist
View clipboard.history.json
{
"version": 2,
"clips": [
{
"value": "pub fn response_test() {\n app.dates()\n |> expect.equal(_, [])\n\n app.response()\n |> expect.equal(_, 171)\n}\n",
"createdAt": 1583733240591,
"copyCount": 1,
"useCount": 0,
"language": "gleam",
"createdLocation": {
@sporto
sporto / library-design.md
Created Mar 11, 2017
Library Design in Elm
View library-design.md

This is an example reusable element I made for our application https://github.com/sporto/elm-select

My current API is not great as it requires a lot of boilerplate to hook init, state, update and view.

But in summary this library requires:

  • Some configuration
  • App state: Some state that the application manages e.g. currently selected thing
  • Hidden state: Some state that the component cares about, that can be hidden from the app
You can’t perform that action at this time.