タグ

ブックマーク / dqn.sakusakutto.jp (6)

  • [JavaScript] 猿でもわかるクロージャ超入門 1 問題 - DQNEO起業日記

    問題です。 問題: 呼び出すたびに、1,2,3,...を返すような関数 f( )を定義せよ。 f(); // 1 f(); // 2 f(); // 3 この問題、解けますでしょうか? 普通の関数では、できないと思います。 しかし「クロージャ」というのを使えば、このようなことができます。 クロージャって何だ? 「クロージャ」という言葉を、プログラムのやサイトで目にすることがありますよね。 私が最初に見たのは続・初めてのPerl 改訂版(アルパカ)でした。 まったく理解できませんでした。 その後、404 Blog not foundやnaoyaさんのブログなどで「クロージャ」という単語を目にしました。 やはり、まったく分かりませんでした。 とどめの一撃はWikipediaの解説記事。 クロージャ (クロージャー、Closure) は、プログラミング言語において引数以外の変数を実行時の環境

    [JavaScript] 猿でもわかるクロージャ超入門 1 問題 - DQNEO起業日記
    sionsou
    sionsou 2015/07/17
  • 3分でCentOS6にPHP5.5とApacheをインストールする方法 · DQNEO日記

    まっさらなCentOS6に、PHP5.5とApacheをインストールする方法を紹介します。 意外と簡単なのでやってみましょう。 # epelとremiレポジトリを追加 sudo rpm -Uvh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/i386/epel-release-6-8.noarch.rpm sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm # php5.5をインストール(Apacheも芋づる式についてくる) sudo yum install --enablerepo=remi-php55 php php-mbstring # Apacheを起動 sudo service httpd start # 動作確認のためにinfo.php

    3分でCentOS6にPHP5.5とApacheをインストールする方法 · DQNEO日記
  • ソースコード20万行の大規模サイトのPHPを5.1から5.4に上げるためにやったことまとめ · DQNEO日記

    所要期間 着手しはじめたのが2010年12月ごろ、完了したのが2013年9月だったので何と3年近くかかったことになります。 長引いた原因は、日々の機能追加や運用をしながら孤独に片手間で細々とやってたからです。(単純に人手不足とも言う) また、PHPバージョンアップと同時にCentOSサーバを5から6にあげることにしたのでサーバ再構築のための工数も含まれています。 後半は仕事仲間が増えてその人が専業でバージョンアップ作業をやってくれたのでだいぶ楽できました。 それと専任のテスターさんたちにも参加していただいたので番で大きなトラブルなく完了することができました。 感謝感謝です。 サーバ入れ替え作業が終わってPHP5.1の入った古いサーバを削除したときの、まさに「技術的負債」を返済し終わった瞬間の、あのスッキリ感、もう言葉にはできません。 終わってみてこの件に関するRedmineのチケットを数

    ソースコード20万行の大規模サイトのPHPを5.1から5.4に上げるためにやったことまとめ · DQNEO日記
    sionsou
    sionsou 2013/11/18
    うちもここまでじゃないけど、サーバー移転、PHPのバージョンあげなどやったときに似たようなことしました。これはほんと同意や共感する部分が多いw 良記事。
  • MongoDB : サルでもわかるMapReduceその2:ログの時間別集計を行う · DQNEO日記

    RDBMSでは下記のようなSQLになると思います。(PostgreSQLでの例) SELECT to_char(timestamp, 'yyyy-mm-dd HH24'::text) AS ymdh ,count(*) FROM accesslog WHERE '2011-12-01' <= timestamp AND timestamp < '2011-12-02' GROUP BY ymdh ORDER BY ymdh ; MapReduceを実行する // 日標準時を扱うためのユーティリティ関数 var JSTDate = function (str) { return ISODate(str + "T00+09:00"); }; // 日付範囲指定で対象を絞る。 // このように一時変数に記憶させておくと便利。 var query = { "timestamp" : { "$gt

  • MongoDB : サルでもわかるMapReduce · DQNEO日記

    まずは「集計ができる」と覚えておきましょう。 最初はこれだけで十分でしょう。 利用事例 ある日、ピカチューがつぶやきサービスでつぶやき始めました。 ピカチューのつぶやきに対して、仲間からたくさんの「いいね!」ボタンが押されました。 あなたはつぶやきサービス管理人として、ピカチューのつぶやき数と、ピカチューがゲットした「いいね!」のトータル数を集計してみましょう。 準備 Mongoクライアントを起動して、DBを作成しましょう。 ./mongodb/bin/mongo MongoDB shell version: 2.0.1 connecting to: test > use sample; switched to db sample サンプルデータ ピカチューが3回つぶやいて、「いいね!」がたくさんつきました。 > db.entries.save( {username:'pikachu',

  • [JavaScript] 猿でもわかるクロージャ超入門 まとめ - DQNEO起業日記

    クロージャとは クロージャは、言葉で説明するのが大変難しい概念です。 あなたは、自転車の乗り方を、口だけで説明できるでしょうか? あなたは、螺旋(らせん)の形を、言葉だけで説明できるでしょうか? ずばり、できないでしょう。 しかし、自転車に乗ることはできますし、針金で螺旋の形を作ることはできるでしょう。 「クロージャ」もこれと同じです。 だから、Wikipediaのこんな解説を見ても落ち込まないでください。 クロージャ (クロージャー、Closure) は、プログラミング言語において引数以外の変数を実行時の環境ではなく、自身が定義された環境(静的スコープ)において解決する関数のことである。 理解できないですよね? 私もそうでした。 クロージャを既に知っている人にしか、この文章は理解できないでしょう。 クロージャを作るのは難しくない しかし、説明するのは難しくても、作るのは意外と簡単。それが

    sionsou
    sionsou 2011/02/28
    おかげでクロージャの概念がわかった! [javascript][クロージャ][プログラミング]
  • 1