タグ

2017年11月2日のブックマーク (23件)

  • KPI に関わる数値の集計処理を Cloud Dataflow に置き換えている話 | メルカリエンジニアリング

    メルカリのバックエンドを支える SRE(Site Reliability Engineering) チームに最近加わりました @syu_cream です。 記事では KPI に関わる数値を計算してレポートを生成する集計システムの刷新に取り組んでいる話を紹介します。 現在は刷新の途中であり、集計項目ベースでいうと 1/3 ほどの実装が済み、現行システムと刷新後のシステムの一部を並行稼動させている状態です。 背景 メルカリではアプリケーションのログファイルやデータベースから、 DAU(Daily Active Users) などの KPI に関する様々な数値を集計するためのシステムを稼働させています。 この集計システムは毎日 Slack やメールにて KPI のサマリーレポートを送信し、全社員が数値を閲覧し、日々プロダクトの傾向を意識することを可能にしています。 集計システムの動作イメージは

    KPI に関わる数値の集計処理を Cloud Dataflow に置き換えている話 | メルカリエンジニアリング
  • LinuxのI/OやCPUの負荷とロードアベレージの関係を詳しく見てみる - Qiita

    大人気TBSドラマ、「逃げるは恥だが役に立つ」でも話題になったインフラエンジニアという言葉ですが、今ではインターネットインフラを知らないまま開発をするのも難しい状況になっています。クラウドが一般化されたからといって単にリソースの調達が簡単になっただけで、つまりハードウェアの知識が無くても何とかやっていけるようになっただけであり、インフラの知識が要らなくなったなどということは全くなく、むしろdevopsの掛け声とともに、ソフトウェア開発者にインフラを見なければならない新たな責務が課せられたという、なかなか痺れる状況なのだろうと思います。 そういった中で、先日のさくらインターネットのAdvent Calendar最終日に「いまさら聞けないLinuxとメモリの基礎&vmstatの詳しい使い方」という記事を書かせて頂きましたが、今回はLinuxサーバの「負荷」と、ロードアベレージに関して、掘り下げ

    LinuxのI/OやCPUの負荷とロードアベレージの関係を詳しく見てみる - Qiita
  • 美容サイトARINEで稼働中の機械学習を用いた髪型ネイル識別システム | GREE Engineering

    応用人工知能チームの尾崎です。今年新卒エンジニアとして入社し、機械学習モデルの実装評価からAPIサーバの実装、コンテナを利用したプロダクトへの導入まで開発全般を担当しています。 今回はARINEで稼働中の畳み込みニューラルネットワーク (CNN) を用いた髪型・ネイル識別システムについてご紹介します。 背景 ARINEでは、おすすめのヘアスタイルやトレンドのコーディネートなど沢山の記事が公開されています。記事には数多くの写真素材が用いられていますが、これらの素材の多くは提携サイトから検索APIを提供してもらったり、提携サイト内の検索機能を用いて写真素材を探し選んでいました。しかし、一部の写真素材は自社で撮影していたり、最近ではヘアサロンやネイルサロンからも提供してもらっているため、それらの画像を検索する手段がありませんでした。 そこで今回、ライターさんが執筆に必要な写真素材を手軽に検索でき

    美容サイトARINEで稼働中の機械学習を用いた髪型ネイル識別システム | GREE Engineering
  • Prometheusによる数百台規模のモニタリングで直面した問題について | GREE Engineering

    インフラの反田 (@mtanda) です。 GREEでは、多くのサービスをAWS環境で運用しており、それらサービスのモニタリングシステムとしてPrometheusを利用しています。 Prometheusを導入してから約2年がたち、1台のPrometheusで数百台規模のインスタンスをモニタリングするなかで、さまざまな問題に直面しました。 それら問題の原因を分析し、設定や利用の仕方を改善することで、ある程度安定して運用できるようになりました。 これらの知見が少しでもお役に立てばと思い、ここで共有いたします。 なお、対象とするPrometheusのバージョンは1.xです。Prometheus 2.0では、これら問題のほぼ全てに対して改善されています。そのため、2.0でどういった点が改善されているかを知るためにも有用だと思います。 Prometheusのストレージ実装の基礎知識 Promethe

    Prometheusによる数百台規模のモニタリングで直面した問題について | GREE Engineering
  • Slack Enterprise Grid 国内初導入!全社展開における取り組みをご紹介! - DMM inside

    |DMM inside

    Slack Enterprise Grid 国内初導入!全社展開における取り組みをご紹介! - DMM inside
  • サーバレスはより安く、より複雑だ | POSTD

    先週の (Emit) カンファレンスでは、卓越した講演の数々、興味の尽きないパネルディスカッションが行われ、サーバレスコミュニティの優秀な仲間たちに出会って貴重な意見交換をする機会がたくさんありました。 そこでは誰もが一様に、コストこそがサーバレス適用の推進の鍵だとみなしていました。オンデマンド実行と生来の弾力性は、稼働率を最適化しつつ、稼動時間と信頼性もさらに高い状態に保ちます。従量課金制はコストを直接的に定量化できるものに変えました。場合によっては 桁外れの 節約 になる可能性があります。パネルディスカッションで、Gartnerのアナリストの Anne Thomas は、企業クライアントは”コスト”が有利という理由からサーバレスに興味を持つ、と話しました。 しかし、クローズドなシステムにフリーランチはありません。メリットを得るには何かを犠牲にしなければならないのです。テクノロジーにおい

    サーバレスはより安く、より複雑だ | POSTD
  • Stack Overflow: 100万人の開発者を手助けするVim終了方法 | POSTD

    今朝のことですが、 Stack Overflowで人気のある質問 が1つの値を越えました。 注釈: 見出し: Vimエディタの終了方法を教えてください 質問者: jclancy 赤丸囲みの中: ビュー:1,000,082回 jclancyさん、あなただけではありません。この質問が投稿されてから5年、あなた以外に100万人以上の開発者がVimで身動きできなくなって、何らかの助けなしには抜け出せませんでした。実際、Vimエディタを終了させるのは難しく、開発者の間では共通のジョークになっています。 注釈: 誰も簡単にVimから抜け出せない ベテランのVimユーザからこういう評判は不当だと言われたことがあります。(私もやっとここ数年でこの問題についてのコツをつかんだのですが、)確かにベテランの言い分は正しいと思います。Vimの終了方法を忘れてしまうのには2つの理由があると思います。開発者は、Git

    Stack Overflow: 100万人の開発者を手助けするVim終了方法 | POSTD
  • モノリシックなバージョン管理の利点 | POSTD

    以下は、私がよく交わす会話の一例です。 人物A:FacebookやGoogleは、巨大なモノリシックリポジトリ(モノレポ)を使っているんだってよ。 私:みたいだね。あれは当に便利だと思う。 人物A:僕に言わせれば最悪の愚行さ。全てのコードを単一のリポジトリに入れるのがヒドイ考えだと、FacebookやGoogleはなぜ思わないんだろうか。 私:FacebookやGoogleエンジニアたちも小さなリポジトリには精通しているだろうけど( 濱野純(Junio Hamano) 氏はGoogle勤務だし)、単一の大きなリポジトリの方が、きっと”ある理由”で好みなんだよ。 人物A:なるほどね。僕としては、まだちょっと違和感はあるけど、モノレポが使われる理由は分かったような気がするよ。 “ある理由”はかなり長いので、同じ会話を何度も繰り返さなくていいように、ここに書き留めておこうと思います。 シンプ

    モノリシックなバージョン管理の利点 | POSTD
  • IDEを使ってJenkinsのGroovyスクリプトを書く - blog4j 2.0

    MLであったJenkinsのGroovyスクリプトを書くにはどうしたらいいかという話。 JenkinsのAPIはプラグインを書いたりしてるとなんとなく分かった気がしてきますが、慣れていないとJenkinsを管理したり、Groovy Postbuildプラグインを使うときに困ります。 で、どうするのがいいかというと、やっぱり慣れるしかないかと思います。やりたいことは毎回違うし、よくやるような事はプラグインにしてしまえば良かったり、すでにプラグインになってたりします。MLであった環境変数を設定したいというのは色んな場面で使えそうなので、Groovy Postbuildプラグインで、 manager.addEnv('HOGE', 'ほげ') とか出来るようになればいいのかなと思ってます。そんな感じでプラグインが使いやすくなっていくと、Groovyスクリプトを書く機会が減って慣れてない人には敷居が

    IDEを使ってJenkinsのGroovyスクリプトを書く - blog4j 2.0
  • コンポーネント時代のi18n - Qiita

    グローバルからコンポーネントベースのid管理へ サービスを海外展開したい場合、国際化対応を行う必要性があります。これをi18n対応と呼びます。Reactフロントエンドを構築する場合、i18nのための多くのライブラリがありますが、ダウンロード数的にyahoo製のreact-intl が最も使われているライブラリです。react-intlを実際に使っている例としては、スター15000を超えるReactボイラープレートであるreact-boilerplate やSNSの マストドンがあります。 react-boilerplate/react-boilerplate: A highly scalable, offline-first foundation with the best developer experience and a focus on performance and best

    コンポーネント時代のi18n - Qiita
  • F/L というオレオレ言語の製作を通じて思ったこと・感じたこと - Qiita

    はじめに この文書では、F/L というオリジナル言語の設計・実装を通じて思ったことや感じたことのうち、プログラミングもしくはプログラムをする人=プログラマに関するものをまとめたものです。 もう少し技術よりの部分は別の記事「メイキングオブ・プログラミング言語 F/L」にまとめてありますので、そちらもご覧になっていただければ幸いです。 楽しかったところ 自分の言語による世界(オレオレ言語ワールド)が徐々に広がっていく様子を実感できたこと 開発を通じて、記述言語である Lua について色々学ぶことができた F/L は Forth をベースとする言語でしたので、Forth 系言語について勉強するきっかけになった 辛かったところ 説明のための文章を書かなければならないところ ダウンロードできる環境を準備すること(ファイルの清書や github の準備など) Lua でソースコードレベルデバッギングで

    F/L というオレオレ言語の製作を通じて思ったこと・感じたこと - Qiita
  • PWA で SS リーダーアプリ作った - Qiita

    リーダーと呼びましたが、いわばアンテナアプリ側です。複数のSSまとめサイトの SS リンクリストを表示します。 このアプリの一つ目の特徴は検索です。作品タグ + キャラ名で絞り込み、検索クエリをタブ化して保存できます。 もう一つの特徴は複数のサイトをあつかっていながらSSの重複がないことです。タイトルをある程度正規化して集約しています。 データは Rails で実装した API からとってきています。記事データは SS アンテナサイトの RSS を収集しています。SSをRSSで非SSRです。 実はこのアプリのコアはサーバーサイドで、収集やタグ整理、管理の自動化に力を入れています。 React Native で作っていた個人開発アプリを PWA に移行しました。(1から) 作っているものが Native である必要がないこと、アプリストア管理やリリース準備などの手間を感じていたこと、デバッグ

    PWA で SS リーダーアプリ作った - Qiita
  • Kaggle事始め - Qiita

    はじめに データ解析の情強な方なら、Kaggle はご存じだと思います。データ解析のSkillを競うCompetitionサイトで、与えられたテーマ(Dataset)に対して、世界中のデータ解析有識者が様々なデータ解析手法を駆使してより高い正答率(Score)を競い合う場所です。 が、Kaggleそのものは知っていても、どうやればKaggleに実際に参加できてランキングに加われるのかは知らない、と言う方は多いと思います。この記事では、とりあえずKaggleの何らかのCompetitionに参加して、解析結果をSubmitして、(その時点の)順位/Scoreを確認するまでの操作手順/流れをチラ裏したいと思います。 KaggleのWeb pageは色々な情報/Linkが詰まっているので、ぱっと見取っ付きにくいかもしれませんが、ポイントをつかめば参加してScoreを付けて貰う所まではとても簡単で

    Kaggle事始め - Qiita
  • 退屈なブラウザ作業はSeleniumにやらせようーーはじめてでもできるブラウザ操作自動化 | メルカリエンジニアリング

    こんにちは、メルカリのQA-SETチームで自動化をぶりぶりしている tadashi0713 です。 これまではモバイルアプリ・WebアプリのE2Eテストを中心に自動化をしていましたが、最近ではプロダクト部門・カスタマーサポート部門・コーポレート部門の業務自動化にも挑戦しています。 今回はSelenium WebDriver (以下 Selenium) を使って簡単にできるブラウザ作業自動化についてご紹介します。 10/25にGitHub JapanでLT発表した資料もありますので、合わせてご覧ください。 english-lt.connpass.com 意外と多い、ブラウザを使った繰り返し作業 社内の色々な職種・チームの方々とコミュニケーションをしていると、ブラウザを使った繰り返し作業が多く感じました。 例えば 社内で使用しているWebサービスのアカウントを社員に付与する Chartio(h

    退屈なブラウザ作業はSeleniumにやらせようーーはじめてでもできるブラウザ操作自動化 | メルカリエンジニアリング
  • ErgoDox EZを買って5分で設定する - Qiita

    背景 キーボードが左右に分かれた人間工学デザインに基づくキーボードとして話題のErgodox EZ。 https://ergodox-ez.com/pages/ergodox-ez-keyboard しかし、設定方法が煩雑で設定段階で挫折する人も(過去の記事を読んでも大型連休とか使って設定していたり) ただし、コツさえわかれば5分もあれば設定できるので、その方法を共有します。 設定方法(4ステップ) 1. キーボード間ケーブルとUSBケーブルを繋ぐ キーボードの左右をキーボード間ケーブルでつなぎ、PCとErgoDox EXをUSBケーブルで繋ぐ 2. キーボードの配列を設定する 以下のサイトで、キーボードの配列を設定する。 ErgoDox EZ Configurator 「Clone and modify layout」でキーボードを自分好みにカスタマイズし、「Download this

    ErgoDox EZを買って5分で設定する - Qiita
  • UXデザインはオーケストラを指揮をすることと似ている

    PaulはUXのデザイナーでありデジタルトランスフォーメーションの専門家です。彼はユーザーを促進するためのウェブやソーシャルメディア、モバイルの活用を、非営利やビジネスの分野で手助けしています。 ユーザー体験をデザインすることができるのかどうかについては、多くの議論がなされてきました。当にユーザー体験のデザイナーになることができるのでしょうか? 私は、デザイナーの役割をどう定義するかによると考えています。 私は長年、ユーザー体験をデザインすることなど不可能で、UXデザイナーになっても意味がないと多くの人が主張するのを聞いてきました。この意見に私はとても共感します。 非常に多くのものがユーザー体験に影響を与えます。その多くは、デザイナーがまったくコントロールできないものです。具体的には、ユーザーの居場所やユーザーの周囲で起こっていること、そしてユーザーの生活全体の状況などがあります。 私た

    UXデザインはオーケストラを指揮をすることと似ている
  • 50歳独立研究者「副業から始まった」稼ぎ方

    学者や研究者はどこで働いているのだろう? すぐに思いつくのは大学や高専、研究機関、企業の研究開発部署あたりだろうか。しかし最近は、フリーランスとして活動している研究者もいる。 その草分けとして知られるのが農学博士であり「独立系研究者」の小松正さん(50)だ。 生態学や進化生物学など生き物に関連する分野を専門とする小松さんだが、かかわってきたプロジェクトは幅広い。2004年に「独立」して以来、水深1000mで使える野生生物用の計測機器の開発に携わったかと思えば、選挙ポスターの顔写真から笑顔度と得票率の関係性を分析した実績も残したりしている。 寝返りなどの動作には無反応で、ベッドから起き上がるときだけ反応するセンサーを介護医療分野向けに開発する一方、人間が言語を習得するときの身体の動きや音声をパターン化して全体の傾向を調べたりもしてきた。 それぞれのプロジェクトで自在に肩書を変えている。時に当

    50歳独立研究者「副業から始まった」稼ぎ方
  • Python: pandas でカラムの型を変換する - CUBE SUGAR CONTAINER

    pandas はデータを読み込むとき、よきに計らってカラムに型を付与してくれる。 ただ、その内容が意図しない場合もある。 そんなとき、どうやってカラムの型を直すか、ということについて。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.6 BuildVersion: 16G29 $ python --version Python 3.6.3 もくじ もくじ 下準備 サンプルデータ カラムの型を変換する 型を変換したカラムを非破壊的に追加する 型を変換したカラムを破壊的に追加する もっと柔軟に変換する 値として NaN が入っている場合 下準備 まずは下準備として pandas をインストールしておく。 $ pip install pandas $ pip list --format=columns | gre

    Python: pandas でカラムの型を変換する - CUBE SUGAR CONTAINER
  • Docker イメージをファイルでやり取りする - CUBE SUGAR CONTAINER

    的に Docker イメージは Docker リポジトリからダウンロードしたりアップロードするものだと思う。 とはいえ、インターネットに疎通がなかったりすることもあるし、自前でリポジトリを運用するのもつらい。 そんなときは Docker イメージを、そのままファイルでやり取りしたいなと思うときがある。 結論から先に言ってしまうと、そんなときは docker save コマンドと docker load コマンドを使うと良い。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.6 BuildVersion: 16G29 $ docker version Client: Version: 17.09.0-ce API version: 1.32 Go version: go1.9 Git commit: af

    Docker イメージをファイルでやり取りする - CUBE SUGAR CONTAINER
  • 読みやすいコード(僕にとって) - Mitsuyuki.Shiiba

    最近気づいたことがある。それは、僕はみんなみたいに複雑なことが理解できない、ってこと。 話をしてても「ごめんなさい。いまのわかんなかった。もう一回教えて欲しい。」とかよくあるし。ドキュメントも、ちょっと複雑なことが書いてあると、全然頭に入ってこない。 色んなルールがドキュメントに書いてあって、それをちゃんと守りながら開発してる人たちとか見てると、みんなすごいなぁって思うのであった。 なんだろうなぁ。こう・・・色んな想像が始まってしまって、考えが落ち着かないんよね。 そんな僕なのだけど、ここ数年はありがたいことに色んなコードを読む機会がある。読みやすいコードもあれば、パズルみたいに複雑なものもあって。そんな中で、たぶん、僕にとって読みやすいコード、というのは普通の人にとってはとても読みやすいコードなのかなぁって思って。書いてみる。 JavaでWebのアプリを開発してる。基盤とかフレームワーク

    読みやすいコード(僕にとって) - Mitsuyuki.Shiiba
  • Rでスパースモデリング:Adaptive Lasso - データサイエンティスト(仮)

    導入 スパース推定の代表的な手法として、Lassoがあります。様々なシーンで活用されているLassoですが、Lassoは変数選択の一致性が保証されないという欠点があります。Adaptive Lassoは、その欠点を補う形で提唱されている手法となっています。こちらは、ある条件のもとで変数選択の一致性が保証*1されており、数理統計学的により好ましい性質を持っています。 このAdaptive Lassoですが、Rでは{glmnet}以外のパッケージを使わないと簡単にできないとかなりの期間勘違いをしてました。そんな中、以下の記事を最近見かけまして、冷静に考えたら{glmnet}でも表現できるよなあと猛省した次第です。 RPubs - Adaptive LASSO Examples 以上の経緯から、挙動を確かめておこうという考えのもと、メモがてらAdaptive Lassoの紹介をしようと思います。

  • 「プログラミングの常識」を時々見直す必要性について|Rui Ueyama

    自分の中のプログラミングの常識というものは、ときどき現実のハードウェアに合わせて調節しないといけない。ハードウェアが進歩し続けているので、コンピュータで簡単にできることと相対的に難しいことのバランスが変化し続けているからだ。ここでは特にストレージにフォーカスして書こうと思う。 昔はメモリが相対的にとても貴重な資源だったので多くのプログラマがメモリを節約することに血道を上げていた。例えばWindowsの初期の頃に設計されたデータ構造には、メモリをバイト単位ででもいいから節約したいという意図の痕跡がいまでも多く見受けられる。DRAMの次に速い記憶装置はHDDだったので、メモリが足りなくなればHDDにデータを保存せざるを得ないのだが、DRAMとHDDのランダムアクセスの速度差は、机の上のの開いているページを見るのと、そのAmazonで注文して到着するのを待つのと同じくらいのスケールで違うの

    「プログラミングの常識」を時々見直す必要性について|Rui Ueyama
  • HPCと10年戦ってわかったこと - Qiita

    はじめに 「◯◯と10年戦ってわかったこと」というポエムを書けば、他の人がその「◯◯」についてちゃんとした記事を書いてくれそうな気がしてきた。僕もポエムを書いてみたいが、10年戦ったものなんてあまりない。僕自身は全くHPCの人ではないのだけれど、HPCの人々と関わる仕事を一応10年くらい続けてきたので、HPCに関するポエムを書いてみる。これはあくまでポエムであって、当然だがフィクションで、いかなる実在の人物、現実のスパコン、メーカ、団体とも関係ないことはご留意されたい。 HPCってなに? HPCというのは「High Performance Computing」の略で、日語では「高性能計算」とか言うんですかね。こういう略語にありがちだけれど、HPCが意味する分野は人によって全然違う。データセンターなんかもHPCの分野なんだろうけれど、とりあえずここでは科学技術計算に用いるスパコンと、その周

    HPCと10年戦ってわかったこと - Qiita
    manabou
    manabou 2017/11/02