Tomorrow's Chance

社会人なりたてのエンジニア奮闘記

Pythonに触れてみる

Pythonは日本ではそこまで需要ないけれど世界的にはRuby以上に主流と聞きます。

統計にも使われているんですね。

 

試しにubuntuのサーバーに入れてレガシーにFizzBuzzを書いてみました。

整数を渡すと1から渡された数までの間で

  • 3で割り切れる場合はfizz
  • 5で割り切れる場合はbuzz
  • 両方該当する場合はfizzbuzz
  • いづれも該当しない場合は数値

を表示するだけです。

10分ぐらいで適当に書いたので大して考えてません。

 

def fizzbuzz(n=5):
        if not isinstance(n, int):
                raise InvalidArgumentError
        for i in xrange(1,1+n):
                s = ''
                if i % 3 ==0:
                        s = s + 'fizz'
                if i % 5 ==0:
                        s = s + 'buzz'
                if s == '':
                        print i
                else:
                        print s
fizzbuzz(15)

 

rubyも書いてるとdefにはついendって書きたくなる。

MySQLWorkbenchの拡張

今日から仕事初めですね。

 

 MysqlWorkbenchを使っている方が最新版にアップデートしたらうまく動かなくなって、原因はpythonの設定スクリプトにあったという話を聞いて興味本位で検索したら、どうやらPythonLuaスクリプトを書くことで独自機能を実装できるようです。

 

参考リンク

MySQL WorkbenchでPython - 偏った言語信者の垂れ流し

Pythonで作られた便利なコマンドラインツール MySQL Utilities | Think IT(シンクイット)

 

 後で時間を作って試してみよう。python書いたことないですが。。。

今年も続けて行きたいこと

年初から風邪っぴきと幸先良くないスタートをきっていますが、

初詣は.先日ライブに一緒にいった仲間と神田明神にいきました。

おみくじは 末吉 ・・・なんとも微妙な感じ。

 

帰ってきてからは薬飲んで布団の中でおとなしくしてました。

白猫プロジェクトでひたすらルーン集めたりなどしながら、

今年もやり続けていきたいことはなんだろうなと考えてました。

 

過度な期待せずにとりあえず行ってみること

  年末のエントリにも少し書きましたが、主に声優のライブイベントによく行っています。その他にも、声優に限らず少しでも興味が引かれる題材であればトークイベントにいったり(genron友の会の会員だったりします。)、母校に顔出したり、昨年は米光一成さんの「思考ツールとしてのタロット」講座に出てみたり、大学のころの先輩の勧めで「コンテンツ文化史学会」に行ってみたりしてました。


思考ツールとしてのタロット:師匠との対話編 | こどものもうそうblog

 

 地方から大学進学に伴い上京した口までは学校以外はオンラインゲームに没頭するようなタイプでした。しかし、オンラインゲームを通して知り合って随分学生時代に可愛がって頂いた方とのご縁などもあって「とりあえず行ってみていろいろ経験しよう」という積極的な姿勢を学生時代に築けたことは今でも財産になっています。アイディアの源泉や思わぬ出会いはどこにあるかわからないものですから、動ける限りはなるべく動いていくことは今年も継続していきたいです。

思考の柔軟性は仕事の上で重要

 プログラミングの作業自体は傍から見ればキーボードで打ち込んでるだけですので非常に地味な作業ですし、よく言われる「要求どおりに作ればOK」という感じはまさしく「作業」感があふれます。

 しかし、ゲーム作りはそうではないなと実感することが多いです。作ってみてからブラッシュアップさせていく過程で仕様の変更はあって当たり前(ないとヤバイ)ですし、最初に伺った要件と随分違うものがでてくることもよくあります。自分の過去の経験から言えば、形にした後に磨きかける過程で大なり小なり変更を繰り返し「化ける」プロジェクトは当たる確率が高まると思います。そうした変化に乗る、変化を与えるように貢献するためには日頃経験してないことを知ってみて「まだまだ未熟だなあ」ということを実感し続け、素直に刺激を取り入れる姿勢を持ち続けたいものです。

 

 フットワークの軽さは維持!

「大人の事情」に振り回され、「自分の限界」を勝手に悟りそうになった年

今週のお題「2014年のお別れ」〈2014年をふりかえる 3〉

 

大晦日ですので真面目に今年の総括。

熱が出てる状態で書いているので一部日本語的に怪しいかもしれないですがご容赦を。

技術的な領域の開拓を仕事を通して行えた上半期

 月日は早いもので社会人にとって最初の転職を考える時期と言われる「勤続3年」の節目まで残すところ3ヶ月となりました。

 勤続2年目のこの一年。忙しい割りに技術的にも自分の能力を開拓できることもあって成果もはっきり数字で現れた上半期はとても充実していました。昨年末はRuby(というよりRuby On Rails)の勉強に勤しんでいたわけですが、年明けから実際に職場で上司のレビューを受けながら書いてきました。

 Rubyを使った案件は、既存のコンテンツを別のプラットフォームで展開するものでした。ただ単に移すのではなく、仕様もプラットフォームの特性に合わせた形に変わっていたため、それにあわせてプログラム/スクリプトの修正が求められるものでした。

 つまり、一からコーディングしたわけではないので高い熟練度が求められるものではありませんでしたが、それまで仕事の上ではPHP一筋だったので他言語で仕事ができるというだけでモチベーションが高まっていました。

 この案件はRubyだけでなく、フロントサイドの技術も少しだけ身につけるきっかけともなりました。

 サーバーサイドのプログラムの修正が一通り終わったところで、次はページコーディング/修正となるわけですが、ページデザインもそこまで凝った感じではなかったのでコーダーに仮組みしていただいたものを、変数部や動的な制御を埋め込みつつデザインの修正も自分のチームで巻き取るという異例の体制で進行しました。

 その結果、HTML5/CSS3/JavaScriptJQuery)もコーダーの助言を得ながら基本的なところを習得できました。簡単なUIの実装や、Styleを用いたHTMLコーディングのやり方をしっかりと触れたのは初めてでした。(10年前のTableタグを多様するようなデザインが許されていた時代にはHTML書いていたのですが)

 この案件は結果的に納期を3ヶ月近く前倒してリリースまで漕ぎつけられたのですが、今振り返ると戸惑いながらも充実した日々を送っていました。特に昔と違ってプログラムというよりはデザイナー向けに言語仕様が変わったHTML関連の技術の習得は、marginやpadding、positionの調整などで普段使うことのない絵的なレイヤー構造を意識する思考を要求されるところや、GoogleChromeのDevelopperツールは本当に便利であることを知るなど違った世界が開けたと思います。

 Rubyはこの後も、単純作業の自動化など簡単なスクリプトを書くときに大いに活用させてもらっています。また、フロントサイドのHTMLに関する知識は、Ajaxを用いた簡単なUIの実装やアドベンチャーパートの演出の調査など、今まではやってみても手ごたえのなかったところが基礎的な知識があることで進めることができて短期間の案件ながら得られたものは大きかったなあと実感しています。

「大人の事情」が優先された下半期

 何があったかもちろん詳しくは書きませんが、各部門とも慢性的なリソース不足に陥り始めたこともあり平社員の手ではどうしようもない事情で作業日程を順延しなければならない状態が多く発生していました。その割にそのツケを払うではないですが、納期は変わらないため詰まった状態で一気に案件が振ってくるようなことが多くなり振り回されてる感が増す一方、品質をチェックする体制もままならないのでリリースしたはいいものの。。という感じが続くという状況に。どこのプロジェクトも似たような話を聞いていたので人手不足の恐ろしさを実感しました。

 こんな状況のなか、とある案件のプロジェクトマネージャーに正式にアサインされるということがありました。ちょうど東京ゲームショーのあとなので9月ですね。それまでは一エンジニア(開発スタッフ)として上司との間で密なコミュニケーションを図れば充分でしたが、ここからは企画側デザイン側、時には役員ともコミュニケーションをとる必要がでてきました。

 これまでも漠然と感じていましたが「職種が違えば言葉(表現)も変わる。」といったところで、こちらの意図することが伝わらない/先方の意図するところが汲み取れないことが多くありました。上司がPMのサポート役としてアサインされているので、暗礁に乗り上げようとするところを何度も救っていただいてます。改めて自分の知識と経験が浅いことを身をもって実感しています。

 リソースが足りていない状況はこの案件でも影響がありプロマネとして何らかの解決策を提案しようと思うものの見つかりません。むしろ周りの状況を見ながら舵取りをすることで精一杯という感じになりました。開発部隊の開発作業はなんとかスケジュール通りの進行で年内を終えることができましたが、先のことを考えると不安でいっぱいです。

 下半期は掛け持ちしていた案件でAWSを初めて採用するのと、バージョン管理をSubversionからGitに移行するといったことはありましたが、自分の作業において技術的な挑戦を特にすることがなかっただけでなく、このような形で自分の立場的にも能力的にもどうしようもならない事情に振り回されていたのでモチベーションは日に日に落ちる日々でした。

上半期と下半期でモチベーションの差が激しかった年

 以下、年末年始を使って猛省している点。

 ざっと振り返っても上半期と下半期でやってきたことの差に愕然としています。環境が大きく変わった要因は、事業方針の転換と退職者が続出したことによってどこもかしこも「人がいない/足らない」状態に陥ったことが大きいです。

 ただ、自分は経営者ではないですから関係ないですね。プロマネとしてもひとまず開発部隊の作業進捗に遅れがでなければ責任は全うされているはずです。しかし、受託開発を行っているわけではないですからサービスインまで漕ぎ着けて初めて成果物となるわけでどうしようもないと頭で理解しながらも気持ちは落ちる一方でした。

 暗雲立ち込めた状況のなか、幸いなことに職場を去った後でも飲みに誘っていただき素直に状況を打ち明けられる先輩もいたので、ある程度吐き出すことはできました。きっといなかったら捉えようのない不安に押しつぶされていた気がします。

 来年は早々に新たな道を模索して今の状況から早く脱することを決めました。

 「自分のちからではどうしようもない」職場の状況を、勝手に「自分の能力的な限界」と読み替えていつしか新たな道を探ることを極端に恐れるまで性根が腐っていましたが年末年始を通じてブログの再開なども通して再び貪欲になれるよう気持ちを入れ替えます。

 

 こういった振り返る日記は自分に戒めを告げる書き方になってしまいますね。

 それでは皆様、良いお年を。

 2015年は飛躍のきっかけの年としたいです。

Unityチュートリアル

年末年始だというのに風邪をひいてしまいましたorz

37℃近い熱です。無理せず布団に潜ってます。

 

頭を働かせながらのコーディングは厳しいですが、Unity公式にかなり詳細かつ丁寧に解説されているシューティングゲーム作りを通したチュートリアルを見つけたので休み休み手を動かしてみました。

 

スプライト / スプライトアニメーションの作成

 

職場ではMysqlWorkbenchを使っている人が多いですが、自分は上司の影響もあってGUIをいちいち使うぐらいならCUIで直接打ったほうが早いと思い直接コマンド打ち込んでやってます。(Linuxの仮想環境もUbuntuServerです。)

そんな人間からすると日本語入力のサポートも微妙なMonoDevelopは重たいわけですが、コード補完は便利なのでせめてスクリプトだけでもEclipseでかけるように環境を整えたいなと思いました。

ZendFrameworkを使ってみる。

使ったことがなかったので触れてみています。

最初にアサインされたカードゲームのプロジェクトで扱ったCake風味の独自フレームワークに似ていて、懐かしい気持ちでコード書いてます。

 


Zend Frameworkのチュートリアルを日本語に翻訳してみました - スタジオ・アルカナ技術ブログ

 

今日はこれから、みるきぃほーむずのライブ参戦です。

明日は昼過ぎごろに恐らく有明にいます。