C++幼女先輩

プログラミング成分多め

ディスりながらGoを覚えていこう

言語をDisるのは良くないことだ。どれも良さがある。Brainfuckであってもな

だけど、人間の言語を覚えるモチベーションを考えてみた
自然言語であればおおよそモチベーションは下記が考えられる

  • 仕事で必要になった
  • 友達や恋人と会話するため
  • その国の漫画や文学、文化を知りたい
  • 趣味として

そして覚え方も色々ある

  • 学校に通う
  • 本を読む
  • 旅行に必要なフレーズだけ覚えて旅行にいく
  • 卑猥な単語、罵倒フレーズから覚えていく

意外に多かったのが、卑猥な単語や罵倒フレーズから覚える人が多いという事だった

では プログラム言語を学ぶときに、卑猥な単語 罵倒フレーズから覚えるとはどういうことか?と考えると
黒魔術とDisること ではないかと思ったので、その両面からGoを勉強しようと思った
普段教科書通りにGoを勉強して飽きている人の息抜きになればと思う

qiita.com

まずは 醜い言語のインストールである

業務支援に使うスクリプト言語考察

業務外のもの(ファイル整形やら集計やら)に使う言語を考えた
Windowsだけなら PowerShellLinuxだけなら Bashや各種スクリプト言語
がプリインストールされてるんだけど 総合的に見て
Win,Macにて プリインストールor比較的インストール楽で手軽なもの
ということで考えたが 結論から言うと日本語対応が楽なRubyをしばらく使おうと思った

ただGUIが必要な場合Rubyでは弱いので結局C#なのかもしれない・・

RubyWindowsに入れて使う事、Macで.netを入れる事等考えて どれがベストか考えたい

ほんとWindowsMacLinuxでプリインストールされている共通言語欲しい・・

qiita.com

近況報告

近況報告である
最近は4件ほど会社で仕事を請けたりしている

KLab

前にサイバーエージェントで仲良くしてもらったデザイナーの紹介で
KLabさんの大型案件を手伝っている
KLabさんは今は技術力も高く、インフラが強く 自動化がかなり進んでいる
そして何より、社内の他のチームとの技術共有が優れていると感じた
大手ではありがちな社内政治により、他の事業部は敵という感覚がなく
とっても技術者としては 仕事をしやすい環境です 今後もたくさん会社のメンバーを送り、技術を磨きたいと思う
今回はUNITYのスマホクライアント側の実装で、パフォーマンスチューニングを主に行っている

Hyde

前に麻雀案件でお世話になったディレクターの紹介で 何度か仕事している
今回は新規のナンバリングタイトルの開発に最初からかかわらせていただく
開発のリーダーとして ちゃんとしたものを作るぞ!
Hydeさんとも今後はまるっと請け負うぐらいの感じで 共に仕事をしていきたい
こちらもUNITYのコンシュマー案件

某社ソーシャルサーバ

ソーシャルゲームのサーバを実装することがほぼ決まっている
まだ金額や案件の説明うけていないので請けるか不明だが、準備だけしている
nodeになる予定

自社案件 幼女研究所

主に女児向けの3Dダンス
こちらも早急に仕掛けていく必要がある

PCガジェット計画

PCやガジェットを色々購入しようと思うので メモ

現状

WindowsゲーミングPC(ゲームの仕事やサーバーなどメインマシン)
Android(XperiaZ5 Premium) 普段使いスマホ Docomoロック
iPodTouch 最新 音楽プレイヤー&ちょっとしたiPhone開発
タブレットPC 動画視聴用
ASUS SIMフリーAndroid 海外用
MacbookPro2017 現在何も使ってない
ペンタブ3個 CGに
Kindle WhitePaper 読書

不満点

そろそろスマホの速度が遅くなってきたので買い替えたい
サブモニターが欲しい
Macbook全く使ってないので何とかしたい

用途別

サーバ開発

Windows: Dockerが便利なのでもうWindowsでサーバ開発出来る。しかもWindowsのDockerが速い
Mac: NetBSDなのでサーバ開発が楽
Dockerが速いWindowsに軍配をあげたいところ。だがMacでも何も問題はない

ゲーム開発

Windows: Unrealも動く。UNITYも現状はWindowsでしかGPUプロファイリング出来ない
Mac: Unrealが動かない。UNITYもビデオカードのせいで遅い
Windowsが圧勝

ゲームプレイ

Windowsしかありえない

スマホアプリ開発実機

Phone用の開発が行えるMacに軍配
iPhoneのDepthカメラやフェイストラッキングが使いたい

スマホ

WindowsPhone: まだ候補に入ってない
Android: UNITYでプロファイリング出来る
iPhone: 高いが中古買取価格も高いのでイーブン。基本スペックは高い
どっちでもいいけど iPhoneまだ買ったことないので SIMフリーiPhoneを検討

サブモニター

モニター: 安い。専用商品なのでいいはず
AndroidTab: 比較的安い。Android機能もつかえるが Kindleと動画用にしか使わないかも
iPadPro: めっちゃ高い!けど 色再現度も高く 液タブにもなり 動画用にもなる

音楽プレイヤー

なんでもいいよ。 とりあえずiPodTouchで我慢するよ

案1 Macで固める

ゲーム開発、サーバ開発

MacbookPro: サーバもゲームも。Unrealは開発できない、UNITYも遅い&GPUプロファイリング不可能、Dockerも遅いけどなんとかなる

ゲームプレイ

ノートでのPCゲームはあきらめる(デスクトップ別にあるからそれで )

スマホ、音楽プレイヤー、実機

SIMフリーiPhone

サブモニター、動画、タブレット

iPadPro: 動画も見れる、サブモニターにもなる、液タブにもなる 最高

no Apple構成

ゲーム開発、サーバ開発、ゲームプレイ

Windows: 全てOK

スマホ、音楽プレイヤー、実機

SIMフリーAndroid: iPhone開発はあきらめる

サブモニター、動画

AndroidTab: 動画も見れる、サブモニターにもなる

スペシャル案

ゲーム開発、サーバ開発、ゲームプレイ

Windows: 全てOK

Macbook(Proでなくてもいい)

iPhoneiPadの開発用
持ち運びPC

スマホ、音楽プレイヤー、実機

SIMフリーiPhone: UNITYの実機プロファイリングはあきらめる

サブモニター、動画、タブレット

iPadPro: 動画も見れる、サブモニターにもなる、液タブにもなる 最高

MacbookProを振り返る

Mac

実はずっとMacは触ったことがなかった
2011年末にはじめて買うストーリーから

2011年

時は2011年末。某会社にバイト(役職はなぜか部長w)として参加していた
部長な理由は給与体系が役持ちじゃないとあわないからなんだが
当時はすでにスマホブームがきていて うちの部署でもスマホ化は当然だった
私は携帯&スマホ向けのアバターレンダリングエンジンを作りWindowsで可動させていた

そんな中私にも スマホネイティブの開発依頼が来ることになる
その時はUNITYも知られておらず、Android上で動くネイティブの3Dエンジンを作った
最初の案件で C++でJNIを使い NEON命令も使うという大変な案件だったが私らしい

最初のMacbook

Android対応がおわると、iPhone対応を頼まれる
会社にiPhoneとMacbookProを申請するも なぜかなかなか到着しない
会社の経理で色々と止まってるようだ
なんせ うちの部署は赤字部署。優先度が下げられる

ので 会社に私物のMacで開発していいか? 会社LANにつなぐぞ!と脅すと あっさりOKがでた

そこで MBP2011を買うことになった
でも悔しいので iPhoneではなく iPodTouchにした

到着〜改造

2011年の年末に ブツが届く
ブツが届いたときには既に 改造用のドライバーセットと 16GBのメモリ、置換用のSSDが手元にあった
会社に送ったので その日私のデスクにMBP2011がきた
早速会社でその場でMBPを分解する
メモリの差し替えを行い16GBに
そして 今回の念願だった 光ドライブを取り除き、SSDを入れる
SSDをマスターにし 元あったHDDをスレーブにし 起動
そして FusionDriveの設定を行う
FusionDriveとは SSDとHDDを一体化したストレージとみなし、よく使うデータはSSDに、あまり使わないものはHDDに入れる こうすることで 容量は約1TBあるが 256GBのSSDでよく使うファイルは動くため高速である

はじめてのMBP

MacOSは初めてだったが、NetBSDベースのため何も戸惑いはなかった
メモリ16GBは大きすぎるので RAMドライブ作ったり色々と暗黒な改造もした
ただ OSのSWAPとかをRAMドライブにすると色々不具合が出たり・・

仕事でもよく活躍してくれた
当時はF通のWindowsノートを使っていたが それに比べ圧倒的に軽かった
光ドライブを抜いたことで更に軽く とても気に入って、毎日持ち歩いていた
本来私物PC持ち込み不可の会社なのに、よくわからない経緯でOKもらい 会議にも持っていった
その後 ちゃんと会社を作り、契約形態をかえて 会社に固定席をおかず 持ち帰りにした
その時はもちろん 持ち運べるノートPCは役に立った

それから 大手ゲーム会社、大型サーバ案件、Web開発、スマホアプリ・・・ いろいろな案件を一緒にこなしたね
とうぜん 1期の決算も MBP2011で行った

初期不良

実はMBP2011は ロジックボードに大きな不具合があり リコール対象であった
が 初日に分解したため、無料の修理もできないし、1週間以上修理にかかり その間の仕事ができないと人生おわる
ので有償でも修理できず
結局 初期不良も含めて使った

スリープから復帰しないこともよくあり、液晶のバックライトがつかなくなること、急にシャットダウンしたり
色々と持病抱えていたけど それでも 使いやすく いいPCだった

Unreal4

ところが Unreal4案件を行ったとき、Macbookではまともに動かなかった
デスクトップPCで作業するので問題はなかったが、そろそろMacの問題点と向き合う時期になった

ゲーミングPC

Macbookではまともなゲームができない
Windowsだと色々なゲームできるのに・・
Unreal4も動くのに・・・
ということで2016年末に WindowsのゲーミングPCを買った
RazerBlade 人気のWindowsゲーミングノートPCで別名黒いMacbook
RazerBladeはすごかった。Geforce1060がのっていて Unrealもさくさく動く 当然ゲームもサクサク
CPUも強いし なにより GPUに負荷が低いときな内臓のIntelグラフィックを使うので バッテリー消費も低い

MBP2011の大病

時を同じくして MBP2011の調子がわるくなる
実行中に落ちることが多くなり、起動しなくなることも多くなった
予想としては どうかんがえても HDDかSSDドライブの不調 あるいはFusionDiskがおかしくなっている

のだけど 当時はUNITYの案件ばかりだったので RazerBlade のほうがパワーあって適していたので しばらく使わないように
サーバ開発も Dockerのおかげで Windowsでも問題なく開発できた  

2017年夏 死んだと判定

多分ドライブなんだ。ドライブがエラー出る
でも2011は やっぱRazerBladeに比べると非力だし重い
から死んだとみなし 文鎮にした

MBP2017

Windowsでゲームもサーバも開発できる
のだけど、Goでの開発が癖があった
シェル実行とプラグインWindowsでは対応しておらず、Dockerでも微妙だった
追い打ちをかけたのが、Rustで書いた3Dエンジンを EmscriptenでASM.js化したとき
Windowsだと基本的にEmscriptenを使わず直接ASM.js化するようで
Rust-Emscripten のパイプラインが Windowsだとうまく動かなかった
色々と調べれば解決できるとおもうが時間がもったいないので

結局MBP2017買いました
前評判はあまり良くなかったけど 仕事なので仕方なし

バタフライキーボード

MBP2017は悪いPCじゃない。スペック考えると あまりコスパよくはないけど
前回と目新しさもないし
でもそんなんどうでもいい 仕事なので
とにかく バタフライキーボードがひどい
押してもなかなか出ないキーもあるし 勝手にリピート繰り返すこともある
どうやら ホコリに弱いようだ

しかも 修理だすと1週間業務が止まるので 出せない

WindowsのGo

なんと GoがWindows対応し上記の問題が解決していた
また Rustの仕事もおわった
ってことで いまいま Macbookの必要性がなくなってしまった
ので 修理に出すことにした

隠居したMBP2011

知人が 使っているMBP2011のロジックボードを壊してしまったという書き込みがあった
ちょうど私の持っている MBP2011で置き換えられるはずなので 送ることにした
おそらく壊れている HDDとSSDは セキュリティもあり外し 16GBのメモリはつけて
ロジックボードも壊れている可能性もあったが それでもほしいというので 送った

幸いなことに、SSDつけかえて SMCリセットしたら順調に動いているらしい

ほんとうに 起業する前から 苦しい案件、はじめての大きな案件と一緒に経験してきたMBP
それが今 友達の元で 元気に動いているというのは とっても嬉しい
中古でも数万で買う人がいるけど そんなの全然うれしくない
だから 自分の起業と今の仕事の忙しさの象徴として 文鎮になってもらっていた
色々と仕事した会社のシールもはっていたし

しかしそれが 今友達の元で仕事してるんだ 嬉しいことだ

アドベントカレンダー

Qiitaにも投稿してたりで情報が分断されてるけど
Qiitaのアドベントカレンダー作りました
良かったら見てください

qiita.com

今はQiitaメインで情報アウトプットしているけど、はてなの方にも UPしていきます