ICT関連の学習備忘録

ICTの学習をアウトプットするワークブックサイト

ICT関連の学習備忘録

2019-08-23 : アルゴがWEBブラウザで動いた!

いやー。やっと作ったカードが使えた!表示できた!
http://python.workbook.tokyo/
※安定の不安定鯖(ちょこちょこいじるから)なので落ちてる場合もあります。


出来たっていって言っても最低限何だけどねぇ・・
最低でも例外処理はしないとアカンでしょっていう←
コンソールの実行ファイルの方は処理してたんだけど、
Flaskの勝手が分からずとりあえず動かせる状態に持っていくのが精一杯だった。

触ってみて分かったけど、これは上手くやればネット対戦実装出来るなぁ、と。




それから、DBの構文をまとめ一覧にした。
今までなぐり書きみたいな感じでまとめてたけど、ふと思ったんよね。

DBは今後絶対に使うし使うたびに忘れてて調べる事になる!

そこで今後もすぐ調べられるように全部にアンカー付けて置くことにした。
SQL構文まとめ(一覧)
多分便利!後は余力がある時に検索機能つければ、
きっと今後とも長いお付き合いになるのではないかと←忘れる前提。

2019-08-22 : venvでPythonを動かすも・・・

Flaskが動いて、WEBページにHello pythonを表示できたのは良いのだが、
早速制作に入ろうと思ってとりあえずランダムで画像表示をさせようと
したらライブラリがインポート出来ないっていう事案発生。

パス確認したり、仮想環境のvenv確認したり実環境の方見てみたり…
途中で別事案発生!←

一度、ルーティングしてるpythonのプログラムを動かした後の
再稼働のさせ方がわからない…。
わからないっていうかエラー吐く。

プログラム終了してもソケット側が使用中状態で残る。
で、再度立ち上げるとポートが上記の通り使用中だから
動かせねーよって起こられる。

結果、立ち上がらない\(^o^)/

なお、pythonのルーティングのポートを返ると問題なく動く。
終了するとそのポートも潰れるw

今分かる範囲ではリブートすれば開放されるって言うことだけ。oh...

ちなみに
ps -aux |grep python
で該当するプログラムを全部killしてもソケットの方は残り続ける。困る。

と、これらを行うにあたって結構な時間(ほとんど調べる時間)を費やして
しまったので一度保留にしてWindows環境側でプログラム作成、動作確認
するようにして、動かせるようになってからVPSに持っていく方向に転換した。

結局Flask全然触れてないっていうw

以上のことから、昨日URL割り振った、
http://python.workbook.tokyo
は、とても不安定です。
てか既に一時放棄してるから基本502エラーを返しますw(Bad Gateway)

2019-08-21 : グローバル環境でpythonが動いた!

動いたって言っても、Hello Pythonってやっただけ←

大まかな流れはLinuxのVPS側に軽くまとめた。
pythonとリバースプロキシの設定

とりあえずVPSにpython入れて、フレームワーク(flask)入れて
リバースプロキシでPythonのListenポートに渡して
http://python.workbook.tokyo
サードレベルドメインにpythonをあげた。

venvの仮想環境も用意したからpythonの同時立ち上げをいくつかしても
URLはドメインで増やせるし、ポート変えても
NginXでリバースプロキシ噛ませれば良いかなっていう。

後はDNSを始め、サーバ設計どうしようかと
VPS、レンサバ、自宅鯖を全部繋げる・・のはレンサバが厳しいけど
自宅鯖はVPS側とVPNでつなごうかとか思ったり。

っていうサーバーサイドよりインフラ側の勉強みたいになってきてるから
そろそろPyQ戻らないとサーバーで遊んでばっかり最近疎か・・・。

発端は自宅鯖でFlaskが動かないってところからだけど

結果としては環境は整った!(再)
って感じですねー。

2019-08-20 : 初めてのVPSを運用開始

ってタイトルにしたんだけど、内容が多すぎるから
LinuxページでVPS枠作ったから詳細はそちらへ・・・w

VPSとか下記の件とかやってたらFlask出来なかったテヘペロ。

あと、トップページの内容少し変えた。
1日の記事(×5件)全部表示じゃなくて
1記事辺りの文字数に制限掛けて、全文表示しないように変えた。

最初JavaScriptでやろうと思ったけど、
フロント側では結局全部読み込まれる(見えないだけで)
なら、CSSでやったほうがよくね?ってなって、
いや、それなら通信量抑えるためにもサーバーサイドで
文字削った方がよくね?ってなって

ほんでPHPでやってみたんだけど、PHPだと文字数で丸める形になるから
aタグとかimgタグの途中で切れた場合ぐちゃぐちゃに崩れる。

で、こんな時こそ「htmlspecialchars」でしょ!って反映させたら
こんな感じになった。 oh....

そりゃタグそのまま出ちゃうよねーっていう。。

結果、CSSにしてPHPは全文表示のリンクURLを生成するだけになった。

2019-08-19 : Flaskが動いてくれない・・

講義はデータベースに入りましたとさ。
今日の内容は、下記。
・データベース概要
・キー
・RDBMS
・SQLの機能
・データベース定義(DDL)
・データベース操作(DML)

詳細はデータベースページにまとめていきます。


自学の方はPyQでWEBアプリ入ったから、
自鯖環境でも動かしながらやってみよー!
と思って環境の調整してた・・・ただ、それだけになってしまった。
(未だにWEB側では動かせていないOTL)
明日、動かせる状態までには持ってく。

2019-08-17 : PHPとHTML上部に謎の改行・・解決。

ずっと気になってた謎のホワイトスペースやっと解明というか解決した。

※先に結論だけ言うと文字コードが「UTF-8 with BOM」になってたのが原因


このサイトのHTMLはヘッダ情報とメニューをPHPでincludeしてて
メインのメニューは上部と右側がメニューになってるPHPで
サブページ他は上部メニューで右側をファイルリストにしてまして(してた。)

ちなみにhtmlファイルの1行目からPHPで書いてる
---------------------------------------
<?php
include './hogehoge.php';
/*ヘッダ情報、メニューを外部入力*/
?>
<div(略
---------------------------------------

で、何故かトップページだけ上部に1行謎の空欄というか改行が入ってる。。
(ブラウザからソース開くと<!DOCTYPEより上に改行が入ってる)
で、CSSいじろうかなって思ったところ真っ先に気になる部分で
解消しようと試みたわけです。



とりあえずCSSを疑ってclassとid確認しても問題なし。

で、HTMLファイル自体も確認。特段問題なし。

ヘッダ情報を読み込んでるPHPを消すと問題なし。

やっぱCSSか?って思ってCSSを空にしても改行発生。CSS起因ではない。

やっぱHTML??って思ってサブページの内容をコピペ(includeはindex用)

改行発生。やっぱPHPだわ。includePHPをサブ用のに変えてみる。発生しない。

PHPなのは間違いない。でも構文上特段誤った内容は見受けられない。

index用のPHPにサブページで使ってる(問題の無い)PHPの内容をコピペする。

改善されないOTL

他の内容(index.htmlのHTML)等もサブページと全く同じ内容にコピペしてだめらなら
って考えてたら一つだけ原因になり得るものを思い出した。

確か独習PHPでWindowsのテキストエディタは推奨しないって記載がありーの、
なぜかと言うとファイルのヘッダ部分に余計な文字が(識別系の情報?)入るから
ってな感じのがあったなーと。

で、ファイルをプレーンテキストで新たに作ってその中に同一内容をコピペして
拡張子付けてUTF-8にしたらなんと直ったんです!

ということで厳密には把握しきれて無いけど、結論を言うと
文字コードがおかしくなってた。
最初からUTF-8で作成してそのまま運用すれば良かったのだけど、
どのタイミングで変わったのか、はたまたもとよりそうだったのかは置いといて

文字コードが UTF-8 with BOM になっていたのが原因でした。




2019-08-16 : クラス、メソッド、オブジェクト指向・・

どうも、最近WordPressが恋しい僕です。
もしくはDrupalでも可←。

そう。デザインをなんとかしたい!

が、CSS触るの腰が重いとです。
カテゴリとかコメントとか検索とかボタンでタグ挿入とかアプロダとか
追加したいけどPHPやるとPythonそっちのけになっちゃうので堪える・・・。

そんなPythonの方は、相変わらずクラスとオブジェクト指向がががが
って感じなのでとりあえず慣れてみようって感じで、
以前作ったHigh&Lowゲームを使って
無理やりclassの中に打ち込んで、ほとんどメソッドで処理するようにしてみた。

こういう使い方であってるのかは分からんしただメソッドに下だけで
手続き型プログラミングなのは変わりない・・・よなぁ・・・OTL

んまぁとりあえずコード整理して改めて循環的複雑度を見てみた。
'Loop 20' is too complex (12)

class.py:24:5: C901 'Hilow.cl' is too complex (2)
class.py:49:5: C901 'Hilow.hikaku' is too complex (5)
class.py:71:5: C901 'Hilow.endif' is too complex (2)

見方が分からんのだけど、メソッドごとにコンプレックスが
出てるから合計9って事で良いのかなw 減った\(^o^)/
(try/except使ってないから少し端折ってるけど。)

ただ、少しだけクラス内での引数の動き方が前より分かった気がする((
来週の日中はアルゴのcomplex21を簡略化する試みをしてみる。

PyQはデータベースポチポチやってるけど、
PHPで言うPDOと大体同じだからポジティブに進められてる。
ただ、SQLiteは初めてだから一応DBページの方に備忘録付けてる。


2019-08-15 : python入門おわり。

とりあえずお盆の間にPyQの
「プログラミングを一から学びたい方」のコースは完遂した。
最後の課題、3分の1ぐらいは頑張って書いたけど
結果カンニングした←カンニングしないと多分終わらねw

PyQ初めて10日が経ったがなにか出来るようになったかと言うと
ぶっちゃけ何も変わっていない(ぇ
大文字のEを打つ時上行き過ぎて#押しちゃうっていう
変な癖みたいなのがついてむしろタイピングスキルが下がってる←

ユニットテストが大事なのは分かったけど、ちょっとイライラしてしまう(ぁ
自分のコードは修正するの苦ではないが知らんコードだと…

僕はFlake8を常に使うようにしてPEP8の規約に準じた
パイソニアになろうと思います。

循環的複雑度(McCabe)というコードの複雑さを表す
指数があるらしいから見てみたら
ハイアンドローが → 'Loop 20' is too complex (12)
アルゴが → 'Loop 96' is too complex (21)

1-10 安全なコード
11-20 少し複雑なコード
21-40 複雑なコードでテストが難しくなる
41以上 ヤバイ
っていうざっくりとした評価なんだけど←

高いからすげぇ書いてるってわけじゃなくてむしろ逆で
低いのが理想なんだとさ。
高くしない方法としてはクラスやメソッドで切り出したり
共通化出来るものはまとめるとか。

アルゴ、クラス使ってないしな・・単純に複雑になってて
あんまりよろしくないコードって判断になる。
使って慣れないとどうしようもない・・・。

とりあえず次のコースは「Webアプリ・API」をやってみる
苦痛なユニットテストからだけど飛ばし(ry

2019-08-13 : オブジェクト指向が鬼門ですOTL

基礎学習の方がオブジェクト指向に入りまして。
相変わらずしっくりこないとです。
PyQのコース進捗は405/443修了といったところです。
一日50って結構忍耐使う・・・2,3日で終わらんかったし←

忍耐使うし肩が凝る。何度伸びしたか分からん。

ずっと勉強勉強だと疲れちゃうから
息抜きがてらアルゴのプログラム弄ってたら
コンソール上でのプログラムとしてはもう良いかなって感じに
なっちゃったので、一旦Pythonページの方に貼ることにした。

アルゴ(一人プレイモード)のプログラム

このプログラムの最終目標はあくまでもブラウザ上(もしくはGUI)
でプレイ出来るようにすることだからまだ完成はしてないのだけれども。

あと弄りながら思ったけど、ブラウザ上であればネット対戦って形でも動かせるかなーと。
フラグ要素を少し追加して処理追記する必要があるのは前提としても
理論上と言うか僕が触れるPHPの範囲内で(Pythonじゃないっていうw

リアルタイム対戦だとイメージ出来んけど、あくまでもターン制のゲームだったら
極論ファイルないしDBにそれぞれの状態を記録をしておけば
ターン終了時に一方はクローズ、ターン開始時にもう一方がオープンで
セーブファイルを共有するイメージっていうアナログな感じでなら、出来なくもないっていう話。

2019-08-12 : 記事毎の個別URL生成

記事への個別リンクを貼ろうとして気づいたんだけど、
カテゴリの方は(LinuxとかPHPとか)個別でURL持ってるっていうか
そもそもhtmlなりを手作業で作ってるからそのページへのリンクを渡せるが、
メインページの備忘録が記事単体でのURL無いことに気づいた(遅

トップページの記事数制限の時PHPで表示件数を5件で
GETリクエストからの変数でその5件括り事でのページ(URL)は生成してるとはいえ
それすらも記事数に応じてページと表示記事がズレていく変数だから
固定でのURLにはなってないっていうのもついでに気づいて

取り敢えずメイン記事に固定URLでアクセス出来るようにだけした。
(もちろんPHPで← つか、PHPじゃないとやり方ワカンネw

処理方法は5ページ括りの時とほぼ同じで、記事件数絞って表示より楽だった。

単体記事表示用の
book.htmlを作成してその中にPHPで
$_GETで指定記事へのIDを受け取るようにして
そのIDでDBからピンポイントで該当記事だけを表示する、だけ。

ついでにIFでGETリクエスト情報がない場合は(単純にbook.htmlへのアクセス)
全記事表示になるようにした。

ふと最後にリクエストされた記事が存在しない場合も必要かーってなって
もう一個分岐でid==nullとかしておけばすぐ出来るだろって思ったらところがどっこい。
何やら上手くいかない

if:ID有り
 →該当記事を表示
elseif:リクエスト情報無し
 →全件表示
else:
 →エラーページ

でやろうとしたのだがどうも、elseifの条件で
nullとかfalseとかしても何故かelseまでいかないから、仕方なく
変数(中身0)を用意して、ifとelseifの中で該当変数の数値を変更して
最後に別途条件分岐で
if 変数が0なら
 →エラーページ表示

って形にした。null、none辺りがどうも苦手です・・・。


取り敢えずこの個別URLで、記事検索とかでもリンクを持ってこれるようになったとです。
作れるとは思うけどきっと嵌まるから余裕ができたら記事検索フォームでも足そうかなと右に。

記事一覧(全件表示)
単体記事ページ
エラーページ

2019-08-11 : パンデクテン方式かよっていう。

pythonのページに備忘録をコツコツとまとめてるんだが。

・・纏めるとか言うと大分語弊があるw

実質はただのメモ。自分で振り返られる程度のなぐり書きみたいなもの。
要するにまとめられてはないww
がしかーし、自分で読み返せば何をしてたのかは分かる程度にはなってる。
自分の経過記録に近いからこれで分からん\(^o^)/
ってなったら本末転倒←

情報量と言うかメモの量が増えてきて思ったんだけど、
まとめるとか到底無理な話だよねっていう。

学習の流れ的には
基本文法→少し掘り下げてメソッドの扱い→他の処理との組み合わせ
って感じで「他の処理との組み合わせ」で「基本文法」が出てこないわけない。

そうするとこのメモがあっち行ったりこっち行ったりする訳で・・
今の所諦めて大まかなカテゴリ分けでページ分けして
そこに追記していくスタイルでやってるけど連動部分が出てくると
もうどうしようもないよね。

これを上手く纏めるには
Wikiスタイルか民法典のように纏めるしか無いと思う←時間的にも無理

PyQクエスト一覧
これをパンデクテン方式で纏めると
チュートリアル~Python初級 が総則
Python文法速習~実務でのPython が個別的規定
標準ライブラリー~他 がPythonが一般法だとすると特別法に当たる部分

って言うとてもズレた考え方で当てはめると
PyQのコース分けは上手く出来てるなぁと


・・・何の話だよっていう感じ←

PyQしかやってないから(ry

2019-08-10 : カードデザイン、久々のフォトショ。

PyQ進めろよって思うんだけど、
やっぱ楽しい方やりたくなるよね。

息抜きがてらにお絵かきをしようと思って
イラレ開いたんだけど、ペンツールすらまともに覚えてないので
諦めてフォトショでカード作った。

アルゴ用のカード。
割とそれっぽく出来た(笑)
とかそんな事してるともうWEBで動かしくなってPHPやり始めちゃう。危険。

まぁ、そんな事言いつつPythonはしっかりやってます(๑•̀ㅁ•́๑)✧
5日で283/443問だから一日辺り55問ぐらいのペースだーねぇ。
あと2,3日で「未経験からのPython文法」コースは終了できるかな。



2019-08-09 : アルゴのプログラムは書けた

PyQぶっ続けでやってると疲れちゃうから
合間合間でアルゴのプログラム書きながらやってたら

一応出来はした。
結構な回数トライ・アンド・エラーを繰り返したとです・・・w

ただ、安定のコンソール上での動作だからまだ未完成とする←
これは流石にWEBアプリないしGUIで動かしたいから
その辺学んで出来そうな段階で実装を試みる。

ちなみに、Pythonで書いた。(故にコンソール上w
PHPだったらWEB上で動くように出来たけど、
今勉強してるのPythonだしなーって事で、取り敢えずは
Pythonで書いてみた。(何より書きやすい)

と、言いつつもWEB実装したい欲が我慢
できなくなってPHPで書き直すかも(ぇ


2019-08-08 : 連休はpython漬け予定。

明日から連休です。

ひたすらPyQやろうかと思ってたんだけど、
今日の帰り、乗り換えの駅で降りそこねて途中で気づいて(遅
元の乗換駅まで戻って(定期的に)帰りましたとさ。

で、倍まではいかないけど、結構な時間があったから
その帰り道にアルゴっていうカードゲームの
アルゴリズムを考えてみたんさ。
アルゴ‐頭のよくなる推理カードゲーム‐algo 公式ホームページ【トップ】

スマホのメモ帳で開始から途中、どんな処理しないといけないかなーとかを
メモして、帰宅した後まとめてみたんさ。プログラムの流れ。

相変わらずフローチャートのちゃんとした書き方わからないけど、
一先ず自分でみて分かるような感じで。

メモ帳から転写して図にしたのが下記の画像なわけだけど
実際に書く時はメモ帳見ながら書いたほうが楽そうっていうww
プログラム各流れでメモ記述してたから←

2019-08-07 : 結局自力で学ぶ方向へ・・HTMLとCSS(笑)

うーん・・w
一応というか事実だけど・・HTML入ったから
HTML&CSSのページ更新したんだけど
HTML・CSS訓練記録

マジでいらなくね?っていう
場合によってはDBと結合だなー。
括りが意味不明すぎるけど内容が無さ過ぎて・・・w

って前置きで書くぐらいに、
HTMLとCSSはもう自力でやるしか無いって確信してる。

つきましては最低限のデザインというか表現が出来るように
自前で辞典を買ったんさー。

詳解 HTML&CSS&JavaScript 辞典 第7版

選んだ理由
・HTMLとCSSとJavaScriptの欲張り仕様
・辞書として収録構成(やりたい事→索引がしやすい)
・カラーでページレイアウトも見やすい。
・安くてそこまで古くない(中古で900円、2017年)
JavaScriptがちょいと古い気がしないでもないけど許容範囲

JavaScriptには魔物が住んでるって聞いたのねん。
深入りしたら帰ってこれなくなるって←

だからWebページ用途で使う範囲でまとめられてた方が扱いやすいかなと。
掘り下げたかったらjqueryとBootstrapやれよって話になってくるし。

どのタイミングで学習するかは中々に難しいところだけど、
幸いこのWEBページには複数のページがあるから
ページ毎でそれぞれ弄ってみるのもありかなーなんて考え中。

2019-08-06 : 他のラーニング学習サイトと比較すると…

PyQをやり始めて二日目。

関数とかのメモ書きは
pythonページの方に箇条書きしていってる。
pythonプログラム言語学習履歴

とりあえず1からやり直してる訳だけど、率直に良い。

Progateやpaizaラーニング、ドットインストールとかラーニング系の
学習サイトの入門向け部分は言語問わず色々と触って今に至るわけだけど、

pyqのレビューとかで中級者向けの内容も学べるってのをいくつか見たし
実務者視点でのレビューみたいなのも見て高評価だった理由が分かった。
(そのレビュアー達が評価した部分と一致してるのかは別として個人的に。)

今pyqでやってる範囲っていうか分野っていうかキャプチャー的な内容って
上記のラーニング系サービスだと無料で出来る範囲内だったりする訳なんだよね。

だがしかーし、同じ内容をやっててもpyqの方は、
1.レッスン内で使用してない関連関数についても触れる
2.レッスン内容と関連する独自のドキュメントがすぐ開ける
3.演習に対して別の処理法・関数を用いた使用例も提示してる
4.基礎はこうだけど、実務だとこう書く、といったコラムが地味に有り。
この辺りが特に強い(他との比較では)と感じた。

特に1と3と4辺り(2以外w)なんかが初級者と中級者の壁(?)なんじゃないかと。
現にpaizaで内容的にはほぼ被ってるPython入門編を全部やった上で
今入門部分からやってるけど、見たこと無い書き方の説明や関数の別の使い方
の説明が添えられてたりしてる。

pythonやりたいってならpyq一択ってのは激しく同意、
ただ、他のも広く触ってみたいとかってなると話は別かなーと。


単純比較は会社も違うし内容も同じのは無いから出来ないのだけど、

仮にレッスン数が1000あったとしたら、
pyqはpython関連しか扱ってないから、pythonのレッスン×1000レッスン
10言語扱ってるところだと1000レッスン/10言語で1言語当たり100レッスン


結果、目的に合わせてってなっちゃうよねぇ←

2019-08-05 : python始めました(本腰)

今日からPyQ始めました。

他のラーニング系サービスに比べると高く感じる。
というか単純比較高い。否めないw

学べる言語多かったり安かったりってメリットが多いように見えるけど

ピンポイントでpythonを学びたい僕からすると、
他の言語のレッスン追加するぐらいだったら
全力でpythonの内容を濃くしてほしいと思うわけです。

あと料金、参考書買えるって考えるとやっぱ高いよね。
だがしかしこれも考え方次第というか自分の考え方なんだけど、
PyQの1ヶ月の料金が2,980円
独習PHP(500P超)が2,679円※アマゾンのアウトレット。定価は3,456円

んで独習PHPを手元に置きながら学習した期間が1ヶ月半弱
(当然毎日開いてたわけではないし自分でコード書く時とかは見てない)

一方PyQは同等の金額で1ヶ月っていう制限がある(課金しないならw)
ただ、内容的には幅広く扱ってるから実際1ヶ月じゃ到底終わらないと思われる。
長引くとそれだけコストが掛かる(時間も金も)

金額云々はともかく損得勘定が出てくるわけです←
拍車をかけるんです自分に。

あ、一応リンク。
PyQの概要はこちら
クエスト一覧 クエスト一覧から選択するも良し
学習コース 目的に合わせたコースで学習するもよし

ほんで今PHP脳(構文的なのが)になってるから、基礎的な部分(処理の流れとか)は
分かるんだけど復習とPython脳への切り替えも兼ねて

あなたにオススメをガン無視して未経験からのPython文法コース
からスタートしました。

まぁーそんなこんなで取り敢えずの1ヶ月でPythonガンガンいこうぜ!
という心構えです。

復習の範囲だからまだガンガンいける←

あと、知らなかったIFの条件式が出てきたから、
PHPでも出来るのか試してみたケドダメでした←

2019-08-04 : 【合格】PHP7技術者認定初級試験

はい、無事合格したのでPHPと袂を分かつ時が来ました(ぇ

合格評価得点700/1000
私の評価得点775/1000
結構ギリギリだったなーと。

パッケージ管理とフレームワーク0点(笑)
フレームワークもライブラリも使ってないから当然パッケージ管理する必要性が無かったんや…
少し踏み込まれて積んだよね。しゃーない←

間違えた箇所全部心当たりあるというか、「後で見直す」にチェック入れてた9問全部間違えてましたねー。

これで950点とかだったら舐めプで上級とか視野入れてたかもだが、
前途の9問は絞り込みすら出来なかった訳で現実を見れましたとさ。

ともあれPHPは一旦終了の方向で。
(必要に応じて、Webページ構築では使うとは思うけど基本学習は終わり。)


さてさてさーて。
ここからが本番でPythonやります!
・・って意気込みなんだけど、
現実を見ると、

少しスケジューリング間違えたなってのを最近感じてる。
大した時間を割かないにしても、順序的にはやっぱりと言うか、調べると出てくると言うかなんだけど

初っ端で短期集中して(1週間がっつりやるみたいな)
HTML、CSS、javascriptを触って置いた方が良かったなぁと。

ほらどんなに美味しい食べ物でも見た目がゲテモノ過ぎたら食べてすら貰えない感じで。
どんなにスキルや適合性があっても面接にアロハシャツ着てきたら採用されないのと似た感じで。


そんなこんなでタイミング失い掛けてるから、講義でHTMLやってる間に
表装部分3言語をこの機会にやろうかなと。
PHPやり始めの時からずーっと、この3言語がずっと後ろ髪を引いてくるんです。。

2019-08-03 : 大方準備完了

明日はPHPの試験なり。

問題集の問題を全部回した。

正答率90%超えしてるから問題無い( ´・_・`)カナー

IパスみたいにCBT試験だから
試験終了後その場で合否結果が分かる。早くて良き。

保有資格一覧見てて気づいたんだけど、
気づくの遅くて危なかったんだけど、
8月18日までに普通自動車免許の更新しないとアカン。
完全に忘れてた。


2019-08-02 : HTMLとCSSをどうするか考えねば。

講義スケジュール的にはサーバ構築は昨日で終わって、
今日からHTMLとCSSの予定だったのだが・・・。
8/5までサーバ関連が食い込むようです。

HTMLはそんなに大変じゃないからずらしても問題ないらしい。
実質4日しかやらんぽいけど、本当に触りだけになりそうな気がしてならない。

というか触りだけなんだろうなぁ←

そうなるとですね、自力で学習するしか無いわけで
日中なんか参考書持参して自分でHTML5とCSSやろうかなぁと考え中。

2019-08-01 : 今日は大した進捗なし

取り敢えず、8/4に受けるPHP技術者認定試験対策で
問題集と参考書見てるだけ・・。

自分で作ったアプリのおかげ(?)
で正答率に82.5%ぐらいになった。

アプリで問題を解いたおかげではなく
問題を作る際に調べたりしたおかげなのは間違いない・・w

2019-07-31 : ネットワークエミュレータがすごい!

今日はPHPの問題集を軽ーく解いただけなので、
特に書くことないと思ったがしかし。

講義内容の復習を自宅でやるとかは基本的に無いのだけど(←しろよ
Linux学習記録のルーティング系の部分を少し整理(復習)をしてて
コマンドをググってたら分かりやすくまとめられてるサイトを見つけた。

リンク:ネットワークエンジニアとして

何がすごいって情報の要約の仕方がすごい。

ネットワーク技術の学習者向けのページだと、
Network Studyのページが講義で使ってるテキスト+板書と説明とをコミコミで
比較してもこっちの方が断然分かりやすい(ぁ
技術然りコマンドについても説明してくれてるのと使い方例があるからイメージしやすい。

ネットワークエンジニア向けの資格関連情報がマストでまとめられてる。
学習方法とか転職絡めての優位性とか書籍とか。

ネットワークエンジニア特集は現職者視点で書かれてるからリアル。

まぁ、僕はネットワークエンジニア目指してないからアレですが。

で、タイトルの件「GNS3」っていうネットワークエミュレータがすごい。
仮想ネットワークが構築出来る。Ciscoルーターのエミュレーションもできる。
コンソールも実機と同じように操作できる。
virtualbox使えば、もはや箱庭ならぬ箱ネットみたいな。
CCNAの学習とかは実機ないと厳しそうって思ったけど、
これ使えばルーティングの勉強が視認しながら出来るからやりやすそう。

まぁ、CCNA高いし現時点で必要性がなく受けないのでアレですが。


2019-07-30 : PHPの試験勉強用の問題アプリ

PHPの試験日が迫ってきてるけど、
どうもやる気が起きないと言うか
勉強自体そもそも好きじゃないっていうか
そもそも諸々を暗記するのが覚えるのが面倒くさい。

から、勉強でも覚えるわけでもない方向で記憶する事にした。

PHPの問題アプリ風のプログラムを書く。

Pythonでコード書きながら
PHPの知識インプット(説明とか補足部分の正誤確認の時に調べるし・・)
PHPの知識アウトプット(問題作成とそれ自体の答え合わせ)

っていう一石三鳥プラン。

で、がーってなぐり書きして出来たのがpythonページの方に貼ってあるから省略
とにかくコードと言うか問題リストの配列がかさばりすぎてて笑う。

python : PHP試験対策の正誤問題アプリ

で、やる前から知ってたんだけど。
だからこそやったってのもあるんだけど、

この出来上がった問題アプリって自分じゃもはや使わないんだよね。

問題作る時点で頭に入っちゃうし、なんせ↓にSSあるけど
この問題リスト全部手打ちで入力してるんだもの。。

かつ、問題の一部変えたり解説部分挿入したりってやってた
普通に問題といて次のページ捲ってってのよりそりゃ頭に入るでしょっていう
疲れるけど勉強してる感がアプリを作るっていう目的意識の方に引っ張られるから
普通に勉強するよりは苦痛ではない←

学習速度が確実に落ちるから短期集中型の僕にはあまり向いてない(は?


2019-07-29 : コード書いた。 ~pythonは唐突に~

またまた突然Pythonでコード書いたとです。
きっかけは変わらずO氏に聞かれて、フローを構想したから。
どうせなら具現化しようっていういつものパターン。

しかも今回手書きでフローチャート描いて見せたから、
前回のクイズよりもサクッと出来た。

High&Lowゲーム(2019/07/29)

閑話休題(←「それはさておき」で変換したら出てきたw)

PHP7技術者認定[初級]試験申し込んじゃった。
問題集1周して正答率60%(80/133問)だった。←基準点70%

けどまー、
正答率50%未満の落としてる項目が、
オブジェクト指向構文系←単純に頭入りきってない
ファイル操作系←流し読みしただけで実操作してない
デバッグ・PHPコマンドライン操作←コマンドライン未使用
フレームワーク・メーラー←完全にノータッチ

・・・と、明白だしオブジェクト指向はともかくとして他は
一周目で解説熟読して大体把握した出来たから、
トータル7割いけるっしょーというのと

何よりそろそろPHP離れしてPython集中したいっていうのが本音で。
最速でケリをつけようと試験会場の日程的に、
最短で受けれるのが8月4日だったからそれで申し込みした。

これで落ちたらウケルー。


2019-07-28 : 簡易アンケートフォーム(今更)

今更感半端ないけどアンケートフォームを作ってみた。

LINEの投票フォーム使おうと思ったけど、簡易的なのなら
すぐ作れそうだから作って見ようという学習ファースト思考←

流れ的には・・
1.フォームから回答の値を取得 サブミットでDBメソッドへ送信
2.DBメソッド側で取得した値をデータベースのカラム毎に更新
3.処理完了後強制的に元のページへリダイレクト
4.リダイレクトで再読込された時点で投票が反映された一覧が下部に表示される。
以上w

補足としてDBメソッド側でセッション取得して、二回目の投票か否かを判断して、
データベース更新をしないようにしてる。
で、更新無しでリダイレクトする際にGET変数いれといて
元のページ戻ってきた時に選択肢を表示させないようにする処理もした。

けど、実際ガバガバ。というか完璧に多重投票を無くすのは不可能だえぇ~。
もう少し多重投票を無くす努力を施すとしたら
クッキー(ブラウザ側で処理して回避可)の記録が残っていたら拒否。
セッション(ブラウザ変えたら回避可)の記録が残っていたら拒否。
IPアドレス(接続切り替えたら回避可)を記録しておいて存在していたら拒否。
会員登録制(多重登録で回避可)で処理回数を記録しておいて拒否。

辺りまでは出来るけど(要参考書w)、面倒くさいからやめた←

SNSとかでも多重登録の回避は避けたくても避けれないから
複数持ちの比率が一番少ない電話番号やSMS認証を用いてる訳ですね、わかります。



2019-07-27 : 長過ぎるトップページを纏める。

ってことでなんとかした。

記事データの表示件数を
ループの条件何個か付けてまとめました。(やっと。)

単純に5件表示とかはら楽なんだけど、

1ファイルでデータ数に応じてページのリンク生成と
カレントページに対して表示させるデータを指定する
ってのが結構厄介だった。
※詳しい(?)処理とかコードはPHPのページに貼った。
 本当に貼った。エディタのSSをw
記事の読み込み数指定、別ページリンク分け

複数処理が発生するとやっぱ頭の中だとこんがらがってくる。
それと計算しながらやっててもどっかコケた時に戻るのが、
特に大変。コード自体にも慣れてないから一つずつ確認してっての手間。


そこで、そろそろフローチャート的なのが必要かもって思った。

WEBのループ処理完成した後に振り返りながらだったから
もはや無意味だけど練習がてらに作ってみた。

記号?マーク?形状の意味とか書き方とかわかんね!ってなった。
講義の中でやるのだろうか・・・
やらないのであれば簡単に書き方勉強しないと。

2019-07-26 : PHP7技術者認定試験に向けて。

PHP7技術者認定試験を受けるんだけども、受験日をいつにしようかと悩み中。

PHPの試験だけど、3種類あるわけだが
PHP5技術者認定[初級]試験
PHP5技術者認定[上級]試験
PHP7技術者認定[初級]試験
※準上級はおまけみたいなもので、認定ウィザードは別格だからスルー。

んで、受験料安くもないしでどうせなら上級って思ったけども
まず難しい(実務経験3年程度を想定で合格率10%程度)。
スキルレベル3設定だから応用情報技術者試験と同格。
んでもってPHP7での上級試験がまだない。

かと言ってPHP7は参考書等が全然無くてどうしようか考えてたけど
いい頃合い(7/22)でPHP7技術者認定初級試験の黒本が発売されたから

選択肢は他に無いも同然でPHP7の初級試験受けることにしますた。

で、サラッと通過してPythonやりたい。
PHPは必要最低限抑えておきたかっただけやし・・・
これ以上求めると学習方法PHP1本化してやらんとだし。

んで問題はいつ受けるか。
最短だと1週間後の8/3(土)
余裕を持ってだと8/10(土)
とかなんだけど、ここでグダグダやっててもしょうがないから
取り敢えず問題集を1回まわしての得点率が70%超えてたら
来週受けようかなと。

PHP技術者認定機構

2019-07-25 : ログインページ作ってみた。

2019-07-24 : 悩んだ結果、もう少しPHP←

講義の方は・・復習or自習って感じだったからLinuxページへの記録は無し。

ほぼ寝落ちした。
XサーバとPDOの連動が未だに上手くいってないからそこの調整してたのと、
PHPのメソッド作ろうと試みててその間にデータベースのコマンド振り返って・・・寝た。

取り敢えず月内やることとしては下に絞ろうかなと
・ここのWEBページをPHP化する
 →管理画面(記事書き込みらへん)をもう少しCMSっぽく使えるようにする。
・PHP技術者認定試験の勉強と、そこのサンプルデータ写経。
この2つかなー。

んで一個目のPHP化するにあたって、オブジェクト指向文を無理やり使って
習うより慣れろ方式で囲い込む作戦←。

一先ずトップページの全データループをなんとかしたい。

2019-07-23 : 時間配分を見つめ直す、の巻

久々にpaizaラーニングでPythonの続きを。

「Python入門編10: 例外処理を理解しよう 」のキャプチャー全部終わらせた。
「01:例外処理の概要を理解しよう」「02:簡単な例外処理してみよう」「03:いろいろな形式で例外に対応しよう」
「04:発生させる例外を変えてみよう」「05:複数の例外を捕捉してみよう」「06:raiseで意図的に例外を投げよう」
「07:例外は伝わる」「08:finallyをもっと理解しよう」
PHPでも例外処理触ったから、中途半端に残ってるのもアレだったんで
一旦paiza終わらせようと思ってまとめてやった。で、Python3入門編全部しゅーりょー。


取り敢えずPHPは独習PHPを読み切る。ほんで、そこから改めて次の動きを考える。
7月もあと1週間しかないし、ここいらでjavaScriptにだーっとがーっと触りだけやるか、
Python1ヶ月ちゃんとやるか。
Javaを本腰入れていくか。
PHPでECサイト作ってみるか。

んまぁーPHPはWEBサイトの方で作りながら慣れようっていう方向性は変わってないのと
PHP技術者認定試験もあるしでスパッとやめても微妙なので8月中は触る。

Pythonをやり始めるとしたらjavaScript触るタイミングがあんま無くなるし・・
HTMLとCSSも最低限触りたいし、講義はデータベース入っちゃうし。
8月上手くやりくりしないと9月から本命のJava入っちゃうし。

てことで、自学の時間配分をイメージしてみた。
Python:4割 、PHP:3割 、javascript:2割 、HTML・CSS:1割

PHPは資格の勉強も含めて3割とすると、あんま時間なさそうだけど、
状況次第で9月に食い込んだとしてもPython4割、Java4割、その他2割っていう枠があるから((

開発環境的なのは大方整ってる(気がする)し、
必要とあれば作ればいいだけだしってのと(嵌まるとくっそ時間取られるけど、取られたけど。)
その辺はLinuxサーバーに対して苦手意識があんまり無いってのがつおい。
(だからこそ寄り道してストリーミングサーバ立てたりで時間の無駄遣いにも繋がる訳だが。)

で、時間配分考えつつ参考になるのが日々の学習記録。(下記)
毎日どれくらいやったかってのを残すことによって(時間の記録と記事での備忘録)
自らのモチベーション維持と逃げ無いように囲い込むやつ。
改めて見るとPython大してやってないなーとか。

PHP時間掛けてる方だけど、進み具合的には実際どうなの?とか
各々の時間投資と、投資に対しての進捗と、進捗からの予測と、予測からの計画
が立てやすくなるので、何かを学ぶ時はログを取るようにしてるけど個人的にオススメ。
※プレッシャーと囲い込みが苦手な人にはオススメは出来ない←


2019-07-22 : CMS風にしたい。ゴール決めないと終わりが無い・・w

土日予定入っちゃうとほぼ何も出来ないよネー。
申し分程度に本読んだだけだったわ。

で、気を取り直してこの学習記録ページのですね、
構想としてはこのWEBページそのものをブログCMS風なのを目指すことにした。

エンド側の画面と、管理者側の画面とを分けて、

取り急ぎ必要だと思うのは、
エンド側は表面上変わるところはあまりないけど、サーバーサイドと連動させるとして
全部にPHP埋め込むことになるネ←
一部ヘッダーのメニューとかは埋め込んでるけどそうじゃなくてDB的な。

今3分間だけ考えてみる。

・トップページの記事数を減らす(数記事毎に次のページみたいなアレ)
・コメント投稿が出来るようにする。
・各ページの記事(html)をデータベースから引用するようにする。
・CSSを整理する。全体のデザインとメニュー。
・レスポンシブにする。
・記事検索機能を追加する。
・問い合わせページの追加・・・いるか?(笑)

はい。これだけ出てきた。
取り敢えず順に、トップページの記事数を減らすのループ回数を制限してやれば
問題なく出来るかなと。イメージ的には、
データベースからループ5回で上から5記事取り出す、
次のページで上記条件+DBの上から5記事を引いて、また5記事取り出す
の、繰り返し・・・。
って思ったけど、例えば4ページ目に一発で行きたい時は、どうするか?
※書きながら考えてるなう。

ページへのリンクもループ必要か。 データ数 % 5 = 0 で次のリンク生成ストップ。
というか記事数に応じてページファイル(phpなりhtmlなり)自体を生成せなアカンな。
DBに記事をインサートした際に記事数が5の倍数になった時点で、
$num ++
touch ("hogehoge{$num}.html")
とかでファイル作る・・て思ったけどそんな記事が増えたからって
ファイルがどんどん増えていくCMS聞かねーしなーと不意に落ちなかったので
WordPressを思い出してみた。
二通りある。
GETリクエスト(?)で「example.com/?p=1111」こうなるやつと
ディレクトリ「example.com/1111」ってなってるやつ。
後者のやり方はわからない。出来なくはないケド、ファイルいっぱいになるww
んー・・・
※書きながら考えてる(大事なことだから2ry
GET送信使ったほうがやりやすい、か?。
index.htmlの記事データのループ箇所に条件式付けて
$_GETの値を元にDB読み込み位置を調整しーの
ループ条件をrange(1,5)にして5回まで、と。

うん。まぁ、きっと、多分、そんな感じだな(適当

要件定義みたいなやつやね。関係図的なの書きながらじゃないと
結構疲れる。頭が。ってことで考えるのはやめた。

次。
コメント投稿は、記事の投稿と似たようなもんだから現状でも作ることは可能。
各ページの記事のデータベース化もトップページの二番煎じ+ファイル生成ぐらい。
CSSの整理はもうすぐ(仮にも)講義があるからそれまでは保留で。
レスポンシブは、ケッコー辛い気がする。CSS覚えてから。
記事の検索機能もはDBでWHEREとGROUP BYを使えばなんとでもなりそう。
問い合わせページは、ぶっちゃけいらねーよって思ったけど、
仮にもCMSという建前上メールサーバと繋げようかなと。
実際管理画面で問い合わせが来てるよーこんな内容だよーってのが、
見れれば事足りるわけではあるけどそれじゃ、コメント機能の実装と
大差ないし別の手法も触るだけ触るって意味を込めて。


管理ページに必要なもの
ログインページ、アクセス解析ページ、画像管理ページ、コメント管理ページ、
投稿ページ(一覧、検索、編集)、カテゴリ管理(一覧、検索、編集)、
CSS編集ページ(デザイン替えられると良いよね)
投稿ページは出来たら、ボタンを押したらHTMLタグを挿入するような機能付けたいけど
PHPだけだと結構しんどい。javaScriptやらんとってなる。


他にもこんなの出来そうって構想はあるけど↑のやったら
相当な時間取られて他出来ないんだろうなーと。

pythonやりたいけど現時点で(今やろうとしてる事に関して言えばだけど)
どう考えてもjavaScriptの方がpythonより先にやる必要性がある件。

困った/(^o^)\日々悩む\(^o^)/


あ、最後にPHP少しだけ弄ったメモだけ。
メイン記事の新規投稿時は改行を「<br />」に置き換えるnl2br関数を使って
nl2br($_POST['hogehoge'])
ってしてたから改行タグを入れなくても反映されてたんだけど、

メイン記事の編集時、通常の改行(記事書く際のエンター)と上記のnl2brで置き換えられた
改行(<br />)の両方を読み込んでて下記スクショ左側みたいになってた。
ほんでこのまま更新させると通常の改行とnl2brの改行で二重に改行がされてしまって、
更に続けるとどんどん改行が増えてく仕様になってた訳で
毎度メモ帳とかで改行タグだけ消して貼り付けしてたけどいい加減面倒くさいから、
正規表現関数使ってみた。
preg_replace( 正規表現の指定 , 置換える文字列 , 検索する文字列 )

実際の該当箇所のコード的には
<textarea><?= e($row['text']) ?></textarea>
↓変更
<textarea><?= e(preg_replace('<<br />>', '', $row['text'])) ?></textarea>
こうなった。



2019-07-19 : VPNとVNCでLANのセキュリティを超えてゆけ←

VPN:VirtualPrivateNetwork
VNC:VirtualNetworkComputing
すなわち、リモートデスクトップですね。
なぜ突然使おうと思ったかというとですね、
教室のネットワーク環境がどんどんセキュリティ厳しくなってきて、
普通に調べ物してても遮断されてたり、自分のWEBページも遮断されたり
プログラミングのラーニングサイトは何処もかしこもブロックされちゃったし
中々に肩身が狭くなってきたので、ここいらで"ネットワーク・サーバの独習"をしようかとね。

多分授業で触れない気がするんだけど、
今アクセス制限掛けられてるのって、要はLAN内からWANへと通り抜ける際の壁で
要求先がのドメイン等に対してフィルタリングしてるのね。多分。理論的には。

で、何するかってLAN内から制限ドメインへ直接向かわなければWANへ出れる訳で
WANに出た後の自由に動ける状況になってから制限ドメインへアクセスしてやれば
LANでのセキュリティは全く関係ない。
んで制限ドメインの応答も直接帰ってくるわけじゃなくて制限の無いドメインを経由して
戻ってくればセキュリティスルーで、要求と応答が出来るって寸法。

端的に言うと、外部に踏み台を作る

やり方は自分が出来る範囲だと2つある。
VPNの場合だとVPNサーバやルータが必要になってくる。もしくはVPS(VirtualPrivateServer)
バーチャル多すぎワロス。・・・で仮想ネットワークってあるようにIPを仮想のものにする
例えば離れた支店とかで、セキュリティ強化したいからってIPでアクセス制限掛けたい
けど営業は外回りでその場その場でIPコロコロ変わるとか・・だと、制限掛けれないから
実際のIPとは別に仮想IPを割り当てて表面上のIPを仮想(偽装)する感じ。

VNCの場合は、リモートデスクトップを使う感じで、遠隔で別のパソコンを操作するあれ。
これの場合はサーバーではなく常時起動しておく(操作される側の)PCが必要になる。
ネットワークを偽装するわけではなく単純に遠隔操作側のPCで、画面で、ブラウジング
だったりの通信を行うから、ネットワーク外にあるPCが制限ドメインへアクセスしたところで
同じLAN内(セキュリティ内)に居ない訳で、当然に通信は行える。
ただし、その遠隔操作される側のPCへの通信経路がセキュリティに引っかかった場合はTHE・END(笑)

取り敢えずVNCの方は、CentOSでVNCクライアントとしても動かせることが確認出来たので週明け実験←




2019-07-18 : 30の大台に乗ってしまった。 (祝)

PHPを読み進めることにした。
10章クラスの定義を読み進めました。
PHPでは、一つのクラス大して一つのファイルで管理するのが一般的らしい。
「クラス名.php」とか「クラス名.class.php」とかって。
Linuxで言うところのbash(シェルスクリプト)みたいなもんやな。
・メリットとしては余計なクラスまで読み込む必要が無い
・ファイル名でクラスが識別可能
・オートローダ利用時に便利
※オートローダ:クラスを一つ一つインクルードしなくても、クラスが呼び出されたタイミングで
 同名のクラスファイルをインクルード出来る仕組み。

と、読み始めて実操作始めたらWEBページの右メニューが気になりだして
読んでるところの内容そっちのけで、
ディレクトリ内にあるファイルデータの取得をし始めるっていう。

備忘録のトップページ以外右のサブメニューのところに
該当ディレクトリ内の"全ファイル一覧"の出力してリンクにして並べた。

セキュリティ的に取り敢えず普通じゃない←

かと言って・・・
1.重要なファイル関係は、ルート外に入ってるから基本的にはダメージは無い。ハズ。
2.DBの接続設定もローカル環境と違うから特に問題ない
3.最悪、弄くられても。ローカルのクローンでしか無いから復元は容易。
4.何より自分で確認がしやすい←

とにかく4ですね!勉強のためにやってるのだから
勉強がしやすいようにした方がええやんって。


データベースまた触ってて、機能触れ忘れたけど、
ALTER TABLE [テーブル名] ADD [カラム名] [データ型];
これでカラムの追加が出来るわけだが、何度やってもデータ型変えても
上手くいできないと思っていたら、カラム名を[update]で作ろうとしていた為、
予約語(禁止語句)と被り、上手く追加が出来なかったとです。

予約語って概念を完全に忘れてた。

予約語で使われてる語句って結構使いやすい単語だったりするわけで、
その辺りを回避する手段としては[a_update]とか[code_at]とかアンダーバーを
用いたりすることで回避可能、と。

2019-07-17 : 入力フォームとDB連動復旧

WHEREでの条件付け出来た。絞り込みが出来なかった原因としては
POSTデータの受け渡しが上手く行ってなかった。
数ファイルに渡って同じデータ投げてたから途中で名前付けが変になってたとです。

どっかのソフトウェア開発企業の社長のツイッターかなんかで見たけど
「未経験がプログラマ目指す際に作る成果物は管理画面を作ると良い」
って言ってたんよね。
少しだけ、意味がわかった気がする。
管理画面だから、管理者が使うようなページ、adminiって言ったらかなりの権限があるわけで
いたるところにアクセスや操作が出来るのね(基本的に。エンドと比較して。)
出来るってことはアクセスや操作経路(コマンド送信やリンク等)を用意しないとアカン

対応するつったって、単に操作性って言っても最初は作るだけだったのが
作成から削除、変更、並び替え、複製、結合、分解、計算、除去・・・って色々な操作がね
自ずと必要になってくる。

要約すると機能追加って結構労力使うわって話(簡潔
次画像ファイルのアップローダを付けるか他のページも編集しやすくデータベース管理に
するかどうするかって考えてるけど前者の画像ファイル処理絶対面倒くさいし←
アップローダ自体は直ぐにできるけどファイル名自動変換、データベース登録、そこから引っ張ってHTML出力
アップロード前にはサムネイル表示させたりしたいってなると一時フォルダ的なのが必要だったり
途中でセッション切った場合の一時ファイルどうするの?とかもあるし。

うむ。取り敢えず、PHPの本を読み進めるかpythonたまには触るかのどちらかになるであろう←



2019-07-16 : バックアップ大事・・・OTL

備忘録のタグが収まったので次は、投稿フォームを作ろうかと。
その前にデータベースのコマンド復習とPODでの書き込み処理を
整理せなあかんと思って、データベースのコマンドピックアップしたら想像以上に
かさばる内容だった件・・・。データベース自体の基本操作ほとんどあるんじゃね?
って思うぐらい。
まだ講義入ってないけど、せっかくだからDBのページに貼った。
データベース・SQL訓練記録
まーいちいちググったり本開いたりしなくても、Ctrl+Fですぐ引き出せるのは楽。
復習も兼ねてやってたから相当時間とられた。

で、取り敢えず投稿用フォームを作って、整形は後からでいいから機能させる事を第一に考えて作る。要は雑←


はい、フォーム完成。
ついでにデータベースも完成
CREATE DATABASE データベース名 CHARACTER SET utf8;

ほんで内部処理で、ポストデータをPHP(PDO)に渡して、PDO経由でデータベースへ保存、と。

ここまでは完璧だった!!(力量の全力って意味で)
が、しかしこの後記事のだけじゃなくて削除と編集このままやるかと言う感じで先走った。
レコードの削除は問題なく、
prepare("DELETE FROM blog WHERE id= :id");

入力された記事IDをWHEREで条件付けしてピンポイントで削除できた。

事件は次の工程で起きた。
UPDATEコマンドでレコード内容の更新を試みたのだがその際WHERE(条件)を付け忘れ
whileでループ処理・・・・。
すなわち、更新がすべてのレコードに対して行われ、同じ内容での更新(上書き)をループ

データベースのバックアップもせずにそのまま次の工程入るからこういう事に。。。教訓になった←

ちなみに、UPDATE文での更新処理でWHEREが上手く動いてくれず、更新プログラムはまだ戦ってる最中なり。

データベースで変なループかけると全データがこうなるよってのを視覚的に言うと
僕の場合は↓こうなった。

2019-07-15 : ITの転職フェアに行ってきた

今日は勉強してません←

@typeの転職フェアに行ってきました。

想定より遥かに企業説明を受けてしまった・・疲れたw

いろんな企業で未経験で今学習中だけど何を勉強したら良い?どういう学習方法が良い?ってのを聞いてみた。

「何の言語が使えるかよりも、何かしらの言語を深く習得している方が良い。
何かしらの言語が使えれば他の習得はそれほどハードでは無く論理的思考が出来ると判断が出来る。」

「ポートフォリオや作品といった纏まった形あるもので無くても、
学習の中でどんな事をしたのか、どういう事をしようと試みているのかの途中経過でも
提示できるものがあると人事としては熱意が感じられ◎」

「学習の仕方として、一つの物を作ったら(簡単なものでも)そこに機能等を追加していくような学習、
どんな機能を付けたいか、こんな操作があると便利そう、等での拡張を試行する事で
ただ単に言語学習するより遥かに良いし業務的思考が付きやすくオススメ」

「Web系をやるならやはりPHPは抑えておいてほしいところ。アンドロイドを含めるとjavaも多い。
言語自体というよりはフレームワークを扱えるようになると良い」

と、こんなところですね。


学習記録の方は勉強してないからなにもないんだけど、
せっかくデータベースで簡易表現(展開されたら変わらないからソース見ても変化ないけど)出来たから、
こんなにコードが短くなったーっていうスクショw

ズラズラ書かれていた文字たちはデータベースに格納されています。



2019-07-14 : ITパスポート受かった。

5月に受けたITパスポートの合格証が届きました。

そんなことより、PHPとmariaDBの接続が出来ました!いえーい。
原因は・・・パスが通って無かった・・のか?
php5xが共存してた故という可能性とremiでインストールしてディレクトリが
ごちゃごちゃになっていたっぽい。書籍での説明が完全にWindows仕様で余計に混乱した点
動作してるphp.dにmysql関連のiniが一切なかった点。インストール出来てなかった←
結論としては、上記状態でソケット(sock)を上手く指定できていなかった。
相当にもがいて、最終的にはphp関連全て削除して、再度インストールし直した。

[root@localhost ~]# yum remove php-*


で一層。そして再構築。接続完了わーい。って感じ

で、せっかく接続できたからここの備忘録をデータベースに格納しようと
試行錯誤してました。
実際、日付とタイトルと本文ぐらいしか無いからテーブルはすぐ作れた。

INSERT INTO テーブル名(列名,...) VALUES(列値,...)


の、インサート命令での書き込みと、

delete from テーブル名 where [条件];


の、デリート命令しか使ってない。

まー、二昔前の日記サイトかよってぐらいシンプルでコードもbr以外手打ちだけど、
少しだけ記事が書きやすくなるかも。何よりindexのタグがスッキリする。
明日、手打ちでインサートしないと・・・手打ちで・・w

2019-07-12 : PHPのPDOでハマる…

講義でやったDNSとHostsは下記にザックリまとめた。
Linux・サーバー訓練記録
まとめたけど、実際自鯖と独自ドメインで運用してるから当然この辺は触れてる←
自宅鯖の場合LAN環境で動かすわけで毎度ローカルIPで作業するわけじゃあないので
hostsは状況に合わせて書き直す必要あるのと、バーチャルホストを使ってサブドメイン
運用をする際ローカルIPだけじゃアクセスすら出来なくなるかんねー。
DNSは独自ドメイン取ったらすぐ使えるほど都合良くもないので当然名前解決しないと
アクセス出来ず、自分のドメインとグローバルIPアドレスの紐づけは必須
サブドメインやメールアドレスを使用する場合もDNS設定を行わないと使えないので
WEB関連のアプリ作成をする場合には必須だと思われ。(自分で全部やるなら)

んで、データベースの方だが・・、mariaDBの環境構築OK、テーブル作成等OK!
ほいじゃいよいよPHPから繋いでみよう!接続確認→エラー!
という状態で結局データベースの学習が進んでいない件w
テキスト通りにいかない!困るー。説明通りの設定しても出来ないというか
そもそも、説明通りの項目がないっていうね。
PDO(PHP Data Objects)の設定が分からない\(^o^)/

こうなってる最大の原因は分かっている。
そもそもの環境が書籍と違うっていう点
書籍ではXAMPP環境にてserverを建てているのに対して当方はCentOS7にて建てている
自力で解決する訓練にはなって良いけど、学習進めないなう!って状態は辛いものがあるw

取り敢えず自力で情報収集してなんとか打開してみせる。
最悪DB関連書籍を買う←
ちなみにmariaDB(MySQL)への拘りを捨ててPostgreSQLで進めればPHPとの接続確立できてる
から出来ないことは無い・・・多分。コマンドの違いがどう出てくるのか不明だけど。

↓DNS設定のサンプル



2019-07-11 : バーチャルサーバにもMariaDB導入

昨日結局データベース環境構築で時間取られちゃったからその後大して
触れなかったとです。で、参考書眺めてるだけだとマジで覚えれないから
実際に操作せなしゃーないということで、講義の時間を使って
教室PCのVirtualBox CentOS7クローンに同様の環境作って黙々とやってた←

講義はサーバに入っていくけど、4分の1ぐらい耳傾けておけばついていけそうな
内容だからスキマ時間(本来は隙間ちゃうw)を上手く使ってPHPを8月中に
それなりのところまで持っていきたい。もっていく。

合同の会社説明会1ヶ月ぶりぐらいに行ったけど、このペースだとちょっと
物足りない気がしたから@typeの転職フェアいくだけ行ってみようと心変わりした。
自宅学習は予定があって、本日は何も出来てない。
講義のまとめはLinuxカテゴリ内に貼っていきます。
Linux・サーバー訓練記録

2019-07-10 : DBやるしかない・・

ついにデータベースへ入っていくとです。。
取り敢えずPHP8章のアップロード処理の実装($_FILES)まで終わったので
次は9章の「データベース連携」に入ります。
ここまでので範囲で多分BBSぐらいは作れるぐらいの内容にはなってると思われる
ただ、今やっちゃうと入出力がcsvとかxmlでの処理になっちゃうから微妙だなーと。
ちなみに作れるぐらいとは言っても覚えてはないから参考書行ったり来たりしながら
”なんとか作れるだろう”ってレベル。誤解がないように・・w

データベース入る前に、忘れかけてるというかどんどん頭から抜けていってるpythonを軽くやった
paizaの「Python入門編9」が残り2キャプチャー残ってたので、
「#07:クラス変数とクラスメソッド」「#08:標準ライブラリを読み込んでみよう」の2つを完了して
Python入門編があと10章だけになりましたとさ。

さて、DBですが・・・出落ちズッコケ状態ですOTL
ロケーション設定等々文字コード云々いじりまくって解決出来ずだったので
MariaDBアンインストール。関連ファイルも完全削除して改めて再インストール・・

とてもとてもハマりました・・・OTL
しかしまーあれです。すんなりいくよりマニュアル通りじゃないところで
同じように動かすって意味では経験値にはなるから、出来たならそれは結果オーライ。

環境だけでも3パターンの環境で試してる状態なんよね。今気づいた。
ローカルサーバ(自宅)、グローバルサーバ(レンサバ)、教室っていう。
全部が全部同じやり方ですんなり出来る事の方が少ない。

あ、講義はLinux基礎が終わって明日からサーバ。

2019-07-09 : Linux基礎が終了

Linux基礎が終わって、明後日からサーバー構築に入ります。
内容はLinux・サーバー訓練記録のほうにメモ書き程度で書き出し済み
やっぱコマンドとかって使ってないと忘れるし使いこなせないですのぅ

PHPの方は、サーバ環境変数($_ENV)、クッキー情報($_COOKIE)、セッション情報($_SESSION)
を一読して終了。(ぇ 明日アップロード処理の実装($_FILES)をパラパラ捲って、いよいよDB
サーバ環境変数とか実際使うときが来ないと、というか使ってみないと多分覚えられないw
ネットワークの授業でのベースがあるから何となく、本当になんとなーくイメージは付くけど
何か作る際に振り返り必至かなと。

pythonがちょっと放置プレイ状態だけど、あんまり気にせずたまに触れつつやってけばいいやみたいな。
んでデータベースは、取り敢えず変なこだわりは捨てて参考書通りにMariaDBを使ってやる事にする
とは言っても、グローバルサーバ環境だとMySQL一択だから、ローカルはMariaDBで構築して
グローバルはMySQLっていうちょっと面倒くさい感じになるけど・・・。
何れにしろ当初の予定通りPostgreSQLを使ったところでグローバル環境は変わりないから
どちらにしても、MySQLをローカルで使わない限り二種類触れることにはなるっていう。

まー・・・PostgreSQLで頑張るより少なからず参考書あるって点と、MySQLの派生である点からして
現状の自分のスキル的に無理なく行けるMariaDBの方がどう考えても安牌。もはや定石だわなー。

2019-07-08 : PHPとBASIC認証

PHPが何だかんだ読み進められてることに気づく。
気づいたら300ページ超えてた。まぁ、理解してない部分多いけど
取り敢えず一周終わったらコード打って演習するから相変わらず放置方針
7章の標準クラスライブラリが読み終わった。手を動かしたのほぼ皆無だけど、
外部ライブラリ大分便利そう。ComposerとテンプレートエンジンのSmartyは
程よいタイミングで一度読み直して実際に使ってみたほうが今後なにか書く時に
見やすさと効率が上がると思われる(←っていってライブラリ部分で嵌りそうだけどw
それで今は8章のリクエスト情報に入ってる訳だけど、気づかざる得ない事がある。
7章で「DateTimeクラス」がやっと出てきたんだよね。
8章でリクエスト情報・・「ポストデータ($_POST)」「クエリ情報($_GET)」が出てきた。
例の計算機でガッツリハマってたリクエスト情報とデータタイムですよ。
作るタイミング完全に間違えてる←
いや、両方共ハマったからこそ理解かなり深まったけど、これらの章に目を通し終わって
たらおそらくあんなに時間持っていかれなかった・・・OTL
てかリクエスト情報終わったらいよいよデータベースだよーう!
タイミングと言うかスケジュール感的には思いの外5月想定したペースで進んでる気がする。
だがしか~し。一通りまわしたとしてもPHPは滑り止めとWordPress用で本命はpythonだから
何か作るとなると時間的にはきびすぃ~。ので、せめて学習した記録として
PHP技術者認定試験でも受けようかなぁと思い始めた今日このごろ。

ただなーLPICも受けたいのよなぁ~・・・7月いっぱいはLinuxやるから8月頭辺りに
受けて手っ取り早く終わらしたいけど同時期にきっとPHPも頃合いっていう。
5月中旬に知識情報ペラペラ状態で暫定の資格取得スケジュールを組んだけど、
まー色々と無理だわなw
IT以外だと時期が近すぎるし。基本情報終わった後の1ヶ月をマンション管理士に
投資すれば合格ライン乗れると思うけどOCJP取るタイミング無くなるw

話が変わりまして、 ここのWEBページにBASIC認証入れたとです。
っていうのもね教官PCでURL公開しちゃったからね。プラス以外の感想も書いてるからね
あんまり見られるとちょっとね←
まーBASIC認証だから簡易的だし総当たりで破れるけど1ヶ月以上は掛かる( ´・_・`)カナー
感知したら遮断になるけケド


参考リンク:PHP技術者認定試験と、LPIC公式サイト


というか受験料がね…特にベンダー系。普通に高いから結構慎重になる。
全部受けたらチャレンジするだけで20万超えるw
受かる受かんない以前に費用対効果が見いだせないレベルで高い


2019-07-05 : 現環境の概要

●開発環境としてはWindows10 pro
ハード面は一昔前のでショボ目。
んで、proエディションだけどほぼ無意味w
Hyper-V(仮想環境)もリモートデスクトップも使ってないとです。
コードは最初dreamweaver使ってたけどバージョン古すぎて窓から放り投げた。
一応すぐに使える状態になってるのは
・dreamweaver(←窓から戻ってきた)
・Atom(VSコードと比較して敗者となった。)
・メモ帳(←誰もが通る道w)
・Visual Studio Code(オールマイティ!)
・Eclipse(linux側で書く時)
・IDLE(pythonに付属してた)
・PyCharm(python用)
・Android Studio(androidアプリまだ書けないから正座待機中)
と、気づけば何やかんやと手を付けてた・・w
だがしかーし、linuxのディストリビューションがいっぱいあるように
使いやすさの違いややりたい事(linuxで)書きたいこと(プログラム言語で)
によって選べるのは良いことです←
色々使って初めて比較が出来るわけだし。事実窓から捨てたdreamweaverとて、
古いとはいえhtml書くなら一番使いやすい(CSSのバージョンがアウトでやめただけ)
だし、pythonのインストーラに付属してた公式のIDLEよりも
Visual Studio Code拡張して使ったり、PyCharmといった非公式のエディタのほうが
断然使いやすかったりってのがあるので・・・
知らぬなら物は試しで色々使って触ってそして知れって感じですね!

●ローカルサーバ(テスト環境としての自宅鯖)
centOS7.6ベースで
サーバサイドアプリケーションとしては、
Apache(2.4.6),OpenSSH(7.4pl),OpenSSL(1.0.2k),PHP(7.36)
Pythone(3.6.3),ruby(2.5.3),java SE8(1.8.0_2),vsftpd(3.0.2)
Samba(4.8.3),PostgreSQL(9.2.24),MariaDB(10.4.6),PostgreSQL(9.2.24)
を、基本環境として整えた。ライブラリ関係は必要に応じて随時追加予定。
メールサーバは昔やったのともし使うとしてもgoogle使うから無理にやる必要無いかな、と。
それから、基本的にはSSH使ってCUI操作をしているが(慣れるた為に)
万が一設定ミスった場合等に対処できるように
TigerVNC:リモートデスクトップサーバ
Webmin:ウェブベースのGUI管理ツール
を入れてある。
vsftpdとSambaの紹介をしよう。
Samba:ファイルサーバ。linux内のディレクトリを共有出来る。
vsftpd:FTPサーバ。ファイル転送プロトコル
共にファイルをやり取りできるサーバだけども、
今の開発環境はSambaでネットワークドライブを作って
ネットワークドライブ = Webサーバ 
の位置づけにしてあるのでwindowsサイドからはただのドライブに見えるのです。
ただのフォルダに見えるのです。ドラッグ・アンド・ドロップでアップロード出来る環境。
ファイル開いて、上書き保存すればその時点で更新される環境。
これがレンタルサーバ等々だった場合はおそらくFTP経由で転送することになるだろうから
現実味を出すために一応vsftpdも入れてあるしたまに使う←
要は効率重視にするために、グローバル環境ではやらないかなっていう構築になってる。

●グローバルサーバ(独自ドメイン割り振ってWWWに繋がってるサーバ)
プログラム学習とこのサイト用で使用しているのは、
エックスサーバー(XSERVER)です。
VPSではなくレンタルサーバですが、レンタルサーバの割には守備範囲が広め。
PHP5.1と7.2、Ruby2.0.0、Python2.7.5と3.4.3、Perlが、動かせる
選んだ理由としては、安定性があるしメールサーバ使えるし、SSH使えるしってのも当然あるけど、
取り敢えず今の学習段階ではモジュールやライブラリを使用するのはもうちょい先だし、
HTTPとPHP7.2動いてれば記録していく上では現状問題ないって状況なのが理由1
もう一つの理由としては単純に使ったことがあるから。
今はドメインの関係上引っ越しさせたけどWordPress利用可能だったから使ってた。

けど、今後どこまでスキルつけられるかは分からんけど、場合によっては
vpsも必要になってくるのかなぁ、と。。

2019-07-04 : pythonが始動(仮)

講義内容はLinuxページの方に貼った。
やった内容というか本当にメモ書きみたいな感じになってるけどw

PHPはユーザー定義関数の章が終わった。再帰関数あたりからジェネレータ間が結構
?が浮かんでたけど取りあえず前半の必要最低限っぽいところは大方把握できた
から一旦終了して突き進む。
第7章は標準クラスライブラリということでオブジェクト指向に入っていきますとです。
pythonも少し・・・のつもりが結構時間割いてやってしまった。
「#05:RPGのプレイヤーを継承で記述2」「#06:クラスからメソッドを呼び出してみよう」
をpaizaでやった後、O氏に聞かれたクイズゲームのフローを思い出して書き始めてしまった←

取り敢えずpythonページに記念すべき1ページ目が挿入されたのであった!
pythonプログラム言語学習履歴
まだGUI出力はおろか、コンソール内での実行しかやり方がわからないから
pythonのページにコードべた張りwww
普通にコード貼ってもインデント崩れるしってので、初使用のhtmlタグを使ってみた
<pre><code>ここにコード</code></pre> とやると改行もインデントもそのまま出力出来る
今度から使おう。
と、事実ターミナル上でしか動かせないから外部で動かすことが出来ないのも
微妙だなーと思ってSSHサーバ動かすことにした。
xserverのpython3.4だけど取り敢えずは問題なさそうなので使うことに。
server側の設定後、Poderosaでの接続確認と学校だとTera Termしか入ってないから
一応Tera Termでの接続確認もして、かつスマホにも入れたった。
これでいつでもどこでもpythonを実行できる!コンソールからだけど!(笑)


2019-07-03 : PHPがpythonに追いついた

講義の内容は新設したLinuxのページの方に概要だけ載せていくスタイルにしました。
Linux・サーバー訓練記録です。サーバー関係もここに授業で何したか残していこうと思う。
簡易プログラムとか組むわけじゃないし書くことなくなるw←
ネットワークもまとめてれば良かったなぁと今更思うけど、同様の理由で端折ってた。

PHPはファイルシステム関数を読み終え、「組み込み関数」のキャプチャが終わった。
そのタイミングでデータ出力を色々試してみたけど嵌り掛けたので、一時撤退。
6章の「ユーザ定義関数」を読み進めた。やっとpythonに追いついてきた。
半分ぐらい読み進めた所で以前作った計算機のコードを整理出来ると思って、
コードの簡略化を試みたがなかなかどうして上手くいかないものです・・・w
取りあえずユーザ定義関数の章を読み進める事にしましたとさ。

ともあれ、pythonの方の理解がし難くなってきたタイミングで追いつけたので
アルゴリズム的な部分含めて一度pythonよりも進めようと思う。
基本的な論理は同じだから構文を置き換えるだけにすればスムーズに進めるかと。

2019-07-02 : Linuxの授業に入りました。が…

配布資料のテキスト見て察した、大方知ってるというかやってるというか使ってる((
強いて言うならコマンド覚えきってないぐらい(←流石に、頻繁に使うコマンドは覚えてる)
サーバとOS、Linuxの概要をさらっとやって、仮想環境(Virtualbox)にCentOS7のインストール。
数日間はLinuxの基礎と操作方法コマンドライン関係をやっていくぽい
サーバ講義はDHCP、DNS、SMTP、POP3、FTP、HTTP(Apache)のサーバ構築とFirewallあたりをやるらしい
※一瞬しか見れなかったから目に入った範囲だと大方こんな感じでした。
うーーむ。。。一昨日の想定してた範囲と一致率は100%です、はい。
「LDAP」と「NFS」は時間的に無理だと思ったけど、「SSH」が見落としじゃなければ入ってなかったのが
ちょっとしっくりこないけど、書きながら気づいた。
Virtualboxでサーバー構築してたら態々遠隔操作する必要無いのは確かだなーと。

PHPは「文字列関数(配列関数)」と「正規表現(PCRE関数)」が終わり
「ファイルシステム関数」を読み進めてる最中です。
備忘録をそろそろ外部データ化して読み書きできるようになりたい・・・w

2019-07-01 : 7月デース!

授業がネットワークのまとめテスト的なのをちょろっとやってセキュリティ関係の
をひたすら聞くっていう。共通鍵暗号、公開鍵暗号、暗号化鍵と復号鍵・・・RSA
ぶっちゃけ、大して聞いてなかったPHPの本読んでた(ぁ
っていうのも、暗号化複合化を手計算でやるもんじゃないし、仮に試験対策にやるとしても
どう考えても今じゃないんだよ。今中途半端にやっても確実に(僕の場合)もう一度やり直す
事になる。この計算が必要になる試験を受けるとしても向こう2年は受けれる土台に立てない。
そんな風に感じてしまったその心は、資格か講演かぐらいでしか手計算する事はまずないかとw

ITパスポート(IP)、基本情報技術者(FE),応用情報技術者(AP)、ネットワークスペシャリスト試験(NW)、
情報セキュリティマネジメント試験(SG), 情報セキュリティ技術認定試験(SEA/J),公認情報セキュリティマネージャー(CISM)
上記これらの試験で知ってれば良いのは、
「誰が→Rivest-Shamir-Adlemanの3人 、何で→素因数分解を用いて 、作った→公開鍵暗号。鍵長:2048ビット~」
で基本的に十分。過去問的には。万が一計算が出たとしても計算方法が指示される。
もうあと必要な場面って過去問見たことの無い高度情報処理技術者試験(スキルレベル4)ぐらいしか思い当たらない。
と、まぁそんな事を思いながら自分が向かう方向的に(今は)事実上必要ないと判断して放棄。

2019-06-30 : 6月が終わってしまう。。早い。

ここのWEBページに記録するようになってから早半月が過ぎてしまった。あっという間に。
この半月で特に進歩してない気がする・・焦るー。
自習はpaizaラーニングやって、独習PHP読んで、見よう見まねでPHP書いて、WEBページ用にHTMLとCSS少し触って
授業はネットワークの授業で2進数から始まって8進数、16進数、ビット、TCP/IP、プロトコル、
OSI参照モデル、イーサネットの基礎、リピータハブ・スイッチングハブ・L2ルータ・L3ルータ
ルーティング、NAT、NAPT、ルーティングテーブル
あたりをやったなー、と。あんまり聞いてなかったけど←

来月からはLinuxとサーバ構築に入りますとです。趣味の範囲では触ったりするけど基礎的なのすっ飛ばしてるから
基礎的な部分しっかり学んでLPIC対策として活用しようかと。
サーバはどの程度やるのかが正直不透明だけど多分知ってる(自鯖で導入したことある)範囲内で収まるのだろうと推測。
というか、「Apache」と「Firewall」設定だけで結構時間使いそうな気がする。
あとやるとしたら「HTTP」「FTP」「LDAP」「SSH」「DNS」「DCHP」「NFS」「proxy」「mail」辺り?多すぎて無理か・・w
システム管理・監視系はやらないだろうなぁ、希望としてはSELinuxちゃんとやってほしい。自分が散々ハマったからw
paizaは、「#03:メソッドのオーバーライド 」、「#04:RPGのプレイヤーを継承で記述1」、「#05:RPGのプレイヤーを継承で記述2」の3つ進んだ
ラーニング終わった後どうしようか考えないとそろそろ終わっちゃうし、なにか作れるレベルでもないしどうしたものか。
程よい参考書でも漁るかねぇ・・・

2019-06-29 : PHPエラーを発見してしまったOTL

「賃貸物件初期費用計算機」でエラーが出てた。気づかなかった。。
動作確認の時に平気だと思ってたけど、その時見てたのが小数点に着目して修正してたから
未入力の場合ってのを見逃してた。0.5以上の入力があれば正常に動いてたのと未入力試してなかったっていう。
エラー非表示設定にすれば普通に計算もできるし動いてるように見えるけど、直しました。
直し方としては変数に代入する時にifで0以上なら10倍で小数点なくす、elseで=0を代入
んで、計算結果出力時に改めて1/10して回避。

ついでに、費用の今月分と次月分の日割って表記が見にくかったから項目配置のレイアウト少し変えたのと
今月・次月ってのを入力した月の数値引っ張ってきて(○月分・○月日割)って表記にした。
それから、フリーレントを0.5ヶ月単位だったのを日数に変更した。これは「今月末までフリーレント」とかも
あるからそれに対応させる為に月単位→日単位への変更を。
ただ、厳密には小数点の切り捨て切り上げの関係上僅かな誤差が出てしまうっていう。
この数値の扱いは企業によって違うからもうどうしようもないので諦めた。

それから今更気づいたんだけどPHPが受け取るポストデータってさ、書籍によるとどうやら
HTMLのフォームから入力されたデータをPHPで受ける場合は基本的には文字列扱いになるらしい。
数字を入力しても実際は文字列だけど、柔軟(良くも悪くも)なPHPは文字列で計算式入れても
計算してくれてしまう、と。
そしてなまじ計算出来ちゃうから、一見通常の処理ができてるように見えてしまってた訳ですね。
ポスト時に型をこっちで指定する癖をつけないとダメだねぇ~

もう一つ今更なやつ。、いつしかサンプルで作ったPHPのフォームで
謎の「3」が未入力でも表示されてたやつ。
あれ、結論としてはPHP5のコード使ってたからのようでした。
今ボクが使ってるのPHP7で、そのコードがあったが為に変な入力(表示?)になってたもよう。

2019-06-28 : これと言った進捗は無し・・・

独習PHPの本を黙々と読んで、サンプルコードを入力してみてってのをやった程度。
振り返りも兼ねての「for」、「while」、「do while」とループを抜け出す「break」、「continue」、「goto」
配列・連想配列の要素で繰り返し処理をする「foreach」、多岐分岐の「switch」
ループは個人的に「for」が使いやすいかなーと。現時点で使い分けするような場面を想定できないってのも関係してるけど…
ただ、目を通してるだけみたいなもんだけど、独習PHPは140ページまで見終わって次章から組み込み関数を”読み進めます”
※読むだけで、覚えるとは言ってない←

PHPやっててやってて思ったんだけど、構文がjavaと結構似てるなーと
まだjava何もやってないんだけど、書き方が似てるから何となくどんな処理をしてるのか、しようとしてるのか
がふんわりと分かる、気がする。(自分がphpで触れた命令文であればという前提条件が当然あるw)
そういう意味では、javaは今後自ずとやるので予習っていう意味ではPHPは大いに有りだと感じた。
と、php推しをしておいて別の視点での考えも同時に浮上してる。そうpythonを最初にやる利点について。
javaやphpとは構文が結構違うってのは少し触れて分かった。個人的に見やすいし分かりやすい。

どう違うのかどうして見やすいのかというと、間違いなくオフサイドルールの有無。要するにインデントが意味を成すか成さないか。
pythonでは字下げ(インデント)することでブロック管理をしていてjavaやphpのように()や{}を使い1行で無理やり書くことは出来ない。
インデントを正しく使わないとそもそも動作しなくなるから、そのルールに則って書く必要があり、自ずと読みやすいコードになる。
phpをやっててもpythonの構文と同じように改行、字下げをしてるから、動く動かないは関係なく見やすさへの配慮に繋がる。
そんなこんなで、javaに入る前に多言語を学ぶメリットとしては下記のようになる(個人的主観)
PHP:基本構文が非常に似ている為、java移行後も比較的すんなりとコードを扱える。
python:インデント処理が必須な為、読みやすいコードを書く癖が身に付く
・・・結果自分の学習方法間違ってない!みたいになってるww
けど、その2つしかやってないし他知らないし、やってるからには利点探すのは当然でしょっていう←

2019-06-27 : PHPの賃貸物件初期費用計算機が出来た!!

序盤で学ぶ関数で比較的簡単に出来るだろうと思って先日から取り掛かってPHPの計算機が完成しました!(仮)
賃貸物件初期費用計算機
想像以上にハマったとです。。。苦労したのはinputした数値ののデータ型、浮動小数点が特に思い通りに変換できないし
数字無視されちゃうしで・・・。もうね、小数点嫌いになりそうww
んでもう一個はカレンダーの数値(date、format、strtotime)でサーバーの時間使うとかなら楽だったんだけど、
”任意”の日付からその月の残りの日数出すのがとてもとても苦労した・・気づいたら1970/01/01になっちゃうしw
取り敢えずは、普通に計算結果出せるようになったから一旦終了。

学習が進んだらネットの物件情報URLから自動で計算させたり、結果画面の外部データ(エクセルとかpdfとか)出力
機能とかもつけたいなぁと。
使用したコードは、追々振り返りつつまとめようと思います。
paizaのPythonは、昨日の続きから「#05:引数と戻り値のあるメソッドを作ろう」、「#06:文字列とリストのメソッドを使ってみよう」、
「#07:アクセス制限を理解しよう」をやって「Python入門編8: クラスを理解しよう 」が終わりました。
そのまま「Python入門編9: さらにクラスを理解しよう」にはいり
「#01:さらにクラスについて学習しよう」、「#02:クラスを継承する」をやって今日は終了。
パイザサクサク進めるけど、身についてるのかは疑わしいwww
メソッドが入ってきたからここからはしっかり理解するつもりでやらないとついていけなくなる。

2019-06-26 : Pythonが楽しくなってきた、カモ

「Python入門編7: 関数を理解しよう(全7回)」
あっという間に終わってしまった・・・(笑)
一応キャプチャーリストとしては「#01:関数について学習しよう」、「#02:関数を作ろう」、「#03:引数と戻り値を追加しよう」、
「#04:スコープを理解しよう」、「#05:RPGの攻撃シーンを作ろう」、「#06:引数のデフォルト値」、「#07:キーワード引数を理解しよう」
をやりました。
と、そのままの勢いで「Python入門編8: クラスを理解しよう 」に突入して
「#01:クラスについて学習しよう 」、「#02:クラスを作成しよう」、「#03:変数をクラスで管理しよう」、「#04:RPGの敵クラスを作ろう」
まで突っ走った。
うおーー!PHPでハマってた浮動小数点演算クリア出来たー!
わかってしまえば簡単だった!!
「<?php $number=(int)$_POST['number'];」で変数にしても1未満の小数点切り捨てられたりで・・

色々模索した結果、POSTで受け取った「number」を一度「$number」にしてから整数に
型キャストするんだけどそもそも小数点含んでるから
「$number =(int)$number*10」で型キャストと10倍を(使用してるの少数第一位までだから)して
そのまま再び「$number」に代入で、諸々の途中計算が終わって10分の1に戻しても
小数点発生しない部分で「$number =$number/10」って流れでなんとかなった。

<?php $number=$_POST['number']; $number =(int)$number*10; $number = $number * $hogehoge / 10; ?>
で、一応エラー全部消えて誤動作無くなった。あってるかどうかは別として・・w

2019-06-25 : Python入門編6が終わったーヽ(´ー`)ノ

今日は、「#11:標準入力から2次元リスト」、「#12:2次元リストで画像を配置」の2つをやって
「Python入門編6:多次元リストを理解しよう(全 12 回) 」が終了した。テッテレー♪
昨日phpいじってて思ったことがあるんだ。今の環境(ここのWEBページ)は、自宅鯖にオリジナルがあって
そのダミーをレンタル鯖に置いてるんだけど、環境によって動く動かないがあるから
学習目的なら敢えて両方やるのは大いにありだなと。
例えば・・ていうか単純にサーバーサイドアプリケーションの設定とかバージョン、Apache自体の設定、ディレクトリ、ファイアウォール
自宅鯖だと自分で設定するから、自分で設定したから「動いてる」or「動かない」とか、アプリの設定は問題なく出来てても
ファイアウォールだのポートマッピングでコケてたりして、諸々の設定終わってレン鯖に上げたらまた動かなくなって
そもそも対応してなかったり別途設定(linuxコマンドとは違うやり方で)が必要だったり…
環境に合わせた設定が必要だから、確認用で自分目線(自鯖・自社)では動いてても本番(グローバルサイト・顧客)で動かないっていう
ケースもしっかり想定しないと行けないんやなー。想定推測するには他方の知識持っておかないとあかんのやなーと、感じました まる。

で、HTMLとCSSやってる時にこのサイトのヘッダーもPHPで別ファイル置いておきゃ引っ張って来れるやん
更新も1箇所更新で済むやん思ってやってみたら自鯖はOK、レン鯖がNG。
httpd.confは直接いじれないからFTPで「.htaccess」直編集直アップしてもダメだった。
html内のphpが動かないって時の対処法としては上記の両方共、「間違って無い」し、事実「.htaccess」を
指定された方法(WEBページログインしてWEB上での編集)したら問題なく使えるようになった。
何が言いたいかっていうと、使用してるサーバーやサービスに沿ったやり方じゃないとダメだったよっていう話。

書きながらふと思ったことを追記。スマホでWEBページ見てると、パケット抑える為に自動的に節約
してくれるんだけど、キャッシュが残ってて何回も更新したりしないといけないのね。
何度再読込しても一向に変わる気配がなかったのが「CSS」これが全然更新されない。
通常頻繁にスタイル変えるものでもないからなんだろうけど、いじって確認を繰り返してる側からすると厄介。
それで対策としてPHPを埋め込んだ。
「<link rel=(-中略-)" href="hoge/hoge.css? <?php echo date('Ymd-Hi'); ?>" />
これで1分毎のサイクルになるので、1分以上経過した状態で再読込すれば新しいのに切り替わる。




2019-06-24 : 眠すぎて途中でほぼ寝落ちした

paizaラーニングは、「#09:enumerateで2次元リストを操作する」「#10:2次元リストのマップに道を追加する 」
の2つをやった。for in の動きがイメージつくようになってきた←やっと・・・。

PHPの方はブログ作りたいんだけども、
記事の投稿の流れ的に↓こんな流れになるのよねー多分。推測。
1.formからのリクエスト情報を名前(name)をつけてinputする。
2.nameからinputしたリクエスト情報を取得してHTMLデータとして出力し内容の確認画面表示。
3.修正の有無で「戻る」or「確定」処理を行う(戻るを押した場合アップロードファイルを削除処理)
4.確定の場合は、データを出力・保存する。(csvやDBへの書き込み)
5.トップページへ日時が新しい順にDB等からデータを取得し、表示させる。
んで、今どこかというと3番w
というのも戻る場合に必要になってくるセッションがまだ分からんのと、
画像をアップロード(確認画面)した後、戻る場合の削除処理を入れないと行けないけどまだ分からん←
ほんで、確定の場合はデータの保存先が用意できてない。つまりデータベースやってないから進めんw
進めないから簡単なアプリっていうか計算機的なのを作って見ようかなと思って
HTMLと一緒に何やかんやいじくり回してる状況<PHP

そー言う感じなので少しPythonに逃げ腰な感じになっている。
丁度良いタイミングでイメージングが出来なかったfor inから進めたのもあったりで。

2019-06-23 : phpメインでhtmlとcssを少々

一昨日のスクショから少し表示が変わってる事から分かるけど、WEBページのCSS少し弄った。
CSSの配置描く時に羅列だと分かりにくいからエクセルでイメージを出してから少し触った。
んで、今日は殆どPHPを触ってた・・本も見ながらネットでググりながら、
この前までは一行の文章をインプットしてたけどブログとかってなると改行が必要だなと。
ほんで先ず躓いたというか知らなかっただけだけど、フォームのサイズの変え方・・・w
「<textarea id="*" type="text" name="*" rows="10" cols="30"></textarea>」
これでテキストエリアの幅と高さ替えられるのねー。知らなかったのねー。

あと、間抜けなミスだけど、改行を受け取る際のコードnl2br($_POST['**'])もハマりかけた。
というのも「l2」を「12」だと見間違えてて(lと1)なんで出来んのやーってなってた(笑)
フォントのせいで区別がつかなかったんよ!w ・・・HTMLも辞書的な感じで新し目の参考書ほしい・・
PHPの方で重要だと思ったのは、「<>」とかの文字をタグやコードとして読み込まないようにする設定(htmlspecialchars)と
最初のmethod="POST"や"GET"のデータは2ページ目以降へそのまま引き継がれない点。
「フォーム入力→確認画面表示→登録確定」とかって流れだと確認画面表示までしか
POSTやGETデータを持ってこれず、「登録確定」の時点ではnull状態で登録になってしまう。
これを防止するために「クッキー」や「セッション」を上手く使うのが普通っぽいけど、僕は使えないので←ww
2ページ目の確認画面でもう一度inputさせて、そのインプットをブラウザ上で見えないように「hidden」で隠して
次のページ(登録確定)まで引き継ぐっていう面倒くさい手段をとったとです。

そんなこんなでPHPのページ(PHPレッスンリスト)に2つ目のページが増えました(←
ただ、まだcsvやDBの入出力が出来ないからそろそろDB入らないと進まないなーと思う今日この頃
最後に、フォームデータから送信される文字列によって悪用(クラック)されたりするからhtmlspecialcharsは使う”べき”
らしいけど、フォームのあるページ自体にアクセス制御かけてhtmlspecialcharsを使わないフォームを設置すれば
ブラウザ上でフォームからの入力データでphpを動かせるから、簡単な動作確認ページを設置するのはありかなと思った。


2019-06-22 : 「独習 PHP第3版」を買った。

と、昨日感じていたバージョン違いによるコードの相違とかが結構
面倒くさいし二度手間で覚えることになると感じたので速攻ポチって今日届いた
一応最初からサラッと目を通して10%弱ぐらい読んだ。何となく分かるから復習と深堀的な感じで。
各所でレビュー等見て選定したつもりだったけど、想定していたより索引が便利だったり引きやすいとは感じなかった件
「独習PHP 第3版」の詳細リンク
内容的には、基本的なところは網羅されてる感がある。
イントロダクション(PHP・WEBアプリケーションについて、XAMPPでの環境構築→基本→演算子→制御構文→組み込み関数
→ユーザ定義関数→標準クラスライブラリ→リクエスト情報→データベース連携→オブジェクト指向構文→セキュリティ対策
てか、本が分厚い!500p超!先が長い!(笑)

それから残念なお知らせとしてこの本で扱っているデータベースが・・
MySQLでもなければPostgreSQLでもなくmariaDBっていう・・・
MySQLの予習も出来る~って思ってただけに少し残念。
勉強はあまりしてない。お出かけしてしまった故・・・
明日は頑張ろうと思っているーるるるー

2019-06-21 : HTMLとCSSを少しいじった

連続でfor inを使う場合の処理順序整理忘れる前にしたが、、
使う場面のイメージが湧いてないからいまいちピンとこない件\(^o^)/
土日に入るから月曜までに入力フォームを作りたい。

とか言いつつ、帰宅してみればhtmlとcssをいじり始めるやーつ(笑)
phpでのブログ導入よりもここの殺風景すぎる感がやばかったので最低限体裁だけ整えてみたニダ
それから、今日諸々思ったのは触りで中古の安い本(100円とか200円w)で
雰囲気掴んでから、出版日が比較的最近の参考書を買おうと思ってたけど
もうボチボチ弊害が出てきてる← そろそろ買うw
L3ルータは大して進捗無いんでスルー。


2019-06-20 : PHPなぞの3・・

Pythonの多次元リスト掘り下げて少し理解深まった(気がする)
がfor inからのifのイメージがまだ掴めてない。。
これは動きを一つずつ見ないと多分ピンとこない気がする。
PHPは相変わらず「3」の出処がわからないwwwどっから来てんだよ3。
サーバーサイドってわけでも無いんよねー別サーバで同じ動きするし。
ネットワークはL3ルータでVLANを触り始めましたとさ。

2019-06-19 : PHPの演習

PHPでFormから送信(Request)したデータを拾って出力する簡易的な入力フォームを作ってPHPの所に貼ってみた。
method(get、post)、if(empty(入力の有無を判定)とかとか
出来てはいるのだが、謎の入力値「3」が消えない…どこからのデータなのかも分からず。。。
L2ルータはルーティングテーブル辺りを
ip address 宛先IP→ネットマスク→経由IP

2019-06-18 : 多次元リスト・・・

"for in 関数をちゃんと覚えないと、後々ついていけなくなる予感・・
ただループするだけ、繰り返しするだけって思ってたけど、応用めっちゃするやん
眠気に勝てずに今日の進み具合は少々・・・でした。
「#06:2次元リストをforで作成する」「#07:ドット絵を表示する」
「#08:3次元リストで複数のドット絵を表示する」
この3つだけ・・・。
PHPやらないとここのサイトどんどん見にくくなっていくww

「Python×AI・機械学習入門編」を1キャプチャーだけ見たら
早くやりたくなったとです。
そのためにはPython進めないとダメなのです
速攻PHPを一周するかってなるとDBが絡んでくる・・・OTL

2019-06-17 : 土日サボってしまった。。

-------------------------------------- --------------------------------------
echo "→ここから☆hello world矢印間を試しにphpで打ってみてる。";
echo "出力の「echo」と「print」の";
print "違いがイマイチわからない☆ここまで←";
?>
--------------------------------------

と、いうことで上記文章はPHPで出力してみました。
事実echoとprintの違いが分からないままだけど一先ず気にしないことにする
ので、PHPのコードを埋め込んで動かす際には
Apacheの設定を少しイジる必要がある(「.htaccess」で別途設定や「httpd.conf」でまとめて設定等)
今回はhttpd.confを変えました。単純にhttp.conf内に下記

AddType application/x-httpd-php .html


を追記してApache再起動。「systemctl sotp httpd」→「systemctl start httpd」

paizaラーニングは「#03:比較演算子でかしこい条件分岐」と「#04:おみくじを作ってみよう」を完了
$変数 = rand(1,77); で、$変数は1から77のランダムの数字を出力する。
「#05:RPGのクリティカルヒットを再現」と「#06:今、平成何年?を計算する」も完了
実行環境(サーバ)の時間を変数にする際は「 date() 」タグを使用する
例: $nowtime = date();

で!Pythonは2次元リストのループ処理についての学習に入りました。

Python入門編6:多次元リストを理解しよう !ってことで下記のチャプターを。
「#01:2次元リストとは何かを学ぼう 」
データ構造はデータの集まりを格納するフォーマットで
○変数はここの箱に1個のデータを入れる
○リストは複数のデータを入れられる箱 (インデックスという番号でデータを区別)
○辞書は、キーというテキストでデータを区別
の、ようなものがある。
で、2次元リストは2つのインデックスで要素をランドマップ(landmap)で指定する
「#02:2次元リストを作成する 」「#03:2次元リストを操作する1」
「#04:2次元リストを操作する2」「#05:ループでリストを処理する」
400px

2019-06-14 : HTMLで学習記録ページ(簡易版)を作成

タグ打ち練習を兼ねてだが、PHPでBBSのような物が作れたらそちらにまとめるようにしていきたい。
paizaラーニングではCSSをレッスンのHTML/CSS入門編2: CSSの基礎を学ぼう
のキャプチャー01と02をやったところで無料範囲が終了\(^o^)/
仕方ないのでPHPの無料範囲をやることに。

PHP入門編1: PHPをはじめよう
「#01:PHPとは?」「#02:PHPプログラムを書いてみよう」 「#03:コメントをつけてコードを見やすく! 」「#04:PHPと HTMLの共存」
「#05:変数を使えるようになろう」「#06:サイコロを作る」「#07:演算子で計算してみよう」
「#08:値段計算をしてみよう」
PHP入門編2: 条件によって処理を変えてみよう
「#01:IF文による条件分岐」「#02:複数の条件分岐」
のキャプチャーをやった。 メモ:echoが出力になる

それから、出てきたコード・使ったコードを後で振り返られるように
エクセルでまとめようと思って↓
SS

TOPページへ戻る