C++幼女先輩

プログラミング成分多め

なぜ2019年にもなって非同期コネクションを使わず プロセスを無駄に浪費するスクリプト言語(Ruby、Python、PHP)のサービスが作られるのか

node.jsが出てもう10年になる
nodeがベストではないが、nodeの登場で非同期を使うべきだとわかったはずである
C10K問題に代表されるように、今は同時接続数が重要
ところが、同時接続数が少ない プロセス起動がたの PHPPythonRubyの開発が一向に減らない
それは何故か?と考えた結果になる

もちろん そのうえでオススメな開発言語も提案した

qiita.com

所有デジタルデバイスのリストラ

デジタルデバイスいっぱい持ってる
でも なるべく少なくしたいので用途まとめてみる

スマホ

Xperia Z5 Premium

そろそろ能力が厳しいが メインスマホ
買い換える予定

Zenfone

海外用のSIMフリー。安いが使える

その他

昔のXperiaとかGalaxyはもう無かったものとしよう

ゲーム機

PS4

MHWしか持ってない。しかもしばらくプレイしてない

NintendoSwitch

スプラ2しか持ってない。プレイしてない

PSVita

PSP

3DS

もうプレイするものない

音楽デバイス

iPodTouch

とりあえず小さいし持ってて問題なし

PC&タブレット

デスクトップPC

3台あるが、仕事、ゲーム、DeepLearning用など

RazerBlade(WindowsPC)

ゲーム、UNITY、3Dプログラム用
サーバもWindowsで開発出来るようになったので何でも出来る
ただ、ゲームでかなり使ってるので 1,2年で買い替えたい

iiyamaゲーミングPC

仕事で知人に貸すために使っていたが使ってない

NECタブレットPC

Kindleの大きな画面が必要なときに見る
主な使いみちは 動画視聴用
でもPCなのでプログラムも可能
かなり古い&もともと性能が安いやつでお試しで買ったのでそろそろ限界

Fujitsu

古いからもう使えない

MBP2011

知り合いにこの間プレゼントした

MBP2017

iOS開発には必須でいずれ必要になるだろう
バタフライキーボード、動作の不安定、メモリ不足
と、買い替えたい

iPodPro2018

最近買った
まだ動画視聴ぐらいしにか使ってない
本来はサブモニターだったが、DuetDisplayが遅すぎてだめだ

用途から最適解を得る

あまりたくさん持ち歩きたくない
金額は問わず、最小限の持ち物で最大のパフォーマンスを得たい

PC

ゲーム・エンタメではWindowsがどうしても必須である
Macでは3D動かない物も多い(OpenGLとか動かないし)、UNITYやUnrealWindowsを公式対応してMacは遅い
また、VR、ARツールも圧倒的にWindowsである
また サーバ開発もDockerのおかげでWindowsで何も問題がない
そして、MacBookにはAMDGPUしか乗ってない(しかも最高モデルのみ)のでCUDAが使えない
これは GPGPU、AI等が使えない
よってWindows以外の選択肢がない

MacbookiOS開発や ARKitなどApple製品と連携した開発には必要だが

スマホ&音楽デバイス

AndroidでもiOSでもどちらでもいい
iPodもやめて スマホで音楽聞くことにしよう

電子書籍&動画視聴

Kindle Whitepaperは便利なので使う
大型の本を読むためにタブレット欲しい
動画視聴には PrimeVideoでダウンロード可能な AndroidiPadがほしい

サブモニタ

HDMI入力つきの、専用サブモニタしかなさそう
タブレットPCなりAndroidで入力つけてほしい

持ち物まとめ

WindowsPC、スマホAndroidでもiPhoneでもいい)、KindleWhitepaper、サブモニタ、タブレットAndroidでもiOSでも)

PC、サブモニタ、タブレットと 3つもあるのがおかしいが、サブモニタは必要な時だけ持ち運ぼうと思う
タブレットでも 静止画を出しておく 例えばWebページを表示しておくだけなら使えなくもない

iPhoneAndroidに関しては どっちでもいい。ただ Javaで動くAndroidに比べiPhoneの方がスペックは高いというのと
AndroidならGPUデバッグが可能なので どちらが良いか難しい

iPadとAndroidTabに関しては どっちでもいいが、iPadにしようと思う
というのは 3Dプログラマたるもの 画像ファイルを扱うこともある
iPadでは各種ソフトが使える
ただ iOSはファイルのやり取りが不自由なので そのあたりを調べてから iPadを売るか考える

正月休みにnode.jsを勉強した

正月休みを利用して node.jsを勉強したのでそのまとめ

今回サンプルとして作ったのは、ソーシャルゲームを想定したAPIサーバです
node.jsは出始めの頃少し触っただけなので完全に初心者です
WindowsでもMacでも動くようDockerComposeで作ります
Express、Mongo、Redisで
認証(許可)や暗号化にはJWT
Typescriptと 非同期にasync/await にします

正月休みにどこまでできるか!

qiita.com

My studying program

I am studying node for year holidays. I further prohibited SourceTree and decided to use git on the command line.

I will introduce it because my study method is strange.

It is a job named study. I will undertake work that can earn money to maintain motivation. For example this time I undertook a server for smartphone games. In my case I will not be motivated unless I’m swamped with work.

Decide the Framework that uses a little bit of Web information. Since it is a node this time, I think based on MEAN. It seems that DB is MongoDB and mongoose is used as a driver. Express is used for node. Moreover, it is better to maintain it with Typescript. Although Webpack can expect source to be one file and speed up, it is not necessary especially in the early stage.

Then design it. Because I made it to Mongo this time It is only DB and API design.

Finally, search OSS of the corresponding language from Github, and imitate by seeing good code.

What I used for imitation this time is MEAN's product. https://github.com/linnovate/mean

A sample of Microsoft's Typescript-Node. https://github.com/Microsoft/TypeScript-Node-Starter

While looking at these two sites, it was possible to googling only for unknown points. Also when making details I will refer to other products.

Although it may not be helpful It was my study method.

私のプログラム勉強法

年末休みはnodeを勉強している あとは SourceTree禁止して gitをコマンドラインから使う縛り

私の勉強法は変わってるらしいので紹介する

勉強という名前の仕事である。 モチベーションを維持するためにお金のはいる仕事を請ける 例えば今回は ソーシャルゲームのサーバを請けた 私の場合 仕事など追い詰められなければモチベーションが出ないのだ

ほんの少しWeb情報をみて使うFWを決める 今回はnodeなので MEANをベースに考える DBはMongoDBで、ドライバとしてはmongooseが使われるらしい nodeはExpressが使われる また、Typescriptで書くほうが保守性が高く良い Webpackはソースを1ファイルにしたり高速化は期待できるが特に序盤では必要ない

次に設計をする。今回でいうとMongoにしたので DBとAPIの設計だけである

最後、Githubから該当する言語のOSSを検索し、良さそうなコードを見て真似をする

今回真似に使ったのは

なんとなく目についた MEANのプロダクト https://github.com/linnovate/mean

MicrosoftのTypescript-Nodeのサンプル https://github.com/Microsoft/TypeScript-Node-Starter

だいたいこの2個を見ながらわからないところをググっるだけで出来た また詳細を作る時は他のプロダクトを参考にする事になるだろうけど

そんなかんじで 参考にならないかもしれないけど 私の勉強法でした。

過去の難案件 Tronのリプレイスで独自OSの開発

時はTronの過渡期
世界中でTronOSが爆艇していた時
ところがTronOSは軽量かつリアルタイム性は高いものの
ファイルシステムを読んだり、色々と複雑な事を行なう事が難しく
複雑化するシステムの中で、軽量OSは限界をむかえていた

そんな時に あるシステムで日本最王手メーカーが独自OS作るのでOS開発者を募集していて
そのときに ネットゲームで知り合った友達から仕事が入った
当時趣味で簡単なOS作ってたので

qiita.com

今思うと CPUもシンプルでOSの機能もシンプルで独自OSに比べ圧倒的に楽だった

2018年の振り返りと2019年抱負的な

2018年振り返り

5月末が決算なので、会社的には半期終わりになります
今年の大きな出来事は、わがラボに1名入ったことです
10年ほどソフトウェア会社でCSやデータ入力してたそうで、インフラエンジニアになりたい
そう申して 会社をやめラボに入ってきました
もうすぐ1年になります
Goの仕事を一緒に行い、仮想通貨の仕事行い、nodeを一緒に勉強し、1月から一旦PHPの開発をする
私は人に教えるの上手くはないのだけど 真面目で勉強熱心なので 頑張ってくれるでしょう

1月は去年から引き続きの 超大型スマホゲームタイトルのサーバインフラを開発しつつ、メンバーもスマホゲームの運用開発
3月からはGoで仮想通貨取引所の開発を行い
9月頃からは 3Dダンスゲームのパフォーマンスチューニングと、Switch用新規ゲームの開発を始め今に至る
年末にようやく1年掛けて探してた事務所でとてもいい物件が出た

自社案件をスタート
1つはVTuber的な案件。幼女向けのレンダリングアバター、ダンス 等の開発
もう1つは そろそろ古くなったので ソーシャルサーバの作り直し
その他ちょっと手は出してるけど出しすぎだね

1つの物件は 路面に面した事務所物件で 大きなガラス戸で物販可能なとてもいい事務所
場所もいいしキレイで、勉強会に使ったり人を呼んだりしても格がつく物件

もう1つは 住宅件事務所で、勉強会とかには向かないが、住居物件なのでまったりと仕事したり遊べて
台所も普通にあるので 料理もちゃんと作れるし この物件でもいいかなーと

2019年

今行ってる2案件
Switchの新規ゲーム開発はちゃんと責任持って完成させる
もう1つのスマホゲーム案件は 何人か人を入れれる体制をつくり 複数人で案件に関わりたい
育てている新人もそろそろ1年なので、ちゃんと仕事出来るようにさせる
事務所を決め、5末の決算のあたりで 派遣免許をとり 会社を大きくする事を考える

また7年越しのスタートアップ案件がスタートするようなのでそちらの開発が始まったら そちらにも力を入れる

とりあえず来年やりたいことは
・請けた案件はとにかく全力
・事務所作り開発みんなでブースト
・派遣免許を取り人を増やし派遣も可能にする
VTuber自社プロダクツを作り売上をあげる!
・中国語を勉強し 台湾のママさんと会話する