タグ

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

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

    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

    シリーズ判定最前線 - ✘╹◡╹✘
    sue445
    sue445 2017/03/30
    typo発見。「押すといユースうケース」は「押すというユースケースかな」
  • 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 用のクライアントライブラリをつくっている - ✘╹◡╹✘
    sue445
    sue445 2017/02/16
  • amakanをDocker化した感想 - ✘╹◡╹✘

    https://amakan.net/ のこの辺の改善の続き。 amakanをUnicornからPumaに移行した - ✘╹◡╹✘ amakanでyarnを使うようにした - ✘╹◡╹✘ amakanでRuby 2.3.3を使うようにした - ✘╹◡╹✘ amakanを Ruby 2.3.3 から 2.4.0-preview3 に移行した - ✘╹◡╹✘ amakanのフロントエンドを色々改善した - ✘╹◡╹✘ amakanをSidekiqに移行した - ✘╹◡╹✘ amakanの開発環境をDockerに移行した - ✘╹◡╹✘ amakanの番環境をDockerに移行した - ✘╹◡╹✘ CIのビルドに時間が掛かるようになった これはわりとしんどい。CircleCIDockerのバージョンが古く、イメージのキャッシュをしづらいため、毎度新規にイメージをビルドしていることが原因。キャ

    amakanをDocker化した感想 - ✘╹◡╹✘
    sue445
    sue445 2017/01/02
  • 汎用絵文字ライブラリ Somemoji - ✘╹◡╹✘

    ここ最近絵文字で遊んでいて、Somemoji というライブラリをつくったので知見を共有します。 さまざまな絵文字セット 様々なプラットフォームのために、様々な組織が、様々な絵文字セット (絵文字画像の集合) を提供しています。 Apple emojidex EmojiOne Facebook Google HTC LG Microsoft Mozilla Samsung Twitter 大抵の絵文字セットはUnicodeのEmojiの仕様に則って実装されていて、このコードポイントに対応する絵文字画像はこれ、というように互換性があります。Unicode 6.0, Unicode 7.0, Unicode 8.0, ... とバージョンが増えるに従って定義されるEmojiの数も増えていっているので、それぞれの絵文字セットごとに対応具合はまちまちという状況ではあるものの、よく使う主要なものについ

    汎用絵文字ライブラリ Somemoji - ✘╹◡╹✘
    sue445
    sue445 2016/10/11
  • モデルからJSON生成するときこうやってます2016 - ✘╹◡╹✘

    最近RubyReact.jsをよく利用していて、Rubyで扱っている値をJSONとして表現したいケースが増えてきた。こういうのどうやっていますかと人に聞きたいので、自分はこうやっていますよというのを説明のためにまとめておくことにする。 概観 自分の場合、次のような方法で実装することが多い。 JSONとして表現したいオブジェクトをコンストラクタで受け取るクラスを定義する クラスに #as_json を定義して適当なHashを返すようにする Object#to_json が再帰的に #as_json を利用するようにする (ActiveSupportがやってくれる) コード 具体的には、以下のようなクラスをつくっている。これは最近つくっている掲示板での例で、Megaboard::Resources::Comment はコメントのJSON表現のためのクラスである。いわばコメントのJSON表現に

    モデルからJSON生成するときこうやってます2016 - ✘╹◡╹✘
    sue445
    sue445 2016/10/03
  • 急に高まって深夜にiOSアプリつくった - ✘╹◡╹✘

    ※当方iOSアプリ開発経験無し react-native、デモ見たときタップしたら画面上の数が増えるぐらいのアプリしかつくれなさそうという印象だったけど、いま丁度タップして読んだ数が増える程度のアプリつくりたいんで使いたい— 生産職 (@r7kamura) 2016年8月23日 とち狂ってreact-nativeのチュートリアルに沿ってインストールはじめてしまった、死にたい— 生産職 (@r7kamura) 2016年8月23日 殺してくれ 殺してくれ— 生産職 (@r7kamura) 2016年8月23日 アプリ完成した pic.twitter.com/bep81pzWAR— 生産職 (@r7kamura) 2016年8月23日 とりあえずバナナでも表示してみるか— 生産職 (@r7kamura) 2016年8月23日 なるほどなるほど pic.twitter.com/mgLilyL09

    急に高まって深夜にiOSアプリつくった - ✘╹◡╹✘
    sue445
    sue445 2016/08/24
  • amakanでKindle Unlimitedの上位100件を集めた - ✘╹◡╹✘

    近年、Kindle Unlimited の日上陸により、我々の進捗はますますダメになっている。理想状態において、無限に漫画を読み続けることができれば、人は進捗を完全に停止させることができる。しかしこの仮定は、如何にして読みたい作品を発見するかという問題に我々を導く。 Kindle Unlimitedで作品を探す方法として、masawadaの日記 では「刊行数が少ない出版社順にタブを開く」「星4以上の書籍に限定する」「あとはがんばって全部みる」という手法が紹介されている。id:masawada はこの課題について新たな試みを行ったが、多くの人間はがんばる気概を持ち合わせていない。 先月から開発を始めた amakan.net では、それぞれの作品ごとに、漫画やラノベのシリーズ判定、Kindle Unlimited対応判定、読みたい・読んだの管理を行っている。そこで、このデータを利用して「

    amakanでKindle Unlimitedの上位100件を集めた - ✘╹◡╹✘
    sue445
    sue445 2016/08/06
    参考になる
  • 京都に引っ越した - ✘╹◡╹✘

    こんにちは、卓球ハウスアドベントカレンダー14日目です。前に住んでいた卓球ハウスというシェアハウスが12月で解散するので、先日シュッと京都に引っ越してきました。 シェアハウスは2013年の6月からやっていたので、2年半ぐらい住んでいたことになる。1月ぐらいに2人に声をかけて、そのあと3月ぐらいから住居を探してたので、準備云々を含めると大体3年ぐらい色々やっていた。人や家を探していたときの記憶が色濃く残っていて、振り返るとすぐそこにありそうなくらいつい最近のことのように思える。 3年というと、この辺りではちょうど人材の流れるスピードと同じぐらいで、実際入居してから職場が変わった人のほうが多いくらい。通勤環境が変わったり、身辺に大きな変化があったり、周辺環境に慣れてしまったり、また新しい変化への期待が込み上げてきたりということで、集まったときと同じくらいのノリで、まあ解散してみますかということ

    京都に引っ越した - ✘╹◡╹✘
    sue445
    sue445 2015/12/14
    卓球ハウス解散だと・・・!
  • Qiitaのトップページのフィードの設計 - ✘╹◡╹✘

    @ainame user.articles.preload(:comments, :stocks_count) みたいにstocks_countのようなassociationを生やしており、stocks_countの内部実装はPreloaderが弄られていてIDだけ取ってる— 内製フレームワーク (@r7kamura) 2015, 8月 23 @ainame これを抽象化するために、Article.has_many(:stocks, counter: true) みたいにすると、article.stocksとarticle.stocks_countがほぼ同じSQLで同時に定義されるようになってる— 内製フレームワーク (@r7kamura) 2015, 8月 23 @ainame それを実現している実装がこれです / k0kubun/activerecord-precount https:

    Qiitaのトップページのフィードの設計 - ✘╹◡╹✘
    sue445
    sue445 2015/08/24
    歯を食いしばるの参考になる
  • Serverkitつくった - ✘╹◡╹✘

    ChefやAnsible、Puppet、Itamaeなどの構成管理ツールをあまり使ったことがなく、勉強のためにServerkitというのをつくってみたので、現状こういう感じでやってみましたというのを書き残しておく。作り手の気持ちになればこそわかるものがあるだろうと思う。 ところで去年も似たような記事を書いた。 概要 Serverkitというのは、前述した通りChefやAnsibleのような構成管理ツール。マシンの理想的な状態をレシピと呼ばれるファイルに定義しておき、現在のマシンの状態と比較してその差分を埋めるためのもの。Rubyで書かれていて、手元にversion 2.0.0以上のRubyと、Serverkit、それからServerkitが利用している幾つかのライブラリが入っていれば動作する。Serverkitを動かすマシンと同じマシン、もしくはSSHで接続できるマシンに対して実行できる。

    Serverkitつくった - ✘╹◡╹✘
    sue445
    sue445 2015/04/08
  • 牡蠣Nightやりました - ✘╹◡╹✘

    140個です 炉ばた大将です かきピーです きりんです 焼き牡蠣です 牡蠣メシです 牡蠣スモークです おわりです また次のNightで会いましょう。 牡蠣Night on Zusaar

    牡蠣Nightやりました - ✘╹◡╹✘
    sue445
    sue445 2015/03/08
    牡蠣の隣に柿ピーあるのじわじわくる
  • リモートワークの地味な知見 - ✘╹◡╹✘

    華やかなところはまあググれば出てくるんで、地味なところに触れる。 日報にまとめておく リモートワーク中は、毎朝10:10 - 10:20の間、Google+ ハングアウトのビデオ通話を利用して進捗・問題共有しているんだけど、慣れてないと共有過多で時間が長くなりがち。8人居て、1人5分とかになると重い。いま取り組んでいる実装の話とかを始めてしまったり、あと会議参加者に対して「これどうですかね?」と質問する内容が含まれていたりすると、特に時間が長くなりがち。この辺は、事前にQiita:Teamの日報に前日やったことや翌日やることをまとめておいて、詳しくは日報に書いたんで見てくれという風に改善されたりした。日報、リモートワークで特に役に立つ。では日報を書いておけばミーティングは不要になるのではないかという話になるかもしれないが、この先は君の目で確かめてくれ。 情報の倍率を変えられるようにしておく

    リモートワークの地味な知見 - ✘╹◡╹✘
    sue445
    sue445 2014/12/08
    “この先は君の目で確かめてくれ。”今度から積極的に使っていきたい日本語だ
  • 全自動モヒカンさん - ✘╹◡╹✘

    https://github.com/r7kamura/code_hunter Railsのコードを静的解析して指摘してくれるツールをつくりました。 使い方 Ruby 1.9 があれば使えます。 $ gem install code_hunter $ code_hunter --help Usage: code_hunter [options] --application-path= (default: ./) rails application root path --format= (default: yaml) output format (yaml or json) --no-brakeman (default: false) disable brakeman --no-pendaxes (default: false) disable pendaxes --no-rails-be

  • リゾートワーク - ✘╹◡╹✘

    1週間ほど休みとって沖縄旅行いってきた。 快適な空の旅 同乗者と空港でゆっくり朝ごはんべてたら普通に飛行機もう飛んじゃっててウケた。 ギークハウス沖縄 2日間泊めてもらったり近場の飯屋に連れて行ってもらったりとにかくお世話になった。 台風で落ちてきたココナッツ割ってべた。 屋上の見晴らしが良くて羨ましい。 東京に来る機会があれば卓球ハウスに是非。 レール 那覇空港から首里城付近まで、ゆいレールというモノレールが通っているので初日は主にこれで移動。 700円で24時間のあいだ乗り放題で重宝した。 主要なところしか通っていないのでモノレールだけでは行けないところもあるけど、 特にめっちゃここに行きたいみたいな願望は無くて漠然と沖縄吸いたいという感じだったから、 むしろレールが引いてあって便利だった。 首里城 観光地にしてはそこまで観光色が強くなくて印象が良い。 城壁 城壁好きなので一周出来

    リゾートワーク - ✘╹◡╹✘
    sue445
    sue445 2014/07/18
  • mackerel使ってみた - ✘╹◡╹✘

    20分ほど前にmackerelに登録して、とりあえずuiureoさんの総資産情報をモニタリングしてみました。 Dashboardでserviceとroleを作成して表示されているAPI Keyを得たあと、curlホストuiureoをつくって、総資産をPOSTします。 ホストは POST /api/v0/hosts で作成できます。 curl https://mackerel.io/api/v0/hosts \ -H "X-Api-Key: XXX" \ -H "Content-Type: application/json" \ -d '{"name":"uiureo","meta":{}}' データは POST /api/v0/ で投稿できます。 curl https://mackerel.io/api/v0/tsdb \ -H "X-Api-Key: XXX" \ -H "Conten

    mackerel使ってみた - ✘╹◡╹✘
    sue445
    sue445 2014/06/23
  • 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関係の便利なやつ - ✘╹◡╹✘
  • Ruby + Bot = Ruboty - ✘╹◡╹✘

    https://github.com/r7kamura/ruboty RubotyというRuby製のChatterbotをつくった。 Herokuで動かす Herokuにデプロイすれば無料で動く。 Slackというチャットサービスで動かすならこういう感じ (部屋名とかは適宜変える): $ mkdir mybot $ cd mybot $ echo 'source "https://rubygems.org"' >> Gemfile $ echo 'gem "ruboty"' >> Gemfile $ echo 'gem "ruboty-slack"' >> Gemfile $ echo 'bot: bundle exec ruboty' >> Procfile $ bundle install $ git init $ git add . $ git commit -m "Initial

    Ruby + Bot = Ruboty - ✘╹◡╹✘
    sue445
    sue445 2014/05/31
  • Chronoつくった - ✘╹◡╹✘

    * * * * * T T T T T | | | | `- wday --- 0 .. 6 | | | `--- month -- 1 .. 12 | | `----- day ---- 1 .. 31 | `------- hour --- 0 .. 23 `--------- minute - 0 .. 59 https://github.com/r7kamura/chrono Rubycron形式の構文を利用するために、Chronoというライブラリをつくった。開発動機はRubotyというHubotクローンで利用するためで、チャットからcron形式でジョブを登録することで定期的に発言をしてくれるような機能をつくろうと考えてた (こういうやつ)。 既存のもの clockwork - A clock process to replace cron rufus-scheduler - J

    Chronoつくった - ✘╹◡╹✘
    sue445
    sue445 2014/04/20
  • Railsアプリつくった - ✘╹◡╹✘

    最近APIサーバ用途でRailsアプリを1個つくったので振り返る。 概要 接続元はiOSやAndroidアプリとか、Webブラウザとか、別のWebアプリケーションとか。1ホストあたり秒間数百リクエスト、平均応答時間10msぐらい。Rails 4.1.0.rc2、Unicorn、Nginxを使ってる。正直Railsは全部入りで重いイメージがあったので何となく平均50ms以内程度であれば良いところだろうと思ってたけど、意外と速い。多分そもそもサーバの性能が良いんだと思う。実装時に気を付けたことは普段の開発と特に変わりない。いつもは大勢でワイワイ開発するものに少し手を加えるということが多いんだけど、今回は珍しく自分一人でつくったから目が行き届いてたのかもしれない。DBへの問合せの効率に気を配るとか、Rubyでの処理の無駄を省くとか、アプリケーションのプロセスに無駄なコードを読み込ませないとか、計

    Railsアプリつくった - ✘╹◡╹✘
    sue445
    sue445 2014/04/07
  • (╯°□°)╯︵ ┻━┻ - ✘╹◡╹✘

    JakeWharton/flip-tables flip-tables/build.gradle at master · JakeWharton/flip-tables mperham/sidekiq sidekiq/lib/sidekiq.rb at master · mperham/sidekiq GitHub Search · (╯°□°)╯︵ ┻━┻

    (╯°□°)╯︵ ┻━┻ - ✘╹◡╹✘
    sue445
    sue445 2014/02/26