タグ

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

  • [追記あり]Mac のここがダメ - tmtms のメモ

    追記したよ! 注意 Mac にもいいところはあるけど書いてない Windows の方がいいとは言ってない ハード / MacBook Pro 14インチ 会社から貸与されているのは MacBook Pro 14インチなのでそれについて。他のは知らない。 JIS キーボード キーボードは US でも JIS でも選べたんだけど、慣れてるので JIS を選択した。 そしたら変な配列のキーボードだった。「1」の左にキーが無い。数字キーの列が全体的に左によってる。「1」が「TAB」よりも長いってどういうこと? [追記] 対策と言っても外付けキーボードを使うくらい。自分は ThinkPad トラックポイントキーボード II を使ってる。 会社に行くときもキーボードを持っていってる。薄くて軽いので良い。 重い 今どき 14インチで1.6kg って重すぎるでしょ。ThinkPad T14 の 1.3kg

    [追記あり]Mac のここがダメ - tmtms のメモ
    mapk0y
    mapk0y 2024/04/02
  • ruby.wasm で MySQL Parameters を作り直した - tmtms のメモ

    プライベートでは基的に誰の役にも立たないプログラムを作ってるんだけど、たまにうっかり MySQL Parameters みたいな役に立つものを作ってしまう。 MySQL Parameters は5年くらい前に Vue.js の勉強のために作ってみたんだけど、結局そのまま Vue.js は触らず放置状態だった。MySQL の新しいバージョンが出るたびにデータは更新してたけど。 ruby.wasmRubyWebAssembly 上で動くようになり、ブラウザ上で JavaScript の代わりに使えるようになったんで、MySQL Parameters を Ruby で作り直してみた。 ruby.wasm ruby.wasm のページに載ってるけど、これだけでブラウザ上で Ruby が動く。簡単。 <html> <script src="https://cdn.jsdelivr.ne

    ruby.wasm で MySQL Parameters を作り直した - tmtms のメモ
  • ThinkPad T14 Gen3 のサスペンド問題 - tmtms のメモ

    [2022-09-23 追記] BIOS アップデート(n3buj05w)で解決した! https://support.lenovo.com/jp/ja/downloads/ds557163-bios-update-utility-bootable-cd-for-windows-11-10-64-bit-thinkpad-t14-gen-3-p14s-gen-3-t16-gen-1-p16s-gen-1 前回の続き ThinkPad T14 Gen3 の Ubuntu がサスペンドすると正常に復帰しない。 画面が消えたまま。10秒くらい待ってると点灯するけど数秒でまた消える…というのを繰り返し。 X が起動してると何もわからないので、コンソールでサスペンドを試すとこんなメッセージが出てた。 i915 0000:00:02.0: [drm] *ERROR* Failed to write s

    ThinkPad T14 Gen3 のサスペンド問題 - tmtms のメモ
    mapk0y
    mapk0y 2022/07/25
  • ThinkPad T14 Gen3 の Linux 化 - tmtms のメモ

    ThinkPad T14 Gen3 Intel版を購入 2016年10月に買った ThinkPad T460s をずっと使ってたんだけど、6年前のPCだとさすがに処理が遅く感じることもあったんで、そろそろ新しいのが欲しくなったんで、ThinkPad T14 Gen3 を買った。 安かったんでAMD版にしたんだけど、Intel版との違いはCPUだけだと思ってたのに、AMD版はメモリが増設できないことを知って、キャンセルしてIntel版に変更した。 調べてみたら、AMD版とIntel版の違いは他にも、Intel版は USB Type-C が Thunderbolt4 対応なのに AMD版は USB 3.2 というのがあった。罠っぽい。同じ機種名でこういうのはやめてほしい。 6/16 に注文して、6/28 に出荷、7/5 に届いた。 イマイチだったのが、キーボード右側のキーが正方形じゃなくて縦長

    ThinkPad T14 Gen3 の Linux 化 - tmtms のメモ
    mapk0y
    mapk0y 2022/07/25
  • Ubuntu 22.04 でメールサーバーを作ったのでメモ - tmtms のメモ

    令和にもなって自分でメールサーバーを作ってみたのでメモ。 OS は Ubuntu 22.04。 パッケージ更新後に自動的に再起動 メールとは関係ないけど apt で再起動が必要な更新があった場合は自動的に再起動するようにした。 /etc/apt/apt.conf.d/50unattended-upgrades: Unattended-Upgrade::Automatic-Reboot "true"; Lets Encrypt TLS 証明書を作るために certbot をインストール。自分はさくらのクラウドのDNSを使ってるのでそれ用のモジュールも追加。 # apt install certbot python3-certbot-dns-sakuracloud https://certbot-dns-sakuracloud.readthedocs.io/en/stable/ に従って /r

    Ubuntu 22.04 でメールサーバーを作ったのでメモ - tmtms のメモ
    mapk0y
    mapk0y 2022/05/09
  • rkremap: キーボードデバイスの自動検出 - tmtms のメモ

    https://blog.tmtms.net/entry/202201/rkremap の続き。 blog.tmtms.net Rkremap.new 時に引数でキーボードデバイスファイルを指定しないといけなかったんだけど、USB や Bluetooth キーボードとかデバイスファイル名がわからない場合に調べるのが面倒なので自動検出するようにしてみた。 入力デバイスの種類の取得 /dev/input/event* に対して ioctl(EVIOCGBIT(0)) をすれば入力デバイスの種類が得られる。 こんな感じ: #include <linux/input.h> #include <stdio.h> #include <fcntl.h> int main(int argc, char *argv[]) { unsigned char type[(EV_MAX-1)/8+1]; int f

    rkremap: キーボードデバイスの自動検出 - tmtms のメモ
    mapk0y
    mapk0y 2022/01/16
  • Linux用キーリマッパー rkremap を作った - tmtms のメモ

    11月から仕事Mac を使うようになって2ヶ月ちょっとたつけど、いまだにショートカットキーが Ctrl キーではなく Command キーであることに慣れない。 慣れないのは仕事以外で普段使ってる Linux と異なるからだと思うんだけど、普通に考えて Mac のショートカットキーの方が合理的だと思うので、Linux 上で Mac と同じような操作ができるようにした方が良いと思った。 というわけで Ruby で rkremap というのを作ってみた。rkremap はツールではなくライブラリなので、rkremap を使ったプログラムを作る必要がある。 github.com まあ普通は「最強のキーリマッパー」の xremap を使うのがいいと思う。 作ろうと思ったのは xremap では(たぶんほかのツールも)日語変換有効時を特別扱いできなかったのが発端なんだけど、YAML 等の設定フ

    Linux用キーリマッパー rkremap を作った - tmtms のメモ
    mapk0y
    mapk0y 2022/01/10
  • ruby-mysql - tmtms のメモ

    これはMySQLアドベントカレンダーとRubyアドベントカレンダーの12日目の記事です。 qiita.com qiita.com ruby-mysqlRuby だけで書かれた MySQL 用のクライアントライブラリです。 今は Ruby から MySQL を使う場合は普通は mysql2 を使うだろうから、たぶん誰も使ってない。 誰も使ってないだろうし、6年ほど放置してたんだけど、なぜかその気になったのでまたいじり始めた。退職前の有給消化期間で暇だったからかも。 MySQL 8.0 対応 MySQL 8.0 でデフォルトの認証方式が変更になって、そのままでは接続できなくなったので対応。 認証方式はユーザーごとに異なる場合があるので、サーバーのデフォルト認証方式、クライアントのデフォルト認証方式、ユーザーの認証方式が異なっていた場合のプロトコルに対応。 とりあえず、MySQL 5.7

    ruby-mysql - tmtms のメモ
  • 転職した - 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 のメモ
  • MySQL の認証プロトコル - tmtms のメモ

    認証がプラグイン化された最近のMySQL(5.5くらい?)の認証時のプロトコルをちゃんと理解してなかったので調べてみた。 基的にはこんな感じ クライアントが接続するとサーバー(mysqld)から次の内容のパケットが送られる: プロトコルバージョン: 現在のところ "10" サーバーバージョン: "8.0.27" とか スレッドID パスワードハッシュ化のためのデータ(チャレンジ) サーバーの機能(ケイパビリティ) サーバーのデフォルト文字コード(collation) 認証方式: caching_sha2_password とか それの応答としてクライアントが次のパケットを送る: クライアントフラグ クライアント側が受けられるパケットの最大長(max_allowed_packet) クライアントの文字コード(collation) ユーザー名 パスワードをチャレンジでハッシュ化したデータ 認

    MySQL の認証プロトコル - tmtms のメモ
  • そろそろMySQLのutf8について一言いっとくか - tmtms のメモ

    MySQLのutf8 charsetは、やれ「罠」だの「絵文字が入らなくて使えない」だの「utf8という名前はutf8mb4の別名にすべき」だの、散々な言われようでディスられてかわいそうな charset なんだけど、というか主に私がそう言ってる気もするんだけど、そろそろ utf8mb3 のエイリアスとしての utf8 は消え去ろうとしてるみたいなので、ここでちょっと勝手にフォローしておく。 UTF-8 エンコーディングの RFC は RFC3629で、ここで UTF-8 は最大4バイトと書かれている。 しかし、この RFC3629 の前のRFC2279では6バイトだった。 RFC3629 の日付は 2003/11 なので、つまり 2003/11 よりも前は UTF-8 の1文字のバイト数は最大6バイトだったのだ(少なくともRFC上では)。 MySQL が Unicode に対応したのはバ

    そろそろMySQLのutf8について一言いっとくか - tmtms のメモ
    mapk0y
    mapk0y 2018/06/23
  • MySQLのsjisとcp932の違い - tmtms のメモ

    今さらですけど、自分でもちゃんと把握してなかったので調べてみました。 MySQLのCharsetのうちシフトJIS系のものはsjisとcp932の二つあります。 どちらもコードの範囲は次のように同じです。 1バイト文字 0x00-0x7F, 0xA1-0xDF 2バイト文字の1バイト目 0x81-0x9F, 0xE0-0xFC 2バイト文字の2バイト目 0x40-0x7E, 0x80-0xFC 違いは文字集合です。1バイト文字はどちらも同じ(ASCII + JIS X 0201 カナ)ですが、2バイト文字はsjisはJIS X 0208 で、cp932はWindows-31Jです。 sjisに含まれていない文字 cp932はsjisよりも文字が多く、丸囲み数字(「①」「②」「③」等)、ローマ数字(「Ⅰ」「Ⅱ」「Ⅲ」等)、組文字(「㍉」「㌍」「㍻」等)、その他「彅」「髙」等の JIS X 0

    MySQLのsjisとcp932の違い - tmtms のメモ
    mapk0y
    mapk0y 2018/05/28
  • MySQL Innovation Day Tokyo で MySQL 8 の文字コードについて話した - @tmtms のメモ

    MySQL Innovation Day Tokyo に参加して10分ほど喋ってきました。 ひさびさに巨大サキラちゃん登場。人曰く5年間ほど倉庫に隠れてたそうです。 昼ごはんは今半のすき焼弁当でした。豪華! 会場の様子。百数十人で満員でした 以下わたしの発表内容。スライドはこちら https://tmtm.github.io/mysql-innovation-tokyo/ MySQL恒例「RCとはいったい…」案件 utf8の指定でwarningが出るようになった mysql> set names utf8; Query OK, 0 rows affected, 1 warning (0.00 sec) Warning (Code 3719): 'utf8' is currently an alias for the character set UTF8MB3, which will be

    MySQL Innovation Day Tokyo で MySQL 8 の文字コードについて話した - @tmtms のメモ
    mapk0y
    mapk0y 2018/05/28
  • 本当はこわいMySQLプロトコル - tmtms のメモ

    11/28 に Haskell で MySQL の Xプロトコルを実装したという話が聴ける Club MySQL というイベントがあったので参加してきました。 clubmysql.connpass.com MySQLのプロトコルの話ということで、平日の夜とは言え東京で参加者9人(発表者含む)というマニアックな集まりでした。 自分も1年前に RubyMySQL Xプロトコルを実装していたのですが、このツイートを最後に中断していたのでした。 MySQL X Protocol で Collection の追加はできるようになったが、検索がめんどくさい。条件文字列のパースはクライアントで行う必要があるんだな。— とみたまさひろ💎🐬 (@tmtms) 2017年2月20日 今回話を聞いて、無理に謎条件式文字列をパースするんじゃなくて、処理系で書きやすいように書けばいいんだという方式に目から

    本当はこわいMySQLプロトコル - tmtms のメモ
    mapk0y
    mapk0y 2017/12/01
  • MySQL の max_connections, table_open_cache, open_files_limit の関係 - tmtms のメモ

    昔書いた記事を久々に見てみたら何書いてあるかさっぱりわからなかったので、最新情報で書き直してみます。 tmtms.hatenablog.com 以下は MySQL 5.6, 5.7 について書かれています。 MySQL の max_connectoins, table_open_cache, open_files_limit パラメータは相互に依存して動的に値が設定されます。 パラメータ名 デフォルト値 最小値 最大値 max_connections 151 1 100000 table_open_cache 2000 1 524288 open_files_limit 5000 0 4G わからないと言われたので追記。 my.cnfやコマンドラインオプション等で設定された値(またはデフォルト値)を初期値として、open_files_limit → max_connections → ta

    MySQL の max_connections, table_open_cache, open_files_limit の関係 - tmtms のメモ
    mapk0y
    mapk0y 2017/10/13
  • MySQLの日本語コレーション - tmtms のメモ

    4月にMySQLの日語コレーションについて語り合う場に呼ばれていろいろ話を聞いてきました。すぐにブログを書こうと思ったんですが、はや2ヶ月経過…。 ときどき、自分がMySQLの文字コードに関して発表する際に、次のようなスライドをいれてるんですが、 MySQL 8.0 でとうとう日語コレーションが入ることになったのに、なんか期待してたのと違いました。 で、その辺の話を聞きました(2ヶ月も経ってるのでうろ覚え)。 Q. わざわざ日語ロケール作るんだったら日人が扱いやすいロケールにしてほしい utf8mb4_ja_0900_as_csはMySQLが独自に考えたものではない。Unicode規格に従っている。過去にいろいろ独自にやって失敗してきてるので、もう独自にやるのは避けたい。 ai(accent insensitive)で「ハ」=「パ」=「バ」になるのも、ci(case insensi

    MySQLの日本語コレーション - tmtms のメモ
    mapk0y
    mapk0y 2017/06/20
  • MySQL 5.7が何も言わずに起動できなかったのでメモ - tmtms のメモ

    MySQL 5.6と同じ方法でMySQL 5.7を起動しようとしたら何も言わずに黙って終了してしまって少しだけハマったのでメモ。 MySQL 5.6では次のようにして起動してました。 # /usr/local/mysql-5.6/bin/mysqld --no-defaults --user=mysql --basedir=/usr/local/mysql-5.6 --skip-networking --socket=/tmp/mysql56.sock --log-error=/tmp/my56.err > /tmp/my56.err 2>&1 log-error をつけていても、最初の数行が標準エラー出力に出ちゃうので、log-error と同じファイルにリダイレクトするようにしていました。 同じようにしてMySQL 5.7を起動してみたら、すぐに終了してしまって、しかもエラーを何も出力

    MySQL 5.7が何も言わずに起動できなかったのでメモ - tmtms のメモ
    mapk0y
    mapk0y 2017/06/14
  • Unicode Collation Algorithm - tmtms のメモ

    文字コードは面白いね! わーい! たのしー! 🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾 MySQL で utf8mb4_unicode_ci コレーションを使用した時に「🍣」=「🍺」や「ハ」=「パ」になる問題があります。 この utf8mb4_unicode_ci ってなんぞや?と思ってマニュアルを見てみると、 MySQL は、http://www.unicode.org/reports/tr10/ で説明している Unicode 照合順序アルゴリズム (UCA) に従って xxx_unicode_ci 照合順序を実装します。照合順序は、バージョン 4.0.0 UCA 重みキー (http://www.unicode.org/Public/UCA/4.0.0/

    Unicode Collation Algorithm - tmtms のメモ
    mapk0y
    mapk0y 2017/02/11
  • MySQLの文字コード事情 - tmtms のメモ

    この前 MySQL Casual に登壇して、「MySQLの文字コード事情」と称して発表してきました。 終電の都合で途中退席しましたが楽しかったです。また機会があれば参加したいです。 発表スライドはこちら MySQLの文字コード事情 2017版 from Masahiro Tomita www.slideshare.net 以下、補足のような何か。 「Charset≒エンコーディング (MySQLに限らない)」 英語版のWikipediaでもcharsetは Character encoding にリダイレクトされます。 自分がcharsetという用語に出会ったのはおそらくメールのContent-Typeヘッダが初めてだったと思います。 今ではメールだけではなくHTTPのヘッダでも使用されています。 なお、CharsetはInternet Assigned Numbers Authorit

    MySQLの文字コード事情 - tmtms のメモ
    mapk0y
    mapk0y 2017/02/07
  • 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 のメモ
    mapk0y
    mapk0y 2016/09/07