「ソフトウェア」を含む日記 RSS

はてなキーワード: ソフトウェアとは

2018-11-14

[][]2018年11月13日火曜日の増減

サイト\日付2018-11-072018-11-082018-11-092018-11-102018-11-112018-11-122018-11-13合計説明
Nature ttps://www.nature.com/00-2-870018952イギリス 科学学術
Science Magazine ttp://science.sciencemag.org/10107011542アメリカ 科学学術
Cell Press ttps://www.cell.com/00200002166アメリカ 生物学学術
Physical Review Letters ttps://journals.aps.org/0000001401アメリカ 物理学学術
Applied Physics Letters ttps://apl.aip.org/0000000231アメリカ 物理学学術
PNAS ttp://www.pnas.org/00000012109アメリカ 科学学術
Wiley Online Library ttps://onlinelibrary.wiley.com01000103795アメリカ 科学学術
The Lancet ttps://www.thelancet.com/000011002319イギリス 医学学術
ScienceDirect ttps://www.sciencedirect.com/11002318698オランダ 学術誌、エルゼビア傘下
Taylor & Francis ttps://www.tandfonline.com/0000210850イギリス 学術
PLOS ttp://journals.plos.org/00-101-10919アメリカ オープンアクセス科学学術
arXiv ttps://arxiv.org/61610518725374アメリカ オープンアクセス科学学術
MDPI ttp://www.mdpi.com/1000000171スイス オープンアクセス学術
EurekAlert! ttps://www.eurekalert.org/000000011790アメリカ 科学ニュースサイト
PHYS.ORG ttps://phys.org/00000011619イギリス 科学ニュースサイト
Science Daily ttps://www.sciencedaily.com/0000-1003152アメリカ 科学ニュースサイト
IEEE Spectrum ttps://spectrum.ieee.org/10000001743アメリカ 科学雑誌
Scientific American ttps://www.scientificamerican.00001001862アメリカ 科学雑誌
Popular Mechanics ttps://www.popularmechanics.co0000000435アメリカ 科学技術雑誌
Ars Technica ttps://arstechnica.com/121111112789アメリカ テクノロジーニュースサイト
Smithsonian.com ttps://www.smithsonianmag.com/0000000477アメリカ 歴史科学芸術雑誌
NewScientist ttps://www.newscientist.com/00000203976イギリス 科学雑誌
MIT Technology Review ttps://www.technologyreview.co10001003397アメリカ テクノロジーニュースサイト
Stanford SOCIAL INNOVATION Review ttps://ssir.org/000000027アメリカ 社会科学雑誌
National Geographic ttps://news.nationalgeographic00000008543アメリカ 地理歴史科学雑誌
Entrepreneur ttps://www.entrepreneur.com00000001376アメリカ 経営ニュースサイト
Harvard Business Review ttps://hbr.org/12110011972アメリカ 経営雑誌
The National Interest ttp://nationalinterest.org/0100000290アメリカ 国際関係雑誌
RAND ttps://www.rand.org/0000010121アメリカ シンクタンク
Brookings ttps://www.brookings.edu/0000-100316アメリカ シンクタンク
treehugger ttps://www.treehugger.com/10000001307アメリカ 環境ニュースブログ
World Nulcear News ttp://www.world-nuclear-news.o000000080イギリス 原子力ニュースサイト
Quantamagazine ttps://www.quantamagazine.org/0000100297アメリカ オンライン科学雑誌
ESPN ttp://www.espn.com/0010000270アメリカ スポーツ放送局
La Gazzetta dello Sport ttps://www.gazzetta.it/0000000256イタリア スポーツ新聞
FiveThirtyEight ttps://fivethirtyeight.com/1000100543アメリカ ABC傘下のスポーツ政治ブログ
WIRED ttps://www.wired.com/0-11000015096アメリカ テクノロジー文化雑誌
PC Magazine ttps://www.pcmag.com/0000000952アメリカ コンピュータ雑誌
The Register ttps://www.theregister.co.uk/53432456907イギリス テクノロジーニュースサイト
The Verge ttps://www.theverge.com/10514323917232アメリカ テクノロジーニュースサイト
Jane's 360 ttp://www.janes.com/0000000353イギリス 軍事ニュース雑誌
Defense News ttps://www.defensenews.com/0000000356アメリカ 軍事ニュースサイト
People ttps://people.com/0000000225アメリカ 芸能ニュース雑誌
Vogue ttps://www.vogue.com/0000000349アメリカ ファッション雑誌
Marie Claire ttps://www.marieclaire.com/000000064フランス/イギリス ファッション雑誌
billboard ttps://www.billboard.com/00147222396アメリカ 音楽雑誌
NME ttps://www.nme.com/00000213082イギリス 音楽雑誌
FACT ttp://www.factmag.com/00000002029イギリス 音楽ニュースサイト
TED ttps://www.ted.com/811023225650アメリカ カンファレンス
Colossal ttp://www.thisiscolossal.com/01200003744アメリカ 芸術文化ニュースブログ
Artsy ttps://www.artsy.net/00000001455アメリカ 芸術ニュースオークション
DP Review ttps://www.dpreview.com/00001001041イギリス/アメリカ 写真ニュースサイト
Gizmodo ttps://gizmodo.com/011000029081アメリカ テクノロジーニュースサイト
CNET ttps://www.cnet.com/10200002504アメリカ テクノロジーニュースサイト
ZDNet ttps://www.zdnet.com/23310024494アメリカ テクノロジーニュースサイトCNET傘下
TechCrunch ttps://techcrunch.com/2962204256639アメリカ テクノロジーニュースサイト
Phoronix ttps://www.phoronix.com/103283349486アメリカ ソフトウェアニュースサイト
LWN ttps://lwn.net/02300105170アメリカ ソフトウェアニュースサイト
Kotaku ttps://kotaku.com/1023565アメリカ ゲームブログ
Game Informer ttps://www.gameinformer.com/00010147アメリカ ゲーム雑誌
Project Gutenberg ttps://www.gutenberg.org/00110001807アメリカ 電子図書館
Krebs on Security ttps://krebsonsecurity.com/2410000902アメリカ サイバーセキュリティブログ
Threatpost ttps://threatpost.com/45321452356アメリカ サイバーセキュリティニュースサイト
Hacker News ttps://news.ycombinator.com/1041-1319072アメリカ ニュースアグリゲータ
Kickstarter ttps://www.kickstarter.com/033322213318アメリカ クラウドファンディング
Khan Academy ttps://www.khanacademy.org/00000001357アメリカ オンライン教育
iFixit ttps://www.ifixit.com/0326413104571アメリカ 修理情報サイト
TripAdvisor ttps://www.tripadvisor.com/001000113098アメリカ 旅行情報サイト
PinkNews ttps://www.pinknews.co.uk/0000000233イギリス LGBTQニュースサイト

2018-11-11

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

前回まで、データベースを使ったWebアプリ作成して、SQLの使い方を学びました。

今回からデータベース設計について学んでみよう。

 

参考書

これらの参考書ガッツリ読めば、データベース設計のやり方は分かる。

 

リレーショナル・データベースは昔からある枯れた(=安定した)技術なので、鉄板ノウハウが蓄積されている。

先人の知恵に沿って使うなら、データベース設計で悩む余地は少ない。=攻略は意外と簡単

 

データベーススペシャリスト教科書

経済産業省認定情報処理技術者試験で「データベーススペシャリスト」という資格もある。

 

データベースエンジニア」という肩書きを名乗れば、ただのプログラマーよりも高給取りになれる。勉強した後、自分知識棚卸してみるつもりで資格を取ってみるのもいいだろう。

データベーススペシャリスト試験教科書には、浅く広くDB知識網羅されているので、1度眺めてみたらいいかも。

 

 

 

データベース設計の流れ

データベース設計(database design)は、ソフトウェア開発工程においてデータベースの詳細なデータモデルを作る工程である

 

  1. 要件定義:「CRUD表」の作成
  2. 概念設計:「概念モデル」の作成 → ER図(実体参照モデル)の作成
  3. 論理設計:「論理モデル」の作成 → テーブル定義表の作成
  4. 物理設計:「物理モデル」の作成 → 論理モデルを実際にデータベース上で作成インデックス作成など

(分類方法にもよるけど)データベース設計は、このようなステップを経る。それでは順番に見ていこう。

 

 

 

1.1 永続化するデータを決定する

いわゆる「要件定義」だ。

実際にシステムを使うことになるユーザーヒアリング調査して、データベース内に永続化(格納)すべきデータを決定する。

 

CRUD表とは?

データCRUD操作(Create 追加、Read 参照、Update 更新Delete 削除)が、いつ、どこで発生するか?をまとめた表のこと。

 

データベース 設計 CRUD表」等のキーワードGoogle画像検索してみよう。どんな表か分かる。

↑このページの「図2 標準的CRUD図(例)」みたいな表を作って確認すれば、扱うデータの過不足がなくなる。

 

複雑なシステムだと、完全なCRUD表を作るのは面倒だよねw

だが安心して欲しい!

押さえておくべきポイントはあるので、そこだけ手抜きをしなければ、大失敗は避けられるだろう。

 

マスタートランザクションの違い

実は、後でテーブルを作るときに、データ更新頻度によって2種類に分類できるんだ。

 

 

トランザクションデータの扱いは、気を付けないとデータベースの性能低下に直結する。

どっちのタイプデータなのか?要件定義の段階から見分ける癖を付けておこう。

 

要件定義練習

試しに、Amazonのような通販サイトなら、どんなデータを扱うことになるのか?想像してみよう。

仕入先、在庫数、受発注配送会社顧客情報商品カテゴリー、商品スペック、などいろいろあるだろう。

いつどこでCRUDが発生するか?どれがマスターデータで、どれがトランザクションデータだろうか?

 

 

 

(ここまでの説明URLを8個も貼ってしまったので、続きは次回にしよう。)

次回は「概念設計」以降のステップを見てみよう。

 


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:20181024214737 増田プログラマー養成講座 コンテンツ一覧

新しいUIがクソ過ぎる

昔は、ソフトウェアWebサイトUI更新されて新しいUIになってその新UIダメダメだった時、何の躊躇もなく「問答無用でクソすぎる!」って言えたわけだが、

最近は、「新UIが出ればなんでもすぐ改悪改悪さけぶ老害がいる。慣れの問題だよ慣れの問題。」って言って物分かりの良いフリして我慢しなきゃならん風潮があってうんざりだわ。

いやー、腹立たしい。どうみても改悪しかいいようがないUI変更なんて世の中に溢れてるだろ。最近だとIngress Primeね。慣れの問題らしいっすよ。ワイはクソ過ぎると思うので旧UI使ってるけど。

旧来の良かったUIを捨て、わざわざ手数を増やし、面倒を増やし、視認性を落とし、直感でわからなくしたゴミUIでも、慣れの問題に違いないと誤魔化しつつ触らなきゃならないのきつすぎるし、こういう風潮生み出したやつ死ねばいいのに

2018-11-08

サムスンWDシーゲイトHDDNSAバックドアが仕掛けられていることが判明

anond:20181108161238

ハードディスクコントロールするためには、その製品独自ソースコードへのアクセス必要とされるため、一般的に手に入る情報だけではこのレベルマルウェア製作できないそうです。さてはて、製品独自ソースコードNSAがどのように手に入れていたのかは、明らかになっていませんが、元職員ロイターに語ったところによると、NSAときどき、ソフトウェアをチェックできる米国防総省のふりをして、コードを手に入れることもあったそう。

anond:20181108162930

ちゃうねん。低賃金労働をできるハードソフトウェアはあるねん。

あるけど、ハードソフト低賃金労働をさせる人間ユーザー)がそのハードソフトをうまく扱えない場合が多すぎるから例外を組むのが途方もなくなり、結局自動レジみたいな半分人間レジに立つような運用カバーしかできんのや。

から、完全機会化よりも、機械AIによる効率化を押していくんや。

自称IT詳しい人が認めたがらない表現

エーアイとか自動運転とか介護とかの意識高い話題だと「ハードに強い日本可能性」とか「ハード進化した今なら行ける」とか「低賃金でも単純な/複雑な仕事ならエーアイ導入の余地がある」とか平気で言うオジサンがいるんだよな

追記:

初めに書いたように、これは自称IT詳しい人が理解できない表現ではない。認めたがらない表現なのだ

自動化やすい高度に精神的なタスクAが自動化されました。次に自動化されるのは自動化やすい高度に精神的なタスクBと、単純な肉体労働タスクCのどちらですか」という質問を投げかけると、詳しいオジサンAは「高度に精神的なタスクBである」と正しく回答する。

これは人が理解できない表現ではない。認めたがらない表現なのだ

そして「容易なタスク自動化されるのは、困難と考えられている故である機械は困難に挑戦するが、容易はいつでも攻略できるのだ」というストーリーに逃げる。逃げ込む。「われわれが容易と考えている日常タスクは、実は高度である」という認識を持つことは、非常に多くの人にとっておそらくは苦痛なのだ

からどうした。われわれに残されるのは安い肉体労働である。われわれの価値判断基準と、機械にとっての高度さの基準が全く直行だか逆行だかしていることがいくら不快であろうと、事実が変わることはないのだ。

ばーか

2018-11-07

[][]2018年11月6日火曜日の増減

サイト\日付2018-10-312018-11-012018-11-022018-11-032018-11-042018-11-052018-11-06合計説明
Nature ttps://www.nature.com/5-667-11261-2351-2347-189218955イギリス 科学学術
Science Magazine ttp://science.sciencemag.org/00-104001532アメリカ 科学学術
Cell Press ttps://www.cell.com/10000002164アメリカ 生物学学術
Physical Review Letters ttps://journals.aps.org/0000000400アメリカ 物理学学術
Applied Physics Letters ttps://apl.aip.org/0000000231アメリカ 物理学学術
PNAS ttp://www.pnas.org/00000002108アメリカ 科学学術
Wiley Online Library ttps://onlinelibrary.wiley.com001-10023793アメリカ 科学学術
The Lancet ttps://www.thelancet.com/10008002308イギリス 医学学術
ScienceDirect ttps://www.sciencedirect.com/01100108690オランダ 学術誌、エルゼビア傘下
Taylor & Francis ttps://www.tandfonline.com/0000000847イギリス 学術
PLOS ttp://journals.plos.org/000000-1920アメリカ オープンアクセス科学学術
arXiv ttps://arxiv.org/55115-28825321アメリカ オープンアクセス科学学術
MDPI ttp://www.mdpi.com/0000000170スイス オープンアクセス学術
EurekAlert! ttps://www.eurekalert.org/080008011790アメリカ 科学ニュースサイト
PHYS.ORG ttps://phys.org/00-1-10011618イギリス 科学ニュースサイト
Science Daily ttps://www.sciencedaily.com/00000003153アメリカ 科学ニュースサイト
IEEE Spectrum ttps://spectrum.ieee.org/00111001742アメリカ 科学雑誌
Scientific American ttps://www.scientificamerican.00000021861アメリカ 科学雑誌
Popular Mechanics ttps://www.popularmechanics.co0000000435アメリカ 科学技術雑誌
Ars Technica ttps://arstechnica.com/5320010412781アメリカ テクノロジーニュースサイト
Smithsonian.com ttps://www.smithsonianmag.com/0000000477アメリカ 歴史科学芸術雑誌
NewScientist ttps://www.newscientist.com/00000003974イギリス 科学雑誌
MIT Technology Review ttps://www.technologyreview.co000-10013395アメリカ テクノロジーニュースサイト
Stanford SOCIAL INNOVATION Review ttps://ssir.org/000000027アメリカ 社会科学雑誌
National Geographic ttps://news.nationalgeographic00000008543アメリカ 地理歴史科学雑誌
Entrepreneur ttps://www.entrepreneur.com00000001376アメリカ 経営ニュースサイト
Harvard Business Review ttps://hbr.org/10010001966アメリカ 経営雑誌
The National Interest ttp://nationalinterest.org/0000010289アメリカ 国際関係雑誌
RAND ttps://www.rand.org/0000000120アメリカ シンクタンク
Brookings ttps://www.brookings.edu/0000000317アメリカ シンクタンク
treehugger ttps://www.treehugger.com/00000001306アメリカ 環境ニュースブログ
World Nulcear News ttp://www.world-nuclear-news.o000000080イギリス 原子力ニュースサイト
Quantamagazine ttps://www.quantamagazine.org/000-1000296アメリカ オンライン科学雑誌
ESPN ttp://www.espn.com/0010100269アメリカ スポーツ放送局
La Gazzetta dello Sport ttps://www.gazzetta.it/0000000256イタリア スポーツ新聞
FiveThirtyEight ttps://fivethirtyeight.com/1000100541アメリカ ABC傘下のスポーツ政治ブログ
WIRED ttps://www.wired.com/620201215096アメリカ テクノロジー文化雑誌
PC Magazine ttps://www.pcmag.com/0000000952アメリカ コンピュータ雑誌
The Register ttps://www.theregister.co.uk/03120526881イギリス テクノロジーニュースサイト
The Verge ttps://www.theverge.com/821448417186アメリカ テクノロジーニュースサイト
Jane's 360 ttp://www.janes.com/1000000353イギリス 軍事ニュース雑誌
Defense News ttps://www.defensenews.com/0000000356アメリカ 軍事ニュースサイト
People ttps://people.com/0000000225アメリカ 芸能ニュース雑誌
Vogue ttps://www.vogue.com/0100001349アメリカ ファッション雑誌
Marie Claire ttps://www.marieclaire.com/000000064フランス/イギリス ファッション雑誌
billboard ttps://www.billboard.com/00002002380アメリカ 音楽雑誌
NME ttps://www.nme.com/00000003079イギリス 音楽雑誌
FACT ttp://www.factmag.com/00000002029イギリス 音楽ニュースサイト
TED ttps://www.ted.com/13-42154725633アメリカ カンファレンス
Colossal ttp://www.thisiscolossal.com/13020003741アメリカ 芸術文化ニュースブログ
Artsy ttps://www.artsy.net/00100301455アメリカ 芸術ニュースオークション
DP Review ttps://www.dpreview.com/00000001040イギリス/アメリカ 写真ニュースサイト
Gizmodo ttps://gizmodo.com/0001-11129079アメリカ テクノロジーニュースサイト
CNET ttps://www.cnet.com/11000002501アメリカ テクノロジーニュースサイト
ZDNet ttps://www.zdnet.com/10111024483アメリカ テクノロジーニュースサイトCNET傘下
TechCrunch ttps://techcrunch.com/281013056594アメリカ テクノロジーニュースサイト
Phoronix ttps://www.phoronix.com/60931349453アメリカ ソフトウェアニュースサイト
LWN ttps://lwn.net/35010115164アメリカ ソフトウェアニュースサイト
Project Gutenberg ttps://www.gutenberg.org/00000001805アメリカ 電子図書館
Krebs on Security ttps://krebsonsecurity.com/0001030895アメリカ サイバーセキュリティブログ
Threatpost ttps://threatpost.com/11610342332アメリカ サイバーセキュリティニュースサイト
The Hacker News ttps://thehackernews.com/20200102104アメリカ サイバーセキュリティニュースサイト
Hacker News ttps://news.ycombinator.com/21-100-119063アメリカ ニュースアグリゲータ
Kickstarter ttps://www.kickstarter.com/20-413-1213303アメリカ クラウドファンディング
Khan Academy ttps://www.khanacademy.org/0000-2001357アメリカ オンライン教育
iFixit ttps://www.ifixit.com/20-101114524アメリカ 修理情報サイト
TripAdvisor ttps://www.tripadvisor.com/0000-10013096アメリカ 旅行情報サイト
PinkNews ttps://www.pinknews.co.uk/0000000233イギリス LGBTニュースサイト

2018-11-06

ソフトウェアテスト項目は仕様をもとに作るわけだけど

仕様: 入力値は整数

に対して

テスト項目: 入力値は整数であること

だと意味ないんだよ

入力と出力の関係で書かないと、テストのやりようが無いだろ

整数入力したらどうなるのか(正常終了)、整数以外を入力したらどうなるのか(エラーメッセージ)、それも仕様に書いてあるんだから、そっちをテスト項目にしないと。

ちょまどさん…ロールチェンジ!の誤解

https://next.rikunabi.com/journal/20181101_p01/

リクナビNEXTランキング上位に入り注目を集めているこの記事だが、その内容には致命的な誤りがある。

まず一つ目、DevRelの定義だ。

DevRel(デブレル)とは、Developer Relations (デベロッパーリレーションズ) の略で、テクノロジー提供するベンダーマイクロソフトGoogleなど)が、開発者と良好な関係を築くことを目的とするマーケティング活動である

「良好な関係を築く」というのは曖昧表現だが間違ってはいない。しか

「DevRelは、その名の通り、開発者との関係性が重要です。マイクロソフトデベロッパー分野の窓口として、皆さんの声を直接お聞きし、製品に活かしたりドキュメントを用意したりして、より生産的に開発できるよう働きかけることがミッションの一つです。つまり、DevRelとは、開発者の皆さんと『一緒に』創っていく人たちのことです」

これは違う。DevRelは活動であり人ではない。言い間違えたか書き起こしを間違えたのかも知らないが、これでは定義理解していないと思われても仕方ないし、最重要キーワードなのに矛盾した定義を見逃す編集者も謎だ。

二つ目はここだ。

英語のAdvocateには複数意味があるが、ここでは「鼓舞する人」という意味が一番近いだろう。

はてそんな意味はあっただろうか。安心と信頼のMerriam-Websterで調べてみよう。

https://www.merriam-webster.com/dictionary/advocate

Definition of advocate (Entry 1 of 2)

1 : one who pleads the cause of another

2 : one who defends or maintains a cause or proposal

3 : one who supports or promotes the interests of a cause or group

Definition of advocate (Entry 2 of 2)

transitive verb

: to support or argue for (a cause, policy, etc.) : to plead in favor of

intransitive verb

: to act as advocate for someone or something

名詞の方は、一つ目は「主義・主張を代弁する人」、二つ目は「主張や提案を弁護する人」、三つ目は「特定集団主義利益になるよう働きかける人」という意味だ。

鼓舞する人」というのはだいぶ意味合いが違う。鼓舞するならinspiratorとかになると想像がつきそうなものだが、なぜその意味が近いと思ったのだろうか。DevRelとアドボケイトは記事の肝心となるはずの言葉だが、どちらも説明に不備があっては話の筋が崩壊しかねない。

エバンジェリストからアドボケイトになったとのことだが、エバンジェリストについての記述も詰めが甘い。

しかし、1年後に組織変更があり、DXは2つの新設部署に分かれた。

(DX: デベロッパーエバンジェリズム統括本部)

https://twitter.com/ayatokura/status/1021190099747262464

今年度は国内では、マイクロソフトエバンジェリスト(西脇サン除く)という役職は消え、元同僚はソフトウェアエンジニアや別の役職へ転身するかたちに

まりその時点でエバンジェリストという肩書き消滅した。つまり

肩書きは一応『テクニカルエバンジェリスト』のまま残っていた

というのは公式のものではない。

CSEエバンジェリスト担当企業訪問し、必要に応じハンズオントレーニングを行い、そのあとは数日間部屋にこもって一緒に実プロダクトの開発を一気に進める。いわば担当企業向けの特別ハッカソン

したがって「CSEエバンジェリストが」というのも明らかに矛盾した表現であるインターネットミームにされたり詐称されたりして可哀想言葉だ(好きか嫌いかでいえば嫌いな言葉だが)。

DevRelやアドボケイトというのはそこまで普及していない言葉で、不思議に思っていた人も多いだろう。そんな中公開されたこ記事は、人々に誤解を植え付ける結果を招いた。

ま、ちょまどのファンアンチ写真ばかり見て内容は一文字も頭に入っていないのだろうが…

2018-11-05

Cisco Systemsの終わり

Cisco Systemsを知っているだろうか。スイッチとかアクセスポイントとかのネットワーク製品を手がける米国大企業だ。

実は日本でも企業向けのシェア50%近く、10年前から「もうCisco時代は終わる」と言われ続けていたがしぶとく残っている。

だが、そんなCiscoも今度こそ終わりを迎えそうだ。

発端となったのは一年前、Cisco製品ソフトウェアライセンスの新たな管理形態を発表した。

簡単に言うと、Cisco機械で動かすソフトウェアライセンスインターネット認証するというものだ。ちょうどWindows XPライセンス認証のように。

何が問題になるかというと、ネットワーク世界インターネットは極めて親和性が低いのだ。あまり想像がつかないと思うが、例えばスイッチルーターファイアウォールといった機械は、インターネット接続されていないことがままある。

例えば、データベースサーバー接続するスイッチセキュリティのためインターネットと直接接続しないというようなことは、割とどこでもやっている。なので、この馬鹿げたアイディアはすぐに撤回されるだろうといった予想が我々業界人感覚だった。

最近Ciscoは最も普及しているスイッチで、新しいライセンス形態のみをサポートするソフトウェアを発表した。

どんな影響が出るだろうか。まず、金融機関などのミッションクリティカル系がCiscoを使うのをやめる。金融は止めたときの影響が大きすぎて、わざわざインターネット接続してライセンス認証するより他の機械を入れたほうがリスクが少ないと判断される。

これを見て、多くのデータセンターCiscoを使うのをやめるだろう。なぜなら他のベンダ機械ミッションクリティカル系が使えるのであれば、わざわざCiscoを使う必要もないから。また、みんな高いCiscoを使うのを、本当はやめたがっている。

例えばCisco Systems製品が主にIAサーバーで動くとかなら、インターネット認証もやむ得ないだろう。でも、この会社はもともとハード屋だ。なぜ買ったものを動かすのに、インターネット認証必要なんだか理解に苦しむ。

資格のために百万単位で使った企業が失速するのは悲しいが、一度痛い目を見て目を冷ましてほしい。

2018-11-04

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

前回は、Webアプリの完成見本を先に見てみました。

今回は、Webアプリを作る途中の過程を見て、作る雰囲気を一緒に味わってみましょう。

 

フレームワーク使用ルール=「設定より規約」=手抜きをする仕組み

最近フレームワークは、「設定より規約」(CoC、convention over configuration)という発想で作られている。

フレームワーク規約使用ルール)に従うと、プログラマー作業量が減って、楽ができる。

 

設定より規約(convention over configuration)とは、開発者の決定すべきことを減少させ、単純にするが柔軟性は失わせないというソフトウェア設計パラダイム

使用しているツール実装した規約開発者の望む動作と一致していれば、設定ファイルを書く必要もない。実装規約と望みの動作が違っている場合必要動作を設定しなければならない。

 

最近フレームワークは「設定より規約アプローチ採用しているものが多い。

例えば、Ruby on Rails、Kohana、Grails、GrokZend FrameworkCakePHPSymfony などがある。

 

CodeIgniter使用ルール

CodeIgniter使用ルールは、マニュアルチュートリアル確認できる。

↑このページの「アプリケーションフローチャート」を見てみよう。

 

  1. 一番左の「index.php」が、Webアプリ入口になっている。(エントリーポイントフロントコントローラーパターン等ともいう)
  2. から2番目の上段「Routing」で、URLに応じて、仕事の振り分け先を決定する。(ディスパッチ、マッピングルーティング等ともいう)
  3. から4番目の「Application Controller」で、具体的な処理の指示を出す。
    1. Application Controllerは、「Model」に必要データを用意させる。
    2. Application Controllerは、「View」に表示用の画面を作らせる。
    3. Application Controllerが、index.phpに表示用の画面を渡す。
  4. 表示用の画面(最終的な処理の結果)を受け取った「index.php」は、ユーザーブラウザー)に画面を渡す。

 

 


 

それでは、CodeIgniterプログラマーが用意する部分のM(Model)とV(View)とC(Application Controller)を、骨組みから作ってみよう。

事前準備として、前々回と前回のWebアプリ完成見本を用意するところまでやっておこう。

 

スケルトンとは?

スケルトン(skeleton, 骨格)とは動物人間の骨格。

コンピュータプログラムコードの骨格部分。プログラムコード作成では、初期段階でスケルトン作成し、その後で詳細部分を肉付けしていく。

 

 

 

Application Controllerの骨組み

まずは、MVCのCの骨組みを作ろう。

Controllerは、ユーザーからリクエストを受け付けて、ModelViewに指示を出す監督です。

 

上記フォルダの中に「Welcome.php」というファイルを作る。(デフォルトであるはずなので、それを使ってOK

 

CodeIgniterルールで、Application Controllerを置く場所は「application/controllers」というフォルダになっている。

CodeIgniterルールで、一番最初に呼び出されるApplication Controllerは「Welcome.php」というファイルになっている。

→これは「C:\xampp\htdocs\waf\application\config\routes.php」という設定ファイルで決められている。

$route['default_controller'] = 'welcome'; // 別の名前にすれば変えられる。

 

「Welcome.php」の中身を以下にように変更する。

<?php

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

 

class Welcome extends CI_Controller

{

 // 初期画面

 public function index()

 {

  echo "Here is index()";

 }

 // 更新画面

 public function update()

 {

  echo "Here is update()";

 }

 // 削除画面

 public function delete()

 {

  echo "Here is delete()";

 }

}

これがチャットApplication Controllerとして動作する最小限の内容=骨格だ。

 

継承

class Welcome extends CI_Controller

という行に注目してみよう。

CodeIgniterで用意されてる「CI_Controller」クラス継承して、プログラマーが「Welcome」クラスを作ってる。

継承によって、フレームワークが用意してる様々な機能をWelcomeクラス内で使えるようになる。

 

URLリクエスト)とControllerの対応マッピング)のルール

「Welcome」クラスの中に、「index()」「update()」「delete()」という3つのメソッドを用意した。

CodeIgniterURLは、Action Controllerのクラス名やメソッド名とひもづけられている。

今回作るWebアプリだと、

「http://localhost/waf/クラス名/メソッド名」

という対応関係になっている。

(例)

http://localhost/waf/        →Welcomeクラスindex()メソッドが呼び出される。

http://localhost/waf/welcome/index  →Welcomeクラスindex()メソッドが呼び出される。

http://localhost/waf/welcome/update →Welcomeクラスのupdate()メソッドが呼び出される。

http://localhost/waf/welcome/delete →Welcomeクラスdelete()メソッドが呼び出される。

 

 

 

Viewの骨組み

次にMVCのVの骨組みを作ろう。

ビューは、表示する画面の部分です。HTMLWebページの構造を書きます

 

 

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>

 </body>

</html>

 

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>

 </body>

</html>

 

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>

 </body>

</html>

 

Viewファイルの追加に合わせて、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->helper('url');

 }

 

 // 初期画面

 public function index()

 {

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

 }

 

 // 更新画面

 public function update()

 {

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

 }

 

 // 削除画面

 public function delete()

 {

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

 }

}

 

(変更点の説明

コンストラクターの追加

コンストラクター「__construct()」は、クラスからインスタンスが作られるとき自動的に実行されるメソッドだ。コンストラクターは、初期化最初にやっておくべき下準備を書いておく。

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

CodeIgniterには、リンクの表示を補助する「URLヘルパー」という機能が用意されている。

上記のように書くとURLヘルパーを呼び出して、使えるようになる。

Viewファイルの以下の行でURLヘルパーを使っている。=「base_url()」という関数URLヘルパーの1つ。

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

 

ビュー読み込みメソッドの追加

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

というメソッドによって、Viewファイルの「welcome_index.php」を呼び出し、画面を出力します。

 

これでMVCのCとVの骨組みができた。

今の段階でWebブラウザーで各ページを表示させると、各Viewファイルの中身が表示される。

 

 

 

Modelの骨組み

次にMVCのMの骨組みを作ろう。

モデルは、具体的な処理内容(ロジック)を書いて、データを読み書きする部分です。

データベースを操作するSQL文もモデルに書きます

 

上記フォルダの中に「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();

 }

}

 

CodeIgniterで用意されてる「CI_Modelクラス継承して、プログラマーが「Chat_modelクラスを作ってる。

「Chat_modelクラスコンストラクターには、以下のように書いている。

$this->load->database();

これは、データベースを使用する準備だ。

 

Modelの追加に合わせて、さらに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');

 }

 

 // 初期画面

 public function index()

 {

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

 }

 

 // 更新画面

 public function update()

 {

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

 }

 

 // 削除画面

 public function delete()

 {

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

 }

}

 

コンストラクター

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

と書いて、「Chat_model」というモデルを読み込むようにした。

これで、モデルに用意するいろんな機能コントローラーで使えるようになる。

 

 

 

以上で、MVCの骨組み(スケルトン)だけを作成するプロセスを見ていきました。

まだ中身はスカスカで、何も機能がついてませんね。

次回は、データベースのCRUD操作を行なって、チャットメッセージを追加/取得/変更/削除する機能実装してみましょう。

 


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:20181024214737 増田プログラマー養成講座 コンテンツ一覧

2018-11-03

anond:20181103133949

ハードウェア周りはそうかもしれん。そもそも有利な場所だしな。

ソフトウェアも抜かれている感ある。

結局、アメリカIT産業保護した中国が残った。

経験からWeb系はやめとけ

ネット上のおいしそうな話には、とりあえず突っ込む性質もので、

ここ数年の

「未経験から年収〇〇万!」

私服イヤホンOKフレックス自由な働き方!」

というムーブメントにも、乗っかってみた。

この手の謳い文句は、間違いではないのだが、

一昔前の「※ただしイケメンに限る」のように、

あんまり真に受けてはいけないものだ。

Web系で仕事に就きたいなら、

プライベートを切り売りして作った成果物か、過去の実績がないといけない。

(そして、人に見せれるような成果物を作るのも、仕事で実績を作るのも、とてもとても大変。)

完全にポテンシャルで雇えるほど余裕があるところは、まだまだ少ない。

そもそもソフトウェアの開発は、構造的に新人お断り気質になるものなのだ、と思う。

凡人の寄せ集めより少数の優秀な開発者だ。

だとすると、

おいしい労働条件という人参をぶら下げ、世の若人を出口の見えない死地に誘うアフィリブロガーは、罪深い存在なのだろうか。

今思うのは、それも必要悪だということだ。

優秀な人間排出するには、多数の人間をふるいにかけるしかない。

新卒を大量に雇う大企業が、社内の出世レースでふるいにかけていくように、

Web系では、業界全体で生き残りレースを行いふるいにかけているのだ。

こんな残酷世界と知っていたら、安易に人を誘わなかった。

アフィリエイトブログの軽いノリで友人にペラペラ話していた自分が恥ずかしい。

まあ、そもそもこの世界自体残酷な方に進んでいる気はするが・・・

次の仕事、いつ決まるかなあ・・・

2018-11-02

得意なことに専念して自由貿易すればみんなハッピーって、得意なことがあること前提じゃないか

  1. ソフトウェアアメリカ
  2. 製造業中国アジア、高級品はアメリカ
  3. 科学技術の測定器はアメリカ
  4. 製造するための機械アメリカ
  5. 製造するためのソフトアメリカ
  6. 農業アメリカ中国
  7. 農業機器アメリカ



日本が輸出依存度が高いわけではないというが、輸出するものがないだけなのでは。

俺も勲章がほしい

どうすればもらえますか?

もう不惑を超えているので、新しいことに手を出さずに、いまの生活の延長でもらいたいです。

職業ソフトウェア技術者趣味映画見るのと料理

地域活動町内会PTA)はわりと積極的に参加しています

anond:20181102092916

パッケージ売りするソフトウェア各自治体用にカスタマイズして費用上乗せはどこでもやってる事だと思うけど、

無駄だってのは税金の話?カスタマイズ無しで使えれば安く導入できるのにみたいな?

2018-11-01

anond:20181101165020

平成30年10月31日を予定していたソフトB2サービスの終了は延期となりました。

ソフトウェア版B22019年3月31日(日)をもちましてサービス提供を終了いたします。

2018-10-31

ハードウェアに関する良質な記事って

ソフトウェアに比べて、圧倒的に少ないのなんでなん?

トランジスタとかFETの使い方とかさ。

コンピュータの基礎は、トランジスタなのに。

anond:20181031133037

ノートPCではFnと同時押しみたいな感じで押しやられてるキーは多い

そのうちDeleteFn+Backspaceみたいになるはず

現にスマホではDeleteの削除動作をするソフトウェア入力ボタンがない

1個だけだとアレだがInsとDelのペアでなら消せるかもしれん

[][]2018年10月30日火曜日の増減

サイト\日付2018-10-242018-10-252018-10-262018-10-272018-10-282018-10-292018-10-30合計説明
Nature ttps://www.nature.com/120292135763イギリス 科学学術
Science Magazine ttp://science.sciencemag.org/00019001529アメリカ 科学学術
Cell Press ttps://www.cell.com/01000002163アメリカ 生物学学術
Physical Review Letters ttps://journals.aps.org/0000000400アメリカ 物理学学術
Applied Physics Letters ttps://apl.aip.org/0000000231アメリカ 物理学学術
PNAS ttp://www.pnas.org/000-10002108アメリカ 科学学術
Wiley Online Library ttps://onlinelibrary.wiley.com20200203791アメリカ 科学学術
The Lancet ttps://www.thelancet.com/10008002299イギリス 医学学術
ScienceDirect ttps://www.sciencedirect.com/00000108687オランダ 学術誌、エルゼビア傘下
Taylor &amp; Francis ttps://www.tandfonline.com/0000000847イギリス 学術
PLOS ttp://journals.plos.org/0000100921アメリカ オープンアクセス科学学術
arXiv ttps://arxiv.org/296422725281アメリカ オープンアクセス科学学術
MDPI ttp://www.mdpi.com/0100000170スイス オープンアクセス学術
EurekAlert! ttps://www.eurekalert.org/808080711774アメリカ 科学ニュースサイト
PHYS.ORG ttps://phys.org/01000001619イギリス 科学ニュースサイト
Science Daily ttps://www.sciencedaily.com/00001003153アメリカ 科学ニュースサイト
IEEE Spectrum ttps://spectrum.ieee.org/00000001739アメリカ 科学雑誌
Scientific American ttps://www.scientificamerican.00010001859アメリカ 科学雑誌
Popular Mechanics ttps://www.popularmechanics.co0000000435アメリカ 科学技術雑誌
Ars Technica ttps://arstechnica.com/422401312757アメリカ テクノロジーニュースサイト
Smithsonian.com ttps://www.smithsonianmag.com/0100000477アメリカ 歴史科学芸術雑誌
NewScientist ttps://www.newscientist.com/00000003974イギリス 科学雑誌
MIT Technology Review ttps://www.technologyreview.co20100013395アメリカ テクノロジーニュースサイト
Stanford SOCIAL INNOVATION Review ttps://ssir.org/000000027アメリカ 社会科学雑誌
National Geographic ttps://news.nationalgeographic00000008543アメリカ 地理歴史科学雑誌
Entrepreneur ttps://www.entrepreneur.com00000011376アメリカ 経営ニュースサイト
Harvard Business Review ttps://hbr.org/20200201964アメリカ 経営雑誌
The National Interest ttp://nationalinterest.org/1000000288アメリカ 国際関係雑誌
RAND ttps://www.rand.org/0100000120アメリカ シンクタンク
Brookings ttps://www.brookings.edu/0000000317アメリカ シンクタンク
treehugger ttps://www.treehugger.com/00000001306アメリカ 環境ニュースブログ
World Nulcear News ttp://www.world-nuclear-news.o000000080イギリス 原子力ニュースサイト
Quantamagazine ttps://www.quantamagazine.org/0000000297アメリカ オンライン科学雑誌
ESPN ttp://www.espn.com/0010000267アメリカ スポーツ放送局
La Gazzetta dello Sport ttps://www.gazzetta.it/0000000256イタリア スポーツ新聞
FiveThirtyEight ttps://fivethirtyeight.com/0001000539アメリカ ABC傘下のスポーツ政治ブログ
WIRED ttps://www.wired.com/200001015083アメリカ テクノロジー文化雑誌
PC Magazine ttps://www.pcmag.com/0000000952アメリカ コンピュータ雑誌
The Register ttps://www.theregister.co.uk/04200216868イギリス テクノロジーニュースサイト
The Verge ttps://www.theverge.com/106171151417155アメリカ テクノロジーニュースサイト
Jane's 360 ttp://www.janes.com/0001000352イギリス 軍事ニュース雑誌
Defense News ttps://www.defensenews.com/0000000356アメリカ 軍事ニュースサイト
People ttps://people.com/0000000225アメリカ 芸能ニュース雑誌
Vogue ttps://www.vogue.com/0000000347アメリカ ファッション雑誌
Marie Claire ttps://www.marieclaire.com/000000064フランス/イギリス ファッション雑誌
billboard ttps://www.billboard.com/10100002378アメリカ 音楽雑誌
NME ttps://www.nme.com/00000003079イギリス 音楽雑誌
FACT ttp://www.factmag.com/00000002029イギリス 音楽ニュースサイト
TED ttps://www.ted.com/850-121225605アメリカ カンファレンス
Colossal ttp://www.thisiscolossal.com/10000123735アメリカ 芸術文化ニュースブログ
Artsy ttps://www.artsy.net/00018001451アメリカ 芸術ニュースオークション
DP Review ttps://www.dpreview.com/00000001040イギリス/アメリカ 写真ニュースサイト
Gizmodo ttps://gizmodo.com/000100129077アメリカ テクノロジーニュースサイト
CNET ttps://www.cnet.com/11010102499アメリカ テクノロジーニュースサイト
ZDNet ttps://www.zdnet.com/72311104477アメリカ テクノロジーニュースサイトCNET傘下
TechCrunch ttps://techcrunch.com/284301356579アメリカ テクノロジーニュースサイト
Phoronix ttps://www.phoronix.com/3303520139427アメリカ ソフトウェアニュースサイト
LWN ttps://lwn.net/20121105153アメリカ ソフトウェアニュースサイト
Project Gutenberg ttps://www.gutenberg.org/00-200001805アメリカ 電子図書館
Krebs on Security ttps://krebsonsecurity.com/0000000891アメリカ サイバーセキュリティブログ
Threatpost ttps://threatpost.com/13210232316アメリカ サイバーセキュリティニュースサイト
The Hacker News ttps://thehackernews.com/01000012099アメリカ サイバーセキュリティニュースサイト
Hacker News ttps://news.ycombinator.com/2-1020219061アメリカ ニュースアグリゲータ
Kickstarter ttps://www.kickstarter.com/6333141013300アメリカ クラウドファンディング
Khan Academy ttps://www.khanacademy.org/00000001359アメリカ オンライン教育
iFixit ttps://www.ifixit.com/10022014520アメリカ 修理情報サイト
TripAdvisor ttps://www.tripadvisor.com/001000013097アメリカ 旅行情報サイト
PinkNews ttps://www.pinknews.co.uk/0000000233イギリス LGBTニュースサイト

2018-10-28

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

前回は、データベース参考書を見た。

今回は、DBで使うプログラム言語SQL」の文法を見てみよう。

 

リレーショナル・データベース(Relational Database、RDB)とは?

WikipediaRDB説明を見てみよう。

関係データベース(relational database)は関係モデルにもとづいて設計、開発されるデータベースである

関係データベース管理するデータベース管理システム (DBMS) を関係データベース管理システム (RDBMS) と呼ぶ。

Oracle Database、Microsoft SQL Server、MySQLPostgreSQLDB2、FileMakerH2 Database などがRDBMSである

 

関係モデルIBMエドガー・F・コッドによって考案された現在もっとも広く用いられているデータモデルである

データベース利用者は、クエリ(問い掛け)をデータベースに与え、データ検索したり、変更することができる。

 

データは表に似た構造管理されるが、関係と呼ぶ概念モデル化される。

関係は組(タプル、表における行に相当する)、属性アトリビュート、表における列に相当する)、定義域(ドメイン)、候補キー(主キー)、外部キーなどによって構成される。

SQLなどに代表されるデータベース言語(問い合わせ言語)を用いて、関係に対して制限・射影・結合・和・差・交わりなどの関係代数演算(集合演算を含む)ないし関係論理演算を行うことで結果を取り出す。

関係複数持つことも可能で、互いを関連させることも可能である

要するに、

 

SQLとは?

WikipediaSQL説明も見てみよう。

SQLエスキューエル)は、関係データベース管理システム (RDBMS) において、データ操作定義を行うためのデータベース言語(問い合わせ言語)、ドメイン固有言語である

エドガー・F・コッドによって考案された関係データベース関係モデルにおける演算体系である関係代数関係論理関係計算)にある程度基づいている。

 

SQLは、シークェルと読まれることもある。

これは、SQLの元となったデータベース言語が、IBMが開発したRDBMSの実験実装であるSystem Rの操作言語SEQUEL (Structured English Query Language)」であったことが由来である

SEQUEL (Structured English Query Language)」を略して「SQL」と呼んだらしい。

 

  1. 質問する、尋ねる
  2. 問い合わせ[クエリー]を行う

英語クエリーは、質問する、問い合わせる、という意味なんだね。

 

SQL3分

SQL説明するとき、3つのグループに分類される。

 

↑このページをよく読んでくれ。理解できたらSQL説明は終わりだ!!!

 

 

 

…というと、説明することがなくなるので、ちょっとまとめておこう。

このページの「表1●SQLDDLDML,DCLの三つに大別できる。このうちプログラマが最も多く使うのはDMLだ」という図を見てみよう。

 

という3種類に分けてる。順番に見てみよう。

 

DDL(Data Definition Language:データ定義言語

データベーステーブル、ビュー、インデックスユーザーなどを作成/変更/削除するときに使うSQL

これでデータベースを使う準備ができる。

  • 「CREATE」…作成する。
  • ALTER」…変更する。
  • DROP」…削除する。

 

DML(Data Manipulation Language:データ操作言語

データ操作するときに使う。いわゆる「CRUD」のことで、SQLのうち、このDMLを覚えれば、とりあえずRDBは使えるようになる。

CRUD(クラッド)とは、ほとんど全てのコンピュータソフトウェアが持つ永続性の4つの基本機能イニシャルを並べた用語

その4つとは、Create(生成)、Read(読み取り)、Update(更新)、Delete(削除)である

ユーザインタフェースが備えるべき機能情報の参照/検索/更新)を指す用語としても使われる。

 

この中で一番活躍するのは、「SELECTコマンド命令文)だろう。

SELECTは、いろんな条件を付けてデータを絞り込む/加工することができて、便利なんだ。(Excelなどの表計算ソフトよりも高機能

 

JOIN(結合)

RDBは「リレーショナル」(関係)という冠言葉が付いてることからも分かるように、関係がある表と表をくっつけて、データを加工できる。

表と表をくっつける操作のことを「結合」という。

SQLでは「JOIN」というコマンドを使って表と表を結合できる。

↑このページにある丸と丸が重なった図を見てくれ。この図は「ベン図」といって包含関係を示す図だ。図を描いて塗りつぶせば、欲しい部分が分かりやすくなるだろう。

 

結合の種類

表と表のつなげ方には、何通りかパターンがあるよ。

  • 結合は、「内部結合」(INNNER JOIN)と「外部結合」(OUTER JOIN)の2種類に分類できる。
  • 外部結合はさらに、「左結合」(LEFT JOIN)と「右結合」(RIGHT JOIN)と「完全結合」(FULL JOIN)の3種類に分類できる。

 

内部結合は単純だ。外部結合はちょっとややこしい。

外部結合は「LEFT JOIN」の形がよく使われると思うので、まず最初にLEFT JOINの仕組みを理解すれば大丈夫だろう。

(LEFTの仕組みを基準にして、RIGHTやFULLとの相違点を意識すれば、表のつなぎ方を間違えにくい?)

 

DCL(DataControl Language:データ制御言語

トランザクション」は、データ更新に失敗したとき、元に戻せる機能だ。(安全装置

  • 「COMMIT」…更新処理の確定
  • 「ROLLBACK」…更新処理の破棄

 

言葉だけだと意味が分かりづらいと思う。

Google画像検索で「トランザクション」を検索して、分かりやすそうな図解を探してみよう。

↑このページの「図1 処理失敗による不整合の発生」を見てみよう。

 

銀行で口座間の送金を考えてみる。Aさんの口座からBさんの口座へ50万円送金したい。

  1. Aさんの口座から50万円減らす。
  2. Bさんの口座に50万円追加する。

この2つの処理が両方とも成功しないと、送金は失敗だ。(Aさんは送金できてないのに貯金が減ったら怒る。Bさんは送金されてないのに貯金が増えてラッキー!)

AとBの両方が成功したら更新処理を確定する。AとBのどちらか、または両方が失敗したら更新処理は破棄してなかったことにする。(やり直し!)

これがトランザクションだ。

 

クレーム対応難易度

ちょっと話がそれるけど、トラブルの重大さ=クレーム対応難易度について考えてみよう。

  1. 人身事故 …人命にかかわる事故は取り返しがつかない。文句も一番キツイ絶対ミスがあってはならない分野のシステム開発はなるべく避けよう。
  2. 金銭絡み …(命の次に)お金大事という人は多い。人は金の話になるとシビア文句も強烈だ。決済など金銭絡みのシステムでは、RDBトランザクションを使おう。
  3. 上記以外 …その他のクレームは、それほどハードではない。匿名掲示板とか、どうでもいいゴミ情報投稿されるシステムなら、トランザクションは使わなくてもOKだろうw

 

DB管理ツール

ここまで、SQLRDB操作する方法について話した。

RDBは、SQLコマンド操作するだけでなく、DB管理ツールを使って操作することもできる。

DB管理ツールについても知っておこう。

 

この講座では「phpMyAdmin」というDB管理ツールで「MySQL」を操作した。

他にも、Google検索で「DB 管理 ツール GUI」などで探してみよう。商用だけでなく無料でも便利なソフトがたくさんあるね。

 

など。

 

SQLパズルだ!

SQLを駆使すると、欲しいデータをホイホイ取り出せる。

SQLコマンドを組み立てる作業パズルのような要素もあるので、遊びだと思ってSQLに取り組んでみて欲しい。

SQL パズル」でGoogle検索すると、いろんなテクニックが紹介されているので、時間があったらチャレンジしてみよう!

 

SQLの話は、それだけで1冊の本になるぐらい広範だ。今回は、SQL概要説明するだけになってしまった。

SQLの詳細については、前回紹介した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:20181024214737 増田プログラマ養成講座 コンテンツ一覧

2018-10-25

GNUな人と社会問題について話した

GNUとは

詳細は「GNU」とググってもらえれば判ると思うが、正確性を担保せず説明するのであれば「リチャード・ストールマン氏が創設した自由ソフトウェアに関する考え方の1つ」だ。

ジョークとして「GNU宗教である」と語られるほど過激GNU信奉者もおり、GNUに関わる者達はGNU正当性社会へ発信し、そして社会へ貢献している。

GNU自由と密接に関わるため、しばしば左派思想と結び付けられる傾向にあり、そんな自由思想に染まるGNUな人と接触する機会を得たので日本社会問題を色々と感想を聞いてみた。

まりにも長くチャットでやりとりしたため会話形式で紹介すると増田では書き切れないので、GNUな人の意見抜粋する形で紹介したいと思う。

キズナアイはおおむね自由である

キズナアイライセンスGPLではない点について思うところはあるが、キズナアイの成り立ちや活動を見れば「キズナアイはおおむね自由である」と言うのがよくわかる。

キズナアイライセンスに則ることを前提におおむね自由な利用を保証しているため、開かれたキャラクタと言える。これは評価したい点だ。

キズナアイNHKに関わる今回の活動が生徒役に関する性役回り固定化の一つの現われだと見る向きもあるようだが、キズナアイはそれ以前から企業製品PRを受注し、視聴者キャンペーンをした実績に関してキズナアイを良しとしない層が無視しているのは正直なところ馬鹿馬鹿しいとすら感じる。

キズナアイ仕事であるとしても「この製品は良い」と紹介する、これはYoutuberではありがちなシチュエーションだと思われるが、見方を変えればキズナアイは明らかに先生役だ。

キズナアイは、女性は常に先生役に居なければならず生徒役をするなと言うことか?記憶しているフェミニズムの中には女性教育学権利の獲得などがあったはずだが記憶違いだったか

キズナアイが、彼女という一個性が行なったこれまでの実績を無視するのか。先生であった彼女の実績を無視ゼロとするとは中々突飛な考え方だと評価せざる得ない。

女性の実績は評価されなければならない。彼女の実績を無視をしてはいけない。キズナアイの実績を無視したのはどちらなのか?は火を見るより明らかだろう。彼女自由表現を今後も応援していきたい。

安倍政権評価できない

これは別に安倍政権擁護しているわけではない。

歴史学経済学社会学の常として現代では評価しにくい分野の一つだからだ。

個人の考えとして私自身が人間社会所属をすることを希求する。つまり人間社会存在しないと私は非常に困るのだ。

天賦人権ではあらゆる権利保障されている。生きる自由から他者を殺す自由まで、あらゆる自由保障されているのだ。

しか人間社会人間社会肯定するため、人間社会人間社会を維持するために他者を殺す自由を認めることが出来ない。

人間の天賦人権制限することによって人間社会は維持されるとの見方から人間社会への所属希求する私個人としては無制限自由を諦めざる得ない。

GNU人間社会存在が前提として成立するものであるGNU一種アナキズム(支配からの脱却)と見る向きもあるが、アナキズム人間社会否定するものではなく、特定支配者に管理されない人間社会希求する考え方だ。

この考えに則れば私は安倍政権否定するだろう。むしろ安倍政権でなくとも否定する。そしてこれはおそらく求められている答えではないはずだ。

おそらく安倍政権の良い部分、悪い部分をGNU視点評価せよという意図質問だったと思われるが、それはGNUの役目ではない。根本からGNUは「政権」を評価できないのだ。それは後世の歴史学経済学社会学の者へ任せたい。

AI人間社会を滅亡させるかも知れない

AIと言われると非常に範囲が広すぎて答えるのに窮するが、その答えは「AI人間社会を滅亡させるかも知れない」だ。

ただし、ここには前提があるものと考えている。それは「何らかの理由によって人類が滅亡することが確実視された際、人類を滅亡させる可能性のあるAIがそのワクチンとして機能する場合であると考えている。

難解なパラドックスへ陥いっているが、早い話が「人類を滅亡させる病原へ対抗できるワクチン存在するが、ワクチン副作用によって人類が滅亡する可能性がある」ということだと思って頂きたい。

我々人類は高い知能を獲得し道具を開発した。この道具は石器でも何でも良いが、この道具がおそらく「人類を滅亡させる病原へ対抗する人類を滅亡させる可能性のあるワクチン」だ。

人類歴史は道具によって生き延び、道具によって殺し合いをした歴史であり、可能性だけで言えばAIがその副作用あるワクチンポジションになることは否定できない。

義務教育を修めた者なら誰でも理解することだが、AIだけでなく電気だろうが、スマホであろうが何であれその可能性は持つのAIだけを槍玉に挙げるのは不公平とは言える。

GNUの信奉者、とりわけ私のような技術者は道具の可能性を信じて開発しているが、どこか頭の隅には道具の危険性を常に意識しているだろう。

技術者であるからこそ道具の開発がやめられないのは一部の道具の危険を訴える者達には少々申し訳なく思う。

原発を含む原子力技術の開発は続行すべき

原発を含む原子力技術の開発は現代日本で非常にセンシティブ問題である認識しているが、私個人として開発は続行すべきと考えている。

この件に関してはGNU信奉者の中でも意見が分かれると思うが、原子力技術を考えるのであれば反物質・反エネルギー存在原発を含む原子力技術の開発続行を推奨する理由となっている。

現段階では反物質・反エネルギーなどというものサイエンスを通り越してドリーム、人に寄ってはオカルトくらいの評価であると考えられるが、理論上は原発を含む原子力技術デメリットを吸収できる可能性がある。

すなわちデメリット反物質・反エネルギーによる対消滅へ期待しているのだが、当然ながら失敗すると宇宙全体が対消滅する可能性もあるため諸手を挙げた期待というほどでもない。

ただ、反物質・反エネルギー単体を考えると現在原発を含む原子力技術運用の応用の先に反物質・反エネルギー運用があると考えられるので、現段階で原発を含む原子力技術の開発・運用を停めることは些か早計のように感じる。

これも先に話したワクチンパラドックス一種だと思われるので、人に寄っては立ち位置が違うのではないかと思われる。

申し訳ありません

ここまで書いておいて文字数制限に引っ掛かるようなのでココまでにしておきます

個人的にはGNUの人は左派より左派らしく自分他人自由に関して強く意見を持っているのだなと感じた。

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 増田プログラマー養成講座 コンテンツ一覧

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