ubuntu 14.04 の deja-dup で su 権限が必要なバックアップを samba 上に残す

gksudo を使う方法 → ホームディレクトリに smb: というディレクトリが掘られ,サーバ上にバックアップできない.
gksu を使う方法 → gksudo gksu deja-dup-preferences では上と同じ現象.gksu を素で使うなら,GUI でログインできるようにしても変わらんと思ったので,今回はそっちの方法.

手順

  1. rootにパスワードを設定する
    sudo passwd root
  2. lightdm にマニュアルログインを追加
    +greeter-show-manual-login=true
    

    して,lightdmを再起動

    $ sudo service lightdm restart
    

    ちなみに,SeatDefaults セクションに書けば良いので,こっちに書いても良い.
    何故か,user.confではダメだった.

    [SeatDefaults]
    greeter-show-manual-login=true
    
  3. 設定ウィンドウのバックアップを起動し,普通に設定.

SKK で Zero Width Space を入力する.

Zero Width Space は, U+200B または ​,​ など.
http://www.unicode.org/charts/PDF/U2000.pdfなんかを参照.
ここでは,ZWSPと書かれている.
簡単には,

  • 数値文字参照で文字を記述
  • ブラウザで表示
  • ノートパッドへコピペ
  • 該当以外の文字を消した上で全コピー
  • skkの単語登録のダイアログ内でC-YやC-Vなどでペースト(昔はこれでskkimeが落ちていたけど,skk-fepでは大丈夫)

で,何に使うのかっちゅーと,PPTのテキストを1文字ずつアニメーションで出す時,句読点のところだけ時間かせぎするために使うのであった.

dockerをproxy越しに起動する on debian jessie

Ubuntu 15.04 でかつProxy環境で、Dockerを使う場合の落とし穴 - Qiita
これだと思うんだけど,なんかリンク先の記事が404 Errorになってたので探した.

Controlling and configuring Docker using Systemd - Docker Documentation

ざっと言うと,upstartを前提にした古いubuntu向け情報がいっぱい出てくるけど,それではうまくいかないよ.だってsystemdだもん,
ということらしい

CUDA on Ubuntu

ただのメモなんで,読み解いて使ってね

nouveauと競合

  • Ubuntu desktopをnvidiaボード搭載マシンに入れると,標準でnouveauが入るが,CUDAを動作させられないので外さないといけない
  • Nouveauを入れたままNVIDIAプロプライエタリドライバを入れると,Xが起動しなくなった
  • Nouveauを消すとX関連が依存関係によりまとめて消えた
    • 二度手間になるので,minimumから入れた方が早いかも

プロプライエタリドライバ導入

  • http://www.nvidia.co.jp/Download/index.aspx?lang=ja
    $ sudo ./NVIDIA-Linux-x86_64-XXX.XX.run

    上のURLから,カードに合ったバージョンが入手できるはず
    この手順のあとに,lightdmなどX環境を入れる

CUDA導入

  • https://developer.nvidia.com/cuda-downloads
  • deb (local) でやってみる
    $ sudo dpkg –i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
    $ sudo apt-get install nvidia-prime nvidia-XXX.XX-updates-dev
    
  • 念のため,関連ドライバを改めて入れてみた
    $ sudo apt-get update
    $ sudo apt-get install --upgrade nvidia-settings
    $ sudo apt-get install cuda
    

python types.MethodType

自作モジュールに問題にチューンした処理を追加しないといけないことがあって,types.MethodTypeでメソッドを追加しようとした話.
自作モジュール内でimportされたモジュールを使う時,どうすればいいのかなー,とか,自作モジュール内のimport時につけた別名と被ったらどうなるのかなー,とか調べてみた.

おおむね予想通り.
自作モジュールを丸ごとimportしてたら参照できるけど,from/importでクラスしか取り込んでなかったら,別途,importしないといけない.
別名が被ったところで,スコープが被るわけじゃないから,人が見て分かりにくいことを除けば問題なくスコープ内のモジュールが呼び出される.

ということを全部は反映してないけど,簡単な使い方メモ.
これは,unbundle版.

import numpy as np
class MyModule:
    def test(self):
        return np.array([1,2,3])
import types
import mymodule

def new_test(self):
    return mymodule.np.array([4])

mymodule.MyModule.additionalMethod = \
    types.MethodType(new_test, None, mymodule.MyModule)
mymod = mymodule.MyModule()
print mymod.test()
print mymod.additionalMethod()

実行結果

$ python mydriver.py
[1 2 3]
[4]

Vimとシェルと私

vimまたはgvimからシェルを新しいタブで呼び出して編集とコンパイル/インタプリットをvim内で完結できたらいーなー,と思って調べたら,満足する解が見付からなかったという話.

前提:私の考え方は,この方とかなり近い→シェルを求めて三千里~悠久のvim編~ - Alone Like a Rhinoceros Horn
ただしvimもemacsも編集内容によって使い分けている.

ともかく私の我侭は

  • zshを実行したいよ
  • :shellでコマンドラインを残してvimに戻れないのは有り得ない
  • screenやtmuxみたくCtrlショートカットの1つを占有されると,何に割り当てても困ることが多い
    C-a→数字のインクリメントは結構よく使う
    C-t→texファイルの編集はemacs+evil+YaTeXなので,コンパイルができなくなる
    などなど…

結局辿りついたのが,このweblogにも,たまに書いているxmonadというタイル型ウィンドウマネージャを入れて右Altのみをmodキーにするというもの.
Vim/Emacsやshellは左手で操作し,それらの間の遷移は右Altで遷移する,と.
バッファ切り替えの次元が1次元増えるような操作感なので,慣れないと厳しいかも知れんけど.

で,現状の課題は,VimShell作者のShougoさんもPresentation file · Shougo/vimshell.vim Wiki · GitHubで書かれているけど,
zsh上で入力した文字列をバッファに取り込めないこと.
vimに持ってくるのに,タイル型WMを使ってるくせにマウスが必要なのがイマイチだ.
はっきしいって,ターミナル側でC-kしたものをOS(?)のクリップボードみたいなところに格納してくれれば,Kaoriya版もってくれば,"+pとかで貼り付けられるんだけどなー.

異体字を含む文書をLaTeX→pdf

まず,otfパッケージを入れて,CIDコマンドを使えるようにする.
otfというのは,Open Type Formatのことらしい.

\usepackage{otf}

...

\CID{CIDCODE}

CIDの探し方は,私の場合は,まずunicodeを調べるところから.
ここで調べられる→資料室 - 有限会社その弐 より 資料室 - 有限会社その弐
見るべきは16進数のコード.
例えば,邉の場合は,9089

で,Unihan Database Lookupに文字コードを入れてLookup.
出てきた結果のうちRadical-stroke IndicesというところのkRSAdobe_Japan1_6のうち,C+6930+162.4.13というやつの+と+に囲まれた6930がCIDみたい.

なので結局,こう書けばいい.

\usepackage{otf}

...

\CID{6930}

最近,柗という文字で困ったので調べた...

VimFilerメモ

色々と書き集めている最中.
ある程度揃ったら,記事にまとめるかも.

VimFilerでファイルを開く時に新しいタブに開く
LSI設計雑記帳 Vim:Vimfilerのedit actionをtabopenに変更
VimFilerのキーバインド集
vimfiler のデフォルトキーバインドまとめ(機能別) - Alone Like a Rhinoceros Horn
どこを見てもoで2画面化&フォルダ同期と書かれてるけど,ubuntu上でKaoriya版をmakeして動かしている限りにおいては,ファイルオープンになる.Oで2画面化はできる

ZE500KLのフロントパネルを交換

zenfone2 laserの画面が割れちゃったので,フロントパネルを交換した.
スマホが物故われて作業途中の写真は取れんかったけど,ちょっとだけ手順を紹介.
参考にしたサイトはこちら→【自分で修理】ASUS Zenfone2のフロントパネル交換方法【ディスプレイ】 – マガリスギ.net
ただし,ネジの数や,基盤に差さるケーブルの位置などが異なるので,それらは読み替えること.

手順1:ネジを外して内装を取る

ケースのフタをあけるとこは割愛.
基本は,見えてるネジ14本と,SEALって書かれたシールの下にあるネジの1本を外せばOK.
内装を取る前に,バッテリー,SIMカードは抜くこと.microSDを差したままSIMは抜けないと思うけど,microSDはついてても干渉しないのでお好きに.
ネジ取った後も,これホントに外れんの?ってくらいうまく取れないけど,1)筐体をちょっと歪めて隙間を作る,2)隙間に細いものを差し込んで隙間を維持しテンションをかける,3)バッテリーの下や左右・カメラの上・内装の右左上の6箇所にある爪を頑張って外す,4)バッテリー上の部分が爪になってるから精密ドライバーのマイナスとかで外してやる,という手順を踏めば何とかなると思う.

手順2:基盤の端子を外す

左に2箇所,フラットケーブルが刺さっている.これはディスプレイから来ているものなので,ケーブルは切れてもいいけど,基盤側を傷つけないように.
細い方は白いストッパーを上に立ててから,爪楊枝とかで抜く.
太い方は茶色のシールを剥がしてから,以下同文.
右に1箇所,クリップ留めされている端子があるが,これは現時点では外せないので後回し.
左,上,右の3箇所が爪で留めてあるので,頑張ってフレームから基盤を外す.すると,クリップ留めされているところも一緒に浮いてくるので,フレームから浮いたらクリップを外し,そこの端子を取ってやる.

追記:
クリップ留めされているケーブルの挿し口が分かりにくいとのご指摘があった.
確かに私も,分かりづらかったような記憶がある.
基盤を最初にスマホを開いた時の面を表とした時,裏側に端子は挿さっているので,クリップを外す時に確認されたし.

銅線がもう一本つながってるけど,これは外さずに作業したので外し方は不明.
白いストッパー,というのが分からない人は,先の参考サイトを再度参照すること.

手順3:壊れたフロントパネルを外す

まず,基盤に差さっていたフラットケーブルのうち,細い方をたどるとシールで留められた金属版があると思う.
こいつをシールを剥がして外す.
実はこの裏に,GPUっぽい謎のチップがある.
シールがどういう役割かわからんけど,後で新しいパネルの同じパーツをこのシールで貼るので,綺麗に取った方がいい.
フロントパネルは超強力な両面テープで張り付いているので,気合で剥がす.
ホントは先のサイトみたくドライヤーで両面テープを温めた方が良いのだろうけど,面倒だったので力ずくで剥がした.
真似しない方がいい.
両面テープを外したら,端子をフレームのスリットから抜いて分解完了.

手順4:逆の手順でパーツを取り付け

基本は逆の手順になるだけだが,注意するのは2点.
まず1点目はフロントディスプレイの固定.
両面テープを再利用するにせよ,しないにせよ,ちゃんと固定すること.
基盤に差さっているケーブルと,銀色のテープで押さえた金属版しかパネルをフレームに固定するものはないので,パネル自体を固定せずに使っているとフラットケーブルが抜けたり断線するかも知れない.
2点目は,クリップで留められていた端子.
ちょっと固定しづらいけど,基盤を爪にはめる前に,ちゃんと端子を差してクリップでホールドしておくこと.
爪にはめてからでは固定できないので,また外すハメになる.
あと,不安なら内装をつける前にバッテリーを入れて,電源を入れてみると良い.ただ,画面を上にして置こうとするとバッテリーがストンと外れるので,あくまで動作確認だけ.

以上.
あとは,気合と自己責任でがんばれ.