tanamonの稀に良く書く日記

KEEP CALM AND DRINK BEER

MySQLでtimestampに桁数指定をする時にはcurrent_timestampにも桁数を付ける

今日、ハマったこと。

こんなテーブルがあったとする。

mysql> create table test(
    ->   id int unsigned not null auto_increment,
    ->   name varchar(100) not null,
    ->   last_modified timestamp not null default current_timestamp on update current_timestamp,
    ->   primary key (id)
    -> );
Query OK, 0 rows affected (0.01 sec)

mysql> insert into test(name) values('name1');
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+----+-------+---------------------+
| id | name  | last_modified       |
+----+-------+---------------------+
|  1 | name1 | 2019-07-02 22:54:52 |
+----+-------+---------------------+
1 row in set (0.00 sec)

ここで、last_modifiedをミリ秒以下の精度で持たせたくなったとする。

timestamp型にミリ秒以下を持たせたい場合はtimestamp(n)として、nに持たせたい桁数を渡せばいいらしい。 ミリ秒ならtimestamp(3)、マイクロ秒ならtimestamp(6)とすればよいようだ。 マイクロ秒にしてみる。

mysql> alter table test modify last_modified timestamp(6) not null default current_timestamp on update current_timestamp;
ERROR 1067 (42000): Invalid default value for 'last_modified'

しかしエラーになった。default valueがおかしいらしい。

ここで、元のテーブルがもっとややこしかったせいで原因特定までだいぶ遠回りしたけど、結論を書くとcurrent_timestampにも桁数が必要だった。

mysql> alter table test modify last_modified timestamp(6) not null default current_timestamp(6) on update current_timestamp(6);
Query OK, 1 row affected (0.04 sec)
Records: 1  Duplicates: 0  Warnings: 0

これが正しい。

ちなみに、公式ドキュメントにもちゃんと書いてあった。

TIMESTAMP または DATETIME カラム定義のいずれかの場所に明示的な小数秒精度値が含まれる場合、カラム定義全体で同じ値を使用する必要があります。次の場合は許可されます。

CREATE TABLE t1 ( ts TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) );

次の場合は許可されません。

CREATE TABLE t1 ( ts TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(3) );

MySQL :: MySQL 5.6 リファレンスマニュアル :: 11.3.5 TIMESTAMP および DATETIME の自動初期化および更新機能

ドキュメントはちゃんと読もうと思った。

浦添パルコシティの最新映画館で4DX / ScreenX / IMAXレーザーの3種類を体験してきた

読むのが面倒な人向けに、先に評価のまとめを載せておきます。

4DX

ScreenX

IMAXレーザー

IMAXレーザーはやばい。 県外の人にも「映画好きなら旅行ついでに寄ったらいいよ」と勧めたくなるレベル。

以下、本文。

はじめに、パルコシティがオープン

昨日(6月28日)、沖縄県浦添市にパルコシティがオープンしました。 県内最大規模の商業施設だそうです。 最大、と言い切らないあいまいさの理由は4月にライカムが増床したから。

総賃貸面積約7万8千平方メートルと、現在すでに県内最大規模の「ライカム」だが、サンエーとパルコが、浦添市西海岸に19年夏の開業を目指す大型商業施設も同規模を計画している。 沖縄“最大”は譲らない? イオンライカム、面積拡大でリニューアル パルコとサンエーの同規模施設を意識か

どちらも賃貸面積の比較でも同じ約7.8万㎡と公表されているから。 同率一位ということです。

ユナイテッド・シネマの映画館

大型店なのでいろんな店舗があるのですが、その中でも初進出ユナイテッド・シネマの映画館がすごいらしいとオープン前から話題でした。

しかし、ふだんはふつうの映画館(県内企業のスターシアターズ系列)でしか観てない私にはイマイチどこがすごいのかわからない。しかも3種類もあるらしい。

そんな中で、オープン記念なのか特別価格(安い)で少し古い映画を上映するという情報があり、せっかくなので3種類を体験してみることにしました。

ちなみに、思い立ったのは当日の朝6時台。 なぜか早起きしたので、ジョギングをしていた最中のことでした。

オープン渋滞

1日で3作映画を観るのはけっこう大変。 しかも全てで新しい体験をすることになるので、途中に程よい休憩が挟むという、自分への配慮をしたスケジュールを組むことにします。 午前中に1本、午後に2本とするのがまあ自然でしょう。

1本目の上映開始は09:30。 家からパルコシティまで混んでなければ15分で着く距離だし、4倍の1時間あれば着くだろうと思って08:30に家を出ます。

58号沿いの屋富祖のキャンプ・キンザー入口あたりまでは順調に10分程度で来れたけど、そこから先が渋滞で全く進まなくなる。 メイクマン手前の時点でぜったい上映時間に間に合わないと確信したので、開き直ってながら運転にならない程度に本を読みつつ時間を潰して待つ。

結局、渋滞でかかった時間は以下のとおり。

  • 08:40-09:15(35分) メイクマン手前の信号の左折まで
  • 09:15-10:19(64分) 牧港のさくもとから入った道と合流するT字路まで
  • 10:19-10:44(25分) そこから駐車するまで

合計で2時間超えの124分。つらい。

T字路から先は少しスピードが上がったので、ここがボトルネックだったみたいです。 那覇から行く場合でもさくもとから回り込んで行ったほうが早い気がします。

次からは、各設備について。

4DXについて

1本目は4DX。

4DX®とは、現在、映画業界で最も注目を集める、最新の<体感型(4D)>映画上映システムです。 モーションシートが、映画のシーンに完全にマッチした形で、前後&上下左右に<動き>、その衝撃を再現。 さらに、嵐等のシーンでは<水>が降り、<風>が吹きつけ、雷鳴に劇場全体が<フラッシュ>する他、映画のシーンを感情的に盛り上げる<香り>や、臨場感を演出する<煙り>など、様々なエモーショナルな特殊効果で、≪目で観るだけの映画≫から≪体全体で感じる映画≫の鑑賞へと魅力的に転換致します。 通常のシアターでは得ることができない特殊効果によって、映画の持つ臨場感=魅力を最大限開放することができる、アトラクション・スタイルの映画上映システムです。 新次元の4Dアトラクションシアター ユナイテッド・シネマ|シネプレックス

一般的に、座席が揺れたり・モクモクしたり・水が出たりするような体感型のことを4Dと呼ぶようです。 ディズニーランドのミクロアドベンチャー系ですね(古い)。

中でも香りは可能性を感じますね。 ゾンビ映画でゾンビが臭いとか、戦争映画で鉄臭いとか、恋愛映画で女子高生の匂いがすると話題のデオコの香りがしたりするんですかね。 これは可能性を感じますよ!

www.sankeibiz.jp

なお、画面が立体(3D)かどうかは関係ないようで、4DXの2D作品とか4DXの3D作品とか呼んだりするようです。 ややこしい。

4DXの感想

観たのは、ジュラシック・ワールド(3D)。

あの事件から22年後。ついに恐竜たちを集めたテーマパーク“ジュラシック・ワールド”がオープンした。毎日2万人もの来場者で溢れるパークに、2人の少年がやって来る。パークの運営責任者のクレアの甥たちのザックとグレイだ。パスを手にした2人は、お目付役の手を振り切ってパーク観光へ。一方、パークでは遺伝子操作で生み出したハイブリット恐竜のインドミナス・レックスを生み出していた。防護壁を破って逃走したインドミナスは、パークへと向かう。取り残された少年たちを救うため、クレアは専門家のオーウェンに助けを求める。  ジュラシック・ワールド

先に書いた渋滞のせいで後半からの入場。

係員の人には「揺れてない間を見計らってさっと座りましょう」的なことを言われたけど、揺れたりして危ないからホントは途中入場がダメな設備なような気がする。

席は中央寄りで予約したけど、さすがに中に入るのは気が引けたので端っこで。

座席の動きと風を使った、ヘリの浮遊感と横Gが特にいい感じだった。 乗り物系の映画や、今日から公開のスパイダーマンにはこういうのが向いていると思う。

一方で、モブキャラが銃を撃った反動みたいなのもモーションが伝わるんだけど、なんでそれがこちらに伝わるの?というのが気になった。 これは主観と客観の違いだと思うんだけど、普通は主人公たち以外のキャラクターと感情移入しないので、そこのモーションを観客に入れる必要は無いと思う。

水は3Dメガネが濡れるので3Dでは要らないと思った。 女子も化粧が落ちるとか気になるのではなどと考えてたら、終わった後にオフにするボタンがあるのに気づいた。 おそらく、始まる前に説明があったのだろう。

後半だけなので確証はないけど、泡・フラッシュ・香り・雪・嵐・熱風は無かったと思う。

4DXは、効果を決めるスタッフの力量次第で面白さが変わる部分が大きいのと、観る側がどの程度の体験をしたいかの好みの差がけっこうありそうという点で、なかなか調整が難しいんだろうなと思った。

私は、毎回何かの反応があるより、しばらく反応なくて忘れた頃にドーンと使われるほうが予想できなくていいのにと思った。 そろそろ来るぞ、まだ来ない、キター!、みたいな感じで。

要は、途中で忘れさせる時間が欲しい。そうでないと、飛んでいる恐竜がカメラの横を通り過ぎるたびに「また空気プシュプシュやるんだろ?」みたいな予測ができるようになってくるので、体験より苦痛が前面に出てきてしまう。この苦痛が続くと疲れるので、途中からでも終わった頃にはけっこう疲れた。渋滞が無くて最初から観てたらうんざりしてたかもしれない。

しかし、こういうチューニングの欠点は、対象作品が増えれば少しずつ良くなっていくものなので、観たのが最新作では無いという点で評価にどう入れるか少し悩む。設備の評価では無いし。 少なくとも、最近の4DX映画では悪くはなってないはずなので、今度は新作で体験してみようかなと思う。

3Dについては、チラチラしてる(フレームレート?が低い)から元からあんまり好きではないんだけど、そこを差し引いても4Dの効果と合わせると映像は3Dのほうが合ってると思う。4DXで2Dだと片手落ちに感じる。

ScreenXについて

2本目はScreenX。

「ScreenX」とは、次世代型映画上映システムとして世界的に注目を集めている、3面マルチプロジェクション・映画上映システムです。正面のスクリーンに加え、両側面(壁面)にも映像が投影され、270度の視界すべてで映画を鑑賞することができ、映画の世界に自分の感覚が没入していくような臨場感を体験することができます。 「ScreenX」で上映される映画は、シーンによって正面のみに映像が投影されるシーンと、両側面に映像が投影されるシーンがあります。 左右に広がる画面は映画のシーンにさらなる抑揚と臨場感をもたらす効果を生み出し、映画自体の持つポテンシャルを最大限に表現することを可能にしました。 ScreenX 視界の限界を超える270° 3画面ワイドオープンスクリーン - ユナイテッド・シネマ

ようはパノラマ。 仕組み上、3Dにはできないような気がする。

席は注意書きにもあるように、中央寄りで取ったほうがいいです。

※ScreenXは座席位置により、特に左右映像の視聴環境(見え方)が異なります。予めご了承ください。 ScreenX 視界の限界を超える270° 3画面ワイドオープンスクリーン - ユナイテッド・シネマ

ScreenXの感想

観たのは、ファンタスティック・ビーストと黒い魔法使いの誕生(2D)。

ニュートはホグワーツ魔法魔術学校出身で、魔法動物をこよなく愛するシャイでおっちょこちょいな魔法動物学者。魔法動物を守るため世界中を旅する彼がいつも持ち歩いているのは、中が無限に広がる不思議な魔法のトランク。その中には、ありとあらゆるユニークな魔法動物たちが。ある日ニュートは、捕らえられていた強大な敵・グリンデルバルドが逃げ出したことを知る。強大な力を持ち、人間界の転覆を企む“黒い魔法使い”を追って、ニュートたちは魔法動物たちとともにホグワーツから魔法界へと旅立つ。 ファンタスティック・ビーストと黒い魔法使いの誕生

よく知らないで観た。 しかも2作目だったので話の筋がよくわからない。なぜ選んだのか。

部屋の作りは通常と同じなので左右の画面は90度傾いていて、左右の画面は中央のものより暗い。 左右にも画面があるから没入感が上がるのかなと思っていたけど、そういう効果はあまり無かった。

そして、左右の画面を使わない時がけっこうある。使うのは作品中30分だけで、使ってない時間のほうが長い。

※3面スクリーンで上映されるのは本編中約30分です。最も効果的なシーンでお楽しみいただけます。 ScreenX 視界の限界を超える270° 3画面ワイドオープンスクリーン - ユナイテッド・シネマ

今後設備が進化したら面白そうだけど、現時点のこれに追加料金は無いなと思った。 中央と左右のつなぎ目を無くして、丸くラウンドさせるか、せめて台形にしてほしい。

ちなみに、音響はあんまり良くなかった。

IMAXレーザーについて

最後はIMAXレーザー。

独創的な発想と優れたテクノロジーで映画鑑賞の可能性を広げてきたIMAX®から、 革新的な4Kレーザー投影システムと最新の12Chサウンドシステムを採用したIMAX ®レーザーが誕生します。 IMAX®ならでは大スクーンに映し出される鮮明な映像とパワフルな高音質サウンド。 これらが生み出すかつてない臨場感が客席を包み、観る者を映画の中へと導きます。 IMAXレーザー - IMAXで“感動”を超える“体験”を! - ユナイテッド・シネマ UNITED CINEMAS

日本ではここ浦添パルコシティにしか無いという、IMAXの最新設備。

従来型のIMAXの正統進化版。つよいIMAX

IMAXレーザーの感想

観たのは、ボヘミアン・ラプソディ(2D)。

1970年のロンドン。フレディ・マーキュリーは、ライブハウスで見かけたバンドのボーカルが脱退したことを知り、自らを売り込む。ギタリストのブライアン・メイとドラマーのロジャー・テイラー、それに1年後に加わったベーシストのジョン・ディーコンを加え、そのバンドは“クイーン”としてスタートする。やがてクイーンは数々のヒット曲を放ち、世界的なバンドになるが、フレディは自分のセクシャリティに悩んでいた。メンバーとの不和を乗り越えたフレディは、1985年のライヴ・エイドのステージに立つ。 ボヘミアン・ラプソディ

ボヘミアン・ラプソディは、公開時になんか観るタイミング逃したら、予想以上に流行って行きづらくなって観てなかったので、今回観れたのはちょうどよかった。

もう映像も音も最高だった。

映画が始まる前にIMAXの体験映像が流れるんだけど、その音響を聞いた時に「これはもう間違いないわ」と確信できた。 よくある低音重視の、いわゆる爆音とかではなく、純粋に音のバランスがいい。

とくに、後半のWe Will Rock Youの制作シーンのドン・ドン・チャとか魂に来る音がしていた。


Queen - We Will Rock You (Official Video)

(引用しておいてあれだけど、家で改めて聞いても感動しない)

それまで長時間かけて音の良さを実感したあとだったのに、そこからさらに上の体験を持ってくるのホントすごい。 映像も年代ごとに少しずつ鮮明度が上がるエフェクト加工しているようだけど、それに合わせて音質も上げていってたと思う。 こういうのは、おそらく他の映画館の設備だったら気づかけなかった。

あと、スクリーンが少し内側に湾曲してるのも没入感を上げる効果があったと思う。

観終わったあとには、ボキャブラリーが消え失せてた。

いやこれが最後でよかったと思った。

まとめ

やや真面目な話。

今の日本で映画館で映画を観るのはなかなかの大仕事。 ネットなどで簡単に観れる中で、わざわざ予定を立てて・時間をかけて・お金もかけないと観れない。

そんな中で、いかに顧客の財布の紐を緩めて満足させるかという課題を、最新設備の力で解決させようというのがこれらの映画設備なんだと思う。設備だけは家ではなかなか用意することはできないので。

4DXやIMAXは「どういう設備を用意したら家ではできない体験ができるか」をそれぞれ考えていて、それぞれ違った方向性だけど、どちらも「体験をさせるために設備を開発している」ように見える。 なので、過去に問題となった部分をよくしていった結果、総合パッケージになっている。

しかし、今回結果的に酷評となったScreenXは、設備を売っておしまいというスタンスなんだと思う。

  • なんで正面と左右で画面の明るさが違うの? → そっちのほうが安いから
  • なんで正面と左右の画面はフチがあるの? → 光が混じると境界部分が明るくなってしまうから多めに余白をとってる
  • なんで映像に対して音が悪いの → 映画館が選んだ音響設備の都合だから知らない

想像だけど、こんな感じなのでは。

名称に追加料金を取ってブランディングしているのに、こういうところが雑なのが4DXやIMAXと違う。 それでも安ければ別にいいけど、IMAXレーザーと同じ料金。

それは低評価になりますよ。

そもそも、同じ土俵に乗せて比較したのが失礼だったと思う。申し訳ない。

そんなわけで、最後に★マークで評価をつけて終わる。

評価 名称
★★★★★ IMAXレーザー
★★★ 4DX
ScreenX

スマホでもポーズマニアックスのランダム・ポーズを使う

少し前に、ポーズマニアックスのランダム・ポーズを使った絵の練習法が話題になっていました。


余とお絵描きしようや~ #1 れんしゅう・理論編

どんな練習法か簡単に説明すると、最初にポーズマニアックスのポーズを1分程度じっと見続けて、それから目を閉じて脳内でそのポーズを再現させてみるというものです。

動画だと32:45あたりから。

これが面白かったので自分でもやってみたいと思ったのですが、ランダム・ポーズはFlashを使って実装されているので、今時のスマホでは使えないようです。

Flash、昔はちやほやされてたのに、ジョブズに嫌われたばっかりに今やすっかり不憫な子扱いだな……

で、簡易版を作った

やりたいのはただランダムにポーズを出したいというだけなので、スマホでも使えるブックマークレットを作りました。 なお、Flashはパソコンでも2020年末でサポート切れとなりおそらく各ブラウザで使えなくなると思われますが、これなら2021年以降も使えます。

jp.techcrunch.com

使い方

iPhoneの場合の準備。

  • まずブラウザで適当なページ(あとで書き換えるのでこの記事ページでもどこでも良い)をブックマーク登録します
  • 右のボタンを押す

  • ブックマークから編集を押して、上の名前欄を「ランダムポーズ」など好きな名前にして、下のアドレス欄を消してから先ほどコピーした文字列をペーストします

あとは登録したブックマークを開くとランダムでポーズページが開きます。

別のポーズにしたかったらもう一度ブックマークを開くだけです。

Androidの登録方法はよく知らないけど、まあ、似たようなやり方で登録できると思います。 わからなかったら、「ブックマークレット登録 Andoroid」あたりでググると出てきます。

制限

ポーズマニアックスのスマホ用ページを使ってるので、その制限があります。

  • アングルは自分で回す必要がある
  • 36アングル分勝手に画像を読み込む仕様なので、データ転送量が少し多い

技術的なこと

  • やってることはposeカテゴリスクレイピングして集めた記事番号からランダムで選んだページにジャンプしているだけ
  • 記事番号が微妙に歯抜けのため、全1127ポーズをそのまま配列に入れてるので長くなってる
  • パソコン版は40572 PICSとあるので40572 / 36 = 1127ポーズだと思われるが、poseカテゴリは1114ポーズなので13ポーズ足りない。他のカテゴリはアングル(1141)・性別(1132)・種別(1165)とどれも1127より多いので、ゴミが入ってそうだと思って少ないほうかつ名前がそれっぽいposeにした

Wordpressのログインパスワードを忘れてリセットメールも飛ばない時に何とかする方法

MySQLを直接いじれば何とかなるだろうと思い、やってみたら実際に何とかなった記録。
Wordpressのバージョンは3.6.1。

DB接続情報を調べる

ここら辺の情報も忘れちゃったうっかりさんは、wp-config.phpに直書きされているのでそれを見よう!

$ view wp-config.php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wp_user');
define('DB_PASSWORD', 'wp_password');
$table_prefix = 'wp_';

MySQLのシェルを起動させる

$ mysql <DB_NAMEの値> -u <DB_USERの値> -p
Enter password: <DB_PASSWORDの値>

今のWPログインユーザーを調べる

ログイン情報のテーブル名は$table_prefix + usersなので、上記の場合のテーブル名はwp_usersになります。

mysql> select user_login, user_pass from wp_users;
+------------+----------------------------------+
| user_login | user_pass                        |
+------------+----------------------------------+
| site_admin | 5f4dcc3b5aa765d61d8327deb882cf99 |
+------------+----------------------------------+
1 row in set (0.00 sec)

以降の例ではsite_adminさんのパスワードを変えてみます。

パスワードを変更する

mysql> update wp_users set user_pass = md5('<新しいパスワード>') where user_login = '<変更するログインユーザー>';

パスワードを変えるにはmd5関数に新しいパスワードを渡し、whereのuser_loginに変更したいユーザーを入れるだけです。

site_adminさんのパスワードを'new password'にする場合、

mysql> update wp_users set user_pass = md5('new password') where user_login = 'site_admin';

これでOKです。

実行後、user_passの欄が変更されていれば成功です。

mysql> select user_login, user_pass from wp_users;
+------------+----------------------------------+
| user_login | user_pass                        |
+------------+----------------------------------+
| site_admin | ac1ef17c2db40995e9fdd40b04a5a649 |
+------------+----------------------------------+
1 row in set (0.00 sec)

あとは、いつも通りにログインできるはずです。

おまけ(1)

Simple Login Lockdownプラグインを使っている場合、既に規定数以上ログインに失敗しているであろうので、一時的に無効にしておきましょう。
プラグイン内のlogin.phpファイルのinit関数の中身をコメントアウトすれば無効になります。

$ vi wp-content/plugins/simple-login-lockdown/inc/login.php
public static function init()
{
    //add_action('plugins_loaded', array(self::instance(), '_setup'));
}

※無事にログインできたら、忘れずに戻しておきましょう。

おまけ(2)

メールが飛ばないのはSMTPサーバーを動かしたく無かったからなのですが、WP Mail SMTPプラグインを入れて直接GMailなどの外部SMTPを使えばよさそうです。