『入門・講座』 カテゴリーの記事一覧

2009年11月16日の技術ニュース

2009 年 11 月 16 日 投稿者: naga3

プログラマで、生きている: ググるな危険
http://el.jibun.atmarkit.co.jp/hidemi/2009/11/post-9d2b.html
検索に頼って中を理解しない危険性は良く分かりますが、プログラムというのは動く喜びというのが大事なので、とりあえずはツギハギだらけでも動くものを作り、理解するのは後からでも良いと思います。

JavaScript 体感速度を上げるいくつかの手のメモ
http://subtech.g.hatena.ne.jp/cho45/20091113/1258047997
実際の処理時間が長くても、ユーザーに対するアクションを工夫することで、短く見せかけることが可能ということです。

script・css・img・iframe が読み込まれるタイミング調査 Kawa.netブログ(川崎有亮)/ウェブリブログ
http://kawa.at.webry.info/200911/article_7.html
重いページをiframeで分割したら早く読み込まれるのでしょうか・・・?うむむ

コーディングするのが楽になるかも?と思うCSSテクニックのまとめ | CSS Lecture
http://www.css-lecture.com/log/css/coding-css-technique.html
CSSでブラウザの差異を吸収しつつシンプルなソースを保つには独特のノウハウがあって難しいです。勉強しよう。

2009年11月12日の技術ニュース

2009 年 11 月 12 日 投稿者: naga3

Goプログラムいろいろ
さっそくGoを使っていろいろやっている方がいらっしゃるようです。
早速 Go 言語を試してみる! – IT戦記
インストールから順番に分かりやすい解説。
Go で無駄にチャンネルを使ってクイックソートのようなものを書いてみた – nobu-qの日記
チャンネルというのはスレッドみたいなものなのかな?
なんか Go で書くのが流行ってるみたいなので – muddy brown thang
memcache 通信プログラム。大作です。

ASCII.jp:iPhoneで「すれ違い」が楽しめるアプリ、Travatar
http://ascii.jp/elem/000/000/474/474767/
さっそくインストールしました。面白そう。

あなたの制作人生を「速記コーディング」で豊かにする、Texterを使ったアウトプット術 | 5am! Web Illusions
http://5am.jp/lifehack/texter/#download
これは、使い方によってはすごく使えるかも・・・

データ構造の落とし穴 – PHP Tips

2009 年 4 月 3 日 投稿者: naga3

アプリケーションで、例えば設定値をDBに書き出すほどでもないとき、どうしますか?XMLや最近ならJSONやYAMLで書き出せばライブラリが揃っていて楽だと思うのですが、それも面倒で自分流のオレオレ設定ファイルでやってるシステムをよく見かけます(自分もついやってしまいますが)。

例えば、
1,うどん
2,そば
3,きしめん

などという簡易CSVチックなファイルの場合、PHPなら以下のようにして読み出すことがあります。

  1. $lines = file("oreore.csv");
  2. for ($i = 0; $i <count($lines); $i++) {
  3.     $line = explode(',', $lines[$i]);
  4.     $noodle[$i] = $line[1];
  5. }

$noodle配列に「うどん、そば、きしめん」が入ります。

で、この方法は致命的に間違っている部分があるのですが、分かるでしょうか。
それは、各行の数字を無視して、単に上から順番に配列に入れている部分です。

たとえば「そば」を後から追加すると
1,うどん
3,きしめん
2,そば
となり、さきほどのCSVと同等の設定ファイルになるはずですが、読み出しプログラムのせいでおかしなことになります。

こんな初歩的なミスをするプログラマいないよ、と思われるかも知れませんが、同様のミスをやっているシステムをいくつか見たことがあります。

自分もやらないように気をつけなければ。

echoとprintの違いと、関数エイリアス – PHP Tips

2009 年 1 月 8 日 投稿者: naga3

フォームから入力されたデータやデータベースの値などをこねくり回して、最終的にHTMLとかコンソールに出力するのがPHPの役目であるわけですが、その出力命令として代表的なものに「echo」と「print」があります。この2つの違いは何でしょうか?

一番の違いは、文字数です。echoは4文字なのでprintよりも早くタイプできてオススメです。自分はひねくれているのでprintをよく使います。

他にも、echoは引数を複数持てるとか、printは戻り値があるとか、微妙な違いがあるのですが、どうでもよいことだと思います。たぶん歴史的な経緯で2つになっただけだと思うので、どちらでもお好きな方を使ってください。ちなみに両方とも関数ではなく制御構造?らしいので、引数に括弧は必要ありません。

他にもPHPには「エイリアス」という機能があります。echoとprintは別ものですが、エイリアスは同じ関数の別名です。どちらの名前で呼んでも全く同じ機能を提供します。

よく混乱してしまうエイリアス関数には、
fputs (fwrite関数のエイリアス)
die (exit関数のエイリアス)
join (implode関数のエイリアス)
chop (rtrim関数のエイリアス)
strchr (strstr関数のエイリアス)
などがあります。

基本的に他の言語から移行したユーザーに分かりやすいようにエイリアスが設定されているのではないかと思います。例えば、C言語にはchar判定のstrchr関数とchar配列判定のstrstr関数がありますが、PHPには文字1文字を表す型がないので、どちらも同じ関数にしているんではないかと想像しております。

微妙な注意点を2点ほど。
fputsとfwriteは同じ関数ですが、fgetsとfreadは別の関数で挙動が違います。fgetsは一行、freadは指定したバイト数を読み込みます。
joinとimplodeは同じ関数ですが、splitとexplodeは別の関数です。splitは区切り文字に正規表現が使えます。explodeは正規表現は使えませんが高速です。

あと、dieの使いどころですが、例えばファイルオープンエラーで終了させたいとき普通は

  1. $fp = @fopen("file", "r");
  2. if (!$fp) exit();

などと書くわけですが、同じことを
  1. $fp = @fopen("file", "r") or die();

と書くことができます。exitと書いても良いのですが、dieの方がちょっとカッコイイですね。「ファイル「file」を開け。さもなくば、死ね!」と言ってるわけです。演算子「or」は、左辺が真つまりファイルが無事開けた時点で右辺は評価しないので、上記コードが正常に動くのです。

Adobe AIRの基本(Eclipse + AIR GEAR) – Flash/ActionScript入門

2008 年 12 月 17 日 投稿者: naga3

今回はAIRのアプリケーションを作ってみましょう。Adobe AIRを使うと、Flashをウェブ上ではなくローカルで実行させることができます。Flashのプロジェクタとは違い、AIRはクロスプラットフォーム(Windows・Mac・Linuxで同じ実行ファイルが動く)であり、その代わり各プラットフォームのランタイムが必要です。
続きを読む »

Flex 3 の基本(FlashDevelopでMXML) – Flash/ActionScript入門

2008 年 12 月 17 日 投稿者: naga3

今回はFlexを使ってアプリケーションを作ってみましょう。Flexと言うのはFlashを生成するツールなのですが、Flash CS4 などの開発ツールが基本的にデザイナ向けなのに対して、FlexはMXMLというXMLを使って書く、プログラマ向けのツールだと言えます。

Flexの日本語情報はとても充実しています。以下の公式ヘルプを見れば大抵のアプリケーションが作成できるでしょう。
Adobe Flex 3 ヘルプ

MXMLの作成は、画面上でウインドウやボタンなどのコンポーネントをGUIで配置できるFlex Builderを使うのが一番便利なのですが、有料なので、今回はMXMLを手打ちでデザインしてみます。
続きを読む »

ActionScript 3.0でお絵かきアプリ – Flash/ActionScript入門

2008 年 12 月 16 日 投稿者: naga3

今回はActionScript 3.0でお絵かきアプリを作ってみましょう。こういう対話的なビジュアルアプリを簡単に作成できるのがFlashの良いところですね。実際の実行画面を以下に示しますのでマウスでお絵かきしてみてください(Flash Player 9.0以上が必要です)。

続きを読む »