ぼくの技術日誌

日誌って銘打っていますが、更新頻度が…

Hue

Phillips HueをBLEで制御することができたので、メモする。ON/OFFのみ。
以下のHue(ホワイトタイプ)を使用した。
https://www.amazon.co.jp/dp/B084GG3638/


まず、Pythonのサンプルコードを見つけた。
Mac OS 10.14,Python 3.7.3でセットアップを試みたが、Adafruit_Python_BluefruitLEの実行でつまずき未実行。
philble/client.py at master · npaun/philble · GitHub

しかし、キャラスタリスティックが書いてあったので、これで検索したところ、キャラクタリスティックと内容の一覧が見つかった。
Philips Hue BLE Services and Characteristics (WIP) · GitHub

一覧のうち、
[ea:44:13:bd:db:59] Characteristic [932c32bd-0002-47a2-835a-a8d455b859dd] Light state, 01/00
について、Hue電源ON状態にてnRF Connectで接続し、0x00をwriteしてOFF,0x01をwriteしてONできた!

8月19日

仕事のことは基本的に書かない。前から書いていないし。

Javaの開発環境を構築しようとしたが、久々にJDKを入れようとしたらいろいろあるので困惑。。
OpenJDKをダウンロードしたが、IntailiJ IDEAが各JDKの自動取得機能を持っていると判明し、そちらでOpenJDKを入れなおした。これは便利だ!

ビルドしたいプロジェクトにはbuild.xmlが含まれている。どうやら、Antを使うようだが、いまいちそのビルドとデバッグの実行方法がわからない。
別にビルドシステムが使いたいわけではないので、丸々ビルドするのはあきらめて、解析したい箇所を抜き出してデバッグ実行してみた。

昨日から調べていた正規表現によるテキスト解析箇所がわかりやすくなり、JavaScriptで模倣して実行、Java側の動作結果と比較して、一見同じ結果を得られた。
細かな違いに対応できていなかったり、見落としによる機能の不足やバグは考えられるが、まずは良いだろう。
テストの方法も調べないとだなぁ。でも、次は解析結果から生成するデータ(木構造)の調査をしようかしら。

8月18日(お盆休み明け1日目)

仕事をしたが、諸事情であまり身が入らなかった。
帰宅後、VSCode拡張機能として作りたい機能の元ネタのコードを解析した。
#まだ元ネタが何かは伏せて書いておく。
そこにテキストファイルの解析処理があり、正規表現が用いられる。
その内容を紐解くにあたり、正規表現の表現(記法)、機能に言語差があることを知った。
例えば、Javaには、「強欲な量指定子」という正規表現があるが、JavScriptにはないようだ。
強欲な量指定子(絶対最大量指定子)の使いどころ - Qiita

正規表現の基本 - Qiita

正規表現チェッカー | WEB ARCH LABO

また、この日は作りたい拡張機能に関して、概要をスライド数枚で簡単にまとめた。
他者向けに説明可能な資料を目指すが、防備のために後々自分が見返すことが目的。

お盆休み10日目

お盆休み10日目。
午前中、午後の記憶は消滅している。2日遅れて書いているせいだ。
夜は、コミュニティのミーティングに参加した記憶がある。

さて、休みに入った際に設定した課題の進捗は以下となる。
TypeScriptのE-learningの進捗は50%に満たず、アジャイル・サムライ30%という結果となった。
上記2点は、この休み中に終えるのが目標であったが、VSCode機能拡張から一連の調査に時間を費やしてしまったと思う。
改善点として、日割りの目標設定を着手前に検討して、守ることを心掛けること。

ところで、VSCode拡張機能として、作ってみたい機能がある。
元ネタは、Java製Swingデスクトップアプリケーションなので、JavaJavaScriptへの機能移植ができれば良い。
さっと元ネタのコードを読んだが、内部データ構造に木構造(JTree)が使用されている。
JavaScript木構造をどのように表現するのが良いか、今後調査する。一般的な方法を採りたい。

お盆休み9日目

お盆休み9日目。昼間に所要があり、移動のために午前中から外出。
コミュニティのミーティングを予定していたのに出かけないといけなかったので、スマートフォンで聞きながら。

その後、用を済ませて昼過ぎに帰宅。
昨日、WSL1 Ubuntu 18.04でapt updateに失敗する事象に遭遇していたが、WSLのリセット、
再セットアップを行ったところ、解消した。何だったんだろう。。
ROS2(Dashing)を下記に従って、インストール。
インストールするパッケージが大量なので、なかなか時間を要したが、hello,worldの動作まで確認できた。
ROSのインストール|npaka|note

夜は、VSCode拡張機能について、調査を再開。今回は、VSCodeでファイル操作をする方法について調べた。
package.jsonでは、拡張機能の開始方法を指定するが、コマンドパレット(生成プロジェクトの標準)のほか、キーボードショートカット、メニューを設定できる。
いま作ってみたい拡張機能の操作イメージとして、エクスプローラでファイルを右クリックして拡張機能を開始することを考えている。しかし、エクスプローラでは、右クリックをしてもメニューに表示をすることができなかった。とりあえず、エディタメニューでの右クリックメニュー表示はできたので、最悪これでもよいかもしれない。メニュー表示有無の制約は、"when": "resourceLangId == [識別子]"でできるようだが、識別子一覧にないファイルを開きたい場合、コード側でチェックをすればよいか。

エディタ画面で右クリックして拡張機能を開始する設定
Your first Visual Studio Code Extension | by Ramsay Lanier | Medium

VSCode拡張機能開発でコンテキストメニューを使う - Qiita

Visual Studio Code での Extension開発03(拡張機能) - Qiita


その他
VSCodeのサンプル 「vscode-extension-samples」のソースコードを追ってみた | web技術の覚書

GitHub - microsoft/vscode-wordcount: Sample Word Count extension for VS Code.

お盆休み8日目

お盆休み8日目。もうすぐ休みも終わりと思うと、少しつらい。
午前中、Typescriptの講座を受講。ここまでで40%を超えたくらいの進捗。
昼前から外出、近所で食事をして、食料品を買って昼過ぎに帰宅。暑い。
アジャイル・サムライを5%ほど読み進める。25%
その後、携わっているコミュニティの開発の検証環境構築のため、旧デスクトップPCをリストア。
新規にWindows 10(1909)HDDにインストールした。この途中、画面出力がDP接続では出なかったり、
インストール用USBメモリが壊れたりと障害が多く、手こずった。
OSインストール後には、WSL1にUbuntu18.04 LTSをインストールしたが、apt-gte updateに失敗する。
同じエラーとその対策に関するWeb情報を見つけるが、行ってみても解決しない。今日はここまで。
windows標準のubuntuのDNS設定はWindowsとは別に管理されている - Qiita

お盆休み7日目

お盆休み7日目。
午前中はずっと寝てしまい、消滅。。
午後は、実家を出てうちに戻る。
その後、Material-UIのツリービューサンプル”Customized tree view”と”Gmail clone”を試してみた。
Tree View React component - Material-UI

GmailCloneのStyledTreeItem関数のlabelにButtonやCheckBoxを追加すると、ツリーの各項目に表示が追加された。
このあたりのコードを理解できれば、任意の項目を表示できると思われる。
Typescriptの学習が滞っている。休みの日数も少なくなってきた。React、Material-UIを調べるよりも優先しよう。