タグ

ブックマーク / hnw.hatenablog.com (6)

  • PHPとPythonとRubyの連想配列のデータ構造が同時期に同じ方針で性能改善されてた話 - hnwの日記

    PHPPythonRubyの連想配列のデータ構造がそれぞれ4〜5年ほど前に見直され、ベンチマークテストによっては倍以上速くなったということがありました。具体的には以下のバージョンで実装の大変更がありました。 PHP 7.0.0 HashTable高速化 (2015/11) Python 3.6.0 dictobject高速化 (2016/12) Ruby 2.4.0 st_table高速化 (2016/12) これらのデータ構造はユーザーの利用する連想配列だけでなく言語のコアでも利用されているので、言語全体の性能改善に貢献しています1。 スクリプト言語3つが同時期に同じデータ構造の改善に取り組んだだけでも面白い現象ですが、さらに面白いことに各実装の方針は非常に似ています。独立に改善に取り組んだのに同じ結論に至ったとすれば興味深い偶然と言えるでしょう2。 稿では3言語の連想配列の従来実

    PHPとPythonとRubyの連想配列のデータ構造が同時期に同じ方針で性能改善されてた話 - hnwの日記
  • feof関数でwhileループを回す奴はド素人 - hnwの日記

    (2013-04-07 01:30追記)補足のコードに恥ずかしい間違いがあったのを修正しました。@nonakapさん、id:s-tomoさん、ご指摘ありがとうございます。 (2013-04-07 10:00追記)「補足その2」を書き足しました。 (2017-04-23追記)論旨がわかりにくい部分があったので、整理しました stackoverflowの記事「“while( !feof( file ) )” is always wrong」をざっくり翻訳してみます。これはWilliam Pursellさんによる自作自演スレ(回答者も人)で、Cでwhile( !feof( file ) )というループを作るのが悪い理由を説明するものです。 ちなみにPHPについてもほぼ同じことが言えますので、PHPプログラマの方にも一読をお勧めします(PHPの主要なファイル操作関数はCとほぼ同じインターフェース

    feof関数でwhileループを回す奴はド素人 - hnwの日記
  • gitが無くてもgit cloneするコマンドfakegitを作りました - hnwの日記

    最近は一段とGitHubが流行してきたように思います。多くのオープンソースプロジェクトGitHubに移転するなど、いまやOSS開発者にとっては無くてはならない存在ですね。 ところで、GitHubホストされているプロジェクトの中には、インストール方法として「git cloneしてね」などと書いてあるものがあります。確かに開発者の立場からはgit cloneが一番自然な方法かもしれませんが、ソフトウェアのユーザー全員がgitコマンドを用意しているとは限りません。 もし、こうした意識のズレがソフトウェアの普及を妨げているとすれば不幸なことです。この事態を解決するため、gitコマンドがなくてもGitHubからのgit cloneをエミュレートするbashスクリプト「fakegit」を作ってみました。 fakegitは、指定されたGitHubリポジトリからのダウンロードをgit以外のコマンドで実

    gitが無くてもgit cloneするコマンドfakegitを作りました - hnwの日記
  • GitHubへpull requestする際のベストプラクティス - hnwの日記

    みなさん、Git使ってますか?僕はまだメインのVCSがSubversionなのもあって、なかなか慣れません。せっかくGitを使っているのに、ちょっと不便なSubversionくらいの位置づけです。でも、同じような理解度の人って多いんじゃないでしょうか。 一方で、最近はGitHub管理のオープンソースプロジェクトが増えてきました。バグレポートを送るにしてもpull request*1が前提のような空気があり、Git初心者には少し敷居が高い印象があります。 そんな僕も先日初pull requestをしてみたんですが、色々な失敗の積み重ねで残念なpull requestになってしまいました。その反省を元に、稿ではpull requestする際のベストプラクティスを紹介します。これは「Git Workflow」をベースにコマンド例などを加筆したものです。 概要 pull requestする際は、

    GitHubへpull requestする際のベストプラクティス - hnwの日記
  • それPlaレシピ(その1)RSSを全文入りに - hnwの日記

    僕はいつも流行に二周り乗り遅れるような超保守的人間なのですが、最近困ったことがあると耳の奥から「それPla」と聞こえてくる奇病にかかりました。今頃こんな病気にかかるなんて流行遅れにもほどがありますよね。ま、かかってしまったものは仕方ないですし、治るまではこの病気をエンジョイしようと思います。 それはそれとして、Plaggerについて調べていて思ったことは「それPla」という単語の知名度の割には意外と処方箋が少ないなあ、ということです。というのは、ピザが届くとか寿司が届くとかは見つかるんですけど、サンプルとしてPlagger初心者には高度すぎると思うんですよね。それどころか、Publish::Gmailでメールを送るのさえ最初は高度だと思うんです。 というわけで、超初心者にもすぐ役に立つPlaggerレシピ集みたいなものを連載してみようかと思います。似たコンセプトの記事が「いまPla」だと思

    それPlaレシピ(その1)RSSを全文入りに - hnwの日記
  • LDRユーザーは仕事サボってるのがバレバレな件 - hnwの日記

    livedoor Reader(以下LDR)って便利ですよね。僕も最近使うようになって便利さを実感しています。ところで、LDRに関して最近こんな記述を見つけました。 更新通知API http://rpc.reader.livedoor.com/notify param: user livedoor ID を渡す method: get/post 該当するlivedoor IDユーザの未読Feed数を取得する。存在しないユーザの場合は -1 が返ってくる。これだけ reader.livedoor.com ではなく rpc.reader.livedoor.com なので注意。 livedoor ReaderのAPI一覧 - ヨコナビ 要するに、LDRの他人の未読数が誰でも取れるんですね。IDを知っている必要がありますけど、LDRのフィード公開してる人とか、livedoor クリップとか、いくら

    LDRユーザーは仕事サボってるのがバレバレな件 - hnwの日記
  • 1