最近知って、少しずつ試しているのですが、ちょっと感動です。Ruby on Railsのインパクトに匹敵しているかもしれません。
とりあえず、動かすまでの時間がノーマルなStrutsとは比にならないほど短いです。XML地獄さよならです。
今週、来週をSAStruts週間として、色々と遊んでみようと思います。
コードなにがしの方に遊んだ足跡を残していきます。
2008年07月31日
2008年07月30日
FF3の新規タブボタンのアドオン
私の普段使っているブラウザはFireFox3なのですが、ちょっと不便だなぁと思っていたことがありました。それは、タブバーをダブルクリックして「新規タブを開く」という操作なんですが、タブをたくさん開いていくと、だんだんとクリックするスペースがなくなってきて、しまいには数ピクセルの隙間をダブルクリックしなければならなくなってしまうのですよね。
(これが、なかなかのストレス(хх。)
まあ、Ctrl+tすればいいのですが、マウスで操作を完結させたいときもあって、IE7みたいにタブバーに新規タブ開くボタンがあればいいのになぁと思っていました。
そしたらあるのですね、アドオンが。↓
New Tab Button on Tab Right
https://addons.mozilla.org/ja/firefox/addon/5338
早速インストールしましたら、ご機嫌な操作性です。
作成者の方に感謝。m(_ _)m
(これが、なかなかのストレス(хх。)
まあ、Ctrl+tすればいいのですが、マウスで操作を完結させたいときもあって、IE7みたいにタブバーに新規タブ開くボタンがあればいいのになぁと思っていました。
そしたらあるのですね、アドオンが。↓
New Tab Button on Tab Right
https://addons.mozilla.org/ja/firefox/addon/5338
早速インストールしましたら、ご機嫌な操作性です。
作成者の方に感謝。m(_ _)m
2008年07月29日
雨と夢のあとに1
死んでしまった後も、娘を守り続けた父親の物語です。
大切な人をずっと守りたいのに、もう自分には守ることができない。という悔恨、そして切なさをエロ神様・沢村一樹さんが熱演しています。
大切な人をずっと守りたいのに、もう自分には守ることができない。という悔恨、そして切なさをエロ神様・沢村一樹さんが熱演しています。
2008年07月28日
う〜ん。
どうしたんだろう?
というのは、今日は急にGoogle経由でのアクセス数が増えました。
/(-_-)\
先週までは、平日で大体10〜20ぐらいだったのが、今日は、70以上あります。春頃は、100/日ぐらいあったのが、減ってしまってがっかりしたのが、元にもどったのかなぁという、希望的観測もできますが、たまたまかなぁ?
というのは、今日は急にGoogle経由でのアクセス数が増えました。
/(-_-)\
先週までは、平日で大体10〜20ぐらいだったのが、今日は、70以上あります。春頃は、100/日ぐらいあったのが、減ってしまってがっかりしたのが、元にもどったのかなぁという、希望的観測もできますが、たまたまかなぁ?
2008年07月27日
今日も
暑かったですねぇ。
引きこもって27時間テレビをずっとみていました。
途中で、さんまさんとダウンタウンの絡みを見れて、なんか新鮮で得した気分でした。あれだけ、がっつりと絡んだのは初めて見たかもしれません。
引きこもって27時間テレビをずっとみていました。
途中で、さんまさんとダウンタウンの絡みを見れて、なんか新鮮で得した気分でした。あれだけ、がっつりと絡んだのは初めて見たかもしれません。
2008年07月26日
追加しました(StealthScannerクラス)
SYNスキャンなどのポートスキャンを行うLinux C++クラスを公開しました。ただし、レイヤー4(TCPヘッダ)を設定しているだけで、レイヤー2、3は、socketライブラリにおまかせなので、IPアドレスの詐称などは行えません。
TCP/IPの学習目的で作成しています。なので、もし使用される方がいれば、同様に学習目的でご使用下さいませ。
くれぐれも、ポートスキャンは自分の管理しているマシンへのみ行うようにして下さいね。外部のサーバをスキャンして、何か問題が発生しても、私は責任を負えません。
使い方はこんな感じです。
公開URLはページの→側にもありますが、
http://winter-tail.sakura.ne.jp
です。
TCP/IPの学習目的で作成しています。なので、もし使用される方がいれば、同様に学習目的でご使用下さいませ。
くれぐれも、ポートスキャンは自分の管理しているマシンへのみ行うようにして下さいね。外部のサーバをスキャンして、何か問題が発生しても、私は責任を負えません。
使い方はこんな感じです。
#include "StealthScanner.h"
int main(){
Socket::StartUp();
StealthScanner sock;
short res = sock.ScanPort("192.168.10.22", 80, TH_SYN);
printf("TCP control flags %04x, port is %s\n", res, (res == TH_SYN_ACK) ? "open" : "close");
Socket::CleanUp();
return 0;
}
公開URLはページの→側にもありますが、
http://winter-tail.sakura.ne.jp
です。
2008年07月25日
更新しました(RawSocketクラス)
ステルススキャンクラスの前準備です。。
2008.7.25 V1.0.3
・TCPヘッダ情報定義を追加
・ソリューションファイルをVisual C++ 2008へ変換しました。
公開URLはページの→側にもありますが、
http://winter-tail.sakura.ne.jp
です。
2008.7.25 V1.0.3
・TCPヘッダ情報定義を追加
・ソリューションファイルをVisual C++ 2008へ変換しました。
公開URLはページの→側にもありますが、
http://winter-tail.sakura.ne.jp
です。
2008年07月24日
派遣は、バブルの呪いか?
バブル崩壊後の”空白の10年”は、それまで連綿と先輩から後輩へ受け継がれてきた人材育成というバトンのリレーを断ち切ってしまいました。
そして、一度無くしてしまったバトンを取り返す努力をせずに、財務が弱体化していた企業は、規制緩和によって目の前にぶら下った”派遣”という甘い罠に安易に引っかかってしまいました。
(今思うと、この罠はあまりにも巧妙だったといえます)
”派遣”のような非正規雇用労働者の導入は、労務費の節減を可能にしましたが、同時に人材へ投資するということを放棄することでもありました。”派遣”では支払った分の成果しかでませんが、投資をした人材からは、投資した分の数倍、数十倍の成果を得られるかもしれないのにです。
このような非戦略的・非戦術的・非長期的な、つまり、”いきあたりばったり”な対策を行って短期的な収益UPを得た代償は、人材不足による日本経済の弱体化です。
本来、正規社員として責任を負って仕事を行い、鍛えられ成長するべき若者が、”派遣”という形態で働くということは、日本における人的資源の浪費以外になにものでもありません。
人的資源を食いつぶして短期的な収益を得た各企業、そして”派遣”の規制緩和を推進した政府の罪は重いです。よって、その罪を自覚し、軌道修正を行う努力をするべきなのが、”今”なのだと私は思います。
そうして、健全な社会になったときこそ、バブルの呪縛から解放されたといえるでしょう。
そして、一度無くしてしまったバトンを取り返す努力をせずに、財務が弱体化していた企業は、規制緩和によって目の前にぶら下った”派遣”という甘い罠に安易に引っかかってしまいました。
(今思うと、この罠はあまりにも巧妙だったといえます)
”派遣”のような非正規雇用労働者の導入は、労務費の節減を可能にしましたが、同時に人材へ投資するということを放棄することでもありました。”派遣”では支払った分の成果しかでませんが、投資をした人材からは、投資した分の数倍、数十倍の成果を得られるかもしれないのにです。
このような非戦略的・非戦術的・非長期的な、つまり、”いきあたりばったり”な対策を行って短期的な収益UPを得た代償は、人材不足による日本経済の弱体化です。
本来、正規社員として責任を負って仕事を行い、鍛えられ成長するべき若者が、”派遣”という形態で働くということは、日本における人的資源の浪費以外になにものでもありません。
人的資源を食いつぶして短期的な収益を得た各企業、そして”派遣”の規制緩和を推進した政府の罪は重いです。よって、その罪を自覚し、軌道修正を行う努力をするべきなのが、”今”なのだと私は思います。
そうして、健全な社会になったときこそ、バブルの呪縛から解放されたといえるでしょう。
2008年07月23日
更新しました(Socketクラス)
2008.7.22 V1.0.7
Visual C++ 2008対応を行いました。
・#define AI_NUMERICSERV を削除
・#include <stdio.h> を追加
2008年07月22日
自マシンのIPアドレスを取得
Linux C/C++(ソースのコンパイルはg++で行っています)で、ネットワークデバイス名に対応するIPアドレスを取得する関数です。
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <errno.h>
#include <linux/if.h>
#include <sys/ioctl.h>
const char* GetMyIpAddr(const char* device_name);
int main(){
const char* r = GetMyIpAddr("eth0");
printf("%s\n", r);
return 0;
}
/**
* 自マシンのIPアドレスを取得します。
* @param デバイス名(e.g. "eth0")
* @return 「数値とドット」記法のアドレス
*/
const char* GetMyIpAddr(const char* device_name) {
//指定したデバイス名のIPアドレスを取得します。
int s = socket(AF_INET, SOCK_STREAM, 0);
struct ifreq ifr;
ifr.ifr_addr.sa_family = AF_INET;
strcpy(ifr.ifr_name, device_name);
ioctl(s, SIOCGIFADDR, &ifr);
close(s);
struct sockaddr_in addr;
memcpy( &addr, &ifr.ifr_ifru.ifru_addr, sizeof(struct sockaddr_in) );
return inet_ntoa(addr.sin_addr);
}
2008年07月20日
豚タンとジャガイモと長ネギの炒め物
ベランダで育てていたタカノツメが実ったので、これを使った料理を創作してみました。さっぱりした野菜の甘みとタカノツメの辛味のコントラストが良い感じです。
【材料(2人前ぐらい)】
豚タン・・・100gぐらい
ジャガイモ・・・1個
長ネギ・・・1本
酒・・・15ccぐらい
塩コショウ
タカノツメ・・・2ふさ
にんにく・・・1片
【プロトコル】
(1)ジャガイモと長ネギを千切りにします。
(2)ジャガイモは水で余分なデンプンを洗います。
(3)フライパンにサラダ油をひいて、ジャガイモを炒めて火が通ったら、皿によけておきます。
(4)フライパンにサラダ油をひいて、にんにくとタカノツメを投入。
(5)豚タンを投入。炒めます。
(6)豚タンに火が通ったら、長ネギ投入。炒めます。
(7)酒を投入。
(8)さっき炒めたジャガイモを投入します。
(9)塩・コショウで調味します。
(10)出来上がりです。
【材料(2人前ぐらい)】
豚タン・・・100gぐらい
ジャガイモ・・・1個
長ネギ・・・1本
酒・・・15ccぐらい
塩コショウ
タカノツメ・・・2ふさ
にんにく・・・1片
【プロトコル】
(1)ジャガイモと長ネギを千切りにします。
(2)ジャガイモは水で余分なデンプンを洗います。
(3)フライパンにサラダ油をひいて、ジャガイモを炒めて火が通ったら、皿によけておきます。
(4)フライパンにサラダ油をひいて、にんにくとタカノツメを投入。
(5)豚タンを投入。炒めます。
(6)豚タンに火が通ったら、長ネギ投入。炒めます。
(7)酒を投入。
(8)さっき炒めたジャガイモを投入します。
(9)塩・コショウで調味します。
(10)出来上がりです。
2008年07月19日
Rubyで1970/1/1からの経過日数を求める
(y, m, d) = "2008/7/11".split(/\//)
target_sec = Time.mktime(y, m, d).to_i
oneday_sec = 24 * 60 * 60
pass_days = (target_sec / oneday_sec).ceil
p pass_days
target_sec = Time.mktime(y, m, d).to_i
oneday_sec = 24 * 60 * 60
pass_days = (target_sec / oneday_sec).ceil
p pass_days
2008年07月18日
公開しました(SocketUtilクラス)。
新たに公開したのは、↓です。
■SocketUtilクラス(C/C++)Windows,Linux共用
ソケット関連のヘルパー的な処理を行います。
/**
* サービス名からポート番号を獲得する.
* @param char* lpszServ : サービス名
* @return ポート番号.
*/
static unsigned short GetServByName(char* lpszServ);
/**
* ネットワークバイトオーダでのインターネット
* ホストアドレスを「数値とドット」記法へ変換する。
* @param addr アドレス
* @return 「数値とドット」記法のアドレス
* @notice 非マルチスレッドセーフ
*/
static const char* N2A(unsigned int addr);
/**
* 自マシンのIPアドレスを取得します。
* @param デバイス名(e.g. "eth0")
* @return 「数値とドット」記法のアドレス
*/
static const char* GetMyIpAddr(const char* device_name);
公開URLはページの→側にもありますが、
http://winter-tail.sakura.ne.jp
です。
■SocketUtilクラス(C/C++)Windows,Linux共用
ソケット関連のヘルパー的な処理を行います。
/**
* サービス名からポート番号を獲得する.
* @param char* lpszServ : サービス名
* @return ポート番号.
*/
static unsigned short GetServByName(char* lpszServ);
/**
* ネットワークバイトオーダでのインターネット
* ホストアドレスを「数値とドット」記法へ変換する。
* @param addr アドレス
* @return 「数値とドット」記法のアドレス
* @notice 非マルチスレッドセーフ
*/
static const char* N2A(unsigned int addr);
/**
* 自マシンのIPアドレスを取得します。
* @param デバイス名(e.g. "eth0")
* @return 「数値とドット」記法のアドレス
*/
static const char* GetMyIpAddr(const char* device_name);
公開URLはページの→側にもありますが、
http://winter-tail.sakura.ne.jp
です。
2008年07月17日
ヒット!
2008年07月16日
ステルススキャンクラス
とりあえずWindowsは置いておいて、Linuxで動作するC++版のステルススキャンクラスを作成中です。
まあ、とりあえずはレイヤー4(トランスポート層:TCP)のヘッダ作成からしようかと。IPスプーフィングは別にできなくても良いですしね。
まあ、とりあえずはレイヤー4(トランスポート層:TCP)のヘッダ作成からしようかと。IPスプーフィングは別にできなくても良いですしね。
2008年07月15日
WindowsのWinSockでSYNスキャン
ってできるんでしょうか?
生ソケットでIPPROTP_IPを指定して、
setsockoptでIP_HDRINCLを設定しても、IPヘッダにIPPROTO_TCPを設定してsendtoで送信するとエラーコード10004で送信失敗します。
色々調べても、はっきりしないのですよね。IPPROTP_IPを指定できるということは、レイヤー3以降はコントロールできてもおかしくないのですがね・・・セキュリティ的に制限されている可能性もあるなぁ。
う〜ん悩み中です。
(~ヘ~;)ウーン
#というかwinpcapを使えば済むのでしょうね。
生ソケットでIPPROTP_IPを指定して、
setsockoptでIP_HDRINCLを設定しても、IPヘッダにIPPROTO_TCPを設定してsendtoで送信するとエラーコード10004で送信失敗します。
色々調べても、はっきりしないのですよね。IPPROTP_IPを指定できるということは、レイヤー3以降はコントロールできてもおかしくないのですがね・・・セキュリティ的に制限されている可能性もあるなぁ。
う〜ん悩み中です。
(~ヘ~;)ウーン
#というかwinpcapを使えば済むのでしょうね。
2008年07月13日
暑いですねぇ
なんか暑いので、家にひきこもってしまいました。
アンニュイな一日でした。
(↑ちょっと使ってみたかった
)
アンニュイな一日でした。
(↑ちょっと使ってみたかった

2008年07月12日
2008年07月11日
正規表現で、渡された文字列に非半角数字があるか?のチェック(JavaScript編)
//渡された文字列に非半角数字があるか?
//JavaScriptの正規表現を使用して、渡された文字列に非半角数字があるかチェックします。
//JavaScript 正規表現 非半角数字
var str = "0123456789";
if (str.match(/[^0-9]/)) {
alert("文字列に非半角数字が存在する");
} else {
alert("文字列に非半角数字は存在しない");
}
//↓
//"文字列に非半角数字は存在しない"
2008年07月10日
ことの葉ひらひら その25
「自分に嘘をつかない人間は、最も扱いづらく、最も信頼できる人間です。」
by 台北猫々
by 台北猫々