現在アップデート申請中のPokéDia-1.3で利用可能になる 外字キーボード(Gaiji Keyboard)のデモ動画を作ってみました。

外字データ配布サイトhttp://gaiji.s21g.comから外字データをダウンロードしてきて、PokéDiaから利用しています。

無事に申請が通ると良いな。

See Also

posted by Png genki on Sun 15 Mar 2009 at 06:44

おまけにしようと思ったのですが、長くなりそうなので別記事にします。

ブランチv1.1をサーバにpushする:

   1  % git push origin refs/heads/v1.1

タグv1.1をサーバにpushする:

   1  % git push origin refs/tags/v1.1 
   2  Counting objects: 1, done.
   3  Writing objects: 100% (1/1), 159 bytes, done.
   4  Total 1 (delta 0), reused 0 (delta 0)
   5  To ssh://git.s21g.com/mnt/git/ezPhotoMail.git
   6   * [new tag]         v1.1 -> v1.1

ローカルのタグをすべてサーバにpushする:

via http://github.com/guides/push-tags-to-github

   1  % git push --tags

サーバのタグを取得するには

tagをpushしたサーバ上のrepoをcloneすればtagも勝手に取得してくれるようです。cloneしてから、tagのブランチを作れば内容が確認できます。

   1  % git tag -l
   2  v1.1
   3  % git checkout -b 1.1 refs/tags/v1.1

又はブランチを作らずに内容を確認:

   1  % git checkout refs/tags/v1.1

posted by Png satoko on Fri 13 Mar 2009 at 16:19

ブランチ、タグ両方にv1.1があると、ambiguousだと怒られました。

   1  % git show v1.1
   2  warning: refname 'v1.1' is ambiguous.

ということで探してみたら、下記の記述:

fmfm フルパス?で指定してみると、うまく表示されました!:

   1  % git show refs/tags/v1.1  

posted by Png satoko on Fri 13 Mar 2009 at 12:35 with 2 comments

各コミットに割り当てられるSHA1は長いので、その頭数桁をabbreviated commit hash/commit checksumなどと呼びます。適当な長さで良いようです:ex. 7-8桁。

数桁って何桁やねん!と思って探したのですが、見つけられませんでした。そういえば昔何かのlibraryの作者にバグ報告したときに、githubのコミットSHA1の頭五桁を送ってくれって言われたことがありました。ということで適当でいいみたいですね。この適当さ加減が良い。そしてそういう風にも使えるのですね。

このhashはtag設定時等に指定できます:

   1  % git tag -a v1.1 0d86f96 -m "version 1.1"
   2  % git show fb47ddb2

Pretty formatsのformatに記述されていました: abbreviated commit hash

%h: abbreviated commit hash
http://www.kernel.org/pub/software/scm/git/docs/git-show.html#_pretty_formats

learn.githubでタグ時の説明に:commit checksum

And I forgot to tag the project at ‘v1.2’, which was at the ‘updated rakefile’ commit, I can add it after the fact. To tag that commit, you can just specify the commit checksum (or part of it) at the end of the command.

$ git tag -a v1.2 9fceb02
http://learn.github.com/p/tagging.html#tagging_later

posted by Png satoko on Fri 13 Mar 2009 at 12:25 with 2 comments

PokéDiaはiPhone用の手帳アプリケーションです。 このたび、バージョン1.3のアップデート申請をいたしました。

今回のアップデートの内用は以下の通りです。

  • アドレス帳からのメールアドレスの追加
  • 外字キーボード機能
  • テーマを2つ追加
  • ウェブサイトからのメモ登録APIとアプリケーション連携機能(開発者向けの機能です)

外字キーボードはフルスクラッチで作りました。

ss1

絵文字や矢印、括弧、など、全ての記号が利用出来ます。 利用可能な外字データは、http://gaiji.s21g.com/ から配信します(3/13日現在データ準備中です)

ウェブサイトからのメモ登録APIとアプリケーション連携機能については、 ウェブサイトや他のアプリケーションから、PokéDiaにメモを登録出来る機能です。 申請が通り次第、仕様の詳細を公開いたします。

もうしばらくお待たせいたしますが、 よろしくお願いいたします。

posted by Png genki on Fri 13 Mar 2009 at 07:22

Rails向けのiPhoneサイト作成用プラグインのメモです。

See Also

posted by Png genki on Wed 11 Mar 2009 at 08:30

Merbのプラグインの多くは、Merb以外の場所でも使えるように設計されています。 また、いくつかのRailsプラグインも、Merbや他のプラットフォームで利用できたり、単体でも利用可能になっていたりします。

これらのプラグインは、Agnosticなプラグインと呼ばれています。 従来のプラグイン機構が、特定のフレームワークの機能を拡張する役割にとどまっていたのに対して、Agnosticなプラグインは、複数のプラットフォームを股に掛けて活躍します。

fig

このような動きは、従来のフレームワークとプラグインの関係を改めるものとして注目に値するものだと思います。 フレームワーク間で共通に必要となるようなプラグインの重要性が高まり、 今まで分散していたプラグイン開発リソースが、統合されることによって効率化がはかられたと見る事も出来ます。

これからは、フレームワークの知識だけでなく、 主要なAgnosticプラグインの利用法に習熟する事が 生産性の向上のために必要になってくるかもしれません。

posted by Png genki on Wed 11 Mar 2009 at 08:06

@maihaさんを中心として、私やMerb勉強会の参加者によって作り続けていたMerbのRuby-1.9.1対応のパッチ群が、Merb本体に取り込まれました。

ss

http://github.com/wycats/merb/commits/

Merb勉強会での活動が実を結んだわけです。 めでたいです。ありがとうございます。

Merb-1.1では、Ruby-1.9.1に対応したMerbがリリースされそうです。

Merb 1.1 roadmap

posted by Png genki on Wed 11 Mar 2009 at 06:01

先日送ったpatchが採用され、Ruby-1.9.1対応の bcrypt-ruby-2.0.4がリリースされました。

http://rubyforge.org/projects/bcrypt-ruby/

Thanks you, codahale!

posted by Png genki on Tue 10 Mar 2009 at 13:13

サーバ管理をしていて、root権限が必要なディレクトリに、ファイルをリポジトリからgit cloneしてきたい状況になったので、方法をメモしておきます。 まず状況の確認として、

  • gitのプロトコルにはsshを使っている
  • リポジトリサーバには、rootユーザでは鍵認証でもパスワード認証でもログインできない
  • リポジトリサーバ、clone先のサーバ双方ともfooというローカルユーザが存在。sshでリモートログインできる

という感じです。ユーザ権限でアクセス出来る場所にgit cloneする場合であれば、

   1  foo% git clone ssh://git.repos.com/path/to/repo.git

こんな感じで済むのですが、ファイルの作成にroot権限が必要な場合、 repoディレクトリを作成出来なくて怒られます。 かといって、rootユーザでgit cloneしようとしても、リポジトリサーバにはrootではログイン出来ないのでcloneできません。

そのような場合には、以下の手順を踏みます。

  1. clone先のサーバに ssh -A foo@target.server.com でエージェントフォワードしてログイン。
  2. ssh -A root@localhost でエージェントフォワードした状態でlocalhostにrootユーザでログイン(ターゲットサーバ上での、ローカルからのrootによるssh接続は許可する必要がある)
  3. git clone ssh://foo@git.repos.com/path/to/repo.git でclone

これでroot権限が必要な場所にfooユーザのSSHエージェントを介してリポジトリサーバに接続し、cloneできます。

注意

安全にエージェントフォワーディングを行う事が出来るのは、 接続先および踏み台にするのサーバ群の管理者たちが全て信頼できる場合に限られます。

posted by Png genki on Tue 10 Mar 2009 at 02:34