タグ

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

  • 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
    yk5656
    yk5656 2023/11/01
  • ソフトウェアエンジニアとしての能力を高める方法について考えてみた - joker1007’s diary

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

    ソフトウェアエンジニアとしての能力を高める方法について考えてみた - joker1007’s diary
  • 1000万件オーバーのレコードのデータをカジュアルに扱うための心構え - joker1007’s diary

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

    1000万件オーバーのレコードのデータをカジュアルに扱うための心構え - joker1007’s diary
    yk5656
    yk5656 2020/11/05
  • パーフェクトRails著者が解説するdeviseの現代的なユーザー認証のモデル構成について - joker1007’s diary

    最近、パーフェクトRuby on Railsの増補改訂版をリリースさせていただいた身なので、久しぶりにRailsについて書いてみようと思う。 まあ、書籍の宣伝みたいなものです。 数日前に、noteというサービスでWebフロント側に投稿者のIPアドレスが露出するという漏洩事故が起きました。これがどれぐらい問題かは一旦置いておいて、何故こういうことになるのか、そしてRailsでよく使われるdeviseという認証機構作成ライブラリのより良い使い方について話をしていきます。 (noteRailsを使っているか、ここで話をするdeviseを採用しているかは定かではないので、ここから先の話はその事故とは直接関係ありません。Railsだったとしても恐らく使ってないか変な使い方してると思うんですが、理由は後述) 何故こんなことが起きるのか そもそも、フロント側に何故IPアドレスを送ってんだ、という話です

    パーフェクトRails著者が解説するdeviseの現代的なユーザー認証のモデル構成について - joker1007’s diary
    yk5656
    yk5656 2020/08/17
  • 私的リモートワークの良い点、悪い点 - joker1007’s diary

    Twitterでちらっと見かけたので、自分も良い点と悪い点をまとめてみようと思う。 良い点 電車に乗らなくて良い ミーティング開始の5分前まで寝てられる 人の話し声がしない 話しかけられずに済む 疲れたらいつでもベッドにダイブできる ちゃんとアウトプットしてれば、仕事している様に見せなくてもいい 寝間着で仕事ができる ハイスペックなPCが使える WiFiが不安定みたいなトラブルが少ない 良い椅子が使える ヘッドホン無しで音楽が聞ける いきなり歌い出しても、誰も変な目で見ないし、迷惑がかからない 基的に引き篭りなので、自宅の環境が快適になる様に腐心した結果、大抵のオフィスより自宅の方が執務環境として優秀であり、自宅より仕事に関する物の水準が高い会社というのをほぼ見たことがない。 そして、日常生活において、歌うというのが精神の健康上とても大事なので、音楽を聞きながら突然歌い出したりしたいのだ

    私的リモートワークの良い点、悪い点 - joker1007’s diary
  • 開発環境がLinuxに戻ってそれなりにこなれてきたので現在の環境について書く - joker1007’s diary

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

    開発環境がLinuxに戻ってそれなりにこなれてきたので現在の環境について書く - joker1007’s diary
  • 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
    yk5656
    yk5656 2016/11/26
  • Railserなら知っておくべき地味だけど便利なメソッド - joker1007’s diary

    Railsのバージョンは3.2.8時点のものです。(2012/8/21追記) 前回の冒頭で書いてたので、Rails版も書いてみようと思う。 要は、困ったらリファレンスマニュアルのそれっぽいところ見れば、 Ruby/Railsは大体解決してくれるよ(しかもスマートに)って感じなので、 悩んだらハマる前に一回公式に帰るのもいい手段だと思ってます。 でも、RailsAPIリファレンスどこに何書いてるか分かりづらいと思う。 例えば、has_many関連には、実は:after_addとか:before_removeとか、 その手のコールバックをProcで渡せるんだけど、メソッドの説明の所に書いてないんよね。 上の方のクラス全体の説明の所にAssociation Callbackって項目があって、 そこで地味に説明されてたりとか。 この辺、もしかしてpull request候補かな。 メインはAct

    Railserなら知っておくべき地味だけど便利なメソッド - joker1007’s diary
    yk5656
    yk5656 2012/08/19
  • Rubyistなら知っておくべき地味だけど便利なメソッド - joker1007’s diary

    備忘録兼、初心者向けのメソッド一覧。 余裕があればRails編とかも書こうかな。 これ忘れてるとか何事?とかいう突っ込みがあれば是非お願いします。 もうちょっとコードの具体例書きたかったけど、めんどくさくなってきたw Array Array#combination(n), Array#permutation(n) 配列のデータを元に組み合わせ(順列)を作ってくれます。 ブロックを渡さない場合はEnumeratorで組み合わせの各要素を列挙します。 Enumerator Enumerator#with_index(offset = 0) Enumeratorの各要素に合わせてindexを列挙してくれるEnumeratorを返す。 each_sliceやcombination等にメソッドチェインで繋げて使う。 Enumerator#with_object(obj) with_indexと同様で

    Rubyistなら知っておくべき地味だけど便利なメソッド - joker1007’s diary
    yk5656
    yk5656 2012/08/16
  • Shibuya.rbで「俺のRails開発環境」という題で発表してきた (資料補足) - joker1007’s diary

    ちょっと前にいつだったか、自分の開発環境についてまとめた記事でも書こうかと思っていたんですが、 ついでだからShibuya.rbでLTのネタにしてしまえと、話をしてきました。 ちなみに、今回のShibuya.rbは何か話したい人が居たらどうぞって感じだったのですが、 いつのまにかLT大会になってましたw 俺のRails開発環境 View more presentations from joker1007 内容としては至極一般的な環境だと思いますが、 資料アップしたところ結構反響があったので、 やっぱ人の環境は皆気になってるのかなーと。 後は、これからRails始める人とかかな? 資料の補足 インテグレーションテスト cucumberを使ってるのは慣れによる所も大きいですが、 今は業務上の理由でコード書く人とテストケース書く人が分離しているので、 request specは使ってなかったりし

    Shibuya.rbで「俺のRails開発環境」という題で発表してきた (資料補足) - joker1007’s diary
    yk5656
    yk5656 2012/05/18
  • 1