スポンサーリンク

2016年10月13日木曜日

Emacs25 の package-selected-packages を何とかする

Emacs25 になって、インストールされたパッケージが package-selected-package 変数に保持されるようになりました。これはパッケージを削除する時などに依存性に矛盾が発生しないようにするために使われるようです。

パッケージを保持するだけならばいいのですが、問題は、M-x list-packages などを実行した時に、この値が init.el (まはた .emacs)の末尾に勝手に書き込まれてしまうことです。

超新星とは何か

NGC6751
NASA/The Hubble Herritage Team(STScI/AURA)

誤解されている用語

作家の星新一氏は、よく人から「星新一って逆から読むと一新星となり、いい名前ですね」と言われ、その都度、新星ってのは星が死んでいく時の最後の姿なんだけどなとボヤいている、とエッセイに書いておられました。因みに「星新一」はペンネームではなく、星氏の本名です。

最近でもよく「野球界に新星誕生」みたいな使い方をされます。そう言えば「超新星」なんていう音楽グループもいましたっけ。新星は英語で言うと Nova です(超新星は Supernova)。これもよく使われる名前です。死ぬゆく星の名前だということ認識してるのでしょうか。

新星/超新星は最も誤解されている天文用語です。

2016年10月12日水曜日

次世代の高速検索ツール ripgrep を howm で使う

高速検索ツール ripgrep

以前、howm で ag (The Silver Searcher) を使う という記事を書きました。しかし ag を使っていても、howm のメモが数千を越えるとそれなりに検索に時間がかかるものです。それに ag はバグが多いという問題もあります。

そんな時、るびきちさんのブログ 見て ripgrep なるツールがあることを知りました。

初めて ag の検索を見た時、その速度に驚いたものですが、ripgrep は更にその数倍の速度を叩き出しています。ag でもうこれ以上劇的なパフォーマンスの向上はないだろうと思い込んでいましたが、まだこれだけ改善の余地があった事には驚きです。実際に使ってみても、おっ!と思うくらい速いのが実感できます。

2016年10月7日金曜日

Emacs 25.1 で起動時に警告が

Emacs 25.1 を使ってみた

Emacs 25.1 がリリースされたので、早速使ってみました。24.5 の時の設定は、何も変更せずにほぼそのまま使えました。

一点だけ問題があり、起動時に以下の警告が出るようになってしまいました。

Warning (bytecomp): (lambda (arg) ...) quoted with ' rather than with #'

警告なので内容からしても無視してして構わないと思いますが、起動する度にこれが出るのは精神衛生上よくありません。

lambda 関数のクォートに #' ではなくて、' が使われていることに対して警告を出しているようです。

2016年9月30日金曜日

Android AppCompatActivity で openOptionsMenu() が機能しない

AppCompatActivity を使っていて openOptionsMenu() が機能しないことに気づきました。普通の Activity であれば以下のコードでメオプションニューを起動できます。

    View button = findViewById(R.id.menu_button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openOptionsMenu();
        }
    });

これが AppCompatActivity では機能しません。Google はどうもアクションバー以外からオプションメニューを起動させたくないようです。アクションバーを使用しない NoActionBar という選択肢もあるのに、それでも openOptionsMenu() は機能しません。

Activity や Fragment 上に配置したボタンからオプションメニューを起動したい場合もある筈です。なのでその方法を探してみました。

2016年9月22日木曜日

Android アプリの後方互換性と前方互換性

Android アプリの互換性

Android アプリには後方互換性(backward compatibility)と前方互換性(forward compatibility)が保証されています。

これらの互換性は build.gradle の中の以下のパラメータで制御されます。

  • compileSdkVersion
  • minSdkVersion
  • targetSdkVersion

これらは使用可能な API レベルや互換性をコントロールする重要なパラメータですが、意外にも正確なところがあまり理解されていないようです。 なのでこれらのパラメータを整理してみました。

2016年9月21日水曜日

Windows10 Anniversary Update で Genymotion が起動せず

自動更新で Windows10 Anniversary Update (Version 1607)がなかなか降ってこないので、手動で更新チェックを行なったらあっさりとダウンロードが開始されました。

更新してみて、少し触ってみた限りでは、ここ何年も迷走しているスタートメニューが少し変わったくらいで、どこが使い易くなったのかさっぱり分かりません。Edge や Cortana がアップデートされたようですが、最初から使っていないし、事前のアナウンスの割にはどうでもいい更新でした。

まあそれはそれとして、困ったことに Genymotion がまったく起動しなくなってしまいました。起動しないだけならまだいいのですが、Windows そのものがクラッシュしてしまいます。久し振りに見ました、ブルースクリーン。今こんなんなってんのね。



何か情報を収集いていますが、こんなもので物事が解決した事はありません。