ひしだまの変更履歴

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

【DQ10】180スキルサポでブルメル撃破

2016-05-28 14:55:35 | ゲーム

ドラゴンクエスト10のver3.3前期で装備の180スキルと90レベル武器が追加になり、そのおかげで青の巨人ブルメル(通称青きのこ)をサポート仲間で倒せた!

氷の領界のボスはなかなか強くて、最初のボスもver3.2前期時点の最大レベル90では倒せず、ver3.2後期のレベル上限解放でレベル93になってから倒せた。
次に青きのこで止まってたんだけど、今回180スキルと新装備で倒せた。
コンピューターRPGは、ボスが強ければレベル上げ(経験値稼ぎ)や強い装備を買ったり(金稼ぎ)して挑戦すれば(つまり時間をかければ)クリアできるところがいいと思ってるんだけど、今回はまさにそのパターン。(とはいえ、DQ10はバージョンアップ期間が長いけど^^;) 

構成は、自分が僧侶(レベル92、スキルはスティックと盾に180ポイント振ってある)で、サポが魔法戦士(片手剣)・レンジャー(ブーメラン)・賢者。なお、これはピラミッド攻略用に雇ったサポ(笑)
ピラミッド1〜6層はフレンドのサポート仲間(レベル90前後)で勝てるんだけど、7層は眠りガード100%の93レベルサポを雇って行っている。その後で経験値稼ぎにも出かける為、継戦能力(MP回復)重視で魔法戦士やレンジャーを入れているわけ。(ちなみに8〜9層は行かない(8は1回だけ勝ったことがある、9は行ったこともない))
つまり全く青きのこ用の耐性じゃないんだけど、依頼書の討伐でポポリアきのこ山に行ったので、ついでに青きのこにも行ってみたところ、2回の挑戦で勝てた!

雇ったサポを見てみたら、魔法戦士の武器はレベル90のはやぶさの剣改+3(失敗なし品!高いだろうに)、盾もレベル90の盾だった。スキルは不死鳥天舞IIIだったし、レンジャーもレボルスライサーIIIを持っていた。

青きのこは分身するまでにいかにHPを削るかが重要なので、大ダメージの出る新特技が追加になったことで、ダメージの蓄積が速くなったのが効いたと思う。
つまり、通常攻撃1と特技2・特技3を持っている場合、攻撃パターンは
1+1+2+3 +1+1+2+3 +1+1+2+3
みたいになるけど、特技4が追加になれば、
1+1+2+3+4 +1+2+3+4 +1+2+3+4
みたいになって一定時間内のダメージが増えるという理屈。
今回の挑戦では、1回目はHPが黄色くなってから分身して4匹まで増えたけど、全部HPを赤にするところまでは行けたし、2回目はHPが赤くなってから初めて分身という状態で、分身した奴もすぐ倒せた。
やはりこれは新特技(と新しい武器)のおかげと言えるだろう! 

その後そのまま赤きのこと緑きのこにも行ったけど、初見で勝ててしまったw
敵が1匹しか出ないボスでは、聖女の守り(やキラキラポーン)をまいとけば安定するので楽でいいわ〜(自分が死んで危ない場面はあったけど)。なお、余裕が出たときに新特技のアイギスの守りIを使ってみたけど、どれくらい意味があったかは不明(爆)

そして経験値がいっぱい入るもんだから、僧侶がレベルカンスト。カンストするとその職業でプレイする機会が減るので、あまり嬉しくない^^;(経験値が入らないとやる気が出ないんだよねー。職人もカンストしたら転職してるし、釣りもカンストしてからやってない) 

コメント
この記事をはてなブックマークに追加

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が楽しいとは言いづらい(苦笑)) 

コメント
この記事をはてなブックマークに追加

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版が切り替えられるし^^

コメント
この記事をはてなブックマークに追加

ドラクエビルダーズ自作風景

2016-03-12 14:53:41 | ゲーム

ドラクエビルダーズで公開用の建物を作った直後は、「後は特に作りたいものは無いなー」と思ってたんだけど、なんだかんだでついつい色々作ってしまったので、作った物をメモ。どういう風にどういう意図で作ったのかも書いた。
(ツイートした分は、Togetterでもまとめてある) 

特に自分のTwitterアイコン(青い八面体)にちなんだものは、自分が知っているものはコンプリート(笑)
ちなみに自分のTwitterアイコンはよくエヴァンゲリオンのラミエルと間違われるけど、違うからw(もちろん飛行石やブルーウォーターでもない)

コメント
この記事をはてなブックマークに追加

ドラクエビルダーズの感想

2016-02-20 19:40:30 | ゲーム

ドラゴンクエストビルダーズ、発売日からやってひと区切りついた感じなので、感想を書いた

自作の建物も事前に思っていたより結構がっつり作ってしまったので(笑)、ギミックを忘れないようにメモしておいた。
建物名『あさくさフレムワーク』
建物のじゅもん:ぜそらしこねたかそふぼいおはつむの
自作建物の紹介(画像・ネタばれあり) 

コメント
この記事をはてなブックマークに追加

AsakusaFW hasとか性能特性とか

2016-02-11 12:38:43 | PG(分散処理)

Asakusa Frameworkがらみのページをちょこっと更新。

まず、Option系クラスhasメソッドなんて便利なものがあったのを知らなかった(爆)

それから、自作のExcelファイル出力ライブラリー。実際にHadoopクラスター上で動かしてみたら、案の定jarファイルが足りなかった^^;
ついでにsrc/main/resourcesに置いたファイルがデプロイメントアーカイブに含まれないというバグを見つけてしまった^^;

あと、演算子には性能特性が記されているんだけど、Map/Reduceの2種類だと思っていたら、AsakusaFW0.7.5からExtract/CoGroup/Join/Foldという分類に変わっていたらしい。全然気付かんかったorz
Map/ReduceはHadoopのMapReduceに即した分類だったんだけど、Asakusa on Sparkが出てきたので、それに対応するよう変えたらしい。 

コメント
この記事をはてなブックマークに追加

Gitで過去のファイルの内容を見る方法

2016-01-30 21:27:43 | PG(CVS・SVN・Git)

Gitで削除した過去のファイルの内容を見る方法、調べたら色々な人が書いていた。毎度ありがたいことです。
で、自分用にメモをまとめた

ついでに、git rmに拠らずに削除したファイルをgit rmの引数に指定する方法も知った。
「git ls-files」なんて便利なコマンドがあったんですなぁ。Git管理下にあるファイル一覧を表示するもの。ちゃんとgitignoreも考慮してくれるようだ。

コメント
この記事をはてなブックマークに追加

2015秋アニメについて一言

2015-12-30 12:32:28 | Weblog

2015年の秋アニメ(10〜12月)の感想。

今季は前季に比べてこれといったものが少なかった無いイメージ。前季はなんと言ってもケイオスドラゴンがあったしね!

今季のトップは、『うたわれるもの 偽りの仮面』か『ヘヴィーオブジェクト』か悩ましいところ。
まぁ、ゲームの『うたわれるもの 偽りの仮面』を買っちゃったしな(笑)(→ゲームの感想

ゲームの『うたわれるもの 偽りの仮面』は終わり方がびっくりだったけど、アニメはどこまでやるんだろうな?
12月末時点ではアニメは主要キャラがようやくほぼ出揃った段階で、来季から戦乱に突入。やはり来季いっぱいでゲーム版の終わりまでかなぁ。 

『ヘヴィーオブジェクト』は面白かったね!
まともに戦ったら勝てない相手にアイデアで勝利するという話は大好きだ。
それに、主人公が男1人でないところがいいね。よくあるハーレムものだと、主人公以外に男が出てきても、どう見ても脇役だもんな。

『進撃の巨人中学校』は15分アニメだったけど、『進撃の巨人』を少しは知っているだけに、面白かった。
オープニングの曲のアレンジ(学校のチャイムの音)も良かったね。歌っている人も格好良く歌ってて、ああいう、ギャグを真面目にやるのはけっこう好きだw

『櫻子さんの足下には死体が埋まっている』は、タイトルの勝利ですな。「どういうこった?」って思うもんな(笑)
推理物もけっこう好きだw

そういえば、『対魔導学園35試験小隊』って、新作だったの?
冒頭のビルでの戦いで援護射撃を全然別のビルに撃ち込んだシーンに見覚えがあったので、てっきり再放送だと思ったんだけど。これはデジャヴだったか、他のアニメと勘違いしたか?

『ご注文はうさぎですか??』は新作だったよね。同時に再放送もやっていたので、ちょっと混乱することがあったけど^^; 

『コンクリート・レボルティオ 超人幻想』は時代が切り替わるのが分かりにくかった。年代の数字は表示されるけど、それが過去なのが未来なのかぴんと来ないので。
ついでに言うと、台詞を聞いているだけで画面を見てないことがよくあるので…。

そういう意味では、『終物語』も文字でツッコミをすることが多いので、気付かないことがよくあったな(苦笑)
それにしても物語シリーズ(って、ひどいシリーズ名だよな^^;)って怪異の話だと思ってたから、最初の話は「あれ?こんなのなんだ?」ってちょっと混乱した。物語シリーズをほとんど知らないので、他の話のキャラが出てきてもよく分からないしね。
それにしても独特な雰囲気だよな、物語シリーズって。僕は嫌いじゃないが、好き嫌いが割れそう。

後はまぁ、見てましたよ、くらいで『コメット・ルシファー』『落第騎士の英雄譚』『学戦都市アスタリスク』『終わりのセラフ』。正直、眠いときは見ないこともあったorz
特に『落第騎士の英雄譚』と『学戦都市アスタリスク』は、内容がモロ被りだったね^^;
学園+大会ものは戦いのスケールと世界の中でのスケールのバランスがとれてないことが多くて好きじゃない。ただ、『ハイキュー!!』は面白い。

『ウルトラスーパーアニメタイム』と『Fate/Zero』(再放送)は、残念ながら同時間帯にやっていた『白熱教室』の方を見ていた。
『ノラガミ ARAGOTO』は、一部の時間だけ『ログ・ホライズン』とかぶっていたので、『ログ・ホライズン』の方を優先した。ログ・ホライズンはTRPGになっているので、やはり見ておかないといけないだろう。

あと、『ワンパンマン』というのが面白いという評判を聞いたので途中からちょっと見てみたんだけど、確かに面白そうだった。再放送すれば最初から見たいかな。
(普段見ているのと違うチャンネルだと、やっているのに気付かないorz テレビの番組一覧で同画面内に収まっていれば見えるので気付くんだけど、うちのテレビでは、チャンネルの並び順の都合上、画面外。スクロールさせないと見えないが、しかしスクロールが遅いのであまりスクロールしない) 

再放送では、『あの日見た花の名前を僕達はまだ知らない』が良かったね!
学園ものとか青春ものは嫌いなんだけど、これは良かった。見たことは無かったけど、曲に聞き覚えはあったし。とても良い曲だよね。

あと、前季からやっていた『シュタインズゲート』の再放送だけど、第23話が再放送ではなく新作だったそうで。初めて見ていたから、そんなこと分からなかったよ^^;
別途ちゃんとした23〜24話を見たけど、クリスが助かる方が絶対良いね。
さて、その新作23話から続くというゲームを買うかどうか、悩む…。 

コメント
この記事をはてなブックマークに追加

拡張機能使用版WordCount

2015-12-24 00:00:00 | PG(分散処理)

Asakusa Framework Advent Calendar 2015の24日目です。

AsakusaFWの標準的な機能だけを使ったWordCountは以前から公開していますが、AsakusaFW0.7.5で@directio.lineがsandboxに導入されたことを機に、拡張機能を使ったWordCountを書いてみました。
@directio.lineを使ったテキストファイル読み込みの他、拙作の機能を使ってコーディングする手順を書いています。

最初にAsakusaFW版WordCountを書いた頃は、まずHadoopありきだった(Hadoopの勉強をしてからHadoopを使うアプリを勉強し始めた)ので、Hadoopの基本であるWordCountを色々なアプリで書くということをやっていました。今となっては素のMapReduceでコーディングすることはないと思う(やろうとしているのなら、他のフレームワーク(AsakusaFWとかw)の導入を考えるべきだと思います)ので、いつまでもWordCountでも無かろうと思わなくもないのですが、変換→集計という最小限のサンプルとしては今でも有用だと思います。


拡張機能使用版WordCountでは、@directio.lineによるテキストファイル読み込みの他に、拙作のテンプレート機能を使っています。
これは、テンプレートファイル(FreeMarker)を使ってDMDLからJavaソースを生成するものです。テンプレートファイルにJavaコードを書いておき、データモデル名やプロパティー名部分だけを置換してJavaソースを生成します。

実業務では、入出力ファイルが増えてくると似たようなImporter/Exporterが増えてきます。データモデル名部分だけが違うファイルをいちいち作るのが面倒だったので、このようなテンプレート機能を作ってみました。(と言いつつ、実業務ではまだ導入していないのですが^^;)

テンプレート機能としては生成できるのはJavaソースに限らないのですが、AsakusaFWのDMDLのSPI機能では、基本的にファイルの出力先がJavaソース用ディレクトリーしか指定できない為、今はJavaソースだけを対象としています。


また、拙作のOperatorのテストツールの使用例も書いています。

通常のOperatorの単体テストでは、AsakusaFWが生成するメソッド(Operator上のabstractメソッド)のテストは書きません。
大抵は集計キーやグルーピングキーに関するメソッドになるので、テストしたければ、フローのテストで行います。が、それでは他の演算子との組み合わせのテストになってしまいますし、メソッドひとつのテストだけの為にFlowPartを作るのもどうかと思います。

という訳で、拙作のテストツールでは、Operatorのabstractメソッドのテストも行うことが出来ます。
擬似的な集計/グルーピングを行うので、通常の単体テスト(メソッドを1回だけ呼び出せばいい)よりも、入力データや出力結果の検証量が増えてしまいますが。


さらに、拡張機能使用版WordCountのページでは、フロークラスやバッチクラスの生成等に拙作DMDL EditorXの機能を使う方法を書いています。

これらの機能は、来年のアドベントカレンダー辺りで紹介したいと思います(爆)

コメント
この記事をはてなブックマークに追加

DMDL EditorX機能紹介8:階層表示

2015-12-22 00:00:00 | PG(分散処理)

Asakusa Framework Advent Calendar 2015の22日目です。

拙作DMDL EditorXの機能紹介、今年最後は階層表示です。

dmdlファイル上でデータモデルにカーソルを合わせてからF4キーを押すと、階層ビューが開きます。
あるいは、右クリックしてコンテキストメニューを開き、「Open DataModel Hierarchy」を実行します。

データモデル階層ビューは、Javaのクラスの継承関係を表す階層ビューと似ています。
つまり、他のデータモデルを参照しているデータモデル(foo = hoge + {};とか集計モデルとか結合モデルとか)がある場合、参照しているデータモデルを階層表示します。また逆に、自分を使っているデータモデルも表示します。
(この検索は全データモデルを走査することになるので、ちょっと時間がかかります)

階層ビューは上下に分かれており、上はデータモデルの階層、下はプロパティー一覧です。
右上には親階層か子階層かを選択するトグルボタンがあり、表示を切り替えることが出来ます。

上側のデータモデルを選択すると、そのデータモデルのプロパティー一覧が下側に表示されます。
プロパティーをダブルクリックすると、そのプロパティーの定義箇所にジャンプします。
プロパティーを右クリックするとコンテキストメニューが表示されます。ここからもクリップボードへのコピー(機能紹介5を参照)やJavaソース上の使用箇所検索(機能紹介7を参照)を行うことが出来ます。


階層ビューのプロパティー一覧には、アウトラインページと異なり、そのデータモデルに含まれているプロパティーが表示されます。
アウトラインページには、そのデータモデルに直接定義されているものだけが表示されます。

例えば以下のようなデータモデル定義があったとします。

hoge = {
    hoge1 : TEXT;
    hoge2 : INT;
};

foo = hoge + {
    foo1 : TEXT;
};

fooに着目すると、アウトラインページにはhoge(データモデル名)とfoo1(プロパティー名)が表示されますが、階層ビューにはhoge1,hoge2,foo1(全てプロパティー名)が表示されます。

なので、データモデルに含まれているプロパティー一覧を見たい場合には、(データモデルの階層を見たいわけではなくても)階層ビューを開くという手が使えます。

コメント
この記事をはてなブックマークに追加