パーフェクトRuby on Rails片手に1つアプリを作った

まずは宣伝

作ったのは、Micloという1人用マイクロブログサービスです。
1人用ということで、SNS機能はありません。(が、投稿は全て公開されます。)

Heroku Buttonも付けたので、自分専用の環境をすぐ用意できます。

なぜ作ったか

僕はTwitterがわりと好きなんですが、つぶやく直前に「これ、Tweetするほどのことでもないよなぁ…。」と削除することがよくあります。
別に隠したいわけじゃないんだけど、わざわざ誰かのTLに投げ込みたいほどでもない。

また、tl;drという言葉がありますが、同じくToo long; Didn’t write.というのもやはりあると思います。
ブログにまとめるのは大変だけど、断片でもいいからつぶやいておけば、誰か(自分含む)の役に立つかもしれない。

というわけで、こそこそと気軽につぶやける用に作ってみました。

特徴

単なるマイクロブログだと芸がないので、ひとかたまりで発言できるようにしています。
つぶやく時に、「続き」を選択するとその前のつぶやきとおなじTopicになります。

あと、Markdownで書けます。

キーボードショートカットも一応あります。nで新規、cmd+enterで送信などです。

その他

デザインはほぼBootstrapそのままです。
オープンソースなので、気に入らない所とかあったら、プルリクエストしてもらえると喜びます!

パーフェクトRuby on Rails


パーフェクト Ruby on Rails

「パーフェクト〜」と言われると、ハードルが高いんじゃないかと思っちゃいますが、
実際は、「ステップアップ〜」や「レベルアップ〜」と言った感じで、(たぶん)中級者の僕にも大変わかりやすかったです。

むしろ初心者にこそオススメしたい一冊でした。
久々に、「Railsで何か作りたいなー」という気持ちにさせてくれました。ありがとうございます!

読みながら書いたメモなどはこちら。
http://miclo.bornneet.com/u/tnantoka/t/3

Vue.js

どうせ何か作るなら今まで触ったことのないものを使ってみようと、Vue.jsを使ってみました。

これまでBackboneとAngularを少し触ったことがある程度なので、偉そうなことは言えませんが、Vue.jsはとてもコンパクトで手軽に使えると感じました。とにかくBindingがしたいんだよ!という人は是非。

また、今回は、できるだけRailsの機能を使う方針で書きました。
例えば、「formをsubmitしてJSONを持ってきて…」みたいな処理を自分で書きたくなかったので、
「remote: true」でRailsにやってもらって「ajax:success」を受ける、みたいな形でやりました。「disable_with」も使いたかったし。
結局そのせいで汚くなった部分もあるので、素直に自分でsubmitすればよかったかな、とも思っています。(が、汚さの多くはVue.jsがアップデートしていくうちに解消できそうな気がするので、そちらに期待しています。)

あと、今更ながらSlimも使ってみましたが、快適でした。Vueは結構HTMLの属性を書かなきゃいけないので、HTML風にも書けるSlimと相性がよかったです。

サーバ

VULTRで動いています。
キャンペーンで実質半額なので月2.5ドルです!安い!!(初回入金と同額を上乗せてくれる

これぐらいなら、なんとかAdSenseでやってけるんじゃないかと目論んでおります。
広告邪魔という人はオープンソースですので、自前で立てて消していただければと思います。(むしろ、そこまでして使ってくれたらありがたいです。)

今のところ大きな不満はないですが、やはりレイテンシが気になります。
※ Tokyoは転送量上限100GBで心許なかったのでLos Angelesにしましたが、pingすら200〜300msかかってて​悲しいです。

 

そんな感じで、よろしくお願いします。

Xcodeのグループとディレクトリ構成を同期させてくれるツール「Synx」

皆さんはXcodeのグループをディレクトリ構成と合わせますか?

僕は、使い捨てのプロジェクト以外は合わせるようにしています。
やっぱり、プロジェクト名のフォルダに全部突っ込まれてるよりは、ある程度分かれていたほうが見やすいですしね。
(Xcode上ではどちらでも変わらないけど、GitHub上などで見る時に効率が全然違う)

ただ、この「グループをディレクトリと同期させる作業」めんどくさいんですよね。
グループを作って、File InspectorのLocationからディレクトリ作って選択…。
数が多くなってくるとかなり手間だし、プロジェクトを作る度に毎回やらないといけません。

そんな悩みを解決してくれそうなのが、Synx。最近、GitHub上で人気のようです。

まずはインストール。SynxはRuby製のツールでgemとして提供されています。
導入は以下の1コマンドで完了です。

では、早速使ってみます。

synx1

このようにせっせと「Controllers」「Models」「Views」にグループ分けしたプロジェクトがあります。

treeコマンドでディレクトリ構成を見てみます。
グループ分けの甲斐虚しく、SynxExampleフォルダに全てのファイルが並列にある状態です。

ここでsynxの出番です。この程度のファイル数であれば処理は一瞬で終わります。

再度treeコマンドで確認してみます。

「Controllers」「Models」「Views」それぞれのディレクトリが作成され、ファイルが格納されています。
これは便利ですね!

他にも使い方があるようですが、今回はここまで。
実開発で使ってみて便利だったところや、ハマったところなどあれば、また共有したいと思います。

 

 

 

「Xcode 5 徹底解説 for iOS/OS X」買った

発売以来、主にその大きさから購入をためらっていた(電子書籍化を待っていた)んだけど、この週末読む時間が取れそうだったので、ついに買った。


Xcode5徹底解説 for iOS/OSX

ちゃんと読み込んでものにすれば、アプリの開発効率がかなりあがりそうなので、手を動かしつつ、目を通していこうと思う。

それにしてもIT系の書籍はもう電子書籍デフォルトでいいんじゃないかと。
DRMフリーなら、紙より高くてもいいから!(自炊する手間や置く場所を考えればちょっとぐらい高くても電子書籍の方がいい)

広さ的な意味で住環境が劣悪な日本でこそ、電子書籍はもっと輝くはず!
そんなに本置けない!!

とはいえ、いろいろ事情があったりして難しいものもあるんですかね。
その場合は、こういう理由で電子書籍当面出ないよ!とか告知してくれると諦めがついて購入しやすい気がします。

 

Chromecast触ってきた

今日は暑すぎて何もする気が起きなかったし、ビックカメラでやってると聞いたChromecastの体験会に行ってきた。

chromecast

↑はイベント参加者に配られたシール。気前よく2枚もくれた、ラッキー。

デモの内容はAndroidでYouTubeアプリを開いて、その動画をChromecastで再生するというもの。

AirPlayと違って、Chromecast自体がYouTubeから動画を持ってくる仕組みらしいけど、そんな感じの動きをしてた。
※ 再生を指示してからローディング(?)がしばらくあって、(ようやく)再生される。

スタッフさんは、

    • 競合は(つまりApple TV)1万円ぐらいするけど、Chromecastは4500円!
    • 動画を再生した後、端末側でメールとか電話とかできる!

の2点をメリットとして挙げられていました。

2つ目のメリットをアピールするためには、YouTubeじゃないサンプルのほうがいいんじゃないかなぁ(そもそもApple TVは単体でYouTube見れちゃうので)とか思いながら、
結構迷ったけど、既にApple TVを持ってることもあって、購入は見送った。

最近、このどこの誰が言ったかわからない名言にしたがってるんだが、わりといい感じ。

まぁ、5000円ぐらいのガジェット、何も気にせずに鼻ほじりながら買えるくらいお金があればいいんですが。

もっと稼げるアプリを作りたいです。

 

The Blocks of the Dead: Objective-CのBlocks構文をひたすらタイプして覚えよう

「そろそろObjective-CのBlocks構文をスラスラ打てるようになりたい!」と思って作ってみた。
空白の扱いとかもうちょい改善したいところはあるけど。ひとまず動くようになったので公開。

The Blocks of the Dead

blocks_play

tnantoka/blocks

名前はセガの名作からパクりました。
「The Typing of the Blocks」じゃないのは、Blocks構文のややこしさにふさわしい”Dead”を残したかったから。

参考サイトはHow Do I Declare A Block in Objective-C?です。
(オリジナルはURLがよろしくないwordなので、公式のミラーサイトへリンクしてます。)

はじめてのAngularJS

以下Objective-CではなくJSの話。


AngularJSアプリケーション開発ガイド

を読んだので、AngularJSでやってみました。
(というか、AngularJSの勉強のために作った感じ。)

今までBackbone.jsしか使ったことがなかったので、初Angualrです。

Angularの方がいろいろ書き方が決まってたり、テストの仕組みまで揃ってたり、至れり尽くせりな印象を持ちました。

Backbone.jsは、Backboneで提供されるModelやViewを継承することは決まってるけど、その先は結構自由で、設計力が試されるイメージ。
※ 何も考えないとrender()がやばいことになったり

僕みたいなへっぽこには、Angularのガチガチ感が心地よかったです。Rails Way的な。
もうどうせならモデルの仕組みまで用意してくれたらいいのに、とも思ったり^^
(最近フレームワークに頼りすぎて、自分で1からクラス的なもの書かないからちょっとテンパったorz)

あと、公式で用意されてるangular-seedがコンパクトで良いテンプレートでした。(Gruntなし。NPMとBowerで管理。)Yeomanが生成するやつはちょっといろいろ入りすぎてウッってなるので…。

次もAngularでなんか作ってみようと思う。
HTML5 Japan Cupなんておもしろいものが開催されてるらしいから、何か応募してみようかなぁ。

1 2 3 4 27  Scroll to top