tech::hexagram

personal note for technical issue.

EExでタグをエスケープする場合には%を重ねる

koseki.hatenablog.com こちらを見てピンときたので、Elixirの EEx でも確認した所同様にできるのでメモ。 foo <%= bar %> 例えば、これをそのまま出力したい場合。 iex(1)> EEx.eval_string("foo <%%= bar %>") "foo <%= bar %>" iex(2)> EEx.eval_string("…

github flowで便利なgitコマンドまとめ

git

業務中に便利ツールを作った際に、git commandを駆使していろいろな情報を取る機会があったのでまとめておく。 git diff $ git diff master development --name-only masterブランチとdevelopmentブランチで差分のあるファイルをファイル名だけ表示できる。 …

統計検定2級に受かったのでやったことを全部書く

1ヶ月ほど前の6月17日に、 統計検定2級 を受けてきた。 自己採点で34問中31問正解だったので、マークミスさえなけりゃ大丈夫と踏んでいたが、昨日試験結果の通知が書面で届き、無事合格確定となった。 ありがたいことに、最優秀成績賞なるものも合わせて頂い…

ロードバイク遠征中にスクーターとぶつかってリアディレイラーが壊れた話

毎年この時期はロードバイクで長距離を泊りがけで走ることにしている。去年国道4号経由で仙台まで 走破した ので、その続きとして今年の遠征旅行は仙台〜青森の青い森公園(国道4号起点)まで約370km程度を走ることにしていた。日程としては4/30から4日間を予…

依存先のnode moduleの脆弱性がGithubから通知された

今朝方、github.comからメールでこんな通知が来た。 よく見ると、「あんたのrepositoryの依存moduleに脆弱性があったから、このバージョンに上げると良いよ」という旨の内容。 実際にリポジトリを見に行くとこのような注意を促すポップアップが出ていた。 ho…

ES6で書かれたUserscriptでchaiとmochaを使ったテストを走らせるための小技

github.comのcommit一覧ページで、2点のcommit hashからcompareページに簡単に遷移できる Userscript を3年ほど前に開発し、最近ES6を使ってほぼフルスクラッチで書き換えた。 その際に chai と mocha を使ったユニットテストを書けるように整備した。通常の…

無料で使えるGCEのf1-microインスタンスで、Grafana+Prometheusのモニタリング環境を構築する

2018年、あけましておめでとうございます。拙い内容ではあるものの、本年も頑張って技術的な試みについて発信していけたらと。 年末年始でGrafanaとPrometheusを個人VPSのモニタリング環境として構築したので、その作業ログをまとめておく。 今回構築した雑…

iPhoneをバッテリ交換に出したらiOSのバグに遭遇した

譲ってもらった中古のiPhone5sがバッテリの持ちが酷く、更にLightningケーブルを抜き差しすると極端にバッテリ残量の増減が変わってだいぶヘタっていたので今日バッテリ交換をお願いしてきた。このiPhoneはサブ機として運用している。 お願いした業者さんは …

初めてOSSにコミットした話

mariaex というElixirのMySQLライブラリにPull Requestを送って、無事に3日前にmergeされた。初めてのOSS貢献で感慨深かったので記事に書いておこうと思う。 github.com (※@hashijun は会社用のGithubアカウント) きっかけ 今年の2月頃、業務中にとあるDB…

さくらのVPS@Ubuntu14.04でmysqlが起動できなかった

ansibleを利用してmysqlをインストールしていたが、どうもmysqlの起動でコケてしまっていた。 直接ログインして sudo service mysql start を実行してもうんともすんともいわず、困っていた。 mysql.err を見てみると1つWARNINGが出ていたが特に関係のあるも…

MTのテンプレートタグの変数展開

セットした値を mtFor で利用したい場合は、変数名を $ で囲うと展開される。 <mt:SetVar name="current_year" value="2017"> <mt:For var="year" from="1990" to="$current_year" increment="1"> ... </mt:For> 追記: MTテンプレートタグで去年の年を取得する方法として、 MTDate を利用すると良いと一度書いたものの、これは 再構築した日時を表示します。更新日時を表示したいとき</mt:setvar>…

git fetchで、unable to update local refとエラーが出た場合の対処法

git

リモートでブランチが削除されたのか、git fetchしようとした時にエラーが出た。 git remote prune origin / git fetch originで解決。 error: there are still refs under 'refs/remotes/origin/XXX` ! [new branch] XXX -> origin/XXX (unable to update l…

distilleryを利用したリリースビルドから、command経由でmoduleを実行する際のハマりどころ

2点ハマりどころがあったのでまとめておく。 リリースビルドに含まれないmoduleを実行していないか /path/to/bin$ ./some command Elixir.Some.Module run ... {"init terminating in do_boot",{undef,[{'Elixir.Some.Module',application,[],[]},...,{line,…

Exqのenqueueのプロセスを追ってみた

仕事に必要だったのでメモ書き程度に残しておく。 Exq というRedisを利用したJob queueライブラリのコードリーディング。 Exq.enqueue/4 : use Exq.Enqueuer.EnqueueApi とあるので、その中に実体がある。 # Exq.Enqueuer.EnqueueApi def enqueue(pid, queue…

ロードバイクで仙台まで行ってきた

連休を利用し、3泊4日でロードバイクに乗ってはるばる仙台まで自走してきた。 総走破距離は386kmで、これまでで一番遠くまで行くことが出来た。今回の旅に向けて準備してきたこと、旅の道中、旅から帰宅後の反省も含めて記録しておく。このエントリは1万字を…

Javascriptで連想配列のDeepCopy

Object.assign を実装当初利用したものの、Safariでは9以上でないと動かないらしい。 jQueryの $.extend を利用するとオブジェクトのマージという形でDeepCopyが出来る。 var src = fetchSrc(); // 何かしらで取ってくる var dest = {}; $.extend(true, dest…

任意で渡ってきた変数が特定のStructかどうか判定する方法

is_struct みたいな便利メソッドがないようなので以下のように判定する必要があった。 割と面倒だったのでまとめておく。 例として、任意で受け取った引数 args が User のStructかどうかを判定する。 StructはMapの拡張になっている まずStructは Mapを拡張…

ansibleでrubyのArray#zipみたいなことをやる

varsで定義した2つの同じ要素数のリストをrubyのArray#zipみたいに結合してよしなに何かする場合のサンプル。 template module で利用するJinja2というpythonのテンプレートエンジンが、yamlでも展開して利用できる。 - name: "hogehoge" vars: list1: - "1"…

PhoenixのテンプレートではMap |> Enum.eachでイテレートを回した中身が表示されない

ERBと同じように書こうとしたら詰まったのでメモ。 簡単な例で書いてみる。 Ruby @grouped_users = User.all.group_by(&:group) とcontrollerで定義しておくと、erbだと以下のようにループを回せる。 <% @grouped_users.each do |group, users| %> <% users…

Mac OSXで立ち上げたVagrant内で、dockerのcontainerを立ち上げる時の小技

課題 $ docker run -p 8080:80 --name some_container -it some_env:latest /bin/bash このように記述すると、containerを立ち上げた後に、開発用のユーザアカウントを用意してSSH接続する想定の場合は、sshdの起動の設定をする必要がある。 2回目以降の起動…

VagrantのCentOS7の仮想環境はcentos/7のほうが良さそう

centosから公式のimageと思われるboxが5ヶ月前くらいにリリースされたらしく、こちらを利用したらsftpのpathが正しい状態になっていた。 というわけでこの件は解決した!

決算書を読む上で役に立つ13のポイント

最近、会社の先輩から決算書を読む上で役に立つ本を貸していただいた。 ビジネススクールで身につける会計力と戦略思考力―ポケットMBA〈4〉 (日経ビジネス人文庫)作者: 大津広一出版社/メーカー: 日本経済新聞出版社発売日: 2007/08メディア: 文庫購入: 8人 …

最近のジムトレーニングメニュー(2016年1月版)

最近はもっぱらランニングと筋トレ。だいたい以下の順番にこなす。 ランニング ◯立ち漕ぎのエアロバイク 全力で漕ぐ。大体ケイデンス(1分間あたりの回転数)90から100前後、負荷かけるときは110まで上げる。時間はだいたい25~30分くらい、マシンのデフォルト…

rubyのeach, mapの違い

すごく初歩的ですが、新年一発目のエントリは去年の積み残しから。 each [1] pry(main)> def each_sample [1] pry(main)* (1..10).to_a.each do |i| [1] pry(main)* piyo = i + 1 [1] pry(main)* end [1] pry(main)* end => :hoge [2] pry(main)> hoge = eac…

2015年技術周りざっくり振り返り

今年は部署が変わり、去年に比べてさらにいろいろな分野に手を出した一年でした。 技術的には ruby, Ruby on Rails chef, ansible Vagrant, Docker jenkins あたりに手を出してきました。来年は以下に取り組んでみたいです。 swift python 機械学習 セキュリ…

2015年にはてブした記事振り返り

今年はてブした記事のうち、また見そうな記事について やった 後でやる ネタ に分けてまとめておく。 やった cookien.com 参考にしつつレシピ作ってた時期もあった。今はとりあえずほうれん草のおひたしはここからもらったレシピでよく作ってる www.bunkei-p…

mac miniでsnmpを動かすためのメモ

https://support.apple.com/kb/TA20884?locale=ja_JP&viewlocale=ja_JPsupport.apple.com 公式サイトを見ると、 アップルは、Admin CD 上の SNMP ツールが Mac OS X Server 10.1.5 以降で使用される場合にのみ、SNMP ツールに対するテクニカルサポートを行い…

windowsで入力した「~」とmacで入力した「〜」はUnicode文字コードが異なる

「〜」をwindowsで入力するとUnicode文字コードはU+FF5Eになり、macで入力するとU+301Cになる。 数値実体参照で言えばwindowsは&#65374;、macは&#12316; となる。ドウシテコウナッタ… 詳しい説明は以下の記事にあった。 Oracleデータベースで、波ダッシュの…

Mac OSXで特定のディレクトリ配下の内容の変更を監視してコマンド実行する

launchctlを使うとお手軽に出来るみたいなのでメモ。 <plist version="1.0"> <dict> <key>Label</key> <string>hoge.huga</string> <key>ProgramArguments</key> <array> <string>/bin/bash</string></array></dict></plist>

タワレコの会員登録でメアドパス忘れ

タワレコのネット会員登録しようとしたら既に会員になっていた事案が発生。 5年以上前にガラケーから登録してたらしい。 ガラケー辿って会員ページ見に行ったら登録していたメアドが確認できてそこから芋づる式に記憶辿ってパスワード思い出してなんとか回避…