タグ

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

  • concurrent.el リリース - 技術日記@kiwanami

    今まで何の説明も無しに自分のアプリで使ってきた謎ライブラリ concurrent.el ですが、一区切りが付いた気がしましたのでリリースしたいと思います。 この記事では concurrent.el の基盤である deferred.el について簡単に紹介して、 concurrent.el の機能と適用例を紹介します。 あらすじ deferred.el復習 concurrent.el紹介 機能一覧、コード例 cacoo.elでの設計解説 deferred.el 紹介 deferred.el の詳しい使い方やAPIなどはREADMEの文書がまとまっていますので、手っ取り早く使いたい人はそちらを参照してみてください。 おそらく、他の言語でDeferredに慣れていればすぐに使えるのではないかと思います。 deferred.el リリース - 技術日記@kiwanami (リリース記事:慣性スクロ

    concurrent.el リリース - 技術日記@kiwanami
    lugecy
    lugecy 2011/04/21
  • Emacsで3DなマルチプレイヤーなFPSを作ってみた - 技術日記@kiwanami

    関西Emacsで発表したデモです。 まず、「FPS」は CoD MW のようなシューティングとかではなくて(それは是非やりたかったのですが)、一人称散歩(First Person Sanpo)プログラムです。FPSは釣りです。ごめんなさい。 (2011/05/06 追記: Vimにも出来てました!! 3D in Vim — KaoriYa) 動作風景 所詮テキストエディタのやることですので、期待せず、生暖かい目で見てください。 一人用のムービー バッファで描いた迷路を歩きます マルチプレーヤーのムービー Emacsでサーバーを起動して、3つのEmacsから接続します。あとでtelnetで直接接続してチートします。 動かし方:シングルプレーヤー 必要な物: 64bitEmacs23.x 22でも動くかも知れません 32bitだと整数桁あふれするそうです banner 文字のビットマップを取

    Emacsで3DなマルチプレイヤーなFPSを作ってみた - 技術日記@kiwanami
    lugecy
    lugecy 2011/04/14
  • 関西Emacsに行ってきた - 技術日記@kiwanami

    (kansai-emacs #x03) : ATND = (kansai-emacs #x03) => "第三回関西Emacs勉強会" - ぺっくブログミラー@peccul ちょっと遠出して、関西Emacsに行ってきました。 福岡Emacsの企画の準備もかねて、どんな人たちがどんなことを期待して集まってくるのかをちょっと調べようというのと、最近のEmacsについて思うことについて話して議論してみたいなと思って行きました。 午前中、生でるびきちさんにお会いすることが出来ました。電車の中でAnythingと非同期について議論させてもらいましたが、ちょっとしかお話しできなかったのが残念でした。 会場は30人ぐらいぎっしりで、若い人から年季の入った熟練ユーザー、さらに女子の方もいて、たかがテキストエディタをネタにこんなに集まれるのがすごいですね。場所を提供していただいた株式会社アックスさん(

    関西Emacsに行ってきた - 技術日記@kiwanami
    lugecy
    lugecy 2011/04/13
  • 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
    lugecy
    lugecy 2011/03/04
  • パスワード管理ツール id-manager.el 更新 - 技術日記@kiwanami

    id-manager.elを更新しました。あと、ちゃんと紹介記事を書いてなかったのでまじめに書きました。 以前の記事:2009/09/14 id-manager.el 何か 世の中にあふれるIDとパスワードを管理するものです。 例によって類似品がたくさんあります。有名なものを列挙すると以下のような感じでしょうか。 パスワード管理ソフト ID Manager フリー。Windows上の定番? パスワード管理、デジタルウォレット、パスワード生成 | ロボフォーム 商用。メーカー製PCにプリインストールされていることがある GNOME Keyring GNOMEの標準鍵管理ツール 家:Projects/GnomeKeyring - GNOME Wiki! 参考:gnome-keyring を利用してコマンドライン上のパスワードを置換する - daily dayflower その他 最強のパスワ

    パスワード管理ツール id-manager.el 更新 - 技術日記@kiwanami
    lugecy
    lugecy 2011/02/26
  • 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
    lugecy
    lugecy 2011/02/24
  • Emacsのwidgetについて思ったこと - 技術日記@kiwanami

    id-manager.el にて Emacs の widget を使ってみました。その感想などです。 widgetとは widgetはEmacs上でダイアログのようなUIを作るライブラリです。CustomizeなどのUIがこれで出来ています。 最近のEmacs(少なくともEmacs23)には標準で入っています。 widgetの例(Infoのサンプル) どこが良いか 複数の入力項目をユーザーに要求するような場合、widgetを使うことで非常に分かりやすいUIになることが多いです。 grepのUIで具体的に比べてみます。lgrepとezgrepという、Emacsからgrepするプログラムがあります。 参考 lgrep Emacsの検索機能を使いこなす(菅原泰樹) — ありえるえりあ ezgrep http://www.geocities.jp/km_pp1/ezgrep/html/ezgrep

    Emacsのwidgetについて思ったこと - 技術日記@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
    lugecy
    lugecy 2011/01/08
  • e2wm.elのバージョンアップ:ver1.1 - 技術日記@kiwanami

    ver1.1をリリースしました。名前の変更しました。また、ver1.0リリース時にいろいろいただいたご意見を反映し、いくつかの問題を解消しました。 図の一覧@Cacoo (2010/07/03追記) 名前の変更 ewm.el はやはり著名なMLで宣言されてしまっているので、いろいろ考えた結果、名前を e2wm.el に変更することにしました。一応検索してみて同名のプロジェクトは無いようでしたので、またかぶらないように EmacsWiki に登録しておこうと思います。 githubのリポジトリ自体は変わりませんが、ファイル名が変わります。取得はauto-install.elの場合は下の式を評価してください。 (auto-install-from-url "http://github.com/kiwanami/emacs-window-layout/raw/master/window-layo

    e2wm.elのバージョンアップ:ver1.1 - 技術日記@kiwanami
    lugecy
    lugecy 2010/12/11
  • 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
    lugecy
    lugecy 2010/12/06
  • 広くなった画面を有効利用できる、Emacs内Window管理ツール e2wm.el を作ってみた。(旧名称 ewm.el) - 技術日記@kiwanami

    世間が iPad で盛り上がっている中、空気を読まずにEmacsです。 (2010/05/31 追記:バグがあって動かない状態でしたので、修正いたしました。試してみて動かなかった皆さんご迷惑をおかけしました。peccuさんご指摘ありがとうございました。) (2010/06/07 名称変更:名称を変更ましたので、混乱しないように内容をすこし修正しました。既に導入いただいた皆さんすみません。) 図の一覧@Cacoo(2010/07/03追記) 概要 Window分割をあらかじめ決めておいて一発で切り替えたり、ポップアップの出現位置を固定したり、ちょっと便利になるプラグインを追加できるようにする、e2wm.elというEmacsの拡張を作ってみました。Emacs以外の人に分かりやすい表現で言うと、Eclipseの「パースペクティブ」のようなものを実現するものです。 画面概観 近年モニターの解像度が

    広くなった画面を有効利用できる、Emacs内Window管理ツール e2wm.el を作ってみた。(旧名称 ewm.el) - 技術日記@kiwanami
    lugecy
    lugecy 2010/11/11
  • deferred.el リリース - 技術日記@kiwanami

    先日の関西Emacsの会で発表しました deferred.el です。 deferred.el はEmacs Lispでの非同期処理を書きやすくするためのライブラリです。 (2010/10/08 追記:コンパイルできないバグがありますので修正中です。コンパイルしなければとりあえず動きます。。。) (2010/10/08 追記:コンパイル出来るようになりました。毎回ミスばっかりですみません。) 入手・ドキュメント 以下のGutHubの日語ドキュメントの方に一通り書いてみました。 deferred.el 日語ドキュメント そのうち頑張って英語に直したいと思っています。(手伝ってもらえると助かります><) ドキュメント目次 インストール 使い方例 インタフェース解説 関数 実行・接続 ポイント deferred.el デモ:慣性スクロール ライブラリなのでdeferred.elを単体でインス

    deferred.el リリース - 技術日記@kiwanami
    lugecy
    lugecy 2010/10/10
  • deferred.el のできるまで:調査、設計と実装 - 技術日記@kiwanami

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

    deferred.el のできるまで:調査、設計と実装 - 技術日記@kiwanami
    lugecy
    lugecy 2010/10/10
  • 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
    lugecy
    lugecy 2010/10/09
  • Emacs Lisp が「書ける」ようになるまで - 技術日記@kiwanami

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

    Emacs Lisp が「書ける」ようになるまで - 技術日記@kiwanami
    lugecy
    lugecy 2010/09/30
  • Upstart の起動、終了のシーケンスや依存関係を可視化するスクリプトを作ってみた - 技術日記@kiwanami

    あらすじ depchart.rbの紹介 以下余談 Upstartについて depchart.rbへの道のり 今後など depchart.rb : Upstart Diagram Upstartの起動・終了のシーケンスや依存関係を可視化するスクリプトです。 必要なものは Ruby と Graphviz です。 http://github.com/kiwanami/ruby-upstart-diagram/raw/master/depchart.rb ↑ここから depchart.rb を取ってきて、適当なところに置いて、 $ ruby depchart.rb | dot -Tps > a.ps ↑ように実行すると、PSファイルで↓のような依存関係の図が出来ます。 手元の Ubuntu 10.04 での例 (※"rc-sysinit" -> "runlevel"を追加してあります) Upsta

    Upstart の起動、終了のシーケンスや依存関係を可視化するスクリプトを作ってみた - 技術日記@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
  • 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
    lugecy
    lugecy 2010/05/10
  • 機能とコマンドとキーバインド : Emacs Advent Calendar jp: 2009 - 技術日記@kiwanami

    Emacs Advent Calendar jp: 2009 参加記事です。昨日は id:rubikitch さんでした。明日は id:hayamiz さんです。今回の記事では機能とその使い方について、自分のこれまでの経験を少しご紹介したいと思います。 はじめに Emacsとは気づけば長いつきあいで、大学生の時からもう14年ほど使っています。今でもいちユーザーの立場でほそぼそと使っていますが、常に発見の連続で、懐の深さに感動している毎日です。 なんと言ってもEmacsの醍醐味は、両手の前に広がる際限のない拡張性です。EmacsWikiやMeadowMemoを見ていると、知らなかった新しい機能がごろごろしていて、そんなEmacsLispを発見するととても楽しくなります。 大量の機能とどうつきあうか しかしながら、新しい機能を入れたときにいつも悩むのは、どうやってその機能を呼び出すかです。ファ

    機能とコマンドとキーバインド : Emacs Advent Calendar jp: 2009 - 技術日記@kiwanami
    lugecy
    lugecy 2009/12/23
  • 1