หัวข้อ การใช้มาร์กดาวน์เตรียมเอกสารนำเสนอ pptx logo on print
Markdown | HTML | Github/Markdown | Github.io | คำสำคัญ (Key)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
# การเขียนโปรแกรมพีเอชพี และจาวาสคริปต์
## PHP and Javascript Programming
### Thaiall.com/php/php7.htm 3(2-2-5)
### ปรับปรุง 16 สิงหาคม 2564
 
[Burin rujjanapan](http://www.facebook.com/ajburin)
 
---
 
# โฮมเพจที่เกี่ยวข้อง
 
- [โฮมเพจหลักประจำวิชา thaiall.com/php](http://www.thaiall.com/php)
- [โฮมเพจหลักประจำวิชา thaiall.com/php/php7.htm](http://www.thaiall.com/php/php7.htm)
- [http://www.thaiall.com/php/assignment.htm](http://www.thaiall.com/php/assignment.htm)
- [แฟ้ม phpjs_all.md](http://www.thaiall.com/md/phpjs_all.md)
- [เปิดในมุมมองเว็บของ phpjs_all.md](http://www.thaiall.com/md/phpjs_all)
- [Extension : Markdown Viewer for chrome](https://chrome.google.com/webstore/detail/markdown-viewer/ckkdlimhmcjmikdlpkmbgfkaikojcbjk/related?hl=en)
- **มาร์กดาวน์ (Markdown)** คือ รูปแบบภาษามาร์กอัปสำหรับแก้ไขหน้าเว็บ คิดค้นขึ้นโดย จอห์น กรูเบอร์ และ อารอน สวาร์ตซ
เป็นภาษาที่อนุญาตให้ผู้เขียนใช้รูปแบบการจัดเนื้อหาที่ง่ายต่อการอ่าน และง่ายต่อการเขียน
จากนั้นตัวภาษาจะแปลงคำสั่งเหล่านี้เป็นภาษาเอชทีเอ็มแอล (HTML)
ภาษามาร์คดาวน์ได้รับรูปแบบส่วนใหญ่มาจากรูปแบบการจัดการเนื้อหาที่ใช้ในอีเมลทั่วไป
 
---
 
# MD1 : markdown viewer extension
 
![ตัวอย่างการใช้ markdown viewer บน chrome](http://www.thaiall.com/md/markdown_viewer.png)
 
---
 
# MD2 : markdown viewer extension
 
```
1. Extension enable : Markdown Viewer
2. Address Bar : Click เลือก Extension : Markdown Viewer
3. Click : ADVANCED OPTIONS
4. Click : ALLOW ACCESS TO FILE:// URLS
5. Enable : Allow access to file URLs
6. Chrome : file:///D:/phpjs_all.md
```
 
---
 
# หน่วยที่ 1 ฟูลสแตก (Full Stack)
 
## ฟูลสแตก (Full stack)
## โปรแกรมเอดิเตอร์ (Editor)
## โปรแกรมบราวเซอร์ (Web Browser)
## การใช้สื่อสังคม (Social Media)
 
---
 
# ฟูลสแตก (Full stack)
 
- Web technology survey
- บริการของ Google Trends รองรับคำค้นไม่เกิน 5 คำ คือ บริการที่ช่วยเปรียบเทียบแนวโน้มตามคำค้น เช่น python , php , laravel , wordpress , react โดยมีการจัดเรียงความนิยมตามภูมิภาค (Region) หรือเมือง (City) แล้วยังเลือกช่วงเวลา (Time range) และตามกลุ่ม (Category) ได้ ซึ่งผลการเลือกกลุ่ม พบว่า อันดับเปลี่ยนไปอย่างชัดเจนเมื่อเปลี่ยนกลุ่ม เช่น ข้อมูลเมื่อต้นเดือนสิงหาคม 2564 พบว่า กลุ่ม All categories พบว่า Python ลดเล็กน้อย ส่วน PHP เพิ่มขึ้นชัดเจน กลุ่ม Internet & Telecom พบว่า Wordpress นำโด่ง และมีแนวโน้มเพิ่มขึ้น กลุ่ม Computers & Electronics พบว่า PHP ขึ้นมาแซง Python กลุ่ม Job & Education พบว่า Python นำโด่ง แต่ PHP ไล่ขึ้นพร้อมตัวอื่น กลุ่ม Science พบว่า PHP นำโด่ง แต่ Python มีแนวโน้มลดลง
 
```
แหล่งสำรวจแล้วจัดอันดับที่น่าสนใจ
```
 
---
 
# ฟูลสแตก (Full stack) - **Type of development**
 
1. ประยุกต์ใช้ (Application) เช่น database, network, ecommerce, elearning, social media
2. พัฒนาด้วยเครื่องมือ (No code) เช่น scratch, thunkable, mit app inventor
3. โค้ดดิ้ง (Coding) เช่น python, php, java, C#, javascript
 
- **No-Code / Low-Code Development Platform** - https://thegrowthmaster.com/blog/no-code-low-code-platform
 
---
 
# ฟูลสแตก (Full stack)
 
- โปรแกรม
 
```
Program : Browser (like using JavaScript, jQuery, Angular, or Vue)
Program : Server (like using PHP, ASP, Python, or Node)
Program : Database (like using SQL, SQLite, or MongoDB)
```
 
- Client Software (Front End)
- Server Software (Back End)
- Popular Stacks
 
```
LAMP stack: JavaScript - Linux - Apache - MySQL - PHP
LEMP stack: JavaScript - Linux - Nginx - MySQL - PHP
MEAN stack: JavaScript - MongoDB - Express - AngularJS - Node.js
Django stack: JavaScript - Python - Django - MySQL
Ruby on Rails: JavaScript - Ruby - SQLite - Rails
```
 
- อ่านเพิ่ม [webserver](http://www.thaiall.com/omni/indexo.html)
- อ่านเพิ่ม [w3schools.com](https://www.w3schools.com/whatis/whatis_fullstack.asp)
 
---
 
# ฟูลสแตก (Full stack)
 
- Basic Javascript , Javascript Library , Embeded
- CSS
- OS : DOS, Windows , Linux
- Programming , Processing
- Database (SQL , NoSQL , JSON , XML , CSV , TXT)
- Network , Router , Switch , Design
- Office , Word , Excel , Powerpoint , Access
- Multimedia , Youtube channel , Photoshop , Pagemaker
 
---
 
# ฟูลสแตก (Full stack)
 
- Tools , Editor , Application
- UX/UI , Research
- Responsive Web Design
- Mobile , Desktop, Virtual Device
- Device , IoT
- Security
- Version Controller
- Platform
- Framework
- Portfolio , Award , Training , Certification
- Social Media , Group , Line
- E-Commerce , E-Learning , MOOC , Adsense
- Content , Blog , Wordpress , Blogger , CMS
- **No-Code / Low-Code Development Platform** - https://thegrowthmaster.com/blog/no-code-low-code-platform
 
---
 
# ฟูลสแตก (Full stack) : PHP Manual
 
**เอกสารสำหรับผู้เริ่มต้น เป็นคู่มือแบบที่พบใน php.net**
 
- แฟ้มขนาด 12 MB เปิดด้วย Browser เอกสาร HTML + Image
- http://th.php.net/get/php_manual_en.tar.gz/from/a/mirror
 
**เอกสารสำหรับมืออาชีพ**
 
- แฟ้มขนาด 3.5 MB เป็น PDF
- รวบรวมจาก Stack Overflow เพื่อการศึกษา
- [phpnotesforprofessionals.pdf](http://books.goalkicker.com/PHPBook)
- [HTML](https://goalkicker.com/HTML5Book/)
- [Javascript](https://goalkicker.com/JavaScriptBook/)
- [JQuery](https://goalkicker.com/jQueryBook/)
- [MySQL](https://goalkicker.com/MySQLBook/)
 
---
 
# นิยามศัพท์ (Technical Terms)
 
- *ภาษาเฮชทีเอ็มแอล (HTML = HyperText Markup Language)* คือ ภาษาคอมพิวเตอร์ที่ออกแบบมาเพื่อใช้ในการสร้างเว็บเพจที่เรียกดูผ่านทางเว็บเบราว์เซอร์ (Web Browser) เริ่มพัฒนาโดย ทิม เบอร์เนอรส์ ลี (Tim Berners Lee) ในปัจจุบัน HTML ล่าสุดคือ รุ่น 5 เป็นมาตรฐานหนึ่งของ ISO ซึ่งจัดการโดย World Wide Web Consortium (W3C) ในปัจจุบัน ทาง W3C ผลักดัน รูปแบบของ HTML แบบใหม่ ที่เรียกว่า XHTML รุ่นแรกคือ 1.0 (ม.ค.2543) ซึ่งมีโครงสร้างเป็นแบบ XML (eXtensible Markup Language)
- อ่านเพิ่ม [HTML](http://www.thaiall.com/html/indexo.html)
- *ภาษาจาวาสคริปต์ (JavaScript Language)* คือ ภาษาโปรแกรมที่มีโครงสร้างคล้ายภาษาซี ทำหน้าที่แปลความหมาย และดำเนินการทีละคำสั่ง ภาษานี้มีชื่อเดิมว่า LiveScript ถูกพัฒนาโดย Netscape Navigator เพื่อช่วยให้เว็บเพจสามารถแสดงเนื้อหา ที่มีการเปลี่ยนแปลงได้ ตามเงื่อนไข หรือสภาพแวดล้อมที่แตกต่างกัน หรือโต้ตอบกับผู้ใช้ได้มากขึ้น เพราะภาษา HTML ที่เป็นภาษาพื้นฐานของเว็บเพจ ทำได้เพียงแสดงข้อมูลแบบคงที่ (Static Display)
- *ภาษาจาวา (Java Language)* คือ ภาษาคอมพิวเตอร์ที่ถูกพัฒนาขึ้นโดยบริษัท ซันไมโครซิสเต็มส์ เป็นภาษาสำหรับเขียนโปรแกรมที่สนับสนุนการเขียนโปรแกรมเชิงวัตถุ (OOP : Object-Oriented Programming) โปรแกรมที่เขียนขึ้นถูกสร้างภายในคลาส ดังนั้นคลาสคือที่เก็บเมทอด (Method) หรือพฤติกรรม (Behavior) ซึ่งมีสถานะ (State) และรูปพรรณ (Identity) ประจำพฤติกรรม (Behavior)
- อ่านเพิ่ม [Javascript](http://www.thaiall.com/java/indexo.html)
- *จาวา (Java)* คือ ภาษาการโปรแกรม ถูกพัฒนาโดยบริษัทซันไมโครซิสเท็ม และเปิดตัวในปีพ.ศ. 2538 และขายให้บริษัท Oracle ในพ.ศ.2552 โปรแกรมที่นำไปใช้ได้จะถูกแปลให้อยู่ในรูปของไบท์โค้ด เมื่อนำไปประมวลผลจะมีตัวแปลภาษาที่ทำให้ไบท์โค้ดสามารถทำงานได้ในแต่ละอุปกรณ์ ซึ่งถูกนำไปใช้อย่างแพร่หลายสำหรับการพัฒนาเว็บ รูปแบบมีรากฐานจากภาษา C และ C++ แล้วยังเป็นภาษาที่ง่ายต่อการออกแบบโปรแกรมเชิงวัตถุ และเป็นภาษาหลักสำหรับพัฒนาแอพพลิเคชั่นบน Android OS ที่นิยมใช้บน TabletPC หรือ SmartPhone
- อ่านเพิ่ม [Java](http://www.thaiall.com/class/indexo.html)
- *CSS (Cascading Style Sheets)* คือ ภาษาคอมพิวเตอร์สำหรับกำหนดรูปแบบในเอกสาร HTML หรือเรียกว่า สไตล์ชีต ที่ใช้กำหนดรูปแบบ (Layout) สีสัน สีพื้น ตัวอักษร การจัดวาง ระยะห่าง เส้นขอบ เป็นต้น มีรูปแบบ Syntax เฉพาะตัว ได้รับการกำหนดมาตรฐานโดย W3C การใช้ CSS มี 3 แบบ คือ Inline, Internal และ External CSS
- อ่านเพิ่ม [ความแตกต่างของ ID และ Class ใน CSS](http://www.thaiall.com/java/indexo.html)
- อ่านเพิ่ม [ตัวอย่าง CSS](http://www.thaiall.com/html5/table.htm)
 
---
 
# นิยามศัพท์ (Technical Terms)
 
- *เฟรมเวิร์ค (Framework)* คือ ชุดคำสั่ง เครื่องมือ โครงสร้าง ต้นแบบพื้นฐาน ที่ถูกสร้างมารองรับการทำงาน เพื่ออำนวยความสะดวกแก่ผู้ใช้งาน แทนที่จะสร้างเองก็มีเครื่องมือที่พร้อมใช้ ช่วยให้พัฒนาระบบได้เร็ว และง่ายขึ้น แต่ขนาดโปรแกรมจะมีขนาดใหญ่ ต้องศึกษาฟังก์ชัน และใช้คุณสมบัติได้เท่าที่มี อาทิ Laravel เป็น Web application framework ส่วน Angular และ React Native เป็น Framework แบบ Cross Platform Technology
- *แพลตฟอร์ม (Platform)*  คือ การทํางานร่วมกันของฮาร์ดแวร์ หรือซอฟต์แวร์ อาจเป็นระบบปฏิบัติการ สถาปัตยกรรมคอมพิวเตอร์ เช่น ไมโครซอฟท์วินโดวส์ แมคโอเอสเอ็กซ์ หรือแอนดรอย
- *ครอสแพลตฟอร์ม (Cross Platform)* คือ การรองรับให้โปรแกรมคอมพิวเตอร์ ภาษาโปรแกรม ระบบปฏิบัติการ หรือ ซอฟต์แวร์ สามารถทำงานได้บนหลายแพลตฟอร์ม เช่น บนไมโครซอฟท์วินโดวส์ บนแมคโอเอสเอ็กซ์ บนลีนุกซ์ บนแอนดรอย และบนเพาเวอร์พีซี
 
 
---
 
# นิยามศัพท์ (Technical Terms) : TOP
 
- ** Top 20 Front-end**
- https://www.techtic.com/blog/top-mobile-app-development-frameworks/
1) React Native
2) Framework7
3) Flutter
4) NativeScript
5) Meteor
6) JQuery
7) CocoaTouch
8) Xamarin
9) Swiftic
10) Ionic
11) Sencha Ext JS
12) Apache Cordova
13) Onsen UI
14) Corona SDK
15) Monaca
16) Mobile Angular UI
17) Appcelerator Titanium
18) Uno
19) Ktor
20) Aurelia
 
- ** Top 10 Web Frameworks**
- https://www.monocubed.com/10-most-popular-web-frameworks/
1) Ruby on Rails (Ruby)
2) Laravel (PHP)
3) Django (Python)
4) ASP.NET (C#)
5) Express (JavaScript)
6) Spring (Java)
7) Angular (JavaScript)
8) Ember (JavaScript)
9) Meteor (JavaScript)
10) Vue (JavaScript)
 
---
 
# นิยามศัพท์ (Technical Terms)
 
- *Blockly* คือ เครื่องมือพัฒนาโปรแกรมแบบวิชวล (Visual) โดยใช้สัญลักษณ์ภาพแบบจิ๊กซอล แทนคำสั่งมาเรียงต่อกันตามเงื่อนไขที่ต้องการ พัฒนาโดย google for education แล้วเปิดให้ทดลองใช้ (Try Blockly) บนเว็บของกูเกิ้ล หรือนักพัฒนาจะดาวน์โหลดไปติดตั้งบน website ของตนเอง เพื่อพัฒนาต่อยอดได้ ในเครื่องมีอนี้มีกลุ่มของสัญลักษณ์ที่ประกอบด้วย Logic, Loops, Math, Text, Lists, Colour, Variables, Functions
- *Focus* คือ จุดรวมแสง [แล้วท่าน Focus เรื่องอะไรอยู่](http://www.thaiall.com/futureclassroom/)
 
---
 
# นิยามศัพท์ (Technical Terms)
 
- *Data type* คือ ชนิดข้อมูลเป็นสิ่งจำเป็นพื้นฐานที่จะต้องกำหนดให้ถูกต้องกับความต้องการใช้งาน เพื่อให้ทำงานได้ตามวัตถุประสงค์ และมีประสิทธิภาพ ซึ่งภาษาโปรแกรมแต่ละภาษามีชนิดข้อมูลของตนเอง ระบบฐานข้อมูลจะมีชนิดข้อมูลที่หลากหลายรองรับการทำงานของภาษาต่าง ๆ การเลือกใช้ต้องพิจารณาวัตถุประสงค์และประสิทธิภาพในการใช้งาน เช่น เงินเดือนที่เก็บทศนิยม มักใช้ float สถานะ มักใช้ boolean ชื่อสกุล มักใช้ varchar เลขประจำตัว มักใช้ int เป็นต้น
- *การแบ่งลำดับชั้นของการจัดการข้อมูล*
 
1. บิต (Bit) คือ หน่วยข้อมูลที่เล็กที่สุดในลำดับชั้นข้อมูล เพื่อใช้จัดเก็บข้อมูลในระบบคอมพิวเตอร์ ซึ่งเป็นเลขฐานสอง ที่มี 2 สถานะคือ 0 หรือ 1
2. ไบต์ (Byte) คือ กลุ่มของข้อมูลที่นำบิตมาเรียงต่อกันจำนวน 8 บิตเป็น 1 ไบต์ เพื่อใช้แทนรหัสข้อมูลหรืออักขระ ซึ่งเป็นตัวเลข ตัวอักษร หรือสัญลักษณ์ ใช้แทนข้อมูลต่างกันได้ 256 ตัว เช่น 10100001 คือ ก หรือ 10100010 คือ ข
3. ฟิลด์ (Field) หรือ เขตข้อมูล คือ กลุ่มของอักขระหรือไบต์จำนวนหลายไบต์มาเรียงต่อกัน เป็นข้อความ ข้อมูล ตัวเลข เพื่อให้เกิดความหมายเฉพาะ เช่น เขตข้อมูลรหัส ชื่อ สกุล ที่อยู่ เบอร์โทรศัพท์ เพศ อายุ เงินเดือน
4. เรคอร์ด (Record) หรือ ระเบียน คือ กลุ่มของเขตข้อมูลที่มีความสัมพันธ์กันรวมกันอย่างมีความหมายในแต่ละรายการ เช่น ระเบียนของพนักงานคนที่ 1 ที่ประกอบด้วย เขตข้อมูลรหัส ชื่อ สกุล ที่อยู่ เบอร์โทรศัพท์ เพศ อายุ เงินเดือน หากมีพนักงาน 100 คนก็จะมีข้อมูล 100 ระเบียน
5. ไฟล์ (File) คือ กลุ่มของระเบียนข้อมูลที่มีความสัมพันธ์กันจัดเก็บรวมกัน ซึ่งแต่ละไฟล์จะมีความสมบูรณ์ในแต่ละไฟล์และมีคีย์หลักที่ทำให้แต่ละรายการมีความเฉพาะตนแตกต่างกันไป เช่น ไฟล์พนักงาน ไฟล์ลูกค้า ไฟล์สินค้า ไฟล์สั่งซื้อ
6. ฐานข้อมูล (Database) คือ กลุ่มของไฟล์ที่มีความสัมพันธ์กันเชื่อมโยงผ่านคีย์หลักในแต่ละไฟล์ เป็นกลุ่มไฟล์สำหรับเรื่องนั้น เช่น ฐานข้อมูลธนาคาร ฐานข้อมูลร้านค้า ฐานข้อมูลพนักงาน ฐานข้อมูลโรงเรียน
 
- [datatype](http://www.thaiall.com/tc/datatype.htm)
 
---
 
# องค์ประกอบของ e-Learning
 
1. เนื้อหาบทเรียน(Content)  การจัดการเรียนการสอน ต้องมีเนื้อหาที่จะสอน ซึ่งเนื้อหาในระดับอุดมศึกษาที่ถูกมองว่าเป็นตลาดวิชา ที่ผู้เรียนสามารถเลือกเรียนได้อย่างหลากหลาย ไม่ถูกบังคับแบบหลักสูตรในระดับมัธยมศึกษา แต่ระดับอุดมศึกษามีกรอบมาตรฐานที่ถูกแบ่งเป็นระดับ ซึ่งทุกหลักสูตรต้องเริ่มจากผู้ทรงคุณวุฒิร่วมกันจัดทำให้มี มคอ.1 คือ มาตรฐานคุณวุฒิสาขาสำหรับในประเทศไทย มคอ.2 คือ เนื้อหารายละเอียดของหลักสูตรในสถาบันนั้น มคอ.3 คือ รายละเอียดของรายวิชานั้น เช่น ชื่อวิชา จำนวนหน่วยกิต คำอธิบายรายวิชา จุดดำจุดขาว แผนการสอนรายสัปดาห์รวมสิบห้าสัปดาห์ การวัดผล เอกสารประกอบการสอน เครื่องมือ และอุปกรณ์ที่ต้องใช้
 2. ระบบการบริหารการเรียน (LMS : Learning Management System) ระบบที่เปิดให้ผู้สอน และผู้เรียนมาพบกันแบบออนไลน์ โดยมีผู้ดูแลระบบช่วยสนับสนุนและควบคุมความเรียบร้อยภายในระบบ ทำให้ผู้สอนสามารถจัดการเรียนการสอนและวัดผลผู้เรียนรายบุคคลได้ เริ่มจากผู้สอนเข้ามากำหนดเนื้อหาแบ่งเป็นรายหัวข้อหรือสัปดาห์ อัพโหลดสื่อเอกสาร ภาพ คลิปวิดีโอ คลิปเสียงที่ผู้เรียนต้องใช้ในการเรียนรู้ สร้างข้อสอบเพื่อใช้วัดประเมินผลผู้เรียน กำหนดกิจกรรมการเรียนการสอน งานมอบหมาย การส่งงานการบ้าน การสอบย่อย การทดสอบก่อนเรียนหลังเรียน การสื่อสารรายบุคคล และรายกลุ่ม ซึ่งระบบอีเลินนิ่งที่ใช้กันมากในไทย คือ classstart.org ส่วน Open source ที่ถูกใช้กันทั่วโลก คือ มูเดิล (Moodle)
3. การติดต่อสื่อสาร (Communication) การติดต่อสื่อสารระหว่างผู้สอนและผู้เรียนในระบบอีเลินนิ่งมีทั้งแบบสองทาง และทางเดียว ถ้าเป็นแบบทางเดียวก็จะใช้เว็บบอร์ด แชทรูม หรือการให้ความคิดเห็นย้อนกลับ (Feedback) หรือส่งข้อความรายบุคคล เมื่อมีการส่งการบ้าน งานมอบหมาย ถ้าเป็นแบบสองทางก็เป็นการสอนสด หรือประชุมออนไลน์ ซึ่งมีโปรแกรมสนับสนุนมากมาย เช่น zoom, meet, webex, yealink, facebook live
4. การสอบหรือการประเมินผล (Evaluation) การประเมินผลด้วยการสอบ มีทั้งแบบปรนัย อัตนัย และสอบปฏิบัติ ซึ่งข้อสอบแบบสร้างสรรค์สามารถให้ทำแบบ Take home , Project, Research, Development ได้ ส่วนการใช้ข้อสอบกลางที่มีประเด็นเรื่องการควบคุมการสอบให้ทุกคนใช้เวลาและทรัพยากรที่เท่าเทียมกัน มีทั้งแบบที่เปิดให้ผู้เรียนควบคุมตัวเอง ฝึกรับผิดชอบตนเองแต่อยู่ในเวลาที่กำหนด และแบบจัดคุมสอบผ่านการเปิด sound และ webcam ของผู้เข้าสอบรายบุคคลในขณะสอบออนไลน์ ซึ่งข้อสอบแบบปรนัยจะสะดวกทุกฝ่ายสามารถเลือกแบบเฉลยพร้อมแจ้งผลคะแนนทันที หรือดาวน์โหลดมาตรวจภายหลัง ส่วนแบบอัตนัยนั้นมีทั้งแบบพิมพ์เข้าไปในระบบ หรือเขียนลงเอกสารแล้วถ่ายภาพคำตอบ แล้วอัพโหลดส่งเข้าไปในระบบ ซึ่งผลการสอบนั้นอาจกำหนดให้เข้ามาเรียนในระบบซ้ำแล้วซ้ำอีกจนกว่าจะผ่านการทดสอบ หรือการลงทะเบียนใหม่แล้วเริ่มต้นบทที่หนึ่งใหม่ ซึ่งนโยบายการสอบจะมีความหลากหลายขึ้นกับการบริหารจัดการในแต่ละสถาบัน
 
---
 
# องค์ประกอบของระบบอีคอมเมิร์ซ
 
1. สินค้า (Product) คือ สิ่งแรกที่ต้องมีและเป็นองค์ประกอบที่สำคัญที่จะทำให้ธุรกิจประสบความสำเร็จ เพราะสินค้าที่เป็นความต้องการของผู้ซื้อและสังคม ย่อมขายได้ง่าย มีราคาสูง ดังนั้นผู้ประกอบธุรกิจจึงต้องศึกษา ค้นคว้า ผลิตสินค้าจากการพัฒนาเชิงนวัตกรรม เพื่อให้ได้สินค้าที่ดีมีคุณภาพออกสู่ตลาด แต่ถ้าสินค้ามีดีเฉพาะในมุมมองของผู้ขายเพียงฝ่ายเดียว ไม่ใช่สิ่งที่ลูกค้ากลุ่มเป้าหมายต้องการ สิ่งนั้นอาจขายไม่ได้ การประกอบธุรกิจก็จะไม่บรรลุเป้าหมายตามแผนที่วางไว้
2. เว็บไซต์ (Website) ช่องทางการจัดจำหน่ายที่แต่เดิมนั้น ต้องมีหน้าร้านอยู่ในทำเลที่ดี ในห้างสรรพสินค้า ในตลาดสด หรือทำเลทองกลางใจเมือง จึงจะขายสินค้าให้กลุ่มลูกค้าในบริเวณนั้นได้ แต่ปัจจุบันผู้ขายสามารถเปิดหน้าร้านออนไลน์ ที่ลูกค้าคือผู้ใช้อินเทอร์เน็ตจากทั่วโลก สามารถเข้าถึงและสั่งซื้อได้จากทุกที่ ทุกเวลา ดังนั้นข้อมูลสินค้าที่มีมากเพียงพอ มีช่องทางหลากหลาย ทั้งในสื่อสังคม เว็บไซต์ ระบบอีคอมเมอร์ซ โทรศัพท์ แชท หรือไลฟ์สด ที่สร้างความน่าเชื่อถือ สดใหม่ ย้อนไปอ่านความคิดเห็นชื่นชม (Review) ของลูกค้าเก่าได้ จะช่วยให้ลูกค้าใหม่ตัดสินใจได้ง่าย ซึ่งผู้จำหน่ายสินค้าในปัจจุบันจะพยายามใช้ทุกช่องทางที่เป็นไปได้ อาจมีทั้งร้านค้าออฟไลน์และออนไลน์ไปพร้อมกัน
3. การโฆษณาประชาสัมพันธ์ (Promote/Advertising) การทำให้ลูกค้าได้รู้จักสินค้าและบริการมีวิธีการอยู่มากมาย อาทิ ติดป้ายไวนิล ป้ายบิวบอร์ดตามมุมถนน ติดป้ายบนรถไฟฟ้า ยืนแจกใบปลิวตามมุมถนน ลงโฆษณาทั้งทางตรงหรือแอบแฝงไปกับหนังสือพิมพ์ นิตยสาร วิทยุ โทรทัศน์ หรือผ่าน Net Idol, Influencer การโฆษณากับ facebook, google, youtube หรือจ้างบริษัทที่ปรึกษามาวางแผนโฆษณาประชาสัมพันธ์เป็นวิธีการที่ส่งข้อมูลสินค้าถึงกลุ่มเป้าหมายอย่างได้ผล
4. ลูกค้า (Customer) ลูกค้าคือใคร เป็นคำถามที่สำคัญที่สุดในการทำธุรกิจ แม้จะเปิดหน้าร้านก็ต้องเปิดให้ใกล้กับกลุ่มลูกค้าที่จะมาใช้บริการ เช่น หน้าโรงงาน ข้างโรงเรียน หรือติดกับส่วนราชการ ถ้าเปิดขายผ่านระบบอีคอมเมอร์ซ หรือสื่อสังคม ก็ต้องทราบว่าลูกค้าจะเข้าถึงสินค้าได้อย่างไร อาจโพสต์ขายสินค้าตามกลุ่มที่สัมพันธ์กับสินค้า อาจต้องจ่ายเงินค่าโฆษณาสินค้าที่ต้องกำหนดอายุ เพศ ประเทศ และช่วงเวลาที่ลูกค้าจะได้เห็นโฆษณา เช่น ขายชุดว่ายน้ำสตรีก็ควรเลือกเพศหญิง อายุไม่น้อยและไม่มากเกินไป
5. การชำระเงิน (Payment) ทั้งหน้าร้านออนไลน์ และหน้าร้านออฟไลน์ต้องสามารถรับชำระค่าสินค้าจากลูกค้าได้หลายวิธี เช่น ร้านกาแฟรับชำระจากโครงการคนละครึ่ง เปิดร้านขายของชำก็ต้องรับชำระจากบัตรสวัสดิการแห่งรัฐ รับบัตรเครดิต บัตรเดบิต รับโอนเงินจากแอปพลิเคชัน ขายของออนไลน์ก็ต้องเชื่อมกับระบบรับชำระเงินที่บริการโดยสถาบันการเงิน พบว่าบางธุรกิจเปิดรับชำระค่าสินค้าด้วยเงินคริปโต
6. การขนส่ง (Logistic) เดิมระบบขนส่งสินค้ามีเพียงบริษัทขนส่งเพียงไม่กี่ราย เช่น บริษัทไปรษณีย์ไทย รถทัวร์ รถไฟ หรือบริษัทขนส่งดั่งเดิม ปัจจุบันมีระบบขนส่งสินค้าเอกชนในประเทศมากมายที่เติบโตอย่างรวดเร็ว เช่น Kerry Express, Flash Express, J&T, Nim Express และมีบริการเสริมที่เกิดขึ้นอีกมาก อาทิ รับสินค้าถึงบ้าน, Dropship, Dropoff หรือ COD ซึ่งการซื้อขายสินค้าจากต่างประเทศมีบริษัทให้บริการแบบ B2B โดยเฉพาะสั่งซื้อสินค้าจากจีนผ่านระบบคลังสินค้า เช่น Ttpcargo.com ที่มีบริการควบวงจร
7. ผู้ดูแล (Administrator) การเชื่อมองค์ประกอบทุกอย่างเข้ามาเป็นระบบ เพื่ออำนวยความสะดวกให้กับผู้ซื้อ ผู้ขาย บริษัทขนส่ง สถาบันการเงิน และคลังสินค้า จำเป็นต้องมีผู้ดูแลระบบที่มีความรู้ ความเข้าใจ และความชำนาญมาพัฒนาระบบเทคโนโลยี ทั้งด้านระบบฐานข้อมูล การเขียนโค้ด เครื่องบริการ ระบบเครือข่าย และเทคโนโลยีสมัยใหม่ เพื่อให้ระบบขับเคลื่อนอัตโนมัติมากที่สุด ซึ่งแบ่งตามลักษณะการพัฒนาระบบได้หลายแบบ ได้แก่ 1) ระบบในองค์กรที่พัฒนาแบบ in house development เช่น บริษัทรถยนต์ บริษัทอหังสาริมทรัพย์ สนามกอล์ฟ ระบบมหาวิทยาลัย 2) ระบบสำเร็จรูปที่ใช้ร่วมกันทั่วโลก เช่น Amazon, Ebay, Alibaba, Lazada, Shopee, Google play, Play store เป็นต้น 3) ระบบเอาท์ซอร์ทมีตัวอย่างระบบจัดการร้านค้าออนไลน์ของไทย เช่น fillgoods.co หรือ ifelse.co หรือ Software house เป็นต้น หรือ 4) ระบบโอเพนท์ซอร์ท เช่น Woocommerce บน Wordpress หรือ Virtualmart บน Joomla หรือ Bagisto บน Laravel เป็นต้น
 
---
 
# โปรแกรมเอดิเตอร์ (Editor)
 
- *Editor* คือ โปรแกรมสำหรับสร้าง และปรับปรุงแก้ไขรหัสต้นฉบับ หรือแฟ้มอักขระ สำหรับเขียนโปรแกรม หรือข้อความ หรือจัดการข้อมูล ก่อนนำไปใช้ประมวลผลในโปรแกรมอื่น เช่น excel หรือใช้กับตัวแปลภาษาที่ต้องการ เช่น php, java, python, html
- *Regular expression* คือ แพรทเทิร์นสำหรับค้นหา ส่วน Wildcards คือ สัญลักษณ์ตัวแทน ใน DOS เช่น * หรือ ? ซึ่งการใช้ทำ Data Cleansing เพื่อเตรียมข้อมูลในรูปแบบที่ต้องการ ก็ทำได้ง่ายเมื่อใช้การค้นหาและแทนที่ด้วย Regular Expression เพื่อเปลี่ยนรูปแบบข้อมูลในเบื้องต้น
- อ่านเพิ่ม [java script](http://www.thaiall.com/java/js01.htm)
- อ่านเพิ่ม [atom](http://www.thaiall.com/atom/)
- อ่านเพิ่ม [sublime](http://www.thaiall.com/sublime)
- อ่านเพิ่ม [vs code](http://www.thaiall.com/vscode/)
- echo, notepad, wordpad (.rft)
 
---
 
# ผลสำรวจ editor พบ sublime, notepad++, vim, atom, emacs
 
![Notepad++ เป็น free editor ที่ได้รับความนิยม](http://www.thaiall.com/blog/wp-content/uploads/2017/02/notepadplusplus.png)
 
---
 
# การ find & replace และใช้ regex บน vscode
 
![การแทนที่ข้อความด้วย regex](http://www.thaiall.com/vscode/regex_vscode_1.png)
 
---
 
# การ find & replace และใช้ regex บน notepad++
 
![การแทนที่ข้อความด้วย regex](http://www.thaiall.com/vscode/regex_joom.png)
 
---
 
# การคัดลอกข้อมูลจาก timeshighereducation.com มาใช้
 
**ขั้นตอนการปรับปรุงเว็บเพจ** (12 กรกฎาคม 2563)
1. เปิด https://www.timeshighereducation.com/world-university-rankings/2020/world-ranking
 2. เปลี่ยนจาก Show 25 entries เป็น All entries
3. save as เป็น World University Rankings 2020 _ Times Higher Education (THE).html (Webpage, Complete / HTML Only (*.html,*.htm)) ไปในพื้นที่ทำงาน
4. เปิดแฟ้ม [World .. .html] ที่มีขนาดถึง 1072 KB ด้วย editor ที่ถนัด เช่น editplus หรือ notepad++ หรือ sublime หรือ atom หรือ vscode
5. ใน Source code มองเห็น tag คือ class="toggle-cols" บรรทัดยาว 9 แสนกว่าตัวอักษร หรือบรรทัดที่ 294
6. ใน vscode กด Alt+Z = Toggle word wrap แล้ว copy บรรทัดนี้ บรรทัดเดียว โดย 1) เลือกบรรทัด แล้วกด Ctrl+C เฉพาะบรรทัดนี้ 2) กด Ctrl+A เลือกทั้งหมดแล้วกดปุ่ม Del 3) กด Ctrl+V แฟ้มนี้จะเหลือบรรทัดเดียว
7. สั่ง Replace All ด้วย Ctrl+H แบบใช้ Regular Expression เตรียมที่จะใช้ \n
- https://docs.microsoft.com/en-us/visualstudio/ide/using-regular-expressions-in-visual-studio
 
---
 
# การจัดการ code ของ timeshighereducation.com
 
**เตรียมข้อมูล ฝึกปฏิบัติ**
- เข้า timeshighereducation.com ลงทะเบียน (register) และเข้าระบบ (login) เข้า RANKINGS จากแถบเมนู World University Rankings พบ Impact Rankings 2021
- ซึ่งมีทั้งหมด 1,117 มหาวิทยาลัยจาก 94 ประเทศ แล้วเลือก country เป็น Thailand พบ 25 สถาบัน ทำการ Right Click, Save as, Webpage Complete (*.html)
- จะได้แฟ้ม Impact Rankings 2021 _ Times Higher Education (THE).html พร้อม Folder ที่มีชื่อเดียวกับแฟ้ม
- https://www.timeshighereducation.com/rankings/impact/2021/overall
- ตัวอย่างแฟ้มที่ http://www.thaiall.com/topstory/timehighereducation
 
```
<style>
.pane-content{background-color:#ddffdd;}
thead{background-color:#dddddd;}
div{background-color:white;float:left;}
.odd{background-color:#ddffdd;}
.even{background-color:#ffffdd;}
</style>
```
 
---
 
# Regular Expression
 
- คำว่า <tr เป็น \n<tr (ได้ข้อมูลจำนวน 1261 บรรทัด)
- คำว่า class="rank sorting_1 sorting_2" เป็น ว่างเปล่า
- คำว่า class=" name namesearch" เป็น ว่างเปล่า
- คำว่า class="ranking-institution-title" เป็น ว่างเปล่า
- คำว่า data-position="title" data-mz="" เป็น ว่างเปล่า
- คำว่า class="location" เป็น ว่างเปล่า
- คำว่า class=" stats stats_number_students" เป็น ว่างเปล่า
- คำว่า class=" stats stats_student_staff_ratio" เป็น ว่างเปล่า
- คำว่า class=" stats stats_pc_intl_students" เป็น ว่างเปล่า
- คำว่า class=" stats stats_female_male_ratio" เป็น ว่างเปล่า
- คำว่า class="btn btn-purple btn-margin" data-position="explore" data-mz="" เป็น ว่างเปล่า
- คำว่า class="btn btn-purple btn-margin" data-position="uni-apply" data-mz=""
 
---
 
# Regular Expression
 
```
- คำว่า <div><span><a href="(.*)">(.*)</a></span></div> เป็น <div><span>$2</span></div> ของ vscode
- คำว่า <div><span><a href="(.*)">(.*)</a></span></div> เป็น <div><span>\2</span></div> ของ editplus
```
 
- คำว่า target="_blank" เป็น ว่างเปล่า
- คำว่า (Explore|Apply|gold|silver|enhanced) เป็น ว่างเปล่า
- หลังแทนที่ http://www.thaiall.com/topstory/timeshighereducation_2019_2020.txt
- ผลลัพธ์ http://www.thaiall.com/topstory/timeshighereducation_2019_2020.php
 
---
 
# การใช้ editor สั่งแทนที่คำว่า Thailand ด้วย THAILAND
 
![การใช้โปรแกรม editor นำไปประยุกต์ได้ใช้ได้ตามเป้าหมายของงาน เช่น คัดกรองข้อมูลครัวเรือนในชุมชน เพื่อจัดทำสารสนเทศ และนำเสนอทางเลือก](http://www.thaiall.com/vscode/replace_thailand.png)
 
---
 
# โปรแกรมบราวเซอร์ (Web Browser)
 
- อ่านเพิ่ม [HTML - Hypertext Markup Language](http://www.thaiall.com/html/html.htm)
- อ่านเพิ่ม [Google Chrome](http://www.thaiall.com/google/chrome.htm)
- การใช้สื่อสังคม (Social Media)
- อ่านเพิ่ม [Facebook](http://www.thaiall.com/facebook/index.html)
- *เบราว์เซอร์ หรือ โปรแกรมค้นดูเว็บ (Web Browser)* คือ โปรแกรมคอมพิวเตอร์ที่ผู้ใช้ดูข้อมูล และโต้ตอบกับข้อมูลในหน้าเว็บเพจที่สร้างด้วยภาษาเฉพาะ เช่น ภาษาเอชทีเอ็มแอล  โดยข้อมูลได้รับมาจากการร้องขอ (Request) และตอบกลับ (Response) จากเว็บเซิร์ฟเวอร์ (Web Server)
- อ่านเพิ่ม [Google Chrome](http://www.thaiall.com/google/chrome.htm) คือ โปรแกรมบราวเซอร์ (Browser) สำหรับเปิดข้อมูลจากอินเทอร์เน็ตตามมาตรฐาน HTTP ในรูปของข้อความ ภาพ เสียง คลิ๊ปวีดีโอ ลิงค์เชื่อมโยง และรองรับการมีปฏิสัมพันธ์ได้
 
---
 
# การใช้สื่อสังคม (Social Media)
 
- *สื่อสังคมออนไลน์ (Social Media)* หมายถึง สังคมออนไลน์ที่มีผู้ใช้เป็นผู้สื่อสาร หรือเขียนเล่าเรื่องราว เนื้อหา ประสบการณ์ บทความ รูปภาพ และวีดิโอ ที่ผู้ใช้เขียนขึ้นเอง ทำขึ้นเอง หรือพบเจอจากสื่ออื่น ๆ แล้วนำมาแบ่งปันให้กับผู้อื่นที่อยู่ในเครือข่ยของตนผ่านทางเครือข่ายสังคมออนไลน์ (Social Network) ที่ให้บริการบนโลกออนไลน์ ปัจจุบันการสื่อสารแบบนี้จะทำผ่านทาง Internet และโทรศัพท์เคลื่อนที่เท่านั้น
- อ่านเพิ่ม [facebook](http://www.thaiall.com/facebook)
 
---
 
# หน่วยที่ 2 กริต (Git)
 
## การใช้บริการ Github.com
## การเขียน Homepage บน Github
## การใช้งาน Github.com
 
---
 
# การใช้บริการ Github.com
 
- *Git* คือ ระบบควบคุมรุ่นแบบกระจาย เพื่อจัดเก็บ ควบคุม ติดตามการเปลี่ยนแปลงที่เกิดขึ้นกับไฟล์ได้ทุกรูปแบบ ทั้ง Text File และ Binary File  เมื่อเก็บไฟล์ใน Git จะถูกเรียกว่า Git Repository  ซึ่งจัดเก็บ สำรอง และบันทึกการเปลี่ยนแปลงของรหัสต้นฉบับ (Source Code) ทำให้ย้อนกลับไปรุ่นใดก็ได้ และตรวจสอบรายละเอียดการเปลี่ยนแปลงของแต่ละรุ่นได้
- *ผู้สร้าง Git*  คือ  Linus Torvalds สร้างในปี 2548 ซึ่งเป็นผู้คิดค้น Linux โดย Git ถูกนำมาใช้ควบคุมการพัฒนา Linux kernel ที่เป็น Open source มี Developer อาสาเข้าร่วมพัฒนาจำนวนมาก จึงต้องมี Git มาช่วยให้ source code มีเส้นเวลาเดียวกัน
- อ่านเพิ่ม [wiki](https://en.wikipedia.org/wiki/Git)
- อ่านเพิ่ม [what is git](https://saixiii.com/what-is-git/)
- *กิตฮับ (GitHub)* คือ เว็บไซต์ที่ให้บริการพื้นที่ทางอินเทอร์เน็ต (Hosting service) สำหรับเก็บการควบคุมการปรับปรุงแก้ไขรหัสต้นฉบับ (Source code version control) โดย กิต (Git) ใช้เพื่อจัดการควบคุมการพัฒนารหัสต้นฉบับ (Source code) จัดการพื้นที่ให้ร่วมกันทำงานของทีมผู้พัฒนา (Contributor) ในแต่ละ Repository นอกจากนี้ github.com ยังมีพัฒนาบริการการให้สิทธิ์ควบคุม และการกระจายรุ่นของรหัสต้นฉบับ (Distributed version control) การควบคุมการเข้าถึงรหัสต้นฉบับ (Access control) คุณสมบัติด้านความร่วมมือ (Collaboration) แล้วยังสามารถติดตามข้อบกพร่อง (ฺBug tracking)
- อ่านเพิ่ม [github](http://www.thaiall.com/web2/github.htm)
 
---
 
# การเขียน Homepage บน Github
 
- *กิตฮับเสนอแผนการให้บริการใน 2 รูปแบบ* คือ แบบส่วนตัว และ แบบบัญชีฟรี โดยอย่างหลังมักจะใช้ในการเก็บตัวแบบซอฟต์แวร์ในโครงการโอเพนซอร์ซ ในเดือนมิถุนายนปี 2018 กิตฮับได้รายงานว่ามีผู้ใช้งานกว่า 28 ล้านราย และได้จัดเก็บรหัสต้นฉบับจำนวน 57 ล้านโครงการ ในจำนวนนี้มีโครงการสาธารณะจำนวน 28 ล้านโครงการ ทำให้กิตฮับกลายเป็นพื้นที่จัดเก็บรหัสต้นฉบับที่ใหญ่ที่สุดในโลก
- กิตฮับได้รับการพัฒนาขึ้นโดย คริส วานสเตรท, พีเจ ไฮเอท และ ทอม เพรสตัน-เวอร์เนอร์ เขียนขึ้นจากรูบีออนเรลส์ เริ่มกิจการในเดือนกุมภาพันธ์ 2008 บริษัทกิตฮับ อิงค์ ตั้งอยู่ตั้งแต่ปี 2007 อยู่ในซานฟรานซิสโก (San Franscisco) และในเดือนมีนาคม 2008 คริส วานสเตรท ได้โพสต์ในบล็อกส่วนตัว ว่ากิตฮับมีผู้ใช้งานกว่า 2,000 รายแล้ว และเมื่อวันที่ 4 มิถุนายน 2018 ไมโครซอฟท์ได้ประกาศว่าทางบริษัทได้บรรลุข้อตกลง ในการซื้อกิจการกิตฮับเป็นมูลค่ากว่า 7.5 พันล้านเหรียญสหรัฐฯ
- อ่านเพิ่ม [github](http://www.thaiall.com/web2/github.htm)
 
---
 
# หน่วยที่ 3 การใช้กริต (Git)
 
## การใช้ Command Line
## การใช้ Application
 
---
 
# การใช้ Command Line
 
** คำสั่ง Git**
- pull = ดึงมา
- push = ผลักไป
- clone = คัดลอก
- init = เริ่มต้น
- origin = ต้นทาง
- master = หลัก
- branch = สาขา
- config = ข้อกำหนด
- global = ทั่วทั้งหมด
- remote = ปลายทาง
- commit = ผูกมัดไว้
- repository = กรุเก็บรหัส
- อ่านเพิ่ม [git](http://www.thaiall.com/git/)
- [รวม 20 คำสั่งพื้นฐาน การใช้ Git/GitHub](https://www.techstarthailand.com/blog/detail/Basic-Git-GitHub-Cheat-Sheet/1036)
 
---
 
# การ push
 
![การ push](http://www.thaiall.com/git/git_bash_github.png)
 
---
 
# การใช้ Application
 
- Git GUI ทำให้การใช้งาน git ง่ายขึ้น
- อ่านเพิ่ม [git](http://www.thaiall.com/git/)
 
---
 
# Git GUI
 
![git for windows](http://www.thaiall.com/git/git_manage_repo.png)
 
---
 
# หน่วยที่ 4 ภาษาเอชทีเอ็มแอล (HTML)
 
## ภาษาเอชทีเอ็มแอล (HTML)
## ความรู้เกี่ยวกับซีเอสเอส (CSS)
## ความรู้เกี่ยวกับจาวาสคริปต์ (Javascript)
 
---
 
# ภาษาเอชทีเอ็มแอล (HTML)
 
- *ภาษาเฮชทีเอ็มแอล (HTML = HyperText Markup Language)* คือ ภาษาคอมพิวเตอร์ที่ออกแบบมาเพื่อใช้ในการสร้างเว็บเพจที่เรียกดูผ่านทางเว็บเบราว์เซอร์ (Web Browser) เริ่มพัฒนาโดย ทิม เบอร์เนอรส์ ลี (Tim Berners Lee) ในปัจจุบัน HTML ล่าสุดคือ รุ่น 5 เป็นมาตรฐานหนึ่งของ ISO ซึ่งจัดการโดย World Wide Web Consortium (W3C) ในปัจจุบัน ทาง W3C ผลักดัน รูปแบบของ HTML แบบใหม่ ที่เรียกว่า XHTML รุ่นแรกคือ 1.0 (ม.ค.2543) ซึ่งมีโครงสร้างเป็นแบบ XML (eXtensible Markup Language)
- อ่านเพิ่ม [thaiall.com/html5](http://www.thaiall.com/html5)
- อ่านเพิ่ม [thaiall.com/html/html.htm](http://www.thaiall.com/html/html.htm)
 
---
 
# ความรู้เกี่ยวกับซีเอสเอส (CSS)
 
- **CSS (Cascading Style Sheets)** คือ ภาษาคอมพิวเตอร์สำหรับกำหนดรูปแบบในเอกสาร HTML หรือเรียกว่า สไตล์ชีต ที่ใช้กำหนดรูปแบบ (Layout) สีสัน สีพื้น ตัวอักษร การจัดวาง ระยะห่าง เส้นขอบ เป็นต้น มีรูปแบบ Syntax เฉพาะตัว  ได้รับการกำหนดมาตรฐานโดย W3C การใช้ CSS มี 3 แบบ คือ Inline, Internal และ External CSS
- เรื่อง CSS : Cascading Style Sheets กลายเป็นข้อควรรู้ที่จำเป็นสำหรับนักพัฒนาเว็บไซต์อย่างหลีกเลี่ยงไม่ได้ ปัจจุบัน CSS มีถึงรุ่น 3 แล้ว ในการใช้งานจริงมักสร้าง CSS แบบ External style sheet เพราะแฟ้มอื่นเรียกใช้ได้ ส่วน Internal style sheet ก็จะเรียกใช้ได้เฉพาะในแฟ้มนั้น ส่วน Inline style ก็จะพิมพ์คำว่า style ต่อท้าย tag นั้นไปเลย ซึ่งตัวแปรหลัก 2 แบบที่กำหนดเองใน CSS มี 2 แบบคือ id กับ class  การกำหนด และการเรียกใช้ต่างกันไป ถ้าเป็น id จะขึ้นต้นด้วย # แต่เป็น class จะขึ้นต้นด้วย . ถ้าเรียกใช้ id จะใช้ properties name ว่า id ส่วนเรียกใช้ class จะใช้ properties name ว่า class  สิ่งที่แตกต่างกัน คือ id จะเรียกใช้ครั้งเดียว แต่ class เรียกใช้ได้หลายครั้ง ถ้าวางแผนอย่างใจเย็นก็จะใช้ประโยชน์จาก css ได้อย่างเต็มที่ มีตัวอย่างที่ css_sample.htm และ การทำเมนู Responsive แบบ Top Nav หากจะทดสอบการปรับแต่ง css ทำได้ที่ w3schools.com
- อ่านเพิ่ม [thaiall.com/java/bootstrap.htm](http://www.thaiall.com/java/bootstrap.htm)
 
---
 
# ความรู้เกี่ยวกับจาวาสคริปต์ (Javascript)
 
- *ภาษาจาวาสคริปต์ คือ ภาษาโปรแกรมคล้ายภาษาซี* ถูกใช้ร่วมกับภาษาเอชทีเอ็มแอลในการพัฒนาเว็บเพจ ประมวลผลในเครื่องของผู้ใช้ ช่วยให้การนำเสนอเป็นแบบโต้ตอบกับผู้ใช้ได้ในระดับหนึ่ง
- *ภาษาจาวาสคริปต์ (JavaScript Language)* คือ ภาษาโปรแกรมที่มีโครงสร้างคล้ายภาษาซี ทำหน้าที่แปลความหมาย และดำเนินการทีละคำสั่ง ภาษานี้มีชื่อเดิมว่า LiveScript ถูกพัฒนาโดย Netscape Navigator เพื่อช่วยให้เว็บเพจสามารถแสดงเนื้อหา ที่มีการเปลี่ยนแปลงได้ ตามเงื่อนไข หรือสภาพแวดล้อมที่แตกต่างกัน หรือโต้ตอบกับผู้ใช้ได้มากขึ้น เพราะภาษา HTML ที่เป็นภาษาพื้นฐานของเว็บเพจ ทำได้เพียงแสดงข้อมูลแบบคงที่ (Static Display)
- *ภาษาจาวา (Java Language)* คือ ภาษาคอมพิวเตอร์ที่ถูกพัฒนาขึ้นโดยบริษัท ซันไมโครซิสเต็มส์ เป็นภาษาสำหรับเขียนโปรแกรมที่สนับสนุนการเขียนโปรแกรมเชิงวัตถุ (OOP : Object-Oriented Programming) โปรแกรมที่เขียนขึ้นถูกสร้างภายในคลาส ดังนั้นคลาสคือที่เก็บเมทอด (Method) หรือพฤติกรรม (Behavior) ซึ่งมีสถานะ (State) และรูปพรรณ (Identity) ประจำพฤติกรรม (Behavior)
- อ่านเพิ่ม [thaiall.com/html/html.htm](http://www.thaiall.com/html/html.htm)
- อ่านเพิ่ม [thaiall.com/java](http://www.thaiall.com/java/indexo.html)
 
---
 
# Blockly
 
- *Blockly* คือ เครื่องมือพัฒนาโปรแกรมแบบวิชวล (Visual) โดยใช้สัญลักษณ์ภาพแบบจิ๊กซอล แทนคำสั่งมาเรียงต่อกันตามเงื่อนไขที่ต้องการ พัฒนาโดย google for education แล้วเปิดให้ทดลองใช้ (Try Blockly) บนเว็บของกูเกิ้ล หรือนักพัฒนาจะดาวน์โหลดไปติดตั้งบน website ของตนเอง เพื่อพัฒนาต่อยอดได้ ในเครื่องมีอนี้มีกลุ่มของสัญลักษณ์ที่ประกอบด้วย Logic, Loops, Math, Text, Lists, Colour, Variables, Functions
- ภายใต้ google for education มีบริการ try blockly ถูกใช้สำหรับการโปรแกรมด้วยภาพ สามารถประมวลผล และแสดงเป็นภาษาต่าง ๆ อาทิ javascript, python, php, lua หรือ dart แล้วมีการนำ blockly ไปต่อยอดอีกมากมาย อาทิ Code.org, Microbit, Blockly-games, CodeBug, Ozoblockly
- อ่านเพิ่ม [/blockly](http://www.thaiall.com/blockly)
 
---
 
# Scratch
 
- *Scratch* คือ เครื่องมือสำหรับการโปรแกรมด้วยแผนภาพ ด้วยการต่อจิ๊กซอล นำชิ้นคำสั่งมาร้อยเรียงเรื่องราวอย่างเป็นระบบ ใช้ได้ฟรี สนับสนุนการจัดการศึกษาสำหรับนักเรียน ครู อาจารย์ สามารถใช้สร้างสรรค์ตัวการ์ตูน เล่านิทาน เกม ดนตรี ศิลปะ บอกเล่าถึงชีวิต และสังคม การฝึกใช้ถือเป็นก้าวสำคัญของผู้เริ่มต้นที่จะศึกษาการโปรแกรมในระดับที่สูงขึ้น Scratch ถูกใช้ในขอบเขตอื่นได้ อาทิ โครงงานวิทยาศาสตร์ คณิตศาสตร์ สังคมศาสตร์ รวมทั้งการสร้างแบบจำลอง และการทดลอง แล้วยังช่วยสร้างเอกสารนำเสนอของนักเรียน ครู อาจารย์ การเปิดโครงงานสามารถใช้งานบนเว็บไซต์ เผยแพร่ แบ่งปัน แก้ไขผ่านเว็บบราวเซอร์ ซึ่ง Scratch เริ่มต้นโครงการจากการทำงานร่วมกันระหว่าง Google และ MIT Scratch team แล้วทีมของ Google ได้พัฒนา Blockly เพื่อสนับสนุนการเรียนรู้การโปรแกรม และการนำไปใช้ในภาคธุรกิจได้ (แปลจาก wikipedia.org และ mit.edu)
- อ่านเพิ่ม [/scratch](http://www.thaiall.com/scratch)
 
---
 
# หน่วยที่ 5 การใช้ซีเอสเอส (CSS)
 
## การเขียนเว็บเพจแบบ Responsive Web Design
## การใช้ CSS ภายใน
## การใช้ CSS ภายนอก
 
---
 
# การเขียนเว็บเพจแบบ Responsive Web Design
 
```
.m{width:100%;}
@media only screen and (max-width:320px){
.m{width:315px;}
}
@media only screen and (min-width:321px) and (max-width:375px){
.m{width:370px;}
}
@media only screen and (min-width:376px) and (max-width:728px){
.m{width:90%;}
}
```
 
- อ่านเพิ่ม [css](http://www.thaiall.com/html/responsive.htm)
 
---
 
# การใช้ CSS ภายใน
 
```
<style>
@font-face{font-family:'THBaijam'; src: url('TH Baijam.ttf');}
</style>
<div style="font-family:THBaijam">abc</div>
```
 
- อ่านเพิ่ม [css](http://www.thaiall.com/html/responsive.htm)
 
---
 
# การใช้ CSS ภายนอก
 
```
<link type="text/css" rel="stylesheet" href="rsp80.css" />
<div class="hello">abc</div>
```
 
- อ่านเพิ่ม [css](http://www.thaiall.com/html/responsive.htm)
 
---
 
# หน่วยที่ 6 ภาษาจาวาสคริปต์ (Javascript)
 
## การเขียนเว็บเพจด้วย Javascript
## การเรียกใช้ jquery
 
---
 
# การเขียนเว็บเพจด้วย Javascript
 
- *ภาษาจาวาสคริปต์* คือ ภาษาโปรแกรมคล้ายภาษาซี ถูกใช้ร่วมกับภาษาเอชทีเอ็มแอลในการพัฒนาเว็บเพจ ประมวลผลในเครื่องของผู้ใช้ ช่วยให้การนำเสนอเป็นแบบโต้ตอบกับผู้ใช้ได้ในระดับหนึ่ง
- *ภาษาจาวาสคริปต์ (JavaScript Language)* คือ ภาษาโปรแกรมที่มีโครงสร้างคล้ายภาษาซี ทำหน้าที่แปลความหมาย และดำเนินการทีละคำสั่ง ภาษานี้มีชื่อเดิมว่า LiveScript ถูกพัฒนาโดย Netscape Navigator เพื่อช่วยให้เว็บเพจสามารถแสดงเนื้อหา ที่มีการเปลี่ยนแปลงได้ ตามเงื่อนไข หรือสภาพแวดล้อมที่แตกต่างกัน หรือโต้ตอบกับผู้ใช้ได้มากขึ้น เพราะภาษา HTML ที่เป็นภาษาพื้นฐานของเว็บเพจ ทำได้เพียงแสดงข้อมูลแบบคงที่ (Static Display)
- อ่านเพิ่ม [javascript](http://www.thaiall.com/javascript)
 
---
 
# การเรียกใช้ jquery
 
- *จาวาสคริปต์ไลบรารี่ (JavaScript Library)* คือ การรวมฟังก์ชันอำนวยความสะดวกที่สนับสนุนการพัฒนาเว็บเพจที่ใช้ HTML หรือ CSS ช่วยให้มีการทำงานแบบพลวัต (Dynamic) โดยฟังก์ชันเหล่านั้นถูกพัฒนาขึ้นด้วยจาวาสคริปต์ สามารถเรียกใช้โดยตรงผ่านออนไลน์ หรือดาวน์โหลดสคริปต์มาติดตั้งไว้ในเครื่องบริการ ซึ่งส่วนใหญ่เป็นโอเพนซอร์ส (Open source)
- อ่านเพิ่ม [jquery](http://www.thaiall.com/jquery/index.html)
 
---
 
# หน่วยที่ 7 บูทสแตป (Bootstrap)
 
## บริการของ Bootstrap
## การจัดการ Layout
 
---
 
# บริการของ Bootstrap
 
- *Bootstrap* คือ การรวมแฟ้มจาวาสคริปต์ (.js) และซีเอสเอส (.css) ที่ประมวลมาแล้วว่าดี (our precompiled and source code flavors) ให้เรียกใช้ได้ ทำให้งานพัฒนาเว็บดำเนินการได้อย่างรวดเร็ว ซึ่ง Precompiled files สามารถนำไปวางในเครื่องบริการนั้น มีให้เลือกได้ตามความเหมาะสม จำแนกตามนามสกุลของแฟ้มที่มีคุณสมบัติและขนาดต่างกัน
- อ่านเพิ่ม [AdminTLE](http://www.thaiall.com/java/bootstrap.htm)
 
---
 
 
# การจัดการ Layout
 
- **แฟ้มกลุ่ม JS Files** มีแบบให้เลือก ดังนี้ .js, .bundle.js และ .min.js โดยแฟ้ม bootstrap.js จะไม่รวมฟังก์ชัน Popper เข้าไป แต่แฟ้ม bootstrap.bundle.js จะรวมฟังก์ชัน Popper เข้าไว้ทำให้ขนาดใหญ่กว่า ส่วนนามสกุลแฟ้ม .min.js คือ minified เป็นการทำให้เล็ก เมื่อเปิดด้วย editor จะอ่านแฟ้ม .min.js ไม่ได้ เพราะ code จะเรียงติดกันเป็นบรรทัดเดียวกัน จึงอ่านไม่ได้ ข้อดีของ .min.js คือ มีขนาดแฟ้มลดลง ในขณะที่ฟังก์ชันการทำงานยังทำได้เหมือนเดิม ส่วนแฟ้มแบบ .js และ bundle.js สามารถเปิดอ่านและแก้ไขได้ แต่มีขนาดใหญ่กว่าแฟ้มแบบ .min.js ส่วนแฟ้มกลุ่ม CSS files มีแบบให้เลือกที่สำคัญ 2 แบบ คือ แฟ้มมาตรฐาน .css และแฟ้มลดขนาด .min.css
- [บูทสแตปเมนู](http://www.thaiall.com/blog/burin/9014/)
- อ่านเพิ่ม [AdminTLE](http://www.thaiall.com/java/bootstrap.htm)
 
---
 
# หน่วยที่ 8 เทมเพจด้วยบูทสแตป (Bootstrap)
 
## โครงสร้าง AdminTLE
## การประยุกต์ใช้ AdminTLE
 
---
 
# โครงสร้าง AdminTLE
 
- [Adminlte-3.0.4](https://adminlte.io/themes/v3/index.html)
- **AdminLTE**  คือ เทมเพจที่สวยงามและนำมาใช้ได้ฟรี ทำงานด้วย Bootstrap ที่ถูกพัฒนาโดย Almsaeed Studio
- มีหน้าแรกที่ index.html - https://adminlte.io/themes/v3/index.html
- มี Login form - https://adminlte.io/themes/v3/pages/forms/general.html
- มี Login form - https://adminlte.io/themes/v3/pages/examples/login.html
- [Folder] (2,180 Files, 219 Folders, 81.1MB)
 
```
    - starter.html
    - index.html index2.html index3.html
    /build
    /dist
    /docs
    /pages
    /plugins
```
 
- อ่านเพิ่ม [AdminTLE](http://www.thaiall.com/java/bootstrap.htm)
 
---
 
# การประยุกต์ใช้ AdminTLE
 
- ** เรียกใช้ font จาก googleapis.com**
 
```
<html><head><link rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700" >
<style> body {font-family: 'Source Sans Pro';font-size:20px;font-weight:300;}
.c1 {font-family: 'Source Sans Pro';font-weight:400;font-style:italic;}
.c2 {font-family: 'Source Sans Pro';font-weight:400;}
.c3 {font-family: 'Source Sans Pro';font-weight:700;}
</style>
</head><body>Hello 300
<div class="c1">World 400i</div>
<div class="c2">I am a 400</div>
<div class="c3">man 700</div>
```
 
- อ่านเพิ่ม [google.com](https://developers.google.com/fonts/docs/getting_started)
- อ่านเพิ่ม [AdminTLE](http://www.thaiall.com/java/bootstrap.htm)
 
---
 
# หน่วยที่ 9 เครื่องบริการเว็บ (Web Server)
 
## เครื่องบริการ (Webserver)
## โปรแกรม Apache
## โปรแกรม MySQL
## โปรแกรม PHPMyAdmin
 
---
 
# เครื่องบริการ (Webserver)
 
- *เว็บเซิร์ฟเวอร์ (Web Server)* คือ เครื่องคอมพิวเตอร์ที่ทำหน้าที่เป็นเครื่องบริการเว็บไซต์ (Website) แก่ผู้ร้องขอ (Request) ด้วยโปรแกรมประเภทเว็บบราวเซอร์ (Web Browser) ที่ร้องขอข้อมูลผ่านโปรโตคอลเฮชทีทีพี (HTTP = Hyper Text Transfer Protocol) เครื่องบริการจะส่งข้อมูลให้ผู้ร้องขอในรูปของข้อความ ภาพ เสียง หรือสื่อผสม เครื่องบริการเว็บเพจมักเปิดบริการพอร์ท 80 (HTTP Port) ให้ผู้ร้องขอได้เชื่อมต่อและนำข้อมูลไปใช้ เช่น โปรแกรมอินเทอร์เน็ตเอ็กโพเลอร์ (Internet Explorer) หรือฟายฟร็อก (FireFox Web Browser) การเชื่อมต่อเริ่มด้วยการระบุที่อยู่เว็บเพจที่ร้องขอ (Web Address หรือ URL = Uniform Resource Locator) เช่น http://www.google.com หรือ http://www.thaiall.com เป็นต้น โปรแกรมที่นิยมใช้เป็นเครื่องบริการเว็บ คือ อาปาเช่ (Apache Web Server) หรือไมโครซอฟท์ไอไอเอส (Microsoft IIS = Internet Information Server) ส่วนบริการที่นิยมติดตั้งเพิ่ม เพื่อเสริมความสามารถของเครื่องบริการ เช่น ตัวแปลภาษาสคริปต์ ระบบฐานข้อมูล ระบบจัดการผู้ใช้ และระบบจัดการเนื้อหา เป็นต้น
- อ่านเพิ่ม [webserver](http://www.thaiall.com/webserver)
 
---
 
# โปรแกรม Apache
 
- *อาปาเช่ (Apache Web Server)* คือ เครื่องบริการเว็บ (Web Server) ที่พัฒนาโดยมูลนิธิอาปาเช่ (Apache Software Foundation) ทำให้เครื่องคอมพิวเตอร์เปิดบริการพอร์ท 80 (HTTP Port) ให้ผู้ร้องขอได้เชื่อมต่อผ่านโปรแกรมประเภทเว็บบราวเซอร์ โปรแกรมถูกพัฒนาให้ทำงานบนระบบปฏิบัติการที่หลากหลาย และเป็นแบบโอเพนท์ซอร์ท (Open Source) มักถูกติดตั้งมาพร้อมกับระบบปฏิบัติการลีนุกซ์ จากการไม่เสียค่าลิขสิทธิ์ในการใช้งาน มีการพัฒนาอย่างต่อเนื่อง จึงมีผู้ใช้งานมากที่สุดในปัจจุบัน
- อ่านเพิ่ม [webserver](http://www.thaiall.com/webserver)
 
---
 
# โปรแกรม MySQL
 
- *เอสคิวแอล (SQL = Structured Query Language)* คือ ภาษาสอบถามข้อมูล หรือภาษาจัดการข้อมูลอย่างมีโครงสร้าง มีการพัฒนาภาษาคอมพิวเตอร์ และโปรแกรมฐานข้อมูลที่รองรับมากมาย เพราะจัดการข้อมูลได้ง่าย เช่น MySQL, MariaDB, MsSQL, PostgreSQL หรือ MS Access เป็นต้น สำหรับโปรแกรมฐานข้อมูลที่ได้รับความนิยมคือ MySQL หรือ MariaDB เป็น Open Source ที่ใช้งานได้ทั้งใน Linux และ Windows
- *การแยกทางของ MySQL สู่ MariaDBf*  26 ก.พ.2008 Sun Microsystems ซื้อ MySQL AB $1 Billion ต่อมาได้มีการทำข้อตกลงเมื่อ 20 เม.ย.2009 แล้วดำเนินการต่อเนื่องจนเสร็จสมบูรณ์เมื่อ 27 ม.ค.2010 เป็นผลให้Oracle เป็นเจ้าของ Sun Microsystems ด้วยวงเงิน $5.6 Billion แล้วนักพัฒนาก็เริ่มเห็นว่า MySQL เริ่มถอยห่างจากการเป็น Open Source มากขึ้น จึงหันไปหา Maria DB ด้วยหลายเหตุผล และเหตุผลหนึ่งคือผลการพัฒนาทำให้ MariaDB มีสถิติแซง MySQL AB อย่างต่อเนื่อง
- *ระบบฐานข้อมูล (Database System)* คือ ระบบที่รวบรวมข้อมูลที่เกี่ยวข้องกันเข้าไว้ด้วยกันอย่างเป็นระบบ มีความสัมพันธ์ระหว่างข้อมูลที่ชัดเจน มองเห็นเป็นตาราง เป็นระเบียน เป็นเขตข้อมูลที่มีความสัมพันธ์ระหว่างกัน เปิดให้สามารถใช้งานดูแลจัดการข้อมูลได้อย่างมีประสิทธิภาพ ซึ่งมีซอฟต์แวร์เป็นสื่อกลางระหว่างผู้ใช้และโปรแกรมเพื่อจัดการและใช้งานระบบฐานข้อมูล
- *ระบบจัดการฐานข้อมูล (DBMS = DataBase Management System)* คือ ระบบที่ช่วยให้ผู้ใช้เข้าบริหารจัดการข้อมูลได้ง่าย และมีประสิทธิภาพ มีบริการสร้างฐานข้อมูล สร้างตาราง เพิ่มลบแก้ไขข้อมูลในตาราง และตั้งคำถามเรียกข้อมูลมาใช้ โดยไม่จำเป็นต้องเขียนโปรแกรมจัดการโครงสร้างของข้อมูลด้วยตนเอง
- อ่านเพิ่ม [mysql](http://www.thaiall.com/mysql)
- http://www.thaiall.com/project/northwind.zip
 
---
 
# Practice SQL Online
 
```
" Play online
```
 
---
 
# ระบบฐานข้อมูล Northwind บน w3schools.com
 
- W3Schools has created an SQL database in your browser.
- Feel free to experiment with any SQL statement.
- https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all
 
```
Tablename   Records
Customers   91
Categories  8
Employees   10
OrderDetails    518
Orders  196
Products    77
Shippers    3
Suppliers   29
```
 
---
 
# ระบบฐานข้อมูล Northwind
 
1. Products ตารางสินค้า (productid  รหัสสินค้า)
2. Categories ตารางกลุ่มสินค้า (categoryid  รหัสกลุ่มสินค้า)
3. Employees ตารางพนักงาน (employeeid   รหัสพนักงาน)
4. Customers ตารางลูกค้า (customerid    รหัสลูกค้า)
5. Suppliers ตารางผู้จำหน่าย (supplierid    รหัสผู้จำหน่าย)
6. Orders ตารางสั่งซื้อ (orderid    รหัสใบสั่งซื้อ)
7. Orderdetails ตารางสั่งซื้อละเอียด (orderid   รหัสใบสั่งซื้อ + productid  รหัสสินค้า)
8. Shippers ตารางขนส่ง (shipperid   รหัสผู้ขนส่ง)
 
---
 
# Select (1/19)
 
- การเลือกข้อมูลทั้งหมดจากตารางสั่งซื้อ
- อ่านเพิ่ม [19 SQL in northwind](https://github.com/thaiall/programming-page/blob/master/php/northwind.php)
- อ่านเพิ่ม [northwind project](http://www.thaiall.com/project/projectdbnwind.htm)
- อ่านเพิ่ม [w3school northwind](https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all)
 
```
select * from orders
/* w3schools : ok */
```
 
---
 
# Select (2/19)
 
- การเลือกข้อมูลทั้งหมดจากตารางสั่งซื้อละเอียด กรณีที่ชื่อตารางมีช่องว่าง ต้องใช้ grave accent
- ` คือ Ascii code ตัวที่ 96 ชื่อว่า grave accent
 
```
select * from `order details`
-- select * from orderdetails
/* w3schools : ok */
```
 
---
 
# Select (3/19)
 
- การเลือกข้อมูลจากตารางสินค้า มา 5 ระเบียน เริ่มต้นจากระเบียนแรก
 
```
select * from products limit 0,5
/* w3schools : ok */
```
 
---
 
# Select (4/19)
 
- การเลือกข้อมูลจากตารางสินค้า จัดเรียงตามชื่อสินค้าจากมากไปน้อย
 
```
select * from products order by productname desc
/* w3schools : ok */
```
 
---
 
# Select (5/19)
 
- การเลือกข้อมูลจากตารางสั่งซื้อ เฉพาะที่รหัสพนักงาน = 4
 
```
select * from orders where employeeid = 4
/* w3schools : ok */
```
 
---
 
# Select (6/19)
 
- การเลือกข้อมูลจากตารางสั่งซื้อ เฉพาะที่ค่าขนส่งอยู่ระหว่าง 100 กับ 1000
 
```
select * from orders where freight > 100 and freight < 1000
-- SELECT * FROM [OrderDetails] where quantity > 5 and quantity < 10
```
 
---
 
# Select (7/19)
 
- การเลือกข้อมูลจากตารางสินค้า เฉพาะที่ หน่วยสินค้า คือ ชิ้น
 
```
select * from products where QuantityPerUnit like '%pieces%'
-- select * from products where unit like '%boxes%'
```
 
---
 
# Select (8/19)
 
- การเลือกข้อมูลที่มีการเชื่อมตารางสั่งซื้อละเอียด กับสินค้า ด้วย where เพื่อผูกรหัสสินค้าของทั้งสองตาราง
 
```
select `order details`.*, products.* from `order details`,products
where `order details`.productid = products.productid
/* select [orderdetails].*, products.* from [orderdetails],products
where orderdetails.productid = products.productid */
```
 
---
 
# Select (9/19)
 
- การเลือกข้อมูลที่มีการเชื่อมตารางสั่งซื้อละเอียด กับสินค้า ด้วย inner join เพื่อผูกรหัสสินค้าของทั้งสองตาราง
 
```
select `order details`.*, products.* from
(`order details` inner join products
on `order details`.productid = products.productid)
/* select `orderdetails`.*, products.* from
(`orderdetails` inner join products
on `orderdetails`.productid = products.productid) */
```
 
---
 
# Select (10/19)
 
- ใช้ฟังก์ชันในการรวม (aggregate function) แสดงจำนวนนับรายการสั่งซื้อละเอียดในการสั่งซื้อแต่ละครั้ง  จับกลุ่มตามรหัสใบสั่งซื้อ
 
```
select orderid, count(orderid) as cnt from `order details` group by orderid
-- select orderid, count(orderid) as cnt from `orderdetails` group by orderid
```
 
---
 
# Select (11/19)
 
- ใช้ฟังก์ชันในการรวม (aggregate function) แสดงยอดรวมเงินจากการสั่งซื้อละเอียดตามเลขที่การสั่งซื้อ  จับกลุ่มตามรหัสใบสั่งซื้อ
 
```
select orderid, sum(quantity * unitprice) as total
from `order details` group by orderid
/* select orderid, sum(quantity) as total
from [orderdetails] group by orderid */
```
 
---
 
# Select (12/19)
 
- การเลือกข้อมูลที่มีการเชื่อมตารางสั่งซื้อละเอียด กับสินค้า ด้วย inner join เพื่อผูกรหัสสินค้าของทั้งสองตาราง เลือกมาแสดงเฉพาะที่ราคาต่อหน่วย > 100
 
```
select `order details`.*, products.*
from (`order details` inner join products on `order details`.productid = products.productid)
where `order details`.unitprice > 100
/* select `orderdetails`.*, products.*
from (`orderdetails` inner join products on `orderdetails`.productid = products.productid)
where `orderdetails`.quantity > 10 */
```
 
---
 
# Select (13/19)
 
- การเลือกข้อมูลที่มีการเชื่อมตารางสั่งซื้อ สั่้งซื้อละเอียด กับสินค้า ด้วย inner join และ where เชื่อม orderid กับ productid เลือกมาแสดงเฉพาะที่ราคาต่อหน่วย > 100
 
```
select orders.customerid, `order details`.*, products.*
from orders, (`order details` inner join products on `order details`.productid = products.productid)
where `order details`.unitprice > 100 and orders.orderid = `order details`.orderid
/* select orders.customerid, `orderdetails`.*, products.*
from orders, (`orderdetails` inner join products on `orderdetails`.productid = products.productid)
where `orderdetails`.quantity > 10 and orders.orderid = `orderdetails`.orderid */
```
 
---
 
# Select (14/19)
 
- การเลือกข้อมูลที่มีการเชื่อมตารางสั่งซื้อ สั่้งซื้อละเอียด กับสินค้า ด้วย inner join ทั้ง 2 คู่ เลือกมาแสดงเฉพาะที่ราคาต่อหน่วย > 100
 
```
select orders.customerid, `order details`.*, products.*
from (orders inner join `order details` on orders.orderid = `order details`.orderid
inner join products on `order details`.productid = products.productid)
where `order details`.unitprice > 100
/* select orders.customerid, `orderdetails`.*, products.*
from (orders inner join `orderdetails` on orders.orderid = `orderdetails`.orderid
inner join products on `orderdetails`.productid = products.productid)
where `orderdetails`.quantity > 10 */
```
 
---
 
# Select (15/19)
 
- ใช้ฟังก์ชันในการรวม (aggregate function) แสดงยอดรวมเงินจากการสั่งซื้อละเอียดตามเลขที่การสั่งซื้อ เลือกมาคำนวณเฉพาะยอดเงินนั้น > 1000 จับกลุ่มตามรหัสใบสั่งซื้อ
 
```
select orderid, sum(quantity * unitprice) as total from `order details`
group by orderid
having sum(quantity * unitprice) > 1000
/* select orderid, sum(quantity) as total from `orderdetails`
group by orderid
having sum(quantity) > 10 */
```
 
---
 
# Select (16/19)
 
- การเลือกข้อมูลจากตารางสั่งซื้อละเอียดมาแสดง ซ้อน การเลือกข้อมูลเฉพาะในตารางสินค้า ที่จำนวนคงเหลือ = 0 จัดเรียงตามรหัสสินค้า
 
```
select * from `order details`
where productid in
(select productid from products where unitsinstock = 0) order by productid
/* select * from `orderdetails`
where productid in
(select productid from products where price > 5) order by productid */
```
 
---
 
# Select (17/19)
 
- ใช้ฟังก์ชันในการรวม (aggregate function) แสดงรหัสพนักงาน นับจำนวนใบสั่งซื้อ ที่เชื่อมตารางพนักงาน กับสั่งซื้อด้วย inner join เลือกเฉพาะส่งสินค้าไปที่ = Spain  จับกลุ่มตามรหัสพนักงาน
 
```
select employees.employeeid, count(orders.orderid) as cnt_orderid
from (employees inner join orders on employees.employeeid = orders.employeeid)
where orders.shipcountry ='Spain'
group by employees.employeeid
/* select employees.employeeid, count(orders.orderid) as cnt_orderid
from (employees inner join orders on employees.employeeid = orders.employeeid)
where orders.shipperid =2
group by employees.employeeid */
```
 
---
 
# Select (18/19)
 
- การเลือกข้อมูลจากตารางพนักงาน ซ้อน (การเลือกข้อมูลที่เชื่อมตารางพนักงาน กับสั่งซื้อ เลือกเฉพาะส่งสินค้าไปที่ = Spain  จับกลุ่มตามรหัสพนักงาน?)
 
```
select * from employees where employeeid in
(select employees.employeeid from
(employees inner join orders on employees.employeeid = orders.employeeid)
where orders.shipcountry ='Spain'
group by employees.employeeid)
/* select * from employees where employeeid in
(select employees.employeeid from
(employees inner join orders on employees.employeeid = orders.employeeid)
where orders.shipperid =2
group by employees.employeeid)
*/
```
 
---
 
# Select (19/19)
 
- เลือกเชื่อม 2 ตาราง (แบบอิงทางซ้ายเป็นหลัก คือ พนักงาน) คือ พนักงานทั้งหมด กับ สั่งซื้อ ที่ผ่าน การเลือกซ้อนการเลือกสั่งซื้อ โดยนับจำนวนคำสั่งซื้อด้วย aggregate function เลือกเฉพาะส่งสินค้าไปที่ = Spain จับกลุ่มตามรหัสพนักงาน
 
```
select emp_left.employeeid, emp_right.cnt_order
from employees emp_left left join
(select orders.employeeid, count(orders.orderid) as cnt_order from orders
where orders.shipcountry ='Spain' group by orders.employeeid) emp_right
on emp_right.employeeid = emp_left.employeeid
/* select emp_left.employeeid, emp_right.cnt_order
from employees emp_left left join
(select orders.employeeid, count(orders.orderid) as cnt_order from orders
where orders.shipperid =2 group by orders.employeeid) emp_right
on emp_right.employeeid = emp_left.employeeid */
```
 
---
 
# โปรแกรม PHPMyAdmin
 
- *phpMyAdmin* (phpMyAdmin is intended to handle the adminstration of MySQL over the WWW.) คือ php script ที่ run อยู่บน Web Server ใช้สำหรับบริหารข้อมูลใน MySQL บน host ใด ๆ ถ้า MySQL จากเครื่องเป้าหมายยอมให้เข้าไปจัดการข้อมูลจากเครื่อง Remote
- อ่านเพิ่ม [mysql](http://www.thaiall.com/mysql)
- https://sourceforge.net/projects/mdb-forge/
- http://www.alexnolan.net/articles/MDB_Viewer_Guide.htm
 
 
---
 
# JMeter
 
- Apache JMeter เป็น Open Source Software ที่พัฒนาด้วยภาษา Java เพื่อใช้ทดสอบความสามารถในการรับโหลด พฤติกรรม และวัดประสิทธิภาพของเครื่องบริการ ปัจจุบันกำหนดเงื่อนไขการทดสอบได้หลากหลายยิ่งขึ้น ไม่ได้ทดสอบเฉพาะ Web Application เท่านั้น
- การใช้งาน Apache JMeter นั้น ต้องติดตั้ง Java รุ่น 8 ขึ้นไป การทดสอบเริ่มต้นจากการ Download : JMeter เมื่อได้แฟ้ม .zip แล้ว unzip จะได้แฟ้ม .jar ส่วนการ run ก็ไป right click บนแฟ้ม ApacheJMeter.jar ในห้อง /bin แล้วเลือก Open with - Java(TM) Platform SE Binary ก็จะเข้าสู่โปรแกรม JMeter แล้วเริ่มกำหนดรายละเอียดที่จะใช้ทดสอบเครื่องบริการเป้าหมาย
- http://www.thaiall.com/jmeter/
 
---
 
# หน่วยที่ 10 เฟรมเวิร์คพีเอชพี (PHP Framework)
 
## โปรแกรมลาราเวล (PHP Framework : Laravel)
## โปรแกรม Composer
## โปรแกรม Node.js
 
---
 
# โปรแกรมลาราเวล (PHP Framework : Laravel)
 
- *Laravel* คือ เฟรมเวิร์คภาษาพีเอชพี (PHP Framework) ในแบบ MVC (Model Views Controller) ช่วยในการพัฒนาระบบได้อย่างรวดเร็ว แทนการพัฒนาตามหลักโปรแกรมโครงสร้าง หรือหลักการโปรแกรมเชิงวัตถุ
- อ่านเพิ่ม [Laravel](http://www.thaiall.com/laravel)
 
```
DOS> composer create-project --prefer-dist laravel/laravel helloworld
พบปัญหา
    [Composer\Downloader\TransportException]
    Unable to use a proxy: malformed http_proxy url
น่าจะเกิดจาก : ขณะติดตั้ง composer ไปเลือก Check : Use a proxy server to connect to internet
 
DOS> composer diagnose (เพื่อตรวจสอบ composer)
DOS> netsh winhttp show proxy (เพื่อตรวจสอบ proxy)
DOS> echo %HTTP_PROXY%
DOS> set
 
วิธีแก้ไข
ในกรณีไม่จำเป็นต้องผ่าน proxy แต่ไปเลือก proxy ในขณะติดตั้ง composer
วิธีที่ 1. ลบตัวแปร Control Panel -> System -> Advanced system settings -> Environment Veriables -> http_proxy
วิธีที่ 2. DOS> set http_proxy= และ set https_proxy
วิธีที่ 3. DOS> netsh winhttp reset proxy
```
 
---
 
# ติดตั้ง Laravel ด้วย Composer
 
```
DOS>node -v (v10.15.3)
DOS>npm -v (6.4.1)
DOS>npx -v (6.4.1)
# ติดตั้ง Laravel ด้วย Composer
DOS> composer create-project --prefer-dist laravel/laravel ex1
DOS> xcopy ex1 ex1b /e (เพื่อสำรองก่อนปรับปรุง หรือหลังผ่านการทดสอบ)
/e คือ Copies directories and subdirectories, including empty ones.
 
DOS> cd ex1
DOS> php artisan -V (Laravel Framework 7.9.2)
DOS> php artisan serve
>    Laravel development server started: http://127.0.0.1:8000 (Ctrl+C)
[Folder] (8,596 Files, 1,542 Folders, 36.6MB)
    app
    bootstrap
    config
    database
    public
    resources
    routes
    storage
    tests
    vendor
```
 
---
 
# โปรแกรม Composer
 
- *Composer* คือ เครื่องมือจัดการแพกเกจ หรือไลบรารี่ (Composer Library Mangement) ของภาษาพีเอชพี (PHP Language) ช่วยให้ค้นหา จัดการ และติดตั้งแพกเกจ หรือไลบรารี่ได้อย่างเป็นระเบียบได้ง่ายขึ้น ซึ่งเดิมจะต้องค้นหา (Search) ดาวน์โหลด (Download) แตกซิปไฟล์ทีละแฟ้ม (Unzip) และปรับคอนฟิก (Config)  แต่การมีคำสั่ง อาทิ composer -h หรือ composer list หรือ composer search blog หรือ composer install ที่กำหนดใน composer.json ทำให้การจัดการแพกเกจง่ายขึ้น
- อ่านเพิ่ม [Laravel](http://www.thaiall.com/laravel)
 
```
https://getcomposer.org/Composer-Setup.exe
1. DOS> composer -v
2. DOS> cd c:\xampp\htdocs
3. DOS> composer require erusev/parsedown
Using version ^1.7 for erusev/parsedown
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing erusev/parsedown (1.7.4): Downloading (100%)
Writing lock file
Generating autoload files
4.  พบใน c:\xampp\htdocs
composer.json
composer.lock
/vendor
/vendor/autoload.php
/vendor/composer มี 8 แฟ้ม
/vendor/erusev
/vendor/erusev/parsedown/ มี 4 แฟ้ม
5. test1.php
<?php
require_once 'vendor/erusev/parsedown/parsedown.php';
$parsedown = new Parsedown();
$text = file_get_contents('test1.md');
echo $parsedown->text($text);
// echo $parsedown->line($text); ไม่มีการจัดรูปแบบแยก paragraph
6. localhost/test1.php
```
 
---
 
# โปรแกรม Node.js
 
- *Node.js* หรือ Node คือ โปรแกรมสำหรับสั่งให้โปรแกรมภาษา Javascript ที่เขียนขึ้นทำงาน เช่น DOS> node hello.js  เป็น Node Package Manager (NPM  for Node.js packages) คือ โปรแกรมจัดการ Node ซึ่งมี Package ให้จัดการเรียกใช้ได้จำนวนมาก เช่น DOS> npm i react และ npm i react-dom และ npm list สำหรับจัดการ React Library  เพื่อเรียกใช้งาน ส่วน NPX นั้นมาพร้อมกับ npm รุ่น 5.2 ขึ้นไป ใช้ npx -h พบว่าโปรแกรมนี้คือ Execute binaries from npm packages  เช่น npx create-react-app hello (ระหว่างติดตั้งจะมีการติดตั้ง react, react-dom, and react-scripts เพิ่มด้วย)
- อ่านเพิ่ม [Laravel](http://www.thaiall.com/laravel)
 
```
ทดสอบตัวอย่างการใช้ Node.js เบื้องต้น
- DOS> npx create-react-app hello
- DOS> cd hello
- DOS> npm start
- DOS> explorer http://localhost:3000
```
 
---
 
# หน่วยที่ 11 ลาราเวล (Laravel)
 
## การทำงานกับลาราเวล (Laravel)
## หลักการ Model
## หลักการ View
## หลักการ Controller
 
---
 
# การทำงานกับลาราเวล (Laravel)
 
- นิยามในภาษาอังกฤษจาก wikipedia.org : Laravel is a free, open-source PHP web framework, created by **Taylor Otwell** and intended for the development of web applications following the model–view–controller (MVC)
- อ่านเพิ่ม [Laravel](http://www.thaiall.com/laravel)
 
---
 
# หลักการ Model
 
```
Models in Laravel
https://laravel.com/docs/7.x/eloquent#introduction
https://laravel.com/docs/7.x/migrations
https://blog.pusher.com/laravel-mvc-use/
cd htdocs
php artisan (Could not open input file: artisan)
cd ex4
php artisan (Laravel Framework 7.6.2)
editplus.exe htdocs/ex4/config/database.php
'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''),
'database' => env('DB_DATABASE', 'test'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', ''),
php artisan make:model Flight --migration
Created Migration: 2020_04_24_140657_create_flights_table
พบแฟ้มนี้ใน ex4/database/migrations/2020_04_24_140657_create_flights_table.php
บรรทัดที่ 17 พบ  $table->id();
เพิ่ม $table->string('name',100)->charset('utf8')->default(0);
เพิ่ม $table->integer('salary');
ก่อนบรรทัดนี้   $table->timestamps();
พบ Flight.php ใน ex4/app
เปิดแฟ้ม ex4/.env
เปลี่ยน DB_DATABASE=laravel เป็น test
php artisan migrate
สร้างตาราง Flights มาให้
---
xampp/mysql_start.bat
cd xampp/mysql/bin
mysql -u root -p (Server version: 10.4.11-MariaDB)
use test;
create table books (
 id int(11) NOT NULL,
 name varchar(256) NOT NULL,
 category varchar(256) NOT NULL,
 description text NOT NULL
);
```
 
- อ่านเพิ่ม [Laravel](http://www.thaiall.com/laravel)
 
---
 
# หลักการ View
 
- **เปิด ex4/resources/views/welcome.blade.php**
 
```
<div class="flex-center position-ref full-height">
  <div class="content">
    <div class="title m-b-md">Product Store</div>
    <div class="links">
      <a href="{{ config('app.url')}}/products/create">Create Product</a>
      <a href="{{ config('app.url')}}/products">View Products</a>
    </div>
  </div>
</div>
```
 
- อ่านเพิ่ม [Laravel](http://www.thaiall.com/laravel)
 
---
 
# หลักการ Controller
 
```
จะพบแฟ้ม ProductController.php ใน ex4/app/Http/Controllers
public function create()
    {
        return view('createproduct'); // เพิ่มมาใหม่
    }
public function store(Request $request)
    {
        \App\Product::create([
          'name' => $request->get('name'),
          'description' => $request->get('description'),
          'price' => $request->get('price'),
          'count' => $request->get('count'),
        ]);
        return redirect('/products');
    }
 public function index()
    {
       $products = \App\Product::all();
        return view('viewproducts', ['allProducts' => $products]);
    }
```
 
- อ่านเพิ่ม [Laravel](http://www.thaiall.com/laravel)
 
---
 
# หน่วยที่ 12 การจัดการข้อมูล (CRUD Package)
 
## การติดตั้ง (Install)
## การสร้าง (Create)
## การอ่าน (Read)
## การปรับปรุง (Update)
## การลบ (Delete)
 
---
 
# การติดตั้ง (Install)
 
- **ครัช (CRUD)** มาจากคำว่า Create , Read , Update, Delete คือ ความสามารถพื้นฐานในการกระทำกับข้อมูล ซึ่งประกอบด้วย สร้าง อ่าน ปรับปรุง และลบ ในมุมมองของระบบฐานข้อมูล (Database System) จะมีฟังก์ชันพื้นฐานได้แก่ insert, select, update และ delete สำหรับระบบเว็บมีกลุ่มการจัดการข้อมูลที่เรียกว่า put/post (ทุกเขตข้อมูล), put/patch (บางเขตข้อมูล), get และ delete
- **CRUD** เป็นความสามารถพื้นฐานของระบบฐานข้อมูลที่ Framework ต่าง ๆ ให้การสนับสนุน เช่น Laravel Framework มี package ชื่อ appzcoder/crud-generator ที่ช่วยสร้าง CRUD, API, Controller, Model, Migration, View แบบอัตโนมัติ สั่งติดตั้งด้วย composer require appzcoder/crud-generator --dev แล้วดึง assets ขึ้นมาใช้งาน ด้วย php artisan vendor:publish --provider="Appzcoder\CrudGenerator\CrudGeneratorServiceProvider" หรืออีกเฟรมเวิร์คที่ได้รับความนิยม Codeigniter Framework ที่ @vitsavavit เขียนบล็อกไว้บน medium.com ซึ่งมีตัวอย่างการสร้าง CRUD ขึ้นมาเอง อธิบายตั้งแต่ขั้นตอนแรกบน Codeigniter ที่แสดงให้เห็นการทำงานร่วมกับ AdminLTE
- **MVC** มาจากคำว่า M=Model , V=View , C=Controller คือ สถาปัตยกรรมซอฟต์แวร์ชนิดหนึ่ง ออกแบบมาโดยแยกส่วนตรรกะเนื้อหา (Logic) และส่วนการป้อนข้อมูลและแสดงผล (GUI) ออกจากกัน จึงสามารถแยกการพัฒนา การทดสอบ และการดูแลรักษาได้
 
---
 
# การติดตั้ง (Install)
 
- **โมเดล (Model)** หมายถึง ส่วนที่ใช้ในการแปลการทำงานของระบบที่ส่งผลต่อโครงสร้างข้อมูล และปฏิสัมพันธ์กับระบบฐานข้อมูล
- **วิว (View)** หมายถึง มุมมองผลลัพธ์ที่ส่งผ่านโมเดลส่งออกไปแสดงผลในรูปแบบที่เหมาะสมกับส่วนประสานปฏิสัมพันธ์กับผู้ใช้
- **คอนโทรลเลอร์ (Controller)** หมายถึง ปฏิบัติการในการควบคุมข้อมูล และการประมวลผลของโปรแกรม และดำเนินการกับระบบฐานข้อมูล
 
---
 
# การติดตั้ง (Install)
 
```
CRUD generator package
https://medium.com/ideagital/มาใช้งาน-laravel-crud-generator-ตัวช่วยสร้าง-crud-สำเร็จรูป-c465ffe8f074
DOS> php artisan -V
Laravel Framework 7.16.1
- โหลด appzcoder/crud-generator
DOS> composer require appzcoder/crud-generator --dev
ดึง assets ขึ้นมาใช้งาน
DOS> php artisan vendor:publish --provider="Appzcoder\CrudGenerator\CrudGeneratorServiceProvider"
เริ่มสร้าง crud
http://www.thaiall.com/project/projectdbnwind.htm
DOS> php artisan crud:generate Categories --fields="categoryid#integer; categoryname#string; description#text" --view-path=northwind --controller-namespace=northwind --route-group=northwind --form-helper=html
พบแฟ้ม
ex1/database/migrations/2020_06_23_120044_create_categories_table.php
ex1/app/Category.php
ex1/app/Http/Controllers/Northwind/CategoriesController.php
ex1/resources/views/northwind/categories
- create.blade.php
- edit.blade.php
- form.blade.php
- index.blade.php
- show.blade.php
DOS> php artisan route:list มีให้เรียกใช้เยอะเลย
Route Name
categories.store
categories.index
categories.create
categories.update
categories.show
categories.destroy
categories.edit
mysql_start.bat
DOS> php artisan migrate
DOS> php artisan serve
127.0.0.1/northwind/categories
127.0.0.1:8000/northwind/categories
```
 
- อ่านเพิ่ม [https://en.wikipedia.org/wiki/Laravel](https://en.wikipedia.org/wiki/Laravel)
- อ่านเพิ่ม [Laravel](http://www.thaiall.com/laravel)
 
---
 
# การสร้าง (Create)
 
- **XAMPP** หรือ Appserv หรือ Webserver ที่บริการ Apache + PHP + MySQL
- *Composer* คือ เครื่องมือจัดการแพกเกจ หรือไลบรารี่ (Composer Library Mangement) ของภาษาพีเอชพี (PHP Language) ช่วยให้ค้นหา จัดการ และติดตั้งแพกเกจ หรือไลบรารี่ได้อย่างเป็นระเบียบได้ง่ายขึ้น ซึ่งเดิมจะต้องค้นหา (Search) ดาวน์โหลด (Download) แตกซิปไฟล์ทีละแฟ้ม (Unzip) และปรับคอนฟิก (Config)
แต่การมีคำสั่ง อาทิ composer -h หรือ composer list หรือ composer search blog หรือ composer install ที่กำหนดใน composer.json ทำให้การจัดการแพกเกจง่ายขึ้น
- *Node.js* หรือ Node คือ โปรแกรมสำหรับสั่งให้โปรแกรมภาษา Javascript ที่เขียนขึ้นทำงาน เช่น DOS> node hello.js
เป็น Node Package Manager (NPM  for Node.js packages) คือ โปรแกรมจัดการ Node
ซึ่งมี Package ให้จัดการเรียกใช้ได้จำนวนมาก เช่น DOS> npm i react และ npm i react-dom และ npm list สำหรับจัดการ React Library
เพื่อเรียกใช้งาน ส่วน NPX นั้นมาพร้อมกับ npm รุ่น 5.2 ขึ้นไป ใช้ npx -h พบว่าโปรแกรมนี้คือ Execute binaries from npm packages
เช่น npx create-react-app hello (ระหว่างติดตั้งจะมีการติดตั้ง react, react-dom, and react-scripts เพิ่มด้วย)
- *AdminLTE*  คือ เทมเพจที่สวยงามและนำมาใช้ได้ฟรี ทำงานด้วย Bootstrap ที่ถูกพัฒนาโดย Almsaeed Studio   [Adminlte-3.0.4](https://adminlte.io/themes/v3/index.html)
 
---
 
# ทดสอบตัวอย่างการใช้ Node.js เบื้องต้น
 
- DOS> npx create-react-app hello
- DOS> cd hello
- DOS> npm start
- DOS> explorer http://localhost:3000
- ซึ่งทั้ง NPM และ NPX มาพร้อมการติดตั้ง Node.JS ที่ download ได้จาก https://nodejs.org/en/download/
- อ่านเพิ่ม [w3schools.com](https://www.w3schools.com/nodejs/nodejs_get_started.asp)
- อ่านเพิ่ม [Laravel](http://www.thaiall.com/laravel)
 
---
 
# การอ่าน (Read)
 
- **การเรียกใช้ Node.js URL Module**
- อ่านจาก https://www.w3schools.com/nodejs/nodejs_url.asp
- สร้าง demo.js ที่มีคำสั่งเปิดบริการรองรับ URL Module
- สร้าง summer.html และ winter.html
- DOS> node demo.js
- DOS> explorer http://localhost:8080/ (404 Not Found)
- DOS> explorer http://localhost:8080/summer.html (ok)
 
```
<!DOCTYPE html><html><body>
<h1>Summer</h1><p>I love the sun!</p>
</body></html>
<!DOCTYPE html><html><body>
<h1>Winter</h1><p>I love the snow!</p>
</body></html>
```
 
- อ่านเพิ่ม [Laravel](http://www.thaiall.com/laravel)
 
---
 
# การปรับปรุง (Update)
 
- **changename.blade.php**
 
```
editplus.exe mytest/routes/web.php
    Route::get('/changename', function () { return view('changename'); });
    Route::post('/changename''test1Controller@changename');
editplus.exe resources/views/changename.blade.php
    <!doctype html><html><head><title>Changename</title></head><body>
    <div class="flex-center position-ref full-height">
    <div class="content">
    <form method="POST" action="{{ config('app.url')}}/changename">
    @csrf
    <h1>Changename</h1>
    <div class="form-input"><label>ID</label><input type="text" name="id"></div>
    <div class="form-input"><label>Name</label><input type="text" name="name"></div>
    <button type="submit">Submit</button>
    </form>
    </div></div></body></html>
https://github.com/scotch-io/laravel-database-course/blob/master/app/Http/Controllers/UserController.php
editplus.exe app/Http/Controllers/test1controller.php
    public function changename(Request $request)    {
        $myid = $request->id;
        $myname = $request->name;
        $chg = \App\test1::find($myid);
        $chg->name = $myname;
        $chg->save();
        // หรือ $affectedRows =  \App\test1::where("id", $myid)->update(["name" => $myname]);
        return redirect('/test1');
    }
```
 
- อ่านเพิ่ม [Laravel](http://www.thaiall.com/laravel)
 
---
 
# การลบ (Delete)
 
- ** ฟอร์มลบข้อมูล  deluser**
 
```
- คัดลอก welcome.blade.php เป็น deluser.blade.php
- เปิด web.php ใน ex1/routes มาแก้ไข
- เพิ่มบรรทัด
    Route::get('/delu''HomeController@delu');
    Route::post('/delu''HomeController@delbyid');
-  เปิด HomeController.php ใน ex1/app/Http/Controllers เพิ่ม public function delu(){ return view('deluser'); }
- เพิ่ม บรรทัดต่อไปนี้ ใน deluser.blade.php
    <form method="POST" action="{{ config('app.url')}}/delu">
    @csrf
    <div class="form-input"><input type="text" name="name"></div>
    <!-- input type="hidden" name="_token" value="{{ csrf_token() }}" -->
    <!-- TokenMismatchException in VerifyCsrfToken.php line 67: -->
    <button type="submit">Submit</button>
    </form>
- DOS> php artisan make:model mgmtusers (ไม่มีโมเดลต่างเครื่อง)
- แก้ไข mgmtusers.php ใน ex1/app เพิ่ม protected $table = 'users'; ถ้าไม่เพิ่มจะมีค่าปริยายเป็น "mgmtusers"
- เปิด HomeController.php ใน ex1/app/Http/Controllers เพิ่ม
    public function delbyid(Request $request)    {
        $myname = $request->name;
        $usr = \App\mgmtusers::where('name',$myname)->first();
        $usr->delete();
        return redirect('/welcome');
    }
```
 
- อ่านเพิ่ม [Laravel](http://www.thaiall.com/laravel)
 
---
 
# หน่วยที่ 13 รีแอ็ค (React)
 
## การติดตั้ง React
## การเขียนเว็บเพจด้วย React
 
---
 
# การติดตั้ง React
 
- *React* คือ JavaScript Library ถูกสร้างโดย Facebook มีแนวความคิด View แบบ MVC (Model View Controller) เหมาะกับการพัฒนาเว็บไซต์ฝั่ง Front-end
- *React Native* คือ เครื่องมือพัฒนา Mobile Application ที่เป็น Cross Platform Technology สามารถทำงานได้ทั้ง iOS และ Android โดยใช้ JavaScript ในการพัฒนา
- *Expo* คือ เครื่องมือช่วย build app ที่เขียนด้วย React native เพื่อนำ app ขึ้นบน iOS หรือ Android โดยไม่ต้องลง Android Studio หรือ Xcode สามารถส่งแอพขึ้น expo.io ด้วยคำสั่ง expo build:android หรือ build:ios ในบัญชีที่เคยสมัครไว้ และกำหนดค่าใน app.json ถูกต้อง
- *React Native* คือ การใช้ภาษา Javascript เป็นหลัก สำหรับสร้าง Mobile Application ทั้งบน iOS และ Android เป็น Cross Platform Technology ถูกสร้างโดยทีมงาน Facebook เป็น Open Source ที่มีนักพัฒนาสามารถสร้าง Library และเผยแพร่ให้ใช้งานได้จำนวนมาก โดยไม่มีค่าใช้จ่าย ส่วน React หรือ ReactJS คือ A JavaScript library for building user interfaces คล้ายกับ React Native ต่างกันที่วิธีการเขียน Component และ Execution
- อ่านเพิ่ม [react](http://www.thaiall.com/reactnative/)
 
---
 
# การเขียนเว็บเพจด้วย React
 
- การเรียกใช้ React หรือ ReactJS Component มีหลายวิธี อาทิ Simple Component, Stateful Component, Application และ Component Using External Plugins ซึ่งการเขียน React มี 2 แบบ คือ แบบใช้ JSX และ แบบไม่ใช้ JSX แล้วยังเขียน React ได้อย่างน้อย 3 วิธี คือ 1) ติดตั้งผ่าน CDN 2) ดาวน์โหลดไฟล์ JS และ 3) ติดตั้งผ่าน NPM (Node Package Manager)
- Node หรือ Node.js คือ โปรแกรมสำหรับสั่งให้โปรแกรมภาษา Javascript ที่เขียนขึ้นทำงาน เช่น DOS> node hello.js ส่วน NPM (Node Package Manager for Node.js packages) คือ โปรแกรมจัดการ Node ซึ่งมี Package ให้จัดการเรียกใช้ได้จำนวนมาก เช่น DOS> npm i react และ npm i react-dom และ npm list สำหรับจัดการ React Library เพื่อเรียกใช้งาน ส่วน NPX นั้นมาพร้อมกับ npm 5.2 ขึ้นไป ใช้ npx -h พบว่าโปรแกรมนี้คือ Execute binaries from npm packages. เช่น npx create-react-app hello (ระหว่างติดตั้งจะมีการติดตั้ง react, react-dom, and react-scripts เพิ่มด้วย) แล้ว cd hello แล้ว npm start และเปิด http://localhost:3000 ซึ่งทั้ง NPM และ NPX มาพร้อมการติดตั้ง Node.JS
- อ่านเพิ่ม [react](http://www.thaiall.com/reactnative/)
 
---
 
# การเรียกใช้ Node.js URL Module
 
- อ่านจาก https://www.w3schools.com/nodejs/nodejs_url.asp
- สร้าง demo.js ที่มีคำสั่งเปิดบริการรองรับ URL Module
- สร้าง summer.html และ winter.html
- DOS> node demo.js
- DOS> explorer http://localhost:8080/ (404 Not Found)
- DOS> explorer http://localhost:8080/summer.html (ok)
 
---
 
 # code
 
```
<h1>Summer</h1>
<p>I love the sun!</p>
 
<h1>Winter</h1>
<p>I love the snow!</p>
 ```
 
---
 
# code ใน demo.js
 
```
var http = require('http');
var url = require('url');
var fs = require('fs');
http.createServer(function (req, res) {
  var q = url.parse(req.url, true);
  var filename = "." + q.pathname;
  fs.readFile(filename, function(err, data) {
    if (err) {
      res.writeHead(404, {'Content-Type': 'text/html'});
      return res.end("404 Not Found");
    }
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(data);
    return res.end();
  });
}).listen(8080);
```
 
---
 
# หน่วยที่ 14 ไลน์ (Line)
 
## การใช้บริการ Line notify
## การเขียนสคริปต์ส่งข้อความหลายกลุ่ม
 
---
 
# การใช้บริการ Line notify
 
- *LINE* คือ แอพพลิเคชั่นที่ผสมผสานบริการ Messaging และ Voice Over IP เป็นแอพพลิชั่นที่สามารถแชท สร้างกลุ่ม ส่งข้อความ โพสต์รูปภาพ หรือโทรคุยกันแบบเสียงได้ โดยไม่ต้องเสียเงินเพิ่มเมื่อใช้บริการอินเทอร์เน็ตความเร็วสูง หรือเชื่อมต่อเครือข่ายไร้สาย สามารถใช้งานได้ทั้งบนอุปกรณ์เคลื่อนที่ และเครื่องคอมพิวเตอร์
- *LINE Official* คือ บริการบัญชีองค์กร เพื่อใช้สื่อสารในนามขององค์กร มีคุณสมบัติสนับสนุนการส่งข้อความถึงกลุ่มเป้าหมายได้จำนวนมากพร้อมกัน มีบริการแบบทดลองใช้ที่จำกัดการส่งได้ 500 ข้อความ และแบบชำระค่าบริการตามบริการที่ได้รับ เช่น แบบ Light จ่าย $50 ต่อเดือน ส่งได้ 15000 ข้อความ ส่วนแบบ Standard จ่าย $150 ต่อเดือน ส่งได้ 45000 ข้อความ
- อ่านเพิ่ม [line](http://www.thaiall.com/line/)
 
---
 
# การเขียนสคริปต์ส่งข้อความหลายกลุ่ม
 
- *LINE Notify* คือ บริการบัญชีบุคคลที่สมัครเข้าใช้บริการ ในการส่งข้อความถึงตนเองจากระบบภายนอก หรือส่งเข้ากลุ่มไลน์ที่ระบุก่อนสร้าง Token โดยสร้าง Token แต่ละบัญชีจะถูกผูกเข้ากับหนึ่งกลุ่มเป้าหมายเท่านั้น และต้องเพิ่มบัญชี Line Notify เข้าเป็นสมาชิกในกลุ่มเป้าหมายด้วย ช่วยในการส่งข้อมูลผ่านระบบเครื่องบริการได้โดยง่าย เช่น รายงานสถิติผู้ห่วยโควิต-19 ประจำวัน ส่งข้อความเตือนเมื่อมีกระทู้ใหม่เข้าในระบบเว็บบอร์ด เป็นต้น
- *LINE Bot* คือ บริการบัญชีบุคคลที่สมัครเข้าใช้บริการ และเชื่อมโยงกับเครื่องบริการที่มีตำแหน่งสคริปต์ชัดเจน ในการรับส่ง (Request, Response) ตามข้อมูลที่ไปตรวจสอบในแต่ละครั้ง สามารถส่ง Line Bot เข้าไปในหลายกลุ่มเป้าหมายพร้อมกัน เช่น บัญชี thaiallbot เพื่อให้ Line bot ช่วยสื่อสารโต้ตอบกับผู้ใช้ เช่น ถามเบอร์ ถามที่อยู่ ถามเวลา ถามค่าหน่วยกิต ถามข้อมูลบุคคล เป็นต้น
- อ่านเพิ่ม [sendnotify.php](http://www.thaiall.com/line/)
 
---
 
# การทำ Line notify ส่งข้อความเข้า Line group
- ลงทะเบียนขอรับ Token ที่ https://notify-bot.line.me/en/ ​
> login , Manage registered services (service provider), Add Service "thaiallnotify"
, Confirm email, My page, Generate token
ใส่ Token name ว่า thaiallnotifytoken เป็นต้น
เลือก Profile ของเรา หรือ กลุ่มที่จะส่งเข้าไป ซึ่งเลือกได้เพียงหนึ่งเท่านั้น
แล้วกด Generate token, ได้ Token : qCs..8Bu (43 char)
- เพิ่ม Line Notify เข้ากลุ่มเป้าหมาย
- ใช้ code วางในเครื่องบริการ แล้วเรียกใช้ code เช่น http://www.thaiall.com/line/sendnotify.php
 
---
 
# การสร้าง Token
 
- แต่ละ Token สำหรับ 1 กลุ่ม หรือตัวเรา
- ต้องเพิ่มบัญชี Line Notify เข้ากลุ่มเป้าหมายก่อนเริ่มต้นใช้ Line Notify ผ่านโปรแกรม
- ต้องเก็บ Token ให้ดี อย่าเผยแพร่
- เขียน code ใช้งาน เช่น http://www.thaiall.com/line/sendnotify.php
- https://medium.com/@visitwnk/ใส่ใจ-6-เตรียมความพร้อมก่อนการใช้-line-notify-70f7b50b6aa1
- https://medium.com/@nonzakiz/แจ้งเตือนcovidด้วย-line-notify-กับ-php-c6ca386e9d15
- https://medium.com/@nattaponsirikamonnet/มาลอง-line-notify-กันเถอะ-พื้นฐาน-65a7fc83d97f
- https://devbanban.com/?p=2547
- https://havespirit.blogspot.com/2017/02/line-notify-php.html
 
---
 
# ตัวอย่าง code ใน sendnotify.php แบบ curl
 
```
$headers = array('Content-Type: application/x-www-form-urlencoded','Authorization: Bearer ' . '.. token ..');
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, 'https://notify-api.line.me/api/notify');
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS, 'message='. 'hello' );
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec( $ch );
curl_close( $ch );
var_dump(json_decode($result,TRUE));
```
 
---
 
# ตัวอย่าง code ใน sendnotify.php แบบ file_get_contents
 
```
if(!ini_get('allow_url_fopen')) die('file_get_contents : Disabled');
$data = array("message" => 'hello');
$data = http_build_query($data,'','&');
$headerOptions = array('http'=>array('method'=>'POST',
'header'=> 'Content-Type: application/x-www-form-urlencoded\r\n'
.'Authorization: Bearer '.'.. token ..'.'\r\n'.'Content-Length: '.strlen($data).'\r\n','content' => $data),);
$context = stream_context_create($headerOptions);
$result = file_get_contents('https://notify-api.line.me/api/notify',FALSE,$context);
$res = json_decode($result);
```
 
---
 
# หน่วยที่ 15 มัลติมีเดีย(Multimedia)
 
## สื่อแบบ Audio และ Video
## สื่อแบบ Flash
 
---
 
## สื่อแบบ Audio และ Video
 
```
<audio controls>
  <source src="horse.mp3" type="audio/mpeg">
  Your browser does not support the audio element.
</audio>
```
 
- อ่านเพิ่ม [media](http://www.thaiall.com/media)
- อ่านเพิ่ม [w3schools.com](https://www.w3schools.com/tags/tag_audio.asp)
 
---
 
# สื่อแบบ Flash
 
- *แฟล็ช (Flash หรือ Macromedia Flash)* คือ แฟ้มที่มีนามสกุล swf(Shock Wave Flash) เป็น Multimedia file ที่ได้รับการยอมรับอย่างมาก สามารถติดต่อสื่อสารกับผู้ใช้แบบ Interactive ด้วยภาพ และเสียง เดิมมีเพียงโปรแกรมจากค่าย Macromedia เท่านั้นที่ใช้สร้างแฟ้ม swf ปัจจุบันนักพัฒนาได้สร้างโปรแกรม เพื่อใช้สร้าง swf อย่างง่าย และโปรแกรมหนึ่งที่ได้รับความนิยม คือ Swish ใช้งานได้ง่าย แม้จะไม่มีสมบูรณ์เท่า Macromedia Flash แต่ก็ใช้สร้างแฟ้ม swf ได้ดีเป็นที่น่าพอใจ เช่น การใส่ภาพนิ่ง ภาพเคลื่อนไหว เสียง หรือการใส่ action อย่างง่าย
- **กำเนิดในปี 1996 (2539)** ในชื่อ FutureSplash ที่เป็น vector-based animation แล้วปี 2005 (2548) Macromedia Flash ก็ถูกซื้อโดย Adobe แล้วปี 2011 (2554) ประกาศยกเลิกการพัฒนา [Adobe Flash](https://www.sanook.com/hitech/1430657/) แล้วปี 2020 (2563) บริษัท [Adobe](https://theblog.adobe.com/adobe-flash-update/) ประกาศยุติการสนับสนุน Flash ในทุก Platform อย่างเป็นทางการ อ่านจากหัวข้อ "Flash & The Future of Interactive Content" พบว่าหมดเวลาของ Flash ซึ่งปัจจุบันมีเทคโนโลยีใหม่ ที่เข้ามาแทนที่ คือ HTML5 มารองรับการทำงานของสื่อมัลติมีเดียบน Web Browser แทน Adobe Flash
 
```
<object id="lesson0201">
  <embed name="lesson0201" src="lesson0201.swf" width="100" height="80"
    type="application/x-shockwave-flash">
  </embed>
</object>
```
 
- อ่านเพิ่ม [flash player](http://www.thaiall.com/flash/)
- อ่านเพิ่ม [e-book](http://www.thaiall.com/e-book/)
 
---
 
# End
 
![Burin rujjanapan - Nation University](http://www.thaiall.com/me/nburin.jpg)
 
---
 
# โครงงานระบบสั่งซื้อบริษัท Northwind (1/4)
 
- http://www.thaiall.com/php/assignment.htm
 
กิจกรรมที่ต้องมีในตัวโครงงาน
1. ระบบ Sign in และ Sign out
+ ตรวจสอบความเป็นสมาชิกก่อนเข้าใช้งานระบบ จึงต้องมีตาราง Members
+ แบ่งประเภทเป็น Admin และ User ซึ่งต้องใช้ Session / Cookie และ Bootstrap
2. ระบบ member
+ สามารถ insert, delete, update : Members ซึ่งจัดการข้อมูลได้เฉพาะ admin
3. ข้อมูลหลัก คือ ตารางทั้ง 8 ใน Northwind
+ สามารถ select, insert, delete, update ได้ทุกตาราง
4. ระบบ menu อาจเป็น Top menu หรือ Left menu
+ ซึ่ง menu ของ admin กับ user จะต่างกันไป
 
---
 
# โครงงานระบบสั่งซื้อบริษัท Northwind (2/4)
 
5. เพิ่ม plug-in ต่าง ๆ
+ pyramid ทั้ง 36 โปรแกรม
+ ระบบจัดการข้อมูล s0 - s7 เพื่อจัดการ 8 ตารางของ Northwind
+ โดยมีการตรวจสอบสิทธิ์ของผู้ใช้ ซึ่งต้องเป็น admin จึงจะใช้งานได้
+ มี header & footer อย่างสวยงามทุกหน้า
6. หน้าสั่งซื้อหลัก
+ เป็นฟอร์มที่ทำงานร่วมกันระหว่าง orders กับ order details ได้
+ ตัด stock ใน products ได้ (UnitsInStock)
7. การทำงานในหน้าสั่งซื้อ
+ มีการกรอกข้อมูลในฟอร์มเพื่อสั่งซื้อได้ แต่ไม่นำข้อมูลเข้าทันที
+ อาจใช้ session หรือ temporary table มารับข้อมูลส่วนนี้
หรือใช้ Technique อื่นได้ แต่ต้องอธิบายว่าทดแทนกันได้อย่างเข้าใจ
- thaicreate.com/../php-shopping-cart-session-array
- thaiall.com/php/training492.htm
 
---
 
# โครงงานระบบสั่งซื้อบริษัท Northwind (3/4)
 
8. การจัดการข้อมูลที่ตรวจสอบเป็นอย่างดี
+ จำนวนไม่น้อยกว่า 3 ฟอร์ม (ไม่ซ้ำ) เช่น ตัวอย่าง 5 แบบนี้
+ ลบ product ได้ แต่ต้องตรวจว่าไม่มีรายการใน order details
+ ลบ supplier ได้ แต่ต้องไม่มีรายการใน products
+ ลบ customer ได้ แต่ต้องไม่มีรายการใน orders
+ เปลี่ยนรหัส categoryID ได้ แต่ต้องไปเปลี่ยนใน products ทั้งหมด
+ เปลี่ยน ราคา ได้ แต่ต้องไม่มีรหัสสินค้าใน order details
9. มีรายงานที่ใช้ inner join 3 ตาราง ไม่น้อยกว่า 3 รายงาน (ไม่ซ้ำ)
+ ตัวอย่าง select 19 แบบ
+ อาจใช้ bootstrap + table
10. มีรายงานที่ใช้ group by ไม่น้อยกว่า 3 รายงาน (ไม่ซ้ำ)
+ ตัวอย่าง select 19 แบบ
11. มีรายงานที่ใช้การเลือกข้อมูลตามช่วงข้อมูลได้ ไม่น้อยกว่า 3 รายงาน (ไม่ซ้ำ)
เช่น ช่วงวันที่ ช่วงเดือน หรือช่วงเลขที่ใบสั่งซื้อ
เช่น if(a > x1 && a <= x2) { } หรือ where ใน sql
 
---
 
# โครงงานระบบสั่งซื้อบริษัท Northwind  (4/4)
 
12. Header และ Footer มีในทุกรายงาน
โดยเฉพาะตามข้อ 9 - 11 ที่ include หรือ require เข้าไป
13. ใช้ Ajax หรือ Javascript ประกอบในการพัฒนาระบบอย่างเหมาะสม
14. งานทั้งหมดใน github.com
+ มี Source code, Powerpoint แชร์ใน github.com
+ ทำงานได้จริงใน Free Web Hosting 2 - 3 ตัว
15. จัดทำ MS Powerpoint เพื่อนำเสนอหน้าชั้น
- วัตถุประสงค์การพัฒนา
- นโยบายตามแนวการเขียน DFD
- โครงสร้างแฟ้ม หรือ ER
- ตัวอย่างหน้าจอภาพ อย่างน้อยครบทุกระบบ
 
---
 
# ประเด็นที่น่าสนใจ (1/2)
 
- คำสำคัญ http://www.thaiall.com/web2/key.php
- Glossary http://www.thaiall.com/glossary/index.html
- Term http://www.thaiall.com/quiz/terms.php
- e-book http://www.thaiall.com/e-book/
- Markdown http://www.thaiall.com/markdown/
- Paint http://www.thaiall.com/paint/index.html
- Blockly http://www.thaiall.com/blockly/
- Scratch http://www.thaiall.com/scratch/index.html
- Python http://www.thaiall.com/python/index.html
- React http://www.thaiall.com/react
- Flash http://www.thaiall.com/flash/indexo.html
- Docker http://www.thaiall.com/docker/
- Classstart http://www.thaiall.com/classstart/index.html
- Moodle http://www.thaiall.com/moodle
- Android app http://www.thaiall.com/android/index.html
- Wordpress http://www.thaiall.com/wordpress
- Regular Expression http://www.thaiabc.com/article/teachpro.htm
- Regex บน Editplus https://web.facebook.com/thaiall/photos/a.10152906385302272/10156904156932272/
 
---
 
# ประเด็นที่น่าสนใจ (2/2)
 
```
"Technology:
  Laravel - php, Django - python , Node.js , React
  Mobile , Desktop , Server , API, Library, Bootstrap, JQuery
  Social media, Blog, Retouch, Optimization, SEO, Line notify, E-book
การใช้บริการ Free webhosting หรือติดตั้ง web server
  http://www.thaiall.com/blog/burin/8834/ - ทดสอบ Free web hosting
  http://www.thaiall.com/omni/indexo.html - hosting และ script
การใช้ FTP ทั้ง command line และ filezilla หรือโปรแกรมอื่น
การเขียน Markdown นำเสนอผลงาน
  http://www.thaiall.com/md/ - ใช้งานบน github.com
การบีบอัดแฟ้ม .rar หรือ .zip แบบกำหนดรหัสผ่าน
การสร้างแฟ้มจำนวนมาก นับแสนแฟ้ม นับล้านแฟ้ม ที่มีเนื้อหา และด้วยภาษาต่าง ๆ เช่น php หรือ java หรือ python หรือ C#
  http://www.thaiall.com/php/ - ต.ย.73 สร้างหมื่นแฟ้มใช้เวลา 10 วินาที
  http://www.thaiall.com/class/ - สร้างแฟ้มจำนวนมาก ด้วย จาวา
  http://www.thaiall.com/python/ -  สร้างแฟ้มขนาด 1 MB
 
การเขียนโปรแกรมจัดการข้อมูล
การใช้ phpmyadmin หรือ command line จัดการ mysql
การ select ข้อมูลแบบ inner join
การ insert , delete , update
การจัดการข้อมูลด้วย php 357
การค้นหาจุดผิดพลาด 20 จุด ใน PHP
 
การเขียน CSS แบบ internal, external , in line
การสร้างอัลบั้มตาม template
การใช้ Web template เช่น adminlte
การใช้จัดการข้อมูลใน mysql บน  adminlte template แบบตารางเดียว
การใช้จัดการข้อมูลใน mysql บน  adminlte template แบบหลายตาราง
 
การใช้ vscode เปลี่ยนรู้แบบข้อมูล ระหว่าง json กับ csv กับ sql
การใช้งาน google chart + php + mysql
การใช้งาน api หรือ javascript library เช่น google map
การใช้ HTML5 วาดภาพ
การใช้ Python - Turtle วาดภาพ
 
การใช้ Wordpress เขียน blog + homepage
การใช้ Woocommerce บน wordpress มีการเพิ่มสินค้า การสั่งซื้อ การจัดการบัญชี
การจัดการ repository บน github.com และใช้ git command และใช้ vscode
การใช้ CSS แบบ external file, internal file และ inline
การใช้ html + javascript + css + library ภายนอก
การเขียนโปรแกรม java ประมวลผลได้ csv, text, json ที่ประยุกต์ใช้ template แล้วสร้างแฟ้ม
การสร้างแอพแบบ no code ด้วย thunkable หรือ appinventor.mit.edu
การสร้าง mobile app บน thunkable.com หรือ appinventor.mit.edu ที่ใช้ webview
  web view - google form
การเขียนเว็บเพจ บน google drive หรือ one drive
  แล้วใช้บริการ https://drv.tw/ สร้าง webpage link
 
การเขียนคำสั่ง SQL ผ่าน command line และ phpmyadmin ให้ได้ผลตามที่ต้องการ
ระบบเมนู ควบคุมด้วย user หรือ admin ที่ใช้ php + mysql
การเขียนโปรแกรมจัดการข้อมูล แบบหลายตาราง และแยกแฟ้มโปรแกรม
การเขียนรายงานการวิจัย
```
 
---
 
# สรุปการออกแบบ joom.htm
 
- http://www.thaiall.com/actress/joom.htm
 
1. ออกแบบให้สามารถคัดลอกแฟ้ม joom.htm ไปวางใน localhost แล้วเปิดใช้งานได้ อ้างอิงรูปจากภายนอก กำหนด css แบบ in file และเรียกใช้ js ผ่าน cdn
2. font-family:'WRTishkid2' กำหนดให้เรียกใช้แบบกำหนดแฟ้มไว้ใน Host หากใช้ภายนอกต้องคัดลอกฟอนต์ไปวางใน Folder เดียวกัน หรือจะฝึกเปลี่ยนไปใช้ Google font ซึ่งสาเหตุที่ไม่เรียกใช้แฟ้ม font จากภายนอก เนื่องจากติดขัดนโยบาย CORS (Cross-Origin Resource Sharing เป็นประเด็นที่ป้องกันการเรียกใช้ทรัพยากรข้ามเครื่อง)
3. ฝากไว้กับ One Drive และ Google Drive จะต้องแชร์ Folder แบบ public แล้วใช้บริการของ drv.tw ช่วยเปลี่ยน Drive เป็น Webpage
4. ฝากไว้กับ Google site แต่เลือกใช้ embed url บน template ที่อ้างอิงจาก thaiall.com ไปแสดงผล
5. ฝากไว้กับ Wix.com แต่เลือกใช้ iframe บน template ที่อ้างอิงจาก github.io ไปแสดงผล
6. ฝากไว้กับ Github.io ซึ่งแสดง font อย่างถูกต้อง เนื่องจากมี rsp_wr_tish_kid2.ttf อยู่ใน folder เดียวกัน
7. ฝากไว้กับ Freewha.com (Free Web Hosting Area .com) ซึ่งบริการ http จึง load ภาพจาก thaiabc.com อย่างถูกต้อง
8. ฝากไว้กับ Heroku.com ซึ่งเลือก http หรือ https ได้ ทำให้ผลลัพธ์การเรียกภาพจากภายนอกมาแสดงผล แตกต่างกัน
9. ฝากไว้กับ Firebase ซึ่งบริการเฉพาะ https ทำให้การเรียกภาพจาก host ที่บริการเฉพาะ http แสดงผลไม่ถูกต้อง
10. ฝากไว้กับ thaiall.com/blog ที่ใช้ iframe ซึ่งเลือก http หรือ https ได้ แต่ถ้าใช้ https จะไม่แสดงผล ต้องเลือก http
11. ฝากไว้กับ wordpress.com ไม่ได้ เนื่องจากไม่มีบริการ iframe ต้องใช้การวางภาพ และ link เชื่อมออกไปภายนอก
12. สาเหตุที่พยายามใช้ http เนื่องจากใช้บริการ truehits.net ที่ไม่ได้สมัครใช้บริการแบบ https
 
---
 
# การเรียนรู้ในศตวรรษที่ 21 (1/6)
 
- ฟังเพื่อนอาจารย์พูดคุยกันอีกครั้ง เรื่อง ทักษะที่จำเป็นสำหรับการเรียนรู้ในศตวรรษที่ 21
- พบในคู่มือการประกันคุณภาพการศึกษาภายใน 2557 หน้า 66 ep3 ปกชมพู
- พบว่าเลขหน้าไม่ตรงกับเล่ม ed1 ปี 2558 ที่ผมมีอยู่ ที่อยู่ในหน้า 67 ปกม่วง
- อ่านเพิ่ม [คู่มือประกันคุณภาพภายใน](https://qm.kku.ac.th/downloads/hbMUA57ed3.pdf)
- อ่านเพิ่ม [ประกันคุณภาพภายใน](http://www.thaiall.com/iqa)
- อ่านเพิ่ม [thaiall.com/tec/digital_competencies.htm](http://www.thaiall.com/tec/digital_competencies.htm)
- อ่านเพิ่ม [คู่มือพลเมืองดิจิทัล](http://www.thaiall.com/tec/digitalCitizenship-book-ok.pdf)
 
---
 
# ทักษะที่จำเป็นสำหรับการเรียนรู้ในศตวรรษที่ 21 (2/6)
 
1. กลุ่มวิชาหลัก (Core Subjects)
2. กลุ่มทักษะชีวิต และอาชีพ (Live and career skills)
3. กลุ่มทักษะการเรียนรู้และนวัตกรรม (Learning and innovation skills)
4. กลุ่มทักษะสารสนเทศ สื่อ และเทคโนโลยี (Information, media and technology skills)
 
---
 
# ทักษะสำคัญที่คนส่วนใหญ่ให้ความสำคัญมาก (3/6)
 
- **กลุ่มทักษะการเรียนรู้และนวัตกรรม**
 
1. การคิดเชิงวิพากษ์และการแก้ปัญหา (Critical thinking and problem solving)
2. นวัตกรรมและการสร้างสรรค์ (Innovation and creativity)
3. การสื่อสารและความร่วมมือกัน (Communication and collaboration)
 
- **กลุ่มทักษะสารสนเทศ สื่อ และเทคโนโลยี (Information , media and technology skills)**
 
1. การรู้สารสนเทศ (Information Literacy)
2. การรู้สื่อ (Media Literacy)
3. การรู้ ICT (ICT Literacy) (ICT = Information and Communication Technology = เทคโนโลยีสารสนเทศ และการสื่อสาร)
 
- **กลุ่มทักษะชีวิตและอาชีพ (Life and career skills)**
 
1. ความสามารถในการปรับตัวและยืดหยุ่น (Adaptability and flexibility)
2. ความคิดริเริ่มและการเรียนรู้ได้ด้วยตนเอง (Initiative and self-direction)
3. ปฏิสัมพันธ์ทางสังคม และข้ามวัฒนธรรม (Social and cross-cultural interaction)
4. ความรับผิดชอบและความสามารถผลิตผลงาน (Accountability and productivity)
5. ความเป็นผู้นำและรับผิดชอบต่อสังคม (Leadership and social responsibility)
 
---
 
# ทักษะที่จำเป็นสำหรับการเรียนรู้ในศตวรรษที่ 21 (4/6)
 
![หน้า 66 ในคู่มือประกัน](http://www.thaiall.com/iqa/handbook_mua57ed3_p66.png)
 
---
 
# ความเป็นพลเมืองดิจิทัล (5/6)
 
- **ความเป็นพลเมืองดิจิทัล** คือ พลเมืองผู้ใช้งานสื่อดิจิทัลและสื่อสังคมออนไลน์ที่เข้าใจบรรทัดฐาน
ของการปฏิบัติตัวให้เหมาะสม และมีความรับผิดชอบในการใช้เทคโนโลยี
โดยเฉพาะอย่างยิ่งการสื่อสารในยุคดิจิทัลเป็นการสื่อสารที่ไร้พรมแดน
 
- การเป็นพลเมืองดิจิทัลควรมีทักษะที่สำคัญ 8 ประการ
1. ทักษะในการรักษาอัตลักษณ์ที่ดีของตนเอง (Digital Citizen Identity)
2. ทักษะในการรักษาข้อมูลส่วนตัว (Privacy Management)
3. ทักษะในการคิดวิเคราะห์มีวิจารณญาณที่ดี (Critical Thinking)
4. ทักษะในการจัดสรรเวลาหน้าจอ (Screen Time Management)
5. ทักษะในการรับมือกับการคุกคามทางโลกออนไลน์ (Cyberbullying Management)
6. ทักษะในการบริหารจัดการข้อมูล ที่ผู้ใช้งานมีการทิ้งไว้บนโลกออนไลน์ (Digital Footprints)
7. ทักษะในการรักษาความปลอดภัยของตนเองในโลกออนไลน์ (Cybersecurity Management)
8. ทักษะในการใช้เทคโนโลยีอย่างมีจริยธรรม (Digital Empathy)
 
- https://www.salika.co/2019/04/03/8-skills-for-digital-citizenship/
- https://thaidigizen.com/wp-content/uploads/2018/06/DigitalCitizenship-Book-ok.pdf
- https://www.thaihealth.or.th/Content/48161-citizen
 
---
 
# ทักษะจำเป็น เพื่อก้าวสู่การเป็นพลเมืองดิจิทัล (6/6)
 
![ความเป็นพลเมืองดิจิทัล](http://www.thaiall.com/tec/digital_citizen_skill.jpg)
 
---
 
# 5 ซอฟต์สกิล และ 5 ฮาร์ดสกิล เพื่อได้งานและรักษางาน
 
- **ทักษะด้านความรู้ / ฮาร์ดสกิล (Hard Skills)** คือ ทักษะด้านความรู้ที่ใช้ในการทำงาน ความสามารถเชิงเทคนิคที่สั่งสอนกันได้ วัดผลการเรียนรู้ วัดความรู้ความสามารถได้ ทักษะด้านอารมณ์ / ซอฟต์สกิล (Soft Skills) คือ ทักษะด้านอารมณ์ที่ใช้ในการอยู่ร่วมกับผู้อื่น รวมถึงการพัฒนาตัวเอง ซึ่งการทำงานในปัจจุบันต้องมีทั้ง Soft Skills และ Hard Skills เพราะการจะได้งานต้องมี Hard Skills แต่การรักษางานไว้แน่น ได้รับการสนับสนุนและทำงานได้อย่างมีความสุขจำเป็นต้องมี Soft Skills
- อ่านจาก **Weforum.org , Linkedin.com และ Nowasu** พบว่า รายงานของ World Economic Forum พูดถึง 10 ทักษะที่บริษัททั่วโลกต้องการ ที่เก็บรวบรวมจากเว็บไซต์จัดหางาน LinkedIn ที่เป็นทักษะของผู้ใช้งานที่ได้รับการว่าจ้างสูงสุด จากสมาชิกของ LinkedIn 100,000 คน แบ่งเป็น 5 Soft Skills ได้แก่ 1) ความคิดสร้างสรรค์ 2) การพูดโน้มน้าวผู้อื่น 3 ) การทำงานร่วมกับผู้อื่น 4 ) การปรับตัว 5 ) การบริหารเวลา 5 Hard Skills ได้แก่ 1) การใช้งานระบบคลาวด์และเครือข่าย 2) การใช้ปัญญาประดิษฐ์ 3) การวิเคราะห์เชิงเหตุผล 4) การบริหารบุคคล 5) การออกแบบประสบการณ์ให้กับผู้ใช้งาน
- [thaiall.com/job/appjob.htm](http://www.thaiall.com/job/appjob.htm)
 
---
 
# 5 ซอฟต์สกิล และ 5 ฮาร์ดสกิล เพื่อได้งานและรักษางาน
 
![ซอฟต์สกิล และ ฮาร์ดสกิล](http://www.thaiall.com/job/5softhardskills.jpg)
 
---
 
#  สุดยอด 3 เรื่องเล่าเร้าพลังใจ
 
1. ไล่ตงจิ้น ลูกขอทานผู้ไม่ยอมแพ้ (thaijo)
2. น็อตตัวละแสน (สิริทัศน์ สมเสงี่ยม)
3. บะหมี่น้ำหนึ่งชาม (คลิ๊ปผมเอง)
 
- http://www.thaiall.com/web2/key.php?topic=beggar_child&dir=ZXRoaWNz&file=aW5kZXguaHRtbA==
- http://www.thaiall.com/ethics/
 
---
 
# python : introduction
 
- **ภาษาไพทอน (Python Language)** คือ ภาษาคอมพิวเตอร์ประเภทโอเพนท์ซอร์ท (Open Source Computer Language)
สำหรับพัฒนาแอพพลิเคชั่นโดยไม่ยึดติดกับแพลตฟอร์ม (Platform) และใช้งานได้หลายประเภท ทั้งประมวลผลผ่านไอดีอี ผ่านคอมมานด์ไลน์
หรือเป็นเว็บเพจแบบไดนามิก กรณีที่ทำงานบนเครื่องบริการเว็บ (Web Server) แล้วได้รับคำร้องจากผู้ใช้
ระบบจะส่งโค้ดให้กับตัวแปลภาษาประมวลผลแล้วส่งข้อมูลกลับไปยังเครื่องของผู้ใช้ที่ร้องขอ ในรูปข้อความ เอชทีเอ็มแอล ภาพ หรือข้อมูลในลักษณะอื่น
รูปแบบภาษามีรากฐานมาจากภาษาซี เป็นภาษาที่สามารถพัฒนาให้ใช้งานแบบโต้ตอบกับผู้ใช้ได้
จุดที่แตกต่างกับภาษาอื่น คือ การรวบรวมจุดเด่นของแต่ละภาษามารวมเข้าด้วยกัน
 
```
https://www.python.org/downloads/
https://www.python.org/ftp/python/3.9.6/python-3.9.6-amd64.exe (25 MB)
1) Search , python  2) Start button, IDLE - window form 2) Start button, Python - command line* 4) Run, py 5) run, cmd, py
C:\> py
>>> exit() หรือ ctrl-break
C:\> nodepad myserver.py (210 bytes)
import os
from http.server import HTTPServer, CGIHTTPRequestHandler
os.chdir('.')
server_object = HTTPServer(server_address=('', 80), RequestHandlerClass=CGIHTTPRequestHandler)
server_object.serve_forever()
C:\> py myserver.py (Allow access)
http://localhost in chrome หรือ http://localhost/myserver.py in chrome
Ctrl-Break to stop server
```
 
---
 
# python : cgi-bin
 
```
สร้าง folder cgi-bin ใน root directory
ใช้ notepad สร้างแฟ้ม hello.py ใน cgi-bin
print ("Content-Type: text/html\n\n")
print ("Hello World!")
เปิด localhost/cgi-bin/hello.py จะเห็นเฉพาะ Hello World!
ถ้าสร้างแฟ้ม hello.py ใน root directory แล้วเปิด จะเห็น source code
```
 
---
 
# python : flask
 
```
ติดตั้ง Flask
C:\> py -m pip install Flask
C:\> notepad code1.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def Home():
   return "<h1>Hello</h1>"
if __name__ == '__main__':
 app.debug = True
 app.run(host='0.0.0.0', port=8000)
C:\> py code1.py
 explorer http://172.50.0.7:8000/
 Ctrl-C to quit
https://www.borntodev.com/2020/02/19/ทำเว็บด้วย-python/
```
 
---
 
# python : django
 
```
Django framework บน python
C:\> py -m pip install --upgrade pip
C:\> py -m pip install django
C:\> py -m pip uninstall django
C:\> py -m pip install -e django
C:\> cd C:\Users\LAB\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python 3.9
C:\> cd C:\Users\LAB\AppData\Local\Programs\Python\Python39
https://www.stanleyulili.com/django/how-to-install-django-on-windows/
C:\django> py -m venv venv
C:\django> venv\Scripts\activate
(venv) C:\Users\LAB\django>
(venv) C:\Users\LAB\django> pip install django
(venv) C:\Users\LAB\django> django-admin --version (3.2.5)
(venv) C:\Users\LAB\django> django-admin startproject testsite
(venv) C:\Users\LAB\django> cd testsite
(venv) C:\Users\LAB\django> dir
(venv) C:\Users\LAB\django> python manage.py runserver
explorer http://127.0.0.1:8000/
Ctrl-Break to quit
>>> import django
>>> django
<module 'django' from 'C:\\Users\\LAB\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\django\\__init__.py'>
https://codeburst.io/%E0%B9%80%E0%B8%A3%E0%B8%B4%E0%B9%88%E0%B8%A1%E0%B8%9E%E0%B8%B1%E0%B8%92%E0%B8%99%E0%B8%B2-web-application-%E0%B8%81%E0%B8%B1%E0%B8%9A%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2-python-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-django-framework-38ce132ac706
```
 
---
 
# python : function
 
```
C:\> nodepad input.py
def checkName(name):
    checkName = input("Name :" + name + "?")
    if checkName.lower() == "yes":
        print("Hello,", name)
    else:
        print("no boy")
checkName("boy")
C:\> py input.py
```
 
---
 
# python : File 1 MB
 
```
f = open("d:\onembpy.htm","w+")
v =""
for i in range(100000): v+=("12345678\n")
f.write(v)
f.close()
```
 
---
 
# python : logo - turtle
 
- https://www.calormen.com/jslogo/
 
```
from turtle import *
bgpic("roadmap.png")
color('red', 'yellow')
begin_fill()
while True:
    forward(200)
    left(160) # 170
    if abs(pos()) < 1:
        break
end_fill()
penup(); setpos((-100,100))
pendown()
right(90)
forward(40); left(90)
forward(70); right(90)
forward(120); left(90)
forward(60); left(90)
forward(75); right(90)
forward(75)
done()
```
 
---
 
# อ่านหนังสือ e-book (1/3)
 
- http://www.thaiall.com/e-book
 
```
"แหล่งอีบุ๊ค (E-book Center)
1.  ฟรีอีบุ๊ค ด้านสุขภาพ        https://multimedia.anamai.moph.go.th/ebooks/
2.  ฟรีอีบุ๊ค ด้านสุขภาพ        https://www.free-ebooks.net/health
3.  ฟรีอีบุ๊ค กรมสุขภาพจิต  https://new.camri.go.th/ebook
4.  ฟรีอีบุ๊ค สถาบันการจัดการระบบสุขภาพ http://hsmi.psu.ac.th/?page_id=1714
5.  ฟรีอีบุ๊ค มหาวิทยาลัยรามคำแหง   http://e-book.ru.ac.th/
6.  ฟรีอีบุ๊ค ด้านคอมพิวเตอร์   https://goalkicker.com
7.  ฟรีอีบุ๊ค ด้านคอมพิวเตอร์   https://riptutorial.com/ebook/
8.  ฟรีอีบุ๊ค ด้านคอมพิวเตอร์   https://allitbooks.net/
9.  ฟรีอีบุ๊ค ด้านภาษาอังกฤษ    https://indeedproject.org/free-ebooks/
10. ร้านหนังสืออีบุ๊ค   https://www.packtpub.com/
11. ร้านหนังสืออีบุ๊ค   https://www.se-ed.com/e-books.aspx
12. ร้านหนังสืออีบุ๊ค   https://www.naiin.com/e-books/
13. ร้านหนังสืออีบุ๊ค   https://www.chulabook.com/en/main-ebook
14. ร้านหนังสืออีบุ๊ค   https://www.ookbee.com/
15. ร้านหนังสืออีบุ๊ค   https://www.mebmarket.com/
16. ร้านหนังสืออีบุ๊ค   https://www.ebooks.in.th/
17. ร้านหนังสืออีบุ๊ค   http://store.2ebook.com/
18. ร้านหนังสืออีบุ๊ค   https://www.ebooks.com/en-th/
19. ร้านหนังสืออีบุ๊ค   https://books.google.com/
20. ร้านหนังสืออีบุ๊ค   https://www.barnesandnoble.com/"
```
 
---
 
# อ่านหนังสือ e-book (2/3)
 
```
"ระบบห้องสมุดออนไลน์ (Online library system)
1. ห้องสมุดออนไลน์สถาบัน Goethe
2. ห้องสมุดพระพุทธศาสนานานาชาติมหาสิรินาถ
3. ห้องสมุดมหาจุฬาลงกรณราชวิทยาลัย
4. ห้องสมุดออนไลน์ในประเทศไทย
5. Globethics.net
6. Buddhist eLibrary
7. Open Library
8. American Library
9. Online Christian Library
10. Library of World Religions and Faith Traditions
11. Islamic Library
12. Al Islam
13. Jewish Virtual Library
- แนะนำแหล่งสืบค้นข้อมูล https://www.ium-thai.org/blank-18"
```
 
---
 
# อ่านหนังสือ e-book (3/3)
 
```
"แหล่งสืบค้นเอกสารทั่วไป/เอกสารเฉพาะด้าน (Document search engine)
1. ฐานข้อมูลวารสารอิเล็กทรอนิกส์กลาง
2. เครือข่ายห้องสมุดอุดมศึกษาไทย
3. รวมข้อมูลประชุมวิชาการ
4. Government open data
5. อาร์ไคฟ์เก็บเว็บไซต์
6. วิกิพีเดียร์
7. พจนานุกรม
8. อักขราวิสุทธิ์
9. แหล่งเผยแพร่ scribd.com
10. แหล่งเผยแพร่ slideshare.net
11. แหล่งเผยแพร่ issuu.com
12. แหล่งเผยแพร่ flipsnack.com
```
 
---
 
# บริการประมวลผลออนไลน์ (1/22)
 
- http://www.thaiall.com/tec/online_service.htm
- **แปลง word เป็น pdf**
- เมื่อเปิด word ในเครื่องอื่น อาจมีรูปแบบต่างไป จึงนิยมแปลงเป็น pdf ให้รูปแบบคงที่ ทั้งฟอนต์และตำแหน่งเดิม
 
```
 ```
  
 ---
 
# เพิ่มเลขหน้าให้ pdf (2/22)
 
- การนำ pdf หลายแฟ้มมาต่อกัน หรือแฟ้มเดิมไม่มีเลขหน้า เมื่อต้องการใส่เลขหน้าชุดใหม่ จึงได้สั่งเพิ่มเลขหน้า
 
```
 ```
  
 ---
 
# ปลดล็อกรหัสแฟ้ม pdf (3/22)
 
- แฟ้มที่ถูกป้องกันด้วยการใส่รหัสผ่าน เพื่อจำกัดการเปิดหรือแก้ไข ในกรณีที่เราใส่รหัสล็อก แต่ลืมก็สั่งปลดล็อกได้
 
```
 ```
  
 ---
 
# ลดขนาดแฟ้มให้เล็กลง (4/22)
 
- ภาพที่เรามีมักเป็นภาพต้นฉบับที่มีความละเอียดสูง มีขนาดใหญ่ มักต้องลดขนาด เพื่อให้เหมาะสมกับรูปแบบเว็บ
 
```
 ```
  
 ---
 
# ลบภาพพื้นหลัง (5/22)
 
- ภาพถ่ายที่มีสองส่วน คือ ภาพพื้นหลัง และภาพคน/สิ่งของ หากลบภาพฉากได้ก็เปลี่ยนฉากแล้วได้ภาพใหม่ที่ต่างไป
 
```
 ```
  
 ---
 
# จำลองตัวแปลภาษา (6/22)
 
- ตัวแปลภาษามักต้องติดตั้งในเครื่องผู้ใช้ แต่มีบริการจำลอง ทำให้เขียนโค้ดแล้วส่งไปประมวลผล เพื่อทดสอบดูผลได้
 
```
 ```
  
 ---
 
# จำลองฐานข้อมูลใช้ SQL (7/22)
 
- บริการจำลองระบบฐานข้อมูล เพื่อใช้คำสั่ง SQL ทดลองสั่งจัดการข้อมูล ด้วยคำสั่งเพิ่ม ลบ แก้ไข เรียกข้อมูลตามเงื่อนไข
 
```
 ```
  
 ---
 
# จำลองระบบลีนุกซ์ (8/22)
 
- การติดตั้งลีนุกซ์ด้วยตนเอง เพื่อใช้ Shell แต่มีอีกทางเลือกคือใช้ Shell จากผู้บริการระบบจำลอง เพื่อลองใช้คำสั่ง
 
```
 ```
  
 ---
 
# เข้ารหัสถอดรหัส base64 (9/22)
 
- การแปลงแฟ้มไบนารี่ เช่น jpg, ttf เป็น text ด้วยการเข้ารหัส base64 แล้วเก็บในโค้ด เมื่อใช้จะถอดรหัสไปใช้งาน
 
```
 ```
  
 ---
 
# จัดเรียงข้อมูลตัวอักษร (10/22)
 
- หนึ่งในการประมวลผลที่พบบ่อยคือการจัดเรียงข้อมูล ซึ่งข้อมูลแบบตัวอักษรสามารถใช้ editor หรือบริการออนไลน์
 
```
 ```
  
 ---
 
# แปลงแฟ้มภาพเป็น webp (11/22)
 
- แฟ้ม webp เป็นมาตรฐานภาพของ chrome เริ่มถูกยอมรับ จุดเด่นคือเล็ก มีบริการแปลงภาพแบบอื่นให้เป็นแบบนี้
 
```
 ```
  
 ---
 
# แปลศัพท์/ตรวจคำ (12/22)
 
- ค้นความหมายของคำ แปลเป็นคำ เป็นประโยค เสนอที่คำที่ใกล้เคียงแบบออนไลน์ ตรวจคำซ้ำในเอกสารของคนอื่น
 
```
 ```
  
 ---
 
# ตรวจ grammar (13/22)
 
- ตรวจรูปแบบการใช้ประโยคในภาษาอังกฤษ ตามไวยากรณ์มาตรฐาน เสนอรูปแบบที่ถูก ใช้แทนประโยคที่ไม่ถูก
 
```
 ```
  
 ---
 
# บริการเว็บโฮสติ้ง (14/22)
 
- บริการพื้นที่เก็บข้อมูล ระบบฐานข้อมูล ระบบการควบคุม ระบบรับส่งข้อมูล ระบบรักษาความปลอดภัยให้ทดลองใช้
 
```
 ```
  
 ---
 
# บริการพื้นที่เก็บข้อมูล (15/22)
 
- พื้นที่เก็บข้อมูลบนอุปกรณ์มีจำกัด แต่บริการพื้นที่ออนไลน์ ช่วยแชร์ทรัพยากรใช้ร่วมกันในทุกอุปกรณ์และขยายได้
 
```
 ```
  
 ---
 
# บริการ cloud office (16/22)
 
- บริการชุดโปรแกรมสำนักงานที่ใช้แบบออนไลน์ ผ่านอุปกรณ์ทุกตัวของผู้ใช้ในแต่ละบัญชี และบันทึกในสื่อออนไลน์
 
```
 ```
  
 ---
 
# บริการ e-journal (17/22)
 
- บริการวารสารออนไลน์ที่รับบทความไปเผยแพร่ สืบค้น ประเมิน จัดอันดับวารสาร เปิดอ่าน และดาวน์โหลดได้
 
```
 ```
  
 ---
 
# บริการ e-book (18/22)
 
- บริการเอกสาร หนังสือ สิ่งพิมพ์ออนไลน์ ทั้งแบบเสียค่าสมาชิก และแบบฟรี ที่เปิดอ่านได้แบบฟลิปบุ๊ค หรือเรียงหน้า
 
```
 ```
  
 ---
 
# บริการ e-commerce (19/22)
 
- บริการหน้าร้านสินค้า รับคำสั่งซื้อ เชื่อมระบบชำระเงิน ระบบขนส่ง ระบบคลังสินค้า และประชาสัมพันธ์อย่างเป็นระบบ
 
```
 ```
  
 ---
 
# บริการ e-learning (20/22)
 
- บริการการเรียนการสอนออนไลน์ ระบบการบ้าน ทดสอบ บันทึกกิจกรรม ควบคุมเนื้อหา ควบคุมครู นักเรียน ตัดเกรด
 
```
 ```
  
 ---
 
# บริการ e-assistant (21/22)
 
- บริการผู้ช่วยสนับสนุนข้อมูลอย่างชาญฉลาดผ่านฐานข้อมูลขนาดใหญ่ มีปฏิสัมพันธ์ทั้งภาพ และเสียงได้อย่างสมบูรณ์
 
```
    Smart device เช่น Microsoft hololens 2 หรือ Google Glass"
 ```
  
 ---
 
# บริการ virtual world (22/22)
 
- โลกเสมือนจริงที่ทุกคนสามารถเปลี่ยนเพศ อาชีพ อายุ ความเชื่อ สร้างสิ่งที่ไม่มีจริง เชื่อมโลกจริงเข้ากับโลกคู่ขนาน
 
```
"    Social media
    Online game - mmorpg
 ```
แนะนำหัวข้อ
☸ MIS: Content, All
☸ KMed: Content, All
☸ Ethics: Content, All
☸ Tec: Content, All
☸ Hci: Content, All
☸ PHP: Content, All
☸ Java: Content, All
☸ PHPJs: Content, All
office_content *
introtocomputer_content
test1
test2
pandoc( x86_64 102MB)
markdown
ารใช้พาวเวอร์พ้อยท์สอนออนไลน์ (Powerpoint Presentation for Teaching) เครื่องมือหนึ่งที่ได้รับความนิยมในการสอนออนไลน์ คือ พาวเวอร์พ้อยท์ เพื่อควบคุมทิศทาง หัวข้อ ประเด็นที่ต้องการสื่อสาร ให้เห็นข้อความ แผนภาพ เสียง และคลิ๊ปวีดีโอตามแผนการสอนได้อย่างชัดเจน สามารถแทรกเว็บแคมที่มีภาพผู้สอนไปในแต่ละสไลด์ได้ สามารถใช้ได้ทั้งสอนสด (Live) ออกไปทางโปรแกรมสอนออนไลน์เช่น Zoom, Webex, Google Meet หรือ MS Teams หรือบันทึกเป็นคลิ๊ป แล้วให้ผู้เรียนมาเปิดดูได้ในภายหลัง (Video on Demand) ซึ่งมีเครื่องมือบันทึกการสอนผ่านสไลด์อีกมากมาย อาทิ Office Mix, Camtasia, Snagit, OBS Studio หรือ Camstudio (Open source) หรือใช้คุณสมบัติที่มีในพาวเวอร์พ้อยท์ด้วยการคลิ๊กเลือก Menubar, Slide Show, Record Slide Show, Start Recording from Beginning หรือ Start Recording from Current Slide
presentation-guru.com
☸ ต.ย. การใช้ Pandoc.exe (x86_64) สร้าง pptx
เช่น C:\> pandoc tec_all.md -o tec_all.pptx
Thaiall.com
Thailand Web Stat