読者です 読者をやめる 読者になる 読者になる

まっしろけっけ

めもてきなやーつ

Rubyエンジニアが語る、2016年の振り返りとこれからに登壇して来たよ

株式会社 Speee さんと自分が勤めるペパボが共同で開催した下記のイベントに登壇して来ました。speee.connpass.com 経緯 経緯としては、CTL になったし喋らない?って声をかけられたからなのですが、 個人的に昨年のアウトプットが圧倒的に少ないこと、 その…

2016 年振り返り

はじめに 約 4 ヶ月ぶりのブログ... 今回は 2016 年の振り返りをしてみようと思います。 お仕事 シニアエンジニアになったり、テクニカルリードになったりした。 ペパボに入社した時から 1 年以内にシニアになると決めてたのでなれてよかったね。技術的な話…

ペパボに転職して 1 年経ってた

はじめに 転職から 1 年経っていたのでペパボに入って何してたとか、 思ったことを書いていく。転職した経緯は下の記事に書いてあります。shiro-16.hatenablog.com なにしてたの? EC で 2 ヶ月だけカートの開発してた minne で API 開発することになった 検…

MySQL の binlog について調べたメモ

MySQL の binlog について 実際に実行された更新系クエリの情報が記述されていてなんらかの理由によりデータが壊れた際の データ復旧とかにも役にたつ。binlog の format には以下の 3 種類ある フォーマットの種類 設定値(文字列) 設定値(数字) 備考 ステー…

Ruby と Google Cloud Platform の Cloud Vision API で画像を解析して貰う

Vision API is 何? 画像のさまざまな情報を解析してくれる API です。物体検知、有害コンテンツ検知、ロゴ検知、ランドマーク検知、OCR、顔検知、色検知等を行ってくれる。料金は下記に詳細が書いてありますが 1000 ユニット / 月 は無料で利用出来るので、…

Elasticsearch の勉強会を社内で行なった話

最近圧倒的インプットによって、圧倒的にアウトプットが減っている僕です。 ということでリハビリがてら 4 月の初めに Elasticsearch の勉強会を社内でやったのでそのことについて書いてみます。 そこまで技術的に深い話はないので期待しないでください。 勉…

WEB+DB PRESS Vol.92 「Web開発新人研修」の一部を書きました。

久しぶりのブログです。 4 月なのに 2016 年初ブログです。 本題 4 月 23 日発売の WEB+DB PRESS Vol.92 内の特集の一つである「Web開発新人研修」をペパボのエンジニアで寄稿させていただきました。 献本を頂いたのでざっくりと説明をしていこうと思います…

STF を使ってブラウザ上から Android をいじってみた

STF is 何 ? STF | Smartphone Test FarmCyberAgent 社がオープンソースとして公開しているブラウザ上から Android を操作できるようになるやつ。 ブラウザ上から apk を install させたりもたしかできたはず Android は様々な端末があり、 端末ごとに動作が…

Sidekiq の queue を眺める際に使用するコマンドを雑にまとめる

はじめに 前回書いたこの記事を書く際に実際に積まれている queue をあれこれ見ていたのですが、 その際に使ったコマンドを忘れそうだったのでまとめておく。 めんどくさくてまとめなかったわけでは…shiro-16.hatenablog.com redis-cli まずは基本的なこと r…

Sidekiq について基本と1年半運用してのあれこれ

はじめに 実際に運用していた時に非同期にしていた主な処理は下記のようなものがあります。 iOS Android の push 通知の送信処理 ログの作成 様々な外部 API の呼び出し 非同期で更新しても問題ないデータの更新 Sidekiq is なに sidekiqは非同期処理を実現…

表参道.rb #5 にてLTしてきた

表参道.rb is omotesandorb.connpass.comおしゃれな感じのする地域Rubyコミュニティ 人気らしく毎回すぐに枠が埋まっているらしい、 今回は会場が会社から徒歩で行けたことと先月の途中から勤務時間が変更になって 勉強会に参加しやすくなった(会社的には勉…

Rails Girls Tokyo 5thでコーチとスポンサーLTしてきたよっていう話

Rails Girls is 何 railsgirls.comここら辺に書いてあります。 何故やってるかは下記あたりが参考になるかとRails Girls: Not Only for Girls - RubyKaigi 2014 日本RailsGirls活動紹介 // Speaker Deck Girlsという名前が付いてますが、女性同伴なら男性も…

RubyでStyleStatsをつくった

StyleStats is 何? StyleStatsの説明は下記をご覧いただくのが一番早いかと思います。自分の書いたコードが即座に解析できる「StyleStats」でCSSを測ろう!html5experts.jp簡単に言うと@t32kさんが作ったCSSを解析するツールです。 先週のYAPC::Asia Tokyo …

golangのフレームワークrevelを使用して掲示板っぽいものを作ってみる

はじめに 今回は golang の revel framework を使用して掲示板っぽいやつを作ってみる。 掲示板っぽいと言っても基本的には API で Json を返すことにする。 しかし html を返す場合もやることはほぼ変わらない。今回作成する API は一般的な掲示板でいうス…

GMOペパボに入社しました

はじめに タイトルの通りGMOペパボに入社しました。 7月1日から働き始めてるので実際には約10日程たってます。 なんで転職したかとか周りの人にあまり説明+お知らせをしていないので それ用の記事と現在の自分の考えをメモっておくように記事を書いてます。…

PHPでmemcachedに保存されたセッション情報をRubyで扱う

経緯 PHPで作成されたシステムで発行されたsession idを元に Rubyからそのセッションに格納されている情報を知りたいかもしれないという状況が あるかもしれない。 無事社会復帰を果たした会社で話題になったので調べてみた。 前々職の際にPHPとmemcachedに…

技術書をまとめ買いしたよ

ネタがあまりないので雑談 なぜか2週間くらい暇になり、 なぜか会社でRubyを教えたm君にAmazonギフト券を貰ったので 3冊ほどまとめ買いしたものと最近読んだ1冊をまとめておく。 本当はkindleのセールの際に買おうと思ったのだがセールが終わってしまい買え…

golangのフレームワークkochaを使ってみた その2

golangのフレームワークkochaを使ってみた その1 - まっしろけっけshiro-16.hatenablog.com こちらの続き modelを作成する 今回はmysqlを使用します。 今回作成したtableは下記です。 CREATE TABLE `user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name…

golangのフレームワークkochaを使ってみた その1

経緯 golangを学習し始めて2週間〜3週間くらい、 ちょっとわかってきたので そろそろフレームワーク使ってみたいなと思い調べ始めた。 ちなみにgolangの学習は下記のページや書籍などA Tour of Go web上でさくっと出来るEffective Go — プログラミング言語 G…

画像の色解析を行うrmagick-image_colorsというgemを作った

経緯 色を扱うColorCodeというgemを作った - まっしろけっけshiro-16.hatenablog.comこちら経緯にもある通りデザイナーさんに言われたことを実現するため。rmagickというgemがあるのでそれの拡張的な感じで書ければいいなー と思い設計してみた。 概要 rmagi…

色を扱うColorCodeというgemを作った

経緯 デザイナーさんに「こんなことやりたいんですけど・・?できます・・?」と聞かれ ちょっと調べたら出来そうだったので「出来そうですよ!」と返事したらやることになった。実装方法を考えてたら今回作成したようなロジックを思いつき gemとして作れば…

初心者じゃなくても役に立つかもしれないRailsのroutingの記述方をまとめてみた

まとめようと思った経緯 Railsのネストしたrouting書く時に毎回調べてる気がするから自分のブログにまとめておきたい— shiro16 (@shiro166) January 5, 2015 まとめてあるブログもいくつかあるけど結局自分で書いた文章が一番分かりやすいっていうあたり前の…

Kibanaを3から4にしてみた

環境 環境は下記記事参照Fluentd + Elasticsearch +Kibanaを導入したので手順をメモ - まっしろけっけ fluentd + elasticsearch + kibanaを導入したので手順をメモ - まっしろけっけKibana3でしたがkibana4がリリースされたのでKibanaを4にしてみた。 事前情…

Rubyはじめて1年間+αで読んだ書籍や参考にしたサイト等

よくあるタイトルの記事 Rubyを仕事で使いはじめてやっと1年たったのでまとめてみる 書こうと思って数ヶ月経ってしまったので現在は経験1年半くらいRubyをお仕事で使う以前のお話は下記参照 PHP書いてたけどRuby書くことになって1年間でやったことてきな - …

fluent-plugin-record-reformerを使ってhostnameを追加してみた

以前下記の記事でFluentd + Elasticsearch + kibanaを導入して リアルタイムログ解析を行う方法をメモったその後。実際に導入してみるとhostnameが無いと結局調査を行うには どのhostに入って詳細な調査をすれば良いか分からないから片っ端から入ってみるみ…

gemのwheneverを導入してみた

wheneverとは? javan/whenever · GitHub 簡単に説明するとRubyのコードでcrontabの管理が出来るライブラリです。 導入以前 whenever導入前はbatchを実行するserverに入って「crontab -e」とかで編集する crontabメンテナンスおじさんが存在していた。 問題…

Ruby2.2.0のインストールがlibffi.a: could not read symbols: Bad valueで失敗した件

Ruby 2.2.0 Released素晴らしいクリスマスプレゼント!! twitter見ている感じだと開発者の皆さんは大変だったようでお疲れ様でした+ありがとうございます。 Let's Install install Rubyのversion管理はrbenv使ってます。rbenvでrubyのversion管理をするよ -…

初心者は役立つかもしれないRuby(Rails)のmethod名に「?」がつくmethodのまとめ

まとめようと思った経緯 題名の通りRuby(Rails)にはmethod名に「?」がつくmethodが多く存在します。 「空文字の場合はtrue/falseどっち返すんだっけ?」ってなってconsole等で確認することが良くあるので、 (自分が)よく使うものを一覧でまとめておいてみる …

PHP書いてたけどRuby書くことになって1年間でやったことてきな

久しぶりに雑談っぽい記事 よくあるようなタイトルでブログを書いてみる(実は4ヶ月前から下書きとして放置温めていた訳では・・・) Rubyをお仕事で使い始めて(ほぼ未経験の状態から)1年以上(1年4ヶ月くらい)たったので Rubyを使い始めて1年でやったこととか…

Fluentd + Elasticsearch +Kibanaを導入したので手順をメモ

導入経緯 「serverのログ見るときに複数のserverにsshで入って見るのとかつらめ」 という理由からリアルタイムで集められたら幸せになれるのではと考え、 fluentdを使ってみようとい結論に至った訳です。 なぜfluentdにしたのか 他にもflume(良く知らない)と…

ActiveRecordでデータを更新後に任意のカラムのデータが更新されたかを知る方法

ActiveRecordで更新後に更新前の値を取得する - まっしろけっけ ActiveRecordで更新後に更新前の値を取得する - まっしろけっけ以前上記のブログで紹介した内容なのですが、 カラムのデータが更新される前の値が知りたいのではなく、 カラムが更新されたかを…

sidekiqを2から3にupgradeしたときにしたこと

最近rails applicationで使用しているsidekiqを2から3にupgradeしたのでその際にやったことをメモ Gemfile更新 まずGemfileを変更します。 Capistranoでのdeployを行っているのでcapistrano-sidekiqも追加します。 ※version指定はそれぞれの方針で行ってくだ…

Genymotionでunable to connect to your virtual deviceというエラーで起動しない時の対処

Genymotionは高速なAndroidのエミュレータのことです。 今回は起動時に「unable to connect to your virtual device!・・・」というエラーが発生したので インストールから解決方法までをメモしていきます。 インストール方法 Genymotionこちらからダウンロ…

Rails3から4へUpgradeしたお話

今回はお仕事で開発をしているweb applicationで使用しているRuby on Railsのversionを 3.2から4.1へUpgradeしたお話です。 その際の進め方や遭遇した問題をメモてきにまとめておきます。 Rails3のコードをRails4のコードにconvertする 今回はRubyKaigiでお…

nagareboshiっていうgemをつくったよ

nagareboshiというgemを作成して公開したのでお知らせてきな なにをする為のものか googleのpubsubhubbubを使う為のもの pubsubhubbub is 何? こことかに詳細は書いてありますが、 作成したwebページをgoogleにインデックスさせるには今までsitemap.xmlにUR…

gemのredis-sentinelを導入してみた

今回はRedis Sentinelの構築ではなくこちらのgemの導入に関してです。 Redis sentinelの詳しい説明に関してはこちらのドキュメントを確認ください。 ※今後Redis Sentinelのセットアップ等も書くかも Redis Sentinelとは 簡単に説明するとレプリ構成のredisに…

rubyのversion upをした時の作業内容メモ

rubyを2.0系から2.1系に変更したときのメモ 2.1での変更点確認 とりあえず2.0系から2.1系での変更点を把握しないといけないので こちらで確認してみる。 「Ruby 2.1 では深刻な非互換もなく、速度の向上を含めた多くの改善が行われています。」ってあるので…

はじめてのjenkins

といことで何かと便利なjenkinsを使ってみる インストールから起動まで vagrant と virtual boxを使用しvm上に構築していきます。 リポジトリの追加 $ vagrant ssh $ sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.…

androidで動的にresource idを取得する

あれがあれなので ブログでも書いて様子見下記のコードでR.id.testのresource idが取得出来ます。 getResources().getIdentifier("test", "id", getActivity().getPackageName()); 短いけど今回はこれで終わりー

社内のハッカソンに参加した感想っぽいやつ

初めての雑談というかそんな感じの記事になります。 社内の2泊3日の日程のハッカソンに参加し来ました。 概要 全4コース各コース10人(自分はandroid アプリのコースでした) 各コース参加者は業務で使用している技術以外のコースを選択 ハッカソン1ヶ月前…

ActiveRecordで更新後に更新前の値を取得する

特定のカラムの値が変更された場合のみに 実行したい処理がある場合等に便利です。 class User < ActiveRecord::Base attr_accessible :name, :sex, :birthday def change_name # 何かしらの処理 end end このようなmodelがあり、 下記のコードのような処理…

androidでのHTTP通信でNetworkOnMainThreadExceptionにはまった件

ちょっと前にはまったやーつ ※今回は接続状態の確認等は省きます AndroidManifestを更新 + <uses-permission android:name="android.permission.INTERNET" /> HTTP通信の処理を作成 MainActivityを編集 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.</uses-permission>…

Android SDK Toolsをupdateしたら既存のプロジェクトがエラーに

Android SDK Toolsのupdateがあったのでupdateしてみたら 既存のプロジェクトがエラーになったりで困った。ADTをupdateしてみてって言われた。 updateがないか確認してみる Help > Check for Updates「No Updates were found.」 更新が見つからないって言わ…

はじめてのandroid

最近androidをやっているので 環境設定からハロワアプリまでをメモてきに とりあえずeclipseをインストール 今回開発に使うのはeclipseです。 こちらの「Download the SDK」からDLしてインストール このeclipseには ADT Plugin が最初から入っているので こ…

vagrant shareがすごいらしい

vagrant shareが凄いっていうのを見かけたので 早速使ってみた。 最新版をinstall こちらから1.5.0をDLしてinstallします。 Vagrant Cloudに登録 こちらからアカウントを登録 username + mail address + passwordを入力するだけの簡単な(ry vagrant upして…

はじめてのrails

とりあえずrailsを初めてみたい人向けのやーつ railsをinstall railsは現時点での最新版を使います $ ruby -v ruby 2.0.0p451 #今回のrubyのバージョンはこちら $ gem install rails -v 4.0.3 $ rails new hogeこれで必要なファイル一式が作成されたあとに b…

はじめてのgem作成

gem パッケージの作り方をメモ ファイルの生成 gem_testというパッケージ名のgemを作成 -tオプションでspecファイルも作成 $ bundle gem gem_test -t create gem_test/Gemfile create gem_test/Rakefile create gem_test/LICENSE.txt create gem_test/README…

Berkshelfの続き

こちらの記事の続き 自作のレシピを使用する 前回作成したkitchenを引き続き使用する せっかくなので今回はこちらの以前作成したレシピを使用する。 もちろんchef init chef-solo等で新規に作成を行ってもおk $ cd kitchen $ git clone git://github.com/shi…

chef-client実行時のエラーではまった

既に色々install済みのserverのアプリケーションを入れ替える為に chef-clientした際に下記のようなエラーが出た。 ※mysql-hoge, mysql-testのhoge,testの部分は各versionが入ります。 $ sudo chef-client ================================================…

Berkshelfを使ってみる

Berkshelfを使うことでcookbookをgemっぽく扱うことができる。 berkshelfをinstall $ cd chef-repo $ vi Gemfile + source 'https://rubygems.org' + gem 'berkshelf' $ bundle install これでvendor以下にgemが格納される これでberkshelfのinstallは終わり…