imgタグの画像を拡大するのは大体どのプラグインでも問題なし。 ただ、canvasタグを拡大表示するのは若干めんどさかった。 canvasで画像拡大を実装することもできるが、 自分が試した印象ではパフォーマンス的に厳しいという印象。 なので、canvasの場合は toDataURL() を使って画像のバイナリーデータを取得し、そのデータを画像拡大プラグインで読み込んで用いる、あるいはimgタグの src 属性に直接データを埋め込む。
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…
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文の右辺で使用できる…
定義方法 型エイリアスは 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…
メトロノーム使って練習するのは当たり前? 楽器の練習にメトロノームは必要だし、メトロノーム使わずに練習するのは良くない、とは楽器のレッスンを受けていて言われてきた。 たしかにメトロノームを全く使わずに練習していると、リズムやテンポ感を甘い状態でだらだら練習してしまうところはあると思う。 ただ、何も考えずに先生から言われたからといって、常にメトロノーム鳴らして練習する、という短絡的な発想は良くない。 メトロノームを使わない方が良い場面 譜読みが進んでおらず、運指もあやふやで、つっかえずに演奏できないような段階では、メトロノーム使わない方が良い。 もしくはメトロノームを使うにしても、早く弾いたり通…
型の定義 記法 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 …
Wordpressのテーマについて調べていたのだけれども、GPLライセンスのものが大半だったので、GPLライセンスについて調べてみた。 Web 制作会社または Web 制作会社の成果物を検討する場合は GPL の適用範囲が WordPress の派生物でも再配布されるもののみであることに注意してください。WordPress のテーマやプラグインを個人利用、ビジネス利用の目的で作成した場合、GPL はそのテーマ、プラグイン、派生物を、一般に公開するところまでは求めていません。Web 制作会社が作成したすべてのカスタムテーマについてライセンスを調べる必要はありません。 引用元: https://j…
最近、曲を暗譜するほど弾き込んでいれば、目をつぶっても演奏できる事に気づいた。 これまで自分は、ある程度曲が弾けるようになっても不安で常に楽譜を見ながら演奏していた。それによって次のような弊害が生じている、ということに改めて気づいた。 楽譜を見るために脳のリソースが浪費されてしまう お膳立てされた状況でないと弾けなくなってしまう 耳で取り入れる情報の優先度が下がってしまう 周りを見る余裕がなくなる 常に楽譜を見ていると更に楽譜の内容を見なくなってしまう 楽譜を見るために脳のリソースが浪費されてしまう 楽譜を見ながら演奏する場合は次のようなプロセスを辿る事になる。 楽譜を視覚情報としてとりいれる…
アフィリエイトの手法で、SEO対策か何かで中古ドメインを使うというのがあるが、使用方法については配慮をしろよ、と思う事が多々ある。 ドメインとは次の要素をわかりやすく表現するためのものだ。 住所を表す サイトのコンテンツを示す(ジャンルや内容) 運営元の情報(所在や運営団体の形態)を示す 久しぶりに技術的な(あるいは音楽であったり、その他趣味関連)情報が掲載されているWebサイトを閲覧したら、アフィリエイトサイトに成り代わっていて非常に苛立たしい想いをする事がたまにある。 アフィリエイトしても良いけど、せめて商材に合ったドメイン名をチョイスして欲しい。 不適切な例を挙げてみよう。 元々幼児向け…
動画コンテンツの配信サービスって独自で開発するの怖いよね。技術的というよりはライセンス怖い。 ffmpegで動画を変換して、ストリーミング再生に対応する解説はネット上にたくさんあるけれど、それって実際の開発案件で使えないよなーともやっとした気持ちを感じる。 そんなわけで、外部のサービスを利用して本サイトに組み込む形が良いかなーと思っている。ググってパッと思い当たるサービスはこんな感じ。探したらもっと色々あるだろうけども。 Aws MediaConvert + CloudFront (これだけ利用実績がある) Cloudinary (CDN兼トランスコード) Vimeo (Youtubeのそれに…
vue.jsではtransitionという機能を利用して、UIの表示を切り替える際にエフェクトをかける事ができる。 例えば、クリックした要素を消すような場合に、エフェクトをかけるなどの処理が簡単に書ける。 対応に必要な作業は次の2つ。 対象の要素を タグで囲む。 開始時点・移行中・終了時点それぞれのcssを定義する わざわざjsで実装をすることなく、 例 <template> <transition name="fade"> <a v-if="show" @click="show = !show">トランジションサンプル</a> </transition> </template> <scrip…
Composition API は大規模な開発で力を発揮する。 ただし、小さなコンポーネントにまで適用する必要はなく、そういった場面ではOptions APIで実装すれば良いと思う。 例えば、単一のラベルテキストやボタンのコンポーネント。 こういった規模のコンポーネントについては従来的なOptionsAPIによる実装の方が分かりやすいと思う。 ちなみに、CompositionAPIの定義方法を初めて見た時に、びっくりした。一見するとごちゃ混ぜに感じて、大丈夫なのかこれ?と感じたが、複合的な機能を有する複雑なコンポーネントを実装する場合はCompositionAPIを適用した方が、コードが集約さ…
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…
「ブログリーダー」を活用して、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…