タグ

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

  • 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 のメモ
    stealthinu
    stealthinu 2022/05/09
    mua_*の設定が必要になってる。unixパスワードと別にdovecot認証用の専用ファイル作って認証させてる。
  • 転職した - 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 のメモ
    stealthinu
    stealthinu 2021/12/06
    とみたさんの転職エントリがホッテントリしてる!とみたさんの細かな経歴初めて知った。FJCT辞めたの富士通本社に吸収合併されそうだからだったのね。時々でてくる「うへぇ…」の感覚、よくわかる。
  • Gitでリモートリポジトリを巻き戻す - tmtms のメモ

    Gitで間違ったコミットをリモートリポジトリに push してしまった後に、それを無かったことにするには、リモート側での作業が必要だと思っていたのですが、ローカルからの操作でもできることがわかったので備忘録的に書いておきます。 次の状態にあるとします。アルファベットはコミットだと思ってください。 リモート: A-B-C master ローカル: A-B-C-D masterローカルで変更を加えてDの状態になっています。 git push すると次のようになるのですが、 リモート: A-B-C-D master ローカル: A-B-C-D masterここで、D は間違いだったと気づきました。 リモートリポジトリの master のバックアップ用のブランチを作ります。これは必須ではありませんが、念のため。 % git push origin master:master_bakこれで次の状態に

    Gitでリモートリポジトリを巻き戻す - tmtms のメモ
    stealthinu
    stealthinu 2021/10/25
    前にとみたさんがgitでリモートのリポジトリを戻す方法を書かれてた。この辺がめんどくさいよなあ…
  • Linux で X よりも低レイヤでキーマップを変更する - tmtms のメモ

    まとめ USB 接続の ThinkPad トラックポイントキーボードで、半角/全角 を Esc、CapsLock を Ctrl として使うには、/etc/udev/hwdb.d/10-tmtms.hwdb というファイル(ファイル名は何でもいい)を次の内容で作って: evdev:name:Lenovo ThinkPad Compact USB Keyboard with TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn* KEYBOARD_KEY_70035=esc KEYBOARD_KEY_70039=leftctrl 次のコマンドを実行する: % sudo udevadm hwdb --update % sudo udevadm trigger 以下は調査とかなので読まなくてもいい 30年くらい Emacs を使ってたんだけど、そろそろ VSCode

    Linux で X よりも低レイヤでキーマップを変更する - tmtms のメモ
    stealthinu
    stealthinu 2021/09/27
    udevの設定することでX関係なくキーマップを変更することができると。
  • MySQL で max_allowed_packet を超過した場合 - tmtms のメモ

    MySQL で max_allowed_packet を超過した場合にどうなるんだっけ…と思って試してみた結果。 サーバーの max_allowed_packet をクエリが超過した場合 MySQL 5.6 サーバー起動 % docker run --name mysql56 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql:5.6 --max-allowed-packet=100000 クライアントは原因がわからないけど切断される % ruby -e 'puts "set @a="+"1"*1000000' | docker exec -i mysql56 mysql ERROR 2006 (HY000) at line 1: MySQL server has gone away サーバー側はログ出力なし % docker logs mysql56 .

    MySQL で max_allowed_packet を超過した場合 - tmtms のメモ
    stealthinu
    stealthinu 2021/09/13
    MySQL5.7でエラー吐くようになったのに8.0ではまた吐かないようになったとかなんでなんかね?
  • Re: MySQL の NOW() と SYSDATE() - tmtms のメモ

    自分は全然気にしたことなかったんだけど、MySQL の NOW() と SYSDATE() は異なるらしい。 sakaik.hateblo.jp MySQL 8.0 のマニュアル (https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_sysdate) にも確かにちゃんと書かれてる。 SYSDATE() returns the time at which it executes. This differs from the behavior for NOW(), which returns a constant time that indicates the time at which the statement began to execute. (Within a stored fun

    Re: MySQL の NOW() と SYSDATE() - tmtms のメモ
    stealthinu
    stealthinu 2020/07/15
    MySQLのNOW()とSYSDATE()は違っててSYSDATEはほんとにその時の時間を、NOWはステートメントやストアドが開始された時間を返すらしい。そして5.0.12か13あたりからそのような挙動になってるとのこと。
  • 「MySQL徹底入門 第4版」が出るよ - tmtms のメモ

    MySQL徹底入門 第4版」が 7/6 に発売される。🎉 www.shoeisha.co.jp 電子書籍は翔泳社の直販がDRMフリー(たぶん)だからオススメ。 著者用見誌も届いたので、さすがにこれからやっぱり発売できませんでした!ってことにはならないと思う。 長かった。 当は去年出る予定だったんだが、なんやかんやで今年になった(よくある)。 第3版が出たのが 2011年だから、実に9年ぶり! 偶然にも第3版と同じ 544ページなんだけど、1ページ辺りの文字数は増えているので情報密度は増しているはず(そしてその分価格も上がってる)。 (ただしくは552ページらしい。) 「MySQL徹底入門」は第n版が出るたびに、毎回ほとんどを書き下ろしてるし、複数人で書いてるんだけど、書いてる人も入れ替わるし担当する章も変わる面白い。 自分は、今回は第5章「ユーザー管理」、第10章「データベースプ

    「MySQL徹底入門 第4版」が出るよ - tmtms のメモ
    stealthinu
    stealthinu 2020/06/30
    とみたさん書かれた「MySQL徹底入門」のMySQL8版が出るとのこと。基本的に8の情報だけが載ってるようなイメージっぽい。
  • Rubyのエンコーディング - tmtms のメモ

    Ruby 1.9 から文字列や正規表現オブジェクトはそれぞれエンコーディング(いわゆる文字コード)を保持するようになりました。 たとえば 0xB1 0xB2 という2バイトは EUC-JP エンコーディングでは「渦」、SHIFT_JIS エンコーディングでは「アイ」という文字になります。つまり同じバイト列でもエンコーディングが異なれば異なる文字として解釈されます。 1.8 では文字列はただのバイト列でした。なので、それがどのような文字を表しているのか、つまりエンコーディングが何なのかはプログラムが知っている必要がありました。 1.9 では文字列オブジェクト自身が自分が何のエンコーディングかを知っています。同じ 0xB1 0xB2 というバイト列でも、それが EUC-JP の「渦」なのか SHIFT_JIS の「アイ」なのかは、文字列自身が知っています。 スクリプトエンコーディング スクリプ

    Rubyのエンコーディング - tmtms のメモ
    stealthinu
    stealthinu 2019/09/25
    ありがたい… ちなみに2012年、もう7年も前のとみたさんのエントリーに救われてるという。
  • MySQLと「令和」 - tmtms のメモ

    新元号が「令和」に決まったことなので、MySQLでの扱いについての話を。 普通の文字 「令」も「和」もJIS第一水準に含まれている基的な文字なので普通に日語が使用できるcharsetで使用できます。 mysql> create table t ( utf8mb4 varchar(255) charset utf8mb4, utf8mb3 varchar(255) charset utf8mb3, utf16 varchar(255) charset utf16, utf32 varchar(255) charset utf32, cp932 varchar(255) charset cp932, eucjpms varchar(255) charset eucjpms, sjis varchar(255) charset sjis, ujis varchar(255) charset

    MySQLと「令和」 - tmtms のメモ
    stealthinu
    stealthinu 2019/04/08
    流石だ。=だと一致になるのにLIKEでは不一致になるのが面白い。あと合字のためだけにUnicode 12.1が作られるとは。確かに迷惑な話だな。
  • SMTP AUTH を手で叩くためのメモ - tmtms のメモ

    必要なときには忘れてるのでメモ。 SMTP AUTH というか SASL なので、SMTP じゃなくて IMAP でも同様だと思います。 ユーザー名: hoge@example.com パスワード: abcdefg テストのための環境準備 OS は Ubuntu。 パスワード登録: # apt install sasl2-bin # saslpasswd2 -c hoge -u example.com Password: abcdefg Again (for verification): abcdefg Postfix で SASL を使用: # chmod 644 /etc/sasldb2 # postconf -F smtp/inet/chroot=n # postconf smtpd_sasl_auth_enable=yes # postfix reload PLAIN認証 http

    SMTP AUTH を手で叩くためのメモ - tmtms のメモ
    stealthinu
    stealthinu 2019/02/20
    SMTP AUTHでPLAIN/LOGIN/CRAM-MD5のどの認証でもtelnetで入れるようにする方法。CRAM-MD5は平文でパスワード持ってないといけない。うーん。
  • Ubuntu で Postfix の SMTP AUTH を設定して fail2ban で認証に失敗したIPアドレスをブロックする - tmtms のメモ

    Ubuntu 18.04 の Postfix で次のようにして SMTP AUTH を有効にしました。 /etc/postfix/master.cf submission inet n - n - - smtpd -o syslog_name=postfix/submission -o smtpd_sasl_auth_enable=yes -o smtpd_recipient_restrictions= -o smtpd_relay_restrictions=permit_sasl_authenticated,reject /etc/postfix/main.cf smtpd_sasl_local_domain = $myhostname broken_sasl_auth_clients = yes smtpd_sasl_security_options = noanonymous /et

    Ubuntu で Postfix の SMTP AUTH を設定して fail2ban で認証に失敗したIPアドレスをブロックする - tmtms のメモ
    stealthinu
    stealthinu 2019/01/15
    余談だが、サブミッションスパムのアカウント取得方法が最近のは辞書攻撃だったのが今度また流出とかウイルス感染から取得?みたいなので一発目から取られてる。これだとfail2ban効かない。
  • WSL で Ubuntu デスクトップ環境を作ってみる - tmtms のメモ

    富士通クラウドテクノロジーズアドベントカレンダー2018の24日目の記事です。 qiita.com 3ヶ月ほど前から富士通クラウドテクノロジーズ(FJCT)という会社で働いています。 …という話をするとたいてい「何やってる会社?」と聞かれるのですが、「ニフクラというクラウドサービス」というと「ああニフティの」という反応。 「ニフクラは今はニフティじゃないんですよ」というと知らなかったというのがほぼ100%。 ニフクラの「ニフ」はニフティのニフでも日商岩井富士通の略でもなくて、「Navigate Innovative Future」らしいです(自分も最近知った)。 FJCTは、テックブログやってたり、社内LT大会やってたり、月イチでミートアップやってたり、IT勉強会向けに無償で会場提供してたり、「富士通」が名前に入ってる会社にしては面白い会社だと思います。 ただし会社のPCWindows

    WSL で Ubuntu デスクトップ環境を作ってみる - tmtms のメモ
    stealthinu
    stealthinu 2019/01/04
    とみたさんの転職?先『3ヶ月ほど前から富士通クラウドテクノロジーズ(FJCT)という会社で働いています』ついに公開された。あとNiftyのNifは日商岩井富士通の略だったのか!知らんかった…
  • 文字化け - tmtms のメモ

    こんなツイートを見かけたので文字化けを直してみました。 譁�ュ怜喧縺代@縺。繧�▲縺溘ヤ繧、繝シ繝医@縺ヲ縺ソ縺溘¢縺ゥ縲√≧縺昴□繧医��√▲縺ヲ縺薙�譁�ュ怜喧縺題ァ」隱ュ縺励※縺上l繧倶ココ縺�k縺ョ縺九↑縲ゅ>縺溘i諢滓ソ縲ゅ%繧瑚ェュ繧薙□繧医�縺」縺ヲ莠コ縲碁ィ吶&繧後↑縺九▲縺溘崎ソ比ソ。縺雁セ�■縺励※繧九— LINE RECORDS (@LINE_RECORDS_JP) July 26, 2018 見た感じ、UTF-8をシフトJISとして表示したときのようなので、ツイートをコピペしたファイルをシフトJISに変換してみます。 % ruby -e 'p File.read("mojibake.txt").encode("cp932", undef: :replace).force_encoding("utf-8")' "\xE6\x96?\xAD\x97化けしち\xE3\x8

    文字化け - tmtms のメモ
    stealthinu
    stealthinu 2018/07/30
    最初の文字とかどうやれば復元できるんだろ?と思ってたが、やっぱ欠損データがあるためそのままでは復元できないから3byte中2byte合ってるもので推測し、1byteしか情報ないひらがなはそこから推測と。
  • そろそろ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 のメモ
    stealthinu
    stealthinu 2018/06/25
    単にmysqldumpして読み込むとwarningでちゃうって嫌だなあ。そのうち解決されるとは思うけど知らないとしょうもないところではまりそう。
  • 第5回「Linuxのしくみ」読書会に参加しました - @tmtms のメモ

    6/6 に開催されたNSEGの「Linuxのしくみ」読書会の第5回に参加しました。参加者7名。 nseg.connpass.com 今回は、第5章の途中(p.135)から第6章の途中(p.170)まで読みました。 個人的な収穫 階層型ページテーブル、ヒュージページについては知りませんでした。 誤植等 p.139 誤植というかプログラムのバグだけど、プロセスIDが5桁未満の場合は ps の出力が空白で始まるので、grep ^%d に適合せず出力されない。 p.141 「親プロセスと子プロセスでメモリで共有されているメモリは」 p.144-145 プロセスBの仮想アドレスから物理メモリ500に不要な線がある。 p.145 PDF版第2版 は 145ページが重複していて146ページがない。[追記] 2018/06/23時点では修正されています。 p.152, 154 「物理アドレス」であるべきと

    第5回「Linuxのしくみ」読書会に参加しました - @tmtms のメモ
    stealthinu
    stealthinu 2018/06/07
    誤植に、P155 「MAP_HUGETLB」->「MAP_HUGETBL」も追加しといて下さい。/元のMAP_HUGETLBで合ってました!ちゃんと確認しないと…
  • 第3回「Linuxのしくみ」読書会に参加しました - tmtms のメモ

    5/9 に開催されたNSEGの「Linuxのしくみ」読書会の第3回に参加しました。参加者6名。急に減った! nseg.connpass.com 今回は、第4章の途中(p.65)から第5章の途中(p.98)まで読みました。 個人的な収穫 sar の %nice の意味を知った。 誤植等 p.68 taskset -c 0 , 4 ./sched プロセス数 1000 1 の 1000 は 100 の間違い? p.74 誤「開始から終了までの時間までの経過時間と使用時間」 正「開始から終了までの経過時間と使用時間」 p.82 ps -eo pid,comm,time,etime の結果が PID COMMAND ELAPSED TIME となってて、ELAPSED と TIME の順番が逆 p.84 sched_nice.c 誤植ではないけど、sched.c と比べて無駄に差分がある。空行の有

    第3回「Linuxのしくみ」読書会に参加しました - tmtms のメモ
    stealthinu
    stealthinu 2018/05/11
    誤植のおかげで必然的に注意深く読まないといけない、という良い?側面もあったりw
  • PostfixDaemon - Ruby で Postfix のデーモンを書くライブラリ - tmtms のメモ

    この前、まつもとりーさんに自分でも忘れていたpostfix-mrubyというのを発掘されて、 Postfix-mruby最高!— 松 亮介 / まつもとりー (@matsumotory) 2018年2月22日 これによって、前に作ろうと思ってそのまま忘れてたものを思い出したので、作ってみました。 github.com こんなプログラムを /usr/lib/postfix/sbin に置いておいて、 require 'postfix_daemon' PostfixDaemon.start do |socket, addr| while s = socket.gets socket.puts s.update end end Postfix の master.cf にテキトーに書くと、ポートにアクセスがあると Postfix の master(8) に起動してもらえます。 まあ master

    PostfixDaemon - Ruby で Postfix のデーモンを書くライブラリ - tmtms のメモ
    stealthinu
    stealthinu 2018/03/06
    postfixのデーモンを簡単に作れるrubyのライブラリ。
  • reveal-ck-rabbit-plugin - tmtms のメモ

    最近は reveal-ck でスライドを作ってるんですが、rabbitのようなウサギとカメが欲しい!と思ってたので作ってみました。 サンプルページ インストール % gem install reveal-ck-rabbit-plugin 使用方法 % mkdir foo % cd foo % touch slides.md % reveal-ck-rabbit-plugin % reveal-ck generate スライドを開始して2ページ目に進むとウサギが表示されます。 ウサギは現在のスライドの位置を示しています。 config.yml の revealjs_config に alloted_time を追加するとカメが表示されるようになります。 title: "Slide title" revealjs_config: alloted_time: 300 スライドの2ページ目を表示し

    reveal-ck-rabbit-plugin - tmtms のメモ
    stealthinu
    stealthinu 2018/02/02
    reveal-ckでのプレゼン作成にRabbitみたいなうさぎとカメ表示を付ける。すごくいいじゃん!
  • クラスはクラスクラスのインスタンスである - tmtms のメモ

    タイトルで出落ち感がありますが…。 naruby で時間があまった時のために用意してあったのですが、時間が余らなかったので発表しなかった小ネタです。ここで公開して供養します。 Rubyはほぼすべてがオブジェクトです。 クラスもオブジェクトです。オブジェクトということはクラスがあります。オブジェクトのクラスはオブジェクトの class メソッドで調べられます。 class Hoge end Hoge.class #=> Class Hoge クラスのクラスは Class であることがわかりました。 つまり「クラスはClassクラスのインスタンス」ということです。 クラスがClassクラスのインスタンスということは、Class.new すればクラスが作成されるわけです。 a = Class.new #=> #<Class:0x00560d27bf2108> Hoge = a #=> Hoge

    クラスはクラスクラスのインスタンスである - tmtms のメモ
    stealthinu
    stealthinu 2017/12/05
    一旦そのクラスをなきものにして再度作り直すとクラス名は同じなのに違うオブジェクトが作れてしまうと。
  • 本当はこわい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 のメモ
    stealthinu
    stealthinu 2017/12/01
    信頼できないMySQLサーバ側からの応答では勝手に任意ファイルが取得されてしまう可能性があるわけか。