1. Spacemacs環境で起動直後のバッファを変更する

    Emacsでは通常、このようにすると起動時に node.org を自動で開いてくれます。これでToDoなどが書かれているファイルを開いていました。 起動時に視界にToDoなどが入ってくるので大変便利です。

    (initial-buffer-choice "~/Dropbox/Documents/note.org")
    

    しかし、それはSpacemacs環境では使用できませんでしたので、代わりに自分でファイルを開いて、自分でそのバッファに移るようにしました。

    dotspacemacs/user-config 内に以下を加えます。

    (switch-to-buffer (buffer-name (find-file-noselect "~/Dropbox/Documents/note.org")))
    

    以上です。

    続きを読む

  2. プライベートなPyPIを持つ

    プライベートなPyPIを持つことができれば、自分専用や、社内専用のライブラリをpipでインストールできるので、とても便利でしょう。 そのようにライブラリを共有する方法について、GitHubなどを使ってもできると4月に 書いていました 。今回はこれを、プライベートなPyPIを持つことによって実現する手順を記します。

    続きを読む

  3. クラス変数をメソッドにデフォルト引数として渡す

    class A:
        NAME = "A"
    
        def echo(self, text: str = NAME) -> None:
            print(text)
    
    
    class B(A):
        NAME = "B"
    
    
    B().echo()
    

    この B().echo() は「B」ではなく、「A」を出力します。

    class B(A):
        NAME = "B"
    
        def echo(self, text: str = NAME) -> None:
            print(text)
    

    このように、Bでechoをオーバーライドしたら、出力は「B」になります。デフォルト引数の評価タイミングは少し難しいですね。

    続きを読む

  4. helm-grep-do-git-grepでリポジトリ全体からgrepする

    以前の helm-grep-do-git-grep はgitリポジトリ内のどこにいても、gitリポジトリの全体から検索していましたが、 この変更 から現在のディレクトリ以下からのみ検索されるようになりました。リポジトリ全体から検索するのに、毎回最上位のファイルに移動してから helm-grep-do-git-grep するのは手間なので、以前と同じ動作をするコマンドを定義しました。

    (defun helm-grep-do-git-grep-all ()
      (interactive)
      (helm-grep-do-git-grep t))
    
    続きを読む

  5. PyramidでSwaggerを使う

    Swaggerは公式サイトではこのように説明されています。

    Swagger is a simple yet powerful representation of your RESTful API. With the largest ecosystem of API tooling on the planet, thousands of developers are supporting Swagger in almost every modern programming language and deployment environment. With a Swagger-enabled API, you get interactive documentation, client SDK generation and discoverability.

    私なりに意訳すると「SwaggerはRESTful APIのシンプルで強力な表現で、ほぼすべてのモダンなプログラミング言語をサポートしています。Swaggerにより、ドキュメントとクライアントのSDKを生成することができます。」です。Swaggerのフォーマットに従って、YAMLまたはJSONでAPIを定義します。

    このSwaggerでAPIを定義し、そのAPIをPyramidで提供してみます。

    続きを読む

  6. Spacemacs環境でElscreenを使う

    最近Spacemacsを知り、使い始めました。とても気に入っています。Elscreenを以前から使っていたので、Spacemacsでも使いたいと思ったのですが、 elscreen-start をすると

    (wrong-type-argument consp nil)
    

    となり、Elscreenを使用できませんでした。これの解決のための手順です。

    続きを読む

  7. UbuntuでexFATファイルシステムを読む

    私はGoPro HERO4 Sessionに64GBのmicroSDXCカードを使用しているため、GoProにより、microSDXCカードがexFAT形式でフォーマットされていました。Ubuntu 16.04では標準でこれを読み書きすることはできません。 exfat-fuse パッケージをインストールする必要があります。

    sudo apt-get install exfat-fuse
    

    これだけです。再起動も必要ありません。

    続きを読む

  8. Ubuntu 16.04で、他のアプリケーションからURLをChromiumでうまく開けない問題に対処する方法

    ブラウザではないアプリケーションにURLが表示されていて、それをクリックすると、ブラウザでそのURLが開かれるというのはよくあることですが、私のUbuntu 16.04は、なぜかそれができませんでした。新しいウィンドウでChromiumが起動し、ブランクページのみの状態になります。

    なぜこうなってしまったのかは分かっていませんが、 ~/.local/share/applications/chromium-browser.desktopExec のところが、 Exec=chromium-browser --enable-pinch になっていました。 これではURLを受け取れていないので、 Exec=chromium-browser --enable-pinch %U%U を加えます。 これで解決です。

    続きを読む

  9. fcitxの暴走を止める

    Ubuntu 16.04でソフトウェアアップデートを行い再起動したところ、fcitxが暴走するようになってしまいました。そのソフトウェアアップデートにはfcitx関連のものは入っていなかったと思いますが、確かではありません。

    CPUは全然使われないのですが、メモリをほぼすべて確保され、ロードがとても高く、まともに操作できませんでした。

    電源を落として、もう一度Ubuntuを起動し、ログインする前に Alt + F5 で別のコンソールに入ります。ここでならGUIが起動しないので、fcitxも自動起動しません。 ここで、 % mv ~/.config/fcitx~/.config/fcitx_backup とし、再度再起動すると、暴走がおさまりました。

    続きを読む


2015 - 2016 (c) 成瀬基樹