alarky blog

いつまでも見習いエンジニア

大阪のMastodon を作っている話

乗り遅れた感が半端ないのですが、流行りのマストドンインスタンスGCPで立ててみました。

ただのインスタンスじゃつまんないので大阪弁、関西弁にローカライズしています。

関西弁のトゥートで溢れるタイムラインになるといいな。登録してもええんやで

 

mstdn.osaka

 

f:id:alarky1:20170417213329j:plain

 

ローカライズはこのリポジトリでやってます

github.com

DAIV-NG5710 S1 というノートPCを買ってみた

ネット上にレビューが全く見当たらなかったので久々にブログを書きます。

長期出張が決まったのでVRゲームができるノートPCを探していたのですが、色々ゲーミングノートと比較してDAIVのノートPCを買いました。

http://www.mouse-jp.co.jp/images/creator/note/ng5710/gallery/DAIV_NG5710_up_m.jpg

DAIVとは

BTOパソコンメーカー、マウスコンピュータのクリエイター・エンジニア向けブランドです。GPUが載ってるワークステーションやノートPCが色々ラインナップされています。性能的には同社のゲーミングPCブランドG-Tuneに近いのですが、TITANとかQuadroが載ってるバリエーションもあり業務用途を全面的に押し出している模様。

ちなみにDAIVとは「Dynamic Approach Imagery of Visual」の略だとか。

www.mouse-jp.co.jp

 

DAIV-NG5710

GeForce GTX 1060を搭載したVR Readyな15.6インチノートです。

DAIV-NG5710シリーズ |DAIV マウスのクリエイター・エンジニア向けPCブランド

 

各モデルの基本構成と価格は

 DAIV-NG5710E1DAIV-NG5710S1DAIV-NG5710M1
OS
Windows10 Home 64bit
CPU
Core i7-6700HQ
GPU
GeForce GTX 1060(6GB)
メモリ
16GB PC4-17000 (8GB×2/デュアルチャネル)
ストレージ(OS用) SSD240GB SATAIII M.2 SSD256GB SATAIII SSD960GB SATAIII
ストレージ(データ用) - HDD 1TB SATAII 5400rpm -
価格 \149,800 \159,800 \179,800

って感じです。

大きめのストレージが必要なのでデータ用ストレージを2TB HDDにカスタマイズしました。プラス1万円也。

 

他のGTX1060ノートPCとの比較

同社のゲーミングPCブランド、G-Tuneにもちょうど同じスペックのi5530シリーズが出ています。

www.g-tune.jp

ていうか同じ商品だよねこれ。。ロゴ違うだけだよね。スペックも筐体も価格も同じ模様。プリインストールされているものが違うかも?わたくしはロゴの違いとDAIVブランドへの興味とディスプレイの色域保証で選んじゃいましたけどね!

 

みんな大好きRazer社の14インチゲーミングPC

www.razerzone.com

1060搭載で比較的薄型軽量、CPUは6700HQでメモリ16GB、SSDも512GBとスペックは同じくらい。しかも光る(重要)。だが高いんだな~。25万くらいする

 

ASUSのゲーミングノート。ちなみにASUSアスースと読みます。え?公式アナウンス?知りませんそんなことは!

ascii.jp

129,800円!お安い!アキバまで行けば買える!だがi5なんだな~。ゲーム専用としてならちょうど良いスペック。近くに住んでたらこれ買ってたかもしれないけど、CPUは後から変えられないからね、、4年戦いたいのでできればi7にしておきたいところ。

 

あとは

GS73VR 6RF Stealth Pro(002JP) | エムエスアイコンピュータージャパン | Laptops - The best gaming laptop provider

第7世代インテルCoreプロセッサー搭載Alienware 15インチゲーム用ノートパソコン | Dell 日本

とか検討したけど、マウスが一番コスパ良さげなので決めました。

 

良い点

3Dゲームがぬるぬる動く!デスクトップ版のGTX970と体感的に変わりません。

Oculus RiftでVRだって動く!Touchだとセンサーが2つ要るのでHMDと合わせてUSB3.0が3ポート要るのですが満たしています。埋まっちゃうけどね..

画面も綺麗。白が若干黄色っぽい気がするけど、これは今まで使ってたモニタが悪いので自分の目のせい。

あとノートPCなのに拡張性が高いのも良い。M.2スロットが1つ空いてるのと、メモリ2スロット増設可、さらに2.5インチストレージが2台乗る。HDMI+DisplayPort2でマルチディスプレイも捗る。USB3.1が2つもついている!いま時点では使いみちないけど、今後対応デバイスが増えてくるはず

 

良くない点

でかい。重い。

厚みが3cmくらいある。本体だけで2.8kgくらいある。20年前のノートPC感覚を味わえます。

気軽に持ち運ぶモバイルマシンではないです。これはゲーミングノートならどれも同じだろうけど、そう考えるとrazer bladeは凄い。

 

コイル鳴きがひどい。

電源入れたときや3D処理がゴリゴリ動き始めるときのコイル鳴きがすごい。キュイキュイ鳴る。一度動いてしまえば収まるけどね。

 

USB、2.0で良いのであと1つポートがあれば...

Oculusを繋ぐとそれだけでポートが埋まってしまうので、ぜひポートを増やしてほしかった。

 

www.amazon.co.jp

こういうのを買うはめに。単なるhubでよければもっと安いのあります。

 

キー配置が左寄りでつらい。

テンキーつきなので、MBPに慣れきった手だとタイピングが辛い。慣れが必要なだけかな。

 

まとめ

良くない点もいろいろ書いたが、周辺機器と運用方法で解決できるので良い買い物だった。これで出張先でもゲームと3Dゴニョゴニョが捗る。

i5530とNG5710の違いはロゴだけ!好きな方買えばいいと思うよ。

 

p.s.

みんなVRすればいいと思うよ

 

 

 

 

 

 

 

 

 

 

 

 

 

#OsakaVim #3 に行ってきた


Osaka.vim #3 - connpass

に初参加してきました。

 

最近コーディングに本格的にvimを使い始めました。

vimは4年くらい使ってますが、主にサーバーconfig類の単純な編集が多かったのでかなり基本的な使い方しか知らず、コーディングに使おうとしても効率的に使えていませんでした。完全に初心者!

 

ちゃんと勉強しようと思って


Amazon.co.jp: 実践Vim 思考のスピードで編集しよう!: Drew Neil, 新丈径: 本

を購入していたのですが、全然読めておらず。。。

今回のOsakaVimはもくもく会との事で、集中して読んできました。

 

13時から18時まで、5時間くらいあったので1冊読みきる目標でしたが、実際に使いながらノートにまとめつつ読んでると、45%で終わりました。。

とは言え一気に半分近く読めたのはとても良かった。

久々に長時間集中できた気がします。

 

業務で即使えそうなTipsがいろいろ覚えられました。

特に

・ヴィジュアルモード周り

・タブとウィンドウ周り

が全然使いこなせてなかったので、理解を深められて良かったです。

 

今日まとめたノート

実践vimを途中まで読んだメモ @OsakaVim #3

 

他の方はプラグイン作ってたり、それぞれ難しそうな事やってました。

(自分のvim力が低くてよくわかってない)

 

こんな参加の仕方で良かったのかわかりませんが、勉強になって楽しかったです。

主催・参加者の皆様ありがとうございました。

もっとvim力つけてまた参加したいと思います。

大阪Pythonユーザの集まり #osakapy に行ってきた

大阪Pythonユーザの集まり 2014/10 - connpass

に行ってきました。

 

会場は職場のすぐ近くで、シナジーマーケティングさんのオシャレで綺麗な会議室でした。

 

今はPerlしか書いてないですが前職ではPythonばかりガリガリ書いてました。

当時は勉強会とか全く違う世界のものだと思ってたけど、その頃にちゃんと調べていけばよかったなー

 

内容はLTがたくさん。

・開発環境セッション

・生産性向上セッション

・事例紹介セッション

の3カテゴリに分けて、それぞれのセッション内でいくつかのLTが行われました。

 

各LTはconpassに上がってますよ〜

 

IDEとエディタの話について。

僕がPythonメインで使ってた頃はPHPやHTML/JSコーディングも多く、

Aptana | Studio を使ってました。

 

EclipseベースのIDEで最初から見た目も整ってて、Webアプリ向けにHTML/JS/CSS/PHP/Ruby(onRaids)/Pythonのサポートがされていて使いやすかったです。

使い勝手はまぁEclipseと変わらないと思いますが、Javaは使わないのでこっちの方が手っ取り早かった。

 

転職してPerlを書き始めた当初、AptanaPerlEclipseプラグインのEPICとか入れたりするも、どうにも使いにくく。

Komodo Edit

というエディタをしばらく使っていました。

結構いろんな言語に対応していて、リモートのファイルを直接編集でき、IDEほど大仰じゃなく手軽で使いやすいです。

 

その後、流行っているらしい

Sublime Text に手を出すものの、EUCSjisファイルをよく使うので辛すぎた。。

(ちょうとSublimeのLTがあったので文字コードいい感じに扱える方法がないか聞いてみたけど、やはり現状は微妙らしい。今はver 3の開発で一杯一杯で、将来的には文字コード強くする気配はあるらしいので今後に期待)

 

最近はvimに落ち着きました。

プラグインとかよくわからないし、いろんなサーバで使うので、ほぼ素の状態で使ってます。

業務上はローカルで作業する事がほぼないけど、Perlで実用的なIDEがあれば使ってみたいなー

 

 

生産性向上の話。

Ansibleの話がありました。

Chefは複雑すぎて(そしてRubyが読めず)あまり好きになれなかったのですが、

Ansibleはシンプルでわかりやすく好き。(業務で使ってないけど。)

でも動的にしたり複雑すぎる事はymlじゃ定義できないので、別途スクリプトでごにょごにょする方法?があるらしい。

今度ちゃんと調べたい。

 

メール通知をRedis経由のXMPPに置き換える話は真似したいと思った。

でもタイムリーに弊社で今日からSlack利用が始まった。Botとか駆使して色々効率化したい。

 

ツイートの取得と解析の話。

学生で初参加でLTとか素晴らしい!

Twitter APIの制限を限界突破するためにWeb経由でクローリングしたそうです。

僕も昔Twitterからトレンド解析してごにょごにょするツールを作ってたので、とても興味深かった。

HTMLParserより、もっと直感的に扱える 

lxml - Processing XML and HTML with Python

というライブラリがありますよー、という話をすればよかったなー。

CSSセレクタも使えたかな?僕はXPathで使ってた覚えがあります

 

 

1時間半の間にこれだけのLTがあったのは楽しかった。

しかし5分はやはり短い。ドラの人(not 娘)に中断される人多数w

懇親会行けばよかったーw

 

次回は忘年会らしいので、その次くらいに?また行きたいと思います。

それまでにPythonネタ用意しておかないと。。。

プログラマーズナイト第5夜 #pgnight5 に行ってきた


プログラマーズナイト第5夜 - connpass

に初めて行ってきました。

毎年京都でやってるらしい。

 

会場はゲームとかたくさん置いてある素敵なカフェでした。

22時開始、5時までとの事で、盛り上がり始めるのは夜中かなー?と思いつつ到着は23時。お店超満員でした。すごい

 

DJ → LTLT → DJ → LTLTLT

みたいな感じで、マラソン的な流れでした。斬新

 

イベントの趣向的に、音に関するLTが多く、次にハードウェア系の話が多かったかな?

「モノのインターネット」については、チップ?が安くなった事によって、現実世界のモノがネットに直接繋がるって内容にワクワクしました。

 

結構長いイベントだったので、せっかくだしLTしようと思って合間の時間で資料作って最後の方にちょっとisuconで惨敗した事について話しました…

LTだしライトにいこうと思ったらほんとに内容薄すぎた。5分経ってなかったと思うw

もっと詳しく話せばよかったなー

 

終盤は皆TENGAの話しかしてなく、京都怖いと思いました。

でも結構楽しかったのでまた行きたい。

【再演】剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術 に行ってきた

先週の事ですが、【再演】剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術 - connpass に行ってきました

まとめ

内容まとめようと思ったら、すでにわかりやすくまとめてくださっている方がいました

【CEDEC再演】「スマホ時代のMMORPGを支える技術」講演レポート - Qiita

感想

C++覚えてみたくなった。LLしかできないのはそろそろ卒業したい

Python読みやすくなるので業務でも使いたい

・少人数の勉強会は質問しやすくて良かった。事前に書いてあったけど思った以上に距離が近かった

・インフラ構成が想像以上に複雑で、データベース構成に近い印象を受けた。ブラウザSGではテーブルとかセッションで管理しているような情報をメモリ上に持ってるからかな。MMOとかリアルタイム通信系ゲームのサーバサイドって他もあんな感じなのだろうか?

・開発環境はほぼWin+VMらしい。クライアント開発もWin上で済ませて問題ないとの事で意外。うちはアプリ勢みんなMacな気がする

・Unityではなくcocos2d-xを選ぶ理由について。開発効率やパフォーマンス面の心配、との事だったが、それと同じくらい?オープンソースである事が重要らしい。確かにソースが読めないと問題が起きた時に調査・対応できないリスクとか、ハードのパフォーマンス出しきりやすくなるメリットは大きいと感じた

・内製ネットワークライブラリのRPCインターフェース生成機能は確かに便利そう。今度API作る時に真似してみようと思う

isucon4予選で33000点あたりでFAILする方法

今年初めて、ISUCON4の予選2日目に出ましたので、参加のいきさつから予選FAILで終了するまでを書きます。

去年の秋、サバフェス(http://serverfesta.info/)に出た時に初めてISUCONを知り、
今年はISUCON出ようと思って社内でメンバーを募りました。

・僕
 →元元Pythonエンジニア、元インフラエンジニア、現Perlエンジニア

・Nさん
 →元PHPエンジニア、現アプリエンジニア

・Hくん
 →PHP経験の長い、今年の新卒Perlエンジニア

の3人チーム「ぐれい」で出る事になりました。

準備編

・去年の予選問題で練習(https://github.com/alarky/isucon3_perl
 MySQLをRedisに置き換え、可能な限りvarnishでキャッシュしたりしてスコア60000くらい出てました。ここで慢心して大して準備しなかったのがまずかった

・3人共通で得意な言語がない中、「どうせなら3人ともできないGo覚えて出よう」と言ったものの、予選まで1週間では3人とも到底ムリでした。
共通で読める言語のPHPPerlで最後まで悩んだ結果、Perlでいく事に

・分担は、僕がミドルウェア周り担当、NさんとHくんでアプリを担当してもらいました

前日編

・1日中 #isucon をウォッチ。どう見ても予選通過ラインが高い事に焦る

当日編

・最大の難関だった、朝9:30集合は全員クリア

・最初の1時間で2人にアプリの把握をしてもらいつつ、僕はリポジトリツール類の準備と自家製のmy.cnf / nginx.confとそれに対応したログ解析スクリプトの仕込み、プロファイラ類(NYTProf, KYTProf)の仕込み等を行いました。

・12時頃、ベンチマークの動きや機能とコード、クエリを見てMySQLでのチューニングは捨ててlogin_log周りをRedisでのカウンタ式に置き換え、usersはプリロードしておく方向に決定し、担当領域を決めました。

 →僕 ミドルウェア周りのチューニングしつつ、varnishとnginxで静的配信と / のキャッシュ化
 →Nさん login_log周りのRedis化
 →Hくん usersのプリロード化とか、プロファイラ見て遅いとこ見つけてもらう担当

usersのプリロード化

うまくいきましたが、劇的な程のスコア上昇ではなく、やはりlogin_log周りがボトルネックなもよう

/ のキャッシュ化

目論見ではSet-Cookieの発行タイミングを / から /login に変更する事で、/ は静的になりnginxでもvarnishでもレスポンス可能になり、スコアが倍近くになるはずと考え、
varnishで / アクセスについて下記の設定を行いました。

Cookieがついてたらバックエンドに流す
・/ のレスポンスヘッダのSet-Cookieヘッダを消す
・そしてキャッシュ化

手元のブラウザ(Chrome)では意図した通りに動いていました。

が、なぜかベンチマークではFAILが出まくる。

結局最後まで原因がわからず、ベンチマークCookieを受け付けるタイミングが / 固定なのかもしれないと、ここでキャッシュ化を諦める

login_log周りのRedis化

14時過ぎにはスコア33000くらいまでなり、うまくいってました。

/report についてはチューニングしなくても良い箇所なのでこの時点ではまだ対応しておらず、スコア送信はできていませんでした。

そして/report のRedis化対応してもなぜかベンチマークがこけるらしい

何度修正してもreportがこけるらしい

初心に返ってもともと発行していたクエリを見直すと、そもそもの解釈が間違っていた事が判明。この時点で17時頃だったので全員で再実装。更にバグを作ってしまい、FAILが増える増える。。。

有効なスコアが送信できないまま、10時過ぎに動作確認した時の初期スコアが最初で最後の有効スコアになりました。

(そしてベンチマークが通る状態のAMIじゃないので、失格です。)

感想

すごく楽しかったですし、勉強になりました。

そしてとにかく準備不足、勉強不足でした。
もっと早くから予習するとかそういう事じゃなくて、普段からいろいろとやっておくべきですね。その反省からこのブログを始めました。

Nさん、Hくん、一緒に参加してくれてありがとうございました!
ISUCON運営の皆さん、参加者の皆さん、ありがとうございました!

来年リベンジしたいと思います。

 


alarky/isucon4_qual · GitHub