Blend day's Note

思い立ったことをメモする

不器用な人間が RaspberryPi に 物理コントローラーつけた話

f:id:kayo_tozaki:20160411211113p:plain

どうも、3.5mmステレオプラグにハンダ付けができない私です。

お食事中の方、汚い映像を冒頭でお見せして申し訳ございませんでした。

  • ことの始まり
  • 私が満足しない理由
    • 1.WebUIにアクセスするのが面倒くさい
    • 2.gmpcを使ってると、メインウィンドウが持っていかれる
    • 3.MPod / MPad の動作がもっさりしてる
  • どうしたいのか
    • i.GPIOを使ってボタンを付ける
    • ii.専用キーボードを用意する
  • いざ、作業開始
    • 設置する
  • 所感とまとめ
    • おまけ

ことの始まり

私のモニターの足元には、Volumio 1.55 が動作しているRaspberry Pi model B+ が鎮座しています。

f:id:kayo_tozaki:20160411211411p:plain

Volumioには綺麗なWebUIが標準装備されており、Webブラウザ上から操作が可能です。

f:id:kayo_tozaki:20160411212055j:plain

( スマートフォンにも対応しています )

volumio.org

更に、専用のmpcのソフトがWindwos , Mac 両OS向けに多数あり、(私はgmpcをメインで使用しています)
これを使うと、より高度な作業も可能となっている便利な音楽再生機です。

gmpclient.org

更に更に、MPC向けのアプリまであり、環境としては最高に整っております。

MPoD

MPoD

  • Katoemba
  • ミュージック
  • 無料

しかし、コレでは満足しない理由が存在していたのです。

続きを読む

FreeNAS に 1週間溶かした話

kayo-tozaki.hatenablog.com

↑前回のエントリーから早1週間。とある事案で1週間ぐらい溶かしてしまいました。

その抗いの過程的何かをまとめてメモしておこうかと。

ことのはじまり

FreeNASを構築して、組み立てから予め予定していた設計通りにZFSを構築・設定をして、予めとっておいたバックアップデータをリストアしていったのですが、

リストアを始めてから2日目、データをコピーし始めたら…

「あれ?CIFSが落ちるぞ〜??Ping通るけどWebUIが読み込まないぞ〜〜〜??」

この時、まさか1週間溶かす事になるとは、知る由もなかった。

続きを読む

(今の)ぼくのかんがえる最強のストレージサーバを作った

kayo-tozaki.hatenablog.com

↑ ここで最初に上がってた自宅鯖再構築に進展があったので、自分へのメモを込めて。

ことのはじまり

某ICTSCの運営中の事。

わし「コンテスト終わったら、自宅鯖再構築したいなぁ…DS81も手元くるし…でもownCloudのデータが…」

先輩「データのバックアップとかは、一個ファイルサーバー建てておく大分楽になるよ。おすすめ」

わ「でもおかねがががが…」

友人「QNAP買おう^^」

わし(NASはやっぱりストレージ4台だよね…かたかた…↓)

store.shopping.yahoo.co.jp

わし ( 'ω')三⊃)゚3゚)'∴:. 友

わし「わかった!自作しよう! この際だから、家中のHDDをかき集めて一箇所にまとめてZFS組んでいい感じにするぞ!!!!」

続きを読む

これからやりたいことのメモ的な何か

kayo-tozaki.hatenablog.com

前の記事にてLTの資料だけ投稿しておきましたが、 ICTSC5 というイベントで、運営として参加していました。ここ2週間が一番忙しかったのですが、片付けまでの日程を昨日終え、ひとまず一息ついてるって感じです。 このイベントの運営に関してのお話は、ぱろっくという私の知り合いがたくさんあげているので、私からは特に無いです。

palloc.hateblo.jp

このイベントに(運営としてしてのみですが)参加していると、色々とやりたいことが増えていくという好循環。 ここで、一旦自分がやりたいこと、やらなくてはならないことを整理してみようかと。

続きを読む

LTするためにとある大会に参加した

すごく語弊があるように聞こえるので、最初に弁明しておきますが、

問題案はある

私「あ、ここをこうすれば、LTのネタに使えるかも」

LTするしかない

という流れです。決して、LTがしたいからわがままを通したなんてそんなことは…

続きを読む

Minecraft Serverが止まった(解決済み)

はじめに

ログインとかプレイ状況を伝えるTwitterBotにて、不穏な空気を漂わせるアナウンスが続きました。

うーん…嫌な感じだなぁ… とか思ってたら、プレイヤーから文句の連絡が。

f:id:kayo_tozaki:20170102182717p:plain

私が先日某所で学んだことだが、

お客様から言われてとかみたいな、外部から言われて気づくというのは最悪のインシデント(問題)検知です。

▂▅▇█▓▒░('ω')░▒▓█▇▅▂うわあああああああ

って感じになってます。さて、頑張って解決していきましょう。

問題の原因

とりあえず、OP権限を付与できる(※私がプレイするとき用にOP権限はつけてない)状態で、とりあえずマイクラにログインすることに。

この段階で、なんとかログインできました。

問題発生の張本人からの証言

別に、この人が悪いわけではないが(管理者・プレイヤー共々知らなかったので)報告を聞くと、
どうもその人のやったことで問題が発生したのではないかとことが判明。 ことの顛末として、

  1. EnderIO mod の配管隠し (Conduit Facade) を作った
  2. 既にConduit Facadeに焼き石・木材(おそらく松の木材)を追加したものを使って配管をつなげていた
  3. 新たにConduit Facadeに焼き石を追加した物を、松材のところに接続しようとした
  4. 置いた瞬間に落ちた

ということ。

なので、発生場所教えてもらいその現場に行ってみると…

f:id:kayo_tozaki:20170102182731p:plain

なにこのテクスチャロードバグは。始めて見ましたよ、テクスチャ。

近くにあったアイテム( conduct switch ) を手に持つと…

f:id:kayo_tozaki:20170102182748p:plain

というわけで、周囲のブロックを壊して見ると、元に戻りました。

原因は、EnderIOのブロック隠しをする Painting Machineで作成されたブロックの設置によるテクスチャバグだということになります。

調査する

調査はまだ途中ですが、EnderIOのGithub Issueに、類似のバグがありました

一応クラッシュ時のログの一部ですが…

---- Minecraft Crash Report ----
// Shall we play a game?

Time: 16/01/16 17:34
Description: Unexpected error

java.lang.ClassCastException: crazypants.enderio.conduit.TileConduitBundle cannot be cast to crazypants.enderio.machine.tank.TileTank
    at crazypants.enderio.machine.tank.BlockTank.getLightValue(BlockTank.java:128)
    at net.minecraft.block.Block.func_149677_c(Block.java:528)
    at net.minecraft.client.renderer.RenderBlocks.func_147736_d(RenderBlocks.java:6708)
    at net.minecraft.client.renderer.RenderBlocks.func_147784_q(RenderBlocks.java:4716)
    at net.minecraft.client.renderer.RenderBlocks.func_147805_b(RenderBlocks.java:307)
    at net.minecraft.client.renderer.WorldRenderer.func_147892_a(WorldRenderer.java:320)
    at net.minecraft.client.renderer.RenderGlobal.func_72716_a(RenderGlobal.java:2232)
    at net.minecraft.client.renderer.EntityRenderer.func_78471_a(EntityRenderer.java:1514)
    at net.minecraft.client.renderer.EntityRenderer.func_78480_b(EntityRenderer.java:1301)
    at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1001)
    at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:898)
    at net.minecraft.client.main.Main.main(SourceFile:148)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

HAHAHA...一体何がどうなっているんだ…

と、いうわけで、EnderIOのPainting Machine で生成したブロックは使用しないようにサーバ参加者には通知しましたが、 どうも、EnderIOのバグっぽいです。まあ、わからないですが。


バグの原因調査

そのまま放置ではとても気持ちが悪いので、結局調査することに。 マルチサーバーではなく、ローカルで、テクスチャのバグが起こることを目標に頑張っていきます。

検証環境を整える

バグを生じさせた友人に話を聞いて、似たような環境を用意することに。

f:id:kayo_tozaki:20170102182807p:plain

まあ、簡単な物を新規ワールド野ざらしで作成しただけです。特に意味は無いです。

必要なもの

今回のバグを再現するために、必要だったものは次のアイテムです。

  • String Generator (発電機) : 発電機ならなんでもいいです。私はこれしか知らないので。
  • lava backet (溶岩バケツ) : 燃料ならなんでもいいです。私はこれしか知らn(ry
  • Painting Machine (導管ペインター) : 今回の主役。
  • Conduit Facade (導管ファザード) : 今回の主役2。Painting Machine でペイントする先のアイテム。導管を様々なブロックのテクスチャにすることができる。
  • Fluid Tank (液体タンク) : 今回の主役3。これをPainting Machine でペイントする元に選択して、Conduit Facade をペイント先にすると、導管が透過される。
  • Wood : 木のブロックならなんでもいいです。床材として使用
  • Stone : 今回は焼石ですが、なんでもいいです。壁材として使用

配管

まずは、地面側、1ブロックでいいのですが、2ブロック分開いているので、2つ分。

f:id:kayo_tozaki:20170102182829p:plain

Painting Machine で Wood Block にペイントした Conduit Facade を設置します。

f:id:kayo_tozaki:20170102182843p:plain

石壁の方にも同様の細工をします。

f:id:kayo_tozaki:20170102182855p:plain

配管の全貌はこちら↓。(見た感じ完成前っぽいけど気にしない(大汗))

f:id:kayo_tozaki:20170102182909p:plain

バグを発生させる

今回は、Fluid Tank にペイントした Conduit Facade をいい感じに設置していこうと思います。

f:id:kayo_tozaki:20170102182920p:plain

配管時に、石壁側に設置した Stone & Conduit Facadeの隣、壁から出たところにある配管に対して、Fluid Tank & Conduit Facade を設置すると…

f:id:kayo_tozaki:20170102182933p:plain

という感じで再現できました。テクスチャのロードがバグって、!が量産されています。
同様にして、木材床の方もやってみると…

f:id:kayo_tozaki:20170102182942p:plain

というわけで、原因の特定と再現ができました。やったね。
ちなみに、導管を持つと、隠れている導管が姿を表しますが、今回のバグの場合は、合わせてテクスチャも元に戻ります。

f:id:kayo_tozaki:20170102182951p:plain


終わりに

原因の追求はできました。ワタシエイゴワカリマッセーンの人なので、きっとEnderIO の GitHub Issue には、この手のバグ報告は上がっていると信じています。 (未確認)

シングルの場合はテクスチャがバグっただけで、再ログインしても問題なくワールドをロードできましたが、
マルチの場合は容赦なく蹴られて、上記のようなエラーログとともに、Minecraftが落ちます(白目)

てなわけで、原因もはっきりしたし、再現もできたのでめでたしめでたし。

Minecraft Server の 管理は意外と大変?

この記事は、Kogakuin Univ Advent Calender 2015 の21日目 の記事だったりします。

事の始まり

2015/11/24 にこんなツイートがきっかけでマイクラサーバを立てました。

f:id:kayo_tozaki:20170102183428j:plain

そうです、脅迫がきっかけで、マイクラサーバを立てました。

これまでも、Minecraftサーバは立てて来ました。立てたバージョンはこちら↓

  • Bukkit : MC 1.7.10
  • Vanilla : MC 1.8
  • Vanilla : MC 1.8.3 (For [Sbutatoon old edition])

で、今回は、The 工業化がしたいという要望から、必然的に Forge1.7.10 を採用することに。初めてのForgeサーバでした。

続きを読む