HTMLのフォームにonSubmitでJavaScriptを呼ぶように実装してたんですが、HTMLファイルに直接JavaScriptを記載していたり、生のJavaScriptファイルを読ませていた時はうまく動くのに、Parcelを通したJavaScriptファイルだと Uncaught ReferenceError
となってしまい、実行されない問題が発生。
ググったところそれっぽい情報を発見。
IT系と日常系の備忘録。三日坊主。
HTMLのフォームにonSubmitでJavaScriptを呼ぶように実装してたんですが、HTMLファイルに直接JavaScriptを記載していたり、生のJavaScriptファイルを読ませていた時はうまく動くのに、Parcelを通したJavaScriptファイルだと Uncaught ReferenceError
となってしまい、実行されない問題が発生。
ググったところそれっぽい情報を発見。
普段テーブルの端にSurface Proを置き、Twitterクライアントを常時起動させつつ、音楽を再生したりしています。
朝起きた時に夜中のツイートもささっと流し読みしたいので24時間電源を入れっぱなしなのですが、使っていない時間ずっとディスプレイがつきっぱなしなのは電気代がもったいない。かといって電源設定でディスプレイの電源を切る時間を設定すると、普段見たいときにいちいち画面タップするなりしないといけないので面倒。
というわけで、指定した時間にディスプレイの電源をオンオフするだけの機能を持ったタスクトレイ常駐アプリを作りました。
よく考えればそりゃそうか感はあるんですが。
Entity Framework 3.0 Coreでは破壊的変更としてLINQ クエリがクライアントで評価されなくなった
という修正があります。
.NET Core 3.1対応をしているのですが、それに伴ってEntity Framework Coreもv3にあげたところ、LINQのクライアントサイド評価が行われなくなったことでいくつかのクエリが使えなくなったため、いろいろ調べながら対応しています。
たまに使うのにどう使うのかを度忘れすることがあるので備忘録。
以前GCE上で.NET Coreアプリを定期実行する記事を書いたのですが、
無料枠で動かしたはずなのに課金の通知が飛んできたので、いったん撤退して手持ちのRaspberryPi上で動かすことにしました。
普段からKindleで電子書籍を購入してるのですが、Amazonって検索結果が妙に使い勝手が悪く、新刊を見落としてたこともしばしば。
きんどうなどの専門サイトで情報を仕入れてたんですが、当然全部が全部載るわけでもなく。
で、自分で検索用のアプリを作ろうと思ってちまちま書いてたもののUI作るのが面倒で放置しているうちに、しんじさん(id:Shinji_Japan)がAmazonのKindle検索用Chrome拡張を公開されました。
要望を複数対応していただいて必要十分なものになったため、アプリを作る必要がなくなったので、アプリを作るために調べていた情報だけ備忘録がてら纏めます。
タイトルが結論。
Linux環境で動く.NET Coreアプリを書いていた時、ファイル出力処理でファイルパスを指定する際、下記のようにとりあえず記載してました。
var fileName = AppDomain.CurrentDomain.BaseDirectory + @"\FolderName\fileName";
想定としてはプログラムがあるフォルダにFolderNameというフォルダがあり、その中にfileNameというファイルが生成されるというもの。
Windows環境ではこれで問題なく動くものの、Linux環境に持っていくとファイルが出力されていなかったので確認してみると、プログラムがあるフォルダに FolderName\fileName
という名前のファイルが。
Windows環境ではパスにバックスラッシュを使うのに対し、Linux環境ではスラッシュを使うため、上記の指定だとうまくいかないと。なるほど。
というわけで、Linux環境で動かす場合はスラッシュに置き換えればいいんですが、Windows環境でも動かすことを想定すると、Path.Combineを利用してやるのが最適解のようです。
こんな感じ。
var fileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "FolderName", "fileName");
そもそもパスの指定方法が適当ってのは気にしないで・・・。
クエリ文字列(クエリストリング、URLパラメータとも)は
http://www.〇〇〇.com/search.php?△△=〇×
の?以降のこと。サーバーに情報を送るための文字列になります。
StringBuilderで strBuilder.Append("△△=〇×"); とか、Dictionary使ってよく生成してたんですが、特殊記号や全角文字列のエスケープ処理を別途行う必要があるので面倒くさい。
System.Web.HttpUtility.ParseQueryString
を使えばエスケープ処理を自動的にやってくれる。
using System.Web;
中略
var queryString = HttpUtility.ParseQueryString("");
queryString.Add("△△", "〇×");
としてやれば、
queryString.ToString();
でクエリ文字列が生成される。
下記のようにUriBuilderに渡してやれば、スマートにURLが生成可能。
var uriBuilder = new System.UriBuilder("www.〇〇〇.com") {Query = queryString.ToString() };
ちょくちょく忘れるのでメモメモ。
デブな現状を改善するべく、毎日体重を測っています。
以前作った、タニタの体重計のデータを取得してDiscordに投稿するAzure Functionsについて、私の実装が悪かったのか単に設定がおかしかったのかわかりませんが、Azureの課金額が結構な額になってしまい、現在GCEに.NET Coreなコンソールアプリを配置して、定期実行させるようにしています。
現時点でのソースはこちら。