Lokkaにカレンダーを表示するプラグイン

はてなダイヤリーにもありますが、Lokkaにカレンダーを表示するプラグインを作ってみました。 ソース http://github.com/nkmrshn/lokka-calendar 使い方 ヘルパーメソッドとして、「calendar」を用意しました。APP_ROOT/public/pluginにgit cloneして、lokka…

Flickrに画像ファイルをアップロードするLokkaプラグイン

Flickrに画像ファイルをアップロードするlokka-uploadersのバックエンドプラグインを作りました。 ソース http://github.com/nkmrshn/lokka-uploaders (フロントエンド) http://github.com/nkmrshn/lokka-flickr_uploader (バックエンド) 設定 このプラ…

Lokkaの記事本文に「続きを読む」リンク(つづき)

先日、Lokkaの記事本文に「続きを読む」リンクについて考えた際、Helperでやるべきではないかとid:shizaruさんに教えていただきました。現状のLokkaは、本文(@Postsや@Entry)をプラグイン側で操作することは許されていないので、私もid:shizaruさんに習っ…

Lokkaの記事本文に「続きを読む」リンク

このHatenaダイヤリーもそうですが、「続きを読む」というリンクを作ってトップページは概要だけを表示したいという場合があります。そこでLokkaのプラグインを作ろうと思いました。

Lokkaプラグインで使うデータベースのテーブルのマイグレーション

先日、Lokka本体のソースを書き換えなくてもプラグインが追加できるようになりました。そこで、プラグインで使うデータベースのテーブルを、プラグインのルートディレクトリ(以下、PLUGIN_ROOT)でrakeタスクを実行し、マイグレーションするにはどうしたら…

Lokkaプラグインのgemとi18nを本体から分離してみた

プラグインで使用するgemとi18nについて、本体から分離するコードを追加してみました。この修正によりAPP_ROOT/public/plugin/lokka-*/GemfileおよびAPP_ROOT/public/plugin/lokka-*/i18nにプラグイン固有の設定を追加することができます。 プラグインで使用…

作成したLokkaプラグインのまとめ

Lokkaのプラグインをいくつか作りましたので、そのまとめを書きたいと思います。 Lokka本体との違いは、プラグイン部分以外はGemfile、i18n、public/admin/layout.hamlの3つです。プラグインなので、本当は本体に依存してはいけないのですが、ここぐらいが…

Lokkaにファイルアップロード機能を追加してみた

クラウド環境に対応したCMS/Blogツール、『Lokka』にファイルアップロード機能を追加してみました。 ソース 本家のソースにはマージされていませんので、私のGitHubからどうぞ。インストール方法などは、変わりません。HerokuやGAEは、ローカルストレージへ…

次の祝日は?をツイートするボット

Help me, hackers!で、次の祝日をツイートするボットの作成依頼、「Next Holiday のtwitter bot」があったので、次の祝日をツイートするボットを作ってみました。ツイッター:http://twitter.com/Next_Holiday_Jp ホームページ:http://next-holiday-jp.hero…

Hamlでインライン要素を一行で生成するには

昨日、Ruby on Rails Tutorial: Learn Rails by Exampleのサンプルアプリ「sample_app」をHaml化してみた時、『インライン要素を一行で生成させるには、どうやって書けばよいのか』が分かりませんでした。 FAQにもなかったので、Haml Google Groupで「inline…

Haml化してみた

「WEB+DB PRESS vol.58」(技術評論社著、2010年)のp.41にある『haml - 俳句のような美しいマークアップ言語』という記事を読んで、Hamlに興味を持ち、Ruby on Rails Tutorial: Learn Rails by Exampleのサンプルアプリ「sample_app」*1をHaml化してみました…

Twitterでサインインする機能

Ruby on Railsのoauthを使い、Ruby on Rails Tutorial: Learn Rails by Exampleのサンプルアプリ「sample_app」*1に、Twitterでサインインする機能も追加してみました。 サンプルアプリ http://github.com/nkmrshn/sample_app TwitterのOAuth認証を使うので…

無効なユーザを削除する

Ruby on Rails Tutorial: Learn Rails by Exampleのサンプルアプリ「sample_app」に、ユーザアカウントのアクティベーション機能を追加した後*1、1日経過してもアクティベートしなかったアカウントは削除したいと思いました。 無効なユーザの取得 app/models…

入会確認メール送信機能を追加

昨日の「Ruby on Rails Tutorialを試してみた」に引き続き、Ruby on Rails Tutorial: Learn Rails by Exampleのサンプルアプリ「sample_app」に、いわゆるアクティベーションを機能を追加してActionMailerの勉強をしました。 チュートリアルでは、入会すると…

Ruby on Rails Tutorialを試してみた

Michael Hartl氏のRuby on Rails 3 Tutorial: Learn Rails by Exampleを使って、Ruby on Railsの3.0を試してみました。私は、1.x時代はよく知っているのですが、その後、iPhoneアプリばかり作っていたので2.x時代はよく知りません。そこで、先日発表された3.…

jquery.ganttViewのカスタマイズしてみました(まとめ)

ここ最近、暇を見つけてはjquery.ganttViewをカスタマイズしてきましたが、一段落ついたのでオリジナルとの違いをまとめておきます。 ベースになっているソース GitHubにpushしてあるソースは、オリジナルのjquery.ganttViewからforkしていますが、実際はHel…

GitHubを使ってみた

Gitの使い方を勉強したかったので、UAPatternControllerとjquery.ganttViewをGitHubに移行してみました。今後、こちらからソースをcloneするなりしていただければ幸いです。 それぞれのGitHub UAPatternController http://github.com/nkmrshn/UAPatternContr…

jquery.ganttViewをさらにカスタマイズしてみた

昨日、カスタマイズをはじめたjquery.ganttViewのバグを修正し、機能を追加しました。 ダウンロード nkmrshn_jquery.ganttView-0.0.2.tar.gz[修正:7/27 20:37] GitHubに移行しました。http://github.com/nkmrshn/jquery.ganttView 変更点(0.0.1->0.0.2) sho…

jQueryに慣れるため、ganttViewをカスタマイズしてみた

Help me, hackers!で、jQueryのガントチャートライブラリをドラッグ&ドロップとリサイズできるようにカスタマイズしたjquery.ganttViewが、『ガントチャートライブラリにタスクの依存関係の機能を追加したい』というページにありました。私は、これをベース…

Play! frameworkが使いにくい点

Play! frameworkを使っていると、私はどうしてもRuby on Railsと比較してしまいます。 自動的にJOINしてくれない? Ruby on Railsの場合、モデルのfindメソッドに「:joins =>」があると、自動的にJOIN句を含んだSQL文が生成されますが、Play! frameworkのMod…

解説がソースの逆を書いている?

Play! frameworkのチュートリアルにある「A first iteration for the data model」において、mappedBy属性を使って一対多の関連を管理することをJPAに伝える部分について解説があります。 Note how we have used the mappedBy attribute to tell JPA that th…

OAuth ClientモジュールがGAEで動かない

Play! frameworkのOAuth ClientモジュールがGoogle App Engineでうまく動きませんでした。 検証環境 Play! framework 1.0-r1036 (1.0.2.1以降のナイトリービルド) GAE-1.0.2 Siena-1.1 OAuth-1.0 appengine-java-sdk-1.3.3.1 (GAEのSDK) 問題点 理由は、OAu…

OAuth Clientモジュールに付属しているサンプル

Play! frameworkのOAuth Clientモジュールに付属しているサンプルを動かしてみたのですが、いくつか問題点がありました。 問題点 Userテーブルにレコードが保存されない ApplicationコントローラのgetUserアクションで、UserモデルのfindOrCreateメソッドが…

User-Agentに応じてビューを切り替えるモジュール

User-Agentに応じてビューを切り替えるため、例えばApacheのhttpd.confなどで設定して、コントローラやアクションを振り分けるという方法があります。私は、Play frameworkの中でやりたかったので、play.mvc.Controllerを継承するクラスを作り、モジュール化…

RoRのMigrationのようなモジュール

Ruby on RailsのMigrationに似たモジュールができたみたいなので、r899で試してみました。 Migrate module Play! frameworkの1.0.1では「play install migration」ではモジュールをインストールできないので、モジュールのホームページからダウンロードし、…

playコマンドにjavadocオプションが追加

Play! frameworkで作成したクラスのJavadocだけを生成してくれるオプションが、最新リビジョンのplayコマンドに追加されたので試してみました。 Feature Request: Please add a "play create-javadocs" command ※「play create-javadoc」ではなく「play java…

CSRF対策が無い?

XSSはあるですが、CSRFに関する対策が見あたらない。自分でモジュールを作るしかないのかな...。一応、Play! frameworkのGoogleグループに質問を投げてみた。 [追記:2/22 6:20] Bug報告に上げろとのお話だった、上げてみた。 Feature request: CSRF protecti…

デフォルトでbindJPAObjectsはtrueになっている

またリリースノートには、future.bindJPAObjectsはconf/application.confで「not enabled by default」と書いてあります。 Of course as this feature can break existing applications it is not enabled by default. You can enable it by adding the foll…

Better binding for JPA objectsを試してみたが...

1.0.1のリリースノートを読んで、JPAオブジェクトが自動的にロードされる旨、『Better binding for JPA objects』に書いてありました。そこで、『データの修正』の、 public static void edit(long id, String message, String name) { String msg = "データ…

formタグはJSP taglibライクなPlayタグの#{form}を使う方がいいと思う

CodeZineの『Javaで軽快に使える「軽量フレームワーク」特集 〜本格的なRoRスタイルフレームワーク「Play!」(2)第8回』を読んで、自分でも試してみました。2ページ目の『データの作成と保存』には、記述例として以下のように書いてあります。 ${msg} <form method="post" action="@{Application.add}"> <table> : </table></form>…