notebook

都内でWEB系エンジニアやってます。

jqで特定の値を書き換える

たとえば本番のログから特定のキーだけデータを変えて(マスクして)保存したいみたいなとき 普通にやればsedやawkで頑張ってできそうですがjqであればサクッとできてしまいます 今回下記のサンプルjsonを用意しました sample.json { "hoge": "fuga", "foo":…

HeadlessChrome on AWS Lambdaでスクレイピングする

前回の続き AWSだけならSAMがいいと言われていますがまだserverlessもちゃんと触ったことがなかったのでまずはserverlessで実装してみます 内容としては「LabmdaでHeadlessChrome(Puppeteer)を用いてスクレイピングして結果をSlackへ投稿する」です スクレイ…

HeadlessChrome on AWS Lambda(準備)

いろんな記事で紹介されている通りやり方はいろいろあるのですが 今回はlambdaでchromeを動かすためのNodeのライブラリを見つけたので紹介するだけしておきます alixaxel/chrome-aws-lambda: Chromium Binary for AWS Lambda github.com これはいいと思った…

GitHub Ationsで任意のタイミングでトリガーを発火させる

GitHub Actionsで定期実行をしたいなと思っていたので調べてみたのですが単体では実現できなそうでした ただ任意のタイミングでトリガーを発火させることはrepository_dispatchイベントを使えば可能なようです Triggering a RepositoryDispatch webhook | Gi…

Redashのブックマークレットを書いた

タイトル通りでしかないのですが 以前Redashの操作で不便なところがあったのでブックマークレットを書いて対応してみました。 2つともテーブルのVisualizationで使うものになります version6の段階では対応している状態です フロント側がReactに書き換えられ…

画像からテキストを抽出する(OCR)

親戚の住所リストが欲しかったので親に聞いてみたら年賀状で送られてきたのでテキストじゃなくて「これいちいちタイプするの?」っていうところから自動でやってくれないかなと思い立って調べてみました GoogleDriveでテキスト抽出 GoogleDriveに画像ファイ…

GitHub ActionsでPRがApproveされたらラベルを付ける

GitHub ActionsのMarketPlaceを眺めてたら「PRがApprovedされたらラベルを付ける」というアクションを見つけたので使ってみました Label approved pull requests Label approved pull requests · Actions · GitHub Marketplace https://github.com/marketpla…

VS Codeでターミナルやエディター、エクスプローラー間の移動を楽にする

VS Code でなるべくマウスを触らない設定 - notebook swfz.hatenablog.com の続きです ショートカットの設定ではターミナル↔エディターなど特定のコンポーネント間の移動だけしか設定できなかったのでショートカット結構覚えないといけないかなーと思ってい…

VS Codeで問題の内容をショートカットで表示する

小ネタ VS Code でなるべくマウスを触らない設定 - notebook swfz.hatenablog.com の続きです 僕はVS Codeを使うときは記事書く時、メモ取るときがメインなのですがプラグインにテキスト校正くんを入れています 問題のパネルにlint系の指摘事項がリストで出…

Redashのクエリに特殊文字を使う時の話

Redashでクエリ書いてたときにすこしハマったときの記録 Redashではクエリにパラメータをつけることで結果を動的にすることができます パラメータに/などの文字が入っている場合実際にクエリ文字列には/といったふうにHTMLの特殊文字の数値参照がSQLの…

ローカル実行用のJupyterNotebook環境を整える

統計、分析とかそっちの分野の勉強をはじめました それに先駆けてインタラクティブな実行環境は必要だよねということで形から入っていきます! 今回はJupyterNotebookをdockerで立ち上げて使えるようにするところまでやってみました docker 公式にDockerのイ…

JenkinsでRubycriticの結果レポートをPublishHTMLPluginで表示する

CIの中でプロジェクトのコードの静的解析にRubycriticを使ってレポートを表示しようとしていました 実行に関してはスクリプトを用意して実行するだけなので問題なかったのですがHTMLのレポート表示で躓いたのでメモ Rubycritic 静的解析ツール 内部的には下…

Rails5+複合主キー+FactoryBotでテストデータを作成する

Rails5+複合主キーでやっていくにはcomposite_primarykeyが必要ですが テストコードを書く際にハマったのでその時のメモを残しておきます FactoryBotでテストデータを作成する際の話です composite_prrimarykeyを使ってreportsテーブルを複合主キーで扱うこ…

GitLab CIに入門する

GitLabCIでRspec,Coverage,Rubycriticを実行して結果を表示するところまで

Chart.jsでラベルクリックで表示非表示をコントロールする

chart.jsをつかってグラフを書いていたのですがある日こんな要件が飛んできました 「凡例をクリックすると表示非表示できるけどラベルをクリックしても表示非表示切り替えたい」 !!!!! !!!!! ヒストグラムだと何言ってんだ?って感じの話ですがカ…

2018年振り返り

年のはじめになってしまいましたが年末年始が落ち着いたので振り返り 生活スタイル 結婚して子供が生まれたことでプライベートの生活スタイルがガラッと変わった 休みの日は基本的に家族と過ごすのでインプットの時間が取れない 今まではだらだらやってたん…

Capistrano3+Angularのデプロイコマンドがいつまで経っても終わらない時の対処法

Rails5 + Angular6で開発していてwebpackerを使わずにCapistranoを使ってAngularのビルドコマンドを直に実行していました .....が、待てどくらせどAngularのビルドが終わらない! 大体10分くらい待たされているよう これではデプロイどころではないので調べ…

GoogleAppsScriptで毎日レポートをSlackへ通知する

GoogleAppsScriptで毎日PV数をSlackに通知する

VS Code でなるべくマウスを触らない設定

はじめに この記事はVisual Studio Code Advent Calendar 2018 9 日目の記事です 動機 もともと Vim を開発サーバとローカルでも使っていました そろそろ違うエディターを使って見ようかなーという軽いノリで導入してみ見た感じです 使ってみるとちょっとし…

ag-Gridで任意のデータをコールバックで使いたい

今回もag-Gridについて 任意のデータをコールバックで使いたいときに使える小ネタです gridの一覧にデータを表示したときのデータを保持しておいてその値が変わったらスタイルを適用したいといった場合 環境 ag-grid:18.1.2 angular: 6.1.4 要件としては 数…

ag-GridでCSVとグリッドで出力内容を変えたい

業務で凝ったグリッドを作っていくと大体言われるのが「CSVで落としたい」ですよね 結局CSVか!なんて思ったりもするのですがあったらあったでやはり便利なものです 今回はag-gridでCSVダウンロード機能に関して 公式ドキュメント CSV Export: Core Feature …

Angularで連想配列をngForで回したい

以前カスタム構造ディレクティブを作ってハッシュの各要素をngForのように回すという方法をとったことがありました [angular] ディレクティブについて - カスタム構造ディレクティブを作ってみる - notebook swfz.hatenablog.com いつの間にか公式でkeyValue…

AngularCDK(DragAndDrop)を使ってみる

Angular7がリリースされてCDKにDragAndDropが入ってきました ということで簡単なTODOアプリを作ってみます 内容的にはもはや何番煎じだって感じですが実際に自分で触ってみたほうがいいなと思ったので残しておきます 動作環境 $ npx ng --version _ _ ____ _…

Redashのpivotでフィルターを掛ける

小ネタ 業務でもRedashを使い始めていたので結構クエリとかグラフも作ってたのですがまったく気づきもしなかったので記事にしておきます visualizationでpivotにすると各種カラムにフィルターがかけられるようになってました しかも割と使いやすい SQLでクエ…

Google App Script(clasp)でソーシャルカウントを取得して可視化する

Google Apps ScriptsでTypescriptが超簡単に使えるようになった! - アクトインディ開発者ブログ tech.actindi.net 上記記事を読んでGoogle App Scriptをcliから管理できるようにっていたことを知ったので実際にやってみることにしました 以前から当ブログの…

ag-gridで日付エディタを自作する

ag-gridの公式ドキュメントにサンプルはあるもののその場で作って設定するみたいな感じになっていたのでangularで再利用できるようにコンポーネント化してみます 公式ドキュメント Cell Editing: A Core Feature of our Datagrid www.ag-grid.com 今回使うmo…

angular-cliでバックエンドへプロキシする

Angularでバックエンドが必要な開発をしていて、最初モックサーバなどを立てて先にフロント側に着手したいといった場合 普通にポートを別で指定してリクエストを送るとCORSで怒られます そこでng serveのproxyオプションを使用してバックエンド側にプロキシ…

AngularでデスクトップPWAをインストールしてみる

chrome67からデスクトップPWAが使えるようになったのでいくつかのPWAをインストールしてみたのですが良さそうな感じがしました デスクトップPWAを使ってみた – Takeshi Amano – Medium chromeとは別ウィンドウで起動できるのとelectronでやらなくても良くな…

Cloudformationで設定ファイルを分割する

AWSでの新規環境構築時など便利なCloudformation 一度テンプレートを作ってしまえば同じような環境はサクッと作れてとても便利ですね 最初にcloudformationを使ったときは分割できることは知っていたものの納期などの兼ね合いがあってとりあえず1ファイルの…

html2canvasでhtmlからcanvasに変換して画像として保存する

グラフライブラリとかだとcanvasにグラフを描画してそれを画像としてダウンロードさせる、みたいなことができると思うのですが canvasだったりSVGだったりの書き方を覚える必要があるのでサクッと画像ダウンロードさせたいだけなんだけどそれだけのために覚…