ローカルに自作のモジュールをインストールする

忘れないうちにメモ。

import site
site.getusersitepackages()

で出てきたディレクトリ(なければ作る)にブチ込むとimportできるようになる。

走行中に車のバッテリーが上がるとこうなる

先日(半年くらい前)買ったアルトですが、納車までに一悶着あったので記録しておく。
当初は地元で仮ナンバーを取得し(車検切れの車輌のため)、自宅から60km程の所でクルマを引き取り、さらにそのまま軽検協(軽自動車のユーザー車検うけるとこ)に行ってナンバー取得、という算段であった。

当日

仮ナンバーは車検の切れた車輌を移動するため必要な最低限の日数分しか使えないため、クルマを引き取った当日になんとしても車検を通す必要があった。さらに時間の制約もあるので首都高で移動することに。
クルマを引き取り、15分位走らせてるところでまず異変に気づいたのが、「エアコンから出てくる風が猛烈に臭い」こと。なんというか生ゴミが焦げたようなヤな臭い。ただ古い車だしそんなもんかなと気にも止めず。というか教習車以来のMT車でそれどころではなかった。
マニュアル操作にもなんとか慣れてきて首都高も道を間違えることなく目的地の軽検協まで30分。あと5分ほどで料金所から下道に降りる地点、長いトンネルで突如それはやってきた。
・急にカーステの音声が消える
・灯火類が見えないほど暗くなる(ウインカー含めて)
・最初にSRS警告灯が灯り、次いでバッテリー警告灯が灯る
アクセルを踏んでも全く加速しない
パワーステアリングが効かなくなる
ブレーキがめっちゃ重くなる
これらがほぼ同時に起きた。(実際にはもっと前から前兆はあったのに気づかなかっただけかもしれませんが。)
その時点でようやく「このままだと完全に車が止まる」事に気づくが、運悪く追い越し車線を走行していたためすぐには左端に寄れず(ウインカーつかないからなおさら)、車に慣性が働かなくなるギリギリ手前でなんとか路肩の白線の内側に停められた。
不幸中の幸いか、異変が起きる1分くらい前に道路公団のパトロールカー(黄色くてゴツいアレ)を追い越してたので緊急停車してから程なくパトロールカーが来てくれたため後ろから追突されるという最悪の事態は避けられた。
その後は車内でそのまま1時間ほど待ち、道路公団のレッカー車で一般道まで運んでもらった。

原因

結局原因は発電電圧不足によるバッテリー上がりだった。
後から見たところ指定のサイズより大きいファンベルトが付いてたのがいけなかったらしく、微量に発電はしてるおかげでバッテリー警告灯は付かないものの確実にバッテリーが減っていって、完全に放電したタイミングで警告灯がついたと思われる。

教訓

古い車には電圧計を付けよう!

中華スマート電球を買った

スマート電球が欲しい。スマート電球っていうのはスマホとかでオン・オフしたり調光したりできる電球です。どうでもいいですがスマート家電のスマートって何がスマートなんでしょうね?

早速色々ググってみるとスマート電球といえばPhilips Hueが圧倒的に有名らしい。ふむふむ。。。

Philips Hue(ヒュー) スターターセット v3 929001367901【Works with Alexa認定製品】

Philips Hue(ヒュー) スターターセット v3 929001367901【Works with Alexa認定製品】

。。。。高っっか、普通に高くない? (追記) ↑のはハブ+電球3つセットの価格だそうです。ただハブと電球1つでも14000円はするんですね。

その後適当にアマゾンを探索してるとこんなのを発見。Magic Hueというらしい。

調光・調色で3000円!やすい!即購入!

即購入は嘘です。結構悩みました。

開封

どん f:id:pu2x:20180517165741j:plain 見るからに中華な箱。電球は割と普通の見た目。

専用のアプリをインストールして適当にWifiの設定を済ます。ここらへんは他のブログにも書いてあるので省略。Wifiは2.4GHzしか対応してないので注意。

IMG_0039 from au s on Vimeo.

で、とりあえずアプリから色々いじってみる。反応は十分速いですねー。60W相当って書いてあったんだけど明らかにそれよりも暗い、80W相当のやつにしとけばよかった。 色変えられると楽しいかなーって思ったけど多分使わないっすねこれは。。。

PythonでMagic Hueの非公開APIを叩く

そもそも俺がなぜスマート電球を買ったかというと、自作のスマートロックと連動させて電気を付けたり消したりしたいわけですよ。だから専用アプリからしか操作できません(笑)とかだったら困るんですね。PhilipsHueならユーザーも多いし公式のAPIも使える(多分)んだけどこの怪しい中華電球で同じことができるかというと謎。 とりあえず公式アプリの通信を見てみた。 MacユーザーでかつiPhoneユーザーならUSBでマックと繋いだ後

$ rvictl -s <UDID>

iPhoneMacに仮想インターフェイスとして割り当てられるのでWiresharkで通信をキャプチャできるぜ。UDIDはiTunes見れば分かるよ。 Androidユーザは知らね。 この状態でWiresharkを起動してアプリから操作すると、 f:id:pu2x:20180517171022p:plain お、これか?

とりあえず出てきたパケットをPythonで送信。

import socket
import struct


dst_ip = '192.168.0.23'
dst_port = 5577

s = struct.Struct('!BBBB')
on_data = s.pack(*[0x71, 0x23, 0x0f, 0xa3])


sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((dst_ip, dst_port))
sock.send(on_data)
response = sock.recv(4)
print(response)

すると、

IMG_0042 from au s on Vimeo.

やったぜ。

この調子で一つ一つ見ていけば調光・調色もイジれそうですね〜

メルカリで車を買ってみた

 車が欲しい。でも高い。○ーセンサーとか眺めてると「おっいいじゃん、しかも安い」て車は結構あるんだけど支払総額が平気で車体価格の2~4倍しやがる。まあ中古車ディーラー通すと高くなるのは当然だよな。じゃあもう個人売買しかねえよな。

んでメルカリ。もうすごいの、とんでもないボロからそこそこ乗れそうなの、はたまた滅茶苦茶カスタムされてるのまで想像以上の台数が出品されてる。眺めてるだけでもそこそこ楽しい。しかもどれも結構安い。『買取に出すと査定はつかないけど全然乗れる車を売りたい人』と『とりあえず乗れればいいから安く車を買いたい人』の釣り合いが上手に取れてるのかなって思った。

出品台数が多いもんだから条件を絞って探してみた。

  • 軽自動車であること
  • 乗り出し10万円以下であること
  • 現車確認ができる距離であること
  • MTであること(必須ではない)

良さそうな2台に絞り込んだのが「パジェロミニ(AT)」と「アルト(MT, 車検なし)」だった。 2台とも現車確認した結果アルトにした。パジェロミニもすごく面白そうな車だったし、調子も良さそうだったから本当に悩んだんだけど年式が古いこと、ATであること(しかも3速AT)からアルトにした。やっぱりMTに乗ってみたかった。同じ条件でパジェロミニがMTだったら即決してたとおもう。ただああいう車のMTは人気が高いらしく往々にしてやたら高い。

買ったアルトはha12s エポ 1999年式、走行10万キロ、4WD、車検なしで7万円を切る価格。自分で車検を通せば乗り出し10万で乗れる。

ちなみに見に行った2台の車の出品者は両者とも車屋さんだった。てっきり個人だと思ってたんだけど最近は業者がメルカリに出品するケースも増えてきてるらしい。個人売買しかねえよなとか言っといてアレだけどやっぱり多少は整備してくれる業者から買うほうが安心できる気がする。だから今回のケースでの最適解はメルカリに出品してる業者(not素人)から買うことだと思う。

これからよろしく頼むわ、アルトよ。

大学のLANにログインするスクリプト

毎回パスワードを打つのは面倒なので。
普通にPOSTしてるだけです。

Pythonistaってアプリ使えばiPhoneでも動く。
パソコンなら適当にスクリプト書いてcron回せばいいんじゃない。

ID、パスワード、認証ページのURLは変えてください。

# coding: utf-8

from urlparse import urljoin
import requests


ROOT_URL = 'http://1.1.1.1:10080'
LOGIN = '/cgi-bin/adeflogin.cgi'
LOGOUT = '/cgi-bin/adeflogout.cgi'

# edit me
PAYLOAD = {
    'name': 'your_id',
    'pass': 'your_password',
}


def logout():
    return requests.post(urljoin(ROOT_URL, LOGOUT))
    

def login():
    return requests.post(urljoin(ROOT_URL, LOGIN), data=PAYLOAD)


if __name__ == '__main__':
    login()

日常がヘンになる瞬間

バイト中。23:55、閉店まであと5分、突然電子音が鳴る。うわマジかよ、注文が入った。やれやれと思いながら店を出たのが0:03。
いつものルートで配達に向かうと公園の前の道の角に人が立ってる。長髪の男の人。特に気にも留めない。
0:16、配達を終える。
帰り道、往路と同じ公園の角を通るルート。

ん、公園の前の角に人が立ってる。あれ、行きも人が立ってたよな。
暗い住宅街の街灯の真下に立ってるから目立つ。
ゆっくりと丁字路に近づく。

……………ん??長髪の男だ。あれ??同じ人だよな。行きに通ってから20分近く経ってるぞ、えぇ……ずっと同じ場所に立ってんのかコイツ………。
背中ぐらいまでボサーっとのびた髪、50代くらいか。Gパンに黒っぽいTシャツ。

店に帰るためには丁字路を右折してこのオッさんの目の前を通らなくてはいけない。何か嫌だなあ。
スピードを上げて一気に通り過ぎたいところだけど一時停止して安全確認。右見て左見てもう一回右を見て発進………!その瞬間オッさんが凄い勢いでコッチを向いて両手をバッって挙げた。んで首だけを凄えスピードでバッバッって左右に振ってんの。
それみた瞬間もう汗がブワーーーーーッッッって吹き出して、でもなんか時間はスローに感じて、しばらくそのままオッさんの方見ながらバイク乗ってた。


マジの話。

応用情報技術者試験合格しました

受かってた。

試験対策

午前

午前は毎年過去問から半分近く出題されるので、スマホで過去問道場を解きまくって足りないところを参考書で補う感じで試験前には安定して8割近く取れるようになります。
いきなり参考書から勉強を始めると挫折します。はじめは流し読み程度でいいです。
参考書はこれが持ち運びやすくて最低限必要な情報が纏められてるのでおすすめ。

【改訂版】 要点早わかり 応用情報技術者 ポケット攻略本 (情報処理技術者試験)

【改訂版】 要点早わかり 応用情報技術者 ポケット攻略本 (情報処理技術者試験)

マークシート式の試験が久し振りすぎて後半全部マークずれてたので見直しした方がいいです。

午後

午後は問1必答+10問から4問選択という形式なのでとりあえず過去問で選択問題を一通り解いてみて自分が解く問題を5〜6問に絞り込むと良いです。私は「アルゴリズム」「ネットワーク」「組み込み」と3問解いた所で「システムアーキテクチャ」が想像以上に難しかったので急遽「システム監査」に切り替え。
毎年「国語の問題」と言われてるシステム監査(問11)ですが、今回は異様に難しかったです。
アルゴリズム、ネットワークは得意な方なら安定して得点できると思います。
組み込みが恐らく一番簡単だったのではないでしょうか。問題を見て簡単なら組み込みを選択できるように準備をしておいて損はないでしょう。

感想とか

試験会場の近くにコンビニが無いことがあるのでお昼ご飯を持っていきましょう。
応用情報技術者試験、思ったより勉強になったなという感じです。何かこうふわっとしてた知識がちょっと補強されたような気がします。
応用情報に合格すると2年間は上位試験の午前Iが免除になるらしいので次はネットワークスペシャリストでも受けるかな〜