imgタグの画像を拡大するのは大体どのプラグインでも問題なし。 ただ、canvasタグを拡大表示するのは若干めんどさかった。 canvasで画像拡大を実装することもできるが、 自分が試した印象ではパフォーマンス的に厳しいという印象。 なので、canvasの場合は toDataURL() を使って画像のバイナリーデータを取得し、そのデータを画像拡大プラグインで読み込んで用いる、あるいはimgタグの src 属性に直接データを埋め込む。
今年は自分自身の本心とちゃんと向き合おうと思う。 とは言っても、本心と向き合うのは、今までそれができていなかった人間にとっては、とってもしんどい事。なので、少しずつ地道に意識を変えていくことにする。 本心と向き合う時に気が逸れてしまう事があるのだけど、その原因には感情や思考が無意識に湧いているからだと、最近色々本やブログ、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式が導入されていた。 条件を 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を使う必要性が出てきたので、改めて学び直している。 そんでもって、学んだことをこの記事にまとめている。 TOC 変数 文字列 制御構文 if文 for rangeオブジェクト while ループ処理の応用 continue break 変数 変数の定義は次の構文で定義する。 編数名 = 値 例 num = 9 value = "hogehoge" 文字列 文字列の記述の仕方には複数ある。 シングルクオーテーション('...') value = 'aiueo` ダブルクオーテーション("...") value = "aiueo" ヒアドキュメント value = ''' あいうえお …
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)); 出力は次の通…
現在日時を取得するサンプルを作って遊んだ。 時刻の取得には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
人間は自由に思考していると思っていたけれど、実はそうではなく、条件反射で考えているだけなのだと考えるようになった。 知識や記憶があると、その知識を前提にした条件反射が起こる。 例えば、レモンをイメージしたり、写真や実物のレモンを見ると、反射的に唾が出てきたり、口が酸っぱくなった時のような反応が起こる。この話は有名な話なので言うまでもないかもしれない。この例では、体の反応が起こるが、思考においても同様の範的な思考が起きる。 記憶や経験という情報をインプットし、それに基づいてアウトプットが行われる、というのはコンピューターのプログラムと同じ。人間の方が、細かく込み入った状況に対応しているため、自由…
スロットは、コンポーネントの中にコンテンツを埋め込む事ができる。文章で理解するよりも、出力例を見るのが早いと思う。 スロットの使用例 コンポーネントの定義 <template> <h2>ハロースロット</h2> <div> <slot></slot> </div> </template> コンポーネント利用 <component> <b>スロットに出力されるhtml</b> </component> 出力 <h2>ハロースロット</h2> <div> <b>スロットに出力されるhtml</b> </div> コンポーネント内のタグの部分がコンポーネントタグの中身に置き変えられらる。スロットは複…
「ブログリーダー」を活用して、uc_ebucさんをフォローしませんか?
imgタグの画像を拡大するのは大体どのプラグインでも問題なし。 ただ、canvasタグを拡大表示するのは若干めんどさかった。 canvasで画像拡大を実装することもできるが、 自分が試した印象ではパフォーマンス的に厳しいという印象。 なので、canvasの場合は toDataURL() を使って画像のバイナリーデータを取得し、そのデータを画像拡大プラグインで読み込んで用いる、あるいはimgタグの src 属性に直接データを埋め込む。
テクノロジーが発達した現代でも、本当にくだらないミスで情報漏洩しています。ということで、自分が他人の案件でサポート入った時に、遭遇したパターンについてまとめてみます。 1. 公開領域に、拡張子を変える形でバックアップファイルを置いている 残念ながら頻繁にあります。 バックアップファイルを作成するだけならまだ良いのですが、元の拡張子を変えて保存してしまったファイルは超危険です。 例えば、公開領域に wp-config.php というファイルがあると仮定します。このファイルのバックアップとして wp-config.php_20230429 というファイルを複製した場合、拡張子が .php_2023…
その時のChatGPTとのやりとりを掲載しました。 応答も自然で、かなり使えるような気がする。 とりあえず、英語で言葉を発するのに慣れるのには良いと思う。対人のコミュニケーションよりも心理的な安心感もリスクも低いだろうし。 私 So would you help me and correct my message. ChatGPT Of course, I can definitely help you with that! Please feel free to write your message, and I'll do my best to correct any errors and…
プリンターの給紙が故障してうまく印刷ができなくなってしまった。まだギリギリ使えるけど複数部の印刷は難しい。10年前くらいに10,000円位で購入したプリンターなので、十分頑張ってくれたと思う。 個人的には楽譜やテキスト、公的書類の印刷にしか使っていないのでモノクロのみでOK。残っているインクが切れたタイミングでプリンターも買い替えようと思う。2〜3万円くらい出せば十分良いプリンターが購入できると思う。ま、プリンターの場合本体よりもインク代の方がコスト的に高いね・・・
コイズミの電子圧力鍋LPC-T1201で炊飯した。 詳しい操作方法は説明書があるので省略するけど、加圧時間4分で、加熱から加圧・減圧までトータル約15分。 若干硬めの炊き上がりに仕上がった。 水に長時間浸さずに炊飯したので、仕上がりの硬さに影響しているように思う。もしくは加圧時間をもう少し多くする?
macでファイルのmd5ハッシュ値を確認する場合は、 md5 コマンドが標準で使える。 コマンド md5 sample_file.txt 実行結果 MD5 (sample_file.txt) = d41d8cd98f00b204e9800998ecf8427e -q オプションを付けると、ハッシュ値だけ出力する。 コマンド md5 -q sample_file.txt 実行結果 d41d8cd98f00b204e9800998ecf8427e ちなみにlinuxでは、md5sum というコマンドが使える。
最近SNSで注目されているChatGPTを試してみた。 例えば、「年月日を引数に取り、曜日を返すpythonの関数を作って」とAIに問いかけると、レスポンスとして、そのものずばりpythonの関数の定義が返ってきてびっくり。 また、別の例では文章を要約して、と問いかけると指定した文章を要約してくれたり。なかなかすごい。 ちょっとした案内はこれである程度カバーできそうな気がする・・・ 例えば、歩くペッパーくん+AIチャットを組みわせると、施設の案内とかできそう。 chat.openai.com
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 $text=<<<EOS あああああああああああ いいいいいいいいいいいいい うううううううううううう ええええええええええええ おおおおおおおおお かかかかかかかかか E…
広告部分の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…
記述 内容 .. コンテキストノードの親を選択する . コンテキストノードを選択する * コンテキストノードの全ての子要素を選択する / ルートノードを選択する。 //hoge ルートノードの子孫全体から、要素 hoge を全て選択する。 hoge 要素 hoge を選択する hoge[fuge] 要素 hoge のうち、子要素 fuge を1つ以上持つ要素を選択する。 hoge[fuge="moge"] 要素 hoge のうち、子要素 fuge の文字列が moge である要素を選択する。 hoge[@attr] 要素 hoge のうち、属性 attr を持つものを選択する。
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"…
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…
ネットに転がっているチュートリアルやドキュメントは断片的な情報が多かったので、自分が実現したい要件に沿った実装はどうすれば良いのか、というところがわかるまで随分時間がかかった。 細かい事はそのうちサンプルの実装を作ってみようと思うけど、ポイントは下記点。 ちゃんとFortifyの設定を理解する URLで切り分ける リダイレクト先のURLが直書きの箇所をカスタマイズする セッションの分離(guard設定しただけじゃ不十分) チュートリアルやサンプル実装に頼るのをやめて、頑張ってFortifyの実装を読む ちゃんとFortifyの設定を理解する 自分はこの事を軽くみていたので、当初カスタマイズしな…
ブラウザのURLバーに表示されているURLを書き換えが必要になったので調べたところ、Javascriptの下記メソッドが使える事が分かった。便利なメソッドなので活用していきたい。 history.pushState() history.pushState history backの履歴に書き換えたURLを追加する。 state pushStateで生成された履歴に紐づくJavascriptのオブジェクトを指定する。 unused 歴史的な理由で残されており、省略不可である。 空文字 '' を指定すれば良い。 url そのものずばり履歴に記録するURLである。 現在のURLと、Same Orig…
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には関数をオーバーロードする事できる。 最初にオーバーロードを使わず個別に関数を定義してみる。 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: クラス
勇者一行から無能扱いされて、勇者のパーティーから追放されるパターンのお話を漫画やラノベでよく見かけるけど、結構な違和感を感じません? そもそも、パーティーメンバーのスキルを正確に見定められないような勇者に一体何ができるのだろう?ってなもので。 メンバーのスキルを正確に把握しないような人間に戦略なぞまともに立てられるわけもないだろうし、そんな状況で魔王討伐なんか行ってみたら、ぼこぼこにやられるのがオチだろう、という風に思えてしまう。 『勇者から追放される』という設定を無理やり使っているだけで、その設定の現実味が薄く感じるお話が多いように思う。
最近React18を勉強している。 とりあえず、学習メモとして学んだことの概要だけ書き出してみる。 props はコンポーネントに値を渡す(immutable) state はコンポーネントが持つ状態を管理する (mutable) Function Component での定義が推奨されている Class Component は今は推奨されていない模様 vue.js の Compositionに近い? Hooks (useState, useEffect ...) vue.jsよりは記述が複雑、に感じる
その時のChatGPTとのやりとりを掲載しました。 応答も自然で、かなり使えるような気がする。 とりあえず、英語で言葉を発するのに慣れるのには良いと思う。対人のコミュニケーションよりも心理的な安心感もリスクも低いだろうし。 私 So would you help me and correct my message. ChatGPT Of course, I can definitely help you with that! Please feel free to write your message, and I'll do my best to correct any errors and…
プリンターの給紙が故障してうまく印刷ができなくなってしまった。まだギリギリ使えるけど複数部の印刷は難しい。10年前くらいに10,000円位で購入したプリンターなので、十分頑張ってくれたと思う。 個人的には楽譜やテキスト、公的書類の印刷にしか使っていないのでモノクロのみでOK。残っているインクが切れたタイミングでプリンターも買い替えようと思う。2〜3万円くらい出せば十分良いプリンターが購入できると思う。ま、プリンターの場合本体よりもインク代の方がコスト的に高いね・・・
コイズミの電子圧力鍋LPC-T1201で炊飯した。 詳しい操作方法は説明書があるので省略するけど、加圧時間4分で、加熱から加圧・減圧までトータル約15分。 若干硬めの炊き上がりに仕上がった。 水に長時間浸さずに炊飯したので、仕上がりの硬さに影響しているように思う。もしくは加圧時間をもう少し多くする?
macでファイルのmd5ハッシュ値を確認する場合は、 md5 コマンドが標準で使える。 コマンド md5 sample_file.txt 実行結果 MD5 (sample_file.txt) = d41d8cd98f00b204e9800998ecf8427e -q オプションを付けると、ハッシュ値だけ出力する。 コマンド md5 -q sample_file.txt 実行結果 d41d8cd98f00b204e9800998ecf8427e ちなみにlinuxでは、md5sum というコマンドが使える。
最近SNSで注目されているChatGPTを試してみた。 例えば、「年月日を引数に取り、曜日を返すpythonの関数を作って」とAIに問いかけると、レスポンスとして、そのものずばりpythonの関数の定義が返ってきてびっくり。 また、別の例では文章を要約して、と問いかけると指定した文章を要約してくれたり。なかなかすごい。 ちょっとした案内はこれである程度カバーできそうな気がする・・・ 例えば、歩くペッパーくん+AIチャットを組みわせると、施設の案内とかできそう。 chat.openai.com
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 $text=<<<EOS あああああああああああ いいいいいいいいいいいいい うううううううううううう ええええええええええええ おおおおおおおおお かかかかかかかかか E…