plasmasphere.net -プラズマスフィア ドットネット-

Diary

« 1... 3 4 5 6 7 ...98 »

Oracle から PostgreSQL への移行

2018/10/12(Fri) 17:10

Oracle から PostgreSQL への移行を対応しましたので、メモがてらに手順を置いておきます。
OSはCentOS7(RedHat7)です。Windowsは分かんねーわすまんな。

準備するもの
Oracleからの移行なので、当然Oracleは入ってるとして。
PostgreSQL。今回はバージョン10でやってます。
Oracle互換関数をPostgreSQLに実装してくれる Orafce。
移行ツールのOra2Pg。
月並みですが折れない心。特にOracleに慣れてる人はOSSのRDBはとっつきにくいかもしれません。

ソースからのコンパイルは全く使わず、全部パッケージ管理(yum)でインストールします。
再インストールもお気楽にできるのでとりあえず始めてみるが吉です。案ずるより産むがやすしです。

PostgreSQLをインストール。

# yum localinstall https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
# yum install postgresql10 postgresql10-libs postgresql10-server
# /usr/pgsql-10/bin/postgresql-10-setup initdb
# systemctl enable postgresql-10
# systemctl start postgresql-10

移行用のDBを作成します。test_database がデータベース名です。
エンコードを指定しとかないとOSデフォルトで作られます。基本的にUTF-8の筈ですが、分からなければ指定しておきましょう。

# su - postgres
$ createdb test_database --encoding=UTF8 --template=template0
$ psql

Orafceのインストール。
便利な物がありますね。Orafce
細かい内容はQiitaを参考にするといいです。https://qiita.com/SRsawaguchi/items/410d709b474cd5862f5e

# yum search orafce
# yum install orafce10.x86_64
# /usr/pgsql-10/bin/pg_confid --pkglibdir
/usr/pgsql-10/lib

# ls -la /usr/pgsql-10/lib/orafce.so
-rw-r--r-- 1 root root 197560 Feb 17  2018 /usr/pgsql-10/lib/orafce.so

$ psql -d test_database
postgres=# create extension orafce;
CREATE EXTENSION

postgres=# \dx
                                                  List of installed extensions
  Name   | Version |   Schema   |                                          Description
---------+---------+------------+-----------------------------------------------------------------------------------------------
 orafce  | 3.6     | public     | Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS
 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language
(2 rows)

PostgreSQLに暗黙の型変換の追加と、Orafceに無いOracle互換関数を実行しておきます。
O/R Mapper 使ってるなら必要ないと思います。
Oracleのtruncは邪悪すぎるんだよなぁ…。

$ psql -d test_database
postgres=# CREATE CAST (int8 AS text) WITH INOUT AS IMPLICIT;
postgres=# CREATE CAST (int4 AS text) WITH INOUT AS IMPLICIT;
postgres=# CREATE CAST (text as numeric) WITH INOUT AS IMPLICIT;
postgres=# create or replace function add_months(TIMESTAMP with time zone, INT) returns DATE as \''''select add_months(cast($1 as date), $2)\'''' LANGUAGE \''''sql\'''';
postgres=# create or replace function trunc(TEXT) returns TIMESTAMP as \''''select date_trunc(\''''\''''day\''''\'''', cast($1 as timestamp))\'''' LANGUAGE \''''sql\'''';

Ora2pgのインストール。
インストールは root 権限で行いますが、インストールするユーザの環境変数に ORACLE_HOME, C_INCLUDE_PATH, LD_LIBRARY_PATH が必要です。
登録されていない場合は、oracle ユーザから設定コピーしてくると良いです。
コマンドではGithubからwgetしてますが、gitコマンド使えるならcloneした方がいいです。

# yum install perl cpan libdbi-dbd-pgsql perl-ExtUtils-MakeMaker perl-DBI
# mkdir ora2pg
# cd ora2pg/
# wget https://github.com/darold/ora2pg/archive/master.zip
# unzip master.zip
# cd ora2pg-master/
# perl Makefile.PL
# make install
# cpan

cpan> install DBI
cpan> install DBD:Oracle
cpan> quit

Ora2Pgの設定変更。
以下の項目を書き換えます。
ORACLE_HOME, ORACLE_DSN, ORACLE_USER, ORACLE_PWD, SCHEMA, LONGREADLEN
LONGREADLEN は clob 列等の容量が大きいカラムがあるなら設定しておかないと多分ちゃんと移行できません。

# cp ora2pg.conf.dist ora2pg.conf
# vi ora2pg.conf

Ora2Pgを実行。
-t で出力を指定できます。COPYはデータ、TABLEは構造、SEQUENCEはシーケンスです。
基本的にこいつらで全部いけると思いますが、他にも出力できますので公式で調べてみてください。
Ora2pg

# ora2pg -t COPY -o test_database_data.sql -b /tmp/ -c ./ora2pg.conf
# ora2pg -t TABLE -o test_database_ddl.sql -b /tmp/ -c ./ora2pg.conf
# ora2pg -t SEQUENCE -o test_database_seq.sql -b /tmp/ -c ./ora2pg.conf

データの調整。
Oracleでは DATE 型だったものが、Ora2Pgを通すと Timestamp without timezone になっちゃってることがあったので、それを変換しておきます。

# -e s# timestamp,# date;#g /tmp/test_database_ddl.sql

SQLの実行。

# su - postgres
$ psql -f /tmp/test_database_ddl.sql test_database
$ psql -f /tmp/test_database_seq.sql test_database
$ psql -f /tmp/test_database_data.sql test_database

データ移行自体はこれで終わりです。
必要に応じて PostgreSQL にユーザ作るなり、SQL叩くなりでデータの確認してください。

ポスグレのコマンドとかは、ggれば良いんじゃないかな。
PostgreSQLの基本的なコマンド

Oracleで全文検索(vgramとか)を使っている場合は、PGroongaがおすすめです。
Oracleより3倍早いですよ。

# yum install https://packages.groonga.org/centos/groonga-release-latest.noarch.rpm
# yum install postgresql10-pgroonga groonga-tokenizer-mecab
# su - postgres
$ psql
postgres=# create extension pgroonga;
postgres=# \dx
                                                  List of installed extensions
   Name   | Version |   Schema   |                                          Description
----------+---------+------------+-----------------------------------------------------------------------------------------------
 orafce   | 3.6     | public     | Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS
 pgroonga | 2.1.2   | public     | Super fast and all languages supported full text search index based on Groonga
 plpgsql  | 1.0     | pg_catalog | PL/pgSQL procedural language
(3 rows)

ちなみに、Oracleで PL/SQL 使ってるとかいう話しであれば、移行先は PostgreSQL よりは MariaDB の方が良いかもしれません。
https://mariadb.com/kb/en/library/changes-improvements-in-mariadb-103/


聖剣伝説2 SECRET of MANA

2018/10/09(Tue) 18:10

超絶楽しみにしていた聖剣2リメイクでしたが、あまりのバグに嫌気が差して半年ほど沈んでいましたお久しぶりです生きてますよ。

最近のスクエニはダメなんですかね?
小一時間ほどするとPS4 pro がエラー吐いて落ちるんですよ。ゲームにならんですよ。
と思いきや、1時間以上続けてプレイするのがしんどい)シナリオ進行速い)ので、言うほど苦でもなかったわけですが。

スクエニに問い合わせても「知らん」の一辺倒、エラーが起きたらPS4からエラー連絡してくれというので、2、3回やっときましたけども。
何とかアプデで改善されて、マナの要塞でも2時間じゃ落ちなくなりました。

武器パワーとレベル99にしてトロフィーコンプして封印しましたが、仮に聖剣3もこのゲームエンジンで作ろうとしてるなら推して知るべしですねぇ…。

なんというか、聖剣伝説のリメイクはこんな3Dを俯瞰カメラにしたどうしようもない3Dゲームじゃなくて、主観視点か三人称視点でアクションゲームしたいんですよね。 カメラをぐりぐり動かしながら、ロケーションを楽しみたいんですよ。聖剣伝説の世界を。
デモンズやブラボーほどのゲームにしろとは言いませんが、軌跡シリーズくらいはできるだろうと。
というか、そのくらいのテンプレ作れるゲームエンジンくらい内製しとけよと。
あ、ルミナスエンジンがFF15とかいうクソゲーに使われて死んでたわメンゴメンゴ。

グランブルーファンタジーのPS4版がそんな感じになってるので楽しみですが、あれ系のゲームはもう作れないんですかねスクエニは。
ソシャゲーで死ぬほど設けてるはずですが、過去のブランドにぶら下がってるだけじゃソシャゲーも先見えてんぞー、と。
警鐘を鳴らしておきます。

いやほんとにちゃんとした3Dアクションで聖剣伝説やりたかったなぁ。


日記

2018/02/11(Sun) 04:02

気が付いたら年が明けてた。
今年もよろしくお願いします。

日記っていうか年記になってるけど、しっかり元気にゲームやってます。

例に漏れずモンハンワールド遊んでますが、モンハン初めてやるので周りの評判よりは冷めた目で見てると思います。
めちゃんこ楽しい!とは思わないけど、間違いなく良いゲームではあります。
すでに100時間くらいになりそうですが、ここまで苦痛に感じたことはないしむしろ楽しいです。

来週は聖剣2リメイクも発売するので、なんていうかもう寝る暇ないですね。
楽しい。


日記

2017/05/30(Tue) 03:05

気づいたら半年経ってた。

2017年になってから遊んでるゲームといえば、 ニーアオートマタとダークソウル3とPSO2という代り映えしない毎日です。
サガスカーレットグレイスか、先日買った Salt and Sanctuary でもやればいいんだけど、なんだか色々やる気が出ない。

ニーアオートマタが最近のおススメ。
例のクソFF15の後に遊んだからか、ゲームとしてしっかり作ってるし、シナリオもちゃんとしてる。いや、比べるのもおこがましい。
アクションも面白い。2Bちゃんは可愛い。A2ちゃんはポンコツ可愛い。
トロフィーも全部取ってDLCで遊んでるけど、闘技場がきつ過ぎてチップ堀を1日1時間ほどやってる感じです。
とりあえずコスト最低の物理倍とクリティカル倍のチップないと無理そう。
いや、あっても無理そうだけど…。

ダクソ3は楽しい。ダクソシリーズはそんなに好きじゃなかったけど、なぜか3はずっと遊んでる。
ステージは初代ダクソくらいのボリュームのほうが良いと思うんですけどね。ダクソ3はかなりマイルドだと思う。
その代わり敵が強いと思うけども。

そんな感じで。


FF15 プレーヤに想像を強いるストーリーに価値はあるのか

2016/12/13(Tue) 20:12

FF15クリアしました。
ゲームシステムで見れば、FFのアビリティ的な成長システムはよくある感じでしたし、戦闘はスピーディで良かったと思います。
アクション苦手な人でもボタン押してるだけでお気軽アクションですし、そこそこ動かせる人であれば自由に動く事もできますし。
ロードが長すぎる部分もありますが、ゲームとしての全体的なシステムは良かったと思います。
ただ、シナリオだけを見ればFF13ほど酷いシナリオではないという感想ですが、酷いと形容するに値するものであると思います。

救いのないシナリオなのは、不満ですがもうしょうがないと思います。
ディレクターが、開発が、これでいこう、と確信をもってOK出したのであれば、プレーヤは受け入れるしかありません。
ですのでシナリオの大筋自体はこれでいいです。
90時間ほどプレイして、色々考える事もあったので纏めてみます。

何が酷いのか

レギスの心情、ノクトの心情、仲間の心情、アーデンの心情、全てが説明不足です。
説明しすぎると陳腐になる部分は確かにありますのであえて説明しない事もありますが、FF15に至ってはそれは当てはまりません。
何も説明がありませんから。「お前ら察してくれストーリー」とでも言いましょうか。想像力をフル回転させて不足している情報を補完しながら見ていく必要があります。
特に酷い部分を揚げていきます。

真の王の運命を仲間に説明している描写が無い

シナリオの問題点として、真の王の運命を知っているのが誰だったのか、ということに尽きます。
ロード画面の説明を読む限り、レギスは知っていたと思われますが、ノクトは、仲間達は知っていたのでしょうか。
バハムートとのやり取りを見る限りノクトは知らなかったのでしょう、しかし仲間はどうだったんでしょうか。
アーデンを殺すためには真の王も死ななくてはいけない、ここは真の王になる覚悟を決める部分で重要です。
劇中では、ノクトが死ぬ運命にある事を仲間に説明している描写はありません。
この描写が無いまま最後のキャンプを迎えますが、ここでも説明している描写はありません。
ノクトが言葉に詰まり、仲間に思いのたけをぶつけますが、それだけです。
死ぬ運命を知らないまま「お前ら好きだわ」「やっぱつれぇわ」など聞かされても、何言ってんのコイツとしか思えません。

描写が無いのであれば、仲間達がノクトは死ぬという事をどこかで知ったという事になります。
ではどこだったのか。

1.最初から知っていた
これであれば、王としての自覚を強いるグラディオラスがただの鬼畜です。
しかも、ノクトは知らないわけです。
お前は死ぬために王になれ、自覚を持て、舐めてんのか。など暴言を吐いてきたという事に。
さすがに無いと思いたいのですが…。

2.最後のキャンプ
一応筋は通ります。

3.ノクトがクリスタルに吸い込まれた後にアーデンに言われた
ここでもありえます。セリフはありませんでしたしね。
タイミングとしては一番シナリオに沿うでしょうか…。

色々書きましたが、ここまでは考察ではなく、補完です、想像です。
劇中で説明しなければならないことをせず話しを進めた結果、プレーヤは置いてけぼりどころの話ではなく、ただ開発の自慰を見せられているだけです。
プレーヤに補完させなければならないようなシナリオな時点でクソです。ゴミです。クズです。

そもそも、クリスタルに選ばれたのがノクトというシナリオの重要な部分を、劇中の説明ではなくロード画面に仕込む時点でダメなのですが。
ゲーム内での説明は10年前のルーナがさらっと教えてくれます。
アーデンを殺す為に王も死なないといけない理由の説明も曖昧です。おそらく、不死となったアーデンの魂を消滅させるために、自分も死んでアーデンの魂のいる場所へ行く必要があった、という解釈をしていますが、これも説明はありません、補完です、想像です。

細かい話しになりますが、ノクトが光耀の指輪を付ける決心をした描写も分かりにくいです。
普通にプレイしてると、アーデンの煽りもあって一人で心細いし指輪つけちゃえ、くらいの感覚でしかありません。
そうではなく、おそらくそこまで一緒だったレガリアが壊れた事が起因しています。
王都が陥落してレギスが死去しまったという報を受けて、レガリアはノクトにとって父親の代わりであったのだと、それが壊れた…つまり父親が死んでしまった。
ここでやっと現実と向き合えたのだと。そして、父親の代わりに王になるという決心をしたのだと。(この時点では真の王の自覚は無いでしょう。)
意味ありげにレギスとの思い出ムービーでも流していれば、まだマシだったでしょう。何でやらないんでしょうね。
これも同じですね、考察ではなく補完です。「シナリオを好意的に解釈した」想像です。

何しろ描写がありません。考察するべきネタが無い状態では考察にもなりません…。

アーデンの掘り下げが全くない

敵としてのアーデンの掘り下げが全くありません。
彼の目的は、シガイ化から救ってた自分をむやみに追放した王家への復讐と、シガイ化を救う段階で不死になってしまった自分を殺してくれる存在を作る事です。
前者についてはアーデンがしゃべります。後者については裏の目的ですが、プレーヤに読み取らせようとするセリフの言い回しは素晴らしかったと思います。
ただ、この動機づけをアーデン本人に語らせてしまうため、敵としての魅力が皆無です、伝わってきません。
FF15のシナリオはアーデンの目的そのものなので、ここを掘り下げてプレーヤに意識させないと意味がありません。
描写が限られている中でノクト(とプレーヤ)にアーデンを倒すべき敵と認識させるためだけに、おそらくルーナは殺されました。
その為に、チャプター13でアーデンがノクトを煽るんでしょう。
そうではなく、敵としての掘り下げを行うべきでした。
クリスタルにノクトが吸い込まれた時、ただ10年経ちましたで終わらせるのではなく、ここでアーデンの過去を見せるだとか、ノクトの覚悟を描くとか、できた筈です。

描写が無いせいで無駄になった伏線が救いようがない

帝国の将軍を捕らえたけど逃げられた。
何をしたかったのか意図が分からない。やるならちゃんと描いてほしい。

神の使いである犬達のエピソード。
ロード画面で唐突に神の使いであるとネタバレされるそうですが、私はその画面を見た事がありません。90時間のゲームプレイの中で一度もありません。
突然アンブラが過去に連れて行ってくれるようになりますが、システムとしての理由ではなく世界観設定と絡めたものじゃないとただの使い捨てです。

ルーナが病人だかを癒していたエピソード。
おそらくこれはシガイ化の治療だと思っています。オルティシエでアーデンがルーナを刺す前、それっぽい力を使ってアーデンに殴られました。アーデンは同じ力を持つ人間の不憫さや過去の自分を思い出したんじゃないでしょうか。

レイヴスの心情変化。
これはアップデートで追加すると言っていますが…そもそも彼の心情は矛盾しています。
キングスグレイブでは、レイヴスは自分と母親を見捨てて(見捨てざるを得なかった)逃げたレギスを恨んでいました。
本編では一転して、ノクトの力不足を憂いでいました。真の王になれないと。
本当のレイヴスのキャラはどちらでしょうか。恨みがあるんでしょうか、ノクトを心配するんでしょうか。
取って付けたシナリオの犠牲になったんじゃないかと思っていますが、追加するならちゃんと腑に落ちる内容であってほしいですね。

ロゴの都合で描かれた結婚式。
私はここで泣いてしまいました。感動だとかいう事ではなく、あまりに悲しくて、です。
ここだけは本当に無駄ですし、意図が分かりません。
最後のロゴを変化させたいし、救いのないシナリオだし、ノクトとルーナは最後結婚できるで。レギスのセリフもええやろ?これで許してや。
そんな開発の言い訳が聞こえてきます。
二人の結婚式が必要であれば、死の運命に立ち向かうシナリオにして、ハッピーエンドにさせれば良いんですよ。
王道シナリオですし、王子としてのバックエンドも、ルーナの使命のバックエンドも、仲間達との話も良い味付けになります。

全体的に何もかもが不十分です。
先にも書きましたが、レイヴスの描写を増やすのであれば、ディレクターが考えているFF15としてのシナリオをしっかり描写するところまでやってほしいです。チャプター13をどうこうするとか言ってる場合じゃないです。
今プレイしているのが完全な無駄ですが、10年待った結果こんな未完成なシナリオやらされて終わるよりは全然マシです。

キングスグレイブとブラザーフッドをプロローグとして見れば、最高の素材だと思います。
最高の素材にちょっと手入れをして、ディレクターの思う味付けをすれば、それだけで良かったんだと思います。
今のFF15は、最高の素材を使って調理したけど火の通ってないスープの具ですよ。

「はじめてFFをプレイする方と、すべてのファンの為に」(ゲーム起動時の挿入コメント)
「FF15はいかがでしたか?楽しんでいただけたなら幸いです」(ゲームクリア後にメニューからスタッフロールを選んだ最後の挿入コメント)

これは開発からの皮肉なんでしょうかね。

散々書きましたが、ゲーム全体として見れば良ゲーです。
じゃないと90時間もできないですからね。
オープンワールド(FF15はセミオープンくらいですが)のゲームで戦闘がしっかり作れているのは他にないですし、グラフィックも充分綺麗です。
フィールドをチョコボで走り回ってクエストこなしていくのも楽しいです。
シームレスに挿入されるBGMも素晴らしいです。
だからこそ、メインシナリオの陳腐さがなおさら勿体ないんですよ…。


17周年

2016/12/13(Tue) 18:12

FF15の発売が待ち遠しくて忘れてましたが17周年でした。
178万アクセスほどでした。
いつもありがとうございます。

今年は本当に日記を書けていないのでもうどうしようもない感じですが、一応MovableTypeからデータ移行したりとか、色々やってたんですよ。
でも実は2015年より書いた数多いですね。
来年の目標は最低限月イチで書くという事で。


Windows10でFirefox 64bit版を使う

2016/10/23(Sun) 12:10

Windows10で64bit版Firefoxが使えないとか書いてましたが、ちょっと変更するだけで使えるようになりました。
Firefox.exeをWindows8で動作するように互換性の設定をするだけでした。
今はご機嫌に動いてます。

もう1年前の記事なのねぇ。
Firefox 64bit


Xperia L 6.0 Marshmallow

2016/08/02(Tue) 23:08

いつもお世話になっております。
ソーイチでございます。

今回、Xperia L を Android 6.0.1 Marshmarrow にアップグレードできましたので、個人的にクソほどハマったポイントをメモしておこうと思います。

1. Fastboot driver
公式で配布されているFastbootのドライバで正しく動きません。
つまり、bootloader unlock しようとしても、ちゃんとできないということ。
私は今回、Xperia Companion でドライバをインストールして、コマンドラインから unlock してみたところ、boot loop になって死にまくりました。
死んだら Flashtool で復旧させればいいんですが、そもそもドライバ回りが死んでるので Flashtool も動かないという。

2. Flashtool のバージョンを下げる
FlashtoolにXperiaLさんのドライバも同梱されていますが、新しいバージョンだとちゃんと動きません。
0.9.0.11 をインストールして、同梱のドライバをインストールしたら Flashtool も使えるようになりました。

3. リカバリーイメージ
root をとるのは、2014年度root取得ツールでとれます。cubecubeさんのツールがいいと思います。
http://cubeundcube.blogspot.jp/2014/07/xperiarootgx-z2a2.html 本題のリカバリイメージですが、root を取って TWRP をインストールしても、ちゃんとbootしません。
迂回策として、一旦 CWM をインストールします。
非常にめんどくさいですが、手順としては以下。

1. TWRP2.8系をインストール
2. CWMインストール(TWRPが起動しないので)
3. bootしてMarshmarrowのROM焼き
4. 一旦Marshmarrowを起動してrecovery起動
5. TWRPが起動するのでTWRP3.0.4をインストール
6. recovery reboot して TWRP 3.0.4 を起動
7. full wipe して もう一回 Marshmallow を焼く
8. gapps を焼く
9. supersu を焼く

手順としてはこんな感じ。ポイントがTWRPで、3系じゃないとAndroid6.0がちゃんと焼けないというところ。
CWMでインストールしたとき、エラーでまくるんですよね。そのままGappsインストールしようとしたら、インストールはできてもOS起動したあとにエラーが出まくります。

こんな感じでマシュマロになると思います。あくまで自分用ですが・・・。
使ってみた感想としては、公式ROMの4.4の時よりは圧倒的に軽いですね。
電池消費も少ないし、余裕で現役ですよLさん。


« 1... 3 4 5 6 7 ...98 »


 
© 1999- plasmasphere.net All rights reserved.