タグ

ブックマーク / xtech.nikkei.com (14)

  • 「OpenGLを使ってJavaでも3Dを楽しもう」第12回 2Dと3Dの融合

    JOGLの解説を3カ月にわたって長々と行ってきたのは,3Dのアプリケーションを作るためということもあります。 しかし,一番の理由は,2Dのアプリケーションに3Dを融合させた姿を紹介したかったからです。2Dのアプリケーションの表現力を3Dによって向上させてもらいたかったのです。 2Dと3Dの融合には二つの方法論があります。 3D空間の中に,2Dアプリケーションを取り入れる 2Dアプリケーションの中に,3Dの空間を取り入れる 1.の方法で代表的なのはウィンドウ・システムを3D化することです。 この方法を使用している代表的なウィンドウ・システムを次に示します。 Project Looking Glass(LG3D) Windows Vista(Windows Aero) Susie XGL Mac OS X いずれのウィンドウ・システムも見た目は2Dかもしれませんが,3D空間を扱うことができます

    「OpenGLを使ってJavaでも3Dを楽しもう」第12回 2Dと3Dの融合
    chuwb
    chuwb 2013/03/12
  • [3]HTTPヘッダーインジェクションとクリックジャッキング

    HTTPヘッダーインジェクション攻撃は、Cookie出力やリダイレクト処理など、HTTPレスポンスヘッダーを出力している箇所に対する攻撃である。外部から、これらレスポンスヘッダーの値に改行文字を含ませることにより、来のヘッダーとは別のヘッダーを送信したり、文(HTTPメッセージボディー)を改変したりできる。これらを許すことはヘッダー出力処理のバグである。 以下、簡単なCGIプログラムを題材として、HTTPヘッダーインジェクションによる「なりすまし投稿」の原理を説明する。 なりすまし投稿の仕組み

    [3]HTTPヘッダーインジェクションとクリックジャッキング
  • 第7回 多対多の関係を賢く扱う

    100×100の格子上に四角形が32個あります(図1)*1。ある四角形を新たに格子の上に置いたときに,元からある四角形のうち,これに重なるものの番号を示してください。ただし,この問題で扱うすべての四角形のX,Y座標は,0から100までの整数値をとることになります。 私は待ち合わせが苦手です。人の顔を覚えるのがまったく不得意で,ましてや多くの人の中から見つけ出すとなるともうパニックになってしまうからです。そういうときに限って携帯電話を忘れていたりして…。 「多量のデータの中から条件に合致するものを探索する」ことは当に大変です。一番の問題は,時間がかかるところでしょう。1対多で検索する場合はともかく,多対多で探索するときには,アルゴリズムの優劣がモノをいいます。今回はその一例として「四角形の重なり具合を調べる方法」を取り上げ,ここからアルゴリズムの工夫の仕方について紹介します。 今回紹介する

    第7回 多対多の関係を賢く扱う
  • 第1回 幅優先探索の基本

    皆さんは、アルゴリズムと聞いて、何を思い浮かべますか? 多くの人は「プログラミングの基礎技術で、学ぶべきもの」という認識を持っていて、実際に書籍などで学習したことのある人も多いでしょう。しかし、一方で「実際にプログラミングを行う上では何に役立つかよくわからない」とも感じているのではないでしょうか? 例えば、アルゴリズムの書籍では様々なソートアルゴリズムが紹介されていますが、一つ覚えてしまえば実用上困らないでしょうし、そもそも大抵の言語にソート関数は標準で用意されています。最短経路問題を解くことができるダイクストラ法は非常に有名なアルゴリズムですが、実際に自分のプログラムで使ったことがある人はほとんどいないのではないでしょうか? そういった、使いどころが見いだせない「アルゴリズム」を、具体的な問題に対して適用していく際の考え方を紹介しようというのが、この特別連載です。ここでは数あるアルゴリズ

    第1回 幅優先探索の基本
  • 第17回 Scalaとパーザコンビネータ(基本編)

    筑波大学第三学群情報学類を卒業したのち、現在は、筑波大学大学院システム情報工学研究科コンピュータサイエンス専攻博士後期課程3年。プログラミング言語や処理系に強い興味を持っている。現在の研究テーマは、プログラミング言語の構文解析アルゴリズム。Scala勉強会を不定期で行うなど、研究の合間にScalaの普及活動を行っている。 Scalaにはパーザコンビネータライブラリという、構文解析を行うための専用ライブラリが存在します。パーザコンビネータライブラリを使うことで、特定の用途に特化した設定ファイルやDSLのパーザを手書きで書くよりも簡単に書けるようになります。 記事では、Scalaのパーザコンビネータライブラリの基的な使い方から、パーザコンビネータを使ったJSONのサブセットのパーザの実装までを解説します。構文解析の実装手法に関する知識は前提としませんが、構文解析とはどのようなものか、という

    第17回 Scalaとパーザコンビネータ(基本編)
  • 第19回 アクターで楽々並行プログラミング(1)

    有限会社ITプランニング勤務のプログラマーScala、OCaml、F#などの静的型付け関数型言語を利用したシステム開発業務に従事。定理証明支援器Coqやモデル発見器Alloyといった形式手法ツールの業務への応用にも興味を持っている。 Scalaの標準ライブラリは、Java程大きくありませんが、パーサーコンビネーターを筆頭に小粒でもぴりりと辛い逸品が揃っています。この記事でご紹介する「アクター」もその一つ、マルチスレッドのスパゲッティをおいしいペペロンチーノに変えてくれる、魔法のスパイスです。new Threadとしたくなったら、一歩立ち止まってscala.actorsパッケージの扉を叩いてみてください。 なお、稿では2回にわたって、アクターとは何なのか、アクターを使うとどのような事が可能なのかをご紹介する予定です。並行処理に興味があったり、なんらかの形で並行処理に触れたりしたことがあれ

    第19回 アクターで楽々並行プログラミング(1)
  • 第18回 Scalaとパーザコンビネータ(実装編)

    筑波大学第三学群情報学類を卒業したのち、現在は、筑波大学大学院システム情報工学研究科コンピュータサイエンス専攻博士後期課程3年。プログラミング言語や処理系に強い興味を持っている。現在の研究テーマは、プログラミング言語の構文解析アルゴリズム。Scala勉強会を不定期で行うなど、研究の合間にScalaの普及活動を行っている。 Scalaにはパーザコンビネータライブラリという、構文解析を行うための専用ライブラリが存在します。今回は、前回に説明したHello, World!パーザをより簡潔に書けるように修正していくほか、JSONのサブセットのパーザの実装までを解説します。 Hello, World!パーザを改良してみる strメソッド - 文字列を直接扱えるように 前回説明したリスト5のパーザは、プリミティブとして1文字にマッチするパーザしか扱えなかったため、いちいちそれを~でつないでいくのが面倒

    第18回 Scalaとパーザコンビネータ(実装編)
  • [実装編]メモリー管理を処理系任せにしてはいけない

    Javaや.NETを使うと,メモリー管理を意識しなくてもプログラミングできる。例えばJavaの場合は,Java VM(Virtual Machine)が備える「ガベージ・コレクタ」と呼ぶメモリー管理機能が,未使用のオブジェクトを破棄してメモリーを解放するといった処理を自動的に実行する(図1)。 図1●JavaVMによるメモリー管理の仕組み ヒープ領域は,生存期間の短いオブジェクトを格納する「New領域」と生存期間の長いオブジェクトを格納する「Old領域」で構成される。New領域はさらに,最初にオブジェクトを格納する領域「Eden」と,しばらく生存しているオブジェクトを格納する「世代0」「世代1」から成る。Edenに存在するオブジェクトは,生存期間が延びるにつれて,世代0または世代1に移動。世代0と世代1を何度か移動した後,最終的にOld領域に移される [画像のクリックで拡大表示] だが,処

    [実装編]メモリー管理を処理系任せにしてはいけない
  • 「OpenGLを使ってJavaでも3Dを楽しもう」第1回 3Dは関係ないと思われているかもしれませんが...

    「OpenGLを使ってJavaでも3Dを楽しもう」 第1回 3Dは関係ないと思われているかもしれませんが... 3Dによる表示は様々なところに使われています。 映画やコマーシャル,ゲームなどでは3D CGは当たり前のように使われています。でも,「そんなのはごくごく一部の分野で,仕事には全く関係ない」と思っている方も多いのではないでしょうか。 たぶん,仕事で一番多く使用されている3Dの表示は表計算ソフトのグラフでしょう。それ以外で,3Dといっても思い浮かぶものはないかもしれません。 だからといって3Dによる描画を使用していないかというと,そんなことはありません。意識はしていないかもしれませんが,今後は3Dによる表示は欠かせないものになってきています。 例えば,Windows Vistaはどうでしょう。 Windows Vistaのデスクトップ環境であるWindows Aero(以前はAero

    「OpenGLを使ってJavaでも3Dを楽しもう」第1回 3Dは関係ないと思われているかもしれませんが...
  • 刺激を求める技術者に捧げるScala講座---目次

    連載では,次世代のエンタープライズ・プラットフォームを支える言語として,このところ最も注目を集めている言語「Scala」の魅力をお伝えしていきたいと思います。Scalaは,技術的にもかなり刺激的で,楽しい言語に仕上がっています。最初の一歩から刺激的な技術解説まで,幅広くScalaおもしろさ,楽しさをお伝えしたいと思います。 第1回 なぜScalaなのか? 第2回 Scalaの基的な文法 第3回 Scala言語を探検する(1) 第4回 Scala言語を探検する(2) 第5回 Scala言語を探検する(3)関数型言語としてのScala 第6回 Scala言語を探検する(4)Scalaの型システム 第7回 関数脳のつくり方 First Season 第8回 Scala DSLでできること 第9回 Scala DSL事始め(前編) 第10回 Scala DSL事始め(後編)

    刺激を求める技術者に捧げるScala講座---目次
  • Part4 Javaで作るオリジナル言語

    Part4では,Lisp(リスプ:List Processor)インタプリタをJava言語を使って作っていきます。Lispは非常に歴史が古く,様々な分野で利用されている言語です。しかし,皆さんの中にはLisp自体をよく知らないという方もいらっしゃるかもしれません。どんなものを作るかわからないままでは面白みも半減してしまいますから,まずはLispのごく基的な動作を紹介しましょう。 まずは簡単Lisp講座 Lispの質は,すべてがリスト(正確にはS式,詳細は後述)で表現されることにあります。リストは要素を順序付きで並べたもので,“(1 2 3 4)”のように要素の並びをカッコでくくって表記します。このリストの要素は1,2,3,4の四つです。 「すべてがリストで表現される」という言葉の通り,Lispではプログラムもこのようなリストとして表現します。Lisp処理系は,与えられたリストの一つ目の

    Part4 Javaで作るオリジナル言語
  • 第7回 ネットへのアクセス方法

    今回はJava からインターネットへアクセスする方法を見ていきます。ネットワーク・プログラミングの初歩を覚えれば, XMLファイル解析ツールやRSSリーダーなどを作成できるようになります。 皆さんこんにちは,kikainekoです。この連載では,日々の定型的な業務をJavaで自動化してラクする方法を紹介しています。 読者の皆さんが仕事でちょっと何か調べたくなったときには,インターネットにアクセスすることが多いと思います。筆者も,ネットなしでは仕事ができないと言えるくらいに,頻繁にインターネットにアクセスしています。実は多くの場合,ブログを読んでいるだけだったりするのですが…。 今までの連載では,すべて自分のマシンの内側で処理をこなしてきました。今回は,Javaを使って外の世界すなわちインターネットの世界に飛び出してみましょう! Javaを使ってWebサイトにアクセスしてみます。 ネットワー

    第7回 ネットへのアクセス方法
  • 第1回 なぜScalaなのか?

    大手SIベンダにてSEやPMやアーキテクトとして勤務したのち,現在は株式会社豆蔵のチーフコンサルタント。主に超上流のプロセスである要求開発やオブジェクト指向,アジャイル開発のコンサルタントとして活躍中。開発の現場にこだわり,開発の現場を少しでもよくしたいと日夜奮闘している。要求開発アライアンス 執行委員。著書に『オブジェクト脳のつくり方』や『eXtreme Programming実践レポート』(ともに翔泳社発行。後者は共著)などがある。 連載では,次世代のエンタープライズ・プラットフォームを支える言語として,このところ最も注目を集めている言語「Scala」の魅力をお伝えしていきたいと思います。Scalaは,技術的にもかなり刺激的で,楽しい言語に仕上がっています。最初の一歩から刺激的な技術解説まで,幅広くScalaおもしろさ,楽しさをお伝えしたいと思います。 Scalarはじめの一歩 S

    第1回 なぜScalaなのか?
  • 本物のプログラマはHaskellを使う:ITpro

    筆者 shelarcy Haskellは,関数型プログラミングというジャンルに属する言語です。Haskellや関数型プログラミングを題材に物事を見ていくことで,今まで思いもよらなかったような未知の世界を知ることができるでしょう。 プログラミング言語を学ぶという行為には, 言語の基的な文法や考え方を理解する 言語の文化圏で広く使われている考え方に親しんでその言語らしい書き方を習得する 単に言語を使ってできること以上の知恵を学ぶ の3段階があります。この連載では,三つ目の段階を目標に,Haskellプログラミングの世界を一つひとつ丁寧に紹介していきます。 更新は毎月第1水曜日(1月のみ第2水曜日)

    本物のプログラマはHaskellを使う:ITpro
    chuwb
    chuwb 2009/09/04
    haskeる
  • 1