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を出してきてもいいよね。(出たら買うフラグ)

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*

これで通信エラーで復旧できないポートを復活させることができるかもしれません。




2019年6月28日金曜日

部屋干しの洗濯物の臭いをやっつける!

【プロジェクト:バスター洗濯臭】

洗濯した後に匂う「生乾き臭」、あれほんと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つ注意点、

クミン炒めると部屋中にカレー?の香りが充満するので換気は強徹底で!

令和時代のモノのありかた


~自分の考える令和時代~

昭和時代は黒電話を代表にどんな事が起きても壊れないものが良い製品で人気商品であった。

平成になるとモノで溢れかえり、昭和でいう良いものが売れにくい時代になったので
リリースサイクルを短くなり新商品というタイトルで目移りさせ
ガラクタやゴミでも物欲を掻き立てさせ容姿や口コミで売るのが平成になる。

令和からはいわゆるシェアエコノミーの時代がくる。
ゴミが増やさずリース販売がメインで進んでいくと思う。
日常生活に必要な家電類から植木鉢に至るまで全てリース化されて不要になれば業者に返却する。
もうゴミ量産時代は終わり。
欲しいと思った人にリースして関連サービスも提供されていき、新たなサービス業も増えいく。
所有する時代も変えていくのではなかろうか。

2019年5月23日木曜日

InkSpaceを使って画像(ラスタ)からSVG(ベクトル)へ変換する方法。



無料のドローツール「Inkspace」を使って、画像からベクトルデータに変換する方法をまとめました。

ダウンロード先
 https://inkscape.org/ja/

作業の流れ

 Inkspaceで画像を開いて、ベクトルデータに変換を行います。
 変換するとベクトルデータは範囲選択された状態になっていますが、
 ワーク上は画像データとベクトルデータが2つ重なっています。
 まず、切り取りしてクリップボードにベクトルデータを退避してから
 元画像データを削除してから
 クリップボードにあるベクトルデータを張り付けて終わり。

この話を手順にすると、、、



①InkSpaceを開く ②画像を開く ③CTRL+Aを押してすべて選択状態にしておく ④メニューバー「パス」→「ビットマップをトレース」を選択 ⑤プレビューをチェックを入れて画像が出てきたら「OK」ボタンを押す ⑥CTRL+Xで切り取りをする(トレースデータをクリップボードに退避) ⑦CTRL+Aでビットマップを全て選択して「Delete」キーを押す(最初の画像を削除) ⑧CTRL+Vでトレースデータを張り付けて、画像を白紙の上に移動させる ⑨ファイル→保存(EPSとか好きな形式で) これでファイル作成おk

2019年4月30日火曜日

VSCodeでAnaconda開発環境を整える。

VSCodeでAnaconda開発環境を整える。

Step1.PATH環境変数を設定する必要します。
 C:\Users\abc\Anaconda3
 C:\Users\abc\Anaconda3\Scripts
 C:\Users\abc\Anaconda3\Library\bin

Step2.Settings.jsonのPythonPathを設定する。
 "python.pythonPath": "C:\\Users\\abc\\Anaconda3\\envs\\bitmexbot\\python.exe"

以上で設定完了。

デバッグする時に左下のメニューバーにどのバージョンのPython実行環境を選べるので、
そこでActivateしたい環境を選べばOKです。

例:「Python 3.7.1 64bit("hoge": conda)」


Launch.jsonを作る時は、「Python: Current File」でひな型を作り
実行したいソースを開いて実行(F5)するとデバッグ開始します。

ーーーー

実はそのまま動かすと、PSSecuritException例外エラーが発生します。

PSSecuritExceptionエラーを出なくする方法

これを解決するには管理者権限でPowerShellを起動して、
以下のコマンドを入力します。

「Set-ExcutionPolicy RemoteSigned」

実行ポリシーを変更しますか?と出てきたら「Y」を押せば完了。

2019年3月28日木曜日

[ARM]最新のツールチェーン(gccとかdbg)をダウンロード

Cortex-M0+マイコンなSAMD21を使っているんだけど、
AtmelStudio開発環境で最初に同梱されているツールチェーンのバージョンが6.3.1だったりする。

古い(枯れた)環境で問題ないけども、最新のバージョンって気になるじゃん?ってことで入れてみた。


https://developer.arm.com/tools-and-software/open-source-software/gnu-toolchain/gnu-rm

上のURLから最新版をダウンロードしてきて、

「C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\arm\arm-gnu-toolchain」

この辺りのフォルダを差し替えるだけ!


まぁ、簡単で良かったけど、

gcc-arm-none-eabi-7-2018-q4はバグってるので

http://gcc-arm-none-eabi-7-2018-q2-update-win32.zip

1つ前をダウンロードしとく必要あり。

詳しくは下のサイトに載っています。
https://bugs.launchpad.net/gcc-arm-embedded/+bug/1810274

2019年3月22日金曜日

【ARM】【Cortex-M0+】【SAMD21】DMA転送の罠

【DMA転送の罠】

ソフトバンクが買収したARM社のマイコンをこれから積極的に活用しようとして色々勉強してるんだけど、ARMコアのDMA転送のしくみは罠すぎるというか改善余地ありに思えるw


DMA転送を語る前にまずCPUの仕組みを理解するにはOSを設計できるレベルの知識が必要で、特にスケジューリング周りは外せない。

FreeRTOSなプリエンティブ、多段フィードバックキューやタイムスライスなど。

IT系の国家資格を持ってる人なら試験範囲の部分だし、自作OSの実装などでも触っている部分だしこの辺の事は大丈夫だろうと思って油断したのがARMコアのDMA転送。。

仕様上リングバッファ非対応だとか、ラウンドロビンで優先権を回す方式など、ある程度の仕組みを調べていざ動かしてみるとなぜかフリーズするんですよね。。

(海外サイトでも動かなくて解決案が無く、Githubでもコメントでここはそのうち・・みたいな感じになっていたり。PC向けARMって大丈夫?)

フリーズする理由でいくつか考えてみると、割込みが飛んでこないからっていう理由でコールバック処理されないなど色々模索してみたけど結果解決できず。。しかもレジスタを覗いてみるとラウンドロビンのFIFOキューは空っぽ、、静的な割り当てしても反応しない、、アクティブチャンネルを変えようと思っても切り替わらないしいったいどうなってるの状態。



さまざまな代替案やアプローチを考え試したけどうまくいかなくて、最終的にはPIOでカバーという非常手段を取っておきつつ、何度も1000ページ超える英文のドキュメントを読み直しては間違った解釈が無いか、抜け漏れがないか調べてようやく気付いた事がある。



ラウンドロビン・・・(; ・`д・´)?



あー・・・(悲しみ

通信周りに関して上位レイヤーから物理レイヤーまですべて精通してるつもりだったけど、そうでもなかった件について。。

ラウンドロビンって順番に優先権を渡して終わったら次!っていう感じに回していく仕組みだから、受信側のDMA転送は指定バイト数受信が終わるまで優先権を奪ってしまうんですよね。
つまり、タイムアウトなんて機能がないため
他のDMA転送を開始しない限り優先権は切り替わる事はなく、そのままフリーズする現象が起こる。
というのもバイト単位をビートという名称で括っていて、1ビート単位で受信したよ!って割込みを発生させることができれば解決するように思えるがうまくいかない。
割込みをやめてライトバックキャッシュをポーリングして自分で転送データ数をカウントしていこうと思っても割込みが発生しない=ライトバックキャッシュは更新されない。って現象。
では、参照するたびにサスペンド・リジュームしていけば割込み飛んでくるし解決?って思いきや、割込み入るまで16クロック程度かかったりするのでオーバーランのリスクが高まる。
以上の事から1ビートを1バイト単位に刻めば解決?って思うけどそれはそれでメモリ圧迫するからしたくないジレンマ。。

今日考えたのは、タイマー割込みをDMA転送にして割込み優先度を受信DMA転送より高くしてあげればいいんじゃない?って発想。
1ms割込みを無駄に消費するけど、バス効率が悪くなるだけでCPUの負担は少ないはず。。
これでもう一度DMA転送を試してみようと思う。

教訓:知っているからって油断するとハマる罠あり

2019年3月17日日曜日

VSCodeでCortex-Mコアのビルド環境を整える

【VisualStudioCodeは便利】

VSCode上でCortex-M用のコードをビルド!

当時viかemacs、どちらを使うか悩んでいた時に

emacs派生のxyzzyを1か月使ってみて色々分かってきたんだけど

VIのシンプルさと軽量である点に惹かれてメインはVIM、しぶしぶVSを使うって感じでした。

(VSにはリファクタリング、コード補間機能が優れていて不満はないけど、もっさり感だけは・・・)



ちなみに今回VSCodeを使い始めようと思ったきっかけは

今やってるマイコンのプログラムのデバッグ環境がVIでは構築できなかったため。



最初は何をすればよいかサッパリ分からない状態だったけど

使い慣れていくうちに、これは便利だな・・・って思えるところまできましたw

というのも、GCCビルドする時もccacheを使う設定にしてみたり

GDB起動する時のConfigurationも自分で変更できるし。

むしろ書かないと何も動かないけど、書けば動くってところに魅力がある。



ってことで、今日はビルド&GDBデバッガ実行が整った記念にSS撮影w

まだ細かいところ、エラー行にジャンプする設定とかまだだけど、デバッガが使えるから重宝しそうです。


・・・さて、設定の内容に移ろうと思います。

まずは.vscodeフォルダに3つファイルがあります。

・c_cpp_properties.json  ・・・インクルード関係(参照ジャンプ用)
・launch.json       ・・・デバッガ設定
・tasks.json        ・・・ビルド設定


大まかに分けるとこんな感じです。

インクルード関係は、コード上波線~~が出てるところにカーソルを合わせると電球マークが出てくるからそれをクリックするだけでOK。

デバッガ設定はGDBを使う場合は、最初JTAGポート開いてデバイスにアタッチして、ロードして、break mainまでの一連のバッチを書きます。

ビルド環境は、Makefileのあるフォルダ設定をして、make clean、make allを実行できるようにします。

もしビルドの高速化でccacheを使う場合は、Makefileに書かれている gcc部分の前にccacheを入れるだけでOKです。

例:
gcc -o hoge.c

これを

ccache gcc -o hoge.c

にするだけ!


コードを張り付けようと思ったけど、
まだビルドエラーした時のエラー行ジャンプがまだなので、次回にします。

Androider