notebook

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

TypeScriptの組み込み型関数

今回はTypeScriptの組み込み型関数について ※3.4時点 型をしっかり付け始めていろいろと直面する問題が多くそのたびに調べていった結果TypeScriptの組み込み型関数的なものが用意されていることを知りました これを知らずに自前で型を作ろうとしてむだに考え…

Conditional Typeのメモ書き

今更ながら頑張るTypeScript(strict: true)をやろうという事になったのでメモ書きをつらつらと書いていきます。 今までやりたい放題anyをぶちこんでた無法地帯に秩序をもたらすべくstrictに対応させていくのはなかなか大変です。 既存のコードに型を付けてい…

Cypress + CircleCIの高速化Tips

簡単なテストケースをいくつか書いただけで5分以上掛かるようになってしまったのでチューニングの機運! ということで今回はキャッシュについて バイナリのキャッシュ Cypressはバイナリのインストールをnode_modulesではないところにインストールしています…

ag-Gridでカスタムフィルターを定義する

ag-Gridのバージョンアップ作業でchangelogを眺めていたらいくつか気になったものがあったので試してみます 今までだとカスタムコンポーネントでフィルターをフルカスタムすることもできますがちょっと条件変えたいといった場合にまでコンポーネントを用意し…

AngularプロジェクトにCypressを入れてみる

今回はCypressをAngularのプロジェクトに入れて実際にテストを書いてみます 実際にブラウザを起動して操作するところが見れたりみたいな部分は他の記事でも紹介されているので今回は割愛して主にpluginを入れてテストしてみる話をしたいと思います Cypress J…

CypressのDockerイメージを日本語対応させる

GW前からちょこちょこ触りだしていたE2EのテストフレームワークCypress Angularのサンプルプロジェクトに入れて少しづつ試していたのですがCircleCIでテスト回すようにしてみたらなんと日本語表示ができない状態でした 少し調べてみたところnotofontを入れる…

dockerコンテナ内部からポートフォワーディングしているポートへアクセスする

開発でdockerのコンテナからdockerを動かしているVMのプロセスにアクセスしたいみたいなよくあるパターンで少しハマったので残しておきます 単純なホストへのアクセスであればextra_hostsだけでOKでした docker-compose.yml app: extra_hosts: - "devhost:$D…

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 _ _ ____ _…