Home

S.Satoshiのブログ

工シス無線LANに楽に入れるブックマークレットを書いた

<pre>javascript:(function(){document.getElementsByName("userid").item(0).value="YOURUSERNAME";document.getElementsByName("password").item(0).value=String.fromCharCode(YOURPASSWORD_CHAR_CODE);document.getElementsByTagName("form").item(0).submit();}())</pre>

こんなかんじ。ユーザ名とパスワードは自分で、パスワードは平文だと流石にアレなので、CharCodeでやると良いんじゃないかと。

工シスの授業の中間レビュー(主に3年2学期)

Twitterでちょっと書いたので、そのままコピペして後から参照しやすい様にしておく。参考になるかは、しらん。

【システム最適化】
レジュメが優秀なので授業よりも予習や復習がよく効いてくる科目。制御工学よりは具体的で比較的簡単に思える。前半は算数(線形最適化)、後半は数学(非線形最適化)。かなり数学ベースなので数学が好きな人も是非。

【人工知能】
僕の年は休講が多すぎてまだ内容がよく分からないんだけど、とりあえず情報探索などを含んだ一般的な人工知能分野について学ぶ。人工知能概論(著:荒屋真二)という入門書があって内容がかなり近しい。データ構造とアルゴリズムと繋がる部分が少しだけあるようだが誤差の範囲

【数値解析】
主にコンピュータでデータを処理する科目。C言語による課題がほぼ毎週出るので、C言語に触れたい人は取ると良いかもしれない。プログラミングの授業ではないのだが、コンピュータを実践的に用いる方法について学べる。内容は割と簡単でネット上の情報も比較的豊富。

【システム制御工学II】
工シスお得意の、実験と繋がるので実験をやるのが3学期になってる人達が置いてきぼり食らう科目。Iとは先生が違うが内容は繋がっているので(僕みたいに)2年で複素解析を落とした人は、連鎖でこれも取りづらくなる。内容も結構難しいが制御系に行くなら必須。

【メカトロニクス材料概論】
去年落として引き続き。工シス知/機はこれか某バイオを取らなければならない、鬼か。 授業自体は結構分かりやすいし、高校物理の延長みたいな所もあり、良い科目ではあると思う。 高校物理をやっていなくて1年次の力学で苦戦した人には辛いかもしれない。

【情報理論】
最初に理論屋っぽい基礎をたたき込む所で挫折する人も多そう。後半は実践的な理論が増えてきて具体的なので分かりやすい。確率統計からの流れで確率統計が分からないと理解出来ない様に思われるが、それほど関係が深い訳でもないので問題無い

AdiumからISO-2022-JPなIRCサーバーと通信する方法

タイトルのまんまです。

Adiumのベータ版がIRCに対応していて結構優秀なのですが、文字コードの辺りが残念な感じです。ISO-2022-JPサーバに繋ぐと発言は出来るのですが、受信が文字化けします。

ところでIRCには中間サーバー(プロキシサーバー)が色々ありまして、
デーモンがIRCにつなぎ、クライアントはデーモンをIRCサーバーに見立てて繋ぐ、という事ができるみたいです。

と言うわけで今回はその中間サーバーであるところのTiarraを使ってAdiumからISO-2022-JPなサーバーに繋いでみました。

ま、基本的にはIRC Proxy Tiarraの使い方というページを見れば良いのですが…ちょっと引っかかった点を列挙しておきます。

  • 文字コードの設定文字列は”iso-2022-jp”と”utf8″、ハイフンの有無がややこしい
  • name:で設定した文字を覚えておいて下さい(ex:2ch
  • separater文字列(標準では@)は適当に変更、僕は<s.e.p>と書きました
  • Adiumからチャンネルに繋ぐときは#チャンネル名セパレータnameです。”#Channel<s.e.p>2ch”みたいな感じ
  • パスワード(cryptedなので生パスじゃないけど)が最初設定されててrejectされるので、忘れずに変更しておきましょう

まーこんなもんです。コメント頂けたらもう少しまともな記事にするかも知れません。

IRCははじめたばっかりでよく分からないので、何かオススメとかあったら教えて下さい。

snow Leopard にはスキャナ共有があるらしい。

スキャナ共有

たぶんsnow Leopard同士用。複合機が増えてきてるのでこういうのは嬉しいですね。
僕の持ってるAir mac expressがファームウェアアップデートとかで対応してくれたら嬉しいのですが、まぁ無理かなぁ。

SimplePieでEUC-JPのフィードを読み込むと化ける

たくさんのRSS/ATOMを解析ーなんてのは、PHPでWebアプリとか作ってると良くある事なのですが、そんなときに便利なのがBSDライセンスで商用利用もOKなFeedパーサ「SimplePie」

大変便利なのですが、なぜかEUC-JPだと文字化けしてしまいました。

どうやらEUC-JPをLatin-1だと思い込んでご丁寧に内部エンコードに変換してくださっているようです。せめてそのままなら扱いやすいのに…これだとmb_detect_encodingしてもUTF-8だと誤解される模様。

試行錯誤の末得た結論は、utf8→Latin1変換の後、文字コード判別の後EUC-JP(等)→utf8変換を行う、というもの。全く持って酷い方法ですが……上手くは行きました。

ソースはこんな感じ。

function mb_convert_utf8($input){
	if(is_array($input)){
		foreach($input as $key=>$value){
			$output[$key] = mb_convert_utf8($value);
		}
		return $output;
	}else{
		if(mb_detect_encoding(utf8_decode($input))=='ASCII'){
			return $input;
		}else{
			return mb_convert_encoding(utf8_decode($input) ,"UTF-8", "ASCII,JIS,EUC-JP,SJIS");
		}
	}
}

※ 僕の書いていたプログラムの都合上、再帰で配列に対応しました。オブジェクトとか渡すとバグると思います。こだわる人は書き足せば良いんじゃないかな。
※ ライセンス?このソースに関しては好きな様にお使いください。権利を行使とかは特にしませんので。

Wordpressのウィジェットを複数にしたテーマ作成について(の正しい情報)

あちこちのブログで間違った事ばかり書いているので混乱させられましたが、結局こうすれば良いと言うのが分かったのでメモ。

トラバ先で大体合ってるんだけど、register_sidebars関数の第一引数についての説明が誤っています。「widget番号」ではなく「widgetの個数」です。なので管理画面に一個多く出てきてしまうんですよね。

・functions.php

if ( function_exists('register_sidebars') ) {
	register_sidebars(2,array(
		'before_widget' => '<div class="widget">',
		'after_widget' => '</div>',
		'before_title' => '<h2 class="header">',
		'after_title' => '</h2>',
	));
}

・sidebar.php(index.phpでも良い)

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(1) ) : ?>
<?php endif; ?>

および

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(2) ) : ?>
<?php endif; ?>
if (
function_exists('register_sidebars') ) {
register_sidebars(2,array(
'before_widget' => '<div>',
'after_widget' => '</div>',
'before_title' => '<h2>',
'after_title' => '</h2>',
));

こんな感じです。register_sidebars(2)だとかregister_sidebars関数を二回呼び出してるのとかありますが、違います。
ただし、2つのサイドバーで別々の体裁にしたい場合や名前をきちんとつけたい場合は、register_sidebars関数の第一引数を1にしたのを2回呼ぶのが適当です。その場合のソースはこんな感じ。

if ( function_exists('register_sidebars') ) {
	register_sidebars(1,array(
		'name' => '左サイドバー' ,
		'before_widget' => '<div class="widget1">',
		'after_widget' => '</div>',
		'before_title' => '<h2 class="header">',
		'after_title' => '</h2>',
	));
	register_sidebars(1,array(
		'name' => '右サイドバー' ,
		'before_widget' => '<div class="widget2">',
		'after_widget' => '</div>',
		'before_title' => '<h2 class="header">',
		'after_title' => '</h2>',
	));
}

名前がきちんと出ない時は、functions.phpの文字コードとか確認してみると良いです。

また、3つとか4つとか使う時はregister_sidebars関数の第一引数の数字の合計が使えるウィジェットの数を合わせます。全部同じHTMLで、そのテーマを自分で使うならregister_sidebars(4,…..)と呼び出せば良いですし、配布目的など名前をきちんとつけたいならregister_sidebars(1,array(’name’=>’HOGE’……..))を4回呼び出せば良いでしょう。

http://codex.wordpress.org/WordPress_Widgets_Api/register_sidebars にリファレンスもあるので見ると良いと思います。

続・MacBookにSSDを導入してみました。

前回は導入直後のSSDとHDDの比較を書きました。今度は「SSDの劣化」について書いてみたいと思います。といってもまだ一ヶ月しか使ってませんが。

5/13でのベンチマーク

ssd-bench

6/12でのベンチマーク

ssd-0612

いやー、結構下がってますね。使っててもそんなに感じないし、前使っていたHDDよりはずっと早いのでまぁぼちぼちですかね。

皆さんが気になるであろう「プチフリ」問題ですが、ディスクアクセスが激しいときにそれっぽい事がおきます。特に大規模なアップデートをしている時とか、重いソフトをインストールしている時とか。

ただ普段使ってる時にはOSの起動も早いし、便利ですかね。

jarファイルとかclassファイルとかの覚え書き。

Genkidamaの改造に手間取ったので、覚え書き。

  • jarファイルはzip。.zipつけて解凍出来る。
    • でもzip圧縮すれば使えるってものでもないのでjarコマンドでまとめる必要あり。
  • javacでのコンパイルにはclassもしくはjavaファイルが必要。これはカレントディレクトリからみて「指定した」位置にあれば良い。まともなプロジェクトなら「正しい」カレントディレクトリからjavacすればきちんと生成される。
  • Shift_JISのプロジェクトもある。謎。UTF-8じゃないとコンパイル出来ないよ…ね?

手っ取り早く改造するには…

  1. svnとかでソース貰ってくる
  2. jarを解凍してclassファイルをGETする。MANIFESTファイルも。
  3. 改造したいクラスのみjavacでコンパイル。この時カレントディレクトリはソース群がある所になる。作ったjarの構成が似てるかをチェックすると良い。
  4. jar cfm ../unko.jar ../<MANIFESTFILE> * てな感じでjarにまとめる。

人間は集まれば集まるほど馬鹿になる事への具体的な対策 (SF思索)

たまにこんな事も書いてみようかと。どうみてもサマー/タイム/トラベラーのアエリズムの影響…

さて本題。

僕は常々、人間が集まると、集まっただけ馬鹿になると思っている。一人よりも二人の方が怪しいし、3人になれば軽く信用など出来ない。10人、100人となるにつれ、僕は彼らと距離を置く。

 

現代はともかく、人類の歴史を考えれば殆どの時代で集団は他の集団と戦っている。否、現代ですら「経済」という枠の中で戦っているではないか。

 

全文を読む

ubuntu Serverのmod_log_sqlでハマった

サーバーのログをPHPからいじりたかったのだけど、やっぱMySQLの方が楽だよねーと思って

mod_log_sqlを導入。

ubuntu serverだとapt-get install libapache2-mod-log-sql で入る。

で、http://www.freewheelburning.com/linux/mod_log_sql.htmlあたりを参考に適当にapache2 restart….

何故か上手く行かない

さんざん悩んだ挙げ句、原因は思わぬ所に…

apt-get install libapache2-mod-log-sql-mysql

そう、このMYSQL用のモジュールも無いと動かないのである。

入れたら普通に動いた。はぁ…

Home

Search
Feeds
Meta

Return to page top