Gitでコメントを無視して差分を見る

古いRubyのコードのコメントを独自のRDoc形式からYARD形式に変換して、さらにその後にプログラムを変更したんですが、その後に差分を見ると大量のコメントの差分が表示されて、実際のコードの差分が何かわからなくなったりしたので、コメントを無視して差分…

Rubyのbundlerをアップデートしたらプログラムが動かなくなった話

Ruby の bundler を 1.13 から 1.15 にアップデートしたら今まで動いたプログラムが動かなくなりました。 こんな感じ: % bundle _1.13.7_ exec ruby -r./hoge.rb -e Hoge.new % % bundle _1.15.4_ exec ruby -r./hoge.rb -e Hoge.new hoge.rb:3:in `initiali…

第5回「オブジェクト指向設計実践ガイド」読書会に参加しました

11/1 NSEGの「オブジェクト指向設計実践ガイド」読書会の第5回に参加しました。参加者7名でした。 nseg.connpass.com 今回は第5章を読みました。 オブジェクトの型(クラス)を調べて処理を変えるというコードの例としてcase文が使われてました: case preparer…

実行中プログラムのイメージを得る

Twitter見てたらこんなこと言ってる人がいました。 Unix で実行中の実行ファイルのパスを確実に得る方法はない、というのは FAQ だと思うけど、実際にやりたいことは自分自身を別プロセスで新たに立ち上げたいということなので、メモリにロード済の自分自身…

Ubuntu Mate 17.10

Ubuntu 17.10 が出たので、Xubuntu を 17.10 にしてみた。 あんまり代わり映えしなかったので、GNOME ベースになったという Ubuntu を使ってみた。 % sudo apt install ubuntu-desktop あいかわらず、アプリのメニューバーがアプリのウィンドウ内ではなく、…

Rubyおもしろい

Rubyは括弧をつけなくてもメソッドを呼び出せます。メソッド名は普通は英小文字で始まります。ローカル変数も英小文字で始まります。 こんなRubyプログラムを実行すると(ifの条件部で代入しているのはtypoではありません)、 def hoge 123 end p hoge x = 456…

QNAPの外付けディスクに日次差分バックアップ

最近1ドライブのQNAP(TS-121)を使ってるんだけど、やっぱりバックアップしないと恐いので、USBの外付けディスクをつけてバックアップすることに。 QNAPのミラー機能はなんかよくわからないしいまいち信用できないので、rsync を仕込んでみた。 ssh で QNAP …

MySQL の max_connections, table_open_cache, open_files_limit の関係

昔書いた記事を久々に見てみたら何書いてあるかさっぱりわからなかったので、最新情報で書き直してみます。 tmtms.hatenablog.com 以下は MySQL 5.6, 5.7 について書かれています。 MySQL の max_connectoins, table_open_cache, open_files_limit パラメー…

第3回「オブジェクト指向設計実践ガイド」読書会に参加しました

10/4 NSEGの「オブジェクト指向設計実践ガイド」読書会の第3回に参加しました。参加者11名でした。盛況ですね。 nseg.connpass.com 今回は第3章を読みました。 コード例が単順すぎて、より良い設計として挙げられてるコードがいまいちピンとこないところもあ…

NoException

役に立たないライブラリを作るシリーズです。 最近例外を発生させない某言語が流行ってるらしいと聞いて作ってみました。 インストール % gem install tmtms-noexception なんと noexception という名前は既に取られてた! 使い方 こんな風な例外を発生させ…

AutoForker

Rubyで何の役に立つかわからなくて自分でも使わない誰得なライブラリを作るのが趣味なのですが、RubyKaigiに参加して高まったので一つ作ってみました。 というか実際にはRubyKaigi前に作ってあったけど名前が思いつかなくて放置していたのですが、RubyKaigi…

RubyKaigi2017

RubyKaigi2017に参加したのでメモ。 0日目 10時に家を出て6時間掛けて広島へ。 広島は台風の直撃コースでどうなるかと思いましたが新幹線はちゃんと定時に広島に到着しました。 広島より先が停電したらしく乗ってきた列車は広島止まりで、その後は結構遅れた…

NSEG #92

9/16 NSEG #92 に参加しました。参加者9人でした。 アベさんが「kotlin Null Safety」という発表をしました。 Kotlinでぬるぽを発生させる方法あれこれの紹介でした(?)。 http://rayflood.org/diary-temp/nseg92.html それ以外はネタが無かったので、「横浜…

第1回「オブジェクト指向設計実践ガイド」読書会に参加しました

9/6 NSEGの「オブジェクト指向設計実践ガイド」読書会の第1回に参加しました。参加者8名でした。 nseg.connpass.com 第1章は導入部って感じで具体的なことはあまり書かれていなかったのですが、胃が痛くなるようないい話が満載でした。 設計がないと、管理さ…

reveal-ck

ここ半年くらいプレゼンのスライドはreveal-ckというのを使ってます。 github.com reveal-ck は、ブラウザ上のプレゼンツール reveal.js を簡単に使えるようにしたものです。 LinuxでもFirefoxが色付き絵文字を使えるようになったのをきっかけに、Markdownで…

とちぎRuby会議07に参加しました

8/26に開催されたとちぎRuby会議07に参加してきたので雑感等。 昼飯の唐揚げのボリュームがすごい。 お弁当「小盛り」を頼んだのにこの大きさΣ(・□・;)アメリカ飯を思い出したよ!#toRuby pic.twitter.com/Z1yx77cxMh— ちょまど@MS本社チームになった (@c…

Gemの作り方

RightCSVで久々にGemを作ったので、最近のGemの作り方をメモっときます。 GitHub上にリポジトリを作って git clone 別に最初にやらなくてもいいですけど、どうせ GitHub で公開するのなら最初にやっといた方が楽です。READMEやLICENSEファイルも作ってくれま…

Rubyのnilを返さないCSVライブラリ

RubyのCSVライブラリは何故か空フィールドについてnilを返します(「"」で括られていると空文字列を返します)。 require 'csv' CSV.parse('a,,"","1,2"') do |row| p row end #=> ["a", nil, "", "1,2"] なのでそれを考慮していないと NoMethodError(いわゆる…

第15回 SQLアンチパターン読書会に参加しました

8/2 NSEGの「SQLアンチパターン読書会」の第15回に参加しました。 nseg.connpass.com 隔週の水曜日の夜に開催しています。だいたいいつも3〜4人くらいでこじんまりとやってます。今回は4人でした。 一人が1〜2ページくらいを音読して、気になったことをみん…

第14回 SQLアンチパターン読書会に参加しました

NSEGの「SQLアンチパターン読書会」の第14回に参加しました。 nseg.connpass.com 隔週の水曜日の夜に開催しています(が、今回は私の都合で1日ずらしてもらいました)。だいたいいつも3〜4人くらいでこじんまりとやってます。今回は5人でした。 一人が1〜2ペー…

第12回 SQLアンチパターン読書会に参加しました

NSEGの「SQLアンチパターン読書会」の第12回に参加しました。 nseg.connpass.com 隔週の水曜日の夜に開催しています。だいたいいつも3〜4人くらいでこじんまりとやってますが、今回は7人でした。 一人が1〜2ページくらいを音読して、気になったことをみんな…

MySQLの日本語コレーション

4月にMySQLの日本語コレーションについて語り合う場に呼ばれていろいろ話を聞いてきました。すぐにブログを書こうと思ったんですが、はや2ヶ月経過…。 ときどき、自分がMySQLの文字コードに関して発表する際に、次のようなスライドをいれてるんですが、 MySQ…

MySQL 5.7が何も言わずに起動できなかったのでメモ

MySQL 5.6と同じ方法でMySQL 5.7を起動しようとしたら何も言わずに黙って終了してしまって少しだけハマったのでメモ。 MySQL 5.6では次のようにして起動してました。 # /usr/local/mysql-5.6/bin/mysqld --no-defaults --user=mysql --basedir=/usr/local/my…

第11回 SQLアンチパターン読書会に参加しました

NSEGの「SQLアンチパターン読書会」の第11回に参加しました。遅刻して19時くらいに着きました。 nseg.connpass.com 隔週の水曜日の夜に開催しています。だいたいいつも3〜4人くらいでこじんまりとやってます。今回は4人でした。 一人が1〜2ページくらいを音…

第10回 SQLアンチパターン読書会に参加しました

5/24にNSEGの「SQLアンチパターン読書会」の第10回に参加しました。 nseg.connpass.com 隔週の水曜日の夜に開催しています。だいたいいつも3〜4人くらいでこじんまりとやってます。 一人が1〜2ページくらいを音読して、気になったことをみんなで話したりして…

MySQLユーザ会会 in 長野 を開催しました

5/13(土)に「MySQLユーザ会会 in 長野」を開催しました。 nseg.connpass.com 「会」が2つあるのは仕様です。「MySQLユーザ会」の会合で「MySQLユーザ会会」です。 開催経緯はこんなかんじです。 自分もMyNAとかに気軽に遊びに行きたい。— とみたまさひろ (@t…

ZIP中のファイル名の文字化け(Ruby編)

tmtms.hatenablog.com という記事を書きましたが、今回はRubyでZIPファイルを作る時の話を。 RubyでZIPファイルを作るには、rubyzip というライブラリを使います。 % gem install rubyzip 次のようにしてZIPにファイルを追加できます。 require 'zip' Zip::F…

ZIP中のファイル名の文字化け

こんな記事がありました。 gihyo.jp これはMacユーザー用の書籍の宣伝記事らしいのですが、「Windowsを使ってる人のためにMac側がひと手間かけてあげよう」なんて殊勝なことをマカーが言うとは時代も変わったもんです。([追記] はてブのコメントを見たらさ…

大江戸Ruby会議06

大江戸Ruby会議06 #oedo06 に行ってきたので雑感など。 会場 @sora_h さん生誕20周年記念ということで、会場も「ソラシティカンファレンスセンター」という場所でした。 Docker時代の分散RSpec環境の作り方 speakerdeck.com RSpecの実行に時間が掛かってたの…

Ruby製のEmacsライクなテキストエディタTextbringer

大江戸Ruby会議06で前田さんがRubyでEmacsライクなエディタTextbringerを作ったという発表をしていました。 発表資料 https://github.com/shugo/oedo06/blob/master/textbringer.md ブログ https://shugo.net/jit/20170320.html 最初はEmacs上の何かでプレゼ…