タグ

ブックマーク / joker1007.hatenablog.com (12)

  • Railsで秒間1000コミットを捌くにはどうすればいいのか (Kaigi on Railsのフリースペースより) - joker1007’s diary

    先日のKaigi on Rails中の雑談として @ima1zumi さんから、RDBに対して秒間1000コミットぐらいで処理が詰まってる場合ってどうするのが良いのか、という質問を受けまして、雑談の中で色々答えてたんですが、せっかくだから記事にまとめておこうと思います。 ちょっとしたKaigi Effectって感じですね。 今回のKaigi on Railsのトークの中では、 数十億のレコードを持つ5年目サービスの設計と障害解決 by KNR - Kaigi on Rails 2023 の話なんかは割と関連がありますね。ユーザーの行動履歴というのは、ユーザー数 * N * タイムスパンで増えていくレコードなので、書き込みとデータ量が爆発しがちです。トランザクションで堅牢に処理しなければいけないケースもそこまで多くないので、RDBだと書き込みに対する処理が過剰なケースが多い。実際のところこの

    Railsで秒間1000コミットを捌くにはどうすればいいのか (Kaigi on Railsのフリースペースより) - joker1007’s diary
    fjwr38
    fjwr38 2023/10/31
  • RubyKaigi 2023 参加報告とちょっとエモい話 - joker1007’s diary

    RubyKaigi 2023に参加してきました。 今回は長野県の松での開催でした。 全体的な感想 今回は、会場のスポンサーブースの数や来場者が去年より格段に多く、かつてのRubyKaigiが戻ってきたことを強く感じました。 4, 5年ぶりぐらいに会う人も沢山居て、会う人会う人に「うおー、久しぶりです!」って言って回ってた気がします。 久しぶりに会う人と直接近況をやり取りできるのは、とても嬉しいことですね。 自分はあんまり写真撮らないタイプなのですが(べ物と酒は除く)、今回は割と多くの #rubyfriends 写真を撮った気がする。 それぐらいはしゃいでいたと言えるのかもしれない。 (撮った写真を了解無く上げるのは、ちょっと気になったので写真は割愛) とにかく、色々な人にまた会えたのが嬉しかった。そういうRubyKaigiでした。 セッションについて 今回は、パーサー周りのトークが妙に

    RubyKaigi 2023 参加報告とちょっとエモい話 - joker1007’s diary
    fjwr38
    fjwr38 2023/05/17
  • rubygem開発でSteepを使って型を書く時の現状のオススメ設定 (2023年3月版) - joker1007’s diary

    Rails(というかActiveRecord)に型を付けるのは大変だが、Railsが絡まないrubygemにはそんなに苦労なく型が書けるので、これからgemを書く時には型を書きたいという人向けに今のところオススメの設定を紹介します。 というか自分が忘れるのでまとめておきます。 現状とはsteep-1.3.1, rbs-2.8.4を指します。 rbsは既に3系が出ていますが、一般利用者が型検査に利用する場合はsteepを使うはずで、steepはまだrbsの3系に対応していません。また、rbs-3.0で多少変わっているところもあるので、割と寿命が短い話かもしれません。 設定例 とりあえず結論から。Steepfileとrbs_collection.yamlを修正します。 Steepfile: D = Steep::Diagnostic target :lib do signature "sig"

    rubygem開発でSteepを使って型を書く時の現状のオススメ設定 (2023年3月版) - joker1007’s diary
    fjwr38
    fjwr38 2023/03/17
  • ソフトウェアエンジニアとしての能力を高める方法について考えてみた - joker1007’s diary

    早朝の寝る前ぐらいの時間にぼやっと下記の様なツイートしたらちょっと反応を貰ったので、取り留めは無いが自分なりに考えていることを書いてみる。 人を育てるのも仕事の内というのは完全にその通りなんだが、そこにドキュメントやがあるから読みます、触って作ってみます、生きたコードを読みます、以外に学ぶ方法なんかねえし、知らねえよ。ただやればいいだけの事に説明も何も無いんだよな……。マジ分からん……。— joker1007 (アルフォートおじさん) (@joker1007) March 2, 2023 タイトルは雑に書いたけど、能力を高めるというと範囲が広過ぎるので、技術的な意味でできる事が増える、ということをテーマとして話をしていこうと思う。基的に自分の考え方の話なのでそこは御留意ください。 ツイートした通りで、状況や対象に依って割合は変わるかもしれないが基的にそのためにやることは3つしかないと

    ソフトウェアエンジニアとしての能力を高める方法について考えてみた - joker1007’s diary
    fjwr38
    fjwr38 2023/03/04
  • Gaming on Gentoo Linux - joker1007’s diary

    最近は、LinuxPCゲームをやるのもかなり現実的になってきたので、その知見についてまとめた記事を書こうと思う。 自分がGentooユーザーなので、細かい部分はGentooを前提にした話になっているが、概要はLinux全般でモダンなPCゲームをやる時の参考程度にはなるだろう。 前提 各GPUドライバのインストール 普通入ってると思うが、GPUに合わせてxf86-video-amdgpuかnvidia-driversをインストールしておく。 vulkan driverのインストール mesa (OpenGL-like graphic library for Linux) でvulkanフラグを有効化しておく。 vulkanは、DirectXとかOpenGLと同じレイヤーのAPIで、3Dグラフィックのためのlow level API。概ねOpenGLをよりモダンな方向に刷新するための規格とい

    Gaming on Gentoo Linux - joker1007’s diary
    fjwr38
    fjwr38 2021/04/12
  • 1000万件オーバーのレコードのデータをカジュアルに扱うための心構え - joker1007’s diary

    自分が所属している会社のメンバーの教育用資料として、それなりの規模のデータを扱う時に前提として意識しておかなければいけないことをざっくりまとめたので、弊社特有の話は除外して公開用に整理してみました。 大規模データ処理、分散処理に慣れている人にとっては今更改めて言うことじゃないだろ、みたいな話ばかりだと思いますが、急激にデータスケールが増大してしまったりすると環境に開発者の意識が追い付かないこともあるかと思います。 そういったケースで参考にできるかもしれません。 弊社は基的にAWSによって運用されているので、AWSを前提にした様なキーワードやサービス名が出てきます。後、句読点があったり無かったりしますが、ご容赦ください。 追記: 社内用の資料の編集なのでかなりハイコンテキストな内容だから誤解するかもしれませんが、これらはそもそもRDBの話ではありません。(関係無くは無いけど) 1000万オ

    1000万件オーバーのレコードのデータをカジュアルに扱うための心構え - joker1007’s diary
    fjwr38
    fjwr38 2020/11/05
  • RubyKaigi 2019で登壇してきました #rubykaigi - joker1007’s diary

    4/18 - 4/20で開催されていたRubyKaigi 2019に参加し登壇してきました。 今回の登壇内容は「Pragmatic Monadic Programming in Ruby」というタイトルです。 スライドは以下。 speakerdeck.com 実装はこちらです。READMEの整備が全然出来てないのと、APIがまだ変わる可能性があるので、gemとして正式リリースするのはまだやってないのですが、近々ちゃんとリリースします。 github.com Ruby黒魔術師として、自分が良いなと思っているデザインパターンであるモナドを、Rubyの世界で理想的に表現するならどうなるかということを考えて発表テーマとしました。 今回、ASTがRubyレベルから簡単に触れる様になったので、それを活用してみたかったというのもあります。 内容としてはAST変換を駆使して、あるパターンの変数代入構文を乗

    RubyKaigi 2019で登壇してきました #rubykaigi - joker1007’s diary
    fjwr38
    fjwr38 2019/04/23
  • 開発環境がLinuxに戻ってそれなりにこなれてきたので現在の環境について書く - joker1007’s diary

    Macを捨ててThinkpadにGentooを入れて開発環境としてから2ヶ月が過ぎた。 世の中にはMacから離れようとしてThinkpadを買ったら、矢印キーボード押しにくいとかタッチパッドがクソなので、Macに戻っていった人も居るみたいですが、私としては至極快適に過ごしております。 そもそもThinkpadのタッチパッドは基無効化するものなのでどうでもいい。まあそのスペース邪魔なんだよ、とは思いますがw Wi-Fiの無効化キーを誤爆するという危険があるらしいが、Gentooだと頑張って設定しないとそういう特殊なキーはそもそも動かないので、そんな危険もなく安全ですね。 Gentoo入れてタッチパッドを無効化すれば、Windows10というOSも使わなくていいし、全て解決するんではないでしょうか。 前置きはこのぐらいにして、色々と使うものが安定してきたので今の環境について書いていきます。

    開発環境がLinuxに戻ってそれなりにこなれてきたので現在の環境について書く - joker1007’s diary
    fjwr38
    fjwr38 2017/02/03
  • MacBook Proを捨ててThinkpad T460sを買ってgentooを入れた - joker1007’s diary

    英字キーボード配列にできて開発ユースに耐えうるノートPCがとても選択し辛い昨今、なんとなく安牌ポジションだったMBPについにさよならしました。 元々、Macを好んで使っていたというより、解像度が高くて英字配列にできて電池の持ちが良いというノートPCがMBPだっただけで使ってたのですが。 一番大きな要因がコンテナの利用頻度が増えて開発環境も含めてDockerを使う様になったので、Macだとどうにも面倒だという点です。 docker-machineのデフォルトとかdocker for Macのデフォルトが遅過ぎて話にならないし、dinghy使ってもdocker-sync使っても微妙でかつ面倒くさい。 普通にLinux上で直接動かせるなら、無駄な苦労だと思って、まず開発用PCLinuxにしようと決めました。 そしたら新しいMBPが30万越えるのに、一世代前のCPUとメモリでドヤ顔してくるわ、キ

    MacBook Proを捨ててThinkpad T460sを買ってgentooを入れた - joker1007’s diary
    fjwr38
    fjwr38 2016/11/26
  • CTOとしてデビューすることになりました - joker1007’s diary

    近況報告、というかタイトル通りなのですが、CTOとしてデビューすることになりました。 7月から、最近お世話になってたReproという所のCTOという肩書を得ました。 自営業の個人事業主からいきなりCTOですよw まあ、CTOといっても、そこのフェーズ次第でやることってのは色々と変わってくると思います。 私の当面のミッションは、中長期的なアーキテクチャの方針決定とそれを実際に形にすること。 そしてリクルーティング、つまり転職斡旋おじさん業です。 なので、責任とコミットする割合が増えるだけで、そんなに今までとやってることは変わらないと思う……多分。 まさか自分がCTOになるとは全然思ってなかったんですが、30歳も越えたし肩書きと共に仕事するのも新しい挑戦としては良いかと思いました。 後は、収入ラインとかIT健保の任意継続が切れた後の社会保障の確保ですかね……。まあ、金は大事ですよね。 他にも色

    CTOとしてデビューすることになりました - joker1007’s diary
    fjwr38
    fjwr38 2016/07/14
  • Conroller SpecからREST APIの利用例を自動生成するGemを作ってみた - joker1007’s diary

    最近、スマホからRESTでアクセスしてデータ取ってくるシステムのサーバーサイドを作ることが多いのですが、API仕様書書いてくれと言われて面倒になったので、なんとかしたかった。 そこで、そもそもRESTの入力と出力の仕様って、controllerのspecを書いていればそこに書いてあって出力も取れるので、それを整形してmarkdownにすりゃ大体OKじゃないかと思ったので、controllerのspecを流すついでに自動生成するようなGemを作りました。 Rubyistでない人にソース読んでくれ、とは言えないし。 joker1007/ghost_writer · GitHub なんかGemっぽいキラキラネームにしようと思って、それっぽい名前を付けましたが、相変わらず中身はしょぼいです。特に出力周りがw 後、rpsec-railsに依存しているので、railsじゃないと使えない。 使い方は、こ

    Conroller SpecからREST APIの利用例を自動生成するGemを作ってみた - joker1007’s diary
  • 開発合宿に行ってMeteorで遊んできた - joker1007’s diary

    先週末の5/12, 13と前職の開発合宿イベントに参加してきました。 前職はバリバリの大手SIerだったのですが、オープンソースを扱っている部署は、 開発意欲の高い人が多くて、定期的にこういうイベントを開催しています。 前職に居た時も何度か参加させてもらったのですが、 今回のように会社辞めた後でも参加させてもらえるのは、オープン感があっていいですね。 今回は、同期だった同僚とチームを組んで、最近話題になったMeteorを使ってちょこちょこっと作ってみました。 今回作ったのは、リアルタイムソースコードレビューサイト。 名付けて、「The Source」です。 タバスコの3000倍ぐらい辛いとか言われる香辛料から取りました。 ソースコードの各行にコメントを入れることができ、 入力されたコメントは同じソースコードを見ている人全員にほぼ同時に表示されます。 イメージとしては、ソースコード上でニコニ

    開発合宿に行ってMeteorで遊んできた - joker1007’s diary
  • 1