タグ

ブックマーク / r7kamura.hatenablog.com (20)

  • シリーズ判定最前線 - ✘╹◡╹✘

    10 日ほど前から amakan books の再設計に着手しており、最近ようやく実装を終えた。いまデータ移行処理を実行している最中で、20時間ぐらい掛かるのでゆっくり待ちながらこの記事を書いている。変更理由についておさらいするという意味も含めて、変更内容と意思決定の背景について書き記しておく。 テーブルの変更 旧 DB スキーマ では以下のようなテーブル群を利用していた。 amazon_product_link amazon_product_responses author_product_list_memberships author_product_memberships authors evaluations product_links product_lists products 新 DB スキーマ では以下のようなテーブル群を利用するようになった。 book_authors b

    シリーズ判定最前線 - ✘╹◡╹✘
    d14a
    d14a 2017/03/30
  • Ruby 製の DMM Web サービス用のライブラリをつくりはじめた - ✘╹◡╹✘

    DMM Web サービスとは https://affiliate.dmm.com/api/ に公式の情報があります。下手な説明はできないので、こちらを読んでください。 ホスティング 今回つくりはじめたライブラリ rdmm のソースコードは、GitHub にホスティングされています。最低限の使い方も README に(自分が忘れたときに思い出せる程度には)記述してあります。 https://github.com/r7kamura/rdmm 利用時は rubygems.org から Gem として取得できます。執筆時点でのバージョンは 0.0.3。 https://rubygems.org/gems/rdmm rdmm の機能 現時点では以下の2つのエンドポイントに対応しています。 商品情報検索 API シリーズ検索 API 商品情報検索 API は、名前の通り DMM の扱っている商品を検索

    Ruby 製の DMM Web サービス用のライブラリをつくりはじめた - ✘╹◡╹✘
    d14a
    d14a 2017/02/20
  • Amazon Product Advertising API 用のクライアントライブラリをつくっている - ✘╹◡╹✘

    Amazon Product Advertising API とは Product Advertising API は、Amazon の商品情報や関連コンテンツをプログラムを通してアクセスできるサービスを提供することで、Web 開発者の皆様が、ご自分の Web サイトでAmazon の商品を紹介することによる紹介料の獲得を可能とします。 https://affiliate.amazon.co.jp/gp/advertising/api/detail/main.html 要は、Amazon のアソシエイトを使って商品を宣伝する目的で、Amazon の商品情報を API 経由で操作することができるサービスが提供されている。この記事は、この APIRuby から利用するためのライブラリをつくっているという話。 GitHub ソースコードは GitHub で管理されている。ライブラリの AP

    Amazon Product Advertising API 用のクライアントライブラリをつくっている - ✘╹◡╹✘
    d14a
    d14a 2017/02/20
  • Ruby on Rails on React on SSR on SPA - ✘╹◡╹✘

    amakan での設計を例に、RailsでSingle-Page Applicationをつくるときの自分のやり方をまとめてみます。 GemJavaScriptで書かれたReactのコンポーネントからHTMLを生成する」というのをRubyでやるために、RubyのV8エンジン実装であるmini_racerというGemを使う。この処理を楽に実行するために、react_on_railsというGemも使う。 gem "mini_racer" gem "react_on_rails" View body要素内のHTMLは全てReactで生成するので、layout以外にviewのテンプレートは存在しない。 Controller 初回リクエストの場合はHTMLを返す ページ遷移時に呼ばれるリクエストの場合はJSONを返す 外部サイトからブラウザバックで戻ってきたときにJSONを見せない という要求に

    Ruby on Rails on React on SSR on SPA - ✘╹◡╹✘
    d14a
    d14a 2016/10/14
  • 全てがJSONになる - ✘╹◡╹✘

    TL;DR JSON Schemaを使ってこういうことが実現可能になった。 ダミーAPIサーバの提供 ドキュメントの自動生成 APIクライアントの動的定義 APIサーバのバリデータの動的定義 APIサーバのレスポンスの自動テスト JSON Schemaとは JSON SchemaというのはあるJSONのデータ構造を記述するための方法および書式の仕様で、 JSON SchemaもJSONで記述される。 これを利用すれば、リソースベースの(=RESTfulライクな)APIの仕様が簡便に記述できる。 例えば、我々のAPIレシピとユーザというリソースを扱っていて、 それぞれCRUDのAPIを備えており、レシピはidとtitleとdescriptionという属性を持つ、 という旨をJSON Schemaで表現できる。 なんで最近ちょっと流行ってんの Mobile First、 Service Or

    全てがJSONになる - ✘╹◡╹✘
    d14a
    d14a 2014/06/10
  • HerokuのつくってるAPI関係の便利なやつ - ✘╹◡╹✘

    JSON Schema for the Heroku Platform APIでも紹介されているように、HerokuAPIはJSON schemaで記述されたAPIの仕様を返すようなAPIがあって(ややこしい)、Auto-generating a Go API client for Herokuのようにこれを利用してAPIクライアントを自動生成するようなこともやってる(単なるアート作品じゃなくて実際に運用されているので偉い)。Herokuが出してるAPI関連作品の1つにcommittieというのがあって、JSON schemaを利用してAPIの仕様を定義して、それをRack middlewareで利用しようというもの。前に試しに似たようなのつくってたので良いのが出てきて良かった。 Committieは大きく分けて3種類の機能を提供していて、1つは番環境で普通に使うやつで、リクエストをv

    HerokuのつくってるAPI関係の便利なやつ - ✘╹◡╹✘
    d14a
    d14a 2014/06/05
  • APIクライアントを自動生成するやつ - ✘╹◡╹✘

    Heroicsという、JSON Schemaを元にAPIクライアントのコードを自動生成するやつを見た。 Heroicsにはbin/heroics-generateというコマンドラインツールが付いていて、JSON Schemaを解析したあと、 client.erbというERBのテンプレートに解析結果のオブジェクトを渡した結果、client.rbという雑なファイルを生成する。 $ gem install heroics $ heroics-generate SuperAwesomeClient schema.json https://api.example.com > client.rb Heroicsから生成されるもの JSON Schemaからこんな感じで使えるやつを生成してくれる。 # client.rb client = SuperAwesomeClient.connect(api_k

    APIクライアントを自動生成するやつ - ✘╹◡╹✘
    d14a
    d14a 2014/06/05
  • 前進してる感 - ✘╹◡╹✘

    「目で見て手で触って 自分が何やってるのかちゃんとわかることを仕事にしたいと思ったんだ 弁当屋は作って買ってもらってべてもらうっていうのが すごいシンプルで具体的でしょ それが楽しいんだ お給料安いけど気分はいいよ」(『にこたま』1巻94頁 著者:渡辺ペコ) さっき読んだ漫画で、登場人物がこういう台詞を言う場面があった。人間が働く理由については疑問が沢山ある。これについては自分のことすら分からない。たまたまある方面に適性があって、学ぶ機会があって、経済的な事情に合致した、その結果に過ぎないという風に考えることもできる。この方面に興味を持ったことすら、周囲の環境がたまたまそうであったからかもしれない。 誰かが決定論という言葉を教えてくれたけど、その言葉を知ったこと自体にあまり意味はなかった。ただ、強く信じられる確かなものが欲しいという欲求があることは分かった。自分が何をやっているのか分かる

    前進してる感 - ✘╹◡╹✘
    d14a
    d14a 2014/03/23
    “これがもし、何かよく分かんないけどガチャガチャ連打してたら勝っちゃったみたいな感じだったら、こういう楽しさを覚えることは決してなかった。”
  • DSL兵器 - ✘╹◡╹✘

    何か着想が得られると嬉しいと思いながら今日はRubyKaigiに参加した。B会場では、生命と称して発光した球体達が最後の1体になるまで殺し合い、Rubyは浮力を得て空を飛ぶ。RailsからDSLで敵国に爆弾落とされたらヤバいだろう。機械同士が会話している様をもっと観たい。近年、女の子同士が会話しているのを眺めてlikeを付ける作品が多い。ある意味機械同士が会話しているのを観測しているだけなのかもしれない。機械同士の機械トークを眺めるのも良いし、これが物理的に世界に影響を与えているともっと面白い。女の子同士が会話することで世界の在り方が変容していくのも良いかもしれない。HTTPを喋る生き物を飼いたい。

    DSL兵器 - ✘╹◡╹✘
    d14a
    d14a 2013/05/31
    cool
  • 自分のコード綺麗って思ってんの? - ✘╹◡╹✘

    guideline.gem https://github.com/r7kamura/guideline 恐怖体験があって、震え上がり、少しでも綺麗なコードが書けるようなGemつくってる。複雑過ぎるメソッドや、使われていないメソッドが定義されていないかとか、長過ぎる行を書いてないかとか、簡単なチェックを自動化できる。こういうコードは綺麗ではないみたいなことがふわっと言われているよりは、綺麗ではないコードというのがコードで表現されている方が安心感があると思った。もしコーディングルールとして文書化したのでみんな守ろうみたいな感じにしても、コードを書くときに常にそれを覚えていなければ意味がないし、常にそういうことを気にしながら、ずっと緊張しながらコードを書かないといけない。そういう風に常に何かに気を配りながら作業するというのは、意識は高いけど、疲れるから極力やりたくないし、そもそも新しくその文化

    自分のコード綺麗って思ってんの? - ✘╹◡╹✘
    d14a
    d14a 2012/12/03
  • client-side javascript - ✘╹◡╹✘

    JavaScriptのすごく初歩的なことでよくわからないので整理する。よくわかってなくてすごい恥ずかしい感じがするけど書いたら誰か何か教えてくれそうだし書く。client-sideのJavaScriptは、未だあまりよく分からずにもやもやしながら適当に書いてる。もやもや感が説明したいけどなかなか説明しづらい。 例 こういうタブをJavaScriptを使って実装する例を考える。タブをクリックすると、そのタブに切り替わるというやつ。 HTML CSS JavaScript Pattern 1 深く考えずに素朴に実装すると、こういう感じになる。clickイベントに与える無名functionの中に全部詰め込む。こういう風に書いてるJSのコードはよく見る。こういうの大量に書くのはすごい簡単だけど大量にこういうのが書かれてたら読むの辛い感じがする。 懸念 例えばこれまでRubyでコードを書いていたとき

    d14a
    d14a 2012/10/18
  • iRemocon - ✘╹◡╹✘

    朝弱すぎる問題のためにiRemoconを購入していたのだけど、届いていたのでさっき開封してとりあえずGemをつくった。PCから照明とエアコンの出力を調整できるようにしてみたけどかなり便利なので、リモコンで操作できる家電をどんどん増やして人類の到達領域を広げたい。 https://github.com/r7kamura/iremocon Glamo 【自宅や外出先から、お使いの家電をコントロールできる学習リモコンの決定版! 】 iRemocon(アイリモコン) IRM-01L 出版社/メーカー: Glamoメディア: エレクトロニクス購入: 1人 クリック: 704回この商品を含むブログ (8件) を見る

    iRemocon - ✘╹◡╹✘
    d14a
    d14a 2012/10/08
  • Test on Rails ✘╹◡╹✘ - ✘╹◡╹✘

    書体: Yanone Kaffeesatz 参考: Rails Test Prescriptions ク社内勉強会で使ったスライドです。 6Fでテストについて今から話すので良かったらどうぞ— 人さん (@r7kamura) 9月 21, 2012 いま @ r7kamura って発言するともれなくクックパッド社のみんながみてる画面に映せます— セコンさん (@hotchpotch) 9月 21, 2012 @r7kamura がんばって!— Naoto Takaiさん (@takai) 9月 21, 2012 @r7kamura うんこ— kentaroさん (@kentaro) 9月 21, 2012 @r7kamura こんどあんちぽさんに説教をお願いしておきます— SHIBATA Hiroshiさん (@hsbt) 9月 21, 2012 @r7kamura ひだまりスケッチは10/

    Test on Rails ✘╹◡╹✘ - ✘╹◡╹✘
    d14a
    d14a 2012/09/22
  • dotcloudでRails動かす - とある技術の備忘録

    Ruby あのmiyagawaさんがJoinしたことで人気の dotcloud.com に、先日つくったMioというRails製アプリを置いてみました。非常に簡単だったので、利用方法も非常に簡単にまとめておきます。 1. dotcloud.com に登録する登録してしばらく(自分は30分くらいでした)すると招待メールが送られてきます。招待に応じて登録すると、API Keyが発行されますので、初めてdotcloudコマンドを動かす時に入力します。 2. Rails製アプリを置く 3. おしまい!お金払わなくて当にいいんでしょうかコレ…。http://mio.r7kamura.dotcloud.com/ツイートする

    d14a
    d14a 2011/06/02
  • 初心者向けGitの使い方のおさらい - ✘╹◡╹✘

    Git初心者向けに、Gitを使ったローカルでのVersion管理方法についての説明を書く。 Install Gitをインストールするには、Gitが内部で利用しているライブラリを入れる必要がある。 curl-devel expat-devel gettext-devel openssl-devel zlib-devel Mac # homebrewから入れる場合(推奨) $ brew install git # GUIから入れる場合(git-osx-installerを利用する) $ open http://git-scm.com/ # macportsから入れる場合 $ sudo port install curl expat gettext openssl zlib $ sudo port install git-core # インストール $ sudo port deactivate

    初心者向けGitの使い方のおさらい - ✘╹◡╹✘
    d14a
    d14a 2011/02/18
  • YahooAPIでキーフレーズ抽出を使う - とある技術の備忘録

    Rubyいま開発中のRailsアプリで「Twitterのつぶやき中から重要そうな単語を抜き出して頻出単語を抽出する」という機能を実装しようとしているのですが、調べてみたところYahooAPIの『キーフレーズ抽出』というAPIが非常に素敵だったのでこれを利用しました。 YahooAPIYahoo!Japanではテキスト解析について以下のようなAPIを提供しています。 日形態素解析 かな漢字変換 ルビ振り 校正支援 日語係り受け解析 キーフレーズ抽出 YahooAPIキーフレーズ抽出キーフレーズ抽出APIは、渡したテキスト中で話題になっている単語を20個まで取り出し、0~100の重要度スコアとともにxmlやjson形式で返してくれる、というものです。 24時間以内で1つのアプリケーションIDにつき50000件のリクエストが上限 1リクエストの最大サイズは100KB YahooAPI in

    d14a
    d14a 2011/02/18
  • 俺でも分かるRakeの使い方 - とある技術の備忘録

    Ruby目次 Rakefileの簡単な書き方 名前空間 - Rakefileが増えてきたら ブロック引数 - D・R・Y! D・R・Y! タスクの動的生成 ありがとう参考先------------------------------------------------------------ Rakeというのはrubyで処理内容を定義できるビルドツール。currentDirectoryのRakefileというタスクを定義したファイルを読み込んで色々タスクを実行してくれます。引数でファイル名を指定できるけど、基的にはRakefileがデフォルトなのでそれに従った方がいいです。 $ rake タスク名> # 指定のタスクを実行。 $ rake パラメータキー>=値> タスク名> # パラメータ指定ありで、指定のタスクを実行。 $ rake -h # 使い方を表示。 $ rake -T # 定

    d14a
    d14a 2011/02/18
  • さくらVPSにGitレポジトリを置く - とある技術の備忘録

    GitさくらVPSでしたかった事のウチの1つが、個人的なプロジェクトや設定ファイルのGitレポジトリ管理です。今日はこれを設定します。Gitのインストールは前のさくらVPS関係の記事を見て済ませておいてくださいね。gitosisとかお洒落で高度なgit管理は、初心者の自分には逆に混乱てし仕組みが分かりにくくなるので導入していません。 ローカルローカルレポジトリ作成。READMEファイルだけ入れたhogeディレクトリをGitでレポジトリ管理します。 $ cd $ mkdir -p workspace/hoge $ cd workspace/hoge $ echo "これはGitのテストプロジェクトだよ!" > README $ git init $ git add . $ git commit -m "最初のコミットですよー" サーバー共用レポジトリ作成。こちら側ではhogeTest.git

    d14a
    d14a 2011/02/18
  • よく使いそうなVimコマンド - とある技術の備忘録

    d14a
    d14a 2011/02/18
  • Mechanize1.00を解説するよ - とある技術の備忘録

    Ruby(!!注意: 未完成)目次 Install Usage--------------------------------------- 友人とMechanizeを使って作業することになったので、拙いながらも解説します。Mechanize1.00ってのはWeb2.0みたいな感じじゃないです。ライブラリのバージョンです。まずは公式のドキュメントに軽く目を通しましょう。概要が書いてありますね。MechanizeはRubyRubygemsライブラリで、これを使えばHTMLベースのWebページへのスクレイピングを行うことができます。Mechanizeを使えば、Webサイトへの操作を自動化できます。 (公式ドキュメントから抜粋) The Mechanize library is used for automating interaction with websites. Mechanize a

  • 1