カレントディレクトリのファイル数をカウントする方法

自分用にメモ find . -type f | wc -l

Sun認定Javaプログラマ試験(SJC-P)を受けてきた

受験チケットを購入してから8ヶ月、今日、ようやく受験してきました。この1週間、風邪を引いて体調がとっても悪かったのですが、勉強だけは継続していました。そして今日、無事に合格しました。万全をとって3時間前から受験会場の近くのカフェで勉強していた…

ファイル内の文字列を置換したいとき

よくサーバ上の設定ファイル内にある文字列を別の文字列に置換したいときがあります。 つい先日もデータセンターでサーバ9台に対してPuTTYで繋げてviで編集作業を行ったのですが、let's noteのB5サイズなので画面、キーボードが小さいため大変作業しづらかっ…

文字コードの確認方法

普段、会社で使用しているPCにはTeraTermProを入れて使っているのですが、今日はPuTTYが入ったPCを使う必要があって、サーバにアクセスすると日本語が文字化けしてました。そこでPuTTYの文字コード設定を確認するとEUC-JPだったのでサーバの文字コードを確認…

最近、電車の中で思うこと

2/21(土)にSJC-Pを受験するために、最近は通勤中も問題集を広げているのですが周りを見渡すと、他にも資格の参考本などを広げている人がやけに目をつきます。特に帰りの電車に見られるのですが、不況の影響で残業規制をしている会社もあるようなので、この機…

初期化のタイミングについて

変数の初期化タイミングについても、みんな当たり前のように知っていると思うけど、非短絡論理演算子のように度忘れしたり、たまに疑問になったりしませんか。ということで、ちょっと動かしてみました。 class Parent{ {System.out.println("parent1 ");} pu…

非短絡論理演算子について

普段、自分がよく使う論理演算子は「&&」,「||」 や「!」ですが、論理演算子には他にも非短絡論理演算子「&」,「|」があります。 ふと、あまり見慣れていない「&」,「|」が使われたコードを見ると、どういう動きをするんだっけと考えてしまうのは自分だけで…

Javaの処理時間を計測する方法

前回エントリ(2009-01-14 - greennoahの日記)ではArrayListとHashSetの処理にかかる時間を、単純にStartとEndの現在時刻を標準出力したものでしたが、Javaの処理時間を計測する場合はSystemクラスのcurrentTimeMillisメソッドを使用した方が良いと思います…

大量データを扱うときはArrayListよりHashSetを使おう

最近は性能問題が徐々に収束してきました。 解決された問題のうちの1つをここで紹介したいと思います。「あるバッチプログラムの性能要件が100万件のデータを60分で処理しないといけない」というものがあったのですが、計測してみると2.5時間で40万件弱しか…

テキストファイルの行数を表示する

以下、自分用にメモ。 wc -l [ファイル名]

jhatを使ってヒープダンプを解析するときの注意

今週はずっとメモリリークの調査をしていました。その時に使ったツールjhatにおいて注意する点があったのでメモしておきます。今回はjmapコマンドで取得したヒープダンプをjhatで解析しました。jhatではヒープのヒストグラムを見てインスタンス数やインスタ…

DELETE と TRUNCATE TABLE の違い

Oracleに100万件のデータをinsertするツールを動かしても、全くレスポンスが返ってこないトラブルがありました。このツールは100万件を1トランザクションで行うもので、当初は1トランザクションの処理量が多いからなのかと思いましたが違いました。今まで膨…

情報処理技術者試験が大改革されたらしい

今日、本屋さんで資格コーナーに立ち寄ったところ、見慣れない資格の本が情報技術者試験関連の本の隣に陳列されていました。その名も「応用情報技術者試験」。名前からして基本情報技術者試験よりは高度そうです。とりあえず、中身をさらっと目を通したとこ…

エラトステネスのふるい

エラトステネスのふるいとは、素数を列挙する簡単な方法です。 偶数の素数は2だけなので3以上の奇数だけを調べれば良いですね。flag[i]は2i + 3が素数かどうかを表します。(i = 0,・・・N) N = 8190なら2 × N + 3 = 16383まで調べるので1900番目の素数1638…

Java並行処理プログラミング ―その「基盤」と「最新API」を究める―

今のプロジェクトは、サービスイン当初よりずっと性能問題をかかえてきました。先日の性能測定でメモリリークしていることが分かり、ようやく原因が見えてきたってところです。(どんだけ時間かけてんのって言われそうですが。。) リークの原因ですが、どう…

Effective Java第二版

Effective Java 第2版 (The Java Series)作者: Joshua Bloch,柴田芳樹出版社/メーカー: ピアソンエデュケーション発売日: 2008/11/27メディア: 単行本(ソフトカバー)購入: 77人 クリック: 936回この商品を含むブログ (266件) を見るJavaプログラマ必読本の…

両替プログラムを再帰手続きで書いてみた

以下、SICPからの問題です。 50¢、25¢、10¢、5¢、1¢の硬貨があるとして、1$の両替の場合の数を計算する手続きを再帰手続きで書いてみましょう。余談:25¢はクォーター、10¢はダイム、5¢はニッケル、1¢はペニーという通称があります。50¢はハーフダラー? Pyt…

初めてのクリスピー・ドーナッツ体験

昨日は深夜作業で横浜の市ヶ尾に行っていました。そこで、なんと今話題のクリスピー・ドーナッツを差入れで頂きました。このドーナッツのパッケージ、最近帰りの電車の中でよく見かけていたんです。正直、ちょっと前までピザだと思っていました。だって、そ…

アメリカザリガニのライブを観てきた

今日は、渋谷の電力館でお笑いコンビ アメリカザリガニのライブを観てきました。 アメリカザリガニというコンビ名は全く知りませんでしたが、始めてお笑いを生で観た感想はその場の空気もあってけっこう楽しめました。普段、テレビでお笑い番組を観ることは…

数学的帰納法とフィボナッチ数の定義を用いてFib(n)=(φ^n-ψ^n)/√5 を証明する

SICPから次の問題を解いてみたいと思います。問題 φ=(1+√5)/2 としてFib(n)がφ^n/√5 に最も近い整数であることを証明せよ。 ヒント:ψ=(1-√5)/2 とする。数学的帰納法とFibonacci数の定義を用いて Fib(n)=(φ^n-ψ^n)/√5 を証明する。 証明 任意の自然数nにつ…

再帰の定番 ハノイの塔

再帰手続きで有名なハノイの塔をPythonで解いてみました。まずは、ハノイの塔の問題について 3本の棒a、b、cがあります。棒aに、中央に空いたn枚の円盤が大きい順に積まれています。 これを1枚ずつ移動させて棒bに移します。ただし、移動の途中で円盤の大小…

IP Messengerの起動をサポートするツール

会社の先輩がC#でツールを作成したそうなので、ご紹介します。IPSelector for IPMsg(IP Messengerの起動をサポートするツールです。)VMWareを入れているPCでIP Messengerを使う場合はネットワークを指定して起動する必要があるのですが、DHCPのネットワー…

Pythonの多次元リストの初期化

Pythonの多次元リストの作成方法について調べたので、自分用にメモまずは、1次元リストの初期化 >>> map(lambda i:0, range(3)) [0, 0, 0] >>> [0]*3 [0, 0, 0]次に2次元リストの初期化 >>> a = [[0 for i in range(3)] for i in range(3)] >>> a [[0, 0, 0]…

Pythonでパスカルの三角形

Pythonでパスカルの三角形を書いてみました。 再帰を使うととっても簡潔に書けますね。 def pascal(x, y): if(x == 1 or x == y): return 1 else: return pascal(x - 1, y - 1) + pascal(x, y - 1) def line(n): a = [] for i in range(n): a.append(pascal(…

マスクは風邪予防に最適

今日は1日中、マスクをつけていたので喉の状態はとても良かった。 菌を防いで、かつ保湿効果もあったので喉飴も不要でした。 昨日宣言したとおり、トイレに行くたびに手洗い、うがいも欠かさなかった。ただ、マスクをつけていると周りの人から「風邪ひいたの…

風邪の前兆?

仕事中に軽い頭痛が。それと喉が痛い。 社内の空気が悪いような気がする。。。明日からは予防としてマスクを着用しておこう それから、トイレに行ったらよく手を洗って、うがいもしよっと。

続・ユークリッドの互除法を使って2つの整数の最大公約数を求める(再帰編)

今度は、再帰を使って書いてみました。 まずは、減算を用いたユークリッド互除法です。 public class Euclid { private static int count; public static void main(String[] args){ try{ int m = Integer.parseInt(args[0]); int n = Integer.parseInt(args…

ユークリッドの互除法を使って2つの整数の最大公約数を求める

2つの整数m、n(m > n)をユークリッドの互除法を使って、mとnの最大公約数を求めます。 減算を使った場合のアルゴリズムは次のようになります。 1.mとnが等しくないあいだは次を繰り返す 2.m > nの場合 m = m - n それ以外 n = n - m 3.m(もしくはn…

入力したプログラムコードを色付けするスーパーpre記法

はてなのブログでソースコードを色分けして書く方法を検索してみました。とっても便利な機能ですね。今までは <pre> program code </pre> で書いていたのですが、色付けしたほうがやっぱり見やすいです。 詳しくは、以下を参考にしてください。入力したプログラムコード…

続・フィボナッチ数列を生成するプログラム

前回のエントリーでは、再帰手続きを使って書いたのですが、これだとnが増えるごとに計算時間はどんどん遅くなってくるので実用に耐えないアルゴリズムであることは明白です。今度は配列を使って、一度計算したフィボナッチ数を記憶させてやりました。 publi…