タグ

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

  • Androidアプリ開発者なら押さえておきたい Javaセキュアコーディングの意味と効果

    連載では、セキュアコーディングスタンダード「CERT Oracle Secure Coding Standard for Java」の内容をベースに、Android特有の情報を交えつつ、堅牢なプログラムを開発するためのノウハウを具体的な事例とともに紹介していきます。第1回では、セキュアコーディングの意味と、その効果について解説します。 はじめに 昨年、C/C++に関してセキュアコーディングの連載があったことを御存じの方もいるかもしれません。今回始まる「Javaセキュアコーディング入門」は、Javaのプログラミングにおいて、入力値検査、引数の安全な渡し方、例外処理、整数演算といったソフトウェアの脆弱性に直結する問題に対して、コーディング上の注意点や脆弱性を作り込まない作法を解説するものです。具体的には、演算処理、文字列処理、ファイル操作などトピックごとに、よりセキュアなコーディングスタイル

    Androidアプリ開発者なら押さえておきたい Javaセキュアコーディングの意味と効果
  • C#たん ソフトウェア開発講座 制作委員会について

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

    C#たん ソフトウェア開発講座 制作委員会について
  • サイズと日付でローテートするLog4jのAppender作成

    はじめに Apache Logging Services Projectが提供するLog4jは、ファイルサイズによってログファイルのローテーションを行うRollingFileAppenderや日付でローテーションを行うDailyRollingFileAppenderを提供しています。 しかし、ファイルサイズと日付の両方でローテートするAppenderは提供されていないため、両方の機能を同時に利用することはできません。また、DailyRollingFileAppenderを利用する場合は、バックアップログファイル数を設定できないため、Disk Fullへの対策を検討する必要があります。 稿ではRollingFileAppenderとDailyRollingFileAppenderの機能を組み合わせたAppenderを作成する方法を紹介し、その利用方法について示します。 対象読者 Java

    サイズと日付でローテートするLog4jのAppender作成
  • 原文をスラスラ読みたい! 「MSDNライブラリによく出る英単語 100選」(1/2):CodeZine

    はじめに MSDNライブラリには、マイクロソフトの技術情報が大量に掲載されていますが、英語版に比べ、日語版の内容は中途半端なのが実状です。 たとえば、スレッドの優先順位を設定する「SetThreadPriority」関数の説明を見ると、英語版には「Windows Server 2008およびWindows Vistaでは、スタートアップやレジストリのRUNから自動実行されたプログラムに対するスレッドの優先順位指定が、システム開始から60秒程度効かない」との注意書きがありますが、日語版にはありません。 また、仮想ディスクの情報を設定する「SetVirtualDiskInformation」関数を検索すると、英語版には説明がありますが、日語版には項目自体がありません。 そこで記事では、MSDNライブラリの英語版がスラスラ読めるように、とはいきませんが、英単語で引っかかることが少なくなる

    原文をスラスラ読みたい! 「MSDNライブラリによく出る英単語 100選」(1/2):CodeZine
  • Jersey、AJAX、JSONを使ってRESTに挑戦しよう

    はじめに REST(Representational State Transfer)は、HTTPを介した包括的な方法でデータを扱うことを可能とする、強力で軽量なアーキテクチャです。しかし、強力であるとはいえ、独自のコードにRESTを取り入れるのは少々手間がかかるため、何らかの支援が必要になります。Javaでのコーディングの場合は、Jerseyが助けになります。Jerseyは、JavaコードをREST対応にするために必要な作業を簡素化するオープンソースプロジェクトです。 この記事では、RESTを簡単に紹介し、Jerseyの背景にある基的な動作概念を説明します。次に、Jerseyを使用して、実際のJavaコードをRESTfulにする方法を示します。最後に、ブラウザベースのJavaScript、AJAX、およびJSONを使用して、作成したRESTfulコードにアクセスする方法を示します。関連ト

    Jersey、AJAX、JSONを使ってRESTに挑戦しよう
  • Twitterのクローン作成で学ぶLiftによる開発の流れ

    はじめに 第4回を迎えた連載ですが、これまではLiftのView層やModel層の個々の要素の解説にとどまっていました。 今回は、View層とModelを組み合わせて、Twitterのクローンのようなアプリケーションを作成しながら、Liftを利用した開発の流れを説明することで、具体的なアプリケーションを構築するイメージをつかんでいただける内容になっています。 対象読者 Javaは知っているが、Scalaも学んでみたいと思っている方 ScalaでのWebアプリケーション開発に興味がある方 必要な環境 最低動作環境 J2SE 5.0 JDK 推奨環境 J2SE 6.0 JDK Apache Maven 2.10 Scala 2.7.5 アプリケーション作成の流れ アプリケーションを作成する流れは、次のとおりです。今回は、これまでのおさらいを兼ねて、1からアプリケーションを作成します。 mav

    Twitterのクローン作成で学ぶLiftによる開発の流れ
  • 要件定義の勘どころ

    はじめに 役に立つシステムを構築するための要件定義書とは、いったいどういうものなのでしょうか。 「何でこの機能が必要なんですか?」「理由は分からないけどXXX機能があるのでこの機能が必要なんです。これがないとつじつまが合わなくなるんです」もしくは「要件定義書にこの機能が載っているので必要なんです」など、要件定義書の役割を理解しないまま、システムの開発に着手していることなどがないでしょうか。 稿では、要件定義書の役割や重視すべき点、要件定義書に盛り込むべき情報について解説します。 何をやるのか、そしてなぜそうするのか 要件定義書はジグソーパズル? システム開発を受託した会社にコンサルテーションしたときのことです。機能とデータがある程度記述された要件定義書を受け取ったその会社では、要件定義書を読み解き、システムの全体像を掴むためにおのおのの機能の関係を整理し、その役割を把握しようとしていまし

    要件定義の勘どころ
  • iTextを利用してJavaからPDF形式の帳票を出力する

    はじめに 現在のWebシステムにおいて帳票の出力を行う場合、PDF形式が選択されることが一般的になっています。その理由としては、データサイズをコンパクトにすることができる、情報の改ざんを防止できる、などが挙げられます。一般ユーザにも普及していますので、システム開発時に顧客からPDF形式での情報の出力を求められることも多いのではないでしょうか。 この記事では、「iText」というライブラリを活用して、PDFの出力を行う方法を解説します。 対象読者 Javaプログラミングで開発を行った経験のある方、および、Javaプログラミングに興味をお持ちの方を対象としています。 必要な環境 このサンプルアプリケーションを動作させるには、以下のソフトウェアが最低限必要です。環境についての詳細や設定方法については、サーバサイド技術の学び舎 - WINGSにある「サーバサイド環境構築設定」を参照してください。

    iTextを利用してJavaからPDF形式の帳票を出力する
  • Visual Studio 2010 Beta 2を使ってみよう

    はじめに Microsoftは2009年10月19日、次期アプリケーション開発プラットフォーム「Visual Studio 2010」および次期アプリケーション・プラットフォーム「.NET Framework 4」のベータ2版の提供を開始し、11月には日語版の一般公開も開始されました。稿では、「Visual Studio 2010」ベータ2版(日語)の新機能について前・後編の2回に分けて取り上げます。前編ではインストールから主にIDEでの強化点について、後編ではSilverlightツールのVisual Studioでの使用方法やWindows 7での開発、ADO.NET Entity Frameworkについて取り上げる予定です。 また、稿の内容はベータ段階であるため、実際の製品提供時とは機能が異なる場合があります。なお、こちらの記事によると、2010年3月22日に公式な製品のラ

    Visual Studio 2010 Beta 2を使ってみよう
  • Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~前編

    Scalaとは Scalaは、2003年にJavac(コンパイラ)やJavaのGenericsの設計/開発貢献者であるMartin Odersky氏(スイス・ローザンヌ工科大学教授)によって、開発が開始された比較的新しいプログラミング言語です。Javaは実用言語として幅広いシステムで使用されてきましたが、下位互換性を保つという要請の中、言語としての機能強化がなかなか進まないといった限界も見えてきています。そのような現状もあることから、ScalaJavaの後継として実用的な言語を目指して開発されています。 Scala最大の特徴は、Javaの良さを最大限継承しつつ、スクリプト言語や関数型言語の良いところも吸収し、先進的な機能/文法を取り入れている点です。また、今後のハードウェアのマルチコア化を見据え、簡易に並列処理プログラミングを行うことができるライブラリが付属しています。 Scalaのメリ

    Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~前編
    KANIBUCHI
    KANIBUCHI 2009/11/08
    もう何年も同じことを言われているような気もするが・・・この言語
  • Java開発者のためのYAML入門:XMLやJSONとの違い

    はじめに Ruby、Groovy、Pythonといった動的言語や、Ruby on Railsなどの関連フレームワークの話題が花ざかりの昨今ですが、この記事をお読みくださっているJava開発者の中には、普段の仕事では純粋なJavaしか使わず、今後も当分はその状況が続くという方も多いことでしょう。しかしそれでも、目新しい知識や技術を身に付けたり、自らの開発に役立てたりということは可能なはずです。 この記事では、YAMLというファイル形式について紹介します。YAMLとは「YAML Ain't Markup Language」の略で、Ruby on Railsフレームワークの設定ファイルに採用されたことで広く知られるようになりました。ここでは、YAMLの概要と、XMLやJSONとの違いについて見ていき、その利点と弱点を探っていきます。 スペースによるインデントとJSON風表記 YAMLでは、スペー

    Java開発者のためのYAML入門:XMLやJSONとの違い
  • RailsとAIRで作成する画像のRevolver表示(前篇):CodeZine

    はじめに SAPのクライアント環境である「SAP NetWeaver Business Client」が「Adobe AIR」ベースになるということが公式発表されており、AIRに対する注目が世界的に高まっています。 そこで稿では、「AIRで作成できるアプリケーションは、どのようなことができるのか?」を紹介する一環として、図1に示すような画像表示を行えるアプリケーションとそのコーディングに関して説明します。 図1では、検索ボタンを押下した際にRails ActionWebServiceから野球選手の画像と説明を取得し、表示します。ウェブサービスを通じて取得した複数の画像を楕円形に並べて表示し、奥の画像は遠くにあるように見えるよう縮小して表示します。また、楕円の左右にある緑と紫の三角ボタンをクリックすることで楕円を回転させ、中央に表示される画像を切り替えることができます。画像が切り替わると、

  • Microsoft .NET ILアセンブラ入門:CodeZine

    はじめに 実践的な開発経験のある.NET Frameworkアプリケーションプログラマであれば、ILDASMを使ってプログラムを逆アセンブルしたコードを見たことがあるでしょう。.NET Frameworkアプリケーション開発は、Visual BasicやC#、C++/CLIなど、多くの言語を使って開発できますが、最終的に生成されるのは標準化されているCIL(Common Intermediate Language)と呼ばれる中間言語です。Microsoft Intermediate Language(MSIL)とも呼ばれ、単純にILと略されることもあります。中間言語を含む共通言語基盤CLI(Common Language Infrastructure)は、既にEcma-335やISO/IEC 23271、JIS X3016などで標準化されているため、Microsoftによって独占されている

    KANIBUCHI
    KANIBUCHI 2008/07/02
    サンプルが・・・
  • Ruby on Rails用 統合開発環境(IDE) 比較レポート:CodeZine

    1. はじめに1.1. 背景 近年、スクリプト言語「Ruby」と、Rubyで書かれたWebアプリケーションフレームワーク「Ruby on Rails(以下、RoR)」が注目を集めています。 Ruby/RoRの開発はテキストエディタとコマンドラインツールがあればすぐに始めることができます。一方、Ruby/RoRの普及に合わせてテキストエディタとしての機能の他にデバッガ、WebサーバやDBサーバとの連携、バージョン管理などの機能を備えた統合開発環境(以下、IDE)が複数登場しています。 Ruby/RoR対応のIDEはJavaなど他言語のIDEと比較すると機能面や安定性にやや物足りなさがありますが、各IDEは活発に開発が行われており、実際の開発をサポートするレベルまで着実にバージョンアップを重ねています。1.2. 稿の目的 Ruby/RoR対応のIDEを使用する場合、NetBeans、Ecli

  • Google、モバイルウェブクローラー情報を公開:CodeZine

    Googleは10日、日向けGoogleモバイルウェブクローラー(モバイルウェブサイトを定期的に巡回するプログラム)についての情報を公開した。これまでは非公開であったが、6月中旬から順次下記のIPアドレス帯域を利用する。 72.14.199.0/25(72.14.199.0~72.14.199.127) 209.85.238.0/25(209.85.238.0~209.85.238.127) また、GoogleモバイルウェブクローラーのUser Agent(UA)には「Googlebot-Mobile」という文字列が含まれたものが利用される。クローラーをUAで区別する必要がある場合は、この「Googlebot-Mobile」が含まれるかどうかを判定の基準にすることができる。 さらに、このGooglebot-Mobileの文字列を「robots.txt」内に適切に設定することによっ

  • CSVファイルフォーマットの解説:CodeZine

    はじめに CSVファイルは最も普及したデータ交換用フォーマットですが、さまざまな方言があります。 稿ではCSVファイルフォーマットの仕様とデータ交換時のポイントを説明します。 対象読者 CSVファイルを扱うDB管理者、開発者。 CSVとは? CSVとはComma-Separated Valuesの略で、カンマ区切りで並べた値という意味です。 CSVファイルの例として、一般的なアドレス帳データを示します。 "姓","名","生年月日","郵便番号","住所","電話番号" "山田","太郎","2001/1/1","100-0002","東京都千代田区皇居外苑","03-1234-5678" "山田","次郎","2001/1/2","251-0036","神奈川県藤沢市江の島1丁目","03-9999-9999" カンマで区切られたデータの横一列を"行"(英:Row)

  • Jakarta Velocityでテンプレートを変換しメールを送信する:CodeZine

    はじめに アマゾンや楽天を代表とするWebのショッピングサイトでは、商品購入を受け付けた際、購入者に対し自動でメールを送信するのが一般的です。その自動メールの文面は、たいていの場合、会員情報、注文番号、商品番号などが記載されています。 このように全体のテキストフォーマットが決まっていて、その一部を動的に変更してメールを送信したいということがよくあります。この記事では「Velocity」というテンプレートエンジンを活用して、その問題を解決する方法を解説します。 対象読者 Javaプログラミングを行ったことがある方を対象とします。 必要な環境 サンプルは以下の環境で動作確認を行っています。 J2SE1.4,J2SE5.0 Velocity 1.4 JavaMail 1.3.2 Java Activation Framework 1.0.2 Velocityとは Velo

  • Adobe AIR 1.0正式版リリース!:CodeZine

    Adobe AIRそのものは実行環境であり、別途AIRで動作するソフトウェアをインストールする必要がある。Adobe AIR Marketplaceでは多くのアプリケーションが公開されており、それぞれダウンロードすることができる。 なお、AIR 1.0正式版公開とともに、Flex 3 SDK正式版、Flex Builder 3 Professional正式版もそれぞれ公開されている。 【関連リンク】 ・Adobe - Adobe AIR(公式サイト) ・Adobe - Adobe AIR Download Center(ダウンロードサイト) ・Adobe - Adobe AIR Marketplace beta(アプリケーション紹介ページ) ・Adobe - Download Adobe Flex 3(Flex 3ダウンロードページ) ・CodeZine:「Adobe AIR正式ロゴ」発

  • JavaとRuby:主要機能の比較:CodeZine

    はじめに Rubyはインタプリタによって解釈されるスクリプト言語で、Javaはコンパイラによってコンパイルされるプログラミング言語です。Rubyは、オブジェクト指向言語であり厳密な型指定を行うという点ではJavaに似ています。しかし、Rubyの型指定は動的であるのに対し、Javaの型指定は静的です。Rubyでは型宣言は使用されず、Javaでは型宣言は必須です。JavaRubyのどちらにも継承があり、"パブリック"、"プライベート"、"プロテクト"のメソッドがあります。RubyJavaより単純でJavaより高速です。Rubyはさまざまな点でJavaと異なっています。稿では、RubyJavaの主要機能を比較します。インタプリタ方式とコンパイラ方式 Rubyはインタプリタ方式のスクリプト言語なので、コンパイルしてバイトコードを生成することなく、直接実行できます。たとえば、Rubyファイル

  • 5分で使えるLoggingフレームワーク - POCO::Foundation -:CodeZine

    はじめに 記事ではPOCO(C++ Portable Componentsの略)というオープンソースのC++用クラスライブラリを紹介します。 POCOに関する概要とその導入方法については、別稿『POCO::Netライブラリによる組み込みWebサーバの実装』を参照してください。POCOはコンポーネントとして6つのライブラリに分かれていますので、今回からは、ライブラリ単位で順番に紹介したいと思います。まずは、POCO::Foundationライブラリをとりあげます。名前の通り基機能を集めたライブラリで、実際のアプリケーション開発にそのままでも使えるクラスが揃っています。対象読者 オブジェクト指向を理解し、C++のクラスライブラリを活用できる方を対象としています。必要な環境 POCOは、多様なプラットフォームで動作可能で、WindowsMac OS X、Linux、HP-UX、Tru64、