noir_neo’s blog

日記と偶にスマホゲームの感想と、重箱の隅をつつくようなUI/UX批評

Dvorak 3日目

進捗

  • 初めて Dvorak で仕事した
    • 人が少なくて Slack のやりとりは少なかったので、始めるのにちょうど良いタイミングだった(想定通り)
  • 中段はタッチタイピングできるようになってきた
    • タイプしていて気持ちいい瞬間も現れてきた
  • 苦手なキーがわかってきた
    • なぜか迷う: k
    • 押しにくい: q, j, w, v, z
    • 右手なの?左手なの?: x

→ローマ字向け拡張を検討する

困っていること

QWERTY の呪い

  • iTerm だけでなく、エディタとかそれ系全般が QWERTY ⌘ 効かないことがわかった
    • とりあえず強引にキーマップをずらして対応
  • 会社の iMac だと、パスワード入力が QWERTY
    • 家の MBP は一緒に変わった
    • 外部キーボードだと挙動が変わる?
  • VNC で作業するとき QWERTY
  • 指が QWERTY と混ざるようになってきた

→上のレイヤーで配列変えられないか要調査 (ラップトップで作業したい時も多いので、ハードウェアで解決はなし)

その他

  • shell 操作が手癖で打てない(ローマ字入力の遅さよりフラストレーション強い)

→ .zshrc .vimrc .tigrc .tmux.conf いじる

  • 力が抜けていないためか、肩とか腕とか薬指が痛い
広告を非表示にする

Dvorak 1日目

はじめに

GW なので、 Dvorak に挑戦してみることにしました。

きっかけは会社の人絡みです。

qwerty とは十数年来の腐れ縁ですが、この先、脳をコンピュータに直結して仕事ができるようにまでの間、できることなら手指への負担をやわらげたいものだと思い、 またゲームのキーアサインを変えるようなものだと思えば、しばらく頑張ればそれなりのリターンはあるはず…という考えからです。

環境構築

mac の話です。 私は普通の「日本語」を使っているので、 システム環境設定 > キーボード > 入力ソース > 日本語 > 英字のレイアウト: から、 「Dvorak - QWERTY ⌘」(コマンドキーを押している間は qwerty 配列になるやつ= ショートカットは今まで通り)を選択。 f:id:noir_neo:20170430001139p:plain

以上!簡単!

ちなみに、最終的には Programmer Dvorak まで行きたいなーとは思ったのですが、まずは基本からにしました。

iOS の話は、疲れたのでまた今度書きます。まあアプリ入れるだけです。

配置表の表示

ターミナルの背景画像とか、スクリーンショットを前面にフロートさせるアプリなど試行錯誤しましたが、 キーボードビューアという素晴らしい存在に気づき、画面右下に常駐させることにしました。 f:id:noir_neo:20170430001232p:plain

練習メニュー

今日は Twitter をしていただけですが、なんとなく雰囲気はつかめてきました。

いい感じだなって思い始めていること

ホームポジションが(比較的)守られている

(単に配列を変えた直後だからかとは思いますが…) 私はもともと運指がめちゃくちゃなのですが、 今めっちゃ全ての指でタイピングできてます。 このまま矯正できるように頑張りたいところです。

母音が左手中段に揃っている

ローマ字は基本的に、右手→左手の順でタイプできるので、リズム感は心地いい気がします。 ただ、 o がどういうわけか、まだどうしても苦手です。 あと「か行」が辛いです。

困ったこと

パスワードが入力できない

PCのロックをいかに手癖で解除しているかということがわかりました。 ロック画面だと、前述のキーボードビューアが表示されないので、大変です。

腕が疲れる

慣れないタイピングのせいか、ホームポジションが守られているためか、左腕が特にしんどいです。 真ん中で割れているキーボードの良さそうみがわかりました。

まとめ

ほぼタイピング練習のための記事なのでまとめることもありませんが… 他のこともしながらですが、3時間くらいかかって書きましたが、初日としては(だから?)かなりいい感じに楽しんでタイピングできてます。 GW明け、無事移行できているのか、投げ捨てているのか、お楽しみに(?)

広告を非表示にする

cocos2d-x の NO_BORDER で天地中央

諸事情により cocos2d-x に手を出して、ここ2、3日で C++ をほぼ初めて書き始めている。

C++ 難しい話はともかく、 cocos の座標系がやばいので覚書。

端末ごとの画面サイズ(というよりもアスペクト比)の差異を吸収する方法のひとつに ResolutionPolicy::NO_BORDER というのが用意されている。比率は保持して縦横どちらかにはみ出すやつ(cssbackground-size でいうところの cover 的な?)

この状態で画面の中央に配置するのにちょっとハマった。

Size size = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();

// layer->setPosition(size/2);
// では期待した挙動をしない(上下にはみ出す画面サイズの端末だと、下寄りになる)

Vec2 center = Vec2(size.width/2+origin.x, size.height/2+origin.y);

layer->setPosition(Vec2(center.x-layerSize/2,
                        center.y-layerSize/2))

早速ブレークポイントを使った。

Visible という名前からもう少し察したかったと言えば、それもそう。

この問題に関連したりしなかったりして ignoreAnchorPointForPosition とかいうのもあるけど、これはもっとややこしくてまだ完全に理解できていない… いっそ生 OpenGL のほうが座標系はそこそこ理解しているつもりなので書きやすそうである(感想)

これ系のネタでまた書くかも。

趣味プロジェクトにおけるコミュニケーション

この記事は コミュニケーション Advent Calendar 2015 の21日目の記事です。

はじめに

こんにちは、 noir_neo です。大学に行ったり行かなかったりしつつ、週3くらいで内定先で早期出社アルバイトのエンジニアとしてスマートフォンゲーム開発したり、あとは趣味でゲーム作ったりしています。

この記事では、仕事ではない趣味のプロジェクトにおけるコミュニケーションに関しての気づきや工夫していること、やってみたいけどまだできていないことや、仕事でのそれと比較して思ったこと…などを書きます。

いま取り組んでいる趣味プロジェクトのこと

私は TEAM THE SUGOI NINJA (以下、スゴニン)という趣味プロジェクトで THE SUGOI NINJA 3 というゲームを作っています。役割としてはゲームデザイナー兼プログラマーで、実質チームのマネージャーでもあります。

メンバーは私含め4人で、全員同じ大学の仲間で、学校に通いながらあるいは仕事をしながらプロジェクトを進めています。立ち上げは2015年6月ですが、もともと2013年の3月にローンチした THE SUGOI NINJA というゲームの次回作にあたり、メンバーもそのままです。(空白期間はただの酒飲み仲間でした…)

ちなみに、私も当然、過去にはこれ以外にいくつかの趣味プロジェクトを立ち上げては失敗しています…

定期的に顔を合わせて ? を飲み ? を食う

スゴニンでは、もはや全員が学校にいるわけではないので、顔を合わせる機会は作らないとないです。(学校に来ているハズの人とも、互いにサボりまくってるので会わないです…)

普段のチームのコミュニケーションには Slack を使っています。ソースコード管理は GitHub で、ファイルの共有も Dropbox を使っていますし、基本会わなくても開発自体はじんわり進むハズではあります。

ですが、定期的に顔を合わせるべき理由があります。それは、実際に会わないと、「テンション」がわからないということです。仲間のテンションがわからないと、その次の期間どうも仕事がふりにくかったり、純粋に「元気かなぁ?」と心配になるものです。

横とか後ろを向けば同僚も上長もいる仕事とは違うのが、趣味プロジェクトです。実際ちゃんと定期的に集まるのは、場所とか各自の都合とかで難しいかもしれませんが、とにかく習慣化することが重要です。 実は私も「今週は集まってもしゃあないしなぁ…」と思ったのを言ったら「でもちゃんと集まるのが大事なんじゃ?」(詳しいニュアンスは忘れました)とメンバーに言われて、やっぱり集めたことがありました。 そういう意味では、飯や酒もセットだといいのかもしれないです。

それから、給料で働いているわけではない(仕事も別に給料だけで働いているわけではないですが…)ので、全員でより楽しくやっていかないと頓挫します。 だから、相手のテンションを伺う…というと少し語弊がありますが、互いに元気か、 SNS やチャットツール上での「元気?」ではなく、確かめ合うのが大事だと思っています。

あとは酔っ払った勢いで出てきて盛り上がったアイデアを実装まで持っていく、みたいなふざけたことをできるのも趣味プロジェクトならではだと思うので、そういうの大事です。

ワークフローを見直し、コミュニケーションの発生段階をそもそも変える

先にも少しソースコード・ファイル管理について触れましたが、スゴニンでは現在ワークフローの改善を試したいと思っていて、少しずつ進めています。具体的には、デザイン・アートサイドのメンバーも Unity を触れて、 PR を出せて、ついでに挙動レビューもできるようにする。そして、各自の仕事と責任の範囲を Unity に持っていくところまでとしよう、というものです。

なぜそうしたいのかと言うと、「モデルファイル貰ったけど Unity に読み込んだらおかしい!」みたいなことで手戻りがたくさん発生して(しかも忙しい時に!)、 Skype の空気がやばくなったことがあった…というものが大きいです。純粋に手戻りを減らしたいということと不可分ですが、趣味プロジェクトにおいては、たぶん、より大事にすべきは工期よりもチームの空気です。どちらかといえば。(工期と空中分解率は指数関数的になりそうではありますが…)

ただしこれは職場のワークフローに影響を受けたもので、趣味プロジェクトに限らない話だと思います。が、やはり、毎日8時間、数メートル圏内に居合わせることができないからこそ、各自の仕事の範囲を見直してみることが大事かなぁと思うのです。

結構荒技ですし、当然新しいことを覚えてもらったり教えたりと、その分の学習コストはもちろん、コミュニケーションコストもはじめのうちは増えるわけなので、その辺りはトレードオフですね。

仕事ではないからこそ、適切に見積もる

趣味プロジェクトにおいても、「今誰が何をやっているのか」を見える化することは、仕事と同様に重要なことだと思っています。

スゴニンでは、タスク管理を Trello を用いてカンバン方式で行っています。なるべくユーザーストーリーでカードを作り、終了条件も明確にする、ということが「その仕事やって欲しかったのと違うんだけど?」みたいなコミュニケーションの齟齬を減らすために頑張っていることですが、なかなか難しいです。でもこの辺も仕事も一緒ですね。

ところで、見積もりは趣味プロジェクトにおける大きな課題のひとつと捉えています。仕事を振る時に「これ何時間くらいかかる?」と聞いても、ほとんど意味がないわけです。その人が直近で作業できる時間が毎日1時間なのか、あるいは3時間なのかによって終わるのか終わらないのか変わりますし、そもそもその3時間は確実に取れる時間とは限らないのです。「寝てた」や「デートしてた」を許さないわけにはいかないのが、趣味プロジェクトなのですから。そういうわけで、そんな会話を延々していたら、全く見積もりは進まないですよね。そして工期と空中分解(以下略)。

さて、アジャイル開発には、「ストーリーポイント」という考え方があります。日にちや時間ではなく、作業量や複雑さ、リスクなどをまとめて、他のストーリーと相対的に見積もるというものです。

スゴニンでは最近導入してみていて、見積もりに関するコミュニケーションは改善されたように感じます。さらに次の作業のことをよく想像する必要があるので、事前に(会えている時に)具体的な相談をすることが増えたり、終了条件をより明確につけることができるようになった…ような気もします。(Trello にはポイントを入力する機能はないので Description の冒頭に書くようにしています)

一方で、ポイントのつけ方には、まだ工夫が必要そうだなと感じています。例えば、テンションの上がる作業か否かを加味しているのはどうなのとか、プロジェクト以外のことの忙しさや精神のゆとり具合を他のメンバーと比較する指標が欲しいけどそれはポイントに入れていいのだろうかとか、そういう具合です。この辺りはスゴニンでも今後考えていきたい課題です。

ちなみに、スゴニンはポイントを導入してもバーンダウンなどはそれこそあまり意味がないと思ってやっていません。イテレーションの合計だけ出して少なさに笑って、乾杯して次のイテレーションは頑張ろうなって言い合います。

まとめ

趣味プロジェクトは基本的にお金で動いているわけではないし、空中分解しやすいけれど、そもそも好きで集まっているはずのメンバーなのだから、コミュニケーションの都合で不幸せになることがあればそれはとても残念です。でも逆に言えばコミュニケーションの工夫でうまく回していくことも可能だと思います。

他の方のこのアドベントカレンダーの記事を読んで、自分もこれを書いてみて思ったのは、趣味プロジェクトだからといって特別なことはそれほど多くはなくて、コミュニケーションに関して抱える問題はほとんど普遍的なんだなぁということです。

ですから、たとえ友人同士のプロジェクトであっても、やりたいことが一致して偶然集まったプロジェクトでも、(気恥ずかしかったり、必要ないだろうと思っても)「コミュニケーション」についてきちんと考えて工夫して、そしてコミュニケーションすることが、プロジェクトのゴールにつながるんだ!ということが、気づきであり、結論になります。

卒業したい

この記事は MD Advent Calendar 2015 1日目の記事です! もう12月です。

はじめに宣伝の類

勉強会

#MD勉強会 — #MD勉強会 12月の予定

5日と12日の #MD勉強会 は連続企画で3D関係です。
5日にモデリングした飛行機を12日は Unity で飛ばそうっていう感じです。そのうち詳細掲載されると思います。

12日は私が講師役を務めますので、皆さん是非遊びに来てください。
2週どちらかだけの参加も歓迎ですが、事前にソフトウェアのインストール(5日は Maya ,12日は Unity)だけはして来ていただくようお願いします!

忘年会

MD忘年会〜今年のねおさん今年のうちに : ATND

26日は忘年会です。

MDとは名を借りただけの、ただのねおりんクラスタ忘年会なので、知り合いの知り合いの知り合いくらいまでなら誰でも参加歓迎です。
お気軽に参加登録しておいてください!

Advent Calendar

MD Advent Calendar 2015

アドベントカレンダー、今年は後半がまだ空いてるので早めに誰か埋めちゃってください。

何書いてもいいよ!

その他

25日は会社の忘年会ですが、24日は空いてるので女性各位はぜひご検討ください。
また年末年始もエクストリーム帰省チャレンジはしないことにしたので、空いています。何卒よろしくお願いいたします。

卒業きつい

(単位も卒制の進捗も)ないです。

この唐突に本題に入る感じ。

卒業したい

(童貞では)ないです。

大卒の肩書きは別にいらないけど、卒業した方が後々色々と楽そうなのでとりあえず卒業だけさせてくんねえかなーという感じが最近している。

あと会社のジンジ=サンとジョウチョウ=サンに迷惑かけたくないしなぁ。

とはいえ仕事してる方がよっぽど楽しいので、モチベーションは最悪。

今月中頃は各先生方にお詫び行脚ですよ、もう。

卒制が辛い話(卒研審査まであと19日)

は、もう今更してもしょうがないでしょ。

万が一、留年するなんてことがあったら、単位は半年で取れるかもしれないけど、卒研は問答無用で1年間だし優先度高めっぽい。とか変なこと考えたりしている。

まあ、いずれにせよ、留年するくらいなら…という気持ちなのでアレ。

もう1年早ければなぁ……などと今更なことを思う。

卒業証書をもらうことだけが卒業じゃないよなぁ

と、ふと思った。

卒業したのに卒業できてない人、ってたまにいますよね。(disじゃないです)

なんか毎度、良い意味でも悪い意味でも影響を残していきがちなので、大学は早めにきれいに清算して去りたい。

とはいえ高校の時みたいに学校大好き〜って感じでないので大丈夫そう。

勉強会とか学祭の展示とかも、もはやぼくがやってた時よりうまく回してくれているし、そういう心配もない。(いい後輩たちを持った。し、)自らへの属人性を薄めることをいくらかは意識して生きてこれたと思う。

ただ、忘年会のタイトルにぼくの名前が入ってるのはどうかと思う。まあ、忘年会は本当に専攻の飲みというよりも周辺の人飲みなので、どうでもいいけど。

あとは最近 学食bot を後輩がやりたいって言うんで話進めつつある。別に大学のサイトが変わらなければ勝手に動き続けるからいいんだけど、そういう話は純粋に嬉しいので、ミームは遺していきたい。が、あんまりゴリゴリマネジメントとかし始めるとまた属人性が高まるので適当に投げて見守るつもり、ではいる……。

ただ、これに限らず、勉強会の講師役もそうだし、個人的にもだし、教えられることはできる限り教えていきたいと思っています。ひとりで学ぶのは厳しいもんね。(前回の記事とは言ってることが少し違う)

ひとつだけ卒業したくないこと

大学4年間で始めたこと、取り組んできたもので、唯一卒業できないのは スゴニン ですね。

? の芽は出なかったけど、絶対に強くなって、5年以内には「オレの作った最強のチームで最高のモノづくりをする」のが、今の中長期的な目標です。

短期的には3をリリースすることですね。楽しみにしててください。
近いうちにα版リリースのマイルストーンを公開できると思います。(卒研から解放された後、かな…)

まとめ

唐突に始まり唐突なエモで終わったけど、最近の雑感でした。

本当は卒制で得たラズパイノウハウとかまとめた有益記事にしたかった。
知ってたけど、無理だった。

あとブログ最近は Tumblrゲーム日報 あげています。
最近あんまり新しいゲームに手出して重箱の隅レビューする元気ない。

さて MD Advent Calendar 2015 明日、2日はセミちゃんの『話を聞いたら話したくなった話』です。
なんの話をしてくれるんですかね!

広告を非表示にする

美大生のプログラミングの学び方

タイトルは釣りです。ごめんなさい。

ぼくはプログラミング誰に教わったわけでもないので、教わるものじゃないと思っています。 というか、人に教わるということを知らない、というだけですが。

本気で作りたいもんあったらとりあえずググったり、やりたいことに近いサンプルが載ってる本買って写経してみたり、そういうことするもんだと思うんですよね。 ただこれはぼくが小さい頃から独学向きだったこともあるとは思います。「生徒が質問に来ない」と嘆く先生を理解できなかった記憶があったりもします。

でも、プログラム難しいです。書けるようになるのすげえ大変です。 動かないコード、よくわからないコンパイルエラーを前に、一晩中ひたすらググってエントリ読んだり、stackoverflow読んだり、めちゃくちゃ辛いです。 たまにTwitterで質問に答えてくれる人がいるとめちゃくちゃ嬉しかったのを覚えてます。

だから、ぼくも師匠みたいな人が欲しかったと思うこともあります。 もしいたら、810倍は成長速度早かったし114514倍辛くなかっただろうなと思います。

(本筋に関係ないけど、職場にはそういう「エンジニアとしての自分を成長させてくれる先輩エンジニア」を期待しているところはある。が、そういう学び方をしてきたせいで質問の仕方とか下手なのが今の課題……)

まあ、別に誰かの師匠になりたいわけでもなければ、なれる気もしないのですが、ないので、相談に来られても結構困るんです。

そもそも学校としては、動作するものを作れる人(プログラマー、あるいはエンジニア)を育てるところではないので、やる意味あるのかなーとか、思います。 とは言いつつ、ぼくもコード書けるデザイナーになりたいと思っていたら、気付いた時にはエンジニアになっていた身なので、動くもの作りたいという気持ちはとてもよくわかります。だから、本気で自分のアイデアを自分で形にしたいと思っているなら、がんばって欲しい。が、[本エントリ冒頭に戻る]。

あと実際プログラム人によって向き不向きがあることは間違いないので、そういう問題もあったりします。 でも独力でそれを乗り越える覚悟もないなら、ぜひ伸びる能力を伸ばして、素晴らしいデザインを作って、あとはエンジニアに流していただきたいと思うんですが、いかがでしょうか。

まとめると、一晩はググってから相談に来い、ということです。以下は推奨例です。

  • こういうもの作りたいんだけど、まったくサンプルが見つからないので最小限のコード書いてみせてくれないか
  • この記事読んでやってたんだけど、環境構築で詰んだ
  • がんばって書いてみてるけど動かないのでコード見て欲しい(贅沢は言わないが、できれば Git で管理して GitHub とかにあげておいて)
  • そもそもググりワードがわからないのでヒントくれ
  • (5万払うから作って)

「いたら君ら呼んでないわw」

0x16 歳の誕生日も恋人はいなかったけど、たくさん Twitter とか Facebook とか LINE とかで祝ってもらったし、土日それぞれでおいしいケーキ買ってきてくれて一緒に飯食ってうまい酒飲んで祝ってくれる友人に恵まれて本当によかったなと思います。みんなありがとう。

http://blog.sugoi-ninja.com/post/130397531492/こんにちは-noirneo-です誕生日を祝ってもらいました

早期出社アルバイトのお賃金貰い始めたことだし、しばらく使ってた財布のポケットが増えてきたので、自分への誕生日プレゼント(笑)に買い換えようと思ってたけど、結局お店に探しに行ってない。恋人作る気の有無に関わらず、まずはちょっといい財布手に入れたい。