Ruby
Ubuntu22.04でRubyのERROR: OpenSSL::PKey::PKeyError: rsa#set_key= is incompatible with OpenSSL 3.0を回避する
Ubuntu22.04からOpenSSLが3.0になった。 OpenSSL3.0には後方互換があるようだが、いくつかのライブラリではうまく動かない場合がある。 例えば、Rubyのnet-sshである。 この記事のタイトルにあるとおり、ERROR: OpenSSL::PKey::PKeyError: rsa#set_key= is i…
reddish-shellに使えるか技術検証のためにruby.wasmを試してみる。 最終的にはRustに組み込むことになると思うのでランタイムにWasmer - The Universal WebAssembly Runtimeを使う。 WasmerにはCLIがあるのでそれを使ってみる。 Wasmerのインストール手順は…
Sparrow62(+1) v2キーボードはRasberry Pi Picoをメインとして構成されている。 Rasberry Pi Picoで動きそしてRuby(Pico Ruby)で動くキーボードファームウェアとしてPRK Firmwareがある。 github.com Sparrow62(+1) v2でPRK Firmwareを動かしてみたという備…
注意: この記事で紹介しているonelog-ruby-sdk v3.0.0-alpha.1は開発版であり今後大幅に変更される可能性がある OneLoginのAPIをRubyから操作するライブラリとしてonelogin-ruby-sdkがある。 OneLogin公式が提供しているライブラリで安心感があるのだが、こ…
before/after cargo testで大きめの構造体をassertすると↑のbefore画像みたいにとても長い出力になる。 長すぎてどこに差分があるかわからなくてとても苦労する。 そこで、afterのように色をつけるスクリプトを作ってみた。 #!/usr/bin/env ruby require 'te…
※ Chef + Knife-Zeroな環境を想定してこの記事を書いている。 かなり特殊な状況ではあるが、chef-clientの実行ユーザがubuntuのときにはubuntuユーザの削除を行わないということがしたい。 想定状況としては、Ubuntu VMを新たに立ち上げてbootstrapをかけ、…
LINSTORはLINBIT社が出しているSoftware-Defined-Storageを実現するためのミドルウェアである。 もともとはdrbdadmの代替として登場したと記憶しているが、いつのまにかDRBD以外の管理もできたりk8sやOpenStackから利用できるようになっている。 linbit.com …
psコマンドの -o sigmask や、/proc/$pid/statusのSig〜は16進数の文字列で表示されていて、該当するbit数のシグナルにフラグが立っているというような見方になっている。 例えば、ps -o sigmaskで1の位が3ならHUP(1)とINT(2)がマスクされていることになる。…
ISUCON11に @pyama86 と @osamtimizer と3人で参加した。 ベストスコアはリーダーボード上で15977。その後ポータル上で記録はされなくなたけど、@pyama86がRedisでのキャッシュを入れたのが反映されて16128になっていた。 感想 12:00くらいにGET /api/trend…
v0.9.0のアップデートから1日くらいしか経っていないけどmruby3.0に対応したので新バージョンリリース。 commit一覧: 7e9242c v0.10.0 e5ef68b Merge pull request #3 from buty4649/readme e03874d Add notes on using iruby. 0319149 Update README.md 373…
reddish-shellのバージョンアップ報告。 粛々と開発つづけてきて、やっと普通のシェルくらいの機能にはなってきたかな?しかし、まだ実用までは長い。。 今回は特にシグナルハンドリング周りがとても大変だった…。 commit一覧 ba37780 Include all core gems…
前回から間が空いてしまったが久しぶりのバージョンアップ。 間が空いてしまったのは、あまりいい実装案が思いつかなかったのが原因。ooo このままだ、ズルズル開発が止まってしまうと思ったので、一旦実装したいやつを後回しにしてできるところから作ってい…
前回、if文におけるthenキーワードを省略できないと書いたが、画期的なアイディアをひらめいて解決したので嬉しくなってバージョンアップした。 そして、この記事を書いている途中でunless文のthenを省略できるようにすることを失念したことに気がついた…。 …
期限のあるなにかに迫られていると、別のことが捗るわけでreddish-shell v0.6.0になった。 一区切りついたので、もう1つの進捗も上がるだろうたぶん・・・ commit一覧 * f4d5f0a Improve parser * 69a3c3c Improve lexer * 33e0a64 Add if statement * ced3…
先月からほそぼそと作っているシェルのv0.4.0をリリースした。 github.com 追加した機能としては リダイレクト機能 コマンド制御演算子 && / || / ;' /&` パイプ機能 cmd1 | cmd2 ビルトインコマンド builtin / cd / echo / puts %記法 %Q / %q bintestの追…
この記事はペパボアドベントカレンダー2019の1日目の記事です。 今年も残り1ヶ月。早いものです。 ペパボでは、OpenStackを使ってプライベートクラウドを構築しています。 OpenStackを運用するうえで、APIを利用して情報を取得したり、インスタンスを作成し…
ngx_mrubyを使ってNginxを制御するときに、 mruby_set と if を使うことが多いと思います。 例えばiPhoneからのアクセスの場合のみ特定の処理をしたいとします。 その場合以下の様なコード(nginx.conf)になると思います。 mruby_set_code $is_iphone ' hin =…
貴様は今までにSlackで審議リアクションを付けられた数を覚えているのか?— ぶてい (@buty4649) 2016年5月25日 A. 85 Slack APIでリアクションが取れることを知ったので実際にカウントしてみた。 最初 reactions.list で取ろうと思ったけど、これはリアクシ…
先週サボってしまったので社内で課題になっていたAtCoder034と、来週までの宿題のAtCoder038を解いた。 AtCoder034 A: Submission #748515 - AtCoder Beginner Contest 034 | AtCoder B: Submission #748523 - AtCoder Beginner Contest 034 | AtCoder 特筆…
buty4649.hatenablog.com 前回解いたAtCoder035をもう一回解き直した。 まず最初に作ったのはテストを追加した。 例題の問題を突っ込んで、答えがあっているかを確認するだけ。 https://github.com/buty4649/atcoder/tree/master/035/spec 次に、Aを直した。…
最近社内でAtCoderを解いて、互いにレビューしよう!みたいなことをやっている。今週のお題は035。 abc035.contest.atcoder.jp 1時間1本勝負で解いてみた。 といっても、1時間で解けたのはAとBだけで、Cは途中まで手をつけて回答を送信したのが1時間20分くら…
speakerdeck.com 第5回ペパボテックカンファレンス〜インフラエンジニア大特集〜 - connpassという会社のカンファレンスで発表しました! 発表後に id:matsumoto_r から補足いただきました! ありがとうございます m( )m luaを積極的に使う場合はブロックす…
github.com 不要なS3バケットを削除しようと思って、 s3cmd rb --recursive --force s3://foobar を叩いたけど全然削除されなかった。。。 WebUIから削除しても エラー としか表示されずなぜか削除できない。。 ネットで調べるとどうやらオブジェクトが多す…
2015/07/27追記 id:lamanotrama さんから * JSONじゃなくてYAMLでは? * それglidenote(さん)が作ってるよ - glidenote/genecon · GitHub っていうことを教えてもらいました!あざまっす! やっぱり車輪の再発明だった!つくりこまなくてよかったー サーバか…
csvprintf とか csvfilter とか試したけどしっくりこず。 awkな感じでさっくりCSVをいじれたらいいなぁっと思って作ってみた。 けど、イマイチ感。 $ csvawk() { eval "ruby -rcsv -lne 'CSV.parse(ARGF){|r| \$_=r.join(\",\");\$F=r;$1}' $2"; } $ cat hog…
作った。 alias git=hub すればいいのだけど、これだとGH:Eなリポジトリだとうまくいかない。 なので、てきとーにラッパースクリプトを作った。 https://github.com/buty4649/dotfiles/blob/master/bin/git-browse
str = "ほげhoge" p str.gsub(/[^\u0000-\u007f]/).each{|m| sprintf("&#x%04x;",m.unpack("U")[0])'} //-> "ほげhoge" まぁ、普通にhtmlentitiesライブラリ使った方がいいと思います。
AMIのUbuntu 13.04にrbenvとplenvをインストールした時のログ 下書きのまま放置してた… rbenv $ sudo apt-get install gcc make git libssl1.0.0 libssl-dev $ cd /usr/local $ sudo git clone --depth 1 https://github.com/sstephenson/rbenv $ sudo vi /e…