タグ

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

  • RubyでGPUを使おう - ✘╹◡╹✘

    ※この記事はRuby Advent Calendar jp 2011の28日目の記事です。 27日目 kk_Ataka EvernoteAPIRubyから叩きたい 28日目 r7kamura RubyGPUを使おう (←イマココ) 29日目 Daic_h (予定) こんにちは、r7kamuraです。耳を澄ませば2011年の崩れていく音がしますね。今回は年末用にとっておいた残り少ない意識を使って、RubyGPUを使う方法を紹介しようと思います。 GPU? 皆さんGPUはご存知でしょうか。3Dのゲームとかで綺麗なグラフィックを表示してくれるアレです。FF14とかと抱き合わせでハイエンドPC()に付いてたりするアレです。近頃だとノートPCにも搭載されるようになっていて、MacbookPro等にも搭載されています。*2 GPUを販売している会社はNVIDIAとAMDの二社が有名です。NVI

    ainame
    ainame 2017/08/30
  • amakan new relic 2017-03-19 - ✘╹◡╹✘

    amakan books のDBスキーマを新しく設計するにあたり、性能面で問題となっているところを洗い出す活動を始めた。第三者にとっても何かの参考になるかもしれないと思い、無償版の New Relic で計測した過去24時間のデータのキャプチャを貼ってみることにする。 Overview リクエストの少ない小規模なサービスなので、平均値や中央値で見るとまあそこそこ妥当な結果だと思う。ちなみに Docker, Puma, Rails, MySQL, Redis, t2.micro という感じの構成。DB 設計の歪さから、大量の MySQL のレコードを取得している箇所があり、しかもサボって各レコードごとに Ruby の豪華なクラスのインスタンスを割り当てているので、そこがボトルネックになっているかもしれないなという推測をしている。 Transactions 新刊リストの iCalendar の

    amakan new relic 2017-03-19 - ✘╹◡╹✘
    ainame
    ainame 2017/03/21
  • 石川県の和倉温泉に合宿に行った - ✘╹◡╹✘

    温泉地での開発合宿、通称シバ温泉ソンを敢行した。 予習 和倉温泉のある能登半島はアニメ『花咲くいろは』の舞台となった場所と聞いていたので、前日にTSUTAYAに入会してDVDを全巻借りて観ておいた。 京都駅から和倉温泉駅 サンダーバードに乗って終点まで行くと和倉温泉駅に着きます。最近だと新幹線で金沢まで行けるので、東京からも早い。意外と混んでいるので、デッキで立つ羽目になりたくなければ指定席を取っておいたほうが良い。ネットでJ-WEST会員になって早めに予約しておくと1000円ぐらい安くなります。 和倉温泉駅周辺 駅から温泉街までの数kmはこういう感じで、半島の海沿いにホテルが立ち並んでいる以外は、なんというかこう、土地が余っている。道の脇にいきなり70度の湯が湧き出ていたりする。 鳥 温泉卵を大量に抱えたわくたま君という恐ろしいキャラが居る。公園の奥に行くと海が見える足湯がある。 温泉

    石川県の和倉温泉に合宿に行った - ✘╹◡╹✘
    ainame
    ainame 2017/01/12
  • 汎用絵文字ライブラリ 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 - ✘╹◡╹✘
    ainame
    ainame 2016/10/09
  • ソフトバンクからIIJmioに乗り換えた - ✘╹◡╹✘

    iPhone 7を購入するついでにSIMフリー版を選択し、ついでにソフトバンク回線を解約してIIJmioを契約した。 ソフトバンク利用状況 2009年にiPhone 3GSが発売された頃から、iPhone経由でソフトバンクの回線をずっと利用していた。最近の平均的な月額利用料金は8,200円ぐらい。毎月の通信量は3GB強。以下は8月の利用料金の内訳。まあ高い。 通話料 140円 基料 (ホワイトプラン) 934円 パケットし放題フラット for 4G LTE 5,700円 PCダイレクト 1,000円 S!メール (MMS) 100円 S!ベーシックパック 300円 テザリングオプション 500円 IIJ mio IIJ mioにしたのは、周りの信頼できる人間が利用していたからという感じです。SIM1枚でdocomo回線で月3GBの通信量のプランを選んだので、月額利用料金は税抜きで1,60

    ソフトバンクからIIJmioに乗り換えた - ✘╹◡╹✘
    ainame
    ainame 2016/10/08
    俺も今週末に乗り換えよう
  • 作業用に買った4Kディスプレイが届いた - ✘╹◡╹✘

    43型4Kディスプレイ注文したので決め手を書いとく - ✘╹◡╹✘ で書いてたやつが届いたので、様子を紹介します。はてなブログの貼り付け機能便利ですね。全然文章書かなくても貼り付けていくだけで何かが生成される。 購入したやつ Philips 43型ワイド液晶ディスプレイ (4K対応/IPSパネル/5年間フル保証) BDM4350UC/11 出版社/メーカー: Philips(フィリップス)発売日: 2016/04/15メディア: Personal Computersこの商品を含むブログを見る 他の検討候補 DOSHISHA 43型 4K液晶ディスプレイ D431US 出版社/メーカー: DOSHISHA発売日: 2015/10/20メディア: Personal Computersこの商品を含むブログを見る I-O DATA 40型ワイド液晶ディスプレイ (HDMI端子4K/60Hz・HDC

    作業用に買った4Kディスプレイが届いた - ✘╹◡╹✘
    ainame
    ainame 2016/07/16
    ちょうどおなじやつ欲しくて半年ぐらいWishlist入れたままだったので参考になる。ディスプレイ買う前にこれが乗る机買わなきゃいけない問題確かにある。
  • Tree of Savior 先行体験会&座談会参加レポート - ✘╹◡╹✘

    8月30日に都内某所で行われた Tree of Savior の先行体験会&座談会に参加してきたのでレポートを。ネットでさがしても出てこないようなゲーム内の新情報とかはこの記事には書いてなくて、主にイベントでどう感じたかについて書いてあります。長いので要点だけ先に書いておくとこんな感じ。 あの頃の古き良きMMORPGが最近の技術で再構築されてる 十分楽しめたしかなり期待してる 10月のクローズドβで僕と握手 Tree of Savior is 何 Tree of Saviorは、簡単に言うと2D見下ろし型のMMORPG。Ragnarok Online (以下RO) の生みの親とも言われるキム・ハッキュ氏が独立して立ち上げたIMC Gamesが製作していて、巷でもポストROとしての前評判が高いやつ。IMC Gamesは2006年からグラナド・エスパダも作っているので、この名前を出したほうが分

    Tree of Savior 先行体験会&座談会参加レポート - ✘╹◡╹✘
    ainame
    ainame 2015/08/31
  • 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のトップページのフィードの設計 - ✘╹◡╹✘
    ainame
    ainame 2015/08/24
  • Amazon Lambdaにまとめてアップロードするやつ - ✘╹◡╹✘

    https://github.com/r7kamura/api-gateway-lambda-example Amazon API GatewayAmazon Lambdaを一緒に管理できるようなツールをつくろうとしてて、とりあえずサンプルアプリをつくりながら徐々にツールに切り出していこうという方針でやってみている。 . |-- README.md |-- functions | |-- function1 | | |-- package.json | | `-- src | | `-- index.js | `-- function2 | |-- package.json | `-- src | `-- index.js |-- gulpfile.js `-- package.json サンプルアプリは手短に言うと上のようなファイル構成になっていて、作成したいAmazon Lambda

    Amazon Lambdaにまとめてアップロードするやつ - ✘╹◡╹✘
    ainame
    ainame 2015/08/04
  • 世界線を超える - ✘╹◡╹✘

    開発環境のRailsは、監視対象のファイルが更新されるたびに定数空間を再生成する。ファイルを更新するたびに新たな世界線に遷移すると言っても良い。全ての定数が再読込される訳ではなく、Rails.configuration.autoload_paths に登録され、autoload経由で読み込まれた定数のみが対象になる。このとき、監視対象外の空間から、監視対象の定数を参照していたらどうなるか。例えばlibディレクトリをautoload_pathsに登録していたとして、libディレクトリ内で読み込まれるrack middlewareをRailsのrack middleware stackに追加していたらどうなるのだろうか。 2つの世界 現在の世界で同名の定数が新しく読み込まれようとしたとき、運が良ければ、この現象を検知する仕組みが働いて例外が発生する。しかし運が悪ければ、2つの同名の定数が同じ世

    世界線を超える - ✘╹◡╹✘
    ainame
    ainame 2014/10/02
    autoload便利だけど悩まされる
  • ビール - ✘╹◡╹✘

    ainame
    ainame 2014/10/01
    その辺りのビール🍻全部美味い
  • ストリーム表現とその変換 - ✘╹◡╹✘

    データをストリームとして表現する方法と、ストリームを変換する方法を紹介する。 ストリームはメッセージが流れる川である Pub/Subメッセージングモデルでメッセージを流すためのオブジェクトのことをストリームと呼ぶことにする。ストリームにはメッセージをPublishでき、またメッセージを受け取ったときの処理をSubscribeできる。例えばキーボードからの入力をPublishして、内容をコンソールに出力するような処理をSubscribeできる。 kamo.jsでストリームを表現する ストリームについて説明するために、kamo.jsというストリームを表現するためのライブラリをつくった。kamo.jsは、ストリームを作成するためのkamo.Streamというコンストラクタ関数を提供する。このコンストラクタ関数から作成されたオブジェクトは、publishとsubscribeというメソッド(※プロパ

    ストリーム表現とその変換 - ✘╹◡╹✘
    ainame
    ainame 2014/08/22
    鴨川
  • 全てが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になる - ✘╹◡╹✘
    ainame
    ainame 2014/06/10
  • 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 - ✘╹◡╹✘
    ainame
    ainame 2014/05/31
  • XMPP界 - ✘╹◡╹✘

    XrcというRubyのXMPPクライアントライブラリをつくったので、XMPP界の知見を共有します。 WHY RubotyというBOT開発用のフレームワークを最近つくっていて、 これをSlackというチャットサービスで利用していた。 SlackにはXMPP GatewayIRC Gatewayが用意されており、 どちらかのプロトコルを利用すればBOTとして動作するにはひとまず十分だった。 Rubyで一般的なIRCライブラリと言えばnet-ircだけど、 自分でZirconというIRCクライアント用ライブラリを作って、 ruboty-slackでは最初はこれを使ってた。 IRCは雑に全部屋に適当にJOINしてくれたりするのでBOTとして運用するにはわりと楽だったんだけど、 メッセージに改行を簡単に含められないというところが気に入らなくてXMPPを検討することにした。 改行が含められないとどう

    XMPP界 - ✘╹◡╹✘
    ainame
    ainame 2014/05/14
  • Railsアプリつくった - ✘╹◡╹✘

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

    Railsアプリつくった - ✘╹◡╹✘
    ainame
    ainame 2014/04/06
    4/6 API納品
  • (╯°□°)╯︵ ┻━┻ - ✘╹◡╹✘

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

    (╯°□°)╯︵ ┻━┻ - ✘╹◡╹✘
    ainame
    ainame 2014/02/26
    ちゃぶ台返し流行ってる
  • 全自動モヒカンさん - ✘╹◡╹✘

    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

  • ハロウィンなのでHTMLをぶるぶる震わせてみました - ✘╹◡╹✘

    使い方 ぶるぶる震える ↑このリンクをブックマークに登録して使ってください 説明 適当なJavaScript製のHTML-Lintを実行して、検知されたHTML要素をCSSでぶるぶる震わせます。 チャットで雑談してたら急に震わせたくなって10分ぐらいで作ったのでだいぶ雑です。 実装 jQuery + jRumble + curtisj44/HTML-Lint https://gist.github.com/r7kamura/bc1577d4410891ade243 誰かJavaScript製のかっこいいHTML-Lintつくってください Webサイトつくってる人は開発環境に入れておくと便利かもしれません

    ハロウィンなのでHTMLをぶるぶる震わせてみました - ✘╹◡╹✘
    ainame
    ainame 2013/10/31
    便利
  • Go言語のテスト用ライブラリとGospel - ✘╹◡╹✘

    先週初めてGo言語を触る機会があったので、テストの書き方を調べた。 要約すると、標準ライブラリのtestingが好きになれず他に調べても気に入ったものが見付からなかったので自分でつくった。 testing Go言語にはtestingという標準ライブラリが用意されていて、 「go test」コマンドを実行すると「*_test.go」という名前のテスト用ファイルがそれぞれ実行される。 具体的には、そのファイル内で定義されたTest*という名前のテスト用関数がそれぞれ実行されるようになっている。 公式サイトの例ではこういうコードが紹介されていた。 type doubleTest struct { in, out int } var doubleTests = []doubleTest{ doubleTest{1, 2}, doubleTest{2, 4}, doubleTest{-5, -10}

    ainame
    ainame 2013/10/06