タグ

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

  • Ubuntu 22.04 でメールサーバーを作ったのでメモ - tmtms のメモ


    OSUbuntu 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 20216 adventar.org  Rubyist  20211030退11 SmartHR 3 Ruby 使 Ruby 使  PC Core i7 32GB  MacBook Pro  Mac 1VMUbuntu 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 20119 3 5441 (552) MySQLn 510
    「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
     =LIKEUnicode 12.1  

    mysql
     
  • SMTP AUTH を手で叩くためのメモ - tmtms のメモ


     SMTP AUTH  SASL SMTP IMAP  : hoge@example.com : abcdefg OSUbuntu : # 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 AUTHPLAIN/LOGIN/CRAM-MD5telnetCRAM-MD5  

    mail
     
  • 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 のメモ


    201824qiita.com 3(FJCT)  100% Navigate Innovative Future() FJCTLTIT 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 のメモ


    MySQLutf8 charset使utf8utf8mb4 charset  utf8mb3  utf8  UTF-8  RFC  RFC3629 UTF-8 4  RFC3629 RFC22796 RFC3629  2003/11  2003/11  UTF-8 16RFC MySQL  Unicode 
    そろそろMySQLのutf8について一言いっとくか - tmtms のメモ
    stealthinu
    stealthinu 2018/06/25
    単にmysqldumpして読み込むとwarningでちゃうって嫌だなあ。そのうち解決されるとは思うけど知らないとしょうもないところではまりそう。
  • 第5回「Linuxのしくみ」読書会に参加しました - @tmtms のメモ


    6/6 NSEGLinux57 nseg.connpass.com 5(p.135)6(p.170)    p.139 ID5psgrep ^%d  p.141  p.144-145 B500 p.145 PDF2  145146[] 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 NSEGLinux36 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サーバ側からの応答では勝手に任意ファイルが取得されてしまう可能性があるわけか。