chevron_left

メインカテゴリーを選択しなおす

cancel
arrow_drop_down
  • mac - ファイルのmd5ハッシュ値を確認する

    macでファイルのmd5ハッシュ値を確認する場合は、 md5 コマンドが標準で使える。 コマンド md5 sample_file.txt 実行結果 MD5 (sample_file.txt) = d41d8cd98f00b204e9800998ecf8427e -q オプションを付けると、ハッシュ値だけ出力する。 コマンド md5 -q sample_file.txt 実行結果 d41d8cd98f00b204e9800998ecf8427e ちなみにlinuxでは、md5sum というコマンドが使える。

  • ChatGPTを試した。

    最近SNSで注目されているChatGPTを試してみた。 例えば、「年月日を引数に取り、曜日を返すpythonの関数を作って」とAIに問いかけると、レスポンスとして、そのものずばりpythonの関数の定義が返ってきてびっくり。 また、別の例では文章を要約して、と問いかけると指定した文章を要約してくれたり。なかなかすごい。 ちょっとした案内はこれである程度カバーできそうな気がする・・・ 例えば、歩くペッパーくん+AIチャットを組みわせると、施設の案内とかできそう。 chat.openai.com

  • PHP: コンストラクタのプロモーション

    PHP8.0以降コンストラクターの引数を、オブジェクトのプロパティに設定することができるようになった。 例えば、$valueというプロパティにコンストラクタで値を代入する場面を考えてみる。 class Hoge { public string $vlaue; public int $num; public function __construct(string $value, int $num) { $this->value = $value; $this->num = $num; } } var_dump(new Hoge('Hello', 1)); 実行結果 object(Hoge)#1 …

  • PHP - テキストに数行おきに空行を挿入する

    テキストに数行おきに改行を挿入する方法を調べた。 処理のイメージは次の通り。 入力テキスト あああああああああああ いいいいいいいいいいいいい うううううううううううう ええええええええええええ おおおおおおおおお かかかかかかかかか 出力テキスト あああああああああああ いいいいいいいいいいいいい うううううううううううう ええええええええええええ おおおおおおおおお かかかかかかかかか 実装例は下記の通り。 <?php $text=<<<EOS あああああああああああ いいいいいいいいいいいいい うううううううううううう ええええええええええええ おおおおおおおおお かかかかかかかかか E…

  • twitterの広告を消すブックマークレット

    広告部分のhtmlには data-testid="placementTracking" という属性が設定されているので、その属性を持つDOM要素を非表示にすれば広告を消せる。 javascript:(() => { const e = document.createElement('style'); e.innerText = '[data-testid="placementTracking"]{display:none;}'; document.head.appendChild(e); })(); スタイルタグを動的に生成して、そこに以下のCSSを書き込む。 [data-testid="pl…

  • xpathの記述方法を調べる(途中)

    記述 内容 .. コンテキストノードの親を選択する . コンテキストノードを選択する * コンテキストノードの全ての子要素を選択する / ルートノードを選択する。 //hoge ルートノードの子孫全体から、要素 hoge を全て選択する。 hoge 要素 hoge を選択する hoge[fuge] 要素 hoge のうち、子要素 fuge を1つ以上持つ要素を選択する。 hoge[fuge="moge"] 要素 hoge のうち、子要素 fuge の文字列が moge である要素を選択する。 hoge[@attr] 要素 hoge のうち、属性 attr を持つものを選択する。

  • html - datalistでお手軽コンボボックス

    webでコンボボックスを実装するのは面倒だけれども、 実はhtmlには <datalist> というタグがあって、これを使うと手軽にコンボボックスを実現できる。 コード例) <input list="languages"> <datalist id="languages"> <option value="COBOL"> <option value="Go"> <option value="Haskell"> <option value="Java"> <option value="JavaScript"> <option value="Kotlin"> <option value="Perl"…

  • @theme-ui/mdx/dist/theme-ui-mdx.cjs.dev.js to a dynamic import() which is available in all CommonJS modules.

    next.js 12 のチュートリアル進めている。 theme-ui を追加したところで、下記のエラーが発生してビルドできなくなった。 Error: require() of ES Module /Users/h.hashimoto/Documents/src/projects/nextjs/next-blog/node_modules/@mdx-js/react/index.js from /Users/h.hashimoto/Documents/src/projects/nextjs/next-blog/node_modules/@theme-ui/mdx/dist/theme-ui-md…

  • Laravel Fortifyでマルチログインを実装する時のポイント

    ネットに転がっているチュートリアルやドキュメントは断片的な情報が多かったので、自分が実現したい要件に沿った実装はどうすれば良いのか、というところがわかるまで随分時間がかかった。 細かい事はそのうちサンプルの実装を作ってみようと思うけど、ポイントは下記点。 ちゃんとFortifyの設定を理解する URLで切り分ける リダイレクト先のURLが直書きの箇所をカスタマイズする セッションの分離(guard設定しただけじゃ不十分) チュートリアルやサンプル実装に頼るのをやめて、頑張ってFortifyの実装を読む ちゃんとFortifyの設定を理解する 自分はこの事を軽くみていたので、当初カスタマイズしな…

  • ブラウザ上のURLの書き換え

    ブラウザのURLバーに表示されているURLを書き換えが必要になったので調べたところ、Javascriptの下記メソッドが使える事が分かった。便利なメソッドなので活用していきたい。 history.pushState() history.pushState history backの履歴に書き換えたURLを追加する。 state pushStateで生成された履歴に紐づくJavascriptのオブジェクトを指定する。 unused 歴史的な理由で残されており、省略不可である。 空文字 '' を指定すれば良い。 url そのものずばり履歴に記録するURLである。 現在のURLと、Same Orig…

  • Typescript: クラス

    Typescriptのクラスについて。 class Item { // (1) public name: string public price: number private id: number // (2) constructor(name: string, price: number, id: number) { this.name = name this.price = price this.id = id } // (3) info(): string { return `name: ${this.name}, price: ${this.price}` } } プロパティの宣言 …

  • Typescript: 関数のオーバーロード

    Typescriptには関数をオーバーロードする事できる。 最初にオーバーロードを使わず個別に関数を定義してみる。 function multipleValue(value: number): number { return value * 2 } console.log(multipleValue(5)) function multipleValue2(value: string): string { return value + value } console.log(multipleValue2('Hello')) 次に関数のオーバーロードで実装してみる。 function multip…

  • Typescriptの記事まとめ

    Typescriptについて書いた記事のリンクをまとめたみた。 型 Typescript: 型 Typescript: 型エイリアス Typescript: 関数のオーバーロード 基礎文法 Typescript: クラス

  • 勇者一行から追放される系統の物語に感じる違和感

    勇者一行から無能扱いされて、勇者のパーティーから追放されるパターンのお話を漫画やラノベでよく見かけるけど、結構な違和感を感じません? そもそも、パーティーメンバーのスキルを正確に見定められないような勇者に一体何ができるのだろう?ってなもので。 メンバーのスキルを正確に把握しないような人間に戦略なぞまともに立てられるわけもないだろうし、そんな状況で魔王討伐なんか行ってみたら、ぼこぼこにやられるのがオチだろう、という風に思えてしまう。 『勇者から追放される』という設定を無理やり使っているだけで、その設定の現実味が薄く感じるお話が多いように思う。

  • React18を学習する

    最近React18を勉強している。 とりあえず、学習メモとして学んだことの概要だけ書き出してみる。 props はコンポーネントに値を渡す(immutable) state はコンポーネントが持つ状態を管理する (mutable) Function Component での定義が推奨されている Class Component は今は推奨されていない模様 vue.js の Compositionに近い? Hooks (useState, useEffect ...) vue.jsよりは記述が複雑、に感じる

  • PHP8.1: nullableではない組み込み関数にnull値を指定するとDepricatedが出る。

    PHP8.1になり、nullableではない組み込み関数にnullを指定すると、Depricatedエラーが出るようになった。 www.php.net null値の可能性がある変数などを、 nullable ではない引数に指定する時は値の変換が必要になる。 例えば trim関数を使用する時は、特に意識せずに null値が代入されている変数を指定していたと思う。 trim(string $string, string $characters = " \n\r\t\v\x00"): string

  • Laravel9 のメンテナンスモードにはIPによるアクセス許可が組み込まれていない。

    Laravel9のメンテナンスモードでは、IPによるアクセス許可の機能は実装されていない。そのかわりに、指定したキーをパラーメーターとしてセットしてアクセスすると、メンテナンスモードがONの状態でもサイトにアクセスできるようになる。 IPは変動する事があるから、キーによる許可の方が良いという判断なのだろうか? IP許可方式も需要あると思うのだけど、なんで実装から削除されたのだー。ま、自分で実装すれば良い話ではあるのだけど。

  • Javascriptの謎仕様 function `hoge`

    カッコではなく、バッククオートで引数記述すると、何故か実行できてしまう。 例 console.log `Hello` alert `Hello` バッククオートで囲んだ文字列はテンプレートリテラルであるが、 それが上記が実行できる理由と関係あるのだろうか。 気になるので、もう少し調べてみたい。

  • composer で「prestissimo」に関するエラーが出た場合の対処

    composer を実行したら下記エラーが出た。 Problem 1 - hirak/prestissimo is locked to version 0.3.8 and an update of this package was not requested. - hirak/prestissimo 0.3.8 requires composer-plugin-api ^1.0.0 -> found composer-plugin-api[2.2.0] but it does not match the constraint. composer2系では、Prestissimo は動かないので2…

  • Go - switch

    Goはswitchが使える。 記述の仕方は大体他の言語と同じような感じ。 ただし、自動で break されるので複数の case をまたぐような場合は fallthrough を記述する必要がある。 例 package main import "fmt" func main() { a := 5 switch a { case 1, 2: fmt.Println("A") case 3: fmt.Println("B") case 5: fallthrough default: fmt.Println("Other value") } } 上記例の実行結果は以下となる。 Other value

  • go - ランダムな数字を生成する

    簡易的にランダムな数字を生成する方法を調べた。 goでランダムな数字を生成する場合 math/rand が使用できる。 使用方法は至ってシンプル。 package main import ( "time" "math/rand" ) func main() { rand.Seed(time.Now().Unix()) num := rand.Intn(6) println(num) } なお、math/rand は特定されると問題になるような値の生成には使わない方が良い(例: ユーザーIDやセッションIDなど)。 厳密にランダムな値を生成する場合は、crypt/rand を使う方が良い。 例で…

  • go: Excelのファイルのセルの値を読んでJSONで出力するサンプル

    仕事で使う可能性があるので、Excelのセルを読んでJSONで出力する方法を調べた。実際はもっと複雑な構造のJSONを出力する必要性があるかもしれないので、 goに不慣れな自分は挫折しそうだけども・・・ サンプルExcelの内容 key value note k_001 なす 野菜 k_002 クッキー お菓子 k_003 お皿 食器 k_004 水 液体 k_005 トマト 野菜 出力JSONのフォーマット [ {"id": "ID文字列", "name": "なまえ", "note": "備考"}, {"id": "ID文字列", "name": "なまえ", "note": "備考"},…

  • IPアドレスのクラス(IPv4)

    IPv4では、IPアドレスを2進数32bitで表現している。さらに、32bitのうちネットワーク部とホスト部に分けて、それぞれ属しているネットワーク、ホストを表現している。 IPアドレスのクラス 先頭ビット ネットワーク部 ホスト部 対象 クラスA 「0」 から始まる(10進数で 1〜127) 8bit 24bit 大規模 クラスB 「10」から始まる(10進数で 128〜191) 16bit 16bit 中規模 クラスC 「110」から始まる(10進数で 192〜223) 24bit 8bit 小規模 接続可能な台数 クラス 接続可能なホスト台数 クラスA 224 - 2 = 16,777,…

  • 自分の本心と向き合う時の障害

    今年は自分自身の本心とちゃんと向き合おうと思う。 とは言っても、本心と向き合うのは、今までそれができていなかった人間にとっては、とってもしんどい事。なので、少しずつ地道に意識を変えていくことにする。 本心と向き合う時に気が逸れてしまう事があるのだけど、その原因には感情や思考が無意識に湧いているからだと、最近色々本やブログ、Youtubeで動画を見て学んだ。 次の思考が湧いてき時は要注意だ。 めんどくさい 失敗したくない 恥ずかしい カッコ悪い想いをしたくない 傷つきたくない 楽したい 怖い 感情的になりたくない 痛い想いをしたくない 褒められたい 怒られたくない 嫌われたくない 人から良く見ら…

  • 精神的な不調

    ここ一週間精神的に不調な感じ。仕事もいまいち身が入らず(いつものことかw)、プライベートでも頭を使うような趣味や活動が億劫で仕方がない。 こういう時は散歩している事が多い。今日も仕事前に1時間ほど近所を黙々と歩いた。冬は寒さもあいまって、気分的に沈みやすく、部屋にこもっていると鬱々としやすい。 ところで、何故精神的に不調なのかを考えてみると、12月後半から1月前半にかけて、ちょっと色々頑張り過ぎたのかもしれないと言う事に思い至った。 その辺りの期間にやっていたことをざっと書いてみるとこんな感じ。 詳細な楽器練習の記録 新しい楽器を始め(アップライトベース) 色々な楽器毎日練習していた(トランペ…

  • 2022年上半期・基本情報技術者試験(CBT)の申込・試験実施期間

    2022年上半期の試験の申し込みと試験日程は下記の通り。 CBT方式の試験は4月ではなかった。 令和4年度上期基本情報技術者試験(CBT方式) 1. 試験実施期間 午前試験:令和4年4月1日(金)~5月24日(火) 午後試験:令和4年4月1日(金)~5月29日(日) 免除試験:令和4年4月1日(金)~5月24日(火) 2. 申込受付期間 午前試験:令和4年3月1日(火)~5月19日(木) 午後試験:令和4年3月1日(火)~5月24日(火) 免除試験:令和4年3月1日(火)~5月19日(木) 3. 受験手数料 7,500円(消費税込み) 4. その他 (1) 免除試験とは、基本情報技術者試験の一…

  • twitterの 「#駆け出しエンジニアと繋がりたい」ってハッシュタグがヤヴァイ件

    普段からtwitterは利用していて、プログラミング・IT関連のユーザーの投稿を見て新しい情報を得る事が多い。自分が知らない特殊な事から、最近のトレンドまで他者の投稿から得られて良いなーと思っている。 最近、「#駆け出しエンジニアと繋がりたい」ってハッシュタグの投稿がレコメンドされてきて、そのハッシュタグ関連のツイートも見ているのだけど、そこに投稿しているユーザーに業者が多くて辟易する。ざっと見てみると、次の系統の業者の営業アカウントが多数このハッシュタグでツイートしている。 転職関連 人材派遣 プログラミングスクール 怪しいプログラミング関連の情報商材 別にtwitterをマーケティングに使…

  • python3.10でmatch式が導入された

    なんかpython3.10にmatch式が導入されていた。 条件を case 値 で記述する。例文では数値しか使っていないが、タプルや配列を条件に指定することもできる。 例 match value: case 100 200 300: print("100 or 200 or 300のどれかだよ!") case 900: print("900だよ!") case _: print("その他だよ!") a, b, cのいずれかに該当する場合にまとめてマッチさせたい場合は、 case a b c と記述できる。 case _ と記述すると、その他に該当する全てにマッチする(swit…

  • Laravel Fortify/Jetstream でマルチログインの実装(調査)

    Laravel8 Fortify/Jetstream で、マルチログイン(ユーザーサイトと管理サイト別々に認証)を実現する方法について調べている。 結論から言うと、Laravel Fortify/Jetstreamは非対応。 なので、マルチログイン実現するためには、実装のカスタマイズが必要な事が分かった。 実装の方針としてはざっくり次の通り。 マルチログイン用のガードの設定を追加する Fortify/Jestreamの認証基盤をまるごと複製 細かい実装を調整する マルチログイン用のガードの設定を追加する 例えば、user、ownerの2系統でログインできるようにしたい場合は、guard(con…

  • python基礎文法

    pythonを使う必要性が出てきたので、改めて学び直している。 そんでもって、学んだことをこの記事にまとめている。 TOC 変数 文字列 制御構文 if文 for rangeオブジェクト while ループ処理の応用 continue break 変数 変数の定義は次の構文で定義する。 編数名 = 値 例 num = 9 value = "hogehoge" 文字列 文字列の記述の仕方には複数ある。 シングルクオーテーション('...') value = 'aiueo` ダブルクオーテーション("...") value = "aiueo" ヒアドキュメント value = ''' あいうえお …

  • rust: Option型

    Rust には値が存在しない可能性がある場合に使用する、Option 型が用意されている。 Option型は、値が存在する場合と、空の場合がある時に値を操作するのに便利。 Option型の定義は次の通り。 enum Option<T> { None, Some(T) } 使用例 let values = vec!["hoge", "fuga", "moge", "gegege"]; println!("{:?}", values.get(0)); println!("{:?}", values.get(2)); println!("{:?}", values.get(100)); 出力は次の通…

  • rust: 現在日時を取得する

    現在日時を取得するサンプルを作って遊んだ。 時刻の取得にはchronoというcrateが使用できる。 Cargo.toml chrono = "0.4" main.rs use chrono::Local; fn main() { println!("{}", Local::now().format("%Y年%m月%d日 %H:%M:%S")); }

  • rustでSteamのAPIからゲームタイトルのリストを取得する。

    SteamのAPIからゲームタイトルのリストを取得して、標準出力に出力するプログラムを作った。 割と内容はしょうもない内容だと思う。 API URL http://api.steampowered.com/ISteamApps/GetAppList/v0002/?format=json APIレスポンス レスポンスとして、ネストした構造のJSONデータが取得できる。 出力例 { "applist": { "apps": [ { "appid": 000000, "name": "ゲームタイトル" } ] } } rustでの実装について rustにはserdeというJSONデータを処理するため…

  • プログラミングが無料で学べるサイト

    Microsoft Learn rustやpython、go、その他Microsoft関連のアプリケーションを学べる。 機械学習?なども取り扱っている模様。 docs.microsoft.com 現代の JavaScript チュートリアル タイトルの通りJavaScriptの基礎を学べる。 ja.javascript.info JavaScript Promiseの本 タイトルの通り、JavaScriptのPromiseについて学ぶ事ができる。 かなりおすすめ。 azu.github.io

  • 人間の思考は条件反射

    人間は自由に思考していると思っていたけれど、実はそうではなく、条件反射で考えているだけなのだと考えるようになった。 知識や記憶があると、その知識を前提にした条件反射が起こる。 例えば、レモンをイメージしたり、写真や実物のレモンを見ると、反射的に唾が出てきたり、口が酸っぱくなった時のような反応が起こる。この話は有名な話なので言うまでもないかもしれない。この例では、体の反応が起こるが、思考においても同様の範的な思考が起きる。 記憶や経験という情報をインプットし、それに基づいてアウトプットが行われる、というのはコンピューターのプログラムと同じ。人間の方が、細かく込み入った状況に対応しているため、自由…

  • vu3: <slot>

    スロットは、コンポーネントの中にコンテンツを埋め込む事ができる。文章で理解するよりも、出力例を見るのが早いと思う。 スロットの使用例 コンポーネントの定義 <template> <h2>ハロースロット</h2> <div> <slot></slot> </div> </template> コンポーネント利用 <component> <b>スロットに出力されるhtml</b> </component> 出力 <h2>ハロースロット</h2> <div> <b>スロットに出力されるhtml</b> </div> コンポーネント内のタグの部分がコンポーネントタグの中身に置き変えられらる。スロットは複…

  • rust: ループ

    rust には次の3種類のループが使用できる。 loop while for loop loop は同じコードを停止するまで実行する。 loop { println!("Helloooooooooo"); } while 条件が真の間実行され続ける。 なお、whileの場合も条件式をまる括弧で囲まずに記述する。 let mut n = 0; while n <= 10 { println!("n={}", n); n = n + 1; } for range 1〜10の数字を出力。 for n in 1..10 { println!("{}", n); } 逆順に数字を出力。 for n in…

  • rust: if式

    if式 let x = 2; if x == 1 { println!("xの値は1です。"); } else if x > 1 { println!("xの値は1より大きいです。"); } else { println!("xに想定外の値が代入されています。"); } 単一の条件の場合については、括弧を使わずに記述する。 次の例のように記述すると、コンパイラの警告が出る(warning: unnecessary parentheses aroundifcondition) 例) 警告が出る記述 if (x == 1) { if式をlet文で使用する ifは式なので、let文の右辺で使用できる…

  • Typescript: 型エイリアス

    定義方法 型エイリアスは type キーワードを使って宣言する。 プリミティブ型 type AgeValue = number const age: AgeValue = 29 ユニオン型 type StringOrNull = string null let string_value = 'value' string_value = null 配列型 type NumberArray = number[] const nums: NumberArray = [1, 2, 3, 4, 5, 6] リテラル型をユニオン型で結合 type ColorValue = 'red' 'green…

  • 楽器練習におけるメトロノームの有効な活用法について

    メトロノーム使って練習するのは当たり前? 楽器の練習にメトロノームは必要だし、メトロノーム使わずに練習するのは良くない、とは楽器のレッスンを受けていて言われてきた。 たしかにメトロノームを全く使わずに練習していると、リズムやテンポ感を甘い状態でだらだら練習してしまうところはあると思う。 ただ、何も考えずに先生から言われたからといって、常にメトロノーム鳴らして練習する、という短絡的な発想は良くない。 メトロノームを使わない方が良い場面 譜読みが進んでおらず、運指もあやふやで、つっかえずに演奏できないような段階では、メトロノーム使わない方が良い。 もしくはメトロノームを使うにしても、早く弾いたり通…

  • Typescript: 型

    型の定義 記法 const 変数名: データ型 = 値 例) number型の変数宣言と代入 const value: number = 10 // Arrayの定義(number型の配列を定義) const value: number[] = [1, 2, 3] 型の種類 プリミティブ型 string number boolean Array undefined null unknown any any はなんでも代入可能な型なので、通常は使用しない。たぶんany濫用するとTypescript使うメリットが薄れてしまうと思う。

  • スパムコメントが付いた。

    怪しげなコメントが付いたので晒しておく。 メールアドレスのドメインからして怪しいので、該当するメールアドレスからメールが届いたり、ブログなどにコメントが付いていた場合は注意してくらはい。 下記コメント内容。 林遠 失礼致しました。Amazonで日本のラズベリーパイを販売している林遠です。 ブログを拝見しました。弊社のラズベリーパイカメラレビューブログ記事を書きしてくれませんか。 こちらは無料でサンプルを提供します。 連絡メールはjp02@vertue.cnです。 御返事お待ちしております。どうぞよろしくお願いします。

  • Error: "prettier/@typescript-eslint" has been merged into ....

    eslintを実行したら下記エラーが発生。 Error: "prettier/@typescript-eslint" has been merged into "prettier" in eslint-config-prettier 8.0.0. See: https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md#version-800-2021-02-21 .eslintrc.js の内容は次の通り。 module.exports = { env: { browser: true, es6: true …

  • GPLライセンスについてのメモ

    Wordpressのテーマについて調べていたのだけれども、GPLライセンスのものが大半だったので、GPLライセンスについて調べてみた。 Web 制作会社または Web 制作会社の成果物を検討する場合は GPL の適用範囲が WordPress の派生物でも再配布されるもののみであることに注意してください。WordPress のテーマやプラグインを個人利用、ビジネス利用の目的で作成した場合、GPL はそのテーマ、プラグイン、派生物を、一般に公開するところまでは求めていません。Web 制作会社が作成したすべてのカスタムテーマについてライセンスを調べる必要はありません。 引用元: https://j…

  • 楽器の演奏で暗譜することについての自己分析

    最近、曲を暗譜するほど弾き込んでいれば、目をつぶっても演奏できる事に気づいた。 これまで自分は、ある程度曲が弾けるようになっても不安で常に楽譜を見ながら演奏していた。それによって次のような弊害が生じている、ということに改めて気づいた。 楽譜を見るために脳のリソースが浪費されてしまう お膳立てされた状況でないと弾けなくなってしまう 耳で取り入れる情報の優先度が下がってしまう 周りを見る余裕がなくなる 常に楽譜を見ていると更に楽譜の内容を見なくなってしまう 楽譜を見るために脳のリソースが浪費されてしまう 楽譜を見ながら演奏する場合は次のようなプロセスを辿る事になる。 楽譜を視覚情報としてとりいれる…

  • サイトの内容と関係のない中古ドメイン使うな

    アフィリエイトの手法で、SEO対策か何かで中古ドメインを使うというのがあるが、使用方法については配慮をしろよ、と思う事が多々ある。 ドメインとは次の要素をわかりやすく表現するためのものだ。 住所を表す サイトのコンテンツを示す(ジャンルや内容) 運営元の情報(所在や運営団体の形態)を示す 久しぶりに技術的な(あるいは音楽であったり、その他趣味関連)情報が掲載されているWebサイトを閲覧したら、アフィリエイトサイトに成り代わっていて非常に苛立たしい想いをする事がたまにある。 アフィリエイトしても良いけど、せめて商材に合ったドメイン名をチョイスして欲しい。 不適切な例を挙げてみよう。 元々幼児向け…

  • 動画配信サイトの技術選定

    動画コンテンツの配信サービスって独自で開発するの怖いよね。技術的というよりはライセンス怖い。 ffmpegで動画を変換して、ストリーミング再生に対応する解説はネット上にたくさんあるけれど、それって実際の開発案件で使えないよなーともやっとした気持ちを感じる。 そんなわけで、外部のサービスを利用して本サイトに組み込む形が良いかなーと思っている。ググってパッと思い当たるサービスはこんな感じ。探したらもっと色々あるだろうけども。 Aws MediaConvert + CloudFront (これだけ利用実績がある) Cloudinary (CDN兼トランスコード) Vimeo (Youtubeのそれに…

  • Vue3 - transitionを使ってみる。

    vue.jsではtransitionという機能を利用して、UIの表示を切り替える際にエフェクトをかける事ができる。 例えば、クリックした要素を消すような場合に、エフェクトをかけるなどの処理が簡単に書ける。 対応に必要な作業は次の2つ。 対象の要素を タグで囲む。 開始時点・移行中・終了時点それぞれのcssを定義する わざわざjsで実装をすることなく、 例 <template> <transition name="fade"> <a v-if="show" @click="show = !show">トランジションサンプル</a> </transition> </template> <scrip…

  • vue3 の CompositionAPI

    Composition API は大規模な開発で力を発揮する。 ただし、小さなコンポーネントにまで適用する必要はなく、そういった場面ではOptions APIで実装すれば良いと思う。 例えば、単一のラベルテキストやボタンのコンポーネント。 こういった規模のコンポーネントについては従来的なOptionsAPIによる実装の方が分かりやすいと思う。 ちなみに、CompositionAPIの定義方法を初めて見た時に、びっくりした。一見するとごちゃ混ぜに感じて、大丈夫なのかこれ?と感じたが、複合的な機能を有する複雑なコンポーネントを実装する場合はCompositionAPIを適用した方が、コードが集約さ…

  • javascript: Objectクラスのメソッド

    2021年12月4日更新 最近javascriptのObjectクラスについて学習しているので、 学習した内容を随時こちらに追記していく予定。 Objectクラスの機能を使いこなせると便利だなーと思う。 メソッド Object.assign Object.create Object.entries Object.freeze Object.fromEntries Object.getOwnPropertySymbols Object.is Object.isFrozen Object.isExtensible Object.isSealed Object.keys Object.seal Ob…

  • javascript: Object.defineProperty() で変数の変更を検知

    javascriptで変数の変更を検知する方法を調べたところ、 Object.defineProperty が使えるようだ。 この機能自体は、Chrome v5、IE9の頃から利用可能だったようだが、今まで知らなかった・・・ 静的メソッドの Object.defineProperty() は、あるオブジェクトに新しいプロパティを直接定義したり、オブジェクトの既存のプロパティを変更したりして、そのオブジェクトを返します。 引用元URL: https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Ob…

  • Vue3 の Composition API と、Options API

    Options API とは、Vue2までのコンポーネントの構造を示すようだ。 公式のドキュメントでは唐突に Options API というフレーズが登場し、なんのことか分からず困惑したけれど、ネットの情報をいくつか読んでみると、Vue2までのコンポーネントの構造(というか定義方法?)の事を Options API と読んでいると理解した。 Options API の例 export default { data() { return { value: 0 } }, methods: { showValue () { console.log(this.value); } } } Composi…

  • アニメーションGIFのファイルを判定する方法

    GIFのファイル構造 バイナリーを解析して判定する方法について調べた。 GIFのファイル構造は次の通り。それぞれのデータのまとまりをブロックと呼ぶ。 ファイル構造 GIF Header Application Extension Graphic Control Extension Image Block : Graphic Control Extension Image Block Trailer アニメーションGIFの判定には次の2種類のブロックを用いる。 GIF Header Graphic Control Extension まず、GIF Header で、"GIF89a" 形式かどうか…

  • フロントエンドの学習を進めていて湧いた疑問

    最近、vue.jsを学習している。 こういったフロントエンドのフレームワークでSPAを構築するイメージはなんとなく湧いてきたのだけど、それと同時に1つ疑問が湧いた。 メンバーサイトのコンテンツどうやって秘匿する? 現時点での自分が思い浮かぶ方法は次の通り SSR API経由でメンバーコンテンツを取得 CDNを使う(Cloud Frontの署名付きURLやCookieを使う想定) 難読化 ノーガード MPA 難読化 正直秘匿できていないので論外だと思うけれど、機密性の低い情報しかhtmlに書かれていないのであれば、これで良いかもしれない。 サーバサイドから読み取って動的に表示する部分だけ、適切に…

  • javascript: オブジェクトのキーや配列に指定した値があるか調べる。

    オブジェクトのキーや、配列の値を調べる時に便利な構文として in がある。 構文 value in array 例(Chrome の デベロッパーツールのconsoleで確認) 1 in [1, 2, 3, 4] >true "key" in {key: "value", key2: "value2"} >true javascriptはいまだに知らない事が多い・・・

  • 指定したサイズのテキストファイルを作成する

    指定したサイズの可読可能なテキストファイルを生成する機会があったのでメモ。 用途としては、ファイルアップロードとかそのあたりの検証用。 cat /dev/urandom base64 head -c BYTES_TO_OUTPUT > OUTPUT_FILE BYTES_TO_OUTPUT には、生成するファイルのサイズを指定する。これにより、指定したバイト数の文字列が出力されるので、それとファイルに出力すれば良い。 ちなみに、バイト数を計算するのが面倒な場合は下記を使用すると良い。 記法 `expr NUM "*" NUM "*" ` 使用例(100MiBのファイルを生成) cat …

  • 悪質なフィッシングサイトを見分ける方法

    値段が相場価格より極端に安い 残念ながら、そうそううまい話はありません。 価格.com なども確認しつつ、一般的な相場価格を把握して、 相場価格から極端にかけ離れている場合は注意しましょう。 サイト内の日本語が不自然 フィッシングサイトは外国の人間が構築していることが多いようです。 機械翻訳したようにぶっきらぼうな表現 改行が一切なく、文章が羅列されている 日本語で使わないような漢字が使用されている 運営元の情報が怪しい 運営元の情報がきちんと書いてあるかどうかというのは、割と重要に思います。まともな通販サイトであれば、それなりにきっちり情報が記載されていますが、フィッシングサイトは内容が中途…

  • Laravelの色々なパッケージ群。

    最新のLaravelにはどういった機能があるのか調べている。 2021/9/6時点のLaravel8系の公式ドキュメントを読んで大まかな概要を確認した。 パッケージ名 説明 Breeze 最小構成の認証基盤。 Cashier (Stripe) Stripe向けの決済パッケージ。 Casher (Paddle) Paddle向けの決済パッケージ。 Dusk ブラウザ操作・ブラウザテストの自動化用のパッケージ。ブラウザ操作自動化めんどいのであまり使う機会がなさそう。 Envoy リモートサーバー上でタスクを実行するパッケージ。便利そうだけど使っていない。 Fortify 認証基盤。うーん。認証パッ…

  • Laravel Sail を使ってみる。

    Laravel Sail とは、Laravel 用のDockerコンテナを操作するコマンドラインインターフェースのことらしい。 とりあえず、初期設定だけ確認してみた。 まずは composer のアップデートを。 $ composer selfupdate 次にLaravelのプロジェクト作成。 $ composer create-project laravel/laravel blog 確認 $ cd blog $ php artisan serve Starting Laravel development server: http://127.0.0.1:8000 [Sat Sep 4 2…

  • MySQL: プリペアドステートメントのプレースホルダーの数は65535まで。

    MySQLで大量にインサートするために、複数行を1つのINSERTで追加しようとしたら、次のエラーが発生してINSERTに失敗した。 SQLSTATE[HY000]: General error: 1390 Prepared statement contains too many placeholders .... プリペアドステートメントを使って、1つのクエリーで使用可能なプレースホルダーの上限は、65535 のようだ。 ネットには、同様の上限にひっかかってエラーが発生している事象の報告は多々見受けられた。しかし、エビデンスに基づいた情報が見つからなかったので頑張って調べてみた。 そうすると…

  • dockerのコマンド一覧

    コマンド 説明 docker container ls {オプション} コンテナ一覧を表示する docker container logs {オプション} コンテナID コンテナのログを取得する docker container inspect {オプション} コンテナID コンテナの詳細情報を取得する docker container stats {オプション} コンテナID コンテナのリソース使用状況を表示 docker container stop コンテナID コンテナを停止する docker container start {オプション} コンテナID コンテナを開始する docke…

  • 動画のcodecはライセンスが厳しい。

    動画のcodecはライセンスが厳しい。 例えば、オープンソースで動画の処理をするソフトにffmpegがあるものの、個々のcodecのライセンスの問題は利用者自身が解決する必要がある。 研究用途や非公開の場所で個人的に利用する分には良いかもしれないが、プロダクトの開発には採用しない方が安全。 現実的には、ライセンスの問題をクリアした外部のサービスを利用するのが良いと思う。 awsのMediaConvertとか、googleのTranscoderAPIとか。 googleのTranscoderAPIは2021年の7月か8月にv1になったばかりの出来立てほやほやなサービス。

  • ClamAVのスキャンで `WARNING: INSTREAM: Size limit reached` という警告が出る。

    ClamAVのスキャンで次の警告がログに記録されて、スキャンされない現象に遭遇した。 WARNING: INSTREAM: Size limit reached この場合、エラーメッセージ通り、ClamAVで読み込み可能なファイルサイズの上限を超えているので、設定を調整すれば良い。 スキャンするファイルのサイズに関する設定は次の通り。 項目名 説明 MaxScanSize SIZE ファイルごとにスキャンするサイズ。圧縮ファイルなどの場合は、指定したファイルサイズまでのスキャンを行う。 MaxFileSize SIZE スキャン可能なファイルサイズの上限。上限を超えたファイルはスキャンされない…

  • macの画面共有フリーズ対策

    mac端末に画面共有で接続中、負荷がかかると画面共有がフリーズして、アクセスできなくなる事がある。 ただ、画面共有できなくなっても、SSH接続だけはできる事が多いので、 画面共有だけできなくなった場合は、次のコマンドで画面共有のプロセスを再起動すると、問題が解消する。 sudo launchctl kill KILL system/com.apple.screensharing

  • goでwasm

    goのインストール brew install golang go version go1.16.6 darwin/amd64 がインストールされた。 このバージョンではwasmのモジュールがすでに組み込まれているので、 特別な対応は不要。 wasm のテストプログラムコンパイル hello worldするだけのコードを作成する。 特別な記述はせず、ふつーのgoのコードを書けば良いみたい。 hello.go package main import "fmt" func main() { fmt.Println("Hello, Wasm!") } コンパイル webassemblyのコンパイル用に…

  • Laravel - SoftDeletesを適用したモデルクラスでテーブル名のエイリアスが使えない

    SoftDeletesを適用したモデルクラスでクエリーを実行すると、 カラムが存在しない、という内容のSQLエラーが発生する。 >>> \App\Models\Comment::from('comments', 'c')->where('c.id', '<>', 1)->get() Illuminate\Database\QueryException with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'comments.deleted_at'in 'where clause' (SQL: select * …

  • 「失業率が改善した」という表現について

    あるニュースの見出しで「失業率が改善した」という表現を見かけてもやもやしたので記事にした。 「改善」というポジティブな言葉から、「失業率が下がった」というふうに読み取ったけれど、何がどう変わったのか曖昧な表現はあんま良くないね。 この場合、単純に「増加した」「減少した」と言った方が、読む側の思考の負担が少ないと思う。

  • window.sessionStorage

    ブラウザのsessionStorageプロパティでsession storageにアクセスできる。特徴は次の通り。 window.localStorage に似ている(インターフェースが同じ) 新しいタブ・ウィンドウで開くと新しいセッションが開始される 配列やオブジェクトはシリアライズして保存する。 サーバサイドのセッションとは全くの別物。 有効期限はブラウザやウィンドウ・タブを閉じるまで。 うーん。使い所のイメージがパッと湧かない。 window.localStorage に似ている インターフェースはlocalStorageと同じ。 sessionStorage.key(num) セッショ…

  • ワクチンの接種後死亡した事例と、年間の死亡者数

    ワクチンの接種後死亡した事例をもって、新型コロナウィルスワクチンはやばい、という言説がある。自分も最初それに感化されていたけれど、ふと気づいた。 そもそも、毎年どのくらいの人が亡くなっているのか。 それに対してのワクチン接種後の死亡者数はどうなのか? 年間死亡者数の推移 厚生労働省のサイトで統計情報が公開されている。 www.mhlw.go.jp 厚生労働省のサイトに掲載されている「第2表-1人口動態総覧の年次推移 」を見てみると、2003年以降年間の死亡者数は100万人以上を超えている。 ワクチン接種後の死亡者数 どこの情報が最新なのかちょっと追いきれていないけれど、6/27までのファイザー…

  • PHP - Laravelでuuid(v4)を生成する。

    Laravel5.6以降は Str::uuid() でuuid(v4)を生成する事ができる。 use Illuminate\Support\Str; $uuid = (string) Str::uuid(); 独自に実装する必要もなく、別途ライブラリをインストール必要もないので楽ちん。 Laravel公式ドキュメント https://laravel.com/docs/master/helpers#method-str-uuid

  • Laravel6以降 - 何にも該当しないルーティング

    ルーティング定義のどれにもあてはまらない URLにアクセスされた場合に下記が利用できる。 Route::fallback(function () { // }); laravel.com

  • 30秒ドローイングのサイトがリニューアルされた。

    30秒ドローイングのサイト練習するのに便利で利用していたのだけど、 Flashで作られたサイトだったのでFlashのサポート終了で使えなくなっていたと思っていた。 が、久しぶりにサイトを開いてみると脱Flashで利用でき、サイトが一新されて使いやすくなっていた。 PoseTrainer

  • Nica's Dreamの演奏

    ここ1ヶ月、Nica's Dreamという曲を練習している。 イントロのマイナーメジャーセブンスでやられていたのだけど、少し慣れてきた。 今日は先人たちがどんな演奏をしているのかを楽しみながら聴いてみた。自分なりの感想をまとめてみた。 オスカー・ーターソンの演奏 www.youtube.com 厚みのあるブロックコードのヴォイシングと、 ソロでの高速フレーズの嵐が彼らしいと思う。 「よし!聴くぞ!」って感じで気合を入れて聴くべき演奏だと思う。 ところで、テーマのコード進行がリハモされていたので、そこを確認するのに演奏に合わせて電子ピアノで音をとっていたら、音がめちゃくちゃうねる。よくよく確認し…

  • chartjs3で余計な表示を消す

    chartjs3では、デフォルトでデータセットのラベルが表示されている。 このラベルの表示を消すには、options.plugins.legend.display = false を指定する。 <html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.4.0/chart.min.js"></script> <body> <h1> chart.js sample </h1> <canvas id="myChart" width="400" height="400"></canvas> <script>…

  • VirtualboxでゲストOSの時刻同期をOFFにする。

    ゲストOSの時刻同期を止めて確認したい事があったので、時刻同期の止め方を調査した。 1. 時刻同期の設定を無効に設定する。 $ VBoxManage setextradata 【VM-name】 "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1 ※【VM-name】は対象のゲストOSを指定する。 対象のゲストOSの情報は下記コマンドで確認できる。 VBoxManage list vms 2. ゲストOSを再起動する。** リアルタイムには反映されないので、設定を反映させるために再起動する。

  • javascriptでPHPのin_array()みたいな事をやる

    PHPの in_array() は、配列の中に指定した値が存在するか判定する関数。 javascriptで、同じ事をやるならArrayオブジェクトの includes() メソッドが使える。 定義 Array.prototype.includes() 指定した値が配列に存在しない場合 const values = [1, 2, 3, 4]; console.log(values.includes(5)); 実行結果 false 指定した値が配列に存在する場合 const values = [1, 2, 3, 4]; console.log(values.includes(3)); 実行結果 t…

  • WIP: STEAMでゲームのリストを取得する。

    STEAMに取り扱われているゲームの全ての情報をAPIで取得する方法について調べた。 情報は2段階で取得する必要がある。 アプリのIDのリストを取得する アプリの詳細情報を取得する 1. アプリのIDのリストを取得する アプリのIDリストを取得するには、GetAppList を利用する。 パラメーターはなしで、全てのアプリIDと名前のペアのリストを取得できる。 API URL GET https://api.steampowered.com/ISteamApps/GetAppList/v2/ データ構造 applist - apps: アプリケーションを含むリスト。 - appid: uint…

  • PHP: 可変長引数の関数定義

    PHP5.6以降は、func_num_args(), func_get_arg(), func_get_args()を使わずに可変長引数を実現できる。 そのことに最近気づいた・・・・ 当然、余計な関数を使わないので実装がスッキリする。 例 <?php function test(...$params) { var_dump($params); } test(1,2,3,4,5); 実行結果 array(5) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) } ...$params は必ず末尾に定義にする。次の…

  • あじさいの名所?

    あじさいの時期? 場所によって多少前後するけれど、5月下旬から咲き始めて、6月中旬見頃を迎える。7月だともう散り始めているように思う。 とすると、このブログを書いているのが6/17なので、来週ぐらいまでが見頃かなと思う。 お目当ての場所が閉園している可能性もあるので、 一応施設案内は確認してから行った方がよいとは思う。 混んでるかな・・・ 府中郷土の森博物館 www.fuchu-cpf.or.jp 金剛寺(高幡不動尊) park.tachikawaonline.jp 鎌倉 特定の場所はあまり考えてないけれど、周辺に色々あじさいのスポットがあるので、こちらも検討すると良さそう。

  • jsでcookieの操作

    jsでcookieを取得する場合には下記で全てのcookieを取得できる。 document.cookie こんな感じでCookieのキーと値の文字列がずらーっと出力される。 key1=hello; key2=hello; key3=hello; key4=hello このままだと、どうしようもないので、キーと値の連想配列に変換する。 let cookie_values = {}; for (c of document.cookie.split(';')) { let values = c.split('='); cookie_values[values[0]] = values[1]; }

  • javascriptの参考サイト

    ja.javascript.info jsprimer.net azu.github.io

  • LaravelでSSL&ベースURL固定

    httpsを強制 URL::forceScheme('https'); 指定したベースURLを強制 $root_url = 'https://example.com'; URL::forceRootUrl($root_url); そんでもって、上記は app/Providers/AppServiceProvier.phpのboot メソッドに書く。 のが一般的な模様。

  • jsで言語判定

    jsでブラウザの言語設定を取得するには、下記を参照すると良い。 window.navigator.languages[0] languagesが定義されていない場合は、下記から言語を取得する。 window.navigator.language window.navigator.userLanguage window.navigator.browserLanguage navigator.browserLanguage ってなに? IEで独自に定義されているプロパティ。 下記の引用を参照されたし。 This seems to be an IE-specific addition that's …

  • Promise.all()

    Promiseを使って非同期処理を行う場合、 Promise.all()を使うと並列で処理を実行できるようなので、活用してみたいと思う。 サンプルコード promise.js const loadImage = (url, elem) => { return new Promise((resolve, reject) => { const request = new XMLHttpRequest() request.open('GET', url) request.responseType = 'blob' request.addEventListener('load', () => { if…

  • 猫の画像をランダムで表示するサイト

    世の中には不思議なWebサービスがある。 randomcatはアクセスするたびに、ランダムに猫の画像を表示するサイトだ。Web APIも存在するようなので、何かちょっとした遊びに使うと良いと思う。 aws.random.cat

  • JWTとは?(WIP)

    JWTとは JSON Web Token の略であり、「ジョット」と読む。 RFC7519で定義されている。 URL-Safeである。 電子署名により、改ざんをチェックできる。 次のケースで利用が想定される。 ユーザー認証 シングルサインオンで、認証情報をさまざまなドメイン間で簡単に利用できる。 情報の交換 公開鍵と秘密鍵のペアを利用して署名できるので、送信者が本人である事を確認でき、 署名によりコンテンツの改ざんもチェックできる。 関連URL datatracker.ietf.org JSON Web Tokens - jwt.io

  • Laravel - DB::transaction() の返り値は何?

    DB::transaction()の実装は、ManagesTransactionsというtraitで実装されているようだ。 実装を見てみると、一つ目の引数で指定しているコールバック関数の返り値をそのまま返していることが分かる。 https://github.com/laravel/framework/blob/8.x/src/Illuminate/Database/Concerns/ManagesTransactions.php#L20 public function transaction(Closure $callback, $attempts = 1) { for ($currentAt…

  • Until Then

    ケニー・バロン作曲のUntil Thenという曲を最近好んで聴いている。 実際に弾いてみたくなり、テーマ部分を採譜して、リードシートまで作ってしまった。 随分前から折に触れて、この曲自体は演奏しているようなのだけど、アルバム "Without Deception" での演奏が洗練されているように感じる。 youtu.be

  • ピアノの練習

    最近あまり身が入らない。 かろうじてテーマを決めて練習している感じ。 とりあえず、4度堆積のヴォイシングはここ1〜2ヶ月は毎日取り組みを続けたいと思う。曲の練習は気分にムラがあって日によって本当しんどい・・・・ 鍵盤触れただけでも万々歳。 このくらいにハードル下げてなんとか継続していきたいところ。

  • 東京都の現在人口

    東京都の令和3年4月1日時点の人口はこちら。 もっと少ないかと思っていたけど、結構多いね。 なんか、東京だけで一つの国と言っても良い位の規模だと思う。 人口総数 13,957,179人 対前月比 15,155人(増) 対前年同月比 25,443人(減) 男 6,855,000人 女 7,102,179人 世帯総数 7,189,152世帯<参考値> www.metro.tokyo.lg.jp

  • Second Thoughts

    ケニー・バロンのWithout Deceptionというアルバムを好んで聴いている。 その中でも特に Second Thoughts という曲が好きだ。 とりあえずは、聴いてみて欲しい。 www.youtube.com 構成はシンプルながら、どこか浮遊感のある美しい曲だと思う。 曲の中で自分が特に注目したのは、テーマの後半のルーズな感じで弾いているメロディーの絶妙なグルーブ感。この部分が癖になる。 ところで、初めてこの曲を聴いた際、ケニー・バロン作曲だと勘違いしていたが、これは Mulgrew Millerが作曲したもののようだ。

  • レッスンの振り返り

    4度のヴォイシングについて モーダルな曲で特に活用される。 ドミナントやメジャー・マイナーに比べると、宙に浮いたような響き。 メジャーセブンスコードが4度進行で連続している場合 後のメジャーセブンスコードに#4を入れると、前のセブンスと後の#4の音が共通音になるので、それを生かす。 So Whatのあれ12キーでやる ジャズピアノブックのやつ。 ペンタトニックコードに慣れ親しむ 4度のヴォイシングの時に、ペンタトニック的な音に慣れるとヴォイシングのとっかかりになるので練習する。 半音上下のコード どのコードを練習する場合でもついでに、半音上下にスライドさせる練習をする。 半音上下して、元のコー…

  • laravel-mix のインストール

    laravel-mix をインストール npm init -y npm i -D laravel-mix cross-env npm i cp node_modules/laravel-mix/setup/webpack.config.js ./ webpack.mix.js 設置 const mix = require('laravel-mix'); mix.js('src/app.js', 'dist') .sass('src/app.scss', 'dist') .setPublicPath('dist') package.json 変更 "scripts": { "dev": "npm…

  • laravel-mix、webpackの学習

    ページごとにファイルを分けようとした時に、 importやrequireのところがうまく処理できずにエラーになる。 そもそも、importやrequireとはなんぞや? というところから調べる必要がある模様。

  • nodenvで特定バージョンのnodeをインストールする

    インストール可能なバージョンのリストを表示 nodenv install -l インストール nodenv install 14.16.1 フォルダ配下で使用するnodeのバージョンを 14.16.1 に設定 nodenv local 14.16.1

  • anyenvでインストールしたnodenvをアップデートする。

    anyenv-update プラグインをインストールすると、anyenvでインストールしたnodenvをアップデートできる。 anyenv-update のインストール mkdir -p $(anyenv root)/plugins git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update nodenvのアップデート anyenv update

  • awsの機能をローカル開発環境でエミュレートするツール

    localstackというのがあるらしい。 クラウドサービスの難点として、ローカル開発環境で同等の環境を再現するのが課題なのだけど、こういったツールがあるのは良いと思う。 詳しい事はこれからぼちぼち使って調べてみようと思う。 github.com

  • ELB配下のヘルスチェック対策

    awsでELBを使用してWebアプリケーションを稼働させている状況でちょっとトラブルがあったのでメモとして残しておく。 ロードバランサーのヘルスチェックのリクエストがWebサーバに届くので、リクエストと同時に何かサーバサイドで処理する場合には、ロードバランサーのヘルスチェックのリクエストと通常のユーザーのアクセスを判定する必要がある。 ELBにおいては、”ELB-HealthChecker/2.0” というユーザーエージェントでリクエストされるので、"ELB-HealthChecker*" のような部分一致でユーザーエージェントを判定して、ヘルスチェックのリクエストの場合には処理をスキップする…

  • 人は自分に都合の悪い事は語らない。

    人は自分に都合の悪い事は語らない。 例えば、他人の悪口を言っている人がいたとしよう。そういう人は、自分が原因で相手を怒らせた、という事実を伏せて、一方的に、理不尽に相手が自分に怒りをぶつけてきたかのように話をする。 あるいは、自分が過去とんでもない大失敗をやらかした経験があったと仮定しよう。その事を誰かに話す事はあるだろうか? それを話した事によって、社会的に不利になるならば、その事を他人に打ち明けようなどとは思わないだろう。 どうでも良い事、あるいは自慢したい事については、誰しも饒舌になるが、本当の本当に都合の悪い事は誰しも口をつぐむものだ。一見して、本人にとって都合が悪そうな事を喋っていた…

  • 新型コロナウィルスの対策は、飲食店の休業や営業時間短縮よりも

    飲食店に対しては、営業時間短縮よりもテイクアウトを奨励して、 テイクアウトに必要な環境の整備に対して補助金を出し、 その事を一般に認知させる。 という風にすると、お店側でも、まだ対応のしようがあるような気もする。代替案なしで、休業も営業時間短縮もきついと思う。

arrow_drop_down

ブログリーダー」を活用して、uc_ebucさんをフォローしませんか?

ハンドル名
uc_ebucさん
ブログタイトル
雑多なブログ
フォロー
雑多なブログ

にほんブログ村 カテゴリー一覧

商用