xmonad on ubuntu 16.04 でバックライトを調整

経緯

VAIO Pro 13 に入れていた 14.04 を 16.04 に変えたら,xbacklight が動かなくなったので自分でコマンドを作ってみた.

使い方

下のコードをbglightという名前でPATHの通ったところに置いたとすると

sudo chmod 666 /sys/class/backlight/{バックライト名}|/brightness  # 一般ユーザに書き込み権限を与える
$ bglight  # 現在の照度を表示する
30
$ bglight +  # 最大値まで10ずつ照度を増加させる
$ bglight -  # 0まで10ずつ照度を減少させる

コード

これは,バックライト名がintel_backlightの場合.

Integromat で Gmail の特定フォルダのメールを slack に投稿

Integromatというのは,IFTTTとかzapierみたいなwebサービスの連携サービス.
かなり細やかに設定できるというか,もはやプログラミングするような感じで構成しないと動かない.

Gmailをslackに投稿する時のハマりポイント

  1. 日本語の文字化け
  2. 長いとslackに拒否られる

対策

文字列変換してちょんぎる.

wordpress でクォートが全角になったりする問題

再々追記
wordpress 4.0 から, run_wptexturize フィルターが追加され,簡単に止められるようになった.
もはやプラグイン公開の価値があるかは知らないけど,いちおうアップデートしておいた.
また,機能に合わせて,プラグインの名前を変えた → Disable wptexturize

再追記
リンクのパスを間違えていた…すみません。以下、復旧済です。

追記
とりあえず作ったよ。
下記を解決するプラグインは、機能を殺す部分だけなら簡単に実装できたが、plugin の体裁にするのに手がかかった。公式にアップするのもまだちょっとかかりそう。
とりあえずすぐ解決したい人は、どうぞ → [Disable Auto Replacement]
解凍してできるディレクトリを、wp-content/plugins へ配置すれば OK。
これを使うと、クォーテーションもハイフネーションもアスキー文字のまま出力されるが、三連ピリオドを三点リーダーへ置換する機能も死ぬので、注意すること。

私は、プログラムのコードを本文中に書くことが多い。
しかし wordpress を使うと勝手に全角に置き換えられるのが不満で、回避策として " などを使うようにしていた。これは面倒くさい。
まだ文字実体参照の用意されている文字コードなどなら良いが、ハイフンみたく用意されてないと (正確には、ndash と mdash はあるが、これはハイフンではない)、不便で仕方がない。
(wordpress は二連ハイフンを mdash か何かに置き換えてくれる)

さっきも NOOK の記事を書こうとしていい加減に腹が立ってきたので、そういうのを抑制する plugin でもないか検索したら、原因が見付かった。
wordpressで”ダブルクォーテーションが全角になっちゃう” | IT勉強するコタツネコ
この人、置換行をコメントアウトしているので他の問題が出そうだなー、と思いつつそれはさておき、この記事にある

$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);

というのが問題の行で、dynamic_replacements の中身を見れば簡単に分かるはず…

小足見てから昇龍余裕でした。
例えば、シングルクォートは ’ に置き換えちゃ、だめだろ JK
’引用符 - Wikipedia が詳しい。
どうダメかというと、' と比較するとこんな感じくらいダメ。
ダメさが伝わりやすいように、MS Pゴシックにフォントを変えてみる。
apos版 → He's a student.
8217版 → He’s a student.

もー! 半角文字を全角文字に置き換えるコーディングするやつは、コーディングやめちまえ!

といいたい。
でも本体に手を入れるとアップデートや鯖移行の度に面倒くさいので、plugin で何とかしたい。
この程度、どっかに転がってないかな。
PS Disable autoformatting ではダメだった。
これいじって、作るか…

以下、作っている間のテスト用文字列…
---He's a student.

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文字ずつアニメーションで出す時,句読点のところだけ時間かせぎするために使うのであった.

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点目は,クリップで留められていた端子.
ちょっと固定しづらいけど,基盤を爪にはめる前に,ちゃんと端子を差してクリップでホールドしておくこと.
爪にはめてからでは固定できないので,また外すハメになる.
あと,不安なら内装をつける前にバッテリーを入れて,電源を入れてみると良い.ただ,画面を上にして置こうとするとバッテリーがストンと外れるので,あくまで動作確認だけ.

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

Gifアニメ→mp4

$ convert -limit memory 300MB -coalesce from.gif %04d.png
$ ffmpeg -r fps_of_gif -i %04d.png -r fps_of_mp4 to.mp4

拾ったgifアニメもこれでmp4に変換できるぜ

普通のhtmlなどでsyntaxhighlighterを読み込んで使う時のメモ

不明なところは,SyntaxHighlighterを参考にすれば良い.

  • 解凍したディレクトリ内のscriptsディレクトリを./scriptsへ,stylesディレクトリを./cssへ展開したとする.
  • html-script: trueオプションを有効にするために,shBrushXml.shは常時読み込む.
    
    
    
    
    
    
  • オートローダの実行など.
    ここは,適宜,対応するjsファイルを追加する.
    diff,dos,json,lisp,python,texとかがあると便利かも.
    個人的にはhaskellなんかも.

    
    
  • スタイルの修正.
    --- ../syntaxhighlighter_3.0.83/styles/shCoreDefault.css        2010-07-02 12:59:00.000000000 +0900
    +++ shCoreDefault.css   2015-10-21 18:56:36.000000000 +0900
    @@ -58,6 +58,7 @@
       position: relative !important;
       overflow: auto !important;
       font-size: 1em !important;
    +  border: 1px solid #ddd !important; /* added */
     }
     .syntaxhighlighter.source {
       overflow: hidden !important;
    @@ -229,7 +230,7 @@
       background-color: white !important;
     }
     .syntaxhighlighter .line.alt1 {
    -  background-color: white !important;
    +  background-color: #e0e0e0 !important; /* added */
     }
     .syntaxhighlighter .line.alt2 {
       background-color: white !important;
    @@ -242,6 +243,7 @@
     }
     .syntaxhighlighter table caption {
       color: black !important;
    +  background-color: #e0e0e0 !important; /* added */
     }
     .syntaxhighlighter .gutter {
       color: #afafaf !important;