雑多なブログ

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

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

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

2022年1月13日更新 Microsoft Learn rustやpython、go、その他Microsoft関連のアプリケーションを学べる。 機械学習?なども取り扱っている模様。 docs.microsoft.com 現代の JavaScript チュートリアル タイトルの通りJavaScriptの基礎を学べる。 ja.javasc…

人間の思考は条件反射

人間は自由に思考していると思っていたけれど、実はそうではなく、条件反射で考えているだけなのだと考えるようになった。 知識や記憶があると、その知識を前提にした条件反射が起こる。 例えば、レモンをイメージしたり、写真や実物のレモンを見ると、反射…

vu3: <slot>

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

rust: ループ

rust には次の3種類のループが使用できる。 loop while for loop loop は同じコードを停止するまで実行する。 loop { println!("Helloooooooooo"); } while 条件が真の間実行され続ける。 なお、whileの場合も条件式をまる括弧で囲まずに記述する。 let mut …

rust: if式

if式 let x = 2; if x == 1 { println!("xの値は1です。"); } else if x > 1 { println!("xの値は1より大きいです。"); } else { println!("xに想定外の値が代入されています。"); } 単一の条件の場合については、括弧を使わずに記述する。 次の例のように記…

Typescript: 型エイリアス

定義方法 型エイリアスは type キーワードを使って宣言する。 エイリアスは先頭を大文字で記述する。 プリミティブ型 type AgeValue = number const age: AgeValue = 29 ユニオン型 type StringOrNull = string | null let string_value = 'value' string_va…

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

メトロノーム使って練習するのは当たり前? 楽器の練習にメトロノームは必要だし、メトロノーム使わずに練習するのは良くない、とは楽器のレッスンを受けていて言われてきた。 たしかにメトロノームを全く使わずに練習していると、リズムやテンポ感を甘い状…

Typescript: 型

2022年5月2日更新 最近改めてTypescriptの型について学んだので、過去に記述した内容のアップデートも含めて今回記事の更新を行なった。 型の定義 型の指定は次の形式で記述する。 const 変数名: データ型 let : データ型 プリミティブ型 代表的なプリミティ…

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

怪しげなコメントが付いたので晒しておく。 メールアドレスのドメインからして怪しいので、該当するメールアドレスからメールが届いたり、ブログなどにコメントが付いていた場合は注意してくらはい。 下記コメント内容。 林遠 失礼致しました。Amazonで日本…

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

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

Wordpressのテーマについて調べていたのだけれども、GPLライセンスのものが大半だったので、GPLライセンスについて調べてみた。 Web 制作会社または Web 制作会社の成果物を検討する場合は GPL の適用範囲が WordPress の派生物でも再配布されるもののみであ…

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

最近、曲を暗譜するほど弾き込んでいれば、目をつぶっても演奏できる事に気づいた。 これまで自分は、ある程度曲が弾けるようになっても不安で常に楽譜を見ながら演奏していた。それによって次のような弊害が生じている、ということに改めて気づいた。 楽譜…

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

アフィリエイトの手法で、SEO対策か何かで中古ドメインを使うというのがあるが、使用方法については配慮をしろよ、と思う事が多々ある。 ドメインとは次の要素をわかりやすく表現するためのものだ。 住所を表す サイトのコンテンツを示す(ジャンルや内容) …

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

動画コンテンツの配信サービスって独自で開発するの怖いよね。技術的というよりはライセンス怖い。 ffmpegで動画を変換して、ストリーミング再生に対応する解説はネット上にたくさんあるけれど、それって実際の開発案件で使えないよなーともやっとした気持ち…

Vue3 - transitionを使ってみる。

vue.jsではtransitionという機能を利用して、UIの表示を切り替える際にエフェクトをかける事ができる。 例えば、クリックした要素を消すような場合に、エフェクトをかけるなどの処理が簡単に書ける。 対応に必要な作業は次の2つ。 対象の要素を タグで囲む…

vue3 の CompositionAPI

Composition API は大規模な開発で力を発揮する。 ただし、小さなコンポーネントにまで適用する必要はなく、そういった場面ではOptions APIで実装すれば良いと思う。 例えば、単一のラベルテキストやボタンのコンポーネント。 こういった規模のコンポーネン…

javascript: Objectクラスのメソッド

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

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

javascriptで変数の変更を検知する方法を調べたところ、 Object.defineProperty が使えるようだ。 この機能自体は、Chrome v5、IE9の頃から利用可能だったようだが、今まで知らなかった・・・ 静的メソッドの Object.defineProperty() は、あるオブジェクト…

Vue3 の Composition API と、Options API

Options API とは、Vue2までのコンポーネントの構造を示すようだ。 公式のドキュメントでは唐突に Options API というフレーズが登場し、なんのことか分からず困惑したけれど、ネットの情報をいくつか読んでみると、Vue2までのコンポーネントの構造(という…

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

GIF

GIFのファイル構造 バイナリーを解析して判定する方法について調べた。 GIFのファイル構造は次の通り。それぞれのデータのまとまりをブロックと呼ぶ。 ファイル構造 GIF Header Application Extension Graphic Control Extension Image Block : Graphic Cont…

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

最近、vue.jsを学習している。 こういったフロントエンドのフレームワークでSPAを構築するイメージはなんとなく湧いてきたのだけど、それと同時に1つ疑問が湧いた。 メンバーサイトのコンテンツどうやって秘匿する? 現時点での自分が思い浮かぶ方法は次の…

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 には、生成するファイル…

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

値段が相場価格より極端に安い 残念ながら、そうそううまい話はありません。 価格.com なども確認しつつ、一般的な相場価格を把握して、 相場価格から極端にかけ離れている場合は注意しましょう。 サイト内の日本語が不自然 フィッシングサイトは外国の人間…