サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
体力トレーニング
hkdnet.hatenablog.com
16.85倍はやい僕のJIT RubyKaigi 2023 お疲れ様でした。非常に面白かったですね。k0kubun さんのRJITについての発表が面白かったので ruby-jit-challange をやりました。無事完走できたので感想記事を書こうと思います(激ウマギャグ) ※: ベンチマークから rjit が抜かれてる理由は後述 RJIT / ruby-jit-challenge ってなに k0kubun さんが Ruby で JIT を書けるような機構を作ってくれました。それをRJITと呼びます。RJIT を手を動かして体験できるチュートリアルが公開されています。親切なREADME、命令列をJITするところ以外の部分、機械語生成用のヘルパーも用意されておりおもてなしの精神がすごい。みんなぜひやりましょう github.com なお冒頭で16倍はやいっていっていますが、特定ベンチマークに
久々の雑記です。書き始めてから1ヶ月経ってて自分でびっくりしました。 生活 いろいろ変わった。コロナがありみんなの生活様式が変わり始めてから1年半、自分はもともと基本的には引きこもりなので特に影響がないかと思っていたがそれなりに変わった。といってもコロナの影響はWFH100%になったこと、外に飲みに行けなくなったことくらいだろうか。外に飲みに行けないのは非常に困っている。実利的に困っているわけではなく、娯楽がないのでつらい、というくらいだが、娯楽が禁じられているのはそりゃつらい。なんとかなってほしいが、まあしばらくはこんな感じだろう、はい。 コロナの影響ではない生活の変化要因として、引っ越しと結婚があげられる。というわけで結婚しました。ツイッターとかだといつ書いていいのかわからないし特に報告する意味がなさすぎて書いてなかった。生活に関するところでは共働きで配偶者は出勤せざるを得ない業種、か
rack の脆弱性対応があり1、それに対応した Rails を使おうとすると 5.2.4.1 を使う必要がある。のでアプデを試みた。5.2.3 -> 5.2.4.1 マイナーバージョンだし、大丈夫やろw と思いながらとりあえずCIを回してみたところテストが落ちた。はい。 原因を気合で確認したところ、この変更によるものであることがわかった。 github.com この変更自体について説明するとこんな感じ。例えば、既存レコードについて何らかの理由で Foo.find(1).valid? すると false を返すようなレコードがあるとする。後からバリデーションが追加されたんでも update 文を手でかいたらぶっ壊れたんでもよいけど、とりあえずそういう invalid なレコードがあるとする2。そのときに、それへの autosave: true な関連をもつモデルについてバリデーションの結果が
めちゃくちゃ楽しかったです。 トーク感想 What is expected? かねこさんのキーノート。パーザーの話。トーク前に expectってかいときゃ rspec だと思われるでしょ、などと邪悪な発言をしており治安が悪いなと思いました。 僕はスライドのチェックを依頼されたので事前に資料だけは見ていたのですが、なかなか骨太な内容でしたね。state の遷移図が結構くせもので、あれがあると state 自体が変化していくように思っちゃうのですが、実際には state の stack になっているのがミソです。あの図がないと遷移のイメージがわかない一方で、あれがあると誤解しやすいという。 まあたぶん誰も質問しない(できない)だろうと思って質問したいなーと思っていたのですが、なにせスライドを事前に読んでわからないところを聞いてるから質問が思い浮かばない。これはマズいと思っていたところ、資料チェ
経緯 「AESで暗号化した時の文字列の長さってどれくらい変わるんだろう、って調べているけど全然出てこねえ。実際試してみると1.5倍くらいっぽいが。」 という質問が友人から投げられてきたので調べました。 前提 AES256 平文は 99 文字 調査ログ padding のせいだよ説 AESはブロック暗号方式であるので、ブロックごとの長さに足りない分をpaddingされるだけではないか?と予想。 AESのブロック長は 128bit = 16byte なので Math.ceil(99/16) * 16 = 112 で 112 文字になるのでは? → 1.5倍だから150文字くらいになっているのだろう……おかしい 99文字とはいったが1文字1byteとは限らないのでは? → ascii 範囲内であることが判明。utf-16とかじゃなければ1文字1byteになりそう(´・ω・`) 99文字 → 15
TL; DR Amazon SQS で Exactly-Once なキューを使おうとも冪等な処理を書くべき キューが Exactly-Once であるという性質はシステム全体が Exactly-Once になることを保証できない 結局マルチデータソースへの書き込みの問題が残る Designing Data-Intensive Applications (邦訳: データ指向アプリケーションデザイン) が良書でした 邦訳は未読1ですが原著の内容がいいのできっとだいじょうぶでしょう Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems 作者: Martin Kleppmann出版社/メーカー: O'Reilly Media発売日: 2017/
github.com さっと作りました。 rubygems には登録してません(名前が重複してるかすら調べてないや) 経緯 Ruby 2.6.0preview2 から RubyVM::AST モジュールが使えるようになりました。 Ruby 2.6.0-preview2 Released RubyVM::AST [Experimental] Ruby 2.6 introduces RubyVM::AST module. This module has parse method which parses a given ruby code of string and returns AST (Abstract Syntax Tree) nodes, and parse_file method which parses a given ruby code file and returns AST
はいどうも、 ハイクオリティ神レビューア のはくどーです。 頂いたの3月末なのですが……。遅くなりましてすみません。 感想 ざっくりGAの使い方が紹介されていてよいんじゃないでしょうか。アクセス解析にまつわる諸概念についてもざっと紹介され、各概念を混同しないように説明しようという意思を感じました。 また、いつもの湊川節で「どうしてそれやるんだっけ?」「それってほんとにちゃんと目標に沿ってるんですか?」と優しく詰められるのが心地よかったです。 経緯 え!では今私が書いてるGoogleアナリティクス本のレビューアになっていただけないでしょうか! インセンティブは焼肉(の予定)です🍖🍖🍖— 湊川あい🌱技術書典 DL販売中! (@llminatoll) 2017年11月19日 Twitterすごい(こなみかん ふりかえり 実際にやってたこと GitHub ベースでのレビューでした。 レポジ
speee.connpass.com 行ってきました。 twitter に適当に投稿はしましたがだいぶはしょっているのでそれの補完を。 「突然CentOSが落ちるコードをコミットする人はちょっと」とか聞こえた— はくどー (@HKDnet) 2017年12月26日 なんか別方面にささったらしく妙にRTされましたが。これはnobuがCentOS6で落ちるコードをコミットしたことをネタにしていたそうです。コミッタ同士の仲が良さそうで微笑ましいですね。 最初は Matz からの挨拶がありました。無事リリースできましたねーというところと反省点。 2.5の反省。ギリギリのゴーサイン— はくどー (@HKDnet) 2017年12月26日 知り合いのコミッタも12月になってからも気合いれていろいろやっていて、11月にはもうフィーチャーフリーズしてるもんだと思ってたのですがそうでもないんだなあと思ってい
この記事は しがないラジオAdventCalendar 5日目の記事です。 adventar.org すでに2回もゲストとして出演させていただきまして、自分のキャリアについては話しきった感覚があります。そのため今回はしがないラジオに出会って何が起きたのか、何を考えることになったのかということ書こうと思います。 転職ネタが知りたい方はどうぞ過去の sp3 と sp5 をどうぞ(宣伝 最初にぼくとガミさんの関係性を確認しておこうかと思います。 1年ほど前の僕にとってのガミさんは、小中高の同級生であり、ときたま酒を飲むような仲でした。どっかのSIerに就職したらしい1と思っていたのですが、いつの間にかweb系に転職することが決まっていて、そこからまた交流が増えた気がします。これがたぶん去年の9月くらい。Rebuild.fm の話をしたり、青春のアフター1〜3巻をガミさんにその場で購入させたりとい
注: part2といいつつpart1は書き上がってないのでこれが最初です 背景 るりまのサンプルコードを整備しようというプロジェクトがあるのはご存知ですか。 tbpgr.hatenablog.com id:tbpg さんがこちらで精力的に活動されているのですが、ある日こういう話を聞きました。 「Enumerator::Lazy#chunk の定義が可変長引数に見えるんだけど実際は引数渡すとエラーになるんだよね〜」 で、サンプルを書こうとしたときにちょっと詰まったと聞いたので、定義を可変長引数でなくできないだろうかと Ruby hack Challenge もくもく会#2 のネタにさせてもらいました。 connpass.com 事前調査 まずはざっと定義をみておきましょう。ruby/rubyにおいて組込みで用意されているクラスのメソッドはC言語で書かれていることが多く、その場合は rb_de
connpass.com 一言感想。コミッターの方が多数いてすげーなーという気持ちになりました えーとこの会自体は Ruby hack Challenge という企画のもくもく会です。 企画自体はこちらのレポを参照するのがよいかと。 codeiq.jp 僕は rhc 自体には参加してないのですが RubyKaigi 以降はよく ruby/ruby を眺めているのでいってきました。 もくもく会なのでみんな適当になんかする、という感じだったのですが、僕はあまり何をするか考えていませんでした。とりあえずruby/rubyよんで気になったとこを見ようかなという気持ちです。 特に目的も定めずにざーっと読んで読んで、読み進めて。 気になったのが array.c の Array#uniq! の実装。frozen チェックのあたりがちょっと気になります。 static VALUE rb_ary_uniq_
RubyKaigi2017に参加してやる気が高まったので最近は ruby/ruby のコードを読むようになってます。 github.com しかしこれがなかなか読むのにコツがいる感じです。 RubyKaigi参加前は “Ruby under a microscope”1 を読んで「Rubyの内側面白い!!!」ってなってたのですが、実際にCのソース読みはじめると全然違いますね。マクロ多いし、C言語のこともわからんし……。 Ruby Hacking Guide こと 『Rubyソースコード完全解説』2 を読んだほうがいいのかもと悩むようになりました。 でもそんな悩みも今日解決されました。これ読めばとりあえずはRubyのレポジトリを泳げるようになりそうです。 ruby/extension.ja.rdoc at trunk · ruby/ruby · GitHub これが非常によいです。まず読んで
タイトルのとおりです。 いつものも置いておくのでよろしくお願い致します。誰からかわかるとうれしいです http://amzn.asia/ehpcSIc (毎度のことなんだけどkindle版をほしいものリストから贈れるようにしてほしいし、並び替えはかんたんにできるようにして欲しいし、並び順は覚えておいて欲しいんだけどなあ……) さて、2017年6月末日づけで某社を退職し、7月1日づけで、某お金を前にするような会社に勤めています。 職種としてはいわゆるWEB系プログラマー(サーバー寄り)という感じです。変わんないですね。 インフラまわりに手を出さなくなったのが前職との違いだと思います。 これは転職とはあんまり関係ないのですが、ついでにせっかくの機会なので一人暮らしを始めてみました。 さらには脱vimしてRubymineを使ってみたりスプラトゥーン2で3D酔いしてみたりしています。 引っ越しのド
tmxuのプロセスをkillしろとか書いてある記事によくいきついたので正しい情報が1つでも増えることを願って書きます。 # コマンドとして $ tmux source path/to/.tmux.conf # キーバインドとして prefix :source path/to/.tmux.conf
俺のところでビルドできるDockerfileが他のところだとできないと言われて見たら、ubuntu:16.04の中身が変わってるのが原因だった。これ動くタグなのか……。 ubuntu:xenial-20170517.1だと動かないっぽいのでこっちで指定するのが無難っぽい— はくどー (@HKDnet) 2017年6月14日 だいたいこれで終わりだが一応書いておく。 前提その1 Docker は image をもとにして動く。image は Dockerfile に定義を記載しビルドすることで得ることができる。自分の image を作成するときには他人が作った image をもとにすることができる( FROM で記載する)。それらを共有する仕組みとして Docker Hub という Docker image を多数ホスティングしているところがある。 前提その2 Docker imageは名前
友人がpodcastを始めたというのは以前に書きましたがそれにゲスト出演してきました。 shiganai.org 好き放題喋ってたら3話構成(3a, 3b, 3c)になるくらい喋っていたようです。3aでは仕事の話、3bでは勉強会とかの話、3cではキモオタトークをしています。ちなみに僕はオタクではないです。 初めてのpodcast出演だったのでちょっと思ったことをまとめておきます。 喋り方について どうも自分の喋り方として声のボリュームの調節を多く使っているようです。強く主張したいときには声を大きく、自信がなさげなときには声を小さくというような表現。たぶん誰もがやってるとは思うのですが僕のは他の人より顕著だと思いました。この手法、普通に話してる分にはいいけどpodcastだと結構厳しい印象です。小さく話しているときにボソボソ声になりすぎている箇所があったと思います。3aから3bの間に休憩いれ
つくりました github.com いつもどおり英語は適当です。 モチベーション ポモドーロテクニックがやりたかった tmuxのバーに表示したかった ターミナルを全画面で使ってる事が多いのでmacのステータスバーに表示するのは微妙 tmuxのバーが一番いいかな?っていう感じで決まった 終わったら通知が欲しかった macユーザーなので右上にピコンと出る系のやつがよかった 対抗馬は? hughbien/thyme: Console Pomodoro timer 使おうとしたんだけど依存関係がちゃんと定義されてなくて普通にやると動かなかった たしかgem installしてレポジトリをとってきてbundle installしてその後bundle exec rakeしてテストを通すとようやく動くようになった 最後の1ステップがマジで謎すぎる ほかはしらない 作ったもの 1秒sleepして、ってやる
待望のSlackのThread機能きましたね。みなさんつかってますか。 Slackはチャットツールとして手軽でヨサがあったもののフロー型の情報でありその運用過程にはいろいろ問題がありました。 スレッド機能の登場は僕らの頭を悩ませていたそれらの課題をいくらか解決してくれるものと思われました。 同時に複数の話題が流れたりするとどれへのリプなのかわからない ちょっとタイミング逃すと返信しにくい 議論が発散しがち*1 しかし、実際つかってみるとどーもなんか違う感じがあります……。 いや、デフォでスレッド内だけに発言されても……開くのめんどいし……。スレッドの開始位置どこだっけってなるし……。 なんかどうやってつかえばいいのかなあという感じでなかなか難しいなと個人的には思ってました。 そんなスレッド機能ですが今日試しに個人の作業ログとして残してみたらいい感じになりました。 こんな感じ(さっきやっつけ
Shippable記事が割と反応あったのにみんなが使ってるよって報告がなくてつらいです。 ちなみに先日教えて頂いたのですがShippableのキャラクターはアイアイだそうです。 南の島のおさるさんのアイアイです。日本人なら誰でも知ってる、みんなのうたのアイアイです。 これはもう最高にかわいいというのは疑問の余地はありませんね*1 ECR Tokyo Region この前ECR*2の東京リージョンが来てましたね。 dev.classmethod.jp いままでDocker hubを使っていたのですがECRの東京リージョンはやっぱりはやいです。 イメージのpush/pullが遅いと暇をもてあまし気味なのではやいのはいいですね。 今回はShippableを使いながらECRを活用するためにやったことを紹介します。 BYON ShippableにはBYONという機能があります。Bring Your
今日はuser agent parserのruby版をcrystalに移植していた。 github.com crystalはv0.18.7を使っているのだけど書いてて気づいたことがあるのでメモ not nilの推論はインスタンス変数には効かない crystalは型に厳しいです。変数fooがStringあるいはNil型であるときはどちらの型にも存在するメソッドしか呼べません。 Stringにしかないメソッドを呼ぶときには条件分岐でnot nilであることを保証させます。 # foo : String?とする if foo.nil? # ここではfooはNil型 else # ここではfooはnot nilなのでString型 end ローカル変数ならこれでおkですがインスタンス変数はこれだとダメです。 class Klass @foo : String? def size if @foo.n
まえがき みなさん突然ですけどDockerつかってます? この前とある勉強会でそういう話題になったとき、ぶっちゃけ本番では全然使ってないって感じの反応が多くてそんなもんなのかなあと思ってしょんぼりしてます。 いま僕は開発環境も本番環境もDockerなプロジェクトをやってるんですけど、Docker化するとそれはそれでいろいろ面倒なことがあってまあ面倒です。はい。 この記事はそんな面倒なDockerの中でもCIとCDのところでShippableを使ってみているのでそれについて書きます。 本文 サービスについて app.shippable.com CIサービス業界での立ち位置 公式サイトにもおもいっきり with Docker って書いてありますね。CIサービスでDockerをウリにしてるのはShippableとCodeShipの2つという印象です。*1 CodeShipはサイトにホワイトペーパ
事象 めっちゃ同じのが出る。 $ brew update /usr/local/Library/brew.sh: line 32: /usr/local/Library/ENV/scm/git: No such file or directory : 対応 brew prune でよい $ brew prune Pruned 0 symbolic links and 6 directories from /usr/local $ brew update : これ同僚に教えてもらったんだけど、brew pruneってなんだろって思って調べたのでメモ $ brew prune --help brew prune [--dry-run]: Remove dead symlinks from the Homebrew prefix. This is generally not needed, bu
jsonapi-resourcesはこちら cerebris/jsonapi-resources: A resource-focused Rails library for developing JSON API compliant servers. 下準備 インストールまで いつものなのでサクサクいきます。 $ bundle init # Gemfile source 'https://rubygems.org' gem 'rails', '5.0.0.rc1' $ bundle install $ bundle exec rails new . --api # 上書きを確認されるので適当にYesしておく # Gemfile # 以下を追記。 # rubygemsにあるのだとRails5に対応していないのでgithubから取得していることに注意。 gem 'jsonapi-resourc
前置き なんか新しくつくんべ、っていうときにフロントのフレームワーク(ライブラリ?)を何にするか迷ったんで調べた。 机で調べてたらわかんなかったんで書くべって言ってとりあえず3種類ざっと書いてみたのでその構成と感想を記録しておく。 特に入門記事とかではないのでコード片の類はない。 比較対象 React A JavaScript library for building user interfaces | React Riot.js Riot.js — A React-like user interface micro-library Vue.js vue.js 全部データフロー回りのライブラリの使用を前提とする。 界隈で一番スタンダードっぽいのを選んだつもりだけどRiotがわからん。 React + redux react-redux Riot + RiotControl jimspark
環境 $ crystal version Crystal 0.15.0 [0f62400] (Fri Apr 1 16:59:50 UTC 2016) $ crenv --version crenv 1.0.0-7-g578eb0a 問題点 適当に getter や property を生やしてるとNot Nilであることをコンパイラが検知できなくて困る 対応策 getter に型定義を書いておく 型推論を活かしつつ getter! あるいは property! を使う initialize 内で インスタンス変数 @fuga に値を入れる 楽に書きたい派なので getter! を好んで使っている 確認 hkdnet/crystal-tips $ crystal run src/tips/nillable_property.cr Error in ./src/tips/nillable_p
blog.docker.com どういう記事なの 内容 Docker社から3/24にDocker for Mac及びDocker for Windowsの2つのベータ版が発表されました。 この発表について知識の確認も兼ねてざっと書こうと思います。 テクい話はあんまりありません。 対象読者 Macユーザー dockerあんまりわかんないっていう人 いいわけ 記事執筆時点で私はまだDocker for Macを実際に触ったことがありません 申し込んだけど申込 = 順番待ちリストへの追加なので、その後順次使えるようになるみたいです まだdockerについての理解が浅いため、誤りがありましたら指摘してくださると嬉しいです ざっくり基礎知識 Dockerとは Dockerは仮想化技術の1つです。詳細についてはググってください。 もう2016年なのでいろいろ記事があります。 MacでDockerを扱う
github.com 概要 ruboty-karmaというgemを作りました karmaと呼ばれるスコアを管理することができます hubot-karmaと似たようなものです ruboty-score_keeperと似たようなものです 何が違うかというと、karmaを溜めたときのメッセージを環境変数で変更できます。 -- 全世界のrubotyユーザーのみなさんこんにちは。 @hkdnet です。 今日は(また)rubotyのgemのお話です。 ruboty-karmaというgemを作成したので紹介します。 コンセプト 日々流れ行くSlackのログの中で、感謝の声が埋もれていく。 この現状についてちょっともったいないな、もっと可視化したいなと思って保存できるようにしました。 分報*1などのリアルタイムでお悩み解決をするSlackの使い方が広まる中で徳マネジメントはメンバーのモチベ管理のためにも
レポ 以前参加したイベントの第2回があったので参加してきました! hkdnet.hatenablog.com ちなみに情報共有ツールお悩みNightから情報会議に名前が変わっています。 johokaigi.org イベント自体は前回と同じく「仮想の問題」に関して施策を考えて発表するスタイル。 前回よりも時間を長く、1つのテーマについて長く考えて意見交換できる構成になっていました。 時系列で書いても他の方とかぶりそうなので印象に残ったのをいくつか。 情報共有ツールの利用を人事評価の1項目にしてはどうか グループワークでは「記事を読んでくれさえしないメンバーがいる」という「仮想の問題」について考えました。 その中で出た案で興味深いなーと思ったのがこれ。 "「情報共有されたらいいよね」ではなくて情報共有は義務である"っていう主張が過去にあったらしく(出典わかる人教えてください)それに触発された意
次のページ
このページを最初にブックマークしてみませんか?
『hkdnet.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く