MacでScreenShot(スクショ)&GIF化メモ
Cmd + Shift + 5 で画面収録
$ ffmpeg -i input.mov -r 10 output.gif
MacでScreenShot(スクショ)&GIF化メモ
Cmd + Shift + 5 で画面収録
$ ffmpeg -i input.mov -r 10 output.gif
FN+Ctrol で入力モードが切り替わる
矢印キーの無効は、Fn+Enter で有効化できる
(https://drive.google.com/drive/folders/11_IkTfy9uLe9-DNFtWLBiKS6m5tFVMZq)
いくつか要約すると
Fn + P 長押しでペアリングモードに入りBluetoothで接続できるようになります。Fn+Q, W, Eであらかじめ機器のキーを割り当てておく
USBとBluetoothの切り替えは、FnキーとTABキーを押し、ペアリングは FnキーとPキーを押す。
Bluetoothホスト機器の切り替えは、Fnキーを押しながら、Q, W, E のいずれかを押す。Fn + =+キー でバックライトの点灯、光量のup 光量は0~4の5段階あります。
LEDイルミネーションの明るさは、Fnキーを押しながら、 「[{」キーか「]}」キーを押す。
LEDイルミネーションの種類を選ぶには、Fnキーを押しながら、「|」キー。
LEDイルミネーションの速度を変えるには、Fnキーを押しながら、「;:」キーか「'”」キーを押す。Fn + -ーキー で光量のdown
Fn + winキー でwinキーのロック
Fn + 左のCtrl でファンクションキーの有効化 1を押したらF1、2を押したらF2のように3~0まで同様 他にもEscの無効化など
Fn + ← で デリートキー
Fn + 左のAltを5秒押しで工場出荷状態にリセットというようにFnキーとの組み合わせが多いですが、慣れれば打鍵感の良いキーボードです。
Amazonからの引用では以下のようなややこしい仕様になっています。
数字キーとファンクションキーのデフォルトを入れ替えるには、Fnキーを押しながら左Ctrlキーを押すことで
https://guitarsk.com/pc/archives/1516\
数字キーとファンクションキー(正確にはFnキーを押してでてくるキー)が入れ替わる。
もう一度、Fnキーと左Ctrlキーを押すと、アルファベットキーに割り当てられたFnキーのキーが解除になり
数字キーとファンクションキーだけが入れ替わった状態になる。つまり3モードトグルになっている。
Fn + Enterで、カーソールキーをFn有無を切り替え
フォーム送信の2重を一括で防止するJavaScrpt
これを書いておけばおけなはず。
(※formのsubmitイベントの衝突/前後は考慮していまっせん。)
document.querySelectorAll('form').forEach(function(form){
form.addEventListener('submit',function(e){
if(form.dataset.isSubmit){
e.preventDefault();
return;
}
form.dataset.isSubmit = '1';
e.currentTarget.querySelectorAll('button,input[type="submit"],input[type="image"]').forEach(function(el){
el.style.pointerEvents = 'none';
el.style.opacity = '0.7';
});
});
});
pointer-events: none にして押せなくする。(ついでに透明度さげて押せない感をアピールdata-is-submit を追加してフラグが立っていれば、送信しない。PhpStormでソースコード(エディタ)からプロジェクトバーのツリーにジャンプする方法。

Macのキーリピートスピード調整
ターミナルで以下に設定
defaults write -g KeyRepeat -float 1.8
defaults write -g InitialKeyRepeat -int 10
現在の設定値の確認はreadで
$ defaults read -g KeyRepeat
$ defaults read -g InitialKeyRepeat
ローカル開発環境のLaravel(sail)から、ステージングのLaravel経由でAPIを叩く。
決済APIが特定のIP(ステージング環境)からしか受け付けない状況で、スムーズに開発をしたいため簡易プロキシを作ってみました。
$ composer require guzzlehttp/guzzle
APIのディレクトリをプロキシようのコントローラーに送る。
Route::match(['POST','GET'],'/api/{any}',[\App\Http\Controllers\Dev\ProxyController::class,'index']);
<?php
namespace App\Http\Controllers\Dev;
use GuzzleHttp\Client;
use GuzzleHttp\Psr7;
use App\Http\Controllers\Controller;
class ProxyController extends Controller
{
public function index()
{
$request = Psr7\ServerRequest::fromGlobals();
$proxyUri = $request->getUri()
->withHost('api.example.com')
->withPort(433)
->withScheme('https');
$client = new Client;
dd($proxyUri,$client);
$response = $client->send($request->withUri($proxyUri), ['http_errors' => false]);
echo $response->getBody();
}
}
Docker(sail)利用時にMacでLaravelのデバッグ画面からPhpStormのソースコードにジャンプできない。
Laravelのデバッグ画面のソースコード表示からPhpStormへのリンクができるがエラーとなる。

j
– ※デバッグ画面(ingnition)が/var/www/html/appを参照している
– .envにパスを記載してあげればOK
IGNITION_LOCAL_SITES_PATH='/Users/path/to/your/project'
配列のバリデーションでメッセージを表示する場合に以下のように名前を割り当てていただけど。
public function attributes()
{
return [
'stock.*.jan' => 'JANコード',
'stock.*.grade_id' => '商品グレード',
'stock.*.location_id' => '場所',
'stock.*.note' => 'メモ',
];
}
複数行でえらーだと以下のようにバグっぽくなってしまう&どこかよくわかんなくなるので、行数をどうにかいれられないかあと
・このJANコードの値は既に存在しています
・このJANコードの値は既に存在しています
・このJANコードの値は既に存在しています
・このJANコードの値は既に存在しています
もう少しスマートにできないかどうか。
<div class="alert alert-danger">
<ul>
@foreach( $errors->toArray() as $key => $errors)
@foreach( $errors as $error)
@if(preg_match('/(\.)([\d]+)(\.)/',$key,$matches))
<li>{{ sprintf('%s(%s行目)',$error,intval($matches[2])+1) }}</li>
@else
<li>{{ $error }}</li>
@endif
@endforeach
@endforeach
</ul>
</div>
Laravel9 langフォルダのメッセージをPHP/JavaScriptで共有したい。
/lang/ja/messages.phpを添付のように書いていたところ.
nodejsでコンパイル前のソースから同じ文言を共有したくなりました。
return [
'login' => [
'success' => 'ログインしました。',
'fail' => 'ログインに失敗しました。'
],
];
そこで、/lang/ja/以下のPHPをJSONに変換してJavaScriptの定数のように使えるようにするコマンドを作成しました。
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\File;
class YamaLabLangMesJsonCommand extends Command
{
protected $signature = 'yamalab:lang_mes_json';
protected $description = 'langファイル(PHP)をJSONに変換し保存';
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$langdir = base_path('lang/ja');
if (is_dir($langdir)) {
$files = scandir($langdir);
if (!empty($files)) {
$langjs = [];
$files = array_filter($files, function ($f) {
return strpos($f, '.php') !== false;
});
foreach ($files as $f) {
$phpArr = include base_path("lang/ja/$f");
$json = json_encode($phpArr, JSON_UNESCAPED_UNICODE);
$name = str_replace('.php','.json',$f);
$varName = '__'.str($name)->replace('.json','')->upper().'__';
$row = sprintf('var %s = %s;',$varName,$json);
$langjs[] = $row;
}
$langjs = implode("\n",$langjs);
File::put(resource_path('js/lang.js'), $langjs);
}
}
return Command::SUCCESS;
}
}
2022年9月時点WebP画像対応のOSブラウザのメモ
基本殆どのブラウザが対応してきているので、どんどん進めたい所。
ほとんど大丈夫と思われます。
PCはSafariのためにJPGなども対応、SPはWebPのみで微細なアクセスは無視する。
<picture>
<source srcset="{PC用WebP}" type=”image/webp”>
<source srcset="{PC用JPG}" type=”image/jpg”>
<img src="{SP用WebP}" alt="">
</picture>
Powered by WordPress & Theme by Anders Norén