LIPCレベル1試験から学んだ事(Part3)

ファイルの個数やサイズ、メモリ使用量を制限(ulimit) メモリ割り当て不可、など、とりあえず何でもいいからコマンドを失敗させたい時とかのテストに使えるかも。 user@ubuntu:~$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlim…

LIPCレベル1試験から学んだ事(Part2)

screen で画面共有 端末1 user@ubuntu:~$ screen -S session1 端末2 user@ubuntu:~$ screen -x session1 screenを終了するには Ctrl-d

LIPCレベル1試験から学んだ事(Part1)

実行環境はこちら user@ubuntu:~$ uname -a Linux ubuntu 4.2.0-16-generic #19-Ubuntu SMP Thu Oct 8 15:35:06 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux user@ubuntu:~$ 環境変数の表示(env, printenv) 普段 echo $[変数名] しか使わないので、今後は env …

ホームディレクトリ以外の .vimrc を常に読み込む

Vim

同一ユーザを複数人で共有していて、ホームディレクトリに自分専用の .vimrc を置けない場合は、環境変数 VIMINIT または EXINIT を設定して自分専用の .vimrc を読み込めばよい。 ubuntu@ubuntu-14:~/vim$ set |grep VIM VIMINIT='so ~/vim/.vimrc' ubuntu@…

バックグラウンドで実行した処理が全て完了するまで待つ

$ cat 20150906.sh #!/bin/bash --norc # 引数で指定された秒数バックグラウンドでSLEEPする function _sleep() { sleep $1 & # バックグラウンドで実行されたプロセスのPIDを設定 PID=$! echo "sleep $1 seconds; pid=${PID}" } # 10〜20秒バックグラウンド…

ファイルを1行1行を読みこんで処理する

$ cat foo.sh #!/bin/bash --norc cat infile | grep -v "^[[:space:]]*$" | # 空行をSKIP grep -v "^[[:space:]]*#" | # #で始まる行をSKIP while read LINE do LINE=`echo ${LINE} |sed 's/[[:space:]]*#.*//g'` # #以降はコメント扱い echo ":${LINE}:" d…

WinSCPでLinux上のファイルを自動でWindowsにバックアップする

LinuxサーバのファイルをWindowsにバックアップする場合、WinSCPをバッチモードで実行するのが手っ取り早い。WinSCP用のスクリプトファイルとWindowsのバッチファイルの2種類用意すれば良い。WinSCP用のスクリプトファイル(rsync-ubuntu-14.04-server-amd64.…

UNIXコマンドのソースを見る方法

ubuntu@ubuntu-14:~$ uname -a Linux ubuntu-14 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux ## 前準備 #apt-fileをインストールする ubuntu@ubuntu-14:~$ sudo apt-get install apt-file #データベース…

CVSのインストール

## cvsのインストール ubuntu@ubuntu-14:~$ sudo apt-get install cvs ## xinetdのインストール ubuntu@ubuntu-14:~$ sudo apt-get install xinetd ## リポジトリの作成 ubuntu@ubuntu-14:~$ cvs -d /home/ubuntu/cvsroot init ## xinetdの起動設定 ubuntu@u…

ssh-agentの注意点

ssh-agentを一度起動すると、ログアウトしてもプロセスが残ったままになるので要注意。 ######################################################################## ## 実証 : ssh-agentを一度起動するとログアウトしてもプロセスは残ったまま ############…

ssh設定メモ

ssh、scp、rsyncなどでパスワード、パスフレーズ入力不要とする設定。バッチで作業を自動化したいとか、単にパスワード入力が面倒といった場合に使える。まずはsshの公開鍵、秘密鍵を作成する。公開鍵はファイル名に.pubが付いている方。 この時、パスフレー…

Apache Batik を使って SVG 画像を PNG/GIF/JPEG に変換する

ベクタ形式の画像を手作りする方法としてはSVGが手っ取り早い。 まずは SVG 画像を用意し foo.svg として保存する。 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <circle cx="100" cy="100" r="100" fill="red" /> </svg> 次に Batik のラスタライザを使って PNG に変換する(上記画像のサイズ 200×200 を指定)。 C:\batik-1.7>java -jar batik-rasterizer.jar…

UbuntuにEmacs24をインストールした時のログとinit.elの備忘録

インストール ubuntu@ubuntu-14:~/c++/2.2$ sudo apt-get install emacs24-nox [sudo] password for ubuntu: パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の特別パッケージがインス…

scp

別のサーバからパスフレーズ認証なしでファイル転送する方法。id_rsa(秘密鍵)をリモートのサーバからコピー、scpのオプションに指定すればそれでいい。

VMWare 上の Ubuntu を固定IPにする方法

ubuntu-14.04-server-amd64 を VMWare Player 上にインストールした時のメモ。インストール自体は何事も無く終了。OpenSSH Server だけインストールし、Windows からは rlogin/telnet/ssh(クライアント)ターミナルソフト (←ファイル転送も簡単にできるのでこ…

読書録『知識ゼロから学ぶソフトウェアテスト 【改訂版】』

知識ゼロから学ぶソフトウェアテスト 【改訂版】作者: 高橋寿一出版社/メーカー: 翔泳社発売日: 2013/12/10メディア: 単行本(ソフトカバー)この商品を含むブログ (7件) を見る読んで大事だと思った箇所を、業務SE視点で解釈する。 テスト計画 テストでも何…

SELECT結果の操作(変数宣言、カーソル、配列)

最もシンプルなPL/SQLのプログラム BEGIN NULL; END; 変数と定数 DECLARE a VARCHAR2(10); b VARCHAR2(10) := 'bbb'; c VARCHAR2(10) NOT NULL := 'ccc'; d CONSTANT VARCHAR2(10) := 'ddd'; BEGIN dbms_output.put_line('a : ' || a); dbms_output.put_line…

血の報い

(新共同訳) 42:21 互に言った。 「ああ、我々は弟のことで罰を受けているのだ。弟が我々に助けを求めたとき、あれほどの苦しみを見ながら、耳を貸そうともしなかった。それで、この苦しみが我々にふりかかった。」 42:22 するとルベンが答えた。 「あのとき…

ねたみ

(新共同訳) 26:14 多くの羊や牛の群れ、それに多くの召し使いを持つようになると、ペリシテ人はイサクをねたむようになった。(TEV) 26:14 Because he had many herds of sheep and cattle and many servants, the Philistines were jealous of him.(KJV) 26:…

スレッドセーフではないコード(4回目)

今回はsynchronizedメソッドの話。「synchronizedが付いているメソッドは同時に実行されない」と思っていたら大まちがい。下記に4種類のコード例のうち、System.out.println()が排他的に実行されるのは2つだけ。 System.outする箇所にブレークポイントを設定…

スレッドセーフではないコード(2回目)

前回(1回目)はサーブレットを例にスレッドセーフではないコードを考えてみたが、スレッドセーフではないことを目に見えるかたちで実証するのが難しかった。 今回はJava SEの環境で動かせるクラスでスレッドセーフではないことを実証してみる。まずは、カウン…

スレッドセーフではないコード(3回目)

他人が書いたコードがマルチスレッド下で正しく動くかどうか検証するのは骨の折れる作業と実感する。テスト時になるべくバグが出やすくするコツとしてClient VMではなくServer VMで動かすとよいそうだ。ServerVMの方がClientVMにくらべてより最適化しようと…

スレッドセーフではないコード(1回目)

書いてはいけないコードの例。アクセスカウント(requestCount)を表示するサーブレットを考える。サーブレット自体はシングルトンなので、ブラウザからアクセスするとrequestCountの値がインクリメントされ、正しく動くかのように見える。しかし、++のインク…

Sambaとネットワーク設定

Ubuntuの初期設定では、NATのポートフォワーディングを利用してホストOSのWindows7からゲストOSのUbuntuにSSH接続した。また、WindowsとUbuntuのファイル共有はVirtualBoxの共有フォルダーを利用した。VirtualBoxのファイル共有だけでは今後何かと不便だろう…

Windows7に仮想環境を作ってUbuntuをインストールする(デスクトップEditionとサーバーEdition の両方)

前々からcoLinuxでWindowsとLinuxを共存させたいと考えていたが、いざやってみるとcoLinuxが64bitのWindowsに対応していないことが判明。そこで、VirtualBoxを使って仮想環境を作成してUbuntuのインストールにトライする。仮想環境 : VirtualBox 4.2.6 for W…

今さらながらStruts1系のActionやFormをJUnitでテストする方法

StrutsのActionやFormをJUnitでテストするには StrutsTestCase http://strutstestcase.sourceforge.net/ を使う。設定ファイルを置く場所は厄介。次のようにマニュアル通り記述しても public void setUp() throws Exception { super.setUp(); // コンテキス…

Mavenのディレクトリ構成を変更(+Mockitoを使ってサーブレットをJUnitでテスト)する方法

Mavenで決まっているディレクトリの構成を変えるのは公式サイトを見ても「推奨しない」だの「考え直せ」だの書かれているが、それでも変更しなければならない状況におちいることがあろうかと思います。例えば下図のような構成のプロジェクトで試しにMavenを…

Jenkinsの使い方+MavenやSonarとの連携

Jenkinsの導入〜MavenやSonarとの連携方法までを紹介します。SubversionやGitとの連携は次回以降に紹介したいと思います。まずはJenkinsの準備。 http://jenkins-ci.org/ からWARファイルをダウンロードし、javaコマンドでサーバを起動します。 C:\root\usr\…

SonarとMavenでJavaソースコードのメトリクスを収集する

Javaソースコードのカバレッジツールを探していたらSonarというJavaソースコードのメトリクス収集ツールに行き当たりました。 これまでソースをWebで見れるようにするツール等は様々出回っていましたが、総合的にメトリクスを収集してくれるツールは、多くは…

SpringのDI(Dependency Injection)のサンプルを作りました

Springフレームワークが提供するDI(Dependency Injection)を理解するためのサンプルプログラムを作りました。 『Spring3入門』の 第2章 SpringのDI を参考にしています。初版の第一刷を買ったせいか、それじゃ動かないだろ、というサンプルソースもあるが許…

基本の基本

MySQLのコマンドに関するメモ ヘルプを表示する > mysql -? 接続する > mysql -u [ユーザー名] -p -h [ホスト名] SQLファイルを実行する mysql> source [ファイル名] ユーザー権限 mysql> GRANT ALL ON *.* TO [ユーザー名]@'[接続元のホスト名]' IDENTIFIED…

ExifTool の使い方

ExifTool を使いデジカメやiPhoneで撮った写真や動画のファイル名を、撮影日時に一括変換する方法を解説します。 基礎知識 ExifTool はオリジナルサイトから入手します。 http://owl.phy.queensu.ca/~phil/exiftool/exiftool-9.02.zip のような ZIP ファイル…

完全リカバリと不完全リカバリの違い

Oracleで障害が発生した場合のリカバリ方法は2種類。 完全リカバリ 障害が発生した直前(直前のコミット完了時点)までリカバリする方法。 障害発生直前ということは、リカバリ時にREDOログを適用することになる。 よって、アーカイブログモードで動作している…

GPGで暗号化/復号化

Gnu Privacy Guard (GPG) の一番お手軽な使い方として、ファイルをパスワードで暗号化/復号化する方法。 GPG本体をインストールしなくても、Windows版のGitをインストールしていればGPGの一部が含まれています(Git/bin/gpg.exe)。単純にファイルをパスワード…

良い人を採用するには面接/面談で何を聞けばよいか

通常のSI開発において、全員がプロパー(自社の人)で構成されるケースはほとんどない。 特に、開発規模が大きいほど、他社の人(協力会社やパートナーと呼ぶことが多い)の割合が高いように思われる。ここで問題になるのが、いかに「良い」人を採用するか。「良…

EclipseのソースコードをCVSから取得する方法

例えばJDT Core ComponentのソースをCVSから取得する方法 C:\home\jdt-core>set CVSROOT=:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse C:\home\jdt-core>cvs login Logging in to :pserver:anonymous@dev.eclipse.org:2401/cvsroot/eclipse CVS pas…

Org-Modeで日本語を含むファイルをPDFにエクスポートする方法

最近Org-Modeを使い始めた。きっかけはテキストなのに簡単な表が組めること、HTMLにエクスポートできること。エクスポートのオプションを見ていると、なんとPDFにもエクスポート可能ではないか。 という訳で今回はまずLaTeXにエクスポートし、そこからPDFに…

応用システムの文書化要領(JIS X 0126:2001; ISO/IEC 6592:1998)

現在ではもう廃止規格となってしまったが、それでもなお参考になることは多いので適当に抜粋しておく。使い方は規格を参照して欲しい。番号構造 > 情報項目内容1 システム要求11問題の定義開発中のソフトウェアによって解決する問題の記述とその限界。12目的…

Windows7のEmacs23.4にcmigemoを導入する

前回SKKを導入した。せっかくなのでcmigemoもインストールする。http://www.kaoriya.net/software/cmigemo まずはここから適切なバイナリをダウンロード、解凍しておく。次に migemo.el の入手だが、どうも情報が錯綜している。 最も確実と思われうオリジナ…

Windows7のEmacs23.4にSKKを導入する

http://openlab.ring.gr.jp/skk/ddskk-ja.html ここから ddskk-14.4.tar.gz をダウンロード、解凍する。 ※解凍するフォルダはデスクトップとかで構わない。 ※このページに書いてあるようにAPELのインストールはもはや不要だそうです。続いて辞書のダウンロー…

YASnippetがあまりに便利すぎる件

Emacsでの生産性を格段に向上させるツール。便利すぎるのになぜ今までインストールしてなかったのか不思議。まずはgithubからYASnippetをzipでダウンロードする。 https://github.com/capitaomorte/yasnippetダウンロードしたら ~/.emacs.d/elisp 直下に解凍…

形態素解析Senのインストールと使い方

Senのインストールに関してまとめておく。 Java SenはJavaで書かれているのでJavaは必須だが、ここでは省略。 Antの準備 最近はもっぱらMavenばかり使ってたのでAnt入れてなかった...Apache Ant - Binary Distributions ここから apache-ant-1.8.3-bin.zip …

メソッド名のつけ方、それでもまだinsertOrUpdateって書きますか?

Javaのメソッド名や変数名はいやに長くなりがちだが、 upsert って単語があることを初めて知った。SMART!! 今まで真面目にinsertOrUpdateって長々と書いてたのがアホらしい。http://en.wikipedia.org/wiki/Upsert

全文検索に関するメモ

Googleでも採用されているBasis Technology社のブログ http://blog.basistech.com/オープンソース全文検索サーバー Fess (フェス) http://fess.sourceforge.jp/ja/

Vimでファイルの文字コードを自動判定する設定

Vim

"エンコード優先順位指定 set fileencodings=iso-2022-jp,utf-8,cp932,euc-jp,default,latin "ステータスラインを常に表示 set laststatus=2 "ステータスラインに文字コードと改行文字を表示する set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc)…

コマンドプロンプトの文字コードをUTF-8にする

やっぱり厄介だったコマンドプロンプトのUTF-8化。WindowsXP時代はコマンドプロンプトのフォントをMSゴシックに変更し、 chcp65001でUTF-8にコードページを変更すれば 日本語もきちんと表示できた。Windows7になってからは、どうもうまくいかない。 chcp 650…

java/javacの起動高速化

PCをWindowsXPから64bit版Windows7に替えて以来、java/javacの起動が異様に遅くイライラしていたが・・・ Pleiades 付属のjava(32bit版)を使っていたことがどうも原因。Oracleのサイトから入手したWindows x64(64-bit)版に変更してからはそれなりのスピード…

Windows7でスタートアップに登録

Windows7のOS起動時にキャプチャソフトを自動起動させたい。 はて、Windows7のスタートアップってどこにあるんだろう?と思い調べてみた。 C:\Users\[ユーザー名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

iPhoneでDVDを見る

DVD DecrypterでDVDをISOイメージに落とす HandbrakeでISOイメージをMP4に変換する たったこれだけ。超簡単でした。 さて、それぞれのソフトの使い方です。まずはDVD Dectypterから。 PCのドライブにDVDを入れます。 DVD Decrypterを起動します。こんな画面…

有効桁数を指定して割り算

とある要件で小数点以下40位まで割り算する必要があった。 WindowsXPの電卓では無理(有効桁数32桁)なので、elispの勉強がてら書いてみた。 (defun div (dividend divisor precision &optional answer) (if (< precision 0) answer (setq quotient (truncat…