https://news.yahoo.co.jp/byline/kimuramasato/20201222-00213903/
2020年12月27日日曜日
2020年12月26日土曜日
コロナとインフルの比較
新型コロナウイルスの致死率は、0.25%~4%程度、インフルエンザの致死率は0.1%程度。
でも、無症状率がコロナが最大60%、インフルが10%
無症状も多いけど、いったん悪化すると命にかかわる危険性がインフルの40倍ということのようです。
https://www.saiseikai.or.jp/feature/covid19/influenza/
※最近の情報では、無症状率はコロナで20%以下となっているようです。2021/1/5
2020年11月21日土曜日
OCRでレシート処理し、OFX変換
C#でレシートをOCR処理してOFXに変換して、Moneyに読み込んで使ってきた。これまで、OCRはGoogleをネット経由で使ってきたが、通信を使うためいまひとつレスポンスがよくなかった。tesseractを試してみたら、速くて認識もそこそこ正確でよい。
https://gammasoft.jp/blog/tesseract-ocr-install-on-windows/#next-step
ELMで数の分解練習ドリル
ELMで10までの数の分解ドリルをつくってみた。関数型の言語は、機能を追加するときに、どういう構造にするか少し考える必要はあるが、関数を使って統一的に作られているのですっきりしたものにできる(覚えるべきことが少ない)。ELMアーキテクチャも、データの変更の流れを把握しやすく、WEBアプリ作成にあっていると思う。また、コンパイルエラーメッセージが詳しいので、それを見ながら手直しがしやすい。
https://gh6141.github.io/gitdrill/src/Subunkai_Btn.html
車をクリックすると車種が変化するので、数の確認に使えるかと思います。
ソースは以下の通り。とりあえず動けばいいという感じで作ったので、まだまだ改善の余地はありそうですが。
2020年11月16日月曜日
実践scala入門を読んでみた
実践scala入門を読んでみたが、要点がコンパクトにまとまっていて、読みやすい。コップ本も、説明が詳しく深く理解するにはいい部分もあるが、あまりに説明が長く難解なところもある。その点この本は、短期間に概要を理解するにはいい本だと思った。
2020年11月10日火曜日
シャワー取付台のねじゆるみ
シャワー取付台のねじはゆるみやすい。壁側の穴が少しずつくずれて大きくなっていると思われる。これまで、場所を変えたりしてきたが、やはり何年かすると自然と緩んでくる。
今回は、アンカーを使ってみた。しっかり固定できた。穴の径が大きいほうが、当然固定する力は大きくなるので、これでしばらく様子を見てみることにした。
2020年10月31日土曜日
石灰沈着性腱板炎
数週間前から徐々に肩の痛みが出てきて、整形外科の診察を受ける。石灰沈着性の炎症らしい。どうやら、横になると痛みが増す。ゆっくり寝て早く治したいところだけど、痛みで眠れないとそうもいかなので、どうしたものかと。 以前、横になると咳が出やすくて苦労したことがあり、そのとき、寝床に若干の角度をつけるといいことがわかった。今回も、同じことを試してみたら、ズキズキ感が和らぎ、おかげで回復もはやくなったようです。
コップ本(Scala)の読み直し
数年前読んだ、コップ本を再度読み直してみている。暗黙の変換、暗黙のパラメータのあたりまで読んだところで、暗黙のパラメータがいまいちわかりにくかったので、ネットでもわかりやすい説明ないか探してみる。以下の説明がわかりやすく助かりました。
2020年9月19日土曜日
supernote A6 4分割利用
電子書籍は利用してないけれど、PDF文書の読みかきの機会は多い。以前は、PDFの読み書きは、PCやタブレットを使っていた。PCは文字が大きめにできる点ではいいけれど、手書きの書き込みが難しい。タブレットはバッテリーの充電が頻繁に必要で、手書きの精度もいまひとつ。そこで、Supernote A6を購入してみた。
充電は1週間に1回程度でいいし、手書きの精度もほとんど、紙に書くのと変わらない。まだ、アプリのアップデートは続いているようなので、さらに使いやすくなることを期待したい。
文字の大きさについては、見開き縦書き書籍などは2分割、見開き横書きであれば、4分割などして、見やすく加工すれば問題なく使える。文の境目で分割されることもあるので、-crop 50%%x52%% としました。
4分割のためのバッチファイル 例2020年9月18日金曜日
raspi sdカード交換
canvasに画像貼り付け
javascriptでcanvasへ画像貼り付けできないか試してみた。
canvasで、右クリック貼り付けとしたかったのですが、うまくいかず。
とりあえず、div要素をクリック後、CTRL+Vで貼り付けしてみたらなんとか動作した。
HTMLには2020年9月12日土曜日
ドコモ口座対策
ドコモと契約してない関係ない人が被害にあうという。
素人考えかもしれないけれど、ドコモ口座と銀行が紐づいているかどうか、利用者が簡単に確認できるシステムさえあれば解決できそうな気もするのだけど。また、こちらで、口座を毎月チェックなどしなくても、銀行側でドコモ口座等へのチャージがあれば、メールで通知してくれる機能とか、いろいろ対策はありそうな気もするけれど。
2020年9月6日日曜日
FG201耕運機修理
今年は耕運機がまったく動かず、素人ながらいろいろ修理をしてみたが、動力系は自分にとってはやはり難しい。電圧が低く、点火しないような気がして、イグナタを交換したが、そうではなかったようだ(車だとイグニッションコイルがだめになることはたまにあるが、耕運機はめったにないようだ)。キャブレーターをキャブレタクリーナとパーツクリーナーできれいにしたら。少し動きかけたが、すぐとまる。電圧が低いと勘違いして、イグナタの位置をマグネットに近づけすぎたのが原因だったよう。あまり近すぎても回転がスムーズにいかない。同様に、点火プラグの間隔もいじってしまったが、これもあまりよくなかったかもしれない。
イグナタの位置調整でとりあえず、動くようになったが、なんとなく、不安定な感じがする。カタカタ金属音のような音も交じっている。このところ、広い畑を使っているわけでもないので、ここはあきらめて、下取りにでもまわして、プロに再生をおまかせといったところかも。
2020年8月28日金曜日
動的な二値化
写真で文書をとると、照明の関係でどうしても、背景の明暗が影響して二値化がうまくいかない。これをうまく処理するために、opencvsharpライブラリを利用しC#で作ってみた。Nugetで、ライブラリを入手して作成。だいぶみやすくなる。
2020年8月21日金曜日
2020年8月19日水曜日
JPGからPDFを一括で作成
バッチファイルで、JPGからPDFを作成するコマンドを考えてみた。
必要なものとして、ImageMagickとpdftk。
処理したいJPGがあるフォルダの中に、以下のバッチファイルを置いて、実行します。できたPDFは一つ上のフォルダに作成されます。
for %%i in (*.JPG) do (magick.exe convert %%i %%i.pdf)
pdftk *.pdf cat output ..\ketugo.pdf
del *.pdf
2020年8月12日水曜日
不要なものを捨てることで見えてきたこと
場所だけ取って使わないものが増えてきた。自然界はほうっておけばエントロピーがつねに増大する(散らかる)。モノが増えると、肝心のときさがせず、結局また買ってしまうこともある。どれを使おうかと選択したり、掃除・整理したりすることに時間がかかる。壊れたら、修理を試すこともある。粗大ごみは捨てるのにもお金がかかる。意外に生活への影響が大きい。
ここ1週間ほど持ち物の整理をしてみた。まだ十分でないが、以前に比べたらだいぶモノが減って、モノの管理は楽になってきた。今後ものを買う場合は、よく吟味して、せっかく減らしたものがまた増えないように気を付けたい。
モノと同様、情報もありすぎると結局使わない。ハードディスクやSSDも安くなってきたけれど、あまり多くのデータがあっても、肝心のものを探すのに時間がかかる。ときどき、整理し、データを減らすことも必要だと感じる。
2020年8月7日金曜日
ディスプレイをラックに固定してみた
2020年7月19日日曜日
デフレを解消するには
・日本だけ成長しなくなったのは、デフレが原因
・合成の誤謬:個々は正しく行動しても、全体としては好ましくないこと。景気悪いので、支出切りつめ節約→需要の縮小→物が売れない
・デフレを解消するには、大きな政府、財政出動の拡大、減税、金融緩和、規制強化(産業保護、労働者保護)、重要産業の国有化、グローバル化の抑制
・貨幣には現金通貨と預金通貨がある。預金は銀行が貸し出しを行うと創造される。銀行は、保有する資金量の制約は受けないが、借り手の返済能力の制約は受ける。
・現代貨幣理論(MMT):通貨を納税手段に→結果的に通貨が国民に受け入れられ広く使用される。
・量的緩和では貨幣供給量は増えない。財政政策が必要。
・機能的財政論:財政赤字=民間貯蓄、自国通貨建て国債が返済不能となることは歴史上例がない。財政赤字の大きさは、財政危機とは無関係で、基準はインフレ率。税は、物価調整や所得再分配など経済全体を調整するための手段であり、財源確保の手段ではない。
金利上昇は、財政赤字の拡大ではなく、デフレ脱却が必要。
・国内民間部門の収支+国内政府部門の収支+海外部門の収支=0
・戦後日本の輸出依存度は10~15%程度で、内需大国で貿易立国ではない。自由貿易が経済成長をもたらすとは限らず、保護貿易の下で貿易が拡大することもある。
MMTへの反論としては、いったん、インフレになると対応まで時間差がどうしてもできるので、対処が難しいのでないか、日本の人口構造からデフレはやむを得ないとかいう意見もあるようですが、本当のところはどうなんでしょう?
2020年7月10日金曜日
VBAマクロで任意のエクセルファイルから、必要データを抽出
ファイルパスは、以下のようなマクロで取得
データのコピー処理は以下のようなマクロで
2020年7月5日日曜日
ルベーグ積分 要点と復習 問1.26
問1.26 ①{Ej}が互いに素ならば (1.5)のようにあらわされる関数fの地域は高々可算であることを示せ。また、②{Ej}が互いに素でないならば、値域は一般には、非可算であることを例によって示せ。
(∵)
①:{Ej}が互いに素とすると、 X∖ UjEj≠0ならば これを付けくわえることで UjEj=Xとしてよい。 このとき ∀x∈Xは ちょうど 1つのEjに入るから
fの値域は {aj}
②:{Ej}が互いに素でないとき (1.5)のfの地域が非可算になる例
区間I=[0,1) 上の関数 f(x)=x の値域はIであり 非可算
f(x)(=x)∈Iの2進展開は
f(x)=Σ(1/2)^j・αj(x) =Σ(1/2)^j・1Ej(x)
ただし、 αj(x)は0または1であり それによって f(x)は [0,1)の中のいずれかの値をとる。
イメージとしては
xα= (1/2)^1・0+(1/2)^2・1+(1/2)^3・1+....+(1/2)^n・0 だとすると、 Ej={x∈I:αj(x)=1} と表せるが 上の例では E2でも、E3でもxαが該当
2020年6月28日日曜日
ルベーグ積分 要点と復習 問1.11
(∵) 右辺=Bとする
B(R)∪{-∞}∪{∞} ⊂ B ⊂ B(R)
①
①について確認:
B(R)={{E1},{E2},,,,}とすれば
B(R)∪{-∞}∪{∞}= {{E1},{E2},,,,{-∞},{∞}}
B={{E1},{E2},,,,{-∞},{∞},{E1,±∞},,,{E2,∞},,{±∞},,,} というイメージ?
B(R)はB(R)U{∞}U{-∞}から生成したσ加法族
B(R)U{∞}U{-∞}を含むσ加法族の最小のものなので、Bがσ加法族なら、 B(R)と一致
Bがσ加法族を示すとよい
(ⅰ) R =R∪{-∞、∞} ∈ B
(ⅱ) E∈B(R)、F⊂{-∞、∞}とすると
R ∖(E∪F)=(R∖E)∪({-∞、∞}∖F) ∈ B
∵ E∪F∈B R∖E∈B(R) {-∞、∞}∖F ⊂{-∞、∞}
(ⅲ)En∈B(R)、Fn⊂{-∞、∞}とすると
Un(EnUFn)=(UnEn)U(UnFn) ∈ B
∵ EnUFn ∈B UnEn ∈B(R) UnFn ∈{-∞、∞}
Lets Encrypt 更新
ファイヤーウオールで80ポートをどう通すかが、けっこうカギになるようだ。
raspiで運用しているが、1か月ごと自動で処理できないか、試してみる予定。
sudo pico /etc/crontabで設定
sudo certbot certificatesで 残り日数が確認できる
sudo certbot renew --dry-runでテストしてから、うまくいったら、--dry-runをはずして実行するとよいようだ。
2020年6月27日土曜日
ルベーグ積分 要点と復習 問1.10
(ⅰ)引き戻しf-1(By)はBxに含まれる
(ⅱ)押し出しf(Bx)はByを含む
(∵) (ⅰ)は f-1(By)={f-1(F):F∈By} ⊂ Bx
包含関係から
∀f-1(F)∈f-1(By)ならば f-1(F)∈Bx ①
f-1(F)∈f-1(By) ⇔ F∈By なので
①は F∈Byならば f-1(F)∈Bx (②) と同値
f-1(F)∈Bx ⇔ F∈f(Bx) なので
②は F∈Byならば F∈f(Bx) (③) と同値
③より包含関係は f(Bx)={F⊂Y:f-1(F)∈Bx}⊃By
2020年6月26日金曜日
ワンタッチでスマホからNASへファイル移動
ただ、古いスマホで動作するアプリにするため、ライブラリのバージョン合わせが大変だった。(javaの機能も古い非推奨のものしか使えないので)また、レイアウト設定方法も常に新しいものになっているので慣れるまで少し時間がかかる。
以前、NASからスマホにデータ移動する非同期処理アプリを作っていたので、それに機能追加する形にしてみた。以前はなんか転送スピードが遅いと思っていたが、bufferがディフォルトで1024bytesというのが原因だった。1MBにしてみたら改善された。
移動元、移動先パスは固定にした。USBケーブルをつなぐ必要もないし、データの宛先を指定したりする必要がないので、スマホカメラも便利に使える。デジカメなどは、その都度SDCARDを取り出したりという手間がかかるので、それに比べると手軽です。
ソースは以下にあります。
https://github.com/gh6141/SumahoCopy
2020年6月20日土曜日
i-5 NoteのSSD交換
https://blog.goo.ne.jp/freedomeagle/e/8e1334748c627c8838e364f3c17b7dae
上記リンクが詳しいです。けっこうな作業量です。
CS-223CFR基板交換
症状は、動作するまで何回かON OFFする必要がでてきたこと。いったん、動き出すと問題ないけれど。症状からおそらく、制御系の問題と推測。
https://panasonicbuhin.ocnk.net/product/1612
上記リンクから基板が入手できたので、1万円ちょっとで購入。(ナショナル(パナソニック)の場合は、基板の故障が多いという情報もあったので)
電源コード抜いても数分は危険らしいので、作業前にあらかじめコンセントは抜いておいた。室外機の上面、前面カバーをはずしてから、基板につながるケーブルを外していきました。ほとんどのコネクタが違う型なのですが、一部、似たようなコネクタも2,3あります。念のため、外す前にコネクタの白い部分に取付位置を簡単にネームペンで記入しておきました。
取り外した基板をよくみると、放熱板付近の色が少し変色していました。熱による不具合でしょうか。新しい基板に交換して試してみたら無事、正常運転できるようになりました。
2020年6月7日日曜日
物置の扉についている見慣れないもの
久しぶり、草取りをしていたら、物置の扉に見慣れないものがくっついている。最初は、何かの種と思ったが、取るときに粘着性を感じる。ひょっとして何かの虫と思い、画像データで画像検索したら、どうやらミノムシらしい。絶滅危惧種になっているらしい。
雄はガとして飛び回るけど、雌は蓑の中にとどまるらしい。幼虫のときは葉を食べるけれど、成虫になると口も退化して何もたべず、交尾後一生を終えるのだとか。不思議な生き物もいるものです。
2020年5月4日月曜日
繰り下げ年数
X:繰り下げ年齢
E:寿命
とすると (1+K(X-65))*(E-X)なので、微分して
X=-1/(2K)+(E+65)/2
E=-65+2*(X+1/(2K))
予測寿命に照らして、適切な繰り下げ年齢は
2020年5月2日土曜日
ELMで月の取得
import Timeだけではだめで
exposing (Month(..), Posix, Weekday(..), Zone)
をつけることで解決。
https://github.com/ababup1192/elm-firebase-chat/blob/master/src/Main.elm
2020年5月1日金曜日
ELMでのPost & 全角文字処理について
https://nulab.com/ja/blog/nulab/elm-introduction-tutorial-2/
を 参考にさせていただきました。
Http.post
{ url = ”/path”
, body =Http.stringBody "application/x-www-form-urlencoded"
("komoku1="
++ komoku1
++ "&komoku2="++komoku2
)
, expect=Http.expectString GotText
}
のような感じで使えるようです。
bottleと組み合わせて、使っていましたが、bottleのrouteで、全角文字は使えないので、どうしようかと考えた結果、Postで全角データを渡すことで解決。
なお、Pythonでは
urllib.parse.unquoteを使えばデコードができる。
ajaxの送信側では、全角文字のエンコードは自動でやってくれるようだ。
ただ、それでも<img src=...>による画像表示の中に全角文字が入るとどうしようもない。そこで、画像ファイルについては、md5によるハッシュで変換することで解決した。
CybozuLabs.MD5.calcを使わせていただきました。
https://labs.cybozu.co.jp/blog/mitsunari/2007/07/md5js_1.html
なお、Python側でもmd5ハッシュを使おうとしましたが、javascript側での計算値と一致させる方法がわからず、javascript側から、ハッシュ値をpython側に送って使うようにして解決。Hashの基本的使い方がまだ勉強不足。
ELMで URL Encode
import Url
urlEncode:Maybe String -> Maybe String
urlEncode ma =
case ma of
Nothing -> Just ""
Just a -> Just (Url.percentEncode a)
このような関数を作って Maybe Stringに適用できるようしてみたら、うまくいく。
2020年4月26日日曜日
スマホ用メモアプリ
ajax送信部分は
こちらがバックエンドになります。(bottle)
・スマホのイベントはマウスとは別にタッチイベントをつくる必要があります。微妙に座標の処理が違います。
・保存ボタン不要にするため、タッチが離れるたびにAjaxで画像をPostしてクラウド上に保存しました。
・javascriptソースをアップしようとしたのですが、ブログのセキュリティフィルター?のためか、うまくいかず、一部だけのせました。
heroku にbottle paste適用
・ web.serve(app, host='0.0.0.0', port=int(os.environ.get("PORT", 8888)),daemon_threads=False,threadpool_workers=25,use_threadpool=True)
というように、port=int(os.environ.get("PORT", 8888))を入れるといいようです。
https://qiita.com/sgigagaeru/items/d0bffd18d1644d292b3d
上記のリンクを参考にさせていただきました。こうすると、raspiでは8888で、herokuでは対応したポートに自動で切り替わるようです。
・requirements.txtに、必要なモジュールを追加しておく必要があるようです。
herokuでpip install pasteだけではだめで、このファイルに
Paste==3.4.0
を1行追加したらokでした。
この2つだけなのですが、いろいろ試行錯誤したり、ネットの情報集めで意外と時間がかかってしまいました。
2020年4月24日金曜日
bottleでstatic_fileを使う
jsファイルやJpgファイルなど区別して、mimetypeを指定してやるといいようです。
@app.route('/py/<fname:re:.*\.js>')
def static(fname):
return static_file(fname,root='/home/pi/c9/bottle/python-getting-started/py',mimetype='application/javascript')
@app.route('/py/<fname:re:.*\.jpg>')
def staticjpg(fname):
return static_file(fname,root='/home/pi/c9/bottle/python-getting-started/py',mimetype='image/jpg')
2020年4月22日水曜日
Raspi2でSSL化
ついでに、pythonのバージョンも3に変更した
https://qiita.com/Takumi_Kaibara/items/6aadf1ac2c1f6bea41a8
無料SSLはCertbotなどでググるとたくさん情報がある
Cerbot入門
エラーの処理なども説明してくださっているサイトも参考になります
https://blog.ijoru.com/?p=675
リバースプロキシを使うことにした
http://itdoc.hitachi.co.jp/manuals/link/cosmi_v0950/03Y1830D/EY180050.HTM
bottleを使うと、シングルスレッドなので、よく落ちます。それを改善するにはPasteを使うといいようです。
https://www.netmarvs.com/archives/895
RasPi2では、Cloud9とbottleの2つをポート番号を違えて動かしていたので
リバースプロキシからうまくつなげるのに、苦労した。
ネット上にも情報がないので、試行錯誤の結果、以下のようにしたらうまくいった。
default-ssl.confのProxyPassは
ProxyPass /abc http://localhost:12080/abc
ProxyPass /def http://localhost:12080/def
....等々bottleのサーバを記述し
cloud9については、最後に
ProxyPass / http://localhost:8080/
としてやるとうまくいった。
2020年4月18日土曜日
標準ツールでパケットキャプチャ
https://www.hi-song.jp/entry/2017/06/25/071031
を参考にさせていただく。
キャプチャの開始:netsh trace start capture=yes
キャプチャの終了:netsh trace stop
出力先や最大サイズも指定もできて
netsh trace start capture=yes traceFile=D:\YYYYMMDD-HHMMSS.etl maxSize=1000
などとするといいようだ。
https://troushoo.blog.fc2.com/blog-entry-416.html
で、etl2pcapngというツールを入手して、Wireshark用のファイルに変換します。
etl2pcapng 20200418-120600.etl dst.pcap というように。
ルータのファイヤーウオールの設定について
ある程度きびしめに、設定して必要に応じてポートを開けていくようにするようにしている。ただ、送信元と宛先のプロトコルとポートの組み合わせをよくチェックしながら設定しないとうっかりミスしやすいので注意が必要なようだ。
・ディフォルトの設定に加えて
①まずいったん、内部から外部へのすべてのアクセスを制限
②次に、内部から外部への必要なアクセスを許可していく(Web,メール,DNS等)
③外部から内部へのアクセス許可を必要に応じて許可していく
③の場合は、IPマスカレードの設定で、ポートにより外部からのアクセスの振り分け設定が必要。
2020年4月9日木曜日
groupsession 回覧の「確認」クリックせずに既読に
また、ソースを公開してあるため、カスタマイズもできるようになっています。
今回、回覧機能で、確認ボタンをクリックしなくても、既読になるように
カスタマイズしてみました。Cir020Action.javaの2か所を変更します。
private ActionForward __doInit(
途中省略
biz.setPrevNext(paramMdl, con,
paramMdl.getCirViewAccount(), GSConstCircular.MODE_JUSIN, userSid);
paramMdl.setFormData(form);
con.setAutoCommit(false);
//********************ここから
RequestModel reqMdl = getRequestModel(req);
MlCountMtController cntCon=null;
try {
cntCon = getCountMtController(req);
} catch (Exception e) {
e.printStackTrace();
}
String appRootPath = getAppRootPath();
paramMdl.setParam(form);
try {
biz.doUpdate(
paramMdl, con, reqMdl,
paramMdl.getCirViewAccount(),
userSid, cntCon, tempDir, appRootPath);
} catch (Exception e) {
e.printStackTrace();
}
paramMdl.setFormData(form);
//++++++++++++++++ここまで 追加
return __doDsp(map, form, req, res, con, true);
}
private ActionForward __doPrevNext(
途中省略
}
} finally {
con.setAutoCommit(false);
}
********************ここから
RequestModel reqMdl = getRequestModel(req);
MlCountMtController cntCon=null;
try {
cntCon = getCountMtController(req);
} catch (Exception e) {
e.printStackTrace();
}
String appRootPath = getAppRootPath();
Cir020ParamModel paramMdl = new Cir020ParamModel();
paramMdl.setParam(form);
Cir020Biz biz = new Cir020Biz();
try {
biz.doUpdate(
paramMdl, con, reqMdl,
paramMdl.getCirViewAccount(),
userSid, cntCon, tempDir, appRootPath);
} catch (Exception e) {
e.printStackTrace();
}
paramMdl.setFormData(form);
//++++++++++++++++ここまで 追加
return __doDsp(map, form, req, res, con, true);
}
2020年3月29日日曜日
エクセルで他のエクセルファイルを汎用的にリンクするには
・さらに、汎用性高めるため、ひとつのリンクセルの式をそのままコピペすることができるようにしておくと便利です。
そこで、次のようなものを作成してみました。まず、設定シートに以下のようなパスをいれておきます。
設定!B2セルに E:\Mydocuments\[Book3.xlsx]Sheet1
=INDIRECT("'"&INDIRECT("設定!$B$2")&"'!"&ADDRESS(ROW(),COLUMN()))
PDFをC#で作成 フォントについて
https://gammasoft.jp/blog/pdf-japanese-font-by-csharp/
を参考にさせていただきました。PDFsharpを使いました。
フォントが問題なるようですが、上記のプログラムを参考にさせていただきました。
明朝体を使いたかったので、IPAからフォントを入手して使ってみました。
C#でフォントのプロパティでビルドアクションを埋め込みソースにします。
あとレゾルバーのソースに何行か追加しますが、最初
private static readonly string IPAMJM_TTF = "<プロジェクト名>.fonts.ipamjm.ttf";
の<プロジェクト名>.fontsの部分をうっかり入れ忘れて、気づくまでしばらくかかってしまいました。ここ以外は、他の行を参考にすれば、変更方法は類推できると思います。
2020年3月20日金曜日
eclipseのgitについて
などを参考に、使い方を確認した。
ただ、なぜかうまくいかない。コミットもうまくいかない。
なぜだろうといろいろ考えながら、フォルダの中を直接のぞいてみると
あちこちに.gitフォルダや.gitignoreのファイルが散らばっている。いろいろ試しいるうちに増えてしまい、それがそのまま残っていたのが原因のようだった。
これらのファイルをすべて削除したら、うまく動作した。
2020年3月7日土曜日
POIでセル結合ありのエクセルデータをHTMLに変換
http://higehige0.blog.fc2.com/blog-entry-57.html
を参考にさせていただきました。
int cct,int yiがセルの列位置、行位置
List<CellRangeAddress> rangeLstは、上記リンクを参照
Javaも関数型プログラミングが使えるようになってきたので、早速使ってみました。
String LTdt= rangeLst.stream().filter(x->x.getFirstRow()==yi&&x.getFirstColumn()==cct).map(x->cct+","+yi+","+x.getLastColumn()+","+x.getLastRow()).findAny().orElse("");
String LTdt2= rangeLst.stream().filter(
x->x.getFirstRow()<yi && x.getLastRow()>=yi && x.getFirstColumn()<cct && x.getLastColumn()>=cct
|| x.getFirstRow()==yi && x.getFirstColumn()<cct && x.getLastColumn()>=cct
|| x.getFirstRow()<yi && x.getLastRow()>=yi && x.getFirstColumn()==cct
).map(x->"DEL").findAny().orElse("");
LTdt、LTdt2の文字があるかどうかで、3パターンに分類して処理するとOkでした。
分類部分は省略しますが、表示部分は以下のような感じです。
・cst="<td >"+cellValue+"</td>";
・String CrSt[]=LTdt.split(",");
String tdst="";
if(!CrSt[0].equals(CrSt[2])) {
tdst=" colspan=\""+ ( Integer.parseInt(CrSt[2])-Integer.parseInt(CrSt[0]) +1 )+"\""; }
if(!CrSt[1].equals(CrSt[3])) {
tdst=tdst+" rowspan=\""+ ( Integer.parseInt(CrSt[3])-Integer.parseInt(CrSt[1]) +1 )+"\""; }
cst="<td "+width+" align=left "+tdst+">"+cellValue+"</td>";
・cst="";
2020年3月5日木曜日
groupsessionをeclipseで動かす
2020年2月25日火曜日
2020年1月19日日曜日
ScanSnap S500のフィードローラ交換について
https://p--q.blogspot.com/2019/07/scansnap-s500.html
http://namba-reading.seesaa.net/article/463663914.html
上記のリンクを参考にさせていただき、ローラーをAliexpressで注文し交換してみました。安価な部品ですが、交換は、かなり難度が高く、4時間ぐらいはかかってしまいました。でも、交換後は、非常にスムーズでほぼ新品時のときのような動作です。
苦労した点としては
・ローラーを軸に通すためにかなりの力が必要です。水で少しぬらすといいようでした。
・一部、コネクタから導線が抜けてしまいましたが、抜けた穴を予想してもどしたところなんとかなったようです。
・歯車にベルトをかけもどすのも、手間取ってしまいました。歯車を完全に固定してからベルトをかけるのはきつかったので、歯車にベルトをかけた状態で、軸に差し込むようにしたほうがよかったようです。
・片方の小さいコネクタ(白)で、ささなくていいものがあったようです。さし忘れたかとおもって、点検のため、時間がかかってしまいました。
新品購入すれば、最低でも2~3万円はするスキャナなので、手間はかかるものの、その分のメリットはありそうです。
2020年1月6日月曜日
LSTMで時系列データの予想してみた
モデルの作成部分と結果表示の部分のみです。
2020年1月5日日曜日
詳解 ディープラーニング で よくわからないところ
length_of_sequences = 2 * T # 全時系列の長さ
maxlen = 25 # 1 つの時系列データの長さ
data = []
target = []
for i in range(0, length_of_sequences - maxlen + 1):
data.append(f[i: i + maxlen])
target.append(f[i + maxlen])
となっていますが、length_of_sequences - maxlen + 1のところは
length_of_sequences - maxlen かな??と 勘違いかもしれませんが。
length_of_sequencesが最後のインデックス値ならわかるのですが。
Lengthとなるとうまくいかないような、、、よくわかりません。
2020年1月1日水曜日
c#でOCR(Google)
https://orizuru.io/blog/csharp/google-ocr/
Nugetで、Google.Cloud.Vision.V1 を入手
netcoreの最新版で、コンソールアプリとしてコンパイルしました。
googleでもAPIが使えるように登録が必要でした。秘密鍵はJSONファイルとしてダウンロードします。
対象の画像ファイルはカレントディレクトリに入れておく必要があるようでした。
(netcoreapp3.1のフォルダ内に入れておくといいようです。)
c#でPDFのOCR
var Ocr = new IronOcr.AutoOcr();
Ocr.Language = IronOcr.Languages.Japanese.OcrLanguagePack;
var Results = Ocr.ReadPdf(@path);
var Text = Results.Text;
MessageBox.Show(Text);
https://ironsoftware.com/csharp/ocr/examples/pdf-ocr/