『[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識』読了

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識 結構前に読了してたけど書いてなかったので書きます。 ざっというと、OS初心者向けの解説本ですね。タイトルから受ける印象とレベル感が合っていたと思います。 僕自身も適当に ubun…

RubyVM::AST を用いた Ruby 製 Ruby インタプリタを作っている話

Ruby では v2.6 から RubyVM::AST というのが入ることになりまして、Ruby ランタイム上から AST を取得できるようになります。この話は以前に書いたので省略しますが、ASTがとれるということはASTを解釈して実行することもできるわけです。やるしかないです…

オフラインリアルタイムどう書く E25 の解答

qiita.com オンライン参加で解けました。17:02なので45分くらいでしょうか。 #yhpg とけたー— はくどー (@HKDnet) July 7, 2018 方針としては、たかだか200x200マス = 40000通りなので、スタート地点以外の1点を選んでベクトル作ってベクトル回して伸ばして…

TaPL読書録 #5

前回: hkdnet.hatenablog.com 今回は6章まるごと。 アルファ変換を許可する、というのは第5章で学んだが、しかし変数名が重複してるんだっけ?という疑念は常につきまとう。特に理論的な部分ではなく実装するという観点においては「標準の」の表現を定めてお…

RubyKaigi2018 基調講演2日目レポートで書かなかったことの補足

gihyo.jp 本記事は上記リンクの記事に関する補足です。プログラミング初心者です、Rails しかやってません、みたいな人でもわかることが望ましいとは思っていたのですが紙面の都合及びやたら技術解説がある記事になってもなあと思い書きませんでした。 明ら…

datadog の ruby ライブラリ dogapi で batch_metrics をネストするとダメそう

NOTE: v1.3.0 で見てます。 先日 datadog にメトリクスなげてーなと思ったのでライブラリの使い方を見てたのですがあんまり出来がよくなさそうです。気になったのはここ。 dog.batch_metrics do dog.emit_point('test.api.test_metric',10) dog.emit_point('…

Ruby でふつーの引数でもキーワード引数でも渡せるようにしたい

def func(a, a:) puts aendってしたときに、func 'a'ってしたら第一引数の a が利用できてfunc a: 'a'ってしたら第二引数の a が a として利用できるみたいな、こう、Keyword引数としても使えるしそうでなくても使えるみたいなやつがほしいです— はいと (@Ha…

RubyVM::AST に関するメモ書き

hkdnet.hatenablog.com 作ったけど微妙ですわこれ(手のひら返し 使い始めたら、 children にアクセスするのに node_type とかそんなに意識したくないんだよなーということに気づきました いまやろうとしてるのは RubyVM::AST を使って Ruby インタプリタを R…

RubyVM::AST を便利に使いたいので gem を作った

github.com さっと作りました。 rubygems には登録してません(名前が重複してるかすら調べてないや) 経緯 Ruby 2.6.0preview2 から RubyVM::AST モジュールが使えるようになりました。 Ruby 2.6.0-preview2 Released RubyVM::AST [Experimental] Ruby 2.6 in…

追試

hkdnet.hatenablog.com ~/.g/g/h/m/y/E22 ❯❯❯ ruby -v ruby 2.6.0preview2 (2018-05-31 trunk 63539) [x86_64-darwin17] ~/.g/g/h/m/y/E22 ❯❯❯ time ruby --jit test.rb 略 NG: 0 ruby --jit test.rb 711.81s user 95.96s system 27% cpu 48:08.82 total は…

オフラインリアルタイムどう書く E24 の回答

負けました。ほっとんどのテストケースは通るが4つほど通らない、というのがあるというのが時間内の回答です。 が、終わったあとの懇親会でぼーっと考えてたらあそこじゃね?というところに気づいて解けました。そしてその diff がしょーもない。 とりあえず…

Swift製webアプリケーションフレームワーク Vapor を読むやつ #3

hkdnet.hatenablog.com boot 以降にいくか、と思っていたのですが boot 以降よりも middleware まわりのほうがよさそうなのでそちらを読むことにします。 さて、 middleware ですが、とりあえず既存の middleware を読めばいいでしょう。 ErrorMiddleware を…

Re: Rubyのdefの後に何を書けるか調べる実験

sinsoku.hatenablog.com 最後のHashが印象的。以下引用。 # no error def ({}).foo puts "foo" end # 別インスタンスなのでメソッドは呼べない {}.foo #=> (NoMethodError) 引用終了。 さて、別インスタンスなので呼べないというが、まあ呼びたいじゃん?オ…

Swift製webアプリケーションフレームワーク Vapor を読むやつ #2

hkdnet.hatenablog.com 前回テンプレートの configure まで読んだので boot 以降を読もうかと思いましたが、routesのところを読み損ねていたことに気づいた ので読みます。 https://github.com/vapor/api-template/blob/3df9b5518b510f5959c75ad04c1b51996a7…

Swift製webアプリケーションフレームワーク Vapor を読むやつ #1

Vapor とは SSS(Server Side Swift) のwebアプリケーションフレームワークです。 docs: https://docs.vapor.codes/3.0/ セットアップ CLI ツールの使用を推奨しているので brew でいれておく。プロジェクトの作成は vapor new で。Swift 初心者過ぎてよくわ…

THE IDOLM@STER MR ST@GE!! MUSIC♪GROOVE☆ 5/6 我那覇響主演 第三部 を見てきました

idolmaster.jp はい、というわけで感想というか日記エントリです。 以下セトリや公演内容などのネタバレを含みます。

macOS 10.13.3 -> 10.13.4 のアップデートをするとSEGVするやつ

概要 朝起きたら macOS のアプデがかかったらしくログインを要求された。 いつも通りユーザーを選択しパスワードをいれて FileVault の解除を待つと見たことない画面へ。 「アプデ適用に失敗しちゃったっぽいよてへぺろ とりあえず再起動する?」と聞かれた…

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

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

TaPL読書録 #4

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

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

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

草活1周年、に失敗した話

3/31なんですけど、とあるレポジトリにコミットしてたのが、とある事情によりレポジトリごと消えたので草も一緒に消えてしまいましたとさ……。 これ private repo のも含めていて(= 会社のも含んでいる)、OSSっぽいことをしているわけではないのでアレなんで…

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

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

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

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

その rescue_from ほんとに必要ですか

だいたい必要ないと思ってますよ、という話。 Rails アプリケーションの開発において rescue_from を追加することが正しいことは少ないと思っています。 rescue_from とは実際にはアクションおよびコントローラをまたいだ begin - rescue ( try - catch )で…

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 「型なし算術式」なのでこの手のものを許可せざるを得ない。 評価のと…