Programs


音楽 リズムづくりのための試作プログラム


Activity Logs

開発中のWEB教材や、それに関わる論文の進捗などを報告します。

TwitterやFacebookなど多くのSNSがありますが、あえて、テキストサイトにこだわります。

直近20件を表示しています。

過去ログはこちら

以前,作成・公開した音楽づくりアプリをもとに,新しく「テクミュ(Tec-Mu)」という音楽づくりWebアプリを公開しました。

「テクミュ(Tec-Mu)」
https://tec-mu.com

バージョンは書いてませんが,1.0 になります。
Google Chrome, Edge での動作を確認しています。
Safari はもっさりぎみです。
*IE など,WebAudioKit をサポートしていない「古いブラウザ」では動きません。

課題(問題点)として,

・iPhone, iPad などのモバイル・タブレット端末でも,スムーズに動かせること
・音に関する機能をより充実させること

など,色々な改善点が残っています。

これらは,随時アップデートしていく予定です。
アップデート内容は,随時,このホームページでも報告していきます。

また,開発時のメモなども,公開していきたいと思います。

Git Hub では,ソースコードを公開したいですね。
(コード内容を公開するのは,とても恥ずかしいですが・・・。)


最後に,本内容とは無関係ですが,小学校に咲いていたキンモクセイの写真を。

秋です。

教材開発は難航しています。
いや,あれこれ手を出しすぎて,難航してしまいました。

Nuxt Type Script で開発している中,どうもコードが煩雑になっている気がして,もっと綺麗に書けないものかな・・・と微妙な雰囲気に。
今にして思えば,ちゃんと仕様書を記録,書いていればそんなことにはならなかったのだろう。

そこで,Canvas + JavaScript で,アニメーション豊かな教材開発をしようとしたのですが,Canvas を使用した場合,要素の判定が非常に面倒くさい!

どれくらいかというと,例えば,画面に表示されている,テンポとか拍とかを変更するために,それらをクリックして変更しようとした際の場合。

(1)まず,テンポとか拍とかを描画した位置情報を変数に格納しておく。
(2)そして,Canvas に対してクリックがある度に,マウスの位置情報を取得して,(1)で格納した変数から,マッチするものがあるかループして探す。
(3)それに応じて,任意の関数を呼び出す。
・・・ここからさらに,変数を設定するコードを用意しなければならない。

めちゃくちゃ面倒。
いま,自分がつくりたい教材には全く向いていない。

Canvas の描画自体はとても素晴らしいです。
HTMLのタグ+JavaScript ではできないアニメーションを実現してくれます。

が,

これは,ちょっときつい。

ほかに救いがないか,今週は,「Adobe Animate(昔のFlash)」や「Unity」まで手を伸ばしてみました。

結果,それらを習得する時間が足りないので,それも頓挫。

Adobe Animate に関しては,まず日本語資料が少ない。
「Adobe Edge Animate 標準ガイドブック [CC/1.5対応] (DESIGN & WEB TECHNOLOGY) (日本語) 大型本 – 2013/7/20」

これぐらい。しかも,2013年の本で情報は古く,Edge Animate という,FlashAnimate の間にあったソフトウェアの解説本。Edge Animate は,無償でダウンロードできるということが売りでしたが,現在は無情にも「Edge Animate、Edge Inspect、Edge Reflow、および Edge Code。Adobe Edge のすべての製品が Creative Cloud から削除されました。」とのこと。さすが,Adobe。大企業。

Unity に関しては,資料は豊富にあるものの,リファレンスを読む限り,自分が作ろうと思っている教材を作るのはかなり手間そう(どう取りかかって良いか,想像できない)。
例えば,レスポンシブルデザインで出力する方法や,要素の内容を動的に変更したり,追加したり,Javascript と連携したり(これはできそうだったが),それらを習得している時間が足りない。

そして,最終的には,今年の頭に取り入れていた「Nuxt Ts」に戻ることにしようかと,今考えているところです。最悪

さらに,久しぶり Nuxt TS で作っていたプロジェクトをビルドしたところ,fibers モジュールでエラーが頻発。

ERROR ## There is an issue with node-fibers ##

サーバーが起動しません。

解決方法として,XCode のコマンドラインツールの再インストール(ちょうど,XCode の V.12 がリリースされ,コマンドラインツールもv. 12のGMが配付されていた)。
参考:https://developer.apple.com/download/more/

次に,fibersのアンインストールと,再インストール。
これでビルドできました。

参考:「fibers.nodeが見つからないため、流星バンドルが失敗する

仕様は大きく変わったので,やや1から作り直しに近い部分もありますが,使い回せる部分もあるでしょう。根気強くコーディングしていくのみです。

大会発表まで,あと1ヶ月(切りました)。

====================

ただ,Type Script に関する知識はかなり身についたし,最新のJavaScript の動向も追えている。ループ処理もかなり理解したし,Canvas に取り組んでいたことは無駄ではなかったでしょう。あと,エディターとして,Visual Studio 使うようになりました。大変便利。

Canvas で実装していたView の部分を,HTMLのタグで書き出すようにコーディングしなおせば済む(暴論)ことなので,問題はWEB Audio APIの部分ですね。ここをいかにクリアするか!

さて,昨日,passwordHasher を使って「解決した」と書きましたが,色々運用試験してみると,全く解決していないことが分かりました。

そこで,現在,SimplePasswordHasher ではなく,BlowfishPasswordHasher を使うことで対応しています。

具体的には,次の通りです。

1)Controller にて明示

AppController.phpにて,BlowfishPasswordHasherを使うことを明示します。つまり,class を宣言する前に次の行を入れます。

App::uses('BlowfishPasswordHasher', 'Controller/Component/Auth');

そして,AuthComponent が BlowfishPasswordHasher を使うように設定します。

public $components = [
      'Auth' => [
        'authenticate' => [
          'Form' => [
            'passwordHasher' => 'Blowfish',
          ],
        ],
      ],
      'Session',
    ];

Auth の下には,loginAction や,loginRedirectなど色々設定すべきプロパティがありますが,今回は割愛。

とにかく,Form で passwordHasher に Blowfish を使うと明示。

また,前回の記事で,コントローラー内部のパスワードの保存時に,直にPasswordHasher を使って暗号化し,保存していた部分は全て削除
受けとったデータをそのまま,保存するようにします。

暗号化は次の2)Model 側の,beforeSave を用います。
(昨日は,使わない・・・って書いたのに)

2)Model で明示

昨日の記事では,BeforeSave なんぞ使わないとしましたが,使います。

パスワードを保管するModel,例えば User.php にて,classの宣言前に,次のように明示。

App::uses('BlowfishPasswordHasher', 'Controller/Component/Auth');

そして,class の中で,beforeSave 関数を設定。

public function beforeSave($options = []) {
  // パスワードの暗号化
  if (!empty($this->data[$this->alias]['password'])) {
      $passwordHasher = new BlowfishPasswordHasher();
      $this->data[$this->alias]['password'] = $passwordHasher->hash(
        $this->data[$this->alias]['password']
      );
  }
  return true;
}

これでどうでしょうか。

前回,CakePHP2.x系で大丈夫じゃわい!

と書きましたが,今回のように,公式チュートリアルどおりにやって動かないときに,ちょっと不安になってきますね。
マイナーバージョンは更新され続けているとはいえ,メジャーアップデートは4までいっちゃいましたからね・・・。切り捨てられているような雰囲気もじゅうぶんに感じます。

うーん,今後は,CakePHP4系に乗り換えた方がよいのかな。

もしくは,Laravel
フレームワークなので,学習コストが低ければ,CakeでもLaravelでも良いのですが。Ruby on Rails は,別にRails サーバー立てないとダメなので,レンタルサーバーだと厳しいですね。いちいち,Herokuとか使わないといけないのは,避けたい・・・。

この記事は,続きがあります。
下の通りやって動かない場合は,こちも参照してください。


私はCakePHP2.x系(今は,CakePHP2.10.x)で,サクッとWEBサイトを作りたい人です。今,CakePHPは4までリリースされており,PHPのフレームワーク自体も,「LARAVEL」が優勢だと聞きました。Ruby on Rails とかは最近どうなんでしょうね。どれぐらい使われているんだろう。
でも,それらを新しく勉強してサイトを構築する気はなく,CakePHP2系で十分だと思っています。もしくは,WordPress。あるいは,それらを並行して使う。CSSやJSの書き出しはwebpackを走らせれば良いので(SCSSも,TypeScriptも使える)。

さて,CakePHP2での大事な機能の1つに認証機能があります。
ユーザーのログインを管理するものですね。

大概は,ユーザー名とパスワードをフォームに打ち込んで,DBにあるデータと参照し,OKならログイン状態となります。

が,今リリースされているCakePHP2系では,どうもそこがうまく動きません。(私の環境だけ?!)
CakePHPの公式ドキュメント通りにやっても,認証がうまく機能しません。

「CakeBook 2 系:認証」
「CakeBook 2 系:シンプルな認証と承認のアプリケーション」

原因を辿っていくと,どうやら,Core.phpファイルにあるSecurity.Salt 値を,パスワードを平文から暗号化するときに,読み違えていることが分かりました。

おそらく,次のタイミングで,違う値を読んでいるのだと思います。

・平文のパスワードを,DBに書き込む際(beforeSave)
・平文のパスワードを,DBから読み出す際($this->Auth->login() )

なので,DBにパスワードを書き込む際に,beforeSave を使って自動的に暗号化されないようにします。すべて,コントローラー側で,パスワードを暗号化します。

具体的には次のような具体です。
(モデルでは,beforeSaveを使って暗号化しません。)

0)パスワードを暗号化するライブラリを読み込み

// コントローラーのいずれかの場所で
App::uses('SimplePasswordHasher', 'Controller/Component/Auth');

1)新しくユーザーを増やす場合

// POST されてきたデータを変数に代入
$data = $this->request->data;
// パスワードをハッシュ化
$password = $data['User']['password'];
$passwordHasher = new SimplePasswordHasher(['hashType' => 'sha256']);
$password = $passwordHasher->hash($password);
// POSTされてきたデータを上書き
$data['User']['password'] = $password;
// DBに保存
$this->User->create();
$this->User->save($data);

2)パスワードを再設定する場合

// ポストされたデータ($user)にて,
// パスワードを暗号化
$password = $user['User']['password'];
$passwordHasher = new SimplePasswordHasher(['hashType' => 'sha256']);
$password = $passwordHasher->hash($password);

// 上書き用のデータを作成
$data = [
  'User' => [
    'password' => $password,
],];

// 任意のIDの User データを指定
$this->User->id = $user['User']['id'];
// DBに保存
$this->User->save($data);

上の具合です。

ちなみに,この例では「sha256」を使っています。
Authコンポーネントを呼び出す際にも,パスワードはsha256を使うと明示してあげてください。

示す箇所は,おそらく,AppController.phpになると思います。

例えば,次のようになります。

public $components = [
  'Auth' => [
    'authenticate' => [
      'Form' => [
        'passwordHasher' => [
          'className' => 'Simple',
          'hashType' => 'sha256',
]]]]];

以上です。

本番環境→開発環境の移行メモです。

ローカルにあったWPファイルが,なんやらかんやらで使えなくなったので,FTPサーバー先から開発用にダウンロードしてきました。

そして,Mac の Apache で動かせるようにフォルダを配置します。
~/Site の下ですね。

さて,この先です。
本番環境のMySQLデータをエクスポート,ローカル(Mac)のMySQLにインポートさせます。

しかし,これだけでは動かないので,次の作業を行います。

1. DB接続先の修正

"wp-config.php"のDB接続情報を書き換えます。

2. パーミッションの修正

こちらのサイトを参考に修正します。

参考:「WordPressで推奨されるパーミッション設定について

ただ,今回ローカルのMac で動かすにあたって,Apache が_www グループで動いているため,ファイルやディレクトリにグループの読み取り権限を与える必要がありました。
(Permission denied とApacheのエラーログに出力される。)

なので,上の参照サイトを例に,WordPress を置いたフォルダから,ターミナルで次のコマンドを実行します。

$ find ./ -type d -exec chmod 755 {} \;
$ find ./ -type f -exec chmod 644 {} \;

3 .htaccess の修正

RewriteBase と, RewriteRule を書き換えます。

RewriteBase /ルートからのパス
RewriteRule . /ルートからのパス/index.php [L]

参考:「WordPress引越しで403 Forbiddenが起きる原因と対処法
参考:「WordPress(ワードプレス) 移行での不具合事例:トップページ以外表示されない

4. DB情報の書き換え

本番環境のドメインを持っているので,このままでは動きません。置換します。

置換のためには,「Search Replace DB」を使います。
MySQL8にも対応した最新版が出ているので,公式ホームページからダウンロードします。

参考:「【WordPress】DBの置換には「Search Replace DB」を使おう

公式ホームページ

ページの下の方に 3.xバージョンや 2.x バージョンも置いていますが,最新のもので良いでしょう。メールアドレスを入力して送信すると,ダウンロードリンクを送ってもらえます。

ダウンロードしてきたものを,WordPress のフォルダにコピーし,アクセスします。

「Search Replace」の「replace」に「本番環境」のURLを,「with」に「開発環境」のURLを入力します。

データベースへの接続情報を入力,確認した後,「Do a safe test run」を走らせます。その後,テーブル名など確認次第,「Search and Replace」を実行します。

置換は,「http,https のプロトコルを含めたURL」と,それを含めない「//」以下のURLの2回で実行しておくと良いかと思います。

また,https を http に置換する必要もあるかもしれません。

本番環境なら,「Search Replace DB」は「Delete me」で消した方が良いですね。
開発環境でも,動作を確認して必要なくなったら,「Delete me」で消しておきましょう。


以上になります。

本番環境をhttps で動かしていて,開発環境がhttpでしかアクセスできない場合,意図しないリダイレクトが生じるかもしれません。
その場合,別のブラウザで開いたりするとうまくアクセスできると思います。

「2K20▼04 GHOST VENUE メモリアルパッケージカード」が届きました。

楽曲がダウンロードできるのはいつになるのかな。03もまだですし。

「会然TREK 2K20▼04 GHOST VENUE Tシャツ」が買えなかった無念。

発売日 13:00 からひたすら粘ったのに,PayPalに進む手前で売り切れた無念。

発売,30分でちょうど,完売してしまった無念。

忘れまい(02, 03 のTシャツはもっているので,04 があればコンプリートだったのに)。


実家から,今の自宅までの道のり,約187km(思ったよりなかった)。

これをしのぐために,毎回ブラックコーヒーやら,メガシャキやら,眠眠打破やら,みたいなものを,水と一緒に積んで運転するのだが。

その日は朝,「FUJI ROCK FESTIVAL'20 LIVE ON YOUTUBE」のDAY2 リピート配信があり。

そこに平沢進が出るというので,見たわけです。

*本当は前日放送だったのだが,都合で見られず,リピート配信に。

てっきり,平沢進のライブ1時間,まるまる再放送するのかと思ったら,どうやら抜粋のようで。

何を抽出するのかと思ったら,「フ・ル・ヘッ・ヘッ・ヘッ」。オリジナルが1984年だというのだから,すごい。

1曲目の,RADWIMPSの「スパークル」と,全然違う音楽性。

「スパークル」は,「君の名は。」の印象が強い。あれがなかったら,どうだったんだろう。

しかし,それでも「フルへ」で完全に目が覚めるわけで。

それも,今はアーカイブ配信で見られるではないですか。

すげえっ!

しかし・・・,しかし,一方で「夢みる機械」の配信が終わってしまった。

期間限定公開だったのか・・・(いまや,非公開)。

ライブの全容は,一刻も早く,BD化してほしい。

04の前回の無人ライブまでのものを,まとめてDVD(BDの方がいいな)化して販売するのだろうか。

ぜひ,販売して欲しい。とくに,視聴できなかった 03 の東京公演がみたい!

いつになるのか!

あすは,終戦記念日(8/15)です。

この時期になると,(余裕があれば)毎年見ている映画があります。

*昨年は,研究報告や論文の執筆の〆切が重なっており,それどころではなかった。
いや,今年もそれどころではない。
現在,JavaScriptCanvasを駆使して,教材開発を進めている最中である。

さて,終戦記念日に伴う映画はたくさんありますが,個人的にはとくに次の映画が大事です。


1)日本のいちばん長い日

Amazon Prime で視聴可能です。
仲代達矢が大好きな自分にとって,彼がナレーションをしているだけで価値がある。
また,米内光政を演じる山村聡や,阿南惟幾を演じる三船敏郎も素晴らしい。
音楽は佐藤勝。サウンドトラック「フォービート・アルチザン 岡本喜八の映画音楽」や,「佐藤勝作品集 第2集(戦争映画編)」に音源が収録されています。渋谷のTSUTAYAや,宅配レンタルで借りられるでしょう。

映画自体は1967年公開なので,カラーでも不思議ではないのですが,森師団長らが若い将校(畑中健二少佐(黒沢年男ら))にクーデーターを起こされるシーンがショッキングなので,白黒になっていると聞いたことがあります。

*畑中少佐らの,感情的な演技もまた素晴らしい。

タイトル文字が出るまでのイントロが長いのも特徴の1つ。
そして,昭和天皇の顔が一切映りませんね。絶妙なカメラワークです。

個人的に一番好きな台詞は,終盤の次の台詞です。

「しかし,今更枢密院会議を開き,改めて終戦の議を決定するっていうのも・・・。もう,事実上,終戦は決まってしまっているんですからねえ。」
「いや,そうでもないよ。」
「は?」
「あらゆる手続きが必要だよ。儀式と言った方が正しいのかもしれないがね。日本(ニッポン)帝国のお葬式だからね。

最近,刷り直しがあり,それも見ましたが,そちらはどうも微妙でした。
陸軍将校に拳銃を突きつけられて脅されるNHKのアナウンサー役が女性だったのも,「え?」って思ったところの1つ。事実をもとにしたフィクションとはいえ,それはありえまい。

なんというか,今の平和な世の中しか経験したことがない人が,戦争映画の緊迫感を出すのは難しいのでしょう。なにかしら違和感があります。それは,この映画の刷り直しに限った話ではないです。

平和は大事です。映画の最後にも,そのメッセージが入っています。
(毎年,この時期に(視聴率とか気にせず)放送すれば良いのに。)


2)沖縄決戦

こちらもなかなか壮絶な映画。そして,名作。
そして,Amazon Prime で見れます。
(先日まで,有料レンタルだった気がするのですが,今みると,Prime 会員は無料ですね。勘違いでしょうか。そうでしょう。)

タイトル文字も素晴らしい。

そして,なんといっても,小林桂樹丹波哲郎,仲代達矢の3人の演技が大変素晴らしい。

「通信兵,司令部へ連絡。」
「はい」
「本島西海岸一帯は,米艦艇のため,海の色が見えない。」
「なに?海の色が?それじゃわからん!」
「船が7分に,海が3分。分かったか?船が7分に海が3分だ!

上が映画内での名台詞です。オマージュされることもありますね。

*例えば「トップをねらえ!」,とか。

特攻兵の手記の読み上げも心にきます。

この映画を通して,私の一押しは仲代達矢のかっこよさ(あの声!)ですが,とにかく戦争の悲惨さを丁寧に描写している点がすごいです。名作。

あと,こちらの音楽も佐藤勝です。
(1)で挙げたサウンドトラックに入っています。


ほかにも色々ありますが,最新の作品はこちらでしょう。

3)この世界の(さらにいくつもの)片隅に

Amazon Prime 「この世界の(さらにいくつもの)片隅に」

私の住んでいるエリアでは,「さらにいくつもの」は上映されていませんでした。

そのまま忘れていたのですが,先ほどAmazon Prime をみると,有料で配信していることを知ったため,早速購入(2,500円)。

映画はまだ途中までしか見てないので,内容についてのレビューはしませんが,とにかく「色使いが丁寧!」
新海誠とは,別の綺麗さ。新海誠は「リアルな綺麗さ」ですが,こちらは「抽象的な綺麗さ」かな,と。

明日,続きを見る時間があれば,見ます
(頑張って,見る時間を作らなければ・・・。)


しかし,この映像の綺麗さ(HD)が2,500円で買えるなら,Blu-rayの魅力はなんでしょうね(4,066円)

ストリーミングも,いつまでも見られるという保証はありませんが,すぐに見られなくなることはないでしょう。Blu-ray や DVDだって消耗品ですし,傷が付いたら見られなくなります。そうすると,データ有利な気がしますね(場所も取らないし)。

電子書籍云々のはなしもありますが,DVD・Blu-rayといったメディアも,インターネットに押されていくのでしょうね。

では,明日,「さらにいくつもの」の続きが見られる時間ができるように,メインの研究をしっかりと進めていきます。
(最新のJSや,Canvasの資料が少ない・・・。個人のWEBページは信用ならんものも多いので,電子書籍が頼り。)。

児童が夏期休暇に入った「ここ2週間」が勝負の分かれ道です。
ここで進まないと,9月は地獄10月はさらに地獄


「地獄」の話は,いまは,机の下に置きます。
今は,楽しい思い出話をします。


スキーフリーは、クリス・ピリヒによって作成され、WindowsとDOS用のMicrosoft Entertainment Pack 3で1991年10月にリリースされたシングルプレーヤーのスキーコンピュータゲームです。プレイヤーは山の斜面でスキーヤーを操作し、障害物を避けながら時間との勝負をしたり、ゲームモードに応じてスタントを行ったりしてポイントを獲得していく。

SkiFreeはリリース時にそのシンプルさとビジュアルに注目した批評家の間で好評を博しました。このゲームはMacintoshに移植され、数年後にはゲームボーイカラーとiOSにも移植されました。Pirihは、オリジナルのソースコードを再発見した後、32ビット版のWindows版を無料でリリースしました。SkiFreeは今でもゲームコミュニティの間で人気があり、フルランを終えた後にプレイヤーを追いかけてくる「Abominable Snowman」でよく知られています。

SkiFree
www.DeepL.com/Translator(無料版)で翻訳しました。

私が小学校のとき,学校のパソコンルームに,Windows3.1を登載したPCが10台ほどありました(メーカーは覚えていません。NECか富士通かな?)。
そして,その教室の後ろ側に「FM Towns」が2台あったことも,よく覚えています。
私の小学校時代には,すでにWindows95がリリースされており,卒業前には,Windows98もリリースされていたのでしょうが,学校では相変わらずWindows3.1のママでした。
おそらく,あの後,Windows XP を登載したPCが導入されたのでしょう。

Windows ME なんて,良く分からない立ち位置のものもありましたね。あれは一体なんだったのでしょう。

*この頃のMacは冬の時代でしょうか。


小学校のPCには,確か,FDドライブが2つありました。
Aドライブ」と「Bドライブ」です。
MS-DOS,そしてソフトウェアを起動させるために,両方のディスクドライブを使用して起動していたのですね。

*よく,PCの記事で「なぜ,PCのドライブはCから始まるのか?!」なんてものをみます。
そして,FDDが「Aドライブ」として搭載されていたときには,「Bドライブは,なぜないのか?!」だったような気がします。

*将来のWindowsには,CやDといったドライブレターを付けることを止めることもあるのかな?(MacやLinuxのように管理する)
でも,そうすると,絶対パスの指定が変わって,過去の遺産(ソフトウェア)が使えなくなりそうで,まずなさそうですね。
昔のソフトが動く(最近はそうでもない?)ことが,Windowsの魅力の1つです。

しかし,当時の私が小学校のPCを使うときには,既にHDD(Cドライブ)を積んでいて,デフォルトでMS-DOSが起動し,そこからWindows3.1が自動的にブートするようになっていたので,FDDからPCを起動することはありませんでした。

*しかし,Windows3.1からシャットダウンを選択しても,自動的に電源は切れず,「MS-DOS」に戻っていました。そこからどうやって電源を切っていたのかな?覚えていません。電源ボタンをブチッと押していた気もします。

*今振り返ると,「CDドライブ」も付いていた気がします。
そうすると,途中でPCが入れ替わったのかな。
FDD2機にHDD,そしてCDドライブなんて,豪華な環境を備えたPCを多数もっていたとは考えにくい。


ここからが本題です。前置きが長い。

コンピュータルームでは,「ソリティア」や「マインスイーパ」といったゲームが遊べました。また,自宅で「窓の杜」でダウンロードしたフリーソフトのゲームをFDDに入れていけば,学校のクラブ活動の時間に遊ぶ,なんてこともできたりして。

*当時はまだ,インターネット回線(ダイヤルアップ)が自宅に通っている家庭は少なかったです。私の学校では1学年に数人ぐらい,かな?10人いなかったのでは?だから,私なんかは,自宅で面白いフリーソフトを発掘しては,FDDに収まる容量なら(私のときには1.44MB),学校に持って行っていました。

「窓の杜」を久しぶりに見てみましたが,ニュースサイトになっていますね。
また,市の中央図書館には,「窓の杜」に掲載されているソフトウェア集のカタログ(データの入ったCD-ROM付き)が置いてあったりしたのですが,今見るともうありませんでした。残念。

いま私が勤務する小学校では,PCに「ゲーム」なるものは,パージされています。「ソリティアやマインスイーパは,マウスの操作を覚えるのに適している」なんてことを,読んだか,聞いたことがあるのですが。
そして,それらのゲームは,「攻略サイト」もなく,解法が1つのゲームでもないので,とても勉強になると思うのだけれど,「ゲーム=勉強に邪魔なモノ」で括られてパージされるのだとしたら,ちょっともったいないですね。

*いや,もしかすると,いまのWindows10には「ソリティア」も「マインスイーパ」もないのかもしれない?家のPCで見た覚えないですね。


さて,ここで,冒頭にちらっと触れた「FM-TOWNS」です。

いや,正確には,その「FM-TOWNS」にのみ入っていた「Ski」なるゲームの話です。

ゲーム内容は単純。

プレイヤーは,雪山をスキーで下っていきます。
操作方法は,基本的に,マウスの位置(左右)でプレイヤーを動かします。
もしくは,十字キーの右左だったかな?

途中,プレイヤーは,木や転がっている石にぶつかってコケたり,犬がいたりして邪魔をしてきます。その中で,いかに早く,滑走するか,またマウスを駆使してテクニカルにコースを下っていくか,みたいなゲームだったと思います。

しかし,このゲーム,グロテスク要素が1つ入っているのです。

滑走距離が1km(2kmだったかな?)になると,急にクマ(イエティとかって記事もみました)が,猛スピードで追いかけてきます。

捕まると,食べられます。
ゲームオーバーです。

あれは,結構恐怖でした。

ならば,上に登ればいいじゃないか!と,キーボードの十字キーの上をひたすら押して,登ったところ,これも一定のところで急にクマが襲ってきます。

基本,目標(クリア)のないゲームなので,そういったギミックを用意しておいたのでしょうね。

もしくは,猛スピードでクマが追いかけてくることで,それからどれぐらい逃れることができるか,という,新しい目標が設定されるようになっていたのかもしれません。


さて,このゲーム,実は,今も遊べます。

「The Most Officialest SkiFree Home Page!」

Wikipediaによると,上が作者による公式ホームページらしいです。ここに,「Download」という項目があり,64bitのWindowsでも動くと書かれています。すごい!

また,ブラウザ上でもプレイできるように,有志(?)が作成しているWEBアプリが,アーカイブとして閲覧できます。

https://archive.org/details/win3_SKIFREE

試しにやってみたところ,懐かしい,動きました。

1km までが スコアの付く滑走距離で,2km になると,クマ(か,イエティ)が待ち構えています。食われました。


公式ホームページをみると,クマではなく「Abominable Snow Monster」らしいですね。うーん。

みなさまも,どうぞWEB版で手軽に体験してみると良いと思います。

素晴らしき,レトロゲーム。

「WordPress」のアーカイブ機能を使ってログページを作っている。

しかし,「Google Search Console」からの定期連絡で,404エラーを吐いているとのお知らせ。
どうやら,記事数が「0」の場合に,自動的に「404エラー」(Not Found)を吐くようになっているらしい。余計なことを。

避けるためにはどうするか。

記事数が「0」にならないように,常に先行して記事を投稿しておかなければならない。公開日時を指定して。

残念ながら,自分にはそんなに記事を書けるほどの,ネタストックがない。残念ながら。

しかし,今日はある。近くのレンタルDVD店の新作コーナーにて次の2点を借りた。

「キューブリックに愛された男」(2015)
「キューブリックに魅せられた男」(2017)

パッケージが似ているため,最初,レジに持って行った際に,

「お客様,同じ商品が入っています」

と注意していただいた。ありがとう。

日本公開年は両方とも昨年らしい。
なるほど,それで今頃レンタル開始の新作扱いなのか。


さて,キューブリックといえば・・・,

「突撃」(1957)「スパルタカス」(1960)あたりは,初期作品だが,本当に名作。
カーク・ダグラスと組んで,最高の出来映え。
「突撃」に描かれている理不尽さは,今見ても通じるところがある。
また,「スパルタカス」は長編映画で見るのに体力がいるが,映画史の契機になっていることを,漫画『赤狩り』「トランボ ハリウッドに最も嫌われた男」(2015)で知ると,面白さが増すので吉。
ちなみに,『赤狩り』と「トランボ」は,人権についてどちらも大変勉強になるので,時間に余裕があればぜひ見るべき(漫画『赤狩り』は,タイトルがどぎついが,別に左派をプッシュしたり,非難したりしているわけではない)。

その後,「ロリータ」(1962)
こちら,難解な創り(疲れる展開)になっており,残念ながら良く分からない。
ナボコフの原作も先に読んでいたが,これも難解。
いま,Wikipediaをみながら,そんなストーリーだったかしら,なんて思い返している。
そういえば,物語中盤にて,ロリータの母親は,「主人公が惚れているのは自分だ」と思っていたが,実は「娘目当て」で,「逆上して家を飛び出したところで交通事故に遭う」という,嘘みたいな展開だったことを思い出した。
「交通事故」による急展開は,いろんな小説で都合良く使われている。
山崎豊子でさえ,唐突に用いるものだから,それが出てきたときには,「え?」と声を出してしまった。

ロリータから一転,「博士の異常な愛情」(1964),こちらは大変素晴らしい。
ストーリーも非情に簡潔。
とくに,冒頭のB-52に給油するシーン,そしてそのBGMがとても素晴らしい。
その冒頭のBGMが入ったサントラを探したことがあるのだが,結局見つからなかった。

「2001年宇宙の旅」(1968)は,えらい高く評価されているが,「現代っ子」な私にとっては,機械(ハル9000)が歌う「デイジー・ベル」が元祖ボーカロイドだったり,CGっぽい演出が実は手書き(Wikipediaしらべ)だったりすることには,あまり魅力は感じないかった。
この映画で使われているレベルの合成音声やCGは,個人でも実現可能なぐらい,もはや当たり前の技術になっている。
そして,シナリオが(私にとっては)難解すぎる。
結局,「装甲騎兵ボトムズ」の最終話がかなり影響を受けているな!ぐらいの印象。

「シャイニング」(1980)は,ホラー映画枠で有名らしいが,個人的にはあまりホラーさは感じない。
主人公の子どもが,三輪車にのって,広い廊下を走るシーンを撮影するのは,さぞ大変だったのだろう!という印象。
あとは,「レッドラム」という言葉が「金田一少年の事件簿」にも出ていたなーぐらい。

さて,キューブリックといえば・・・,なんといっても,「フルメタル・ジャケット」(1987)に出てくるハートマン軍曹が最高である。最高だが,見ていてつらい。
後半はベトナム戦争映画に共通する鬱展開だが(前半もじゅうぶんに鬱展開である),ラストシーンのミッキーマウス・マーチは素晴らしい。

「バリー・リンドン」(1975)「アイズ・ワイド・シャット」(1999)はしっかり見ていない。見なければ。


そして,キューブリックといえば・・・,なんと言っても「時計じかけのオレンジ」(1971)である。日本版予告編から,その異端さが窺える。

まず,冒頭の映像。
怖い。「シャイニング」より遙かに怖い。

そして,ウォルター・カルロス(ウェンディ・カルロス)のシンセサイザーが,その不気味さを増幅させる。
ウォルター・カルロスのシンセサイザーは大変勉強になる(美しい)ので,サウンド・トラックはぜひ入手すべき。

主人公が「ベートーヴェン」といわず,「ルドヴィヒ」と呼ぶのも,たいへん素敵。

しかし,大変残念なことに,一番素敵なシーンがDVD/BD版には含まれていない。

この映画は,かなりバイオレンスなシーンがいくつもあるのだが,その際に,主人公や女性の局部も描かれている。

日本の劇場公開版では,当時の法律により,そのシーンになると,急に「丸」が出てきて,局部が覆い隠されていたらしい。

私が最初,LD(レーザー・ディスク!)で見たバージョンは,その劇場公開版であったため,この「丸」を含んだ表現が用いられていた。それが非情にシュールであり,作品の極度なバイオレンスにユニークさが含まれ,この作品の魅力の1つになっていたように感じる。
(黒い丸だった気がするが,ネットの海を見ていると,どうやら白い丸らしい。黒だった気がするのだが・・・)

しかし,現在,完全版と称して出回っているDVD,BDには,残念ながらこのモザイクがない。そのため,バイオレンスさが増し,あの絶妙なバランス感が崩れているように思う。

残念ながら,そのLDは引越の際に手放してしまった。惜しいことをした。
あのシーンをもう一度みる方法はないものか。
どうにか日本の劇場公開版のBDを出してもらえないものか。

この作品を引用した作品も数知れず。

最近(?!)だと,「ビブリア古書堂の事件手帖」のネタの1つになっていた。
私も原作は読んだが,正直あれは良くない。なぜなら原作には音楽がないから。
「雨に唄えば」は原作小説には出てこないのだから。

あと,安易なオマージュ(失礼)も良くない。奈須きのこの「空の境界」のアニメ版。あれに,敵役が「雨に唄えば」や第9を歌いながら,主人公を襲うシーンが出てくるが,どうみても「時計じかけのオレンジ」のオマージュ(悪く言えばパクリ)である。知ってしまったら最後,作品がチープになってしまう。せっかく梶浦由記がいたのだから,それを使えばよかったのに。

加えて,「雨に唄えば」の効果を増すためにも,この「時計じかけのオレンジ」に先駆けて,「Sing in the rain(雨に唄えば)」(1952)の視聴は必須。「雨に唄えば」のシーンだけの視聴ではだめ(ラストシーンにもう1度出てくるが,それを楽しむためには,抜粋したものではなく,全部みる必要あり)。


さて,冒頭に紹介した
「キューブリックに愛された男」
「キューブリックに魅せられた男」
がどんな内容なのかが気になる。

私はドキュメンタリーが一番好きなのです。

「政治」「宗教」「野球」をネットの記事で扱うと,ページが荒れるという話を昔聞きましたが,広島東洋カープの話をします。


本日も,9回まで「6−4」で勝っていたのに,その裏に満塁HRを打たれてサヨナラ負け。
相変わらずのザル展開ですが,悲しさも麻痺してとくになし。
(むしろ,自分自身のことで精一杯な現状もあり)

今年は同じような負け方(9回まで勝っていて,すんでのところで逆転負け)が多いです。


広島のリリーファーを見ても,代わりの抑えはイマイチ。

スコット → 練習試合の球威が皆無。無理。
菊地保 → 三振がとれないので,抑えには不向き。中継ぎなら良。
フランスワ → 直近の試合を見ても,中継ぎ専用(抑えは無理)。
藪田 → 未知数。
堀江 → 未知数。まだ若く,抑えで負荷がかかって,故障するのが怖い。
島内 → 球威が上がったけれど,抑えとしてはどうか。
一岡 → 連投だと球威が落ちて,抑えは無理(中継ぎでの連投とは違うのでしょう)
D.J. ジョンソン → 最近調子が良い(?)。夏場になって調子が上がってくることを期待したい・・・。


打撃陣が好調なだけに,今日のような試合を勝ちきれない今季は厳しかろう。
また,2回で降板した大瀬良は故障なのか,どうなのか・・・。

まだシーズンは残り試合多いですが,厳しい一年になりそうですねー。

久しぶりの大きな体調不良。頭痛がひどく、動けない。

熱はない。

その後、買い出しに出る。その時に見つけた看板。

酒タバコが、悪になっている。(どちらも飲まないけど)

そこまで憎まなくても、と思ってしまう。

やらなければならないことが山積みだが、ちょっと動けないので、ロキソニンを飲んで今日は何もしません。

本当に何もしません。それで良いのか。

Amazon の商品一覧を見たところ,
2月頃からのマスク不足は,
どうやら解決したようですね。

私も,Amazon 経由でマスクを買いました。

使い捨ては嫌なので,洗えるタイプのものを。

値段も,一時期はえらいことになってましたが,
この商品も洗えるタイプで6枚980円。
まあ,値段はこんなもんでしょう。
コロナ以前が安すぎたのです。

せっかくですので商品レビューを。

【6枚セット】マスク 洗えるマスク 夏用 ひんやり 立体型 洗って使える マスク 通気性 個包装 抗菌防臭 UVカット 速乾 繰り返し使える 男女兼用 普通サイズ (ブラック) (6)

どんなことにも
くじけず
どんなことにも
負けず
どんなことにも
落ち込まず
明るく前へ

がんばれ日本

と書かれたビニール袋が2枚。

中身はこんな感じ。
マスク3枚ずつが1つの袋に入っていて,
それぞれ個別包装されている形です。

取り出して,撮影したものがこちら。
ノーマルなマスクです。

6枚組なので,自宅に3枚,職場にも予備で3枚置いておけます。
届いたばかりで,まだ繰り返しの洗濯はしていません。
強度はどの程度でしょうか。

値段が安いので,1枚6回も洗えれば良いのかな,と。
そうすれば,毎日使ったとしても,1ヶ月はもちますね。

コロナ禍以前は,
使い捨てマスク50枚入りを,
1箱500円とかで買っていた気がしますが(記憶違いかも),
それと同じぐらいのコストだと嬉しいですね。

100枚,1,000円だとすると,100日分。

これだと,3ヶ月ちょいでしょうか。
6枚で100回洗うとしたら,1枚あたり16,17回あたり洗える形?
ちょっと難しいかもしれないですね。

まあ,マスクを買うのに,行列に並んだり,
異常な値段を払わずに済むようになったのは,大変嬉しいことです。

コロナ禍が一日でも早く過ぎ去ることを願っています。


色々と,ストック(共有)しておきたいネタはあるのですが,
なかなか時間がとれず,まとめられていません。

こういった文章(日記)なら,ぱっと書けるんですが・・・。
まあ,「2月時点でこうだった!」というように,
「7月半ばにはこうなっていた」という記録にはなるかな。

% php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicuio.66.dylib
  Referenced from: ~/.phpenv/versions/7.4snapshot/bin/php
  Reason: image not found
zsh: abort      php -v

php のコマンドを打つと,上のようなエラーが出るようになった。

色々あたったところ,

1) brew update && upgrade を打つ
2 )PHPを再インストールする

という解決方法がえられた。

参考:MacでPHP実行時にlibicui18n.62.dylibのエラーが出る場合の対処方法


というわけで,phpenv を使って,php を再インストールする。
( 1 のbrew のコマンドは実行済み)

まず,phpenv でインストールした7.4から,システムのバージョンに戻す。

% phpenv global system
% phpenv rehash

次に,7.4をアンインストール&再インストール,そして,切り替えを行う。

% phpenv uninstall 7.4snapshot
% phpenv install 7.4snapshot
% phpenv global 7.4snapshot
% phpenv rehash
% php -v
PHP 7.4.7-dev (cli) (built: Jun 15 2020 02:05:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.7-dev, Copyright (c), by Zend Technologies
    with Xdebug v2.9.7-dev, Copyright (c) 2002-2020, by Derick Rethans

エラーなく実行できることを確認できた。

ローカルで開発するときも,こういったことが起こるから面倒ですね。
Docker で開発するのが楽なのかな・・・。

% phpenv uninstall 7.4.6_debug
~/.phpenv/plugins/php-build/bin/rbenv-uninstall: line 69: phpenv-hooks: command not found

Debugで入れたときのPHPを削除しようとコマンドを打ったところ,エラーが返ってくる。

どうやら,phpenv-hooks というものが必要らしい。

ので,Googleで探してみたところ,コメントアウトすると動くとの記事が見つかる。

phpenv installの前に下記のようなエラーが出たのでコメントアウトしたら動きました・・・なんだったんだろう・・

/usr/local/bin/rbenv-install: line 128: phpenv-hooks: コマンドが見つかりません

phpenv+php-build 複数のPHPのversionを使い分け

早速, rbenv-uninstall を vim で開き, 69 行目をコメントアウトする。

そして,再度コマンドを実行。

% phpenv uninstall 7.4.6_debug
Are you sure you want to remove version ‘7.4.6_debug’? [y/N]: y
Version ‘7.4.6_debug’ (~/.phpenv/versions/7.4.6_debug) successfully removed.

無事,アンインストールが完了。

ほかの異常にあたるまでは,とりあえず,コメントアウトのママで良いかと思います。

雑記。

予約開始日から注文していた「アニマル連邦」が今日届きました。
発売日が12日だったので,2日遅れですね。

Amazonの予約販売も,発売日に届くようにしてくれると嬉しいのだけど,それは難しいのでしょうか。
12日に商品ページを見たら,Primeで「13日に配送される」と書いており,あまり予約注文のメリットがないようにも感じます。
(といっても,あまり読む時間ないので,しばらく積むでしょうが・・・。)


しかし,まさか書籍化するとは。

Twitterで火がついたのは,クレヨンしんちゃんの絵柄そっくりなパロディからだったと思います。かなり完成度が高かった。

パロディの内容は,ドラッグや宗教といったタブーなものが多く,あのタッチで,世界観がまったく違う内容(ギャップ)が良かった(?)のでしょうか。

そこから,オリジナルの漫画を並行して出して,それが見事に書籍化するまで大ヒット。

電通をバックにして盛り上がった(ように,見せかけていた,マッチポンプの)ワニと違う点は,「仕掛けがない」ところだと,信じています。

これも,何かしらマスメディアと組んで,フォロワー数をいじっていたのだとしたら残念ですが,内容的に,これをプッシュするメディアはいないでしょう。

有名作品のカバー・パロディで人気を得る

オリジナル作品を広める

というのが,トレンドになるのかな(もしくは,すでになっている?)。
どうでしょう。

今後にも期待です(2巻は出るのかな?)。


堺屋太一の「歴史からの発想」も届きました。

読む時間がないので,早速積んでいます。
メルカリで300円で買ったので,本当に余裕のできたときに,でよかろう。

堺屋太一だから,面白いに,違いないだろう!

Search Replace DB

本番環境のDBのエクスポートについては,MySQLDumpコマンドでDBごとエクスポートします。

それを,ローカルでインポートするわけですが,WordPressでは,DBのカラムの値に本番環境のURLが入っている箇所が多くあるため,インポートしただけでは,ローカルで動かすことができません。

単純に1つ1つ置換するのも,SQLコマンド打つのも面倒(* 分からない)ので,「Search Replace DB」というプログラムを使います。

参考:【WordPress】DBの置換には「Search Replace DB」を使おう

いろいろ,WEB記事を見ていると,本来は,ローカルで開発したものを,本番環境にあげて,全置換することに使われることが多いようですが,今回はその逆になります。

Database Search and Replace Script in PHP(公式サイト)

現在の最新版は 4.1.1 のようです。
(ページの下の方を辿れば,v.3 系や,v.2 系も公開しているようです。)

公式サイトにアクセスすると,メールアドレスや名前を入力するフォームがあるので,それらを送信すると,ダウンロードリンクの書かれたメールが送られます。

ダウンロードファイルは,プロジェクトフォルダにコピーします。
Git を使っている場合は,.gitignore

Search-Replace-DB-4.1.1/
Search-Replace-DB-master/
search-replace22/

を無視するように追加しといた方が良い(楽)かもしれません。
(「Search-Replace-DB-master」は V.3 系,「search-replace22」は V.2 系です。)

ちなみに,v.3系にアクセスすると,

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?

なるエラーが出ます。PHP7.3 以降から出るらしいです。

参考:PHP7.3からbreakの代わりにcontinueを使うとWarningになる。

使い方については,先のページ(【WordPress】DBの置換には「Search Replace DB」を使おう)と同じです。

これで,
1)ドメイン名の置換(本番環境のドメインをローカルの開発環境へ)
2)https を http に置換(本番環境が https の場合)
を行います。

以上,本番環境のWordPressDBをローカルの開発環境へ移動することのまとめです。

ちなみに,前回の記事で,必死にphp5系を入れようとしていましたが,それは,「Search-Replace-DB」のv.3系で,ローカル開発環境のDBにアクセスできなかったためです。

v.3系では,確か,MySQL8へ接続するプログラムでなかったことが原因だった気がします。そのあたりもv.4系になって改善されたのでしょう。これで,PHPのバージョンを5系に落とす必要(手間)がなくなりました。ありがたいかぎりです。

PHPを使った開発からしばらく離れていた。

今使っているPHP7系のMySQLのドライバと,PHP5系のドライバは違うらしい。

そのため,古いプログラム(MySQLへの接続の関数)を使ったものがエラーで動かない。

よって,phpenv でphp5系をインストールすることにする。


% phpenv install 5.6snapshot

(略)

-----------------
|  BUILD ERROR  |
-----------------

Here are the last 10 lines from the log:

-----------------------------------------
configure: error: Please reinstall the libcurl distribution -
    easy.h should be in <curl-dir>/include/curl/
-----------------------------------------

当然のごとく,エラー。


$ phpenv install 5.6.40

ちなみに,5.6.40もエラーが出てインストールできない。

エラー内容からすると,curlやら,opensslあたりが問題らしいが,それ系はhomebrewでインストール済みである。

早速ググって解決を図る。


phpbrewでphpインストール

$ brew install zlib bzip2 libiconv curl
$ phpbrew install 5.6.40 +default +bz2="$(brew --prefix bzip2)" +zlib="$(brew --prefix zlib)" +curl="$(brew --prefix curl)"

失敗。


Macのphpenv(php-build)でビルドしようとしたら出るエラーと解決まとめ
$brew install libmcrypt

こちらもエラー。なかなかうまくいかない。

エラー内容を抜粋が次の通り。

Please reinstall the libcurl distribution

libcurl を再インストールせよとある。

homebrewインストール、libcurlをhomebrewインストール

上をみると,brew install curl で良いように書いてある。


php5系が動けば良いので,バージョンを5.5に変えてみる。

$ phpenv install 5.5snapshot

(略)

-----------------
|  BUILD ERROR  |
-----------------

Here are the last 10 lines from the log:

-----------------------------------------
Failed to run 'buildconf'.
You should not run buildconf in a release package.
use buildconf --force to override this check.
-----------------------------------------

エラー内容が変わった。

これも調べてみるが,今いち,解決しそうな記事が見つからない。


どうも,またパスの問題らしい。

macOS 10.15 Catalina 上で phpenv を使って PHP 5.6 を build するのにものすごく苦労した話

ちなみに, ここで用いる bison は古いモノを使わなければならないので,それをインストールする。

Macでphpenvによるphpのインストールにハマりにハマった件

brew install bison@2.7
% YACC=$(brew --prefix bison@2.7)/bin/bison \
PHP_RPATHS="/usr/local/Cellar/openssl/1.0.2r/lib /usr/local/opt/zlib/lib /usr/local/opt/bzip2/lib /usr/local/opt/curl/lib /usr/local/opt/libedit/lib /usr/local/opt/libiconv/lib /usr/local/opt/mcrypt/lib" \
PHP_BUILD_CONFIGURE_OPTS="--with-openssl=/usr/local/Cellar/openssl/1.0.2r --with-curl=/usr/local/opt/curl --with-zlib-dir=/usr/local/opt/zlib --with-bz2=/usr/local/opt/bzip2 --with-curl=/usr/local/opt/curl --with-libedit=/usr/local/opt/libedit --with-iconv=/usr/local/opt/libiconv --with-mcrypt=/usr/local/opt/mcrypt --with-tidy" \
PHP_BUILD_EXTRA_MAKE_ARGUMENTS=-j4 \
phpenv install 5.6snapshot

結果。

-----------------
|  BUILD ERROR  |
-----------------

Here are the last 10 lines from the log:

-----------------------------------------
configure: error: GD build test failed. Please check the config.log for details.
-----------------------------------------

The full Log is available at '/tmp/php-build.5.6snapshot.20200609005430.log'.
[Warn]: Aborting build.

うーん。ちなみに,ログを cat しても次の行しか出てこない。

configure: error: GD build test failed. Please check the config.log for details.

さて,どうしたものやら。

プログラミング等とは関係ありません。

ちょっと移動する機会があり,出発した直後に「マスクをしていない」ことに気付きました。

地方では大分沈静化しているとはいえ,やはり,マスクがないと怖さはあります。

しかし,マスクをとりに帰ると,どうしても「乗りたい便に遅れる」ので,仕方なくマスクをせずに駅へ向かいました。

メディアでは,すこし,マスクの在庫がダブつきだした,なんてはなしも聞きます。

駅には小さな売店がいくつかあるのですが,そこで「マスクが売っていないか」を少し期待しながら聞いてみました。

「すいません,今はないんです。」

当然の返事。

さすがにここら辺は関係ないよなーと,最後の店舗に在庫を聞いてみたところ,

「売ってはないんです。でも,マスクはあるので,それを差し上げますよ!」

と,売り物ではない,個人のマスクを1枚いただきました。

出発間際で急いでいたので,お礼しか言えず,お店の別の品を買うという発想が浮かばなかったのが申し訳ない。

次,その店に伺ったときは,何か買う予定です。

以上,日記です。

理由が分かってしまえば,大変,しょうもないプログラミングミスでした。

Webpack をつかって,jsファイルを読み込み/生成できない

webpack.config.js に,1通り設定を行って,書き出しの設定を行います。

ちなみに,package.json には,次のような scripts を指定。

(略),
  "scripts": {
    "build": "webpack --mode production --watch --config webpack.config.js",
    "dev": "webpack --mode development --watch --config webpack.config.js"
  },
(略)

これで, $ npm run dev と叩くと,ファイルを1まとめにしてくれるはずなのですが,次のエラーが出て先に進みません。

ERROR in Entry module not found: Error: Can't resolve './src' in '/Users/~{プロジェクトへのパス}'

webpack.config.js には,entry ポイントを,./webpack 以下を見に行くように設定しているので,./src を見に行くところが間違っています。

なぜ,うまく走らないのか。
webpack.config.js を読み込んでいないのか。

試しに,webpack.config.js
console.log("webpack.config.js is loaded")
と書き込んでみました。

しっかりと,コンソール(ターミナル)に出力されました。

なら,なぜか。
webpack.config.js の記述が間違っているのでは?

目を皿にして見直すと,

module.exports

と書かねばらならぬところが,

module.export

と書かれていました・・・。
(そりゃ,読み込まれませんね・・・)

結局,ここを修正することで,全てうまく進みました。

AtomWebpack 用のプラグインがあれば,入れようと思います。
(構文エラーチェック用的な・・・)

brew での mariadb の導入に失敗

ローカル環境にデータベースを入れようと思ったら, brew コマンドで一発ですね。

$ brew install mariadb

これで最新版の MariaDB もろもろを拾ってきてくれます。

が,

$ mysql -u root -p

で,ログインできず・・・。

mysql をセーフモードで起動し,中身を見てみると,「mysql」データベースが空・・・(show tables で,Empty)。

そのため,「mysql_secure_installation」を走らせたとき,root のパスワードを聞かれても,入れないわけです。

いったん,削除したり, $ brew reinstall mariadb を試したりしたけれど,なぜか「mysql」データベースは空のまま。

うちの Mac に,以前なにかMySQL系を入れていて,それが悪さをしているのでしょうか。入れた記憶がありませんが・・・。

仕方がないので,Homebrew でのインストールは中止。

公式サイトから MySQL 8 をダウンロード

データベースをいじってたころは,MySQL がオラクルに買収されて,MariaDB が流行ってから,MySQL はあまりさわってませんでした。

しかし,公式サイトを見ると,いつの間にか MySQL 8 までリリースされていたのですね(6と7は欠番かな)。

Wikipediaをみると,2018年4月19日にリリースされたとのこと。

結構前ですね。知りませんでした。

動けば,MariaDB でも MySQL でもなんでもいいです。

早速,ダウンロードし,インストール,続けて,mysql に入ろうとコマンドを叩いたところ,

% mysql
zsh: command not found: mysql

ほう・・・。

いや,クライアントがないはずはなかろう・・・ということで,昨日のパス問題を思い出します。

いまのパスに mysql がいないだけでは?

ちょっとググって調べたところ, /usr/local 以下にいる様子。

% ls /usr/local | grep mysql
mysql
mysql-8.0.20-macos10.15-x86_64

2つ,いらっしゃいますね。

% ls -al /usr/local | grep mysql
lrwxr-xr-x    1 root     wheel    30  5 19 00:51 mysql -> mysql-8.0.20-macos10.15-x86_64
drwxr-xr-x   13 root     wheel   416  5 19 00:52 mysql-8.0.20-macos10.15-x86_64

どうやら,mysql 8.0.20シンボリックリンクみたいですね。
(シンボリックリンクで合っているのかな?)

こいつを実行すれば,走りそうです。
/usr/local 以下なので,sudo が必要な様子。

とりあえず,「mysql_secure_installation」を走らせます。

% sudo /usr/local/mysql-8.0.20-macos10.15-x86_64/bin/mysql_secure_installation 

(中略)

Success.
All done! 

無事,走りました。

GUIソフト「DBeaver」を使ってログイン

少しググると,いま人気らしい「DBeaver」を使ってログインしてみようと思います。

brew でインストールしたところ,「最新版があります」と,公式から dmg ファイルをダウンロードさせられました。まあ,接続できれば,どちらでも良いです。

早速,「MySQL 8 系」のドライバ(My SQL 5 系とは違うらしい!)をダウンロードし(ここら辺を自動でやってくれるのが便利),接続。

エラー:Public Key Retrieval is not allowed

ググります。

AllowPublicKeyRetrieval

サーバー側から公開鍵を取得するための特別な Handshake を許可/禁止します。既定値は false(禁止)です。Ping送信時に “Public Key Retrieval is not allowed” というエラーが返ってきた場合、この値を true に設定すると Ping が成功するようになります。

参考:Payara ServerでMySQL 8.0を使用する

ドライバのプロパティから,AllowPublicKeyRetrievalTrue に設定して,再接続。

無事,接続できました。本当に,良かったです。