タグ

ブックマーク / songmu.jp (14)

  • Let's Encryptのルート証明書切替周り(完結編) | おそらくはそれさえも平凡な日々

    tl;dr 驚くべきハックにより旧Androidも引き続き証明書エラーなくサイトを閲覧できそうです いよいよ5/4に標準の証明書チェーンが切り替わります 前回までのおさらい Android7.1以前でLet's Encrypt証明書のサイトが見られなくなる Let's Encryptの証明書切替周りその後 Let's Encryptはルート証明書を自身(ISRG)の認証局のルート証明書(ISRG Root X1)に切り替えようとしています。現在は、IdenTrustのルート証明書(DST Root CA X3)が使われています。 正確に言うと、ISRGは新しい認証局なのでそのルート証明書の普及率も当然低く、中間証明書はIdenTrustのルート証明書でクロスサインされており、それが標準で使われています。標準がDSTになっているだけで、ISRGのルート証明書のチェーンの証明書も指定すれば今で

    Let's Encryptのルート証明書切替周り(完結編) | おそらくはそれさえも平凡な日々
    umiyosh
    umiyosh 2021/05/01
  • Android7.1以前でLet's Encrypt証明書のサイトが見られなくなる | おそらくはそれさえも平凡な日々

    追記: その後の動きについて書きました → Let's Encryptの証明書切替周りその後 このサイトはLet's Encryptで証明書発行しているのでタイトルの件が気になったのだが、どうもあまり話題になっていない。恥ずかしながらSSL周り詳しいわけじゃないので、誤っているかも知れない。識者の意見を求む。 Let's Encryptが使われているサイトがAndroid7.1以前のバージョンで今年の9月29日以降見られなくなる可能性がある 延命策は用意されそうだが、それも来年の9月29日まで Let's Encryptのルート証明書切り替え計画に起因している Let's Encryptのルート証明書の変更 Let's Encryptはルート証明書を自身(ISRG)の認証局のルート証明書(ISRG Root X1)に切り替えようとしている。現在は、IdenTrustのルート証明書(DST

    Android7.1以前でLet's Encrypt証明書のサイトが見られなくなる | おそらくはそれさえも平凡な日々
    umiyosh
    umiyosh 2020/08/07
  • `ghg` で GitHub Releasesから適切な実行ファイルを統一的に取得する | おそらくはそれさえも平凡な日々

    https://github.com/Songmu/ghg tl;dr % ghg get motemen/ghq とかやれば、GitHub Releasesに上がった最新の実行ファイルを取得できる。 % $(ghg bin)/ghq とかで実行可能。 $(ghg bin) を $PATH に追加してもよい。 % ghg get Songmu/ghch@v0.0.1 とかでバージョン指定も可能。 Goで書いたツールを提供する場合、クロスビルドしたものを GitHub Releasesに上げるのが定番となっています。 なぜ、 go get ではないのかというと go get の場合以下のような問題があるからです。 go get するにはGoの環境が必要 安定版ではなく、開発中の最新をビルドしてしまう ビルド情報などをバイナリに埋め込めない ただし、GitHub Releasesに上げる

    `ghg` で GitHub Releasesから適切な実行ファイルを統一的に取得する | おそらくはそれさえも平凡な日々
    umiyosh
    umiyosh 2016/07/08
  • Makefileを自己文書化する `make2help` | おそらくはそれさえも平凡な日々

    近年「タスクランナー」という言葉をよく耳にするようになりました。近年のWeb開発では、開発環境のセットアップ、依存ライブラリの管理、テストの実行、開発サーバーの起動、ビルド、デプロイ等等、とにかく気にしないといけないことが多いため、そういったタスクを一元管理してくれるタスクランナーは便利なやつです。 新しくプロジェクトに参加した際に、タスクランナーを見れば何をやれば良いのかだいたい分かるようになっているのが理想的だと思っています。 タスクランナーという言葉は主にJS界隈で使われており、そもそもタスクランナーなのかビルドツールなのかという話はありますが、ここでは便宜上それらをひっくるめてタスクランナーと呼ぶことにします。 gulp質的にはビルドツールですし。 Goの開発においては、タスクランナーとして、古き良きビルドツールであるところの make が主に使われます。 make も使って

  • Gitのtagとpull requestのマージ履歴からChangelogを自動生成する `ghch` | おそらくはそれさえも平凡な日々

    https://github.com/Songmu/ghch mackerel-agent のリリースフローでは、前回のリリース以降の、pull requestのマージ履歴を拾って、そこからChangelogを自動生成するということをおこなっている。 これは、1年半前くらいにPerlで書いていたのだが、この度汎用的にしてGoで書きなおした。それが ghch。前回打ったsemverっぽいgit tag以降のマージ履歴を抽出してくれる。例えば、こういう風にmackdownで出力がされる。 % ghch --format=markdown --next-version=v0.30.3 ## [v0.30.3](https://github.com/mackerelio/mackerel-agent/releases/tag/v0.30.3) (2016-04-27) * retry retire

    Gitのtagとpull requestのマージ履歴からChangelogを自動生成する `ghch` | おそらくはそれさえも平凡な日々
    umiyosh
    umiyosh 2016/05/11
  • レコードがなかったらINSERTして返すみたいなのを確実にやる | おそらくはそれさえも平凡な日々

    find_or_create的なやつは大体どんなORMでも レコードを探す 無かったらINSERT みたいに実装することになると思う。ただこれだと、1と2の間でレースコンディションでエラー起きることがある。他のプロセスがINSERTしてしまうとかそういうやつ。 それを防ぎたい場合に、1の時点でFOR UPDATEするのはすごくダメで、空行にFOR UPDATEしたりするとMySQLだと盛大に乙るのは有名な話。 エラーを起こさないで、確実にレコードを取りたい場合にはどうすればよいかというと、以下のようにするのが良いと思っている。UNIQUEキー制約なりがちゃんと付いている前提。サンプルコードはTengの場合。 sub find_or_create_surely { my ($self, $table, $where, $opt) = @_; my $row; my $txn = $self-

    レコードがなかったらINSERTして返すみたいなのを確実にやる | おそらくはそれさえも平凡な日々
    umiyosh
    umiyosh 2014/03/03
  • Carton考2014 | おそらくはそれさえも平凡な日々

    こうするのがいいかなーと思ってる。経緯は端折って大枠だけ。Webアプリケーションプロジェクトの場合です。 cpanfileちゃんと書いてコミット 今やどこでもやってますね。scan-prereqs-cpanfileも便利です。 開発者は各自carton installでモジュールをインストール。プロジェクトごとにPerlをビルドしたりしてる場合は、cpanm --installdeps .でも別に良い。 CI環境でcpanfile.snapshotを作る CI環境は必ず以下のとおりとする。 番環境と同じアーキテクチャ 番環境と同じバージョンのPerl まっさらな状態(Globalに何のモジュールも入っていない) CIにcarton installもさせて、必要なモジュールをlocal/に入れてテストさせる。毎回サラからcarton installしてたら時間かかるので、git pull

    Carton考2014 | おそらくはそれさえも平凡な日々
  • YAPC::Asia2013に行ってきました | おそらくはそれさえも平凡な日々

    今年もホント楽しかった。スタッフの皆様には感謝の言葉もありません。会場も最高だったしネットワークかつて無く快適だった。lestrattさん、941さん体制の最後にふさわしい非の打ち所のないYAPC::Asiaだったと思います。お二方はこれまで当にありがとうございました。 弊社の若い人が幾つかトークをして何れも好評だったようで良かったです。まーもともとポテンシャルの高い人達なので、そういう経験を経てもっと成長してもらえるといいと思うし、他のトークに応募しなかった人も機会があったら応募すると良いと思います。トークをすることを期待されいてる人もいると思うので。他にも弊社の若い人たちが、大分モチベーションアップにつながったようなブログ記事を幾つか見かけて、非常に嬉しく思います。 僕も今年は割と色々な人に話しかけてもらったりも増えて、著名な人と色々議論とかもできたりして世界が広がった感じがして

    YAPC::Asia2013に行ってきました | おそらくはそれさえも平凡な日々
    umiyosh
    umiyosh 2013/09/24
  • RijiというBlogツールを書いた | おそらくはそれさえも平凡な日々

    空前のオレオレBlog環境構築ブームなわけですが、僕もRijiというBlogツールを書いてこのブログもそれに乗り換えました。Puncheur使ってます。 % cpanm Riji 使えるようになる簡単具合です。Puncheur素晴らしい(ステマ)。あとは、 % riji setup とかやれば雛形作ってくれたりする感じ。チュートリアルもまじめに書いたので試してもらってフィードバックとかもらえると嬉しいです。 https://junkyard.song.mu/p5-Riji/blog/ 手元のエディタでMarkdownで書けて動的配信にも静的配信にも対応しているようなよくあるやつです。Gitで管理することが前提になっていて、コミットログを元にRSSが出力されるとかそういうところがちょっと特徴。 構想自体は2年くらい前からあって何度か書きかけたのですが、先日「やり残しハッカソン」と銘打たれた催

    RijiというBlogツールを書いた | おそらくはそれさえも平凡な日々
    umiyosh
    umiyosh 2013/08/04
  • おそらくはそれさえも平凡な日々: サーバーマシンのコア数に応じてworker数を調整する方法

    PSGI/Plackアプリケーションの起動方法いろいろと番環境アレコレ 便乗ポスト。最近は、上記内の「シェルスクリプトでラップする方法」で運用していることが多いです。その場合のone more tips. appサーバーごとにマシンスペックが違う場合がたまにあって、その場合マシンごとに worker数を調整したいけど、deployの都合上サーバー起動スクリプトは同じやつを使いた いってことがあります。 そこでおすすめなのが、CPUコア数に応じてworker数を計算する方法です。 シェルスクリプトの場合、 % cat app.sh #/bin/sh NCPU=`getconf _NPROCESSORS_ONLN` WORKERS=$(expr $NCPU \* 5) exec plackup -E production -s Starlet --max-workers=$WORKERS と

    umiyosh
    umiyosh 2013/06/08
  • おそらくはそれさえも平凡な日々: 運用におけるcrontabのテストとParse::Crontab

    Vixie cron形式のcrontabをparseするモジュールをリリースしました。 Vixie cronと言えば、けんじおじさんに「カビ臭い」とかdisられそうな代物ですが、なんだかんだで利用している人は多いでしょうし、僕も使っています。 https://metacpan.org/release/Parse-Crontab 最近携わるプロジェクトではcrontabはリポジトリ管理しているのですが、それをあまりちゃんとテストをしてなかったので、それを解消すべく書きました。 以下の様に、crontabのテストを書くことが可能です。 use strict; use Test::More; use Parse::Crontab; my $crontab = Parse::Crontab->new(file => 'data/crontab.txt'); ok $crontab->is_vali

    umiyosh
    umiyosh 2013/01/08
  • おそらくはそれさえも平凡な日々: Wiki記法的なものとか文書管理とかに思うこと

    Wiki記法的なものとか文書管理とかに思うこと 最近社内向けのドキュメント書いてたりもするので、かねがね思っていたことを書く。かなり与太話。 文書管理とかについて思うこと 文書くときって使い慣れたローカルのエディタで編集したいじゃないですか。長いBlogを書くときって、結局ローカルで書いたのをテキストエリアに貼り付けて、みたいにやっている人は多いと思うんですよ。僕はそうしてます。 BlogにせよWikiにせよドキュメントにせよ、ローカルでテキストファイルを編集できて、バージョン管理して、リポジトリにコミットしたらサイト反映みたいになってると、楽だと思うんですよね。 複数人で編集するときにすごく効果を発揮するはず。Wikiとか編集が競合したらめんどくさいけど、今時のバージョン管理ツールなら上手いことマージしてくれたり、コンフリクトを検出できるし。 文書フォーマットをどうするかというと、LaT

    umiyosh
    umiyosh 2012/09/11
  • おそらくはそれさえも平凡な日々: Plack::App::Directory::Markdownが便利な件

    https://metacpan.org/release/Plack-App-Directory-Markdown 自作自演乙。 意識の高いエンジニアの皆さんなら、markdown形式でメモを残しているんじゃないでしょうか。 plackup -MPlack::App::Directory::Markdown -e 'Plack::App::Directory::Markdown->new->to_app' のような感じで、ディレクトリ内のmarkdownファイルの一覧を出してくれるとともに、markdownファイルはhtmlに変換して出力してくれます。皆さんが見飽きたBootstrapデザインになっております。 padm とかでalias作るときっと楽ですね。 alias padm="plackup -MPlack::App::Directory::Markdown \ -e 'Plack

  • おそらくはそれさえも平凡な日々: モダンなPerlを「読む」上で覚えておくとよい構文 第1回(?)

    Perl学習者がある程度Perlに慣れてくると、他の人の書いたコードを読む機会も増えてきます。そこでつまづく人は多いのではないでしょうか。かく言う私自身がその一人です(笑) モダンなPerlはDSL(黒魔術?)的な書き方をしている部分も多く、雰囲気として処理内容をつかみやすいのですが、逆に文法的に構文を理解するのが難しいことも多いです。 「知っている人には当たり前、知らない人には黒魔術」 Perlにはそういうのが多いので、そういったところで悩んでいる人も多いのではないかと思い、このエントリーを書いてみることにしました。気が向けば続きも書きます。間違っている部分もあるかと思うので、ブクマコメ等でご指摘いただけると助かります。 日の目標とサンプルコード 裸のワード(bareword)は怖くない encode cp932 => $str; sub PI(){3.1415926535} てことで

  • 1