あけましておめでとうございます。
今年もよろしくお願いいたします。
一年の抱負を考えてみました。
実現できるよう、今年もがんばっていこうと思います。
今年も一年お疲れ様でした。
振り返ってみると、様々なできごとがあって充実した一年だったと思います。
今年のはじめに立てた目標に対しては、以下の結果となりました。
明日は2019年の目標を立てたいと思います。
皆様、良いお年をお迎えください。
■ 状況
railsでbeforeunloadイベントを使用して、ページ遷移時に警告を出そうとしたところ、aのリンクで意図した動作がしない。
■ 原因
railsでturbolinkを使っている場合、ページをリロードせずに画面を書き換えるため、beforeunloadイベントが発生しない。
■ 対策
対策としては以下のあたり。
マイコンの割り込みをLinux上でシグナルとスレッドを使って再現してみた。
大まかな処理は、マルチスレッドで制御のスレッドとマイコンの処理相当を行うスレッドの2つを作成、
制御側からマイコンの処理相当のスレッドをシグナルで一時停止させ、その間に割り込みハンドラを実行する。
フルのソースコードは以下を参照。
https://github.com/yasuharu/micon_int_on_linux/
まずマイコン側の処理。UARTの受信を意図したもの。
uart_rx_handlerが割り込みハンドラ、micon_mainがマイコン側のメイン処理。
メイン側の処理は、マイコン用のスレッドを作成し、一定期間ごとに割り込みを生成する。
割り込みの生成タイミングは、お好きなタイミングでどうぞ。
シグナルはSIGUSR1とSIGUSR2を使用する。
SIGUSR1はマイコン側の処理をsuspend、SIGUSR2はマイコン側の処理をresumeするために使用する。
micon_thread内で以下の通り初期化する。
1void micon_thread() 2{ 3 struct sigaction sigusr1, sigusr2; 4 5 sigusr1.sa_flags = 0; 6 sigusr1.sa_handler = micon_thread_signal_usr1_handler; 7 sigemptyset(&sigusr1.sa_mask); 8 sigaction(SIGUSR1, &sigusr1, NULL); 9 10 sigusr2.sa_flags = 0; 11 sigusr2.sa_handler = micon_thread_signal_usr2_handler; 12 sigemptyset(&sigusr2.sa_mask); 13 sigaction(SIGUSR2, &sigusr2, NULL); 14 15 micon_main(); 16}
今回のポイントは、以下のコードの部分。
suspend/resumeでマイコン側のスレッドを一時停止させる。
SIGUSRT1のハンドラ(micon_thread_signal_usr1_handler)内では、
sigsuspendを呼んで、SIGUSR2が発生するまで待つ。
割り込みハンドラはメインのスレッド、シグナルのハンドラはマイコンのスレッドと、
それぞれで実行しているコンテキストが違うことに注意が必要。
特にシグナルのハンドラのsigsuspendを実行する前に、割り込みハンドラが実行されないよう、
int_statusで処理待ちを行うようにしている。
(ちなみに、int_statusは本来であればmutexでロックが必要)
割り込みが発生したときの処理をまとめると以下の図になる。
do_irq_handlerはこんな感じ。
int_statusを待つことだけ注意。
とあるデータの予測をしたいため、ディープラーニングをはじめてみた。
経緯としては、今まではルールベースでの予測だったものの、あまり精度が伸びず。
ディープラーニングでうまくいかないか試行錯誤してみることにしてみました。
まずは手元のMacBookProにTensorflow + Kerasの環境を構築。
UbuntuのVM上で構築したので、pipでさくっと入って良い感じです。
Jupyter notebookを使いたかったけど、こちらはPython 2.7上に入れようとしたのが問題なのか、
依存関係が不適切になってしまい断念。まぁなくてもどうにかなるでしょう。
まずは試しにMNISTのデータセットのexampleを動かしてみる。
https://github.com/keras-team/keras/blob/master/examples/mnist_mlp.py
K520 GPUだと2秒かかる学習をi7-6700HQだと10秒ほど。約5倍…。
実際にモデルを組んでみて、どうにもならなければディープラーニング用のマシンを用意したほうが良いかも。
ひとまず動くところまでは確認できたので、モデルの作り方を検討しながら、Kerasの使い方を調べてみよう。
■ 2017年について
今年は家庭状況が大きく変わりました。
大変なことも多いけど、楽しいことも多く、元気にやってます。
このブログの主としている技術的なことに関していえば、
必要な時間を割くことができずアウトプットがほとんど出せませんでした。
本当に自分が楽しいと思えることをじっくりとやっていくことが大切、と
思えるようになってきたので、着実にやっていくことを心がけていこうと思います。
さて、2017年の目標に対しての到達状況を見てみましょう。
トータルで見れば意外と進んでるのかなと。良かった良かった。
■ 2018年について
大きな方向としては、楽しく面白い一年にしていきたいです。
家庭と仕事とやりたいことと大変なことも多いけど、がんばっていきます。
そんな2018年の目標は以下の通りです。
あと、日記も全然書いていなかったので書いていこうと思います。
以下の2つのETFで分配金に対する課税が異なることに気付いた。
同じiシェアーズの外国株式だから、30% * 20.315% と思ってた。
これは誤り。以下のようになる。
そもそも、上記の税率は <現地国での課税> + <国内での課税> から求められる。
30%の部分はあくまでも米国で課税をされた場合。
また、iシェアーズのETFでもファンドの籍が異なるケースがある。
米国以外の場合、<現地国での課税>がなくなり<国内での課税>のみになるケースがある。
「1362 iシェアーズ 新興国債券ETF-JDR」の場合は、上記のケースにあたり、<国内での課税>のみになる。
※「<現地国での課税>がなくなる」の理由は、二国間租税条約に基づいて、居住国でのみ課税されることと推測しています。
ちなみに、NISAの場合は、<国内での課税>も非課税になるので、結果として0%になる。
以下の資料を参考にしつつ、内容に注意をして記載をしています。
本当に困っている場合は、この記事をあてにせず専門家に相談しましょう。
料理の四面体を読了。
料理を火、水、空気、油の4要素で考えるとこうなるんだね。
各国の料理の共通性はわかりやすい。
https://www.amazon.co.jp/dp/B073DYQNC9/
午前は立川へ。
最近、日光の眩しさが気になってきて、サングラスを探しに行った。
普段も使えて、スポーツ(自転車)でも使えるのが欲しくて、いろいろと見て回る。
一つの候補はアディダスのかなぁ。その場では購入せず。
帰ってきて、オークリーのFlak Jacketというのも気になる。問題は値段。。。
他の人が自分の日記を見てどう評価するか?ってことばかり考え始めると、
変に肩肘張ってしまって何も書けなくなってしまっていた。
ゆるっと、あったことをそのまま書いていくのが良いのかなぁ、と
とある人の日記を見ながら思ったりして、あれこれと書いてみようかなと。
先週一週間、休みを取って実家に帰って過ごしていた。
休日の濃密感に比べると、平日があっさりと過ぎてしまうことが多く、何かもの足りない…。
気づくともうこの時間なので、さっさと寝なければ。。。
今住んでいる市の有料ゴミ袋の色(袋自体の色のこと)が以下のようになってるんです。
これ、色が逆なんじゃないかなぁと思うんですよね…。
黄色 = 燃えるを想起してしまうような気がするんだけど、そんなことないのかなぁ。。。
WRC-1167GHBK-Sを使って、L2TP over IPsecをすると接続に失敗する。
パケットをキャプチャしてみると、最初の通信の段階でリクエストに対する、応答が返ってきておらず、タイムアウトしているようにみえる。
試しに、L2TP over IPsecに使用している500番ポートをポートフォワーディングすることで、VPN接続できることが確認できた。
同一の環境でルータの違いだけで問題の有無が変わっているので、
L2TP over IPsecのフォワーディングがうまくできていないんじゃないかなぁ…。
elecomに直接問い合わせをしてみようとは思ったけど、
簡単なサポートを目的とした電話サポート窓口しかないみたいなので、諦めることにした。
初詣でおみくじを引いた結果、今年は吉でした。
自分の芯を持つように、とのことで、何か仕事上で心当たりのありそうな…
苦労はあるけども頑張りましょう、ってところかなー
あけましておめでとうございます。
昨年一年の振り返りとともに、今年の抱負を考えてみました。
トータルとしては、仕事とプライベートと良い一年であったと思います。
特に仕事の方は、いろいろな問題があったものの、問題を解決しながら少しづつでも前に進められています。
ただ、その一方で悩みは多い一年でした。
一つは、明確な目標がない課題に対して、モチベーションをどう保っていけばよいか、わからなくなってしまいました。
ここで言う「課題」は新規のアイディアや個人のプロダクトのことです。
結果としてだらだらと無為に時間を過ごすこととなり、思うように成果が残すことができませんでした。
まだはっきりとした答えにはたどり着けていないけども、一つには明確な道筋を立ててみること。
もう一つは、ダメかもしれないと手を止めるのではなく、ある程度は思い切りをもって(やる気がなくても)やってみること。
今のところはトピックレベルですが、はっきりとした答えが出たら、考えをまとめてみたいです。
もう一つは、自分の意見の伝え方や理解力に対して、未熟さが見えてきました。
例えば、人が2,3歩先を考えていることに対して、自分自身が1歩先までしか考えらていない点です。
また、理解はできていたとしても、それをうまく整理して相手に伝えられるかどうか、という点もあります。
いろいろな人と話しているとヒシヒシと感じることが多く、昨年は悩まされました。
ただ、今までは他の人と考えていることが違うことにすら、気づけてすらいなかった点なので、
そこを起点として考えると良くはなっていると思います。
今後も試行錯誤しながら、もっと伸ばしていけるかどうかが重要な点ですね。
以上のような昨年の状況も踏まえて、今年は以下のことを抱負にします。
またこの日記について、ここ数年は更新頻度が落ちていましたが、今年は書く頻度をあげて行きたいです。
これは、モチベーションを保っていく意味でも重要なことだと思っています。
一つでも多く実現できるように頑張っていきます。
今年も一年よろしくお願いいたします。
24日の電車の運行状況はこんな感じでした。
倒竹ってそんなに起きるものなの。。。?
MacBookPro Late 2016を買ったので、USB 3.1 to HDMI変換コネクタを買おうと思い
Amazonを見てたところ、不安定という記載を見かける。。。
そもそもの話、USB 3.1からHDMIってどう実現すれば良いのか?
USB 3.1の規格を調べてみると、Alternate Modeとしてサポートされるものとして以下のものがある。
HDMIがサポートされるからバンザイ、って思うのは気が早くて、
どうもサポートしている機器が少ないように見える。
(規格の策定が遅れて、サポートしてくれるベンダーが少なかったのかなぁ。。。)
また、MacBookProの仕様を見ると、DPは記載があるもののHDMIは記載がない。
となると、DPからHDMIに変換していると思うんだけど、これもまた話がややこしい。
DP++であれば直接HDMIの信号を出すことができるけれども、
USB 3.1のAlternate Modeを使った場合、DP++が使えない。
そうなると、いわゆるDPのActive Cableを使ってHDMIに変換する方法と同等のことをする必要がある。
以上から想像としては、以下のような接続になっているのかな?
USB 3.1 <- using Alternate mode -> DP <- DP-HDMI transmitter -> HDMI
元の話に戻ると、不安定な状況が起きているのは、DP-HDMI transmitterが問題なのかな…。
あるいは、MacBookProが出しているDPの帯域がおかしいか?
後者だったらファームウェアで直すことはできると思うけど、対応するかどうかだろうなぁ。
先週末、銀座での用事にあわせて、ふらーっと見に行ってきました。
FA用のアームロボットをキリンに見立てたりして、
何かシュールだけどやりたいことはよくわかる(笑)
部品見ながら「あ、これは…」って思うときだよね。
昨日、友人の(正確に言うと友人が働いている先の)バーへ行ってきました。
場所は銀座、なかなか普段は近寄りづらい場所にあります(笑)
ただ、そういう場所にあるからこそ、雰囲気を大切にしている感じはしました。
友人もそこで楽しそうに働いていることだし、良い感じにお酒も出してくれるし、ぜひまた行きたいな。
MoltenVKなるMac/iOSでVulkanを動かすためのフレームワークがあった。
MoltenVK – Molten
https://moltengl.com/moltenvk/
早速使ってみて、特に問題なく動いている。すごい…。
技術的にはMetalの上にVulkanを実装している。
その発想はなかったけど、確かに原理的にも納得が行くね。
Khronosのサンプルプログラムを動かすためには、少し手をいれる必要があるみたい。
diffとって見た感じだと、SPIR-Vのローダの部分が違うぐらい?