技術系日記

Python3 script を雑に heroku で動かせるようにする

手元で動かしてた python スクリプトを web サービス化したときの備忘録です。

TaPL読書録 #4

前回: hkdnet.hatenablog.com 今回は5章終わりまで、と思っていたが 5.2. の最後まででいい時間になってしまったので終わり。 今回は記憶がおぼろげなのでおぼろげに書きます。 ラムダ計算におけるリストの表現などについて Scott encoding, Church encoding…

『わかばちゃんと学ぶ Googleアナリティクス』の献本をいただきました

はいどうも、 ハイクオリティ神レビューア のはくどーです。 頂いたの3月末なのですが……。遅くなりましてすみません。 感想 ざっくりGAの使い方が紹介されていてよいんじゃないでしょうか。アクセス解析にまつわる諸概念についてもざっと紹介され、各概念を…

『現場で役立つシステム設計の原則』感想

読んだ。 雑多に感想を書く。 いわゆる Rails Way において到達できるところと、実際にシステムが要求するところの水準に乖離があるような現場はそこそこあると思っていて、Rails から入ったけどそういうところに困っている人(= つまり僕だ)にいい本だと思っ…

秒速でサイト作ったら反響がよかったので振り返り

github.com きっかけは、隣に座ってた人がいきなりやり始めたんだけど、検索ロジックとかが ガバそう 改善の余地がありそうだったので口出ししてたところから。 やったことは主にこんな感じです。 (PRになってないけど) 検索ロジックに口出しした とりあえず…

jewel polisher

最近自分たちのプロジェクトが依存する gem 関連で何かが起きて対応が必要だったことが続いたのでメモっておく。 rails-html-sanitizer 0.4.0 CVE-2018-3741 対応。これは依存が多いので追うのがちょっとめんどかった。情報としては以下の issue が非常によ…

TaPL読書録 #3

前回: hkdnet.hatenablog.com 今回は4章終わりまで。 私物ノートPCのエンターキーがぶっ壊れているため今回のメモは控えめ。 定理3.5.12. 整礎集合の1要素へとマッピングできる関数 f を用いて無限降下列にならないことを示す論法は他の箇所でも見た気がする…

どうかくE22とjit

問題: 辞書順に数を並べる 2018.3.3 実装: github.com とりあえずナイーブに解いたやつ。鍋谷さんは「Rubyでは解けないくらいの計算量にしたつもりだった」と言っていたが案外解けている。 $ ruby -v ruby 2.6.0preview1 (2018-02-24 trunk 62554) [x86_64-d…

Ruby の ! について

はいどうも ! メソッド Ruby における ! ってご存知ですか? Ruby は演算子っぽいようなものもメソッドとして実装されているという話があったりします。 1 + 1 # Integer の + メソッドが呼ばれている class Integer # 上書き def +(other) 42 end end 1 + 1…

ランダム性は心の弱さ -- Rails においてテストデータをランダムに作ることについて

お気持ち やめよう 何がおきたか 単純化するとこんな感じのコードがあって爆死した1。 describe Foo do let(:left_foo) { Foo.new(value: 1000, bar: left_bar) } let(:left_bar) { BarMaster.all.sample } let(:right_foo) { Foo.new(value: 100, bar: righ…

TaPL読書録 #2

hkdnet.hatenablog.com 引き続きTaPL読書録です。今回は3.4.まで。 この項の構文は succ true や if 0 then 0 else 0 のような怪しげな項の形成を許すことに注意されたい(p.18) 怪しげw 「型なし算術式」なのでこの手のものを許可せざるを得ない。 評価のと…

オフラインリアルタイムどう書くE21 に参加して負けてきました

yhpg.doorkeeper.jp 負けました。敗因はなんだろ……。方針が定まりきらなかったのが敗因なのかなー。 プレイヤーベースで考えると打ったときに、そのタイミングでアタリを引いたのか、次のターンでアタリを引いたのかの場合分けがめんどくさそうだなーと思い…

TaPL読書録 #1

2018年はmediumで記事を投稿しようと思っていたのですが、はてなブログのほうがなんだかんだ流入がいい気がしたので戻ってくることにしました。乗り換えのきっかけは、ブログのエディタの使い勝手があまりよくないことによっていたのですが、 kibela で書い…

Speee×Asakusa.rb Ruby2.5リリースパーティー に参加してきました

speee.connpass.com 行ってきました。 twitter に適当に投稿はしましたがだいぶはしょっているのでそれの補完を。 「突然CentOSが落ちるコードをコミットする人はちょっと」とか聞こえた— はくどー (@HKDnet) 2017年12月26日 なんか別方面にささったらしく妙…

gitしぐさ 2017年11月編

最近の git コマンド運用録です。 雑に書いていきます。 前提 GitHub git hub tig リモートレポジトリ戦略 常に以下の状態を維持します。 upstream: みんなの更新が集まってくるところ origin: 自分の変更をいれるところ なので例えば ruby/ruby のようなOSS…

Ruby hack Challenge もくもく会 に参加してきました

connpass.com 一言感想。コミッターの方が多数いてすげーなーという気持ちになりました えーとこの会自体は Ruby hack Challenge という企画のもくもく会です。 企画自体はこちらのレポを参照するのがよいかと。 codeiq.jp 僕は rhc 自体には参加してないの…

Ruby本体読みはじめた人に届けたいドキュメント

RubyKaigi2017に参加してやる気が高まったので最近は ruby/ruby のコードを読むようになってます。 github.com しかしこれがなかなか読むのにコツがいる感じです。 RubyKaigi参加前は “Ruby under a microscope”1 を読んで「Rubyの内側面白い!!!」ってな…

Dockerのイメージとかタグとかの云々

俺のところでビルドできるDockerfileが他のところだとできないと言われて見たら、ubuntu:16.04の中身が変わってるのが原因だった。これ動くタグなのか……。ubuntu:xenial-20170517.1だと動かないっぽいのでこっちで指定するのが無難っぽい— はくどー (@HKDnet…

Credenatial Management APIの発表聞いたメモ

developers.google.com 僕はchrome使いなのですが、まあモダンなブラウザを使っている皆様ならばだいたいログインフォームに入力したあとに「このログイン情報を保存しますか?」系のダイアログが出るのをご存知かと思います。 インターネットの普及に伴い様…

2017年4月12日

最近ブログ書いてなかったから適当につらつら書く pero blog.kazuhooku.com 最近よく使うやつ。上の記事ではリリースされてない感じですがもう brew から入る peco にも入ってます。 用途としてはざっと該当箇所のコードを読みたいときに適当に検索してる。 …

yet another pomodoro

つくりました github.com いつもどおり英語は適当です。 モチベーション ポモドーロテクニックがやりたかった tmuxのバーに表示したかった ターミナルを全画面で使ってる事が多いのでmacのステータスバーに表示するのは微妙 tmuxのバーが一番いいかな?って…

最近のコーディングネタ

Ruby テスタビリティのために引数をとりたい 普通にプロパティアクセスするような気楽さでアクセスしたい この2つの気持ちがあわさってこういうことをよくしている class Foo attr_reader :baz, :qux def bar @bar ||= build_bar(baz, qux) end def build_ba…

mrubyだと32個以上の必須引数をとれない

www.amazon.co.jp 別に普段mruby使ってるわけでもないんですが『言語のしくみ』を読んでたら気になったので検証。 本の記載 タイプ3 Ax(25ビット) op(7ビット) 命令タイプ3はオペランド雨を全部1つにして25ビットのオペランド(Ax)として取り扱います。タイプ…

『オブジェクト指向設計実践ガイド』 実践編

はじめに この記事は『オブジェクト指向設計実践ガイド』の内容をもとにテストコード書いてたらよくわかんなくなったので助けてくれ、という内容です。だれか助けてください。コメントとかRe:記事とかのリアクションあると嬉しいです! 本の内容の抜粋 詳細…

『ゼロから作るDeep Learning』を読んだ

www.oreilly.co.jp 年末にやるかと思って買って、買った直後に3日ほど寝込んで結局昨日までかかってしまった。 といっても正月明けてから読んだのはたぶんトータル2時間程度で完全にサボってただけです。 内容は、ゼロから作るとあるだけあって、ほんとにゼ…

RubyでEnumerableを条件Xを満たすものと満たさないものに排他的に分けたいんだけど

どうするのがいいんでしょうか。 メモリとかパフォーマンスとかそういうのはあんまり気にしない前提です。 以下のサンプルコードでは対象のEnumerableは変数 arr に代入されているものとし、条件Xを満たすかどうかのメソッドは foo?(x) という名前であるとし…

Crystal書いてて気づいたこと

今日はuser agent parserのruby版をcrystalに移植していた。 github.com crystalはv0.18.7を使っているのだけど書いてて気づいたことがあるのでメモ not nilの推論はインスタンス変数には効かない crystalは型に厳しいです。変数fooがStringあるいはNil型で…

オフラインリアルタイムどう書くE06 Ruby で解く

問題はこちら: qiita.com コードは末尾に。 感想 第一感 ルールがしっかりしてるので適当にclass作って適当に殴ってればなんとかなりそうだなって印象。 テストケースの分量みてもナイーブな実装で特に問題なさげ。 というわけでホゲモンとトレーナーを作っ…

Shippableでまた落とし穴にハマった話 PR作成編

この前こういう記事書いたらそこそこ伸びたようでありがとうございます。 ウチでも使ってるよ的な話は聞けてないので、使ってる方は是非なにか書いてもらえると嬉しいです。 hkdnet.hatenablog.com さて、また落とし穴にハマったので日記です。今回のは僕は…

Dockerを使っているプロジェクトのCI環境としてShippableを使ってる話

まえがき みなさん突然ですけどDockerつかってます? この前とある勉強会でそういう話題になったとき、ぶっちゃけ本番では全然使ってないって感じの反応が多くてそんなもんなのかなあと思ってしょんぼりしてます。 いま僕は開発環境も本番環境もDockerなプロ…