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
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
|
==============================================
Dialog On Software Project Management
==============================================
:Authors: Hui Lan (lanhui at zjnu.edu.cn)
:Version: 0.0.3 of 2020/03/18
.. contents:: Table of content
Preface
=========
This book contains a series of special lecture notes in a dialog form on software project management during the Great Lockdown period due to the outbreak of 2019 novel coronavirus.
Friday, 6 March 2020
====================
*LRR now has maintainers - Pricing plan - How to keep software alive - Why pay and pay for what - Why report bugs - License - Proprietary software - Quiz*
2020-03-06 7:26:15 初阳软工171 伍泰炜(2728735169) 201736900125
2020-03-06 8:00:09 初阳软工171 徐闰钞(374526027) 201736900127
2020-03-06 8:00:17 蓝珲(1348141770) 伍泰炜这么早点名?
2020-03-06 8:00:24 初阳软工171 余慧(945168786) 201736900117
2020-03-06 8:00:26 软工初阳171 刘莉莉(1196448461) 201736900108
2020-03-06 8:00:35 网络171许晓鹏(892376699) 201730210128
2020-03-06 8:00:36 重新做人(1344914885) 201736900113
2020-03-06 8:00:37 软工初阳171周佳威<zhouwys@qq.com> 201736900130
2020-03-06 8:00:38 初阳软工171方梓安(2453122992) 201736900105
2020-03-06 8:00:38 网络171-侯新苗(953957823) 201730210304
2020-03-06 8:00:38 软工初阳171 何可人(1461938594) 201736900106
2020-03-06 8:00:41 初阳软工171 伍泰炜(2728735169) [图片]
2020-03-06 8:00:43 唐叶尔(1768559501) 201736900111
2020-03-06 8:00:51 软件工程初阳1701 徐梦旗(2663479778) 201732120124
2020-03-06 8:00:56 初阳软工171袁世家(1515245651) 201739230123
2020-03-06 8:00:59 软件工程 常思琦(995959606) 201732120101
2020-03-06 8:01:00 初阳软工171 王海榕(1012635788) 201732120105
2020-03-06 8:01:02 软件工程 王雪洁(249795581) 201732120106
2020-03-06 8:01:07 初阳软工171 吴贞娴(1395588359) 201732120108
2020-03-06 8:01:16 软件工程 张珣(1955357976) 201732120109
2020-03-06 8:01:46 初阳软工171 伍泰炜(2728735169) 201736900125
2020-03-06 8:01:50 蓝珲(1348141770) 大家有没有收到返校通知?
2020-03-06 8:01:56 网络171—董文文(2373706002) 201730210303
2020-03-06 8:01:56 蓝珲(1348141770) 没有吧?
2020-03-06 8:01:58 网络171许晓鹏(892376699) 没有
2020-03-06 8:02:00 初阳软工171 伍泰炜(2728735169) 没有
2020-03-06 8:02:03 软件工程 张珣(1955357976) 没有
2020-03-06 8:02:05 软工初阳171 何可人(1461938594) 没有
2020-03-06 8:02:07 软件工程初阳1701 徐梦旗(2663479778) 没有
2020-03-06 8:02:13 蓝珲(1348141770) 谢谢。
2020-03-06 8:02:32 蓝珲(1348141770) 今天我们最后5分钟做一个课堂Quiz。
2020-03-06 8:02:39 蓝珲(1348141770) 突袭。
2020-03-06 8:03:11 蓝珲(1348141770) 我们上次讲到,
2020-03-06 8:03:23 蓝珲(1348141770) Feature Creep, Request Creep的危害。
2020-03-06 8:03:34 蓝珲(1348141770) 就是会把团队拖死,
2020-03-06 8:04:02 蓝珲(1348141770) 让团队忙死,疲于奔命,而无法交付健壮产品。
2020-03-06 8:04:20 蓝珲(1348141770) 还有一个就是“不要扔掉老代码”。https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/
2020-03-06 8:04:33 蓝珲(1348141770) 主要原因是什么?
2020-03-06 8:04:47 蓝珲(1348141770) (1)老代码受过“考验”。
2020-03-06 8:04:59 蓝珲(1348141770) (2)新代码没有受过“考验”。
2020-03-06 8:05:28 蓝珲(1348141770) 一个新闻,
2020-03-06 8:05:44 蓝珲(1348141770) 我们的LRR已经有人维护了,ASHLY。
2020-03-06 8:06:08 蓝珲(1348141770) 他解决了一个注册后不能登录的问题。
2020-03-06 8:06:28 蓝珲(1348141770) 很傻的问题,长期得不到解决,直到出现了ASHLY。
2020-03-06 8:07:10 蓝珲(1348141770) 上次课我给了大家两个链接,也不知道你们看过没有。
2020-03-06 8:07:24 蓝珲(1348141770) https://martinfowler.com/articles/is-quality-worth-cost.html
2020-03-06 8:07:39 蓝珲(1348141770) https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/
2020-03-06 8:08:15 蓝珲(1348141770) 我最近在看joelsoftware这个网站的东西。Joel是Stack Overflow的创始人兼前CEO。
2020-03-06 8:08:42 蓝珲(1348141770) [图片]
2020-03-06 8:09:30 蓝珲(1348141770) Joel Spolsky在10来年间写了1000多篇东西。
2020-03-06 8:09:51 蓝珲(1348141770) 我觉得每个教软件工程或者软件项目管理的老师都应该看看。
2020-03-06 8:09:57 蓝珲(1348141770) 吸收其精华。
2020-03-06 8:10:26 蓝珲(1348141770) 你们的Quiz1我已经改好了。对分易可以查看。
2020-03-06 8:10:33 蓝珲(1348141770) Quiz2我还没有看。
2020-03-06 8:10:44 蓝珲(1348141770) Quiz2是关于Netscape怎么覆灭记的。
2020-03-06 8:11:18 蓝珲(1348141770) 除了其他的原因,主要是对手微软不是猪,太强了。
2020-03-06 8:11:58 蓝珲(1348141770) 微软在个人电脑市场,在90年代占90%份额以上。
2020-03-06 8:12:03 蓝珲(1348141770) 在中国几乎是100%。
2020-03-06 8:12:38 蓝珲(1348141770) 现在的话MacOS会有一点份额。
2020-03-06 8:13:19 蓝珲(1348141770) 我们还稍微讲了下开源,闭源的问题。
2020-03-06 8:13:32 蓝珲(1348141770) 开源 - open source。
2020-03-06 8:13:40 蓝珲(1348141770) 闭源 - closed-source。
2020-03-06 8:13:47 蓝珲(1348141770) 开源不等于免费。
2020-03-06 8:13:53 蓝珲(1348141770) 闭源不等于收费。
2020-03-06 8:14:00 蓝珲(1348141770) 这个大家都知道的吧?
2020-03-06 8:14:25 蓝珲(1348141770) 开源,就是把源码暴露给大家。
2020-03-06 8:14:35 蓝珲(1348141770) 那么怎么个收费法?
2020-03-06 8:15:01 蓝珲(1348141770) 收取服务费,或者按照Pricing Plan计费。
2020-03-06 8:15:50 蓝珲(1348141770) 对于绝大多数用户,把源码给他看和不看完全没有区别,反正都看不懂,更不用说去修改了。
2020-03-06 8:16:27 蓝珲(1348141770) 收取服务费,培训费,咨询费的有Canonical公司的产品Ubuntu.
2020-03-06 8:17:34 蓝珲(1348141770) 按Plan计费的有RStudio。
2020-03-06 8:19:08 蓝珲(1348141770) 听说Canonical公司现在还是在亏本,不知道是怎么运营的。
2020-03-06 8:19:29 蓝珲(1348141770) 最左边的,企业级安全与审计。
2020-03-06 8:19:36 蓝珲(1348141770) 给企业提供服务。 https://ubuntu.com/pricing
2020-03-06 8:20:03 蓝珲(1348141770) 个人的钱它就不去赚了。给企业服务,赚取大钱。
2020-03-06 8:20:22 蓝珲(1348141770) Ubuntu近些年牌子还是打出去了。
2020-03-06 8:20:51 蓝珲(1348141770) 在北美大学,服务器基本上都跑Ubuntu Server了吧。
2020-03-06 8:21:22 蓝珲(1348141770) 还有一个就是24/7的售后服务团队。
2020-03-06 8:22:02 蓝珲(1348141770) 奇了怪了,浙师大怎么不装Ubuntu?
2020-03-06 8:22:15 蓝珲(1348141770) Ubuntu有一个中国版。
2020-03-06 8:22:52 初阳软工171 伍泰炜(2728735169) 有的机房有的
2020-03-06 8:22:54 蓝珲(1348141770) 叫做优麒麟。
2020-03-06 8:22:56 蓝珲(1348141770) http://www.ubuntukylin.com/
2020-03-06 8:23:13 蓝珲(1348141770) [图片]
2020-03-06 8:23:23 蓝珲(1348141770) 中国方面,应该是要付钱给Canonical的。
2020-03-06 8:23:54 蓝珲(1348141770) 休息5分钟。
2020-03-06 8:23:57 蓝珲(1348141770) =======================================================
2020-03-06 8:25:03 软工初阳171 应舸(1434305984) sorry ,i forget to sign i01736900128
2020-03-06 8:25:59 初阳软工171叶红霞(1655602611) 抱歉,我也没签201736900115
2020-03-06 8:26:22 初阳软工171 蒋佳玲(1850424414) 抱歉,我也没有 201732120103
2020-03-06 8:28:12 计非181 王智洋(1162466610) 抱歉,我也没有 201830220719
2020-03-06 8:29:47 初阳软工171 陈肖飞(1662727361) 201736900104
2020-03-06 8:29:51 蓝珲(1348141770) 签了就可以
2020-03-06 8:30:31 蓝珲(1348141770) Ubuntu这些开源的操作系统很难火起来,一个主要的原因
2020-03-06 8:30:44 蓝珲(1348141770) 是它不是默认与硬件整机绑定的.
2020-03-06 8:30:54 蓝珲(1348141770) 绑定是个杀手锏。
2020-03-06 8:31:09 蓝珲(1348141770) 大家一般买个电脑,都预装了系统了。
2020-03-06 8:31:40 蓝珲(1348141770) "The most comprehensive Linux enterprise subscription”
2020-03-06 8:31:50 蓝珲(1348141770) Subscription是什么意思?
2020-03-06 8:32:05 蓝珲(1348141770) 订阅?
2020-03-06 8:32:10 初阳软工171 伍泰炜(2728735169) 市场占有率
2020-03-06 8:32:27 初阳软工171 伍泰炜(2728735169) 类似意思吧
2020-03-06 8:32:47 蓝珲(1348141770) [图片]
2020-03-06 8:33:03 蓝珲(1348141770) 是订阅嘛。
2020-03-06 8:33:19 蓝珲(1348141770) 好像订报纸似的,
2020-03-06 8:33:27 蓝珲(1348141770) 每年要交钱。
2020-03-06 8:33:43 蓝珲(1348141770) 所以,Ubuntu收的是这部分的钱。
2020-03-06 8:33:58 蓝珲(1348141770) 企业级的“订阅”费。
2020-03-06 8:34:30 蓝珲(1348141770) 意思就是说,我们签一个协议,你企业的服务器我来给你运维,然后你一年给我10-100万不等。
2020-03-06 8:34:37 蓝珲(1348141770) 大概就是这个意思。
2020-03-06 8:34:53 蓝珲(1348141770) 对于大企业来说,100万毛毛雨了。
2020-03-06 8:35:32 蓝珲(1348141770) 对于技术企业,估计也可以请专人做。
2020-03-06 8:35:55 蓝珲(1348141770) 如雇佣2-5个人运维,但是也要付工资的不是?
2020-03-06 8:36:35 蓝珲(1348141770) 所以,开源产品,服务、运维这一块,应该是很重要的一个收入。
2020-03-06 8:36:53 蓝珲(1348141770) 大家知道,不被运维的软件注定是死的软件。
2020-03-06 8:37:14 蓝珲(1348141770) 软件的活力在于持续改善,持续更新。
2020-03-06 8:37:37 蓝珲(1348141770) (看来你们的英文比较菜啊。)
2020-03-06 8:37:52 蓝珲(1348141770) (多看看英文网站,就能提高。)
2020-03-06 8:39:00 蓝珲(1348141770) 你们看看Ubuntu的团队。
2020-03-06 8:39:18 蓝珲(1348141770) (对了,Ubuntu是建立在Debian开源操作系统上的。)
2020-03-06 8:39:56 蓝珲(1348141770) https://wiki.ubuntu.com/Teams
.. image:: ubuntu-team.jpg
:height: 100
:alt: Ubuntu team https://wiki.ubuntu.com/Teams
2020-03-06 8:40:34 蓝珲(1348141770) 内核团队,就是维护底层操作系统的。
2020-03-06 8:40:52 蓝珲(1348141770) 基础团队。
2020-03-06 8:41:12 蓝珲(1348141770) 在一些中国公司是有基础部的,搞不清楚是做什么的。
2020-03-06 8:42:24 蓝珲(1348141770) 它的Communication Tools那列
2020-03-06 8:42:25 蓝珲(1348141770) #ubuntu-devel
2020-03-06 8:42:35 蓝珲(1348141770) hashtag ubuntun-devel
2020-03-06 8:42:49 蓝珲(1348141770) 是基础团队的IRC聊天室。
2020-03-06 8:43:08 蓝珲(1348141770) devel是指开发,可能是应用软件的开发。
2020-03-06 8:43:28 蓝珲(1348141770) QA团队,就是质量保障团队了。
2020-03-06 8:43:56 蓝珲(1348141770) 看到没有,每个团队都有一个聊天室。
2020-03-06 8:44:12 蓝珲(1348141770) 看来,在英国,大家还是用IRC比较多。
2020-03-06 8:44:49 蓝珲(1348141770) 其中一个原因就是Ubuntu团队成员分散在世界各地。
2020-03-06 8:45:11 蓝珲(1348141770) 还有,IRC比较轻量?
2020-03-06 8:46:03 蓝珲(1348141770) 上图列出的是Ubuntu Engineering Teams
2020-03-06 8:46:23 蓝珲(1348141770) 是工程部门的,我估计公司还有销售部门、宣传部门。
2020-03-06 8:46:41 蓝珲(1348141770) 我们看看最后一列,开会。
2020-03-06 8:46:58 蓝珲(1348141770) 好像大多是每周开一次会。
2020-03-06 8:47:05 蓝珲(1348141770) 开会也在IRC上开的吧?
2020-03-06 8:47:29 蓝珲(1348141770) 这个是Ubuntu的情况。
2020-03-06 8:47:34 蓝珲(1348141770) 我们看看RStudio.
2020-03-06 8:48:10 蓝珲(1348141770) 这款软件我也用得比较多的。用来做数据分析,像MATLAB。
2020-03-06 8:49:16 蓝珲(1348141770) https://rstudio.com/
2020-03-06 8:49:33 蓝珲(1348141770) 你们把鼠标放在Products下面,看到没有,它也是Open Source的。
2020-03-06 8:49:58 蓝珲(1348141770) 也有不同的收费栏目。https://rstudio.com/pricing/
2020-03-06 8:50:03 蓝珲(1348141770) 休息5分钟。
2020-03-06 9:00:38 蓝珲(1348141770) ======================================================
2020-03-06 9:01:01 蓝珲(1348141770) 如果需要人工支持,那么桌面版就是995美元每年。
2020-03-06 9:01:18 蓝珲(1348141770) 这个针对个人用户,自由职业者?
2020-03-06 9:01:49 蓝珲(1348141770) 如果是Server Pro,那么就是4975美元每年。
2020-03-06 9:02:06 蓝珲(1348141770) 限于5个用户。
2020-03-06 9:02:23 蓝珲(1348141770) 什么样的人会去买这个呢?
2020-03-06 9:02:31 蓝珲(1348141770) 银行会买。
2020-03-06 9:02:47 蓝珲(1348141770) 审计企业会买。比如普华永道之类的。
2020-03-06 9:03:25 蓝珲(1348141770) 因为这个工具RStudio对于这些企业的作用远远大于所花的金钱。
2020-03-06 9:03:58 蓝珲(1348141770) 在成熟的软件工业社会,用户是乐于付费的。
2020-03-06 9:04:11 蓝珲(1348141770) 因为用户知道,只有付费,才能有更好的服务。
2020-03-06 9:04:20 蓝珲(1348141770) 这个不是必然的道理吗?
2020-03-06 9:04:40 蓝珲(1348141770) 付费,给开发者发好的工资,开发更好的产品。
2020-03-06 9:05:12 蓝珲(1348141770) 用户还是乐于报告软件运行错误的,目的就是帮助改进软件。
2020-03-06 9:05:29 蓝珲(1348141770) 像我们,发现奔溃了,赶紧关掉。
2020-03-06 9:06:25 蓝珲(1348141770) 软件,稍微像样一点的那种,
2020-03-06 9:06:34 蓝珲(1348141770) 会跟一个许可证(License)。
2020-03-06 9:06:53 蓝珲(1348141770) 许可证就是规定了你能拿这个软件做什么。
2020-03-06 9:07:03 蓝珲(1348141770) 有各种各样的许可证了。
2020-03-06 9:07:21 蓝珲(1348141770) 开源的许可证种类就至少有10种之多吧?
2020-03-06 9:07:59 蓝珲(1348141770) https://opensource.org/licenses
2020-03-06 9:08:06 蓝珲(1348141770) Popular Licenses the following OSI-approved licenses are popular, widely used, or have strong communities: Apache License 2.0 BSD 3-Clause "New" or "Revised" license BSD 2-Clause "Simplified" or "FreeBSD" license GNU General Public License (GPL) GNU Library or "Lesser" General Public License (LGPL)MIT license Mozilla Public License 2.0 Common Development and Distribution License Eclipse Public License version 2.0
2020-03-06 9:08:27 蓝珲(1348141770) 阿帕奇(Apache),GPL, MIT用的人比较多。
2020-03-06 9:08:55 蓝珲(1348141770) GPL许可证保证了四大自由。
2020-03-06 9:09:23 蓝珲(1348141770) 而且它的“子孙”(衍生品)也要满足这些自由。
2020-03-06 9:10:16 蓝珲(1348141770) A软件是用GPL的,然后B软件用到A软件的一部分代码,那么B软件一定要用GPL。
2020-03-06 9:10:47 蓝珲(1348141770) 不想?那对不起,你不能用我的A软件。
2020-03-06 9:10:54 蓝珲(1348141770) 硬要用?
2020-03-06 9:11:18 蓝珲(1348141770) 自己用用,我管不了那么多。拿去卖?那就不行。
2020-03-06 9:11:51 蓝珲(1348141770) 许可证许可证,就是你要用我的东西,只能按照我许可的条款去做。
2020-03-06 9:12:02 蓝珲(1348141770) 有点霸道,但是受法律保护。
2020-03-06 9:12:44 蓝珲(1348141770) 大家有空可以研究一下Apache、MIT、GPL这些许可证。
2020-03-06 9:13:22 蓝珲(1348141770) 你的软件包括了私有软件而且还卖的很好? 这可不是好事, 小心私有软件的作者(公司)告你侵权。
2020-03-06 9:13:40 蓝珲(1348141770) 私有软件当然也有许可证。
2020-03-06 9:14:02 蓝珲(1348141770) 这个许可证,称为“不许可证”也许更为恰当。
2020-03-06 9:14:07 蓝珲(1348141770) 限制特别多。
2020-03-06 9:14:24 蓝珲(1348141770) 比如,只能你自己使用之类的。
2020-03-06 9:14:42 蓝珲(1348141770) 你们用的一些软件产品,比如OneNote之类的,也是有许可证的。
2020-03-06 9:14:55 蓝珲(1348141770) 越成功,越要注意这个软件许可证问题。否则,很麻烦。
2020-03-06 9:15:23 蓝珲(1348141770) 阿里巴巴公司不是要去IOE吗,就是舍不得支付软件许可证费,就是在这方面感觉被束缚手脚了。
2020-03-06 9:15:43 蓝珲(1348141770) IOE,I指IBM,O指Oracle,E指什么?
2020-03-06 9:16:24 蓝珲(1348141770) 前段时间有个新闻,说阿里的Oceanbase “超过” Oracle了。
2020-03-06 9:16:29 蓝珲(1348141770) 大家可以研究一下。
2020-03-06 9:16:36 蓝珲(1348141770) https://www.infoq.cn/article/JKHPqdcSgStDbG2DF0xb?utm_source=weibo&utm_medium=infoq&utm_campaign=newinfoq&utm_content=1005
2020-03-06 9:16:43 蓝珲(1348141770) http://www.tpc.org/tpcc/results/tpcc_result_detail.asp?id=119100101 https://www.zhihu.com/question/30209216
2020-03-06 9:17:06 软工初阳171 应舸(1434305984) EMC存储设备
2020-03-06 9:17:08 蓝珲(1348141770) 我们休息一下,就准备Quiz了。
2020-03-06 9:18:29 蓝珲(1348141770) 对了,你们接下去要读第二章。
2020-03-06 9:18:54 蓝珲(1348141770) 做个计划,每天读一点,做点笔记。
2020-03-06 9:19:08 蓝珲(1348141770) 不要到时候全部再看一遍,慌里慌张。
2020-03-06 9:19:12 计非181 王智洋(1162466610) 老师能发一下电子书吗
2020-03-06 9:19:32 蓝珲(1348141770) https://producingoss.com/
2020-03-06 9:19:45 蓝珲(1348141770) 你去这里下载PDF文件就可以。
2020-03-06 9:19:54 蓝珲(1348141770) 我看看我电脑上有没有。
2020-03-06 9:20:10 计非181 王智洋(1162466610) 谢谢老师
2020-03-06 9:22:11 蓝珲(1348141770) 我们的Quiz在9:40前交。
2020-03-06 9:22:38 蓝珲(1348141770) 是非题,选2个回答就可以。
2020-03-06 9:22:42 蓝珲(1348141770) 独立完成。
2020-03-06 9:22:50 蓝珲(1348141770) 在对分易上交。
2020-03-06 9:23:03 初阳软工171 伍泰炜(2728735169) 在哪个模块提交呢
2020-03-06 9:23:07 蓝珲(1348141770) [图片]
2020-03-06 9:23:15 网络171许晓鹏(892376699) 判断?
2020-03-06 9:23:23 蓝珲(1348141770) Quiz 3.
2020-03-06 9:23:41 蓝珲(1348141770) 判断题。对或错。
2020-03-06 9:26:17 蓝珲(1348141770) 再见。有空记得查看课程主页 http://lanlab.org/course/2020s/spm
2020-03-06 9:26:44 蓝珲(1348141770) 不要忘了交Quiz,今天上午9点40前,还有15分钟。
Monday, 9 March 2020
====================
Morning section
----------------
*Sustained efforts - How to earn 1b 10 years later - Software licenses - Copyleft - Non-copyleft - Commercial - Non-commercial - Proprietary - Non-proprietary - Quiz*
蓝老师(1348141770) ===================================================
蓝老师(1348141770) Morning guys. Could you type your student number?
2020-03-09 10:36:06 ibrahim(1525200991) 201732120159
2020-03-09 10:36:06 201732120167 Clive妈妈(3321692247) 201732120167
2020-03-09 10:36:07 软英171周仙龙(1748153603) 201732120130
2020-03-09 10:36:08 201732120141--AHAMED SABUJ妈妈(2686217157) 201732120141
2020-03-09 10:36:08 201732120168_Golden(2984538488) 201732120168
2020-03-09 10:36:08 201732120127 张滨(2350711965) 201732120127
蓝老师(1348141770) It is useful for me.
2020-03-09 10:36:11 201732120134_Michelle(3304952232) 201732120134
2020-03-09 10:36:11 201732120165 MJH MOHAMED(2751595398) 201732120165
2020-03-09 10:36:15 软英171高增(1520653544) 201732120117
2020-03-09 10:36:16 李佳兴(421281726) 201732120118
2020-03-09 10:36:16 201632120150-Ashly(1661411131) 201632120150
2020-03-09 10:36:16 软英171 吕伊豪(745291576) 201732120120
2020-03-09 10:36:17 nainezz(2407048879) 201732120173
2020-03-09 10:36:17 叶涵涛(2289316051) 201732120125
2020-03-09 10:36:24 201732120170-Tamene Robel妈妈(3287975278) 201732120170
2020-03-09 10:36:29 Saeed : 201732120146(446571011) 201732120146
2020-03-09 10:36:49 201732120157 hossain arif<charif19282@qq.com> 201732120157
蓝老师(1348141770) Let's wait 4 minutes for more people to join in.
2020-03-09 10:37:06 Saeed : 201732120146(446571011) ok
2020-03-09 10:37:12 软英171包振丰(984456043) 201732120111
2020-03-09 10:37:19 应宇腾(1356633192) 20732120126
2020-03-09 10:37:24 软英171陈伟超(937202326) 201732120113
2020-03-09 10:37:33 陈真赐(1312502742) 201732120114
2020-03-09 10:37:58 软英171郑洪宇(1633787262) 201732120128
2020-03-09 10:37:59 系统消息(10000) 201732120165 MJH MOHAMED邀请201732120165_Mohamed_Jifry_Hazzaly加入了本群。
2020-03-09 10:38:14 谢佳聪(1249923715) 201732120123
2020-03-09 10:38:17 郑晓钰(280768265) 201732120110
2020-03-09 10:38:22 软英171 郑可富(1924773187) 201732120129
2020-03-09 10:39:01 ALBOROM WARD-201732120143家长(3279308836) 201732120143
2020-03-09 10:39:11 201732120135 玛莎(3534763826) 201732120135
2020-03-09 10:39:25 软英171 陆博业(2794513466) 201732120119
2020-03-09 10:40:06 SPM软件项目管理-蓝老师(1348141770) [Announcement] We will have a pop-up quiz, near the end of today's lecture.
2020-03-09 10:40:15 Tarmom 201732120166(2104297320) 201732120166
2020-03-09 10:40:35 1n(2835813510) 201732120102
2020-03-09 10:40:36 SPM软件项目管理-蓝老师(1348141770) Make sure you can login LRR.
2020-03-09 10:40:54 Saeed : 201732120146(446571011) yes
2020-03-09 10:40:58 SPM软件项目管理-蓝老师(1348141770) There is a recent story about LRR.
2020-03-09 10:40:58 软英171戴泽荣(975336710) 201732120115
2020-03-09 10:41:00 Tarmom 201732120166(2104297320) laoshi I can't
2020-03-09 10:41:10 Saeed : 201732120146(446571011) try now
2020-03-09 10:41:23 Tarmom 201732120166(2104297320) ok
2020-03-09 10:41:33 Npl.(593635848) 201732120121
蓝老师(1348141770) (Tarmom, you should first sign up.)
蓝老师(1348141770) Ashly updated LRR so that a CRITICAL bug is gone.
蓝老师(1348141770) I think most of you guys encountered that bug before.
蓝老师(1348141770) That is, you were unable to sign in immediately after sign up.
2020-03-09 10:42:46 LUL GUOBA RUOT (2217724540) 201632120161
蓝老师(1348141770) This bug makes the software essentially not usable.
蓝老师(1348141770) A really bad bug.
蓝老师(1348141770) You had to recover your password by email (which did not always work).
2020-03-09 10:43:37 Samantha 201632120140(2459455104) 201632120140
蓝老师(1348141770) It is absurd that we require people to recover their password immediately after they sign up.
蓝老师(1348141770) Ashly fixed that.
蓝老师(1348141770) Suddenly the software looks much better.
蓝老师(1348141770) Where did Ashy learn PHP?
2020-03-09 10:45:27 201632120150-Ashly(1661411131) Personal projects Laoshi
蓝老师(1348141770) There are a lot of existing talents. A manager's job is to recognize them and cultivate them.
蓝老师(1348141770) That is a Great Fix.
蓝老师(1348141770) But that fix introduced a new problem.
蓝老师(1348141770) The old users were no longer able to login, which is almost equally bad.
蓝老师(1348141770) This is an example of failed regression test.
蓝老师(1348141770) The new fix breaks old, functional work.
蓝老师(1348141770) That is quite normal.
蓝老师(1348141770) The old, legitimate users saw a Blank Page after they logged in, leaving them totally perplexed.
蓝老师(1348141770) How to solve that?
蓝老师(1348141770) It turns out the fix is really simple.
蓝老师(1348141770) [图片]
::
// verify the hashed password and unhashed password
if(password_verify($password, $row["Password"]) or ($password = $row["Password"])){
蓝老师(1348141770) Just relax the conditional test by adding an OR condition: ($password = $row["Password"]).
蓝老师(1348141770) The reason is that the old password is not hashed (encrypted).
蓝老师(1348141770) We must hash people's password by law.
蓝老师(1348141770) Hash is like a one-way function.
蓝老师(1348141770) Hash('secrete') gives you a 64 obfuscating characters.
蓝老师(1348141770) But you cannot recover 'secrete' even if you know these 64 characters.
蓝老师(1348141770) That is my understanding of one-way.
蓝老师(1348141770) This small fix solved a Big problem.
蓝老师(1348141770) That is a great start.
蓝老师(1348141770) I can even say Ashly is done on the course project.
蓝老师(1348141770) However, I still hope he could do a bit more.
2020-03-09 10:53:08 Tarmom 201732120166(2104297320) laoshi still I can't sign up on LRR it's not working.
蓝老师(1348141770) (Fine. I will create one for you during the break.)
2020-03-09 10:53:46 Tarmom 201732120166(2104297320) thank you
蓝老师(1348141770) Returning to storing password in LRR, can we hash all existing, old passwords so that we can remove the additional OR condition: ($password = $row["Password"])?
蓝老师(1348141770) Simpler code.
蓝老师(1348141770) Is it worth doing that?
蓝老师(1348141770) We have more than 200 accounts now in LRR.
蓝老师(1348141770) Let us take a 5-minute break.
2020-03-09 10:55:31 Saeed : 201732120146(446571011) ok
2020-03-09 10:57:17 Tarmom 201732120166(2104297320) ok
2020-03-09 10:58:46 LUL GUOBA RUOT (2217724540) Me too I can’t login
蓝老师(1348141770) ===================================================
蓝老师(1348141770) That is interesting. You two guys could sign up again. I believe it should work now.
蓝老师(1348141770) What have I learned from this improvement process?
蓝老师(1348141770) Good software takes time.
蓝老师(1348141770) Sustained efforts are required to build something that is really great so that people would pay to use it.
蓝老师(1348141770) You need at least 10 years.
蓝老师(1348141770) But after 10 years, you will be good, earning billions of dollars a year.
蓝老师(1348141770) Here is an article I want to share with you.
蓝老师(1348141770) https://www.joelonsoftware.com/2001/07/21/good-software-takes-ten-years-get-used-to-it/
2020-03-09 11:05:51 Npl.(593635848) 很多人看不到这么远 一年就够呛的
2020-03-09 11:06:18 Npl.(593635848) [表情]
蓝老师(1348141770) Yes. That is true. That is why we have very few companies which have a yearly revenue of billions.
蓝老师(1348141770) I doubt LRR could sustain such a long period.
蓝老师(1348141770) Look at QQ, which started around 1998.
蓝老师(1348141770) How many years have passed?
蓝老师(1348141770) More than 20 years!
蓝老师(1348141770) The current QQ is much better than the original QQ (which is a clone of OICQ).
蓝老师(1348141770) I would say most people who have not taken this course don't realize that.
蓝老师(1348141770) Software is hard. And hard things need time. As simple as that.
蓝老师(1348141770) [图片]
.. image:: lotus-note-user-pool.png
:height: 100
:alt: number of installations of the Lotus Notes over the years
蓝老师(1348141770) User pool of Lotus Notes.
蓝老师(1348141770) It hit 55 million users in 1999.
蓝老师(1348141770) 55 million users means lots of money and great influence.
蓝老师(1348141770) 12 years have passed since the author(s) wrote the first line of code.
2020-03-09 11:11:47 ibrahim(1525200991) most people dream that thier software blow up like Facebook did
蓝老师(1348141770) The problem of China software industry is exactly Lack of Time.
蓝老师(1348141770) Desire of Success + Lack of Time = ?
2020-03-09 11:13:06 Npl.(593635848) failure
蓝老师(1348141770) [图片]
蓝老师(1348141770) How much money has Oracle made?
蓝老师(1348141770) Billions of dollars at least.
2020-03-09 11:14:01 Npl.(593635848) [图片]
蓝老师(1348141770) The Oracle database system was there in 1970's.
2020-03-09 11:14:02 Npl.(593635848) 复利曲线
蓝老师(1348141770) (Oh, really. That is a good observation.)
蓝老师(1348141770) This gentleman, Joel Spolsky, the founder of Stack Overflow, is good at writing.
蓝老师(1348141770) He is a very prolific author.
蓝老师(1348141770) Produced more than 1000 blog posts over a period of 10 years.
蓝老师(1348141770) I think you should read his "Top 10" posts.
蓝老师(1348141770) Let's take a 5-minute break.
2020-03-09 11:17:41 系统消息(10000) Npl.撤回了一条消息
2020-03-09 11:22:01 Npl.(593635848) I’ve looked through several his books (his blogs sets, more currently), he thinks most programmers are not true programmer. And it would be good if these “fake programmers” been fired(filter out).[表情]
2020-03-09 11:23:39 ALBOROM WARD-201732120143家长(3279308836) [表情]
蓝老师(1348141770) Npl seems like a motivated learner. We need more self-driven learners.
蓝老师(1348141770) ===================================================
蓝老师(1348141770) Writing is Thinking. Writing is Communicating.
蓝老师(1348141770) You must sharpen your writing skills before you graduate.
蓝老师(1348141770) Programming is more like a liberal and arts subject.
蓝老师(1348141770) Think about that.
2020-03-09 11:26:26 Npl.(593635848) “Talking” with the computer
蓝老师(1348141770) If you could earn 1 billion dollars 10 years later by focusing on developing one thing, and leading a very frugal life in these 10 years, would you do that?
蓝老师(1348141770) I think many people will do that.
蓝老师(1348141770) That is about 100,000,000 dollars per year.
蓝老师(1348141770) However, since there is no success guarantee, many people would choose to be a less disciplined person.
蓝老师(1348141770) We talked about software licenses last time.
蓝老师(1348141770) One question.
蓝老师(1348141770) What kind of free license would you use if your software is an online application, i.e., you do not send people installation packages?
蓝老师(1348141770) Apache, GPL, or MIT?
2020-03-09 11:30:46 ibrahim(1525200991) MIT
蓝老师(1348141770) License for online application, things like Simple Note, One Note.
蓝老师(1348141770) I think MIT is a good one. It is simple and permissive.
2020-03-09 11:31:25 ibrahim(1525200991) or AGPL
蓝老师(1348141770) I want to mention Affero GPL.
蓝老师(1348141770) Exactly.
蓝老师(1348141770) Affero GPL has an extra clause designed specifically for online applications.
蓝老师(1348141770) Are GPL-like licenses MIT-compatible?
蓝老师(1348141770) Or Are MIT-like licenses GPL-compatible?
蓝老师(1348141770) GPL is a copyleft license, while MIT is a non-copyleft license.
蓝老师(1348141770) What does "copyleft" mean?
蓝老师(1348141770) Copyleft is an interesting word.
2020-03-09 11:33:30 ibrahim(1525200991) your code can't be used by proprietary software
蓝老师(1348141770) I don't know that before yesterday.
2020-03-09 11:33:39 ibrahim(1525200991) I guess
2020-03-09 11:34:05 Dean Majaya201732120164爷爷(3623840484) 201732120164
蓝老师(1348141770) The exact meaning of copyleft is that all its derivative work under the copyleft license must be copyleft too.
蓝老师(1348141770) MIT license does not require that.
蓝老师(1348141770) If you use the code that is under the MIT license, you could apply a proprietary license to your software.
蓝老师(1348141770) That is why we say MIT license is a permissive license.
蓝老师(1348141770) The point of copyleft is ensuring that the subsequent (or derivative) work is also free.
蓝老师(1348141770) However, the danger is that people would rather not use your code in the first place if they think they don't agree with this condition.
蓝老师(1348141770) A rule of thumb is that if you do not care how your code is to be used, you could use either MIT or GPL or Apache.
蓝老师(1348141770) If you do not wish proprietary software to use your code, use GPL-like licenses. They are more restrict on ensuring subsequent freedom.
蓝老师(1348141770) Note the difference between proprietary and commercial.
蓝老师(1348141770) They are not the same thing.
蓝老师(1348141770) A commercial software can be non-proprietary.
蓝老师(1348141770) A proprietary software can be non-commercial.
蓝老师(1348141770) Proprietary emphasizes "Owner",
蓝老师(1348141770) while commercial emphasizes "Money".
蓝老师(1348141770) [Announcement]
蓝老师(1348141770) "Decide areas for improvement" is due today.
蓝老师(1348141770) You need to finish reading Chapter 2 by the end of this week.
蓝老师(1348141770) Let's take a 5-minute break.
2020-03-09 11:44:36 ALBOROM WARD-201732120143家长(3279308836) Laoshi how about course scheduler would you let me manage it as my course project?
蓝老师(1348141770) ===================================================
蓝老师(1348141770) My main concern is that there are tons of Course Scheduling applications out there.
蓝老师(1348141770) Your efforts will be wasted on just producing yet-another Course Scheduling application.
蓝老师(1348141770) Anyway, we could discuss that more after class.
2020-03-09 11:51:24 ALBOROM WARD-201732120143家长(3279308836) ok laoshi
蓝老师(1348141770) You need to finish reading Chapter 2 by the end of this week.
蓝老师(1348141770) I could finish reading one chapter in one evening.
蓝老师(1348141770) I don't know your reading speed.
2020-03-09 11:52:23 KELVIN Chimtengo(3110702155) One week is enough.
蓝老师(1348141770) You can use lots of aids that are available online, such as the Bing translator.
2020-03-09 11:53:01 ALBOROM WARD-201732120143家长(3279308836) i can finish it in 3-5 hours
2020-03-09 11:53:34 201732120151 Barkay sanoussi(3178573723) reading is not a big deal but understanding is ..
2020-03-09 11:53:57 Saeed : 201732120146(446571011) yes
蓝老师(1348141770) To understand it, repeat the reading process.
蓝老师(1348141770) Repeat it at least three times.
2020-03-09 11:54:26 ibrahim(1525200991) do you want us to just read it, or understand and highlight some points, if the later then that takes some time
蓝老师(1348141770) I think the most important purpose of reading is understanding.
2020-03-09 11:55:14 ALBOROM WARD-201732120143家长(3279308836) yeah that's why i said 3-5 hours including highliting and understanding
蓝老师(1348141770) Otherwise, Microsoft Edge could read it for us.
2020-03-09 11:55:27 Npl.(593635848) There is no reading speed, only understanding speed
蓝老师(1348141770) I will post a new, longer reading: The Cathedral and the Bazaar.
蓝老师(1348141770) http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/index.html
蓝老师(1348141770) It discusses 2 development modes.
蓝老师(1348141770) You don't have to read all, only a few selected sections.
2020-03-09 11:56:45 ALBOROM WARD-201732120143家长(3279308836) that would be better
蓝老师(1348141770) I want to maximize the usefulness of this course while minimizing your workload.
蓝老师(1348141770) I will post the required sections.
蓝老师(1348141770) Quiz time.
2020-03-09 11:58:36 ibrahim(1525200991) wish most teacher follow your theme
蓝老师(1348141770)
::
[True/False] Free software means zero-cost software.
[True/False] Zero-cost software cannot be proprietary.
[True/False] If the source code is visible, then the software is open source.
[True/False] Open source software cannot be used for commercial purposes.
蓝老师(1348141770) You select two of them to answer.
蓝老师(1348141770) Submit it at LRR (under Quiz 3).
蓝老师(1348141770) Before 12:15pm.
蓝老师(1348141770) Bye.
2020-03-09 11:59:39 ibrahim(1525200991) what if i answer all of them ?
2020-03-09 11:59:46 nainezz(2407048879) Bye
2020-03-09 11:59:53 ABDALMUHAYMEN 201730210234(1071107298) Bye
2020-03-09 11:59:59 Saeed : 201732120146(446571011) ok
蓝老师(1348141770) Please just answer two questions.
2020-03-09 12:00:18 1n(2835813510) only true or false or explanation also
2020-03-09 12:00:21 KELVIN Chimtengo(3110702155) We should post answers here? Or ?
蓝老师(1348141770) The two which you feel most confident about.
蓝老师(1348141770) Just True or False. No explanation.
2020-03-09 12:00:43 1n(2835813510) ok
2020-03-09 12:00:43 ALBOROM WARD-201732120143家长(3279308836) Submit it at LRR (under Quiz 3).
2020-03-09 12:01:40 KELVIN Chimtengo(3110702155) Okay cool
2020-03-09 12:01:56 KELVIN Chimtengo(3110702155) 201632120149
2020-03-09 12:02:51 201732120170-Tamene Robel妈妈(3287975278) LRR not working
Afternoon Section
-----------------
*Project management tools - Kanboard - Swim lanes - Rhythm of releases - Sustained efforts - Joel Spolsky - Software licenses*
Lan Hui(1348141770) ===================================================
Lan Hui(1348141770) Good afternoon.
2020-03-09 15:41:41 Guedalia Youma (3014432207) Good afternoon professor
Lan Hui(1348141770) Could you type your student number? It is useful for me.
2020-03-09 15:41:59 NGOUNOU家长(438499151) good afternoon laoshi
Lan Hui(1348141770) I am going to get some hot water.
2020-03-09 15:42:05 Guedalia Youma (3014432207) 201925800221
Lan Hui(1348141770) Let's wait a few minutes for more people to join in.
2020-03-09 15:42:26 NGOUNOU家长(438499151) 201925800180
2020-03-09 15:42:36 Marie(2928285277) 201925800173
2020-03-09 15:42:36 NGOUNOU家长(438499151) OK
Lan Hui(1348141770) Where were we last time?
Lan Hui(1348141770) I've talked about an important management tip: Don't THROW AWAY YOUR CODE.
Lan Hui(1348141770) This tip was given by Joel Spolsky, founder of Stack Overflow.
Lan Hui(1348141770) Also Trello, a $425m product for project management.
2020-03-09 15:45:29 Kumson爸爸(3157209053) 201925800166
Lan Hui(1348141770) I was thinking about using Trello.
Lan Hui(1348141770) There are many project management tools out there.
Lan Hui(1348141770) Trello, JIRA, Microsoft Project, etc.
Lan Hui(1348141770) I should choose a simpler one.
Lan Hui(1348141770) So I choose Kanboard.
Lan Hui(1348141770) https://kanboard.org/
Lan Hui(1348141770) Have you checked that?
Lan Hui(1348141770) I can show you in a moment.
Lan Hui(1348141770) [图片]
.. image:: TIM20200316180248.png
:height: 100
:alt: Kanboard for undergraduate thesis supervision
Lan Hui(1348141770) You can see many cards, in different colors and in different swim lanes.
Lan Hui(1348141770) We've got 4 swim lanes, representing different project stages.
Lan Hui(1348141770) The leftmost is **TODO**.
Lan Hui(1348141770) Followed by **Ready**.
Lan Hui(1348141770) Followed by **In Progress**.
Lan Hui(1348141770) Followed by **Done**.
Lan Hui(1348141770) To avoid multi-tasking, we should minimize the number of cards (tasks) in the **In Progress** swim lane,
Lan Hui(1348141770) which seems to be not the case in my Kanboard.
Lan Hui(1348141770) That is why I feel exhausted.
2020-03-09 15:51:19 Nicole Rutagengwa (1403962700) 201935800169
Lan Hui(1348141770) We can move the cards (tasks) around.
Lan Hui(1348141770) I plan to ask you to use Kanboard (in our course).
Lan Hui(1348141770) I will create accounts for you within one week.
Lan Hui(1348141770) I've also talked about rhythm of releases and the importance of having and keeping that rhythm.
Lan Hui(1348141770) In the beginning, we should release early and often.
Lan Hui(1348141770) But when our product becomes more mature, releasing too often is a bit annoying to users (once in a half year is good enough).
Lan Hui(1348141770) Sometimes people just do not need that many new features if the product has already satisfied their daily use.
Lan Hui(1348141770) [Announcement] We will have a pop-up quiz, near the end of today's lecture.
Lan Hui(1348141770) Make sure you can login LRR (Lab Report Repository).
Lan Hui(1348141770) There is a recent update for LRR.
Lan Hui(1348141770) Last lecture I mentioned a CRITICAL (even BLOCKER) bug in LRR.
Lan Hui(1348141770) A new user could not login immediately after sign up.
Lan Hui(1348141770) That bug was fixed by Ashly, an undergraduate student in the morning section.
Lan Hui(1348141770) Suddenly, the software looks much better.
2020-03-09 16:00:21 Marie(2928285277) So do we need to sign up again
Lan Hui(1348141770) You don't have to recover your password by email, which does not always work, and is quite absurd.
Lan Hui(1348141770) (No.)
Lan Hui(1348141770) But that fix introduced a new problem.
Lan Hui(1348141770) The old, legitimate users are no longer able to login, which is equally bad as being unable to login immediately after sign up.
Lan Hui(1348141770) The fix failed that Regression Test.
Lan Hui(1348141770) Failing a regression test is quite normal.
Lan Hui(1348141770) Two old users reported that they saw a Blank Page after they logged in, making them totally surprised.
Lan Hui(1348141770) Let's take a 5-minute break.
2020-03-09 16:07:43 Guedalia Youma (3014432207) Alright
Lan Hui(1348141770) Where is Pacifique?
2020-03-09 16:12:59 系统消息(10000) Twizere Pacifique 唐平撤回了一条消息
2020-03-09 16:13:12 Twizere Pacifique 唐平<pacitwizere@hotmail.com> 201925800174
Lan Hui(1348141770) Thanks, Pacifique.
Lan Hui(1348141770) ===================================================
Lan Hui(1348141770) How to solve the newly introduced "Blank Page" problem?
Lan Hui(1348141770) It turns out the solution is really simple.
Lan Hui(1348141770) Just tweak a conditional test a bit.
Lan Hui(1348141770) [图片]
::
// verify the hashed password and unhashed password
if(password_verify($password, $row["Password"]) or ($password = $row["Password"])){
Lan Hui(1348141770) Just relax the conditional test by adding an OR condition: ($password = $row["Password"]).
Lan Hui(1348141770) The variable $password stores the password you entered through the LRR web form.
Lan Hui(1348141770) $row["Password"] contains the pre-stored password which you entered during sign up.
Lan Hui(1348141770) Of course, they have to be equal before LRR would allow you in.
Lan Hui(1348141770) Then, you may ask, what is the point of having "password_verify($password, $row["Password"])"?
Lan Hui(1348141770) password_verify is a built-in function in PHP.
Lan Hui(1348141770) Well.
Lan Hui(1348141770) This function takes password stored in a human-readable form (e.g., 'secret'), hashes it and compares the hash result with the pre-stored password $row["Password"], which is also stored in a hash form.
Lan Hui(1348141770) Why bother with hash?
Lan Hui(1348141770) The point is that we, the software developers, do not want, or are not allowed to store users' password in a plain form.
Lan Hui(1348141770) By law we should not do that.
Lan Hui(1348141770) We should never, ever store users' password in a non-encrypted form because of risk of leak and the consequent liability.
Lan Hui(1348141770) Yahoo made that mistake a few years ago.
Lan Hui(1348141770) We must hash people's password by law.
Lan Hui(1348141770) For example, if my password is 'secret', then its hashed form, '2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b', should be stored in our application.
Lan Hui(1348141770) Holy cow. Who can understand '2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b' even if he gets that?
Lan Hui(1348141770) Here is a hash calculator that you can play with.
Lan Hui(1348141770) https://www.tools4noobs.com/online_tools/hash/
Lan Hui(1348141770) A great attribute of hash function is that it is a one-way function.
Lan Hui(1348141770) You cannot recover 'secret' from '2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b'.
Lan Hui(1348141770) Therefore, even when '2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b' is now in a bad guy's hands, it does not matter that much, since it will take him hundreds of thousands of years to get the 'secret'.
Lan Hui(1348141770) A wise bad man won't do that.
Lan Hui(1348141770) The additional OR conditional test is for backward compatibility.
Lan Hui(1348141770) A bit awkward.
Lan Hui(1348141770) Perhaps we can get rid of that conditional test in the future, to make the code simpler.
Lan Hui(1348141770) To do so, we need to hash all passwords that are stored in plain form.
Lan Hui(1348141770) Is it worth doing that?
Lan Hui(1348141770) We have more than 200 accounts now in LRR.
Lan Hui(1348141770) I think there is a programmable way to do that.
Lan Hui(1348141770) Anyway, that is future work.
Lan Hui(1348141770) Let us take a 5-minute break.
Lan Hui(1348141770) ===================================================
Lan Hui(1348141770) What have I learned from this improvement process?
Lan Hui(1348141770) Good software takes time.
Lan Hui(1348141770) LRR started in Fall 2018 as a graduate course project: http://lanlab.org/course/2018f/se/homepage.html
Lan Hui(1348141770) One year and a half have passed.
Lan Hui(1348141770) Sustained efforts are required to build something that is really great so that people would pay to use it.
Lan Hui(1348141770) Sustained efforts require great focus and self-discipline.
Lan Hui(1348141770) You need at least 10 years of sustained efforts.
Lan Hui(1348141770) That is actually a rule of thumb in almost all areas of business.
Lan Hui(1348141770) But after 10 years, you will be good, earning billions of dollars a year.
Lan Hui(1348141770) Breathtakingly worthwhile.
Lan Hui(1348141770) That is about 100,000,000 dollars per year, for the previous ten years.
Lan Hui(1348141770) However, you need to lead a very frugal life in these 10 years with no guarantee of success.
Lan Hui(1348141770) Below is an article I want to share with you.
Lan Hui(1348141770) https://www.joelonsoftware.com/2001/07/21/good-software-takes-ten-years-get-used-to-it/
Lan Hui(1348141770) “The Oracle RDBMS has been around for 22 years now. Windows NT development started 12 years ago. Microsoft Word is positively long in the tooth; I remember seeing Word 1.0 for DOS in high school (that dates me, doesn’t it? It was 1983.)”
Lan Hui(1348141770) Look at QQ too - it started around 1998.
Lan Hui(1348141770) How many years have passed?
Lan Hui(1348141770) More than 20 years!
Lan Hui(1348141770) The current QQ is much better than the original QQ (which is a clone of OICQ).
Lan Hui(1348141770) I would say most people (who have not taken this course) don't know GOOD SOFTWARE TEAKS 10 YEARS.
Lan Hui(1348141770) Want to be a billionaire overnight? No way.
Lan Hui(1348141770) Except Facebook.
Lan Hui(1348141770) Software is hard. And hard things need time to polish. As simple as that.
Lan Hui(1348141770) [图片]
.. image:: lotus-note-user-pool.png
:height: 100
:alt: number of installations of the Lotus Notes over the years
Lan Hui(1348141770) User pool of Lotus Notes.
Lan Hui(1348141770) It hit 55 million users in 1999.
Lan Hui(1348141770) 55 million users means lots of money and a huge impact.
Lan Hui(1348141770) 12 years have passed since 1.0.
Lan Hui(1348141770) Yet people have already spent 5 years to arrive at 1.0.
Lan Hui(1348141770) It is important to keep a healthy body as a programmer.
Lan Hui(1348141770) It takes very long time to be successful and you should enjoy that day when it arrives.
Lan Hui(1348141770) The problem of China software industry is exactly Lack of Time.
Lan Hui(1348141770) Desire of Success + Lack of Time = ???
Lan Hui(1348141770) Crap.
Lan Hui(1348141770) How much money has Oracle made?
Lan Hui(1348141770) Billions of dollars at least.
Lan Hui(1348141770) The Oracle database system was there in 1970's.
Lan Hui(1348141770) Joel Spolsky, the founder of Stack Overflow, is a prolific author good at writing.
Lan Hui(1348141770) He has produced more than 1000 blog posts over a period of 10 years.
Lan Hui(1348141770) He must have been thinking and thinking.
Lan Hui(1348141770) Writing is Thinking. Writing is Communicating.
Lan Hui(1348141770) I think you should read his "Top 10" posts.
Lan Hui(1348141770) Let's take a 5-minute break.
Lan Hui(1348141770) After that we will talk about licenses.
2020-03-09 17:01:19 Marie(2928285277) Okay sir
Lan Hui(1348141770) ===================================================
Lan Hui(1348141770) One question.
Lan Hui(1348141770) What kind of free software license would you use if your software is an online application, i.e., you do not send people installation packages?
Lan Hui(1348141770) License for online applications, such as Simple Note, One Note.
Lan Hui(1348141770) Affero GPL.
Lan Hui(1348141770) Affero GPL has an extra clause designed specifically for online applications.
Lan Hui(1348141770) I think MIT is good too. It is simple and permissive.
Lan Hui(1348141770) In contrast, GPL is a copyleft license, less permissive.
Lan Hui(1348141770) Copyleft is an interesting word.
Lan Hui(1348141770) The exact meaning of copyleft is that it requires all its derivative work to be copyleft too.
Lan Hui(1348141770) Some people think this is a way of defending freedom.
Lan Hui(1348141770) ===================================================
Lan Hui(1348141770) Quiz time.
Lan Hui(1348141770) This is limited-time quiz which you have to submit before 5:35pm today to LRR.
Lan Hui(1348141770)
::
[True/False] Free software means zero-cost software.
[True/False] Zero-cost software cannot be proprietary.
[True/False] If the source code is visible, then the software is open source.
[True/False] Open source software cannot be used for commercial purposes.
Lan Hui(1348141770) Select two and only two to answer.
2020-03-09 17:10:23 Marie(2928285277) I still can’t login to LRR
2020-03-09 17:10:26 Guedalia Youma (3014432207) Where should we submit it ? By email ?
Lan Hui(1348141770) Bye.
Friday, 13 March 2020
=====================
*Quiz review - The Cathedral and the Bazaar - Project management software - Kanboard - Sustained maintenance efforts - Project mission - Standard code tree*
Morning section
----------------
2020-03-13 7:57:26 初阳软工171 伍泰炜(2728735169)
[表情]
2020-03-13 7:57:45 网络171许晓鹏(892376699)
[表情]
2020-03-13 8:00:05 初阳软工171 伍泰炜(2728735169)
201736900125
2020-03-13 8:00:10 软工初阳171 刘莉莉(1196448461)
201736900108
2020-03-13 8:00:17 软件工程 张珣(1955357976)
201732120109
2020-03-13 8:00:18 初阳软工171 吴贞娴(1395588359)
201732120108
2020-03-13 8:00:22 初阳软工171 余慧(945168786)
201736900117
2020-03-13 8:00:22 初阳软工171叶红霞(1655602611)
201736900115
2020-03-13 8:00:23 初阳软工171袁世家(1515245651)
201739230123
2020-03-13 8:00:23 软工初阳171周佳威<zhouwys@qq.com>
201736900130
2020-03-13 8:00:24 初阳软工171 王海榕(1012635788)
201732120105
2020-03-13 8:00:24 初阳软工171 蒋佳玲(1850424414)
201732120103
2020-03-13 8:00:28 系统消息(10000)
初阳软工171 陈俊蕾撤回了一条消息
2020-03-13 8:00:28 唐叶尔(1768559501)
201736900111
2020-03-13 8:00:30 网络171许晓鹏(892376699)
201730210128
2020-03-13 8:00:33 软件工程初阳1701 徐梦旗(2663479778)
201732120124
2020-03-13 8:00:37 初阳软工171 陈俊蕾(1223259604)
201736900103
2020-03-13 8:00:40 重新做人(1344914885)
201736900113
2020-03-13 8:00:40 软件工程 王雪洁(249795581)
201732120106
2020-03-13 8:00:44 初阳软工171 陈肖飞(1662727361)
20173690104
2020-03-13 8:00:46 蓝珲(1348141770) 大家早上好
2020-03-13 8:00:52 网络171—董文文(2373706002)
201730210303
2020-03-13 8:01:00 初阳软工171 徐闰钞(374526027)
201736900127
2020-03-13 8:01:03 网络171许晓鹏(892376699)
早上好
蓝珲(1348141770) ===============================================
蓝珲(1348141770) 我们上次课讲了开源软件的收费模式,以及开源软件的许可证。
蓝珲(1348141770) 还做了一个Quiz。
蓝珲(1348141770) ::
[True/False] Free software means zero-cost software.
[True/False] Zero-cost software cannot be proprietary.
[True/False] If the source code is visible, then the software is open source.
[True/False] Open Source software cannot be used for commercial purposes.
蓝珲(1348141770) 我觉得答案都是F。
蓝珲(1348141770) 大家有没有不同意见的?
蓝珲(1348141770) Free software means zero-cost software. 说得过于绝对。 RStudio就可以收费啊。
蓝珲(1348141770) Zero-cost software cannot be proprietary. 如果这个zero-cost是对用户来说的话,其实大家在Apple Store免费下载的很多软件都是私有的。
2020-03-13 8:05:10 计非181 王智洋(1162466610)
201830220719
2020-03-13 8:05:18 网络171-侯新苗(953957823)
20173021034
蓝珲(1348141770) Simple Note是不是私有的?
蓝珲(1348141770) https://simplenote.com/
蓝珲(1348141770) 看一下它的主页,好像没有说是open source的,许可证的信息也没有。
蓝珲(1348141770) Simple Note下载使用是免费的,有些额外功能需要付费。
蓝珲(1348141770) If the source code is visible, then the software is open source. 如果仅仅是代码可见,但是许可证是私有的话,就不是open source的。
蓝珲(1348141770) Open Source software cannot be used for commercial purposes. 这个也是False。 RStudio就是例子。它有不同的收费计划(pricing plan),收费是用于商业目的。
蓝珲(1348141770) 以上是Quiz的内容。
蓝珲(1348141770) 我还要求你们去读课本的第二章。大家都已经读完了吧?
蓝珲(1348141770) https://producingoss.com/en/getting-started.html
蓝珲(1348141770) 我估计有部分同学还没有开始读 -- 还没有开始读的要开始读起来了。
蓝珲(1348141770) 你们中文版的那个可以做成电子书吗?
蓝珲(1348141770) https://producingoss.com/zh/
2020-03-13 8:12:34 软工初阳171 应舸(1434305984)
哪个中文版[表情]
蓝珲(1348141770) https://producingoss.com/zh/ch02.xml
蓝珲(1348141770) 就是上面这个。
蓝珲(1348141770) https://producingoss.com/zh/
蓝珲(1348141770) 把整个文件夹拷贝下来,应该是可以做成电子书的。
蓝珲(1348141770) 大家可以试试看。我试过,没有成功。
蓝珲(1348141770) 如果有人成功了,可以分享一下。
蓝珲(1348141770) 因为我的英文比较好,所以英文看起来比较顺畅。
蓝珲(1348141770) 但是阅读速度,还是读中文快的。
蓝珲(1348141770) 中文的话,可以上下扫描。英文,只能老老实实一句一句读了。
蓝珲(1348141770) 也有好处。
蓝珲(1348141770) 另外一个阅读任务也出来了
蓝珲(1348141770) http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/index.html
蓝珲(1348141770) The Cathedral and the Bazaar
蓝珲(1348141770) 大教堂与集市
蓝珲(1348141770) 这个是比较有名了,讲两种软件开发模式。 篇幅较长。
蓝珲(1348141770) 我也是教这门课才看一遍,以前听说过,一直没看,以为是讲生活信仰的。
蓝珲(1348141770) [图片]
.. image:: Cathedral-and-Bazaar-ToC.png
:height: 100
:alt: required reading sections
蓝珲(1348141770) 你们只需要把箭头经过的章节读一下,其他的不用读(主要在讲fetchmail的开发细节)。
蓝珲(1348141770) 这个,中文版也是有的,但是网上说翻译的比较烂。
蓝珲(1348141770) 确实也不好翻译。
蓝珲(1348141770) b站的一些字幕组来翻译估计会翻译的更好。
蓝珲(1348141770) 我们先休息5分钟。
2020-03-13 8:21:12 软工初阳171 何可人(1461938594)
201736900106
2020-03-13 8:21:40 软工初阳171 应舸(1434305984)
201736900128
2020-03-13 8:22:21 初阳软工171方梓安(2453122992)
201736900105
蓝珲(1348141770) ===============================================
蓝珲(1348141770) 还有其他一些好书,Peopleware 之类的。
蓝珲(1348141770) 这个大家工作后可以读读。
蓝珲(1348141770) [文件]
蓝珲(1348141770) 上面这个文件主要是专访熊节的文字实录。大家课后可以看看。
蓝珲(1348141770) 不做要求。
蓝珲(1348141770) 对了,你们的 Decide areas for improvement 还没有交。
蓝珲(1348141770) 是我忘记在对分易创建提交目录了。
蓝珲(1348141770) 现在已经创建,你们在下周一之前交上去。别忘了包括组员信息,这样方便我给分。这个是2分。
蓝珲(1348141770) 看板 - Kanboard
蓝珲(1348141770) 我想让你们用看板来管理软件项目。
蓝珲(1348141770) 你们的账号密码我已经创建。
蓝珲(1348141770) [图片]
.. image:: TIM20200316180248.png
:height: 100
:alt: Kanboard for undergraduate thesis supervision
蓝珲(1348141770) 我的看板是长上面这个样子的。
蓝珲(1348141770) 卡片可以拖动到不同的泳道(swim lane)。
蓝珲(1348141770) 有4个泳道。
2020-03-13 8:37:28 初阳软工171 伍泰炜(2728735169)
然而这是Github已经包含的一部分功能……
蓝珲(1348141770) 原则上是“进行中(In Progress)”那个泳道卡片(任务)不能超过2个。这是为了避免 Multi-tasking。
蓝珲(1348141770) Github只是拿来做代码版本管理的。
蓝珲(1348141770) 看板肯定没有这个做得好。
蓝珲(1348141770) 个人观点。
蓝珲(1348141770) 我的目的是,我要看到你们管理项目的动态。
蓝珲(1348141770) 也许你已经有动态了,但是我不知道。
蓝珲(1348141770) 所以你要记录下来。
蓝珲(1348141770) 看板这个功能很多团队协作工具都有的,比如Trello,JIRA。
蓝珲(1348141770) 我们用的这个 kanboard 胜在轻量,简洁明快。
蓝珲(1348141770) 你们以后去公司工作,可以自己部署在公司服务器。
蓝珲(1348141770) 最多花一天时间,就可以部署好了。
蓝珲(1348141770) 所以,你们从今天开始,就可以慢慢在看板上(http://118.25.96.118/kanboard)添加卡片了。
蓝珲(1348141770) [图片]
蓝珲(1348141770) [图片]
蓝珲(1348141770) 每个卡片点进去是这样的。可以添加评论。
蓝珲(1348141770) [图片]
蓝珲(1348141770) 这个软件是个开源软件,法国人开发的,但是参与项目的人数前前后后也有200人了吧。
2020-03-13 8:44:30 系统消息(10000)
初阳软工171 伍泰炜撤回了一条消息
2020-03-13 8:44:45 初阳软工171 伍泰炜(2728735169)
[图片]
蓝珲(1348141770) 你们登录一下试试。
蓝珲(1348141770) 我们先休息5分钟。
2020-03-13 8:45:40 软件工程 常思琦(995959606)
201732120101
蓝珲(1348141770) ===============================================
蓝珲(1348141770) [图片]
蓝珲(1348141770) 我们要做软件,首先要想想自己手里头有什么。
蓝珲(1348141770) 现在老是喊创新。
蓝珲(1348141770) 创新哪里有那么容易。
蓝珲(1348141770) 根据辩证法,创旧到极致就是创新。
蓝珲(1348141770) 很多所谓的创新,那叫一个惨不忍睹。
蓝珲(1348141770) 我手头上有一个软件,我要把它开源,公之于众,怎么个搞法?
蓝珲(1348141770) 把代码往github一扔,就完事了?
蓝珲(1348141770) 在现阶段,你们搞开源,其实更多的目的是对自己的一种鞭策。
蓝珲(1348141770) 看看自己有几天没有打卡了。
蓝珲(1348141770) 比如这个 Benno Schulenberg 就是几乎天天都在打卡。
蓝珲(1348141770) https://git.savannah.gnu.org/cgit/nano.git/log/
蓝珲(1348141770) [图片]
.. image:: nano-git-log.png
:height: 100
:alt: Benno Schulenberg's nano maintenance activity
蓝珲(1348141770) 十年如一日的打卡,这样做出来的产品会不行?
蓝珲(1348141770) Benno Schulenberg 是在创旧啊。
蓝珲(1348141770) 说实话,我很佩服这个老哥的做事精神。
蓝珲(1348141770) 这才是做软件,才是管理软件嘛。
蓝珲(1348141770) 都是一行一行,实打实出来的嘛。
蓝珲(1348141770) 开源后,要告诉这个世界你的软件是做什么用的。
蓝珲(1348141770) 这个是 mission statement 里要包含的东西。
蓝珲(1348141770) 还有比较重要的是描述你的软件的特色,
蓝珲(1348141770) 与不足。
蓝珲(1348141770) 特色大家都不会忘记。
蓝珲(1348141770) 不足大家都不愿意提及。但是,这个确实是要提及的,而且是有帮助的。
蓝珲(1348141770) 能够拉近人与人的距离。
蓝珲(1348141770) 我们与圣人的距离很远,因为他的不足很少。
蓝珲(1348141770) 我们提不足,其实是锚定期望值。
蓝珲(1348141770) “我事先告诉你了哦,我的软件可能会随时崩溃,你可要经常存盘哦。”
蓝珲(1348141770) 当然,我们把不足描述了以后,也是为了给以后的改进提供方向。
蓝珲(1348141770) 介绍软件要尽量简洁明了,让别人理解你的软件。
蓝珲(1348141770) 别炫技。
蓝珲(1348141770) 把代码公开后,也有助你一开时就注意采取比较好的开发目录。
蓝珲(1348141770) 不要把所有的文件都丢在一个文件夹下。
蓝珲(1348141770) 除非你的项目只有很少的文件。
蓝珲(1348141770) [图片]
.. image:: courseobjectivesatisfaction-git-log.png
:height: 100
:alt: source tree for Course Objective Satisfaction
蓝珲(1348141770) 比如我这个,只有两个文件,所以放在一个文件夹下也可以。
蓝珲(1348141770) 项目的名字就是 “课程目标达成度”。
蓝珲(1348141770) 不是很好的名字,是个功能性的名字。
蓝珲(1348141770) 就是根据同学的各项成绩,算出一个班级的课程达成度。
蓝珲(1348141770) 不过这个指标是有 bug 的。
蓝珲(1348141770) 什么bug大家自己想。(参见 Goodhart's Law)
蓝珲(1348141770) Code tree: src/, bin/, lib/, etc/, include/, test/, share/, data/, example/, doc/, README, LICENSE, COPYING, MANUAL, TUTORIAL, FAQ, ...
蓝珲(1348141770) 大型一点的软件,一般会有下面的子文件夹与文件。
蓝珲(1348141770) Code tree就是代码的目录结构。
蓝珲(1348141770) src里面放源代码,.c, .py, .java之类。
蓝珲(1348141770) bin里面放可执行文件。这个一般可以提供,也可以不提供,不提供的话,要确保用户能够很容易自己生成可执行文件。
蓝珲(1348141770) 提供的话,就要考虑不同的CPU架构、操作系统了。
蓝珲(1348141770) etc里放些杂七杂八的东西。
蓝珲(1348141770) doc放文档。
蓝珲(1348141770) LICENSE与COPYING选一个就好了,放许可证。
蓝珲(1348141770) 现在我看到的情况是,COPYING用得比较多。
蓝珲(1348141770) 这种标准化的软件项目目录是比较好的结构。
蓝珲(1348141770) 我们休息5分钟。
2020-03-13 9:15:03 初阳软工171 伍泰炜(2728735169)
@蓝珲 应该没有行不行一说,Nano在做简单文本文件编辑时是不错。但不要希望用它来做复杂的编辑工作。其它的编辑器诸如'emacs','vim','gedit'都提供了文本着色以及自动文本格式化。而Nano只做最基本的编 辑操作,而不提供其它功能。而用户只要有需求就会尝试符合需求的软件。Linux平台的文本编辑器还有很多,vim,geditor,emacs等等,nano不是唯一的选择,也不能说是做的最好的。而且,nano的作者没有关心可怜的乌干达儿童。(玩笑)
蓝珲(1348141770) ===============================================
蓝珲(1348141770) 凡我不能做到的正义之事皆值得敬佩。
蓝珲(1348141770) 10年在维护一个“简单”的东西,你说他图啥?
蓝珲(1348141770) 值得深思。
蓝珲(1348141770) 下课。
蓝珲(1348141770) 这个大家看看。
蓝珲(1348141770) 10-year Rule https://www.joelonsoftware.com/2001/07/21/good-software-takes-ten-years-get-used-to-it/
.. image:: 10-year-rule-spolsky.png
:height: 100
:alt: Good Software Takes Ten Years. Get Used To it. JULY 21, 2001 by JOEL SPOLSKY
蓝珲(1348141770) 我们下次课讲。
2020-03-13 9:32:23 初阳软工171 伍泰炜(2728735169)
英雄联盟也很厉害的,他从2009年美服开服,一直维护到今天,版本号从0到10。大家也来敬佩敬佩[表情]
Monday, 16 March 2020
=====================
*Feedback on project proposal - Setting up a central code repo - Concerted management efforts - Kanboard - Project mission*
Morning section
----------------
2020-03-16 10:34:01 201732120170-Tamene Robel妈妈(3287975278) No class?
2020-03-16 10:34:27 Saeed : 201732120146(446571011) [表情]
2020-03-16 10:34:32 nainezz(2407048879) Was about to ask same question
2020-03-16 10:34:34 armand(2431154023) ?
2020-03-16 10:34:55 201732120134_Michelle(3304952232) it starts at 10:35
2020-03-16 10:34:55 201732120170-Tamene Robel妈妈(3287975278) Sleep guys
2020-03-16 10:34:56 ibrahim(1525200991) break
2020-03-16 10:35:01 201732120134_Michelle(3304952232) [表情]
2020-03-16 10:35:07 ALBOROM WARD-201732120143家长(3279308836) 10:40
2020-03-16 10:35:21 nainezz(2407048879) @ibrahim break ??
蓝老师 ===================================================
2020-03-16 10:35:32 ibrahim(1525200991) breakfast
蓝老师 Morning guys. Could you type your student number?
2020-03-16 10:35:42 ibrahim(1525200991) 201732120159
2020-03-16 10:35:43 系统消息(10000) FADHEL ABDULLAH撤回了一条消息
2020-03-16 10:35:43 陈真赐(1312502742) 201732120114
2020-03-16 10:35:47 nainezz(2407048879) 201732120173
2020-03-16 10:35:49 201732120141--AHAMED SABUJ妈妈(2686217157) 201732120141
2020-03-16 10:35:50 ALBOROM WARD-201732120143家长(3279308836) 201732120143
2020-03-16 10:35:51 软英171 陆博业(2794513466) 201732120119
2020-03-16 10:35:52 李佳兴(421281726) 201732120118
2020-03-16 10:35:55 201732120134_Michelle(3304952232) 201732120134
2020-03-16 10:35:58 叶涵涛(2289316051) 201732120125
2020-03-16 10:36:02 软英171陈伟超(937202326) 201732120113
2020-03-16 10:36:05 FADHEL ABDULLAH(3071163205) 201532120139
2020-03-16 10:36:06 杰西卡201732120133(2422938906) 201732120133
2020-03-16 10:36:14 201732120167 Clive妈妈(3321692247) 201732120167
2020-03-16 10:36:20 软英171高增(1520653544) 201732120117
2020-03-16 10:36:21 201732120157 hossain arif<charif19282@qq.com> 201732120157
2020-03-16 10:36:22 Saeed : 201732120146(446571011) 201732120146
2020-03-16 10:36:23 ABDALMUHAYMEN 201730210234(1071107298) 201730210234
蓝老师 Let's wait 4 minutes for more people to join in.
2020-03-16 10:36:37 armand(2431154023) 201732120161
2020-03-16 10:36:40 软英171 郑可富(1924773187) 201732120129
2020-03-16 10:36:51 201632120150-Ashly(1661411131) 201632120150
2020-03-16 10:36:54 Mohamed Jifry Hazzaly Mohamed爸爸(3028786026) 201732120165
2020-03-16 10:36:54 谢佳聪(1249923715) 201732120123
2020-03-16 10:37:03 LUL GUOBA RUOT (2217724540) 201632120161
2020-03-16 10:37:21 201732120170-Tamene Robel妈妈(3287975278) 201732120170
2020-03-16 10:37:31 软英171周仙龙(1748153603) 201732120130
2020-03-16 10:37:41 201732120127 张滨(2350711965) 201732120127
2020-03-16 10:38:12 Samantha 201632120140(2459455104) 201632120140
蓝老师 [Announcement]
蓝老师 You need to finish reading `The Cathedral and the Bazaar`_ by the end of this week.
.. _The Cathedral and the Bazaar: http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/index.html
蓝老师 I am not going to post new readings this week. Please finish the above reading first.
蓝老师 This reading may or may not appear in our quiz. But it will certainly appear in our exam.
蓝老师 Take some notes while you're reading.
蓝老师 I feel Eric Raymond's writing is a bit hard to understand.
蓝老师 You do not have to read all sections, only the selected sections that I mentioned on our course home page.
蓝老师 About "Decide areas for improvement".
蓝老师 I have posted my opinions on your proposed areas for improvement.
蓝老师 http://lanlab.org/course/2020s/spm/decide-areas-for-improvement-review.html
蓝老师 I have three opinions: Accept, Half Accept and Reject.
蓝老师 In most Reject cases, the reason why I rejected your proposal is that I could not understand what you are going to do, either because your writing is too vague or too confusing.
蓝老师 If your status is Accept, you get 2 marks.
蓝老师 If your status is Accept with Conditions, you get 1 (temporarily).
蓝老师 If your status is Reject, you get 0 (temporarily).
蓝老师 I will give you a chance to revise your proposal.
蓝老师 If I finally accept your proposal, I will update your mark of this part to 2.
蓝老师 For now, I use the above marking strategy.
蓝老师 You could look at the above `big table`_ and look at other people's proposals.
.. _big table: http://lanlab.org/course/2020s/spm/decide-areas-for-improvement-review.html
蓝老师 Remember: if you submit your revised proposal (for Decide Areas for Improvement), that proposal should not duplicate the areas already mentioned in the above table.
蓝老师 We don't want duplicate efforts.
蓝老师 What is a good deadline for submitting the revised proposal?
蓝老师 (Ward, you sent that by email? If yes, I will check.)
蓝老师 (No problem.)
蓝老师 (Some late penalty may apply.)
蓝老师 Perhaps next Monday (Mar 23) is a good deadline for submitting the revised proposal.
蓝老师 You do not need to submit your proposal again if you are in the Accept category.
蓝老师 However, please check the questions I asked (if any) in the column Instructor Comments, and answer them in your Kanboard project.
蓝老师 You should first create a project inside Kanboard (http://118.25.96.118/kanboard),
蓝老师 then create a card within that project, addressing the questions (if any) I asked.
蓝老师 That is for people in the Accept category.
蓝老师 For people in the other two categories (Accept with Conditions and Reject), you must send an updated proposal to me by next Monday 11:59pm.
蓝老师 Everyone should start using Kanboard now.
蓝老师 If you do not have an account yet, tell me that. I will create one for you.
蓝老师 I believe most people have Kanboard accounts.
蓝老师 It seems you intend to manage either LRR or OAPS,
蓝老师 which is great.
蓝老师 The problem is that if each group manages LRR separately, we do not have a concerted management effort.
蓝老师 (OK. For guys who are unable to login Kanboard, don't worry. I will create an account for you later today.)
蓝老师 Since Ashly has already made some improvements to LRR, is it a good idea that all people commit to his github repo?
蓝老师 Ashly will act as a gatekeeper for merging your commits.
蓝老师 Is Ashly here? Could you do that?
蓝老师 Let's take a 5-minute break.
蓝老师 ===================================================
蓝老师 ("All of us can’t login (Kanboard)"?)
蓝老师 (Anyway, it is easy for me to change your password.)
蓝老师 (Of course, if you have made lots of failed attempts.)
蓝老师 Anyone good at github's pull request and review processes?
蓝老师 My idea is to have one (central) github repo that hosts all of our maintenance work.
蓝老师 We need a person to merge commits.
蓝老师 Is that supposed to be me?
蓝老师 We need a person to review pull requests, merge them, etc.
蓝老师 Different groups could work on different branches without interrupting each other.
蓝老师 We then regularly merge the branches back to the master branch.
蓝老师 That is the idea.
蓝老师 (You do not have to sign in Kanboard now.)
蓝老师 Of course, we can do the same thing (i.e., one central repo) for OAPS.
蓝老师 [图片]
.. image:: TIM20200316222325.png
:height: 100
:alt: two versions of the same software
蓝老师 The problem for OAPS is that you work on different versions (see the above picture).
蓝老师 (I think Ashly has that time. He is almost done.)
蓝老师 It is convenient for each group to work on their own version, but the drawback is that your individual improvements could not be taken together to make a big improvement.
蓝老师 Let me think more about that.
蓝老师 Perhaps I am the one who should review your code and merge it.
蓝老师 (It doesn't matter.)
蓝老师 (You could clone it to a public repo and work on the public one.)
蓝老师 (That is not the main reason.)
蓝老师 Or, we could create a `course-level public account`_ at github so that everyone could commit there.
.. _course-level public account: https://github.com/spm2020spring
蓝老师 Anyway, send me an email if you are interested (in being the gatekeeper).
蓝老师 What is the reward? You may ask.
蓝老师 I don't know. Perhaps you could learn more? Or we will have a better software?
蓝老师 Ibrahim could do that?
蓝老师 You are not working on LRR, are you?
蓝老师 Alright. Let's say Ashly has temporarily agreed to maintain a course-level public repo for LRR, and Ibrahim for OAPS.
蓝老师 Of course, I welcome other people to join.
蓝老师 I may help too.
蓝老师 Perhaps you know more github operations that I do.
蓝老师 I kind of forget the look and feel of your OAPS, Ibrahim.
蓝老师 Could you show some screenshots?
蓝老师 If yours is good, I would suggest everyone to improve on top of your version.
蓝老师 I am going to create two course-level public github repos, one for LRR, and another for OAPS.
蓝老师 When you commit to the public repo, do not forget to include your name and student number for each commit in your commit message.
蓝老师 That is your credit.
蓝老师 It is harder for me to infer who you are from your email address.
蓝老师 (Yes. Send them to me by email. Thanks.)
蓝老师 We talked about how to earn 1b dollars from our software 10 years later.
蓝老师 Can we earn that much from LRR or OAPS.
蓝老师 I think the chance is very remote.
蓝老师 There are better products out there.
蓝老师 For OAPS's counterpart, we have arXiv, bioarXiv, etc.
蓝老师 For LRR, we have Duifenyi, Chaoxing, etc.
蓝老师 If you are successful, you should give me some credit.
蓝老师 Let's take a 5-minute break.
蓝老师 ===================================================
蓝老师 (Learn more to earn more.)
蓝老师 No problem for LRR, since everyone starts from "scratch".
蓝老师 OAPS - most of you have already worked on a version of it. If we choose to use Ibrahim's version, then ...
蓝老师 other people may be less familiar with that version than Ibrahim is.
蓝老师 How to solve that problem if we do want to have a central github repo?
蓝老师 Need to think more about that.
蓝老师 (Of course we can do that, but the point is that we need to merge these branches someday.)
蓝老师 If these branches are drastically different, it is very hard to merge them.
蓝老师 A better idea to start off from a Mother Branch.
蓝老师 Whose code should be the Mother Branch?
蓝老师 If we have decided a Mother Branch, then people could make their own improvements on top of that, making the merge job much easier.
蓝老师 I will check my grade book of last semester's OAPS evaluation and figure out if I can pick a Mother Branch.
蓝老师 I will browse your code too.
蓝老师 Lots of work on my side. But I am glad to do that.
蓝老师 I remember Ibrahim's code is not that bad, isn't it?
蓝老师 Let's see.
蓝老师 Kanboard.
蓝老师 Once you have created a project inside Kanboard, could you invite me to your project so that I can monitor your progress?
蓝老师 You should also make your Kanboard public.
蓝老师 Easier for the outsider to check your status (like something shown below).
蓝老师 [图片]
.. image:: TIM20200316180248.png
:height: 100
:alt: Kanboard for undergraduate thesis supervision
蓝老师 (Thanks, Ibrahim.)
蓝老师 [图片]
.. image:: TIM20200316222412.png
:height: 100
:alt: Slide "starting from what you have"
蓝老师 That is almost every thing for today.
蓝老师 One advice is "Starting from What You Have",
蓝老师 which is exactly we are doing now.
蓝老师 We need to have a mission, and a vision.
蓝老师 Give an overview of our project.
蓝老师 What is Raspberry Pi's mission statement?
蓝老师 https://www.raspberrypi.org/
蓝老师 [图片]
.. image:: TIM20200316222452.png
:height: 50
:alt: Raspberry Pi's mission
蓝老师 Use one sentence to let other people hear your ping.
蓝老师 Use one sentence to let other people know why you do this project.
蓝老师 Bye.
Afternoon Section
-----------------
Lan Hui: ===================================================
Lan Hui: Good afternoon. Could you type your student number?
Guedalia Youma (3014432207) Good afternoon professor
Nicole Rutagengwa (1403962700) Good afternoon sir
Guedalia Youma (3014432207) 201925800221
Twizere Pacifique 唐平<pacitwizere@hotmail.com> Good Afternoon Teacher
Nicole Rutagengwa (1403962700) 201925800169
NGOUNOU家长(438499151) hello Sir
Twizere Pacifique 唐平<pacitwizere@hotmail.com> 201925800174
Tabitha(2954060050) 201925800170
NGOUNOU家长(438499151) 201925800180
Marie(2928285277) 201925800173
Lan Hui: I would like to share with you an interesting article, on MOOC teaching methods.
Lan Hui: https://www.classcentral.com/report/why-my-mooc-is-not-built-on-video/
Lan Hui: [图片: Lorena Barba. Mar 5th, 2015. Why My MOOC is Not Built on Video.]
Lan Hui: The author's main point: "expensive, high-production-value videos are not necessary to achieve a quality learning experience."
Lan Hui: " 'Lecture videos' have the same pitfalls as regular lectures: they provide a false sense of clarity and are utterly forgettable", she says.
Lan Hui: Very interesting. You could save the essay for future reading. At least I am convinced.
Lan Hui: When you watch video, you enter a Passive Zone.
Lan Hui: Where were we left last time?
Lan Hui: I have talked about Ashly's story of a bug fix for LRR.
Lan Hui: The "`Unable to sign in immediately after sign up`_" bug.
.. _Unable to sign in immediately after sign up: http://118.25.96.118/bugzilla/show_bug.cgi?id=30
Lan Hui: All LRR bugs are here: http://118.25.96.118/bugzilla/describecomponents.cgi?product=Lab%20Report%20Repository%20%28nor%20houzi%29
Lan Hui: I am happy that we have more than 40 bugs now for LRR.
Lan Hui:
.. image:: LRR-all-bugs.png
:height: 100
:alt: Product: Lab Report Repository (nor houzi) http://118.25.96.118/bugzilla/buglist.cgi?bug_status=__all__&no_redirect=1&order=changeddate%20DESC%2Cpriority%2Cbug_severity&product=Lab%20Report%20Repository%20%28nor%20houzi%29&query_format=specific
Lan Hui: The above picture shows some recent bug reports. I entered these reports, which I got from students.
Lan Hui: The "Group creation error on duplicated group names" is reported by one of you guys.
Lan Hui: These reports have laid a solid foundation for LRR.
Lan Hui: At least I think so.
Lan Hui: Software is Hard.
Lan Hui: Thus I have also talked about the 10-year Rule.
Lan Hui: See https://www.joelonsoftware.com/2001/07/21/good-software-takes-ten-years-get-used-to-it/
Lan Hui: [图片]
Lan Hui: This is actually a VIR (Very Important Rule).
Lan Hui: No one has told you that. I believe.
Lan Hui: It is important for morale.
Lan Hui: "Anyway, something good does need time. I just need to give myself more time for it to be that good."
Lan Hui: You may think after knowing this rule.
Lan Hui: "I just cannot believe that you could achieve something that good in one year. "
Lan Hui: Policy makers think after knowing this rule, so they won't rush and set unrealistic expectations.
Lan Hui: I have talked about the Affero GPL for online applications, too.
Lan Hui: Online applications are a bit different from offline applications in that their source code is not distributed. Rather, it is stored on server.
Lan Hui: Customers do not download a copy of the source code.
Lan Hui: Weibo and twitter are these kinds of online applications.
Lan Hui: Although you may still have clients for them too.
Lan Hui: Office 365 is a typical online application, although it does not come with a free and open source license.
Lan Hui: I mentioned that both GPL and Affero GPL are copyleft licenses.
Lan Hui: What does "copyleft" mean?
Lan Hui: Something in an opposite direction from "copyright"?
Lan Hui: A copyleft license says that the derivative works must grant freedoms described in the parent license. Example: GPL, Affero GPL.
Lan Hui: It is like an infectious license,
Lan Hui: isn't it?
Lan Hui: You require the derivative work to use the same (or at least compatible) license too.
Lan Hui: What does derivative work mean?
Lan Hui: A derivative work is a piece of work that is built upon the material of an old work.
Lan Hui: In the software source code sense, a derivative software has used a piece of source code from someone else.
Lan Hui: Whether that piece of source code is a file, or just a function.
Lan Hui: GPL, Affero GPL -- copyleft licenses.
Lan Hui: If you use GPL license in your software, other people who think this license too restrictive may be afraid to incorporate your code into their software.
Lan Hui: Because if they do, their software has to use GPL-like licenses too. Many people do not want to do that.
Lan Hui: That is OK. On the contrary, some people indeed want to do that.
Lan Hui: What are non-copyleft licenses, while still being open source?
Lan Hui: MIT Licenses, Apache Software License v2, and BSD license -- non-copyleft licenses.
Lan Hui: These licenses do not put as strict a restriction on derivative work as copyleft licenses do.
Lan Hui: "I do not care how you are going to use my source code."
Lan Hui: "Commercial, proprietary, all OK."
Lan Hui: "As long as you keep the copyright notice of the original code intact."
Lan Hui: Let us take a 5-minute break.
Guedalia Youma (3014432207) Alright
Lan Hui: ===================================================
Lan Hui: Remember the Software Engineering course taught by Professor Leveson at MIT?
Lan Hui: https://ocw.mit.edu/courses/aeronautics-and-astronautics/16-355j-software-engineering-concepts-fall-2005/
Lan Hui: [图片]
.. image:: Leveson-Software-Engineering-MITOCW.jpg
:height: 100
:alt: Software Engineering Concepts, Prof. Nancy Leveson, Fall 2005, Graduate, MIT Course Number 16.355J / IDS.341J / (formerly ESD.355J)
Lan Hui: The course material's license is called Creative Commons License.
Lan Hui: Creative Commons License is commonly used for documents.
Lan Hui: [图片]
.. image:: CC-icon.png
:height: 100
:alt: Icon for Creative Commons License.
Lan Hui: If you see this toilet sign-like icon, then it means that product uses the Creative Commons License.
Lan Hui: You could use the materials for free, or build materials on top of it with no problems, as long as you give credit to the original authors.
Lan Hui: Very few software would use Creative Commons License. CC is mostly for documents (I think).
Lan Hui: Books can use CC License.
Lan Hui: What is the license of our textbook?
Lan Hui: Karl Fogel. Producing Open Source Software: How to Run a Successful Free Software Project. Second Edition.
Lan Hui: I believe it is under Creative Commons License.
Lan Hui: Check https://producingoss.com/en/copyright.html
Lan Hui: If you write a book, you could consider using this license.
Lan Hui: (Graduate Life in A beautiful City in East China?)
Lan Hui: Creative Commons License is a very popular license in the publishing industry.
Lan Hui: Let us move on to the next topic.
Lan Hui: [Announcement]
Lan Hui: You need to finish reading *The Cathedral and the Bazaar* by the end of this week.
Lan Hui: http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/index.html
Lan Hui: There will be no new reading assignment this week.
Lan Hui: Make a plan to finish reading the above essay, an important one in the open source world.
Lan Hui: When you read, make sure you take some notes, writing down the key points, refreshing ideas, eye-opening thoughts, etc.
Lan Hui: So that you could have a quick review when needed.
Lan Hui: Now let's talk about "Decide areas for improvement".
Lan Hui: I have posted my opinions on your proposed areas for improvement.
Lan Hui: Check the following link.
Lan Hui: http://lanlab.org/course/2020s/spm/decide-areas-for-improvement-review.html
Lan Hui: [图片]
.. image:: TIM20200316175023.png
:height: 100
:alt: Accept case
Lan Hui: [图片]
.. image:: TIM20200316175029.png
:height: 100
:alt: Half Accept case
Lan Hui: 0 Reject.
Lan Hui: 1 Accept with Conditions.
Lan Hui: The "Accept with Conditions" proposal is proposing to provide Chinese language support.
Lan Hui: Localization is best done by native speakers who master both the target language and the original language.
Lan Hui: Below is my comments: While supporting Chinese is important and highly desired (see the bottom part of this link: http://lanlab.org/course/2019s/spm/user-feedback-on-LRR-implemented-by-nor-houzi-group.html), it is not my current priority since there are so many critical bugs awaiting to be solved. I am a bit unsure about your level of Chinese. Please convince me that you could carry out the task (e.g., by which means). If you just replace English words with Chinese words in user interface, that is not very flexible. Once the English interface has been changed, you need to do the whole thing again. I believe there is a better way to do localization. For example, Nano has a po file for each target language. See https://git.savannah.gnu.org/cgit/nano.git/tree/po/zh_CN.po You should provide a similar solution for LRR.
Lan Hui: My main concern is that Bernard and Moummou do not know Chinese well enough.
Lan Hui: Of course, you could argue that I don't have to know Chinese well enough to do the work.
Lan Hui: Look, I have translation tools like Bing translator, Youdao translator, etc.
Lan Hui: That is right. So I don't object your proposal based solely on the language-proficiency ground.
Lan Hui: That is why I gave "Accept with Conditions" rather than Reject.
Lan Hui: On the technical side, you need to make sure you don't just use a Search-and-Replace approach.
Lan Hui: That is not flexible.
Lan Hui: You should adopt a systematic method to provide the Chinese language support.
Lan Hui: Nano supports Chinese too, achieved through a po file: https://git.savannah.gnu.org/cgit/nano.git/tree/po/zh_CN.po
Lan Hui: This po file contains blocks like below.
Lan Hui::
#: src/browser.c:67
#, c-format msgid "Cannot open directory: %s" msgstr "无法打开目录:%s"
Lan Hui: You see. "Cannot open directory: %s" -> "无法打开目录:%s"
Lan Hui: The translation is not done on the source code, but done in another file.
Lan Hui: You need to familiarize with that kind of approach.
Lan Hui: I won't accept a "Chinese version" of the source code made by a manual Search-and-Replace approach.
Twizere Pacifique 唐平<pacitwizere@hotmail.com> Teacher I have small question about the bug correction assignment , After we finish ,how are we going to submit ? , Can we have a github repository access so that we can submit by doing pull requests , or are we going to send you the files that we have changed ?
Lan Hui: That is a good question. I will talk about that in a moment.
Lan Hui: Let's take a 5-minute break first.
Twizere Pacifique 唐平<pacitwizere@hotmail.com> okay
Lan Hui: ===================================================
Lan Hui: Returning to Pacifique's question,
Lan Hui: I intend to create a course-level github account so that you could send your changes there.
Lan Hui: I will use Ashly's current code as the Mother Branch, from which you could clone.
Lan Hui: BTW, Ashly is an undergraduate student taking the same course.
Lan Hui: The Mother Branch is in fact the master branch.
Lan Hui: You clone that master branch to your local drive.
Lan Hui: Work on your "features" and send pull requests for merging.
Lan Hui: Are you good at pull request and code merging, Pacifique?
Lan Hui: You could be one of the committers.
Twizere Pacifique 唐平<pacitwizere@hotmail.com> I did not do it a lot of times , because I mostly create my own projects
Lan Hui: A committer has the write permission to the central repo.
Lan Hui: We could discuss that later. It is good for you to learn that.
Twizere Pacifique 唐平<pacitwizere@hotmail.com> Yes sir , It will be an honor to do be among the team
Lan Hui: (Learn more to earn more.)
Twizere Pacifique 唐平<pacitwizere@hotmail.com> okay
Lan Hui: I am not very good at advanced github operations either.
Lan Hui: But I do not think that is extremely hard to learn.
Lan Hui: Just try-and-error and need some extra patience.
Lan Hui: The idea is that each group's small improvements should be combined to form a big improvement,
Lan Hui: instead of having many forks, each of which is error-prone.
Lan Hui: We want to have a concerted project management effort for LRR.
Lan Hui: I will explain the term "fork" later. Actually, our textbook spends a lot of time on talking about that.
Lan Hui: https://producingoss.com/en/social-infrastructure.html#forkability
Lan Hui: Not required now. But you can read it if you are interested.
Lan Hui: For Bernard and Moummou, are you guys here?
NGOUNOU家长(438499151) we are here
Lan Hui: You could either convince me on your ability to provide the translation as suggested in your original plan,
Lan Hui: or make a new plan.
NGOUNOU家长(438499151) Okay laoshi
Lan Hui: [图片]
.. image:: LRR-5-bug-reports.png
:height: 100
:alt: LRR 5 bug reports
Lan Hui: Above are `five possibilities`_ that you could consider.
.. _five possibilities: http://118.25.96.118/bugzilla/buglist.cgi?chfield=%5BBug%20creation%5D&chfieldfrom=7d&order=changeddate%20DESC%2Cbug_status%2Cpriority%2Cassigned_to%2Cbug_id&query_format=advanced
Lan Hui: I think the feature request "Enter student numbers in batch" is particularly useful.
Lan Hui: [图片]
.. image:: TIM20200316175523.png
:height: 100
:alt: batch student number enrollment
Lan Hui: Now, to let LRR recognize a student, I need to manually insert his student number by operating on the backend MySQL sever.
Lan Hui: This is OK if I do not have many student numbers to enter.
Lan Hui: But think about that. If you are asked to enter 100 student numbers a day,
Lan Hui: or 3-5 student numbers each day in a week.
Lan Hui: That is not efficient.
Lan Hui: It would be great to have a User Interface for each instructor so that he could copy and paste any number of student numbers in a box and click submit. Done.
Lan Hui: [Hui Lan 2020-03-10 11:44:24 CST] It would be nice if I could enter many student number to the database table: students_data. Why? Because what I am doing now is quite time-consuming. I still receive many email messages telling me they are unable to sign up (see the attached picture), therefore, I have to enter their student numbers one by one. First, I need to login MySQL. Second, I need to execute the following SQL statement: insert into students_data(Student_ID, Passport_Number) values ('201925800169', ''); I believe we can do better than that. It would be great to have a input box so that I could copy and paste any number of student numbers, separated by white-spaces, click submit, then these numbers will be written to the table students_data. Of course, if a student number already exists, do not insert that number again. -Hui
Lan Hui: This is something Bernard and Moummou could consider.
Lan Hui: ===================================================
Lan Hui: Last thing for today, Kanboard.
Lan Hui: Basically, I want you to plan your project and record your project management activity on Kanboard (or Kanban).
Lan Hui: http://118.25.96.118/kanboard
Lan Hui: [图片]
.. image:: TIM20200316180248.png
:height: 100
:alt: Kanboard for undergraduate thesis supervision
Lan Hui: Above is one of my Kanboard projects.
Lan Hui: You see, I have 4 swim lanes, each representing a stage.
Lan Hui: Each colored card represents a task.
Lan Hui: I could drag the card to one of these four swim lanes.
Lan Hui: [图片]
Lan Hui: I could discuss inside each card (task).
Lan Hui: That is everything for today.
Lan Hui: I will create Kanboard accounts for you.
Lan Hui: Bye.
Marie(2928285277) bye Sir
Guedalia Youma (3014432207) Good bye Sir
Twizere Pacifique 唐平<pacitwizere@hotmail.com> Good Bye Sir
How to cite
=============
Is High Quality Software Worth the Cost? [MartinFowler2019]_.
References
==========
.. [MartinFowler2019]
Martin Fowler. "Is High Quality Software Worth the Cost?". 29 May 2019.
|