タグ

ブックマーク / moriyoshi.hatenablog.com (10)

  • Goならわかるシステムプログラミング第2版が出たので書評しますね - moriyoshiの日記

    少し前になりますが、3月23日に、渋川よしきさんの著された「Goならわかるシステムプログラミング 第2版 」が発売されました。初版と比べてかなり加筆されておりパワーアップしているので、初版をすでにお持ちの方でもさらに興味深く読むことのできる内容に仕上がっている、というのが第一印象です。 残念ながら初版発売時に記事にする機会がなかったのですが、あらためて今回書評したいなと思いましたので、徒然書いていきたいと思います。 このは実はシステムプログラミングのではないかもしれない 「システムプログラミング」とは何でしょう。正直私にもわかりません。その語をはじめに思い浮かべた人は、プログラミングという概念のその中にあえて「システムプログラミング」という分類を作ろうと思い至ったということですから、きっと「非システムプログラミング」というものもあるということでしょう。知らんけど。しかし、これは書の位

    Goならわかるシステムプログラミング第2版が出たので書評しますね - moriyoshiの日記
    kuenishi
    kuenishi 2022/05/18
  • グリー株式会社を退職していました - moriyoshiの日記

    グリー株式会社を退職していました。2006年12月29日が最終出社日でした。 最終日は例年を上回る寒さでしたが、六木は晴れ、抜けるような空の青さが印象的でした。有給を消化するはずが、結局最後まで吉田くんが手がけていたお正月特集の仕掛けに時間を費やしていたので、当にここで出社しなくなるのだろうか、と自問するほどでした。 在職期間は契約社員時代も含め1年半とちょっと短かったのですが、その中でもたくさんのことを経験することができました。サイトの初リニューアル作業に始まり、DBの最適化、出たばかりのSennaを使った全文検索システムや画像サーバクラスタの構築など、責任のある仕事を丸ごと任せてもらえたのは大きかったです。一緒にやっているメンバーには、自分のささいなミスでたくさん迷惑をかけました。ごめんなさい。 一方で、何か大きな成果を残すことができたかというと、謙遜ではなく、あまり胸を張れるとこ

    グリー株式会社を退職していました - moriyoshiの日記
    kuenishi
    kuenishi 2016/08/07
  • Boost の autolink がやたらと鬱陶しい件 - moriyoshiの日記

    kuenishi
    kuenishi 2016/04/07
  • FFmpegで動画編集をするガイド - moriyoshiの日記

    こんにちは。年末になり、ますますコマンドラインで動画編集をする機会が増えてきているかと思いますが、皆様いかがお過ごしでしょうか。普段触れていないとついつい忘れてしまうffmpegのオプション群。そんなあなたのためのチートシートです。 基礎編 トランスコーディング ffmpeg -i input.mp4 -c:v libx264 -preset medium -c:a libfdk_aac output.mp4 または ffmpeg -i input.mp4 -vcodec libx264 -preset medium -acodec libfdk_aac output.mp4 解説 -c:v オプションは映像コーデックを、-c:a は音声コーデックを指定する。古くはそれぞれ -vcodec -acodec というオプションであった。両者は等価である。 -preset は libx264 の

    FFmpegで動画編集をするガイド - moriyoshiの日記
    kuenishi
    kuenishi 2015/12/18
    yabai わかりやすすぎ
  • GoのツールチェインのCコンパイラを使う - moriyoshiの日記

    (この記事は Go Advent Calendar 2013 の12月24日に公開されるはずの記事でした。関係者の皆様大変申し訳ない。) はじめに Goコンパイラをビルドすると、なぜかアセンブラ (5a, 6a, 8a) やCコンパイラ (5c, 6c, 8c) までもがビルドされます。これらはPlan 9のツールチェイン由来のもので、ランタイムライブラリ (src/pkg/runtime) の一部のソースコードのコンパイルに使われます。システムデフォルトのコンパイラを使わない (使えない) 理由は、GoのABIがPlan 9のものをなぞっており、Goランタイム上ではこのツールチェインの生成するコードしか動かせないからです。*1 つまり、このツールチェインを利用することで、Goランタイム上で動くコードをGoではなく全部C言語で書くことができます。 Goのアプリケーション初期化シーケンス G

    GoのツールチェインのCコンパイラを使う - moriyoshiの日記
    kuenishi
    kuenishi 2013/12/26
  • PHP5.3の名前空間の区切りを好きなUTF-8マルチバイト文字列にできるパッチ - moriyoshiの日記

    id:sotarok が 当ですか!!名前空間区切りがきれいなPHPくれますか!! http://wassr.jp/user/sotarok2/statuses/IYzUK778PO と言ったので、ぼちぼち作った。 たとえば php.ini に namespace_separator=(´・ω・`)と書いたり、もしくは .htaccessに php_value namespace_separator ”(´・ω・`)"と書いたりすると、名前空間の区切りが「(´・ω・`)」になり、 <?php namespace a(´・ω・`)b(´・ω・`)c; class Foo { } var_dump(get_declared_classes()); ?> 上のようなコードが可能となります。よかったですね。

    PHP5.3の名前空間の区切りを好きなUTF-8マルチバイト文字列にできるパッチ - moriyoshiの日記
    kuenishi
    kuenishi 2010/10/13
    朝からコーヒー吹いた。PHPに名前空間なんてできたんだ
  • Linux上で動くSkype用のbotを作る方法 - muddy brown thang

    はじめに 以前、知人のやっているBeProudという会社を手伝ったのですが、BeProudでは、エンジニアの主要なコミュニケーション手段としてSkypeが使われていました。当時、趣味でたまたまSkypeのAPIについて調べていたので、悪戯っ気を出して、開発環境に即席でSkype APIを使ったbotを設置してみたところ、思いのほか好評を博し、いまやインフラと言っても過言ではない存在 *1 *2と化したようです。 まあそんな状況を眺めつつ、自宅のサーバにSkype botを設置して、お気に入りのSkypeチャットにもbotを加えてみたところ、これも結構好評だったので、興味ありそうな人向けに作成方法をまとめることにします。 Skype Public API Skype Public APIとは、Skypeを外部からコントロールするためのインターフェイスです。 Skype Public API

    Linux上で動くSkype用のbotを作る方法 - muddy brown thang
    kuenishi
    kuenishi 2010/09/28
  • GDBで実行中のスクリプト言語のスタックフレームをダンプしてみる試み - moriyoshiの日記

    よく分からない理由で固まってしまったプロセスがあった。テスト環境ではなかなか再現しない。このようなとき、番環境でデバッガを走らせるようなことも選択肢として考慮したいところ。 今回は Ruby のプロセスが固まってしまったので、Rubyの eval.c と 10 分ほどにらめっこしながら簡単な GDB スクリプトを書いてみた (1.8.x 用)。誰かが eval.c を魔窟と表現してたけど、それを言ったら PHP の zend_execute.c は腐海だ。 あ、あくまでこれは PoC で、スレッドとかどうなってるかは知らないので正しい結果を吐かない可能性が高い。でも役に立ったからいいのだ。 define dump_rb_bt set $t = ruby_frame while $t printf "[0x%08x] ", $t if $t->last_func printf "%s ",

    GDBで実行中のスクリプト言語のスタックフレームをダンプしてみる試み - moriyoshiの日記
    kuenishi
    kuenishi 2010/08/20
  • Erlang でモジュールをディスアセンブルする - moriyoshiの日記

    自分用メモ。全然ドキュメントがないので困っている。OTP のソースを眺めていたら beam_disasm というモジュールを発見した。どうもこれをつかえばいいようだ。 test.erl -module(test). -export([add/2, add/3]). add(X, Y) -> X + Y. add(X, Y, Z) -> add(add(X, Y), Z). 上記を作成したあと、erl で 1> c(test). {ok,test} 2> import(beam_disasm). ok 3> beam_disasm:df(test). ok 4> q(). okとかすると、test.beam と一緒に test.dis というファイルができている。 test.dis の中身: {file,"/tmp/test.beam"}. {function,add,2,2}. {labe

    Erlang でモジュールをディスアセンブルする - moriyoshiの日記
  • epollのなかみ - moriyoshiの日記

    よく C10K 問題とかいって epoll(7) の話が出てきて select(2) 遅いね poll(2) 遅いねってなるんだけど、正直なところ、これらのシステムコールを実際に使ってコードを書いてみたひとはどのくらいいるのだろう。ましてや eventpoll が何やってるか知っている人はそんなに多くないんじゃないだろうか。もう O(n) だの O(1) だのって煙に巻かれるのもうんざりだ。 というわけで、2.6.26 の fs/eventpoll.c のコードを読んでみた。正直 Linux カーネルにすごく詳しいわけでもないので、誤りがあったら適宜突っ込んでもらえると幸いです。 前提知識として VFS モジュールがどうなってるかとかは LinuxのFSモジュールを書いてみる LinuxのFSモジュールを書いてみる (その2) のソース中のコメントを追ってもらえればと。 登場する構造体 e

    epollのなかみ - moriyoshiの日記
  • 1