タグ

ブックマーク / moznion.hatenadiary.com (17)

  • Dockerコンテナ内でpuppeteerを使うとChromeゾンビプロセスがたまる問題 - その手の平は尻もつかめるさ

    表題のような問題があり,その調査したという記録です.なお,結論を一言で言うと--initを使え,ということになります. そもそもDockerコンテナを起動すると,CMDあるいはENTRYPOINTに指定されたコマンドがコンテナ内でPID 1として起動します.これが何を意味するかと言うと,「CMDあるいはENTRYPOINTに指定されたコマンド」はそのコマンド自体の責務をまっとうするのと同時に,initプロセスとしての振る舞いも行わなければならないということになります (id:hayajo_77さんにこの辺を詳しく教えてもらいました,ありがとうございます). つまりPID 1で動いているプロセスは「SIGCHLDをトラップすることで孤児プロセスを適切に回収し,waitpidをかける」という処理も適切に行う必要があります. さて,puppeteerを使ってChromeブラウザを起動するとどうな

    Dockerコンテナ内でpuppeteerを使うとChromeゾンビプロセスがたまる問題 - その手の平は尻もつかめるさ
    yogasa
    yogasa 2019/03/03
  • aws-lambda-perl5-layer 書いた - その手の平は尻もつかめるさ

    [2018-12-05 追記] ビルド済みのLayerを公開しましたので,そちらを使うと便利です. See also: http://moznion.hatenablog.jp/entry/2018/12/05/211523 [追記ここまで] 先日のre:InventでCustom AWS Lambda Runtimesが発表され*1,これはつまり任意の言語でAWS Lambdaを実行することを可能とする機能なんですが,ということはPerl5が動くということでして,すなわち動くと嬉しいはず,したがって動かすためのLayerを書いたという話です. github.com この場合のLayerというのはPerl5を動かすための基盤だと思ってください.基的にはbootstrapが実際にぐるぐる回ってperlの関数を実行するという感じになっております. どのようにして動いているかは公式のTutor

    aws-lambda-perl5-layer 書いた - その手の平は尻もつかめるさ
  • 定期的にtcpdumpをある期間だけ実行したいという時 - その手の平は尻もつかめるさ

    tcpdumpの提供する-Wオプションと-Gオプション,ならびにcrontabを併用するといける. tcpdumpの-Wオプションはログローテーションを行う回数で,-Gはそのローテーション期間を秒数で指定できる. 例えば $ tcpdump -w ./%Y%m%d%H%M%S.pcap -W1 -G60などとやると,ログローテーション1回,ローテーション期間は60秒となるので,つまり60秒tcpdumpを実行した後にexitする (ローテーション1回指定なので). ちなみに-wオプションで指定するファイル書き出し先についてはstrptimeと同じフォーマットが利用できるのでこういう時に便利. あとはcrontabでこのコマンドを仕込んでやるとOK (id:hirose31さんから「crontabでは%をエスケープする必要がある」との指摘があり修正しました). 55 * * * * tcpd

    定期的にtcpdumpをある期間だけ実行したいという時 - その手の平は尻もつかめるさ
  • 最近のgitを使った開発フローについて - その手の平は尻もつかめるさ

    最近のgitを使ったWebアプリケーションのプロジェクトの開発フロー (主にブランチ運用) について記すものです. なお前提としてGitHub Enterpriseを利用しています. git-flow 大上段に構えたもののあまり特殊なことはしていなくて,基的にgit-flowをそのまま踏襲しています. git-flowについてはしっかりした解説記事がインターネット上に数多く存在しますからそれらを参考にしていただければと思いますが,ざっくり説明すると masterブランチ,developブランチ,releaseブランチ,featureブランチ及びhotfixブランチがある masterブランチは常にリリース可能な状態になっている (すなわち現在番で稼働しているアプリケーションのコードと等しい) developブランチは開発中の状態で,ステージング環境等に上がっている releaseブラン

    最近のgitを使った開発フローについて - その手の平は尻もつかめるさ
    yogasa
    yogasa 2017/01/08
  • 快適な連打機能を提供するためにサーバサイドが出来ること - その手の平は尻もつかめるさ

    人間生きていると高確率で連打機能を提供するシステムを構築する必要が出てくることがあります. 例えばあるコンテンツについてボタンを連打することで「良いね」を表明するようなシステムです. 連打は楽しい!! しかし実装する方としては純粋に楽しんでばかりはいられません. こうしたシステムは素朴に実装したとしてもある程度のトラフィックまでは耐えられるかもしれませんが,ある規模を超えると安定して機能提供する事は難しくなってくるかもしれません. ここでは,サーバサイドの話題を中心として,快適な連打機能を提供するシステムをどうすれば提供できるかを考えていきます (あくまで一例です). 想定としては, あるコンテンツについてボタンが付いていて,そのボタンは連打が出来る あるコンテンツについてボタンが何回押されたかを取得できる というシステムを仮定します. なんとなく結論が分かる雑な図 題 サーバを分離する

    快適な連打機能を提供するためにサーバサイドが出来ること - その手の平は尻もつかめるさ
  • 情報共有システム (Wiki みたいなやつ) に求めること - その手の平は尻もつかめるさ

    いま所属している組織で使っている情報共有システムが僕はいまいち好きではなくて,気にわないところを twitter にガーッと書いたんだけど,さてここで「良い情報共有システムとは」と考えた時にスッと言語化出来なかったので,僕の思う情報共有システムに求めることをここでまとめておくことにする. エディタが腐ってない これは当に重要で,エディタが腐っていると「Wiki を書こう」という気がそもそも起きないし,起きたとしてもエディタがストレスフルだと文章を書き始めてすぐに嫌になってしまうので最低限エディタはまともである必要がある.さもなくば Wiki は廃墟と化す. WYSIWYG なエディタを利用するのは難しいと思っていて,当に使いやすい WYSIWYG エディタを作るというのはかなりコストが高い (WYSIWYG エディタはある程度まで完成度が高まっていないと使い物にならない気がする) の

    情報共有システム (Wiki みたいなやつ) に求めること - その手の平は尻もつかめるさ
    yogasa
    yogasa 2015/11/09
  • Javaでkamipo traditionalを有効にする - その手の平は尻もつかめるさ

    kamipo traditional については以下の記事が詳しい. ルーク!MySQLではkamipo TRADITIONALを使え! | おそらくはそれさえも平凡な日々 ところでこれをJava,というかJDBCで有効にするには以下のように書いてやるとよろしい. try (final PreparedStatement preparedStatement = connection.prepareStatement( "SET SESSION sql_mode = 'TRADITIONAL,NO_AUTO_VALUE_ON_ZERO,ONLY_FULL_GROUP_BY';")) { // This is "kamipo TRADITIONAL". More strict, healthy, nice. // https://github.com/kamipo/etcfiles/blob/

    Javaでkamipo traditionalを有効にする - その手の平は尻もつかめるさ
    yogasa
    yogasa 2015/07/08
  • 命名の話 - その手の平は尻もつかめるさ

    命名の話をしました.1時間位でなんとか間に合わせで書いた資料です. よろしくお願いします. 命名の話 from moznion www.slideshare.net あと,例えばメソッド名で"get"と"retrieve"と"fetch"をどう使い分けるか,みたいな話題が出て, 僕あたりは getは単純なゲッター的なものに使う retrieve は DB にアクセスして値を取ってくるものに使う fetch は何らかごちゃごちゃ処理をして (API 叩くとか) 所望の値を取ってくるものに使う という風な使い分けの話をしました.そういったルールが各々の人の中にはあります. ここらへんのルールというのは個人が好き放題やっても無力なので (というかノイズたりえるので) プロジェクトの人間たちが話し合ってすり合わせる必要があります. とは言え,いちいち些細な命名の問題について話し合っていくのはだるい

    命名の話 - その手の平は尻もつかめるさ
    yogasa
    yogasa 2015/04/20
  • Groovy 所感 - その手の平は尻もつかめるさ

    開発のサポートツールやらなにやらで,こまごましたものを Groovy でちょいちょい書いて思ったことです. Groovy で Web アプリケーションを書いたとかそういうゴツい話ではないのでそのあたりはよくわかりません. なお記事中に出てくる Java っていうのは Java 8 以降のことを指していると思ってください. 所感 楽にコードが書けるという点では良い.言語的にそういうところを重視している気がする. defとか.あとは DB 操作とか結構良い.楽. System.out.println() とか書かなくて良いのは当に良いですね. とは言え,なんだかんだで補完の支援を受けないと記述コストは大きいと思う.賢い補完が要る. gradle は pom.xml 書くよりもストレスが小さい気がする. とは言え maven でもめんどいことは gradle でもめんどい印象. 結局なんか,

    Groovy 所感 - その手の平は尻もつかめるさ
  • OS Xのクリップボードとtmuxのクリップボードを共通化する - その手の平は尻もつかめるさ

    OS Xのクリップボードとtmuxのクリップボード *1 を共通にする設定に関するメモです. なお,tmuxのバージョンは1.9a,reattach-to-user-namespaceのバージョンは2.3です. 1. まずreattach-to-user-namespace入れる $ brew install reattach-to-user-namespace簡単. 2. 設定ファイルを書く .tmux.confに設定を書く. if-shell 'test "$(uname -s)" = Darwin && which reattach-to-user-namespace > /dev/null 2>&1' 'source-file ~/.tmux-reattach-to-user-namespace.conf' if-shell使うと,第一引数がtrueの時だけ第二引数を実行してくれて

    OS Xのクリップボードとtmuxのクリップボードを共通化する - その手の平は尻もつかめるさ
    yogasa
    yogasa 2014/08/21
  • 「UNIXという考え方」を読んだ - その手の平は尻もつかめるさ

    「UNIXという考え方」をAmazonのwish listに入れていたらid:kenjiskywalkerさんが贈ってくださったので読みました.お陰でUNIXという考え方を学べました.ありがとうございます! 書では一貫して「プログラムを小さく作る」という事と「1つのプログラムには単一のことだけを上手くやらせる」という事について言及されています. プログラムを小さく作るということによって,そのプログラムはコンピュータのリソースに対して優しくなり,なおかつ巨大なプログラムと比較して人間が理解するのが簡単になるので保守がしやすくなり,かつ他の部品と組み合わせやすくなるという論旨です. プログラムを小さく作ると,必然的にそのプログラムは多くの責務を負えなくなる為,自然とプログラムは単一の機能のみを持つようになります.従ってこれら2つの考え方は対になっていると言えるでしょう. 書で言われている「

    「UNIXという考え方」を読んだ - その手の平は尻もつかめるさ
    yogasa
    yogasa 2014/04/01
  • 「Webアプリエンジニア養成読本」を読みました - その手の平は尻もつかめるさ

    Perlの話がほぼ出てこないこのはクソ!!!!! (嘘です.著者の1人にそう書けって言われたものだから……) Webアプリエンジニア養成読[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus) 作者: 和田裕介,石田絢一(uzulla),すがわらまさのり,斎藤祐一郎出版社/メーカー: 技術評論社発売日: 2014/03/11メディア: 大型この商品を含むブログ (2件) を見る Webアプリの着想・設計・制作・運用までバランスよくまとまっていて良いだと思いました.この手の書籍で運用にまつわる話が載っているのは中々珍しい気がします. 1章 基的なWebの技術 (HTTPとかServer-ClientアーキテクチャとかHTMLとか) の説明が優しく,わかりやすくて良いです.僕もWebアプリ触り始めの頃にこれを読めれば!!!! と

    「Webアプリエンジニア養成読本」を読みました - その手の平は尻もつかめるさ
    yogasa
    yogasa 2014/03/24
  • コードレビューポエム - その手の平は尻もつかめるさ

    これはポエムです (It's just like a unko). ■ 「なぜコードレビューをするのか」という問いに対する答えは様々だ.コードの品質を上げるため,コードレビュー自体が楽しいから,あるいはコードレビューやってる俺たちって恰好良いじゃん,などなど色々ある. これらは全部正しいと思う.コードレビューをすればコードの品質が高くなる可能性は強まるだろうし,「コードレビューが楽しい」という感情がコードを書くための原動力になるのであればそれは良いだろうし (なぜならコードレビューをするにはレビュー対象たりえるコードが必要だ),「コードレビューやってる俺たちって恰好良いじゃん!」というのも結構だ.貴方がたは当に恰好良いヨ! さて,コードレビューという話題に必ずついて回る尤もらしい理由の1つである「コードの品質向上」について考えたい. なぜコードレビューがコードの品質を上げるための手段とし

    コードレビューポエム - その手の平は尻もつかめるさ
  • tmux 1.9系でもcurrent pathの情報を引き継いでnew-windowやsplit-windowしたい - その手の平は尻もつかめるさ

    去る2014年2月22日にtmux 1.9がリリースされたので勇んでアップデートしたところ,1.9からはdefault-pathオプションが削除されており,またそれが原因かどうかは定かではありませんが *1,new-windowやsplit-windowするとcurrent pathの情報を引き継いで *2 くれなくなってめっちゃ不便!!!! ってなって,「これもう1.9にアップデートしなくても良くね??? CHANGES見てもこれといった変更ないし……」という心意気に一時はなったんですが,僕みたいな糞ミーハーはやっぱり新しいものを使いたいのでちょっと調べてみました. 結論 bind '"' split-window -vc "#{pane_current_path}" bind '%' split-window -hc "#{pane_current_path}" bind 'c' ne

    tmux 1.9系でもcurrent pathの情報を引き継いでnew-windowやsplit-windowしたい - その手の平は尻もつかめるさ
    yogasa
    yogasa 2014/03/03
  • はてなインターン2013に参加して参りました、そして与太話がしたい - その手の平は尻もつかめるさ

    幸運にもはてなインターン2013に参加する機会に恵まれましたので、謹んで参加して参りました。 「参りました」っていうのは、「精神的に参ってしまいました」とかそういう意味合いではありません。謙譲語です。 (非常に遺憾な事に、他のインターン参加者のブログを見ると、僕が精神的に参っている人のように描かれているので) さて、エントリの前半でははてなインターンの全般の話を取り上げます。が、このへんは他のインターン参加者のブログの方が詳しいし丁寧だと思うので、そちらを読むと良いでしょう。エントリではできるだけ技術的な部分 (というか、開発プロセスのあたり) に触れて行きたいと現時点では考えていますが、スピリッチャルな内容になるかもわかりません。 エントリの後半は与太話です。それは例えばソフトウェアエンジニアの話かもしれないし、漫画家の話かもしれないし、サラリーマンの話かもしれないし、あるいはそう、

    はてなインターン2013に参加して参りました、そして与太話がしたい - その手の平は尻もつかめるさ
  • テストにコケる度にシーザーが死ぬ仕組みを作りました - その手の平は尻もつかめるさ

    タイトルは釣りです。 App::WithSound をリリース致しました。 https://github.com/moznion/App--WithSound https://metacpan.org/module/MOZNION/App-WithSound-v1.0.2/with-sound (2013.03.06 追記) App::WithSound はv1.1.0 にバージョンアップしました。 コマンドの成功・失敗時だけでなく、コマンドの実行中にも音声を再生出来るようになっています。 https://metacpan.org/module/MOZNION/App-WithSound-v1.1.0/with-sound (追記ここまで) App::WithSound? コマンドが成功するか失敗するかによって、その結果に対応した音声が流れるアプリケーションです。 まず、このモジュールはm

    テストにコケる度にシーザーが死ぬ仕組みを作りました - その手の平は尻もつかめるさ
  • 米国人からコーディングについての怒りのメールを頂戴した - その手の平は尻もつかめるさ

    "米国人からコーディングについての怒りのメールを頂戴した" の補足 - その手の平は尻もつかめるさ ↑の方で補足いたしました。(2012.09.04 追記) 最近、英語のメールでよく怒られます。moznion です。 海を隔てて共同作業しているアメリカ人から、僕のコーディングについてお叱りのメールを頂いたので、 自戒の念を込めて邦訳して記します。 書いてあることは「当然」とも言うべき内容ですが、僕はその「当然」も守れていなかったのかぁ〜と反省。 以下、邦訳(意訳)です。 1. 郷に入っては郷に従え 既にソースコードが存在しているって事は、そこには同時にコーディングスタイルも存在しているってことだ。 その既存のソースコードに手を加える場合、別のコーディングスタイルを導入してはならない。 もし君がバックエンドのソースコードを弄っているなら、バックエンドのコーディングスタイルで記述するんだ。 フ

    米国人からコーディングについての怒りのメールを頂戴した - その手の平は尻もつかめるさ
  • 1