HDD の簡易消去

dd コマンドで直接、ディスクにデータを書き込むことで消去する。 OS インストール CD から起動して、プロンプトから以下を実行する。 ノイズ乱数で埋め尽くす # dd if=/dev/urandom of=/dev/dsk/cXtXdXs2 bs=8192 ゼロで埋め尽くす # dd if=/dev/zero of=/dev/dsk/cXtXdXs2 bs=8192 ※ X は環境に合わせて、format コマンドで確認する。ディスクで起動すると、HDD の overlap が スライス 2 となる。

2007年8月6日 · Toshimitsu Takahashi

Solaris での NFS サーバの設定

NFS サーバを有効化する。 # svcadm enable network/nfs/server /etc/dfs/dfstab に共有設定を追記する。 # Place share(1M) commands here for automatic execution # on entering init state 3. # Issue the command ‘svcadm enable network/nfs/server’ to # run the NFS daemon processes and the share commands, after adding # the very first entry to this file. # share [-F fstype] [ -o options] [-d “”] [resource] # .e.g, # share -F nfs -o rw=engineering -d “home dirs” /export/home2 share -F nfs -o rw -d “backup” /backup/test ...

2007年7月5日 · Toshimitsu Takahashi

C# から iTunes COM Windows SDK を試す

参照設定で COM - iTunes Type Library を追加する。フォームにラベルを貼って、現在 iTunes で再生中のトラックの アーティスト名 - 曲名 (アルバム名) を表示するサンプル。 COM のため Marshal.ReleaseComObject で参照解除をしてあげないと、iTunes を終了するときに握っている旨のメッセージが表示されてしまう。次にサンプルは終了時に連動して終了するようにしている。 ラベルの書き換えは、別スレッドからの操作だから Invoke してやること。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using iTunesLib; namespace WindowsApplication1 { public partial class Form1 : Form { private iTunesApp itunes; public Form1() { InitializeComponent(); init(); } private void init() { itunes = new iTunesApp(); itunes.OnAboutToPromptUserToQuitEvent += new _IiTunesEvents_OnAboutToPromptUserToQuitEventEventHandler(itunes_OnAboutToPromptUserToQuitEvent); itunes.OnPlayerPlayEvent += new _IiTunesEvents_OnPlayerPlayEventEventHandler(itunes_OnPlayerPlayEvent); } private void unhock() { itunes.OnPlayerPlayEvent -= new _IiTunesEvents_OnPlayerPlayEventEventHandler(itunes_OnPlayerPlayEvent); itunes.OnAboutToPromptUserToQuitEvent -= new _IiTunesEvents_OnAboutToPromptUserToQuitEventEventHandler(itunes_OnAboutToPromptUserToQuitEvent); Marshal.ReleaseComObject(itunes); itunes = null; } void itunes_OnPlayerPlayEvent(object iTrack) { IITTrack track = itunes.CurrentTrack; if (track != null) { label1.Text = track.Artist + " - " + track.Name + " (" + track.Album + “)”; Marshal.ReleaseComObject(track); } } void itunes_OnAboutToPromptUserToQuitEvent() { unhock(); this.Invoke((System.Windows.Forms.MethodInvoker)delegate() { this.Close(); }); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (itunes != null) unhock(); } } }

2007年6月11日 · Toshimitsu Takahashi

IFRAME を使わずページをロードする(2)

今回は、jQuery を使ってみる。そしてロードしたコンテンツ内のリンクターゲットも自身にするサンプル。 Ajax Loading Test testA testB copyright testA.html, testB.html には body の innerHTML な部分しかないので、正式なHTMLファイルではない。

2007年6月3日 · Toshimitsu Takahashi

WordPress でトラックバックURLを載せる

WordPressはそのままだと(テキトーだが…)、トラックバック URL が出ない。 パーマネントリンクに /trackback/ が付いたものになるらしいが表示したかった。調べたら trackback_url という関数が見つかった。 自分のテーマの functions.php に下記を追記した。my_trackback_link を呼び出すと、クリップボードにコピーしてくれるリンクを作って表示する。ただ、IEでしか効かない。 1 2 3 4 5 6 7 <?php function my\_trackback\_link() { echo "<a title=\\"クリックすると、トラックバック URL をクリップボードにコピーします。\\" href=\\""; echo trackback_url(); echo "\\" onClick=\\"window.clipboardData.setData('text', this.href); return false;\\">trackback URL</a>"; } ?>

2007年6月1日 · Toshimitsu Takahashi

Jakarta Commons HttpClient

仕事で Java Web アプリケーションサーバから Web サービスを叩いてみるということで、HTTP クライアントをどうしようかと考えた。 プロキシ認証とかリトライとかタイムアウトとか色々ありそうなので Jakarta Commons HttpClient を試してみた。せっかくなので、Amazon Web Service を触ってみる。 http://jakarta.apache.org/commons/httpclient/ package sample; import java.io.IOException; import java.io.InputStreamReader; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.params.HttpMethodParams; /** * @author tosshi / public class Main { /* * @param args */ public static void main(String[] args) { HttpClient client = new HttpClient(); // ソケットタイムアウトは 1秒 client.getParams().setParameter(“http.socket.timeout”, new Integer(1000)); /* * プロキシの認証が必要なとき * * Credentials cred = new UsernamePasswordCredentials(“PROXYAUTHID”, “PROXYAUTHPASS”); * HttpState state = new HttpState(); * state.setProxyCredentials(AuthScope.ANY, cred); * client.setState(state); */ // URIを指定して GET を生成 GetMethod method = new GetMethod(“http://webservices.amazon.co.jp/onca/xml"); // リトライは3回 method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, false)); // クエリをセット NameValuePair[] pairs = { new NameValuePair(“Service”, “AWSECommerceService”), new NameValuePair(“AWSAccessKeyId”, ☆取得したAWSのアクセスキーID☆), new NameValuePair(“Operation”, “ItemSearch”), new NameValuePair(“SearchIndex”, “Music”), new NameValuePair(“ResponseGroup”, “Small”), new NameValuePair(“Artist”, “BENNIE K”), }; method.setQueryString(pairs); try { // 実行 int statusCode = client.executeMethod(method); if (statusCode != HttpStatus.SC_OK) { System.err.println(“Method failed: " + method.getStatusLine()); } // レスポンスをアウト InputStreamReader isr = new InputStreamReader( method.getResponseBodyAsStream(), method.getResponseCharSet()); final int BUFFER_SIZE = 1024; char[] buffer = new char[BUFFER_SIZE]; int readSize; while ((readSize = isr.read(buffer, 0, BUFFER_SIZE)) > 0) { System.out.print(new String(buffer, 0, readSize)); } isr.close(); } catch (HttpException e) { System.err.println(“Fatal protocol violation: " + e.getMessage()); e.printStackTrace(); } catch (IOException e) { System.err.println(“Fatal transport error: " + e.getMessage()); e.printStackTrace(); } finally { // 接続を解放 method.releaseConnection(); } } }

2007年5月23日 · Toshimitsu Takahashi

Maven2 Eclipseのプロジェクト生成

> cd workspace > mvn archetype:create -DgroupId=group -DartifactId=newproject > cd newproject > mvn eclipse:eclipse

2007年5月21日 · Toshimitsu Takahashi

Linux コマンド覚書

zip カレントディレクトリ以下の全ファイルを source.zip としてZIPアーカイブする。 $ find . | zip source -@ curl http, ftp などをコマンドラインから扱う。 www.example.com/ の内容を標準出力する。 $ curl http://www.example.com/ www.example.com/favicon.gif をカレントディレクトリに favicon.gif として保存。 $ curl -O http://www.example.com/favicon.gif www.example.com/favicon.gif をカレントディレクトリに tmp.gif として保存。 $ curl -o tmp.gif http://www.example.com/favicon.gif

2007年5月20日 · Toshimitsu Takahashi

Apache Rewrite

メモ 192.168.1, 192.168.2 系から来たアクセスの場合は、/ を /private/ 書き換える。[R] ならば転送する。 <IfModule mod_rewrite.c> RewriteEngine On RewriteLog logs/rewrite.log RewriteCond %{REMOTE_ADDR} ^192\\.168\\.1\\. \[OR\] RewriteCond %{REMOTE_ADDR} ^192\\.168\\.2\\. RewriteRule ^/$ /private/ \[L\] </IfModule>

2007年5月19日 · Toshimitsu Takahashi

Java ファイルリソースの指定

Webアプリケーションを作るときにXMLファイルの読み込みなどでファイルを指定するとき、ユニットテストかWebアプリケーションサーバか、WindowsかUNIXか、とプラットフォームでパス指定が変わってくる。URL クラスのインスタンスを使用するのが良いみたい。Digester などはそのまま URL で指定できる。 URL から File にするには、URI を経由する。 1 2 URL url = 〜; File file = new File(url.toURI());

2007年5月17日 · Toshimitsu Takahashi