ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

SIは楽しいよ!(状況による)

2016-04-15 02:12:27 | プログラミング

今週バズった話題:富士通を退職した話「SIer が天職です」って人はどこにいるの?に関連してあるツイートを見かけたので、Asakusa Frameworkを使っている身としては反応せねばなるまいっ。
「AsakusaFWを使うSIは楽しいよ!」w(ステマ)


まぁ冗談は置くとして、自分が今勤めている会社はAsakusaFWを扱っている会社であってSIerではありませんが、自分がやっている仕事はお客さんのシステムのバッチをAsakusaFWで作ることなので、SIと言えると思います。

つい先日Asakusa on M3BPが出たので、今はその検証をやっています。バッチの種類によるけれども、実行時間がAsakusa on Sparkより2~10倍(平均3~4倍)くらい速くなったので、とても楽しいですw
AsakusaFWはアプリケーションのソースを変更せずにHadoopSpark・M3BP用の実行バイナリーを作れる点が素晴らしい。(データサイズに応じて実行環境を変えるという運用が簡単に出来る)
(ちなみに、書いたアプリケーションがソート順に依存していたり、想定外データ(マスターなのに同一キーで複数レコードあったりorz)があったりすると実行環境によって違いが出てきます。自分が作った部分からバグを発見するとへこみますねorz 他人のバグを見つけるのは楽しいんですが(爆))

ただ、こういうことが出来るのは、仕事内容(お客さん)次第だろうとは思います。


自分は、今の会社に転職する前は、典型的なSIerに勤めていました。 
SIerにも当然すごい人は居るんですが、あまり表に出てこないと思います。

例えば、自分がJavaを教わったと思っている人が3人いますが(その人達は、Struts1が出るか出ないかの頃にウェブフレームワークを作っていた)、たぶんTwitterとかはやっていないと思います。ある人は、自宅にPCを持っていないと言っていました。会社でさんざん触ってるから、家では触りたくないって^^;
あと、管理職でも尊敬できる人がいました。自分はリーダーとか向いてないので、ああいう人はすごいなぁと思います。でも堅い会社で堅い立場だと、自由に情報を発信したりはしないでしょうね。

そういう訳で、SIerが天職だという人がいても、外からそういう人を知る機会はあまり無さそうな気がします。

ちなみに自分はホームページとか書いていて今の会社の人の目に留まったので、転職したいなら、やはり人に存在を知ってもらえるようなことをした方が良いと思います。(自分のホームページは、転職目的で始めた訳ではないですが^^;)


SIer自体は、システムを作るのが本業ではない会社(プログラムを書けない人)の代わりにシステムを作る(プログラムを書く)仕事なので、その存在自体は至極自然のものだと思います。

が、日本では立場が強い方(お金を払う方)が立場の弱い方に無理難題を言う傾向があり、それがSIerの仕事をつらいものにしている気がします。まぁ、SIerに限った話ではないと思いますが…。

だから、発注者・受注者の関係であっても、お互いに尊重しあって仕事が出来るなら、楽しく(というか不必要に嫌な思いをせずに)仕事が出来ると思います。信頼関係大事。

ちなみに、SIer時代はNTTデータさんとよく仕事をさせていただきました。
NTTデータの人はやはり基本的にプログラムを書かない(あまり書かせてもらえない模様)ですが、顧客との折衝・仕様確定やスケジュール管理・受け入れ試験等はきちんとやっていた印象があります。(その為の資料作りは大変でしたけどね^^;)
一方、○○通は友人が(SI部門ではないけど)就職したので話を聞いたこともありますが(以下略)。社名は誰でも知っている大企業なだけに、新卒の人からすると魅力的に見えるんでしょうねぇ。
(個人的に、富士通は昔からあまり好きではないんですよねー。X68000のライバル、FM-TOWNS!w) 


蛇足ながら、今自分が勤めている会社は、PCは好きなOSでよい、ディスプレイも大きいのが2~3台、ノートPCも貸与、背広じゃなくていい、出勤時刻がほぼ自由、お昼ご飯の時間も自由(たいてい店が混んでる時間帯を避ける)、基本的に1日8時間だけど用事(勉強会とか)があるときに早退しても問題ない(申請とか不要)、疲れたら昼寝してもいい、ももクロのコンサートへ行く為に有休をとるのは当たり前(?)(注・僕のことではありません。なお、ゲームが発売されたときに有休をとるのは当たり前でしょうw)等、環境面でもとても働きやすいです。

という訳で、プログラムを書く仕事は、とても楽しいですよ!
(しかし、やはり一般的なSIerが楽しいとは言いづらい(苦笑)) 

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

AsakusaFW0.8.0 M3BP、Spark IterativeBatch

2016-04-13 01:46:54 | PG(分散処理)

2016/4/8にAsakusa Framework0.8.0がリリースされていた。→リリースノート

AsakusaFW0.8.0では、まず、対応プラットフォーム(バージョン)がけっこう変わった。→互換性に関して
JDK1.6が非対応になったり、Hadoop1系が非対応になったり、Gradle1系が非対応になったり、Mavenが非対応になったり。


build.gradleの書き方もけっこう変わった。→0.8系の変更点
wrapperの指定が不要になったり、apply pluginで指定するプラグイン名が変わったり。
EclipseだけでなくIntelliJ IDEAにも対応したようだ。

Hadoop1系が非対応になったので、asakusafwVersionのバージョン体系も、AsakusaFW0.7でhadoop1やhadoop2を付けるようになったのが、再び不要になった^^;
というか、AsakusaFWのバージョンはAsakusa on SparkやAsakusa on M3BPのバージョンから自動的に判別されるようになったようで、asakusafwVersionは明示しなくなった。

そして、Gradleコマンドに、(build.graldeにAsakusaFWのバージョンを書かなくなったので)バージョンを確認するためのタスク(asakusaVersion、略すときはaV)が追加になっている。

あと、Hadoop(MapReduce)版バッチを生成するためのタスク名がcompileBatchappからmapreduceCompileBatchappsに変更になった。
Asakusa on SparkのコンパイルタスクがsparkCompileBatchapps、Asakusa on M3BPがm3bpCompileBatchappsなので、統一されたということだ。
DMDL EditorXも対応済み) 


Asakusa on Sparkも変更があって、今までは開発者プレビュー版だったが、今回(Asakusa on Spark 0.3.0)から正式版となった。
Asakusa on Sparkのリリースノート 

そして、Iterative Extensions(反復機能)が追加になった。(試験的機能扱い)
これは、実行時の引数の値を複数指定して、1バッチとして同時に実行するもの。リソースを効率的に扱えるので、個別に引数を変更して複数回バッチを実行するよりも、全体として実行時間が短くなる(ことが期待される)らしい。

この反復機能の為に、AsakusaFWの歴史上初のAsakusaDSLの拡張(@Iterativeアノテーションの追加)が行われたそうだ。

ただし、このアノテーションを付ける必要があるので、今までのアプリが無修正で反復可能になるわけではない。 


そして今回最大の目玉が、Asakusa on M3BP
M3BPは、フィックスターズ社が開発した、単一ノード・マルチコア用のデータ処理エンジン。

今までは、SparkやHadoopで処理するには小さいデータ(数十GB程度)だと、YARNを起動したりする時間(いわゆるHadoop税)が相対的に大きかった。そういう小さいデータの処理をターゲットにしているのがM3BP。
1台のサーバー上で、完全にオンメモリーで動作する。(データがメモリーに乗り切らなかったら落ちるらしい。そういうサイズのデータならAsakusa on Sparkで処理すればいいという考え) 

要するに、M3BPは単一ノード上でマルチスレッドで動作する処理エンジンだと思う。
だが、Javaのスレッドではなく、ネイティブスレッドで動作するので、Javaより速いらしい。

AsakusaFWでこれを扱えるの、すごく画期的だと思う!
例によって、AsakusaDSLのコンパイルのみでMapReduce版・Spark版・M3BP版が切り替えられるし^^

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする