サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
simply-k.hatenadiary.org
Javaのリソースデータに関連する事柄を、何回かに分けてメモします。この記事は個人的なメモです。 今回は、リソースデータの取得に使うメソッドの使用法について書きます。 前回: - 次回: id:simply-k:20100719:1279499319 目次: id:simply-k:20100728:1280299110 リソースデータの取得によく使うクラスとメソッド クラス メソッド 戻り値 Class getResource(String name) URL Class getResourceAsStream(String name) InputStream ClassLoader getResource(String name) URL ClassLoader getResourceAsStream(String name) InputStream リソース名の指定方法 (Class
Windowsのcmd.exeでパイプを使う場合の注意点について書きます。*1 cmd.exeのパイプ 以下の2つのコマンド実行は、基本的に同じ動作となります。(前者はパイプ、後者は一時ファイルを使用) コマンドA | コマンドB コマンドA > tmp & コマンドB < tmp しかし、扱うデータによっては、2つの間で結果に違いが出る場合があります。*2 テスト1 初めに、結果に違いが出ないケースをテストします。次の3つのコマンド実行を見てください。 C:\>echo %OS% Windows_NT C:\>echo %OS% | more Windows_NT C:\>echo %OS% > tmp & more < tmp Windows_NT 1番目 環境変数OSの値を、単純に表示します。 2番目 環境変数OSの値を、パイプを経由してmoreで表示します。 3番目 環境変数OSの
前回からの続きで、IE(Information Engineering)形式のER図について説明します。カーディナリティとオプショナリティの記号について説明します。 前回: id:simply-k:20100706:1278387964 次回: id:simply-k:20100707:1278514635 目次: id:simply-k:20100716:1279237959 カーディナリティとオプショナリティの記号 カーディナリティとオプショナリティに対して、それぞれ2種類の記号が存在します。組み合わせは、2×2で4種類となります。次の図は、カーディナリティとオプショナリティの組み合わせの一覧を描いたものです。説明上の都合により、エンティティE1側の記号は省略しています。また、その下の表は、図に対する説明をまとめたものです。 組合せ オプショナリティ カーディナリティ E1のインスタン
Windows版Graphvizのインストール手順を説明します。対象バージョンは、2.26.3(最新の安定版)です。 準備 次のURLから、インストーラ(graphviz-2.26.3.msi)をダウンロードする。 http://www.graphviz.org/Download_windows.php インストール インストーラを起動する。セットアップ・ウィザードが表示されたら、「Next」をクリックする。 フォルダとユーザを選択し、「Next」をクリックする。 「Next」をクリックすると、インストールが開始される。 インストールが完了するのを待つ。*1 「Close」をクリックし、インストール作業を終了する。 なお、システム環境変数「Path」には、Graphvizの「bin」ディレクトリが追加されます。 アンインストール 次のような方法があります。 「プログラムの追加と削除*2」か
バッチファイルでの無限ループの作り方です。*1 GOTO文を使う方法 GOTO文を使うと、無限ループを作ることができます。 サンプル (Ctrl+Cで終了してください。) @echo off :LOOP echo loop goto :LOOP exit /b 0 FOR文を使う方法 FOR文を利用して無限ループを作ることもできます。ただし、この方法には、ループを抜け出せないという問題点があります。(後述) サンプル (Ctrl+Cで終了してください。) @echo off for /l %%I in (0, 0, 0) do ( echo loop ) exit /b 0 この方法では、goto文や「exit /b」を使ってループから抜け出すことができないようです。「exit」でバッチを終了することは可能なようです。 また、「(0, 0, 0)」の部分を「(0)」や「()」にしても同じ動
Windowsのcmd.exeでは、setコマンドに「/a」オプションを指定することで数式を評価できます。この機能がどのようなものか、確認してみました。*1 はじめに 概要 cmd.exeでは、「set /a 式」とすることにより、数式を評価できます。*2 また、評価結果を環境変数にセットすることも可能です。詳細は、「set /?」を参照してください。 演算子について 式の中では、C言語ライクな演算子を使って、四則演算やビット演算を行うことができます。また、複合代入演算子も使えます。比較演算子(==, !=, >, >=, <, <=)、インクリメント(++)、デクリメント(--)、論理AND(&&)、論理OR(||)は使えないようです。 注意点 いくつか注意点を書いておきます。 「set /a」は、コマンドラインとコマンドスクリプト(バッチファイル)で一部の挙動が異なる。*3 コマンドラ
Javaのinstanceof演算子に関するメモです。 instanceofの基本 instanceof演算子の演算結果は、左辺のオブジェクトが以下の条件のどれかを満たす場合にtrueとなります。 右辺に指定したクラスのオブジェクトである。 右辺に指定したクラスのサブクラスのオブジェクトである。 右辺に指定したインターフェースの実装クラスである。 右辺に指定したインターフェースの実装クラスのサブクラスである。 instanceof演算子の演算結果がtrueになった場合、左辺のオブジェクトを右辺のクラスにキャストし、メンバにアクセスすることが可能です。 テスト用のコード import java.io.Serializable; public class InstanceOfTest1 { public static void main(String[] args) { /* * Number
「リダイレクトとパイプを図示してみた」の補足です。気づいたことを書き足しただけなので短いです。 (1)id:simply-k:20100731:1280607841 (2)id:simply-k:20100801:1280617927 (3)id:simply-k:20100802:1280617927 リダイレクトとパイプの比較 リダイレクトとパイプを、0、1、2といった番号*1の指定という観点から比較してみます。 リダイレクト 0、1、2などの番号を直接指定する。 (「0<」、「1>」、「2>」など) パイプ パイプ前のコマンドの標準出力と、パイプ後のコマンドの標準入力を結合する。正確には、パイプ前のコマンドの1番にデフォルトで割当てられられた出力ストリームと、パイプ後のコマンドの0番にデフォルトで割り当てられた入力ストリームが、結合されたかのように振る舞う。0、1、2などの番号は、ス
前々回、前回の続きです。今回は、様々なリダイレクトやパイプを組み合わせた複雑なケースを説明します。 前回: id:simply-k:20100801:1280617927 補足: id:simply-k:20100803:1280796958 (11) コマンドA 2>&1 | コマンドB リダイレクトとパイプを組み合わせたケースです。2段階に分割して考えます。 (11-1) 「コマンドA 2>&1」、「コマンドB」 パイプの前後のコマンドを単独実行する場合です。「コマンドA 2>&1」では、コマンドAの標準エラー出力を、標準出力にリダイレクトします。このため、コマンドAの標準出力のデータと標準エラー出力のデータは、まとめて標準出力(stdout-a)に出力されます。「コマンドB」は、リダイレクトの無い、通常のコマンド実行です。 (11-2) コマンドA 2>&1 | コマンドB 「コマン
バッチファイルのERRORLEVELについてのメモです。2回の記事に分けます。*1 (前回: id:simply-k:20100813:1281675737) ヘルプ ERRORLEVELについてのヘルプは、以下のコマンドで参照できます。 if /? (最初の方と最後の方の2カ所) exit /? set /? (最後の方) ERRORLEVELの設定と参照 ERRORLEVELの設定 ERRORLEVELは、以下のような場合に設定されます。 実行したコマンドが終了コードを設定した場合 存在しないコマンドを呼出そうとした場合 callしたバッチスクリプトが「exit /b 終了コード」の形式で終了した場合 ERRORLEVELの参照 ERRORLEVELの値は、通常の環境変数と同じように、%ERRORLEVEL%」または!ERRORLEVEL!(遅延展開の場合)で参照します。ただし、ユーザ
ER図生成ツールの作成時にER図の書き方を調べたので、わかった事をまとめます。記事数は10くらいになる予定です。*1 あくまで、ER図の表記方法についての説明であり、データモデリングやDB設計に関する説明は含みません。そのような情報が欲しい方は、別のサイトや書籍を参考にしてください。また、ER図の表記法は、IE形式とIDEF1X形式をメインにします。 なお、このページは私の個人的な理解に基づいて記述していますので、細かい部分で間違いがあるかもしれません。 前回: - 次回: id:simply-k:20100704:1278214995 目次: id:simply-k:20100716:1279237959 ERモデル ERモデル(Entity Relationship Model)*2は、概念データモデルの一種です。1976年にピーター・チェン(Peter Chen)博士によって提案され
このブログのスタイルシートに、印刷用の設定を追加しました。基本的に、自分用のメモです。私はスタイルシートの専門家ではありませんので、おかしなところがあるかもしれません。参考にする方は、その点に注意してください。 スタイルシートに以下の内容を追加しました。なお、確認に使ったブラウザは、「Firefox 3.6.6」と「Internet Explorer 8.0」です。 @media print { /* * ヘッダやサイドバーなど、印刷に不要なものを非表示にする。 * ヘッダタイプは「細いヘッダ」と「太いヘッダ」の両方に対応しておく。 */ #simple-header, #banner, h1, h2, .calendar, .sectionheader, .sectionfooter, .comment, .refererlist, .sidebar { display: none; }
「修正BSDライセンスの条文を読む」の目次です。 No. 記事 内容 1 id:simply-k:20100809:1281417910 概要、テンプレート、著作権表記 2 id:simply-k:20100810:1281437021 箇条書き 3 id:simply-k:20100811:1281507488 免責条項(前半) 4 id:simply-k:20100814:1281798528 免責条項(後半) 5 id:simply-k:20100815:1281860175 まとめ
Unix/Linuxで文字コード変換に使用される、iconvコマンドの使い方についてのメモ書きです。*1 iconvコマンドの基本的な使い方 オプションの指定方法 入力データの文字コード 「-f (--from-code)」で指定する。 出力データの文字コード 「-t (--to-code)」で指定する。 省略すると、ロケールから自動的に決定される。 入力データ 標準入力から読み込む。(リダイレクト or パイプ) コマンドの引数として指定してもよい。 出力データ 標準出力に書き込む。(リダイレクト or パイプ) 「-o (--output)」で指定してもよい。 #標準入出力を使う例 iconv -f SJIS -t UTF8 < sjis.txt > utf8.txt #標準入出力を使わない例 iconv -f SJIS -t UTF8 sjis.txt -o utf8.txt 複数フ
Javaで複数の列挙型(enum)に対して同じような処理を書く場合に、どのように共通化するかを考えました。この記事では、列挙型で共通のインターフェースを実装しても対処できないような場合について扱います。例えば、values()のようなstaticメソッドが関わる場合です。対象バージョンはJava SE 6です。(たぶん5でも動きます。) 2010/08/13追記 記事のタイトルを「列挙型を使った処理の共通化」から「列挙型を使った処理を共通化する」に変更しました。(前者だと、「『列挙型を使った処理』の共通化」と「列挙型を使った『処理の共通化』」のように2種類の解釈ができて紛らわしいため。) 共通化されていない場合 はじめに共通化されていない場合のコードを示します。main()を呼び出すと、2種類の列挙型(Size、Color)に対して、クラス名とメンバ一覧を出力します。printSizeVa
前回に引き続き、Graphvizの出力サイズ指定に関する説明です。今回はpage属性の指定について説明します。size属性とpage属性を併用することにより、出力サイズの正確な指定が可能となります。動作確認に使用したバージョンは、2.26.3(最新の安定版)です。(前回: id:simply-k:20100804:1280880922) size属性について 前回の記事で説明したように、size属性を指定すると出力サイズを変更することができます。しかし、出力サイズが指定どおりのサイズになる保証はありませんでした。 page属性について page属性は、ページサイズの指定に使われる属性です。ただし、グラフを複数ページに分割して出力できるのは、現状ではPostScript形式のみです。それ以外の形式でpage属性を指定した場合、1ページ目のみが出力され、それ以外のページは無視されます。このため
前々回、前回に続き、IDEF1X形式のER図について説明します。今回は、カーディナリティの記号について説明します。 前回: id:simply-k:20100709:1278665985 次回: id:simply-k:20100712:1278931452 目次: id:simply-k:20100716:1279237959 「1対多」または「1対1」のリレーションシップ 「1対多」または「1対1」のリレーションシップでは、関わりのある2つのエンティティの間に親子関係が存在します。*1 IDEF1X形式のER図では、親エンティティ側と子エンティティ側で異なるカーディナリティの記号を使います。*2 カーディナリティ記号の一覧表を以下に示します。 親/子 カーディナリティ 記号 備考 親 0または1 中空の菱形(◇) 非依存リレーションシップ でのみ使用する 親 1 なし 特になし 子 0
前回の続きです。今回は、リダイレクトの記号が複数のケースと、パイプを使うケースを説明します。 前回: id:simply-k:20100731:1280607841 次回: id:simply-k:20100802:1280617927 (7) コマンド 1> ファイル 2>&1 2段階に分割して考えます。リダイレクトの記号が複数の場合は、左側から順に考えます。 (7-1) 1> ファイル 1番の出力先(標準出力)をファイルにリダイレクトします。内部的には、ファイルを書き込み用にオープンし、その出力ストリームを1番に結び付けます。*1 (7-2) 2>&1 2番の出力先(標準エラー出力)を1番の出力先(ファイル)にリダイレクトします。内部的には、1番に結びつけられたストリーム(file)を2番に結び付けます。リダイレクトしない場合に標準出力と標準エラー出力に分かれて出力されるデータが、同じ
4月下旬から、あるソフトウェアを開発していました。テーマは「ER図を素早く描くためのツール」です。それなりに動くようになってきたので、紹介したいと思います。ソフト名はErvizといいます。無償で公開しています。 ErvizでER図を描く場合、こんな手順で作業します。 エンティティとリレーションシップに関するテキストを作成する。(テキストは簡単な言語で記述する) テキストをER図(画像)に変換する。 (グラフ可視化ツールのGraphvizを使用) 具体例を見てもらった方が早いと思います。テキストの入力例と、テキストから生成されたER図を見てください。 テキストの入力例 [商品] *商品ID 商品名 標準価格 [仕入先] *仕入先ID 仕入先名 [商品仕入先] *商品ID* *仕入先ID* 適用開始日 適用終了日 [商品] 1--* (商品仕入先) [仕入先] 1--* (商品仕入先) 生成さ
Graphvizで日本語を使う場合の注意点をメモしておきます。対象バージョンは、2.26.3(最新の安定版)です。前半はOS非依存の話、後半は主にWindowsでの話です。 エンコーディング 現在、Graphvizがサポートするエンコーディングは、 UTF-8 iso-8859-1 (Latin1) の2つです。*1 Graphvizで日本語テキストを扱う場合、必然的にUTF-8を選択することになります。なお、UTF-8はデフォルトのエンコーディングですので特に指定する必要はないのですが、graphの属性として明示的に指定することも可能です。 ... graph [charset="UTF-8", ...]; ... フォント名を指定する対象 日本語テキストを使用する場合は、日本語フォントを指定する場合が多いと思います。Graphvizでは、グラフ、ノード、エッジのそれぞれに対してフォント
自分自身の知識を整理するため、リダイレクトとパイプの考え方を図示してみました。記事は3回に分ける予定です。 前回: - 次回: id:simply-k:20100801:1280617927 はじめに Unix/LinuxのシェルスクリプトやWindowsのコマンドプロンプトで使用するリダイレクトとパイプについて、考え方を図示しました。リダイレクトの表記法は、sh/bashやコマンドプロンプトを前提にしています。 リダイレクトやパイプについての初歩的な説明は省いていますので、そのような説明がほしい方は、他のサイトや書籍を参照してください。 (1) コマンド リダイレクトやパイプを使用しないコマンド実行です。 図の中の矢印は、ストリーム(データの流れ)を示しています。標準入力(stdin)、標準出力(stdout)、標準エラー出力(stderr)が、自動的にオープンされます。それぞれ、データ
「30分でわかるER図の書き方」を書き終えたので、各記事へのリンクを目次としてまとめておきます。 No. 記事 内容 1 id:simply-k:20100703:1278157673 ERモデル ER図 ピーター・チェンの表記法 2 id:simply-k:20100704:1278214995 IE形式とIDEF1X形式の比較 3 id:simply-k:20100706:1278387964 IE形式 表記法の基本 カーディナリティ オプショナリティ 4 id:simply-k:20100706:1278417587 IE形式 カーディナリティ記号 オプショナリティ記号 5 id:simply-k:20100707:1278514635 IDEF1X形式 表記法の基本 6 id:simply-k:20100709:1278665985 IDEF1X形式 エンティティの種別 リレーショ
前々回、前回に引き続き、ER図に関する補足的なトピックを扱います。今回は、交差エンティティについて説明します。 前回: id:simply-k:20100714:1279071645 次回: - 目次: id:simply-k:20100716:1279237959 多対多のリレーションシップ 次の図を見てください。 この図を見ると、「商品」と「仕入先」の間に、多対多の関連がある事をがわかります。ER図としては、特に問題はありません。しかし、このER図を元にしてリレーショナル・データベースのテーブル設計をする場合、次のような問題が発生します。 ある商品が、どの仕入先(複数)と対応するのかを、データとして保持できない。 ある仕入先が、どの商品(複数)と対応するのかを、データとして保持できない。 このような場合、交差エンティティ(intersection entity)と呼ばれるエンティティを
引き続き、修正BSDライセンス(New BSD License)の条文(英語)を読みます。 前回: id:simply-k:20100814:1281798528 次回: - 目次: id:simply-k:20100815:1281861273 ライセンス条文全体の意味 前回までの内容をまとめると、ライセンス条文全体としては、以下のような意味になります。(意訳したり、文章の構成を変更したりしているので、日本語訳とは呼ばないでおきます。) Copyright (c) <年>, <著作権者名> All rights reserved. このソフトウェアの再頒布/使用は、次の箇条書きの条件を全て満たす場合に許可されます。対象となるソフトウェアがソース形式かバイナリ形式かは問いません。また、改変の有無も問いません。 ソース形式で再頒布する場合は、このライセンスの文章全体を残さなくてはなりません。
前回の続きです。 前回: id:simply-k:20100824:1282743815 2の補数による符号付き整数の表現(4ビット) 前回の記事で載せた表を、再度、載せておきます。この表を見ながら、この先の説明を読んでください。 2進表現 10進表現 (符号無し) 10進表現 (符号付き) 1111 15 -1 1110 14 -2 1101 13 -3 1100 12 -4 1011 11 -5 1010 10 -6 1001 9 -7 1000 8 -8 0111 7 7 0110 6 6 0101 5 5 0100 4 4 0011 3 3 0010 2 2 0001 1 1 0000 0 0 2の補数を使った加算 特徴 2の補数を使った加算には、次のような特徴があります。 加算によって最上位ビットからの繰り上がりが発生した場合、その繰り上がりは無視する。 加算した結果も、2の補数
昔、2の補数を理解できずに悩んだのを思い出したので、2の補数について書いてみたいと思います。 次回: id:simply-k:20100825:1282743815 1の補数と2の補数 1の補数 2の補数を理解する準備として、1の補数について説明します。ある数Aに対する1の補数とは、次のような条件を満たす数のことです。「『A』の2進表現と『Aの1の補数』の2進表現を加算すると、計算結果の全てのビットが1になる。」 例えば、Aの2進表現(8ビット)が01011100だった場合、Aの1の補数の2進表現は、10100011となります。(01011100 + 10100011 = 11111111) 例を見ればすぐにわかるように、Aの1の補数は、Aの2進表現をビット反転させたものになります。「オール1にするために補う数」なので、「1の補数」と呼ばれます。 2の補数 ある数Aに対する2の補数とは、次
オープンソースライセンスの1種である、修正BSDライセンス(New BSD License)の条文(英語)を読みます。3回程度に分ける予定です。 前回: - 次回: id:simply-k:20100810:1281437021 目次: id:simply-k:20100815:1281861273 はじめに この記事では、修正BSDライセンス(New BSD License)の条文(英語)を読みます。 私はソフトウェアライセンスに関しては素人ですので、もしかしたら間違いが含まれているかもしれません。その点は注意してください。 修正BSDライセンス 修正BSDライセンスは、オリジナルのBSDライセンスから宣伝条項(広告条項)を取り除いたライセンスです。このライセンスは、三条項BSDライセンス(3-clause BSD License)とも呼ばれますが、ここでは「修正BSDライセンス」で統一
前回に引き続き、IDEF1X形式のER図について説明します。今回は、エンティティの種別とリレーションシップの種別について、詳細を説明します。 前回: id:simply-k:20100707:1278514635 次回: id:simply-k:20100710:1278713401 目次: id:simply-k:20100716:1279237959 親エンティティと子エンティティ まずはじめに、親エンティティ(parent entity)と子エンティティ(child entity)について説明します。「1対多」または「1対1」のリレーションシップでは、片方のエンティティを親エンティティ、もう片方のエンティティを子エンティティと呼びます。*1 「1対多」の場合 「1対多」のリレーションシップにおける親エンティティと子エンティティの定義は、次の表のようになります。 分類 定義 親エンティ
このページを最初にブックマークしてみませんか?
『とあるソフトウェア開発者のブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く