about:config
に追加することで, 再び使えるようになった.
middlemouse.contentLoadURL;true
参考にしたページ
about:config
に追加することで, 再び使えるようになった.
middlemouse.contentLoadURL;true
参考にしたページ
$ cat a.py a = 10 import code code.interact(local=globals()) print 'a=%d'%a print dir()インタプリタ内から変数にアクセスするには,
local=globals()
という引数を与える.
上記のようなスクリプトを実行する.
$ python a.py ... (InteractiveConsole) >>> a 10 >>> a = 20 >>> b = 30 >>> Ctrl-D ['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'a', 'b', 'code']例えば, 予め定義した
a
という変数を参照・上書きでき,
新たな変数 b
を定義できる.
$ xinput --create-master tpx $ xinput --create-master usbThinkpadのキーボード・マウスをマスターtpxに割り当てる.
$ xinput --reattach 'AT Translated Set 2 keyboard' 'tpx keyboard' $ xinput --reattach 'TPPS/2 IBM TrackPoint' 'tpx pointer'これで, 2個のポインターが出てくる.
上記の設定で, 構成は以下のようになる.
$ xinput ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Microsoft Microsoft® Nano Transceiver v1.0 id=14 [slave pointer (2)] ⎜ ↳ Microsoft Microsoft® Nano Transceiver v1.0 id=16 [slave pointer (21)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ ThinkPad Extra Buttons id=11 [slave keyboard (3)] ↳ Topre Corporation HHKB Professional id=13 [slave keyboard (22)] ↳ Microsoft Microsoft® Nano Transceiver v1.0 id=15 [slave keyboard (3)] ⎡ tpx pointer id=17 [master pointer (18)] ⎜ ↳ TPPS/2 IBM TrackPoint id=10 [slave pointer (17)] ⎜ ↳ tpx XTEST pointer id=19 [slave pointer (17)] ⎣ tpx keyboard id=18 [master keyboard (17)] ↳ AT Translated Set 2 keyboard id=9 [slave keyboard (18)] ↳ tpx XTEST keyboard id=20 [slave keyboard (18)]Virtual core pointerに属するマウスでウィンドウの移動などを行える. 他のマスターで, ウィンドウをクリックしてフォーカスするウィンドウを選び, キーボード・マウスでそのウィンドウの操作ができる.
setxkbmap
を使用する.
このコマンドは, どのディバイスに対して適用するかを指定できる.
まず, キーを入れ替えるための設定ファイルを用意する.
$ cat /usr/share/X11/xkb/keycodes/swapctrlcaps default xkb_keycodes "swapctrlcaps" { <LCTL> = 66; <CAPS> = 37; }; $ cat /usr/share/X11/xkb/keycodes/swapbacks default xkb_keycodes "swapbacks" { <BKSL> = 22; <BKSP> = 51; };これで, 以下のコマンドにより, qwerty配列に対して上記のキー入れ替えができる.
$ setxkbmap -keycodes 'evdev+aliases(qwerty)+swapbacks+swapctrlcaps'
次に, xinput
を使用して, 接続されたディバイスの一覧を取得する. (空白などを改変した)
$ xinput Virtual core pointer id=2 [master pointer (3)] Virtual core XTEST pointer id=4 [slave pointer (2)] TPPS/2 IBM TrackPoint id=10 [slave pointer (2)] Virtual core keyboard id=3 [master keyboard (2)] Virtual core XTEST keyboard id=5 [slave keyboard (3)] Power Button id=6 [slave keyboard (3)] Video Bus id=7 [slave keyboard (3)] Sleep Button id=8 [slave keyboard (3)] AT Translated Set 2 keyboard id=9 [slave keyboard (3)] ThinkPad Extra Buttons id=11 [slave keyboard (3)] Topre Corporation HHKB Professional id=13 [slave keyboard (3)]このうち,
AT Translated Set 2 keyboard
だけに, キーコードの変更を行う.
setxkbmap -device 9 -keycodes 'evdev+aliases(qwerty)+swapbacks+swapctrlcaps'これをスクリプトにすると, 以下のようになる.
for id in $(xinput | awk '/AT Translated Set.*id=[1-9]/{print gensub(/.*id=([0-9]*).*/,"\\1",1)}'); do setxkbmap -device $id -keycodes 'evdev+aliases(qwerty)+swapbacks+swapctrlcaps' done
-symbols
を使用する.
以下の例では, id=9 に日本語, id=13 に英語の配列を割り当てる.
setxkbmap -device 9 -symbols 'pc+jp+inet(evdev)' setxkbmap -device 13 -symbols 'pc+us+inet(evdev)'
$ sudo dnf install lightdm lightdm-gdk $ sudo systemctl enable lightdm.service $ sudo systemctl start lightdm.serviceパッケージ lightdm をインストールするだけでは, グラフィカルログインが有効にならない. systemctl で lightdm.service を有効にする設定をする.
sudo rpm -Va変更されたファイルが出力される. フラグの「S」はサイズ違い, 「5」はMD5違い.
rpm -qf /path/to/file sudo yum reinstall package_name
補足:
prelink
というツールがインストールされていると,
バイナリファイルに共有オブジェクトをリンクしてしまう. rpm -Va
ではprelinkの変更を戻してからmd5をチェックするらしい.
何らかの理由で同じパッケージの異なるバージョンがインストールされてしまった場合, 以下のコマンドでそのようなパッケージを探すことができる.
rpm -qa --qf '%{NAME}\n' | sort | uniq -c | grep -v '^ *1 '
今回のサーバは, SL6.7.
まずは,tftp, dhcpd, iptablesの設定をする. なお, dhcpd自体は既に設定済みで, PXEの設定を追加するだけ.
sudo yum install tftp-server xinetd
sudoedit /etc/xinetd.d/tftp以下のように太字の2箇所を設定する. Disableをyesからnoに変更する. ログを見やすくするため, server_argsに-vを追加する.
service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -v -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }
sudo service xinetd restart
sudoedit /etc/sysconfig/iptables以下の1行を追加する. PXEではUDPでリクエストが来るので, TCPは開放せず, UDPを開放する.
-A INPUT -p udp -m udp --dport tftp -j ACCEPT設定が済んだら, iptablesを再起動して設定を読み込む.
sudo service iptables restart
sudoedit /etc/dhcp/dhcpd.conf2個の設定 (next-serverとfilename) を追加する. Next-serverで指定するのがTFTPが動いているサーバのアドレス. Filenameで指定するのがPXEで最初に読み込むファイル. (後で取得方法を説明)
authoritative; default-lease-time 3600; max-lease-time 14400; log-facility local7; subnet 192.168.xx.0 netmask 255.255.255.0 { range 192.168.xx.y1 192.168.xx.y2; option domain-name-servers 8.8.4.4,8.8.8.8; option routers 192.168.xx.1; # for PXE boot next-server 192.168.xx.yy; filename "pxelinux/pxelinux.0"; }設定が済んだら, dhcpdを再起動する.
sudo service dhcpd restart
cd /tmp wget .../syslinux-4.05-13.el7.x86_64.rpm
mkdir /tmp/syslinux rpm2cpio syslinux-4.05-13.el7.x86_64.rpm | cpio -dimv
mkdir /var/lib/tftpboot/pxelinux cp /tmp/syslinux/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux/ cp /tmp/syslinux/usr/share/syslinux/*.c32 /var/lib/tftpboot/pxelinux/
mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg/ vim /var/lib/tftpboot/pxelinux/pxelinux.cfg/default以下のように記載する.
default vesamenu.c32 prompt 1 timeout 600 display boot.msg label Scientific Linux 7.3 nouveau=0 menu label Install SL 7.3 without ^Nouveau menu default kernel ../sl73/images/pxeboot/vmlinuz append initrd=../sl73/images/pxeboot/initrd.img nouveau.modeset=0 inst.repo=ftp://.../scientific/7.3/x86_64/os label local menu label Boot from ^local drive localboot 0xffff label memtest86 menu label ^Memory test kernel memtest append -Kernelとinitrdは次の手順で準備する.
mkdir -p /var/lib/tftpboot/sl73/images/pxeboot
cd /var/lib/tftpboot/sl73/images/pxeboot wget ftp://.../scientific/7.3/x86_64/os/images/pxeboot/vmlinuz wget ftp://.../scientific/7.3/x86_64/os/images/pxeboot/initrd.img
以下のサイトを参考にした.
pxelinux/pxelinux.cfg/default に以下のエントリーを追記
label Scientific Linux Rolling nouveau=0 menu label Install SL ^Rolling without Nouveau menu default kernel ../sl7-rolling/images/pxeboot/vmlinuz append initrd=../sl7-rolling/images/pxeboot/initrd.img nouveau.modeset=0 inst.repo=ftp://ftp.jaist.ac.jp/pub/Linux/scientific/7rolling/x86_64/os/Kernelとinitrdを準備
$ mkdir sl7-rolling/ $ cd sl7-rolling/ $ wget -r -l 1 ftp://ftp.jaist.ac.jp/pub/Linux/scientific/7rolling/x86_64/os/images/ $ wget -r -l 1 ftp://ftp.jaist.ac.jp/pub/Linux/scientific/7rolling/x86_64/os/images/pxeboot/ $ mv ./ftp.jaist.ac.jp/pub/Linux/scientific/7rolling/x86_64/os/images/* ./
銀行 | 電信/小切手 | 手数料 | 外貨受取可能か? | USDのスプレッド | USDの金利 | メモ |
---|---|---|---|---|---|---|
三井住友信託銀行 | 電信のみ | 無料 | Yes | 0.41円 (?) | 0.3% 普通預金 1.55% 1年定期預金 |
|
ソニー銀行 | 電信送金 | 無料 | Yes | 0.15円 (往復) | 0.3% 普通預金 1.4% 2年定期預金 |
JP Morgan Chase銀行または三菱東京UFJ銀行を中継銀行として指定する必要あり |
新生銀行 | 電信送金 | 無料 | Yes | 0.30円 (往復) | 0.01% 普通預金 1.9% 3年定期預金 |
外貨預金の残高30万円以上でスプレッド0.18円 Linux上のFirefoxからアクセスできないページあり |
大和ネクスト銀行 | 電信のみ | 無料 | Yes | 0.50円 | 0.25% 普通預金 1.5% 3年定期預金 |
Citi bankを中継するらしい. 50,000USD (550万円くらい) 以上受け取ると手数料をキャッシュバック. |
SMBC信託銀行 | ||||||
横浜銀行 | 小切手 | 3000円/1枚 + 750円/1手続き | 円で受取 |
ソニー銀行はスプレッドが小さいが, 中継銀行でのリフティングチャージがかかる可能性がある. やってみないとわからないので, 口座開設してみた. 半年後くらいに試してみる. (仕向送金の方は, 外貨預金が500万円以上あると月1回無料.)
大和ネクスト銀行の手数料キャッシュバックの効果が出てくるのは, 50000USDを受け取り, 早めに円に両替する予定で, 送金側の手数料が4500円を超える場合. もし長めにUSDで保有するなら, 三井住友信託銀行の方がさらに有利になる.
比較的店舗の多い銀行で, USD建て小切手で受け取るなら, 横浜銀行が良いだろう.
SMBC信託銀行 (旧Citi bank) は, 三井住友信託銀行と名前が似ているが別の銀行らしい. 小切手の取り立ても横浜銀行より少し安いようだ.
Old Inkscape files use 1in == 90px, CSS requires 1in == 96px. Drawings meant to match a physical size (e.g. Letter or A4) will be too small. Scaling the drawing can correct for this. Internal scaling can be handled either by setting the SVG 'viewBox' attribute to compensate or by scaling all objects in the drawing.というメッセージが出るようになった.
私の場合は, 回路図などを単位をpxにして10pxグリッドで描いていた.
その設定を維持したかったので, Ignore を選べば良いことが分かった.
あるいは, SVGをエディタで編集して,
svgタグの属性inkscape:version
を以下のように書き換えてもOK.
inkscape:version="0.92+devel unknown"
以下のように,
with構文を出た後でもターゲット変数 f
にはアクセスできるようだ.
>>> with open('/tmp/x.dat', 'w') as f: ... print f ... f.write('hello\n') ... <open file '/tmp/x.dat', mode 'w' at 0x7f9eaf982c00> >>> print f <closed file '/tmp/x.dat', mode 'w' at 0x7f9eaf982c00>上記は, Python 2.6.6 で試した.
ここでは, 別の方法, 表を入れ子にする方法を紹介する.
\begin{table} \center \begin{tabular}{|c|c|c|} \hline & A & B \\\hline\hline a & \begin{tabular}{l} n: 0.0 -- 0.5 \\ p: 1.2 -- 0.7 \end{tabular} & \begin{tabular}{l} n: 0.0 -- 0.6 \\ p: 1.2 -- 0.6 \end{tabular} \\\hline \end{tabular} \end{table}出来上がり:
Techiefansの記事は誤解をもたらしているように思える.
たぶん, 盗まれたバイクや自転車を探すとか,
迷子の猫を探すとかといった使い方には向かないだろう.
街中にTrackRユーザがいるわけではないのだから.
世界中で追跡できるとしたら, GPS受信機と3Gモデムくらいが付いていると期待するかもしれないが, そういう機能込みで, こんな小さいサイズで1年間もバッテリー駆動できるはずがない.
about:config
をURLとして打ち込み,
general.smoothScroll
をダブルクリックしてfalse
に設定する.
スムーズスクロールってこんなにデメリットがあると思う.
Logicool m705tよりはマシだと思う.
マウスの使い勝手という点では, Thinkpadのトラックポイントの方が好きだ. (急がずに購入するなら, Lenovo ThinkVantage Clubに入って, 50%くらいの割引メールが届くのを待つのがおすすめ.)
まず, マウスのIDを調べる.
xinput list戻るボタン・左右スクロールに下の表のように機能を割り当てる場合, 以下の
xinput
コマンドで設定する.
xinput set-button-map 17 1 2 3 4 5 8 9 2 9 10 11 12 13 14 15 16なお, 上記の
17
は, xinput list
で出てくるIDを書く.
物理ボタン | 動作 |
---|---|
戻るボタン (8) | 中ボタン (2) |
左スクロール (6) | 戻る (8) |
右スクロール (7) | 進む (9) |
スクリプトで設定する場合は, 以下のように書けば良い.
#! /bin/bash xinput list | grep 'Microsoft .* Nano Transceiver.*slave pointer' | sed 's/.*id=\([1-9][0-9]*\).*/\1/' | xargs -I{} xinput set-button-map {} 1 2 3 4 5 8 9 2 9 10 11 12 13 14 15 16なぜかNano Transceiverが2つ認識されるので, 両方に対して同じ設定を行う.
$ cat /usr/share/ghostscript/9.20/Resource/Init/cidfmap.ja /IPAexMincho << /FileType /TrueType /Path (/usr/share/fonts/ipa-mincho/ipam.ttf) /CSI [(Japan1) 6] >> ; /IPAexGothic << /FileType /TrueType /Path (/usr/share/fonts/ipa-ex-gothic/ipaexg.ttf) /CSI [(Japan1) 6] >> ;上記は,
cidfmap
に
(cidfmap.ja) .runlibfileifexistsという行が見つかったので, 日本語のために
cidfmap.ja
というファイルをインクルードしているのだろうと推測した.
もともと, cidfmap.ja
というファイルは見つからなかったので, cidfmap
と同じディレクトリに作成.
ipam.ttfとipaexg.ttfは, find /usr/share/fonts -name ipa*.ttf
でパスを探しだした.
9.20
の部分を新しくするべきなのだろう.
以下のコマンドでPDFを生成する.
platex -halt-on-error -recorder "main.tex" dvips -P pdf -o "main.ps" "main.dvi" ps2pdf -dPDFSETTINGS=/prepress -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true "main.ps" "main.pdf"生成したPDFのフォントを確認する:
$ pdffonts main.pdf name type encoding emb sub uni object ID ------------------------------------ ----------------- ---------------- --- --- --- --------- ... WWYGYS+IPAMincho CID TrueType H yes yes no 276 0 ...IPAMinchoが埋め込まれている (emb=yes) ようだ.
生成されるPSファイルには,
%%DocumentFonts: NimbusRomNo9L-Regu NimbusRomNo9L-Medi rtxr rtxmi %%+ NimbusRomNo9L-ReguItal IPAexMincho-H rtxb txsy txex Times-Roman %%+ Helvetica Symbol Times-Italic Courier Helvetica-Oblique %%+ NewCenturySchlbk-Roman Timesと書かれており,
IPAexMincho-H
があるので, IPAexMincho
を設定すれば十分なのだと思う.
以下のサイトを参考にした.
not は非ブール演算子よりも優先度が低いので、 not a == b は not (a == b) と解釈され、 a == not b は構文エラーです。Cでは
a == !b
はa == (!b)
と解釈されるので,
Pythonでも同様だと思っていたが, 構文エラーになるらしい.
>>> a = True >>> b = False >>> a == not b File "", line 1 a == not b ^ SyntaxError: invalid syntax >>> a == (not b) True
なお, Awkではこうなる:
$ :| awk 'BEGIN { a=1; b=0; print a==b; print a==!b }' 0 1
機種 | OS | 購入日 |
---|---|---|
モトローラ M1000 (A1000のドコモ版) | Symbian | 2005年 |
HTC HT-03A (HTC Magicのドコモ版) | Android 1.6 → 2.3 | ? |
富士通 F-05D | Android 2.3 → 4.0 | 2012年3月 |
Sony Xperia Z5 | Android | 2016年6月 |
iPhone 8 | iOS | 2019年10月 |
「フレッツIPv6サービス対応機能」をONに切り替えると何が変わるのか調べてみた.
なんとなくブリッジの設定が変わっているきがして, brctl showを実行してみると, 以下のような違いになった.
# brctl show bridge name bridge id STP enabled interfaces br1 8000.000000000000 no br0 8000.106f3ff74ec1 no eth0 ath0
# brctl show bridge name bridge id STP enabled interfaces br1 8000.000000000000 no br0 8000.106f3ff74ec1 no eth0 eth1 ath0ただ eth0 (有線LANのハブ側) と eth1 (WAN側) との間をブリッジしているだけのようだ.
あと, iptables -L の出力もOFF/ON間で比較してみたが, 相違なかった.
ログインするとき, 通常のユーザー名 (root) ではなく, 以下のように入れる.
ユーザー名: bufpy
パスワード: otdpopy通常のパスワード ("otdpopy" を設定してあるパスワードの前につける).
管理設定のページにいくと, コマンド実行などができるリンクが表示される.