Folioscope

Archive for 2015

  • タッチバッドのスクロール機能を残したままマウス移動を無効化

    photo by kBoey pictures ThinkPadは、タッチパッドとポインティングスティック(赤乳首)の両方が搭載されてます。 同じ機能がある部品が2つあるのは冗長で、キー入力中の誤感知などの問題もありますが、 無効化するには75mmx35mmの物理領域を占めるのでもったいないです。 そこでタッチパッドをスクロール専用デバイスにします。 参考 synaptics: Add TouchpadOff=3 to disable pointer motion only - …

  • 「通信の最適化」に関する感想

    photo by e53 数週間前から、携帯キャリアの「通信の最適化」が話題となっている。具体的な内容は、送受信される画像の圧縮やメタ情報を削除して、通信するデータ量を減らそうというものである。 そんな通信の最適化が、物議をかもしている。 今回の問題点をおおまかに整理すれば、次の3つだろう。 違法性 通信会社の対応 情報の改変・欠損で起こる問題 残念ながら自分は法律の専門家ではないし、通信会社から理不尽な対応をされてわけではないので、ここでは1,2については議論しない。 エンジニアとして着目 …

  • 中古サーバの購入を考える

    photo by Anirudh Koul 別に家でサーバを立てるわけではない。自宅のデスクトップPCが壊れてからしばらく経つが、自宅では惨めな思いでラップトップを叩いてる。そこでいい加減デスクトップPCを新調したいと思っている。これまではDDR2時代の化石なので、マザーボードから買い換える必要がある。今の時代、4スレッドは心もとないし、メモリも16GiBくらいはほしい。なんてことを考えると良い値段となる。しかしその値段で、そこそこのCPUとメモリを搭載した中古サーバが変えるとどうだろう。いや検 …

  • Unicode 9.0 予想

    Unicode 8.0 が6月17日に正式に仕様として発表されて、しばらく経つ。人種差別問題へも、人の顔と肌の色を定義した制御文字を組合せて使うことで対応した。 単純に言うと「か」と「゛」を組合せて「が」を表示する、いわば合成文字だ。 なんとも開発者泣かせな話ではある。 また同じような仕組みで、人と人をZWJという制御文字で繋げることで、家族まで作れる。 開発者の悲鳴が聞こえくる。 肌の色を仕様に含ませた、エンジニアの気持ちもわからない人権団体は調子に乗り、次に目や髪の色に目をつけるだろう。とな …

  • LaTeXのビルドシステムとテンプレートプロジェクトを作りました

    TeX/LaTeXのややこしいビルド手順を、Makefileに起こして公開していましたが、TeX/LaTeXプロジェクトのテンプレートにPOWER UPしました。 ueokande/tex-makefile Makefile to compile TeX document. github.com ディレクトリ構造は、Middleman風に、ソースコードをsourceディレクトリに配置します。またローカルなtexmfにも対応しており、このプロジェクトでしか使わないような.clsファイルや.sty …

  • GitHubのcontributionsを編集できるChrome Extension作った

    GitHubのcontributionsを編集できるChrome Extension作った ueokande/github-pseudo-contributions GitHub Contributions Editor github.com インストール Gitリポジトリからcloneして $ git clone https://github.com/ueokande/github-pseudo-contributions.git Google Chrome/Chromium …

  • operator!=のオーバーロードを省く

    operator== がオーバーロードされていたら、 operator!= の値は自明なので、定義を省きたい。 struct Num { Num(int x) : x(x) {} bool operator==(Num y) const { return x == y.x; } int x; }; というクラスを定義したときに、Numクラスの比較結果は、 Num(0) == Num(0); // 1 Num(0) == Num(1); // 0 Num(0) != Num(0); // コンパ …

  • C++でRubyのdoブロックっぽいこと

    多くのケースの場合、メソッドに渡すクロージャは一つなので、Rubyのdoブロックのようにクロージャを書くための文法があるのは理にかなっている。C++でも同じことはできないかなーと思って、少し書いてみた。 C++の文法自体を変えることはできないけど、目を細めて見たら”λ = “に見えなくもない/=演算子をオーバーロドして、std::functionをパスできるArrayクラスを作ってみました。 使い方 Array<char> array …

  • std::tupleのhead/last/init/tail

    今日は久しぶりにC++っぽいコードを書いていた。僕の知識もC++03止まりだったので、std::tupleを操作するメタメタしいプログラムを書いてみた。std::getにsize_t...を渡して展開するの面倒だなーと思ってたら、std::index_sequenceという、便利なヘルパクラスもあることを学びました。autoやconstexprやその他いろいろ、便利な時代になりました。 gist.github.com 実行結果 [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ

  • 新生活が捗るディレクトリ移動のaliasたち

    大きなプロジェクトは、ディレクトリ構造が深くなりがち。 そうなるとディレクトリの上下移動が激しくなり指が死ぬ。 そこで自分がいつも使っているaliasを紹介します。 気に入ったaliasは.bash_profileや.bashrcにメモしましょう。 ../.../.... ディレクトリを上下に激しく移動する人が、何度もcd ..タイプするのもムダなので、..とかにaliasします。 alias ..='cd ..' alias ...='cd ../..' …

< Page 2 of 3 >