「apache」を含む日記 RSS

はてなキーワード: apacheとは

2019-01-08

UMB 感想日記

今年UMBに行くのはとても迷っていた。

正直知らない人が多くてあまり魅かれなかったし、チケットを買うタイミングミスって二階席が取れなかったこともあり、ぎりぎりまで悩んだが、結局行くことにした。

■どうだったか

最高だったので、今年(2019年)も行きます

戦極やKOKに出るのはある程度選別された上、関東関西を中心に有名どころが出てくるのもあって、ほぼすべての登場人物を知っている状態にある。

でもそんな自分でも、UMBの出場者の半分くらいは何も知らなかった。(この人去年も出てたなあ、くらいの知識)

その次々と誰かよく分からない人が出てくるのが、どこか思い入れのない学校が次々出てくる甲子園に近いものを感じ、理由ない応援自然と出てきた。

おそらく、出場者の彼らも相手がどんな奴か知らないからこそ無茶カマせるし、「自己紹介から始める」という大義名分を得ることができた、と思う。

これがUMBの特色となりえるポテンシャルを感じた。

ただこれは有名MCたちがUMB離れを加速させたからこそ出た特色であり、棚ぼた的なものかもしれない。

■疑問とか

陪審員システムに?の箇所あり。

10:0で会場は輪入道に挙げたのに、陪審員は0:10相手の票になって延長したり(システムエラーか票の操作ミス)、

もう終わらせてやれよって泥仕合が繰り広げられたりもした。でもまあ、それでも去年よりは泥仕合が少なかったかなあ。

■以下、各MC感想 箇条書き

松島のこと少し許せるようになった。あの「ある程度のシナリオを用意してくる」スタイルが好きではなかったけど、今回はなんか許せた。

BALA、俺が主役だぜって感じで出てきたのに、一回戦で負けてウケた。自分はjony the sonataに挙げた。

GOTIT、優勝もあるかと思ったポテンシャルだった。惜しい。ニガリや椿に対しても強く、なんとなくNAIKAMCに近いものを感じた。必要以上に熱くなく、良いユーモア感があった。

SKRYUくんは良かった~。去年のKOKプレーオフ?かな、あの時よりも印象すごく良かった。脱力しつつ会話重視で、ニガリ倒したかと思った。

SAMはかかり過ぎたかなあ? 戦極のほうが良かった。来年頑張ってほしい。

輪入道は一回戦の延長が良すぎた。DVD買って見てほしい。あと、終始相手の良いとこを出させた上で、それを乗り越えるみたいな少年漫画バトルをやろうとしてるように感じた。

KZの良さ分かんないなあ。お前優勝したの?っていうくらい負けた試合かなんかで語っててウケた。どの位置で語ってんの?

紅桜に対しては、もうずーーーーーっと「早く歌って」って思ってた。「歌ったら勝てるよ」って紅に教えたかった。相手腹パンしたの笑った。また出てほしい。音源聞こう。

T-STONEはよかった~。だーひーのとこも勝っても良かった。オロナミンCの話をもっと展開すれば勝てたかも。

椿はよくわかんなかった~。残念。

むら、惜しかった~。KAKKYのとこは陪審員にさっさと決めてくれって思ってた。延長し続けて、終始客判定で勝ってたむらが負けたのも不運。

APACHEは良かった、なんか存在感あった。地元の先輩にいたらかっこいいだろうな。

なんか名前忘れたけど、静岡の子地元マイメン(多分)が声援送りまくってるの良かった。甲子園っぽい~。

だーひー輝いてた~。MU-TONのとこ勝ってたら本当に人生変わった(と思う)。客の判定責任は重い、と感じた。戦極とき欠点としてたキャラ付けは、EPリリースの件で変えられたと思う、すごい。

AUTHORITYくんは韻も堅かったけど、アンサーも定型の返しじゃないのも良かった。「お前の街の話してくれよ」って言われて「桜の一番きれいなから来た」ってのも良かった(彼は青森代表)。あといちいち持ってくるフレーズロマンを感じた。

MU-TONは強かった。一時期の「プロップス持ってる」感じは少し冷めてるように感じてた、だからこそ今回の優勝に価値があると思う。客はちゃんと判定してMU-TONをチャンプにした。やりがちなお涙頂戴一切しなかったのも単純にカッコよかった。

KOKは行かなかった。呂布カルマ優勝して嬉しい~。^-^

2018-12-28

apacheインストールっていうのは、apache httpdインストールのこと?」とかい無意味な返し止めろや。

TomcatGeronimoのことかもしれない…わけないだろ!いい加減にしろ

2018-12-27

プログラミング言語なんてものは客の環境で動けば何でも良い

というか、ぶっちゃけ必須条件だ。

逆に客先のサーバPythonやらRubyは入ってないかダメだ(非常に残念ではあるが)。

というのも昔の話で最近クラウドサーバ流行PythonやらRubyも多少使うようになった(なぜ自社内のサーバに新しいものを入れるのは渋るのにクラウドサーバだと渋らないのかは不思議だが)。

しかし自社内にサーバを置いてるお客さんも結構いる。

その昔どこぞのレンタルサーバデータをぶっ飛ばしたという事件もあったので慎重になるのも分からないでもない。

結論としてはJavaPHPApache+TomcatIISASP.NETJavaScriptに多少の心得があれば食っていけるしRubyとか仕事で使う言語としては絶対流行らんと思ってたんだけど、そうでもなくなってきたのかなあと思っただけ。

2018-12-18

(PHP) PHPのsession設定を修正しました。

WebサーバーPHPバージョン5.4から7.2に上げたら、PukiWiki1.5.1が正常に動作しなくなりましたが、先ほど問題解決しました。

 

昨夜の調査で、PHPセッション周りにエラーがあることが分かりました。

続きを調べてみると、

/var/lib/php/session

というディレクトリの設定が不適切で、PHPプロセスから書き込みができない状態になっていました。

 

原因は、PHP-FPMインストールした後の設定作業が抜けていたこ

PHPバージョンを上げるときに、PHP-FPMも再インストールしていました。

「/var/lib/php/session」を使う作業ユーザーデフォルトでは「apache」になっているようです。(前の設定を見てないのが不確か)

とりあえず、これを「apacheからnginx」に変更したら、PHPセッションが正常に動作するようになりました。

 

Google検索解決のヒントになる情報がいろいろ得られたので、あまり苦労せずに解決できました。

いつも有益情報提供してくださる皆様にこの場を借りて感謝申し上げます

どうもありがとうございました。

2018-12-04

増田プログラマー養成講座 その23 SQLを巡る物語

前回は、データベース設計について学びました。

今回は、その他のデータベース話題について見てみましょう。

 

 

リレーショナル・データベース理論

問合型言語SQLは、「関係代数」という計算モデルを基に作られたプログラミング言語

一度「関係代数」について学んでおくと、RDBの使い方について、理解が深まる。

↑このスライド作者さんは他にもDB関係資料作成されてるので見ておくといいかも?

 

 

SQL以外の問合型言語

SQL以外にも「SPARQL」、「TMQL」(Topic Maps Query Language)等、いろいろな問合型言語がある。

実際に使う機会は少ないかもしれないが、「問い合わせ」で処理するという発想は参考になるかも?

 

Datalog

Datalogは「Prolog」(論理言語)を源流にもつ宣言的なデータベース問合せ言語。DatalogはSQLと同等の表現力を持つ。

Datalogは様々なプログラミング言語で利用できる。

 

トピックマップ

トピックマップ」は、本の索引もっと機能にしたような仕組みで、RDBとは違う形でデータを蓄積/検索できる。

 

 

RDB以外のデータベース

SQLを使わないデータベースもある。

 

NoSQL

NoSQL一般に "Not only SQL" と解釈される)とは、関係データベース管理システム (RDBMS) 以外のデータベース管理システムを指すおおまかな分類語である

関係モデルではないデータストアの特徴として、固定されたスキーマに縛られないこと、関係モデルの結合操作を利用しないこと(場合によっては単にそのような機能が欠落しているだけ)、水平スケーラビティが確保しやすい事が多いこと、トランザクションを利用できないものが多いことなどが挙げられる。

学術的な世界では、この種のデータベースのことを構造ストレージ (structured storage) と呼ぶことが多い。

 

NoSQLデータベースは、関係データベースのような汎用性は欠くものの、その制約された条件下ではRDBMSより高いパフォーマンスを持つ。

そのためビッグデータソリューションでしばしば活用される。

NoSQLデータベース管理システム有用な場面は、関係モデル必要としないデータを扱う時や、大量のデータを扱う時である

 

有名な実装として、GoogleBigTableアマゾンAmazon DynamoDBなどがある。オープンソース実装も数多く存在し、例えばMongoDBRedisApache HBase、HyperTable, Apache Cassandraなどがある。

 

 

SQLRDBに慣れたら、NoSQLも調べてみよう!

 

 

その他、データベース関係話題

DB運用管理で学んでおきたい話題を列挙してみよう。

 

 

SQL開発物語

問合型言語学習最後に、SQLを巡る物語も見てみよう。(SQL学習ドラマチックで楽しいものにしたいねw)

 

 

RDB活用すれば、大量のデータを処理して、多くの仕事効率化できる。(金持ちへの扉が開かれる。)

暇があったら、SQL物語登場人物も見ておこう。

 

エドガーフランク・コッド(Edgar Frank "Ted" Codd, 1923年8月23日 - 2003年4月18日)は、イングランドまれ計算機科学者

関係データベース理論的基盤であるデータベース管理関係モデル発明した。

 

1960年代から1970年代、コッドはデータ配置に関する理論を構築し、1970年 "A Relational Model of Data for Large Shared Data Banks" (大規模共有データバンクのデータ関係モデル)という論文を発表した(IBM内ではその1年前に公表している)。

しかし、IBMライバルがそれを実装し始めるまで彼の提案を実行に移そうとせず、コッドは失望した。

当初、IBMはIMS/DB収益を守るため、関係モデル実装することを拒んだ。

コッドはIBM顧客自身モデル実装した場合可能性を提示し、顧客からIBM圧力をかけさせた。

そこでIBM関係モデル実装を開発する System R プロジェクトを Future Systems プロジェクトに含める形で立ち上げたが、その開発チームとコッドは分離され、しかもコッドの理論精通した者はチーム内にいなかった。

結果として彼らはコッドの Alpha 言語を使わずリレーショナルでないSEQUEL言語を開発した。

 

ラリーエリソンSEQUEL 完成前に発表された論文に基づいて Oracle を完成させ、先に発売している。

IBMは、SQL/DS を発売した。

幹部技術音痴だと、部下の名案も却下してしまうんですね?

 

ローレンス・ジョセフ・エリソン(Lawrence Joseph Ellison、1944年8月17日 - )は、データベースソフトをはじめとする大手ビジネスソフトウェア企業オラクルコーポレーションの共同設立者であり、元CEO会長CTOである

2014年現在総資産は500億ドルで、世界で5番目の富豪である

 

ニューヨーク出身アシュケナジムユダヤ人母親フローレンススペルマン(Florence Spellman)は出産当時未婚の19歳で、生後9ヶ月のラリーシカゴに住む叔母リリアンエリソンとその夫である義理叔父ルイスエリソン養子として引き取ってもらった。ラリーは実の母の名も知らず育ったが、48歳の時に初めて対面した。

 

高校時代秀才だが、無愛想な生徒だった。イリノイ大学アーバナシャンペーン校に二年生まで通っていたが、リリアンの死後まもなく退学。カリフォルニア州北部で夏を過ごした後、シカゴ大学で学ぶために実家に戻ったものの三ヶ月でまたも退学し、カリフォルニア移住。この頃、コンピュータに触れ始めている。

 

1970年代エリソンはアンペックスで働いた。彼の関わったプロジェクトのひとつCIA向けデータベース開発があり、彼はそれに「オラクル (Oracle)」と名づけた。

エリソンエドガー・F・コッドのリレーショナルデータベースシステムに関する論文 A Relational Model of Data for Large Shared Data Banks に触発され、1977年自己資金1400ドルオラクル設立した。

彼はIBMのSystem Rデータベースがコッドの理論に基づいたものであると聞き、Oracleもこれと互換性のある製品にしたかったのだが、IBMエラーコード秘密にすることによって互換製品が出てくるのを防いでいた。

オラクル最初製品Oracle 2であり、Oracle 1は存在しない。このリリース番号は、それ以前のバージョンバグが全て解決されていることを暗示しようとして付けられた。

 

1997年8月ラリーエリソン親友スティーブ・ジョブズアップルに戻った後、同社の取締役就任した。2002年9月20日取締役会に出席する時間が充分に取れないことを理由アップル取締役を辞任した。

この人、キャラクター的にはあまりきじゃないけど、行動力はすごいね

コッド博士論文を見て自分RDBを作っちゃった!

Oracleバージョンを「2」から始めて、改良されているように見せかける。~ちょっと詐欺っぽいけど、商売うまい?w

 

 

 

SQLデータベース活用して、素敵なアプリWebサービスを開発してください。

では、これでいったん、増田プログラマー養成講座を終了します。

御清聴いただき、どうもありがとうございました。

 


anond:20181015215004 未経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラム=データ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミングの練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

anond:20181020230044 増田プログラマー養成講座 その8 OOPの仕組み(後半)

anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう

anond:20181023184616 増田プログラマー養成講座 その10 OOP参考書

anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう

anond:20181026145516 増田プログラマー養成講座 その12 データベース参考書

anond:20181028152656 増田プログラマー養成講座 その13 SQL文法

anond:20181031014212 増田プログラマー養成講座 その14 Webアプリの試作品作成

anond:20181101225335 増田プログラマー養成講座 その15 Webアプリの完成見本

anond:20181101230220 増田プログラマー養成講座 その16 Webアプリの完成見本(続き)

anond:20181104161900 増田プログラマー養成講座 その17 Webアプリの骨組み

anond:20181104233013 増田プログラマー養成講座 その18 SQLデータの追加と取得

anond:20181110120715 増田プログラマー養成講座 その19 SQLデータ更新

anond:20181110182445 増田プログラマー養成講座 その20 SQLデータの削除

anond:20181111205255 増田プログラマー養成講座 その21 データベース設計 (1)要件定義

anond:20181119224031 増田プログラマー養成講座 その22 データベース設計 概念物理

anond:20181204142213 増田プログラマー養成講座 その23 SQLを巡る物語 ←★今ここ★

anond:20181024214737 増田プログラマー養成講座 コンテンツ一覧

2018-12-03

平成最後だしポンコツSE転職事情さら

平成最後だし、なんかい不況が来るかもわからない状況な気もするし、

今のうちに年収上げておきたいなんて考えている人もいるのかなと思い、

本当に普通な感じで埋もれているエンジニア転職した時の話をしようと思う。

現在私は同業界大手企業で働いている。転職結果としては年収も大きく上がったし、

職場環境も申し分ないので成功したと思っている。

 

スペック転職時)

 年齢:39歳

 

 <前職>

 中堅の独立系SI企業WEBSierもやってるような感じ)社員600名程度

 に所属していた。勤続は7年目

 

 <技術力>

 技術力はほんとに並の下程度。

 JavaとかPHPとかやっていて、PHPがメインだったかな。主にWEBサービスを作ったり、社内WEBシステム作ったりしてた。

 プログラミングの基礎はあるし、SQLやその他DB知識もそれなりにある。サーバー知識あんまりないし、

 Linuxコマンドは正直ちょっと苦手だし、AWSとか触ってないし、なんならApacheだってそんなに詳しくない。

 ググっていつも解決する。フルスタックエンジニア?なんだそれ?こちサーバーサイドエンジニアだ、文句あんのか?

 

 新しい技術言語は基礎があるので飲み込みは早い方だと思う。なので対応力はある方だ。Rubyでもpythonでもコード見れば読めるし、

 大抵のことは理解できると思う。でも業務では使ってない。JQureyもまぁ普通に使えるけどJSコードとかたぶん汚いと思う。

 

 色々と新しい技術をググって記事見たりして「わかった気になるタイプ」だと思う。36歳くらいでやっと「デザインパターン

 知らないとやばいんだ。勉強しないと!と焦って本だけ一応読んで「わかった気」になった。

 

 ここまで読めばわかると思うけどエンジニアとしてはだいぶ「ポンコツ」だ。

 でも仕事のためにやってるエンジニアとか結構こういう人が大半な気もするんだよね。

 立ち位置は開発リードとか設計とか上流も少しやってた。年齢のせいもあると思うけど、

 まぁうまく立ち回って仕事してた感じだと思う。コミュ力はそれなりにある方だと思う。

 もうエンジニアとかお前が名乗るなよとか言われそうだな。。。すまん。

  

転職活動の経緯

転職理由

 このまま、今のポジション仕事を続けてたら永遠に新しいこととか他の言語を使って業務をすることができそうになかったから。

 嘘だ、人間関係だ。ほとほと同僚、後輩、パートナーに愛想が尽きたからだ。それと上司やその上の部長にもだ。

 客先で顧客と一緒に仕事をしてたが顧客側の人はほんとにまともで良い人ばっかりだった。転職する時にそれだけ、ちょっと寂しくなったな。

 ポンコツながらプロジェクトでは納期を守り何とかやり抜いてきたが、全く評価されない現実もあり、それも嫌だった。あと、給料安い。

 表向きはいろんな理由があるだろうけど、転職する人の理由はきっとこれが現実だと思う。

 

概要

 転職を決意

 ↓

 とりあえずビズリーチよさそうねとか何も吟味せず登録

 ↓

 エン転職にも登録(以前使ったから)

 ↓

 DODAリクルート系は良い思い出が一切ないので登録してない。

 ↓

 ギークリーというところからビズリーチ経由で勧誘

 ↓

 一応そこの担当面談してギークリー利用

 ↓

 ビズリーチギークリーとエン転職転職活動

 ↓

 ビズリーチ経由でA社で外資強めの転職エージェントに会う。

 ↓

 ビズリーチ経由でB社で金融ITに強めの転職エージェントに会う

 ↓

 最終的にA社で3社応募して、2社内定をもらい転職した。

<詳細と雑感>

 転職しよう!と思ってからとりあず動けーーー!って感じで動いた感じです。

 総応募数は覚えてないけど30~50社くらいだったと思う。書類で超落ちる。年齢のせいも大きい。

 エン転職スカウト全然ダメだった。めぼしい企業がなかったし、年齢のせいか知らんけど、

 タクシーちゃんとかトラック運転とかそういうのも来てた。

 ギークリーから応募したのが一番多いと思うけど、とにかく手あたり次第に紹介してくる。

 よさそうな企業もあったけど、面接まで行ったのは4社程度ですべてお祈りだった。

 2次や最終までは行くが、いまいち紹介された企業自分志望動機を合わせる作業がどうにも苦手でうまく行かなかった。

 ギークリーはほんとに求人が多いから、たくさん見て選びたい人には向いてると思うけど、自分には向いてなかったな。

 他にもビズリーチ経由で4社くらい直接カジュアル面談があったけど、有名なY社とか、運輸系のY社のシステム会社とか、

 印刷系のD社の子会社とか、どれも最初カジュアル面談で、それ以後連絡なかったなぁ。

 カジュアルと言いながらガチ面接なこともあったな。

 

 そんな感じで行き詰って2か月。心機一転また別のところ!というのと、

 自分でもう一度ポンコツなりに職務経歴書を頑張ってブラッシュアップし、面接対策もして、改めてA社とB社とつながった。

 B社からの紹介はとても面白い会社だったし、一次面接もかなり好感触だったのだが、なぜかその後に論文筆記があり、

 書いて出したら、落ちた。どうやら思想が合わなかったらしい。

 A社から紹介されたのが、医療系のWEBサービスの会社と誰もが知ってる大手企業

 どうやら大手企業とは結構つながりのあるエージェント会社だったみたい。

 自分大手に行けるか半信半疑だったが、面接対策結構しっかりしてくれて助かった。

 同じ質問面接でされたので、うまく答えることができたと思うし、職務経歴書も一緒に見てくれた。

 そして、2か月でこの医療系の会社大手から内定を頂いた。転職活動は実質4か月くらい。

 どちらも良い会社だったので、本当に迷ったが、大手の方にした。

 断るのもエージェントがやってくれるのでこれも結構気持ちが楽だった。

 

<振り返って思うこと>

 ポンコツなりにアピールできるポイントがあれば、それをしっかりアピールするような職務経歴書を作ったり、

 私の場合は3回目の転職だったので、今までの経歴をきちんとよどみなくアピールできるような練習有効だった。

 転職活動初期は全然対策してないこともあって、やっぱり落ちたのかなと思う。

 だんだんエンジンがかかって、面接にも慣れていき、最終的に大物ゲットできた感じだ。

 そして、面接ではやっぱり自分はできる奴だ!ということをちゃんアピールした方がいいと思った。

 謙遜かいらないし、こういう職務なんですができますか?と言われても、普通に全然問題ないです。くらいに言ってもいいと思う。

 

 ハイスペックエンジニアかいやいや十分すごいですわ的なエンジニアは、自分活動して、普通に交渉もして、

 自分がより有利な環境を手に入れることができると思うけど、私のようなポンコツ普通にエージェント使って、

 普通に応募して、面接対策しっかりして、志望動機ちゃんと頑張ってたくさん考えて、ちゃんと喋る練習して、それで行けば結構いけると思う。

 落ちるのはやっぱり職務経歴書がまだちゃんと練れてないのと、面接練習や、志望動機が甘いんだと思う。そこを頑張れば良い環境転職できると思う。

 

 おススメのエージェントとかは特にいかな。自分に合ったもの自分転職活動しながら、見つけるのが良いと思う。

 1つ言うならエージェントを1つに絞らないことかな。忙しくなるけど、いろんな所と付き合って、自分に合うところを見つければいいと思う。

 そういう意味ではビズリーチは大小さまざまなエージェント会社があり、そこから連絡がバシバシ来るので登録しておくとよいかもしれないです。

 

<まとめ>

こんな感じだ。読み返すとあんまり参考にならないかもしれない。。。

私は前の会社全然評価されなかったが、今の大手に移ったら、普通に評価が上がって、給料もしっかり上がった。

環境次第で人の評価って全然変わるし、所詮評価する側のフィルターをかけた評価なんてやっぱり気にしなくていいんだと思った。

実際前職の部長退職の旨と転職先の話をした時に「子会社ですか?」とか言われたし、「いえ、本体です。」と答えたら「マジで?」という顔をしてた。

部長フィルターでは自分評価はそんな感じだったんだなと実感した。

ももちろん良いフィルターをかけて評価してもらっていると思うけど、自分にとってどっちが良いかは明白だし

その良いフィルターが本当になるようにもっと努力したいと思う。

 

今の市況ならほんとに転職すれば年収上がるくらいの状況だし、勤続3~5年以上で、

自分の現状に不満があるなら、いっちょやってみるのも良いかもしれません。

誰かの参考になれば幸いです。

2018-11-01

増田プログラマー養成講座 その15 Webアプリの完成見本

前回は、Webアプリモックアップ(ハリボテ)を作るところまでやりました。

今回は、Webアプリ機能実装してみましょう!

 

学習の狙い

データベースを使ったWebアプリを作って、データベースの基本操作CRUDの4つ)を練習してみよう!

CRUD
  1. Create 追加
  2. Read  取得
  3. Update 更新
  4. Delete 削除

 

説明の順番について

どういう順番で説明したら分かりやすいか検討してみた。

  1. まず先に、Webアプリの完成見本を提示します。
  2. 続いて、作る過程説明しながら、各プログラム意味説明してみます

 

作業の流れ

ざっくりと、以下のような流れで作っていきます

  1. XAMPPを起動する。(参考 anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備)
  2. CodeIgniterインストールする。(参考 anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう)
  3. phpMyAdminでデータベース操作する。(参考 anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう)
  4. ApacheWebサーバーソフト)の設定を変更する。(今回説明
  5. Visual Studio Code等のツールプログラムを書く。(次回説明
  6. ブラウザー動作確認する。

 

XAMPPを起動させる

(参考 anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備)

講座その6を参考にして、XAMPPを起動させて、ApacheMySQLスタートして下さい。

 

CodeIgniterインストールする。

(参考 anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう)

講座その9を参考にして、XAMPPの中にCodeIgniterインストールしておきます

 

phpMyAdminでデータベース操作する。

(参考 anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう)

講座その11を参考にして、MySQLWebアプリ用のデータベーステーブル作成しておきます

 

データベースの設定

講座その11で、データベース練習で「chat」というデータベースを作ってみました。

そのときmessage」というテーブル作りましたが、今回Webアプリで使うテーブルとして新たに「talk」というテーブル作成します。

(補足:前に作ったテーブルmessage」の中に、テーブル名と同じ「message」という名前カラム(列)を作ってました。これでも問題ないんだけど、プログラムを書くときテーブル名とカラム名を混同しないようにしたいので、念のため作り変えときましょう。)

 

talkテーブル新規作成する

SQLで「talk」というテーブルを作る場合、以下のようなSQL文になります

CREATE TABLE `talk` (

 `id` int(11) NOT NULL,

 `create_at` datetime NOT NULL,

 `update_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

 `message` text NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

このSQL文をphpMyAdminで実行すれば「talkテーブルを作れます

  1. phpMyAdminを開く。
  2. データベース「chat」を開く。(前に作った「messageテーブルは使わないので削除してもOK
  3. phpMyAdmin画面の上部メニューの「SQL」をクリックする。
  4. データベース chat 上でクエリを実行する:」の空欄に上記SQL文をコピーして実行すれば、「talk」というテーブルができる。

 

これでデータベースの準備ができました。

 

Apacheの設定

CodeIgniterで使う「URL」の表示方法ちょっと変更しておきたいので、ApacheWebサーバーソフト)の設定を変更しておきます

(「URL」=情報がどこにあるのかを示すインターネット上の住所)

Apacheの「mod_rewrite」という仕組みによって、URLの扱い方を変更します。)

 

(例)

変更前: http://localhost/waf/index.php/welcome/

変更後: http://localhost/waf/welcome/

というように、URLの中にある「/index.php」という文字列を表示させない設定にします。

 

Apache設定ファイル.htaccess

Apacheの設定は「.htaccess」という名前設定ファイルを用意して変更します。

 

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L]

 

.htaccess」の書き方を理解するには、「正規表現」という仕組みの知識必要です。

まだ「正規表現」を勉強してない段階では、とりあえずコピペして使って下さい。

 

Webアプリ完成見本

CodeIgniterで、

を行ないます

 

CodeIgniter設定ファイルconfig.php」の編集

config.php」をIDEやエディターで開いて、以下のように変更する。

$config['base_url'] = 'http://localhost/waf/';

$config['index_page'] = '';

 

最初は、

$config['index_page'] = 'index.php';

になってるけど、「index.php」を削除して、「''」(空)にしておく。

 

CodeIgniterデータベース設定ファイル「databese.php」の編集

「databese.php」をIDEやエディターで開いて、以下のように変更する。

$db['default'] = array(

 'dsn' => '',

 'hostname' => 'localhost',

 'username' => 'root',

 'password' => '',

 'database' => 'chat',

 'dbdriver' => 'mysqli',

(※上記のように、MySQLのusernamepasswordは「root」(管理者)のデフォルト設定を使ってます。)

 

Controllerの作成

上記フォルダの中に「Welcome.php」というファイルを作って、内容を以下のようにします。

<?php

defined('BASEPATH') or exit('No direct script access allowed');

 

class Welcome extends CI_Controller

{

 public function __construct()

 {

  parent::__construct();

  $this->load->model('chat_model');

  $this->load->helper('url');

  // $this->output->enable_profiler(true); // for debug

 }

 

 // 初期画面

 public function index()

 {

  $action = $this->input->post('action');

  if ($action == 'add') {

   $message = $this->input->post('message');

   $this->chat_model->create_message($message);

  }

  $data['talk'] = $this->chat_model->read_message();

  $this->load->view('welcome_index', $data);

 }

 

 // 更新画面

 public function update($id = '')

 {

  $id = $id ? $id : $this->input->post('id'); // id -> segment or post

  $action = $this->input->post('action');

  if ($action == 'update') {

   $message = $this->input->post('message');

   $this->chat_model->update_message($id, $message);

  }

  $data['talk'] = $this->chat_model->read_message_by_id($id);

  $this->load->view('chat_update', $data);

 }

 

 // 削除画面

 public function delete($id = '')

 {

  $id = $id ? $id : $this->input->post('id');

  $action = $this->input->post('action');

  if ($action == 'delete') {

   $this->chat_model->delete_message($id);

  }

  $data['talk'] = $this->chat_model->read_message_by_id($id);

  $this->load->view('chat_delete', $data);

 }

}

 

View作成

上記フォルダの中に「welcome_index.php」「chat_update.php」「chat_delete.php」という3つのファイルを作って、内容を以下のようにします。

 

Viewファイル「welcome_index.php」の中身

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>新規投稿</h2>

  <form action="welcome/index" method="post" accept-charset="utf-8">

   <label>メッセージ</label>

   <input type="text" name="message">

   <input type="hidden" name="action" value="add">

   <button>投稿する</button>

  </form>

  <h2>投稿一覧</h2>

  <table border="1" cellpadding="5" cellspacing="0" bordercolor="#CCCCFF">

   <tr>

    <th>No.</th>

    <th>投稿日時</th>

    <th>メッセージ</th>

    <th>編集</th>

    <th>削除</th>

   </tr>

   <?php if(isset($talk)): ?>

   <?php foreach($talk as $item): ?>

   <tr>

    <td><?php echo $item['id']; ?></td>

    <td><?php echo $item['create_at']; ?></td>

    <td><?php echo $item['message']; ?></td>

    <td><a href="welcome/update/<?php echo $item['id']; ?>">編集</a></td>

    <td><a href="welcome/delete/<?php echo $item['id']; ?>">削除</a></td>

   </tr>

   <?php endforeach; ?>

   <?php endif; ?>

  </table>

 </body>

</html>

 

Viewファイル「chat_update.php」の中身

<?php defined('BASEPATH') or exit('No direct script access allowed');?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>編集</h2>

  <p>メッセージを変更して「更新する」ボタンを押してください。</p>

  <form action="welcome/update" method="post" accept-charset="utf-8">

   <label>メッセージ</label>

   <?php if (isset($talk)): ?>

   <input type="text" name="message" value="<?php echo $talk['message']; ?>">

   <input type="hidden" name="id" value="<?php echo $talk['id']; ?>">

   <input type="hidden" name="action" value="update">

   <?php else: ?>

   <p>※該当するメッセージがありません。</p>

   <?php endif;?>

   <button>更新する</button>

  </form>

  <p><a href="welcome/index">戻る</a></p>

 </body>

</html>

 

Viewファイル「chat_delete.php」の中身

<?php defined('BASEPATH') or exit('No direct script access allowed');?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>削除</h2>

  <p>以下のメッセージを削除しますか?</p>

  <form action="welcome/delete" method="post" accept-charset="utf-8">

   <?php if (isset($talk)): ?>

   <p style="background-color:lightpink"><?php echo $talk['message']; ?></p>

   <input type="hidden" name="id" value="<?php echo $talk['id']; ?>">

   <input type="hidden" name="action" value="delete">

   <?php else: ?>

   <p>※該当するメッセージがありません。(または削除済です。)</p>

   <?php endif;?>

   <button>削除する</button>

  </form>

  <p><a href="welcome/index">戻る</a></p>

 </body>

</html>

 

Model作成

上記フォルダの中に「Chat_model.php」というファイルを作って、内容を以下のようにします。

<?php

defined('BASEPATH') or exit('No direct script access allowed');

 

class Chat_model extends CI_Model

{

 public function __construct()

 {

  parent::__construct();

  $this->load->database();

 }

 

 // Create

 public function create_message($message = '')

 {

  $sql = "INSERT INTO talk SET create_at = ? , message = ?";

  $param = array(date('Y-m-d H:i:s'), $message);

  $this->db->query($sql, $param);

  return $this->db->insert_id();

 }

 

 // Read All

 public function read_message()

 {

  $sql = "SELECT * FROM talk";

  $query = $this->db->query($sql);

  return $query->result_array();

 }

 

 // Read by Id

 public function read_message_by_id($id = 0)

 {

  $sql = "SELECT * FROM talk WHERE id = ?";

  $param = array($id);

  $query = $this->db->query($sql, $param);

  return $query->row_array();

 }

 

 // Update

 public function update_message($id = 0, $message = '')

 {

  $sql = "UPDATE talk SET message = ? WHERE id = ?";

  $param = array($message, $id);

  $this->db->query($sql, $param);

  return $this->db->affected_rows();

 }

 

 // Delete

 public function delete_message($id = 0)

 {

  $sql = "DELETE FROM talk WHERE id = ?";

  $param = array($id);

  $this->db->query($sql, $param);

  return $this->db->affected_rows();

 }

}

 

この続きは、

anond:20181101230220 増田プログラマー養成講座 その16 Webアプリの完成見本(続き)」

へ続きます

2018-10-24

増田プログラマー養成講座 その11 データベースを使ってみよう

前回まで手続言語の基本(構造プログラミングオブジェクト指向プログラミング)を見てきた。

今回から問合型言語SQLを学び、データベースDB)を使ってみよう。

 

データベースとは?

大量のデータを記録して、活用するために特化したソフトウェアが「データベース」だ。

データベースには、いろんな種類があるけど、今回学ぶのは「リレーショナル・データベース」(RDB)だ。

 

データベースの利点

データベースがなかった時代の人々は、大量のデータを扱うのに苦労していた。

データベース活用すれば、人間は脳の記憶力を補完して、膨大な知識を扱うことができるようになる。

キミも今日からデータベース活用して、記憶力を100億倍にしよう!ドラえもんの暗記パンなんて目じゃないぜ!!!

 

勉強方針

 

MySQLの起動

MySQL無料で使えるRDBです。MySQLデータベース練習をやってみよう。

それではさっそく、以前インストールしたXAMPPで、MySQLを使ってみよう。

 

  1. xamppフォルダの中にある「xampp-control.exe」をダブルクリックしてください。
  2. XAMPP Control Panel」が表示されたら、一番上の「Apache」と次の「MySQL」の「Start」ボタンクリックします。

Port(s)が「80,443」「3306」と表示されたら、PHPMySQLが使える状態になってます

 

phpMyAdminの起動

Webブラウザー(Google Chromeなど)で、「 http://localhost/phpmyadmin/ 」というURLを開く。

phpMyAdmin」という画面が出てきたらOK

 

phpMyAdminとは?

phpMyAdmin」は、MySQL管理するツールです。

phpMyAdmin」で検索したら、使い方を紹介する記事が、たくさん見つかります

 

phpMyAdmin(ピーエイピーマイアドミン)はMySQLサーバーウェブブラウザ管理するためのデータベース接続クライアントツールで、PHP実装されている。

phpMyAdminを用いることで、SQL文を記述することなく、MySQLデータベースに対して様々な操作が行える。

また、ユーザ任意SQL文を記述して実行することもできる。

 

phpMyAdminの使い方解説ページ

検索したら、こんなのがありました。

 

データベース作成

それでは練習で使うデータベースを1個作ってみよう。

後で簡単チャット(おしゃべり)ができるWebアプリ作ってみたいと思う。(Twitterをショボくしたシステムw)

チャット用のデータベースとして「chat」という名前データベースを作ろう。

 

これで「chat」という空のデータベースが1個できた。

 

テーブル作成

RDBの「テーブル」とは、データを保存する表のこと。

「chat」データベースの中に、テーブルを1個作ってみよう。

 

すると「名前」「データ型」「長さ/値」「デフォルト値」…などの空欄がたくさん並んだ画面が表示されただろう。

4段ある上から順番に、以下の通り入力してくれ。

これでテーブル構造を設定することができた。

これら4段の下にある「ストレージエンジン:」欄は「InnoDB」にしておく。

ここまで入力したら、画面右下にある「SQLプレビュー」というボタンクリックしてみよう。

すると、

CREATE TABLE `chat`.`message` (

 `id` INT NOT NULL AUTO_INCREMENT ,

 `create_at` DATETIME NOT NULL ,

 `update_at` TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,

 `message` TEXT NOT NULL ,

 PRIMARY KEY (`id`)

) ENGINE = InnoDB;

というSQL文が表示されただろう。

これが「SQL」というデータベース操作するプログラミング言語の書き方なんだ。

今はツールを使って自動的SQL文を作成したが、SQL文法を学べば、自分で書けるようになる。

とりあえず、今はphpMyAdminでMySQL簡単操作してみよう。

 

すると、画面左側のデータベース一覧で、「chat」の下に「message」というテーブルが表示されるようになっただろう。

これでテーブル作成ができた。

 

データ作成

データベースと、その中のテーブル(表)を作ったけど、まだデータが入ってないので空のままだ。

phpMyAdminでデータを1件、追加してみよう。

すると、

INSERT INTO `message` (`id`, `create_at`, `update_at`, `message`) VALUES (NULL, '2018-10-24 12:34:56', CURRENT_TIMESTAMP, 'Hello, world!')

というSQL文が表示されただろう。

これがデータ操作するSQL文の一例だ。これも後でSQL文法を学んでみよう。

これでデータが1件追加できた。

 

こんなかんじで、とりあえず、phpMyAdminでMySQLをいろいろいじって練習してみよう。

 

まとめ

 

次回以降の予定は、

  1. データベース参考書を紹介
  2. SQL文法
  3. データベース設計方法
  4. データベースを使ったWebアプリ作成
  5. データベース理論

といったかんじです。

 


anond:20181015215004 未経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

anond:20181020230044 増田プログラマー養成講座 その8 OOPの仕組み(後半)

anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう

anond:20181023184616 増田プログラマー養成講座 その10 OOP参考書

anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう ←★今ここ★

anond:20181026145516 増田プログラマー養成講座 その12 データベース参考書

anond:20181024214737 増田プログラマー養成講座 コンテンツ一覧

2018-10-22

増田プログラマー養成講座 その9 MVCフレームワーク

前回はオブジェクト指向プログラミングOOP)で使う様々な仕組みについて学びました。

今回はOOPWebアプリを作ってみよう!

 

今日学ぶこと

 

OOPの使いどころ

OOP文法を学んだ後、OOP長所が発揮される場面をどうやって説明したらいいのか?を考えてみた。

横田意見を参考にして、「フレームワーク」を使って、OOPの使い方を見てみよう。

 

フレームワークとは?

framework →「枠組み」「骨組み」「構造」などという意味英語

システム開発で使われる「フレームワーク」とは、よく使われる機能のパーツを用意して、まとめて1つのパッケージにしたプログラム群のことだ。

 

イメージとしては、いろんなおかずが入ってる豪華な幕の内弁当のようなものだ。

ただし、ご飯のマスだけが空になっていて、プログラマー自分ご飯を用意しないと、弁当としては完成していない形になってる。

普通の白いご飯を作って追加しても良いし、好みや必要に応じて、炊き込みご飯やまぜご飯を作って追加しても良い。

ゼロから豪華な幕の内弁当を作るのは大変だけど、ご飯だけ用意すれば完成するので楽ができる。

 

プログラムの開発でフレームワークを使うと、プログラマー必要最小限のコードを書くだけでアプリを完成させられるので楽ができる。

 

ライブラリーフレームワークの違い

フレームワーク」と似た用語で「ライブラリー」という用語がある。

イメージとしては、ライブラリーは、ばら売りのおかずだ。

弁当を作るときに使いたいおかず(ライブラリー)を自分で考えて探し出し、選ばないといけない。

フレームワーク最初からおかずが全部用意されているので、自分でわざわざ選ばなくてもOK

 

プログラム動作で見た場合フレームワークライブラリーでは決定的な違いがある。

↑このページの「図1●フレームワークにおける制御の反転」という図解を見てみよう。

制御の反転」(Inversion of Control、IoC)といって、自分の書いたコードが主役から脇役になってる点が違う。

 

(主役と脇役という説明は適切ではないかもしれないけど、イメージとしてはそんなかんじ?)

 

MVCフレームワークとは?

フレームワークはいろんな機能全部入りで、こいつを使えば、ちょっとコードを書くだけで、高機能アプリがすぐに作れる。

ここでは「MVCパターン」という仕組みで作られた「MVCフレームワーク」を使ってみよう。

 

MVCは「Model」「View」「Controller」の略で、MとVとCの3つを自分で用意すれば、アプリが作れちゃう仕組みだ。

MVC歴史は古くて、GUI(Graphical User Interfaceグラフィカルユーザインタフェース)を作る方法定番だ。

→「MVC 仕組み」でGoogle画像検索すると、分かりやすい図解がいろいろ出てくる。

 

(参考)

Wikipedia説明は、文章学術的で難しいけど、正確な説明になってると思う。

↑このページの「MVC概要」という図が、MVCの仕組み=動作の流れを分かりやす説明してる。

 

MVCの仲間たち

MVCパターンと似たような仕組みが、他にもいろいろある。

 

こういうプログラム設計に関するノウハウは、「アーキテクチャー・パターン」という分野に蓄積されている。詳細はGoogle検索してみよう。

 

WAF(Web Application Framework

Webアプリを作るときに使われるMVCフレームワークには、いろいろある。

WAFを使うと、Webアプリが手軽に作れる。

 

有名なものとして、

などが挙げられる。

 

PHPOOP学習しているので、ここではPHPのWAFの1つであるCodeIgniter」を使ってみよう。

 

CodeIgniterコードイグナイター)

CodeIgniterは使い方がシンプルで、覚えるルールが少ないので教材に向いているだろう。

それでは、CodeIgniterを使ってみよう。

 

準備

↑このページの「Downloadから「3.1.9.zip」という圧縮ファイルダウンロードする。(2018年10月現在バージョン3.1.9でした)

 

ダウンロードしたファイル解凍して、「CodeIgniter-3.1.9」というフォルダが出てきたら、「waf」という名前に変えよう。(「waf」はWeb Application Frameworkの略。)

今「waf」フォルダの中には、「index.php」というファイルや、「application」「system」などフォルダがあるね?

この「waf」フォルダを以前用意したXAMPPの中にコピーする。(参照:anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備)

=「C:\xampp\htdocs」(Cドライブの中の「xampp」の中の「htdocs」というフォルダ)の中に「waf」をコピーして下さい。

=「C:\xampp\htdocs\waf」という位置コピーできたらOK

 

動作チェック

これで「Welcome to CodeIgniter!」というWebページが表示されたら、CodeIgniter動作確認OKです。

 

CodeIngiterの設定

$config['base_url'] = 'http://localhost/waf/';

 

Webアプリ作成

それでは「Hello, world!」と表示させるシンプルWebアプリを作ってみよう。

 

MVC「C」作成する。

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

 

class Hello extends CI_Controller {

 public function index()

 {

  $this->load->view('hello_index');

 }

}

ここで注目して欲しいのは、「class Hello extends CI_Controller」という部分です。

フレームワークが用意している「CI_Controller」というクラス継承して、自分で「Hello」というクラスオブジェクト設計図)を作っている、という点です。

ここでOOPの仕組み~継承を使ってるわけですね。

 

MVCの「V」を作成する。

次に、

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>

<!DOCTYPE html>

<html>

<head>

 <meta charset="utf-8">

 <title>Test</title>

</head>

<body>

 <p>Hello, world!</p>

</body>

</html>

 

これでWebアプリができました!

今回は簡単なので、MVC「M」は用意しませんでした。(CとVだけで完成)

 

Webアプリ動作確認

Webブラウザーで「http://localhost/waf/index.php/hello」というURLアクセスして下さい。

画面に「Hello, world!」と表示されたら、Webアプリ作成成功です!

 

Hello, world!」の表示だけではショボ過ぎるけど、Webフレームワークを使えばもっといろいろな機能が作れます

詳細は、CodeIgniterマニュアルを参照して下さい。

↑このページで「ユーザガイド(日本語)」を読んでみて下さい。

 

まとめ

 

次回は、OOP理解を深めるための参考書を紹介してみます

 

Webアプリを作るときデータベースがないと不便なので、次の次ぐらいにSQLを学ぼう。

MySQLデータベース)を使えば、掲示板などのWebアプリも作れるようになります

 


anond:20181015215004 未経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

anond:20181020230044 増田プログラマー養成講座 その8 OOPの仕組み(後半)

anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう ←★今ここ★

anond:20181023184616 増田プログラマー養成講座 その10 OOP参考書

anond:20181024214737 増田プログラマー養成講座 コンテンツ一覧

2018-10-17

増田プログラマー養成講座 その6 OOPの種類、PHPの準備

前回は、オブジェクト説明をした。

今回は、オブジェクトの使い方=オブジェクト指向プログラミングOOP)を学ぼう。

 

OOPの種類

オブジェクト指向プログラミングには、

  1. クラスベースJavaC++など)
  2. プロトタイプベースJavaScript、Ioなど)

などの分類があります

ここではクラスベースOOPを取り上げる。学習時間を短縮するために、Javaよりも簡単PHPOOPの基本を勉強してみよう。

 

PHPとは?

PHP (プログラミング言語) - Webページ作成のために用いられることの多い汎用プログラミング言語一種

PHPは誰でも手軽に使えるように工夫された、軽量なプログラム言語です。

 

PHPの準備

WindowsパソコンPHPを使うために、XAMPPというソフト無料)をインストールしよう。

 

XAMPPはいくつかバージョンがあるけど、ここではUSBメモリに保存できる「ポータブル」を使ってみよう。

↑このページにある「xampp-portable-win32-7.2.10-0-VC15.zip」をダウンロードして、ZIPファイルを展開します。

解凍して出てきた「xampp」をCドライブ直下コピーしてください。

これでPHPの実行環境XAMPP)の準備は完了です。

 

XAMPPの起動

Port(s)が「80,443」と表示されたら、XAMPP上のApacheWebサーバーソフト)が起動して、PHPが使える状態になってます

Apacheを止めるときは、「Stop」ボタンクリックします。)

 

PHPスクリプト作成

phpとは - はてなキーワード http://d.hatena.ne.jp/keyword/php

↓こんなかんじのサンプルコードがあるよね。

<?php

print("Hello, world!");

?>

プログラムソースコード増田に直接書くと、エスケープされて違う文字になるので、上の例では一部文字を置き換えてある。)

上記の表示の中で、全角文字の不等号「<」「>」を半角文字の不等号に置き換えて下さい。)

増田プログラムコード貼付けられないのか。不便だな!)

以上で、PHPプログラミングの準備と動作確認ができた。

 

PHPの基本文法

PHPの教材は、本やネット上の記事動画などたくさんある。自分で分かりやすものを探して読んでみよう。

ここではドットインストールPHP入門を参考にしてみよう。

 

3分程度の動画が30個=90分。最初は内容を理解できなくてもいいから、とりあえず全部一通り見てみよう。(1巡目は雰囲気だけつかめOK

 

「つまづきノート」の作成

2巡目以降は分からないことがあったらノート等にメモして、後で1つずつ解明していこう。

著者あとがき

 

私はGitを学ぶのに、実はとても苦労しました。それと同時に、「きっと同じように困っている人が他にもたくさんいるはずだ」と考えました。「理解するのに数日かかることを、短い時間でパパッと学べるコンテンツを作りたい」そう思いつき、「マンガでわかるGit 第1話」個人サイトにて公開したところ、いきなり、はてなブックマークで800ブックマークされました。

 

“つまづきポイント”を先回りするために

私は、Gitを使い始めて以降、わからないことがあったら「つまづいたこノート」に書いてきました。なお、本書の執筆にあたっても、日々勉強しながら解説を書くという形でした。わかばちゃんが「なんでこうなるの?」と疑問に思う部分は、私が過去につまづいた部分です。

 

ドットインストール PHP入門
(1) PHP利用の準備

 

(2) 構造プログラミングの基礎知識

 

(3) オブジェクト指向プログラミングの基礎知識

 

(4) その他、Webサイト作成一般的知識

 

(今回は、PHPの準備、PHPの基本文法理解までで終わってしまったorz

URLリンク10個以上貼ると、日記が書き込めないみたいなので、増田では記事を分割せざるを得ない。)

次回は、OOP関係している内容(#18~#24)を一緒に確認してみよう。

 


anond:20181015215004 未経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備 ←★今ここ★

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

anond:20181020230044 増田プログラマー養成講座 その8 OOPの仕組み(後半)

anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう

anond:20181023184616 増田プログラマー養成講座 その10 OOP参考書

anond:20181024214737 増田プログラマー養成講座 コンテンツ一覧

2018-08-20

作ったものを公開できない問題

こんなのあったらおもろいなーと思ってwebアプリ?みたいなやつ作ってたんだけど全然公開できない。

【公開までの見積もり甘すぎ問題

8割はできたって所から公開しようって状態まで持っていくの大変すぎ。

感覚的には8割から先がそれまでの2倍の負担はある。

デザインめんどくさすぎ問題

デザインなんてどうでもいーと思いつつも触りだしたら「せっかくだから」と触り出しちゃう

さすがに最低限それっぽくしたくなっちゃう。

CSSフレームワーク使ってみたら結局上書きしまくりで使い物にならない。

もうさ、本当になんでもいいんだよ。レスポンシブとかどうでもいいんだよ。

けどそれくらい対応してないとダサいみたいな空気感ちゃう

なんでsassの使い方なんて調べてるんやー

compassってなんや

lessってどうなったんやー

サーバー準備めんどくさすぎ問題

どのサーバーを使えばいいかわからん

VPSherokuAWS

こんなものを公開するのにサーバー代を払う事を想像すると手がすくむ。

AWSは便利みたいな風潮なんなの普通に構築大変なんだけど。何のサービスあるかよく分からないし。高いし。

heroku操作がないと止まるらしいし。

操作ってなに?デプロイWEBアクセスでもいいの?定期的にリクエスト投げておけば止まらない?

cloneとか使えるの?nginxの設定いじったりとかできる?apache

使ったこと無くてわからない。

得体が知れなくて怖い。

結局VPS借りたよもう!

【話が大きくなっていく問題

最初は1つの機能だったのが深夜のテンションであれしたいこれしたいってどんどん出てくる。

超人サービスになって超有名人になってインタビューに答える姿まで想像ちゃう

ブツブツ独り言言いながら予行練習もしてる。

最低限作る機能がどんどん増えていく。

【みんなに知ってもらえない問題

ある程度有名人ならTwitterとかでつぶやくだけで認知してもらえるだろうけどさ。

全く有名でもない自分が、作りました〜って言って誰が見てくれるのさ。

最初の広めるハードル高すぎない?

意外と誰かが見つけてくれるものなの?

白馬王子様を待っていればいいの?

お金払えばいいの?誰に払えばいい?

作ってる時は超人サービスになる事を想像してムフムフやってたけど、いざ公開しようという段階まで来ると「どうせ誰にも見てくれない」とか考えてどんどん自信がなくなってゆく。

カッコいい事言ってるけど、作ったサービスが全くウケなくて誰にも使われなかったら..とか、失敗した自分想像して動けなくなってるんだと思う。

あーーー寝る前にスマホで1時間掛けて書いた。

何を書きたいのかもよく分からなくなってきた。

書くってこんなに時間かかる?

自分だけ?

文章書くの大変すぎ問題...

もういい!寝る!

のび太さんのエッチ

2018-07-13

今更El CapitanからHighSierraにしたメモ

httpd.confが初期設定に戻ってた

localhosthttps化してたのだが、OSを入れ直したらオレオレSSLの設定をし直さなきゃいけない

ブラウザ動作確認するときスーパーリロードをしないと、サーバーエラーの表示がキャッシュから表示されて、余計に混乱する

11.0を使ってたのだが、12.0にアップデートしたら、キーボード認識で右シフトの一つ左キーのところで、先に進まなくなる

認識ウィンドウを閉じると、キーボード英語キーボード認識されてしま

これが原因かcomplex_modification.jsonの読み込みでエラーが出る

  • Day-O

2.0にしたら、曜日表示が英語しかできない

よく使う項目の順序がリセットされてて面倒

2018-06-19

Go言語PHPに似ている

2018-04-26

ただ仮想Linuxで開発中のWebアプリを家のLAN越しに色んなデバイスで閲覧できればそれで良かったのに

まずどんな手段があるのか調べて、Apacheというのがあるのを知って、ubuntuApacheインストールしたけど全然使えるようにならなくて、どうやら設定ファイルを弄る必要があるのは分かったけどその在りかが全然からなくて、新しくLinuxコマンドいくつか覚えて探しても見当たらなくて、またいろいろ調べたらDebian系のOS設定ファイル名前が違うってことが分かって、設定ファイルは見つかったのにどこをどう編集したらいいのか分からいか公式ドキュメント(英語)読んでーみたいな感じでこの2〜3日すげえ回り道したのに

結局Vagrantの設定を弄れば一発だったっていう…Vagrantすげー

初心者が一人で開発やってるとこういう徒労ばっかりで困る

おかげでVPNとかVLANとか使えるようになりそうだから良いけどさ

2018-02-28

なんでgracefulなんだ

apacheコマンドなんだけど

これだけ動詞じゃない

気持ち悪い

2018-02-16

サポートデスクの人ってもっと給料もらったり有料サービスにしていいんじゃね

自分はしがない田舎サラリーマンなんだけど、まぁ、ほんのちょこっとパソコンに詳しいわけよ。

いや、ほんのちょこっとだよ。はてなー失笑される程度。ポート解放できたりLINUXApacheやらMySQLいれたり、マイクラサーバーにしたりして趣味程度に遊ぶぐらいの。

で、まぁ、今勤めている会社はいわゆるコンサルタント会社なんだけど、その客が「増田君、パソコンできるんだってちょっと、見てくれないか?」とかいって「なにもしてないのにこわれた」らしいパソコンを持ってきたわけ。

それでぱぱっとシステム復元してやったら一発で直って、そこから気がついたらアレもこれもとして、なんかパソコントラブルがおこったら○○社の増田電話すればいいみたいな感じで客先に広まっちゃって今3社ぐらいから「パソコンお困りサポートセンター」みたいな扱いを受けているんだけど、これがとにかくストレス

で、流石にこの状況はおかしいぞ、と社長判断を仰いだら「当社の仕事コンサルタントではなく、お客様が困っていることを助ける事。その指針に則っているのではないか。」と言われて結局2年ぐらい「パソコンお困りサポートセンター」みたいなことを業務に合間にしてるんだけど、もうとにかくイラつくのね。

これを仕事としているサポートデスクの人って、もっとこれ以上にお客さん抱えてると思うし、そんなサポートデスク無料でやってるんだからスゴイなと思った。

からサポートデスクってそもそも有料でいいんじゃねぇのって思う。てか、こっちの立場を見て明らかに「直してくれて当たり前」みたいな態度で接してくるしな。こんなん無料でやってたら割にあわんて。

2018-01-30

コインチェック騒動Apacheアクセスログ見てんのか?やっぱり壮大なマッチポンプ感満載

少なくとも事が起きた時間で、Apacheアクセスログを当たれば、おおよそIPは掴めるだろ。

そのIP踏み台にしたって。額が額だけに、踏み台も追えって話。

このコインチェックという会社、このへん詳しいやついなかったのか、これは痛い。

それとも知らんフリしてんのか。

いろいろ、なんともお粗末な事件

やっぱりマッチポンプ感満載。

被害に遭ったか被害者。甘いセキュリティは落ち度。ただ、返却する誠実さを醸し出し、

しかし、勝手日本円で低レートで返却する無神経さ。

これは壮大なマッチポンプであり、日本政府がきっちり見抜けて、首根っこ掴めるかどうか試されてる。

2017-12-10

はじめてのVPSで既にはまりまくってる

はじめてなのにconohaで、しかOSUbuntuにしたのがまずミスなんだけど

ブログとか見まくって最低限のセキュリティ設定はまあまあスムーズに終了

そこから

Apache入れて

VirtualHostでサブドメイン設定して

Let's EncryptでSSL化して

htaccessでベーシック認証つける

というのでめちゃくちゃはまった

結局Apache入れてからベーシック認証つけるまで5時間もかかった……

公式サイトも含めて世の中のいろんな人が公開してるいろんな情報が、古かったり、間違ってたり、情報が足りなかったりして、もう本当に疲れた

とりあえず何はなくともエラーログ最初に見るのが大事という学びを得た

明日は作ったサイトを公開したいけど、もうgit使った自動化とかせずFTPソフトで手動でやりたい

2017-12-09

anond:20171206201618

もう一つの方法としては、javascript版だ。

https://gist.github.com/bellbind/d9dc9ccdd4a8735a9990

2倍固定だけど。

デモページで試してみたら、javascripticabやらsafariでは動かない。

かろうじてFifefoxやchromeで動く。

最初ダウンロードして、OSXweb共有で試してみようと思った。

→動かない。単純拡大の方はスパッと表示されるが、その下の表示が "Progress: initialize worker..." のままで停止。

 Apacheの設定を変えるといいのかもしれないが、あくま仕事機械だしね。

結論としてはダウンロードしたHTML書類を、Finderから右クリックしてFifefoxで開くとなぜか動くというのが確認できた。

へーってなった。

chromeは直接開いたのではダメだった。

(ちなみにHTMLエディタで開いてjsongithubURLにしたらweb共有からでも動くのは確認した。

 ただし外部サイト側に迷惑をかけないためという主旨なんで元に戻している。それでいいなら公式ブラウザアクセスするので

 ちなみに個人サイトjsonを置くことも考えたが、それもなんだかなと、たいていリンクだけの目的ファイル置くの禁止

2017-04-11

オライリーに出てくるフレンズ

参考:http://www.oreilly.com/animals.csp

2017-04-07

アメリカインディアン酋長に関する疑問

Wikipediaインディアン関連の項目を眺めていると、各所に「酋長とはあくま調停者であって指導者代表者ではない」と強調するような記述が出て来る。

インディアンたちには指導者など存在せず、それを白人たちは理解できなかったので、酋長指導者と見なして見当違いな交渉を行ったのだ、といった主張である

しかし、Wikipedia以外で同様の主張は見つけられない。

たとえば日本語版の「ジェロニモ」の項目。

ジェロニモ - Wikipedia

ちなみに戦士集団だったアパッチ族には「酋長戦士が服従する」という義務風習もない。戦士は結束はしてもすべて個人行動で動くものであって、戦士たちはジェロニモ個人を慕って抵抗戦をともにしたのであるジェロニモ軍事的指導をしたこともない。

インディアン社会チーフ酋長)とは、交渉の矢面に立つ「調停者」のことであって、「指導者」や「首長」ではない。合議制社会であるインディアン部族首長制ではなく、アフリカ部族に見られるような「部族長」は存在しない。

リーダーであることすら否定しかねない勢いだ。

対して英語版

Geronimo - Wikipedia

Geronimo was a prominent leader and medicine man from the Bedonkohe band of the Chiricahua Apache tribe.

ジェロニモチリカウア・アパッチのベドンコヘ族の著名な指導者であり呪術医であった。

At any one time, about 30 to 50 Apaches would be following him. However, since he was a superb leader in raiding and warfare he frequently led large numbers of men and women beyond his own following.

常に30から50人ほどのアパッチ族が彼に従ったが、彼は襲撃と戦闘の素晴らしい指導者であったので、しばしば彼自身が率いる以上に多くの人々を導いていた。

こちらは「leader」という語の使用に躊躇も注釈もない。

英語版アパッチ族の項目。

Apache - Wikipedia

Local groups were headed by a chief, a male who had considerable influence over others in the group due to his effectiveness and reputation.

その有効性と評判により、集団内に多大な影響を及ぼす人物が、酋長としてその土地集団を率いていた。

The chief was the closest societal role to a leader in Apache cultures.

酋長は、アパッチ文化において、指導者に最も近い社会的役割果たしていた。

The chief's leadership was only as strong as he was evaluated to be—no group member was ever obliged to follow the chief.

酋長指導力は、彼が評価される限りにおいて強力だった――集団内においては必ずしも酋長に従う義務はなかった。

やはり一種指導者立場であったことは否定されていない。

たとえばスー族の項目。

スー族 - Wikipedia

しばしば誤解されるが、「スー族全体を統率する大酋長」といったものは、過去にも現在にもスー族を始めインディアン社会には存在しない。「酋長チーフ)」という立場あくまで「調停者」、「世話役」であり、誰かに「任命」されるような性格のものではないし、「裁判官」や「指導者」といった役割を持ったものではない。文字を持たないインディアン部族にとって弁舌の立つ者は尊敬され、調停者として「酋長」となる。しか酋長は「首長」ではないし、部族民を従属させたり命令する権限など何も持っていない立場のものである

Sioux - Wikipedia

Leaders were chosen based upon noble birth and demonstrations of chiefly virtues, such as bravery, fortitude, generosity, and wisdom.

指導者は、高貴な生まれと、勇敢さ、剛毅さ、寛大さ、賢さといった酋長としての美徳にもとづいて選ばれた。

血筋能力により部族に影響を及ぼす立場にあった……といった英語版説明は、一般的部族社会指導者イメージとよく合致するのではないか

確かに、国家社会における君主的な権力はなかったのだろうが、それにしても日本語版記述はあまりにも執拗であり大袈裟にすぎるように思われる。

はいえ、英語版記述が常に正しいというわけでもないだろうし、最新の研究によりインディアン部族社会特殊性が明らかになったという可能性もある。

インディアンに詳しい増田がおられたら、是非ともご教示を願いたい。

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん