明日土曜日・日曜、待ちに待った大イベント、Lokkathon #1が開催されます。気になる開催概要は下記です。
Lokkathon #1
- 日時 / DATE: 2010/11/20 10:00 to 19:00
- 定員 / LIMIT: 俺
- 会場 / PLACE: FJORD, LLC
- URL / URL: http://fjord.jp/
- 内容 / DESCRIPTION: Lokka本体・プラグイン・テーマを作る。
ああ、そうだよ。思いつきだよ。ダジャレだよ。
明日土曜日・日曜、待ちに待った大イベント、Lokkathon #1が開催されます。気になる開催概要は下記です。
ああ、そうだよ。思いつきだよ。ダジャレだよ。
「どうせ大して変わらねえだろう」
という軽い気持ちでUSキーボードのパソコンを買ったんですが、違いの大きさに苦戦中です。USキーボードとvimについて現在の疑問を羅列してみました。
USキーボードではCmd+Spaceが日本語変換キーです。これは配置からいってどうにも押しづらい。KeyRemap4MacBookのCommand_R to Command_R(+ When you type Command_R only, send Command+Space)で右Cmdに割り当ててみましたが、コレ、完全に他のキーを押してない状態で右Cmdを押さないといけないのでかなり使い辛いです。普通みなさん何に割り当ててるんでしょうか?
USキーボードではコロンはShiftを押す必要があります。vimで使いまくりのコロンが両手必須というのは厳しい。
noremap ; :
noremap : ;
という設定を教わって便利になりましたが、普通どうやってるんでしょうか?
他にもUSキーボード、vimユーザーなら普通はコレやってるぜ!というのがあったら教えていただければ嬉しいです。
MacBook Airの11-inch買いました。
Apple Store Ginzaで
「11-inch USキーボードで一番良いのを頼む」
しました。(これまでは非Proの最初のユニボディMacBook)
量販店と違って、Apple Storeにはカスタマイズ済みのモノを在庫として持ってるそうで、店頭でその場で買えます。(発売当初は無かった)
そもそも僕にとってノートパソコンの最適サイズはこのぐらいなので13-inchはデカかったんですが、PowerBook以来、小さいのが出る様子が全くなかったので「アメリカさんは小さいのなんて要らないんや」と諦めてました。
スペックについてはこれまでのMacBookでもメモリ3GBでスワップすることは殆ど無かったし、CPUが遅いと感じることも無かったのであまり変わらない感じです。ディスクアクセスが必要な場面で速いぐらいです。HDDも以前のMacBookでも128GB以上使ってなかったので特に意識しないで使ってます。
使うアプリがFirefoxとTerminal(今は仕事でXcode)ぐらいなのでWeb系プログラマーはあまりスペックを必要としない人種なのかもしれませんな。(brew install mysqlしたときにFANが回ったぐらい)
オススメっす。
信者乙 > 俺
Lokkaでプラグインで管理画面を持った時にプラグイン一覧からリンクしてくれるようにしました。
最初はプラグイン内でhave_admin_page(acts_as_fooみたいなの)を宣言するようにしてたんですが、頑張って、
Lokka側から "/admin/plugins/#{プラグイン名}"のページがプラグインに存在したらリンクを貼る。
というようにしました。
また、管理画面の左メニューの一番下にyield_content :admin_menuというプラグインから挿入できるポイントを入れときました。複数回呼べるみたいなので、色んなプラグインから挿入されても大丈夫ですね。(順番はプラグインの読み込まれる順)
まだ、プラグイン内で管理画面作った場合の認証入れてないんですが、sinatra1.1のパス指定beforeを使えるようにしてからの方がいいかなと・・・。
テーマの方にもheader, footerという挿入できるポイントを入れようと思ってます。(全テーマ修正がだるい・・・)
- content_for :foo do
%p One
- content_for :foo do
%p Two
%h1 Hello, World!
2回同じ名前で呼んでも大丈夫みたいです。便利ー。
僕の中で曖昧だったので、ユーザー分類を元にLokkaの開発方針をまとめてみました。
上(人数が多い)、下(人数が少ない)
上(影響が少ない)、下(影響が大きい)
@nkmrshnさんの素晴らしいまとめ。Optionを使ってるコードとかまだ他で見たことないので素敵ですw
作成したLokkaプラグインのまとめ - nkmrshnの日記
- プラグインで使用するgemを、Gemfileと別にプラグイン側で管理する方法。(現状:Lokka本体のGemfileに書くしかない。)
- プラグインで使用するi18nのen/ja.yml。(現状:Lokka保体のen/ja.ymlに追記するしかない。)
- プラグインの読み込む順番。(現状:読み込む順番を設定できない。)
- プラグインの有効・無効。(現状:public/plugin/lokka-<プラグイン名>は全部有効。)
- プラグインのアップロード・削除機能。(現状:ターミナルのコマンドなどでプラグインファイルを追加・削除する必要がある。)
- public/admin/layout.hamlのdiv#aside(左側サイドメニュー)にプラグインのメニュー項目を追加。(現状:layout.hamlに追記するしかない。)
コメント欄に書いたらエラー?が出たのでココに書きます。(以下俺)
おおお、すばらしいまとめありがとうございます!
最後の6点は僕もどう本体を実装すべきか悩んでおります。
という感じです。
やっぱりプラグインを書いてみた人本人でないとわからない点が沢山あるとおもいますので、「こうしたほうがいい」というところがあればお教えいただけると嬉しいです!
何故オライリーの本を買うのか - komagata [p0t]
以前こんな事を書きましたが、これはある種の宗教的イニシエーションやショッキングな体験、感動的な出来事、などといったものと同じく自分の脳の構造の変化を起こすものだと思います。(苦痛と快楽がセットになってるし)
脳を神経系の繋ぎ直しによるプログラマブルなハードウェアだと仮定した場合、ある一定上のショックを受けるとそれに影響を受けた構造の最適化が行われるというようなモデルを想像してしまいます。
20歳で職業プログラマーになってから12年間で上記のような事を繰り返すうちに大分偏った構造になっていて、それを意識した学習方法を選択するのが新しい事を覚えるには特に大事だと最近強く意識しています。
"直近の目的に繋がらない知識は寝ると忘れてしまう"、"3年より昔の事は殆ど忘れてしまう"、"直近の目的に繋がる知識は簡単に覚える事ができる"といったメリットとデメリットを持つ脳ミソに訓練されてしまったように思えてなりません。
デメリットも結構感じていて、例えば僕は小中高と特別幸福でも不幸でもない普通っぽい学生時代を送ったとは思いますが、それにしても学生時代のことを殆ど覚えていません。色々あったはずなのに・・・。
多分、デスマとかを乗り切る為にそういう記憶を犠牲にしてインフラのバッドノウハウとか微妙な関数とかを覚えることに使ってしまってるんでしょう・・・。
色んなタイプがあると思いますが、例えば、大学で物事を体系的に勉強することでその先の確かな成果を幾度も体験して来た人にはキッチリと基礎から学習する方法が習得しやすいだろうし、僕の様に現場から入ってしまった人は、まず目的に必要なものをでっち上げ、後でそれの裏にある背景や理論を勉強すると、
「なるほど〜 だからアレはあーなってたのかー!」
と楽しく学習することができます。順番が逆だと寝れば忘れてしまうので1日しか持ちません・・・。
この脳の構造はちょっと嫌ですが、12年も繰り返し洗脳?されてきた脳を変えるには薬物を使ったり、うつ病の治療に使われる電気ショックとか、生死の境をさ迷う体験とかをしないと駄目っぽそうです・・・。
Parens Language in Scheme on iOS - * *scrap*
同作者のソースコードビュアー”Source Code”は滅茶苦茶便利じゃないですかコレ。
http限定だけどGit, Mercurial, Subversion, zip, ファイル直指定に対応。githubやbitbucketの公開リポジトリにあるソースをサクっとダウンロードして閲覧できます。
リポジトリじゃなくても読みたいテキストをzipに固めてdropboxとかに突っ込んでおけばOK。
糞便利過ぎる!俺が求めてたアプリはこれだ!
長文テキストを読むのが一番楽なデバイスはiPadよりPCよりiPhone(多分Androidも同じ)だと思います。
自分のiPhone時間(=移動中)の中で気になっているフェーズがあります。それは"はてブおもしろ"とかのゴシップを読むフェーズです。俺的iPhone時間優先順位は下記のようになっています。
この4と5を気になるプロジェクトのソースコードを読むことにあてられたらいいのになと常々考えていました。githubをsafariでみてもイマイチ読み辛いし断念していたのですが・・・。
このアプリで解決です!
気になるプロジェクトをgithubからダウンロード。
Sinatra 1.1の変更点押さえとかなきゃなー。
sinatraのように1ファイルが長いプロジェクトに特に向いてますな。sinatra/base.rbで殆どの処理が書いてあるし。
画面に収めたい場合はランドスケープしてピンチイン。
黒背景じゃないと落ち着いてコードが読めない人の為に設定できる。syntax highlightingがあるともっと嬉しいんだけどな。line wrapは別に要らないかな〜?
基本的にGithubにあるものだけでiPhone時間は十分なのでGithub専用でも構わない。syntax highlightingありのアプリでもっと快適Code Readingしてるぜぇという方がいたら教えてください。
それは兎も角、かなりのLife changingアプリでした。
Source Code for iPhone and iPod touch on the iTunes App Store
LokkaにWordPressでいうwp_options的なサイト固有で何でも入れとける場所を作りました。(Lokkaではscript/console的なのは irb -r init.rbで出来ます)
% irb -r init.rb
>> Option.aksmet_key
=> nil
>> Option.aksmet_key = 'hoge'
=> "hoge"
>> Option.aksmet_key
=> "hoge"
>> Option.all
=> [#<Option @name="aksmet_key" @value=<not loaded> @created_at=Sun, 31 Oct 2010 00:01:02 +0900 @updated_at=Sun, 31 Oct 2010 00:01:02 +0900>]
lib/lokka/option.rb from komagata's lokka - GitHub
ソースは上記の通りです。name / valueしか持たないテーブルにmethod_missingでいれているだけです。
上の例の様にプラグインで値を保存したい時に、プラグイン毎にイチイチテーブルを作るまでもないもの(akismetのkeyとか)を保存する場所として用意しました。
% irb -r init.rb
>> @site = Site.first
=> #<Site @id=1 @title="Test Site" @description="description..." @theme="default" @created_at=Sun, 31 Oct 2010 00:06:39 +0900 @updated_at=Sun, 31 Oct 2010 00:06:39 +0900>
>> @site.akismet_key
=> "hoge"
また、Siteクラスのインスタンスから代入以外はOptionにproxyするようにしました。
追記:optionsテーブルが増えたので最新にした方は $ bundle exec rake db:migrate お願いします。