タグ

ブックマーク / soutaro.hatenablog.com (10)

  • コーディング面接の例 - soutaroブログ

    プログラマの面接をするときには実際にコーディングをしてもらうべきという話は良く聞くが、もうちょっと細かくどういうお題を出したら良いかとか、どういう風に評価したら良いかとかの話はあんまり聞かない気がする。せっかくなので、ユビレジでの面接で私がコーディングについて確認するときのパターンを、いくつか紹介してみようと思う。 実際にコードを書いてもらうパターン 候補者がどのくらいプログラミングできそうかの予備情報がない場合に、簡単なアルゴリズムを書いてもらうことが多い。例としては、 Linked Listを書いてください Stackを書いてください など。ここで、おもむろに int main(int argc, char* argv[]) { などと書き始める人は、あまり良い印象をもたれない。 class Stack などと書き始める人は上よりは期待できる。 このとき、わざと出題で詳細をあまり明らか

    コーディング面接の例 - soutaroブログ
  • ユビレジのサービス状況を監視するためのモニタを作りました - soutaroブログ

    ユビレジではNew RelicとかLogglyとか使ってサービスに問題が生じていないかを監視しているのですが、そうはいってもあんまりちゃんと監視できていないのが問題になっていました。簡単に言うとWebブラウザでいちいちアクセスするのは、明らかにめんどくさいわけです。具体的にNew Relicを見ようと思ったとすると、 New Relicを見ようと思う ブラウザの新しいタブにrpm.newrelic.comと入れる パスワードを入れる アプリケーション一覧からUbiregiを選ぶ やっとモニタにたどり着く! という手順が必要になります。全体的に面倒くさいのですが、この中で一番問題になるのは1の「New Relicを見ようと思う」ということです。あんまり思いません。そして、問題が発生するのは、問題が発生すると思いもしなかったタイミングです。メール通知なんかもありますが、わりと簡単に他のものに埋

    ユビレジのサービス状況を監視するためのモニタを作りました - soutaroブログ
  • それは話が逆になっている - soutaroブログ

    エンジニアが作るネットサービスのアイデアがしょぼいワケ【連載:えふしん】 - エンジニアtype 種を明かせば簡単で、エンジニアはしょぼいアイディアでも自分で実装できちゃうというだけの話なのですよ、これ。実装を一人でできるので、アイディアの段階で枝刈りされることがなくて、結果として世の中に出てくるものの数で言えば「エンジニアが出したしょぼいアイディア」を実装したものが多くなる。一方で、エンジニアじゃない人はがんばってしょぼくないアイディアを考えて、アイディアがしょぼくないことをエンジニアに説得して頼み込んでやっと実装してもらえるので、明らかにしょぼいアイディアは世に出ないという。 アイディアのしょぼさと当たるかどうかには強い相関性はないというのが現在の常識だと思うので(適当に言ってるけど)、つまり実装できる人が、試行回数を最大化できる分、強いと言うことになる。がんばってしょぼくないアイディ

    それは話が逆になっている - soutaroブログ
  • 複数のプロジェクトでGemfileを共有する方法 - soutaroブログ

    require 'pathname' instance_eval (Pathname(__FILE__)+"another_project/Gemfile").read) などとします。 なんでこんなことやりたいの? Railsプロジェクトをテストするためのプロジェクトを用意して、そっちでもRailsのモデルを読みたいのです*1。さらに、テストプロジェクトのためのライブラリがあって、そっちはRailsのほうのGemfileには含めたくない*2。 具体的には、FrankのテストをRailsとわけて管理したくて、さらにテストの方でiOSシミュレータの起動のためにsim_launcherが必要。 最初こうしました load "another_project/Gemfile" これはうまく行きません。loadすると、普通のトップレベルと同じ扱いになるので、gemとかのメソッドがないと言われます。

    複数のプロジェクトでGemfileを共有する方法 - soutaroブログ
  • FrankでRubyからiOSアプリを操作してテストする - soutaroブログ

    昨日の話の続きです。 iOSアプリのインテグレーションテストに関する問題 - soutaroにっき こんな感じでテストを書くことができます。 ENV['RAILS_ENV'] = 'development' require File.expand_path('../../server/config/environment', __FILE__) require 'rails/test_help' require 'frank-cucumber/frank_helper' class FranklyTest < ActiveSupport::TestCase include Frank::Cucumber::FrankHelper self.use_transactional_fixtures = false setup do wait_for_frank_to_come_up Counte

    FrankでRubyからiOSアプリを操作してテストする - soutaroブログ
  • iOSのプロジェクトをJenkinsでビルドする - soutaroブログ

    情報がまとまっていなくて苦労したので書いておく。やってしまえば簡単。 やりたいこと githubにpushした時点でビルドする ビルドしてテストを実行する(まだできてない) ビルドして、Testflightを使って、弊社のセールス・サポートチームに配布する Provisioningを更新するなどの作業はJenkinsを意識しなくてもできること Provisioningはgitのリポジトリに入れておく やらないこと 自動でベータ版としてベータテスターに配布する 自動でiTunes Connectにサブミットする Jenkinsをインストールする Mac用のパッケージをインストールする。インストーラはdaemonとかいうユーザーで実行しようとするが、これはjenkinsとか適当に作ったユーザーに変えておく。 Jenkins Mac OS X InstallerでJenkinsを入れる - Iw

    iOSのプロジェクトをJenkinsでビルドする - soutaroブログ
  • CoreDataのためのNSFetchRequestをArelみたいに作るためのライブラリを公開しました - soutaroブログ

    https://github.com/soutaro/Arelish CoreDataを使わずにObjective Cのプログラムを書いていると、馬鹿みたいなことを馬鹿みたいに繰り返しやるはめになって馬鹿みたいである。しかしCoreDataを使ったとしても、NSFetchRequestを作るために馬鹿みたいなプログラムを馬鹿みたいに何行も書かなくちゃいけなくて、やっぱり馬鹿みたいである。 こういう状況を改善するために、Arelみたいに条件が書けたり書けなかったりするライブラリを作りました。 Arelish* arel = [Arelish arelishWithEntity:NSStringFromClass([YourCoreDataModel class]) context:managedObjectContext]; arel = [[arel where:@"parent" is:

    CoreDataのためのNSFetchRequestをArelみたいに作るためのライブラリを公開しました - soutaroブログ
  • オフサイドルールの処理 - soutaroブログ

    予習編.たまーに,YAMLのパーサとか欲しくなるんだけど,インデントの処理をどうやったら良いのかよくわからなくなって困っていたんだけど,勉強になった. Haskell 98 Syntaxにこと細かに書いてあるので,適当に実装してみた. http://svn.soutaro.com/has/tags/offside-rulesにありますので,適当にチェックアウトして,ocaml-3.10とかfindlibとかextlibとかインストールしたうえでmakeしたらできます.標準入力からHaskellプログラムを読み込んで,オフサイドルールを処理したやつ,つまり適当に{}とか;とか追加したトークン列を出力します. let fac3 0 = 1 fac3 n | n > 0 = n * fac (n-1) みたいのが, { let { fac3 0 = 1; fac3 n | n > 0 = n *

    オフサイドルールの処理 - soutaroブログ
  • NSArrayにretainさせない方法 - soutaroブログ

    delegateというかObserverというかListenerというか、そういうオブジェクトって、たいがいにおいて循環参照になりがちだ。通知してもらうオブジェクトは操作するオブジェクトを保持してることが多く、操作されるオブジェクトは通知する対象を保持しなくてはいけない。ここで、普通にobserverをobservableがretainする場合、相互に所有権を保持することになり、一生releaseされなくなってしまう。 UIKitなんかを見てると、delegateなプロパティはretainじゃなくてassignになってることが多い。なるほど。 と思ったんだけど、Observerを複数登録したいときってどうすれば良いのか困った。NSArrayとかに保存しておきたいんだけど、普通にretainするし、普通それが良いだろう。さて困った。 こういうときは、retainせずにObserverを保持す

    NSArrayにretainさせない方法 - soutaroブログ
  • soutaroにっき - Mac OS W

    Will Apple drop Mac OS X’s Darwin kernel in favor of Microsoft’s Windows Vista kernel? – MacDailyNews - Welcome Home Mac OS XにWindows Vistaのカーネルが載る? | Macin' Blog MacOSがUnix Kernelを捨ててNT Kernelにするとかいう噂話があるらしい。もしこれが実現したら、「MacはUnixである」とか言ってMacを使うべきと主張していた人がどうなるのか気になるw。あー、Unixも残るのか。 ここでMac好きな人は拒絶反応を示したくなると思うんだけど、ちょっと待って欲しい。 まず、Windowsの世界を説明する。乱暴に言えば、ここでいうNT KernelというのはUnix Kernelのもう一つ下のレイヤだと思えば良い。今のW

    soutaroにっき - Mac OS W
  • 1