PureDoc:インデント機能、段落字数制限機能

段落字数制限

きちんと章立てせずにだらだら長い文章を書くことを抑制するために、指定した文字数を超える連続する段落がある場合警告する機能を搭載した。

通常、段落はブロックによるan Arrayであるので、マークアップではなくPureDocクラスで面倒をみることにした。

# Paragraph element.
# For notify length for too long flat text.
def p(*text)

text = block_given? ? yield : text

if @par_length_limit

if text.join.length < @par_length_limit
STDERR.puts "*WARNING : A single paragraph is too long (#{text.join.length} characters.)"
end
end

return text

end

基本的な値の取得も面倒を見るようになった。

制限文字数はユーザーが@par_length_lumitを設定する。設定しなければ機能しない。

インデント

HTMLでの出力を基本としてきたため、いままで改行すら入れていなかったが、ちょっとひどいのでインデントも入れることにした。

インデントの考え方としては、reading spaceを含めタグで始まる行をインデントする。このため、ネストしているものはこのインデント処理が複数呼ばれることになり、うまく処理できる。また、codeなどについては触らないようにできる。

改行については各エレメントのフォーマッタで面倒をみる。といっても、大半はstdメタメソッドで作られているので触るところは少ない。さらに、stringifyメソッドによってインデント処理とともにString化も行う。これにより、各エレメントは必ず文字列を返す、という仕様に統一された(これまでは文字列または配列を返していたが、Array#to_sが変更された現在、その仕様は不適切となった)。

ちなみに、stringifyに渡されてくる時点では文字列か配列かが確定できないので、これを処理して一旦文字列にしたあと(改行処理もする)、String#each_lineでインデントしてから、配列をまた文字列にしている。アルゴリズムとして効率はよくないが、開発を優先した。

ちなみに、インデントは@indent_spacesにセットするか、もしくは$puredoc_indent_spaces環境変数にセットすることでコントロールできる。デフォルトはタブ文字ひとつである。

これに伴って、要素はインラインかどうかを判定するためのキーワード引数が追加された。

Manjaroがまた死んだ。さらに電源が入らなくなった

システム再セットアップ

pacman -Syuuの最中にフリーズしてしまい、LVMでロールバックしたが、ファイルシステムのミスマッチがあるとしてブートしてくれなくなった。systemdで落ちてしまう。

LVMでロールバックしてダメだとどうしようもない。さっさと諦めてtarでUSBメモリーに待避して再セットアップ。

もうなれたものだ。以前の記事にもした手順でセットアップしていく。だが、問題がいくつかみつかった。

  • tarballが「予期せぬEOF」と言われて展開できない。どうやら、不完全なtarballができてしまったらしい。実際、232MBとかなり小さい。
  • かなり多くのパッケージがインストールできない。その大部分はpackage()関数がないためだという
  • UTのリポジトリにアクセスできないため、mozc-utが使えない
  • 4kvideodownloaderのチェックサムが通らない

tarballについては諦めるしかない。

package関数については、build()にまとめてあってpackage()がないものが結構あるのが問題だ。そのため、やり方は乱暴だが、

sed -i 's/^build().*{/package() {/' /tmp/yaourt-tmp-user/aur-package/PKGBUILD

とすれば通る。これは、PKGBUILDを取得してから、再開しますか?とか続行しますか?と聞かれている時に行う。ちなみに、単純に分割すると「installをmakeするターゲットがありません」と言われてしまう。もちろん、単純に

package() {
:
}

と書いても通るとは思う。

UTリポジトリについては対処方法はないと思う。4kvideodownloaderについては、手動で修正すれば良いとは思うが、とりあえずバイナリを落としてきてローカルに展開して使えるようにした。

電源が入らない

途中で何度かフリーズしてしまった。おそらく熱問題だと思われる。追加ファンが届いていたので取り付ける。

マザーボードはASRock FM2A88X+Killer、ケースはFractal Design Defnie R4だ。今回はGelid Silent 14の通常版とPWM版をAmazonで購入。既に120mmのファンが追加されている。

設置は、天面に設置していた120mmを外し、Silent 14を設置、サイドにSilent 14 PWMを設置、120mmについては前面の吸気ファンにする。

設置は比較的簡単だが、Silent14はゴムブッシュを使って固定するが、外にかなり飛び出してしまうのと、ファンに入れる時はかなり強く引っ張らないといけないのが難点。大きいケースで取り回しも楽。非常に使いやすい。

だが、フロントファンについては戸惑った。ツールレスと書いてあるのだが、穴があるだけでどう固定していいのかさっぱりわからない。とりあえずクリアテープで固定した。

この追加ファン+3(4pin*1, 3pin*2)でマザーボードのファンピンはすべて埋まる(シャシーファンに限定せず)。ケースは天面に1つ、底面に1つ固定可能だが、使用できない。

だが、そうすると電源が入らなくなった。正確には、たまに電源は入り、ランプが点灯、HDDの駆動音がし、電源ファンが回るが、それだけ。スイッチで電源を切ることもできない。放電したり、コネクタを挿し直したりしたが治らず、急遽秋葉原へ。

BUYMORE本店でいろいろ聞いたが(後述)、帰ってきてマザーボードを裸にしようとしている時に、メインの電源ケーブルがややゆるいことに気がついた。しっかり挿したら直った。恥ずかしい…

@BUYMORE本店

お店に急行して、相談すると、結構戸惑われてしまったが、それはM/Bが死んだのではないか、ということだった。

保証は利くが旧正月で1ヶ月程度かかる…とのことなので、やはり何かしら調達するしかなさそうだった。Intel 2CPUを目指していたのだが、その余裕はない。

そして現状のCPUを中心としたパワー不足でグラフィックの4kを含む他画面出力という点を見て提案を求めたところ、サーバーかWS用のものを使うべきだとした上で、現実的な妥協点として、i7-4950Kと260Xまたは960を使った8万円弱のプランを提案してもらった。

持ち帰って検討していたのだが、前述のように直ってしまった。恥ずかしい。

なお、コンシュマー向けのM/Bに大量のメモリを積んでがりがり使うとメモリエラーによってフリーズしたり不安定になりやすい、との話だった。真偽は確認していない。

CinnamonのNotificationが表示されない問題(Solved)

Cinnamon DesktopでNotificationがからの細長いものになってしまい表示されない、という問題を提示してきたが、どうやらCinnamonのテーマ(コントロール部分)のテーマを変更したら直った(Bluebird)。ちなみに、デスクトップテーマもBlackMATEにした。

このテーマはおもしろく、最大化するとラベルがなくなる。

もしくはウィンドウボーダーはCetiにしたせいかもしれない。

サイト/サーバーに関する作業

HTTPSの無効化

HTTPでのアクセスを推奨しつつHTTPSのアクセスを可能にしていたのだが、証明書エラーを気にする方が多いので、そもそもHTTPSアクセスを無効にした。

HTTP推奨、HTTPS対応、SSL証明書無効というのは、実はUFJ銀行と同じなのだが(amakai.netの証明書を使用している。ゆうちょ銀行も似た方法。ちなみに、三井住友とりそなはNot Foundを返すようになっている。みずほはHTTPSが稼働していない)、どうしても警戒するらしい。

問題は、現代的なブラウザはスキームなしだとHTTPSから試してしまう上に、無効な証明書に対してセキュリティソフトが警告を出すこともあるためだ。

私の個人サイトだけなら別にいいのだが、仕事のほうのサイトでは受注に響く可能性が高い。そのため、そもそもHTTPSを無効化するという措置をとった。HTTPSは技術要求的な意味合いが強く有効にしてきたが、証明書の問題はコストの問題となるため、かなり難しい。もちろん、その構築が複雑である、という問題もある。

MozillaとEFFが、無料で簡単にHTTPSを使えるようにするためのものを用意しているらしいので、それに期待するしかない、といったところか。SSL証明書に関する悪質な利権主義が私は大嫌いだ。一部の人たちが「私達が認証局です」と名乗り、その身内か大金を払ったところが認証局となり、認証してほしかったら金を払えという。SSLの認証の仕組み自体が、利権を生むために作ったものだとしか思えないひどいものだ。

だからSSL証明書をとることは、金銭的にだけでなく、心理的にもかなり嫌だ。

PCの基礎知識の講座up-to-date

彼女にPCに関する知識をつけてもらわないといけないので、全然な人が日々覚えていくことで私の実務に使える知識が身につく講座をスタート。

メールで送っているものを転載している。

http://reasonset.net/chienomi/essay/articles/steady-study.html

CSS

CSSを更新したのだが、気づいたことがある。pre-wrapに設定されている場合などで、「折り返した行をインデントする」ということができない。だからおそらくはJavaScriptで論理行に交互に色付けすることが一般的になっているのだろうと思うが、それはあまり好みではない。

wrapされた行を指定するセレクタ、あるいは要素中の論理行を表すセレクタが欲しい。

VHS変換用スクリプト

結局Windowsで記録するようにしたため、MPEGファイルをH.265形式に変換するためのスクリプト。

INDIR/SUBDIR/FILE.mpgファイルをOUTDIR/SUBDIR/SUBDIDR-NN.mkvに変換する。

ちょっと工夫をいれることでだいぶ楽にした。

#!/usr/bin/zsh

# Put your videos on a subdirectory under $WORKER_DIR.
WORKER_DIR=$HOME/mov/usr/vhs_converted/worker
# Videos will be put on a subdirectory under $DEST_DIR.
DEST_DIR=$HOME/mov/usr/vhs_converted/recorded/${dir:t}
# if $1 given, use as bitrate value.
bitrate={$1:512k}

for dir in $WORKER_DIR/*
do

typeset -i index=1

if [[ ! -e $DEST_DIR/${dir:t} ]]
then
mkdir $DEST_DIR/${dir:t}
fi

for i in $dir/*
do
ffmpeg -i "$i" -vcodec hevc -b:v $bitrate -aspect 720:480 $DEST_DIR/${dir:t}/${dir:t}-$(printf "%02d" $index).mkv
(( index++ ))
done
done

某コンテストの投票方式の問題点

先日まで某サイトでwebコンテストが実施されていた。だが、これにかなりの技術的問題点があったので、言及しておく。

会員に対する投票と、一般の投票は、票の重さが違う、という仕様で、一般投票は1日に1票、ということだった。しかし、この重複票排除というのは、現実にはまず不可能である、とされている。

重複票排除については1995年頃から議論されていた。1人1票、と設定しても、どうやってその人が既に投票したかを確認するか?ということだ。方法としては、IP, IP+UA, Cookie, 登録制が一般的だった。

IPはゲートウェイホストによって個々のインターネットホストに与えられるため、同一IPの投票を重複とみなす、という方式だ。だが、この方式は、インターネットカフェやケータイ(これは2000年以降)で問題が生じることと、NATを用いるために同一世帯の家族を「重複票とみなしてしまう」という問題があった。一方、PPPならば「電話をかけ直す」ことでIPアドレスは振られ直すことが多く、この重複を排除できない。

IP+UAは、IPとUAの両方が一致する場合重複とみなす、というもので、会社、ネットカフェなど共有回線がまるごと重複とみなされる問題を回避しようとした。しかし、UAは当時は特にバリエーションがそれほど多くなかった上に、詐称することも可能だったため、会社などそれなりの規模になるとかなりの確率で、環境を揃えているネカフェではほぼ確実に重複とみなされ、一方重複投票したい人は容易に回避できた。

Cookie方式はブラウザに「投票した」という情報をもたせることで管理しようというものだ。比較的単純で効果があったが、手元に複数の、Cookieを共有しないブラウザがあれば回避されてしまうし、単にCookieを削除するだけでいくらでも投票できてしまう。

登録制は、重複登録をいかにして防ぐかが問題となる。また、登録制にすることでハードルが上がり、投票数は劇的に低下する。重複票を防ぐ効果は低く、それでいてむしろ避けられることになるため、よほど自信のある(中身にというよりも、popularityにおいて)プロバイダでなければ採用は逆効果だった。

これらの問題の難しさを諦めて、逆手にとったのがAKB方式といえる。つまり、重複投票はしても構わないが、その票数は買わなければならない口数方式だ。

例えば住基カードを使えば1人1票は実現可能だが、厳密性を求めるならなりすましの対策という非常に困難な問題にぶつかることになる。それに、選挙でもなければ同定に住基カードなど使えない。

携帯電話に限る、という方式はお手軽であり、普及している。電話番号を使うことで同定できるためだ。だが、そのような理由でコンテンツを携帯電話に限ることは、アクセシビリティの観点から言っても好ましくないし、やはりアクセスはかなり減少する。それに、そのような目的で電話番号を取得するのはいかがなものか?ということもある。

このほか、TwitterやFacebook, Google+のようなopenIDを使って認証する、という方式もある。電話番号よりはいくらかソフトなやり方だが、その分効果は低下する。

このように非常に難しい重複投票の制限だが、そのコンテストでは、単純にCookieを使う方式だった。CSRF対策か、セッションクッキーを使うようになっていたが、その場合、単純にブラウザのプライベートウィンドウを開いてアクセスし、投票して閉じれば無限投票が可能だ。

もっとあげつないやり方としては、curlなどでセッションクッキーを保存するようにして投票ページを取得したあと、投票するという2回のコネクションを張るだけで投票できる。この間0.1-3.0sec程度なので(私の環境で)、ループすれば1時間で1500票は入れられる。

これはさすがに中止になるか無効になるかするように思う。

もう少し考えて作ってもよかったのではないだろうか。

EasyCap(USBコンポジットビデオキャプチャ)をLinuxで使いたい

安価なUSBキャプチャデバイス、EasyCapを購入した。コンポジットとSビデオを備える。目的はVHSのデジタル記録だ。だが、これが茨の道となった。

Linuxで動作するかは確認しなかった。最悪、Windowsでキャプチャすればいいという考え方からだ。動作自体は以外と簡単で、V4L2ドライバで動くらしい。

ffmpeg -f alsa -i pulse -f v4l2 -s 1280x640 -i /dev/video1 -f mpeg - | vlc -

これで一応は表示できる(USBカメラがあるため、video1となっている。音声はPulseAudioを使用。同様に例えば

ffmpeg -f v4l2 -framerate 25 -video_size 640x360 -i /dev/video1 out.mkv

のように録画することもできる。

H.265で高品質圧縮を狙ったが、

ffmpeg -f alsa -i pulse -f v4l2 -s 640x480 -i /dev/video1 -vcodec hevc -b:v 256k -aspect 640:480 ~/tmp/test.mkv

音は記録できるが、映像はコマ落ち、変色、コマが混ざるなど見られたものではない。

Linuxでのさらなる方法として、VLCを使うという方法がある。ビデオデバイスは「キャプチャーデバイスを開く」で簡単にできるものの、オーディオデバイスはどうすればいいのか悩んでしまった。PulseAudio経由で取得したい場合、pacmd list-sourcesにあるName項目を見て、pulse://Name とすれば取得できる。

これはレイテンシもわずかで非常に快適な視聴が可能。しかし、変換/保存から保存しようとすると、コマ落ちなどが激しい。

他に様々なアプリを試したが、満足な品質にはならなかった。

そこで、ラップトップのWindowsでトライ。純正ソフトであるHoneSteach TVRを使う。だが、まず録画設定に適切なものがない。MPEG-1、MPEG-2とも320×240しかないのだ。DVDを選択することで720×480が選択可能。これで正常に録画できるが、プレビューでは問題のないものの、録画するとかなりコマ落ちが発生する。これはVLCと同様と言ってもいいが、VLCの場合のほうが常にスムーズに録画できないため、こちらのほうがマシだとも言える。

恐らく本当に重要なビデオは2回録画したほうがいいだろう。結構な頻度で発生するため、編集前提にしたほうが良いと思う。

仕方がないのでデスクトップでトライしようとした。DTM用なので余計なソフトウェア(特にデバイスドライバ)は入れたくないのだが、仕方がない…と考えたのだが、Autorunからインストールしようとするとフリーズした挙句、Version mismatchと言われて終了してしまう。ディスクから直接にインストーラを起動すればインストールできるが、起動すると(こちらではMPEG-2で720×480が選べる)、録画を開始した途端に「ディスク容量不足です」と表示され録画が止まってしまう。他に適当な、動作するキャプチャソフトはみつけられなかった。

フラストレーションのたまる結果だ。Lowlatency Kernelならできるといったことがあるのだろうか。

サイトの大幅手直し

ウェブサイトに直すべき点が大量にあったためにかなり手をいれることになった。

CSSグラデーション、デザインの修正

まずベンダープレフィクスを用いたCSS3のグラデーションを入れた。

/* headline level2 decoration */
h2 {
width: 100%;
background: -moz-linear-gradient(left -65deg, #fff, #acf);
background: -webkit-gradient(linear, left top, right bottom, from(#fff), to(#acf));
}

これはAki SI&Eのほうのもの。これを使い、サイトロゴは透過画像として(新規に作成した)、背景にグラデーションを入れた。画像はフォアグラウンドのイメージ

/* Header container (Top position of Main container) */
#Header {
background: #fff;
padding: 0 1.3em;
max-height: 125px;
}

#SITE_REASONSET #Header img.sitebanner {
margin-right : 40%;
width: 50%;
}

#SITE_REASONSET #Header {
background: -moz-linear-gradient(left -65deg, #f0f8ff, #acf);
background: -webkit-gradient(linear, left top, right bottom, from(#f0f8ff), to(#acf));
}

SI&Eのほうはメインコンテナが950pxとっているのに切り替えを750pxにしていたのでこれも修正。

Aki SI&Eのほうはキャプチャのスタイルを変更。

h1 {
border-top : double 5px;
border-bottom: double 5px;
color: #39f;
margin-left: -1em;
margin-right: -1em;
margin-top: -0.8em;
text-align: center;

}

マイナスのmarginはあまり見ない気がする。このようなデザインはほとんど見ることはないが、なかなかパッとみてすっきりと見えて目を引く良いデザインだと思う。このために、テキストインデントのマイナスは消した。テキストインデントのマイナスは一行目にのみ適用されるらしい(brで改行すればその都度適用されるのだろうが、折り返しには適用されない)。

サイトバーウィジットの変更

AKi SI&Eが先行で変更され、それがReasonSetに反映され、さらにReasonSetで追加された機能がAki SI&Eのほうに入った。

<!-- Sub column -->

<!-- Menu -->

-*- Menu -*-

<%= ENV["SUBCOLUMN_CONTENT"] || "" %>

<!-- Notes if any -->
% unless DOC.notes.empty?

-*- Notes -*-
    % DOC.notes.each do |note|

  1. <%= note %>
  2. %end

% end

<!-- Navigation links with PureDoc and PureBuilder template -->
% if DOC.meta["link"] && ( DOC.meta["link"]["next"] || DOC.meta["link"]["content"] || DOC.meta["link"]["prev"] || DOC.meta["link"]["start"] )|| ENV["reasonset_link_content"] || ENV["reasonset_link_start"]

-*- Referrances -*-

% end

<!-- / Sub column -->

このために、これまでSubCloumnコンテナ直下にメニューがあったが、それとcontent_boxクラスを分離して、同クラスのdiv要素を追加している。

/* White background */
.content_box {
background-color: #fff;
}

/* Padding for continuous content box. */
.content_box + .content_box {
margin-top: 11px;
}

Aki SI&Eのほうはもう少し手の込んだものになっている。

#SideBar .container {
padding : 1.28em;
}

#SideBar .container:last-child {
margin: 0;
}

CSS3の:last-child擬似プロパティを使うことで最後が間延びしてしまうことを防ぎながら、要素を分離してチェックをみせるようにしている。

注釈をサイドバー内にも表示するようにした他、内容的にはこれまでコンテンツ側にあったACCSのserial articleのreferranceをサイドバーに表示するように変更した。

レイアウト方法の変更

これでサイドバーが長くなったのだが、なぜかこれではメインコンテナが短縮されてしまう。あくまでメインカラムの高さに合わせるのだ。構造としては

なのでこの挙動は謎だが、MozillaでもBlinkでも同様の挙動を示す。

floatすると一見うまくいくようだが、逆にサイドカラムの高さに合わせてしまい、メインカラムが突き抜けてしまう。また、幅もきちんと規定しなくてはいけない。

結局、3者全てinline-blockにしてしまえば高さは正しく確保される。ただし、これでは2つのカラムはmarginがとられないためぴったりくっついてしまう。

そこでこれをmargin, padding, border-widthが全て0のコンテナとし、paddingは別のブロックで確保する。paddingは設定してもよかったのかもしれないが、このほうが管理しやすい。

エッセイ用のほうが先行して開発されたので、構造が甘かった。ReasonSetはもう少し安定しているが、やはり作りなおしたほうが良いと思われる。ちなみに、ReasonSetが安定しているのは、高さが規定されているためでもある。

ここまでしたのだが、inline-blockで幅を%指定だとGeckoでは見られるが、Blinkでは上下にレイアウトされてしまう。ピクセル指定にすれば大丈夫だが、relativeにした上でレイアウトし、さらにfloatすれば%指定でもBlinkで正常に表示される。

ACCSの修正

まず、TOC機能がエラーになるようになっていた。以前はRuby2.0でやっていたが、2.1になったからだろうか?どうも、クラスが違うオブジェクトを持つArrayを比較しようとしている、ということらしい。文字列しか格納しないように思うのだが、一応to_s

essaies.push [ sortitem.to_s, fp.to_s, meta["title"] ]

TOCに戻るリンクが間違っていた。これは、設定ファイルがreasonset_link_contentsとしているのに、テンプレートはreasonset_link_contentとしているという単純な理由だった。これは、HTMLのlink要素に対応するのでcontentsが正しい。ちなみに、Essayにはその機能がそもそも含まれていなかった。

そして、ACCS記事間のリンクが機能しない。Talkin’ About(Aki’s Palace)との違いが見つからず、一体…と思ったのだが、grepしてみるとその設定はrbutilに含まれており、chienomiが専用で使っている。chienomiのリンクが機能していたので、当然Talkin’ Aboutでも機能しているものと思い込んでいたが、実際はTalkin’ Aboutでは機能しないわけだ。単に記事がひとつしかないので気づかなかっただけだ。

基本的にはACCS記事内でそのスクリプトをロードすれば機能するのだが、ロードすべきスクリプトが存在しない。chienomiのものはパスがハードコーディングされている。そのため、それを修正したバージョンを用意した。

また、「最初の記事」だが、

export reasonset_link_start="si/$wd_element/${artdir:+${$(print $artdir/*.pdoc):r}.html}"

となっていた。Talkin’ Aboutでは機能していたが、これは記事がひとつしかないからだ。つまり、複数のファイルがあると、それが連なった文字列(スペース区切り)の最後だけpdocをhtmlに変えることになってしまう。

当然、先頭のファイル名のみをとり出さなくてはいけない。(#q[1])で機能しなかったので、

export reasonset_link_start="si/$wd_element/${artdir:+${$(print -l $artdir/*.pdoc | head -n 1):r}.html}"

と変更した。単純な方法だが、そこまで繰り返し呼び出すわけではないので、head(1)を呼び出す程度どうということはないだろう。

ノートインデックスの作成

ノートのインデックスを作るため、まずPureDoc側を修正。その機能をスーパークラスに追加。

### Notes ###
# Add note text to an array
def addnote(note)
@notes.push note
end

attr :notes

サブクラスで呼び出し

# Note
def n(text, ¬e)
puredoc_element(:n) do
note = note.call
addnote note
'%s</pure:note>' % [esc!(note), esc(text) ]
end
end

ちなみに、HTMLクラスタイプだけノートとテキストが逆になっていた。どちらが正しいのかよくわからなくなっている。仕様を規定すべきだろう。

そして今修正した。

def n(note, &text)
puredoc_element(:n) do
addnote esc!(note)
'%s</pure:note>' % [esc!(note), esc(text.call) ]
end
end

これでノートインデックスの作成が可能になった。だが、これに対応した表示が本文に必要だ。これはCSSに任せる。

body {
counter-reset : notes;
}

/* Note element */
.puredoc_note:after /*, puredoc|note:after */ {
vertical-align: super;
font-size: 80%;
content : "\002020" counter(notes);
counter-increment: notes;
text-decoration: none;
}

content中の文字参照はどうするのだろう、と思ったら、16進数にした上でクォート内で

Manjaroのアップグレード時のX起動問題と、マウスカーソルの問題

昨年末にきていたAURのアップデートだが、これを適用するとXが起動しなくなる。LVMスナップショットを使ってロールバックしていたが、3回適用しても全て同様の症状となる。

しかし、3回目にyaorutの実行メッセージにヒントをみつけて次のように実行した

sudo mhwd-gpu --setgl catalyst

これで正常に起動した。スナップショットを削除して完了。

そして先日からセカンドモニターのマウスカーソルがバグる、という話をしていて、なんとかしたいので調べてみた。すると、Radeonの問題であり、Windowsでも生じるらしい。Windowsの解決策が並ぶ。

“linux pointer cursor distored”で検索すると情報が出てきた。

のように、

Option “SwCursor” “true”

xorg.confに追記することで解決する、らしい。解決したのかは分からないが、とりあえず今のところなっていない。

Googleの邪悪さをみた

私は邪悪になってしまったGoogleが嫌いだ。Appleはもっと嫌いだし、Duck Duck GoやTizenやFirefox OSが十分なレベルに到達してくれないため、なかなか切り捨てるのは困難だが…

先日、スマートフォンのアップデートをしたところ、回復用に電話番号を送信しろという。戻るキーをタップしても抜けてくれず、次に進むと問答無用で電話番号を勝手に取得して送ってしまう。同意確認は一切ない。

どうやらGMailのアップデートによるらしいのだが、そもそも私はGMailのアップデートを選択していない。裏で勝手にアップデートして、電話番号を送らなければ使わせないぞ、というわけだ。

さらに、その件があってから、GMailは常時起動するようになってしまった。私はGMailを使っていないし、常時通信するアプリを入れておきたくないのだが。

だが、それを排除しようにもGMailはアンインストールできないという。中核アプリだから、というのだが、スマートフォンの構成にGMailが不可欠である、というのは説得力があまりにも欠けている。

アップデートを削除したあと、無効化することができる、ということがわかったのだが、アップデートを削除すると、「全てのアップデートは削除され、出荷時の状態に戻ります」的なことを言ってくる。そのアプリに限った話なのか特定しづらいため、二の足を踏む。

実に邪悪だ…