RSS

日々のメモ書き

Debian Developerが綴るメモ

御在所

紆余曲折やっとのこと。

悪天候やら体調不良やら4回の延期を経て、ついに、冬の御在所に行くこととなりました。とにかく無事に帰ってこよう。前日に「運命を分けたザイル」を見せるひどい人と一緒に行くけど…。

 

ttyをPythonで扱う

ダウンロードの進行表示ってどうやってんのかねと思った次第。

例えばダウンロードの表示をコンソールでやるとして流れていかないで同じ行で表示させているのはどうなってるいのかというのをしらべる。ttyをいじるんだなってのはわかってpythonのttyモジュールを調べたがあんまり解説がないねと。詳解UNIXプログラミングなんぞを久しぶりにひっぱりだしてごにょごにょやってみた。

import tty
import sys
import time
import signal

from pprint import pprint

from termios import *

mode = tcgetattr(sys.stdout)

def handler(signum, frame):
    print "signal\n"
    tcsetattr(sys.stdout, TCSAFLUSH, mode)
    sys.exit(0)

signal.signal(signal.SIGINT, handler)

tty.setcbreak(sys.stdout)
for i in range(20):
    if i % 3  == 0 and i > 0:
        sys.stdout.write("\n" )
      
    sys.stdout.write("%d\r" % i )
    sys.stdout.flush()
    time.sleep(1)

tcsetattr(sys.stdout, TCSAFLUSH, mode)

 

こんな感じですかね。Control-Cを処理できないと何かと面倒なのでsignal処理も付け加える。

東京行き

29-30で東京

14時前に家を出ようとした瞬間にtwitterに車内の人から新幹線が止まったというつぶやきが流れる…。にゃんだってー! きっと今日中には復帰するはずと家で待機。復旧したので名古屋駅に向かう。よくわからんぐらいの混雑。指定席の発券はできない状態。新幹線も人が一杯。豊橋で一時停車するし、時々スピードを落とすし。新横浜で5分停車する。品川との間に5本列車がありますとかアナウンスあるし、品川手前では入線待ちで10分以上かかるし、いろいろあるなあ…。疲れ果てた。

 

Google ChromeでPDF表示

なぜかわからんけど解決。

Google Chromeを使ってPDFの表示がなぜかできなかったのだが…。よくわからないがmozpluggerをインストールしたら表示されるようになった。めでたしめでたし。

SQLAlchemyを少し

単純なひとつのテーブルをDBで管理しようとおもってORMとしてまだ使ったことのないSQLAlchemyをつかってみた。

むかーし、SQLAlchemyをちらっと見たときには宣言的な書き方ができなかった気がするが…。だからelixirが出てきたと思ったのだが…。いつのまにかできるようになったようだ。特に難しいことはないな。ORMの書き方もqueryの書き方もdjangoとちょっと違うが、慣れの問題。ちょいちょいとやってOK。なるほど。

 

ExtJS雑感

YUIからExtJSに書き直しをやってみた。

今のところ grid と tree を使用している。若干設定がわからず挙動がおかしいところがあるがおおむね満足の行く結果となった。YUIを使っていたころと随分違ってきたのはHTMLを書く必要がなくなったというところだろう。djangoを使っているわけだが、テンプレートでの処理はなんにもやらない。bodyの中身は div が並んでいるだけという状態。それすらいらないかもしれない。今のところは複数ページに分かれているが、それすらTabで書き直せばいらなくなる。djangoはただのJSONデータを吐くために存在する感じになっていく。

ExtJSのgridはMVCがきっちり分離された設計になっていて操作がしやすい。いろんなものの統一感があって扱いやすい。今のところはExtJSが一番いい感じである。

NVIDIAドライバーを無理矢理つっこむ

x.orgが7.5になったら古いnvidiaドライバーでは駄目になった。そこで…。

Debian用のNVIDIAのバイナリドライバがx.org 7.5に対応してない。それなら元のパッケージをダウンロードしてきてインストール、というところなんだがちょっと問題が。amd64のkernelを使っているがi386のuserlandのせいか、x86もamd64もインストールがきちんとできない。ということで無理矢理つっこむ。

  • kernel moduleはamd64でビルドすると nvidia.ko を作成するところまではやってくれたのでそれを手でコピーする
  • nvidia_drv.soとかlibglx.soだとかいろいろなものは手でコピーする
ということでなんとか173.14.22がインストールできた。

ExtJS事始

ExtJSをやっとこさ本格的にやりはじめた。

一番苦労したところは非同期!非同期!!非同期!!!

あたりまえなんだが…。データを書き直したとしても反映されるのがいつかはわからない。確実に反映させたければeventハンドラにするかcallbackにするか。XHRでデータを取ってきてデータを反映…あれなんで前のデータなんだ? ということがあったりした。それは読み込みが終わったタイミングでコールバックでなんとかしなきゃいかんのさ。

今のところ激しく悩んだのがComboBoxの問題。aComboBox.setValue('fuga')とかやったら key がそのまま表示されると悩んだ。多分非同期処理のせいなんだろうなあと思ったが…。これはaStore.load({callback: aFunc(){...}})と書いてaFuncの中でsetValueすると大丈夫だった。

結構これで悩んでいる人は多いようだね…。

新年初ハック

こんなもんハックでもなんでもねーよ

知人から自分のサイトが時々見えなくなることがあるんだけどと相談を受ける。いつもではない、自分だけではない、聞いているとどうもDNSの設定ぽい。原因がすぐに浮かぶが…。家に帰って調査開始。1分かからず原因判明。ひどいな…。定番ネタがやってくれるとは。

  • whoisに登録してある内容と実際のNSの内容が食い違っている。ただ、たまたま同じIPをさしていたからぎりぎりセーフ
  • 二つNSがあるのがだが、片方(多分slaveだろうな)がそのドメインの権威サーバとして動作してない。
  • というかオープンリゾルバだぞ、これ。

当人がわかるとは思えないので人に頼んでやってもらったのだと思うが…。プロだったら、いいから廃業してくれ、迷惑がかかるから、レベル。

そんなことよりどうやって説明すればいいのだろうか…。設定してやつを呼び付けて目の前で教えりゃいいが、それだったら金寄越せと思うよ。

 


ハロワに行く

失業給付のための手続をする。

5年前にもやったので大体わかるんだが。住信SBIネット銀行を振込先には使えなかった。えー。

< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 >