ブックマーク / thinkit.co.jp (70)

  • [ThinkIT] 第7回:DOMの拡張(後編) (2/2)

    これまでの説明では、小さな例ばかりを紹介してきました。しかし、それだけではPrototype.jsをすぐ使うというのは、難しいかもしれません。 というわけで、今までの復習の意味も込めて最後に実用的な大きな例をひとつ紹介します(リスト26)。 リスト26:要素をドラッグ可能にするクラス <html> <head> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"> // <![CDATA[ // Draggable クラス var Draggable = Class.create(); Draggable.prototype = { // コンストラクタ initialize: function(elem, opts) { // 要素の設定 this.elem

    harupiyo
    harupiyo 2008/12/05
    今までに紹介してきた、クラス、関数、配列(データの操作)、要素、この4つの要素をうまく使いこなすことでPrototype.jsはほぼ使いこなすことができてしまうのです。
  • [ThinkIT] 第4回:関数の拡張と配列操作メソッド一覧 (2/2)

    Prototype.jsでは一般的なJavaScriptのやり方とは違ったやり方で配列を操作することができます。JavaScriptのネイティブの配列のプロパティを拡張し、さまざまな操作を行うメソッドが追加されているのです。これをすべて使いこなせれば、きっと気持ちいいプログラミングの助けになってくれることでしょう。 ここでは、それらの中でも代表的な、eachメソッド、collectメソッド、injectメソッド、invokeメソッドを紹介します。その他のメソッドについては具体例をあげられませんが、表1に簡単な説明を書きましたので使う際に参考になればと思います。 メソッド名 説明

    harupiyo
    harupiyo 2008/12/05
    Prototype.jsでは一般的なJavaScriptのやり方とは違ったやり方で配列を操作することができます。
  • [ThinkIT] 第4回:関数の拡張と配列操作メソッド一覧 (1/2)

    前回解説したオブジェクト指向はこのくらいにして、次は少し不思議な、関数オブジェクトを拡張する関数を紹介します。 bindメソッドは関数オブジェクトのメソッドです。このメソッドを使うとどのようなことができるのでしょうか。 JavaScriptでは非同期処理の結果をコールバックするために、関数オブジェクトを使うことが多々あります。しかし、関数オブジェクトは、実行するときにオブジェクトに格納された状態でなければthisを解決できません(「第2回:JavaScriptの復習」の「関数オブジェクト」の項を参照)。 例えば、リスト12のようにamachang.sayMyNameをsetTimeoutに渡した場合、渡されるのは関数オブジェクトだけで、amachangオブジェクトとは切り離されてしまいます。 リスト12:this.nameがundefinedになる ですので、thisを解決できません。その

    harupiyo
    harupiyo 2008/12/05
    関数オブジェクトは、実行するときにオブジェクトに格納された状態でなければthisを解決できません
  • [Think IT] 第3回:機能をモレなくテストするテンプレート (1/3)

    単体テストフェーズで確保する品質とは? 「標準化」は「生産性向上」の取り組みという位置づけでとらえられますが、効果はそれだけではありません。作業の属人化解消による「品質向上」と、テンプレート導入時の意識改革による「スキル底上げ」を同時にもたらし、その結果「生産性向上」につながるといった仕組みになっているのです。 今回もこれらの観点を織り交ぜながら単体テストフェーズについて、ダウンロード可能なテンプレートファイルを使って説明していきます。 前回までの上流工程ドキュメントにおいても、「品質」について触れました。その際は「顧客満足度の切り口」で解説しましたが、品質には「企画品質」「設計品質」「製造品質」「使用品質」といった工程別に確保するべき品質を定義した考え方もあります。システム開発では、それぞれの品質とそれを確保する工程は図1のようになるでしょう。 「第2回:要件と機能を簡潔に伝えるテンプレ

    harupiyo
    harupiyo 2008/10/17
  • 要件と機能の関連を保つテンプレート

    品質の鍵は上流工程にあり SIer業界において、生産性向上は永遠のテーマです。そのための施策としてよく行われるのがドキュメントの標準化です。もちろん、弊社においても実践しており、その一環として業務システムの開発ドキュメント標準テンプレート「DUNGEON(ダンジョン)」を作成しています。DUNGEONは現場主体で作成しており、そのノウハウが凝縮されているのが特徴です。2005年に連載「即活用!業務システムの開発ドキュメント標準化」(http://www.thinkit.co.jp/free/project/4/1/1.html)にて紹介したところ、大変好評でした。 その後もこのDUNGEONは、現場で鍛え続けて進化しています。そこで、再度そのノウハウを「すぐに使えるテンプレート」として紹介することになりました。対象は業務システムをウオーターフォールで開発するSEを想定しています。今回は、そ

    harupiyo
    harupiyo 2008/10/14
    開発ドキュメント標準テンプレート「DUNGEON(ダンジョン)」を作成しています。
  • [Think IT] 第2回:携帯サイトの制作から公開まで (1/3)

    サイト規模に合わせて作り方を選ぶ 前回(http://www.thinkit.co.jp/article/143/1/)は、携帯サイトとPCサイトがどのように違うかを紹介しました。今回は、汎用的な携帯サイト作りを行うための制作の基から、実機テストまで含めた公開までの手順を解説します。 携帯サイトでは、キャリアによる仕様の違いがあるため、これをどの程度まで考慮するか、はじめに考えなくてはなりません。携帯サイトの作成法には、下記の5つの方法がありますが、ここでは「3キャリア対応の静的サイト+プログラム」について紹介します。 1.キャリア別に静的なサイト 2.3キャリア対応の静的サイト+プログラム 3.プログラムによる動的生成 4.CMSを使ったジェネレータ型 5.MobaSiF(http://sourceforge.jp/projects/moba)などのフレームワーク型 3キャリア対応の静

    harupiyo
    harupiyo 2008/10/14
  • リーダーシップなくして生産はなされない

    なぜ、今「ドラッカー」なのか ピーター・フェルディナンド・ドラッカーをご存じだろうか。一般的には「経営学の父」「マネジメントを発明した人」として知られている。ベニントン大学、ニューヨーク大学教授を経て、2003年までカリフォルニア州クレアモント大学院教授を歴任した。2005年に95歳で亡くなるまで、大学教授だけでなく、コンサルタント、著述家としても幅広く活動し、世界中の経営者や組織リーダーに影響を与えた。 米国ではGEやP&Gといった一流企業に加え、最近ではGoogle社の組織デザインにおいても多大な影響を与えていると言う。日でも、セブン&アイ・ホールディングスの伊藤雅俊名誉会長、松下電器産業の中村邦夫会長、富士ゼロックス相談役最高顧問の小林陽太郎氏、さらに起業家として成功をおさめたファーストリテイリングの柳井正会長兼CEO、リクルート創業者の江副浩正氏なども、ドラッカーの考え方に学び、

    harupiyo
    harupiyo 2008/10/03
  • andLinuxとは?

    Windows上でのLAMP開発 いわゆるLAMP(Linux、Apache、MySQLPHPPerlあるいはPython)環境の開発は、近年すっかりおなじみとなりました。読者の中にも業務あるいは趣味で携わっている方もいるでしょう。 しかし、その中でもクライアント環境自体もLinuxを使っているという人は案外少ないのではないでしょうか。多くの人は、日常使い慣れたWindows上で開発を行い、コードなどがある程度できた段階でLAMP環境に転送して動作確認をしているのではないでしょうか。 実際に稼働する番環境にて、開発したシステムの最終的な動作確認をすることは当然必要ですが、開発の途中で番環境に転送して確認するのは、手間が掛かります。そこで開発しているWindows上で何とかLAMP環境が動かないものかと思っている人や、あるいは最近急速に普及しつつある仮想化技術を用いてすでにWindo

    harupiyo
    harupiyo 2008/09/16
  • JSONPとFREDDY

    JSONPによるクロスドメイン通信 今回から、静岡大学情報学部で筆者らの研究室が取り組んでいる「FREDDY」という手法の説明に入る。その前に、まずは「第1回:JSONとFREDDY、変貌するWeb技術(http://www.thinkit.co.jp/article/116/1/)」で触れることのできなかったJSONPについて、少し説明しておこうと思う。 「第1回:JSONとFREDDY、変貌するWeb技術(http://www.thinkit.co.jp/article/116/1/)」の最後でJSONデータをAjaxにより読み込む手法を説明した。しかしながらAjaxにはクロスドメイン制約があり、HTMLファイルを取得したサーバーとしか通信することができない。 これは「不便」ではあるが「セキュリティー」上の理由で、Webブラウザはそういう実装になっている。ところがDynamic Scr

    harupiyo
    harupiyo 2008/08/19
  • JavaScriptでFREDDYデータを読み込む

    FREDDYの利用方法 「第2回:JSONPとFREDDY(http://www.thinkit.co.jp/article/116/2/)」で、FREDDYのデータフォーマットについて説明した。今回は、実際にJavaScriptからFREDDYデータを読み込む手法、およびその裏でFREDDYのライブラリが行っている、WebサーバーとWebブラウザ間の通信手法を解説する。 FREDDYのプロトタイプ実装やマニュアルはFREDDYのWebサイト(http://freddy.yokoyama.ac/)で公開している。ここにあるxml2freddy.php(http://freddy.yokoyama.ac/index.php/Docs/xml2freddy.php/Usage)というツールを使えば、任意のXML文書をFREDDYフォーマットへ変換し、またそのデータをFREDDYで読み込むWeb

    harupiyo
    harupiyo 2008/08/19
  • [ThinkIT] 第1回:開発環境を変える!Free Flex 2 SDK登場 (1/3)

    連載では、アドビシステムズより、無償で公開されているFree Flex 2 SDKについて紹介します。 Free Flex 2 SDKは、Flash Player 9をサポートするコマンドラインのFlashコンパイラです。アドビシステムズ社のWebサイトでユーザ登録をすれば誰でも無償で入手可能です。 これまで、Flashは有料の専用ツールを購入しないと作れないものでしたが、Free Flex 2 SDKにより、誰でも気軽にFlashの作成をはじめられるようになりました。Flashといえば、もともとWebアニメーションの作成ツールであるため、デザイナー向けのツールとして利用されることが多いのですが、Flexはプログラマに向けたツールとなっています。 数年前まではWindows上でクライアントアプリケーションを動かし、Webサイトで情報収集をするということが一般的でしたが、最近ではアプリケー

    harupiyo
    harupiyo 2007/11/24
    Free のFlash 開発環境
  • [ThinkIT] 第5回:プロジェクトマネジメントに活かす (2/3)

    harupiyo
    harupiyo 2007/11/03
  • [ThinkIT] 第1回:こんなにあるオープンソースのプロジェクト管理ツール (1/3)

    プロジェクト管理用のソフトウェアといえば、定番のMicrosoft Office Projectをはじめ、これまで様々な商用の製品が存在しました。一方で、従来からオープンソースのプロジェクト管理ソフトウェアにも様々なものがあります。 例えばソフトウェア開発に従事されている方であれば、Edgewall Software社が無償で提供している軽量バグトラッキングシステムの「Trac」を使ったことがあるのではないでしょうか(図1)。 ただし、このような従来のオープンソースのプロジェクト管理ソフトウェアの多くは、目的が限定されているものや基的な機能のみを実装するものが多く、企業の汎用的なプロジェクト管理に使えるものが少ないのが現状でした。 その背景の1つとして、オープンソースソフトウェアがWebアプリケーション技術に依存しているケースが多く、ガントチャートなど視覚に訴える機能を実現することが技術

    harupiyo
    harupiyo 2007/11/02
  • [Think IT] 第1回:付箋紙アプリケーションを作ろう! (1/3)

    Webの技術を使ってデスクトップアプリケーションを作ることができる開発環境である、「Adobe AIR(旧名 Adobe Apollo)」のパブリックベータ版が6月11日にリリースされました。 ここ数年、Webアプリケーションの進化がめざましく、表計算やワープロといった今までテスクトップ専用のものだと思われていたアプリケーションまで、Webブラウザ上で扱うことができるようになってきました。 Adobe AIRは、Webアプリケーションで使われている、HTMLCSS、Ajax、Flashといったテクノロジを使つつ、Webブラウザに依存しない、スタンドアローンなアプリケーションを開発・実行できる新しい環境です。 連載では、Adobe AIRとRuby on Rails(以下、RoR)を使って、Webブラウザだけではない、新しいタイプのWebアプリケーションを作る方法を紹介していきます。 A

    harupiyo
    harupiyo 2007/09/07
  • [Think IT] 第2回:円滑なプロジェクト管理を実現する手順 (1/3)

    harupiyo
    harupiyo 2007/09/07
  • [ThinkIT] 第15回:世界に知られるオープンソース言語「Ruby」を作った、まつもとゆきひろ

    harupiyo
    harupiyo 2007/02/14
  • [ThinkIT] 第2回:安定・簡単のネットワーク構築 (1/3)

    「第1回:サーバ導入の物理面を考える」では、どのようなサーバを導入すればいいのかについて物理的な部分を中心に説明を行いました。今回はサーバ構築にあたって、ネットワーク環境をどのように構成するのかについて説明します。 ネットワーク環境を考えるにあたって重要なのは、いかに運用コストを下げるかという点です。ネットワークの構築・運用にかかる費用のほとんどは人件費です。人件費以外では回線使用料が必要となりますが、これは利用する回線業者による差しかなく、ここでは解説を省きます。 では、人件費を下げるにはどうすればいいでしょうか。それはずばり管理コストを下げることです。複雑な構成になればなるほど管理コストが増大し、ミスが起こる確率も高くなります。できるだけ単純かつ高可用性を持ったネットワーク環境を構成することが、管理コストを下げる近道です。 実際にウノウで運用している例を基に、どのようにネットワーク環境

    harupiyo
    harupiyo 2007/02/11
  • [ThinkIT] 第5回:複数人での開発におけるテストの勘所 (1/3)

    これまで解説してきたように、ウノウでは各々の開発者の開発環境で慎重に組み上げられたソースコードをSubversionで管理された統一の開発環境にそれぞれコミットし、リリースに向けて足並みを揃えながらシステムテストを実施します。 ウノウではテスト専門の担当者が在籍しており、開発者とは違った視点から成果物のチェックを行う体制を整えています。今回はその実践事例を紹介しながら、複数人での開発におけるテストの勘所について解説していきます。 テスト工程はプロダクトの品質を確保するために欠かせないフローの1つです。組み上げられたばかりのソースコードは、まだ完成度が客観的に保証されていない状態であり、開発者のスキルに対する信頼によってのみ「完成した」と推測されるものでしかありません。極端にいえば、いざ蓋を開けてみたら動かなかったということもあり得るのです。 自社プロダクトの開発がほとんどであれば、問題が発

    harupiyo
    harupiyo 2007/02/07
  • [ThinkIT] 第2回:事前にシステム構築の費用を決めるために (1/3)

    第1回では、RFPがなぜ最近になって注目を集めているかという背景を説明し、RFPに記載すべき事項と開発におけるRFPでは、「何を(What)」が「手段(How)」と密接に関係していることを解説してきました。 第2回は引き続き、何を(What)はどこまで決めておくのが適切なのかを解説していきます。 第1回でも説明した通り、要件定義前のRFP作成では、何を(What)をどこまで決めておくべきなのかを、決めることが難関です。このことを考える際は、まず何を目的としてRFP作成に取りかかるのかということに、立ち返る必要があります。RFP作成の目的は第1回でも示した表1の通り、次の条件を備えた提案を得ることです。 表1で注目すべきことは2の費用です。 提案する側(RFPを受け取る側)の立場に立って考えてみると、1の対応策については課題がわかれば「このような感じのシステムを構築するのが対応策になります」

    harupiyo
    harupiyo 2007/02/07
  • [ThinkIT] 第4回:Ludiaを体験 (1/4)

    第3回では、オープンソースの全文検索システム「Ludia」を導入するための準備をすすめてきました。今回は、Ludiaに必要なソフトウェアいれ、実際に全文検索を行ってみます。 さて、前回解説したようにLudiaのダウンロードが終わっていたら、それをFedora Core 6にインストールしていきます。現在、Ludiaはtarballでの提供のみですので、ソースからコンパイルしていきます。インストールは、MeCab、MeCab辞書、Senna、Ludiaの順序で行います。それでは、順に説明していきます。

    harupiyo
    harupiyo 2007/02/02