サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
konboi.hatenablog.com
お題「エンジニア立ち居振舞い」 はじめに エンジニアの立ち居振舞いについての知見を集めていきたい というお題があって面白そうなので乗っかってみる 今回は出来ない時でも代価案を出すについて 代価案を出す エンジニアをやっているとディレクターから 〇〇みたいなのできない? ××使って△△みたいなことやりたいんだけど と依頼を受けることがある。 調べて実現可能なことなら「できますね」と答えられるのだが、公開されているAPIの制限だったりで技術的に困難なことがあることが少なからずある そういう時は 「できないですね」で終わるのでは無く 「〇〇みたいなことはできないですけど、 ♢♢ぐらいならできますよ」 「××を使っては難しいですけど、□□を使ってなら△△は実現できると思います」 と必ず代価案を提示するようにしている。 理由としては 本来実現したい事は質問の内容が全てではない事が多い ディレクターが
iPhone7の発表やRubyKaigiのことでTLが賑わう今日この頃、みなさんいかがお過ごしでしょうか。 自分は新型PS4が気になるところです。 さてみなさん、明日 9月9日は何の日でしょうか? そうですね!! みんなのGo言語 の発売日ですね!! みんなのGo言語[現場で使える実践テクニック] 作者: 松木雅幸,mattn,藤原俊一郎,中島大一,牧大輔,鈴木健太出版社/メーカー: 技術評論社発売日: 2016/09/09メディア: Kindle版この商品を含むブログを見る 著者の1人である @fujiwra さんから発売日より、一足先に頂くことができたので読んだ感想を書かせていただきます。 はじめに 自分は業務のメイン使用言語はPerlで業務で使っているツール類(rmlp, google-play-review-watcher をGoで書いたり、趣味で使うツールも最近はGoメインで書い
はじめに @suzu_v さん VOYAGE GROUP さん会場提供及び、 🍺と🍕の提供ありがとうございました 🍕と🍻 ごちそうさまです🙏 #shibuyago pic.twitter.com/JnHK8nh7RB— こんぼい。 (@Konboi) 2016年3月22日 発表資料 こちら発表資料になります 自分のツールの紹介もしつつ、時期的に新卒氏にも読んで欲しい内容にまとめた感じです さいごに 最初からビール飲みピザ食べれるのはお腹減らなくて良いですね ただ、ビール最初に飲んじゃうと発表時に大分眠くなるという罠w
TL;DR rmlp という redis-cli monitor で出力されたログのプロファイラを作りました redis-cli monitor のログを調べる必要がある時は、使ってみて下さい。 はじめに 時間帯によってはredis serverのcpu使用率が高くなるときがあった アプリのコードレベルでは cache や session をそれぞれ個別に指定できるようになっている それでも分けて負荷が下がる確証もなかったため、 コマンド、keyの利用比率を確認するためredis-cli monitor を実行して調べる事にしました keys ではだめなのか echo keys * | redis-cli > keys.log でkeyがどの程度あるかは調べられますが、実行される頻度が分からないので負荷を見ながら redis-cli monitor で実際に使われているkeyやコマンドを調
はじめに 自分も含めて困っている人が何人かいたのでブログっておく karabinerアップデートしたらkeyrepeatおかしいけど https://t.co/GhFYJdqH3K ここに前のバージョンの設定方法が書いてあった ε-(´∀`*)ホッ— こんぼい。 (@Konboi) 2016, 1月 4 @songmu いっその事ダウングレードしようかと思ったら書いてあった感じですね— こんぼい。 (@Konboi) 2016, 1月 4 Karabiner の keyrepeat 変になったけど、Konboi 氏がツイートしてたの思い出してなんとかなりそうでよかった— tkuchiki (@tkuchiki) 2016, 1月 6 アップデート前までKey Repeat を最小(?) にしていた人は Version 10.15.0 (2015/12/21) の アップデートした事でおかし
はじめに @Konboi ブログお待ちしております— ひさいち (@hisaichi5518) 2016, 1月 5 といわれたので書く 作りました 同僚のエンジニアが App StoreのレビューをSlackに流すbotを作ってて それを使ってみたら なかなかよかった App Store も流し始めたら Google Play のも流し始めたくなった。 App StoreはRSSがあるみたいですが、 Google Play にはないので仕方なくスクレイピングして取るようにした。 Konboi/go-google-play-review-watcher CSSの規則が変わったら動かなくなるが、今のところはいい感じに動いてる
はじめに 企画運営してくれた ペパボ のみなさま 会場提供していただきたCOOKPADのみなさま 本当にありがとうございました。 おかげで非常に楽しめました。 発表資料 こちらになります speakerdeck.com 振り返って 発表自体は良かったと言われたのでよかったと思います。 個人的な反省点としては、ちょっと自分がしゃべりすぎた感があるので2人で発表するときとは分担も考えないとなーという学びがありました。 各会社思考を凝らした研修をしていて非常に勉強になりました。 参考になるところもあれば自分のところでやるにはちょっとやり過ぎかなーとかとか色々考えることがありました。 来年の新卒研修は自分が担当するか分かりませんが、 何のために新卒研修するのか 新卒研修受ける側にはどういう知識を身に付けて欲しいのか というゴールをしっかりと明確にして、ただやるだけの研修にはしたくはないなと改めて思
追記 2018/02/08 go-bindata の作者が GitHub アカウントを削除し、他の誰かが同じ名前のアカウントと go-bindata を作成しました。 現時点では新しいユーザが良い意味でアカウントを作ったという保証はないのでリポジトリを使用している場合は、まず確認する様にしてください。 #golanghttps://t.co/OVtSyI1mWj— コーテルイーナーホー (@mattn_jp) 2018年2月8日 使用時はお気をつけ下さい はじめに 先日, gomaっていうmarkdown preview tool を練習がてら作ってみましたが、自分の手元に持ってきたら静的ファイルが含まれてないので、エラーになり使うことができませんでした。 perl でいう__DATA__ みたいなのをどうやるいのか調べていたところ @Konboi go-bindataとかgo-asset
はじめに 今回 aws-sdk を使って S3 に動画をアップロードしていました。 アップロードのコードはこんな感じです。 s3 = AWS::S3.new( access_key_id: CarrierWave::AWS_ACCESS_KEY, secret_access_key: CarrierWave::AWS_SECRET_ACCESS_KEY ) bucket = s3.buckets[CarrierWave::BUCKET_NAME] uploader = bucket.objects["upload-path" ] uploader.write(Pathname.new("target file path")) 今回アップロードしたものは、 mp4 と mp4をffmpegで変換した ogv ファイルになります。 それで問題になったのは、上記のコードでアップロードしても、問題
はじめに 旅する勉強会ってなんぞやという方はこちらの記事をご覧ください 旅する勉強会 - tech.kayac meetup #0 を開催します 発表資料 資料です 感想 当日は社外で発表するという経験がないので緊張し早口になってしまい、聞きづらい発表になってしまったかと思います。 すいませんm( )m 運用してると不具合は出てしまうものですが、不具合が出るとチームの雰囲気も良くはなくなるし、補填処理とか色々とやらないといけない作業が発生してしまうので少なくなるにこしたことはありません。 運用してた経験からどうやって防いできたかというのが伝わってくれれば幸いです。 〇〇はどうしてる?? 等々聞きたい事あれば勉強会などで声をかけていただければと思います。
はじめに goの練習がてらに Github::Hooks::Receiver、 octoks をgolangで書いてみました。 ghooks 使い方 README.md にかいてありますが、こんな感じで使います // sample.go package main import ( "fmt" "log" "github.com/Konboi/ghooks" ) func main() { port := 8080 hooks := ghooks.NewServer(port) hooks.On("push", pushHandler) hooks.On("pull_request", pullRequestHandler) hooks.Run() } func pushHandler(payload interface{}) { fmt.Println("puuuuush") } func
package main import ( "bytes" "encoding/json" "fmt" ) func main() { b := []byte(`{"foo": "bar", "hoge": {"fuga": "hoga"}}`) dec := json.NewDecoder(bytes.NewReader(b)) var jsonData interface{} dec.Decode(&jsonData) fmt.Println(jsonData) fmt.Println(jsonData.(map[string]interface{})["hoge"].(map[string]interface{})["fuga"]) } こんな感じのコード。 もっと入れ子になってたらと思うと… ゾッとする。 こういう時はどうするのがベストプラクティスなんだろう… こうするしかないのか
API等で { “start_at”: “2013-11-22 17:30:00 +0900”, “end_at”: “2013-11-25 17:30:00 +0900” } こんな感じで時間が文字列で送られてきた時に Time型、または DateTime型 start_at と end_at で計算をしたいときには parse メソッドを使って変換ができます。 ※ただし、time型に変換する場合は require ‘time’する必要があります。 require 'time' start_time = "2013-11-22 17:30:00 +0900" end_time = "2013-11-25 17:30:00 +0900" start_time_to_time = Time.parse(start_time) end_time_to_time = Time.parse(end
はじめに 以前、ブログにかきましたが開発環境を手元のVirtualBoxに作っていますが、 日本語が文字化けたりgit svn で下記のエラーがでたりと困ってたので直してみました。 vagrant + chef で環境構築している話 問題のエラー [vagrant@workspace ~]$ locale locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory LANG=ja_JP.UTF-8 LC_CTYPE=
はじめに 今回 devise と cancan を使って簡単な権限管理可能な画面をサンプルを作ったので それのメモです。 環境構築 まずはプロジェクトを作ります。 rails new sample-project -d mysql database.yml を環境に合わせて修正します。 プロジェクトができたらgem を追加します。 Gemfileに使うgemを追記します. gem 'devise' gem 'cancan' 追記したらgemをインストールします。 プロジェクトごとにgemを分けるのに vendor/bundle 以下にインストールします。 $ bundle install --path vendor/bundle 無事にインストールできたと思います。 ※以後で bundle exec を使用する際に環境によってはエラーが出るかもしれませんが、エラー文言で検索するとでてくるの
はじめに 携わっているプロジェクトで座標データを保存する必要がありました。 それに対応するために、migrationの記述だったり、コードでの扱いだったりで、思いのほか嵌ったのでメモしておきます。 座標の桁数 こちらを参考にすると座標は 整数部分 3桁、小数点以下 8桁 あれば 誤差が 1.11mm 以内に抑えられるらしいです。 今回は そこまで厳密にやる必要もない Google Map で一番拡大して “この場所について” で取得できる座標が整数 3桁、 小数点以下 6桁 なので、今回は 整数3桁、小数点以下 6桁。 (誤差 0.111 m (約11cm)) 合計9桁で保存することにしました。 migration Railsのmigrationのカラム型で小数点を扱うことができるのは float型 と decimal型 になります。 ここ をみると float型では7桁までした扱うことし
メモ的な意味で。 普通に rails generate controller hoge ってやると app/ 直下に hoge_controller.rb が生成される。 そこでいい場合は別にいいんだけれど、 api/ 以下とか admin/ 以下に作りたい時は rails generate admin::hoge みたいに :: でディレクトリの階層を指定できる。 このへんは perl っぽい。
はじめに 新規でプロジェクトを始めるときに、 あー この設定またかいてるわー このgem良く使うからもはやデフォルトで入れてほしいわー あ、まだ rspec に変えてなかった なんてことはないでしょうか? 自分の場合はクライアントワークで、キャンペーン系の開発が多く rails new #{project name} -d mysql を打つたびに思います… それを開発してくれるのがrails application template です。 rails application template とは? 公式サイト に詳しくかかれていますが、簡単に言うと 最初に新規プロジェクト作るときに 指定した gemをGemfileに書いてくれる 指定したコマンドを実行してくる どうやって使うの? 使いかたは簡単で rails new する際に -m オプションでファイルを指定するだけです。 こんな感
はじめに いつもは devise と twitter bootstrap を使って、カスタマイズしやすい用に自分で管理画面を作ってました。 しかし、周りの人達の評判も悪くなく rails4 の対応もほぼほぼできてるそうなので active_admin を使ってみる事にしました。 これから何回かに分けてactive_adminのブログを書いていこうと思います。 実行環境 rails4 ruby: 2.0.0-p247 gem のインストール rails4 へ対応したバージョンは まだ rubygems にあがってないので githubの master から インストールするようにと公式にかいてあるので、 Gemfile に下記を記入します gem 'activeadmin', github: 'gregbell/active_admin' active adminのインストール 今回は公式ド
はじめに ある案件の終了対応に伴い、リダイレクトの設定をしてた。 example.com/ 以下のアクセスを全て example.com/finish へリダイレクトさせるというもの。 一見簡単ですぐに終わりそうだと思っていたら結構ハマった。 ハマったところ はじめはルートの.htaccessファイルこのように設定してみた # .htaccess RedirectMatch /* http://example.com/finish これの何が問題かというと http://example.com/finish へのアクセスも /* の条件に当てはまり http://example.com/finish へリダイレクトされる。 これで無限loopが発生してしまい、ブラウザからエラーがはかれる。 解決策 下記の用に設定することで回避できた。 # .htaccess RewriteEngine O
はじめに deviseはrailsで認証画面を作るのをサポートしてくれるgemです。 使い方はこのあたりを見ればいいと思います。 (deviseでログインにemailではなくusernameを使用する devise と cancan を使って権限管理可能な管理画面を作る。 (1) devise と cancan を使って権限管理可能な管理画面を作る。 (2) 今回はdeviseでログインした後のリダイレクト先を変更したくて、それに少しハマったのでメモしておきます。 解決方法 解決方法の前に devise でデフォルトのログイン後にリダイレクトされる先は下記の用になっています 1. {deviseで指定したmodel名}_root_path ( modelがuserならば, user_root_path ) 2. root_path 肝心の解決方法は、 devise のメソッドを appli
はじめに 先日行われた、 ISUCON3 本選 に会社の先輩の@hilotterと同期の@tkuchikiと チーム カヤック選抜「流れ弾」として参加してきました。 ISUCON3 予選では 惨敗していたので 本選ではなんとか選抜チームとして汚名返上しようと挑みました。 結果としては、中盤に暫定1位になり、特別賞を争い スコアが上がってからの中盤以降は5位以内に食い込めていたので、選抜チームとしての役目は果たせたかなと思いつつ、最終ベンチでFailになりなんとも悔しい終わり方でした。 とりあえず、当日のログがあまり残ってないので忘れないうちに振り返りたいと思います。 自分は、主にアプリを担当したのでアプリの方を中心に書きたいと思います。 あわせて読みたい インフラ編は担当した @tkuchikiのブログ ISUCON3 本選に出場してきました 【インフラ編】 をご覧下さい。 画像まわり以外
はじめに サーバー側で動画を変換する必要があったのですが、 yum で入るffmpegだとバージョンが古く、エラーが多発するのでソースから入れてみたので、それのメモ MPEG4入門―「圧縮の基本」から「MPEGの基本」「MPEG4の実際」まで (I・O BOOKS)posted with amazlet at 13.07.15瀧本 往人 工学社 売り上げランキング: 275,821 Amazon.co.jpで詳細を見る ffmpeg のインストール ライブラリのインストール sudo yum install SDL-devel a52dec a52dec-devel alsa-lib-devel faac faac-devel faad2 faad2-devel -y sudo yum install freetype-devel giflib imlib2 imlib2-devel la
s3cmdのインストール sudo yum -y --enablerepo epel install s3cmd s3cmd の設定 下記コマンドで初期設定を行います。 s3cmd --configure アクセスキーやシークレットキーなどを設定します。 Enter new values or accept defaults in brackets with Enter. Refer to user manual for detailed description of all options. Access key and Secret key are your identifiers for Amazon S3 Access Key: Secret Key: Encryption password is used to protect your files from reading by
はじめに 最近 chef本をはじめ、 vagrant × chef のブログ記事が多く非常にありがたい限りです。 ただ、紹介されている vagrantのバージョンが 最新版が1.2.2 にも関わらず1.0.7で紹介されている記事が多いので手順をまとめて見ました。 ちなみに手元の環境は Mac 10.7.5 です。 アンインストール 最新版をインストールする前に、現在のバージョンのVagrantをアンインストールします gem uninstall vagrant インストール vagrant の最新バージョンは 公式サイトから.dmg形式でダウンロードし使用しています。 Vagrant.pkg からインストールします。 あとはいつも通りインストールすればOKです。 vagrant -v Vagrant version 1.2.2 無事インストールできました。 アップデートの場合も同様に dm
はじめに 今回は、そこそこリクエストがあるサービスを担当させてもらえることになりました。 複数のWebサーバーを使用する必要があり、複数のWebサーバーでもsessionを共有できるようにredisをセッションストレージとして使用することにしました。 構成はセッションストレージ部分は下記のようになっており、WebへはLBによって振り分け られるようになっております。 今回は、redisサーバーの構築から連携まで初めてだったので、今後のことも踏まえてメモしておく事にしました。 環境構築 redis のインストール はじめにredisのインストールです。 今回はCentOS 6で環境を構築しました。 様々なブログを拝見するとソースをダウンロードして自前でビルドしている記事が多かったですが yum でインストールしました。 $ sudo yum --enablerepo=epel install
合宿にきてるけど、別途作業部屋で軽い軟禁をくらっていて暇なので、忘れないうちにブログに書いておきます。 はじめに ISUCONとは、iikanjini speed up contest の略だそうでこちらに本家ISUCONの記事がまとまっております。 内容 当日は、新卒社員 VS 先輩社員 という構図で 参加表明した先輩社員が当日 良い感じに組み合わされて戦う感じでした。 実装周りはsoh335さんにまるっと丸投げして、 合間、合間 案件の対応したりもしてましたが、基本的にはミドルウェア周りを整備してました。 結果は、優勝出来ましたが、ほとんどsoh335さんのおかげって感じですね。 ほんとありがとうございました。 さいごに 次は自分の普段使ってる言語で挑んでみたいですね。 終わってからやっぱりこいつすげーなって人が身近にしかも、同期でいると自分のモチベーションになります。 ハイパフォーマ
この前 homebrew でImageMagick をアップデートしたら、依存のライブラリが全滅したので古い バージョンを入れなおした。 そのとき結構調べたのでメモっておく。 手順 現在のバージョンを調べる brew info [調べたいパッケージ] で調べられる。 インストールできるバージョンを調べる brew versions [インストールしたいパッケージ] インストールするバージョンのFomulaをcheckoutする git checkout [インストールしたいバージョンのパッケージのリビジョン] インストールされるバージョンを確認する brew info [インストールしたいパッケージ] バージョンが変更になっていたらインストールする brew install [インストールしたいパッケージ] こんな感じ。 $ brew info imagemagick (git)-[mas
このページを最初にブックマークしてみませんか?
『@Konboi memo』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く