T time

プログラミングや電子工作、各種ガジェットに関するブログです。

PebbleTime で Watchface 開発

f:id:tatur0u:20150625052428p:plain

Pebble 使ってますか?
スマートウォッチの先駆け、Kickstarter の伝説、そう、あの Pebble です。 スマートフォン経由で無数の時計盤をインストールでき、活動計にもなる、便利なガジェットですよね。

そして先日、その進化版である PebbleTime も登場しました。
こちらは画面がカラーになり音声認識にも対応、新たなUIを搭載し、かつバッテリーも1周間もつという革新的なスペックで、自身が持つ Kickstarter の売上記録を軽々と超え総額 $20M(25億円)という大記録を打ち立てました。 その勢いに Apple も対抗策として Apple Watch を作り、Pebble、Apple Watch、Google Android Wear の三つ巴の戦いを繰り広げています。

あー、これくらいでいいですかね。

続きを読む

gist-itでgithubのコードをブログに埋め込む

f:id:tatur0u:20150624151120p:plain gist-it.appspot.com - Embed files from a github repository like a gist

github 上のコードをブログに埋め込むための Web サービスを紹介します。

gits-it とは

github 上のコードをブログに埋め込むための Web サービスです。 以下の特徴があります。

  • 指定の範囲だけ表示可能
  • コード表示の下にgithubへのリンクをつけてくれる(省略可能)
  • 言語に応じたシンタックスハイライト
  • ブランチ、タグを指定可能
続きを読む

LotusでOne-file-applicationを作る(4) - Templateを表示する

前回は、ルーティング情報を追加する方法と、それを元にパスを生成する方法を紹介しました。

今回は、テンプレートを使って情報を表示してみたいと思います。

今回のゴール

http://localhost:2300/mynameis にアクセスすると、テンプレートを表示します。さらにURLクエリにより表示が変わります。

Webブラウザで以下のように表示されます。

f:id:tatur0u:20150624052402p:plain

f:id:tatur0u:20150624052413p:plain

続きを読む

LotusでOne-file-applicationを作る(3) - ControllerからViewへデータを渡す

前回は、コントローラからビューにデータを渡す方法を紹介しました。

今回は、ルーティング情報を追加し、そのパスを表示してみたいと思います。

今回のゴール

http://localhost:2300/hello にアクセスすると、そのパスを表示します。

Webブラウザで以下のように表示されます。

f:id:tatur0u:20150622231156p:plain

続きを読む

LotusでOne-file-applicationを作る(2) - ControllerからViewへデータを渡す

前回は Lotus で作る One-file-application の基本を紹介しました。

今回はあれを修正し、コントローラーからビューへデータを渡し、それを表示してみたいと思います。

今回のゴール

前回は、http://localhost:2300/ にアクセスすると 'Hello World!' と表示するだけでしたが、今回は現在時刻を表示してみましょう。

コントローラーで現在時刻を作成し、それをビューで表示します。 Webブラウザで以下のように表示されます。

f:id:tatur0u:20150622230312p:plain

続きを読む

LotusでOne-file-applicationを作る

前回 は Lotus を紹介しました。

今回はそれを使って One-file-application を作ってみましょう。

Lotus での One-file-application の作り方は、以下のブログに素晴らしい記事があります。

Ruby LotusでWeb Appを作ってみる | kim hirokuni

しかし、この記事は使用している Lotus 自体が古く、最新の Lotus では動作しません。 そこで、最新の Lotus 0.3.2 で動作するサンプルを紹介していきます。

なお、この記事は Ubuntu 15.04 で動作確認していますが、その他の Linux ディストリビューションや、OS X でも同様の手順で実行できるはずです。

続きを読む

Lotus - A complete web framework for Ruby

lotusrb.org

Lotus というWebアプリケーションのためのフレームワークを紹介します。

まえがき

先日、ちょっとしたWebアプリを作る必要がありました。 作りたいものはミニブログ的なもので以下の要件があります。

  • 記事の作成と一覧が出来る
  • ログインによるユーザ管理ができる
  • サーバー負荷もクライアント負荷も小さいほうがいい
  • クライアントはスマホガラケー
  • ユーザは1~3人程度

本当に仲間内だけで使用するためのものです。

私はもう10年近くWebアプリを作ったことがなかったので、最新技術も最近のトレンドも分からない状態でした。

とりあえず、以下のキーワードで探しました。

  • 巨大でない(中身が分からないと苦労しそう)
  • フレームワークアーキテクチャMVC を使う(良いらしいので)
  • RESTful(保守性が高そうなので)
  • サーバーサイドは Ruby を使う(Ruby が好きなので)
  • クライアントサイドは CoffeeScript を使う(Ruby が好きなので)
  • データベースはファイルか sqlite(小規模なの)
    • Heroku にデプロイすることも考えて、MySQLPostgreSQL も使えたらなおよし
  • Javascript による制御は自分で書くか超軽量のライブラリを使う(勉強のために)
  • CSS は自分で書くか超軽量のライブラリを使う(勉強のために)

つまり、軽量で、MVCアーキテクチャで、View部分はお好きにどうぞ。というフレームワークを探しました。

Ruby on Rails は、趣味でRedmine用のPluginを作ったことがあったので少し見たことがありますが、あれは今回の用途には巨大すぎだと思いました。Webアプリ開発の勉強も兼ねているため、フレームワーク内のコードを読む機会が多いと思いますが、これは読めそうにないです。
Sinatra は、軽量だし情報量も多かったのですが、DSL の塊なのがちょっと好みではありませんでした。フレームワークを使うときは便利そうですが、フレームワークの中身を勉強するのは難しそうです。
PadrinoSinatra と同じ理由でパス。
Ramaze はとても良さそうでした。軽量でカスタマイズしやすそう。これに決めようと思っていたのですが…

出会ったのです。Lotus に。

続きを読む