読了: Clean Architecture 達人に学ぶソフトウェアの構造と設計

『Clean Architecture 達人に学ぶソフトウェアの構造と設計』を読み終えたので感想です。 なにか新しいことが書いているというわけではなく、ちゃんと依存関係について考えようねという本だと捉えている。ソフトウェア設計の原則を、クラスなどの細かい粒度…

Rails におけるパフォーマンス検証パターン: action 抜けた後が遅いケース

TL; DR アクション抜けたあとは action の callback, rendering, rack middleware の世界 おもそうなものを特定して抜こう bullet は重いぞ 事象 新機能開発中に、大量データ突っ込むか〜と思って突っ込んで開いたらまあ全然返ってこない。 はあ、まあそうい…

オフラインリアルタイムどう書くE27の参考問題の実装例(Rust)

オフラインリアルタイムどう書くE27の参考問題「灯りと鏡」の実装例です。オフサイトだし Rust やるかあとおもって書きました。 問題 : http://nabetani.sakura.ne.jp/hena/orde27ligmir/ 実装リンク集 : https://qiita.com/Nabetani/items/0b2f459ec128c899…

オフラインリアルタイムどう書く E26 の実装例(Ruby)

問題 : https://cedretaber.github.io/doukaku/e26/ 実装リンク集 : https://qiita.com/Nabetani/items/0bcabb80bdcbc9b2ff52 負けました。 とりあえず当日中に書いたのはこんなの。 github.com 縦n列目については n + 1 列目にあるやつをうごかせば揃うなー…

WIP: ast でメソッドコールを探すやつを作り始めました + designing data-intensive application を読んでいます

本日は2本立てでお送りします(特にネタがないので小ネタというか終わってないネタを2つ合わせて記事にしとくか……という記事です。 ast でメソッドコールを探すやつを作り始めました ほしくない?と思って作っています github.com 使い方は何かと言うとある特…

【PR】転職ドラフトで転職してから1年が過ぎたので体験を振り返る

【こちらの記事は転職ドラフト体験談投稿キャンペーンに参加しています】 job-draft.jp もう転職して1年1ヶ月になりますね。1年も前なので転職ドラフト自体も変わってはいるのでしょうが、体験談を投稿するとアマギフをくれるというので頑張って書こうと思い…

「AESで暗号化した時の文字列の長さってどれくらい変わるの?」という質問に答えようと調べた話

経緯 「AESで暗号化した時の文字列の長さってどれくらい変わるんだろう、って調べているけど全然出てこねえ。実際試してみると1.5倍くらいっぽいが。」 という質問が友人から投げられてきたので調べました。 前提 AES256 平文は 99 文字 調査ログ padding …

icfp pc 2018の問題を解く、前準備を勧めている

だいたいタイトルどおりの話です。なおまだ問題全然解いてないです。 ICFP Programming Contest 2018 icfp pc はなんか数日間頑張って最適化とかの問題を解いてスコアを競うやつです。今回のはざっくりいうと3Dプリンタの最適化問題で、指定の座標を塗りつぶ…

trick2015 ko1さんの1つ目のやつを読むやつ

前回に引き続き trick コードを読んだのを書きます、といっても実はこっちのほうが先だったのですが。最近これに関連するものを twitter で教えてもらったので書きます。 前回はこちら hkdnet.hatenablog.com trick とは なんかよくわかんないけどすごい rub…

trick2015 yoshi-taka さんの作品を読むやつ

最近毎週水曜日に trick 読書会というのが開催されておりましてそこで読んだネタをブログ記事にしておくやつです。 先週読んだのはコレ。 trick2015/entry.rb at master · tric/trick2015 · GitHub とりあえずぱっとみ markdown ファイルにしか見えないやつ…

プレイドオフィス移転パーティー に参加してきました

plaidtech.connpass.com お邪魔してきました。 たぶん twitter でしか知らない人も何人かいた気がするのだけど、せっかくの機会なので plaid 社の人の話を中心に聞くぞ、ということでブース来訪がメインに据えました。記憶をたよりにどんな話を聞いたのか書…

『[試して理解]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…