sachin21's blog

技術ブログ

エンダアアアイヤアア(ryのネタサイトを構成するサーバ環境,実行環境..etc

こんちは @sachin21です

先日EnterrrrrrというEnterキーを打ったら音楽がなるネタサイトを作ってバズった人です。

このサービスを構成する詳細を書いていくので参考までに。

サーバ周り

言語環境

Gems

てな感じです。

出来るだけ高速化したいんで当たり前のようにNginxとPumaです。

前はソース公開してたんですがクラッキングを受けて落ちたんで

Privateリポジトリに変更してました><

すみません(;´Д`)

スペースとアンダーバーを変換したい時ってありませんか?

今手伝っている会社はグローバルなサービスを作っていて、グローバルな方も働いているので、commitメッセージは基本英語です。 ですが英語が得意ではない私は長いcommitメッセージは単語ggったりGoogle翻訳で翻訳してcommitしたりしています。 その時にspaceのものをコマンドラインに貼り付けたらspaceが含まれていますが、gitのbranch名にスペースは使えません。 一々underscore(アンダーバー)に変更するのが手間でしたのでirbやらpryでわざわざワンライナーでコード書いてコピってました。

それがめんどくさくなってきたのでgemにしてしまおう、と思って

space2underscoreを作りました。

簡単に説明するとコマンドの引数に変換したい文字列を渡してenter叩くだけです。

s2u hoge fuga foo
hoge_fuga_foo

のように返ってきます。branchを作成したい場合は

s2u hoge fuga foo -c
Switched to a new branch 'hoge_fuga_foo'

という具合にbranchが作成されます。 ぜひgem i space2underscoreお願いします〜!

リンク

http://rubygems.org/gems/space2underscore

https://github.com/sachin21/space2underscore

Rubyのif文に関する仕様について

こんにちは、@sachin21です。

if nil
  # 実行されない
  foo = "hoge"
  p foo
else
  # 変数宣言せずに変数の中身を`p`する
  p foo
end

これでエラーが出ないのはなぜなのか?

宣言されてないはずのfoop fooで表示されないはず

でもそうではない

=> nil

「ローカル変数fooを宣言してるお!!」というのはRubyに認識されてしまうのです。。

そしてローカル変数のデフォルトの値としてnilで初期化される。

だからelse句内は間違って正常に実行されてしまう。

この動いてはいけないものが動いてしまうのはちと怖いっすね。。

Rubyにて複数の配列を同時にeachする方法

こんにちは、@sachin21です。

複数の配列を同時にeachしたいけど仕方わからなくなって解決法調べたらこんな方法が。

配列を代入してから

ary1 = ['hoge','fuga', 'foo', 'baz']
ary2 = [user_1, user_2, user_3, user_4]

ary1.zip(ary2).each do |keyword, user_id|
  p keyword
  p user_id
end

てな感じにすると同時に取り出せる!!

Rubyにて1Byteか2Byteを判定するメソッド

こんにちは、@sachin21です。

とある機能を実装してて英語、もしくは日本語の文を文字数減らして表示しなきゃいけなくなった場合 1Byteか2Byteを判別するためにこんな便利なメソッドが・・。

"こんにちはHello".ascii_only?
=> false

"Hello".ascii_only?
=> true

2Byteが入ってたらfalseが返るお。

Clearを超えるToDoリストアプリ

最強のToDoリスト!?

近頃ToDoリストが流行っていて、Clearというアプリが人気です。 しかしClearには不便な点が幾つかあります。

  • リスト一覧に行くには長くプルダウンしなければいけない

f:id:sachin21:20140303061021j:plain

  • 長くプルダウンして、位置がずれたら通知センターが表示される
  • 長くプルアップして、位置がずれたらコントロールセンターが表示される。

最後の2つはiPhoneの仕様上スクリーンショットが撮れませんでした 十分なほどに使いづらい仕様。 使い始めて、5分でやめましたww けれどToDoアプリでググってたらめっちゃいいものありました!! もっと前から知っときゃよかった(; ・`д・´) それがSwiperです

Clearのいいところを継承して使いやすいようにしたToDoリスト

Swiperの利点

  • 今まで通りの使い慣れた左にメニューがあるアプリ。

f:id:sachin21:20140303060919j:plain

  • 間違えてタスクを削除しにくい設計

f:id:sachin21:20140303061423j:plain

  • Clearの良い所のプルダウンして作成がある

f:id:sachin21:20140303061433j:plain

利点が3つもあります。 しかも無料!!速攻ダウンロードしましたwwww

Swiper - 直感操作でToDo/タスク管理

【Alfred使いへ】MacApp Storeからはダウンロード、ダメ絶対!

Alfredとは...参考URLを。

MacAppStoreだとAlfred ver1しかダウンロード出来ない。 公式URLからだとAlfredの最新バージョンが使える。 有料だがPowerpackが使える。それがめっちゃ便利。 ユーザーが作ったWorkFlowが使えるようになる。 例えば...

f:id:sachin21:20140222213215p:plain

画像のようなGoogleの検索候補を下に表示出来るようになる。 ユーザーがGithubなどでWorkFlowファイル上げてるので有効活用しましょう!

参考URL :

http://www.alfredapp.com

http://www.danshihack.com/2011/06/09/saku/alfred.html