動かざることバグの如し

近づきたいよ 君の理想に

Elixirでパイプ中にpryでデバッグしたい

環境 Elixir 1.x コード Elixirのパイプ演算子便利なんだけど、途中の変数変化を把握しづらい。そこでpryを使ってブレークポイントを仕掛ける。 defmodule Example do def pipe do 1..10 |> Enum.map(&(&1 * &1)) |> Enum.filter(&rem(&1, 2) == 0) |> (fn(x…

Elixirでファイルの読み書きまとめ

環境 Elixir 1.x 基本的な読み書き File.write/2 で書き込み、 File.read/1 で読み込みできる。 iex> File.write "sample.txt", "Hello" :ok iex> File.read "sample.txt" {:ok, "Hello"} 読み込んだときに2要素のタプルを返してくるのがポイント こういう…

ElixirでFizzBuzz

condを使う場合 defmodule FizzBuzz do def upto(n) do cond do rem(n, 15) == 0 -> "FizzBuzz" rem(n, 3) == 0 -> "Fizz" rem(n, 5) == 0 -> "Buzz" true -> n end end end for n <- 1..100 do IO.puts FizzBuzz.upto(n) end パターンマッチを使う場合 defm…

Elixirで関数呼び出し時にドットを付ける/付けないの違い

環境 Elixir 1.x 結論 無名関数の場合はドット(.)が必要 名前付き関数の場合は不要 違いについて 他の言語やったあとにElixirやってると以下のようなエラーをよく起こす。 iex(1)> add = fn a, b -> a + b end #Function<12.99386804/2 in :erl_eval.expr/…

Amazon Linuxでやるべき初期設定

aws

タイムゾーンの変更 JSTにする ln -sf /usr/share/zoneinfo/Japan /etc/localtime デフォルトユーザー削除 userdel ec2-user

PHPで文字列を1文字ずつ分割する方法が進化してた

php

令和最新版のPHPは一味違うぜ 概要 すごく昔に、PHPで文字列を1文字ずつの配列に変換する方法について記事を書いた。 thr3a.hatenablog.com このときはメモ程度だったが、実は今でもそこそこPVがある。 流石に令和だしPHP7どころか8も出たしなにかアップデ…

Elixir で配列をループしたいならEnum.each

Elixirで頻出する Enum.each/2 だが、書き方色々あって全然見れなかったのでメモ。 基本形 Enum.each(["one", "two", "three"], fn(x) -> IO.inspect(x) end) # 出力 # "one" # "two" # "three" 省略記法を使う Elixirでは無名関数を&を使って省略記法で書け…

Elixir マップの値を更新する方法3選

環境 Elixir 1.x やりたいこと 例えば、以下のようなMapがあったとする。 user = %{name: "Taro", gender: "man", city: "Tokyo"} ここのcityのTokyoの値を変更したり、あたらしくidのキーを追加したい。 存在するキーを更新する場合 パイプ文字を使った new…

Elixir &記法メモ

コード add_one = &(&1 + 1) # add_one = fn n -> n + 1 end IO.puts add_one.(44) &1 &2は 最初の引数、2番めの引数と対応する &(&1 + &2) は fn p1,p2 -> p1 + p2 endと同義

ElixirでTupleをListに変換する

久々にカテゴリ増やした気がする(怠慢 環境 Elixir 1.6 コード Elixirの教科書本ことプログラミングElixirの演習問題でわからなかったのでメモ プログラミングElixir 第2版作者:デイブ・トーマス発売日: 2020/12/14メディア: Kindle版 Tuple.to_list({1234,…

Ruby irbするとreadlineエラーになる件

環境 Mac OS rbenv + ruby-build 結論 readline入れろ brew install readline が、残念ながらこれだけだとライブラリのパスがruby-buildから見えないので、 RUBY_CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline)" rbenv install 3.0.0 する…

GitHub Docker Repositoryにpushするとbuildx call failed with: failed to solve: rpc error

タイトルのママ 以下のときにこまった thr3a.hatenablog.com 解決策 GitHubにログインした状態で右上の自分のアイコンをクリック Feature Previewクリック 「Improved container support」をEnabledにする 参考リンク buildx call failed with: failed to so…

GitHub ActionでGithub Container Registryにpushする

環境 2020-12-31現在 成果物 thr3a/imagemagick-docker docker pull ghcr.io/thr3a/imagick YAML .github/workflows/action.ymlを用意 name: Build and Publish Docker on: push: branches: - master jobs: build_and_push: runs-on: ubuntu-20.04 env: IMAG…

chrome extension memo

vue create --preset kocal/vue-web-extension

chrome extension memo

vue create --preset kocal/vue-web-extension

AWS ECRにDockerイメージをPrivateにPushする

ECRって馴染み無いからなんだろうけど、公式サイトが「Amazon ECR レジストリ」って謳ってるのなんかウケる 概要 FargateにデプロイするにあたってAWSにコンテナをPushする必要がでてきたのでメモ ちょうどタイムリーにPublic Registoryもリリースしてたしね…

NFSマウント時の最強オプション晒す

まあタイトルは嘘で、AWSとか大御書の推奨オプションをメモするだけ( AWS rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport マウントに関する追加の考慮事項 - Amazon Elastic File Systemに記載されている。 rsize=1048576 – 各ネットワ…

Mac OSでフォーマットできないデバイスを初期化する

mac

GUIでさっくりできるようにしろ令和だぞ 概要 Mac OSには標準で「ディスクユーティリティ」というディスク管理ツールがある。内蔵/外付けのディスクやUSBメモリをGUIでフォーマットできるアプリで、Windowsでいうディスクの管理にあたる。 が、LinuxのUSBイ…

Chrome拡張機能で現在のタブのURLを取得する

環境 Chrome manifest v2 コード chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, tabs => { const url = tabs[0].url alert(url) }) backgrond.jsとかpopup.jsとかで使える。 tabsって入ってるからパーミッションに「Tabs」必須かなと思っ…

Chrome拡張機能で現在のタブのURLを取得する

環境 Chrome manifest v2 コード chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, tabs => { const url = tabs[0].url alert(url) }) backgrond.jsとかpopup.jsとかで使える。 tabsって入ってるからパーミッションに「Tabs」必須かなと思っ…

JavascriptのencodeURIComponent()した文字をRubyでデコード

結論 javascriptエンコード側 encodeURIComponent('ニンテンドースイッチ') // => "%E3%83%8B%E3%83%B3%E3%83%86%E3%83%B3%E3%83%89%E3%83%BC%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81" Rubyデコード側 require 'uri' URI.decode_www_form_component("%E3%83%8B…

100均でライトニングケーブル買うならダイソーが最強

経緯 iPhoneとパソコンの通信をさせたくて、ライトニングケーブルが欲しくなった。 今回は短くていいのと、一時的に使うだけなので純正とかじゃなくても安く手に入れたかった。 で、色々100円均一見に行った結果、最強のコスパの100円ライトニングケーブルが…

bilibili動画をダウンロードするならannieがベスト

youtube-dl消されて以降の方がプロジェクト活発で草 bilibili動画とは ニコニコ動画の中国版、以上 動画をダウンロード まあ滅多に無いけどbilibiliの中国動画をダウンロードしたい場合 真っ先に出てくるのは、一度消されたアプリこと「youtube-dl」 実はyou…

ArmbianでWIFI接続と固定IP設定

環境 Armbian 20.11.3 Focal 概要 ArmbianというARMアーキテクチャのシングルボードコンピューターに専用のOSがある。 このOSのいいところはRaspberry Piとかと違って多種多様な機種に対応されているところ。 あと、扱いやすいので今回はTinkerBoardに入れて…

docker内でcurlしたときにSSL certificate problemエラーになる問題

状況 debian系のdockerでhttpsのURLをcurlで叩くと以下のようなエラーになって死ぬ SSL certificate problem: unable to get local issuer certificate Dockerfileはこんな感じ FROM debian RUN apt-get update \ && apt-get install -y --no-install-recomm…

Nodejs最新版でファイルの存在チェックをする

令和最新版Nodejsって響きよくないですか? 環境 Nodejs v14 概要 よくある、指定したパスのファイルが存在するかのチェック いくつか方法があるのでメモ 【方法1】fs.existsSync()を使う 一番オーソドックスというか古典的。どのNodejsのバージョンでも実…

Fastifyで静的ファイルを返す方法

環境 Fastify 3.x やりたいこと 画像とかサーバーにある静的ファイルをを返したい バイナルファイルもきちんと表示できるようにしたい 【方法1】fs.readFileを使う 一番ベーシック。Fastityに限らず、nodejs使ってるなら標準メソッドで解決しようって考え方…

Bulma CSSで画像とテキストを横並びにする方法

css

あんまりBulma使ってる人見ないよね。。。 環境 Bulma CSS 0.75 完成イメージ ちょうどこんな感じ コード 上のサンプル見れば終了なんだが一応説明 <div class="columns is-vcentered"> <div class="column has-text-centered"> <figure class="image is-128x128 is-inline-block"> <img src="https://bulma.io/images/placeholders/128x128.png"> </figure> </div> </div>

fastifyでAPIサーバーを作成、GCPに音速デプロイ

結論 fastify使うなら fastify-cli使え 環境 Nodejs 10 fastify v3.0.0 概要 Nodejsでサーバーfastify-cliを使ってAPIサーバーのひな壇を作って、GCPのCloud Runにデプロイするところまでやってみる。 インストール まずはfastify-cliをインストール 公式で…

GCP Compute Engineでディスク拡張を無停止で行う

gcp

コマンド知れば簡単だった やりたいこと 起動しているGCPの仮想マシンのディスク容量が不足してきたので拡張したい。 やり方 ホスト側 まずMacbookとか自分のPC側でgcloudコマンドを使って操作する。 gcloudコマンドのインストールは以下から Google Cloud S…