チャット作った

Tornado+SQLiteで作りました。勉強になりました。

一言で表すと「限定公開や一般公開などと公開先を柔軟に変更ができる簡易Webチャット」。

スレッドの作成主のみ許可ユーザ設定を触れます。remove、一覧機能はつけてないです。つけようと思ったら簡単なので、要望があれば…ww

基本的にエラーなどはもとのページなどにリダイレクトさせてます。アラートとかを出すのが面倒なので。。

一番大変だったのは認証メール送信のところですね。あけおメーラーのコードを一部流用しました。送信に時間がかかってしまうので、その間だけ固まったように見えてしまうのが課題。

見た目は気にしてないw

ちなみに、パスワードはSHA254でハッシュ化されてます。ただし、CSRF対策はしてないのであくまでも「簡易チャット」と考えてください。XSS対策はちゃんとエスケープしてます。クッキーの暗号鍵はあのpasswordmaker.pyで作ってますw 意外と便利。

動かすのは

$ python chat.py & 

としてますw

メモ: 一覧はjobs、フォアグラウンドにするのはfg (番号)。

.oO(使ってくれる人がいるといいなぁ…w

chat : http://lga128.tk:8888/

ソースコード : http://dl.dropbox.com/u/17196206/chat.tar.gz

ソースコードがたったの459行なのには注目です。外部に結構出してるデータもあるので合わせるともうちょっといきますが、それでも。

というかNginxのディレクトリ設定がわからん。。。 Apacheから移行したものの、設定方法がわからなくて詰んでるw (えんじんえっくすって読むのね) ソースコードが公開できない。。。ww 仕方ないのでDropboxから。最初はNginxでリバースプロキシ使ってlga128.tk/chatでつながるようにしたかったのですが、同じく設定がわかりませんでした。

(ところで、世界樹の迷宮IVが先ほど発表になったそうですね!!!! セカキューらしさが出ていてすごく魅力的です。3DSを買わないといけないからかなり迷うけど。。 たぶん…買わないかなぁ。。 実はIIIも時間がなくて途中で放り投げているのですが、久しぶりにやってみようかな。)

またM570交換してもらった

M570を買ってから1年ちょっと経過しました。

結構使ってるのに電池はまだまだ余裕です。目に見える劣化は表面のLogicoolロゴが見えなくなったことくらいです。すごい。

でも先日から左クリックボタンの調子が悪くて、重く、奥まで押し込んでやらないと反応してくれなくなりました。ということでまた交換してもらいました。

さすがLogicool、神対応でなんと「2回目なので保証書・レシートの提示はいらない。勝手に発送する。」とのこと。すごい。すごすぎる。俺が詐欺師だったらどうするつもりなんだろ。

さらになんと、 ……「古い製品は返送の必要はない。そちらで処分してほしい」 すげぇ。…すげぇ。

なんかこっちが申し訳なくなってきます。3営業日以内に届くらしいです。

さらにトランセンドのDAP(MP330)が「ミニプラグに触れると音が途切れる」という状態になってしまいました。(悪霊?w) こちらもカスタマーセンターに連絡したら交換はOKしてくれたものの、ちょっとめんどくさい。配達記録の残る手段(メール便?)で指定されたもの、付属品をすべて送って、1~2週間後に代替品が帰ってくる。とのこと。送料は自己負担(メール便なら80円だけど)。うーん、一番大きいのが1~2週間DAPが使えないと通学時の暇つぶし手段がなくなること。困った。

(こういうところに企業の信念が垣間見える….w トランセンドはまだいいほうだけどね。Amazonの納品書をなくしてしまったので購入履歴画面のキャプチャでもいいかと聞いたらあっさりOKされたのは良かった。)

PythonのSQLite3でキーがないときの挙動がなんかおかしい?

SQLite3でキーがなかった際の挙動を確認していたのですが、意味がわからなすぎて困ってます。なんだこれは….

>>> import sqlite3
>>> con = sqlite3.connect('chat.db')
>>> x = con.execute('''select threadname from threadlist where threadno=:threadno''',{'threadno':'7fddc'})
>>> for threadname in x:
...     print threadname
...

ん!? 何も表示されない…!? NoneであれFalseであれ表示されるんじゃ….

>>> for threadname in x:
...     y = threadname
...
>>> y
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'y' is not defined
>>> print y
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'y' is not defined

えっ えっ

>>> for threadname in x:
...     if not threadname:
...             print 'None'
... 

無反応。
ハァ!?

意味がわからない

MOTOROLA PHOTON(ISW11M)を2週間ほど使った感想

買ってからもう2週間もたちました。そろそろレビューしていい頃かなと思い書いてみます。

良いところ

  • アイドル時の消費電力が少ない
  • 液晶が綺麗
  • ガラスに指紋がつきにくい
  • 指紋がついてもすぐ拭き取れる
  • 筐体が滑りにくい
  • そこそこ軽い
  • WiMAX・無線LANのコネクションが早い
  • 性能が高く、レスポンスが良い
  • 発熱がそこまで多くない
  • デザインが良い
  • ガラスマじゃない
  • 電源を切らなくてもMicroSDを入れ替えできる(アンマウントしましょう)
  • 充電完了までが早い

良くないところ

 

  • 抱き合わせアプリが多い
  • 使用時の消費電力が大きい
  • USBテザリングがWindowsじゃないと使えない
  • バックパネルが開けづらい

こんなかんじです。アイドルしたままだと3日は持ちます。が、Tegra2なので使用時の消費電力は馬鹿になりません。今のところ出先で0になったことはないのでそこまで深刻でもないですが。

抱き合わせアプリは非表示にすれば問題はありません。ウザいですが。root権限でインストールされているのでタスクキラーが意味がないのでちょっとアレです。

全体的にバランスよく優れた一台だと思います。root権限をとっていじるのもいいですが、めんどくさいのでやってません。

保護フィルムは意味がないので貼ってないです。ケースも買ってないです。なんと(俺にしては)信じられないことに今まで一度も落としてません!

唯一傷がつきやすい部分が立てかけるための棒の端です。どうしても擦り傷がついてしまいます。仕方がありませんが。

あと、壁紙の変更がちょっとめんどくさいです。これはほとんどのAndroid端末に共通することなのであえて欠点には入れませんでした。1080×960の画像を作成して、自動壁紙せっちゃんなどのアプリを使って設定します。デフォルトの壁紙設定機能だと勝手にトリミングされてしまいます。誰得。

(なんかM570の左クリックボタンの感触がおかしい。。どうした。。)

CASIO F-105Wの隠し機能的な

偶然見つけました。軽くググったのですがヒットしなかったので書きます。

探そうと思ったきっかけは光を当てて透明のパターンを見ていたら右上に丸いパターンがあって、もしかしてこれは*REM…!?とおもってつけるコマンドがないかと。

*(一部CASIO時計に付いているリマインダー機能)

で、右下のボタンを長押ししていたら出ました。CASIO!!

あと、全ボタン(左上→右下→左下)を押したらすべての液晶が表示されました。液晶チェック用?

残念ながら右上の丸は点灯していなかったのでただの空きパターンと思われます。それともこれでも表示されないとかもあり得るけどw

簡易チャットは認証メールの送信のところを作ってます。そのうち完成するといいですね

JavaScript第5版購入しました!

結構お高いんですが、ついに買いました。実は初めて買う新品のオライリー本です。

オライリー直販からLinuxFoundation割引で-\800、送料は\300で差し引き-\500で買えました。

まだ中身はほとんど読んでないです。とりあえず今作ってる簡易チャットを完成させてからにしたいですね。

うーん、初めてのPython、1kケチらずに第3版買っておけばよかった……。やっぱり第2版にはない情報も。。

Xubuntu11.10に移行しました

ところどころdisってて申し訳ありません。

なんだかUnityもGnome3も糞なので Ubuntu11.04のままなのですが、そろそろ先のことも考えなければ…と思い、とりあえずLinuxMint12に移行してみました。不安定だったりして、正直なところ期待はずれでした。

で、ふとXfceという選択肢を思い出し、GentooにXfce入れれば…!! とか思い立ったのですが、ディストリビューションの入れ替えにあまり時間を掛けたくないので、UbuntuベースのXfceがデフォルトWMに設定されているXubuntuにすることにしました。

インストールは特にUbuntuと変わりませんでした。

ファーストインプレッションは「かっこいい」ですかね。洗練された感じでいいかんじです。Gnomeとは大違いで 軽い(はずですが、実際には結構もたつきます)です。ランチャー(ポインタを近づけると表示)もついてます。あと、デフォルトでGIMPが入ってます

まぁ使っているうちにGnomeの安定感と見た目だけではないUXに気づきましたが。Gnomeで完全に慣れてしまっているのでちょっと問題がいくつか。

  • ControlとCapsLockを入れ替えたい
  • インプットメソッドトグルに割り当てているCtrl+JをChromiumで使用するとibusじゃなくてChromiumが優先されてダウンロードページが開かれてしまう
  • メニューの編集方法がわからん
  • お気に入りのアプリケーションが保持されない

ControlとCapsLockを入れ替えたい(解決)
は設定ファイルの編集で解決。Gnomeだとワンクリックでできたんだけどなぁ。。。
参考にさせていただいたページ
XFCEでCAPSLOCKとCTRLキーを入れ替える (こんな方法もあったんですね。。最初から知っていれば楽だったのに。。。w)

インプットメソッドトグルに割り当てているCtrl+JをChromiumで使用するとibusじゃなくてChromiumが優先されてダウンロードページが開かれてしまう(半分解決)
な…なにを言っているのかさっぱりわからねーと思うが…
Ctrl+JをIM変換に割り当てる癖があって、Ubuntuではちゃんとibusが受け取ってくれていたのに、XubuntuではChromiumと競合しているキーボードショートカットがChromiumに奪われてしまった。しかたないので色々試した結果、ShortcutManagerというChromeエクステンションでキーボードショートカットを書き換えることにした。でも既存のキーボードショートカットを無効という設定は出来ず、JSで var i;というむりやりな方法をとった。うーん、、、w でも起動して最初に開かれるタブでは効かない。たまにうまくいかないこともあるし、よくわからん。。。w
俺の癖を治すべきなのかなぁ。。でもほかにいいショートカットがない。fはfindでよく使うし、Spaceは大きいから面倒。だってAlt+`とかめんどくさすぎ。。

メニューの編集方法がわからん(未解決)
~/.config//xfce4/desktop/menu.xml なんてないんですけど…..
どうにかしたいところです。。。。

お気に入りのアプリケーションが保持されない(解決)
そのうち治りました()()

ところで、クレバリー1,2号店が閉店(インターネット館に統合)するそうですね。ショップが消えていくのは悲しいですね。唯一のキーボード専門店でしたし。あの量を「触れる」のはほかにしらない。セール開催するらしいですが、まぁ今のACK-230Uで満足しているので突入はしないことにします。どうやら再開発らしいので、跡地に何が立つか楽しみです。お願いだからもうアイドルはやめてくれ

Xfceはわかりにくいし安定性が今ひとつだけど、見た目と軽さはいいですね。X60sにも入れよう… TwitterクライアントはHototを使い始めました。軽くて多機能で、ながらにはいいですね

結局こうなりました

(改行がなんかおかしいんだけど。。。)

MNP乞食してMOTOROLA PHOTON+35000円を手に入れた

(写真は初期状態)

よっしゃあぁぁぁぁぁぁぁ

最近LYNXに性能と互換性で不満を感じていて、さらに学割シーズン、さらにWiMAXの1年契約満了ということでauのMOTOROLA PHOTON(ISW11M)を契約してきました!! 一括0円で!! CB35kで!!!!!

やったね。学割/誰でも割/家族割などをかけて、結局WiMAX+3G定額(ISフラット)でなんと今のWiMAX(3800円)とほとんど同じ月額(約4000円)になりました。安心ケータイサポートは即解約w

流れ

  • 昼前にSoftBank目黒店で740SC(プリモバイル)(1970円くらい)と3000円チャージ
  • 飯食ってからSoftBank中目黒店でMNP申請(申請料2100円)
  • すぐ近くのテルル中目黒店でauにMNP

費用: 2000+3000+2100=7100円

利益: 27900円

道具として買ってきた740SC

(CBは後日(2or3ヶ月後の末日)発送。どっちかは忘れた。。。)

箱が凝ってます(完全に閉じた状態)。下に引っ張り出します。

とりあえず起動。もとろーらです。レスポンスいいですね。デュアルコアですよデュアルコア。Tegra2….CortexA9…..

\グリー/ \ドッドッドリランド/ が最初から入ってるのはウザいです。root化してアンインストールしようかと思いましたが、見えなくすればそんなに気にならないのでめんどくさいので無視。

Androidマーケット、遠隔インストールができるとか知らなかった。PCからだとインストールが楽。入力感覚ですが、やっぱりキーボードのほうがいいですね。そのうちなれるんじゃないかなと思いますが。

(もう一台5円運用で欲しかったなぁ…..w

角を落としたデザインはなかなかいいんじゃないかなと思います。

今のところケース/保護フィルムは購入しない予定です。ゴリラガラスだし、必要無さそうだし

ところで、PHOTONにはWebtopという面白い機能があります。別途8kのクレードルを買う必要がありますが、本体のHDMIとUSBに接続してこれを超小型のSTB(というかネット閲覧機)として使えます。要らんけど。Ubuntuがベースだそうで、ちょっとおもしろそうです。やっぱり要らんけど。

(一番興味を引いたのが、「AndroidとWebTopが同時起動できる」こと。OSを同時起動…WebTopは仮想化でもされてるんでしょうか。気になります。要らんけど。)

そういえば、740SCの処分どうしようか。査定だしたら500円だと。

これからはPHOTONからWiMAXテザリングするから持ち物が減って楽ですね。

ランダムパスワード作成スクリプト作った

引数で指定した長さのASCII文字(制御記号は除く)をランダムに並べて出力するだけ。WPA2のパスワード作成用に組んでみた。
0×21~0x7eまでが文字なので、それをランダムでchr()に渡して文字化しています。こういう手法は思いつかなかった。

#coding:utf-8
import random
import sys

chartimes = sys.argv[1]
chartimes = int(chartimes)

outputstr = ''

for num in range(chartimes):
	outputstr+=chr(random.randint(33,126))

print outputstr

アキバでいろいろ(キーボード、HDD、ThinkPad保守部品とか)買ってきた

いつもは報告しませんが、書きたくなりましたw

  • ばおー MicroSDHC(8GB)(Class4)(GigaStone製) 390円

いや、安いw 他にもすごく安いのがたくさんあって驚きました。ここまでやすくなってるのか….. このMicroSDはNetwalkerで他のOSを試したりするように使う予定です。ちょうどねこさんがいて、気づかれてたみたいww 何という偶然ww (気づけなかった。。w

  • インバース ジャンクHDD(3.5inIDE,80GB) 400円

これも安い。400円…..ジャンクHDDはあると便利だけど、死んでるかチェックするのが面倒。。

  • 若松通商(2F PC/PLAZA) ThinkPadX60用ネジ隠しシール 360円

ちょっと一枚なくて気になってたのですが、ThinkPad専門店として有名なここに行ってみたらありましたw (まぁそんなことは忘れてて、行きあたりばったりだったんですがw セットになってるので、せっかくなので全部交換しました

  • 同上 ’2×6′ネジ 100円

X60s底面用ネジ。安いですね。10本入。ネジの形状がちょっと違いましたが、ピッチはおんなじなので特に問題はないのではないかと思います。純正の側面が完全なT字型のネジであるのに対し、これは皿ネジでした。また、頭の部分も少し小さめでした(こちらは問題なさそう)店員さんにX60底面用ネジを聞いたらこれをだしてきたので、まぁ(間違えじゃなければ)いいのでしょう。錆びている物/ネジが潰れているものを交換しました。

Lenovo純正キーボードです。うわ、やっすと思って即買いw (考えてみれば中古技術書一冊分なんですけどねw) 実際触ってみたら、荷重圧がすごい重かったり、ギシギシ軋んだりであんまり使う気にはなりませんでした。うーん…..w 見た目は好みなんですけどねえ。この価格帯で、ACK-230Uを超えるタッチのキーボードにはまだお目にかかったことがない。。

ThinkPad 外付けUSBキーボード(US)欲しいなぁw あと、X60s用のスリムラインバッテリも欲しい