この土日相当に悩んだぞ

この土日は、久しぶりにプログラミング・モードに入りました 日本循環器学会で配布されていたプログラム閲覧用Appに触発されたのです

昨年の鎌倉ライブHomePageは PHP/JavaScript/jQuery/CSS/html/MySQLを組み合わせて何とか付け焼き刃で作りました

それなりに使えるものであり、未だ HomePageは残してあります

しかし、これは本当に付け焼き刃なので、もう少しきちんとしたものを作りたい、そのためには Laravelを勉強しよう!!と思ったのですが、既に挫折しました とにかく PHP以外に学んだり、覚えたり、あるいは流儀に馴染んだり、そのようなことが多すぎます もう僕の脳みそは新たなものを取り入れる余地があまりありませんので、これは辛いのです

そこで、考え方を方向転換しました 「折角使えるようになっているPHP/JavaScript/jQuery/CSS/html/MySQLなのだから、そのまま推し進めよう」と思ったのです そして「余力が出れば Laravelなりを学べば良い」と思ったのです

それで、昨年のプログラムを見直しました こんな風体にしたかったのです

デモスクリーン

もちろん、下の大きなアイコンは navigatorであり、このアイコン集はどのページにも出現し、スクロールしても消えません このようなものを作りたいのです

これには、Bootstrapの navibar/dropdownコンポーネントを用いればそんなに難しくなくできる、ということは自分で分かっていました そして実装したのですが、どうしても

こんな風にDropdownしたいんだ!!!!

こんな風に(dropdownする)動かないのです いや、動いたり動かなかったり、と厄介なバグです

そしてついに原因をつかみました jQuery Libraryが version3.xであると動かないのですが、1.xや 2.xであれば動作したのです これには驚きました ちなみに 3.xでも動いていた時には次のようなコードを書いていたからです

<script src="http://code.jquery.com/jquery.js"></script>
<script>
	if ( !window.jQuery ) {
		document.write( '<script src="js/jquery3-1-0.js"><\/script>' );
	}
</script>

つまりこれであれば、on-lineであれば、CDNを読みにいっていますが、この読んだ先には、jQuery 1.xがあったからなのです

うーん時間潰しました

うーん 何だか難しいなあ

Dynamic DNSというものの存在を教えて頂きました しかし、何だか難しいなあ 実際にいじくって自分でやらないと理解できないような気がします

それよりも今直面しているのは これが理解できないのです うーん何と説明すれば

まず、Laravelを /Sites/myapp/にインストールしました

そして、/myapp/に移動し、$php artisan serve でサーバーを立ち上げました

そして、/Sites/myapp/routes/web.php の中に /helo でroutingを行う命令を書きました

そうすると アドレスバーで localhost:8000/helo とすれば、そのページが出力されます

ところが、ここで artisanを停止し、XAMPPで apacheを立ち上げます 僕のapacheの document rootは /Sites/にしてありますので アドレスバーで localhost:8000/myapp/helo とすれば同じ出力されると思ったのですが サーバーが反応しません

うーん 分からない apacheのポートは何番なのでしょうか?

分からない分からない分からない

Laravel 5.3の download

さて、昨日 Laravel5.3を downloadしようしたらば最新版の5.4が downloadできてしまい、5.3をdownloadできなかった話をしました

しかし、これは当たり前でしたね だって、

$ composer create-project laravel/laravel=dev-develop laravel53

などと打ち込み、5.3をdownloadした気分になっていたからです composerのコマンド体系を見れば、これでは laravel最新版を downloadすることになりますよね いやきっと そのように予想できます

従って、Laravelの開発ページを見に行く必要があります そこで、githubを探すと ここにありましたね

さて、このページの左上の方を見ればこのようになっています

Github

ここでこのselect buttonをいじくると 出てきました 5.3が

Laravel5.3の選択

これで5.3を選択し、downloadなりすれば良さそうです とは言うものの、もうすぐ朝カンファランス そして 怒涛の外来診療ですのでとりあえずここまでにしておきましょう

 

Laravel 何だかややこしいな

Laravelの最新version = 5.4です しかし、Web上の情報はほとんどが良くて 5.3 大多数の日本語サイトは 4.3です 要するにものすごいスピードで version upされているようなのです

それはそれで嬉しいことですが、問題は言語仕様がどんどん変化しており、英語の on-line manualを読まねば最新の仕様がわからないという点です これは辛いです 仮に日本語だとしても理解は困難な上に、それが英語であればどんな事態になるか想像できますよね

という訳で Kindleで書籍を探しました 日本語書籍は最新のものでも Version 5.1です 英語のものでようやく 5.3です そして、5.1から 5.3に version upした時点で Laravelの dirctory構造が大きく変更されたようなのです 具体的に僕が気づいたのは Routingの directoryが大きく変更になり、この時点で日本語サイトや日本語書籍はあまり参考にならなくなってしまいました

それでは、敢えて down gradeして、Version5.3をインストールすれば良いとも思いますよね それでサイトを探し、このサイトに巡り会いました そして、ここに書いてあるように

$ composer create-project laravel/laravel=dev-develop laravel53 --prefer-dist

と打ち込みましたところ、見事にエラーで撃沈 そこで今度は最後の –prefer-distをとって打ち込みました

$ composer create-project laravel/laravel=dev-develop laravel53

そうするとLaravelのインストールが始まりました しかし、ここで

$ php artisan -V

と打ち込むと、そんなコマンド無い、とエラーが出たので、

$cd laravel53

としてから、

$ php artisan -V

と打ったところ、今度は反応しました しかし、しかし、しかし、その答えは

$ php artisan -V
Laravel Framework 5.4.15

という悲劇的なものでした これを受けて laravel53/ directoryを完全に削除するしかありませんでした 要するに、指定の laravel versionをうまいこと導入する手段は無いのでしょうか

Laravel すぐに躓き

さて、このページにあるように routingを試してみました ところが、ここに書いてあるファイルがそもそも存在しないのです このページではどうやら Laravel 4.xでの説明のようですが、僕がインストールしたものはどうやら Laravel 5.4という最新 versionなのです

結局、Laravel 5.4に web manualを参照すると、どうやら routes/ folderの中の  web.phpに書くことで routingがされそうです このファイルは最初はこのようになっています

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});

この最後に以下をつけたしてみました

Route::get('/helo', function () {
    return '<h1>Hello Worl</h1>
this is sample page.'; });

そうして、 localhost:8000/heloにアクセスしたところ、やったね、

やったね

出ました

おおおおお

指示にある通り 開発用 local serverを立ち上げました 実は、何時も XAMPPで立ち上げているので最初うまくいかず、XAMPPの Apacheを停止してからやったところうまく行きました Browserの address barに下記を打ち込みました

http://127.0.0.1:8000

これは要するに local server IP address = 127.0.0.1の port=8000にアクセスしろ、という命令ですね そうすると下記の画面が表示されましたよっ

Laravel開発画面

うわあ なんかかっこいい 僕みたいなミーハーはこれだけでもう心キュンです

おお すごい

そのまま指示に従ってやってみました

$cd myapp
$ php artisan serve

そうすると 見事開発用サーバーが立ち上がりました

Laravel development server started: <http://127.0.0.1:8000>

問題は、この後も僕の根気が続くかですね まず 99%は途中で投げ出し、その内忘れてしまいまから

これは期待持てるかも

早速、「Laravel入門」というサイトを開いて勉強開始です まずは、プロジェクト・フォルダの作成です このサイトに書いて有るように composerコマンドを入力しました

composer create-project laravel/laravel myapp --prefer-dist

そうすると、すぐに反応し downloadが始まりました こんな具合です

Installing laravel/laravel (v5.4.15)
  - Installing laravel/laravel (v5.4.15): Downloading (100%)         
Created project in myapp
> php -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 59 installs, 0 updates, 0 removals
  - Installing symfony/polyfill-mbstring (v1.3.0): Downloading (100%)         
  - Installing symfony/var-dumper (v3.2.6): Downloading (100%)         
  - Installing jakub-onderka/php-console-color (0.1): Downloading (100%)         
  - Installing jakub-onderka/php-console-highlighter (v0.3.2): Downloading (100%)         
  - Installing dnoegel/php-xdg-base-dir (0.1): Downloading (100%)         
  - Installing nikic/php-parser (v3.0.5): Downloading (100%)         
  - Installing psr/log (1.0.2): Downloading (100%)         
  - Installing symfony/debug (v3.2.6): Downloading (100%)         
  - Installing symfony/console (v3.2.6): Downloading (100%)         
  - Installing psy/psysh (v0.8.2): Downloading (100%)         
  - Installing vlucas/phpdotenv (v2.4.0): Downloading (100%)         
  - Installing symfony/css-selector (v3.2.6): Downloading (100%)         
  - Installing tijsverkoyen/css-to-inline-styles (2.2.0): Downloading (100%)         
  - Installing symfony/routing (v3.2.6): Downloading (100%)         
  - Installing symfony/process (v3.2.6): Downloading (100%)         
  - Installing symfony/http-foundation (v3.2.6): Downloading (100%)         
  - Installing symfony/event-dispatcher (v3.2.6): Downloading (100%)         
  - Installing symfony/http-kernel (v3.2.6): Downloading (100%)         
  - Installing symfony/finder (v3.2.6): Downloading (100%)         
  - Installing swiftmailer/swiftmailer (v5.4.6): Downloading (100%) 

何だか期待持てますねえ

PHP Frameworkである Laravelを使用したいな

いい加減 PHPでプログラムを素で書くのはやめたいな そのためには色々な Frameworkがあるんだよね 例えば日本では一番有名なものとして CakePHPなんて有名ですよね あるいは Zend Framworkも有名だし・・・

でも一度なんか CakePHPに手を出し見事撃沈、新たに覚えることが多すぎて、僕の既に RAM容量が破裂しそうな脳みそには無理です そんななか、色々読んでいると Laravelというのが良いかも知れない、と思い出しました そこでそれをインストールしようと思いました

通常 Frameworkのインストールと言えば Framework全体、これは PHPで書かれた巨大なプログラムですが、これを downloadしてそれをコピーするだけ、そんなものと思っていましたが どうやら Laravelではそんなことはしないらしいのです そんなことすると色々なファイルの依存性関係が崩れてうまくいかないらしいのです

そして、その方法には色々あるけど、まずは composerというプログラムを downloadせねばならないようです

ところがですねえ、これを Macにインストールするのはどうするの???

どうやら色々あるらしいけど、Homebrewは何となく使いたくなかったので、この PHPを用いてインストールする方法でやったところうまくいきました

 

$ composer -V
Composer version 1.4.1 2017-03-10 09:29:45

というのがきちんと表示されました とは言ってもこれから Laravel本体をインストールせねばならないのでしたね

最近は色々と教えて頂いています

僕自身は、8-bits one-board microcomputerの時代、そうです Intel 8080 CPUや、Zilog Z80 CPUを用いた one-board computerである、NECのTK-80や、SHARPのMZB-80などを触ってコンピューターの世界に入った世代です

当時は、電源も不安定で、「安定化電源」などと称するトランスに毛の生えたような結構高額な電源から、プラグで電源をつなぎ、そして入力は4 x 4の液晶ではなく、それ以前の何でしょうか ネオン管みたいな数字とアルファベット数文字 (要するに 16進法の 0, 1, 2, ・・・, D, E, F)の簡単なもののみ表示できるdisplayそして、入力はこれまた 16進法文字と Enter/Delぐらいしか無い Keyboardがついていて、その boardにはところどころに LEDがついていて、その LEDをプログラム書いてピカピカ光らせては 「やったあ」と喜んでいた、それが僕にとってのプログラミングでした

だってモニターROMは 確かたったの 1KBであり、ついていた RAMは 256 Bytes程度です もちろんアセンプラで書いて、それを手で機械語に変換するという「ハンド・アセンブル」でプログラムを書い ていたのです

でもそんな時代生産性悪く長続きしませんよね すぐに僕の場合には SHARPの MZ-80という 300 bit per secondの伝送速度のカセット・テープがついていたいわゆる「マイコン」になりました このマシンでは CPUは Z80 2MHzでしたが、over clockして 4MHzでも誤動作しませんでした メモリーは何と 48KBもあったのです Monitor ROMは 2KBだったように思います

あれっ、何の話でしたっけ そうそう僕の不完全かつ未熟なコンピューターの知識を補完して頂いているのです ここ数日間

とても勉強になります たとえば

 

新たに契約した”さくら”は,仮想化のレベルが深いのか好きなOSのインストールができますので,今後の勉強部屋になりますが,踏み台にならないように気をつけようと思っています.

先生の,
```
そんなに知識が無い自分には不釣り合いです ここまで考察すれば、Dockerなどに手を出す資格が無い、そういうことでしょうかね 残念ですが能力不足なので仕方ありませんね
```
という言葉に関しては,私には珍しく全く反対意見です
最強の環境(ある意味ではもっとも危険な遊び場)は,やはり自宅サーバのような気がします.
わたくしの家はkddi系ですが,あっさりグローバルIPをもらえるので怖ろしいです

今回質問させて頂いたのは このご指導に対して

KDDIでは global IPをとれるのですね
ところで、初歩的質問です
自分が関与しているhome pageでは www.kamakuraheart.orgとか、
www.tri-internet.orgとかのドメイン名を年額いくらかで支払い取得維持していまが、Global IPをもらった場合、domain名をとらないとすれば、12桁の IP addressで物事をすすめるのでしょうか?
自宅サーバーについては まだ踏み出す勇気がありません この方面の知識が足りませんまた宜しくお願いします
ところで、"hackintosh","OSx86"など代表される自作Macが最近の興味の対象です という部分ですが、全く知りませんでした そのような世界があるのですね 興味津津です

というものでした 興味津々ですね

さて本日は土曜日ですが、朝から治験絡みで頭にきています どうしてこんなことをするのでしょうか? いやいや患者さんには何の悪影響も及びません 全力で治療に当たるだけですが、しばしば業界の人は そういう価値基準で動かず、なんだか訳の分からないしがらみで動くのです ばっかじゃないの 頭にきます