プログラム

HTML中からSNSアカウントのリンクを正規表現で取り出す

こんな感じでよいのだろうか。みんな大好きHTTPieを利用した場合。例として弊社。トップページのHTMLを取得し、その取得結果に対してgrep実行して抽出する。 ☁ ~ http https://pepabo.com/ | grep -Eo "twitter\.com\/[a-zA-Z0-9_]+" twitter.com/pepabo 慢…

徒然日記 - メモを取りながらプログラムを書く

GAS(Google Apps Script)で書きたいと思っていたちょっとしたプログラムがあったので午前中からラジオを聴きながらプログラムを書いていた。やりたいことは Googleスプレッドシートにフォーマットを作る スプレッドシートに書かれた情報を元にRedashに参照ク…

google apps scriptでスプレッドシートの特定の列, 行を配列として取り込む

google apps scriptのgetRange と getValuesを利用して特定のシートの指定した範囲のセルに含まれる値を取得することができるのだが、これだと列方向に対して値を取得した際に [["A1"], ["A2"], ["A3"], ... ] といった形で取得され、逆に行に対して値を取得…

徒然日記 - fastifyのテンプレートエンジン

昨夜思いつきで雑に書いたプログラムを休憩時間にfastifyを使って動かしてみようと思ってこれまた雑に書いてみたところでHTMLを返したくなり、テンプレートエンジンのところどうするのがいいんだろうと思ってて見つけたものを使った。 github.com まだ表に出…

GAS(Google Apps Script)でカラーミーショップAPIを利用する

カラーミーショップ では、カラーミーショップAPIというAPIを用意していてネットショップを運営するための管理画面から行えるオペレーションであったり、ショップ自体が供える情報を取得する仕組みがある。この仕組みを活用してカラーミーショップでは今年の…

スクリーンショットを取るAPI的なもの - 徒然日記

連休一日目。昨日、どうも心持ちがすっきりしない出来事があり、夜もあまり熟睡できない感もあってすぐ目が覚めてしまい気分を紛らわしたい気持ちになったので久しぶりにいちからコードを書いた。こういうときの自分の解決策は プログラムを書く 写経をする*…

ロリポップ!マネージドクラウドでFastify

FastifyというオーバーヘッドがExpressに比べて小さいと言われているサーバーをロリポップ!マネージドクラウドで動かした際のメモ。

fly.ioを試してみる

Edge Worker PaaS の fly.io が面白い - mizchi's blog というエントリを見てなんだか楽しそうだと思い自分も試してみた。ほぼ内容的には先のエントリと同じになりそうなのだけども記録として残しておく。 https://fly.io/からアカウントを作成をすると以下…

Slackでタイムカードに打刻する

以前書いた PixelaでSlackにおける自分の発言数を記録する - テノニッキ (@hideack 's diary) 応用編として、自分が参加しているSlackのチャンネルを眺めるくん (slack-cli-stream - npm ) に 特定のチャンネル や 特定のユーザー または 特定の発言内容 に…

PixelaでSlackにおける自分の発言数を記録する

githubでお馴染みのコミット数に応じて頻度が色付けされるグラフを任意の数字で作れる Pixela というサービスをリリースされた時点から知って、何か試してみたいなと思っていたので、Slackの自分の発言したメッセージ数を記録してみた。 こんな感じになる ま…

Franzに任意のアプリケーションを追加する(プラグインの作成と追加)

Franzという複数のメッセージング・コミュニケーション系のサービスを1つにまとめて管理することができるツールを最近使っている。 meetfranz.com もともと社内ではSlackを利用しているのでSlackアプリを使って過ごしていたのだけれども、だんだん社外とのや…

node-slack-sdkをv4系に上げた際のユーザ及びチャンネル一覧の取得方法

node-slack-sdkのバージョンが3系から4系に変わった際にReal Time Messaging API周りの仕様が一部変わっていて、作っていたSlack眺めるくんのユーザの一覧や自身がjoinしているチャンネルの一覧取得処理を改修した際のメモ。 v3系のとき v3系だとRTM APIでto…

loopbackで作成したプロジェクトでSlackログインできる様にする

先日から試行錯誤していた内容のまとめ。 いまloopback.ioを利用してAPIを作ることに取り組んでいるのだけれども、frameworkが提供するユーザ認証の仕組み(メールアドレス及びパスワード)だけではなく、Node.js向けの認証ミドルウェアであるPassportを利用し…

テキストファイルに列挙されているURLを利用して該当サイトのトップページHTMLをwgetで保存する

メモ用エントリ。 http://hideack.hatenablog.com/ http://www.remp.jp/ http://www.storyboards.jp/ の様なURLが列挙されたテキストファイルが手元にあったときに wget を利用してトップページのHTMLファイルを特定のディレクトリに保存することをしたいと…

readlineで標準入力を受け付ける(対話型シェル)

Node.jsで書いたコマンドラインツールに対話型のシェルを設けたかったので試してみた。 (参照にしたgistほぼそのままなのだけれども) アロー関数で書き直そうとしたのだけれども詰まったので一旦メモとして残しておく。 var readline = require('readline');…

synapticを使ってXORをニューラルネットワークで再現する

ニューラルネットワーク自作入門を読んでいてサンプルはPythonで書かれているのだけれども、Nodeで書けないかなと思って調べてみたらsynapticというnpmがあったので本で読んだことを踏まえつつXOR(排他的論理和)を再現してみることにした。 www.npmjs.com XO…

Grenacheを利用してマイクロサービスを管理&呼び出ししてみる

BITFINEXというビットコイントレードのプラットフォームを提供している会社がGrenacheというマイクロサービスを管理するフレームワークを提供しているので少し触ってみた。 例によってサンプルプログラム、ほぼそのままなのだけど多少咀嚼した(つもり)。 Gre…

package.jsonでnpm runさせるときに記載するパスについて

package.json 中に scripts を定義してその下に実行させたいスクリプトを指定するとnpm run で実行できる。 例えば、 { "name": "foobar", (snip) "scripts": { "lint": "eslint lib/*.js bin/*", "test": "npm run lint && mocha --require ./test/helper.j…

鶏そぼろの作り方, slack-cli-stream - 徒然日記

鶏そぼろ 晩御飯にそぼろご飯作る。鶏そぼろと卵そぼろを作って好きなだけお茶碗によそいだご飯にかけて食べる方式。雑に以下の様なレシピ。 鶏肉ミンチ 200g 醤油 大さじ2 砂糖 大さじ1.5〜2 みりん 大さじ1 水 1/4カップ 作り方は意外と簡単で上の材料一式…

SlackのReal Time Messaging APIで得られる情報を眺める

自身のSlackアカウントが受領している情報を1箇所に集めてナニカできるかなと思ったとき、まず雑に情報だけ取得してみようと思い試してみた。 github.com というのがあってnpmでも公開されているのでnpm installする。 $ npm install --save @slack/client …

Wordpressのプラグイン中で外部API等へヘッダにAuthorization入れたHTTPリクエストする

Wordpressで独自のプラグインを作成しているときに、そのプラグイン中から外部のAPIなどにHTTPリクエストをする際にWordpressでは以下の様なHTTP APIのヘルパー関数が用意されているのでリクエストを発行できる。 例えばGETリクエストであれば、 wp_remote_g…

Google docsのスプレッドシートに特定フィードの更新内容を追記する

業務でふと必要になって時々似た様なGoogle App Script書いているのですが、毎回書き始めるときに「えーっと、どうだったかな」となることが2回続いたのでエントリとして追加。 以下の様な形で書いてみた。そんなに大したことはやっていないのだけれども少し…

sepiaを利用したテスト中で一時的に機能を無効化する

Node.js向けのwebmockの作成を楽にしてくれるライブラリにsepiaがあります。RubyのVCRみたく一度テストで利用する通信内容を記録してモック化され、2回目以降の通信はそのモックを介して行われる様になるというものです。 github.com sepiaを基本的に使う様…

LINE Notifyで天気を通知させる

LINE Notifyが公開されて少し触ってみたけれどとてもシンプルにLINEで通知を実装することができたので完全に個人用便利ツールとなりつつevacで天気通知させられる様にoutputとして実装してみた。 実装といってもとてもシンプルでAPIにLINE Notify上で取得さ…

nroongaを使ってデータストアして全文検索するまで

昨日の続き。 繰り返しになるが、解決したい課題と現状は、 数ギガサイズのアクセスログがある 上記に対して数万パターンの文字列それぞれが何回出現するかを数え上げたい という状況。なので、このログファイルをngroongaを介してgroongaのデータベースを新…

google-search-rankというnpmを作った

以前紹介した google-search_rank | RubyGems.org | your community gem host のインスパイア。 再発明感あるけどGoogleのCustom search APIを操作するgoogle-searchというクライアントを使って任意の条件で検索をかけて検索順位を取っている。 該当APIで取…

FIFOの作り方を考える

FIFO(First In, First Out) を利用したときにソフトウェアだとArrayにメソッドとして実装されていたり、またKVSに実装されていたりして、あまり中身意識をすることが無いかもしれないけど、定期的に振り返って実装を考えると頭の体操になって楽しい。といっ…

npmのtunnel-sshを利用してSSHポートフォワーディングする

SSHでポートフォワードするのをNode.jsだけで行うことを試してみたのでその際のメモ。 下の例では、local(127.0.0.1)の13306番にアクセスするとSSH接続先のホストから接続できる mysql***.heteml.jp の3306番にフォワードしている。 npmで公開されている tun…

greenkeeper.io を利用してプロジェクトが依存するnpmを最新の状態で保つ

プロジェクトで依存しているnpmを最新に保つのにgreenkeeperというサービスを見つけたので試してみました。 まずはcliツールをインストール。このサービスのカッコイイのがOAuthの部分を除いてコマンドラインで完了するというところ。 $ npm install -g gree…

過去作成したloopbackアプリのloopback-component-explorerへの対応

過去に作成したloopbackアプリの場合、slcコマンドでscafoldすると loopback-explorer と呼ばれるloopbackで作成したAPIをCRUDするUIが含まれた形でアプリが作成されますが、今回この loopback-explorer に大きな変更が加えられて単純に npm update するとア…