2013-01-01から1年間の記事一覧

論理積と論理和

どっちがどっちだか混乱しがちだけど、以下のようにまとめると覚えやすい。論理積:AND(両辺が1の場合のみ1) 0 * 0 = 0 0 * 1 = 0 1 * 0 = 0 1 * 1 = 1 論理和:OR(両辺が0の場合のみ0) 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10

『初めてのPerl』第1章 Perl入門

『初めてのPerl』のサンプルコード:http://www.learning-perl.com/「Perlを設計する際に、Larryはたくさんのトレードオフを考慮しなければなりませんでした。学ぶことが難しくなる代わりに、何かが簡単にできるようになるという機会があれば、ほとんどの場…

curlを使わずにtwitterに投稿する

twitter APIにアクセスするためのPHP製ライブラリとしては、codebird、twitteroauthなどありますが、大抵はcurl系の関数を使っています。ただ、curl系の関数は必ず使えるわけではなく、コンパイルオプションを指定したり、PHP 5.5以降ではPECLからインストー…

ソフトウェア開発はなぜ難しいのか? - 『プログラマーのジレンマ』

プログラマーのジレンマ 夢と現実の狭間 [単行本]スコット・ローゼンバーグ日経BP社2009-05-21本書は、あるプロジェクトの「失敗」を描いたドキュメンタリー。そのプロジェクトとは、チャンドラー(Chandler)。あらゆる情報を、ユーザーの好きなように分類…

『あなたはコンピュータを理解していますか?』を読了

あなたはコンピュータを理解していますか? 10年後、20年後まで必ず役立つ根っこの部分がきっちりわかる! (サイエンス・アイ新書) [新書]梅津 信幸ソフトバンク クリエイティブ2007-03-16「コンピュータ」の一歩手前、情報理論がメイン。情報理論とは、「デー…

PHPでTAP(Test Anything Protocol)を使う

TAP(Test Anything Protocol)とは、テストを簡潔に記述するための書き方(プロトコル)のことです。プロトコルというと難しそうですが、実際はとても簡単。標準出力に、以下のような出力を行うプログラムを作成すればよいのです。 1..4 ok 1 - Input file op…

『受託開発の極意』を読んだ

受託開発の極意―変化はあなたから始まる。現場から学ぶ実践手法 (WEB+DB PRESS plusシリーズ) [単行本(ソフトカバー)]岡島 幸男技術評論社2008-04-08永和システムマネジメントの中の人が、受託開発の手法について書いた本。永和といえば、アジャイル開発の…

コンストラクタとプロトタイプ

JavaScriptで、初期化と同時にオブジェクトにメソッドを持たせるには、(継承を除くと)2つの方法があります。コンストラクタでメソッド定義する方法と、プロトタイプオブジェクトのメソッドとして定義する方法です。 // コンストラクタ var Member = functi…

クロージャ

クロージャとは、「ローカル変数を参照している関数内関数」。 function closure(init) { var counter = init; return function() { return ++counter; } } var myClosure0 = closure(0); var myClosure100 = closure(100); console.log(myClosure0()); // 1…

ニコニコ動画のランキングにNGワードを設定するスクリプトをGINZA対応した

window.addEventListener("load", function () { var ng_pattern = /初音ミク|Gero|韓国|靖国|橋下徹|特定アジア|ニダ|在日|朝鮮/; var display_matched = 0; // 0なら単なる非表示 1ならNG理由表示 var body = document.getElementsByClassName("video"); f…

8月にやったこと・9月にやること

8月は『詳説 正規表現 第3版』を読んでいたんですが、読みきれませんでした。Unicode難しい…8月は、「これをやりました」と言えるような成果に乏しかったですね。ただ、ニコニコ動画のランキングにNGワードを設定するスクリプトに関しては、シンプルですが必…

間違いやすい真偽値メモ

PHP5で、以下の式・値を真偽値として評価(var_dump((bool)$value)するとどうなるか。 0 + true0 + 'true''0''00''0.0'解答は以下。 0 + true // 真偽値trueはintとして評価されると1になるので、0 + 1 = 1 true 0 + 'true' // 文字列'true'はintとして評価…

パーフェクトPHP読書メモ その1

パーフェクトPHP (PERFECT SERIES 3) [大型本]小川 雄大技術評論社2010-11-12『パーフェクトPHP』を1年ぶりに読み返したら、色々再発見があったのでメモっておきます。----------「どんなプログラムでもいえることですが、テストコードを見ることは内部の挙…

パーティションを暗号化していると、パーティションの容量変更ができなくなる?

表題のような現象が発生したので、直るまでの流れ。<環境>- MacBook Air mid 2013 - Mac OS X 10.8.4<前提>- パーティションを以下の2つに分割済み * Macintosh HD * Data(暗号化済み)<現象>- ディスクユーティリティの「パーティション」で、パーティショ…

ニコニコ動画のランキングにNGワードを設定するスクリプト

FirefoxアドオンのGreasemonkeyを使って、ニコニコ動画のランキングにNGワードを指定します。<動作確認している環境>Mac OS X 10.8.4Firefox 23Greasemonkey 1.8ニコニコ動画(原宿) - カテゴリ合算毎時総合ランキング(http://www.nicovideo.jp/ranking/fav…

7月のまとめと8月の展望

7月は、SQLやRDBの設計等について学習しました。読んだのは、『Head First SQL』。RDBのテーブルの正規化についてきちんと学べたのは良かったです。ただ、月の後半から新しいタスクが発生し、そちらでMongoDBが必要になったため、月の後半はMongoDBの学習が…

Head First SQLを読了した

Head First SQL ―頭とからだで覚えるSQLの基本 [大型本]本書は、データベース言語SQLの入門書。一般のSQL入門書に比べると、かなり欲張りな内容。1冊で、SQLの基本からテーブル設計の初歩、データベースの管理まで学べる。よくあるSQL入門書は、CRUDとJOIN…

MacBook AirのSSDが死んだので新しいMacBook Airを買った

10/09 追記:この記事で壊れたと報告しているMacBook Air mid 2012のSSDは、東芝製でした。参考:ここ数ヶ月でMacBook Air Mid 2012の東芝製SSDが壊れる不具合が頻発している」というのは本当なのか調べてみた。 (Appleちゃんねる)-----表題の通りですが、…

正規化メモ

リレーショナルデータベース(RDB)の世界には、「正規化」という、テーブル設計のベストプラクティスがあります。ということで正規化についてメモ。●正規化されたターブルの状態(正規形)には、いくつかの段階がある。まず、第1正規形(First Normal Form, …

いざという時便利? なMySQL文字列関数10選

使う機会はあまり無い気もするけど、何かの時に使えると便利かもしれないMySQLの文字列関数をざっくり紹介。1. CONCAT - 文字列を連結SELECT CONCAT('Ma', 'ria', 'DB'); -- 'MariaDB'引数はいくつでもOK。ちなみに、「--」はSQLのコメント記法。2. SUBSTRIN…

今月やること 2013-07

最近、やりたいことが複数乱立してて、優先順位を上手く付けられないのが悩みです。あれもこれもだと、どれも中途半端になってしまうので。ということで、月単位で「これやりたい」を、あらかじめ書きだしておこうと思います。まず、現時点のやりたいことリ…

Debian 7.1 にsymfony1実行環境を構築する手順

・Mac OS X 10.8・VMWare Fusion 5・DVD版isoのDebian 7.11. インストールダイアログに従ってインストールGUI環境とかはインストールしない。入れるのはsystem utilities、Webサーバ、SSHサーバ。SQLサーバはここでは入れない。2. rootでログイン3. vimをイ…

LIKE句で使えるワイルドカード

「%」は、0文字以上の任意の文字を表す。SELECT column FROM table WHERE column LIKE '%es';上記のSELECT文は、「yes」「does」「123es」等の文字列を検索して取得する。「yesno」は取得されない。「_」は、任意の1文字を表す。SELECT column FROM table WH…

Symfony勉強会#8に参加してきた

Symfony勉強会#8に参加してきました。Symfony勉強会#8では、Symfony初心者向けのハンズオンセミナーが開催されました。Webアプリケーションフレームワークのハンズオンセミナー、私は受講者側でしか経験がありませんが、ハマりどころが無数にあり、主催者の…

私家版電子書籍ストアランキング(技術書中心)

何か唐突にまとめたくなったので。利用したことのある電子書籍ストアをランキング。1. O'Reilly Media書籍は充実しており、DRM Freeでpdf/ePub/mobi等、多様なフォーマットに対応。隙は無いが、無敵とは言い切れない(後述)。買った本: Regural Expression…

『はじめてのフレームワークとしてのFuelPHP』を読了

はじめてのフレームワークとしてのFuelPHPFuelPHPは、PHP5.3以降に対応した、軽量・高速のPHPフレームワークです。ライセンス問題で失速したCodeIgniterの後釜と目されている(?)ようです。本書・『はじめてのフレームワークとしてのFuelPHP』は、2012年の…

『入門git』を読了

入門git『入門Git』とは別物。バージョン管理システム・gitの入門書です。htmlファイルを編集しながら、チュートリアル形式でgitのコマンドを使っていきます。本文だけなら150ページと薄めですが、頻繁に使うコマンドは網羅されているし、「いざというときの…

Essential ActionScript3.0 読書メモ 第46回 サブクラスのコンストラクターメソッド

インスタンスメソッドとインスタンス変数の継承における関係について学んできた。次に、コンストラクターメソッドに移る。コンストラクターメソッドは、クラスのインスタンスをセットアップするメソッドを呼び、そのオブジェクトに必要な変数を作成する。ク…

arguments.calleeをPHPでやってみた

JavaScriptには、arguments.calleeという、自分自身を再帰的に呼び出すプロパティがあります。arguments.calleeを使うと、以下のようなコードが書けます。 function factorial(n) { if (n > 1) { return n * arguments.callee(n - 1); // 自分自身(factorial…

配列の比較

JavaScriptで、配列の比較の際に==又は===演算子を用いると、その配列が参照しているメモリ上のアドレスが同じかどうか、でtrue/falseを返します。したがって、 var array1 = [1, 2, 3]; var array2 = [1, 2, 3]; console.log( array1 == array2 ); // FALSE…