<![CDATA[ironingot.net]]>https://page-ironingot-fubira.c9.io/Ghost 0.7Wed, 24 Feb 2016 09:31:10 GMT60<![CDATA[Atom]]>テキストエディタをAtomに乗り換えようと思っているのだけど、Minecraftのログのようなsjisのファイルを開くことがたまにあるからどうしたものかと思っていたところ、auto-encodingというパッケージが解決してくれた。

auto-encoding

これでサクラエディタから卒業かな…

]]>
https://page-ironingot-fubira.c9.io/atom/b71b2dac-6b12-4e07-9439-d87b726655f6Thu, 07 Jan 2016 02:56:11 GMTテキストエディタをAtomに乗り換えようと思っているのだけど、Minecraftのログのようなsjisのファイルを開くことがたまにあるからどうしたものかと思っていたところ、auto-encodingというパッケージが解決してくれた。

auto-encoding

これでサクラエディタから卒業かな…

]]>
<![CDATA[Themeを変えてみた]]>Veloxが素敵だったので変えてみた。
メニューが無くなったのでdynmapへの遷移がなくなってしまった対策は後で考える。

]]>
https://page-ironingot-fubira.c9.io/theme/8a179aaf-84ed-4740-abf8-dc12aa51e188Mon, 26 Oct 2015 02:17:32 GMTVeloxが素敵だったので変えてみた。
メニューが無くなったのでdynmapへの遷移がなくなってしまった対策は後で考える。

]]>
<![CDATA[Now under construction]]>勉強も兼ねて、これまでこのサイトのトップページはWordPressで作っていたのだけれども、サーバ資源的にも運用負荷的にも無駄が多いと感じていたこともあって、もっとシンプルに・楽に使えそうな環境をここのところ探していた。

  • サーバ資源を節約したい
  • markdownで書きたい
  • 更新履歴を管理したい
  • 用途から考えてWordPress+MySQLは冗長(アタックされまくるのでセキュリティ的にもよろしくない。)

といったあたりの観点から、最終的に Ghost + Buster + github-pages をチョイスして作ってみたのがこのページです。

環境を作るにあたって幾つか問題もあったのでメモ。

static page

Ghost上でstatic pageとして扱うと、Busterでgenerateした際に拡張子なしテキストとして吐き出されるが、github-pages上では拡張子なし=application/octet-streamとして扱われるため、html表示されずダウンロードされてしまう。

仕方がないのでstatic pageは使わないことにする。

slider

Ghostにはスライダーなんてないのでcoderkg/bxslider_plugin
を参考に、最新のbxsliderを入れてみた。

なお一部themeはbxsliderと相性が悪いらしく、epistrephein/Steam では表示位置がずれたり、読み込み状態のまま進まなかったりしていて困った。

buster

pip install buster でインストールできる標準のBusterは少しバグがある。

]]>
https://page-ironingot-fubira.c9.io/now-under-construction/f32b8059-462c-4e55-80e1-8e59c8427c3aWed, 14 Oct 2015 17:31:28 GMT勉強も兼ねて、これまでこのサイトのトップページはWordPressで作っていたのだけれども、サーバ資源的にも運用負荷的にも無駄が多いと感じていたこともあって、もっとシンプルに・楽に使えそうな環境をここのところ探していた。

  • サーバ資源を節約したい
  • markdownで書きたい
  • 更新履歴を管理したい
  • 用途から考えてWordPress+MySQLは冗長(アタックされまくるのでセキュリティ的にもよろしくない。)

といったあたりの観点から、最終的に Ghost + Buster + github-pages をチョイスして作ってみたのがこのページです。

環境を作るにあたって幾つか問題もあったのでメモ。

static page

Ghost上でstatic pageとして扱うと、Busterでgenerateした際に拡張子なしテキストとして吐き出されるが、github-pages上では拡張子なし=application/octet-streamとして扱われるため、html表示されずダウンロードされてしまう。

仕方がないのでstatic pageは使わないことにする。

slider

Ghostにはスライダーなんてないのでcoderkg/bxslider_plugin
を参考に、最新のbxsliderを入れてみた。

なお一部themeはbxsliderと相性が悪いらしく、epistrephein/Steam では表示位置がずれたり、読み込み状態のまま進まなかったりしていて困った。

buster

pip install buster でインストールできる標準のBusterは少しバグがある。
問題点を修正済みのfork版alokard/busterを使うほうが良い。

domain

minecraft servrのアドレスをironingot.netにしてる関係上、ironingot.netをgithub-pagesにつなげることが出来ないので、www.ironingot.netをgithub-pagesにつなげるようにしたうえで、ironingot.netへのhttp接続をwwwにリダイレクトするようにしてある。
ほんとはwwwとかつけたくない。もっとドメイン短くしたい。

cloud9

超便利。

Cloud9IDE

]]>
<![CDATA[Plugins]]>Omikuji

Download GitHub

おみくじ

NihongoChat

Download GitHub

日本語チャット

]]>
https://page-ironingot-fubira.c9.io/plugins/6c073c43-f235-413b-a68c-2f1a9e52a1f3Wed, 14 Oct 2015 17:28:10 GMTOmikuji

Download GitHub

おみくじ

NihongoChat

Download GitHub

日本語チャット

]]>
<![CDATA[Minecraft Server]]>Information

ironingot minecraft serverは、主に嫌儲Minecraft部(kenmomine.biz)の避難所として運用しているサーバです。動作確認や鯖落ち時の避難にご利用ください。Worldが今後も保護される保証はありませんので、定住はお勧めできません。

なおルールは嫌儲Minecraft部ルールに準じます。

Features

NamaPo System

ログインボーナスとしてポイントを配布し、AdminShopでアイテムを購入できるような仕組みを導入しています。詳しくはナマポセンターへお越しください。

Specification

Version: CraftBukkit 1.7.2
Address: ironingot.net
Server: CloudCore VPS CV02
Dynmap: http://dynmap.ironingot.net/

嫌儲鯖はかなりのハイスペックマシンですが、こちらは並のVPSなので特にCPU負荷に弱いです。allの目安は500を上限とし、できるだけ1箇所にMobを集めないよう注意してください。

]]>
https://page-ironingot-fubira.c9.io/minecraft-server/d1a5eae7-5f56-4e9c-8c72-d843caed56c4Wed, 14 Oct 2015 17:19:30 GMTInformation

ironingot minecraft serverは、主に嫌儲Minecraft部(kenmomine.biz)の避難所として運用しているサーバです。動作確認や鯖落ち時の避難にご利用ください。Worldが今後も保護される保証はありませんので、定住はお勧めできません。

なおルールは嫌儲Minecraft部ルールに準じます。

Features

NamaPo System

ログインボーナスとしてポイントを配布し、AdminShopでアイテムを購入できるような仕組みを導入しています。詳しくはナマポセンターへお越しください。

Specification

Version: CraftBukkit 1.7.2
Address: ironingot.net
Server: CloudCore VPS CV02
Dynmap: http://dynmap.ironingot.net/

嫌儲鯖はかなりのハイスペックマシンですが、こちらは並のVPSなので特にCPU負荷に弱いです。allの目安は500を上限とし、できるだけ1箇所にMobを集めないよう注意してください。

]]>
<![CDATA[Spigot 1.8.3 + Hawkeye issue]]>鯖をCraftBukkit 1.7.2 -> Spigot 1.8.3 に変えてみたところ案の定いろいろ問題が出たけども、その中で最も危険だった問題点をメモしておく。

1.8.3 への移行直後、Spigot鯖とは別のネットワークに置いてあったMySQL鯖に対してHawkeyeがすごい勢いでクエリを投げはじめ、送りきれないQueueが大量に蓄積されていってサーバが非常に重くなる現象が発生、まともにゲームができなくなってしまった。

取り急ぎHawkeyeの接続先をSpigot鯖のローカルのMySQLに変えたのだけれども、その後しばらく運営していると、サーバの空き容量が激減していることに気づき、いろいろ調べた結果MySQLのデータベースがこんなんなっていた。

root@nagato:/var/lib/mysql# ls -lah  
total 80G  
drwx------ 10 mysql mysql 4.0K May  7 17:47 .  
drwxr-xr-x 59 root  root  4.0K Nov  5  2014
]]>
https://page-ironingot-fubira.c9.io/spigot-1-8-3-hawkeye-issue/f7056d39-63db-4de5-adb7-efbf02256157Fri, 08 May 2015 17:29:00 GMT鯖をCraftBukkit 1.7.2 -> Spigot 1.8.3 に変えてみたところ案の定いろいろ問題が出たけども、その中で最も危険だった問題点をメモしておく。

1.8.3 への移行直後、Spigot鯖とは別のネットワークに置いてあったMySQL鯖に対してHawkeyeがすごい勢いでクエリを投げはじめ、送りきれないQueueが大量に蓄積されていってサーバが非常に重くなる現象が発生、まともにゲームができなくなってしまった。

取り急ぎHawkeyeの接続先をSpigot鯖のローカルのMySQLに変えたのだけれども、その後しばらく運営していると、サーバの空き容量が激減していることに気づき、いろいろ調べた結果MySQLのデータベースがこんなんなっていた。

root@nagato:/var/lib/mysql# ls -lah  
total 80G  
drwx------ 10 mysql mysql 4.0K May  7 17:47 .  
drwxr-xr-x 59 root  root  4.0K Nov  5  2014 ..  
-rw-rw----  1 mysql mysql  80G May  9 02:11 ibdata1
...

3日前までは合計10MBも使っていなかったようなDBが80GBだと…!?

中身を見ようにもselectするとOutOfMemoryになってしまうような状況なので、Hawkeyeの書き込み先tableを変えて数分動かしてみたところ、秒速3500行、時速にして1260万行のデータがMySQLに送られていることが判明。

|   25077 | 2015-05-09 01:18:37 |         1 |     28 |        1 | -127 | 61 |  211 | +263:1~1                  |
|   25078 | 2015-05-09 01:18:37 |         1 |     28 |        1 | -127 | 61 |  211 | +263:1~1                  |
|   25079 | 2015-05-09 01:18:37 |         1 |     28 |        1 | -127 | 61 |  211 | +263:1~1                  |
|   25080 | 2015-05-09 01:18:37 |         1 |     28 |        1 | -127 | 61 |  211 | +263:1~1                  |
|   25081 | 2015-05-09 01:18:37 |         1 |     28 |        1 | -127 | 61 |  211 | +263:1~1                  |
|   25082 | 2015-05-09 01:18:37 |         1 |     28 |        1 |  -84 | 56 |  187 | +17:1~1                   |
|   25083 | 2015-05-09 01:18:37 |         1 |     28 |        1 |  -84 | 56 |  187 | +17:1~1                   |
|   25084 | 2015-05-09 01:18:37 |         1 |     28 |        1 |  -84 | 56 |  187 | +17:1~1                   |
...

これらのデータが何を意味しているかというと、こちら。

ホッパー 中身が詰まった

接続先が一杯で内容物を移動できないホッパーのchest transaction(28)が大量に記録されていたのだった。1.8になってEventの挙動が変わったのか?

まあホッパー内にある(=運搬するような)アイテムの情報が重要である可能性はほぼないと考えられるので、ホッパーのログをfilterしてしまうことにした。

対策

plugins/Hawkeye/config.yml のcontainedtransaction-filter: hopperの部分をfalseに書き換える。

containertransaction-filter:  
  chest: true
  doublechest: true
  furnace: true
  dispenser: true
  hopper: false
  dropper: true

結果、Hawkeyeのデータ量は15分で800行ぐらい(秒速1行以下)となりました。 めでたしめでたし。

そして肥大化したDBだけが残った。

]]>
<![CDATA[CraftBukkit-1.8 memo]]>Bukkit/CraftBukkit/Spigot

Mojang配下の公式ではなく、Spigotチームが1.8対応を行ったBukkit/CraftBukkit。今のところ生成物は配布されていないので自力でビルドする必要がある。Java-SDK + gitの環境を整えてあれば java -jar BuildTools.jar で出来上がる。

公式のBukkitコミュニティで開発されたものでないため、今後どうなるかの見通しは不明。ただし公式のBukkitはそれ以上に不明。


看板データの変換問題

CraftBukkit 1.8より一部の内部データがJSON形式で保存されるようになっているが、1.8以前のワールドにおいて作成した看板の文字列にJSONのSyntaxが含まれていた場合、その文字が消えてしまう。
この時問題になるのが、LocketteプラグインでロックをしているワールドをCraftBukkit 1.8でロードすると、

全てのロックチェストの看板の[ ]が消滅し、ロックが外れる

という現象が発生する。

ロックが機能していない状態

セキュリティ強制全解除というあまりにもあんまりな現象のため回避策を探したところ、以下のようにサーバjar起動時のオプションに -DconvertLegacySign=true を追加することで、読み込んだワールドの看板データを変換処理してくれる機能が存在しているのを発見。

 $ java -Xmx1024M -Xms1024M -DconvertLegacySigns=true -jar craftbukkit.jar

`

変換と同時に看板の内部データに変換済みのフラグを埋め込むため、2重3重に変換がかかる心配はないが、1.

]]>
https://page-ironingot-fubira.c9.io/craftbukkit-1-8-memo/b31609d4-f0db-4ab4-b20a-7906b9c06229Fri, 05 Dec 2014 19:49:00 GMTBukkit/CraftBukkit/Spigot

Mojang配下の公式ではなく、Spigotチームが1.8対応を行ったBukkit/CraftBukkit。今のところ生成物は配布されていないので自力でビルドする必要がある。Java-SDK + gitの環境を整えてあれば java -jar BuildTools.jar で出来上がる。

公式のBukkitコミュニティで開発されたものでないため、今後どうなるかの見通しは不明。ただし公式のBukkitはそれ以上に不明。


看板データの変換問題

CraftBukkit 1.8より一部の内部データがJSON形式で保存されるようになっているが、1.8以前のワールドにおいて作成した看板の文字列にJSONのSyntaxが含まれていた場合、その文字が消えてしまう。
この時問題になるのが、LocketteプラグインでロックをしているワールドをCraftBukkit 1.8でロードすると、

全てのロックチェストの看板の[ ]が消滅し、ロックが外れる

という現象が発生する。

ロックが機能していない状態

セキュリティ強制全解除というあまりにもあんまりな現象のため回避策を探したところ、以下のようにサーバjar起動時のオプションに -DconvertLegacySign=true を追加することで、読み込んだワールドの看板データを変換処理してくれる機能が存在しているのを発見。

 $ java -Xmx1024M -Xms1024M -DconvertLegacySigns=true -jar craftbukkit.jar

`

変換と同時に看板の内部データに変換済みのフラグを埋め込むため、2重3重に変換がかかる心配はないが、1.8でこのフラグ無しですでに読み込んでしまったワールドは変換処理をせずJSON型で保存済みのため、その後 convertLegacySigns を有効にすると2重変換がかかり、下記のように看板の内容が破損する。

空行が null になり、文章行は

すでに1.8で起動してしまったワールドを今後も使いたい場合、後からconvertLegacySignsを設定するのはおすすめできない。泣きながらワールド中の看板を貼り直すことになる可能性が高い。

そんな状況に陥らないためにもバックアップを忘れずに。

※このフラグの情報が現状出てないのは、このようにワールドを壊す危険性が高いからだと推測される。また公にしていない以上、今後仕様を変えてくる可能性も考えられる。


各プラグインの対応状況

WorldEdit, WorldGuard, PermissionsEx, Essentials

Guavaのバージョンアップに伴って問題の出る主要プラグインをSpigotチームが独自に配布している。

Multiverse

開発関係者が1.8でも問題ないと発言

Dynmap

dev版が出ている

Lockette

前述の看板データ変換問題がある 現行のもので動作は問題ない

BlockHat

現状エラーが出て動かない。 メンテも長らくされてないので今後が怪しい。

PlayerHeads

現状動かないけどそこそこ頻繁にメンテされているのでそのうち対応されると思われる

HawkEye

エラーは出てないけどブロック増えてる分の挙動は不明

]]>