Kinopyo Blog

プログラマとしてRuby, Rails, iPhone, iPad,Macなどなどと向き合う日々のログポース

Archive for 12:54

人はなぜ直線で歩けないのか

2012年01月30日

面白かったのでブログに載せました。目を閉じて歩けば直線だと本人は思うが、実はぐるぐる回ってるって実験が80年前から行われていて、未だにその原因がわからないそうです。

A Mystery: Why Can’t We Walk Straight? from NPR on Vimeo.

FactoryGirl: 既に定義した値をベースにした値を設定する方法

2012年01月26日

FactoryGirlで既に定義した値を使おうとする時の方法です。

例えばLessonというクラスのstart_atとend_atの属性があり、start_atを定義した後はend_atをその2時間後に定義したい場合、ブロックでパラメータを渡せばそこでstart_atにアクセスできるようになります。

# Say you have two columns: start_at, end_at
# When start_at is defined, you want end_at's value based on the start_at
# Here is the solution, passing a block to get the object of the context.

start_at Random.new.rand(14..45).days.from_now
end_at { |l| l.start_at + 2.hours }

# Full example
FactoryGirl.define do
  factory :lesson do
    sequence(:title) { |n| "lesson title#{n}" }
    sequence(:description) { |n| "lesson description#{n}" }
    capacity 6
    start_at Random.new.rand(14..45).days.from_now
    end_at { |l| l.start_at + 2.hours }
    price [5000, 5100, 5200, 5300, 5500, 6000].sample
  end
end
view raw gistfile1.rb This Gist brought to you by GitHub.

Herokuで環境変数を追加、チェック

2012年01月24日

Herokuで環境変数を追加&チェックするコードです。

# check all your ENV vars.
heroku config -long
     
# add ENV vars
heroku config:add S3_KEY=8N029N81 S3_SECRET=9s83109d3+583493190
view raw gistfile1.sh This Gist brought to you by GitHub.

iPad2とソフトバンクWi-Fiスポット(2years)

2012年01月08日

iPad2でたまに駅とかでソフトバンクのWifiスポットへのアクセス画面が出てきて、気になって使えるかを調べたんです。

利用するには

iPad Wi-Fiモデルを、ソフトバンクショップ、アップルストア、アップルオンラインストア並びに一部の量販店でご購入のお客さまには、最大2年間ソフトバンクWi-Fiスポットを無料で提供します。

http://mb.softbank.jp/mb/ipad/service/wi-fi/

自分場合当時アップルストアで購入したのですが、iPad2の個装底面にはシールがありませんでした。上記の説明の「一部の量販店」の部分が曖昧だっだので、ソフトバンクのスタッフに聞いたら、とりあえずソフトバンクのショップで買わないとほとんどはwifiスポットを提供しないらしいです。またiPadのモデルがそもそも違うので他にWifi加入とかの申し込みも全然できないです。

そこの説明文は全然嘘ということでした。

関連リンク:http://mb.softbank.jp/mb/ipad/service/wi-fi/

iPhone 4Sのモバイルデータ通信(3G)をオフにしたらたまたま電話機能が使えなくなる件

SMSと電話ができなくなる故障?

iPhone 4Sになってからは「3Gオフ」のオプションはなくなり、代わりに「モバイルデータ通信」をずっとオフにしたのですが、ある日からたまたま電話やSMSができなくなりました

詳しくは:

  • SMS送信しても成功とならない(プログレスバーがずっと送信状態)
  • 電話かけても何も聞こえない&話せないが、相手は受話できる(相手にとっては通話状態になっているのにこっちが何も喋ってない感じになる)
  • そして電話のアプリがしんでしまう

原因

Appleジーニアスバーに行きましたが、答えとしては「iPhone4Sはモバイルデータ通信、つまり3Gオフにするのは電話がそもそも使えなくなる、そのように設計されたんです。」

「え、、?でも3GSの時はずっとオフにして使いましたが。。。」

「残念ながら4Sからはそれはできなくなるんです」

しょうがない解決策

「設定 → 一般 → ネットワーク → モバイルデータ通信モバイルデータ通信」をONにするしかないですね。

今までオフにしても一日で大体80%のバッテリー消費になったのが、ONにしたらもう。。。「iOS 5.1を待つしかないですね」これがジーニアスバーのスタッフの回答です。

なぜ3Gオフのオプションはなくなったのか

Googleで検索してもAppleからの正式回答はなかったのです。>_<

(English) What you can do with Facebook Comments Social Plugin

2012年01月05日

申し訳ありません、このコンテンツはただ今 English のみです。

(English) How to change “Untitled” title in Tumblr

2012年01月03日

申し訳ありません、このコンテンツはただ今 English のみです。

WordPress “Page”を外部リンクに設定するプラグイン:Page Links To

Page Links ToプラグインでブログにWordpressの”Page”を追加し、指定のurlを開くように設定できます。

例えば自分の場合は”About”ページをhttp://about.me/kinopyoにリダイレクトしています。

This plugin allows you to make a WordPress page or post link to a URL of your choosing, instead of its WordPress page or post URL. It also will redirect people who go to the old (or “normal”) URL to the new one you’ve chosen (301 Moved Permanently redirects are standard, but you can choose a 302 Moved Temporarily redirect if you wish).

This functionality is useful for setting up navigational links to non-WordPress sections of your site or to off-site resources.

You can also use it to create a hand-crafted menu that links to pages, posts, categories, or anything within your site.

参考サイト:

http://www.kreci.net/web-development/how-to-make-wordpress-page-link-to-any-url/

2012年の目標

2012年01月01日

Nettus+の記事:10 New Year’s Resolutions Every Web Developer Should Makeがとても素晴らしかったので、それに乗って2012の目標をできるだけ数字化で評価しやすいように設定しようと思います。

1 – Learn a New Language, Framework, Or Methodology

Node.jsとNode.jsで何の問題を解決するのが一番得意なのか?を知りたい。

「Node.jsは何の問題を解決したの」ってNode.jsを勉強した友達に聞いたら、「front-endのエンジニアは昔client sideのことしか出来なかったのを、今はserver sideの実装もできるようになった、と転職活動でもっと有利になった」みたいなジョークで返しました。。。

今まで言語を学ぶプロセスとは違う手法で、文法などを勉強する前に先にこれを一番知りたいです。

言語自体はRubyがもっと好きですし、今まで簡単なプロトタイプなどはSinatraでも十分対応できました。もしNode.jsの使い道が自分の趣味などに合わなければ途中、あるいは真っ先に捨てるのも全然あり。

2 – Get Better At What You Know

下記のスキルの熟練度をあげて、普段の仕事の中でもうapiなど参照しなくてもできるくらい

  • Ruby(Metaprogrammingあたり)
  • Rails
  • Sinatra
  • Heroku
  • MongoDB(MongoMapper)
  • TextMate 2

仕事でも環境が整った上、これくらい出来なくちゃ!

全部頭で覚えられるはベストですが、DRYの観点からTextMate(2)を工夫してSnippet作ったりして効率にするのもありです。

3 – Explore a New Field

iOS Developmentで簡単なアプリをひとつ公開する

昔作ってた経験もあるし、このまま放棄するのは悔しいというかもったいないかなと思います。iOS 4からはほとんど触ってないのでキャッチアップしたいです!

いつも同じことをやるのにRubyだと一行でできるのがiOSでは数行の見苦しいコードになっちゃうことに抵抗があって、なかなかモチベーションが湧いてこないですが、会社の人が2時間で相当完成度の高いプロトタイプが作れたことにびっくりしてやっぱ熟練度を上げればそこまでWeb開発と差はないでしょうね。

4 – Engage the Community

あえて目標は設定しません。

オープンソースへの貢献という話に私見ですが、「貢献するために貢献する」ことには抵抗があります。私は自分が使ってるうちに気づいたことは自分で改善しそれを作者さんにフィードバックしたいのですが、それを数字化で「10件のPull Requestを送る」とかはあまり意味ないと思います。「今年は恋をする!」ではなく、「縁で知り合って気に入った子と深く付き合いたい、その気持ちを伝えたい」マインドセットで進みます。

5 – Teach Others

人に何を教えるかまだ半信半疑ですが、以下の2つはチャンスがあればもっと人に伝えたいです。

  • 料理は社会問題、料理で世界を変える
  • Lean Startupの手法で、自分/人類の無駄なエナージーを減らす

6 – Take Better Care Of Yourself

数年前より体がだいぶ鈍くなったし、あんまり働いてないのに、いっぱい寝たのに疲れが回復しないのがどうも気に入らないです。そのためにちゃんと体を鍛えたいです!

  • 10時以降に起きるのを年間休日の10回以内に
  • 夜1時以降寝るのを週一回のペースに、3ヶ月実施して問題なければ12時前に寝ることに。
  • トータルで144 km走る(2週間で3回走る x 1回で2km = 1ヶ月で 12km, 12 x 12 = 144km)
  • 一回くらい10km走る
  • 自転車通勤(Optional)

7 – Manage Your Time Better

まだどう実施するかノープランですが、とりあえずは:

  • 朝の時間をもっと利用したい
  • 家での集中時間を増やしたい

どう実施するかはまた後で考えます。

8 – Use Better Programming Practices

これは言うまでもないものなのでpass

9 – Generate Passive Income

  • 2ヶ月で一つのプロダクトをリリースし検証する

Start-ups Don’t Starve, They Drown.

のようにideaは今までもうものたくさんある中、作りっぱなしにしたか、放棄状態にしたのはもったいない!2ヶ月のスパンではいろいろ試せると思って、年に6つのideaを試せるからね!

2011年はブログのAdSenseで何とか給料以外の収入は得たものの、金額が少なすぎてまだ言えるほどのものではないです。でも儲かるのは目的ではなくて、それなりの価値を提供すればそれなりのフィードバックはあるはずなので、まだ価値があるものを作れていないことです。

またドメインとかサーバ、Herokuなどにもっと大胆に投資してもいいよって自分に言いたいです。

10 – Take a Break

  • 週に3回は料理する、週末は豪華なやつを作る!(cook.kinopyo.comの料理専用ブログを作る!)
  • StarCraft2でMaster Leagueを目標に進出!

採用観点から見たいいブログとは

この間仕事の関係でたくさんの技術者のブログを見たことがあって、自見ですが、採用の観点から見たときにどういうブログがよかったのか、正確に言うと採用に欲しい情報が探しやすいのかを整理したいと思いいます。

私自身はエンジニアで採用関連の仕事はほとんど未経験なので、プロの意見ではなく、あくまで自分が仕事の中で感じたことを書いただけです。ご参考までに。

レイアウト

ブログにアクセスしたときは私はまず「About」ページを見つけようとしました。実際の記事とかサイドバーの内容とかよりも、一般的には「About」ページでより詳しい、採用観点からの欲しい情報が得られるからです。なのでこの「自己紹介」のページへのリンクが見やすいかどうかが重要だと思います。

下にスクロールせずに見られる場所、例えばトップのタブバーとかにあれば助かります。

Aboutページ

多分ブロガーは誰もがこのAboutページを持っていると思いますが、「誰に向けて発信しているか?」が明確でないとなかなかいい文章にはならないと思います。

私も今まで自分のAboutページを本当適当に書いていて、「どうせ誰も見てないだろう」と思ってずっと更新すらしなかったですが、今回の仕事でわかったのが「採用/転職のチャンスを見逃したかも」ってことです。準備すらしなければ、実際チャンスにめぐり合った時もそのまま捕まえることができないです。

自分のAboutページは実際Google Analyticsで見たときはちょこちょこクリック率があることはわかってますが、本当に手抜き状態にしたまま。。too lazyですね!

Aboutページで必要な情報

ではこのAboutページで一体どんな情報があればいいのか?

  • 簡単な自己紹介
  • 言語(できれば英語版のも欲しい)
  • 今の居場所(意外と重要)
  • スキル
  • 今までの作品や成果、オープンソースへの貢献など
  • どういうことに興味があるか?どんなものが作りたいのか?
  • ソーシャルアカウント(Linkedin, Twitter, Github)
  • 連絡先(メールアドレス)

自分の母国語以外に英語バージョンのも用意して欲しいですね。グローバル採用の流れで、本人も世界を目指すならばできれば絶対英語をオススメします。記事はまだ母国語でもいいですが。

Linkedinへのリンクがあれば一番助かります。

Githubでは持っているリポジトリ(Forkしたのも大丈夫)でどんな分野の技術に興味が有るのかをチェックして、フォローされた数も参考にしました。

Facebookは逆にあっても全然チェックする気がないです。

今の居場所は実際にFace to Faceで話したい時に会える距離であるかの参考になります。

ブログ記事については

ブログ記事は一個一個チェックしないですが、あまりにも更新がない(年に3〜4回とか)ブログは「あれ?放棄状態?」な心配がありそこの情報が信用できるかが疑われます。

オススメトール

http://about.meのサイトがありますが、ブログのAboutページをこれにしてもいいと思います。見た目が綺麗ですし、ソーシャルアカウントへのリンクも簡単に付けられて書く側も見る側も楽です。

さて、この記事を読んで自分のブログを見直したい方はいらっしゃるのかな?