Objective-C の Category にあたる機能は Swift では Extension として提供されています。 Objective-C の Category には、 のように、 とつけるのが一般的でした。では、Swift の Extension の場合はどんなファイル名にするのがいいんだろう? 結論 公式なガイドラインはないようですが、Objective-C の Category と同じ。つまり、 のようにするのが良いようです。 Most examples I have seen mimic the Objective-C approach. The example extension above would be: The advantages are that the naming convention makes it easy to understand that it is an extension, and which Class is being extended. What's the best practice for naming Swift…

READ MORE >>



プライベートリポジトリ用に建てている GitLab には、CloudFlare で SSL を有効にして https でアクセスしていますが、Ubuntu 14.04 から しようとしたら、 とのエラーで失敗してしまいました。 も も全部失敗します。CloudFlare を経由する前は問題なかったので、おそらく SSL のプロキシが失敗している理由でしょう。また、Mac の git からはアクセスできているし、エラーメッセージにも が失敗しているとあるので、Ubuntu の git が依存している SSL ライブラリに原因がありそうです。 OpenSSL を使う git のビルド もはや当然のように Stack Overflow にはほぼ同じ質問があり、そして解決法についての回答もありました。「gnutls はプロキシ越しだと変な挙動をするから、openssl を使うようにビルドするといいよ」とのこと。そうなんだ… GnuTLS が微妙なんですかねぇ。 とりあえずその指示の通りに、openssl をリンクした git…

READ MORE >>



よちよち.rb の冬休みのシュクダイとして、「何か読んで読書感想文を書こう!」という企画があったのでのっかりました。といっても、特に読もうと思っていた本があるわけではなかったので、企画段階で課題図書として案のあった「コードの未来」を読むことにしました。 ぶっちゃけ、読む前は、そのタイトルや、雑誌の連載をまとめたものということから、軽い感じで読めるコラムが沢山あるような本を想像していました。なので、読み進めていて、ちょっと読むのに時間がかかりそうなところ (ガッツリとコードが出てくるところとか) が出てきたら飛ばしちゃったりしていたんですが、そうすると途中からほとんど飛ばすことになってしまって、「なるほど、これはサクっと読める本じゃなかったんだな…」と、勘違いしていた認識を改めて、ちゃんと腰を据えて読むことにしました。 所感 最近 Ruby…

READ MORE >>



Swift で作っているiOS アプリに、Facebook の iPhone アプリのような横にスライドして表示されるメニューを追加したいと思いました。 いくつかライブラリを見てみたところ、iOS-Slide-Menu というライブラリが簡単に使えそうです。iOS-Slide-Menu は Swift ではなく Objective-C のライブラリですが、インストールも CocoaPods で1発なのでそれを利用することにします。ただ、素直に Readme に記載されている通りの実装をしただけではうまくいきませんでした。その理由は、 作っているアプリが Tab Bar インターフェースを持っている 各タブにそれぞれ個別の Navigation Controller が設定されている iOS-SlideMenu が提供する SlideNavigationController はシングルトンオブジェクト だからです。したがって、複数の Navigation Controller にそれぞれ SlideNavigationController…

READ MORE >>



先日公開した yochiyochi-pingping のステージング環境を作りました。 yochiyochi-pingping は Heroku 上で運用しています。が、ローカルの開発環境では、GitHub の OAuth 用のアプリケーション登録すらしていません。なので、修正したときには、ろくに動作確認もせずにいきなり Live に push してうまく動くことを祈る、というメチャクチャなやり方をしていました。しかし、利用してくれている人もいるので、さすがにこれじゃマズいだろう、ってことで、Live と同じ Heroku 上にステージング環境を作ることにしました。 Heroku にステージング用のアプリを作る Heroku でのステージング環境の構築は、調べてみるといくつか方法があるようで、Heroku アプリをそのまま fork して複製することもできるようです。当然、Live と ステージング環境は同様の環境であることが望ましいので、fork するのは良い方法でしょう。ただ、私の場合は、New Relic や Heroku Scheduler…

READ MORE >>



この記事は 「よちよち.rb Advent Calendar 2014」 17日目の記事です。 昨日は katorie さんによる 「よちよち.rb 第49回 #yochiyochirb」 でした。katorie さんは毎回レポートを書いてくれているので、残念ながら参加できなかった日も、そのレポートを読めばどんな内容だったのかをおよそ掴むことができるのでとても嬉しいです。 また、ミートアップで GitHub の Issues を使っているので、ウォッチしていればリアルタイムに活動状況がバンバン飛んできます。もちろん参加するのが一番楽しいのは間違いないですが、参加できない日でもこうして参加気分を味わうことができて、置いてきぼり感を感じさせないのも、よちよち.rb のとても素敵なところだと思います。ときには参加していない人からの「突然の」書き込みがあったりして盛り上がるのも楽しいです。これは、コミュニケーションツールに Idobata のチャットを使っていることも大きいのでしょう。 さて、その Idobata を眺めていると、「music…

READ MORE >>



この記事は 「よちよち.rb Advent Calendar 2014」 9日目の記事です。 昨日の記事はトミーこと ta1kt0me さんによる 「Rspec3のexpectとallowの違い」 でした。Rspec3 の と の違いを説明しながら、読むと「スタブ」と「モック」の違いを理解できる内容になっています。掲載してあるサンプルコードは長くないものですが、似ているけど微妙に細部が異なっているようなコードが多く、注意深く読んで内容を掴まないと混乱するので丁寧に読みましょう!ちなみに私は Rspec をほとんど使ったことがないのでとても勉強になりました。 さて、今日の記事は「審判の雷 Lightning Picker」です。意味わかんないですよね。はい、自分でもよくわかりません。これは、ADVENTAR 上でアドベントカレンダーに登録するときに適当につけちゃったタイトルです。いつもこういうの「細かいことは後で考えよーっと」と適当にノリでやっちゃって後悔することが多いです。今度の LT…

READ MORE >>



この記事は 「よちよち.rb Advent Calendar 2014」 5日目の記事です。 昨日の記事は bonbon0605 さんによる 「第3回MetaNightに参加してきました」 でした。この MetaNight には私も第1回から参加していて、毎回とても楽しいです。英語の本、更にメタプログラミングを扱った本ということで、ちょっと敷居が高く感じられるかもしれませんが、1回に読む分量はほどほどで、それ以上に内容や Ruby のことについての話をしている (もちろん日本語で) ことが多いので、英語が得意でない方も楽しめる会となっていると思います。その分、最後まで読破できる日はだいぶ先のことになりそうですが… Kajaeru おだいさんの2日目の 「Yochiyochi Committers Who's Who in 2014」 でも少し触れられていましたが、よちよち.rb では Rails を使って Kajaeru というサービスを開発しています。 Kajaeru とは、よちよち.rb の RubyKaja…

READ MORE >>


FIVETEESIXONE

Volt

November 26, 2014

Volt は、サーバーサイドとクライアントサイドの両方を Ruby で書くことができる Web アプリケーションフレームワークです。 もちろん、この「クライアントサイドのコードも Ruby で書ける!」ということが最も大きな特徴ですが、Volt が素晴しいのは、ただそれだけに留まらず、「WebSocket でクライアント - サーバー間のコネクションを張ることで、永続化したモデルを同期するリアルタイムアプリケーションの開発ができる」ことだと思っています。 この点で、クライアントサイドでも Ruby で記述できることの利点がより浮かび上がってきます。 Volt はまだ開発中ですが、 GitHub のリポジトリ に 2,000 近いスターが付けられているので、注目している人の数は多いようです。また、海外のブログなどのメディアで取り上げられているのを目にすることも増えました。先日の RubyConf で紹介されたことも大きいのかしれません。 ところで、クライアントサイドを Ruby で書くというのはどのようにして実現しているのでしょうか。 これは、 Opal という Ruby to…

READ MORE >>



このブログで使っているテンプレートを公開しました。テンプレートの名前は Drops といいます。上にいるキャラが水滴くんっぽかったので。 https://github.com/5t111111/middleman-blog-drops-template せっかく公開したので、Middleman 公式のテンプレートリストにも載せてもらえるように Middleman Directory にリクエストも出してみました。これで載っけてくれるものなのかどうかはわからないけど。 ぶっちゃけ、公開すること自体が目的だったというよりは、公開するという体でソースを整理したかった…要は、ほっとくと自分もワケわかんなくなってしまうので、その前にリファクタリングしとく動機が欲しかった、というのが正直なところです。できれば、公開したテンプレートをそのまま自分でも使えるのが理想的だったんですが、ある程度まではうまくいったものの、いくつかどうしてもうまく解決できない問題があって最終的には完全な共通化は諦めました。 method_missing…

READ MORE >>