タグ

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

  • Goのロギングライブラリ 2021年冬 - moriyoshiの日記

    この記事はPySpa Advent Calendar 2021の14日目のエントリーとして書かれました。昨日のエントリーは冷凍品でウキウキ引きこもり生活 でした。ちなみに私も70ℓの冷凍庫を購入しましたが当にライフチェンジングでした。 総論: なぜログが必要か 可観測性 たとえ目的は自明でも、その動作までが自明なアプリケーションというものはほぼ存在しません。現実の世界のアプリケーションというものは、動作パラメータだったり実行環境だったり、起動時点でのさまざまな要因によって挙動を変えるものだからです。そして、そうしたアプリケーションにはライフサイクルというものがあります。ここでいうライフサイクルは、アプリケーションの処理が実行されるにつれ、アプリケーションの内外との情報のやりとりで生じる大局的な状態の変化のことです。アプリケーションが並行処理を行うようなものであれば、個々の並行処理の単位

    Goのロギングライブラリ 2021年冬 - moriyoshiの日記
  • 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の日記
  • 「ユニコード」で予期せぬ目に遭った話 - moriyoshiの日記

    自分の知らないCJK Ideographのバリエーションがまだあったことに戦慄している pic.twitter.com/kUlyRLDDTM— moriyoshit (@moriyoshit) March 9, 2017 などというツイートをしたところ、思ったより反響があったのでまとめておく。 上記ではあいまいに「バリエーション」などと書いたが、Unicodeとそれを扱う環境においては、バリエーションと一口に言っても次のような状況がある。 意味論的に等価な異なる字形の集合 同じ字形で異なるコードポイントの集合 aは結構なじみ深いと思う。 a-1. 異なるコードポイントにそれぞれ異なる字形が割り当てられているもの 例: 「東」(U+6771) ⇔「东」(U+4E1C) 「斉」(U+6589) ⇔「齊」(U+9F4A) 「高」(U+9AD8) ⇔「髙」(U+9AD9) a-2. 同じコードポイ

    「ユニコード」で予期せぬ目に遭った話 - moriyoshiの日記
    escape_artist
    escape_artist 2017/03/13
    普通に入力する人とは一体
  • やったーmod_vimできたよー - moriyoshiの日記

    Vim scriptはウェブアプリケーション記述言語やったんやー Plack とかよくわかんないのでさくっと Apache で使えるようにしてみました。 mod_vim httpd.conf はこんな感じ LoadModule vim_module mod_vim.so DocumentRoot . Listen 8080 PidFile /tmp/pid LockFile /tmp/lock ErrorLog /tmp/error_log VimDisplay :0 VimVersion 7.2 VimEncoding UTF-8 <Location /> SetHandler vim VimExpr vimplack#handle(@@) </Location> ビルド方法は、まあ README に書いておけよって感じですが make top_builddir=/usr/share/a

    やったーmod_vimできたよー - moriyoshiの日記
    escape_artist
    escape_artist 2012/02/09
    超クール
  • ■ - moriyoshiの日記

    inspired by this

    ■ - moriyoshiの日記
  • PHP Apocalypse (と1981忘年会で) 発表してきました - moriyoshiの日記

    HPHPは約束の地なのかView more presentations from Moriyoshi Koizumi. HipHop for PHP (HPHP) についてのスライドです。 前も同じ事があったけども、なぜか貼れない...。

    PHP Apocalypse (と1981忘年会で) 発表してきました - moriyoshiの日記
    escape_artist
    escape_artist 2011/12/26
    悲しい感じに
  • 「パッチを当ててやってもいいんだぞ、お前が嫌なら」 - moriyoshiの日記

    PHP では以下のように new してすぐメソッドを呼べない <?php new DateTime()->getOffset(); PHP で引数をそのまま返す関数を作っておくと便利 PHP はどうせマジメな言語ではないので自分用に作り替えるくらいが丁度いい。 以下 diff↓

    「パッチを当ててやってもいいんだぞ、お前が嫌なら」 - moriyoshiの日記
    escape_artist
    escape_artist 2011/11/07
    new DateTime()に関してだけ言えばdate_create()で代用すればいいかな
  • 俺とPHP - moriyoshiの日記

    なんか知らないうちにPHPを全然書いたことがないという噂が広まっていて心外すぎるので弁明しておく。長くなるかもしれない。 PHPを使い始めたのはちょうど10年くらい前のことだと思う。4.0.3 あたりが出た頃だ。当時友人たちとシラバスの情報を共有するサイトをつくろうとしていて、PHP を紹介された。データベースに接続してデータの出し入れをするような仕掛けを簡単に作れるという。 それまでは web で何か作るといったら Perl だったし、テンプレートエンジンとかマルチパートパーサとかをまとめたオレオレ web アプリケーションフレームワークを作ってお茶を濁していた。Perl はかなり好きだった。それでも、PHP の手軽さは輝いて見えた。コードをそのまま HTML に埋め込めることでさえ、「poor-man's ASP」だと思って感激していた。マニュアルを見れば、答えが書いてあったから、動く

    俺とPHP - moriyoshiの日記
    escape_artist
    escape_artist 2011/02/06
    PHP神の昔語り。続きが読みたい!おっぱいおっぱい!
  • 興味のある言語にPHPと書いておいたら面接で爆笑された - moriyoshiの日記

    Inspired by http://anond.hatelabo.jp/20100125020240 Perlエンジニアを募集してる会社の採用面接を受けた時の話。 転職エージェントに作れと言われて作ったシートに、「興味のある技術/言語」という欄があったんです。 PSGI/Plackとか色々書いたけど、プログラミング言語の中で興味があるのはPHPだったので、 PHPと書いておいたのですが、それを見た髭面サスペンダーの面接官のリアクションが酷かった。 面接官「PHP・・・ふははっ!PHP!」 面接官「PHPやってるんですか?wwwww」 俺「(唖然)は、はい・・まだ参照を理解したぐらいですが。。」 面接官「PHP・・・ニヤニヤ」 その人はCPANコミッタで、当然Perlのコードを書いている人だったので、 Perlが「Improved PHP」と呼ばれている事を知らないワケが無いだろうと思って

    興味のある言語にPHPと書いておいたら面接で爆笑された - moriyoshiの日記
    escape_artist
    escape_artist 2010/03/07
    髭面サスペンダーというだけで誰のことかわかってしまうと言うのはすごいことだなぁ
  • 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の日記
  • muddy brown thang

    この記事はpyspa Advent Calendarの19日目の記事として書かれました。 昨日はrokujyouhitomaの「アクアリウム始めたいので商品をしらべる。そして始める日は来るのか」でした。私もデスマが終わったらアクアリウムやりたいと思いもう10年くらい経っている気がします。 rokujyouhitoma.hatenablog.com TL;DR 文字化けは人類の進歩の証、人々の営みと企みの間に生まれたグリッチ。 はじめに 「文字化け」という言葉が生まれたのはいつのことなのかはわからない。だが、文字化けというものを、言語の表現に必要な構成要素 (音素など) を符号化し並べたものがあったときに、その符号の並びの解釈が送り手と受け手との間で相異なった状態であると定義するならば、文字化けの誕生はすなわち文字の歴史ということになるだろう。アドベントカレンダーとして当はもっと卑近な話題

    muddy brown thang
  • 同じ文字列のn回繰り返しを作る最速の方法を探求してみた - moriyoshiの日記

    注意: FF3.1b2の結果が不正確です。取り直したのはこちら。 ちょっとした事情により、ある文字列のn回繰り返しを作る関数 (PHPでいうところのarray_repeat(), Perlで言うところの「"..." x n」、RubyPythonで言うところの「"..." * n」) を高速に実装しなければならない状況に遭遇したのでベンチマークをとってみたところ、その結果がとても新鮮で驚いたので、これを共有しつつもダメ出ししてもらえないかなーと思って晒してみることに。 あらまし JavaScriptの文字列型 (およびStringオブジェクト) はJavaのようにイミュータブルなので、こういう文字列構築を行う方法としては、以前から、+や+=演算子を用いるよりも、一旦Array()に入れておき最後にjoin()するという方法が有効だと言われていてですね、まあ確かに、文字列用メモリ領域の確保

    同じ文字列のn回繰り返しを作る最速の方法を探求してみた - moriyoshiの日記
  • 1