タグ

ブックマーク / codezine.jp (33)

  • Google App Engine for Javaを使ってみよう! (1)Google Plugin for Eclipse

    2008年4月7日に発表されたGoogle App Engineが、ちょうど1年後の2009年4月7日にJavaに対応したことが発表されました。さらに、Java開発には必須のEclipse用のプラグイン「Google Plugin for Eclipse」が同時に発表され、Java利用者は簡単にGoogle App Engine用のプログラム開発とEclipse上からのデプロイができるようになっています。今回はそんな便利な「Google Plugin for Eclipse」の使い方を説明します。 はじめに 2008年4月7日、Googleのインフラでウェブサービスを展開できるという「Google App Engine」が発表され世界中が驚かされました。この時点では利用できる言語としてPythonのみがサポートされており、Pythonの開発者がGoogleの社員であることを考えると当然なの

    Google App Engine for Javaを使ってみよう! (1)Google Plugin for Eclipse
  • Rubyで作るProlog処理系

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Rubyで作るProlog処理系
  • 高速かつ省メモリで文字列を扱うデータ構造「wavelet tree」

    はじめに 大規模なデータを扱うアプリケーションでは、速度とともに作業領域量も大きな問題となります。作業領域がメインメモリに収まらない場合、スワッピングが発生し、大幅な速度低下につながります。そのため近年、データ構造は高速なだけでなく、作業領域量が小さいことも求められています。今回紹介するのは2003年に提案されたデータ構造、wavelet tree(以下「WT」と表記)です。WTは圧縮索引やSuccinct Data Structureなど、データをコンパクトに表現する際に重要なデータ構造です。WTは文字列T[0...n-1]が与えられた時、次の2つの操作を定数時間でサポートします。 rank(p, c)――T[0...p]中のcの出現回数を返す select(i, c)――(i+1)番目のcの位置を返す WTの作業領域量は、文字列をそのまま保存した時の約2倍程度です。 対象読者 C++

    高速かつ省メモリで文字列を扱うデータ構造「wavelet tree」
  • 正規表現の問題集1(基本編)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    正規表現の問題集1(基本編)
    agx
    agx 2008/11/27
  • CodeZine:テンプレートによるメタプログラミングと数論(MPL, メタプログラミング, テンプレート)

    1. はじめに メタプログラミングとは、別のプログラムを生成できるプログラムを書くことです。この技法はさまざまな言語においてさまざまな目的で使用されています。メタプログラミングは、部分的な評価を行うことによって1つのプログラムを別のプログラムに変換する方法、言い換えれば、プログラミングを自動化する手段であるとも言えます[11]。メタプログラミングの典型例の1つは、出力としてプログラムを生成するLexやYACCなどのコンパイラ構築ツールです。コンパイラ自体もこのカテゴリに含めることができますが、コンパイラの場合は一般にホスト言語とドメイン言語が異なります[3]。通常、コンパイラは特定の文法に従って書かれたソースを入力として受け取り、CやC++Javaなどのプログラムを出力します。 C++ではテンプレートとマクロを使用してコードを作成することができます。ただし、この方法は綿密に設計された機能

  • コンボリューションを用いた画像の平滑化、鮮鋭化とエッジ検出:CodeZine

    はじめに コンボリューション(Convolution)は数学用語で、日語では「畳み込み」といいます。掛け算の結果を足し集める演算からなり、コンピュータ処理の得意とするところです。コンボリューションを画像処理に使うと、画像を滑らかにしたり、シャープにしたりできます。掛け算の係数は、3×3などのサイズのマトリックスで指定します。これをオペレータ、フィルタ、マスク、カーネルなどと呼びます。 Java 2D APIには、画像処理でコンボリューションを行うのに便利なConvolveOpやKernelのクラスがあります。しかし、これらだけに頼ると不便な点もあるため、これらを利用しながら、従来と変わらぬ画像処理ができるように工夫しました。 対象読者 画像処理の基を学び、ペイント系画像ソフトの一部の機能を自作したい人。 必要な環境 J2SE 5.0を使っていますが、J2SE 1.4.2でも

  • RailsでWikiシステムを作成する:CodeZine

    Scaffoldで生成したアプリケーションは出発点にすぎず、自立した完成品のアプリケーションではありません。このため、開発者がプロジェクトに適した形になるように手を加える必要があります。しかし、毎回似たような修正を行うのであれば、生成した時点でその修正が反映されている方が、より生産性も向上します。そこで稿では、Scaffoldをカスタマイズする方法を紹介します。

  • REXML:RubyによるXML処理

    Scaffoldで生成したアプリケーションは出発点にすぎず、自立した完成品のアプリケーションではありません。このため、開発者がプロジェクトに適した形になるように手を加える必要があります。しかし、毎回似たような修正を行うのであれば、生成した時点でその修正が反映されている方が、より生産性も向上します。そこで稿では、Scaffoldをカスタマイズする方法を紹介します。

    agx
    agx 2007/05/30
  • MS、無償のWeb制作者向けIEプラグイン「Internet Explorer Developer Toolbar」正式版公開:CodeZine

    Microsoftは9日、IE用プラグイン「Internet Explorer Developer Toolbar」正式版をリリースした。以前からWeb開発者向けにリリースされていたプラグインだが、今回よりバージョン1.00の正式版となった(リリースされたのは、バージョン1.00.2188.0)。 Internet Explorer Developer ToolbarはMicrosoftのWebサイトより無償でダウンロードできる。IE7の場合、インストールするとブラウザの右上に小さなアイコンが現れ、これをクリックするとメニューが表示されるようになる。 Webサイトにおける画面デザインでは、HTMLのDOM構造やCSS適用内容、要素のサイズなど、実際にブラウザを通した表示を見ながら検証していく必要がある。Internet Explorer Developer Toolbarを使うと検証した

  • CodeZine:Rubyを使ってWebアプリケーションの脆弱性を早期に検出する(Web, テスト, Ruby)

    Scaffoldで生成したアプリケーションは出発点にすぎず、自立した完成品のアプリケーションではありません。このため、開発者がプロジェクトに適した形になるように手を加える必要があります。しかし、毎回似たような修正を行うのであれば、生成した時点でその修正が反映されている方が、より生産性も向上します。そこで稿では、Scaffoldをカスタマイズする方法を紹介します。

  • CodeZine:「超高速、完全自動、しかもフリー」 WebテストツールのGITAK公開(TIBCO, 開発ツール)

    TIBCOは、オープンソースのWebサイトテストツール「TIBCO General Interface Test Automation Kit 0.7」(GITAK)を公開した。TIBCO Developer Networkより無償でダウンロードできる。 「TIBCO General Interface Test Automation Kit」は、Webサイトの入力チェック、ボタンの動作内容、JavaScriptの動作などを自動で一気にテストできるツール。すべてのテストがブラウザで完結するのが特徴だ。ダウンロードファイルにはサンプルが含まれているので、試しに動作させてみることができる。 1.GITAKの入手 TIBCO Developer Networkよりファイルをダウンロードし、解凍する。 2.TestRunner.htmlの起動 解凍してできたフォルダから「/gitak/c

    agx
    agx 2007/04/05
  • CUnitによるテスト駆動開発:CodeZine

    はじめに CodeZineでの僕のデビュー記事『Cで実現する「ぷちオブジェクト指向」』、おかげさまでなかなか好評だったようです。まだまだCは現役だと実感しました。 前回に引き続きCのお話です。テストをよりどころに実装をすすめ、信頼できるコードを書くためのプラクティス「テスト駆動開発」(TDD:Test Driven Development)を、Visual C++ 2005 Express EditionとUnit Test Framework: CUnitで行います。対象読者 そこそこのコードは書けるようになったけれど、どうも詰めが甘い/くだらないバグに出くわす/あっちを直すとこっちが壊れ、ぐだぐだになってしまう…そんな症状に悩まされている脱ビギナを目指すプログラマ。テスト、してますか? 「プログラムは思ったとおりには動かない、作ったとおりに動く」 思ったとおりに作ってないと思ったとおり

  • HttpUnitを利用したWeb画面テストの自動化:CodeZine

    はじめに テスティングフレームワーク「xUnit」を利用した開発が普及しつつある昨今ですが、Webブラウザをユーザーインターフェイスとするシステムでは、当然の事ながら画面のテストも必要となります。 xUnitは、基的にモジュール単位でのテストを行うものであり、ブラウザ上のHTMLを評価する事はできません。 そこで稿では、「HttpUnit」というブラウザをエミュレートするツールを使用して、Webアプリケーション画面のテストを行う方法を紹介します。対象読者 Webアプリケーション画面開発者、画面テスト担当者。 なお、稿のプログラムはJavaで記述するため、HTMLに関する知識の他に、JavaとJUnitの知識が必要です。しかし、プログラム自体はクライアント側にて単体で動作するため、サーバー側のシステムはJavaである必要はありません。 CodeZineでCactusについての有益な記事

    agx
    agx 2006/11/02
    HttpUnitの紹介と簡単な使い方
  • タスクトレイにアイコンとバルーンを表示する(Java SWT編):CodeZine

    はじめに SWT(Standard Widget Toolkit)は、統合開発環境であるEclipseのGUIの根を担う重要なライブラリで、OS固有のルックアンドフィールを実現しながらもクロスプラットフォームで利用可能であるという優れた特徴を持ちます。 ここではSWTがサポートするようになった、タスクトレイアイコン(Eclipse Platform 3.0でサポート)、バルーンTips(先日リリースされたEclipse Platform 3.2でサポート)の表示方法を紹介します。対象読者 Javaプログラミングに興味のある方。必要な環境J2SE 5.0 Eclipse 3.2Visual Editor 1.2 Visual Editorについて EclipseプラグインであるVisual Editorはそのダウンロードページにも記載されているとおり、必要条件が指定されています。Visua

    agx
    agx 2006/08/12
    どうやってするのか気になってた。
  • プログラミングと開発者のためのCodeZine:Perlで作るモバイルサイトのコツ:第1回(Perl, モバイル, CPAN)

    http://www.cpan.org/。Perlのライブラリ・モジュールソフトウェアやその他のPerlで書かれたソフトウェアを集めた巨大なアーカイブで、世界中のサーバーにその内容がミラーされています。 対象読者 Perlを実行できる環境にて携帯サイトの構築を考えている方。 必要な環境 Apache 1.3系または2系 Perl 5.6以上 User-Agentより端末判別を行う 携帯サイト構築の主な処理として挙げられるのがUser-Agent解析によるキャリア、モデル、シリーズなどの分類処理かと思われます。iモード、EZweb、Vodafoneの3キャリアを判別するだけでも複数のパターンが存在しており、端末のモデルを取得するまでにはさまざまな条件分岐処理の記述が必要となります。それらをスマートに行う方法はHTTP::MobileAgentを使うことで、User-Agent

  • 動的PInvokeによる統合アーカイバ仕様DLLを使用した書庫の展開と作成:CodeZine

    また、記事内で「Unbel32.dll」(バージョン:0.45、著作権者:島田啓史)に触れた部分もありますが、これは対象外とさせていただきます。私が試した限りでは、正常な動作が確認できなかったためです。前提知識 この記事はプログラミング初心者を対象としていないため、基的な事柄については説明しません。不明な点はMSDNなどで調べてください。 またこの記事では、統合アーカイバDLLの使い方についてもある程度の説明はしていますが、各DLLを使用する前には必ずDLLと同梱されているドキュメントをお読みいただき、ライセンスや使い方などを確認してください。必要な環境 サンプルはMicrosoft Visual Studio 2005で作成されています。実行には、.NET Framework 2.0が必要です。また、すべてのサンプルを実行するためには、「Unlha32.dll」がインストールされている

    agx
    agx 2006/07/28
    DLLを利用した圧縮解凍ソフト
  • プログラミングと開発者のためのCodeZine:CGI::Applicationを用いたアプリケーションの実装(Perl, CGI, Application, フレームワーク)

    はじめに PerlCGIアプリケーションを作るフレームワークの1つが、CGI::Applicationです。CGI::ApplicationにはどのようなCGIアプリケーションにも必ず存在する定型処理があらかじめ用意されており、自ら記述するコードの量を減らすことができます。また、プラグインによって、足りない機能を補えます。稿では、CGI::Applicationとデータベースを用いた基礎的なCGIアプリケーションの実装方法を解説します。対象読者Perlで何らかのCGIアプリケーションを作成したことのある方。CGI、DBI、HTML::Templateモジュールを使用したことのある方。フレームワークを使用したことのない方。 動作環境 Perl 5.8以降を使ったCGIアプリケーションが正しく動作するWebサーバが必要です。また、以下の依存モジュールをCPANで導入しておいてください。

    agx
    agx 2006/07/23
    CGI::Applicationの使い方
  • タスクトレイにアイコンとバルーンを表示する:CodeZine

    はじめに Visual Studio 2005を用いることにより、Windows Formアプリケーション作成時に多様な機能を実現できるようになりました。そこで、Windows Formアプリケーションを作成するにあたり、タスクトレイにアイコンを表示させる方法と、そのアイコンからさらに、バルーンTipsを表示させる方法を見ていきましょう。どちらも知っておくと便利な機能ですので、ぜひ実際に試してみてください。対象読者 Windows Formアプリケーションに興味がある方。必要な環境Visual Studio 2005Visual C# 2005 Express Edition NotifyIconの利用 タスクトレイにアイコンを表示するためには、Windowsフォームに対応したツールボックスにある[NotifyIcon]を使用します。Notifyは「~に知らせる、報告する、通知する」という

  • CodeZine:Selenium 0.7利用手順書(前編)(Selenium, Webアプリケーション, テスト)

    はじめに 稿は、Webアプリケーション用のテストツールSelenium(セレニウム)を利用するための手順を解説するものです。これから2回に分けて、Seleniumの概要および、インストール手順、実際のテストケースの実行について解説していきます(後編はこちら。また、Tipsも公開しました)。 今回は、Seleniumの概要および、Seleniumのダウンロード、インストール手順について解説します。読者対象 プロジェクトの試験担当者を想定しています。対象フェーズ ドキュメントでは、プロジェクトにおいて作成したWebアプリケーションに対して、ブラウザを用いた試験(結合試験・総合試験)を実施するフェーズを対象としています。Webアプリケーションの製造、単体試験フェーズや、外部のアプリケーションに対する試験については対象外です。使用したソフトウェア・環境 Seleniumを動作させるにあたり、以

  • プログラミング・開発者・ソースコード CodeZine:C++におけるデータのソート方法の比較(C++, STL, ソート)

    はじめに この記事の目的は、「C++のSTLにはデータをソートする方法がいくつか存在するが、ソート処理を簡単に、かつ効率のよいコードはどれか…」を調べることです。 ここでは、自前のソートアルゴリズムを作って速度を比較したり、既存のソートアルゴリズムを最適化するといったことは目的としません。公開されているSTLをありのままの姿で計測します。コードの保守性や移植性、可読性を考慮して「いたって普通」な書き方が一番メリットが受けられると考えていますし、より多くの人に恩恵をもたらすと考えるからです。 自前のソートアルゴリズムの構築や、既存のアルゴリズムの最適化は、可読性や移植性を悪くするため、得られるメリット(高速処理による時間)よりもデメリットが大きいと考えているのです。よって、ここで検証するコードは「いたって普通」な書き方であり、可読性を重視した書き方になります。 自前でソートアルゴリズムの構築