雑多なブログ

音楽や語学、プログラム関連の話題について書いています

2022-01-01から1年間の記事一覧

ChatGPTを試した。

AI

最近SNSで注目されているChatGPTを試してみた。 例えば、「年月日を引数に取り、曜日を返すpythonの関数を作って」とAIに問いかけると、レスポンスとして、そのものずばりpythonの関数の定義が返ってきてびっくり。 また、別の例では文章を要約して、と問い…

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

PHP8.0以降コンストラクターの引数を、オブジェクトのプロパティに設定することができるようになった。 例えば、$valueというプロパティにコンストラクタで値を代入する場面を考えてみる。 class Hoge { public string $vlaue; public int $num; public func…

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

PHP

テキストに数行おきに改行を挿入する方法を調べた。 処理のイメージは次の通り。 入力テキスト あああああああああああ いいいいいいいいいいいいい うううううううううううう ええええええええええええ おおおおおおおおお かかかかかかかかか 出力テキスト…

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

広告部分のhtmlには data-testid="placementTracking" という属性が設定されているので、その属性を持つDOM要素を非表示にすれば広告を消せる。 javascript:(() => { const e = document.createElement('style'); e.innerText = '[data-testid="placementTra…

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

記述 内容 .. コンテキストノードの親を選択する . コンテキストノードを選択する * コンテキストノードの全ての子要素を選択する / ルートノードを選択する。 //hoge ルートノードの子孫全体から、要素 hoge を全て選択する。 hoge 要素 hoge を選択する ho…

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></option></option></option></option></option></datalist></datalist>

@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 …

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

ネットに転がっているチュートリアルやドキュメントは断片的な情報が多かったので、自分が実現したい要件に沿った実装はどうすれば良いのか、というところがわかるまで随分時間がかかった。 細かい事はそのうちサンプルの実装を作ってみようと思うけど、ポイ…

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

ブラウザのURLバーに表示されているURLを書き換えが必要になったので調べたところ、Javascriptの下記メソッドが使える事が分かった。便利なメソッドなので活用していきたい。 history.pushState() history.pushState history backの履歴に書き換えたURLを追…

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(): st…

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

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

Typescriptの記事まとめ

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

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

勇者一行から無能扱いされて、勇者のパーティーから追放されるパターンのお話を漫画やラノベでよく見かけるけど、結構な違和感を感じません? そもそも、パーティーメンバーのスキルを正確に見定められないような勇者に一体何ができるのだろう?ってなもので…

React18を学習する

最近React18を勉強している。 とりあえず、学習メモとして学んだことの概要だけ書き出してみる。 props はコンポーネントに値を渡す(immutable) state はコンポーネントが持つ状態を管理する (mutable) Function Component での定義が推奨されている Class …

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

PHP8.1になり、nullableではない組み込み関数にnullを指定すると、Depricatedエラーが出るようになった。 www.php.net null値の可能性がある変数などを、 nullable ではない引数に指定する時は値の変換が必要になる。 例えば trim関数を使用する時は、特に意…

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

Laravel9のメンテナンスモードでは、IPによるアクセス許可の機能は実装されていない。そのかわりに、指定したキーをパラーメーターとしてセットしてアクセスすると、メンテナンスモードがONの状態でもサイトにアクセスできるようになる。 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.…

Go - switch

go

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

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

go

簡易的にランダムな数字を生成する方法を調べた。 goでランダムな数字を生成する場合 math/rand が使用できる。 使用方法は至ってシンプル。 package main import ( "time" "math/rand" ) func main() { rand.Seed(time.Now().Unix()) num := rand.Intn(6) p…

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

go

仕事で使う可能性があるので、Excelのセルを読んでJSONで出力する方法を調べた。実際はもっと複雑な構造のJSONを出力する必要性があるかもしれないので、 goに不慣れな自分は挫折しそうだけども・・・ サンプルExcelの内容 key value note k_001 なす 野菜 k…

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

IPv4では、IPアドレスを2進数32bitで表現している。さらに、32bitのうちネットワーク部とホスト部に分けて、それぞれ属しているネットワーク、ホストを表現している。 IPアドレスのクラス 先頭ビット ネットワーク部 ホスト部 対象 クラスA 「0」 から始まる…

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

2022年上半期の試験の申し込みと試験日程は下記の通り。 CBT方式の試験は4月ではなかった。 試験実施期間 試験区分 期間 午前試験 2022年4月1日(金)〜 同年5月24日(火) 午後試験 2022年4月1日(金)〜 同年5月29日(日) 申込受付期間 区分 期間 午前試…

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

普段からtwitterは利用していて、プログラミング・IT関連のユーザーの投稿を見て新しい情報を得る事が多い。自分が知らない特殊な事から、最近のトレンドまで他者の投稿から得られて良いなーと思っている。 最近、「#駆け出しエンジニアと繋がりたい」ってハ…

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

なんかpython3.10にmatch式が導入されていた。 条件を case 値 で記述する。例文では数値しか使っていないが、タプルや配列を条件に指定することもできる。 例 match value: case 100 | 200 | 300: print("100 or 200 or 300のどれかだよ!") case 900: prin…

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

Laravel8 Fortify/Jetstream で、マルチログイン(ユーザーサイトと管理サイト別々に認証)を実現する方法について調べている。 結論から言うと、Laravel Fortify/Jetstreamは非対応。 なので、マルチログイン実現するためには、実装のカスタマイズが必要な…

python基礎文法

pythonを使う必要性が出てきたので、改めて学び直している。 そんでもって、学んだことをこの記事にまとめている。 TOC 変数 文字列 制御構文 if文 for rangeオブジェクト while ループ処理の応用 continue break 変数 変数の定義は次の構文で定義する。 編…

rust: Option型

Rust には値が存在しない可能性がある場合に使用する、Option 型が用意されている。 Option型は、値が存在する場合と、空の場合がある時に値を操作するのに便利。 Option型の定義は次の通り。 enum Option<T> { None, Some(T) } 使用例 let values = vec!["hoge</t>…

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レスポンス レスポンスとして、ネスト…