ブックマーク / www.itmedia.co.jp (12)

  • 大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係

    はじめに 2006年8月、Javaの次期仕様(JDK7)にクロージャを入れる案*が出され話題になりました。クロージャは関数型言語では30年以上の歴史を持ち、プログラミングにおける基的な道具となっています。最近はPerlRubyPythonなどの軽量言語(Lightweight Language)にも取り込まれ、それと知らずに使っているユーザーも増えているのではないでしょうか。 一方、手続き型言語の世界では、完全なクロージャはなじみが薄いようです。C言語からC++へと発展してきた手続き型言語のメインストリームでは、 ガーベジコレクションを持たず、ローカル変数をスタックに置くことを基とする言語のため、クロージャとの相性が悪かった オブジェクト指向を採り入れることでクロージャの代用とできた といったことが理由でしょう。 実際、クロージャとオブジェクト指向プログラミング言語には、メカニズム

    大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係
  • オーダーを極める思考法

    プログラムの実行に掛かる時間を把握しておくのは、プログラミングを行う上で基的な注意点です。今回は、計算量のオーダーについて学びながら、TopCoderのMedium問題を考えてみましょう。 プログラムの実行時間 業務としてプログラミングをされている方には釈迦に説法かもしれませんが、プログラムの実行に掛かる時間を把握しておくのは、プログラミングを行う上で基的な注意点です。そしてこれは、TopCoderなどのコンテストでプログラムを組む際にもよく当てはまります。通常、こうしたことは感覚的に理解している方がほとんどだと思いますが、具体的にどれくらいのループを回すと何秒掛かる、といった基準を持っている人は少ないのではないでしょうか? 非常に基的なことですが、プログラムの実行時間に関して再確認しておきたいと思います。 TopCoderの制限に関して TopCoderでは、実行時間およびメモリ使

    オーダーを極める思考法
  • 100円ショップのアイテムで作れる発想ツール3つ

    人間の頭には、アイデアを作り出す機能があります。頭を「次々と発想を生み出す装置」と表現するならば、困ったことにこの装置はとても不安定で、あるときはどんなに動かそうとしても、まったく作動してくれないことがあります。どこかに隠れている起動スイッチでもあれば便利なのに、と思いませんか? 創造手法の専門家たちは、これまでに、さまざまな「アイデア創出方法」を見いだしています。つまり、「発想装置」を起動するための「スイッチ」が、実は存在しているのです。 今回ご紹介する「アイデア・スイッチ」は、日実業出版社から発売した『アイデア・スイッチ 次々と発想を生み出す装置』から抜粋しています。

    100円ショップのアイテムで作れる発想ツール3つ
  • 最強最速アルゴリズマー養成講座:あなたの論理的思考とコーディング力は3倍高められる (1/2) - ITmedia エンタープライズ

    全世界で20万人を超える凄腕のコーダーが集うプログラミングコンテスト「TopCoder」。稿では、アルゴリズム部門のSRMで取り上げられる問題を考えながら、論理的思考力およびコーディングのテクニックを養っていきます。 はじめに はじめまして。高橋直大です。連載「最強最速アルゴリズマー養成講座」では、全世界で20万人を超える凄腕のコーダーが集うプログラミングコンテスト「TopCoder」について、そこで出題される数学・アルゴリズムのパズルを考えることで、コーディングのテクニックおよび論理的思考力を磨くことを目的に開始するものです。ここで扱う技法は主にアルゴリズムのそれですが、その根底にはロジカルな思考術が存在します。そうした能力を養いたい方にとって少しでも役に立てれば幸いです。 なお、稿は必要に応じてコーディング例も紹介しますが、TopCoderで出題される問題の中から比較的やさしい問

    最強最速アルゴリズマー養成講座:あなたの論理的思考とコーディング力は3倍高められる (1/2) - ITmedia エンタープライズ
  • Pythonを用いたCGIスクリプティング入門

    CGIスクリプティングの世界を席巻している言語がPerlなのは確かだが、Perlより優れているはずのツールも幾つか存在している。稿ではPythonを用いたCGIスクリプティングの世界を簡単に紹介しよう。 Web開発者にCommon Gateway Interface(CGI)スクリプティングについての質問をすると、返ってくる大多数の回答はおそらく「Perlを使っています」というものだろう。かなり以前からCGIスクリプティングの世界を席巻している言語がPerlであるのは確かだが、それ以外の選択肢がない訳でもなく、むしろPerlより優れているはずのツールも幾つか存在しているのである。よって稿では1つのチュートリアルとして、高速かつ多機能でマルチプラットフォームに対応したPythonを用いたCGIスクリプティングの世界を簡単に紹介することにしよう。 インタプリタ型のオブジェクト指向言語として

    Pythonを用いたCGIスクリプティング入門
  • New Generation Chronicle:小飼弾--35歳からのプログラミングこそ無上の至悦 (1/9) - ITmedia エンタープライズ

    小飼弾――35歳からのプログラミングこそ無上の至悦:New Generation Chronicle(1/9 ページ) 豊富な実績で多くの開発者を先導する存在になりつつある人物を取り上げる「New Generation Chronicle」マエストロスレッド。こちらの第1回は、ブログ「404 Blog Not Found」などでも知られる小飼弾氏だ。 次代の開発者の素顔と、その交友関係をソーシャルグラフ化する目的ではじまった「New Generation Chronicle」。斉藤のり子さんにはじまった「Web2.0系スレッド」、井上恭輔さんにはじまった「バイナリアンスレッド」に引き続き、すでに豊富な実績で多くの開発者を先導する存在になりつつある人物を「マエストロスレッド」として紹介していきたい。現在、大いに名が知られる彼らがたどってきた道と、経験によって養われた見識からは、次世代の開発者

    New Generation Chronicle:小飼弾--35歳からのプログラミングこそ無上の至悦 (1/9) - ITmedia エンタープライズ
    ocmagic
    ocmagic 2009/01/15
  • パターンを学べばどんな技術にも対応できる

    パターンを学べばどんな技術にも対応できる:マーチン・ファウラー特別ラウンドテーブル 現場レポート [前編](1/2 ページ) マーチン・ファウラー氏の来日に伴い、マイクロソフトとアットマーク・アイティは4月21日、「マーチン・ファウラー特別ラウンドテーブル」を共同開催した(ラウンドテーブルの参加者は下記を参照)。ファウラー氏は非常な饒舌(じょうぜつ)家である。1つのシンプルな質問に対し、さまざまなエピソードを交えながらたっぷり15分以上は回答し続ける。ラウンドテーブルのテーマとして、「Architectual Pattern」「Analysis Pattern, Enterprise Modeling」「Agile Process, XP」「UML」「Architect Evangelism」といった幅広いジャンルを用意したものの、ファウラー氏の情熱的な饒舌が制限時間を圧迫し、すべてにおい

    パターンを学べばどんな技術にも対応できる
  • @IT:オブジェクト指向の世界 (1) 第1回 流れ去るものと不変なもの

    はじめに 「オブジェクト指向の世界」というテーマでJavaとかUMLなどについてソフトウェア開発とは少し離れてオブジェクト指向そのものの哲学的意味を考えてみたいと思います。哲学的というのは大げさですが、現実世界の森羅万象あるいは日常生活を見渡して「それってオブジェクト指向でとらえるとこのように明確に理解できるのではないか」、あるいは「それをオブジェクト指向でとらえるのは難しい。それはなぜか? 何かほかの方法はないだろうか?」などオブジェクト指向とは少し異なった世界のとらえ方であるパターン言語なども見ながら筆者が普段から思っていることを文章にまとめてみたいと思います。あるいは、むしろ文章にしながら自分の考えを整理していくといった方が当たっているかもしれません。筆者の人生観あるいは世界観も含まれてきて、まったくの独断と偏見になりますがご容赦ください。 第1回は「流れ去るものと不変なもの」と題し

    @IT:オブジェクト指向の世界 (1) 第1回 流れ去るものと不変なもの
  • 5分で絶対に分かるUML ― @IT情報マネジメント

    UMLとはいったい何だ? 近ごろUML(Unified Modeling Language)が注目を集めています。多くの雑誌にUMLの特集が組まれ、@ITにもUMLに関する記事がたくさん掲載されています。また、最近ではUMLを知っていることを前提とした文章も珍しくありません。 実際、システム開発の現場でUMLが積極的に使われ始めています。UMLに対応したツールも多く登場し始め、UMLが説明の必要もないほど必須の技術になっているといえます。 稿ではそんなUMLとは一体どんなものなのか、どのように使われているのかについて、オブジェクト指向の話と併せて取り上げていこうと思います。この5分がUMLに興味を持つきっかけとなれば幸いです。

    5分で絶対に分かるUML ― @IT情報マネジメント
  • ITmedia エンタープライズ:第1回 Instant Railsで始めるWindows環境のRails (1/2)

    第1回 Instant Railsで始めるWindows環境のRailsRuby on Rails究極指南(1/2 ページ) 世界中でRubyの人気が急上昇しているが、このきっかけの1つとなったのがWebアプリケーションフレームワークRuby on RailsRails)である。連載では、このRailsの特徴や魅力を余すところなく伝えていく。 はじめに 世界中でRubyの人気が急上昇しているが、このきっかけの1つとなったのがWebアプリケーションフレームワークRuby on RailsRails)である。そこで連載では、Rails 1.0の特徴を紹介しながら、Windows/Mac OS X環境へ簡単に導入できるInstant RailsやLocomotiveによってRailsの魅力に迫っていきます。また、代表的なフレームワークCatalystとの比較、言語内DSLという概念など

    ITmedia エンタープライズ:第1回 Instant Railsで始めるWindows環境のRails (1/2)
  • まつもとゆきひろのハッカーズライフ:第1回 ハッカーとの遭遇 (1/2) - ITmedia エンタープライズ

    知られざる「ハッカー」の生態や心理についてまつもとゆきひろ氏が紹介する人気連載がITmediaに登場。ハッカーの生き方を知ることは、あなたがより良いプログラマーになるのに役立つかもしれません。もちろん保証はできませんが。 こんにちは、はじめまして。まつもとゆきひろと申します。世間ではRubyというプログラミング言語の作者として知られ、職業はプログラマーで自称ハッカーでもあります。この連載ではわたしたち「ハッカー」の生態や心理について紹介できればと考えています。 ハッカーとは 「ハッカー」といってもネットワーク経由でシステム侵入を行ったり、パスワードを破ったりするような悪者ではありません。そういえば、最近そういう誤用をあまり耳にしなくなりましたね。 ハッカー(Hacker)とは文字どおり「Hackする人」という意味です。「Hack」というのはもともとは「(斧などで)たたき切る」という意味です

    まつもとゆきひろのハッカーズライフ:第1回 ハッカーとの遭遇 (1/2) - ITmedia エンタープライズ
  • Rubyでアジャイルプロトタイピング(2) ― @IT

    記事はRoRを使ってプロトタイプを作成し、アジャイルかつ正確にクライアントからの機能要件を取りまとめることを提案する連載「アジャイルプロトタイピング with Rails」の第2回目です。連載第1回「Ruby on Railsで行うプロトタイピング」は、プロトタイプを作成することの有用性と現状のプロトタイプ作成がどのような問題点を持っているか、RoRを使用してプロトタイプを作成することでどのようなメリットがもたらされるかについて解説しました。連載第2回目は、RoRを使ううえで欠かせないRubyについて解説します。 Ruby入門者にはこれらの書籍をお勧めします 連載の2回目は、まだまだ知名度が低いRubyに対して読者の方にイメージをつかんでもらうことを目的としています。ですので、この記事を通読してもRubyができるようになるわけでは(当然)ありません。今回の記事を通読していただいたうえで

    Rubyでアジャイルプロトタイピング(2) ― @IT
    ocmagic
    ocmagic 2005/12/07
  • 1