開発ノート (91)

川内 康雄

Atom by Github:フォルダ表示が消えた

ESP8266のソース編集用にAtomを使い始めました。まだ訳が分かってませんが、とりあえずデザインがオシャレです。起動が遅いこととコードアシストが気まぐれな事以外は満足してます(それが大問題?)。 で、ふとしたときに左側のフォルダーペイン(プロジェクトペイン)が消えて焦りました。これが無いとコードの追加もできません。回答はcmd+。とはいってもoptionの同時押しは不要でcmd+¥ということですね。 “”” 本文はAtomを使っていた当時のショートカットのメモです。Atomは2022年12月15日に開発終了となっており、現在の新規環境へ同じパッケージ構成を推奨するものではありません。

Continue reading...
川内 康雄

Google Analyticsはデフォルトのタイムゾーンが米国時間

週末の来訪者数のカウント(セッション・ユーザー・ページビュー)がどうもずれている感じがしたので調べてみたら、タイムゾーン設定が米国時間になってました。とりあえず日本に変更しましたが、集計値は変わりませんでした。新規に収集されるデータから反映されるんでしょうか?祝日があるとわかりにくくなるので、今週いっぱいのデータで判断してみます。”””

Continue reading...
川内 康雄

UINT32_Tが

UINT32_Tが戻り値のマイクロセコンドのタイマがオーバーフローするときにバグが発生。最大値4,294,967,295なので、バグを再現するのに毎回4294秒かかる。何とかならんだろうか。 再現試験の工夫 32ビット符号なしの1μsカウンタは2^32μs、約4294.967296秒(約71分35秒)で一周します。毎回その時間を待つ代わりに、時刻取得をテスト用の関数へ分離し、最大値の直前から値を返して折返しをまたがせると短時間で再現できます。経過時間を符号なし差分で扱う場合も、一周を超える間隔や比較の前提を別途確認します。

Continue reading...
川内 康雄

sudo rm /var/lib/dhcp/*とやってリース情報を削除する

Raspberry Piの再セットアップが必要になり、固定IPを設定したくて、/etc/network/interfacesに必要な設定をしたのですが、何回再起動しても、その前にDHCPで設定したIPがそのまま割り振られるという症状が発生。2時間ほどハマりました。どの解決方法が功を奏したのかが不明ですが、 - interfacesのファイルから余計なインデントを削除しこの順番で設定する auto eth0iface eth0 inet staticaddress 192.168.11.11netmask 255.255.255.0network 192.168.11.0broadcast 192.168.11.255 “ この記事だけでは、タイトルの一括削除で解決したとは確認できません。/var/lib/dhcp/*を一括削除すると、クライアント以外にDHCPサーバーの状態も消す可能性があります。まずインターフェースを管理するクライアント・サービスと設定ファイルを特定し、固定IPの設定と既存リースを分けて確認します。古いリースの調整が必要な場合も、稼働中のサーバーのリースを含めてまとめて削除する手順にはしません。

Continue reading...
川内 康雄

Raspberry PiでIoTなシステム開発:Raspberry Pi(raspbian)のSSHルートアクセスはデフォルトかだけれどパスワードが無い

Raspberry Piの設定で楽をしようと思い、ATOMのremote-ftpパッケージを使ってSFTPでファイルを保存しようとしていたのですが、一向に保存ができない。何度保存しても、以前のファイルのままという事象が発生しました。が、よく見てみるとデフォルトユーザーのpiで設定ファイルをいじろうとしていました。そりゃあ無理ですね。できたらセキュリティホール。で、rootで入ろうとしたのですが、当時の使用イメージではrootログインが許容されていました。ただしOpenSSHの現行設定や配布イメージにより扱いは異なり、rootのパスワード認証が標準で許されるとは限りません。ただしルートにパスワードが設定されていないので、 sudo passwd root でパスワードを設定した上で、ログインします。もちろん必要な作業が終わったら、/etc/ssh/sshd_configを変更しておくこと” 一般ユーザーでSSH接続し、必要なファイルだけsudoedit /対象ファイル等で編集する方法があります。rootのパスワードを新設してSFTP常用を可能にすることは、編集のために必須の手順ではありません。接続可否はPermitRootLogin、認証方式、配布元の初期設定を確認します。

Continue reading...