Shammer's Philosophy

My private adversaria

2010-01-01から1年間の記事一覧

URIとURNとURL

似た言葉だが、意味は微妙に異なっている。 まず、URI=URN+URLという構図が成り立つ。 URLというのは、特定のリソースの場所とアクセス方法(スキーム)を表現したもの。 たとえば、http://www.ietf.org/rfc/rfc2396.txtというURI(URL)は、rfc2396.txt がど…

O'Reilly Java ネットワークプログラミング

Java RMI の勉強をするためにいろいろ探してみたが、結局選んだのがこの本。 O'Reilly Japan - Javaネットワークプログラミング 第2版 RMI に限らず、Java でネットワークプログラミングを行うことを網羅している感じ。ネットワークとは何か、という説明から…

コストコデビュー

業務用サイズ・卸値価格でいろいろな物が買える、という噂のコストコに本日デビュー。紹介された人から、「何でも売っているよ!」と言われたので、Windows 7 Ultimate と DDR3 Memory を買おうと意気込んでいったら・・・Windows 7 Ultimate はあったが、メ…

技術的にとがっている人たち

会社の忘年会に参加してきた。忘年会、というだけあって、何となく仕事の話題はタブー状態になっていたけれども(みんな忘れたいんだなぁw)、ちょこっとだけ仕事の話も出た。その中で印象的だった話を紹介。 コンピュータの技術者ならば、誰もが「コンピュ…

Java RMI 復習予定

現在、仕事でRMI通信の処理に絡んだ問い合わせを受けている。しかし、これがなかなかの曲者。自分がRMIを利用した開発をあまり経験していない、ということもあり、RMIの動作でもよくわかっていない部分が多い。これを機に、RMIをしっかり勉強してみようと思…

ioctl で NIC の様々な情報を取得

ioctl で NIC の情報を取得 - Shammerismでは IPv4 のみだったが、MTU や BroadCast アドレスなども取得する関数を作成してみた。 #include <arpa/inet.h> #include <ifaddrs.h> #include <net/if.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/ioctl.h> #include <unistd.h> int…</unistd.h></sys/ioctl.h></sys/types.h></string.h></stdlib.h></stdio.h></netinet/in.h></net/if.h></ifaddrs.h></arpa/inet.h>

ioctl で NIC の情報を取得

特定NICのIPアドレスを取得する関数 - Shammerismのようにgetifaddrs 関数を使用しても取得できるが、IPv4 の情報であれば ioctl も使用できるようだ。struct ifreq が使用される。 #include <arpa/inet.h> #include <ifaddrs.h> #include <net/if.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> </string.h></stdlib.h></stdio.h></netinet/in.h></net/if.h></ifaddrs.h></arpa/inet.h>…

特定NICのIPアドレスを取得する関数

NIC の IP Address を取得する - Shammerismの内容を少し変更して作成。実際にやってみると、どういうものか詳細はわからないがAF_PACKETの情報もあるようで、綺麗に取得するのは難しい印象。そのため、情報を返すのではなく渡された入れ物に結果を入れると…

NIC の IP Address を取得する

ホスト名から DNS の名前解決をするようなプログラムは以前に書いたことがあるが、RAW_SOCKET でプログラムを作成する際には使用する NIC からその NIC に設定されている IP Address を取得したい。サンプルを見つけたのでメモ。リンクはc++ - Get the IP ad…

NIC の MAC address を取得することに成功

C

NIC の MAC address を取得するも失敗 - Shammerismの文字化け調査で、ioctl request to get the HW addressを発見。ここの08-12-2003のコードでうまくいった。 #include <arpa/inet.h> #include <errno.h> #include <linux/if_ether.h> #include <net/if.h> // ifr #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/ioctl.h> //</sys/ioctl.h></string.h></stdlib.h></stdio.h></net/if.h></linux/if_ether.h></errno.h></arpa/inet.h>…

NIC の MAC address を取得するも失敗

C

TCP や UDP の Socket は一通り書いてみたので、今度は RawSocket に挑戦したい。 TCP や UDP では、L2 や L3 のヘッダはおろか、TCP のヘッダも完全にお任せ。意識するのは Payload のみでよかった。だが、RawSocket ではそうも行かない。手始めに指定した …

知らぬが仏?

今更ながら、Amazon.co.jpが日本に税金を納めておらず、国税庁に追求されている(いた?)ことを知った。 安藤奈津雄の掲示板 アマゾンが脱税? 昔、キーボードを頼んで、配送の人間が指定した時間に来ず、数時間待たされた後で「今日は雨激しいし遅くなって…

Cocoa Emacs でことえりが・・・

やっぱり楽をしようとするとダメだ。dmg があった、と喜んでインストールしたが、Ctrl + \ でことえり入力方式の切り替えができなくなった。が、どうやらこれは想定通りらしい。 Emacs23 (Cocoa Emacs) 入門から中毒まで : 紹介マニア Cocoa の場合は、OSレ…

Cocoa Emacs 23.1

これまでCarbon版を使っていたが、Cocoa 版を入手した。 Index - Atomized Cocoa 版だと、行数の表示とかが容易にできるようになっているらしい。 MYCOMの記事など読みながらいろいろやってみる予定。 http://journal.mycom.co.jp/column/osx/332/index.html…

VMware Fusion 3 アップグレード

Mac

VMware Fusion 2.0.x だと、どうやら Windows 7 が利用できないらしい。Windows 7 の仮想マシンを作りたい、という場合は、VMware Fusion 3 が必要なのだが、日本だとこれを販売しているのがアクト2という会社のようで、米国のVMwareのアカウントと別に日本…

MacProメモリ増設検討

Mac

今、自宅でMacProを使っている。今の搭載メモリは8GB。購入は2009年の5月ころだったか。そのころは、8GBあれば十分だろう、と思っていたけれども、仮想化がどんどん進んできたこのご時世、8GBじゃちょっと貧弱に感じるようになってきた。 自分の使っているM…

文字配列の連結-Version20101116

C

文字配列の連結-Version20101105 - Shammerismの内容に配列全体の文字数をカウントする - Shammerismをマージ。 char * concat_string_array(char * array[], int arrayLength){ char * value; if( arrayLength == 1 ){ value = array[0]; } else { int arra…

配列全体の文字数をカウントする

C

配列のサイズを同時に渡すようにしておけば何も難しいことはないと思われる。 int string_array_length(char * array[], int arrayLength){ int length, i; for( i = 0, length = 0 ; i < arrayLength ; i++ ){ length = length + strlen(array[i]); } lengt…

文字配列の連結-Version20101105

C

文字列の連結-malloc_20101101 - Shammerismに、2つの文字列を連結する関数を書いたが、実際にプログラムを書く際にはもっと多くの文字列を一度に連結したいと思うことが多い。大は小を兼ねる、とも言うので、複数の文字列を一つの文字列として返す関数を書…

文字列の連結-malloc_20101101

C

文字列の引数を2つ受け取って、それを連結したものを返す、というだけのシンプルな関数。これだけの関数なら普通に標準関数でありそうだが、探しても完全に期待通りのものはないので自作。といっても、文字列の連結 - Shammerismの処理を関数にしただけ。 #i…

Core ファイルの出力先を指定する

DEBUG HACKS からの引用。/etc/sysctl.conf に kernel.core_pattern を設定することで可能。 以下のようにする。 # cat /etc/sysctl.conf kernel.core_pattern = /var/core/%t-%e-%p-%c.core kernel.core_uses_pid = 0 # sysctl -p

ClozureCLでマルチバイト文字のバイト数を判定する

以下のようなプログラムを使用してバイト数を判定していたが、これだけではやっぱり不十分だったようだ。 (defun string-byte-size (s) (let ((count 0)) (when (stringp s) (let ((strings-list (coerce s 'list))) (dolist (i strings-list) (if (typep (c…

数値判定関数-Ver20101021

C

文字列が数値かどうか判定する - Shammerismで書いてみたが、動作しないケースがあったので書き直し。 #include <stdio.h> #include <string.h> #include <ctype.h> /* * If v is number, return 1. * If v is NOT number, return 0. */ int checknumber(char *v){ int len = strlen(v); </ctype.h></string.h></stdio.h>…

UDP Echo Client

C

サーバーを書いてみたので、次はクライアント。 #include <arpa/inet.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <unistd.h> void die_with_error(char *errorMessage) { perror(errorMessage); exit(1); } int main(int argc, char* args…</unistd.h></sys/socket.h></sys/types.h></string.h></stdlib.h></stdio.h></netinet/in.h></arpa/inet.h>

UDP Echo Server

C

C 言語で書いてみた。というか、TCP/IPソケットプログラミングC言語編の内容をほとんどコピーしているに近いのだが。 #include <arpa/inet.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> void die_with_error(char *errorMessage) { perror(errorMessage); exit(</unistd.h></string.h></stdlib.h></stdio.h></netinet/in.h></arpa/inet.h>…

ShellScript条件分岐ーif文-20101010

ShellScript条件分岐ーif文-20100921 - Shammerismのアップデート版。ファイルの比較を追加。 #!/bin/bash echo "IF example!"; if [ $# -ne 1 ];then echo "Usage: $0 [123]"; exit 1; fi # # Compare numbers # if [ $1 -eq 1 ];then echo "You are number…

URLからプロトコルを取り出す

C

HTTP Client 作成の一環で、引数に渡された文字列をURLと想定し、そこからプロトコル部分を抜き出すという処理を書いてみた。Cには、期待する形で使用できるsubstringがなかったのでそれを自作し、その自作したsubstringを使用する形で書いてみた。 #include <stdio.h></stdio.h>…

Thunderbirdのメール書式

仕事の都合で、会社ではWindowsPC、メールソフトにThunderbirdを使っている。 よく、ブラウザで表示させた文字をコピペで貼り付けるのだが、メールの書式がHTML形式になっており、文字の色とか下線とかも一緒にコピーされていて、いちいちそれを修正するのが…

substring 関数 - 20100930

C

substring 関数 - 20100926 - Shammerismで気になっていた、end が実際の文字列より大きい場合の対処を追加したバージョン。 #include <stdio.h> #include <stdlib.h> #include <string.h> char * substring(const char str[], int s, int e){ int start = s; int end = e; int length = e</string.h></stdlib.h></stdio.h>…

substring 関数 - 20100926

C

substring 関数を自作してみた。strlen と sizeof の違い、malloc の時にどのようにサイズを指定するかとか、よくわからない部分も多かったが、とりあえず書いてみた。渡した文字列引数の start 文字目から end 文字目まで返す、という点は確認した。でも en…