タグ

ブックマーク / rosylilly.hatenablog.com (21)

  • VOD で配信されてるアニメ検索するページ作った - 鳩舎

    TL;DR https://anime-search.herokuapp.com/ 捗る 動機 各社の一覧ページ、わざわざ五十音順でページ分けされたりしていて厳しみがあるので、一括で検索するページが欲しかった。 あとインクリメンタルサーチしたい。 内容 現在はバンダイチャンネルと D アニメストアの作品だけ検索出来る。他のサービスはクローラー書くのがめんどくさくてやらなかった。 だれかやってくれるなら https://github.com/rosylilly/anix ここに PR ください。 Provider::Crawler::HogeCrawler で実装してくれると嬉しい。 PPV = Pay per View なものを除外しつつ検索するのが主眼なので、 Without PPV のオプションがある。 ちなみにこれのおかげでバンダイチャンネルの見放題作品数は886作品、Dアニメストア

    VOD で配信されてるアニメ検索するページ作った - 鳩舎
  • 1人でよいコードを書く - 鳩舎

    1人でよいコードを書くのは、3人でよいコードを書くことの3倍難しい。悪いコードを書くときに説得する人間が 1/3 でよいので、つまり自分に向かって『まぁいいじゃん今回は』と言えば事が済む。続けているといつの間にか引き返せないところまできていて、適当に書いた個人プロジェクトは設計的破綻を起こし、コーディング規約もなにもあったもんじゃないという破滅が待っている。 ということで、1人でよいコードを書くために。今回は Rails プロダクトを1人で書くとして。 rubocop コーディング規約と、あまりに長すぎるメソッドやあまりに長いクラス定義などを見つけてくれる。全てに従うと厳しすぎて死ぬので、適宜各チェッカを無効にするのがよい。 僕はこんな感じの設定で使っている。 AllCops: Includes: - Rakefile - Gemfile - config.ru Excludes: - b

    1人でよいコードを書く - 鳩舎
  • ファイルアップローダを作ろう - 鳩舎

    How to じゃなくて、何かの言語を学ぶ、もしくはあるパラダイムにチャレンジするとき、に僕がよく使うサンプルアプリケーションとして、ファイルアップローダというのがあり、それの仕様をまとめておこうと思い至っただけです。 ちょっと研修資料っぽい感じになっちゃったけど、まぁいいか。 アプリケーションの概要 非ログイン型のファイルアップローダです。ファイルの保持先は S3 や Disk 、 DB への Blob などいくつかの選択肢が提供されます。 HTTP のフォームからファイルがアップロードされ、リストで表示されるだけの簡単なアプリケーションです。 ファイルには有効期限があり、それを過ぎるとダウンロードできなくなる、かつリストにも表示されなくなります(保存先の実ファイルも削除されていることが望ましいです)。 また、ファイルにはプライベートモードがあります。プライベートモードのファイルはリスト

    ファイルアップローダを作ろう - 鳩舎
  • golang を始めた時 - 鳩舎

    そういやまだ新しい経験だから覚えてるし、 golang を勉強していった過程を書いておく。 正しさとかは気にせず、動くものが出来るまでがむしゃらに。 Hello, world まで 特にひねりはない。 homebrew は便利だ。 $ brew install go $ cd ~ $ mkdir -p go/src/hello_world $ export GOPATH=${HOME}/go $ cd go/src/hello_world $ cat main.go package main import "fmt" func main() { fmt.Println("hello, world") } $ go run main.go hello, world 手軽。 入門、そして組み込みパッケージを使う http://golang.org/pkg/ に組み込みパッケージの一覧があるので

    golang を始めた時 - 鳩舎
  • RubyKaigi 1 日目 - 鳩舎

    ルビー会議楽しいですね。 ということで RubyKaigi はおいておいて、メソッドキャッシュの話をしましょう。笹田さんの発表の最後で出てきたやつです。僕は一人で感動に打ち震えていましたが、 IRC に書いたのは『Charlis++』とか書いててですね、ちげーよ Charlie だよみたいなことを家に帰ってから気づいて、アーオって気持ちになりました。 そんなこんなで問題のチケットはこちら。もうチケット名みただけでヨダレ垂らしながら転げまわりたくなりますね。やったぜクラスヒエラルキーメソッドキャッシュサイコー。 ちょっと関係ないコミットとかも混ざって出てるんですけど Github でどういう変更がなされたかが見れます。さらっと流し読みしながらどう変わったかを見てみましょう。 bye bye ruby_vm_global_state_version メソッドキャッシュに使われていた ruby_

    RubyKaigi 1 日目 - 鳩舎
  • プログラミングの話 - 鳩舎

    この辺見て、いつも思ってること。 プログラミングはアプリを作ることの手段なのか - 銀の人のメモ帳 プログラミングはそれ自体が目的であっていい - mizchi log プログラミングを勉強したい人が勉強する前にすべきこと - もとまか日記 プログラミングは手段です。僕にとっては。 「動けばいいコード」は糞コードだ でしょうね。としか言い様がないです。 あえて例え話にして、プログラミングを車の運転だとします。プログラマは運転手です。 でまぁ、アプリを作るってのが伊豆の旅館に行くことだとしましょう。この時、僕の運転する目的は伊豆に行くことです。間違っても運転することは目的じゃないです。なので別に運転に特に気を使うことはありません。 そこに突然 F1 ドライバーがやってきて、『お前のカーブの曲がり方は下手くそだ』とか『もっといいルート選択がある』とか『こんな運転の仕方じゃガソリン代がもったいな

    プログラミングの話 - 鳩舎
  • Perl 6 の Role - 鳩舎

    Perl 自体に造詣もないし、 Perl 6 などましてやというぐらいなのだけれど、とりあえず僕の興味のある分野が Perl 6 にあったので rakudo をコンパイルして試してみた。 Perl 6 には Class と Role があるものらしい。 すごい単純な Person ってクラスを実装してみる。 class Person { has $.name; method greet() { print "I'm $.name"; } } my $romeo = Person.new(:name("romeo")); $romeo.greet(); # => I'm romeo 名前を持ってて、挨拶するだけのクラス。これに Role で実装を与える。 class Person { has $.name; method greet() { print "I'm $.name"; } } r

    Perl 6 の Role - 鳩舎
  • rosylilly.age++ - 鳩舎

    加齢した。 今後も頑張ります。 amazon wishlist はこちら

    rosylilly.age++ - 鳩舎
  • Play Fast Award を受賞しました - 鳩舎

    3/1 に、会社で Play Fast Award というのを受賞しました。 弊社には Play Fast Episode というのがあって、どういうやつかっていうと、普通にスタッフがスタッフの仕事を観て『イイネ!』と思ったら褒めちぎるエピソードを投稿するという場所があります。 Play Fast Award はその中でも特によかったエピソードの人に贈られるもので、今回の受賞者は僕ともう一人で二人の受賞者でした。 ついでなので、もらった時に思った事を書いておきます。 名前を呼ばれた時はなんかやらかしたかと思って焦った 全スタッフの前で突然『草野さん』って名前呼ばれた時、僕はちょうどコンソールのログを眺めていて(話は一応聞いてました)、『ヤベェなんかやらかしたか!!!!』と思ってすごい焦った覚えがあります。隣に居た id:con_mame が落ち着いていなかったら僕は多分焦って変な一発ギャグ

  • アイコンで Web Font を使う利点のうちの一つ - 鳩舎

  • Github があると VPS のセットアップが楽 - 鳩舎

    Github っていう超ベンリスーパークールサービスがあるんですけど、このサービスを使うと VPS のセットアップがすごく楽。 皆いろんなマシンとか持ってて SSH 鍵もいくつも持ってると思うんだけど、このサービスを使えば VPS のセットアップの時にいちいちいろんな公開鍵を集めて SCP で配置するみたいな手間がなくなる。 具体的には $ wget https://github.com/[username].keys $ mv [username].keys .ssh/authorized_keys $ chmod 600 .ssh/authorized_keys すると良い。 Github に登録してある公開鍵は上記の URL で取れるので、例えば友達と共有サーバーを作るみたいなときにも役に立つ。 ギッハブマジ便利だなー

    Github があると VPS のセットアップが楽 - 鳩舎
  • #extend が遅い問題 - 鳩舎

    ここで「#extend 遅い!DCI 狂ってる!」というような話があった。 DCI の例でよく出てくる Object#extend でメソッドを呼び出すとすげー遅いね、どうすんのこれという話で、じゃあまぁ妥当にモデルにいろんなものを include したほうがいいんじゃねという話になってくる。 それも一個の解決方法だと思うし、いいと思うんだけど、僕としては実装を別のところに切り出しておきたいので、どうするか考えた結果、 SimpleDelegator とか使って Delegate すればいいじゃないかと思って実装してみたんだけど、 SimpleDelegator って言ってみれば method_missing なのでそれもまぁ重い。 んで Forwardable で実装すればもうちょい早いのではみたいなことでそうやってみた。 結果はこんな感じ(僕の実装は Dicer) benchmark:

    #extend が遅い問題 - 鳩舎
  • DCI の話をした - 鳩舎

    超重要追記 まじで鳩さんのスライドでDCIについて理解したつもりになるの危険だからやめた方がいいです。せめて d.hatena.ne.jp/digitalsoul/20… を読みましょう。DCIはエンドユーザのメンタルモデルを実装に落とし込むための設計パラダイムです— Naoto Takai (@takai) December 27, 2012 とのことなので、このスライドを参考にするのはやめてください。 元記事 会社で DCI の話をしました。 資料はこちらです。 いろんな人から全然便利そうじゃないと評判でした。俺の伝え方が悪い……

    DCI の話をした - 鳩舎
  • DCI を考える - 鳩舎

    追記 まじで鳩さんのスライドでDCIについて理解したつもりになるの危険だからやめた方がいいです。せめて d.hatena.ne.jp/digitalsoul/20… を読みましょう。DCIはエンドユーザのメンタルモデルを実装に落とし込むための設計パラダイムです— Naoto Takai (@takai) December 27, 2012 ということで、以下の内容はすべて間違いである可能性が高いです。 元記事 Data - Context - Interaction いわゆる DCI が最近の人気らしい。 DCI そのものの説明をこのエントリでする気はないので、 Sapporo Ruby Kaigi の角谷さんのプレゼンなどを見るとよい。 Rails の場合、 Data はまぁ ActiveRecord / Mongoid などのいわゆる MVC におけるモデル、であっていると思う。これに

    DCI を考える - 鳩舎
  • 転職した - 鳩舎

    こんばんは、みなさんお忘れでしょうが、ニコニコ大会議 in 台湾にてエンジニア代表で登壇して喋ったりしてました、青い頭の男、ロージーです。 ということで 10/31 付でドワンゴの子会社である株式会社キテラスをやめて、11/1 付でクックパッド株式会社に転職しました。 まぁもうちょっと言い方を変えると、ニコニコの人からレシピの人になりました。 転職の理由 確固たる大きな理由というのはまだ整理がついてない。細かい理由ならいくらでもあるけど、自らの中で何が一番大きなものであったかについては上手に説明出来ないです。 まぁ、俺はアレルギーがひどくてえないものが多く、そういう意味でについてエンジニアリングの観点からアプローチ出来る場というのは理想的ではあった。とかそういうのもある。 個別で興味がある人は連絡ください。答えます。 キテラスについて 掛け値なしにいい会社だった。一切の不満はない。

    転職した - 鳩舎
  • 僕がタスクを整理するときに使う、3つのポイント - 鳩舎

    働いてますか。労働はご褒美です。どうも、ロージーです。 案外放っておくとタスクがどんどん溜まったりするし、何よりプロジェクトの走り始めの時期とか、洗いだしたらすごい大量のタスクが山積みになって「うげげ」って気分になりますよね。 基的にはエンジニア向けの話なのですが、まぁタスクを Trac で管理したり Redmine で管理したりすると、基的にマイルストーンとプライオリティぐらいしか「なにからやるべきか」という指標にならなくて、どうしたものか悩んでしまいます。 その日の朝に棚卸して選定すべきなんですが、まぁそういうときに使う、こんな評価軸もあるんだよ、ということで、僕自身の備忘録です。 1. 4つの『空気感』 まず、タスクを積んだ時点、いわば「これやらなきゃな」とした時点での、そのタスクに対する自分の空気感をラベル分けします。 カンタン フツウ ムズカシイ ダルイ 上の4つです。カンタ

    僕がタスクを整理するときに使う、3つのポイント - 鳩舎
  • Lightweight git hook management tool その名も git-hook を作りました - 鳩舎

    どうもこんにちは。フックしてますか。ジャブからローにつなげてますか。 そんなこんなで最近は僕もそこそこ git に慣れてきて助けてもらわなくても良くなって来ました。 しかし人間の欲望はとどまるところをしらず、「なんか定形作業めんどくせーなだるいしなんかうまいことどうにかなれよ面倒くせぇ」とか考え始めるものです。たとえば「テスト通ってないコードコミットするなってリーダーがいうけどいちいち手でテスト走らせて確認すんのだるいからなんかうまいこと自動で動かんかな」とか。 git は大変よくできたツールですので、そういうのもちゃんと用意されています。hooks といって、コミットのタイミングなどで特定のシェルスクリプトなりなんなりを動かすことが出来るよう配慮されているのです。すげーな git 。 しかしこいつがマジめんどくさい。自分でシェルスクリプト書くとか絶対嫌だし、すでにそのへんに転がってるのを

    Lightweight git hook management tool その名も git-hook を作りました - 鳩舎
  • 僕が社内ライブラリを OSS 化すべきだと思う3つの理由 - 鳩舎

    こんばんは、台風がヤバいですね。 こんな風に命の危険がそこそこあるときは、なんとなく人生について考えてしまいます。私はどこからやってきて、どこへ消えてゆくのか…… そんなことを考えていた折に、「社内ライブラリって OSS にしてしまうべきだよなー」と、ふと思ったので、考えていることをメモしておこうとおもいます。 「社内ライブラリ」 とりあえずこの社内ライブラリの前提を並べると 1つまたは複数のプロジェクトが参照しているライブラリである 製品的なビジネスロジックを内包しておらず、汎用的で、利用されているプロジェクトと密結合でない バージョン管理されている の3点は満たしておく必要があります。例えばニコニコ動画を OSS にするのはちょっとアレですし、課金部分を OSS にするなんてもってのほかだなーと思います。 そんなプロジェクトがあなたの会社にあるかないかはわかりませんが、いわゆる「この言

  • git-助けてというすごく便利なエイリアスを作った - 鳩舎

    こんばんは!暑い! ということで今日はgitのすごく便利なエイリアスを作りました。 Git-助けて https://github.com/rosylilly/git-tasukete という、超便利コマンド集です。 使い方はホームディレクトリあたりにクローンしてきて、パスを通しておくだけです。 するとあら不思議、ターミナルに $ git 助けて と打つだけで、助かりたい時の場合がリストで出てきます。 後はそのうち、目的の状況のモノをターミナルにコピペするだけです。ほらね $ git mergeを取り消したい はい、マージが取り消せました。よかったよかったー! こんな困った場合にも対応してください!というのはGitHubのissueか、コメント欄にて受け付けてます!

    git-助けてというすごく便利なエイリアスを作った - 鳩舎
  • RSpecでテスト書きながらRailsのプラグインを開発する - 鳩舎

    こんにちは。Railsのプラグインが作りたいです。 ということでRailsプラグインの作り方を調べていたのですが、id:sora_hから $ rails plugin new plugin_name でひな形出来るよと聞いて喜びいさんでやってみたらテストがTest::Unitで出来ていた時の僕の絶望は筆舌に尽くし難かったです。 ということでRSpecでテストしたかった。ついでにいうとRailsでRSpec使うときみたいにしたかった。 んでソース見てみたんですがなんかやりにくそうだし嫌だなぁと思ってたんですが、案外さっぱりできました。 ようするにダミーのRailsアプリケーションを作ってそいつは開発中のgemを読み込んでダミーRailsアプリに向かってテストすればいいだけです。 ちょっともう眠いのであんまり長くまとめられませんが、だいたいどうすればいいかはGitのログを見るとわかると思います

    RSpecでテスト書きながらRailsのプラグインを開発する - 鳩舎