サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
www.02.246.ne.jp/~torutk
プロジェクトIDは、「Railsを知らない人のためのプラグイン開発ガイド」にある通りの名前と型を使っています。固定文字列は、最大255文字もあれば十分なのでStringにしました。採番の最大数は整数で、題名も最大255文字のStringとしました。 モデルスケルトン生成 上述のデータ構成に従って採番系列モデルのスケルトンを作成します。 redmine-2.3.0$ ruby script/rails generate redmine_plugin_model redmine_numbering \ numbering_prefix project_id:integer fixed:string assigned:integer subject:string create plugins/redmine_numbering/app/models/numbering_prefix.rb cre
[ C++で開発 ] 契約による設計(Design by Contract) 契約による設計を行うと、クラス・メンバ関数の仕様が明確化し、また、クラスのインタフェースに絡むバグの検出が容易になります。しかし、慣れるまでは考え方が難しく、言語仕様ではない、よい例題もなかなか見当たらないので、広まってはいません。 このページは、契約による設計を理解する試みと例題の収集・整理を行います 契約による設計とは 「契約による設計」の概念は、書籍「オブジェクト指向入門 第2版 原則・コンセプト編」(バートランド・メイヤー著)の11章にて解説されています。信頼性の高いソフトウェアを構築するための考え方・設計方法です。以下は、同書籍の勉強ノートです。 「オブジェクト指向入門 第2版 11章 契約による設計」 の勉強ノート プログラムが正しいか間違っているかは、プログラム自体を見ても判断できません。プログラム
サンプルプログラムの作成 JavaFXのドキュメント「Using JavaFX UI Controls(英語)」の13章 Table View にあるチュートリアルを参考に、少し応用を加えたものを作成します。 NetBeansで新規プロジェクトを作成 NetBeansの[ファイル]メニュー>[新規プロジェクト]を選択し、カテゴリ[JavaFX]から[JavaFX FXMLアプリケーション]を選択します。 プロジェクト名:TableSample FXML名:TableSample とし、あとはデフォルトのままで作成します。生成されたプロジェクトツリーを次に示します。 シーンビルダーで画面レイアウト作成(TableSample.fxml) プロジェクトツリー上でTableSample.fxml をダブルクリックすると、シーンビルダーが起動し、雛形の画面が表示されます。 左側ペインの階層を見ると
Gitのリポジトリを、HTTP経由で読み書きするサーバーを構築します。 本記事では、CentOS 6の上でHTTPサーバーとGitに含まれるCGIコマンド git-http-backend を用いたGit HTTPサーバー環境の構築例を紹介します。 なお、WebDAVを使ってHTTP越しにリポジトリを変更する方法もありますが、ユーザー認証/性能の点で使用を見合わせました。 CentOS 6のgitについては、OS標準搭載の1.7.1の問題と回避策、新しいバージョンのgitを入れる方法の1つを紹介しています。 Gitリポジトリの認証については、HTTPの認証を利用する方法に加えて、チケット管理ツールRedmineのユーザー認証と統合する設定(必要なモジュール追加)を紹介します。 環境構築 Git 1.7.1(CentOS 6標準搭載版) CentOS標準のgitをインストールします。なお、開
JavaからC/C++言語を呼び出す、またはその逆の方法として、JNI(Java Native Interface)というAPIが提供されています。本記事では、JavaからC/C++言語をネイティブメソッドとして呼び出すコードとそのコンパイル・リンク・実行手順、およびC/C++言語からJavaを呼び出すコードとそのコンパイル・リンク・実行手順を記します。 JNIに必要なもの JNIは、Javaで記述する部分とC/C++で記述する部分があります。Java側はJDKがあればよいのですが、C/C++側はC/C++コンパイラが別途必要となります。 Windows環境で必要なもの Windows環境のJavaVMはネイティブメソッドをDLL(Dynamic Link Library)という形で用意されていないといけないので、DLLを構築できるC/C++コンパイラが必要となります。 Windows環境
JDK1.4から導入されたロギングAPIを使って、クールな開発を行いましょう。ロギングAPIには、既にlog4jやJLogといった有名どころがあります。log4jは、元IBM Alphaworksで現Apacheプロジェクトの一つとして公開されています。また、log4j創始者がlog4jと決別し新たにlogback(+slf4j)を開発し公開しています。どちらも高機能で優れたロギングAPIなのですが、これから覚えるならば、まずはJDK標準APIであるJava Loggin APIがいいでしょう。Java Logging APIは機能面では他のロギングAPIより劣っている点もありますが、ロギングのようにプログラミングを助けるヘルパー機構は高機能でなくてもシンプルで簡単に使えるのが一番。標準APIならクラスパス設定不要です。なんたってプログラマーには他に覚えなければいけないことが山のようにある
[ Redmine index ] Redmine運用メモ Redmineを、単なるバグ管理システムとしてではなく、開発作業(いわゆるチケット駆動開発)に使った経験から思うところをメモに残すページ。 前提 プロジェクト全体ではなく、システムの一部機能を開発する10人弱のチームでRedmineを使用 プロジェクトの開発工程はウォーターフォールを使用 プロジェクト管理は、Microsoft ProjectをツールとしWBSおよびガントチャートで実施 各チームは定期的にWBSおよびガントチャートで進捗報告 チケット管理に関する運用 チーム管理者(作業場所には常駐してない)がチーム各員から進捗状況を逐一ヒアリングすることなく、作業状況をRedmineを見れば調べられる仕組みを作りたい 背景 プロジェクト全体で管理するWBS/ガントチャートは、基本設計、詳細設計、という工程毎に機能が列挙される観点の
現在、執筆途中です。 CentOS 6.2にOpenLDAP環境を構築する Java EEなどはLDAPサーバーの使用を想定しており、LDAPの構築はシステム上に必要となっています。しかし、構築については以外と情報が少なく苦労します。 LDAPとしては、ディストリビューション標準搭載のOpenLDAPや、Apache Directoryがありますが、ここではOpenLDAPを使った構築を取り上げます。 OpenLDAPは、バージョンによって設定の方法が変わっています。OpenLDAP 2.2までは、設定ファイルslapd.confに定義していましたが、2.3以降で非推奨となり、変わってディレクトリサーバーのデータとして設定を格納するようになりました。そこで、本記事ではslapd.confを使わない設定を使用します。 インストール ディストリビューション標準搭載なので、インストール時に選択さ
[ Topページへ戻る ] Redmineに関するページ 機能概要 Redmineは、不具合管理だけでなく、課題管理、開発作業管理をチケットベースで行う汎用プロジェクト開発支援ツールです。 中心となるチケット管理機能のほか、バージョン管理ツールのリポジトリ参照機能、Wiki機能、ファイル管理機能、ガントチャート機能、掲示板(フォーラム)機能、ニュース機能があります。また、プラグイン機構によって機能を増やすことができます。 セットアップ Redmineを動かす計算機スペック Linux CentOS 5.xへのRedmineインストール CentOS 6へのRedmineインストール SELinuxを有効にした環境でRedmine/Passengerを動かす Windows WindowsへのRedmineインストール(書きかけ) 運用 Redmine運用メモ Redmine環境改善メモ 類
GitはLinux OS上でC言語とシェルスクリプトで記述されており、Windows環境ではMSYSというPOSIX APIをWindows API上で模擬するラッパーを介して移植したmsysgit(Git for Windows)を使います。そのため、Linux上でGitを使うより不安定な部分があります。 また、msysgit以外にも、Cygwin上でgit、Javaで作成されたJGitなどがあります。 msysgitはコマンドライン(MSYSに含まれるbash、またはコマンドプロンプト)のほかにGUI(Git GUI)も持っていますが、Tortoiseシリーズに慣れた人向けにTortoiseGitや、より高度な(そしてちょっと複雑な)GitExtensionsというmsysgit上で動くGUIツールが存在します。 Gitでの日本語の扱いは、以前はまともに対応されていない(使いたければ英
[ Redmine index ] Windows 7 上で Redmineを動かすメモ ※ 当面書きかけの状況です。 インストールにあたって Windowsで動かすことの確認 Windows環境で、Ruby、Apache、そしてデータベース(PostgreSQLかMySQLか)を揃えるのはLinuxに比べて手間がかかります。 Windows上でのRuby動作はUnix系に比べ課題があります。また、Railsのサーバで動作しないものがある(Passernger, Thinなどはダメな模様、Mongrelは動く模様)など、制約があります。 ひょっとすると、JRubyでTomcatあたりを使うのがWindowsでは安定するのかもしれません。 Windows 7は使用許諾書上にデバイスの接続条件(「最大20台の他のデバイス」)について記載があり、Redmineを運用する場合にこの条件に抵触する可
[ index ] Windows OS上へJDK 7をインストール 2012-12-12 Java SE 7 Update10がリリースされました。 Windows 7 (64bit版)に、Java SE Development Kit 7 をインストールする手順です。 2012-09-06 JavaFXデモ、ドキュメントのインストールを追記 2012-08-24 フォント設定を追記 2012-08-21 Update 6に合わせて修正 はじめに Java開発環境であるJava SE Development Kit(通称JDK)のインストールには、いくつか注意点があります。 まず、JDK 7では、以前のバージョンとはインストールの構成が変わり、デモ・サンプルが別ファイルとして提供されるようになり、また、JavaFXのインストーラが実行されるようになりました。 次に、Windows Vis
GeoToolsを使ったJava GISプログラミング JavaでGISプログラミング 〜 GeoToolsを使って Contents :: GeoToolsの概要 » JavaでGISプログラミング 〜 GeoToolsを使って¶ Contents: GeoToolsの概要 対応するデータ形式 OGC標準規格 バージョンについて GeoToolsのインストール バイナリの入手 展開 ライブラリ設定 最初のGeoToolsプログラム 地図データ(シェープ形式)の入手 初めてのGeoToolsプログラム Indices and tables¶ Index Module Index Search Page Contents :: GeoToolsの概要 » © Copyright 2012, TAKAHASHI,Toru. Created using Sphinx 1.1.3.
[ Redmine index ] Redmine/PassengerをSELinux下で動かす セキュリティが必要な環境では、SELinuxを有効にして運用することが多くなっています。Redmineを少人数のグループでローカルに使っている間はそれほど必要性はないですが、業務システムとして運用する場合やインターネット上に公開する場合など、不特定多数にさらされる場合は、SELinuxを有効にしているサーバーでの運用を求められることがあります。 現在、RedmineはApache+Passengerで動かすことが一般的ですが、PassengerはSELinuxとどうも相性が悪く、SELinux有効下で動かすのは簡単ではありません(記載日:2012/05/26)。PassengerがSELinux的には行儀が悪く、単純な設定では解決できそうにありません。 本来は、Passenger開発側で、実装
なお、HTTPサーバー連携にUnicorn、HTTPサーバーにNginxを使う設定を追記しました。 構成要素の選択について補足メモ Ruby CentOS 6において、Rubyの主な選択肢は次の3つです。 CentOS 6標準搭載のRuby 1.8.7を使用する Ruby Enterprise Edition 1.8.7 をダウンロードしビルドして使用する Ruby 1.9.3をダウンロードしビルドして使用する Redmine 2が土台としているRuby on Rails 3.2は、Ruby 1.8.7で動作保証しているので、CentOS 6標準搭載品のRubyでもRedmineは動きます。 しかし、Ruby 1.8.7は製品サポート期間が終了間際であること(Rubyのアナウンスページ)、メモリ使用量などの性能が1.9.3あるいはRuby Enterprise Edition 1.8.7に
[ Redmine index ] RedmineとTracとの比較 序 目的 主にソフトウェア・プロダクトに対する障害管理(Bug Tracking)、課題管理(Issue Tracking)、および開発管理(Project Support)に使用するツールとして、RedmineとTracが候補に挙がる。しかし、このどちらを選択するかとなると、なかなか判断基準がないのが現状である。そこで、選択にあたっての判断材料を提供するために、双方の機能及び性能を比較する。 比較対象 2012年4月~5月執筆のため、対象バージョンはTracが0.12.3ja、Redmineが1.4.1である。 ユースケース もともとBTS(Bug Tracking System)と呼ばれるバグ(障害)管理ツールから出発しているが、チケット管理機能はかなり汎用的な機能であることから、障害だけではなく、問題/課題管理(I
Javaでは、java.netパッケージによってネットワークプログラミングAPIが提供されています。Javaを実行するホスト環境でIPv6がサポートされていれば、java.netパッケージは、IPv4、IPv6がほとんど透過となっています。 java.net.InetAddressによるIPv6アドレスの指定 Javaでは、IPアドレスの指定はjava.net.InetAddressクラスを使用して行います。 (1)IPv6アドレス文字列による指定 InetAddress address = InetAddress.getByName("2001:db8:3001:1"); (2)リンクローカルアドレスのスコープ指定(スコープ識別子の指定) InetAddress address = InetAddress.getByName("ff02::1%2"); (3)リンクローカルアドレスのスコ
News 2012/03/01 NetBeans 7.1.1がリリースされました。 7.1をインストールしていれば、[ヘルプ]>[更新の有無を確認]でOKです。 入手物 NetBeansのホームページ(日本語はこちら)から、[Download FREE]アイコンをクリックします。日本語NetBeansホームページ(2012/01/28現在)は次の画面になっています。 次のページでは、IDEの言語欄で「日本語」を選択し、プラットフォーム欄で、インストールしたいOS(Windows)を選択します。使いたい構成を選んで[ダウンロード]アイコンをクリックします。今回は、Java SEを選択します。 Java SE : Java SE開発機能 ダウンロードが開始されます。 インストール手順 インストール手順は、公式インストール手順のページ(日本語)に記載されています。 NetBeans IDE 7.
[ C++で開発 ] プリプロセッサについて 条件コンパイル シンボルの定義を調べる #ifdef と #if defined の違い 例えばシンボルFOOが定義されているかどうかを調べる場合に、 #ifdef FOO と #if defined (FOO) の2種類の条件コンパイル文の記述方法があります。この違いについてまとめると、 #if defined (FOO) // #elif defined (BAR) // #else // #endif とelse節で別なシンボルが定義されているかどうかを調べる記述は書けますが、 #ifdef FOO // #elifdef BAR // #else // #endif とは書けません。また、 #if defined(FOO) || defined(BAR) //#endif は書けますが #ifdef FOO || BAR // #end
[ Topページへ戻る ] [ Windowsメモへ戻る ] Windows上でWixおよびWixEditを使ったインストーラ作成 はじめに ツールWiX/WixEditについて 入手とインストール 参考情報 最初のインストーラ作成 - HelloWix 作業準備 設定情報XMLファイル作成 MSI形式ファイルの生成 インストーラの実行 アンインストールの実行 インストール先を変更可能とするUIを付ける WixEditで、UIの追加設定 MSI形式ファイルの生成 インストーラの実行 使用許諾の内容を変更する ライセンス文面の準備(RTF形式) WixEditでライセンス文面の設定記述を追加 MSI形式ファイルの生成 インストーラの実行 64bitソフトウェアのインストーラ作成 64bitコンポーネントを明示的に指定 簡易に指定 複数のファイル(サブディレクトリ)を扱う - WixEdit編
FHSとディレクトリについて Linuxのディレクトリ階層は、ディストリビューションによって異なります。そうした中で、ディレクトリ階層を標準化しようとする動きが現れ、Filesystem Hierarchy Standard(FHS)が作られました。しかし、実際のLinuxディストリビューションはこれに従ってはいないものが多いのが現状です。 なお、Red Hat社のLinuxディストリビューションである旧Red Hat LinuxやRed Hat Enterprise Linux(RHEL)は、このFHSに従っています。Red HatクローンであるCent OSも同様FHSに従ったディレクトリ階層を取っています。 FHS Ver.2.3より FHS Ver.2.3から言及しているディレクトリを抜き出すと以下になります。 ルートファイルシステム /bin /boot /dev /etc /h
[ C++で開発 ] OpenCL開発環境 Windows 7/64bit、Visual C++ 2010 Express 今回環境構築に必要としたものは以下です。 Visual C++ 2010 Express Windows SDK for Windows 7 and .NET Framework 4 ATI Stream SDK v.2.2 コンパイラには、無償のVisual C++ 2010 Expressを使用しました。ただし、Windows 7/64bit版では、グラフィックスドライバが64bit版となるので、コンパイラも64bit対応が必要ですが、Expressには64bitコンパイラがないので、別途Windows SDK for Windows 7 and .NET Framework 4をインストールします。 インストール Visual C++ 2010のインストール 特
[ Javaの探求インデックス ] 1章 HelloWorldで理解するJavaの仕組み プログラミング言語を学ぶ最初の一歩は、文字列"Hello World"を表示するごくごく小さなプログラムを実際に自分で書いて動かすことから踏み出すことが、言わば慣習となっています。 そこには、プログラムを作り動かすまでの環境を整備し、プログラミング言語/ツールの手順に沿って操作する、プログラマーとしての基本エッセンスが含まれているのです。 この章では、環境を整え、手順に沿って操作するとともに、どのようにJavaプログラムが動いているのかを簡単に説明しながら、実際にJavaプログラムのHelloWorldを動かしていきます。Javaのクラスファイルの内容も解析していきます。 1.1 環境を整える Javaは1995年の登場から十数年を経過し、現代のアプリケーション開発言語の主流の一つになるまでに成長して
[ C++で開発 ] OpenCLとC++ 主にGraphics Processing Unit(GPU)を演算処理に用い、GPUの持つ大量の演算器*1を活用して並列実行することで性能を向上させるフレームワークの1つがOpenCLです。 *1) 2010年代のATI RADEON5800系では、32bit浮動小数点演算器を1600個保有しています。 OpenCL概要 OpenCLは、演算処理プロセッサで実行するコードを記述するOpenCL C言語(C言語の並列拡張)と、アプリケーションプログラムから演算処理を依頼し結果を受け取る制御用のOpenCLランタイムAPIから構成されます。 OpenCL開発環境 GPUを使用するOpenCL開発環境 使用するGPUの製造元が提供する開発キットを入手し、C/C++コンパイラと組み合わせて構築します。 OpenCL開発環境ーAMD(ATI) ・Wind
*1) このビットが0の場合、将来定義(仕様外)となります。 グローバルIDは、疑似ランダムなアルゴリズムを使用して割り当てることにより極力一意性を保つ仕様となっていますが、絶対に一意であることは保障されません(とはいえ、RFC 4193で推奨される方法で割り当てれば衝突の可能性は極めて低いです)。 サブネットIDは、任意に割り付けることができるので、構築するサイトのネットワーク構成に応じてIDを振ります。 RFC 4193には、グローバルIDを生成する疑似アルゴリズムとして、NTPタイムスタンプとEUI-64識別子を結合し、SHA-1でハッシュ値を生成し、その下位4バイトを使用する方法を掲示しています。EUI-64 識別子はMACアドレスから導出することができます。 NTPタイムスタンプは、1900年1月1日0時0分0秒を基準点とした64bitの固定小数点形式で、LSBが2-32[秒]と
認証・承認を行うプログラム ユーザー認証や権限の制御を行うために標準APIとしてJAAS(Java Authentication and Authorization Service) APIがあります。 JAASには、ユーザーが正当であることを確認する認証と、ユーザーの権限に応じて要求を制御する承認の2つの要素があります。 認証 認証で使用する主要APIは以下です。 javax.security.auth.login.LoginContext javax.security.auth.spi.LoginModule javax.security.auth.callback.CallbackHandler javax.security.atth.callback.Callback 認証のフローは大まかには以下です。 アプリケーションがLoginContextクラスをインスタンス化する Logi
前提条件 コーディング規約をどこまで細かく規定するか、については、常に論争となる点です。そこで、まず前提条件を明確化し、不要な論争を避け、有意義な議論ができる土台を定義します。 前提とするソフトウェア開発組織 理想的なソフトウェア開発組織は、同じ開発文化を共有する開発者チームが継続していろいろな仕事をこなす形態です。 しかし、ソフトウェア開発組織を継続して保有(常備)するためには、定常的にコストがかかります。そのため、中にはソフトウェア開発組織の質よりも常備コスト削減を優先し、開発案件が発生したときに臨時でソフトウェア開発組織を編成し、案件終了時にソフトウェア開発組織を解散する、というやり方を取る会社があります。 継続するソフトウェア開発組織であれば、ソフトウェア開発能力はメンバー間の暗黙知による共有により十分期待できるのですが、臨時編成するソフトウェア開発組織では、能力はまちまち、暗黙知
JDK1.2から標準搭載されたGUIツールキット(クラス・ライブラリ)。従来のAWTに比べて機能が大幅に増えました。AWT1.1から取り入れられたライトウェイトコンポーネントがほぼ全面的に使われている他、ダブルバッファリング、実行時に変更可能なLook&Feelなどが特徴です。 はじめに 実行環境 JDK1.2以降では標準APIとなっています。 Swingの性能 メーリングリスト、雑誌記事等では「Swingは遅い」とよく語られているが、本当のところどうなのだろうか? "私のFreeBSD環境では、・・・200MHz Pentium MMXではさほどストレスは感じませんでした。また、Windows95環境のNetscape上でも動作をさせてますが、こちらはPentium MMX200MHz+64MBという環境でも実用的と感じる速度では動作しませんでした。" (引用:技術評論社JAVA PRE
[ Topページへ戻る ] Bazaarでバージョン管理 概要 「分散リポジトリ方式」のバージョン管理ツール御三家の1つがこのBazaarです。GitやMercurialに比べてやや知名度が低いものの、日本語ファイル名の対応には一日の長があり、Windows/Unix混在環境で日本語ファイル名を扱う環境であれば、現時点ではBazaarに軍配が上がります。 入手先 ホームページ http://bazaar.canonical.com/ ドキュメント(日本語) 最新版の日本語訳ドキュメントが以下URLにあります。 http://doc.bazaar.canonical.com/latest/ja/ ドキュメントのダウンロードの中に、日本語訳ドキュメントもあるので、ローカルで参照するときはそちらを入手するとよいでしょう。 http://doc.bazaar.canonical.com/bzr.d
次のページ
このページを最初にブックマークしてみませんか?
『Object-Oriented & Java maneuver 別室』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く