猫の手も借したい

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

Windows10とLinuxの共存を諦めた話(妥協編)

相性問題というものがあります。あの人は苦手、あの人は得意じゃない。何があったわけではないけどうまくいかない。
人間100人いれば100人性格が違うので当然のことではあります。重要なのは、その相性の悪さをどう補うか、どう解決するかのほうです。

ちなみにWindows10とLinuxの相性が悪いという話です。


以前ZorinOSとWindows10をデュアルブートで運用している話を書きましたが、
akkisino02.hatenablog.com
程なくしてハイバネートから復帰できないことが判明しました。

Windows側でハイバネートすると次回起動時に100%ディスクチェックが走り保存してあった作業は死亡、Zorinはそもそもハイバネートに入れないという有様。
Windows10では確か1時間半だかスリープが続くと自動でハイバネートに移行するハイブリッドスリープみたいな機能が実装されているので、なんかしらんが蓋閉じといたら全部吹き飛んでたみたいなことが相次ぎました。冗談キツい。

えにばーさりーあっぷでーととかいうデメリットしかなかった更新がデュアルブート環境に大打撃を与えたらしく、まともに動くものも動かなくなってきてる気がします。

GRUBを書き換えたら一時改善されるもまたすぐ同じ症状が現れるし、ハイバネートできないと死んでしまうので泣く泣くWindows10とBash on Ubuntuのみでがんばってました。

Windows10が飛んだ

やはりWindowsメインだとストレスを感じるので、もうハイバネートを諦めてLinuxいれようかなあとパーティションを切ってるときに悲劇が起こった...
CSMモードに切り替えて立ち上げるやつを試そうとGpartedでC:ドライブの左側をつめて隙間を作ってる最中にサスペンドに入り二度と戻ってきませんでした。アーメン。
もういい機会なのでLinux一本で行くか!となった瞬間です。


Windowsが飛んだことによって、及びLinux一本で運用するに当たって、次の問題があります。
・学校ライセンス系のソフトが含まれるのでWindowsリカバリは職員室でしかできない
MOSの授業があるのでWord Excel 及び市販の模試ソフト(当然Windows用)が動く必要がある
・その他授業の進行についていける必要がある


まず一点目、リカバリが自力でできないことについて(支給時点に戻せない)はImagineのWindowsEducationがあるのでなんとかなります。VisualStudioなどもImagineからDLできるので問題ありません。一部どうしても手に入らないソフトがありますが、そのあたりは教員に泣きついてなんとかします。

二点目のOfficeについて。
これは致命的です。互換系Officeに関しては全くと言っていいほど信用してませんし、そもそもMOSに対応できません。今後レポートを書いたりパワポを触る機会は少なくないはずなのでMS純正Officeが使えないことにはかなりの問題があります。自分だけが互換Officeでやってくなんてわがままが通用するはずもないのでここはなんとかして解決する必要があります。

三点目について。
基本的には各言語の開発環境があればなんとかなるのでOSは問わないはずです。VSについても前述の通りImagineから落とせます。

VMという着地点

といってもメインで使うのはLinuxなのでWindows10側をVMに入れることにしました。
すれば純Linux環境で運用できるのでWindows10のブートローダーと喧嘩することもないし、起動時にOSを選ぶ必要もないし、細かいところを気にする必要がなくなります。

というわけで

OSは悩み抜いてKubuntu17.04を入れました。最近のKDEはかなりおしゃれ。
VMVM ware Playerで、Windows10EduとOfficeのみインストールしてスナップショットを保存、今後必要に応じて触ります。

ハイバネートで難航

Windowsを意識する必要もないし面倒だからオートでインストールさせるかあ!と丸投げしたところハイバネートできませんでした。なんでやねん。
どうやらUbuntu17.04系ではSWAP領域を確保せず、/swapfileにSWAPファイルで確保する方針になったようです。知らなかった。
この/swapfileが何故かデフォルトで2GBしかなく、当然RAM8のこのマシンではハイバネートすることもできず電源メニューにも表示されないという。14.10だかなんだかからハイバネートしにくくなってるしさせたくないんですかね。

この問題は紆余曲折あって解決しましたが、資料が少なくて困ったので別で記事にします。


結局入学から3ヶ月で支給時の面影もない位にシステムが変わりましたが物理的にもいじってるのでもう何も気にしないことにします。
VMWindowsを動かしてるとRAMが物足りなくなってくるので増設しようか悩み手。ていうかもうMacbookがほしい。

ASUS 2 in 1 T90chiを入手した

ASUSの読み、私はASUS派です。


最近家の近く(といっても徒歩30分くらい)に大型BOOK OFFの複合店みたいなやつがあることを知って行ってみました。(それまでは電車で何駅か移動してた)
何気なしに中古タブレットをみてたら、ASUS T90chiが2万ちょいで画面もきれいだったのでついつい購入。財布が空だったので最寄りのスーパーまで金を降ろしに死ぬ気で走った。今思えば別に走る必要はなかった。
背面に目立つ縦傷があるけどまあ中古だし、下手にきれいで気を使って使うよりは遠慮なくモバイルできるのでむしろいい。


VAIO Pの後継とまで言われているド変態2in1タブレットのT90chiは前々からかなり欲しかったのでめちゃくちゃ嬉しい。道中が山なりな坂道でしかも舗装がガタガタだったのでクロスバイクくんからダイレクトに振動が来てしんどかった以外は最高の日曜日になりました。



まだ1日しか触ってないけど以下感想。

・さすがASUSだ!俺たちにできないことを堂々とやってのける!そこに痺れる!憧れるゥ!
・X205TAもそうだったけどアホみたいにバッテリが持つ。中古だからそれなりに劣化してるだろうに平気で一日持つ。
・やっぱりキーボードがあるって素敵。というかあまりタブレットとして使う気がない。
・でも電子書籍読みたいときにスッとはずせるのは最高。教科書もPDF化した教科あるし。
・ゲームはあんまする予定ないけどZ3775だからそれなりにはできそう。
・8.9インチノート最高。

Win8.1モデルだったのでとりあえずそのまま一日持ち歩いてみたけどスマホいらないかもしれない。完全にテザリング用ホストだった。
うちの学校はImagineが使えるので帰宅してからWindows10Educationを入れた。そこまで派手なことはしないと思うので、AtomとRubyMINEくらいを入れて基本ノート取りと思いついたときにコードをスケッチする程度のマシンにしたい。実習のない日はこれを持って登校する予定。



しばらく使ってみてそのうちまとめます。

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