タグ

ブックマーク / kiwanami.hatenadiary.org (18)

  • 手元の init.el を淡々と紹介する - 技術日記@kiwanami

    Emacs Advent Calendar 2012の記事です。昨日は @syohex さんのEmacsでポモドーロテクニック - Qiitaでした。 さて、今回は手元の init.el のネタを淡々と紹介してみます。 みんな知っているよねというネタばかりだとは思いますが、逆に珍しかったりするものもあるかもしれないので、すこしでもお役に立てれば幸いです。 構造化 まず、設定ファイルの構造化ですが、いろいろ試した結果以下のような感じで分けることで定着しました。 init.el 以下のファイルを読み込み base 外部ライブラリに依存しない標準Emacsの設定 frame GUIなど見た目周りの設定 utils 便利ツールの読み込み、設定 modes 各種modeの読み込み、設定 keybinds グローバルキーバインドの設定 completions, e2wm, howm, org, wl,

    手元の init.el を淡々と紹介する - 技術日記@kiwanami
    Nean
    Nean 2012/12/17
  • 技術日記@kiwanami

    求められている気がしたので、EmacsLispについて知っていることを書いておこうと思った。 PerlでWebAppの開発に必要なN個のこと - Islands in the byte stream 開発に必要なN個のこと by Google パッケージマネージャ Cask を使うのが今風。先日CartonというPerlのパッケージマネージャと名前がかぶっていたので、改名された。 https://github.com/cask/cask ちなみに、普段使いであれば、Emacs24.xから標準で入っているpackage.elを使うか、el-getを使う。 Bitbucket | The Git solution for professional teams アプリケーションサーバ イベントドリブンなElnodeと、httpd.elをpure Emacsで書きなおした simple-httpd

    技術日記@kiwanami
  • [emacs][ui] calfw の org-agenda 対応 calfw-org.el - 技術日記@kiwanami

    (2011/07/25 追記: 設定方法が多少変わっていますので最新の記事を参照してください→[emacs][ui] Emacs用カレンダー calfw v1.2 リリース - 技術日記@kiwanami) 大変遅くなりましたが、要望の多かった org-mode の calfw 対応をしました。 (2011/06/20 追記:自分の知らなかったパターンが表示されないバグがありましたので calfw-org.el を更新しました。@takaxpさんありがとうございました!) org-agenda の週表示を calfw で表示出来ます。 左が元の org-agenda 、右が calfw での表示 ついでに、1日に複数の予定があったときに正しく表示されない場合があるバグと、バイトコンパイルの問題で動かない場合がある問題の修正を行いましたので、今まで使っていた人も更新しておいた方が良いと思いま

    [emacs][ui] calfw の org-agenda 対応 calfw-org.el - 技術日記@kiwanami
  • Emacsへの知の集約 - 技術日記@kiwanami

    Emacsでアプリを作ることについての自分の考えのまとめ。 Emacsの2つの側面 Emacsの可能性を議論する場合に、エディタ・IDEとしてのEmacsと、アプリケーション実行環境としてのEmacsの2つの側面を分けた方が良いかなと思っています。両者がごっちゃになるので、「Emacsは環境だ」→「エディタでメールとか変態だ」→「むきー!!!」という不毛な議論になるのだと思っています。 単純なエディタやIDEとしてのEmacsについては、十分議論が出ていると思いますので、ここでは議論しません。個人的には、趣味なら自由、仕事でやるなら望まれた生産性を満たす好きなツールを使えばいいと思っています。 今回の議論は、アプリケーション実行環境としてのEmacsです。こちらは、 Eclipse RCP や FLEX、JVM系各種スクリプトや、各種Webフレームワーク、GAE や HTML5 といった言

    Emacsへの知の集約 - 技術日記@kiwanami
  • cacoo.el v2.0 リリース - 技術日記@kiwanami

    cacoo.el を更新しました。 参考:初回リリース記事 Emacsでスムーズに図形編集ができるようになるcacoo.elを作ってみた - 技術日記@kiwanami 表向きは Anything で Cacoo の絵が選べるようになったぐらいですが、内部的にはかなり別物になりました。非同期処理を deferred.el と concurrent.el でほぼ全面書き直ししました。その結果、キャッシュ画像の扱いが賢くなり、動作速度の向上や信頼性などが向上しています。 動かした方が分かりやすいと思いますのでムービーを作ってみました。 ムービー内容:画像を一気に表示、Anythingで選択、プレビュー表示、migemo検索・絞り込み、文書へ貼り付け、サイズ調整 cacoo.elの説明については、github上のREADMEファイルに詳しく書いていますので、ぜひそちらも参照してください。 インス

    cacoo.el v2.0 リリース - 技術日記@kiwanami
    Nean
    Nean 2011/03/04
  • yasnippet や emacs lisp の小ネタなど - 技術日記@kiwanami

    yasnippet は定型コードなどを素早く展開することが出来る汎用テンプレートフレームワークです。 yasnippet - Project Hosting on Google Code 普通の使い方 yasnippetのドキュメントは家のページに良くまとまっています。elisp書ける人は全部読むとかなりsnippet力が上がると思いますので、ぜひ読んでみたらいいと思います。 http://yasnippet-doc-jp.googlecode.com/svn/trunk/doc-jp/index.html (2011/09/15 追記) あと、以下のページでもみんなテンション高くなってます。(もう3年くらい前の祭りですが。。。) yasnippetがすごい!!!!1112345! - Kentaro Kuribayashi's blog yasnippet.elをインストールしてみた

    yasnippet や emacs lisp の小ネタなど - 技術日記@kiwanami
  • Emacsでカレンダーコンポーネントを作った - 技術日記@kiwanami

    (2011/07/25 追記: 設定方法などについては最新の記事を参照してください→[emacs][ui] Emacs用カレンダー calfw v1.2 リリース - 技術日記@kiwanami) Emacsで使えるカレンダーが必要だったので作りました。 (追記 2011/01/08 ical連携の設定に足りないところがありましたので修正いたしました。また、Emacs22ではpeccuさんの所の追加設定を参照してみてください。 → CarbonEmacsでかるふわ使っちゃうよ!(ぺっくブログミラー@peccul)) こんな感じ 完成までには近所の人たちから、「カレンダーなら壁に掛かってるだろう」とか、「Google Calendarという無料のカレンダーがありまして」とか、「カレンダーならiPadにもあります」とか、幾多の助言を頂きました。ありがとう。分かってます。自分だって、2年前にPy

    Emacsでカレンダーコンポーネントを作った - 技術日記@kiwanami
    Nean
    Nean 2011/01/09
  • Emacs上のATOKで快適日本語生活 / 2010 Emacs Advent Calendar - 技術日記@kiwanami

    この記事はEmacs Advent Calender jp: 2010の5日目です。 Ubuntu上での漢字変換やEmacs上での漢字変換にはSKKを使われる方が多いと思います。導入も簡単です。ただ、自分は今まで何度も使おうと挑戦してきたのですが、挫折し続けてきました。 一方で、Ubuntuのデフォルトの変換エンジンはAnthyになっています。それなりに悪くないのですが、すぐに学習を忘れてしまうのでスーツ族には辛いです。 ということで、いろいろ試した結果、JustSystemさんの ATOK X3 にたどり着きました。とてもいいです。 普通のGUI上ではそのままで快適なのですが、Emacs上では微妙にキーバインドを取られたりして辛いです。ということで、Emacs上でATOKを快適に使う設定について書いてみようと思います。 Ubuntuユーザーで、ATOKユーザーで、しかもEmacsユーザー

    Emacs上のATOKで快適日本語生活 / 2010 Emacs Advent Calendar - 技術日記@kiwanami
  • anythingでPDFファイルをプレビューしながら高速に選びたい - 技術日記@kiwanami

    anything-books.el ? anythingでPDFファイルをプレビューしながら開くプログラムを作りました。 なぜか大量にPDFがあって、PDFの管理方法に困っていて、たまたまEmacsを使っている人向けです。 画面イメージ 動かした方が受けが良さそうなので、今回はスクリーンキャストを用意してみました。 スクリーンキャスト インストール 必要なもの: anything-books.el anything.el deferred.el, concurrent.el ImageMagick PDF変換ツール(evince, convert+gsとか) PDFビューアー(AdobeReaderとか) anything.elはすでに皆さん入っていると思います。まだの人はanything導入のeverything 〜3分で使えるanything.el〜 - http://rubikitc

    anythingでPDFファイルをプレビューしながら高速に選びたい - 技術日記@kiwanami
    Nean
    Nean 2010/11/18
    こりゃ便利そう。
  • 非同期と継続と私 - 技術日記@kiwanami

    非同期のプログラミングの解説の中にはよく「継続(渡し)」が良く出てきます。継続といえば Scheme の call/cc ですが、やっぱり JSDeferred のサンプルのページにも出てきます。直感的にはあんまり関係ないような気がしますが、関係があるようです。 さらに、非同期と遅延評価の関係も気になります。非同期は「結果が後で来る」感じですが、遅延評価は「必要になるまで結果を計算しない」ということで、後回しにする感じが似ています。 今回、deferred.el を作った後にこれらについて考えてみたところ、なんとなく自分の中で実用的な結論に達したのでまとめてみました。以下、その過程とまとめです。 あらすじ 継続渡し(CPS)と非同期 CPS変換から非同期化 Deferredで非同期化 遅延評価と非同期 遅延関数のCPS変換から非同期化 Deferredで非同期化 明示的形式と暗黙的形式 継

    非同期と継続と私 - 技術日記@kiwanami
  • deferred.el のできるまで:調査、設計と実装 - 技術日記@kiwanami

    deferred.elを作る上での参考にした情報や、設計・実装のメモです。 一般的なDeferredの理解や、Deferredの情報まとめとしても使えるかもしれません。 Deferredについて コールバックをうまく書くイディオム 非同期処理の抽象化の道具 汎用性が高く、使い始めると無いと困るレベル 後述のbrazilさんの記事が大変オススメです。 参考にした情報など 基的に古い記事(2年以上前)が多く、JavaScript界の中ではすでにブームは過ぎ去って、常識の域になっているようです。そうは言っても、deferred.elを実装するために過去のブックマークなどを掘り起こして読み直してみたのですが、自分の中では再発見することも多かったです。 JSDeferred deferred.elで一番参考にした実装です。実装がシンプルです。 後述のMochikit.AsyncのDeferredに

    deferred.el のできるまで:調査、設計と実装 - 技術日記@kiwanami
  • deferred.el の出来るまで:Emacsでの非同期処理 - 技術日記@kiwanami

    Emacsでの非同期処理は大変 これまでEmacsのGUIアプリをいくつか書いてみて、非同期の処理を何とかしたいと思ったことが deferred.el を書こうと思った動機です。 Emacs Lisp上でコマンドを非同期で処理しようと思うと、コールバックをつなげたり、正しくエラー処理を行うために、かなり長いコードを書く必要があります。また、最近はWebにアクセスする機会も多いのですが、これも非同期で処理するとなるとまた面倒です。非同期をやめて、ブロックする(Emacs全体が固まる)コードで書けば楽なのですが、それではユーザー体験としてマイナスになってしまいます。 特に大変だったのが cacoo.el を作っているときでした。 cacoo.el では、以下のような流れで画像を表示します。 Webから画像取得(wget) 画像サイズ取得(identify) 画像リサイズ(convert) 表示

    deferred.el の出来るまで:Emacsでの非同期処理 - 技術日記@kiwanami
  • 2010-10-08

    Emacsでの非同期処理は大変 これまでEmacsのGUIアプリをいくつか書いてみて、非同期の処理を何とかしたいと思ったことが deferred.el を書こうと思った動機です。 Emacs Lisp上でコマンドを非同期で処理しようと思うと、コールバックをつなげたり、正しくエラー処理を行うために、かなり長いコードを書く必要があります。また、最近はWebにアクセスする機会も多いのですが、これも非同期で処理するとなるとまた面倒です。非同期をやめて、ブロックする(Emacs全体が固まる)コードで書けば楽なのですが、それではユーザー体験としてマイナスになってしまいます。 特に大変だったのが cacoo.el を作っているときでした。 cacoo.el では、以下のような流れで画像を表示します。 Webから画像取得(wget) 画像サイズ取得(identify) 画像リサイズ(convert) 表示

    2010-10-08
    Nean
    Nean 2010/10/09
  • Emacs Lisp が「書ける」ようになるまで - 技術日記@kiwanami

    先日の関西Emacsでは、Emacs Lisp の入門記事がうけるとか、「書ける」ようになる情報がないらしいという話を聞きました。確かに、Emacsの初歩的な操作入門と、良く書ける人がアプリやブログなどでelispをばしっと書いてるのはよく見ます。入門から書けるようになるまでの間の過程は見たこと無かったかもしれないと思いました。 ということで、Emacsの先人たちにはまだまだ及びませんが、いくつかのアプリを書いてみた自分がたどった方法を書いてみます。先にまとめると以下の2つになると思います。 elispでどうしても書きたい物があること たくさん書いて動かして(こっちが先)、そしてInfoや他人のコードを見て勉強する 書ける以前のまとめ Emacs歴10年以上。すでに生活の一部。 でも設定を書くのに使っていたぐらい。 既存のアプリの分かりやすいバグを手元でちょっと直すとか。 LISP系の言語

    Emacs Lisp が「書ける」ようになるまで - 技術日記@kiwanami
  • e2wm の設計と実装 - 技術日記@kiwanami

    はじめに e2wm.elのソース読んだり、自分流に拡張するための参考になるように、e2wmの設計と実装について簡単に説明します。 あらすじ 全体の構成の説明 各モジュールの説明 各イベント時の動きの説明 現在の実装と今後の予定 図の一覧@Cacoo 全体の構成 まず、全体構成の図を示します。 全体の構成図 全体的な流れとして、イベントや画面の変化などをパースペクティブ管理に集めてきて、そこでパースペクティブに応じた加工を行い、ウインドウレイアウト制御のライブラリで画面に描画するという形です。 モジュール間の依存関係は次の図のようです。矢印の先が依存先です。 モジュール間の大まかな依存関係 パースペクティブ管理や履歴の情報とウインドウ制御の機能を、各モジュールが参照して使っているというようなイメージになります。 e2wm.elのソースコードの命名も、大体このような分類で並んでいます。 各モジ

    e2wm の設計と実装 - 技術日記@kiwanami
  • e2wmについて考えたこと(調査や要件定義など) - 技術日記@kiwanami

    ツールを作るのも好き。昔からツールを作って満足して、そもそもの目的が達成できないタイプ。 はじめに この記事では、e2wm.elがなんでこんなUIになっているかを説明します。UIにはストーリーが重要だと思っていて、e2wm.elについて考えたことをまとめたいと思います。また、e2wm.elやこの記事をきっかけに、Emacsに限らず、今後のIDEの開発の貢献に役立てるといいなと思っています。 あんまりうまく使い分けできていませんが、名称について。 e2wm 仕組みや仕様を指すとき e2wm.el 今回の実装を指すとき あらすじ 画面が広くなって、なぜかEmacsが使いにくくなった そこで他のIDE、アプリなどのUIを調査してみた プログラマ(自分)の業務分析して要件を考えた 最初の実装のゴールを定義した 図の一覧@Cacoo (2010/07/03追記) Emacsと画面のサイズの変化 きっ

    e2wmについて考えたこと(調査や要件定義など) - 技術日記@kiwanami
    Nean
    Nean 2010/06/18
    emacs, emacs, emacs!
  • anything-configを眺めてみた / anything-colors - 技術日記@kiwanami

    cacoo.elで画像付きのエントリーが書きやすくなった。近所でも評判のようでうれしい。 anything-confis.elには結構いろいろなanythingのsource(一覧生成の情報源)やアプリが登録されている。anythingをアップデートしたのでちょっといろいろ見てみた。 まず、見て回るのに便利なのが anything-call-source コマンド。これを以下のように「C-x C-;」にバインドさせて (global-set-key (kbd "C-x C-;") 'anything-call-source) 起動すると以下のような画面になる。 sourceをanythingで一覧表示して絞り込めるようになる。全部が全部、全員のために便利とは限らないのだけども、個人的にちょっといいかもと思ったのは以下。 anything-colors : 色一覧 anything-kill

    anything-configを眺めてみた / anything-colors - 技術日記@kiwanami
    Nean
    Nean 2010/05/22
  • Emacsでスムーズに図形編集ができるようになるcacoo.elを作ってみた - 技術日記@kiwanami

    最新記事 -> cacoo.el v2.0 リリース - 技術日記@kiwanami (2012/11/17 追記) Cacoo(http://cacoo.com/)というWeb上の図形描画ツールを、Emacsからシームレスに使える cacoo.el を作りました。 Emacsユーザーにとっては他のWordやExcelなどのアプリを超える文書作成環境になるのではないかと、勝手に妄想しています。 Cacooについては以下のサイトを見てください。自分はCacooで方眼紙Excelをやめることが出来ました。 日発のCacooは複数ユーザーがリアルタイムで協調しながらデザイン作業ができるすぐれもの | TechCrunch Japan Online Diagram & Collaboration Features Tour | Cacoo インストール方法 必要なものは、Emacs22以上(たぶ

    Emacsでスムーズに図形編集ができるようになるcacoo.elを作ってみた - 技術日記@kiwanami
    Nean
    Nean 2010/05/22
  • 1