タグ

ブックマーク / tagomoris.hatenablog.com (34)

  • sqldefをMySQLに対してAWS Lambdaから実行するパッケージを作った - たごもりすメモ

    k0kubun/sqldefはすばらしいプロダクトで便利に使ってるんだけど、もちろんDBに接続できる場所から実行する必要がある。で、DBAWSのprivate VPCにあるのでラップトップやCI環境からやるというわけにはいかない。しょうがないので、現在はEC2インスタンスを作成して使うときだけ起動、終了したら停止してた。んだけど、これがまた面倒なんだよね。起動と停止も面倒だし、なんかあったときに確実に作り直せるようにするには……とか考えるのもダルいし、EC2へのSSHする方法やEC2へリポジトリをチェックアウトする方法も考えないといけないし。 なのでしばらく考えてたんだけど、Lambdaでやれるといいんだよな、という希望を現実的に考えて実装してみた。のがこちら。 github.com こいつは大変便利。リポジトリをcloneして、プライベートリポジトリからスキーマファイルを読み込むならデ

    sqldefをMySQLに対してAWS Lambdaから実行するパッケージを作った - たごもりすメモ
    fumikony
    fumikony 2023/05/02
  • 「研鑽Rubyプログラミング」はライブラリ作者の知識・技術の幅と深さを拡大する1冊 - たごもりすメモ

    「研鑽Rubyプログラミング」を読んだので、その感想を書く。 届いた。研鑽を積むぞ! pic.twitter.com/YuL5WUyjap— tagomoris (@tagomoris) 2023年4月15日 なお書の訳者である角谷さんにをお贈りいただきました。が、その前から同書のβ版(電子版)を購入していたため、実際にはほとんどをそちらで読みました。*1 エントリの言いたいことは、様々な状況に対応してコードを書くには知識・技術の幅と深さが重要で、書はそのための重要なインプットとなるでしょう、です! 総論: さまざまなRubyの書きかたを学べる さて、このは初手から対象読者を「中級から上級のRubyプログラマー」としており、そのものの目的は「まえがき」の先頭にもはっきり書かれています。少し長めに引用します。 書の目的は、中級から上級のRubyプログラマーが従うべき有用な原則を

    「研鑽Rubyプログラミング」はライブラリ作者の知識・技術の幅と深さを拡大する1冊 - たごもりすメモ
  • 象印の加湿器が最高で当面これしか使いたくないという話 - たごもりすメモ

    ちょっとTwitterに書いたらい付いてくる人が多かったので、ではアピールしとこうと思った。 象印の加湿器、とにかく手入れが簡単でこれ以外の加湿器はもう二度と買う気がないというくらい最高— tagomoris (@tagomoris) 2023年1月7日 TL;DR 衛生面などを考えると加熱式加湿器*1を使いたい 加熱式加湿器は加熱部に残留物が結晶化して固まるので手入れがめちゃ面倒 象印のやつは電熱ポットと同じなので、たまにクエン酸ぶちこむだけで超ラク、最高です 加湿器運用の手間を減らしたい人にとにかくお勧めです 自分が使ってるのはこれ。今年大きいのを買い足した。旧モデルの小さい方とあわせて2台とも使ってます。 EE-DC35・50 | 加湿器 | 生活家電 | 商品情報 | 象印マホービン 加湿器を加熱式のに替えるとき、某社従来型*2と象印の(2020年モデル)と2台買ったんだけど、手

    象印の加湿器が最高で当面これしか使いたくないという話 - たごもりすメモ
    fumikony
    fumikony 2023/01/10
  • LFAというAWS API Gateway用Lambdaをそのまま動かすRuby用Web frameworkを作った - たごもりすメモ

    この記事はRubyアドベントカレンダー2022の15日目の記事です。 以下のような話をお送りします: AWS Lambda + API Gatewayを使ってる話 LFAというWeb frameworkをガッと書いた話 LFAでLambdaの手元開発が楽になるのではという話 Ruby 3.1で導入されたKernel#loadの便利機能が超便利という話 Lambda関数ごとに環境変数ENVの内容を変えたいという話 最近AWS Lambdaべったりな話 最近自分でサービスを作ってるんですが、サーバサイドは全部AWS Lambda + API Gatewayでやっつけてます。 EC2を常時起動して管理するのもやだし、大した規模でもないからゴツいビルドパイプラインをセットアップしてコンテナイメージをビルドするのも面倒だし、みたいなことを考えると、コードをそのまま送り付けるとあとは動きつづけてくれる

    LFAというAWS API Gateway用Lambdaをそのまま動かすRuby用Web frameworkを作った - たごもりすメモ
  • Fluentdのflush_mode immediateはいつ使うのか - たごもりすメモ

    Fluentd実践入門をあらためて手元でぱらぱらやってたら、しまった! この話をどこかにちょっとでも書こうと思ってたのに忘れてた! という話が出てきたので、忘れないうちに書いて放流する。 flush_modeとはなにか FluentdのOutputプラグインには<buffer>セクションで指定できるflush_modeというパラメータがあって、これはOutputプラグインがどういう基準でバッファ内のデータを書き出す(writeメソッドを呼ぶ)かという戦略をコントロールする。有効な値はdefault、immediate、interval、lazyの4つ。 ただし多くのケースでこのパラメータは明示的には指定されていないはず。というのも、デフォルト値であるところのdefaultの場合には、<buffer>セクションに指定されている他のパラメータ((と、例外的に<buffer>セクションの外側に指

    Fluentdのflush_mode immediateはいつ使うのか - たごもりすメモ
    fumikony
    fumikony 2022/10/15
  • 「Fluentd実践入門」を10月8日に出版します - たごもりすメモ

    Fluentd実践入門 Fluentdの現バージョン(v1.15)について世界で一番詳しいです。というか、Fluentdそのものだけについての、おそらく世界で唯一の技術書です。 出版社は技術評論社です。電子版もGihyo.jpやKindleはじめ各社で出ます。買ってね! gihyo.jp TL;DR 発売日は10月8日です 一部書店ではちょっと早く9月末に並ぶかも 電子版は発売日よりちょっと前に出るかも1 544ページ、Fluentd体については考えられる限り盛り込みました Fluentdをなんとなく使っている人が確信を持って使えるようになれるはず 組込みプラグインの頻出用法、番環境での運用ノウハウ、プラグイン開発からテストなどまで エコシステム的な部分についてはカバーできていません Kubernetes上での運用やFluent Bitとの組み合わせとか AWS FireLensやG

    「Fluentd実践入門」を10月8日に出版します - たごもりすメモ
    fumikony
    fumikony 2022/09/06
  • Amazon SESのメール受信は特定のリージョンでしか使えない - たごもりすメモ

    メモ。ap-northeast-1のコンソールでSES開いてても"Email Receiving"の"Rule Sets"が灰色になった(gray outした)ままで選択できなくて、ドメインのverifyとかIAMとかで何かうまくいってない? と調べてまわってた。 結論としては特定のリージョンでしかサポートされてない。 Email Receiving Endpoints Amazon SES doesn't support email receiving in the following Regions: US East (Ohio), US West (N. California) Asia Pacific (Mumbai), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacif

    Amazon SESのメール受信は特定のリージョンでしか使えない - たごもりすメモ
    fumikony
    fumikony 2021/11/05
    知らなかった
  • RubyKaigi Takeout 2021でしゃべった - たごもりすメモ

    RubyKaigi Takeout 2021の途中ではあるけど、とりあえず自分の発表終わったのでメモ。 Ractor's speed is not light-speed from SATOSHI TAGOMORI Ractorをワーカーとして使うアプリケーションサーバを作ったよ! という話なんですが、まあこれは話の入りというかそういうもので、実際の内容の中心はRactorではどういうコードが動かないのか、どうすればよいのか、みたいな話です。 で、Ractorで動かないコードは全体的には直していきたいよねということになると思いますが、そうはいっても動かしてみないと確認もできないじゃんということで、主な問題であるところのWebアプリケーションを実際にRactorの上で動かして確認できるようにしておきましたよ、というのが今回作ったright_speedです。 github.com 当はRac

    RubyKaigi Takeout 2021でしゃべった - たごもりすメモ
  • macOS Big Sur なM1 MacのEmacsでDocuments以下のファイル(など)を開く - たごもりすメモ

    M1 mac (macOS Big Sur)買ってからまだちゃんと開発とかに使えてなくてちょっとずつセットアップ進めてるんだけど、Emacsで ~/Documents 下とかが読めないことに気付いた。以前のバージョンで指摘されてた解法であるところの以下の方法もダメ: M-x ns-open-file-using-panel で一度Documents下のファイルを開けばいける → ダメ EmacsにFull Disk Access権限を与える → ダメ 実は裏技で/usr/bin/rubyにFull Disk Access権限を与える → なんかファイル開くダイアログで/usr/binとかが開けなくなってない?(ダメ) というわけで調べてたらこんなのが見付かった。 braveam.com Can not do dired on ~/Documents when it is in iCloud

    macOS Big Sur なM1 MacのEmacsでDocuments以下のファイル(など)を開く - たごもりすメモ
  • この時期、業務で低パフォーマンスを出し続ける覚悟 - たごもりすメモ

    今この時期、もちろん弊社もCOVID-19関連の事情を鑑みてテレワーク……とはあんまり自分の回りでは言わない、リモートワーク(もっと言うとWFH: Work From Home)してる。自分が完全WFHに切り替えたのは1月半ばくらいだったかなー。もう3ヶ月ですね。 で、どうかというと、業務のパフォーマンスで見ると、自分のいまのパフォーマンスは明らかに悪い。少なくとも良くはない。それは自分でもわかってる。 でももう、これはしょうがない、と思うので、覚悟している。高パフォーマンス出せたらいいとは思うけど、同時にどう考えても無理して仕事で高パフォーマンス出すような時期でもないと思う。 だからこのエントリは、まあしょうがないよね、というのを受け入れよう、という話です。*1 なおこのエントリは業種柄、リモートワークに移行しやすい自分の話しかしていません。生活必需品や医療品関連の小売店舗や病院、窓口が

    この時期、業務で低パフォーマンスを出し続ける覚悟 - たごもりすメモ
  • 高負荷システムでNVMeデバイス使用時のfstrimとdiscard mount optionの話 - たごもりすメモ

    先にまとめると ディスクI/Oに高い負荷をかけるシステムでNVMeデバイスを使うときweekly cron jobでfstrimが走る状況になってたら停止しろ じゃないとfstrimが走った瞬間にI/Oパフォーマンスが刺さって死ぬ fstrimを停止するならdiscard mount optionを有効化しろ、ただしその状態でのI/O性能で問題ないかどうか測っておけ discard mount optionを有効化しても大きいファイルの削除には気をつけろ、プチfstrimみたいになるぞ 追記されるばかりで大きくなるファイル(そして削除されるファイル)はNVMeじゃないデバイスに置いとけ 高I/Oスループットを期待するシステムでのNVMeとfstrim 社内で小さめのインスタンスを多く並べてトラフィックを捌いてたのを色々要件があって大きめのインスタンスにまとめるようなシステムアップデートをや

    高負荷システムでNVMeデバイス使用時のfstrimとdiscard mount optionの話 - たごもりすメモ
  • Rubyで try-with-resources (あるいは with/using)をやりたいという話 - たごもりすメモ

    前のエントリで書いたうちに入っていたが、Rubyでも try-with-resources (あるいはPythonで言う with やC#で言う using)が使いたいなー、という話。 Feature #13923: Idiom to release resources safely, with less indentations - Ruby trunk - Ruby Issue Tracking System Ruby体にFeature request出してみたんだけど、ライブラリでやればいいんじゃないの、という結論になってしまって、ええーと思っている。ライブラリだといくらでもある方法のひとつになってしまって、他のプログラマ(他所のライブラリ作者とか)に「これを使え」という話がしづらいんだよねえ。あとgemにして広く使われたとしても、この機能のバージョン指定がgemどうしで衝突してト

    Rubyで try-with-resources (あるいは with/using)をやりたいという話 - たごもりすメモ
  • 「そのデータ分析基盤、作るか? 使うか?」という話をしてきた - たごもりすメモ

    ファンコミュニケーションズさんが自社オフィスで勉強会をはじめるということで、第1回でしゃべりませんかというお誘いを受けたので参加してきた。お誘いありがとうございました! eventdots.jp 内容はどうしようかなと思ったんだけど、相談してみたら過去のこのエントリのスタートアップ限定じゃない話とかどうかというものがあり、自分でも面白そうだったので、そんな感じで内容をまとめてみた。 To Have Own Data Analytics Platform, Or NOT To from SATOSHI TAGOMORI まあトピックと自分の現在の勤務先からしてどうしても内容にバイアスがかかると思われるのはしょうがない……ので割り切った宣伝スライドはまあ1枚入れるとして、それ以外はいちおう公平な議論を目指したつもり。 で、中にも書いてあるけど、明確な結論なんてものはなくて、各社個別の事情にあわ

    「そのデータ分析基盤、作るか? 使うか?」という話をしてきた - たごもりすメモ
  • プログラミングを始める動機はどこにあるのか、の話 - たごもりすメモ

    あるいは「高校生からはじめるプログラミング」の話。 こちらのKADOKAWA様からいただきました。ありがとうございます。なぜ自分に……*1などと思わなくもなかったけど、ありがたく眺めさせていただきました。今となってはこういうガチ初心者向けの教を眺める機会なんて皆無だしなあ。 SAOのコンテンツ力が表紙/裏表紙と章立てのページに発揮されてるけど、他のページはごく普通のプログラミング教で、特に中身との連携はなかった。これで売上とか変わるのかな。変わりそうだなあ。 で、ざらっと眺めたあと、タイミングよくプログラミングを始める動機ってなんなんだろうな、と思ったので、それに絡めて書く。 の中身 最近のプログラミングの導入ってそもそも何をやるの、みたいなのがぜんぜん分かってなかったので、ちょっと新鮮だった。思えば技術要素を特定しない「プログラミング入門」のというのは人生で初めて読んだかもし

    プログラミングを始める動機はどこにあるのか、の話 - たごもりすメモ
  • CRuby/JRubyで実行可能かつmrubyでビルド可能なコードを書く - たごもりすメモ

    msgpack-inspectを作った話に書いたが、このツールはエントリにも書いたとおり rubygems.org に公開されていて CRubyJRuby でインストール・実行可能である。その一方でバイナリをダウンロードするだけで使えると便利だよねってことで、mrubyでクロスコンパイルしてリリース版が置いてある。 これは実はそこまで簡単ではなくて、Rubyの機能のうちmrubyでもサポートされている文法や組込みライブラリの範囲しか使えないのはもちろん、たとえば外部のライブラリに依存する機能*1などは mruby でクロスコンパイルしようとすると地獄を見ることなどもある。 そんな事情もあって、今回クロスコンパイルしたリリースに成功するまで、けっこうな手間をかけた。ここにそのへんをざらっと書いておこうと思う。 やったこと mruby-cliを使う 基的にmrubyでビルドするための準

    CRuby/JRubyで実行可能かつmrubyでビルド可能なコードを書く - たごもりすメモ
  • TCP serverをSSL/TLS化するのに nginx の stream_ssl_module/stream_proxy_module が便利 - たごもりすメモ

    最近 Fluentd の通信プロトコルまわりをアップデートするためにあれこれいじっている*1んだけど、これはおおむね fluent-plugin-secure-forward がサポートしていた内容を Fluentd 組込みの forward plugin でもサポートしますよ、というものになる。 んで問題なのが secure-forward は SSL/TLS での接続のみしかサポートしてなかったんだけど forward では生の TCP で通信する*2ので、当に secure-forward と forward それぞれの実装間で互換性が保たれているのか、直接的には確認する手段がない、ということになってしまう。 TCP server の SSL/TLS 化 一方世の中には SSL/TLS ターミネータという機能があって、たとえばロードバランサなんかがこの機能を持っている。何をやるかと

    TCP serverをSSL/TLS化するのに nginx の stream_ssl_module/stream_proxy_module が便利 - たごもりすメモ
  • 松江市でOSSの話をした & Fluentd meetup をやった - たごもりすメモ

    なんか最近プレゼンテーションやった話しかエントリに書いていない……。。。 それはともかく、しまねOSS協議会というところから周年記念講演で話さないかというお誘いがありまして、お受けしたので島根県松江市で話してきた。せっかくRuby City Matsueに行くことだしついでにイベントやってこようということで Fluentd meetup in Matsue もやることになり、そんなわけでふたつ発表してきた。 第106回オープンソースサロン・総会記念講演 第106回オープンソースサロン・総会記念講演 | しまねOSS協議会 OS4 しまねOSS協議会ということで、オープンソースソフトウェアの話。 Open Source Software, Distributed Systems, Database as a Cloud Service from SATOSHI TAGOMORI というか、ト

    松江市でOSSの話をした & Fluentd meetup をやった - たごもりすメモ
  • Stream Processing Casual Talks #1 に行ってきた&しゃべってきた - たごもりすメモ

    なんか、やろうぜー、という話になってそのような勉強会が行われたので、参加してた。 connpass.com 会場&飲の提供はYahoo! Japanさん。ありがとうございました。面白かった。 しゃべってきた Norikraそのものの話はさすがに今更感あったので、Norikraの大事なところと、あとPerfect Norikra (仮)について話してきた。 How to Make Norikra Perfect from SATOSHI TAGOMORI まあ、まだ1byteも存在しないソフトウェアなんだけどな! 存在しないソフトウェアについて話せるようになったの、ちょっと実績解除感があるのではないだろうか。だめか。 Norikraを分散処理対応にするにはクエリ処理エンジンおよびデータ転送層を丸ごと書き直すしかないなー、しかもそこに色々なアイデアが必要だなとは思っていて、そのうちのひとつで

    Stream Processing Casual Talks #1 に行ってきた&しゃべってきた - たごもりすメモ
  • YAPC::Asia Hachiojiに行ってきた&しゃべってきた - たごもりすメモ

    この週末に開催されていた YAPC::Asia Hachioji に参加してきた。2日目は体調崩してダウンしてたので1日目だけだったのが残念だけど、楽しかったー。 yapcasia8oji-2016mid.hachiojipm.org しゃべってきた 普段あんまりプログラミングテクニックそのものについてはプレゼンをやる機会がないんだけど、Fluentd v0.14で使わざるをえなかったあれこれとか一度しゃべっとくかということで出してたので、やった。主に黒魔術について。なんだろう、使っても許される黒魔術の用途と実践、みたいな感じ? Fighting API Compatibility On Fluentd Using "Black Magic" from SATOSHI TAGOMORI 30分という時間*1で何故そういうハックが必要なのかを説明して実装を説明して、ということになって、また大

    YAPC::Asia Hachiojiに行ってきた&しゃべってきた - たごもりすメモ
  • Fluentdの設定ファイルを快適に記述するたったひとつの正しいやりかた - たごもりすメモ

    Emacs で apache-mode を使おう!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    Fluentdの設定ファイルを快適に記述するたったひとつの正しいやりかた - たごもりすメモ
    fumikony
    fumikony 2016/05/10
    なるほど!!