コンピュータ

Javaメモ

デザインパターン Template Method パターン Template Methodパターン Strategy パターン 10. Strategy パターン | TECHSCORE(テックスコア) 構文 static 初期化子 : static {} インスタンス初期化子 : {} クラスにはstatic初期化子(staticイニシャライザ)…

Tomcatメモ

Tomcat関連知識を整理して追記していく。 Tomcat の前にサーブレット HttpServletクラスとメソッド - サーブレットの基本 - サーブレット入門 起動 catalina.sh run な感じ。 インスタンス指定方法 run の前に、環境変数CATALINA_BASEにインスタンスのディレ…

明解 Javaによるアルゴリズムとデータ構造 8-1_力まかせ法

8-1 力まかせ法 brute force な文字列探索やるよ~ 順探索 ソースコード ちょっと焦げ臭い。もっとスマートに書けそうだが・・・ 進捗表示が意外とめんどかった。 探索対象文字列の何文字目から探索しているかを表示する部分で、フラグ処理が必要なんだが、…

Eclipse で開発するときに気をつけること

謎の ClassNotFound リソースファイルに記載した内容が読み込まれない 何らかの事情でビルドがされていないなどの事由で、ビルドしたクラスファイルやリソースファイルが古いとか存在しないとかの可能性あり。モノが存在していたとしても、タイムスタンプで…

Cygwin 初期セットアップまとめ

Cygwinの初期セットアップについて、いつもの作業なのでメモ化しておく。 Cygwin インストール(Windows XP 32bit スッキリ行かなかった版) Cygwin インストール(Windows 8 64bit スッキリ行った版) Cygwin インストール(Winsows XP 32bit うまく行かなかった…

世界で戦うプログラミング力を鍛える150問

会社の同期に借りた本の問題、ぼちぼち今の俺でも解けそうなのが出てきているので、解いてこうと思う。世界で戦いたいんじゃなくて、世界で戦います(ドヤ 世界で闘うプログラミング力を鍛える150問 ~トップIT企業のプログラマになるための本~作者: Gayle Laak…

明解 Javaによるアルゴリズムとデータ構造 7-1_集合とは

7-1_集合とは 部分集合と真部分集合 真部分集合 proper subset 集合 A のすべての要素が集合Bの要素であって、集合AとBが等しくない その他気付き ユニットテストメソッドがグリーンにならなかったため調べると、||演算子の挙動を正しく理解していなかった。…

JUnit 実践入門 体系的に学ぶユニットテストの技法 - 第8章 パラメータ化テスト テストケースとテストデータの分離

第8章 パラメータ化テスト テストケースとテストデータの分離 異なる入力値について似たようなテストを実施する場合など、テストケース毎の差異が入力値と期待値だけ、のような状況下において、入力値と期待値をパラメータとして外部化することで見通しを良…

JUnit 実践入門 体系的に学ぶユニットテストの技法 - 第7章 テストフィクスチャ テストデータや前提条件のセットアップ

第7章 テストフィクスチャ テストデータや前提条件のセットアップ 7.1 テストフィクチャとは テストで扱う、データやテスト実行環境、オブジェクトの状態など ユニットテストのテストフィスクチャ テスト対象オブジェクト 入力値 期待値 テスト実行までに必…

JUnit 実践入門 体系的に学ぶユニットテストの技法 - 第6章 テストのコンテキスト テストケースの構造化

第6章 テストのコンテキスト テストケースの構造化 6.2 テストケースの整理 メソッド単位で整理して個別クラス作成するよりも、初期化処理で整理するほうが、一般に良い 前者は初期化処理を共通化できないため 6.3 コンテキストのパターン 共通のデータに着…

JUnit 実践入門 体系的に学ぶユニットテストの技法 - 第5章 テストランナー テスト実行方法の制御

第5章 テストランナー テスト実行方法の制御 5.1 コマンドラインからの JUnit の実行 コマンドラインからも JUnit テストを実行できる JUnitCore クラスの main メソッドでは以下を行っている テストケースの収集 テストの実行 テスト結果の出力(レポート) 5…

明解 Javaによるアルゴリズムとデータ構造 6-9_度数ソート

6-9 度数ソート 分布数え上げソートとも呼ばれる 要素の大小関係を比較しない 安定 度数ソート 学生9人の10点満点テストを例に 度数分布表の作成 - 各点数の学生が何人いるか調べる 累積度数分布表の作成 - 0点からその点数までに何人の学生がいるか調べる …

JUnit 実践入門 体系的に学ぶユニットテストの技法 - 第4章 アサーション 値を比較検証するしくみ

第4章 アサーション 値を比較検証するしくみ Junit では、assertThat と MatcherAPI でアサーションを行う 4.1 Assert による値の比較検証 org.junit.Asset にアサーションメソッドが多数定義されている static インポートされることを想定した static メソ…

明解 Javaによるアルゴリズムとデータ構造 6-8_ヒープソート

6-8 ヒープソート ヒープ 親の値が子の値以上である、完全2分木のこと 兄弟での大小関係は任意 ヒープのことを別名、半順序木 partial ordered tree ともいう a[i] に対して、 親は a[(i - 1) / 2] 左の子は a[i * 2 + 1] ※剰余切り捨て 右の子は a[i * 2 + …

明解 Javaによるアルゴリズムとデータ構造 6-7_マージソート

6-7 マージソート 配列を前半部と後半部に分けて、それぞれをソートしたものをマージ(併合)するのを繰り返す方法 ソート済み配列のマージ 各配列の着目要素の値に注目して、小さい方の値を取り出し、別の配列に格納する ソースコード import java.util.Scann…

JUnit 実践入門 体系的に学ぶユニットテストの技法 - 第3章 テスティングフレームワーク テストを支えるしくみ

第3章 テスティングフレームワーク テストを支えるしくみ テストでは、入力値の準備や、期待される結果の検証が重要 3.1 テスティングフレームワークとは 一定のフォーマットで書けるため、可読性に貢献 テストコードの記述に集中できる xUnit フレームワー…

JUnit 実践入門 体系的に学ぶユニットテストの技法 - 第2章 ユニットテスト 何のためにテストするのか

第2章 ユニットテスト 何のためにテストするのか 2.1 ソフトウェアテストとは 検証する内容を定義し、ソフトウェアが期待通りに動作するのかを確認すること テストを作るのは、テスを行うテスター自身であり、ソフトウェアの仕様や要件を基に、テスト項目を…

JUnit 実践入門 体系的に学ぶユニットテストの技法 - 第1章 JUni tチュートリアル

第1章 JUnitチュートリアル 1.3 JUnitテストを始めよう "junit-tutorial" プロジェクトを作成 JUnit の JAR ファイルを追加 [JAR ファイルをプロジェクトにコピペ] -> [(右クリックから)Build Path] -> [Add to Build Path] "Calculator" クラス作成 Package…

JUnit 実践入門 体系的に学ぶユニットテストの技法 付録B Eclipse の便利機能と設定

付録B Eclipse の便利機能と設定 B.2 テキストファイルのエンコーディング [General] - [workspace] [Text file encoding] を "UTF-8" に設定 B.3 static インポートのワイドカード [Java] -> [Code Style] -> [Organize Imports] [Number of tatic import n…

明解 Javaによるアルゴリズムとデータ構造 6-6_クイックソート

6-6 クイックソート クイックソートの概略 クイックソート quick sort は、最も高速なアルゴリズムの一つ。 C.A.R.Hoare が考案。 配列 a を枢軸 x pivot で分割することを繰り返す。 分割の手順 a[pl] >= x が成立する要素が見つかるまで pl を右方向に走査…

明解 Javaによるアルゴリズムとデータ構造 6-5_シェルソート

6-5 シェルソート 単純挿入ソートの特徴 ソート済みあるいは、それに近い状態では高速である 挿入先が遠くはなれている場合、移動(代入)回数が多くなる シェルソート シェルソート shell sort は、単純挿入ソートの長所を活かしたまま、その短所を補う事によ…

JUnit 実践入門 体系的に学ぶユニットテストの技法 第15章 継続的 テスト すばやいフィードバックを手に入れる

第15章 継続的テスト すばやいフィードバックを手に入れる 開発においては、欠陥の修正による恩恵と、リスクのバランスを示している考慮する必要がある。 テストを早い段階から繰り返し行うことで、リスクをカバーできる。 15.1 継続的テスト ユニットテスト…

JUnit 実践入門 体系的に学ぶユニットテストの技法 第16章 テスト駆動開発 テストファーストで設計する

第16章 テスト駆動開発 テストファーストで設計する 16.1 テスト駆動開発 Test Driven Development とは TDD は、ユニットテストをプロダクションコードよりも先に記述することを原則とした開発手法のこと。 この原則はテストファーストと呼ばれ、XPのプラク…

Eclipse が起動しなくなったので eclipse.ini の pleiades.jar のパスを、絶対指定にした

Eclipseが起動しなくなった。 スプラッシュウィンドウすら出ない。 Pleiades の日本語化適用しているので、eclipse.ini から日本語化適用設定を外してみる。 おなじみのケプラーさんのスプラッシュウィンドウが表示された。 ということで、原因はこいつ。 相…

JUnit 実践入門 体系的に学ぶユニットテストの技法 付録A 開発環境のセットアップ

付録A 開発環境のセットアップ A.1 JDK のセットアップ pleiades 同梱の JDK1.7 を流用 A.2 Eclipse のセットアップ もろもろ面倒なので、アルゴリズム勉強用とは別途用意することにした 日本語化せず(pleiades でなく)英語版でいく 4.3 - Kepler にした JUn…

明解 Javaによるアルゴリズムとデータ構造 6-4_単純挿入ソート

6-4 単純選択ソート straight insertion sort 『原列の先頭要素を、目的列内の適切な位置に挿入』を、n - 1 回繰り返す トランプのカード並べに似たソート(7並べをイメージしてね) 実装としては、 『左隣の要素が、現在着目している要素より大きい限り、その…

2014年書き初めという体で、Markdown 記法でエントリを書いてみる

このエントリの目的 気づいてなかったが、はてなブログが Markdown 記法に対応してた。 -> Markdown記法に対応しました - はてなブログ開発ブログ Markdown 記法で書かれたドキュメントを見る機会はあるが、自分で書いてなかったので、慣れるついでに書いて…

明解 Javaによるアルゴリズムとデータ構造 6-3_単純選択ソート

6-3 単純選択ソート straight selection sort 最小要素を先頭に、2番めに小さい要素を先頭から2番目に移動する、を繰り返すアルゴリズム 未ソート部から最小のキーを持つ a[min] を選択 a[min] と、未ソート部の先頭要素を交換 離れた要素を交換する可能性が…

明解 Javaによるアルゴリズムとデータ構造 6-2_バブルソート

6-2 バブルソート 概要 隣り合う2要素の大小関係を調べて必要に応じて交換を繰り返す、単純交換ソート straight exchange sort の一種。 要素数 n の配列に対して、n-1 回の比較・交換(この作業をパスという)を行うことで、最小要素を先頭に移動する 更に n-…

はてなブログへ Syntax Highlighter の Java 用定義を導入した

はてなブログへ、Syntax Highlighter の Java 用定義を導入した。 詳しい解説があったので、それを参考に。 はてなブログへとりあえず導入 syntaxhighlighterを使ってみた - Step by Step Java用定義の書き換え(『行ごとに背景色変え』を適用する) ソースコ…

明解 Javaによるアルゴリズムとデータ構造 6-1_ソートとは

6-1 ソートとは 安定性 安定 stable 同一キーを持つ要素の順序関係が、ソート前後で必ず維持される 不安定 同一キーを持つ要素の順序関係が、ソート前後で維持されるとは限らない ソートの種類 内部ソート ソート対象データが、1配列上に展開可能な場合に用…

明解 Javaによるアルゴリズムとデータ構造 5_再帰的アルゴリズム

5-1 再帰の基本 メソッド内で自分を呼びだす 階乗 ユークリッドの互除法 ハノイの塔 5-2 再帰アルゴリズムの解析 解析 トップダウン ボトムダウン 真に再帰的 メソッド内で自身を複数回呼び出すもの 挙動が複雑 非再帰への書き換え 末尾再帰は容易 - http://…

明解 Javaによるアルゴリズムとデータ構造 4_スタックとキュー

4-1 スタック フィールド: スタックの容量・ポインタ。後入れ先出し(LIFO - Last In First Out)。 push, pop, peek, dump indexOf, size, clear, capacity isEmpty, isFull 疑問 総称クラスが java.lang.Throwable をサブクラス化できないのってなんでだっけ…

明解 Javaによるアルゴリズムとデータ構造 3_探索

3-2 線形探索 単純な線形探索(順次探索) 1インデックスにつき、2つの条件文をチェックするコストが発生 if index >= array.size() then search failed if array[i] = key then search succeeded 番兵法 1インデックスにつき、1つの条件文チェックでOK。単純…

プログラミングスキルがボトルネック

じゃばがまだまだわからない。 やりたいことを具現化できないもどかしさ。 ロジックを組み立てるのもなかなかムズいのに、それを実装するのがムズくていらいらする。 プログラミングに長けた人とそうでない人とでは時間にして数十倍の差がつく。 これは身に…

予想以上に進んでいる感

Computer Program Self-Discovers Laws of Physics - Wired Science 論文読んでないから何とも言えんが、ブレイクスルーを迎えちゃった感はある。 問題はヒトがまだ知らない法則をコンピュータが見つけだしたとき、それを我々が受け入れられるかどうか。

FE午後の勉強未着手

非常にやばい。 明日からかかりたい。 昼休みにでも問題集買いに行く。 午前の知識はだいたいイケる、んか??

「スラスラわかる」は言い過ぎ

基本情報 受かる100講〈2008‐2009年版〉―赤ペン式でスラスラわかる この本の欠点は、記述が論理的ではないところ。 試験対策本なんだから語の定義が大事なのに、同一単語が頻出する場面では修飾が不足しているために、ページ内に複数ある同一単語のどれを指…

基本情報(FE)受けることにした

簿記だけやってて飽きてきたので、時間を有効に使うという意味合いも込めて、こちらも並行して勉強することにします。 近く(といっても原チャリで15分ぐらいかかる)の TSUTAYA で買ってきたのがこれ。 基本情報 受かる100講〈2008‐2009年版〉―赤ペン式でスラ…

初級シスアドでもとろうかな

おまじない資格とは思いつつ、実際に問題やったこと無いんよね。 情報処理系の資格ひとっつも持ってないし、次回で最後だし、記念に受験してみようかな。 ある程度ITに馴染んでいる人には問題にどんどん取り組む方が手っ取り早いみたい。 実際過去問(午前 | …

Ubuntu8.10 インストール

U100 Extra に ubuntu 入れた。 Wine もまあいいんだけど、やっぱこっちのデザインの方がしっくり来るんよね。 ということでせっかくなので aircrack-ng とかその辺試してみた。 Ralink RT2180 のドライバー入ってないから、 http://ppa.launchpad.net/stgra…

社会じゃ理論は応用してナンボ

Don't Overthink FizzBuzz こんぴーたさいえんすでも、やっぱ応用は大事なんだねぇという話。 実際、プログラムの原理自体は簡単なんだけれど、クラス名やパッケージ名が思い出せなかったりして四苦八苦すること結構あるよね。 手を動かそうと思いましたよ。

1.1.3 Evaluating Combinations

「順序立てて考える」という問題を、個別的に捉えよう combinationを計算するには… 入れ子の中身を計算する operatorをoperandに作用させていく ここにミソがある combinationを「計算」するのに、まず、入れ子の「計算」をしている つまり計算の規則自体が…

1.1.2 Naming and the Environment

プログラム言語の大事な役割として、「データと名前をひも付けすること」がある 名前を、「データ(値)を持った変数」と定義する (define size 2) "2"というデータを、"size"という名前にひも付けした 以降は"size"という名前で、"2"というデータを呼び出せる…

1.1.1 Expressions

MIT-Schemeでプログラミングする C-x C-eで実行 (+ 137 349) 486 (- 1000 334) 666 (* 5 99) 495 (/ 10 5) 2 (+ 2.7 10) 12.7 ()で囲まれたもの: combinations (の次の文字: operator(演算子) それ以外: operands(被演算子) 左端に演算子を置く慣習: 前置表…

1.1 The Elements of Programming

よくできた言語は、思考を構成するための容れ物としての役割も持っている つまりその言語で出力しようとすると、言語の持つ仕組みによって「自然に」整理されるということ 「よくできた」言語が持つ三つの条件 根源的表現 合成 抽象化 「手順(課程)」と「デ…

Chapter 1: Building Abstractions with Procedures

導入みたいなもの 単純な概念から知を引き出す秘訣 - John Locke, An Essay Concerning Human Understanding (1690) 単純な概念を次々くっつけていく ぱっとお互いの視点がわかるように、複雑・単純の概念を取り入れる 概念を現実から切り離し抽象化する 電…

SICP一緒に読みませんか

今これを読んでる人で、SICPに興味がある人いませんかね。 楽しくまったり、継続的に読み進めたいなあと思っとります。 「知ったか、ダメゼッタイ!」と題しまして(うそ)、わからんところは教えを請うて、しっかりつぶしていければいいなぁ。 場所はオサカ市…