角待ちは対空

おもむろガウェイン

Techに関する記事一覧

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に関する勉強会をしたのでモチベーションがある、ここ二ヶ月くらいゴミみた…

chromeのData Saverに勝手に画像を圧縮されるのを防ぐ

Webにおけるマンガビューアの画像保護の実装は「サーバーからはパズル化された画像を配信、ブラウザはcanvas要素使って組み立てる」というのがメジャー。Kindleもやってる。 その際注意が必要なのはHTTPで配信する場合、ブラウザと画像配信サーバーとの間に…

がんばらないTypeScriptのはじめ方

このエントリは2017/07/12に行われたHatena Engineer Seminar #8 @ Tokyoの発表内容をブログ向けに書き直したものです。 事前の通知では「CoffeeScript脱出にみるTypeScript2.4時代のベストプラクティス」がタイトルだったのですが、主題を変えたためタイト…

TypeScript 2.4のSafer callback parameter checkingについて

TypeScript 2.4 RCがリリースされました。 Announcing TypeScript 2.4 RC | TypeScript いくつか変更点があるのですがこのエントリではSafer callback parameter checkingについて解説します。公式ドキュメントでいうとFAQ · Microsoft/TypeScript Wiki · Gi…

TypeScriptの`Object`型と`object`型と`{}`型の使い分けについて

TypeScriptには似たような型としてObject型とobject型と{}型が存在します。 let o1: Object; let o2: object; let o3: {}; 今回はこの3つの使い分け、あるいはobject型導入の経緯についてです。 JavaScriptのデータ型 JavaScript のデータ型とデータ構造 - J…

Typescriptのコードを読む #4

2週間でできる! スクリプト言語の作り方 (Software Design plus)作者: 千葉滋出版社/メーカー: 技術評論社発売日: 2012/02/10メディア: 単行本(ソフトカバー)購入: 11人 クリック: 318回この商品を含むブログ (18件) を見る 一旦読むの諦めて写経してる。…

2017-06-02の日記

自転車 ほしい。別に必要ないけど運用する気のない貯金が溜まっていくくらいならば普段使うものに金を掛けたほうが良いのではないかという気持ちになってきたので、そこそこの自転車がほしい。 SCF ストロベリクリームフラペチーノのことだけど、記憶してた…

Typescriptのコードを読む #3

SyntaxList がなんだかよく分からず終わった。 TypeScript/types.ts at 3cd9f3d2d4afc1c817ea53b3e40d9598197e9aaa · Microsoft/TypeScript · GitHub

Typescriptのコードを読む #2

Scanner TypeScript/scanner.ts at 3cd9f3d2d4afc1c817ea53b3e40d9598197e9aaa · Microsoft/TypeScript · GitHub export interface Scanner { getStartPos(): number; getToken(): SyntaxKind; getTextPos(): number; getTokenPos(): number; getTokenText()…

Typescriptのコードを読む #1

突然だけどTypescriptのコードを読んでいくことにする。特に目的はない、のでどこから読んでいいかわからないけど、scannerからいく。そして、scanner自体もそこそこあるし、疲れるので、大体関数1個ずつくらいのペースで行くのではないか。飽きたらやめる。…

CHANGELOG の書き方

VS Code の拡張作っている際に CHANGELOG.md が自動生成され、書き方はKeep a Changelogに従えと書かれていたので紹介する。 ここに書かれていることは絶対ではなくただ提案しているだけである。意見がある人は話し合おうという温度感っぽいので、納得いかな…

vscode事始め

検索が早いという一点の理由だけで最近 vscode 使いつつある。起動が早い検索が早いこと以外 atom で全く困ってないし快適なので悔しいけど、そこが致命的なので頑張って乗り換えようとしてる。(MS 製なので typescript のサポートがちゃんとしてるけど、も…

#golangkyoto 「そうだ、 Go 京都」で「Go に String::Random を移植した話」というタイトルで発表した

これは「そうだ、 Go 京都」で発表した内容をブログ用に起こしたものです。発表スライド自体は公開する予定はありませんが、内容としてはより詳しくなっているはずなのでご容赦ください。 developer.hatenastaff.com 直帰ユーザーにも分かるように最初に宣伝…

標準出力(標準エラー出力)の内容を一時的に Perl 変数に書き込みたい

Devel::Peek::Dump なんかは結果が標準エラー出力に表示されるだけなのでコード内で結果を使いたいと思うと標準エラー出力の出力先を変数へ書き換え、その後復元させてやる必要がある。 use strict; use warnings; use utf8; my $stderr; open my $temp, '>&…