タグ

developmentに関するscorelessdrawのブックマーク (328)

  • 車輪の再発明 - Wikipedia

    古くから皆に使われている技術や技法をそのまま模倣して利用すれば、時間や労力を使わずに済む。それにも関わらずアイディアを練る段階から始めていては時間・労力・コストなどの無駄となってしまうことから、時間の浪費、無駄な努力、愚かなこと、ばかばかしいこと、といったニュアンスで用いられる。 「車輪の再発明」の語は、IT業界では耳にすることが多いフレーズでもある[1]。ソフトウェア開発におけるアンチパターンの1つに分類される[1]。 アンチパターンの1つに数えられるということは、それだけ多くの人々が苦い体験を繰り返して失敗してきたということでもあるが、「車輪の再発明」は繰り返されてしまう[1]。ITエンジニアにとっては「開発は楽しいものだから」という理由や、「自分のソフトウェアのことは自分が一番に理解している」というITエンジニアの想い、自分で作りたいという欲求からくるのではないかともいわれる[1]。

    車輪の再発明 - Wikipedia
  • 【ハウツー】早速プログラミング! Google Gearsを使ったアプリを作ってみよう (1) Google Gearsで使われている技術 | エンタープライズ | マイコミジャーナル

    5月31日に開催されたGoogle Developer Day 2007で発表され、一気に話題をさらった「Google Gears」。稿では、そのGoogle Gearsを技術的な観点から解説したうえで、同アプリケーションを使用した簡単なサンプルをご紹介し、その魅力に迫ってみたい。なお、Google Gearsの概要については、「Google Gearsを組み込んだGoogle Readerを使ってみよう」を参照してほしい。 Google Gearsが提供するもの Google Gears(以下、Gears)は、Webアプリケーションのオフライン使用を可能にする技術である。ただし、オフラインには様々な課題がある。セキュリティ上、ローカルマシン上で好き勝手にファイルを操作したり、読みだしたりすることは許されない。アプリケーションのページをキャッシュしておくことと、アプリケーションが使用する

  • Inversion of Control コンテナと Dependency Injection パターン

    以下の文章は、Martin Fowler の「Inversion of Control Containers and the Dependency Injection pattern」を、かくたにが翻訳したものです。原著者の許可を得て翻訳・公開しています。 翻訳にあたっては、kdmsnr さんにご協力をいただきました。ありがとうございます。公開後の改訂履歴を記事の最後に記述しています。 Java コミュニティでは軽量コンテナが花盛りである。 軽量コンテナは、異なるプロジェクトのコンポーネントをひとまとまりのアプリケーションとして組み立てることを支援する。 このようなコンテナの根底には、コンポーネントの結び付け方についての共通したパターンがある。 そのパターンのコンセプトは「Inversion of Control(制御の反転)」と、まことに包括的な名前で呼ばれている。 記事では、このパタ

  • 「問題 VS. 私たち」で考える人たち - アンカテ

    JavaからRubyへ ―マネージャのための実践移行ガイド 訳者の角谷さんから献をいただいて(ありがとうございます)から、ずっと迷っていたことがある。私は、gem戦記というサブブログを書いていて、純粋に技術的なことはそちらに書くようにしている。このについて何か書く時、そちらに書くかここに書くかをずっと悩んでいた。 アクセス数は圧倒的にこちらの方が多いので、なるべくならこちらに書きたいが、こちらは技術者でない読者も多いので、どうしたものか迷いながら読んでいた。 中身は評判通り大変よいだと思うが、内容的にはやはりほぼソフトウエア開発の話に終始していて、これはやはり「gem戦記」向けだなと思いながら、Bruce Tate氏の文を読み終えた。 ところが、ところがである。 「訳者あとがき」の中で、まさに「アンカテ」向きの素材を発見してしまった。 書のアイディアを手掛りにRubyを導入するに

    「問題 VS. 私たち」で考える人たち - アンカテ
  • Martin Fowler's Bliki in Japanese - トランザクションレス

    http://martinfowler.com/bliki/Transactionless.html 2007/3/18 (更新:Bill Caputoからも経験談をいただいた) 数年前にeBayで働く友人たちと話していたときのことだ。 大規模サイトで使われる技術の話を聞くのはいつも楽しいが、特に興味深かったのが、eBayでは滅多にデータベーストランザクションを使用しないという話だった。 トランザクションがない環境というのは驚くべきことではないだろうか。 データベースを扱うときにトランザクションを使うのはごくごく一般的なことだ。 多くの人にとって(私もそうだが)トランザクションはデータベースを使う利点のひとつだ。 eBayがトランザクションを使わないのは、あのような規模ではパフォーマンスに影響が出てしまうからだというものだった。 eBayではデータをいくつもの物理的データベースにパーテショ

  • ドメインロジックとSQL

    以下の文章は、Martin Fowler による Domain Logic and SQL の日語訳である。 データベース指向ソフトウェア開発者とメモリ上(in-memory)アプリケーションソフトウェア開発者との間のギャップは、ここ数十年、徐々に広がってきている。このギャップが原因で、データベースの機能(SQLやストアドプロシージャ)をどのように扱えばよいのかという議論が数多く巻き起こっている。ここでは、ビジネスロジックを SQL に置くべきか、それともメモリ上のコードに置くべきかといった問題について、主にパフォーマンスと更新性の観点から考察を行う。考察には簡単な例を使うが、SQL クエリはしっかりとしたもの(rich SQL queries)を用いるので悪しからず。 エンタープライズアプリケーション(訳注:以下、EA)構築に関する(私の近著『P of EAA』など)を読むと、ロジッ

  • 技術者論

    僕が最初に入った会社では、産業用の生産装置の電気設計のエンジニアをやっていました。 新入社員で現場から入って溶接したり板金したり制御板作ったり、一からモノ作りを学んで、エンジニアとしての原点は今でもそこにあります。 生産装置ってで何が一番大事かと言えば、装置を利用されるお客様の製品を安定して生産すること、ただ一点です。 装置が壊れたときに、遠方、時には海外(日)にいるエンジニアが一々出張しないと直らないという装置は業務上のリスクに繋がります。だから、部品は簡単に交換できるように作るし、ソフトウエアもある程度であれば、その会社の保全のエンジニアがいじれるように作らなくてはいけません。 そういう中で、装置はそのままで、制御に使っているコンピューターを、その会社の標準仕様に合わせることが求められることがあります。 単純に企業の系列的な都合もあるし、保全のエンジニアがいじれるメーカーにあわせて作

  • [ThinkIT] 第1回:今だからこその「PHPのすすめ」 (1/3)

    オープンソース、特に「LAMP(Linux、Apache、MySQLPHP)」が喧伝されてから久しいですが、それでも実際に現場に身を置いていると、まだまだPHP技術者不足を感じることがあります。 PHPだけがプログラミング言語ではありませんが、今後様々な意味においてPHPを使った開発をはじめとした技術が必要になるでしょう。そこで、連載では3回にわたり、PHP開発の「光」と「影」について解説します。 一般的に「PHPは習得しやすい」といわれています。これは、例えばJavaと比較して、新入社員が現場で実際にプログラミングできるようになるまでの育成時間に着目すれば、その差は明らかでしょう。 Javaが難しいといわれるのは、Javaが言語として難しいというよりもオブジェクト指向の考え方を理解することが容易でないからだと考えられます。同じプログラム言語というカテゴリ分けで、単純にJavaPHP

  • Apolloポケットガイド邦訳Wiki - FrontPage

    このサイトは、以下の環境での閲覧を対象としています。 以下に示すブラウザ以外ではレイアウトが崩れる可能性があります。 Adobe Flash Player 8以上 Windows環境:Internet Explorer 6、Internet Explorer 7、FireFox 1.5 MacOSX環境:Safari 2

  • サーブレット・チュートリアル / 株式会社クレス

    サーブレット・チュートリアル (VisualAge for JavaによるはじめてのServlet) 資料のブラウザはIE(インターネット・エクスプローラ)をお勧めします

  • ひがやすを blog - [DI]DIって本当に必要? その2

    http://d.hatena.ne.jp/higayasuo/20070416#1176719022の続き。 それでは、DIContainerの機能で当に必要な2つの機能って何でしょうか。一つは、インスタンスのスコープ管理です。スコープとは、singletonだとかprototypeのようにインスタンスが存在する範囲のことです。たとえば、singletonの場合は、いつ取得しても同じインスタンスが返ってきて、prototypeの場合は、取得するたびに新しいインスタンスが返ってきます。 このスコープ管理は、単純にオブジェクトをnewしているだけでは達成できません。以前のコードを見てみましょう。 Service service = new Service();これは、ある意味prototypeですが、これをsingletonにしたい場合、次のようなコードにする必要があります。 Servic

    ひがやすを blog - [DI]DIって本当に必要? その2
  • ひがやすを blog - [DI]DIって本当に必要?

    http://www.commonsmedia.jp/cm/JavaAndSolarisCampaign blogでNetBeansやJavaEEについて書いて、トラックバックしたら先着100名にAmazonギフト券3000円分をプレゼントするそうです。id:nowokayさんのためのような企画です。 id:taediumさんもid:da-yoshiさんもぜひどうぞ。ただし、Seasar固有のことはできれば避けてねということです。 DIって当に必要?たまにそう思うときがあります。DIによって開発は当に楽になったのか。 DIのメリットでよく語られることとして、インターフェースと実装を分離し、機能の利用者側はインターフェースを通じて機能を利用することで、実装に直接依存しなくなり、後で実装を変更しても影響を受けなくなるということがあります。 実際後から、実装クラスを変更するということはめった

    ひがやすを blog - [DI]DIって本当に必要?
  • F's Garage:rubyとかPHPとかPerlとか。

    企業の言語選択は、どれほど人材採用に影響があるのだろうか。 楽天が先日ruby on railsを採用するという話がニュースになった。ruby会議のスポンサーにもなっているようだ。 楽天JavaPHPを使っているとのことで、Javaエンジニアがライトウエイト言語でRubyに行くというのは割と僕も正当なパスだと思うので、基的に納得である。 最近、一つ納得がいかないのは、オープンソースやらネット上で技術者が目立たないと、まるでその会社には技術屋がいないような扱いになってしまう点。 さらっと見つけてみたのだが、代表的な発言として、404 Blog Not Foundさんの > 楽天の苦点 そして「中の人」の存在感がほとんどない。これは、ネットならではの事情なのだが、成功しているサイトのほとんどが、何らかの形でその技術力が外から伺えるようになっている。はてなや37signalsのように、中

    scorelessdraw
    scorelessdraw 2007/04/16
    「ツールとしてのVBはとてつもなく優秀なソフトウエアで、そこで生まれた人材がバカにされるほど優れた抽象化技術を持っていたと考えられます。」
  • 【ハウツー】Rubyでも継続的インテグレーション!! - Ruby版CruiseControlを使ってみよう (1) CruiseControl.rbが正式リリースに (MYCOMジャーナル)

    ビルドツールの代表的なものと言えばUNIXプラットフォームにおけるMakefileや、Java開発で使われるAntやMavenが挙げられる。これらのツールにお世話になっているデベロッパーは多いだろう。しかし、複数のデベロッパーが共同でアプリケーションを開発するとなると、それらのツールでは対応できない場面も出てくる。 そこで、ベンダーやオープンソースコミュニティでは、共有リポジトリ上にプログラムを格納するだけでビルドを自動的に実行するツールを開発している。そういった統合ビルドツールは「継続的インテグレーションツール」と呼ばれ、大抵は、ビルド結果をまとめたレポートを生成し、Webページやメール、メッセンジャーなどで自動配信する機能も備わっている。チーム開発を進めるうえで大変重宝するはずだ。ここでは、そのうちの一つとして、最近新しいエディションがリリースされた「CruiseControl」を紹介

  • ITmedia エンタープライズ:第2回 サルでも分かるプログラミング言語の新潮流【後編】 (1/3)

    「ガーベジコレクション」「リフレクション」「アスペクト指向」「クロージャ」「イテレータ」「型推論」など、近年、プログラミング言語の世界に新しい概念が続々となだれ込んでいるように見えます。しかし、この背景には、実はあまり知られていない歴史が隠されているのです。 新潮流の実体 前回紹介したように、「知られざる言語」で熟成された機能が、メインストリームの言語に続々と取り込まれているのが「新潮流」の真実だったわけです。メインストリームの言語しか見ていなかった人にはまったく新しいものに見えますが、実際にはもう何年も何十年も使われてきた技術だったのですね。 ここにきてなぜ、新技術がメインストリームに取り込まれるようになったのか、はっきりとした理由は分かりません。しかし、おそらくは以下のような原因があるのではないでしょうか。 1.コンピュータの性能向上 ハードウェアの進歩による性能向上で、以前は受け入れ

    ITmedia エンタープライズ:第2回 サルでも分かるプログラミング言語の新潮流【後編】 (1/3)
  • プログラミング言語の進化を追え:第1回 サルでも分かるプログラミング言語の新潮流【前篇】 (1/2) - ITmedia エンタープライズ

    近ごろプログラマーかいわいで、「関数型プログラミング言語」という言葉をよく耳にするようになった。連載では、プログラミング言語を取り巻く状況をあらためて俯瞰し、プログラミング言語開発の現場で何が起こっているのかを解説する。 はじめに 「ガーベジコレクション」、「リフレクション」、「アスペクト指向」、「クロージャ」、「イテレータ」、「型推論」など、近年、プログラミング言語の世界に新しい概念が続々となだれ込んでいるように見えます。しかし、これら「プログラミング言語の新潮流」の背景には、実はあまり知られていない歴史が隠されているのです。 プログラミング言語のメインストリーム プログラミング言語はお互いに影響を与えながら成長しています。プログラミング言語の歴史において、主要な言語がどのように影響を与えたかを、概略図に示しましょう(図1)。スペースの関係上この図では非常に簡略化しています*が、実際に

    プログラミング言語の進化を追え:第1回 サルでも分かるプログラミング言語の新潮流【前篇】 (1/2) - ITmedia エンタープライズ
  • あなたの知っていることはすべて5年以内に陳腐化する

    Jeff Atwood / 青木靖 訳 2006年3月20日 ソフトウェア開発で奇妙なことが何かというと、知識が陳腐化するのがいかに早いかということだ。ダニエル・アップルマンはこれをルイス・キャロルの「鏡の国のアリス」の一場面に喩えたが、この状況がすごくよく表されている。 「さあさあ」女王が叫んだ。「もっと速く、もっと速く!」 2人はあまりに速く走ったので、そのうち空中をかすめ飛んで足がほとんど地面に触れないくらいになった。アリスは不意にすっかり疲れ切って立ち止まると、息切れとめまいを起こして地面に座り込んでしまった。 女王はアリスを木にもたせかけて立たせると、優しく言った。「少し休むといい」 アリスは周りを見回して驚いた。「あら、ずっとこの木の下にいたみたい! みんな元のままだわ!」 「もちろん元のままだとも」と女王が言った。「どうなると思ったの?」 「だって、私たちの国では」アリスはま

  • アドビシステムズ,次世代アプリ実行環境「Apollo」のパブリックアルファ版と開発キットを公開

    アドビシステムズは2007年3月19日にAdobe Labsにおいて,クロスプラットフォームで動作するアプリケーションの実行環境(ランタイム)「Apollo(開発コードネーム)」のパブリックアルファ版を公開した。併せて開発者向けに,Apollo対応アプリケーションを開発するためのコマンドラインツール群「Apollo SDK」と,Apolloアプリケーションの統合開発環境(IDE)になる予定のFlex Builder 2.0.1向け拡張機能Apollo Extension for Flex Builder 2.0.1」を公開した。どちらも英語版のみで無償提供される。 ApolloはAdobe Flash,Adobe Flex,HTMLJavaScript,Ajaxといった技術を組み合わせて作成したアプリケーションを実行する環境だ。RIA(リッチ・インターネット・アプリケーション)の機能を

    アドビシステムズ,次世代アプリ実行環境「Apollo」のパブリックアルファ版と開発キットを公開
  • SQL Injection Cheat Sheet

    Examples; (MS) means : MySQL and SQL Server etc. (M*S) means : Only in some versions of MySQL or special conditions see related note and SQL Server Table Of Contents About SQL Injection Cheat Sheet Syntax Reference, Sample Attacks and Dirty SQL Injection Tricks Line Comments SQL Injection Attack Samples Inline Comments Classical Inline Comment SQL Injection Attack Samples MySQL Vers

  • あるまに

    Playframework 1.2.4にパッチを当ててChrome 16でWebSocketを動かす - 創 continuation 引越し先は 創 continuation です。こちらにもしばらくはエントリのリンクだけ追加していこうと思います。 社員ブログの方に書きました。 http://goo.gl/n3ofn my.cnf で slow_query_log を有効にしたい場合、 slow_query_log=ON と書いても駄目(OFFの状態で起動してしまう)。特にmysqldのログにエラーが出る訳でも無いのでしばらく気づかなかった…。 slow_query_log=1 と書けば起動時にONになる。なんでやねん。 ※MySQL 5.1.52で確認 今月から技術・デザイン系社員で持ち回りブログを始めたのですが、その2番手として以下の記事を投稿しました。 私の出会った、できるプログラ

    あるまに