Skip to content

Instantly share code, notes, and snippets.

@koga1020
koga1020 / laravel-packages.sh
Created September 19, 2018 01:21
laravelで使うpackageのインストール用スクリプト
composer require --prefer-dist --optimize-autoloader --dev \
barryvdh/laravel-debugbar \
laravel/dusk \
martinlindhe/laravel-vue-i18n-generator \
squizlabs/php_codesniffer
composer require --prefer-dist --optimize-autoloader \
laracasts/utilities \
aws/aws-sdk-php
@koga1020
koga1020 / Makefile
Created April 18, 2019 13:00
Makefile for elixir project
fm:
mix format
exec:
docker-compose exec app /bin/bash
setup:
docker-compose exec app mix ecto.setup
get:
docker-compose exec app mix deps.get
defmodule AggregaterTest do
use ExUnit.Case
doctest Aggregater
describe "test for Aggregater.counter" do
test "シンプルなケース" do
assert Aggregater.counter(["A", "B", "C", "D"]) == %{"A" => 1, "B" => 1, "C" => 1, "D" => 1}
end
test "重複した値がうまくカウントされているか" do
@koga1020
koga1020 / .projections.json
Created August 30, 2020 02:06
.projection.json for elixir project
{
"lib/*.ex": {
"alternate": "test/{}_test.exs"
}
}
npm i -S @types/google-apps-script
cat <<EOF > tsconfig.json
{
"compilerOptions": {
"lib": ["es2019"],
"experimentalDecorators": true
}
}
EOF

赤いカプセルを取れ

プログラミング言語Elixirは、不変的な状態を用いた関数プログラミングと、並行性へのアクターベースのアプローチを、整然とした、モダンな文法の中にラップしたものだ。そして、業務に耐えうる頑健さを持ち、高性能で、分散可能なErlang VM上で動作する。でも、いったいこれって、どういう意味だろう?

これは、今あなたの時間を奪っている。諸々の難しいことについての心配を、やめていいってことだ。もう、マルチスレッド環境でデータの一貫性を守るために頭を絞る必要はない。アプリケーションをどうスケールさせるか、あまり考えなくてよくなる。さらに、これが一番大事なことだが、プログラミングを別のやり方で考えることができるようになる。

point:

  • 「プログラミングを別のやり方で考えることができるようになる」がポイント
  • マトリックスに「赤いカプセル」ってのが出てくる(らしい)
@koga1020
koga1020 / _docker-compose.yml
Last active April 6, 2021 10:43
docker-compose for Elixir project.
version: '3'
services:
db:
image: postgres:11.8-alpine
volumes:
- ./docker/db/init:/docker-entrypoint-initdb.d
- ./docker/db/data:/var/lib/postgresql/data
ports:
- "5432:5432"
@koga1020
koga1020 / remove-label.yaml
Last active May 6, 2021 10:45
issue close時に任意のラベルを削除するgithub action
name: Remove Label
on:
issues:
types: [closed]
jobs:
remove_label:
runs-on: ubuntu-latest
steps:
@koga1020
koga1020 / README.md
Last active January 31, 2022 13:49
定義された関数を参照してmacroで新しい関数定義を追加する
$ iex -S mix
Erlang/OTP 24 [erts-12.0.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit]

Interactive Elixir (1.13.0) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> B.__info__(:functions)
[bar: 0, foo: 0, hoge: 0, new_bar: 0, new_foo: 0, new_hoge: 0]
iex(2)> B.new_bar()
"geneareted from bar."
iex(3)&gt; B.new_foo()
Mix.install([
{:benchee, "~> 1.0", only: :dev},
{:flow, "~> 1.2.0"}
])
mapper = fn number -> number * number end
Benchee.run(%{
"enum" => fn -> 1..1_0000_000 |> Enum.map(mapper) |> Enum.sum() end,
"flow" => fn -> 1..1_0000_000 |> Flow.from_enumerable() |> Flow.map(mapper) |> Enum.sum() end