本日は日曜日 ブックスペース栄和堂

本日は久しぶりの日曜日です 12時開店のブックスペース栄和堂で3.5時間ぐらい一杯のコーヒーでまったりとした時間を過ごしています

ここは電源とインターネットフリーなのでプログラミングするにはとても良い環境なのです 本日は珍しくお客さん少なく僕以外にはこれまで3名のみであり、しかも何れも1時間ぐらいで出ていきました

例の学会演題プログラムに関しては、共同演者登録の部分でデータベース構造を根本的に変更し、それに伴いプログラムも大幅に書き換えているのです なかなか基本的な構想がまとまらないのでプログラム書きながら変更しながらの作業です それでもローカル Web上ですぐに検証できるのでとても良いですね これがコンパイラーによる作業であればこうはいきませんよね

それにしても僕の持っている武器は PHP/jQuer/Bootstrap/MySQL/htmlぐらいの乏しいものですのでなかなか思いどおりには行きません 新しい世界観 たとえば今注目しているのは Vue.jsですが、これなんか多分永久に届かない世界かも知れません やはり圧倒的に新しい物に取り組む勢いが年齢と共に低下しているのを感じます そんなことに負けたくはないのですが、現実も見ねばならないでしょう どこかで妥協して結果的に自分の能力を最大限に引き出す戦略が必要なのかも です

でも、救いの一つは、本日も Airさんとやり取りしていて新たな世界の入り口に片足の足首だけ入れることができました ありがとうございます

あーん あーん

まさしく「あーん あーん」です

自分の能力が低下しています これまでは自分でも「僕って天才」と思えることがいくつもありました でも 最近は無いのです 無いのは未だいい 問題は 明らかに自分の能力が低下しているのでは? と思うのです

これまで、僕の最大の能力は Typing speedでした 何故か 何故ならば僕は日本語入力の時には「かな漢字」変換を行い、アルファベットを打つ時には、自動的にANSII Key Boardの配列になるのです そのように自分を 30年ぐらい前に訓練したのです この結果、自分の Typing speedは理論的に日本語入力の時に、ローマ字カナ変換に比較してほぼ倍のスピードになるのです

これスピードだけの問題ではなく、自分の思考がタイピングにより制約されないことを意味し、その結果頭脳の空間が拡大するのです

それに疑問を挟むようなことが最近あるのです 歳か? あるいは頭脳の病気か?

まあやれるところまでやらざるを得ません それで答えが出てくるでしょう

何れにしても現在は僕は未だまだ元気であり頭脳も明晰です 今も phpで画像 uploadの部分の勉強しながらプログラム書いています JTVT2019のプログラムは自分の尊厳を賭けて仕上げるつもりです

インターネットを通じたつながり

今朝は体調不良 もう歳かな それでも本日 TAVI二件、その後 MitraClip 1件あります まあそろそろ体調も戻り、またTAVIに関しては若手に完全に任せますので良いでしょう 全力を MitraClipに傾けますよ

それはそうと今朝メールを開けると「ぎぎ」としました 僕のこのプログにコメントが投稿されていたのです いやあとても感激しました この方はかなり高度なプログラミング知識と技術をお持ちの医療関係者だと推察します その方が、ご自身で開発されている DICOM Viewerである Horlixにおいて、ある種の DICOM-USフォーマットが読み込みできないために(しかもこれが Philipsなのです: 実際この Philips machineの DICOM-USは変です 当院でも読み込めない事例が発生しています!!)、 DICOMで検索しておられて僕のこのブログにヒットされ、そしてコメントを頂いたのです

とてもとても僕なんて足元にも及びません そんな方からのコメント「ぎぎ」とすると共に感激です 思わずこんな返信してしまいました

ちなみに僕の DICOM Viewer開発苦労話はここにまとめてあります

 

air様

コメント頂きありがとうございます Githubなども見させて頂きました また、OpenDolphin関係のページも見させて頂きました 世の中にはすごい方がおられるものだ、とただただ感心するのみです
私なんかは既に 68歳ともなり、頭脳はどんどん硬くなると共に処理能力が劣る一方です そんな自分でも Z80 assemblerでプログラミングの真似事を始めた20歳台の頃の、わくわくした思い、それを取り戻したくて、かつ謎であった DICOM-XA それに取り組んだのは既に 10年以上の前のことでした
しかし、自分の能力がとても足りず JPEG規格書を読んでもなんのことかさっぱり理解できない状態が続きました 自分の患者さんに引退された工学部教授がおられ、その方の教え子に信号処理を専門にやられている研究員の方がおられたので、その方をご紹介して頂き、直接 JPEG規格書と DICOM規格書から DICOM-XAが JPEG losslessで圧縮されていることを掴み、そのHuffmann Code解読プログラムをなんとか書くことを開始しました それでも何がなんだ最初はさっぱり分からず、随分と苦労して慣れない C++ (VisualStudio)を用いてプログラム書き始めました
最後にはようやく DICOM-XAで動画を Windows上で動かすことに成功しました
それができるともうそれ以上進むのは自分では無理だと達観してしまい、DICOMの世界から離れてしまい、今は Osirixの単なるユーザーになっています
Osirixが高額でありしかもひどいことには、MacBook Proの USB-C端子4つの内2つが自然故障して、修理に出したところ、logic board交換となり、それと共に Osirixのライセンス切れてしまい、またまた 100K円の支払い発生するという理不尽を経験して、Horosともめぐり逢いました
そしてその Horosより派生させ、さらに改良を加えられている Horlixをご紹介頂き感激しています
でも正直、自分でも Webのプログラムを Githubに蓄えたりしていますが、 air様の Horlixに関して、どのように実行ファイルを作成すれば良いのかその手順すら理解できない自分です
開発などでお忙しいでしょうが、どうぞ今後共お時間のある時で結構ですので、ご指導宜しくお願いします

齋藤 滋

gitの upgrade

特に Web開発では compilerでなく script言語を使用することが多いので、プログラムの更新にあたっては更新ログを記録し、いざとなれば元にもどせるようにするために gitを用いることが一般的ですね

gitはもう何年間も使用しているのですが、未だに使いこなしているとは言い難いものがあります そもそも gitはコマンドラインでのコマンドの一つですが、web serviceと連携してそのデータベースが無料の Web databaseにも記録されます そのようなサービスを提供している有名なものとして githubそして sourcetreeがありますね

前者は自分のソースコードを公開するならば無償で uploadできますが、後者はソースコードを公開しなくても無償で uploadできます

何れにしても使いこなしてなんぼ の世界ですが・・・・

さて、最近その git commandに非常に危険な脆弱性が発見されたらしいのです それで git commandの upgradeを試みました 自分の MacBook Pro OSX High Sierraに入っているgitは Apple gitでありシステムに最初から入っているものでした

$git –version

とすると git version 2.7.1と大分古いバージョン番号が戻ってきました

それを upgradeするためには、git commandをreplaceせねばなりません それで調べました もちろん homebrewを用いるのです ありましたね ここです

いやあ助かりました これで僕の gitは version 2.17.1とずいぶんと上がりました

何と

今朝は早朝より悩みました

 

<?php
ini_set(‘allow_url_fopen’, 0);

これがエラーとなるのです そのエラーは何やら constantがどうのこうのというものでした

結局 stackoverflowを検索した所、 「おまえさん、それは quotationが間違っているよ」というものでした

つまり

<?php
ini_set('allow_url_fopen', 0);

とすれば良いのでした 当たり前のことですね でもついついこの英語Keyboad上では、日本語配列では「や」にあたる’と「@」にあたる`というのは見てくれが似ているけど意味が全く異なるので間違えますね

特に SQL文を php scriptの中に埋め込む時などにとてもややこしいです 今回もそのような一例でした

Slender Clubライブ一例目終了

昨日は湘南鎌倉総合病院から品川プランスホテルで開催されている Slender Club Tokyo in 2018へのライブ症例中継の日です

これまで僕自身はこの病院からもたくさんのライブを全世界に向けて飛ばしてきましたので、特に緊張することも慌てることもありません そういう意味では、よく議論になっているライブ中継の欠点、つまり — 術者やスタッフが緊張してしまい、普段の実力を出せなくなり、その結果、患者さんに不利益となる — ということからは僕自身そしてコメディカルも含めたスタッフは無縁です

逆にこのようなライブでは会場におられるたくさんの全世界の expertsの貴重な意見を真摯に聞ける、その結果 より良い治療を行える可能性が高まる、そのような利点が際立ってきます

まあそんなこんなで自分の割当分の患者さんは無事成功裏に二例治療することができました 特に一例目の方は非常に危険が予想される患者さんであり、あまり調子に乗って(つまりライブという環境の中で他の人の行け、行けという意見に押されて)攻めすぎると危険な事態に陥る、そのようなことが僕の誰よりも多くPCIをしてきた人生の経験から感じていました 結果は、押しすぎずある妥協点で終了し、手技は成功し、治療の目的は達成し、かつ無事に終了しました

ここいら辺のPCIというかどんな治療にも共通するであろう真実をどれぐらいの人々、特に若い先生方に理解して頂けるは? 言葉では伝えにくいものがありますね もうかれこれ 30年ぐらい前になりますが、そう昭和の終わりに、日本のとても偉い方が腹部臓器の悪性腫瘍となられ、某国立有名大学の外科の教授が根治手術をされたのですが、明らかにその手術は限界を越えたものだったと思います もちろん僕は腹部外科手術に詳しくありませんので、間違っていたらばすみません 何れにしてもその方は手術を契機に亡くなられました そんなことをどうしても思い出します

さてさてそんなことを考えながら本日は朝から昼のdutyまで懸案のプログラミングにとりかかっています 昨日来「あれ? 何で?」ということがあり、その疑問にすっかり取り憑かれ、どうすればこの疑問を解消できるか? そんなことに悩みながら座長をしたりしていたのです

結果的に解決しました これまであまり深く考えずに慣習に則ってやってきたからこんな事態に直面したのですね 反省です こんなことはこれまで jQueryを使い始めてから、ですから 10年ぐらい前から何回も何回も知っている筈のことだったのです 分かりやすくプログラムで書きますね

<!doctype html>
<html>
  <head>
    <title>TEST PROGRAM</title>
    <meta charset="utf-8">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
  </head> 
<body> 
<form action="http://www.kamakuraheart.org/wordpress/" method="post"> 
<button type="submit" id="btn">ブログに飛ぶ</button> 
</form> 
<script> 
$('#btn').on('click', function() { 
    if (!confirm('本当にブログに飛びますか?')) { 
        return false; 
    } else { 
        location.href='http://www.kamakuraheart.org/wordpress/'; 
    } 
}); 
</script>
</body> 
</html>

これは勿論動作します しかし、次のプログラムは動作しません

<!doctype html>
<html>
  <head>
    <title>TEST PROGRAM</title>
    <meta charset="utf-8">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
<script> 
$('#btn').on('click', function() { 
    if (!confirm('本当にブログに飛びますか?')) { 
        return false; 
    } else { 
        location.href='http://www.kamakuraheart.org/wordpress/'; 
    } 
}); 
</script>
  </head> 
<body> 
<form action="http://www.kamakuraheart.org/wordpress/" method="post"> 
<button type="submit" id="btn">ブログに飛ぶ</button> 
</form> 

</body> 
</html>

何故でしょうか <script></script>の位置に注目して下さい jQueryが対象としているオブジェクトは ‘#btn’ですが、それは DOMでは <button></button>の中で id = ‘btn’として指示されているものです

つまり、この作動しないプログラムでは、jQueryが id = ‘btn’というオブジェクトを探しに行っても、未だ DOMの中に読み込まれていないので、jQueryは分からないのです もちろんhtmlも上から順番に読み込まれます

では次のプログラムはどうでしょうか?

<!doctype html>
<html>
  <head>
    <title>TEST PROGRAM</title>
    <meta charset="utf-8">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
<script> 
jQuery(document).ready(function() {
  $('#btn').on('click', function() { 
      if (!confirm('本当にブログに飛びますか?')) { 
          return false; 
      } else { 
          location.href='http://www.kamakuraheart.org/wordpress/'; 
      } 
  });
}); 
</script>
  </head> 
<body> 
<form action="http://www.kamakuraheart.org/wordpress/" method="post"> 
<button type="submit" id="btn">ブログに飛ぶ</button> 
</form> 

</body> 
</html>

これはきちんと作動します 何が変わったのでしょうか? jQueryによるプログラム(スクリプト)全体が jQuery(document).ready(function() {})で括られていますね これが意味するところは、htmlのプログラム全体が読み込まれて DOM解析が終了するまで jQueryに待ちなさい、ということを指示しているのです

実はこんなこと jQueryを使うに際しては当たり前のことです ですから、いちいち jQuery(document).ready(function() {})でくくるのは面倒なので </body>タグの直前に jQueryスクリプトを書くように推奨されているのです こんなことすっかり忘れてしまい、これまで慣習で</body>タグの直前に jQueryスクリプトを書いてきたのですが、それを<head></head>に書いた所、プログラムが動作しなくなり、とても焦ったのです 全く何やっているのだか 解決に数時間を要しました こんなことだから時間がいくらあっても足りませんね

行きつけのカフェで

本日は土曜日 午前中にカテ二件に参加し、12:30自転車で病院の裏側に向かいました ここは「藤沢市村岡」という地名ですが、とにかく長い上り坂が続きます

頑張って登りきり、いつも遠くから見ていた小高い林の場所まで登りました そこた誰も居ない場所ですが、なかなか良い見晴らしでした

しばし休んでから今度は下り坂を自転車飛ばしました そして 13:00に行きつけの「深沢」にある「栄和堂」というブック・カフェに入りました 頼んだのはコーヒー一杯のみ

そして、MacBook Proを開いて JTVT2019のプログラムに取り掛かりました 色々なことがありなかなか取り組めないでここまで時間が過ぎてしまいました もう本気にならないとやばいのです

しかし、またまた訳の分からないエラーに1.5時間悩まされました それは画面の切り替えにおいて、セッション変数が保持されない、というエラーです 原因は2つ以上ありそうなのですが、やっと一つを潰し、変則手で一つ何とかしました 最初の 1.5時間悩んだエラーの原因は、session_start()を最初に書かなかったからであり、これは僕のミスです

しかし、変則手の方は未だに良く分かりません $_SESSION変数に書き込んこだものの一部しか次のページに引き継がれないのです 今までこんなこと見たことありません ブラウザの問題かと色々なブラウザ試みたのですがどうもそうではありません $_SESSION変数の容量の問題でしょうか? でもそんなに大きなデータをセッションに溜め込んではいません 未だに分かりません原因が

変則手で解決したのは仕方なく $_POSTで渡し、渡されたページでは再度 MySQLを起動してデータをデータベースから読み込むというものです まあこれで動作するので良いと言えば良いのですが・・・

何だかすっきりしませんねえ

JTVT2019現在のデータベース構造

まだまだ refineせねばならないと思いますが、現段階での Database DDLを記録しておきます

 ###############################################################################################
 ### SQL for JTVT2019 
 ### Based on this DDL, the program is constructed.
 ### Programmed by Shigeru SAITO, MD, FACC, FSCAI, FJCC
 ### on March 4th, 2018.
 ### revised on April 12th, 2018
 ###
 ### DB Name : jtvt2019
 ###############################################################################################

CREATE TABLE IF NOT EXISTS `hp_tbls` (
  `id` INT( 11 ) NOT NULL AUTO_INCREMENT,
  `hp_code` VARCHAR( 11 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
  `hp_name` VARCHAR( 128 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
  `zip_code` VARCHAR( 7 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
  `ken_name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
  `hp_address` VARCHAR( 256 )CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
  `country_code` TINYINT( 2 ) NOT NULL DEFAULT '1',			/* Country Code; By using this code , 1: JAPAN*/
                              /* interface such as feet or lb can be aplied. >10: feet/lb */
  PRIMARY KEY (`id`),
  UNIQUE(`hp_code`)
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci AUTO_INCREMENT=0;

CREATE TABLE IF NOT EXISTS `dr_tbls` (
  `id` INT( 11 ) NOT NULL AUTO_INCREMENT,
  `kanji_sirname` VARCHAR( 64 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
  `kanji_firstname` VARCHAR( 64 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',	
  `english_sirname` VARCHAR( 64 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
  `english_firstname` VARCHAR( 64 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',	
  `hp_tbl_id` INT( 11 ) NOT NULL DEFAULT '0',
  `hp_name`  VARCHAR( 128 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
  `job_kind` TINYINT( 2 ) NOT NULL DEFAULT '1',
  `email` VARCHAR( 128 ) NOT NULL DEFAULT '',
  `dr_pwd` VARCHAR( 512 ) NOT NULL DEFAULT '',
  `clue` TINYINT( 1 ) NOT NULL DEFAULT '1',
  `hint` VARCHAR( 512 )NOT NULL DEFAULT '',
  `login_date` DATE NOT NULL DEFAULT '0000-00-00 00:00:00',
  `ip` VARCHAR( 15 ) NOT NULL DEFAULT '000.000.000.000',
  `dr_url` VARCHAR( 60 ) NOT NULL DEFAULT '',
  `is_active` BOOLEAN NOT NULL DEFAULT '0',
  `is_usable` BOOLEAN NOT NULL DEFAULT '1',
  `is_deleted` BOOLEAN NOT NULL DEFAULT '0',
  `created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
  `modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id`),
  UNIQUE(`email`),
  INDEX(`email`)
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci AUTO_INCREMENT=0;

CREATE TABLE IF NOT EXISTS `login_logs` (
  `id` INT( 11 ) NOT NULL AUTO_INCREMENT,
  `dr_tbl_id` INT( 11 ) NOT NULL DEFAULT '0',
  `login_date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
  `login_ip` VARCHAR( 15 ) NOT NULL DEFAULT '000.000.000.000',
  PRIMARY KEY(`id`),
  INDEX(`dr_tbl_id`)
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci AUTO_INCREMENT=0;

CREATE TABLE IF NOT EXISTS `abstract_tbls` (
  `id` INT( 11 ) NOT NULL AUTO_INCREMENT,
  `hp_tbl_id` INT( 11 ) NOT NULL DEFAULT '0',
  `dr_tbl_id` INT( 11 ) NOT NULL DEFAULT '0',
  `submission_date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
  `abstract_topic1` tinyint( 2 ) NOT NULL default '0', /* TAVI, MitraClip, etc  */
  `abstract_topic2` tinyint( 2 ) NOT NULL default '0', /* Complications, etc  */
  `abstract_title` VARCHAR( 200 ) NOT NULL DEFAULT '',
  `abstract_content` VARCHAR( 2000 ) NOT NULL DEFAULT '',
  `is_selected` BOOLEAN NOT NULL DEFAULT '1',
  `is_deleted` BOOLEAN NOT NULL DEFAULT '0',
  `created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
  `modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
  `last_access_date` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=0;

CREATE TABLE IF NOT EXISTS `time_slot_tbls` (
  `id` INT( 11 ) NOT NULL AUTO_INCREMENT,
  `begin_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
    `end_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',	
  PRIMARY KEY (`id`)
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci AUTO_INCREMENT=0;

CREATE TABLE IF NOT EXISTS `dr_role_tbls` (
  `id` INT( 11 ) NOT NULL AUTO_INCREMENT,
  `dr_tbl_id` INT( 11 ) NOT NULL DEFAULT '0',
  `time_slot_tbl_id` INT( 11 ) NOT NULL DEFAULT '0',
  `session_tbl_id` INT( 11 ) NOT NULL DEFAULT '0',
  `role_kind` tinyint( 2 ) NOT NULL default '0',
  `is_active` BOOLEAN NOT NULL DEFAULT '0',
  `is_usable` BOOLEAN NOT NULL DEFAULT '1',
  `is_deleted` BOOLEAN NOT NULL DEFAULT '0',
  `created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
  `modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id`)
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci AUTO_INCREMENT=0;

CREATE TABLE IF NOT EXISTS `session_tbls` (
    `id` INT( 11 ) NOT NULL AUTO_INCREMENT,
  `session_typing_japanese` VARCHAR( 100 ) NOT NULL DEFAULT '',
  `session_typing_english` VARCHAR( 100 ) NOT NULL DEFAULT '',
    `session_sub_title_japanese` VARCHAR( 100 ) NOT NULL DEFAULT '',
  `session_sub_title_english` VARCHAR( 100 ) NOT NULL DEFAULT '',
  `session_begin_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
    `session_end_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',	
  `session_objective_japanese` VARCHAR( 300 ) NOT NULL DEFAULT '',
  `session_objective_english` VARCHAR( 300 ) NOT NULL DEFAULT '',
  `is_deleted` BOOLEAN NOT NULL DEFAULT '0',
  `created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
  `modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id`)
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci AUTO_INCREMENT=0;

 

これから Washington DCへ

東京Valvesが終了し、そのまま Vmax 7.0m/Secという大変な大動脈弁狭窄症に対するTAVIを無事終了し、MitraClipも無事終了 そして札幌東徳洲会病院心臓センターでのTAVIそして島原でのライブ、そして昨日鎌倉自宅に戻り、今朝は今成田に向かっています

半公式の文書作成などNEXの中で行いながら Amazon-Kindleでプログラミング関係の書籍をどんどん購入

その多くが完読できぬまま終わってしまうのですが・・・ それでも僕の唯一の知識の源泉ですから仕方ありません そうしないと自分の世界がどんどん縮まっていきますよね それを何とか食い止め、あわよくば自分の世界を広げるためには新たな勉強が必要ですよね

二日間バグで苦しみ

どうにも納得行かなかったのです それは、http://www.tri-international.orgのサイトをサーバー移行した時に始まったのです

そもそもこちらの都合でサーバー移行したのではありません サーバー運営会社の意向に沿って移行したのです これまでずっと使用してきた Rental Serverは FirstServerだったのですが、それが時代の移り変わりと共に、Zenlogicという次世代のサーバー環境になったのです 正直僕はここら Cloudとか詳しくないので何が違うのか良く分かりません

この移行の時に、これまでの全データも移行したのですが、問題は MySQL Database Server Dataだったのです これも移行したのですが、それと共に phpMyadminという MySQLサーバーデータ管理の秀逸のソフトがそのままでは作動しなくなり、改めてインストール必要でした そしてこの時に、port 3307にインストールされたのです これが問題だったのです

そもそも現在はMySQL5.1が port 3307で作動し、MySQL5.0が port 3306で作動している、という変な状況が続いているのです だいたい port番号なんて普段意識せずに使っているのですよっ

そしてサーバー移行前のデータは MySQL5.0から MySQL5.1に自動的にコピーされ、一見すると同じデータが2つの DB serverにあるのです

さて、PHPプログラムでは Internetアクセスした時には、

$db_host = '127.0.0.1';
//$db_port = '3307';//コメントアウトしているので port3306のまま
$db_user = '**A';
$db_password = '**B';

という風に 普段は port 3306の MySQL databaseに接続しているのです しかし管理ソフトの phpMyadminは port 3307で接続していたのです 当初は同じDBがコピーされていたので、phpMyadminでいくらデータをいらっても これは 3307接続ですから、PHP programからはその変更は見えません

結果的にわけのわからないことになってしまったのです この portの問題に気づくまでには丸一日かかりました そして現在は $db_port = ‘3307’; この一文を活かしているので、全てが port 3307で作動している MySQLでプログラム全体が動いているのです

いやあこのバグは判明にずいぶんかかりました しかし、僕の頭脳が未だ明晰であることが証明されてある意味嬉しいですね