IT業界の技術をメモ・情報公開できる
AnthropicがClaude Sonnet 5をリリース
同モデルは自律的に動作するよう設計されており、例えば計画を立てたり、ブラウザや端末などのツールを使用したりすることが可能。 Claude Sonnet 5とは 最上位モデルであるOpus 4.8に匹敵する推論・コーディング能力を、約6割の低コストで実現したモデル。 Opus 4.8は最高難度のタスクで安定感を発揮する一方、Sonnet 5は処理速度と優れたコストパフォーマンスを両立している。 Opus 4.8 最も高度な推論力と複雑なデータ解析、サイバーセキュリティ関連タスク、最難関のコーディングにおいて最高峰の精度を誇る。 Sonnet 5 一部のベンチマークやタス
Gemini 3.5 Flashに画面操作機能「Computer Use」を統合
Gemini 3.5 FlashでAIがコンピュータ画面を認識し、クリックやキーボード入力などの操作を生成する「Computer Use」を組み込みツールとして利用できるようになった。 Webサイトでの反復的なデータ入力やフォーム入力、Webアプリケーションやユーザーフローの自動テスト、複数サイトをまたいだ調査などの用途が挙げられる。 画面内に隠された悪意ある指示や、取り消しにくい操作をどう扱うかが課題になる。 重大な判断、機密データ、深刻な誤りを修正しにくい操作を伴う用途では、利用可否を慎重に判断する必要がある。 claudeで作成したものをGeminiでフォームなどのテストがで
mb_send_mail()
例) // 日本語メールで必須の設定 mb_language("Japanese"); mb_internal_encoding("UTF-8"); // 送信先メールアドレス $to = "test@example.com"; // 件名 $subject = "テストメール"; // 本文 $message = "これはテストメールです。"; // 送信元などのヘッダー $headers = "From: sample@example.com"; mb_send_mail($to, $subject, $message, $headers); 送信
MutationObserver (DOMに変更があった瞬間だけコールバック)
MutationObserver は 常に監視し続けているわけではありません。 ・setInterval のように「定期ポーリング」しない ・DOMに変更があった瞬間だけ コールバックが呼ばれる ・ブラウザ内部の DOM変更フックで動く(イベント駆動) const init = (el) => { if (el.dataset.lottieInitialized === '1') return; el.dataset.lottieInitialized = '1'; console.log('test'); }; const observer =
EXPLAINのExtra
<Using index>(最良) ・テーブルを読まずindexだけで完結 ・最速 <Using index condition>(良) ・index 上で WHERE の一部を評価 ・テーブルアクセスを減らす <Using MRR>(良) ・ランダムI/Oをまとめて読む ・InnoDB最適化 <Using where>(普) ・index で絞れず ・テーブル行を読んでから条件判定 <Using temporary>(注意) ・一時テーブル作成 ・GROUP BY / ORDER BY で発生 <Using filesort>(危険) ・i
ファイルアップロードの拡張子制限
public static function errorCapacityover($files) { $error = false; foreach(array('rirekisho','shokumukeirekisho') as $val) { if(empty($files[$val]['name']) ){ continue; } $filesize = filesize($files[$val]['tmp_name']);
jsで使えるメールアドレスと電話番号の正規表現
<メールアドレス> const reEmail = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/; function isValidEmail(email) { return reEmail.test(String(email).trim()); } <電話番号> ・人間向けのゆるいパターン const rePhoneLoose = /^[+\d]?(?:[\d().\s-]{6,30})$/; function isValidPhoneLoose(raw) { if (!rePhoneLoose.test(
PHP PDF作成・出力
代表ライブラリ:chrome-php/chrome 概要:PHP で Headless Chrome/Chromium を起動・制御(ページ遷移、HTML投入、PDF/スクショ生成、要素操作、JS実行など)。MITライセンス。 入手:GitHub/Packagist に公式。 特徴:CDP を直接話すので Node 不要。Puppeteer 相当の機能を PHP から扱える [Chrome/Chromium を入れる] sudo dnf install -y chromium ・日本語フォントのインストール “入手できる日本語フォント”を探す # 候補を検索 dnf
aws実装(LAMP環境構築)
1、アカウントを作成する ↓ 2、IAMで「管理者ユーザー」作成 (目的) ・ルートアカウントは請求やサービス解除など危険操作も全部できるため、常用せず保管用にする ・普段の運用はIAMユーザーで行い、必要に応じて権限を付与 (方法) ・コンソール上部検索バーで「IAM」と入力して IAM サービスを開く 1.左メニューから 「ユーザー」 → 「ユーザーを追加」 2.「ユーザー名」:〇〇〇 ※メールアドレスでなく任意文字列 3.「AWS マネジメントコンソールへのアクセスを許可」 にチェック 4.「Identity Center でユーザーを指定する 」にチェック
kotlinでセーフエリアを避ける方法
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) //この部分 WindowCompat.setDecorFitsSystemWindows(window, false) setContentView(R.layout.main) // 以降の処理... }
EXPLAINのtypeカラム
悪い順(悪い方から) ALL > index > range > ref > eq_ref > const > system ALLはフルテーブルスキャンなので、数万件以上のテーブルでALLは危険サイン。
EXPLAIN
クエリの前にEXPLAINをつけることでどのインデックスが使われているかがわかる 例) EXPLAIN SELECT * FROM テーブル名
MySQLのutf8mb4
▼utf8mb4_general_ci 一般的な用途向け / 大文字小文字を区別しない(CI) / アクセントも区別しない(é = e) ▼utf8mb4_unicode_ci Unicode 標準に基づいた比較 / 一般的な用途向け / 大文字小文字を区別しない(CI) ▼utf8mb4_unicode_520_ci Unicode 5.2 に準拠 / 新しい文字の対応が追加 ▼utf8mb4_0900_ai_ci MySQL 8.0 のデフォルト / Unicode 9.0 準拠 / アクセント無視(AI) ▼utf8mb4_bin バイナリ比較 / 大文
required属性
required属性をつけるとフォーム送信するときにブラウザがエラーメッセージを表示する required属性が使える要素 <input type="text"> <input type="email"> <input type="password"> <input type="number"> <input type="file"> <input type="checkbox"> <input type="radio"> <textarea> <select> required属性の注意点 hidden や display: none の要素には適用されない
HTMLの自動補完
inputタグに設定できるautocomplete一覧 | off | autocompleteを許可しない | -------------------------------------- | on | autocompleteを許可する | -------------------------------------- | name | 氏名 | -------------------------------------- | given-name | ファーストネーム | -------------------------------------- | additio
セキュリティ対応
・セキュリティヘッダ "HTTP Strict Transport Security (HSTS)" の設定 HSTSは、サイトがHTTPではなくHTTPSでしかアクセスできないようにブラウザに強制するヘッダーです。 ・セキュリティヘッダ "X-Frame-Options" の設定 外部サイトからフレーム呼び出しできないようにする ・X-Content-Type-Options: nosniff の設定 ブラウザが MIMEタイプを推測せず、サーバーから送信された Content-Type ヘッダーに厳密に従います。 ・バージョン情報の(x-powered-by)削除
コンテナークエリー(@container)
コンテンツ幅で、cssの条件分岐を設定できる。 メディアクエリーのような使い方
Flutter基礎 Column・Row
Column 子ウィジェットを縦に並べるためのウィジェット 例 Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text('こんにちは'), Text('こんばんは'), ], // 子ウィジェット ), オプションは他にもある Row 子ウィジェットを縦に並べるためのウィジェット 例 Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Text('こん
Postfixのdkim対応 dmark対応
【opendkimを利用しての対応】 ・epelレポジトリがなければインストール yum -y install epel-release ・opendkimパッケージの確認 yum search opendkim ・opendkimが確認できたら、詳細確認 yum info opendkim ・opendkimインストール yum -y install opendkim ・opendkimのインストール確認 yum list installed | grep opendkim ・キーペア保存用のフォルダ作成 mkdir /●●/●●/●●
Dart トークンの取得
pubspec.yaml firebase_messaging: 最新のバージョン flutter_local_notifications: 最新のバージョン main.dart _firebaseMessaging.getToken().then((String token) { print("$token"); }); この処理を入れることでトークンを取得することができる
android WebView アプリ開発
https://androiddevelopers.hatenablog.com/entry/2020/06/23/224900 activity_main.xml に下記は追加 import android.webkit.WebView; import android.webkit.WebViewClient;
ウェブアクセシビリティ
[重大対応] ・自動再生はさせない 音声を自動再生することや強制的に再生させることは避けましょう。また、自動再生する音声は3秒以内に収めましょう。自動再生が3秒以上続く場合は利用者が止められるようにする必要があります。 音声の流れるページや動画広告などで自動再生する場合は、一時停止またはミュートボタンをつける ・袋小路に陥らせない キーボード操作だけで利用しているときに、一度フォーカスしたら抜け出せないコンテンツを作らないようにしましょう。たとえばモーダルダイアログのようなフォーカスを制限するコンテンツで起きやすいです。 ダイアログ内にフォーカス可能な閉じるボタンを置くことで、
メンテ画面 htaccess
https://webtan.impress.co.jp/e/2009/06/16/5880 ErrorDocument 503 /maintenance.html <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} !=/maintenance.html RewriteCond %{REMOTE_ADDR} !=192.168.0.4 RewriteCond %{REMOTE_ADDR} !=192.168.0.5 RewriteRule ^.*$ - [R=5
ChatGPT AI component generator
コンポーネント自動作成 https://www.webcreatorbox.com/webinfo/chatgpt-ai-component-generator https://ai2ui.co/
SSH アクセスログ確認
IP毎に件数順 grep -Eo "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" ssl_access_log | sort | uniq -c | sort -r | head -n 15 ファイル出力 >> access_log-result https://humo-life.net/memo/doku.php?id=%E3%82%B5%E3%83%BC%E3%83%90:linux:%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89:%E3%82%A2%E3%82%AF%E3%82%BB%E3%