2018年12月26日水曜日

がんばってVBAを書いた話

家計簿つけ始めたんですよ
いい加減お金の管理グダグダだったので

すべての出費をクレカ、電子マネーで行い、毎月データをエクセルにコピペできる体制をまず作りました
エクセルのデータはピポットテーブルで速攻テーブル化できるようデータを一つのシートにまとめました


で、データを一覧化したのですが、合計欄が収入と支出の合計に…
そこでVBAを初めてゼロから1人で組みました
職場では人のVBAを読むとかいじるとかはあったのですが、ゼロからって考えてみればはじめての経験

Dimって何?から始まり、ユーザーフォームを作ってみるもそれは意味がなく、フォーム上のボタンで動いていたコードをすべてシートに直接設置したボタンクリックの関数に移植したり

Cellsで取得した値の方が違うなーとか思ったらrowとcolumnに設定する値が逆だったり

試行錯誤するのは楽しいですね
この家計簿フォーマットも完成したらサイトの方で公開してみようかと思います

2018年12月25日火曜日

素人のひっかかるところ Visual Studio と Python

今までPythonはAnacondaに同梱されていたSpyderでやっていました。
軽く使いやすかった、参考書が使用していた、というのが主な理由です。

この度、Surface goを購入し、そちらに開発環境を移設することにしました。
Surface goのコンセプトは「MS製品を使い倒す」としたため、IDEをSpyderからVSにお引越ししました。
それに伴っていろいろと問題が出てきたので、今日はそこのメモです。

・パッケージのインストール
Visual Studioでのパッケージのインストール方法がわからず、numpyすら使えない状態でした(´・ω・`)
Python環境のウィンドウにさえ気づければいろいろと捗りますね。

・プロジェクトファイルとファイルパス
VisualStudioにソースを移行した際、ファイルパスが訳わかんなくなってしまったので、プロジェクトファイルを作りました。(.pyploj)
今まで参考書のコードを写経していたのでそれらすべてをプロジェクト下に配置。
実行したいソースをスタートアップファイルに指定して上がればコードは動きました。

・作業ディレクトリ
どうもファイルパスがうまくいかず、csv読み込みでfile not foundを喰らいます。
そこで、作業ディレクトリの初期値を「/」からソースコードが置いてあるディレクトリに指定。
そうすることで相対パスは読み込み可能に。


問題点
・作業ディレクトリを複数のマシンで共有すると、マシンごとにディレクトリ構成が異なるためエラーが発生。プロジェクトファイルはgithubでの共有対象外としたほうが良さそう?

IP固定のオチ

ネットワーク系にやたら詳しい弟を呼んでRDPできなくなった件とIP固定方法の相談をしてみた。

結果、RDPできない(ついでにSSHできない)件はIP固定の方法のなにかかおかしいであろう、ということ。

そこで、IP固定方法を変更し、家庭内のONU内で払い出すIPをmacアドレスに対して固定に設定した。
これでラズパイのIP固定は完了である。

会社のDHCPサーバでそういう設定をしていたのは知っていたが、その役割を別のものが持っている、というところに頭が回らないあたりまだまだ素人ですなぁ…

2018年12月23日日曜日

Raspberry pi 3 のIP固定がやっとできた話とRDPできなくなった話

Raspberry pi 3のIPアドレスを固定してRDPやらTeraTermやらでアクセスすればキーボード何個もなくていいんじゃない???

と思ってはや数年(長い
何度トライしてもIP固定の設定をしては繋がらなくなるのをくりかえし、ついに原因にたどり着いた

参考にしていたのはこちら

いつもの先人の知恵です
こちらのとおりに入力していたはずが繋がらない…

原因は2つありました

1.ネットワークセグメント
無線で接続しようとしていたのですが、有線のネットワークセグメントを使っていました…
そら繋がらんわ…

2.スペルミス
routers
domain_name_servers
sが抜けていました。
中学生の英語の試験か!!

とはいえこれで無事にIPアドレスが固定できました。

ところが次の問題が。

先日のエントリで設定していたRDPで繋がらなくなった!?
接続が拒否されるようになってしまいました。
今後の調査テーマです。

まあ、最終的にはTeraTermでsshでつながればいいのかな?とは思っているのでそっちに切り替えてみようかとも思っています。

2018年12月5日水曜日

Webページ初コンテンツ

昨日勢いで作ったWebページに初コンテンツを投稿しました。

中身はFF14の攻略情報で、世の中にはすでに出回り尽くしているものではあります。

自分向けに整理した情報を改めて他の人でも使える形に落とし込んだ(はず)のものです。
身内公開だけで終わる予定だったのですが、せっかくなのでこうして世の中に出せる形にしてみました。

昔HTMLを手打ちしていた頃が懐かしいなぁ。。。
情報の公開がとてもスムーズだ。。。

2018年12月4日火曜日

Webページを開設しました

暇を持て余しjavascriptの実験場としてWebページを開設しました!!

Lab.Tic-Tac

まだなんのコンテンツもありません!!
ちょっとずつ育てて行けたらな、と。
生涯のライフワークに出来たらいいな。

2018年11月10日土曜日

Node.jsでポケモンGoPlusのAPIをインストールする話

はい、いよいよ当初の目的に辿り着こうとしています。

http://sato7411.hatenablog.com/entry/2016/08/01/210854

Poke.io

こいつをいじるためにここ数週間調べ物やらつまづきやらしてきたんだ
いよいよインストールするぞ!!!


ズコー

ええ!?なんなの!?

まずはラズパイ上でSSLを許可
https://qiita.com/aryoa/items/86ddae2212c789ddece0
SSHだね、これ。
やったけど意味あったのかな。
リブートしたらnvmが動かなくて焦る焦る

. ~/nvm/nvm.sh

を実行しないとnvmは動かないようですね。
一つ賢くなった

というわけでSSL Error: CERT_UNTRUSTEDで検索
https://blog.yug1224.com/archives/563d9b67bf652a600632d01e/

ありがとう。神様。

で、実行

まだダメだ。
nodeのバージョンがやっぱダメなのかな。

エラー文を順番に読んで見る
・Error: No compatible version found long@^3.2.0'
やっぱりなにかの場0ジョンがおかしいようだ
その後のValid install targets:以下はその影響かな?

at installTartetsErrorはこちらもやはりバージョンなのだろうか

最後に出ているエラーはエラーログここだよってお話のようだ。


と、言うわけでまずはError: No compatible version found long@^3.2.0'
を調べる
やっぱりバージョンの問題

そこで最新版を見てみると10.13.0が推奨版とのこと
これにしてみよう

>nvm install v10.13.0

>nvm ls
にて現在のバージョンが10.13.0になっていることを確認してインストール実行!
やったか!?

いくつかワーニングは出ているな。。。
lockfileをpackage-lock.jsonとして作れと?
よくわかんないでござるな。
ただ、インストールは終わった感。

動作確認だ。
・・・Node.jsってどうやってプログラムかけばいいの???


続く

Node.js環境構築の話

さて、連投です。
完全に今日の作業記録です。
記憶が消える前に。。。


今度はNode.jsの環境をラズパイ上に構築していきます。
以前調べて実施した方法がなんかうまく行かなくて、数日放置していました。
(パスの設定がうまく行かず、NPMが使えなかった)

今回は本に頼ることにしました。
秀和システム出版の「Node.jp プログラミングガイド」
図書館においてあったので実質タダ!
最近の図書館は古めでもIT系の本がおいてあるのが嬉しいですね。
こちらの補足資料に書いてある環境構築を参考にしました。


>sudo apt-get install git-core
>git clone git://github.com/creationix/nvm.git ~/nvm
>nvm install v0.8.16

結局の所、実行したコマンドはこの3つでした。
あとはlsやnvm helpなどインストール確認系

Node.jsの最新版が今いくつなのか、など全く調べていないので、
ゴプラを作る際にはそのバージョンを設定しないといけないんだろうな、
とは思いつつ、これも一歩前進

ちなみに、URL入力中にRDP中のUSキーボード問題にぶち当たり、
キーボード配置をインストールするも失敗するという愚行を犯しています
2つくらいのやり方がごっちゃになった感があるので、シンボリックリンク貼り直したらいけるかなぁ。。。といったところ

しましまあコレで環境構築は成功
いよいよ本題に入れるはず・・・?

ラズパイとWindows10をRDPする話

先の投稿で自作ポケモンGoPlusという目標を立てるも、何はともあれ環境準備

HDMI切替器はあれど、いちいちWindowsとラズパイでマウスキーボードを置き換えるのが非常に苦痛
手段を探すとRDPで接続可能とのこと
LinuxなんてCLIで触れよなんて言わないでください
直感的に理解できるGUIもいいものだと思います

結局各種操作はコンソール開いてやるんだけどさ


さて、本題
全ては先人の知恵
私はただ追従するのみ

まずはxrdpの環境構築
https://qiita.com/t114/items/bfac508504b9a6b7570d
こちらを参考に
Qiitaで投稿される技術には感謝するばかりです

ところがどっこい、エラー発生
・Windows10からRDPを実施すると、ログイン画面まで表示可能
・piユーザのID, PWを入力してもエラーで弾かれる
という現象

調べるとすぐに出てきましたね
https://qiita.com/hiroyuki_jp/items/a4b17fa451adfe66d6a9
先人の知恵は本当に偉大

コレにてRDPは無事接続完了

ところが、RDP接続しているとキーボードがなぜかUSキーボードで認識される事態に
とりあえずは配置を覚えたのでなんとかなりますが、解決したいところです
・~=shift+半角/全角
・:=shift+;
・@=shift+2
というのは理解した

本日の成果
・Windows 10 からRaspberry pi 3にRDP接続の環境を作成
残課題
・キーボード配列がUSのまま(優先度低

素人プログラマにポケモンGo Plusは作れるのか

購入後、引き出しの奥で眠り始めてはや2年のRaspberry pi3...

せっかく買ったんだから何かに使いたい。
でも買ったはいいけど使いみちがない。(何故買った

そんなある日、ポケモンGoPlus(ゴプラ)が欲しくなるも価格は高騰中。
購入をためらっていたら、天啓が来たのです。

「作れば安く済むんじゃね???」

取り急ぎ先人の知恵を借りようをインターネットの海へ

結果、マイコンで実装している人の結果にたどり着く。
でも、環境整えるだけでなんと1万円over...

コレ意味ないぞ、と

で、更に思いつく。

「ラズパイでなんとかなるんじゃね?」

ラズパイとあいぽんをBLEで繋ぎ、適当なソースコードを書いてゴプラの機能を実装。
完璧だ。


下記のステップで進めていくプランを立てる
・机が狭い&ディスプレイが一つしかないので、RDPでラズパイを操作する環境構築
・今回はnode.jsを使用して開発するため、node.jsの環境構築
・BLEでラズパイとあいぽんをつなぐ
・ポケモンGoのAPIを弄ってあそぶ

さて、どこまでいけるのか。チャレンジです。


2018年10月13日土曜日

Pythonによる機械学習入門

Pythonによる機械学習入門 Ohmshaを読みました。
一通り目を通したレベルです。

アマゾン

なんで買ったのか

思い起こせば、鬱で休職中になにか自分のできることを広げたいという一心からでした。
買ったのは6月か7月頃、実際に読み始めたのは7月の半ば。
本腰入れてサンプルコードをいじっていたのはここしばらくでした。

本書に求めていたもの

いわゆる機械学習、ディープラーニングとはなんぞや?という理論を知りたかったんだと思います。それを理解することで、専門家とは行かなくとも社内でディープラーニングは語れる存在になりたかったんだと思います。
本を選んだ基準自体は、とにかくサンプルで動かせるコードの載っている本が欲しかっただけなので、上記のような目的は潜在的な意識の中にある「技術書とはこうあるべき」という先入観だったと思っています。

それは達成されたのか

前半については否でした。
一章で概要を掴むことはできましたが、その後は詳細な理論ではなく、実践的な関数の使い方とサンプルコードでした。
ですが、後半についてはとても有益だったと感じています。
少なくとも、なにか一冊の技術書を自分でじっくり読んで、消化するという経験を恥ずかしながらこれまでしてこなかったので、とても良い経験になりました。
本書は「Pythonを用いて機械学習を実践する入門書」でした。ですので、方法論、実際のソースコードが中心なのは当然のことでした。
最終章の実践については、私もなにかテーマを決めて実践するのにちょうどいいサンプルだと考えています。

人に薦められる?

Pythonでとにかくなにか機械学習をしてみたい、という方、Pythonを触ってみたい、という方にはちょうどいいかもしれません。私自身がそれくらいの立ち位置でしたが、理解しながら読むことができました。

ただし、すくなくとも、プログラミングをある程度理解している人でないと厳しいとは思います。
サンプルコードを理解するための基礎知識はある程度必要です。また、当然ですが数学の基礎知識はないとわけがわからないと思います。

2018年9月19日水曜日

スマフォを小さくして思ったこと

iPhoneXの新型が先日発表されましたね

iPhone歴3年ですが、どんどん大きくなるなぁ、という雑な感想を持ちました。

Xperiaの小型モデル→iPhone6(16G)→iPhoneSE(128G)と移行してきて、小型のスマフォがいいと信じて使ってきましたが、最近考えが変わってきたので、そのメモをば。

小型スマフォのメリットだと思っていたこと
・ポケットに入れやすく持ち運びやすい
・片手で操作できる(指が届く

小型スマフォでデメリットを感じ始めたこと
・情報が見づらい(特に漫画。漫画や動画をスマフォで見始めたことに起因
・UIが崩れることがまれにある(ポケモンGoで改行が気持ち悪い
・親指を酷使しすぎて腱鞘炎になってきた(自業自得

また、小型はどうしても大型の下位互換商品として出やすく、スペックが抑えられがちかな、と思っています。

最近はフィットネストラッカーを導入したこともあり、小型のメリットを他で代替できるガジェットが現れた、というのが最近の考え方の変化でもあります。
片手操作についても、端末を操作するときは立ち止まれるときに操作すれば良い、タッチペンを使って親指の負担を減らす、という意味でも、小型である必要がなくなってきたと感じています。

容量増強のときもそうなのですが、自分のストレスを軽減する方向で端末を選択しています。
今回の最大の要因はズバリ漫画や動画です。
来年かそれ以降で機種変更をするときは、iPhone○Plusにしてやろうかなぁ、と思っています。

2018年9月11日火曜日

フィットネストラッカーとの生活

スマホの通知が気になってしょうがないマンのため、下記のアイテムを導入してみました。


目的は下記2点でした。
1.ラインの通知を逃したくない
2.仕事中にスマホを開く回数を減らしたい

購入の経緯
スマホ依存気味の私は仕事中にもスマホが気になってしょうがありません。
ラインの通知が一瞬バーっと着た後、少し落ち着くともうそわそわ。
次の通知はいつ来るの?と更新を連打してしまいます。
ポケットに入っているスマホが振動した気がして取り出しても、実際はなんの通知も着ていない、なんてしょっちゅうです。

これではいけない!と思いつつ友人に相談したところ、
「アップルウォッチを使ったらいいんじゃない?」
とのアドバイス。

確かに!!
Apple Payを使うかはさておき、アップルウォッチならいろいろ便利そうじゃないか。
でも、当然お値段が…

そこでガジェットオタクのマイ・ブラザーに相談したところ、
「アップルウォッチ以外にも類似品は多いぞ」
とのこと。
日本国内で販売しているものはiPhoneに対応しているものが多い(そうでないと売れないとか)らしいので、早速探してみることに。

そこで見つけたのが今回のフィットネストラッカー。
新型はディスプレイがカラーだそうですが、今回は通知確認が目的のためモノクロの型落ちでおk。


感想
見た目
地味です。デジタル時計というか、シリコンのリストバンドというか。
とてもシンプルで会社に持っていっても問題なさそうなデザイン。

目的との合致度
完璧です。ソシャゲ、Twitter時以外のスマホを開く頻度がかなり下がりました。
ライン、メールの通知をしていますが、特に問題なく通知が来てくれます。

操作感
スワイプとタッチが間違われやすい。
スワイプしたつもりでタッチ操作が行われることがそれなりに。
慣れれば大丈夫なレベルです。

ジェスチャーで腕を上げればディスプレイが表示されるため、いちいちタッチしなくて良いのもグッド。
ただし、直立時が基準のため、デスクワーク中や寝転がっている体勢からだと、一度腕を下げたほうが確実に表示されます。


バッテリー持ち
5日程度つけっぱなしでも半分くらい持ちます。
充電頻度が少なく楽です。


注意点
・ジェスチャーでディスプレイがつくため、車の運転中についたり消えたりします。
 私は手元でチカチカするのが気になってしょうがないので、運転中は外しています。
 ドライバーの皆さんはちょっと注意。
・iPhoneSEで使用していますが、通知設定をちゃんとしないと通知が来ません。
 「ロック中の画面に通知が出る」状態のものがフィットネストラッカーに通知されるため、ロック中の画面に通知が出ない設定の場合はなんの通知も来ません。そのあたりの設定見直しが必要になります。

ざっとですがレビューです。
使用してまだ一週間なので、今後も継続して使っていきたいです。