猫の手も借したい

暇を極めた時に更新します

amazonのほしいものリストはハンドルネームで登録をするな、絶対にだ

今現在、ほしいものリストを不特定多数に公開する際は「氏名をハンドルネームにして住所の最後に"名字方"をつける」なんじゃないかなと勝手に思っています。

f:id:akkisino02:20170515161005p:plain


きっつい

真顔である。



実際、ヤマトのおにいさんが悪いわけではなくこう書くしかなかったんだろうけどすごい顔になります。
受取のサインの会話もすごいことになりそう。


代替案

悪いことは言わないから適当に存在しそうな名前にしておけ。エロゲキャラとか。

現時点の学校用マシンの開発環境2017

今月のPVが200を超えた通知が来ました。まともなこと何も書いてないのに毎月それなりのPVがあって申し訳なくなります。
こんなしょーもないブログ読んでないでもっと有効的に時間を使ってください。

学校用マシンの開発環境

余計なことを喋るといろいろバレちゃまずいことがバレそうなのである程度はしょりますが、今年度から高校を出て工学科情報系の学校に進学しました。
もちろん授業で必要になるのでノートPCを新調しましたが、現在の環境を覚え書き。どうせ4年のうちに10回はSSD吹き飛ばすので。

OS

Windows10(プリイン): 100GB
ZorinOS: 64GB
デュアルブート。システム領域は256のSSDでまだ領域を残してあるのであと2つくらいは入れられます。そのうち勉強兼ねて別のOS触るときに使いたい。


・Windows10
授業でVisualStudioやその他Windowsにしか用意されてないエディタを使うのと、Officeを使う実習やMOSの講義がある以上身勝手に外すわけにはいかないし残してます。
学校から配布されたソフト系や開発環境はMicrosoftとの契約上、元データを生徒に渡してはいけない(というか校外に持ち出してはいけない)のでなんかやらかしてWindowsを飛ばしたら職員室土下座リカバリチャレンジになるためデリケート。


・ZorinOS
zorinos.com
Debian系統UbuntuベースのデザインがサイケデリックなOS。結構気に入ってる。
もともとはうっかりWindowsを飛ばすとよろしく無いのもあったし、一応学校として決められた環境をいじるのはあまり褒められたことではないしUSBブートでLinuxを動かそうとUSB3.0で64GBのUSBメモリを買いました。何故かインストールはできるのにUSBからブートできず、そして試してるうちにインストールも失敗するようになったので知識的なヘルプが欲しくてHR担任に相談したところ黙って笑顔でうなずいたためシステムSSDにブチ込みました。

ちなみにUSBメモリGRUBをインストールするように指定しているのに何回やってもSSDEFIパーティションが上書きされます。張り倒すぞ。


Why ZorinOS
Ubuntu系はスクロールすると何故か画面がチラつく。
GPUは積んでないし第7世代IntelCPUなのでそんな相性悪いことはないと思ったけど原因不明。ドライバ入れても治らず。

なので別のOSをいろいろ試行錯誤。その結果、何故かDebian系統以外そもそもブートできないことが判明。USB3.0USBメモリからLiveブートしようとしてることとUEFIなことが原因かなーとは思ったけどUSB3.0ポートしか無いし、CMOSモードにするとWindowsが上がってこなくなるので諦め。
本当はこれを機にArchとか触ってみたかったしRHL嫌いも克服したかった。

ここで時間をあまり掛けたくないしDebian系統のOS好きなので設定をいじらずLiveでとっかえひっかえ試したけども、Ubuntu系統は先の通りチラつき、Mintも同様、elementaryは嫌いじゃないけど弄らせないスタイルがあまり好きではなくパス、といった感じで手詰まり。
煮詰まってきたところでふと見つけたZorinを入れてみたところ、UI素敵だしスクロールしてもちらつかないしUbuntuベースなら困らなそうだしということで運命の出会い。なぜUbuntuベースなZorinがカクつかないのは謎。描画周りが独自なのかも?

ZorinOSのセットアップ というかインストールしたもの。

Atom.io
・rbenv
・nodejs
Oracle Java8

UI設定

基本的にはWindowsに似せたいっぽい?
標準でかなり自由度高めにいじれるのでタスクバー上にして細くしてカラー変更。
f:id:akkisino02:20170505192310p:plain


さっきも書いたとおり何故か全体的にサイケデリックな感じになってるので(嫌いじゃない)、各UIなど蛍光色強め。ターミナルなんかかなり合う。


その他ハード的に

積んであるSSDが256だとちょっと厳しさを感じるし(Linux演習とかがあるしVSなどの開発環境がデカいのでストレージは余裕がない)、勝手にバラして換装しようかなあなどと支給された当日に分解したところ、何故か2.5インチサイズのスペーサーにM.2のSSDがハマっており当然のようにSATAに変換されてました(といっても独自コネクタに変換されてるので直接SATAはさせない)。なんでやねん。
一般販売モデルにHDDモデルがあるからの都合なのだろうけども、どうせSATAにしてるなら2.5インチのSSDを使ってくれたほうがとっかえやすくてよかったのに。ていうか無駄にパーツ代がかかるだけなのでは。などと考えつつM.2の相場を調べるとやはり馬鹿高い。
M.2本来のパフォーマンスを発揮できそうにも無いのに高い費用出すのもなあと悩んでたところ面白いことに気づきました。

あまり詳しくは言えないけど簡単に言うと学校指定マシンで、一般販売モデルと比べてスペック変更があります。液晶解像度が落ちてるとか。
その中で、おそらく費用的な問題でしょうが一般モデルにあるディスクドライブが廃されています。(一般モデルはDVDかBDがついてる)
もちろんマザーは共通なのでその分のスペースがぽっかり開いていて、しかも幸いなことにSlimSATAのコネクタも実装されてました。
ということでメインのM.2のほうはそのままノータッチでここのスペースに240のSSDをもう1基追加。13インチのそれなりに薄いノーパソでありながらデュアルSSDという非常にアツい構成になりました。
これでストレージは(256+240)=496GB。一応学校用メインではあるけど自分にとってはサブなのでこれだけあれば十分。

ちなみにディスクドライブ分のスペースにはこれを使ってブチ込み。
amzn.to
もともとはSlimSATAの電源をSATAに変換するケーブルを探してたのになんかすごいもんを見つけてしまった。こういう頭のおかしい変態アイテム大好き。


また、バラさないとアクセスできないようにはなってるけど同様にRAMも換装できることを確認。現在(4+4)=8GBなのでちょっと物足りなさを感じつつも学校が指定している容量ではあるので自分が辛くなったら換装して16GBにするかなといった感じ。

ほかにもディスプレイとか、例のSATAコネクタとか、同型別モデルのパーツを引っ張ってくればいくらでも換装できそうなのでジャンクで出回るのを待機中。流石に最新モデルをもう一台買う気にはならない。
(というか正直自己責任で自前のPCを持ち込んでもいいらしいけど支給されてる以上はそれを使うのが賢い選択だし流石に開発用マシンを買い足すのは出費がしんどいので)

キーボードも英字配列にしたいけどさすがに海外版のパーツは手に入らなそうだなあ。そもそも海外版出てるか知らないけど。文章打つだけなら日本語配列でもいけるし諦めて開発するときはHHKB使い続けよう。



といった感じでソフトウェア/ハードウェア共に改造しまくってます。学校支給のPCをいじるのはよろしく無いけど担任に暗黙の了解を頂いてるので遠慮なくやってます。やらかしたら保証は聞かないので自腹で全損修理か再購入。やっためう!すごいめう!


流石に在学中ずっとこのままの環境で使い続けるとは思わないのでちょこちょこいじりそうだけどスタートはこんな感じで落ち着いた。
いじればいじるほど愛着が湧くし学業へのモチベもめちゃくちゃ高いのでこいつと一緒に真剣にシステム開発スキルを学んで行こうと思う。


ところで

記事にしたいネタリスト
・ラズパイタイムラプスカメラ(進捗いい感じ)
ネスカフェバリスタiの制御(まだノータッチ)
・録画鯖をまたいじった話
・学内LANのいろいろ
・ラズパイ3で常時起動しておく情報端末を作ってる話 電車の時間とか今日の天気とか
・electronでTwitterクライアントを作ってる話
などなど。



PS: ずっと好んで11インチを使ってきたけど13インチだとあぐらかいてそこにのせるとすごくしっくり来て使いやすいんですね。排熱口の先のふとももが死ぬほど暑いけど。11インチだと小さくて収まりが悪かった。

Raspberry Pi Zero で小型の自立型タイムラプスカメラを作る その1

つい先日Raspberry Pi Zero Wが出ましたね。いつものOut of Stackを恐れて速攻で一枚買いました。

f:id:akkisino02:20170303203633p:plain
ちなみにガンダムWとは関係ありません。


現行のZeroとZero Wが大きく違うのは、Wi-Fiチップが搭載されたことのようです。今までのZeroはせっかく馬鹿みたいに小型なのにWi-FiドングルやUSB LANアダプタを付けないと外部に接続できないというハンデを抱えていましたが、Wではそれすら要らないため純粋に電源のみでコンピュータとして成り立つ事になります。
キーボードとマウスとモニター?別に要らなくない?



話は変わりますが、私は結構頻繁にキャンプなどに行く自然派オタクでほぼ毎年アウトドアイベントをエンジョイしてます。リア充
一昨年3泊泊りがけで行った際に偶然ヒグラシの羽化に遭遇したので、せっかくならこういうのタイムラプス撮影してみたいよねということでカメラを作ることに。


要件

スタンドアロンで動いて欲しい
スマホから見れる遠隔カメラとしても動かしたい。

くらい。


なのでモバイルバッテリーを主電源とし、WANにはつながらないけどアドホックWi-Fiのアクセスポイントとして動作させてそこに接続することでsshでの操作やカメラ映像などにアクセスすることができるものを目指します。
SDにあんまり書き込みアクセスするの怖いしそのへんはどうしようかなあ。

今回はハードウェア

といってもWはまだ届いてないので手持ちのZeroで試作。

百均で買ってきた名刺ケースを加工。

ごりごり加工してこんな感じ。よさ


あとはぐねぐね動く三脚みたいなやつを使えるように1/4ネジを接着しようなど。



ちなみにこのカメラモジュール、なんか知らんけど認識はされるのに撮影出来なくて現在販売元に問い合わせ中です。動作確認してある代わりの品と交換してくれるらしいのでそれまで保留。
別で買った暗視カメラ+赤外線ライトはちゃんとうごいてくれたのでそっち用のケースも制作予定。

とりあえず、代わりのカメラが届き次第動作確認、ソフトウェア面を作って、ナイトビジョンのケースを制作の流れかな。
ソフトウェア面はmjpeg-streamerとかmotionとかRaspbianのデフォのアレとかいろいろ考えてます。

Twitterのアイコンをランダムに変更するスクリプト

2017年最初の月ももう終わりですね。皆さんいかがお過ごしでしょうか。
私は毎日しんどいしんどい言いながら死んだ目で接客してます。

一体どこの層に需要があるのかわかりませんが、タイトルの様なものを作ったので公開します。

要件

Ruby (2.x.xで動作確認 別に最近のなら他ver.でも動くと思う)
Twitter gem
Tweetstream gem

これなに珍百景

アイコン用画像フォルダにぶっ込んである画像からランダムでアイコンを変更します。
"/change_icon"のリプライをトリガーに動作します。


いままでTwitter連携アプリはTwitter gem一本を使ってたけどなんだかTweetstream Gemのほうがよさげなので併用。
ちなみにきっかけは、TwitterGemでは「誰がどれかをツイ消しをした」というところまでしか取得できないのに対しstreamのほうは「誰がどのツイートを消した」というところまで取得できることを知ったため。とはいっても降ってくるのはツイのidなのでどっちみち消えた物は見れないけど。


リプライの判定が
/^@TwitterID ¥/change_name/
なので(要は前方一致)、以降は何が書いてあっても無視します。つまりこれを利用して連投規制回避ができるということ。うるさければ完全一致にして弾いてもいいと思う。

どっかのアホに毎秒アイコンを変えられてTLがすごいことになったのでレスポンスも任意でいいと思います。でもレスポンスないと変わったのかどうかわかりにくいところあるよね。

また、TwitterAPI制限が大きく変わってから今の仕様をよくしらないのでどれくらいの頻度でアイコンを変えられるのか不明。ほどほどに。


#coding: utf-8

require 'twitter'
require 'tweetstream'

#Ck/Cs
CONSUMER_KEY    = "ぴゅぴゅんって飛び出した"
CONSUMER_SECRET = "明日も追い越して"
ACCESS_TOKEN    = "ときめきポポロン♪って"
ACCESS_SECRET   = "きらめきの音が響く"

#TL取得用
TweetStream.configure do |config|
  config.consumer_key       = CONSUMER_KEY
  config.consumer_secret    = CONSUMER_SECRET
  config.oauth_token        = ACCESS_TOKEN
  config.oauth_token_secret = ACCESS_SECRET
  config.auth_method        = :oauth
end


#画像変更/投稿用
REST_client = Twitter::REST::Client.new do |config|
  config.consumer_key        = CONSUMER_KEY
  config.consumer_secret     = CONSUMER_SECRET
  config.access_token        = ACCESS_TOKEN
  config.access_token_secret = ACCESS_SECRET
end


Streaming_client.on_inited do
  puts 'TL Connected.'
end

icons = Dir.glob("アイコンをぶち込んであるディレクトリ/*") 
Streaming_client.userstream do |obj|
  if obj.class == Twitter::Tweet && obj.text =~ (/^@Twitter_ID \/change_icon/)
    icon = File.open(icons.sample) #iconsから一つランダムに取得
    REST_client.update_profile_image(icon) 
    REST_client.update("@#{obj.user.screen_name} Done. #{Time.now}", options = {in_reply_to_status_id: obj.id})
  end
end


私はこれにアイコンリセットコマンドを追加してます。また、指定されたアイコンに変更したりする機構も付けたいのでそのうち。

にしても自分用に他の機能も付けてるとはいえ120行あったスクリプトを公開用に整理したらここまで短くなるの何も言えねえな。

RaspberryPiでもじゃ小屋を監視

ポケットモンスターサンムーンが発売されて今日で4日目になりましたね。
私は忙しくてまだ20時間ほどしかプレイ出来てませんが、今回硬くなるを積んで回復の薬をしてくるNPCやあやぴかを連打して仲間を呼びまくるズバットなど、オタクを煽る要素がてんこ盛りです。

バトルする友達がいないのでみなさんぜひ買ってください。



さて、最近GPIOで遊ぶようになってから自室(小屋)のデータをとって遊んでいます。




こんな感じ。ごっちゃごちゃなのはそのうちなんとかします…

右側が、上からラズパイ本体、ブレッドボード、青いのがリレーモジュール。
忍ちゃんの左足付近で光ってるのが温度/湿度センサ。10分おきに別サーバー(Hotcocoa)のMySQLに書き込んでGooglechartでグラフを作ってます。
f:id:akkisino02:20161121004414p:plain


土が白いのは水のやり過ぎです。



これを、対面にあるアルミラックからWebカメラで定期的に写真をとってます。


といっても、常に電気をつけておくわけにも行かないので、撮影するときだけLEDライトで照らすことにしました。難しいこと考えたくないのでUSB延長ケーブルを切って、電源の線から5V給電してます。
先の写真のリレーモジュールから伸びてる怪しいケーブルがそれ。


別にリレーモジュール使わなくてもGPIOから給電すれば楽なんじゃないのと思いましたが、GPIOから給電できるのは3.3V。それだとちょっと暗く感じたので今の形に。
5Vで給電すると電気消しててもここまで明るくなります。



実際こんな写真になる。
f:id:akkisino02:20161121003927j:plain




今使ってるUSBケーブルがケースと干渉ぎみで、気づいたら抜けて電源が落ちててキレたり、気づいたら抜けて電源が落ちててガチギレしたりしてますが、とりあえずは試験運用なのでと我慢してます。


目標は、Zeroのほうでこういったモジュールをパッケージングして、外で放置してるだけでデータが溜まるようなモノをつくること。
電源確保とイレモノとかで悩んでます。



P.S.この前死んだ土壌湿度センサ、すぐに同じものを注文したのにまだ来ません。今日までにくるはずなので来なかったら業者に問い合わせます。

いつか別れは来る

形あるものはいつか壊れ、命ある物はいつか息絶える。自然の摂理です。
だからこそ、一生懸命頑張っていると輝いて見えるのでしょう。

別れは悲しいものではありますが、同時に新たな出会いでもあります。人は日々出会い、別れ、そしてまた出会い、別れて生きていくのです。

ペットを飼ったことの有る方は、大切な者を失うことの悲しさ辛さを知っていると思います。でも、それを乗り越え、時には思い出し、支えられて強くなっていくのです。


ちなみに土壌湿度センサの話です。


逝った

f:id:akkisino02:20161104230814j:plain

土壌湿度センサって常に通電してると電気分解が発生して腐食するんですね。いや、ふつうに考えればそうなんですけど、GPIOとか電子工作とかド素人すぎてその辺何とかなるんだと思ってました。

24時間センサが動いてる状態にして、温度湿度とともに1日144回ステータスを取得していたらなんか濡れてるのに乾いてる判定が出るようになってました。
違和感を感じてセンサ部分をみたところ、金属君は既に死にかけ。もっと早く気づいてあげていれば良かった。


今後は取得時のみに通電する形で測定していこうと思います。ただ、どうしても腐食は避けられなさそうにも思うので消耗品だと割り切っていくべきなのかな。
とりあえず今のはもう使い物にならないので同じ物を買います。



P.S. 今は付いてきたコンパレータで判定してるけど閾値がいくつになってるのか不明なので近いうちにA/Dコンバータも買いたい。

HP Chromebook 11を買った

お前何台ノーパソ買うんだよって言われました。まだ歴代7台目です。


HP Chromebook 11 とは

2013年だかにHewlett-Packardから発売された11インチのChromebookです。
日本国内では販売されておらず、当然キーボードもUS配列になってます。最高。

スペック的にはミドル〜ローエンドだけど、OSがChromeOSなので想像以上に軽快に動いてます。ことブラウジングに関してはX205TAにChromeを入れた状態よりも快適かもしれない。




結構可愛らしいフォルム。天板のラインは電源が入ってるとGoogleカラーに光る。

打鍵感はめちゃくちゃ悪くない。私はストロークの浅いキーボードは苦手で目に見えてミスタイプが増えて速度が落ちるんですけど、このキーボードでも秒速5キーは出てます。

ChromeOSであることのデメリットとして、ネットワークに繋がっていないとわりかし使い物にならないというところがあります。
Chrome以外の機能を持たない以上、Webサービスにほぼすべてのアプリケーションを頼ることになるので結構深刻です。
逆に言うとオンライン下であればWindowsMacに引けを取らないということであり、そもそも真面目な作業をするときにはメインマシンを使うのでセカンドマシンとしては非常に優秀な感じ。

ちょっと家の外に持っていく時なんかはカフェでネットサーフィンかTwitterか、やってもコーディングなので用途的にはベストマッチ。実際今回のブログ記事はChromebookから書いてます。コーディングのできるエディタ拡張機能はちょっと探してみたい。

また、拡張機能によってはオフラインでも機能するので、オフラインで編集→オンライン時にオンラインストレージに投げるなどの使い方もまあまあいけるんじゃないかな。

Androidアプリは非対応だった

ChromebookでもAndroidアプリが動くようになったというのは耳に新しい。でも全機種対応というわけではないようで。
ただ、そもそもAndroidアプリ対応が最近のことなのと、非対応機種も順次対応と発表されてるのでこの機種にも降りてくることを期待してます。

Androidアプリが使えると何ができるかというと、Webアプリに頼らずともオフライン環境でできることが増えるということ。それこそエディタのアプリも存在するし、IDEなんかもあるし。

Ubuntuが動くらしい

ChromeOSの仮想化機能Chrootを利用してUbuntuをブートさせることや、そもそもOSを入れ替えることができるっぽい感じなので、それでマルチブートにしてしまうのもありかなと思ってます。
すればUS配列で使えるLinuxノートになるわけで、Chromebookの弱点が補えます。
この機種はSDが刺さらないのでストレージばっかりはどうにもならないけど、USBメモリとかなんかでなんとでもなると思う。

ちなみに16.10で一回試してみたらうまく動いてくれなかったので近いうちに再挑戦します。

結論

実はUS配列のノートが一台ほしかったのが購入の大きな理由なので、同じくHPのStream 11と迷ってました。向こうもUbuntuの動作実績があったので買ったとして即Ubuntuを入れるつもりで。ただたまたま安く見かけたこっちを買って良かったかなと思う。
ChromeOSはわりかしまだまだ発展途上のマイナーOSではあるけども結構いい線いってるので、セカンダリ用途とかモバイル専用とかそういう方向で頑張ってほしいなという感じ。





P.S. 録画したアニメもスムーズに再生できるので出勤前に飯食いながらアニメ見るのが捗る。