PRESSMAN*Tech(プレスマンテック)

東日本橋の制作・開発会社 プレスマンのスタッフブログ

カテゴリー:Tech & Tips

PuppeteerをLambdaで使う前段階、serverless-chrome/lambdaのnpmインストールでハマったときの解決法

Node.js初心者の自分が以下の先輩の記事を読み、「Puppeteer on Lambdaをやってみたい!」と思って試したところ、Lambdaにデプロイする前にハマったので解決法を紹介します。

Puppeteer on LambdaでWebページのキャプチャを撮る

前提

  • Node.jsとnpmがインストールされている
  • Node.jsのバージョンはv8.10.0である

下記のコマンドでバージョンをチェックします。

$ node -v add
v8.10.0

ディレクトリ構成がわからない

自分はNode.jsのプロジェクトを作成するのが初めてだったので、ディレクトリ構成がわかりませんでした。まずはPuppeteer用のディレクトリを作成し、その中で下記の2ファイルを作りましょう。

├── .npmrc
└── package.json

プロジェクトごとに.npmrcを設定するのがベターです。.npmrcとpackage.jsonの内容は後述します。

続きを読む

Admin Columnsの便利なadd on

はじめに

Admin Columnsとは、
WordPressのプラグイン。
WordPressの管理パネルで投稿、ユーザー、コメント、メディアリストの列を管理、整理します。WordPressの管理画面を美しく見やすい概観に変換します。
Admin Columns | WordPress.org
有料版もあります。
Admin Columns Pro – Manage columns in WordPress

独自カラムを作成するadd onの作成について

githubで公開されているので、
使い方について少し説明しようと思います。
(自分の備忘録として、とっておく感じ)
codepress/ac-column-template: Admin Columns – Column Template
続きを読む

今後、WordPressで標準搭載されるGutenbergについて

はじめに

社内勉強会で行われたGutenbergについて、
ご紹介しようと思います。

Gutenbergとは何か


新しいエディタのプラグインです。
WordPress 5.0から標準搭載予定です。

続きを読む

PHPUnitをdockerコンテナで動かす

はじめに

PHPUnitとは、
単体テストを効率よく書くためのテスティングフレームワーク(ツール)
PHPUnit マニュアル

PHPUnitをdockerコンテナで動かす

使用するファイルは、
phpunit
を使用します。
続きを読む

PHPUnitのデータプロバイダとジェネレータ関数を使用したテストケースの作成術

はじめに

PHPUnitのデータプロバイダとは
アサーションを何度も書く必要がなくなる便利なアノテーションのこと。
PHPUnit マニュアル – 第2章 PHPUnit 用のテストの書き方

ジェネレータ関数とは
ジェネレータ関数は一度だけ値を返すのではなく、
必要に応じて何度でも値を変えて返すことができる便利な関数のこと。
PHP: ジェネレータの構文 – Manual

使い方を簡単な計算式のテストで比較

続きを読む

phpの処理を高速に!

インクリメントとデクリメントは前置

//遅い
$i++;
$i--;

//早い
++$i;
--$i;

約1.24倍の高速化

型変換は関数よりキャストする

//遅い
$tmp = intval($val);

//早い
$tmp = (int)$val;

約2.1倍の高速化
続きを読む

フロントエンドの処理を高速化!

問題提起

受託案件でフロントエンドの処理が遅いことでリファクタリングが必要になりました。

解決方針

まずチームで考えた結果、フロント側に描画する前に
ajax通信を使ってDBから取得したデータを処理するロジックに問題があるのではないか、というものでした。

が、自分的に描画部分に問題があるんじゃないかと思い、
ロジックを修正する前に描画部分の処理に着目しました。
js、jQuery構文で処理を高速化する書き方があるんじゃないかと考えたからです。
続きを読む

Puppeteer on LambdaでWebページのキャプチャを撮る

Puppeteer on Lambda

AWS Lambdaで遂にNode v8.10を使用できるようになりました。
これでPuppeteerが使える!と意気揚々としていたのですが、いつの間にか必須要件がv6.4.0以上となっていました。以前はv7.10以上必須と書かれていたはずですが・・・

いきなり出鼻を挫かれましたが、気を取り直していきます。

はじめに:Puppeteerとは

Google謹製のGoogleChromeを自動操作するライブラリです。Nodeで動作します。
「このサイトにアクセスして、このボタンをクリックして・・・」といった操作を自動で行うことができます。雑に言うとExcelのマクロみたいなものです。
Chrome59で実装されたヘッドレスモードに合わせる形でプロジェクトが立ち上がり、主にWebアプリの自動化テストの分野で注目されています。
似たプロジェクトにPhantomJSChromelessがあります。

続きを読む

Slackに溜まり続けたファイルをLambdaでサクッと消してみる

はじめに

こんにちは。CTOの穴原です。 弊社では1年半くらい前からSlackを導入し、使用しています。 おかげでリモートワークをする方も増え、働き方も多用になってきました。
(特にママさんワーカーが増えました!)

Slackをフリープランで使用していると、ストレージ容量制限を超えて怒られてしまいます。 最近アップロードしたファイル以外は一括削除したい + 継続的に削除が走るようにしたい、ということで、SlackAPI × Lambdaで実装してみました。

Slack API を使ってみる

まずは、Slack APIを使ってみます。

今回はfiles.listでファイルの一覧を取得し、files.deleteで対象のファイルを削除する、という流れでやってみようと思います。 (APIの使い方はここ

Slack APIのメソッドの引数はtokenがRequiredになっているので、取得しておきましょう。*1 (tokenの取得はここから)

Lambda

Lambdaで関数を作成します。 SlackのBluePrintも用意されているのですが、それほど難しくないので、今回は一から作成しました。

Nodeのコードはこんな感じ。

続きを読む

ノー残業デーに蛍の光をMacから自動で流して『帰ろうコール』

ひと月前から弊社では毎週水曜日を『ノー残業デー』に設定しました。

『ノー残業デー』を設定するのは簡単ですが、実際に運用するのはなかなか大変です。

帰るのを促すためにMacを使って蛍の光を自動的に流して、『帰ろうコール』もするようにしてみました。

ノー残業デーに蛍の光を流して帰ろうコールをする

▲ 先頭へ戻る