サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
hideack.hatenablog.com
githubでお馴染みのコミット数に応じて頻度が色付けされるグラフを任意の数字で作れる Pixela というサービスをリリースされた時点から知って、何か試してみたいなと思っていたので、Slackの自分の発言したメッセージ数を記録してみた。 こんな感じになる まずは、前提としてPixelaのGetting Startedを完了させてユーザー登録とグラフの作成が完了しているとします。*1実際にPixelaに記録する方法として以前自分が作ったSlack全チャンネル眺めるくん ( slack-cli-stream - npm )に特定のユーザーの発言のみを表示対象にするオプションとメッセージ検知をトリガーにhookして任意のコマンドを実行できる様に実装してみています。インストール自体はnpmに登録しているので $ npm install slack-cli-stream で完了するはず。壊れていた
Slackでユーザーのステータスを更新できる様になりました。 Set your status in Slack – Several People Are Typing — The Official Slack Blog これを知ったときにカレンダーの予定を読み取って自動的にステータス更新できたら自分の予定を自分に声をかけようとしている人に対して知らせることができるなと思って、APIでも更新できることを知ったので雑に社内で使っている自分のGoogleカレンダーの予定をiCal経由で読み取ってSlackのステータスを更新してみるのを試してみました。 もしこれができると、自分が社内の用事で離席をしていたり外出しているときなどにSlackで何らか声をかけていただいても反応できないときに状況を把握してもらえたり、外部から御電話いただいたときも代表電話を受け付けていただいた方がわざわざ自分のカレンダー
普段仕事をしている机の上で広げていたり、仕事で生じた外や社内でのミーティングで常にMacbookとほぼ日手帳のデカイやつ(カズンといいます)を抱えて回っていて、メモを取っている様子を見た人から「いつもメモってますね」「メモの字が小さい!」「パソコンと紙のメモで使い分けてるんですか」と質問いただくことが数回あったので自分なりにこんな形で使っていますというご紹介。 正直こういったメモの取り方は右往左往を続けていて、完全にPC上に寄せてみたり所謂大学ノートにしてみたりルーズリーフ使ってみたりといろいろ試していたのだけれども、いまいまはこうしていますという話。手帳術といったところまでのレベルではないですが、4月という時期でもあるので、もし何か参考になるところがあればこれ幸いです。 さすがに実際の業務をメモしているページは貼れないので、今日のページへこんな形でやってみていますというのを書いてみました
ビットコインとブロックチェーン:暗号通貨を支える技術といった本を読んだりだとか身辺でビットコインの話題が出るに連れ、個人的にはブロックチェーンに興味があるのでそのあたりの環境を作るのに手軽な基盤はないかなと見ていたところHyperledgerというプロジェクトを知った。 Hyperledger自体はLinux Foundationが進めているブロックチェーン技術に関するオープンソースコミュニティーで、そこで開発されているブロックチェーンの基盤にHyperledger Fabric*1があり、他にも複数のプロジェクトが推進されている。(詳しくはこちらのページが詳しい) Home | Hyper Ledger Foundation Fabric自体はDockerHubにイメージが提供されているので、これを使うとローカルにもFabricによるブロックチェーン基盤を立てることができるということなの
この記事は、Pepabo Managers Advent Calendar 2016の18日目の記事です。 17日目は、東京CSマネージャー うーたんの「ITバンドマンから見る採用基準」でした。 エンジニアとして2011年に中途入社して以来、少しずつマネージメント職へ舵を切りつつGMOペパボのEC事業部でマネージャーとして今年の4月から携わる様になって早9ヶ月となりました。 マネージャーとしてはまだまだ半人前ですが、今後同様にマネージメント職に興味を持った後輩のためにも一度ここで自分なりに考えるところを整理してみました。 キーワードは 「バランス」 です。 マネージメントで行える一つの役割として「バランスをとること」があることが、まだ短いマネージメント経験の中でも頻繁に感じる様になりました。 単にバランスをとるという言葉のみを取ると非常に保守的な印象を人によっては受け取ってしまうキーワード
LINE Notifyが公開されて少し触ってみたけれどとてもシンプルにLINEで通知を実装することができたので完全に個人用便利ツールとなりつつevacで天気通知させられる様にoutputとして実装してみた。 実装といってもとてもシンプルでAPIにLINE Notify上で取得されたトークンをPOSTするだけなのだけど。 たとえば東京地方の天気の情報をlivedoorのRSSフィードから抜いて天気の情報のみをLINE通知させるには in: rss: url: 'http://weather.livedoor.com/forecast/rss/area/130010.xml' format: '__description__' filter: match: regexp: '[0-9].*の天気は.*' out: line: token: '(取得したLINE Notifyのトークン)' みた
所要で外出。多少涼しくなったとはいえ、日中外出するとなかなか体にこたえる。 Chrome拡張を久しぶりに作ってみたい気になってきたので以下のページを参考にしながら環境を整えたりしていた。 qiita.com github.com 小さく何かを作り続けることはどの様な立場になっても継続して続けていきたいなと思っているのだが、なかなか。
タイトルが全てシリーズ。 google-search-rankというnpmを作った - テノニッキ (@hideack 's diary)というエントリで書いたとおり検索語に対する特定サイトの検索順位を取得できる様なnpmを作ったので弊作のevacの入力として指定できる様にしました。 例えば、 in: searchrank: key: "(google custom search API key)" cx: "(google custom search engine ID)" site: pickup.calamel.jp maxPage: 5 format: ":google: 検索語「__word__」 = __rank__位" word: - "よしざわ窯" out: ikachan: url: http://********* join: false channel: "#hide
運営しているサイトが持つ検索キーワードの順位を得たいと思ったのだが、きっと世の中には同じことを考える人がいるだろうからとRuby Gemsを探ったら所望するGemがあったので試してみた。 google-search_rank | RubyGems.org | your community gem host 例えば自分のブログが「安住紳一郎の日曜天国」というキーワードでGoogle検索した際に何番目に表示されるかを調べたい場合は require 'google/search_rank' client = Google::SearchRank.new(api_key: "(APIキー)", cse_id: "(カスタム検索エンジンの設定で得られるID)") keywords = ["安住紳一郎の日曜天国"] rank = {} keywords.each {|keyword| rank[key
基本的に家事が好きなので、料理とかお風呂掃除とか折を見てする訳ですが中でも好きなのが皿洗いだったりします。 皿洗い、少し嫌悪されがちな家事の一つで最近だと食洗機を使って省力化することもできてそれはそれでとてもメリットなのではありますが、自分は食洗機を所有していないので手で洗っています。そうした中でもこんなことを考えながら皿洗いしているという話。 前提として「皿洗いはゲームだ!!」と思ったりしています。 如何に綺麗に洗うか そのために如何に効率よく泡立てて食器を洗うか 如何に短時間でどうすませるか そのために「食器を洗う→すすぐ」をできるだけ少ない回数にできるか と考えます。 こう考えた時に洗うべき食器を目の前にして、 シンクに運ぶまでに油汚れがあるものがあったらその上に皿を重ねない様にしよう (皿の裏側に汚れが移らない様に) 泡立ちがすぐ悪くなるから油汚れのある食器は先に水だけで流しておこ
「問題解決能力」というキーワードが仕事をしていたりするとよく耳にします。例えば、「問題解決能力の高い人を採用したい」だとか「あの人は問題解決能力が高い」といった会話が出たりします。 そうした能力は多くの人にとって能力を身につけたいと考えるところでもある様で、本屋さんにいくとそういった類の本が多数出版されています。 このテーマに関連して自分なりに思うところもあって、「問題解決」というキーワードで思うと非常に壁が高い様に感じてしまって何か特殊な能力がいる様に感じてしまうのですが「問題を小さくするぞ」と思うと「お、自分でもできるかも」というのがあります。 何かしら問題や課題に直面したときに問題を小さくすることを意識すると、 サービスで障害が起きた 原因はどこだろうと切り分けていく (ネットワークなのかミドルウェアなのかアプリケーションなのか etc...) 商品をレコメンドしたいけど商品数とユー
自分が伝えた気になったことは1/3も伝わってないことが多いという話。 日常生活送っていると何かしらコミュニケーションを取ることも多いわけですが、基本的にそういったコミュニケーションをしていると自分が思っていて伝えたことは1/3も伝わってないと思う様にしています。 例えば職場で自分がエンジニアであり何かを実装するにあたっての仕様を説明した時にその仕様が100%自分が考えた通りに伝わっているかとういうと、その様なことは決して無く大体1/3も伝わっていないことが多い気がします。原因としては、 自分が頭のなかだけで理解していて口に出してない 口では伝えたが相手が理解していない 相手も理解したが、すぐ忘れてしまった などがあるかなと思いますが、これは誰を攻めるわけでもなく、機械同士のプロトコルによるやり取りでも無い限り必ず生じることかな。と思ってます。 上のことを防ぐためにいくつか方法があるかとは思
コンテンツサイトを運営していると毎朝Google analyticsで昨日公開したコンテンツの反応だったり過去公開したものが盛り上がっていたりしないかをコマメに見る様になるのですが、それを簡単に運営に携わっている全員に共有できないものかな。と思っていたのでevacで一日前の各コンテンツのPV数をGoogle analytics API経由で取得してtakosan経由でSlack通知させる様にしてみました。*1 恥ずかしながらサンプルとして当ブログに一日分の閲覧数トップ5を取得してみます。(このエントリを書いているときに実行したので1日前の元旦終日のPVに相当) { "in": { "googleanalytics": { "timeago": { "period": "days", "ago": 1 }, "metrics": "ga:pageviews", "dimensions": "
弊社CTOのあんちぽさんが以前組織の公安9課モデルについてというエントリを書かれていたが自分の中にもなんとなく思っているモデルがあった。倣うと題して「組織の特車二課第二小隊モデル」。 特車二課というのは、機動警察パトレイバーで出てくる組織で、正式名称は "警視庁警備部特科(特殊)車両二課" という。主だって自分がイメージするのは後藤喜一警部補が率いる方の第二小隊。 特徴としては、 チームに職種として幅広い人が集まる 特車二課第二小隊の中でもフォワード(イングラムの操縦)、バックアップ、後方支援 etc... と分かれている リーダーが持つチームの推進に必要な知識が深い 後藤隊長もレイバーの歴史的背景やシステム的な所に関する鋭い洞察が各所で出てくる 役割を適切に委譲し、後はそのメンバー間に委ねる フォワードの制御はバックアップ(指揮)に任せるといったのがわかりやすい事例 但し有事の際は別 (
プロジェクトで依存しているnpmを最新に保つのにgreenkeeperというサービスを見つけたので試してみました。 まずはcliツールをインストール。このサービスのカッコイイのがOAuthの部分を除いてコマンドラインで完了するというところ。 $ npm install -g greenkeeper まずはgreenkeeperにログインします。コマンドラインでログインを指定。 $ greenkeeper login そうするとGithubのOAuth認証用にブラウザが立ち上がって認証を求められます。 その手続が済むとgreenkeeperを利用可能な状態になっているので、greenkeeperでpackage.jsonで管理されているnpmパッケージを最新に保ちたいプロジェクトのルートでgreenkeeperを有効にします。 ☁ remp-api [master] greenkeeper
最近業務でgoogle docsやExcelで管理されたシートの内容を集計したいことがあって、基本google docsのスプレッドシートでゴニョゴニョすることがあるのですが、例えば の様なものがあって、上の例だと各ユーザのポイントの合計を集計したいなと考えた時にExcelに慣れている方だとExcelの関数が浮かんで集計できるのかと思うのですが自分だとSQL文のイメージが先に出るのでよしなにできないかなと思っていたら、Google docsだと QUERY という関数を使うことで実現できることを知ったのでメモエントリです。 上の例だと D1 のセルに以下の様な内容を記述します。 =query(A2:B9, "select A, sum(B) group by A") 1番目の引数にデータの範囲を指定し、2番目にそのデータ範囲でのクエリを記述します。 SQLを触ったことがある方ならなんとなく
Rubyで開発している時に開発環境で複数のプロセスをまとめて起動させたいときにforemanを 利用することが多いですがNode.jsの実装でNode Foremanがあります。 www.npmjs.com npmコマンドでNode Foremanをインストールします。 $ npm install -g foreman コマンド自体は nf となります。 $ nf _____ | __|___ ___ ___ _____ ___ ___ | __| . | _| -_| | | | |__| |___|_| |___|_|_|_|_^_|_|_| Usage: nf [options] [command] Commands: start [options] Start the jobs in the Procfile run [options] Run a one off process
Runscopeとは Runscopeは2013年にローンチしされたAPI監視サービスです。 www.runscope.com メリットとしては、"本番環境で提供しているAPIのステータス監視及び応答内容監視ができる" があります。 単純な死活監視ではなく、APIが返答するJSONやXML, HTTPステータスなどの応答内容の監視まで行うことで仮に提供中のAPIから更に外部のAPIと連携しているなどしていた場合、外部のAPIの異常を検知できずにサービスが稼働を続けるということを防ぐことができます。 30日間, 25万リクエストまでであれば無償で試すことができます。 設定 ログイン直後の上部メニューの "Radar Tests" → "Create Test" を指定し、テストグループを作成した後、作成されたテストで "Edit Test" をクリックします。 そうすると下記の様なUIが表示
evacを公開した時のエントリで、iCalの予定を読み込んでMac上のgrowlに通知する等を紹介したのですが、ペパボ社内でSlackが使われる様になったので通知をSlackに移しました。 やり方としては自分用のチャンネルをSlack上に開設してmention付きで通知させることでMacの前で作業しているときはSlackのnoticeで通知され、ミーティング等でMacの前にいない場合もiPhoneにプッシュ通知されるので便利。(だと思います。) ペパボでは誰でも利用できる形でtakosanが用意されているので、evacのikachanプラグインを使うことでslack通知させることができます。 社内SNSのiCal → evac → takosan → Slack といったフローになります。 $ npm install -g evac でevacはインストールができますので、以下の様なレシピ
突然ですが画像がたくさんあってそれを人の目で分類するのって大変ですよね。 自動でこういったものを分類できないか興味があったので調べてみました。 perceptual hashとは perceptual hash というのは、ハッシュ関数の実装なのですがSHA1等のハッシュ関数とは違い、以下の様な特徴があります。 得られるハッシュ値は64bit 対象は静止画, 画像, 音声等のマルチメディアデータ コンテンツ内容が類似しているケースでハッシュを得た場合、例えば静止画画像の拡大、縮小といった加工の場合ハッシュ値が全く同じになる また、色調の修正やノイズが加わった場合も得られるハッシュ値間のハミング距離が近くなる 64bitのハッシュ値なので最も遠いハミング距離は64 (=全くコンテンツが異なっている) 逆にハミング距離が0であればperceptual hashで得られた結果上は同一コンテンツ
Google analyticsのレポートの値を取得する方法をあれこれ調べていたのでひと通りまとめてみました。 npmのパッケージとしては、sfarthin/ga-analytics · GitHubというのがあるので、これを利用するとあっさりレポートの値は取れるのですが、Google analyticsのAPIを利用するため、以下の手順が必要です。 Google Developer Consoleでサービスアカウントを準備する Google analyticsにユーザを追加する Developer consoleで取得した.p12証明書をpem形式に変換する 上の手続きをひと通り行うとGoogle analyticsのレポートの値を取得できる様になります。 Google Developer Consoleでサービスアカウントを準備する Google Developer Console に
検索エンジン自作入門 ~手を動かしながら見渡す検索の舞台裏を読んでみたところから続く検索してみるシリーズ。 前回作成した検索の処理をもって転置インデックスを作成するところから、それを利用した検索までの一連の流れができたので次は実際にいくらか大きめのデータを入れて比較してみることにします。 いままで作成したnode.js + redisベースの実装はremieraという名前を付けてgithubに置いています。一応、コマンドライン引数でインデックス対象のファイルを指定したり検索ができる様にしています。 インデックス対象の文章はテキストファイルで与えられるものとして、1行が1文章として扱われる様になっています。 今回は大きめのデータのサンプルということで本に倣ってWikipediaのタイトル2,654,075件の文字列をサンプルとして投入します。 $ wc -l ~/tmp/wikipedia/
検索エンジン自作入門 ~手を動かしながら見渡す検索の舞台裏を読んでみたところから続く検索してみるシリーズ。 過去に転置インデックスを利用して検索してみるといったエントリを書いてJavaScriptのハッシュで構成された転置インデックスを利用して検索を試みていたが、このままだと永続化できないのでredisを用いて永続化してみた。 node.jsでredisを扱う場合はnode_redisを利用するのがよさそうなのでnpm経由でインストール。 $ npm install redis --save 使い方はそのままの形なので先のgithubのREADME.mdを参照すれば特に支障なく利用できるかと思う。 基本的にはredisのコマンドがそのままメソッドとして実装されているので、見た感じそのままである。 今回は転置インデックスをredisに格納するにあたって、以下の方法で実装してみた。ここはひとま
相変わらずあまり本が読めない一ヶ月...。2015年はもう少し本を読みたい。 検索エンジン自作入門 ~手を動かしながら見渡す検索の舞台裏は、検索という処理に関してひと通り一冊で把握できるし、具体的な実装についてコードで示されていてとても読みやすかった。また更に細かく知りたい人向けにエイリアスも本中に多く設けられていてとても良書。 この本を読んで実際に手を動かしてみて、 JavaScriptでn-gram JavaScriptで転置インデックスを作る 転置インデックスを利用して検索してみる 転置インデックスをredisで永続化する redisで作成した転置インデックスで検索してみる 転置インデックスを利用した検索とgrepによる検索を比較してみる といった簡単な実装をnode.jsでやってみたり。 また、全然ジャンルは変わりますが、日本のごちそう すき焼き も、読んでとても興味深く、そして何
evacというシンプルなアグリゲーターを作りました。個人用途で作っていたのですが、そこそこ形になったのでnpmで公開しています。 よくあるアグリゲータの実装と同様に入力、加工、出力をJSONファイルで定義することでアグリゲーションすることができます。 例えば自分の場合は以下の様な使い方をしています。 ブログの記事に更新があれば、gmail通知 社内SNSのスケジュール機能で用意されているiCalファイルを読んで、一時間以内に予定があれば仕事で利用しているMac上にgrowl通知 DBに接続して数値を取り、dashingのAPIに向けてPOSTする あるサービスのwebページをスクレイピングしてKPIにしているパラメータを抽出してIRCに通知 RSSを走査し特定の文字列があればIRCに通知 などなど、いままでであれば小物スクリプト書いて動かしたりしていたものを置き換えすることができました。
Pushbullet というサービスのAPIを使ってPushbulletがインストールされた端末(iPhone, Android, PCブラウザ) に向けてPush通知する術をあれこれ調べた際のメモです。 そもそもPushbulletは先に書いた様なPushbulletのクライアントアプリがインストールされた端末間で相互にテキストや画像を相互にやり取りできるサービスです。Googleアカウントのみで利用することができます。 Chrome Web Store - Pushbullet Pushbullet - Google Play の Android アプリ Pushbullet on the App Store on iTunes これらを端末に導入することで導入した端末間で例えば、 iPhoneで撮影した画像をPC側へ送る PCのChromeブラウザでメモしたURLをiPhoneに送る
業務で見ているパラメータ(KPI的なもの)をダッシュボード的な体で表示させたいなと思ってあれこれ調べると DashingというGemを見つけてこれを使うとパラメータを常時表示させるものをかなりカジュアルに 作れたのでご紹介。 デモはここで確認できます。Herokuの上で動いてますね。 DashingはShopifyが作っていてShopify自体もオフィスでこれを利用して パラメータをTV等に表示させているとのこと。 インストール $ gem install dashing で dashing コマンドを使える様にします。 ひな形を作成 作成するダッシュボードのひな形を作成します。 $ dashing new test create test create test/.gitignore create test/Gemfile create test/README.md (snip) cre
icalというnpmパッケージがあるので、これを利用すると素朴にiCal形式のデータを読み取ってオブジェクトとして扱うことができます。 var parser = require('ical'); var url = "http://〜/plan.ics"; parser.fromURL(url, {}, function(err, data) { for(var plan in data) { console.log(data[plan]); } }); とやると、以下の様な形で予定をparseすることができます。 { type: 'VEVENT', params: [], start: { Mon, 13 Oct 2014 08:30:00 GMT tz: undefined }, dtstamp: '20141013T083000Z', created: '20141013T08300
データベースサーバをChefで構築することを行っていて、そのサーバにバックアップスクリプトを撒いて併せてcronで定期的にバックアップを行わせることを行いたかったのでその際のメモです。 ここに全てが記載されていますがchefでcron設定を行う場合、以下の様な記述をrecipeに記載することで実現できます。 cron "Backup script" do user "remper" command "/bin/sh /home/foo/backup_script" hour "3" minute "55" end 上記の様な記述だと、 remperユーザのcronに設定 実行するコマンドは /bin/sh /home/foo/backup_script 毎日3:55に実行 を意味していることになり、Chefを適用したサーバには、 $ whoami remper $ crontab -l #
次のページ
このページを最初にブックマークしてみませんか?
『テノニッキ (@hideack 's diary)』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く