ペチパーノート

WEB開発系Tipsブログです。

puppeteerでMyProteinの価格を取得するツールを作った

きっかけ わたくしMyProtein社のプロテインを飲んでいます。 定期的にセールをやっているのですが、 種類毎に価格が違ったりします。 そこでスクレイピングで価格を抽出するツールを作りました。 法律的な話 MyProteinの利用規約に「スクレイピングを禁止す…

iOSからAWS SNSでPush通知するための手順

1. Appleサイトで証明書関連の準備 開発アプリのAppIDを登録 2. APNsの証明書作成 Macでキーチェーンアクセス.appでCSRを作成 AppleサイトでCSR (証明書署名要求)をアップする cer(証明書)をダウンロードする cerをダブルクリックすると証明書の追加ダイアロ…

Laravelのルーティング設定

様々なルーティング設定 こんなコントローラがある想定 Controllers └PersonController.php ■よくあるルート Route::get('person/edit', 'PersonController@edit'); Route::post('person/edit', 'PersonController@update’); ■名前付きルート ルート設定に名…

Laravelでの暗号化設定

鍵はConfig/app.phpのkeyに設定されているものが使われる 暗号化アルゴリズムはcipher(サイファー)で設定できる 'key' => env('APP_KEY'), 'cipher' => 'AES-256-CBC',

Laravelのデバッグツール (コードプロファイラ)

画面にデバッグ用のバーを表示できる。 表示/非表示は.envで切替可能。 github.com

Laravel モデル

モデル名は単数形 LaravelではModelsディレクトリとかはないが、作ってクラスを置くのがよさそう。 例 app/Models ├── User.php

Laravel サービス層とは?

サービスとは各クラスから提供される機能 コントローラからはサービスクラスを呼び出し、サービスクラス内でモデル操作などを行うイメージの解釈 下記、記事が大変参考になる。感謝。 Service層を意識したLaravelのMVCモデル(概念編) - Qiita Service層を…

Laravel 定数を使うのは.envだけではダメ

.envにも書いて API_URL=https://example.jp/list config/xxx.phpにも書く(configでenvから取得する) env('API_URL'), ]; 使いたいところでconfig()で取得する public function __construct() { $this->api_url = config('api_url'); $this->http_method = …

LaravelでCORS(クロスオリジン)対応する方法

これを使えばOK github.com

Laravel サービスコンテナとサービスプロバイダ

結構難しい。ぼんやりと。 サービスコンテナ Laravelはモデル等のクラスをコントローラでnewしなくてよい コントローラの引数に書いてやればよい (注入) それを実現するのがサービスコンテナ。サービスとは”特定の機能を持ったクラス”のことである サービス…

Laravelのfacade(ファサード)とは?

こちらが大変参考になった。 ファサードとは、クラスをインスタンス化しなくてもstaticメソッドのようにメソッドを実行できるようにしてくれる機能のこと。 【Laravel】ファサードとは?何が便利か?どういう仕組みか? - Qiita GOFのデザインパターンとは関…

Laravelのシーディング

シーディングとは初期データ登録の仕組みのこと php artisan make:seeder PeopleTableSeeder これでdatabses/seeds/PeopleTableSeeder.phpができる このファイルに初期データ登録処理をかく これだけでは使えないのでDatabaseSeeder.phpに登録する public fu…

WebAuthn APIのパラメータ調査

認証器の登録 navigator.credentials.create() { "publicKey": { "rp": { "id": "localhost", "name": "検証用ローカルホスト" }, "user": { "id": [101, 100, ...], "name": "taro", "displayName": "太郎" }, "challenge": [101, 100, ...], "pubKeyCredPa…

OpenID Connect (OIDC)の概要理解

ソーシャルログインの仕組みの標準仕様 FacebookやYahoo側をプロバイダと呼ぶ IDトークンは認証情報のトークン (認証されたという事実とユーザーの属性情報を各所に引き回すため) IDトークンを発行する係はOpenIDプロバイダー IDトークンはJWTの拡張 OpenID …

OAuth2.0とOIDCの使いみちの違い。の理解

OAuth2.0の使いみちは? Twitter等の外部サービスが管理するリソースにユーザーのお許しを得た上でアクセスしたい ユーザーに成り代わってツイートするとか 逆の立場であれば、自分たちの管理するリソースにユーザーのお許しを得た上でアクセスしてほしい プ…

OAuth2.0は認証の仕様ではない。の理解まとめ

OAuth2.0はなぜ認証と間違えられる? OAuth2.0は認可の仕様である 権限を移譲するという考え方 認証ではないが結果的に認証するので使われている 「クライアントアプリに権限を与えますか?」の部分は、実際にはソーシャルログイン画面用のような認可画面を…

php-cs-fixerでソースコードを自動整形

複数人で開発する場合のソースコードについて、 コーディングルールは結局形骸化してしまうため 自動で整形したほうがよい。 github.com # インストール $ composer require --dev friendsofphp/php-cs-fixer # ドライランを行い差分を見る (実際には変更さ…

PHPでWebAuthnやってみた

素のPHPとJavaScriptでWebAuthnを試したのでGitHubにあげています。 github.com こちらのライブラリを使用しています。 GitHub - web-auth/webauthn-lib: [READ ONLY] Webauthn library 書いたソースはこの辺です。 html/js/webauthn.js html/*.php 関連記事…

世界一わかりやすいFIDOとWebAuthn

「FIDO?よくわからん…」はい。僕です。 会社の勉強会がちょうど自分の番でしてお題として勉強しました。 せっかくなので作った資料を公開します。

docker-compose コマンドまとめ

全部ビルド docker-compose build サービス名を指定してビルド docker-compose build [サービス名] 全部起動 docker-compose up 全部起動(デーモン状態) docker-compose up -d サービス名を指定してビルド docker-compose up -d [サービス名] 全てのサービス…

ubuntuでサービス自動起動

ステータス確認 $ systemctl status td-agent ● td-agent.service - td-agent: Fluentd based data collector for Treasure Data Loaded: loaded (/lib/systemd/system/td-agent.service; enabled; vendor preset: enabled) Active: inactive (dead) since F…

Javascript 非同期処理の歴史

コールバック地獄から抜け出す方法 ES2015のPromiseを使った方法 ES2015のGeneratorを使った方法 ES2017のasync awaitを使った方法 サンプルソース /** * Promiseを使った方法 */ const fs = require('fs'); // Promiseを返す関数を定義 function readFile_p…

Node.js importとrequireの違い

requireはnode.jsで使うもの → CommonJS(CJS)というモジュールシステム importはブラウザでes2015から使えるもの → ECMAScript Modules(ESM)というモジュールシステム ただしnode v14以降はimportが使える

nodebrewでnodeをインストール

nodebrewを使用すれば複数のバージョンを管理できる。 インストール curl -L git.io/nodebrew | perl - setup .bashrcに追記 export PATH=$HOME/.nodebrew/current/bin:$PATH .bashrcを読込 source ~/.bashrc 使えるバージョン確認 nodebrew ls-remote v0.0.…

空ファイルを一括削除

find {dir} -empty -delete やってみる。 $ touch test1.txt $ touch test2.txt $ echo 'hoge' > test3.txt $ ll -rw-rw-r-- 1 vagrant vagrant 0 8月 28 13:25 test1.txt -rw-rw-r-- 1 vagrant vagrant 0 8月 28 13:25 test2.txt -rw-rw-r-- 1 vagrant vagr…

Vagrant コマンド虎の巻

バージョン確認 vagrant -v Vagrant 1.7.2 雛形を作成(Vagrantfileの作成) vagrant init ※Vagrantfileにいろいろ設定してvagrant upでゲストOSが立ち上がる! boxの追加(OSイメージの追加) vagrant box [box名] [boxurl] vagrant box add opscode-centos-6…

nc (netcat)でポートを指定して疎通確認

MongoDBのポート空いている? nc -v -w 1 {IPアドレス} -z 27017 成功例 $ nc -v -w 1 localhost 80 Connection to localhost 80 port [tcp/http] succeeded! 失敗例 $ nc -v -w 1 localhost 81 nc: connect to localhost port 81 (tcp) failed: Connection …

nologinユーザーでログインする

sudo su - jenkins --shell=/bin/bash

特定キーワードが含まれたプロセスを殺す

pgrep -f 'キーワード' | xargs sudo kill

topコマンド 虎の巻

top - 13:14:41 up 1:39, 2 users, load average: 0.01, 0.01, 0.00 Tasks: 110 total, 1 running, 109 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.8 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 981.1 total, 150.2 free, 160.…