タグ

ブックマーク / blog.tmtms.net (10)

  • 転職した - tmtms のメモ

    これは「Rubyist近況[1] Advent Calendar 2021」の6日目の記事です。 adventar.org 自称 Rubyist なので近況を書きます。 2021年10月末で30年ほど勤めた富士通グループを退職しました。 11月からは SmartHR という会社で働いてます。 3年ほど Ruby仕事ではあんまり使ってなかったのですが、また Ruby仕事で使うようになりました。 会社から配布された PC は Core i7 メモリ32GB の MacBook Pro なんでかなり人権がある感じなんですが、人生Mac で1ヶ月位経ってもまだ慣れなくて、VM で Ubuntu Desktop 入れようか迷ってます。 近況は以上です。以下は富士通グループの入社〜退職までのメモ。長いので読まなくていいです。 1991〜 設立7年目の今はなき「富士通長野システムエンジニア

    転職した - tmtms のメモ
  • オープンソースの定義について - tmtms のメモ

    こんな Togetter が話題になってた。 togetter.com オープンソースソフトウェアはOSIに認められたオープンソースライセンスで配布されるソフトウェアのことであり、それ以上でもそれ以下でもない これに違和感が。「オープンソースの定義(OSD)」に準拠したライセンスのソフトウェアであればオープンソースだったような記憶があるんだけど、「OSIに認められたオープンソースライセンス」である必要はあるんだっけ? まあ実際にOSDに準拠したオレオレオープンソースライセンスを作って「オープンソースでござい」と言ったとしてもなんか怪しいし、堂々とオープンソースを名乗りたいならちゃんとOSI認定のライセンスを使うか、そのライセンスをOSI認定してもらえよって感じなんでどうでもいいんだけど、定義の問題として。 オープンソースの定義 を見ると 「オープンソース」とは、単にソースコードが入手できる

    オープンソースの定義について - tmtms のメモ
  • DNSで浸透って言っちゃだめなの? - tmtms のメモ

    別に言ってもいいよ。 以下想定問答。 「浸透が何を意味しているのかわからない」 ホント? 「浸透いうな」って言われてるってことは、逆に言うとそれなりに広く使われてるってことでしょ。 個人的には「DNSの設定を変更した後、徐々に新しい情報を見ることができるクライアントが増えていく」ことだと思ってるんだけど、これとは異なる意味で使われてたりするの? 「"浸透に数週間かかる" なんて言うのはへぼい業者の言い訳」 それは同感だけど、「浸透」という単語の問題じゃないよね。 「浸透」という単語を使わなくてもその業者はへぼいままで、数週間かかるのは変わらない。 数週間じゃなくて、「浸透には5分くらいかかります」だったらOK? 「設定ミスってるくせに浸透に時間がかかるなんて言い訳するな」ならわかるけど、「浸透という単語を使うな」はおかしいと思う。「浸透」を使わないことで何か解決するの? 「浸透なんて用語は

    DNSで浸透って言っちゃだめなの? - tmtms のメモ
  • Ruby 2.5 - tmtms のメモ

    この記事は Ruby 2.5.0 preview1 時点のものです。Ruby 2.5 リリース版については http://tmtms.hatenablog.com/entry/2017/12/30/ruby25 を見てください。 Rubyは毎年クリスマスにバージョンアップされます。 今年も問題なければ12/25にRuby 2.5が出ると思います。 https://docs.ruby-lang.org/en/trunk/NEWS.html を元に変更内容を調べてみました。 言語仕様 トップレベル定数参照 rescue/else/ensure 節 文字列内式のRefinement Unicode バージョン 10.0.0 組み込みライブラリ Array#append, #prepend 追加 Dir.children, Dir.each_child 追加 Dir.glob :base オプショ

    Ruby 2.5 - tmtms のメモ
    lepton9
    lepton9 2017/12/05
  • MySQL で utf8 と utf8mb4 の混在で起きること - tmtms のメモ

    MySQLUTF-8 で使おうと思ってハマりがちなのは charset utf8 を指定してしまうことです。 MySQLUTF-8 には歴史的事情により utf8 と utf8mb4 の二つあります。 UTF-8 は1バイト〜4バイトで1文字が構成される文字コードですが、MySQL の utf8 は4バイト文字を扱うことができません。ハマりたくなければ utf8mb4 を使いましょう。 utf8 を使ってしまった場合に4バイト文字がどのように扱われるか、自分でもうろ覚えだったのでメモしておきます。 登録 接続が utf8mb4 でカラムが utf8mb4 あたりまえですが、そのまま登録されます。 mysql> insert into utf8mb4 (c) values ('美味しい🍣と🍺'); mysql> select * from utf8mb4; +--------

    MySQL で utf8 と utf8mb4 の混在で起きること - tmtms のメモ
  • Ruby の Timeout の仕組み - tmtms のメモ

    Ruby で長い時間掛かるかも知れない処理のタイムアウトを行うにはこんな感じにします。 require 'timeout' begin Timeout.timeout(3) do # 3秒でタイムアウト hoge # 何かの処理 end rescue Timeout::Error puts 'なげーよ' # タイムアウト発生時の処理 end Timeout.timeout はブロック開始時にスレッドを作成し、そのスレッドで指定された秒数だけ sleep して、sleep から復帰してもまだブロックが終わってなければ作成元のスレッドに対して Timeout::Error 例外を発生させます。 指定時間以内に処理が終わる場合: timeout(X) │ スレッド作成 ─┐ │ │ ブロック実行 sleep X │ │ スレッドkill→ 🕱 │ timeout復帰 指定時間以内に処理が終わら

    Ruby の Timeout の仕組み - tmtms のメモ
  • 「理論から学ぶデータベース実践入門 ― リレーショナルモデルによる効率的なSQL」 - tmtms のメモ

    理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL (WEB+DB PRESS plus) 作者: 奥野幹也出版社/メーカー: 技術評論社発売日: 2015/03/10メディア: 単行(ソフトカバー)この商品を含むブログ (9件) を見る ひょんなことから著者の奥野さんから頂きました。読み終えたのは3月頭なのに、2ヶ月も経ってからブログを書くという遅筆ぶりです。 このはもともと2月末に発売予定だったらしいのですが、3/10に販売延期になりました。 『理論から学ぶデータベース実践入門』 発売延期及びテスト販売購入のお客様への書籍交換対応のお詫びとお知らせ:重要なお知らせ|技術評論社 テスト販売という限られた部数とはいえ、一旦販売したものを正誤表対応ではなく刷り直して交換対応というのは、電子書籍ならともかく、紙の書籍でやるとはすばらしいです。神対応と言ってもいいの

    「理論から学ぶデータベース実践入門 ― リレーショナルモデルによる効率的なSQL」 - tmtms のメモ
  • MySQLユーザーがPostgreSQLを触ってみたメモ - tmtms のメモ

    最近なぜか MySQL を使う Ruby アプリを PostgreSQL に対応する羽目になっているのですが、今までほとんど MySQL 以外の RDBMS を触ってなかったので、色々ハマったりしたのでメモっときます。 なお PostgreSQL 歴が浅いので間違ってること書いてるかもしれません。 API プログラムから MySQL にアクセスするには Ruby/MySQL を使っていたのですが、PostgreSQL 用の API を新たに覚えるのは面倒だったので、Sequel を使って書き直しました。 mysql.query("select col1, col2 from table where col3='xxx'") ↓ db[:table].where(col3: 'xxx').select(:col1, :col2) …みたいな感じです。 今までプログラム中に突然 SQL が現れ

    MySQLユーザーがPostgreSQLを触ってみたメモ - tmtms のメモ
  • RSpec をやめて Test::Unit に戻る - tmtms のメモ

    最近の RSpec は、それまで obj.stub(hoge: value) と書けたものが、 allow(obj).to receive(:hoge).and_return value と書かないといけなくなったりとか、正気の沙汰とは思えないような変更をしたりするので、何年かぶりに Test::Unit を使ってみようとリハビリ中です。 RSpec は、テストケースを入れ子にできたり、テストケースや example がクラスやメソッドではなく、文字列で自由に書くことができたりしたのが良かったのですが、最近の Test::Unit ではそれもできるようになっています。 [ruby-list:48926] [ANN] test-unit 2.5.2 このリリースはとみたさんに使ってもらえるように改良したリリー スです。新しく追加した--locationはRSpecの--line_number

    RSpec をやめて Test::Unit に戻る - tmtms のメモ
  • Gitで最初のコミットをどうにかする - tmtms のメモ

    最初のコミットの内容を変更したい Gitで最初のコミットの内容を変更したいと思って git rebase -i <最初のコミット> とやっても、最初のコミットは出てきません。 % git log --oneline 4f4f42c 二番目のコミット 9d4876c 最初のコミット % git rebase -i 9d4876c pick 4f4f42c 二番目のコミット このような場合は git rebase -i --root を指定すると良いようです。 % git rebase -i --root pick 9d4876c 最初のコミット pick 4f4f42c 二番目のコミット 最初のコミットの前に別のコミットを入れたい さっきと同様に git rebase -i --root で開いて、最初のコミットを edit にします。 % git rebase -i --root edit

    Gitで最初のコミットをどうにかする - tmtms のメモ
  • 1