CORS対策によるエラーが発生しているのが原因。
Firefoxブラウザの場合、
about:configを開き、
「privacy.file_unique_origin」をFalseにすると解決。
他のブラウザについては随時記述していく予定。
インターネット上にある断片化された情報を切り取って、リブログする。 主にソフトウェア、Ubuntu関連、CPUなど気になったニュース、また、日々の面白い出来事やニュースもリブログします。
2019年10月17日木曜日
2019年10月16日水曜日
訪問型詐欺の対処方法について(考察)
訪問詐欺の対処法をメモしとく。
【状況】
・突然やってくる訪問客は関係のある知らない人。
(住んでる不動産の管理会社とか銀行の行員など)である。
・何かしら要求してくる。
(ブレーカや水道の点検、カードの確認など)
【対応方法】
・相手側のタイミングで物事を進めないよう、まず連絡先などの名刺をもらい
こちらから電話して予約する旨を伝えて一度帰ってもらう。
・ネットで連絡先(電話番号や会社名など)を調べて情報の信ぴょう性を確認。例:「詐欺 〇△□」
他にもいろいろあるけど、
イニシアティブを自分側に獲得するのが重要。
カードゲームでいう自分のターンで家に入れたりする選択肢があって
相手のターンで家に入れるのは不利なケースになりうる。
2019年10月10日木曜日
【android】実機を使ったデバッグ
開発環境に接続するAndroid実機は1つだけにします。
もしエミュレータが起動している時は停止してください。
次にadbコマンドを使います。
adb devicesコマンドを打って、デバイスが1つだけ認識されているのをチェックしたあとAndroid実機のIPアドレスを確認します。
「adb shell ip addr」
IPアドレスが分かったらさっそくadbサーバを起動して実機と接続します。
「adb tcpip 5555」
「adb connect 192.168.1.123」
(port番号やIPアドレスは任意に変えてください。)
以上完了!
ラベル:
Android
2019年10月4日金曜日
【UWP】UWPアプリーWebView間でデータの受け渡しする方法
いよいよ.Net core3.0が正式リリースされました。
その中で一番気になる技術はやはりクロスプラットフォーム化に進んでいるというところです。
今までクロスプラットフォーム化でネックになっているのがGUI画面とハード依存周り。
Gnome、KDE、Win、Mac、・・・様々なGUIが異なる実装をしているから画面回りを1つにまとめられない。。
Windows/Mac/Linux・・・と足回りも異なるOSだからUSBドライバ1つとっても実装を分けないといけない。。
考え出すと切りがないのが現状だったりします。
そこを打破すべくMSが推し進めているのが.Net coreプラットフォーム。
こいつを使えば足回りは1つで統一だぜヒャッハー!ってなるんだけど、
画面回りだけは、
XAMLの場合はXamarinで統一?
HTML/JS/CSSの場合はElectron、Blazorで統一?
まだ安定してませんね。
でもXAML to HTML などのコンバーターがいずれ出てくるでしょうが
今回は後者のHTML/JS/CSSを使った場合についてです。
このケースはXAMLでWebViewを張り付けて用意したWebページを表示して
データ操作をしたりしなかったりするんですが、
WebView↔C# の間でデータをやり取りを行う必要があるわけです。
最近のWebフレームワークなAngularやReactなどはWebサーバと通信するんですが
アプリと通信します。
そのインターフェイスに必要になる技術がこちら。
★C#→Javascriptのコードを呼び出す場合
var data = await web.InvokeScriptAsync("eval", new string[] { "testfunc();" });
★Javascript→C#へ通知する場合
window.external.notify("foo bar");
※C#側:WebviewのScriptNotifyイベントに通知されます。
この2つです。
使うときの注意点は、
受け渡し可能なデータ型は「文字列」のみであること。
早くBlazorのクライアントサイドが正式リリースされないかなー
【参考URL】
https://blogs.msdn.microsoft.com/japan_platform_sdkwindows_sdk_support_team_blog/2013/11/27/webview-10/
2019年9月12日木曜日
C#のasync/awaitを克服する
async/awaitって簡単な記述に見えて意外と難しい。。
ということでブログにてメモをまとめておく。
まず、async/awaitの挙動について。
関数の頭にasyncを付けて、Task処理をawaitつけると
コンパイルする段階でステートマシン生成して非同期処理を構築してくれる仕組みである。
1つ工夫があって、awaitしたTask処理を別スレッドで動かせて、戻ってくるときはスレッドを戻せるように作られている。
ここがすごく重要ポイントで、
①awaitしたTask処理を別スレッドで動かせる
②戻ってくるときはスレッドを戻せる
ここをしっかり理解しておかないと意図しない動きになってしまいます。
一体どういうことなのかというと、
Task.Runしていないタスク関数は別スレッドで実行するようになっていない
→ハマりポイント①
async/await使ってるのになぜか同じスレッドを継続してしまう場合は大体これ。
例えばGUIのイベント関数をasyncした場合、最初はUIスレッドで動いている。
awaitポイントに到着した時にタスク処理を実行するんだけど、
なぜかUIスレッドのままの場合があって、それが原因でデッドロックに陥る事がある。
その時は大体Task.Runを使って明示的に別スレッドで実行します宣言すれば良い。
タスク処理が終わったあとの挙動だけど、
awaitするタスク関数の後ろにConfigureAwait(false)を付けると、
呼び出し元のスレッドには戻らずにタスク処理したスレッドを継続する。
→ハマりポイント②
コンテキストスイッチを行うかどうかの設定。
主に処理速度を優先したい場合は使っておくと早く動作してくれる。
上記内容で、async/await,Task.Runの仕組みが分かったと思う。
次にWinRT系、Win10とかUWP、.Net core界隈の技術を使うと新しく出てくるインターフェイス
IAsyncOperationWithProgress
IAsyncOperation
IAcynsActionWithProgress
IAsyncAction
これらは非同期ステートマシンで実装されているけど、Task.Runをしていないのでイベント関数をasyncしてawaitしちゃったりするとデッドロックする。なんでデッドロックするのは最初の説明で分かると思うけど、
イベント関数はUIスレッドで処理され
IAsyncOperation/IAsyncAction系のタスクをawaitで実行した先もUIスレッドだから。
つまり自分自身はawaitでWait状態になっているところにUIスレッドで実行したい処理をPostしたりするからデッドロックなんだろうって事ですね。。
この辺の実装でうまく回避するならば、TaskAwaiterを自作してWait処理の所を定期的にawait Task.Run()とかで処理を逃がしてあげるか、UIスレッドに触れる部分は1つのAwaitだけにしておいて、UIスレッドと実行するタスク処理を明確に切り分けておく必要がありそう。
WinFormのような方式ならApplication.DoEvents()関数をコールすれば済むんだけどね!
追記:
上記の事を守っているのに、await厨なところがすり抜けてしまう現象がある。
これはawaitってセマフォでWaitしているんだって思えば理屈は分かるだろうか。
Async/Awaitの視点がプログラムフロー視点ではなくスレッド視点だから起こりうる現象で、1スレッドあたり1セマフォ。つまり1回に限りコンテキストスイッチ切替が許されているわけ。
現象のメカニズムは大体こんな感じで
1.UIスレッドがawait中に別スレッド内でUIスレッドを呼び出す。
2.その別スレッド内で動かしたUIスレッド内でawaitするとすり抜け現象が起きる。
3.UIスレッド内で2重awaitが発生する。
2重awaitが発生すると最初のawaitした部分が解除されてしまい、処理が動き出してしまうのである。
ということでブログにてメモをまとめておく。
まず、async/awaitの挙動について。
関数の頭にasyncを付けて、Task処理をawaitつけると
コンパイルする段階でステートマシン生成して非同期処理を構築してくれる仕組みである。
1つ工夫があって、awaitしたTask処理を別スレッドで動かせて、戻ってくるときはスレッドを戻せるように作られている。
ここがすごく重要ポイントで、
①awaitしたTask処理を別スレッドで動かせる
②戻ってくるときはスレッドを戻せる
ここをしっかり理解しておかないと意図しない動きになってしまいます。
一体どういうことなのかというと、
Task.Runしていないタスク関数は別スレッドで実行するようになっていない
→ハマりポイント①
async/await使ってるのになぜか同じスレッドを継続してしまう場合は大体これ。
例えばGUIのイベント関数をasyncした場合、最初はUIスレッドで動いている。
awaitポイントに到着した時にタスク処理を実行するんだけど、
なぜかUIスレッドのままの場合があって、それが原因でデッドロックに陥る事がある。
その時は大体Task.Runを使って明示的に別スレッドで実行します宣言すれば良い。
タスク処理が終わったあとの挙動だけど、
awaitするタスク関数の後ろにConfigureAwait(false)を付けると、
呼び出し元のスレッドには戻らずにタスク処理したスレッドを継続する。
→ハマりポイント②
コンテキストスイッチを行うかどうかの設定。
主に処理速度を優先したい場合は使っておくと早く動作してくれる。
上記内容で、async/await,Task.Runの仕組みが分かったと思う。
次にWinRT系、Win10とかUWP、.Net core界隈の技術を使うと新しく出てくるインターフェイス
IAsyncOperationWithProgress
IAsyncOperation
IAcynsActionWithProgress
IAsyncAction
これらは非同期ステートマシンで実装されているけど、Task.Runをしていないのでイベント関数をasyncしてawaitしちゃったりするとデッドロックする。なんでデッドロックするのは最初の説明で分かると思うけど、
イベント関数はUIスレッドで処理され
IAsyncOperation/IAsyncAction系のタスクをawaitで実行した先もUIスレッドだから。
つまり自分自身はawaitでWait状態になっているところにUIスレッドで実行したい処理をPostしたりするからデッドロックなんだろうって事ですね。。
この辺の実装でうまく回避するならば、TaskAwaiterを自作してWait処理の所を定期的にawait Task.Run()とかで処理を逃がしてあげるか、UIスレッドに触れる部分は1つのAwaitだけにしておいて、UIスレッドと実行するタスク処理を明確に切り分けておく必要がありそう。
WinFormのような方式ならApplication.DoEvents()関数をコールすれば済むんだけどね!
追記:
上記の事を守っているのに、await厨なところがすり抜けてしまう現象がある。
これはawaitってセマフォでWaitしているんだって思えば理屈は分かるだろうか。
Async/Awaitの視点がプログラムフロー視点ではなくスレッド視点だから起こりうる現象で、1スレッドあたり1セマフォ。つまり1回に限りコンテキストスイッチ切替が許されているわけ。
現象のメカニズムは大体こんな感じで
1.UIスレッドがawait中に別スレッド内でUIスレッドを呼び出す。
2.その別スレッド内で動かしたUIスレッド内でawaitするとすり抜け現象が起きる。
3.UIスレッド内で2重awaitが発生する。
2重awaitが発生すると最初のawaitした部分が解除されてしまい、処理が動き出してしまうのである。
2019年9月10日火曜日
【Winform】別スレッドからGUIを操作する
意味が分かっていても上手く動いてくれずにデッドロックするケースが多い問題である
「別スレッドからGUIの操作」のお話ですが、ようやく腑に落ちる対処方法が分かったのでメモ。
【問題の背景】
基本ですが、アプリは必ずメインスレッドが存在していてWinformだとスレッドID=1になる。
これがProgram.csの先頭から実行してGUIを表示したりする。
んで、画面上のボタンを押したら別スレッドが起動して重い処理を実行する。
その別スレッド内部でエラーが発生した場合、
例外を投げてtry~catch先でエラーハンドリングするなら特に問題なし。
別スレッド内部でエラーハンドリングを行ってしまおうってするとデッドロックしてしまうケースがある。
【ピンポイントな原因】
なぜデッドロックしてしまうかというと、メインスレッドが別スレッドの完了待ち状態でロックしているから。
これに尽きる。
言い換えれば、
メインスレッドは別スレッドの完了待ち状態で、
別スレッドはメインスレッドにGUI操作を要求したからデッドロックに陥っている。。
ここまで分かればひとまずOK。
~~余談~~
非同期に処理して、別スレッドから完了通知を受け取る方式なら回避できる。
この実装はいわゆるasync/awaitになるのだけど、理解するのに結構手間取るんだけどね。。
【デッドロック確認方法】
デッドロックした場合、デバッガ上で確認する事が出来る方法があって、
デバッガ上のスレッド一覧にあるメインスレッドがソース上のどの位置にいるかで判断が付く。
現在のスレッドが1以外の別スレッドで
メインスレッドの現在位置が
Application.Run(new Form());
ならば問題なし!
もし、Wait(); とかそういう場所で止まっているなら必ずデッドロックが発生します。
【対処法】
そのデッドロックポイントを見つけたらInvokeRequireとかTaskのasync/awaitを用いて回避するのが一番簡単。
意外とこの仕組みを理解しておかないと色んなプログラムで同じようなハマりポイントでつまずくと思うので、ぜひとも押さえておきたいポイントです。
「別スレッドからGUIの操作」のお話ですが、ようやく腑に落ちる対処方法が分かったのでメモ。
【問題の背景】
基本ですが、アプリは必ずメインスレッドが存在していてWinformだとスレッドID=1になる。
これがProgram.csの先頭から実行してGUIを表示したりする。
んで、画面上のボタンを押したら別スレッドが起動して重い処理を実行する。
その別スレッド内部でエラーが発生した場合、
例外を投げてtry~catch先でエラーハンドリングするなら特に問題なし。
別スレッド内部でエラーハンドリングを行ってしまおうってするとデッドロックしてしまうケースがある。
【ピンポイントな原因】
なぜデッドロックしてしまうかというと、メインスレッドが別スレッドの完了待ち状態でロックしているから。
これに尽きる。
言い換えれば、
メインスレッドは別スレッドの完了待ち状態で、
別スレッドはメインスレッドにGUI操作を要求したからデッドロックに陥っている。。
ここまで分かればひとまずOK。
~~余談~~
非同期に処理して、別スレッドから完了通知を受け取る方式なら回避できる。
この実装はいわゆるasync/awaitになるのだけど、理解するのに結構手間取るんだけどね。。
【デッドロック確認方法】
デッドロックした場合、デバッガ上で確認する事が出来る方法があって、
デバッガ上のスレッド一覧にあるメインスレッドがソース上のどの位置にいるかで判断が付く。
現在のスレッドが1以外の別スレッドで
メインスレッドの現在位置が
Application.Run(new Form());
ならば問題なし!
もし、Wait(); とかそういう場所で止まっているなら必ずデッドロックが発生します。
【対処法】
そのデッドロックポイントを見つけたらInvokeRequireとかTaskのasync/awaitを用いて回避するのが一番簡単。
意外とこの仕組みを理解しておかないと色んなプログラムで同じようなハマりポイントでつまずくと思うので、ぜひとも押さえておきたいポイントです。
2019年7月25日木曜日
【トンデモ通貨戦争】
それは21世紀、各国の中央銀行が金融世界を支配していた頃である。
当時の紙幣は政策によって無尽蔵に発行でき、インフレを調整する事ができたのである。
しかし今現在では禁止されている。
死のユーロリスク、ギリシア問題やブレグジットなどの複数の国で共通通貨を使ったことで起こったことも歴史の1ページとして記憶に新しい出来事。
全世界共通通貨ではGummoビットコインが使い支払いを行うのが当たり前になっている。
現代における金融・インフレリスクの対処法も基本は同じ。
自国の紙幣を増やしたり利回りの調整するのは一緒。
ただ、紙幣の発行ができない部分だけが異なる。
金融政策はどうしているの?というと、
通貨獲得のためにトレーダの税率調整が行われ
外貨獲得、それが経済を支える重要な要素の1つになっているのである。
獲得した資金はベーシックインカム制度に回され日本全国の国民に消費して
新たな価値が生まれれば投資資金も集まる世の中。
何もしなくても良い、ただし生産性のない人は世捨て人と呼ばれ評価格差社会になっているが、
稼ぐ時代はもう終わり。
2019年7月22日月曜日
夢のAPU
AMDの第3世代Zen2になってCPUコアからメモリコントローラを分離した理由が
「コスト」だというなら、表向きの聞こえはいいよね。
でも今回販売されたAPUが第2世代のコア搭載だったというのにがっかり感があるが
もしRyzen初代登場の時に夢見ていたRyzenコアのAPUだとしたらハッピーなニュースになりそうだなと予感がよぎった。
どんなものかというと、HBM+APU構成・・・
今回CPUとメモリーコントローラが分離されたタイミングがナイスすぎる。
HBM版とDDR版でグレード分けできるし、バス型接続でヘテロジニアスも可能。。。(この場合のアービトラージとかは置いといて、)
ゲーミングノート市場も活性化委されてきたし、そろそろ上位APUを出してきてもいいよね。(出たら買うフラグ)
「コスト」だというなら、表向きの聞こえはいいよね。
でも今回販売されたAPUが第2世代のコア搭載だったというのにがっかり感があるが
もしRyzen初代登場の時に夢見ていたRyzenコアのAPUだとしたらハッピーなニュースになりそうだなと予感がよぎった。
どんなものかというと、HBM+APU構成・・・
今回CPUとメモリーコントローラが分離されたタイミングがナイスすぎる。
HBM版とDDR版でグレード分けできるし、バス型接続でヘテロジニアスも可能。。。(この場合のアービトラージとかは置いといて、)
ゲーミングノート市場も活性化委されてきたし、そろそろ上位APUを出してきてもいいよね。(出たら買うフラグ)
2019年7月13日土曜日
シンギュラリティ
ディープラーニングで表舞台に返り咲いたAI分野ですが、
ここ数年AIの活用事例が増えてきて企業ノウハウをAI化する流れに芽が出始めてきていますね。
古文をAIに読ませて解読するとか、数万の論文を読ませて新素材の組み合わせを発見したり
医療関係ならガン診断、熊本城の石垣復刻などなど
専門家がやっているブラックボックスな事象をデータ化してどんどんAI化されていくことでしょう
AIが出した結果を見れば不思議な答えが出てくることもあるでしょうが、それはそれ。
今まで人が着目しなかった強いつながりを見つけ答えを出した結果だから
集めたデータセットの誤りだとか考慮して検証するチームが今後伸びていく職種かもしれない。
1つの事例としてあげるならAIスピーカーが日常会話を録音していて
GAFA関連企業が録音した音声のテープ起こしをしているという情報がリークされたのは
ここ最近でニュースになった事実。
最後にAIの脅威とは何かについて書くと、それは学習速度。
人が1日10冊ペースで読むと1年かけて3650冊読破できるとしたらAIは数時間で終わる。
人は生まれ持って読む・学習する速度に限界が決まっているが、コンピュータなら性能は青天井。
それが脅威の正体だと分かれば、AIとは得体のしれない技術だって思わなくなることでしょうw
2019年7月5日金曜日
映画のコンフィデンスマンJP~ロマンス編~の主題歌「official 髭 pretender」の替え歌
映画のコンフィデンスマンJP~ロマンス編~
個人的にはめちゃくちゃ良かったー
映画「STING」好きならオススメ
Official髭男dism 「pretender」の替え歌まで作りましたw
テーマは仮想通貨ビットコインFXトレード。
曲と合わせて聞いてみてください_(:3 」∠)_
【Pretender】
BTCFXのトレード
それは予想通り
いざエントリーすればひとり芝居だ
長期MAがずっとそばにいたって
結局ただの傍観だ
感情のない損切
それはいつも通り
慣れてしまえば悪くはないけど
BTCのトレンドは人生柄
続きはしないことを知った
もっと違う設定で もっと違う関係で
出会えるゴールドクロス 選べたらよかった
もっと違うオシレータで もっと違う指標で
ダマしを伝えられたらいいな
そう願っても無理だから
グッバイ(損切)
このトレンドでこのポジじゃない
辛いけど否めない でも離れがたいのさ
その髭に触れただけで 痛いや いやでも
甘いな いやいや
グッバイ(損切)
2019年7月3日水曜日
USBポートをリセットする
色んなサイトを見て回ったけど、情報があちこち散らばっていて
探すのが大変だったのでまとめておきます。
【プログラムから行う場合】
パイプエラーから回復する方法
https://docs.microsoft.com/ja-jp/windows-hardware/drivers/usbcon/how-to-recover-from-usb-pipe-errors
【DevCon.exeを使った場合】
コマンド集
https://serverfault.com/questions/117898/is-it-possible-to-reset-ftdi-virtual-com-ports-enumeration-we-easily-get-hundre
devcon findall =usb
devcon findall =ports
【TIPS】
デバイスドライバーをリセットする方法
1.管理者権限でCmd「コマンドプロンプト」を起動する。
2.再起動したいデバイスインスタンスパスに対してrestartコマンドを送信する。
例:devcon restart USB\VID_0403*
これで通信エラーで復旧できないポートを復活させることができるかもしれません。
探すのが大変だったのでまとめておきます。
【プログラムから行う場合】
パイプエラーから回復する方法
https://docs.microsoft.com/ja-jp/windows-hardware/drivers/usbcon/how-to-recover-from-usb-pipe-errors
【DevCon.exeを使った場合】
コマンド集
https://serverfault.com/questions/117898/is-it-possible-to-reset-ftdi-virtual-com-ports-enumeration-we-easily-get-hundre
devcon findall =usb
devcon findall =ports
【TIPS】
デバイスドライバーをリセットする方法
1.管理者権限でCmd「コマンドプロンプト」を起動する。
2.再起動したいデバイスインスタンスパスに対してrestartコマンドを送信する。
例:devcon restart USB\VID_0403*
これで通信エラーで復旧できないポートを復活させることができるかもしれません。
2019年6月28日金曜日
部屋干しの洗濯物の臭いをやっつける!
【プロジェクト:バスター洗濯臭】
洗濯した後に匂う「生乾き臭」、あれほんと2度洗いしても取れないんですよねw
洗剤でAg+配合とか、香料の良いものに代えても効果ありませんでした。
そんな中、、、今年は洗濯の匂いの研究をしました。
解明するためにまず、生乾きの匂いの原因について調べる必要があり・・・
~~~1時間くらい話せる内容なので省略~~~
【結論】
「洗濯まぐちゃん」という商品を買えばOKです。
もしくは、
・浴槽洗剤用の過酸化ナトリウムや
・酸素系洗剤
・ワイドハイターEX(漂白剤)
アルカリ系の洗剤でもOK
【効果について】
中にはマグネシウムのBB弾サイズのボールが100g弱入っているだけですが効果があります。
それはなぜでしょうw
【原理】
マグネシウムは水と接触すると水酸化マグネシウムになり、
水素イオンを放出してPhが+1~2程度上昇、つまり弱アルカリ性の洗濯水になります。
それが「洗濯まぐちゃん」の効果です。
いってしまえば、
「アルカリ水で洗えば匂わなくなる」
これが基本原理。
もう少し深く話せば、
アルカリ性の性質で油やたんぱく質を溶かす作用があり
衣類に付いた細菌や皮脂汚れを溶かし、匂い物質が少なくなるのがポイントですね。
靴の匂いも同様で、
弱アルカリ性の洗剤で洗うと匂わなくなります。
【応用】
アルカリ水で洗濯しても匂いが残っている場合は、水の温度を上げると効果がアップします。
それと使ったお風呂に漂白剤やまぐちゃんを入れて1時間洗濯物を漬けこんでから洗濯するとか
エコなやり方は色々とありますが、試してガッテンとかネット上にそういった情報は沢山あるので
まぐちゃん、漂白剤、洗濯、匂いなどをキーワードに検索してみてください。
【おすすめ使用方法】
・自作まぐちゃん(約100g)
・ナノックスをいつもの半分以下の量
・過炭酸ナトリウム少量
浴槽もキレイになるし、完全に生渇きの臭いも消えて快適ライフです!
おすすめ
・マグネシウム1000g
・過炭酸ナトリウム1000g
自作まぐちゃんの場合は
ダイソーで排水溝用ネットにマグネシウムボールを入れ縛ってから
クッション付きの小さな洗濯ネットに入れればOKです
【経済性】
マグネシウムは全部溶けきるまで使えるのでエコだけど、洗剤のコストは極力減らしたいところw
【注意点】
アルカリ性にすれば効果があると分かって
強アルカリ水にすればパワーアップって思ってやるのはとても危険でして
色のついた洋服は真っ白になるし、手に付着すれば皮が溶けますw
(水酸化ナトリウムもアルカリ性でしたね!)
洗濯した後に匂う「生乾き臭」、あれほんと2度洗いしても取れないんですよねw
洗剤でAg+配合とか、香料の良いものに代えても効果ありませんでした。
そんな中、、、今年は洗濯の匂いの研究をしました。
解明するためにまず、生乾きの匂いの原因について調べる必要があり・・・
~~~1時間くらい話せる内容なので省略~~~
【結論】
「洗濯まぐちゃん」という商品を買えばOKです。
もしくは、
・浴槽洗剤用の過酸化ナトリウムや
・酸素系洗剤
・ワイドハイターEX(漂白剤)
アルカリ系の洗剤でもOK
【効果について】
中にはマグネシウムのBB弾サイズのボールが100g弱入っているだけですが効果があります。
それはなぜでしょうw
【原理】
マグネシウムは水と接触すると水酸化マグネシウムになり、
水素イオンを放出してPhが+1~2程度上昇、つまり弱アルカリ性の洗濯水になります。
それが「洗濯まぐちゃん」の効果です。
いってしまえば、
「アルカリ水で洗えば匂わなくなる」
これが基本原理。
もう少し深く話せば、
アルカリ性の性質で油やたんぱく質を溶かす作用があり
衣類に付いた細菌や皮脂汚れを溶かし、匂い物質が少なくなるのがポイントですね。
靴の匂いも同様で、
弱アルカリ性の洗剤で洗うと匂わなくなります。
【応用】
アルカリ水で洗濯しても匂いが残っている場合は、水の温度を上げると効果がアップします。
それと使ったお風呂に漂白剤やまぐちゃんを入れて1時間洗濯物を漬けこんでから洗濯するとか
エコなやり方は色々とありますが、試してガッテンとかネット上にそういった情報は沢山あるので
まぐちゃん、漂白剤、洗濯、匂いなどをキーワードに検索してみてください。
【おすすめ使用方法】
・自作まぐちゃん(約100g)
・ナノックスをいつもの半分以下の量
・過炭酸ナトリウム少量
浴槽もキレイになるし、完全に生渇きの臭いも消えて快適ライフです!
おすすめ
・マグネシウム1000g
・過炭酸ナトリウム1000g
自作まぐちゃんの場合は
ダイソーで排水溝用ネットにマグネシウムボールを入れ縛ってから
クッション付きの小さな洗濯ネットに入れればOKです
【経済性】
マグネシウムは全部溶けきるまで使えるのでエコだけど、洗剤のコストは極力減らしたいところw
【注意点】
アルカリ性にすれば効果があると分かって
強アルカリ水にすればパワーアップって思ってやるのはとても危険でして
色のついた洋服は真っ白になるし、手に付着すれば皮が溶けますw
(水酸化ナトリウムもアルカリ性でしたね!)
2019年5月28日火曜日
自宅でインドカレーを作る。
昨日家でインドカレーを作ってみた。
作り方:
1.熱した油の中にクミンを入れる。
2.時短処理したアメ色玉ねぎとショウガを入れる。(カレーベースの出来上がり)
3.一度弱火にして好みのスパイスを入れ、量を増やす。
簡単、15分くらいでできあがり。
シャバシャバカレーにするなら、やっぱり野菜盛りなゲキアツのスープカレーが良い。
1つ注意点、
クミン炒めると部屋中にカレー?の香りが充満するので換気は強徹底で!
登録:
投稿 (Atom)