角待ちは対空

おもむろガウェイン

Techに関する記事一覧

プライマリーキー(primary key)はシーケンシャルな値で良いと思うよ

zenn.dev を読んでの感想です。「シーケンスナンバーをPKにする」以外の項目については言及しませんが、言及しないことは正当性や妥当性を保証していることにはならないです。 InnoDB(MySQL)を想定してます。が、原理は割と一般的なので他のDBでも適用できる…

Legacy Meetup Kyotoで「レガシーシステムとインフラオーナーシップ 」という発表した

Sansan株式会社さん主催のLegacy Meetup Kyotoで発表させてもらいました。 sansan.connpass.com 発表資料は以下のものです。 docs.google.com 会場はSansan Innovation Labだったのですが、めちゃくちゃおしゃれでサンダルで行って申し訳ない気持ちになりま…

Hatena Engineer Seminar #11で「MySQL自前運用やめてAurora導入する話」した

当日お越しいただいた皆さんありがとうございます。 イベント詳細。 developer.hatenastaff.com テーマはクラウド活用ということで最近やってる仕事からAurora化について話した。 発表資料。 drive.google.com 補足 発表はモチベーションとマネージドサービ…

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識 読んだ

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識:書籍案内|技術評論社 モチベーションとしては sync; sync; sync; 概念としては知っているが実際なぜ必要かと言われるとメモリ上のデータを書き込むくらいの解像度でしか理解し…

「DNSがよくわかる教科書」が良かった

DNSがよくわかる教科書作者: 株式会社日本レジストリサービス(JPRS)渡邉結衣、佐藤新太、藤原和典,森下泰宏出版社/メーカー: SBクリエイティブ発売日: 2018/11/22メディア: 単行本この商品を含むブログを見る 良かった。いや本当にいい内容なのかは知らない…

mysqlのプロンプトはカスタマイズできるのでuserとhost表示しておくと便利

~/.my.confに [mysql] prompt='\\u@\\h [\\d]> ' と書いておき mysql -uruser_name -p -hhost_name user_name@host_name: (none)> use test; Database changed user_name@host_name: test> select 1; +---+ | 1 | +---+ | 1 | +---+ 1 row in set (0.00 sec)…

MySQL対話モード中に一時的にshellコマンドを実行したい

hostname とかしたくなることがあるけどいちいち戻るの面倒というとき。 mysql> system echo hoge hoge mysql> \! echo hoge hoge

TLSの設定がうまく出来ているか確認したいときのコマンド

DNSレコード切りかえるに/etc/hostsにIPアドレスとドメインを書いて確認とかやってたけど、openssl にはs_clientコマンドがあるのでこれで確認できる。 openssl s_client -connect 93.184.216.34:443 -servername example.com

gitが使えるプロトコル

git clone hogehoge の hogehoge はいろいろなプロトコルが使える。 HTTP/HTTPSプロトコル https://github.com/Microsoft/TypeScript.git 利点: HTTPなので用意するのが楽 欠点: パフォーマンス的に非効率 と言われていたが解決した -> Smart HTTP、Dumb HTT…

AWSのDNSサーバー

VPCのネットワークアドレスに+2にしたもの(subnetではない)。 DHCP オプションセット - Amazon Virtual Private Cloud

いろんなデータベースが入ったMySQLからテーブル一覧がほしい

こんなものが必要になるということは大体とても悲しい状況ですが。 ポイントとしては -N: カラム名を出力しない -e: SQLステートメントを発行し結果を受け取る for DATABASE in `mysql -ureadonly -preadonly -N -s -e "show databases;"`; do for TABLE in …

Nginxですべてのホストヘッダにマッチするserver_nameに_がよく使われるけど_じゃなくてもいい

invalidなドメイン名ならばなんでもいい。だから、かわいい顔文字でもよい。 ドキュメントの該当箇所: Server names In catch-all server examples the strange name “_” can be seen: server { listen 80 default_server; server_name _; return 444; } The…

time_zone設定の違うMySQLのレプリケーションについて

結論としてはできない。正確にはレプリケーションの設定自体はできるがデータが適切に複製されないので設定を変える必要がある。 これはMySQL5.6 -> Aurora(MySQL5.6互換)移行の際、レプリケーションを組んだが、時刻周りで上手くいかなかった問題と解決の記…

ISUCON8予選の感想

今年は勝てるという自信があったけど結局負けました。 isucon.net 反省をするならば アプリケーションを見た時点で自分ならこう作るなというイメージが沸かなかった ので、悪いのがアプリケーションコードなのかDBのスキーマなのか判断つかずに闇雲な改善策…

CloudFormation 再入門

CloudFormation、これ書くのマジで??と思って極力書かない方向に進んでたけど、そろそろ手でポチポチ作ってると怒られる雰囲気になってきたので学び直した。 github.com 今気づいたけど略称はCFnだった。 特に構築するものがなかったので「Amazon Web Serv…

MySQLの外の世界も含んだトランザクション

トランザクションとは一般的な不可分な一連の処理という意味で使っているが、例えばS3に画像データをアップロードしMySQLにはそのキーを保存したいみたいな場合の話。 MySQLへの書き込みだけであればそれこそMySQL(ストレージエンジンか)に備わっているトラ…

TLSについて学んだ

仕事でTLS関連のトラブルがあったが全然基礎知識がなかったので1から学んだ。この記事は特にTLSの仕様を解説したいわけではなくどこを参照してまだかメモっておく。僕が解説するよりそっちを参照したほうが確実。 まずSSLとTLSの違いすらわからないレベルだ…

max-ageはどのようなコンテンツに設定すべきか

可能なコンテンツすべて、だと思っている。 「キャッシュは麻薬」という言葉があるが、大麻OKな国もある的な(多分ぜんぜん違う)。要するに用法用量を守ってちゃんと利用しなきゃいけない。モルヒネも適切に使えば麻酔。 我々はギガが減る時代に生きているの…

またこのメンバーで集まってリダイレクトしたいね

nginxでURIを書き換えてリダイレクトしたいときrewriteを使うと思う。 典型的には以下のような感じ。 rewrite '^/images/([a-z]{2})/([a-z0-9]{5})/(.*)\.(png|jpg|gof)$' /data?file=$3.$4. break; ngx_http_rewrite_moduleのrewriteディレクティブはURIを…

sedとperlと部屋とワイシャツと私

MacOSのsedは-iオプションのあとに空文字を指定しても(-i'')in-place(上書き)にしつつバックアップファイルは作らないみたいな動作はできない。 sed -i'' -e 's/foo/bar/' test.txt するとtest.text-eというファイルができて辛い。ちなみに''がなくてもだめ …

Furl::S3のTIPS100連発

Furl::S3 にはドキュメントに記載されている create_object メソッドの他に create_object_from_file が存在する。前者はファイルハンドルを引数に取るのに対して後者はファイル名を引数に取る。 また create_object_from_file は content type の判定を自動…

dockerコマンドの補完

最近サボってるけど、仕事が忙しい。そのうちつじつまを合わせる。 docker はサブコマンドもオプションも多く人類が覚えられるものではないのでシェルの補完機能を使うと良い。 実は公式に提供されていてMacでインストーラを使ってインストールした場合 % ls…

PerlでAWS S3の事前署名付きURLを生成する

忙しくて昨日一昨日サボったけどどっかでつじつま合わせるよ。 docs.aws.amazon.com 基本的にこの通り実装すれば良い。SDKがない言語だと苦労する。 use strict; use warnings; use utf8; use Digest::SHA qw(hmac_sha256_hex hmac_sha256 sha256_hex); use …

Weak typeとはなにか

qiita.com TypeScript Advent Calendar 2017の8日目の記事です。Weak typesの解説をします。 CTOにも絶賛不評だった以下の記事もおすすめです。 世界がEnumから隠した秘密をひとつひとつ見つけていこうな #TypeScript - 角待ちは対空タイトルはよくないけど…

cpanモジュールのインストールに失敗したら

--configure-args をいい感じに渡せばどうにかなるモジュールもあればどうしようもないモジュールもある。 昔は全然解決方法がわからなかったけど、ここ一年は何かと手で解決してた。 基本は以下の通り。 cpanm --look Hoge::Hoge ディレクトリが開かれる。…

MYSQL_HOST環境を設定するとmysqlコマンドで-hを省略してもtcp接続してくれる

dockerでmysql server立ててるとmysql.sockがないぞと怒られてしまうのでMYSQL_HOST環境変数を指定すると良いぞ。 ~/.my.cnfに [client] host=127.0.0.1 と指定してもいい。 blog.yux3.net

世界がEnumから隠した秘密をひとつひとつ見つけていこうな #TypeScript

qiita.com はてなエンジニア Advent Calendar 2017 5日目の記事です。 前回はid:chris4403によるAmazon Pollyを試してみた - memo logでした。いやぁ社長さすがです!! さて今日はEnumについての話題です。 TypeScriptは実行時に影響を及ぼすような独自機能…

iTerm2のTrigger使ってログを見やすくする

たったこれだけでログが100倍見やすくなるぞ!!! 自分のID statusやreqなどのアクセスログ頻出ワード status:500系統だけ色つけるとか perlにおける$VARなどの変数名 あたりを色つけてます。 blog.yux3.net

bashでのシングルクォートのエスケープ方法

% bash -c 'echo \'ハローワールド\' quote> ではだめで % bash -c 'echo '\''ハローワールド'\''' ハローワールド とする必要がある。 一旦 ' で終了させ結合するイメージ。 % echo 'a''b' ab 難しいね。 blog.yux3.net

Bash on Ubuntu on Windowsで開発環境を整えてる

最近はBash on Ubuntu on Windowsっていうのがあり、まぁいけるやろと思ったのでやっていく。会社のPC(Mac)の買い替え時期も近いので手元環境(dotfiles)を整理したい、最近dotfilesに関する勉強会をしたのでモチベーションがある、ここ二ヶ月くらいゴミみた…