File: issue28.html

package info (click to toggle)
lg-issue28 2-1
  • links: PTS
  • area: main
  • in suites: slink
  • size: 2,396 kB
  • ctags: 158
  • sloc: makefile: 30; sh: 3
file content (8731 lines) | stat: -rw-r--r-- 380,477 bytes parent folder | download
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
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
8556
8557
8558
8559
8560
8561
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582
8583
8584
8585
8586
8587
8588
8589
8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639
8640
8641
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653
8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683
8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> Linux Gazette Index Page </TITLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#A000A0"
ALINK="#FF0000" >
<center><H2><IMG SRC="../gx/newlogo.jpg" 
ALT="Linux Gazette... making Linux just a little more fun!">
</H2>

<H5>Copyright &copy; 1996-98 Specialized Systems Consultants, Inc.</H5>
</center>

<P> <HR> <P> 
<!--==================================================================-->
<center>
<H1>Welcome to Linux Gazette!<img src="../gx/tm.gif" alt="(tm)"></H1>
</center>
<P> <HR> <P> 
<!--==================================================================-->
<H1>Published by:</H1>
<center>
<H1><A HREF="http://www.ssc.com/lj/">
        <img src="../gx/ljlogo.gif" alt="Linux Journal"></A></H1>
</center>
<P><HR> <P>
<H1>Sponsored by:</H1>
<table>
<tr>
<td><H1><A HREF="http://www.infomagic.com/"><img ALIGN="bottom" HSPACE="70" src=../gx/infologo.gif alt="InfoMagic"></A></H1></td>
<td>
<H1><A HREF="http://www.suse.com/"><img ALIGN="bottom" src=../gx/suse.gif alt="S.u.S.E."></A></H1></td>
<td>
<H1><A HREF="http://www.redhat.com/"><img HSPACE="70" src=../gx/redhat.gif alt="Red Hat"></A></H1></td>
</tr>
</table>

<P> 
Our sponsors make financial contributions toward the costs of
publishing <I>Linux Gazette</I>. If you would like to become a sponsor
of <I>LG</I>, e-mail us at <A
HREF="mailto:sponsor@ssc.com">sponsor@ssc.com</A>.

<P> 
<I>Linux Gazette</I> is a non-commercial, freely available publication and will
remain that way. Show your support by using the products of our sponsors
and publisher.


<P> <HR> <P>
<!--=================================================================-->
<H1 align="center">Table of Contents <BR>May 1998 Issue #28</H1>

<P> <HR> <P>
<table><tr>
<td rowspan=4>
<UL>
<LI><A HREF="../lg_frontpage.html">The Front Page</A> 
<LI><A HREF="./lg_mail28.html">The MailBag</A> 
<ul>
<li><a HREF="./lg_mail28.html#help">Help Wanted</a>
<li><a HREF="./lg_mail28.html#gen">General Mail</a>
</ul>
<LI><A HREF="./lg_tips28.html">More 2 Cent Tips</A>
<ul>
<li><a HREF="./lg_tips28.html#shut">Re: Shutdown and Root</a>
<li><a HREF="./lg_tips28.html#core">Re: Core Dumps</a>
<li><a HREF="./lg_tips28.html#easter">Easter Egg in Netscape</a>
<li><a HREF="./lg_tips28.html#host">Host Name Completion</a>
<li><a HREF="./lg_tips28.html#login">Running Without Logging In</a>
<li><a HREF="./lg_tips28.html#eggs">Animation Easter Eggs in Netscape</a>
<li><a HREF="./lg_tips28.html#user">Re: Usershell on Console Without Logging In</a>
<li><a HREF="./lg_tips28.html#win95">Backing Up Win95 Files</a>
<li><a HREF="./lg_tips28.html#xterm">Re: X-term for MS-Windows</a>
<li><a HREF="./lg_tips28.html#shut2">Re: Shutdown and Root Again</a>
<li><a HREF="./lg_tips28.html#atapi">Running an ATAPI Zip Drive</a>
<li><a HREF="./lg_tips28.html#binary">New Binaries Script</a>
<li><a HREF="./lg_tips28.html#script">Script Contributions</a>
<li><a HREF="./lg_tips28.html#macker">Re: Core Dumps Again</a>
</ul>
<LI><A HREF="./lg_bytes28.html">News Bytes</A>  
<ul>
<li><a HREF="./lg_bytes28.html#general">News in General</a>
<li><a HREF="./lg_bytes28.html#software">Software Announcements</a>
</ul>
<LI><A HREF="./lg_answer28.html">The Answer Guy</A>, by James T. Dennis
<LI><A HREF="./pizzi.html">BigBen: Network Monitor Utility</a>, by Cesare
Pizzi
<LI><A HREF="./hamilton.html">Building an Audio CD Player, Part 1</a>, by
Michel Hamilton
<LI><A HREF="./hall.html">COMDEX/Spring 1998</a>, by Jon "maddog" Hall
<LI><A HREF="./journeay.html">Home Networking With Linux</a>, by Glen
Journeay
<LI><A HREF="./nielsen.html">IPmasquerading with Roadrunner or Second
Ethernet Card</a>, by Mark Nielsen
<LI><A HREF="./winer.html">Keep Your Eye On The Prize</a>, by Dave Winer
<LI><A HREF="./vermeer1.html">Linux Fax for Dummies</a>, by Martin Vermeer
<LI><A HREF="./schweizer.html">Marketing Linux</a>, by Jim Schweizer
<LI><A HREF="./poel.html">Product Review: Music Publisher</a>,
by Bob van der Poel
<LI><A HREF="./celestino.html">Book Review: Netscape IFC In a Nutshell</a>,
by R. J. Celestino
<LI>New Release Reviews, by Larry Ayers
<ul>
<li><A HREF="./ayers1.html">The Xfstt True-Type Font Server</a>
<li><A HREF="./ayers2.html">Updates to Past Reviews</a>
</ul>
<LI>Open Source Summit
<ul>
<li><A HREF="./raymond.html">Open Source Summit</a>, by Eric Raymond
<li><A HREF="./rossum.html">Open Source Summit Trip Report</a>, by Guido
van Rossum
<li><A HREF="./oreilly.html">Open Source Summit Press Release</a>, from
O'Reilly & Associates
</ul>
<LI><A HREF="./vermeer2.html">A Tale in Writing</a>, by Martin Vermeer
<li><A HREF="./gonnerman.html">Where Nothing Else Will Do</A>, by Chris
Gonnerman
<LI><A HREF="./lg_backpage28.html">The Back Page</A> 
<ul>
<li><a HREF="./lg_backpage28.html#authors">About This Month's Authors</a>
<li><a HREF="./lg_backpage28.html#notlinux">Not Linux</a>
</UL>
</UL>
</td>
</tr>
<tr>
<td align=center>
<A HREF="./linuxexpo.html"> 
<img src="../gx/linuxexpo.gif" border=0 alt="">
</a>
</td>
</tr>
<tr>
<td align=center>
<A HREF="lg_answer28.html"> 
<img src="../gx/dennis/answerwiz-255.gif" border=0 alt="">
</a><P> 
<A HREF="lg_answer28.html"><i>The Answer Guy</i></a>  
</td>
</tr><tr>
<td align=center>
<!-- <A HREF="gm.html"> -->
<IMG SRC="../gx/hammel/banner-3.gif" border=0 alt="">
<P><font color="maroon"><I>The Graphics Muse Will Return</I></font> 
<!-- </a> -->
</td>
</tr>
</table> 

<P> <HR><P>

<!--=============================================================-->
<A HREF="./issue28.txt">The Whole Damn Thing 1 (text)</A><BR>
<A HREF="./issue28.html">The Whole Damn Thing 2 (HTML)</A><BR>
are files containing the entire issue: one in text format, one in HTML. 
They are provided 
strictly as a way to save the contents as one file for later printing in
the format of your choice; 
there is no guarantee of working links in the HTML version.
 
<!--=============================================================-->
<P> <HR><P> 
Got any <I>great</I> ideas for improvements?  Send your
<A HREF="mailto:gazette@ssc.com">comments, criticisms, suggestions
and ideas.</A>

<P><hr><p>
This page written and maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com">gazette@ssc.com</A>

<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"</H4>  
<HR> 
<center>
<table width="100%" cellpadding=7><tr><td>
<H2><a NAME="mail"><IMG SRC="../gx/mailbox.gif" ALIGN=MIDDLE ALT=" ">
The Mailbag!</a> </H2>
Write the Gazette at <A HREF="mailto:gazette@ssc.com"> gazette@ssc.com</A>
</td><td>
<H3>Contents:</H3>
<ul>
<li><a HREF="./lg_mail28.html#help">Help Wanted -- Article Ideas</a>
<li><a HREF="./lg_mail28.html#gen">General Mail</a>
</ul>
</td></tr></table>
</center>

<a name="help"></a>
<p><hr><p>
<!-- =================================================================== -->
<center><H3><font color="maroon">Help Wanted -- Article Ideas</font></H3></center>

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 1 Apr 1998 23:13:13 +0200<BR> 
From: Tomas Valusek, <A
HREF="mailto:tvalusek@vs.inext.cz">tvalusek@vs.inext.cz </A> <BR>  
Subject: MIDI on Linux
<P> 
I'm trying to understand how is MIDI supported on Linux. Can you write a
detailed article about it?
<P> 
Tomas Valusek

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Thu, 02 Apr 1998 15:59:18 +0800<BR> 
From: Kevin Ng, <A HREF="mailto:kng@HK.Super.NET">kng@HK.Super.NET</A> <BR>
Subject: <B>Patch troubleshooting</B> 
<P> 
It is common nowadays for s/w to be delivered in form of patches, which
makes sense in terms of saving network bandwidth and time.
However, as a end user, when somehow a patch fails, I don't know what do
do, except email to the original author.
<P> 
I'd therefore like to see an article describing patches, i.e.,
<ul>
<li>what are they for ?
<li>How to apply one ?
<li>How to create one ?
<li>How to check integrity of s/w patch
<li>what to do if the patch gives you errors ?
</ul>
Kevin (from Hong Kong)

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 30 Mar 1998 16:51:09 -0800<BR> 
From: Nate Daiger, <A HREF="mailto:daiger@newdream.net">daiger@newdream.net</A> <BR> 
Subject: <B>HELP--Utility for changing NTFS partition sizes</B> 
<P> 
	I want to dynamically change my NTFS partition to install Linux, but can
only find resizing utilities for FAT. If no such utility exists, is there a
way to install Linux on an NTFS partition?
<P>
Nate Daiger

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 31 Mar 1998 22:33:39 -0500<BR> 
From: Ahmad Faiz, <A
HREF="mailto:AFAIZ@cstp.umkc.edu">AFAIZ@cstp.umkc.edu </A> <BR> 
Subject: <B>Printing with Linux</B> 
<P>
I'm running Red Hat 5.0 on my machine, and I've just bought a HP DeskJet 
722C printer, but I couldn't get it to work. I asked around on the IRC 
channels, and so far everyone has answered that Linux does not support 
it - is it a windows-only printer?
<P>
If so, is it possible to write a driver for it? or does anyone know of 
where I can get my hands on the driver (if it's already been written, of 
course). I would love to try and write one, but unfortunately I'm new to 
Linux and to programming.
<P>
any help would be appreciated...thanks!
<P>
Faiz

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 1 Apr 1998 16:00:19 -0500 (EST)<BR> 
From: Nordic Boy, <A
HREF="mailto:jklaas@cs.albany.edu">jklaas@cs.albany.edu </A> <BR> 
Subject: <B>SysV init for Slackware</B> 
<P>
I am wondering if someone out there knows of a package to change
Slackware's BSDish inittab (and rc.d/rc.*) files to a SysV type structure
with separate rc.d.0, rc.d.1, etc inits.  I am asking because I recently
installed KDE and I really like it and I was thinking of using the SysV
init editor that comes with it, but it would be nice to have something to
start with rather than starting from scratch.  
<P>
Thanks,
<P>
James Klaas

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Thu, 02 Apr 1998 16:03:00 +0800<BR> 
From: Kevin Ng, <A HREF="mailto:kng@HK.Super.NET">kng@HK.Super.NET </A>
<BR> 
Subject: <B>How to enable swapping</B> 
<P>
My machine, which is a Pentium Pro with 64MB memory, reports no swap
space being used. In procinfo, it always report 0K swap space.
<P>
I did a fdisk on /dev/hda and verified that a 64MB partition of type
Linux swap (83) is actually there.
<P>
So why is the swap never being used ?
<P>
Kevin

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Fri, 3 Apr 1998 09:35:37 +0200 (CEST)<BR> 
From: K. Nikolaj Berntsen, <A
HREF="mailto:berntsen@bkm.dtu.dk">berntsen@bkm.dtu.dk </A> <BR> 
Subject: <B>finite elements programs for Linux</B> 
<P>
At the department where I am sitting they are planning to buy a PC-bar,
and they intend to put NT on the machines. I would benefit from them
putting Linux on them, since I could then use them for simulations
overnight.
<P>
I started talking to the ones buying it and my arguments stopped, when
they said that one reason for using NT was that they should be running
finite elements programs on them and that the frontier for those programs
was now on the windows platform. I don't know s... about that, so I am
looking for info; should I accept their arguments or is it that he just
does not know what can be gotten for Linux? Commercial Finite Element
Method (FEM) programs are also in the searchlight!
<P>
Happy Computing, Nikolaj

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 06 Apr 1998 13:42:35 -0700<BR> 
From: Peter D'Souza, <A HREF="mailto:dsouza@panix.com">dsouza@panix.com</A>
<BR> 
Subject: <B>Btrieve Port?</B> 
<P>
Our company runs two major apps using a Btrieve database. I was
wondering if anybody has ported either Btrieve server or client to
Linux. It is an extremely fast database (and highly underrated too)
which would be excellent if ported to Linux. I'm not too sure if the
developers of our Btrieve applications would move to Linux, but if I
could test a Linux-based solution with sample datasets, perhaps they'd
be more amenable to the idea of moving to a Linux platform (as an
alternative, at least).
<P> 
Peter D'Souza

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 08 Apr 1998 11:12:53 +0200<BR> 
From: Denny &Aring;berg, <A HREF="mailto:Denny@ele.kth.se">Denny@ele.kth.se</A>
<BR> 
<P>
Hi, I'm tired of starting my X-session with 'startx -- -bpp 16'
to get 16 biplanes instead of the default 8. How do I get xdm
to run with 16 bpp? If I use it now, it starts X with 8bpp on my
Red Hat 5 installation.
<P> 
cheers,<BR> 
Denny &Aring;berg,     Sweden

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sat, 11 Apr 1998 17:18:11 +0000<BR> 
From: pheret, <A HREF="mailto:pheret@linex.com">pheret@linex.com</A>
<BR> 
Subject: <B>floppy problems</B> 
<P>
Hi there.  Okay, i don't know if this is a floppy problem, or what,
but here goes.
<P>
I am able to mount my diskette, but when I try to copy something from
the disk to my hard drive I get this error:
<PRE>
floppy0: disk absent or changed during operation
end_request:  I/O error, dev 02:00, sector 1
bread in fat_access failed
cp: &lt;file name&gt;:  I/O error
</PRE>
Is this because it is mounted umsdos?  Should I mount it something
else?
<P>
I am running Linux 2.0.0 on an AST ascentia950n.  I only have my basic
system right now because I can't get my floppies to copy!  arrgh.
<P>
anyhow, if you can help me, could you please send suggestions to 
pheret@linex.com?  Thanks!

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sun, 19 Apr 1998 17:53:47 +0200<BR> 
From: <A HREF="mailto:letromb@tin.it">letromb@tin.it</A> <BR> 
Subject: <B>cd rom</B> 
<P>
Hello.I have the Linux Slackware 2.0.30 Walnut Creek.I installed it on a
Pentium 200 MMX
with a 24x CD-ROM.
During the installation I had to write "ramdisk hdd=cdrom" for reading the
CD-ROM, but after 
the installation Linux doesn't see the CD-ROM.
I have an atapi CD-ROM, and when I tried to compile my kernel another time,
I saw that atapi
is the default !!! So I don't understand where is the problem .
What can I do ?
<P>
Thank you for your reply,<BR> 
                        Leonardo

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sun, 19 Apr 1998 13:45:54 +0000<BR> 
From: Jason Powell, <A
HREF="mailto:jay@Lauren.dyn.ml.org">jay@Lauren.dyn.ml.org </A> <BR> 
Subject: <B>Red Hat Linux 5</B> 
<P>
  Anyone know when Red Hat Linux 5.1 is coming out?  I'm running a severely
modified version of 5.0 now, and needless to say it stinks.  I can't
compile anything that uses sockets because of broken headers.  Suffice to
say, I find it to be quite an annoyance.

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Fri, 24 Apr 1998 16:02:09 +0200<BR> 
From: Lambert van Eijck, <A
HREF="mailto:eijck@iri.tudelft.nl">eijck@iri.tudelft.nl </A> <BR> 
<P>
I'm having a problem with my menus in X.
I can access all menus (by mouse), but the items of those menus which
are WITHIN a "X-box" are not selectable, somehow.
The menus I'm talking about are menus like the 'vt fonts', 'main
options' and 'vt options' in the Xterm.
Or the 'file' and 'page' menu of Ghostscript.
<P>
If anyone has a suggestion on why I can select the menu but not menu
item, please send me a mail.
I'm using Debian 1.3.
<P>
Lambert van Eijck

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sat, 18 Apr 1998 13:12:53 +0800<BR> 
From: Guan Yang, <A HREF="mailto:guan@wk.dk">guan@wk.dk</A> <BR> 
Subject: <B>How do I set up XDM?</B> 
<P> 
I have heard that one can login to Linux via XDM. How is this done?
Also, I have also heard that you can get a Linux penguin at boottime or
something like that. Tell!

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sun, 26 Apr 1998 14:42:28 +0200<BR> 
From: Ola Ekdahl, <A HREF="mailto:ola.ekdahl@swipnet.se">
ola.ekdahl@swipnet.se</A> <BR> 
Subject: <B>Modem</B> 
<P> 
I am a real Linux newbie and I wonder how do I configure my modem. It's 
a sportster flash modem.

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sat, 18 Apr 1998 17:01:59 -0700 <BR> 
From: tng, <A HREF="mailto:tng@sosweb.com">tng@sosweb.com</A> <BR> 
Subject: <B>getting ppp-2.3.3 to work</B> 
<P> 
Anyway I finally decided to migrate to linux kernel 2.1.94 mainly
because of the .94 indicates that they are almost ready for the next
stable release...
<P> 
The problem I have is ppp 2.3.3  I downloaded is read the README
compiled the required parts and installed flawlessly...Now I CANNOT
conect to my ISP..  They are running a linux network with redhat 5 for
web hosting and slakeware controling the raid and passwords.  I'm
running slackware. (redhat would crash every couple days wipeing out my
harddisk...got tired of rebuilding my system...got real good at backups
: )  )
<P> 
the ppp-2.2 I was using I had to use the +ua &lt;file&gt; switch where file
contained the username and password for upap auth.  after upgrading this
swich was no longer available so I simply added it to my
/etc/ppp/pap-secretes file:
<PRE> 
username    *    password
</PRE> 
this didn't work. So, I tried the following:
<PRE> 
localhost    *    username:password
*                 *    username:password
</PRE> 
 My ISP hangs up on me.  I changed the order of the fields every which
way I could thing of but nothing worked.  I would like to get my linux
box back on the net because of better transfer times and a more stable
environment.  (linux connected at 33.6 and windoz connects and 24.# with
the same serial settings modem init etc.)
<P> 
Please help...I hate to downgrade after houres of work upgrading.

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 28 Apr 1998 10:31:14 +0800<BR> 
From: Stephen Lee, <A
HREF="mailto:sljm@pobox.org.sg">sljm@pobox.org.sg</A><BR> 
Subject: <B>Help Slackware</B> 
<P> 
I am running Slackware 3.2 and I want my machine to have a name like
stephen.merlin.com when people dial into my machine using PPP or Slip
(My idea is to run some sort of a intranet BBS with poeple dialing in
using Dial-up networking and people can telnet in) but apart from
setting /etc/hostname do I need to run "named" perhaps you can have a
article on how to set up this  type of service.

<a name="gen"></a>
<P> <hr> <P> 
<!-- =================================================================== -->
<center><H3><font color="maroon">General Mail</font></H3></center>

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 01 Apr 1998 09:45:11 -0600<BR> 
From: Mike Hammel, <A
HREF="mailto:mjhammel@graphics-muse.org">mjhammel@graphics-muse.org </A> <BR> 
To: STunney@ahcpr.gov <BR> 
Subject: <B>grammer sites?</B> 
<P> 
You recently wrote to the Linux Gazette to express your aggravation
about the use of apostrophes and the world "alot" in many articles and
letters.  You are correct - both of these are misused often in email,
even more so in general email not destined for an online magazine.
I often find myself trying to reword a sentence to not use "alot", and
am aggravated with myself for having used it so often I can't think of
more proper wording!  You also mentioned that there were online
dictionaries available.  My only problem with your letter was you didn't
mention where these could be found.  If you have a few references, a
follow up letter to the Gazette would be grealy appreciated.  I know I
often have need for a dictionary and a theasaurus in my own writings.
Although I have one of each, they are pocket editions and somewhat
limited.  I realize I could look for references via Yahoo or other
online search engines, but I thought since you had mentioned their
existance you might already have the references.
<P> 
Thanks.  <BR> 
Michael J. Hammel, The Graphics Muse

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 01 Apr 1998 11:55:05 +0100<BR> 
From: John Hartnup, <A HREF="mailto:slim@ladle.demon.co.uk">
slim@ladle.demon.co.uk</A> <BR> 
Subject: <B>Regular Expressions</B> 
<P>
Great April issue. Thanks.
<P>
The further reading section for the Regular Expressions in C++ section
misses out the *excellent* O'Reilly book <I>Mastering Regular
Expressions</I>.
<P>
I suspect that most people, like me before I read the book, don't
realise the sheer power behind regexs. It's revloutionised my coding
methods (especially in Perl!).
<P>
John

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Thu, 2 Apr 1998 19:51:30 -0500 (EST)<BR> 
From: Casimer P. Zakrzewski, <A HREF="mailto:zak@acadia.net">
zak@acadia.net</A> <BR> 
Subject: <B>IBM 8514 Monitor and X</B> 
<P>
I hope you have the space to publish all of this letter.  I would certainly
appreciate it if you did.
Back in the Feb 98 issue of LG, my request for help with installing X on the
old IBM monitor I have was published, and I received a number of replies,
from all over the world as you'll see.  I wish to thank:
<PRE>
        Corey G. &lt;chds652@BOTCC.COM&gt;;
        Todd Jamison &lt;jamison@littonos.com&gt;;
        "War Hound" &lt;warhound@worldnet.att.net&gt;;
        Justin Dossey &lt;dossey@ou.edu&gt;;
        Martin Vermeer &lt;mv@fgi.fi&gt;;
        Alexy Yurchenko &lt;ayurchen@bell.aispbu.spb.su&gt;;
        Robert Reid &lt;reid@astro.utoronto.ca&gt;; and,
        Miss Valarie Frizzle
</PRE> 
Many advised using 'xvidtune' to get the proper settings, and a couple
advised me to get RH5.0.  I only got around to trying out anything about two
weeks ago.
<P> 
Now this may come in handy for anyone else with a monitor like mine.  It was
so simple it was foolish.  First, I couldn't find 'xvidtune' after
reinstalling RH4.2, so I figured I'd play around with the X configuration.
If I blew the monitor, well.....
<P> 
In the RH installation, when I got to the selection of monitors, I bit the
bullet and selected 'custom'.  A new menu came up, and guess what?  In it
was a listing for an 'IBM 8514 or compatible'.  (As the younger people say
today, I said "Duh?")  I kind of figured my monitor was as compatible as it
could get!
<P> 
After I clicked on that and popped in what freqs I knew, X worked perfectly.
Which is a nice end to the tale, but doesn't address the problem.
The problem was that I was afraid to (as Ms. Frizzle says) 'Take chances;
get messy.'  I was too happy webbing along in the Win95 world.  To newbies
like me out there, all I can say is:  do just that.  I advise having a
notebook and pen handy at all times, though, to write down anything you
change and where you changed it.
<P> 
Does RTFM sound familiar?  Do that, too.  A lot.  Linux can be confusing,
especially when you're trying to do something supposedly simple like
installing PPP (I'm *still* working on that) and at different web sites you
find three or four different ways to do that, and none seem to work in your
case.
<P> 
That's when you take chances and get messy.  And you may well (as I've had
to do), hit the big RESET button when it's a total SNAFU, and maybe have to
reinstall.  Breaks of the game.  And that's where the notebook you've been
writing all your changes comes in very handy.  If you try to keep it all in
your head, the kumpewter will win every time.
<P> 
In addition, there is a lot of help from off-line sources, like library book
sales.  Last year, for example, I picked up an 'outdated' SAMS book
entitled, "X Window System Programming".  That was before I even thought
about putting together another 'puter - over eight years from touching a
keyboard.  I may never use it; but it only cost $.50.
Local gurus; if you're lucky enough to have them, be subtle in your approach
to them.  Like, 'Uh, gee, you can really get your (whatever it is) really
whipping up a storm.  Mine kinda...', and let it drag out.  Ten years ago
when I was a supposed 'guru', that *always* got me going.  And I learned
from a guy who had a really modern system  back in the '80s, so I got one
just like it.
<P> 
When you say, "TRASH-80", you better smile, pardner!  Mod-1, no less.  4K RAM.
Damn thing could do just about anything.
<P> 
Your ISP may or may not be a help, but try it.  Where I am, when I walked in
to sign up and the word Linux passed my lips, I thought they'd hang balls of
garlic around their necks.
<P> 
But if you want to do it, you will.  I still don't have PPP on Linux, for
example, so under Win95, if I find something tempting on the web, I still
download it.  It can always be put on a disk, if necessary - say you don't
have a dos mount - and then tarred to your Linux partitiion.
<P> 
But write it down; write it all down.
<P> 
That's all I have to say, except I again all those who sent me help.
That's what Linux is all about anyway, isn't it.
<P>
PS:  I hope I was correct in the above to please the English purists.  If
not:  mea culpa, mea culpa, mea maximum culpa.
<P>
Zak

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 6 Apr 1998 14:30:29 -0600 (MDT)<BR> 
From: Dale K. Hawkins, <A HREF="mailto:dhawkins@teton.Mines.EDU">
dhawkins@teton.Mines.EDU </A> <BR> 
Subject: <B>Bazaar ISP...</B> 
<P>
Hello, I was wondering if anyone has ever considered the idea of a bazaar
model for running an ISP.  By a Bazaar model, I of caurse refer to the
infamous Cathedral vs. Bazaar model for software development.  So what do
I really mean.  I mean an ISP by the people for the people.  I have found
that most ISP's are very restrictive in how things are run, i.e., many of
the interesting utilities are strictly off limits.  For example, I was
recently trying to setup cvs to work as a server.  The normal way to do
this is by adding a line to inetd.conf.  However, being only a "user" on
my ISP, I had no way to accomplish this.  So I though of a more complex
way to set this up, but that method require the use of crontab.  Again
this service is not available to Joe User.
<P>
I am very aware of the obvious security issues, but surely there must be a
way to improve the situation in someway.  I cannot but think about rms
(Richard Stallman) and some of his lestures on the evils of a sysadmin and
thinking, "how true".  But how can one deal with the open system issue,
while still maintain a certain level of system security.  I would be very
pleased to see this erupt into a deep and lengthy thread somewhere.  Just
my 2 cents.
<P>
-Dale

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sun, 5 Apr 1998 21:12:00 +0100<BR> 
From: William Chesters, <A HREF="mailto:williamc@dai.ed.ac.uk">
williamc@dai.ed.ac.uk</A> <BR> 
Subject: <B>Linux is not ready for the desktop</B> 
<P>
David Wagle ("Evangelism: A Unix Bigot and Linux Advocate's Spewings",
Linux Gazette #27) points out some good reasons why converting people
to Linux can be harder than we expect.
<P>
But he seems to shy away from the natural conclusion.  It is not
currently possible to put together a setup which makes it possible for
people to do normal day-to-day work and simple admin without serious
trouble---whether or not they care about abandoning their existing
Windows software.  Ergo, Linux is simply not, in all conscience, a
suitable platform for unsupported users who just want to get their
jobs done.
<P>
It very nearly is.  I run the maximally friendly Linux installation
with Red Hat, linuxconf, KDE, Netscape and Word Perfect; my experience
is that intelligent non-Unix users can manage fine 90% of the time.
The remaining problems are very obvious, but here there are anyway
spelt out in order of seriousness:
  <UL>
  <LI> Few of the heavyweight GUI apps and tools mentioned above work
       reliably: they suffer at least as many bugs and crashes as
       their Windows equivalents (KDE, of course, is still in beta).
       While on the other hand ...
  <LI> ... The classic Unix applications (emacs, tex <I>etc.</I>) are
       rock steady; but they are not wonderful enough, outside certain
       narrow (generally academic) domains, to offset the difficulty
       and crankiness which everyone freely admits they exhibit.
  <LI> The GUI tools cannot handle all day-to-day tasks; and
       to achieve the best coverage, you have to use
       tools from several different stables, which is
       confusing---especially when they interact poorly with each
       other.
  <LI> Some classes of desktop application simply do not exist for
       Linux at any price, or are far inferior to their Windows
       counterparts.  Try getting something to typeset music.
  <LI> Nothing even attempts to achieve the kind of effortless
       networking which Windows users take for granted.  (Don't
       flame me---go and try Windows.)
  <LI> The underlying OS does have a few bugs, minor perhaps, but
       nevertheless showstoppers for unsupported users.  "Just stop
       lpd, remove the lp kernel module, modprobe it again and restart
       lpd" is not what they want to hear.
  </UL>
Yes, progress over the last year or two has been breathtaking.  The
developer community has shown itself capable of coming up with really
lovely utilities and tools for non-initiates, and it no longer seems
implausible that Linux will soon develop into something that rivals NT
for ease of use.  But in the mean time, proposing Linux to anyone not
already conversant with Unix is tantamount to suggesting a new hobby:
one with tangible rewards, to be sure, but let's admit that's what it
is.  Linux is <B>not</B> ready for the desktop.


<P> <hr> <P> 
<!--================================================================-->
<center>Published in <i>Linux Gazette</i> Issue 28, May 1998</center>
<!--====================================================================-->
<P> <hr> <P> 
<A HREF="./lg_toc28.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF 
CONTENTS ]"></A>
<A HREF="../index.html"><IMG SRC="../gx/homenew.gif" ALT="[ FRONT 
PAGE ]"></A> 
<A HREF="./lg_tips28.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P>
<h5>This page written and maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com">gazette@ssc.com</A><BR> 
Copyright &copy; 1998 Specialized Systems Consultants, Inc. </H5> 
<P> 
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <hr> <P> 

<!-- QUICK TIPS SECTION ==================================================  -->
<center>
<H1><A NAME="tips"><IMG ALIGN=MIDDLE ALT="" SRC="../gx/twocent.gif">
More 2&#162; Tips!</A></H1> <BR>
Send Linux Tips and Tricks to <A HREF="mailto:gazette@ssc.com">
gazette@ssc.com
</A></center>

<p><hr><p>
<H3>Contents:</H3>
<ul>
<li><a HREF="./lg_tips28.html#shut">Re: Shutdown and Root</a>
<li><a HREF="./lg_tips28.html#core">Re: Core Dumps</a>
<li><a HREF="./lg_tips28.html#easter">Easter Egg in Netscape</a>
<li><a HREF="./lg_tips28.html#host">Host Name Completion</a>
<li><a HREF="./lg_tips28.html#login">Running Without Logging In</a>
<li><a HREF="./lg_tips28.html#eggs">Animation Easter Eggs in Netscape</a>
<li><a HREF="./lg_tips28.html#user">Re: Usershell on Console Without Logging In</a>
<li><a HREF="./lg_tips28.html#win95">Backing Up Win95 Files</a>
<li><a HREF="./lg_tips28.html#xterm">Re: X-term for MS-Windows</a>
<li><a HREF="./lg_tips28.html#shut2">Re: Shutdown and Root Again</a>
<li><a HREF="./lg_tips28.html#atapi">Running an ATAPI Zip Drive</a>
<li><a HREF="./lg_tips28.html#binary">New Binaries Script</a>
<li><a HREF="./lg_tips28.html#script">Script Contributions</a>
<li><a HREF="./lg_tips28.html#macker">Re: Core Dumps Again</a>
</ul>

<P> <hr> <P> 
<!--================================================================-->

<a name="shut"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Re: Shutdown and Root
</H3>
<P> 
Date: Wed, 1 Apr 1998 06:31:04 -0500<BR> 
From: Buz Cory, <A
HREF="mailto:adm@bzsys.dyn.ml.org">adm@bzsys.dyn.ml.org </A>
<P> 
From the Linux Gazette, #27
<blockquote> <font color="navy">
Guido Socher, eedgus@eed.ericsson.se wrote:<BR> 
I noticed that many people still login as root before they power down
their system in order to run the command 'shutdown -h now'. This is
really not necessary and it may cause problems if everybody working on a
machine knows the root password.
</font></blockquote> 
Very true.
<blockquote> <font color="navy">
Most Linux distributions are configured to reboot if ctrl-alt-delete is
pressed, but this can be changed to run 'shutdown -h now'. Edit your
/etc/inittab ...
</font><PRE> 
[snip inittab]
</PRE>  <font color="navy">
Now you can just press crtl-alt-delete as normal user and your system
comes down clean and halts.
</font></blockquote> 
Not necessarily the best solution.
<P> 
It is perfectly safe to simply do a "Three-finger salute", allow a
normal shutdown, and then power down the machine anytime after you get
the message "unmounting filesystems" until you get the message during
reboot saying "mounting all filesystems". Probably the easiest time
would be at the LILO boot prompt (assuming you are using LILO).
<P> 
An alternative I used once on a system that did *not* have
&lt;ctrl-alt-del&gt; enabled was to provide a special login that *just* did a
shutdown. There is such a line in my /etc/passwd now that I didn't put
there, so I guess it's from RedHat two years ago.
<P> 
Regards,
==Buz :)

<P> <hr> <P> 
<!--================================================================-->

<a name="core"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Re: Core Dumps 
</H3>
<P> 
Date: Wed, 1 Apr 1998 14:31:24 -0500 (EST)<BR> 
From: Claude Morin, <A HREF="mailto:klode@isgtec.com">klode@isgtec.com</A>
<P> 
Neat idea!
<blockquote> <font color="navy">
Christoph Spiel says:
I'd like to paste some sample output here, but neither can I find a
core dump on my machine, nor do I know a program that generates one.
</font></blockquote> 
How to generate a core dump in one easy lesson:
<ul>
<li>run something that reads stdin, like: <tt>cat</tt>
<li>press ^\
</ul>
You've just generated a core dump by sending SIGQUIT to cat.
<P> 
If this doesn't work, you probably have core dumps disabled.  To check:<BR> 
	within bash:	<tt>ulimit -a</tt><BR> 
	within tcsh:	<tt>limit</tt>
<P> 
Lastly, you can <tt>kill -QUIT</tt> various running processes; if they don't
handle the signal, they'll dump core.  Remember kids: don't try this as
root :-)
<P> 
Claude

<P> <hr> <P> 
<!--================================================================-->

<a name="easter"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Easter Egg in Netscape 
</H3>
<P> 
Date: Thu, 2 Apr 1998 11:25:56 +0800 (HKT)<BR> 
From: Romel Flores, <A HREF="mailto:rom@elsi.i-manila.com.ph">
rom@elsi.i-manila.com.ph</A>
<P> 
Remember the "about:mozilla" egg?  Try it again and the usuall egg
appears.  Now, click on the "N" logo.  This will open Netscape's home page
as usuall but the meteor shower on the "N" logo is replaced with
Godzilla.

<P> 
--Romel Flores

<P> <hr> <P> 
<!--================================================================-->

<a name="host"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Host Name Completion
</H3>
<P> 
Date: Fri, 3 Apr 1998 01:57:43 -0500 (EST)<BR> 
From: John Taylor, <A
HREF="mailto:john@pollux.cs.uga.edu">john@pollux.cs.uga.edu</A> <BR>
<P> 
Host name completion with BASH.
<P> 
Synopsis : This is how you can use host name completion, which is similar to
file name completion.
<P> 
Put your favorite telnet,ftp,rlogin hosts into $HOME/.hosts, in
/etc/hosts format.
<P> 
example :
<PRE> 
206.184.214.34   linux.kernel.org  
</PRE> 
then put into .bashrc :
<P> 
------ cut here ------
<PRE> 
export HOSTFILE="$HOME/.hosts"

# see HOSTFILE in bash man page 
UseHosts()
{
  for i in $* ; do
    eval `echo "$i() { local IFS=\"@\\$IFS\"; set -- \\$1; eval command $i \\\\\\${\\$#} ; }"`
  done
}

UseHosts telnet rlogin ftp
</PRE> 
------ cut here ------
<P> 
Now do a . .bashrc, to re-source the rc file.
You should have new 3 shell functions defined...telnet,rlogin,ftp
do a "set | less" to verify this
<P> 
now try this [notice the @]:<BR> 
<tt>ftp @lin&lt;tab-key&gt;</tt>   which completes to linux.kernel.org
<P> 
Well, this breaks doing just a "ftp", but this can be fixed by doing a
"command ftp", (maybe alias this??) which will give you the ftp> prompt. 
Rlogin will also break if you have to use the -l switch. This could be
incorporated into UseHosts(), I just haven't had time to do it.
<P> 
If you change the .hosts file, you have to logout and login again to use the
new hosts ... don't ask me why.x>
<P> 
John Taylor


<P> <hr> <P> 
<!--================================================================-->

<a name="login"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Running Without Logging In
</H3>
<P> 
Date: Thu, 2 Apr 1998 22:50:26 -0800 (PST)<BR> 
From: Jakob Kaivo, <A HREF="mailto:jkaivo@nodomainname.net">
jkaivo@nodomainname.net</A> 
<P> 
I notice a lot of discussion in Issue 27 of running shells on vt's without
logging in. I'm sure that there are some great solutions, but I would like
to add my 1/50 of a dollar to the heap. A while ago I had a need to keep a
telnet session open on a vt, so I hacked mingetty to do it. Then I
figured, "Hey, why stop there?" So I hacked a little more and came up with
rungetty, which can run any program on a vt. It also (in the newest
release) can run as any user, so a login is no problem, but you can also
tell it to, say, keep a top session running on another vt. It is available
from ftp://ftp.nodomainname.net/pub/rungetty/current (home site),
ftp://sunsite.unc.edu/pub/Linux/system/serial/getty, and should find it's
way into ftp://ftp.redhat.com/pub/contrib soon. It is available in
tarball, source RPM, and binary RPM for alpha (glibc2) and i386 (libc5 and
glibc2) on nodomainname, and tarball on sunsite.
<P> 
Jakob Kaivo

<P> <hr> <P> 
<!--================================================================-->

<a name="eggs"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Animation Easter Eggs in Netscape
</H3>
<P> 
Date: Mon, 06 Apr 1998 12:03:41 +0100 (IST)<BR> 
From: Caolan McNamara, <A HREF="mailto:Caolan.McNamara@ul.ie">
Caolan.McNamara@ul.ie</A>
<P> 
with the release of the netscape source the most important
fact is now known, if your web page is not under<BR> 
http://home.netscape.com/people/<BR> 
http://www.netscape.com/people/<BR> 
http://people.netscape.com/
<P> 
then you cant have a mozilla as the animation with the X version of
netscape like http://people.netscape.com/briano and 20 others have
and only jamie zawinski under that tree gets the compass
http://people.netscape.com/jwz
<P> 
sigh, and i really hoped that i could have one too, :-(
<P> 
resource for this is lines 292-319 in ns/cmd/xfe/src/Logo.cpp
list of names with possible animations easters follows
akkana briano bstell converse djw dora dp francis kin jwz lwei mcafee radha
ramiro rhess rodt slamm spence tao toshok zjanbay
<P> 
list of urls under which animation can take place.<BR> 
http://home.netscape.com/people/<BR> 
http://www.netscape.com/people/<BR> 
http://people.netscape.com/
<P> 
and usual format is<BR> 
http://people.netscape.com/username<BR> 
<P> 
Caolan McNamara

<P> <hr> <P> 
<!--================================================================-->

<a name="user"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Re: Usershell on Console Without Logging In
</H3>
<P> 
Date: Wed, 08 Apr 1998 20:21:42 +0200<BR> 
From: Soenke J. Peters, <A HREF="mailto:soenke@pc1.sjp.de">
soenke@pc1.sjp.de </A> 
<P> 
In LG 27, Kragen@pobox.com announced some utilities to do an automatic
login.
Besides the fact that this might be a security risk, I use his program
"own-tty" to have my dosemu running on a tty.
Add the following line (or something adequate) to "/etc/inittab":
<PRE> 
  6:23:respawn:/sbin/own-tty /dev/tty6 /usr/bin/dos dos
</PRE> 
From inside X, CTRL-ALT-F6 beams you into dosemu, from the console ALT-F6
does the same. Press CTRL-ALT-Fx from inside dosemu to go back to ttyx.
But be warned: Doing this causes a pretty high cpu-load because dosemu is
_always_ runnning.
To solve this problem, I inserted a "getchar();" into the source "own-tty.c"
right before the "execv()" is done. This makes "own-tty" wait for a key
beeing pressed before firing up dosemu.
<P> 
Soenke J. Peters,   Hamburg, Germany


<P> <hr> <P> 
<!--================================================================-->

<a name="win95"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Backing Up Win95 Files
</H3>
<P> 
Date: Fri, 10 Apr 1998 07:51:38 -0400<BR> 
From: Donald Harter Jr., <A HREF="mailto:harter@mufn.org">
harter@mufn.org </A> 
<P> 
Here is a shell script that will back up some of the windows 95 registry
files on your vfat partition.
You may not want to backup all the files in the script since the *.da0
files are backups themselves.   There may
others that I do not know about.  You can use cron to run this script on
a regular basis.
<P> 
                                Donald Harter Jr.
<PRE> 
#!/bin/sh
#
# This script will backup your windows 95 registry.
# If you ever have problems with windows95, restoring the registry
# might fix the problem.
# By using this script you might not have to reinstall all your
software.
# BASE_DIR is the directory where you want the tar.gz archive to be
written.
# WIN_PATH is the base path of your windows 95 partition in the
/etc/fstab file.
# Change these to suit your own needs.
# written by Donald Harter Jr.
#
BASE_DIR=$HOME
WIN_PATH=/dosc
#
#
REGISTRY_STEM=registry_`date +%m_%d_%Y`
tar -c  -f /tmp/$REGISTRY_STEM.tar --files-from=/dev/null
# some of these files may not needed
#tar -rPf /tmp/$REGISTRY_STEM.tar  file_to_backup
tar -rPf /tmp/$REGISTRY_STEM.tar $WIN_PATH/windows/system.dat
tar -rPf /tmp/$REGISTRY_STEM.tar $WIN_PATH/windows/*.da0
tar -rPf /tmp/$REGISTRY_STEM.tar $WIN_PATH/windows/user.dat
tar -rPf /tmp/$REGISTRY_STEM.tar $WIN_PATH/windows/*.ini
tar -rPf /tmp/$REGISTRY_STEM.tar $WIN_PATH/autoexec.bat
tar -rPf /tmp/$REGISTRY_STEM.tar $WIN_PATH/*.sys
tar -rPf /tmp/$REGISTRY_STEM.tar $WIN_PATH/windows/command.com
tar -rPf /tmp/$REGISTRY_STEM.tar $WIN_PATH/Program\
Files/Netscape/Users/harter/bookmark.htm
gzip /tmp/$REGISTRY_STEM.tar
mv /tmp/$REGISTRY_STEM.tar.gz $BASE_DIR/$REGISTRY_STEM.tar.gz
echo "To restore your win95 registry type:"
echo  "tar -zPxvf $BASE_DIR/$REGISTRY_STEM.tar.gz  "
</PRE> 

<P> <hr> <P> 
<!--================================================================-->

<a name="xterm"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Re: X-term for MS-Windows
</H3>
<P> 
Date: Fri, 10 Apr 1998 23:47:44 +0000<BR> 
From: Milton L. Hankins, <A HREF="mailto:mlh@swl.msd.ray.com">
mlh@swl.msd.ray.com</A> 
<P> 
What it is sounds like you want is an X *server*.
<P> 
You have several options.  There are a few commercial X servers out
there:  Hummingbird eXceed and LAN Workplace are two I know of. 
There's also a free X server (with much fewer features) called MI/X. 
You should be able to find these on the web.
<P> 
You may also opt to use something like VNC, the virtual network
computer.  You can also find that on the web.
<P> 
Milton L. Hankins  

<P> <hr> <P> 
<!--================================================================-->

<a name="shut2"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Re: Shutdown and Root Again
</H3>
<P> 
Date: Wed, 15 Apr 1998 19:16:23 -0600<BR> 
From: Bob van der Poel, <A HREF="mailto:bvdpoel@kootenay.com">
bvdpoel@kootenay.com</A> 
<P> 
In last months 2 cent tips:
<P> 
------------
<blockquote> <font color="navy">
In the March issue, you have a tip on using X programs when you've run
su to root. By far the easiest method is
to simply 
</font><PRE> 
setenv XAUTHORITY ~khera/.Xauthority
</PRE> <font color="navy">
for your own user name, of course... No need to run any other programs
or cut and paste anything. </font>
<P> <font color="navy">
Vivek Khera, Ph.D. 
</font></blockquote> 
----------           
<P> 
Just adding the needed commands took me more than a few minutes. Part of
the problem is that I'm using bash, not csh as Dr. Khera is. My solution
was:
<ol>
<li>Add the following to the .bashrc script for root:
<PRE> 
	eval OLDHOME=~$USER
	RCFILE=$OLDHOME/.rootrc
	if [ -e $RCFILE ] 
        	then source $RCFILE
	fi
</PRE> 
<li>Create a file in each user's home directory called .rootrc. In this
have the following line:
<PRE> 
	export XAUTHORITY=$OLDHOME/.Xauthority
</PRE> 
</ol>
Hope this helps someone.
<P> 
Bob van der Poel, bvdpoel@kootenay.com

<P> <hr> <P> 
<!--================================================================-->

<a name="atapi"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Running an ATAPI Zip Drive
</H3>
<P> 
Date: Sun, 19 Apr 1998 01:41:34 +0000<BR> 
From: Steve Beach, <A HREF="mailto:asb4@psu.edu">asb4@psu.edu</A> 
<P> 
I just bought an IDE ATAPI iomega Zip drive, and I couldn't find any
help at all on how to use it.  So, I slogged through, got a great hint
from Jeff Tranter (maintainer of the 'eject' utility), and managed to
get it working.  In the spirit of giving back to the community, here's
my (maybe even) five cent tip.
<P> 
Here's how to use an IDE ATAPI zip drive on Linux.
<P> 
First, the kernel:
Do _not_ use the "IDE FLOPPY" option (officially the name is 
CONFIG_BLK_DEV_IDEFLOPPY ).  This will work perfectly for reading and
writing,
but it will not work for ejecting.  What you need to do is say yes to
the 
option CONFIG_BLK_DEV_IDESCSI.  When this is set, you will treat the IDE
ATAPI
drive just like a SCSI drive, except without the SCSI card and all that
other
garbage.  
<P> 
After making your kernel, you should get these messages in your startup 
messages (type dmesg at the prompt if they go by too fast to read):
<PRE> 
hda: WDC AC34000L, 3815MB w/256kB Cache, CHS=969/128/63
hdb: WDC AC34000L, 3815MB w/256kB Cache, CHS=969/128/63
hdc: TOSHIBA CD-ROM XM-6102B, ATAPI CDROM drive
hdd: IOMEGA ZIP 100 ATAPI, ATAPI FLOPPY drive - enabling SCSI emulation
ide2: ports already in use, skipping probe
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
scsi0 : SCSI host adapter emulation for IDE ATAPI devices
scsi : 1 host.
  Vendor: IOMEGA    Model: ZIP 100           Rev: 24.D
  Type:   Direct-Access                      ANSI SCSI revision: 00
Detected scsi removable disk sda at scsi0, channel 0, id 0, lun 0
scsi : detected 1 SCSI disk total.
SCSI device sda: hdwr sector= 512 bytes. Sectors= 196608 [96 MB] [0.1
GB]
sda: Write Protect is off
.
.
.
Partition check:
 sda: sda4
 hda: hda1 hda2 hda3 hda4
 hdb: hdb1 hdb2 hdb3
</PRE> 
The key is that SCSI simulation will be used only if the native ATAPI
driver 
for that device isn't found.  So, since the ATAPI CD driver was compiled
into
the kernel, it used it.  Since the ATAPI removable disk driver wasn't, 
SCSI emulation was used.
<P> 
Second, the device:
If you want to have non-root users be able to mount, unmount, and eject
the
Zip disks, you've got to make a couple of changes to the default
configuration.
First thing to do is to change the permissions on the device.  As root, 
type the following:
<PRE> 
chmod a+rw /dev/sda4
</PRE> 
The next thing to do is set a shortcut (eject is easier).  Again, as
root,
type the following:
<PRE> 
ln -s /dev/sda4 /dev/zip
</PRE> 
Third, the mount point:
Create a mount point for your drive.  I like /mnt/zip, so I just do a 
mkdir /mnt/zip.  For ease, you now want to put this into your
/etc/fstab.
Put a line in that file that looks like 
<PRE> 
/dev/sda4                 /mnt/zip                  auto   user,noauto 0
0
</PRE> 
The first column is the device, followed by the mount point.  The first
'auto'
means that it will check to see the file system type when it is mounted.
(Hence, you can read not only ext2fs, but also FAT, VFAT, etc.)  The
'user'
keyword allows average users to mount the disk, and the 'noauto' means
that it will not be mounted at startup.  I don't know what the two
zero's mean,
but it works for me.  
<P> 
Now, at this point, any user should be able to mount the Zip disk by 
typing 
<PRE> 
mount /mnt/zip
</PRE> 
Unmounting would just be <tt>umount /mnt/zip</tt>.
<P> 
Fourth, formatting the disks:
The Zip disks you buy at your corner computer store are formatted for
MSDOS.
Personally, I prefer to have ext2fs formatted disks, so I don't have to
worry
about file name conflicts.  Hence, I have to reformat them.  There are
two other oddities.  First, the writable partition will be number 4. 
This
is a Macintosh-ism, which you might as well leave.  You can run fdisk
and
change the partition, but it will be much easier to just leave all your
disks the same, and that way you won't have to change the line in
/etc/fstab
for each disk.  Second, the initial permissions are not set to be
writeable
by the user.  
<P> 
To handle all this, I do the following, as root (new disk, initially 
unmounted):  (WARNING:  This will erase all data on the disk!)
<PRE> 
/sbin/mke2fs -m 0 /dev/sda4
mount /mnt/zip
chmod a+w /mnt/zip
umount /mnt/zip
</PRE> 
Now, whenever the user mounts that disk, she will be able to write to
it.
<P> 
Fifth, ejecting:
The entire reason for using SCSI emulation is to make it easy to eject
the 
disk.  It's easy now:
<PRE> 
eject zip
</PRE> 
You can also say 'eject /dev/sda4', but since you created the symbolic
link
'/dev/zip', eject knows what you mean when you just say 'zip'.  
<P> 
One thing about eject is that the average user does not have permission
to 
use it.  So, change the permission via setuid:
<PRE> 
chmod a+s /usr/bin/eject
</PRE> 
That should allow any user to eject any disk.
<P> 
Sixth, zip tools:
Jarrod A. Smith (jsmith@scripps.edu) has written a really nifty little
program
to make mounting, unmounting, ejecting, documenting, and write
protecting Zip
disks really easy.  The name is jaZip, and it is available as an RPM
package
(jaZip-0.22-3.i386.rpm) from the usual download sites, including
ftp://ftp.redhat.com.  Go ahead and download it -- it's only 24 K!
<P> 
I hope that covers everything -- if anybody has any questions, please
let me know!
<P> 
Steve Beach

<P> <hr> <P> 
<!--================================================================-->

<a name="binary"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
New Binaries Script
</H3>
<P> 
Date: Sat, 25 Apr 1998 01:06:03 -0700<BR> 
From: Keith Humphreys, <A HREF="mailto:keith@SpeakerKits.com">
keith@SpeakerKits.com</A>
<P> 
A friend installed linux and was mystified with the abundance of new binaries.
This little script was written to help introduce him to the family members.
May need bash >= 2.
<PRE> 
#!/bin/bash
###########################################################################
#
# mkcontents.b (c) 1998 Keith Humphreys (keith@SpeakerKits.com)  GNUed
#
# 1988.04.22
#
# This little script will create a list of descriptions for your main bins.
# It depends on whatis which appeals to the binaries man pages.  
# Intended as a learning aid for newbies and as a memory crutch (for oldbies.)
#
###########################################################################

# These are the directories to scan:

checkhere='/sbin /bin /usr/sbin /usr/bin'

###########################################################################

if ! [ -f /usr/bin/whatis ]
then
  echo '
    You appear to be missing the /usr/bin/whatis program.

    Sorry charlie,
    only the finest tuna get to be Chicken of the Sea.
    '
  exit 1
fi

for dir in $checkhere
do
  outFile=contents${dir//\//.}

  echo '------------------------------------------------------'
  if [ -f $outFile ]
  then
    rm $outFile
    echo "Removing old $outFile"
  fi
  echo "Scanning $dir and creating $outFile"
  echo '------------------------------------------------------'

  sleep 1   #To see message.

  for file in $(ls $dir)
  do
    echo $file  #For entertainment
    whatis $file >> $outFile
  done
done

exit 0
</PRE> 

<P> <hr> <P> 
<!--================================================================-->

<a name="script"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Script Contributions
</H3>
<P> 
Date: Sat, 18 Apr 1998 20:52:07 +0200 (SAT)<BR> 
From: Stefan van der Walt, <A HREF="mailto:trax@the-force.ml.org">
trax@the-force.ml.org</A> 
<P> 
In the last few months, I wrote these simple scripts to enhance my
Linux environment. I believe some other users might find them useful too,
so I send you a copy.
<P>
Here are the 4 scripts provided in tar files with a README.
<ul>
<li><A HREF="./MP3-PlayList-1.0.0.tar.gz">MP3-PlayLister</A>:
Program which searches for all the MP3s in the current directory,
recursively, and then plays them.

<li><A HREF="./mountcd-1.0.0.tar.gz">mountcd</A>:
Semi-intelligent CD-mounting program to shorten the command line for
mounting CDs.  Does simple checking to see if CD-ROM is already mounted or
unmounted.

<li><A HREF="./nookie.txt">nookie</A>:
A primer on notifying the user of incoming nukes, or how to react on
receiving them.

<li><A HREF="./SysMail-1.0.0.tar.gz">SysMail</A>:
A script to mail a message containing tokens to all system users.
</ul>
Thanx a mil! <BR> 
BTW Keep up the great work with the Gazette.  You rule :)
<P> 
Stefan

<P> <hr> <P> 
<!--================================================================-->

<a name="macker"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
Re: Core Dumps Again
</H3>
<P> 
Date: Sun, 26 Apr 1998 21:21:50 -0700 (PDT)<BR> 
From: macker, <A HREF="mailto:macker@netmagic.net">macker@netmagic.net</A>
<P> 
In issue #26, Marty was saying "I was annoyed on Linux that file(1)
couldn't tell what file dumped core if a core dump was seen.", and
mentioned size(1).  gdb(1) will also do the job...
<P> 
<tt>gdb -c core</tt> will show the program and calling arguments, as well as the
signal generated when it died, usually signal 11 (segmentation fault).
<tt>quit</tt> will exit the debugger.
<P> 
-macker


<P> <hr> <P> 
<!--================================================================-->
<center>Published in <I>Linux Gazette</I> Issue 28, May 1998</center>
<P> <hr> <P> 
<!--================================================================-->
<A HREF="./lg_toc28.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF 
CONTENTS ]"></A> <A HREF="../index.html"><IMG SRC="../gx/homenew.gif" 
ALT="[ FRONT PAGE ]"></A> <A HREF="./lg_mail28.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<A HREF="./lg_bytes28.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>

<P> <hr> <P>
<h5>This page maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com">gazette@ssc.com</A><BR> 
Copyright &copy; 1998 Specialized Systems Consultants, Inc. </H5> 
<P> 
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"</H4>
<HR>
<center>
<table cellpadding=7><tr><td>
<IMG SRC="../gx/bytes.gif" border=1  ALT="News Bytes">
</td><td>
<H3>Contents:</H3>
<ul>
<li><a HREF="./lg_bytes28.html#general">News in General</a>
<li><a HREF="./lg_bytes28.html#software">Software Announcements</a>
</ul>
</td></tr></table>
</center>

<a name="general"></a>
<p><hr><p>
<!-- =================================================================== -->
<center><H3><font color="green">News in General</font></H3></center>

<P> <hr> <P> 
<!-- =================================================================== -->

<center><IMG ALT=" "   SRC="./gx/cover50.gif"></center>
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
June <I>Linux Journal</I>
</H3>
<P> 
The June issue of <A HREF="http://www.linuxjournal.com/"><I>Linux
Journal</I></A> will be hitting the newsstands May 8.
The focus of this issue is Connectivity with
articles on setting up PLIP, NFS and NIS, using Linux with the PalmPilot,
a user-friendly GUI for PPP and much more. Check out the
<A HREF="http://www.linuxjournal.com/issue50/index.html">Table of Contents</A>.
To subscribe to <I>Linux Journal</I>, click <A
HREF="http://www.linuxjournal.com/ljsuborder.html">here</A>.

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
Linux in the News
</H3> 
<ul>
<li>The <A HREF="http://www.linuxresources.com/npr.html">transcript</A> of the
April 8 "All Things Considered" interview on National Public radio can be found on
the <A HREF="http://www.linuxresources.com/">Linux Resources</A> web site.

<li>On April 17 NPR's "Science Friday" did a <A
HREF="http://www.sciencefriday.com/pages/1998/Apr/hour2b_041798.html">
story</A> on free software featuring Richard Stallman and Eric S. Raymond.

<li>Here's an article about Linux worth having a look at:
<A HREF="http://www.gihyo.co.jp/SD/pacific/index.html">
http://www.gihyo.co.jp/SD/pacific/index.html</A> 

<li><A HREF="./xfree.html">XFree86 Postion Statement on X11R6.4 Licensing</A> 

<li>Check out <A HREF="http://www.pcquest.com/apr98/">PC Quest's April
issue</A>, especially
the editorial. This is a curtain raiser for their May issue which will
focus on Linux.

<li>Linux is being used by the Post Office to sort the mail. Read John Taves'
<A HREF="http://members.aa.net/~jtaves/linux.htm">article</A>.
</ul>
<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
Scientific Software Packaging Feedback
</H3> 
<P> 
Date: Fri, 3 Apr 1998 07:19:12 -0700 (MST)
<P>
<B>Purpose?</B> 
<P>
     We at Kachina Technologies, Inc. are very excited about the tremendously
increasing popularity of our SAL (Scientific Application on Linux) web site.
Based on encouraging user feedbacks, we want to go the extra mile to provide
more services to the Linux and the Scientific and Engineering communities.
<P>
<B>What is SAL?</B> 
<P>
     SAL (Scientific Applications on Linux) web sites collect thousands of
software links for scientists, engineers, and Linux ethusiasts.  There is no
doubt that SAL has become one of the most important, popular, and exciting
software resources for the Linux and UNIX community.   SAL was developed by
Dr. Herng-Jeng Jou, along with many others at Kachina Technologies, Inc.
<P>
     While most system/network level applications are packaged by Linux
distributors and provided on their CD-ROM distributions, most commonly used
free scientific packages are still provided in source code format. Although
many users contributed packages which are often found in /contrib directories
on Linux distributors' FTP sites, lack of version tracking and centralized
control hinder the appreciation of these individual efforts. We are facinated
by the team work and coordination of GNU/Debian Linux people and want to
pursue the same goal in software packaging for the Scientific and Engineering
community.
<P>
     Our initial goal is to archive Debian (.deb), RedHat (.rpm), and simple
binary tree (.tgz) used by many distributions including the popular Slackware
distribution. At the same time, SAL's website will function as a repository
and users can download the packages and install them on their systems
immediately.
<P>
     However, we'd like to listen to your opinions on the best policies and
procedures to get this job done correctly.
<P>
     Please tell us what scientific and engineering software (those with free
source codes that are available of course) you would like to see packaged.
<P>
     Please email us at sal@kachinatech.com and simply include:
<ol>
<li>Software name(s)
<li>Preferred packaging format (RPM, DEB, or others)
</ol>
     Although this is just a survey, we are quite serious and excited about
doing this. The established packages will be available through SAL.
<P>
     Currently, there are 14 SAL sites installed worldwide, and their URLs are:
<PRE>
     Austria             http://nswt.tuwien.ac.at/scicomp/sal/
     Finland             http://sal.jyu.fi/
     Germany             http://ftp.llp.fu-berlin.de/lsoft/ 
     Italy               http://chpc06.ch.unito.it/linux/
     Japan               http://ec.tmit.ac.jp/koyama/linux/SAL/
     Poland              http://www.tuniv.szczecin.pl/linux/doc/other/SAL
     Portugal            http://www.idite-minho.pt/SAL/
     Russia              http://www.sai.msu.su/sal/
     South Africa        http://web.ee.up.ac.za/sal/
     South Korea         http://infosite.kordic.re.kr/sal
     Spain               http://ceu.fi.udc.es/SAL/
     Turkey              http://sal.raksnet.com.tr
     United Kingdom      http://www.ch.qub.ac.uk/SAL/
     USA                 http://SAL.KachinaTech.COM
</PRE>
     We welcome your feedback, comments, and suggestions.  Please send your
messages (including mirroring requests) to sal@kachinatech.com
<P>
For more information: <BR> 
Herng-Jeng Jou, <A
HREF="mailto:hjjou@KachinaTech.COM">hjjou@KachinaTech.COM</A><BR> 
Team SAL, Kachina Technologies, Inc.

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
MAILING-LIST: Linux Speech Recognition
</H3> 
<P> 
Date: Fri, 3 Apr 1998 07:19:12 -0700 (MST)<BR> 
All interested in speech recognition software under Linux are invited to
join this new mailing list. The emphasis is on (though discussion is not
limited to) finding a means of porting preexisting applications
(especially DragonDictate-style ones, or possibly NaturallySpeaking-style)
to Linux, rather than developing one from scratch.
<P>
To subscribe, remove the spaces from the following address and send mail
to:
<P>
	ddlinux-request @ arborius.net
<P>
For more information: <BR> 
Shore.Net/Eco Software, Inc; <A
HREF="mailto:info@shore.net">info@shore.net</A> 

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
SAS for Linux
</H3> 
<P>
Date: Fri, 3 Apr 1998 07:19:12 -0700 (MST)<BR> 
<A HREF="http://www.sas.com/">SAS</A> is a powerful and popular reporting, analysis,
and application development system. The <A
HREF="http://pw1.netcom.com/~kmself/SAS/SAS4Linux.html">SAS for Linux</A> site
is dedicated to the
support of SAS on the Linux operating system. Tune in there for
information, news, to voice your opinion, and contribute to the cause. 
Of particular interest is the SAS User Linux Interest Profile, a survey
to measure the amount of interest (or not) for SAS on Linux.  Stop on
by!
<P>
For more information: <BR> 
Karsten M. Self, <A HREF="mailto:kmself@ix.netcom.com">kmself@ix.netcom.com</A> 

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
New Pages for Linux Users
</H3> 
<P> 
Date: Fri, 3 Apr 1998 07:19:12 -0700 (MST)<BR> 
Here's a page that could prove worthwhile for newbies:
<A HREF="http://home1.gte.net/henryw/basic/index.html">
"Basic Linux Training"</A> 
<P>
Here's another new site site dedicated to Lunix. Find links to RPMS,
X windows managers, HOWTOS and more. Check it out at:<BR> 
<A HREF="http://vdpower.gamesmania.com/demoreviews/linux/linux.html">
http://vdpower.gamesmania.com/demoreviews/linux/linux.html</A> 

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
The KDE Free Qt Foundation
</H3> 
<P> 
Date: Wed, 15 Apr 1998 14:50:59 GMT<BR> 
  The  KDE  project and Troll Tech AS, the creators of Qt, are pleased
  to announce the founding of the "KDE Free Qt Foundation".
  The purpose of this foundation is to guarantee the  availability  of
  Qt for free software development now and in the future.
<P>
  The  foundation  will  control the rights to the Qt Free Edition and
  ensure that current and future releases of Qt will be available  for
  free  software  development at all times.
  released under the BSD license.
<P>
  We  believe  the  founding  of  the  KDE Free Qt Foundation to be an
  ground-breaking step, helping to usher in a new era  of  software 
  development, allowing the KDE project, the free software community,
  all free software developers as well  as  commercial  software
  developers to prosper in a mutually supportive fashion.
<P>
For more information:<BR> 
Bernd Johannes Wuebben, The KDE Project, <A
HREF="mailto:wuebben@kde.org">wuebben@kde.org</A><BR> 
Eirik Eng, Troll Tech CEO, <A HREF="mailto:Eirik.Eng@troll.no">
Eirik.Eng@troll.no </A> 

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
Linux Resources -- we need your help
</H3> 
<P>
Date: Thu, 16 Apr 1998 19:06:04 GMT<BR> 
Linux Resources is a community effort brought together by Specialized 
Systems Consultants (SSC), publishers of <I>Linux Journal</I>, to 
promote the Linux operating system. 
<P>
We strive to produce the most informative one-stop Linux resource. We do 
that with the help of many enthusiastic individuals and companies who 
produce selected content for Linux Resources. If you or your company 
would like to contribute content or maintain a page within Linux Resources 
please e-mail us at <A
HREF="mailto:webmaster@ssc.com">webmaster@ssc.com</A>.
<P>
After browsing through <A HREF="http://www.linuxresources.com/">
http://www.linuxresources.com/</A> please e-mail us
and let us know if it addresses your needs and if not, tell what we
can add or do differently. For example, perhaps there are other exisiting
sites that you feel we should incorporate into Linux Resources -- e-mail
us! 
<P>
Last, Linux Resources is advertising free. Let us know if this
is an important factor for you. Again, we want Linux Resources to be
*your* Linux resource. Please let us know how we can be of assistance.
<P>
For more information:<BR> 
Carlie Fairchild, <A HREF="mailto:carlie@ssc.com">carlie@ssc.com</A>, 
Linux Journal Sales and Marketing

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
Open Source Journal, the Magazine for Free Software
</H3> 
<P> 
Date: Mon, 20 Apr 1998 13:19:03 GMT<BR> 
The Free Software Union is proud to announce the release of the premiere
issue of the 'Open Source Journal, the Magazine for Free Software'.
<P>
The Journal is volunteer written and produced, and available free from
the Web at:<BR> 
<P>
<A HREF="http://osj.fslu.org/">http://osj.fslu.org/</A><BR> 
<P>
The Free Software Union ("Free Software Lovers Unite!" = FSLU) is a
democratic, non-profit group dedicated to the Free Software/Open-Source
community.
<P>
For more information:<BR> 
Braddock Gaskill, <A
HREF="mailto:braddock@braddock.com">braddock@braddock.com</A> 

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
Linux Conference Announcement
</H3> 
<P> 
Date: Tue, 28 Apr 1998 09:24:54 +0200<BR> 
The first Linux conference in Denmark will be held by Denmark's 
<A HREF="http://www.dkuug.dk/">Unix User Group</A> and 
<A HREF="http://sslug.imm.dtu.dk/">Sk&aring;ne/Sj&aelig;lland Linux User Group
</A> May 16, 1998. Among the main speakers are
Jesper Pedersen, the creator of the Dotfile Generator, and Image
Scandiavia, a large ISP in Denmark using Linux as their main platform.
Moreover, experienced Linux users will help novice users by installing
Linux on their computers.
<P> 
The conference has a homepage is at <A
HREF="http://sslug.imm.dtu.dk/konference.html">http://sslug.imm.dtu.dk/konference.html</A>, 
where you can find the programme and more information. Official
languages are Swedish and Danish.
<P> 
For more information: <BR> 
Kenneth Geisshirt, <A HREF="mailto:kge@kb.dk">kge@kb.dk</A>, The Royal Library<BR> 
Linux konference i K&oslash;benhavn den 16. maj 1998

<a name="software"></a>
<P> <hr> <P> 
<!-- =================================================================== -->
<center><H3><font color="green">Software Announcements</font></H3></center>

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
JCam - Digital Camera Software for Linux (with Java)!
</H3>
<P> 
Date: Wed, 15 Apr 1998 14:52:50 GMT<BR> 
JCam - a single software program for (almost) all OSes and 
(almost) all Digital Cameras ...
<P>
The first public release of JCam is now available from "www.jcam.com",
featuring support for Digital Still Cameras from Epsom, Casio, Kodak and
coming soon, Fuji, Samsung and Olympus.
<P>
JCam is currently available for Win95, WinNT and Linux 2.0 ... future
versions will offer - subject to demand - support for Mac, OS-2, PPC 
and a range of other Unices. JCam requires Java 1.1 to be installed
on the host machine; later versions will be available bundled with the
JRE, simplifying installation for non-Java users. 
<P>
For more information: <BR>
<A HREF="mailto:info@jcam.com">info@jcam.com</A>,
<A HREF="http://www.jcam.com/">http://www.jcam.com/</A> 

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
GTK+ 1.0.0 GUI Library Released!
</H3>
<P>
Date: Thu, 16 Apr 1998 19:03:14 GMT<BR> 
The GTK+ Team is proud to announce the release of GTK+ 1.0.0.  GTK+, 
which stands for the GIMP Toolkit, is a library for creating graphical 
user interfaces for the X Window System. It is designed to be small, 
efficient, and flexible. GTK+ is written in C with a very object-oriented 
approach.
<P>
The official ftp site is:
  ftp://ftp.gtk.org/pub/gtk
<P>
The official web site is:
  http://www.gtk.org/
<P>
A mailing list is located at:
  gtk-list@redhat.com
<P>
To subscribe: mail -s subscribe gtk-list-request@redhat.com < /dev/null
(Send mail to gtk-list-request@redhat.com with the subject "subscribe")
<P>
GTK+ was written by Peter Mattis, Spencer Kimball, and Josh MacDonald.
Many enhancements and bug fixes have been made by the GTK+ Team.  See
the AUTHORS file in the distribution for more information.
<P>
For more information: <BR> 
The GTK+ Team, <A HREF="mailto:gtk-list@redhat.com">gtk-list@redhat.com</A> 

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
Poppy 1.3 - Simple POP3 mail program to view/delete/save messages
</H3>
<P>
Date: Thu, 16 Apr 1998 18:51:59 GMT<BR> 
This is the announcement for Version 1.3 of Poppy.  It is a simple Perl
script that allows you to view only the headers of messages from a POP3
server and then allows you to selectively view, save, or delete each
message.  It is ideal for limited resource systems.
<P>
A simple perl script to retrieve mail headers from a POP3
server and individually view, save or delete them. Requires
perl.  Simple mail reader which relies on the POP3 server
to do most the work.  A good use is to delete or to skip
over huge emails on a POP3 server when on a slow link.
You may also view only a specified number of lines from
a message to see if you would like to download the whole
message.
<P> 
To download:<BR> 
<A HREF="http://home.sprynet.com/sprynet/cbagwell/projects.html">
http://home.sprynet.com/sprynet/cbagwell/projects.html</A> 
<P>
For more information: <BR> 
Chris Bagwell, Fujitsu Network Communications,
<A HREF="mailto:cbagwell@fujitsu-fnc.com">cbagwell@fujitsu-fnc.com</A> 

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
juju/juen - uu/xx/Base64/BinHex-Decoder/Encoder
</H3>
<P>
Date: Thu, 16 Apr 1998 18:48:53 GMT<BR> 
The first release of juju has been announced. IT is yet another 
uu- and Base64-decoder, which also decodes xxencoded and BinHexed data, and
includes the following features:
<ul>
<li>Autodetection of Encoding.
<li>Merging of multiple parts.
<li>Piping data or filenames (to be decoded) towards juju is supported.
<li>It also scans complete directories for anything useful to decode.
</ul>
It sould work with MIME data as well.
<P>
Also included is juen, a similar powerful encoder, which supports
uuencoding, Base64-encoding, xxencoding and MIME.
It supports automated mailing and posting if sendmail and inews are present.
<P>
Current Version is 0.2.0, which is the first public release.
The Program is available as sourcecode only, but should compile on any
Unix platform, at least Linux ;-).
It is GPL'ed.
<P>
The Homepage of juju is: <A
HREF="http://hottemax.uni-muenster.de/~grover/juju.html">
http://hottemax.uni-muenster.de/~grover/juju.html</A> 
<P>
For more information: <BR> 
Christoph Gr&ouml;ver, <A
HREF="mailto:grover@hottemax.uni-muenster.de">grover@hottemax.uni-muenster.de</A> 

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
mon-0.37i - Service Monitoring Daemon
</H3>
<P> 
<P>
Date: Thu, 16 Apr 1998 18:45:18 GMT<BR> 
    mon-037i is an extensible service monitoring daemon which can be used to monitor
    network or non-network resources.  Written in Perl 5, this code should
    be able to run out-of-the-box on many platforms. It supports a flexible
    configuration file, and can send out email, alphanumeric pages, or any
    other type of alert when it detects the failure of a service. Service
    monitors that come with the distribution can test ping, telnet, ftp,
    smtp, http, nntp, pop3, imap, disk space, SNMP queries, and arbitrary
    TCP services.
<P>
<A
HREF="http://ftp.kernel.org/software/mon/">http://ftp.kernel.org/software/mon/</A> 
<A HREF="ftp://ftp.kernel.org/pub/software/admin/mon/mon-0.37i.tar.gz">
ftp://ftp.kernel.org/pub/software/admin/mon/mon-0.37i.tar.gz</A> 
<P>
For more information: <BR> 
Jim Trocki, <A
HREF="mailto:trockij@transmeta.com">trockij@transmeta.com</A>

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
newsfetch-1.2 - pull news via NNTP to a mailbox
</H3>
<P> 
<P>
Date: Thu, 16 Apr 1998 18:54:53 GMT<BR> 
newsfetch: Most Compact and Powerful Utility to download the news from 
           an NNTP server, filter and stores in the mailbox format. 
<P>
Available from
	http://ulf.wep.net/newsfetch.html
<P>
New version of newsfetch (1.2) is uploaded to sunsite.unc.edu
<P>
	newsfetch-1.2.tar.gz
	newsfetch-1.2-1.i386.rpm
	newsfetch-1.2-1.src.rpm
<P>
available in <A HREF="ftp://sunsite.unc.edu/pub/Linux/Incoming/">
ftp://sunsite.unc.edu/pub/Linux/Incoming/</A> 
and in proper place (/pub/Linux/system/news/readers)  when they move the
files. New version is available in .tar.gz and .rpm format.
<P>
For more information: <BR> 
<A HREF="mailto:ymotiwala@hss.hns.com">ymotiwala@hss.hns.com</A> 

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
Mesa/Vista Project Collaboration Intranet for Linux
</H3>
<P>
Warwick, RI -- April 14, 1998 -- Mesa Systems Guild, Inc. announced
today the immediate availability of Mesa/Vista for the Linux operating
system. Mesa's flagship product line, Mesa/Vista provides web-enabled
project management automation for development teams who need to
collaborate with access to all data related to their project.
<P>
Mesa/Vista provides a way to tie all of the project management and
product development tools already in use together on the web so that the
information can be accessed using a web browser on any platform, from
any location. This enables project managers to make better, faster
decisions based on the most up-to-date information and increases the
productivity of development engineers by providing immediate access to
information they need to complete their tasks. 
<P>
For more information: <BR> 
<A HREF="http://www.mesasys.com/">http://www.mesasys.com/</A> <BR> 
Maribeth McNair, Mesa Systems Guild, Inc. 
<A HREF="mailto:mbm@mesasys.com">mbm@mesasys.com</A> 

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
Blender 3d beta release
</H3>
<P>
Date: Thu, 16 Apr 1998 19:20:29 GMT<BR> 
NeoGeo is happy to announce the Beta release of a Linux and FreeBSD
version of Blender.
We expect the first Beta users to help us complete testing and evaluating,
especially for the various PC configurations.
An official version will be released 4 to 6 weeks later.
<P>
Blender is the freeware 3D package - up until now only available for SGI -
that has become very popular with students, artists and at universities.
Being the in-house software of a high quality animation studio, it has
proven to be an extremely fast and versatile design instrument.
Use Blender to create TV commercials, to make technical visualizations,
business graphics, to do some morphing, or design user interfaces. You can
easily build and manage complex environments.
The renderer is reliable and extremely fast. All basic animation principles
are well implemented.
<P> 
For more information: <BR> 
<A HREF="http://www.neogeo.nl/">http://www.neogeo.nl/</A>, 
<A HREF="mailto:blender@neogeo.nl">blender@neogeo.nl</A> 

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
consd 1.0: virtual console management daemon
</H3>
<P>
Date: Fri, 17 Apr 1998 07:48:06 GMT<BR> 
<P>
consd manages virtual consoles silently in the background. It starts and
kills gettys there depending on how many gettys are just sitting around
and waiting (and wasting ressources). Usually, consd ensures there's always
one (and only one) getty waiting for someone to login. The virtual consoles
with lower numbers are preferred.
<P>
consd does not interfere with gettys started by init.
<P>
As always - if you can't find it on the ftp servers listed below, try the 
'incoming' directories.
<A
HREF="http://sunsite.unc.edu/pub/Linux/utils/">http://sunsite.unc.edu/pub/Linux/utils/</A>
in the file called consd-1.0.tgz (12KB).
<P> 
For more information: <BR> 
Frank Gockel, <A HREF="mailto:gockel@etecs4.uni-duisburg.de">
gockel@etecs4.uni-duisburg.de</A> 

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
dancing_linux - a rendered 3D-Linux-animation / eyecatcher
</H3>
<P>
Date: Fri, 17 Apr 1998 08:06:23 GMT<BR> 
The animation shows a nice linux-logo, consisting of the
five letters and additional artwork. Everything is in motion and
is twisting around (glass-, metal-, and light-effects!).
It has a black background and is VERY suitable as an eyecatcher
for shopwindows or your own linux-box.
<PRE>
=================================================
Format:         *.flc movie
Resolution:     320*200, 8bit color
                120 frames (about 20 fps)
Renderplatform: Linux-Povray 3.01  (of course)
Rendertime:     15 min/frame on a P133
=================================================
</PRE>
The movie may also be viewed with xanim, but it looks _much_ better
fullscreen! I included John Remyn's SVGA-Player "flip" (binary).
<P> 
The animation is available at:<BR> 
http://sunsite.unc.edu/pub/Linux/logos/raytraced/dancing_linux.lsm
http://sunsite.unc.edu/pub/Linux/logos/raytraced/dancing_linux.tar.gz
(1.07 MB) and mirrors...
<P> 
For more information: <BR> 
Roland Berger    robe@cip.e-technik.uni-erlangen.de

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
Port of InterBase Database to Linux
</H3>
<P>
Date: Wed, 15 Apr 1998 15:03:18 GMT<BR> 
InterBase Software Corp has ported InterBase 4.0 to the Linux 
platform.  We plan to allow this database software to be
downloaded for free use as of April 29, 1998.
<P>
The primary download site will be <A HREF="http://www.interbase.com/">
http://www.interbase.com/</A> 
<P>
In the July timeframe, we expect to release a commercial
version of InterBase 5 for Linux.
<P>
There is a monitored news group borland.public.interbase.com
available for the users of InterBase.
<P>
For more information: <BR> 
Wyliam Holder, <A
HREF="mailto:wholder@interbase.com">wholder@interbase.com</A> 

<P> <hr> <P> 
<!-- =================================================================== -->

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
SECURITY: procps 1.2.7 fixes security hole
</H3>
<P>
Date: Mon, 20 Apr 1998 13:18:42 GMT<BR> 
A file creation and corruption bug in XConsole included in procps-X11
versions 1.2.6 and earlier has been found.  To fix it, you can either
remove the XConsole program or upgrade to procps-1.2.7, available from
<A
HREF="ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/procps-1.2.7.tar.gz">
ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/procps-1.2.7.tar.gz</A> 
<P>
Thanks to Alan Iwi for finding the bug.
<P>
A few other bugs have been fixed in this version.  Read the NEWS file
for details.
<P>
If you have Red Hat Linux or another RPM-based distribution, libc5-based
RPM packages are available from
ftp://ftp.redhat.com/updates/4.2/
and glibc-based RPM packages are available from
ftp://ftp.redhat.com/updates/5.0/
<P>
Fuller upgrade instructions for Red Hat Linux users have been given in
a separate post to redhat-announce-list@redhat.com
<P>
For more information: <BR> 
Michael K. Johnson, <A
HREF="mailto:johnsonm@redhat.com">johnsonm@redhat.com</A> 


<P> <hr> <P> 
<!--================================================================-->
<center>Published in <i>Linux Gazette</i> Issue 28, May 1998</center>
<P> <HR> <P>
<!-- =================================================================== -->
<A HREF="./lg_toc28.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF 
CONTENTS ]"></A>
<A HREF="../index.html"><IMG SRC="../gx/homenew.gif" ALT="[ FRONT 
PAGE ]"></A> 
<A HREF="./lg_tips28.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<A HREF="./lg_answer28.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>

<P><HR><P>
<h5>This page written and maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com">gazette@ssc.com</A><BR> 
Copyright &copy; 1998 Specialized Systems Consultants, Inc. </H5> 
<P> 
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <hr> <P>

<!-- ===============================================================  -->
<center>
<H1><A NAME="answer">
<img src="../gx/dennis/qbubble.gif" alt="" border="0" align="middle">
The Answer Guy
<img src="../gx/dennis/bbubble.gif" alt="" border="0" align="middle">
</A></H1> <BR>
<H4>By James T. Dennis,
<a href="mailto:answerguy@ssc.com">answerguy@ssc.com</a><BR>
Starshine Technical Services, 
<A HREF="http://www.starshine.org/">http://www.starshine.org/</A> </H4>
</center>

<p><hr><p>
<H3>Contents:</H3>

<p><strong><A HREF="#tag_greeting"><img 
	src="../gx/dennis/bbub.gif" height="28" width="50" alt="(!)" 
	hspace="10" border="0">Greetings from Jim Dennis</a></strong></p>

<dl>
<!-- index_text begins -->
<dt><A HREF="#tag_audiocd"><img src="../gx/dennis/qbub.gif" height="28" width="50" 
	alt="(?)" hspace="10" border="0"></a>
	Problems with SCSI-CDROM and Audio CDs --or--
    <dd><A HREF="#tag_audiocd"><STRONG>Sinister 'xmcd' Permanently Disables
                Right Speaker Channel</STRONG></A>
<dt><A HREF="#tag_paging"><img src="../gx/dennis/qbub.gif" height="28" width="50" 
	alt="(?)" hspace="10" border="0"><STRONG>Email 
		Alpha-Paging software</STRONG></A>
<dt><A HREF="#tag_xdmbpp"><img src="../gx/dennis/qbub.gif" height="28" width="50" 
	alt="(?)" hspace="10" border="0"><STRONG><tt>xdm</tt> 
		in 16bpp Mode</STRONG></A>
<dt><A HREF="#tag_cluster"><img src="../gx/dennis/qbub.gif" height="28" width="50" 
	alt="(?)" hspace="10" border="0"><STRONG>Bad 
		cluster in HDD</STRONG></A> 
<dt><A HREF="#tag_netbios"><img src="../gx/dennis/qbub.gif" height="28" width="50" 
	alt="(?)" hspace="10" border="0"><STRONG>Complex 
		network and NetBIOS</STRONG></A>
<dt><A HREF="#tag_century"><img src="../gx/dennis/qbub.gif" height="28" width="50" 
	alt="(?)" hspace="10" border="0"></a>
	Lets vote for Linus --or-- 
    <dd><A HREF="#tag_century"><STRONG>Some Thoughts on "The Man of 
		the Century"</STRONG></A>
<dt><A HREF="#tag_gateway"><img src="../gx/dennis/qbub.gif" height="28" width="50" 
	alt="(?)" hspace="10" border="0"></a>
	How do I setup gateway server? --or--
    <dd><A HREF="#tag_gateway"><STRONG>Linux as a General Purpose SOHO to 
		Internet Gateway</STRONG></A>
<dt><A HREF="#tag_winmodem"><img src="../gx/dennis/qbub.gif" height="28" width="50" 
	alt="(?)" hspace="10" border="0"></a>
	Linux.bat -or--
    <dd><A HREF="#tag_winmodem"><STRONG> LOADLIN.EXE, Plug &amp; "Pray" 
		and "Win(Lose)Modems" </STRONG></A>
<dt><A HREF="#tag_mailmasq"><img src="../gx/dennis/qbub.gif" height="28" width="50" 
	alt="(?)" hspace="10" border="0"><STRONG>'<tt>sendmail</tt>' 
		Masquerading: What and Why</STRONG></A>
<dt><A HREF="#tag_x2java"><img src="../gx/dennis/qbub.gif" height="28" width="50" 
	alt="(?)" hspace="10" border="0"><STRONG>Tools for converting X output 
		to java</STRONG></A>
<dt><A HREF="#tag_hoax"><img src="../gx/dennis/qbub.gif" height="28" width="50" 
	alt="(?)" hspace="10" border="0"></a>
	Fwd: Please Be Careful --or--
    <dd><A HREF="#tag_hoax"><STRONG>"Good Times" 
		Are Here Again? NOT!</STRONG></A> 
<dt><A HREF="#tag_xdmthread"><img src="../gx/dennis/qbub.gif" height="28" width="50" 
	alt="(?)" hspace="10" border="0"></a> LinuxGazette Mar 1998:
	<A HREF="#tag_xdmthread"><STRONG><tt>xdm</tt> Login 
		doesn't!</STRONG></A>
<!-- index_text ends -->
</dl>
<!-- *** -->
<a name="tag_greeting"><p><hr><p></a>
<h2>Linux Gazette: The Answer Guy for May, 1998</h2>

<p>Well, plenty has happened in the world of Linux this month:</p>
<ul><li>
	The kernel team is getting much closer to the next stable version,
	<li>
	Linux has been discussed favorably on <a href="http://www.npr.org/"
	  >NPR</a> (National Public Radio)...twice.
	<ul>
	<li>Once on em>All Things Considered</em> 
	    (<a href="http://www.linuxresources.com/npr.html">transcript</a>
	    available with a link a RealAudio file of the whole thing and
	<li><a 
href="http://www.sciencefriday.com/pages/1998/Apr/hour2b_041798.html">again</a>
		 on "Science Fridays"
	 </ul>
	<li>
	 Linus is the proud father of <em>another</em> baby girl.
	<li>
	I've completely changed the look of this column.
	<li>
	I'm signing a book contract to do a book on "<em>Advanced
	    Linux Systems Administration</em>"
</ul>
<p>My wife has decided to take responsibility for marking up the mail
that I do as "<em>The Answer Guy</em>" (I didn't pick the name,
honest!).  Traditionally I've just answered the e-mail that was 
forwarded to me by the <em>Linux Gazette</em> editors and copied them
on it.  Marjorie and her husband have normally done the rest.</p>

<p>This has been O.K. since we've focused on content rather than form.
However, I've wanted to improve it a little bit ever since I first
found out that the answers I was giving were being included in LG.
(Mainly I want the URL references I make to other various web sites to
be rendered as links so you don't have to cut and paste those into
your "Go" or "Open Location" prompt).</p>

<p>Obviously I've procrastinated on that for over a year.  Yes, I fiddle
with Hypermail and MHOnArc.  Finally, Heather took matters into her
own hands and modified a copy of 
'<a href="http://www.west.net/~jbc/tools/babymail.html"><tt>babymail</tt></a>' 
(a Perl script) to do most of the work.  Unfortunately it appears that this 
still requires quite a bit of hand tweaking.  Oh well.</p>

<p>So, I hope everyone likes the new look.  
<em>[Me too! -- <a href="mailto:star@starshine.org">Heather</a>]</em>  
To any of you that have written to me and been ignored or never received 
your responses I'd like to apologize.  Sometimes I procrastinate on more 
than just the cosmetics and I certainly hope you eventually got your answers 
from other venues like <a href="news:comp.os.linux">comp.os.linux.*</a> or the 
<a href="http://www.ch4549.org/lust/lusthome.html">L.U.S.T.</a> 
(Linux Users Support Team) mailing list, or even (horrors!)
from one of the <a href="http://www.linuxresources.com/LDP/index.html">LDP</a>
(Linux Documentation Project) mirrors.</p>

<p>Another, budding new source of support info for Linux users will hopefully
be the "self-service" <a href="http://search.linux.lrf.gr/">Linux Search 
Engine</a> which hopefully will eventually be a complete replacement for
<a href="http://www.yahoo.com">Yahoo!</a> (the source for most of the 
answers I've ever given here).</p>

<p>Well, enough of my rambling and onto my usual collection of questions
and answers.  As usual I've also included a couple of items which are my 
responses to posts in newsgroups or mailing lists --- items that I personally
think are important enough to be restated here.</p>

    <hr align="left" width="10%">
    <address><a href="mailto:jimd@starshine.org">Jim Dennis</a>
	</address>

<!-- Created: Mon Apr 27 02:07:13 PDT 1998 -->
<!-- *** ---------------------------------------------------------- *** -->

<a name="tag_audiocd"><p><hr><p></a>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
	align="left" border="0">Sinister 'xmcd' Permanently Disables 
		Right Speaker Channel</H3>

<p><strong>From Birger Koblitz on Fri, 24 Apr 1998</strong></p>

<p><strong>
Hi,
<br>I'v got a strange problem with my Toshiba 12X-SCSI-CDRom and 
<tt>xmcd</tt>. Since I started to use this program, music from audio CDs 
is only played through the left speaker, the right speaker is dead. The 
strange thing is, all this worked well on Windoze before. Now even the 
windoze player uses only the left channel. This doesend seem to be a 
hardware problem allthough there now is only one channel available out of 
the Headphone connector on the front of the device,too, since I tried the 
progam also at a friend with a Sanyo SCSI-CDRom resulting in the same 
problem (but both channels available from the front plug there). My friend 
is now quite angry since evrything worked fine under windoze for him before...
It seems that xmcd turns of one of the channels of the CDRom. Sadly
using the balance control within <tt>xmcd</tt> doesnt turn it on any more. Is
there a way to get things working again?

<br><br>
Yours, Birger.
</strong></p>

<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
	align="left" border="0">That's 
	very odd.  I've never heard of any CD's or 
	sound cards with NVRAM in them.  I presume  you've 
	powered off the affected systems, let them sit for 
	a minute or two and tried again (under the formerly 
	"known working" configuration).

<br><br>
	I suppose it would give offense to suggest that you 
	actually check the wires that lead to that speaker?
	
<br><br>
	Traditionally I've been a curmudgeon about "toys" like
	CD players and sound cards (never used them under DOS,
	Windows or Linux).  My traditional opinion has been that
	CD-ROM's are for data --- and that there are perfectly 
	good, inexpensive, devices for playing audio CD's ---
	devices that require no special drivers and have no
	opportunity to conflict with your other equipment and
	software.  (You don't want to know how I feel about those
	loathsome bandwidth robbers with their "Internet Telephone" 
	and "Cyber Video Phone" toys either.  That's <em>our</em> bandwidth
	they're hogging).

<br><br>
	However, yesterday (by coincidence) I bit the bullet and 
	spent a little time compiling a new kernel with sound support.
	Then I went into the CMOS and re-enabled the sound support that's 
	on the motherboard of that machine I bought from VAResearch.

<br><br>
	So, I slipped in a copy of Aaron Copeland's Greatest Hits, 
	logged into to my virtual console, (I still prefer text consoles 
	for most of my work, especially for e-mail), fired up <tt>xmcd</tt> 
	(X Motif CD Player) and let it loose.

<br><br>
	Strains of "<em>Celebration</em>" are streaming out of both
	speakers as I type this.   (Yes, I [Ctrl]+[Alt]+[F1]'d 
	back to my text console after starting <tt>xmcd</tt>).

<br><br>
	So, it's not inherently a problem with <tt>xmcd</tt> under Linux.
	This particular installation is a S.u.S.E. 5.1 running
	under a 2.1.97 kernel that I just grabbed off of 
	<a href="http://www.kernel.org/">kernel.org</a> yesterday.
	
<br><br>
	So, that leave us with other questions.  

<br><br>
	Do you have a sound card or are you playing this through a
	headphone jack on the front of your CD player?  (I'm not 
	familiar with the specific CD drives to which you refer, but
	many of them have built in head phone jacks.  Mine is a 
	Toshiba 3801 which I gather is sold as a 15x drive).

<br><br>
	Are there any configuration or diagnostic utilities for your
	CD drive and/or sound card?  (Presumably they would be DOS
	or Win '95 utilities that shipped with the device or that you
	might get from their web site, ftp site, or BBS).
	
<br><br>
	Have you called your CD-ROM or sound card vendors (or 
	BCC'd their support on this e-mail)?

<br><br>
	Did you do an Alta Vista or Yahoo! search?  (I used
	"<tt>+xmcd +sound +problem</tt>") or check out the 
	<tt>xmcd</tt> home page:

<br><blockquote>
		<a href="http://sunsite.unc.edu/~cddb/xmcd/"
		>http://sunsite.unc.edu/~cddb/xmcd/</a>

</blockquote><br>
	... which has links to their FAQ (and other useful) info.

<br><br>
	There was an FAQ entry about 
	<a href="http://sunsite.unc.edu/~cddb/xmcd/faq.html#19"
		>Toshiba drives and "sometimes" getting "no sound."</a>  
	Although it doesn't sound like it matches your symptoms exactly 
	you might read that and try the suggestions they list.
	
<br><br>
	Just off hand I don't know of any newsgroups or mailing 
	lists that are particularly good venues for this questions 
	(which I suspect it why you sent it to me).  
	<a href="news:comp.os.linux.hardware"
		>news:comp.os.linux.hardware</a>
	might be one.  Another might be 
	<a HREF="news:comp.sys.ibm.pc.hardware.cd-rom"
		>news:comp.sys.ibm.pc.hardware.cd-rom</a>
	or <a HREF="news:alt.cd-rom">alt.cd-rom</a>.

<br><br>
	Hope that helps.  However, it's still hard to imagine
	any problem that would match these symptoms and persist
	through a power cycle (<em>not</em> just a reboot -- a power cycle).
</blockquote>

<a name="tag_paging"><p><hr><p></a>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
	align="left" border="0">Email Alpha-Paging software </H3>
<h4>How to build a mail to pager gateway</h4>

<p><strong>From  John DiSpirito on Sat, 18 Apr 1998 </strong></p>

<p><strong>Hello Answerguy, 

<br><br>
I was wondering if you could help me with something?  
I was looking for a package that sits on my linux machine
and will do email alpha-paging. 
Im sure you know what this is, but just in case:

<br><br>
A person emails an account:  <em>johndoe_page@somemail.com</em>, and
it pages them... 

<br><br>
I know they are out there, but I dont know where they are.
Could you lend some assistance?

<br><br>Thanks.
</strong></p>

<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
	align="left" border="0">John,

<br><br>
	There are several ways to do this, as you suspected.

<br><br>
	First you could just use the TAP (telephony acces protocol)
	script that was published in Frank de la Cruz' book on 
	<a href="http://www.columbia.edu/kermit/">C-Kermit</a>.  
	(The paging can be done as a kermit script and the mail gateway 
        would be a quick 
        <a href="http://www.ling.helsinki.fi/~reriksso/procmail/mini-faq.html"i
                ><tt>procmail</tt></a> script to call it).

<br><br>
	That approach requires a little bit of coding but uses
	tools you hopefully already have around.  You can get
	out of the kermit coding/typing by looking at:

<br><blockquote>
		<A HREF="http://fohnix.metronet.com/~tye/textpage.html"
	>http://fohnix.metronet.com/~tye/textpage.html</A>

</blockquote><br>
	For more specialized tools to do this, I just went to the 
	Linux Software Map search engine at: 
	<A HREF="http://www.boutell.com/lsm/">http://www.boutell.com/lsm/</A>
	... selected the search by "keyword" options and typed in "pager"

<br><br>
	I expected this to hit dozens of entries for '<tt>more</tt>' 
	'<tt>less</tt>' '<tt>most</tt>' and other Unix "pagers" (that is, 
	programs for "paging" through a file).  However, only Xless showed 
	up under that false hit category.

<br><br>
	The first "real" hit was a program by a Joshua Koplik.  The
	LSM entry for it has some typos (or is just out-of-date from
	some directory restructuring at sunsite) so I had to chase
	down the real URL with a few judicious clicks:

<br><blockquote>
	<A HREF="http://sunsite.unc.edu/pub/Linux/system/mail/mailhandlers/!INDEX.html"
	>http://sunsite.unc.edu/pub/Linux/system/mail/mailhandlers/!INDEX.html</A>


</blockquote><br>
	... gets you to the right directory.

<br><br>
	The other few links returned on this search were for '<tt>man</tt>' 
	pagers.

<br><br>
	Now I'm also sure I recently saw another news article somewhere 
	about telecom/paging software for Linux so I decided to hunt 
	further.

<br><br>
	So, I hit my old standby, <a href="http://www.yahoo.com/">Yahoo!</a> 
	(most of the answers I give are researched through Yahoo!).  I used 
	the string: 

<br><blockquote>
		"<tt>+Linux +pager +alpha</tt>"

</blockquote><br>
	... and rapidly found a mini-HOWTO on this very topic at:

<br><blockquote>
	<A HREF="http://ir.parks.lv/li/Resources/HOWTO/mini/Pager"
	>http://ir.parks.lv/li/Resources/HOWTO/mini/Pager</A>

</blockquote><br>
	... by Chris Snell. 

<br><br>
	Despite, Chris' "disclaimer" (first line of the HOWTO reads
	"This document sucks.") the directions are very clear and seem
	to be very complete.  I gather that it used to be listed on 
	the LDP mini-HOWTO's and I'd like to see it re-appear there.
	(There are old, out-of-date mirrors of the LDP pages that
	have it and the current ones at:

<br><blockquote>
	 <A HREF="http://sunsite.unc.edu/LDP/">http://sunsite.unc.edu/LDP/</A> 
</blockquote><br>
	... and at:
<br><blockquote>
	 <A HREF="http://www.linuxresources.com/LDP/"
	>http://www.linuxresources.com/LDP/</A> 

</blockquote><br>
	don't show it.

<br><br>
	In this mini-HOWTO Chris refers to a package called "<tt>sendpage</tt>"
	(with URL's).  

<br><br>
	If you get this, I'd suggest that there are easier ways to 
	configuring '<tt>sendmail</tt>'  You really don't need to do any of 
	that (writing custom rulesets) with a modern sendmail.  
	Something similar can be done via m4 configuration macros 
	and built-in features (or easily handled with a simple one
	line procmail script).

<br><br>
	Another great set of links is on Celeste Stokely's
	widely acclaimed "Serial Ports Resources" for Unix:

<br><blockquote>
	<A HREF="http://www.stokely.com/unix.serial.port.resources/fax.pager.html#pager.unix.link"
>http://www.stokely.com/unix.serial.port.resources/fax.pager.html#pager.unix.link</A>


</blockquote><br>
	(which suggests that HylaFax supports pagers in some way!)

<br><br>
	It turns out that there is apparently a mailing list devoted
	to this topic at 
	<A HREF="mailto:ixo-request@plts.org">ixo-request@plts.org</A>.  
	(IXO is one of the
	other protocols that modems use to talk to alpha pagers --
	I don't know the details).

<br><br>
	In retrospect I think the recent posting I saw on the 
	subject may have been at the "Linux Weekly News" site
	(<A HREF="http://www.eklektix.com/lwn">http://www.eklektix.com/lwn</A>/).  Hitting their search
	engine revealed links to:

<br><blockquote>
		QuickPage (<a href="ftp://ftp.it.mit.edu/pub/QuickPage"
	>ftp.it.mtu.edu:/pub/QuickPage</a>)
		(in a comment to their staff)

</blockquote><br>
	... but, oddly, didn't find the paragraph in their
	previous issue.  It turns out that they didn't 
	know about any of the links I've discussed above and
	were referring readers to a commercial package (of which 
	there are several --- the most well-known being at
	<A HREF="http://www.spatch.com/">http://www.spatch.com/</A>).

<br><br>
	[I've copied the <a href="http://www.eklektix.com/lwn/">LWN</a> 
	staff as well.  This really 
	wasn't meant to "scoop" them, since I think that 
	LWN is the best thing since Linux Gazette --- and 
	it comes out four times as often!  Every LG reader 
	should also check it out!  I just can't figure out 
	where they get all the time to work on it.]

<br><br>
 Finally the oldest freely available package for this that I know of 
 is a perl scripts called '<tt>tpage</tt>' (Tom's Pager) a.k.a. ixobeeper.gz at:

<br><br>
	<A HREF="http://www.oasis.leo.org/perl/exts/date-time/scripts/comm/ixobeeper.dsc.html"
	>http://www.oasis.leo.org/perl/exts/date-time/scripts/comm/ixobeeper.dsc.html</A>
		

<br><br>
 Anyway I hope that helps.  Obviously you have plenty of
 options (which is the PERL motto).
</blockquote>

<a name="tag_xdmbpp"><p><hr><p></a>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
	align="left" border="0"><tt>xdm</tt> in 16bpp Mode</H3>

<p><strong>From Aubrey Pic on Wed, 15 Apr 1998 </strong></p>

<p><strong>
  How do you get <tt>XDM</tt> to run in 16 bpp????  I belive it runs 8bpp by
 default.  I have a <tt>.xserverrc</tt> file that forces 16 bpp.  
 Whenever I ran <tt>XBANNER</tt>, it would default to 8 bpp.  
 Thank you.</strong></p>

<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
	align="left" border="0">Did 
  you try putting it into your XConfig file?
  That seems to work for me.  I presume this is an XFree86 
 installation (rather than Xig or X-insides or MetroX).

<br><br>
  Does it work when you use <tt>startx -- 16bpp</tt> from a shell 
 command line?
</blockquote>

<a name="tag_cluster"><p><hr><p></a>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
	align="left" border="0">Bad cluster in HDD </H3>

<p><strong>From Thomas Vavra on Wed, 15 Apr 1998 </strong></p>

<p><strong>
Hi there!

<br><br>
I got a neat, fast 1,6GB HDD (WD IDE) with one "bad cluster" as DOS
calls it. Is there any way in using it for linux(marking the cluster as
bad or something like that?)</strong></p>


<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
	align="left" border="0">No 
problem.  Linux distributions come with a program named '<tt>badblocks</tt>'
 it handles this for you.  The best way to do it is to let '<tt>mkfs</tt>' 
 call badblocks using its internally supported switches.

<br><br>
 For ext2 filesystems you'd use <tt>mke2fs</tt> or <tt>mkfs.ext2</tt> 
 (usually links to the same file).  Just add the <tt>-c</tt> switch to 
 the command when you invoke it (and read the man page for details).

<br><br>
 If you already have an ext2fs on a drive and you suspect that new bad
 blocks have developed (for example you've dropped the drive or the 
 machine's been through an earthquake) you can run <tt>e2fsck</tt> (or 
 <tt>fsck.ext2</tt> as it may be linked) with the <tt>-c</tt> switch.

<br><br>
 Like I said, easy!

<br><br>
 (Naturally I suggest you do these from single user mode, and do
 proper backups).
</blockquote>

<a name="tag_netbios"><p><hr><p></a>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
	align="left" border="0">Complex network and NetBIOS </H3>

<p><strong>From Kate Stecenko on Tue, 14 Apr 1998 </strong></p>

<p><strong>
Hi !

<br><br>
I have some problem, can you help me?

<br><br>
Our network has 2 segments.
Each segment have a lot of stations Win 95 & Win NT OS.
Segments are connected via router.
Router is Linux box with Mars NWE for IPX routing & internal kernel
IP routing.

<br><br>
I need that all computers from all segments will be visible by each
other by NetBIOS (in Network Neibourhood/Microsoft Windows Network).
Not all computers in out network have TCP/IP stack (it's impossible
by important reasons), so I cannot use NetBIOS over TCP/IP.
If there are any way to make my Linux box and Samba work with NetBEUI
or run NetBIOS over IPX?
</strong></p>

<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
	align="left" border="0">Last 
	I heard NetBEUI is not routable.  Novell's IPX/SPX is
	routable to about 16 hops --- and a properly configured
	Netware system should automatically route IPX.  I don't
	know about IPX routing through the Linux kernel (it 
	might require some static tweaking).

<br><br>
	I don't know of any way to tunnel NetBIOS traffic over
	IP or IPX.  

<br><br>Other Options: 
<dl>
<dt>Bridging

<dd>I think you can configure Linux to do ethernet <em>bridging</em> 
	(seems that an experimental config option for this has 
	crept into the recent 2.0.x kernels).  Bridging is a 
	process where ethernet frames are copied from one interface
	(segment) to another.  This is different from routing in
	that the router works at a higher level in the OSI reference
	model (it's at the transport layer while bridging occurs at
	the network layer and normal ethernet hubs work at the 
	physical layer).

<br><br>
	One cost of this is that the bandwidth from one segment is
	usually no longer isolated from the other (meaning that
	your utilization may become unacceptable high).  Some 
	bridges are more "intelligent" than others --- and they 
	"learn" which ethernet cards are on which segment (by
	promiscuously watching the MAC --- media access control ---
	addresses on all ethernet frames on each interface).

<br><br>
	The smart switches or bridges then selectively forward
	frames between the segments.  (I use the term frames to
	refer to ethernet data structures or transmission units
	and "packets" to discuss those from the upper layers).

<br><br>
	Some switching hubs (like the Kalpana) are quite expensive
	but perform all of this in hardware/firmware.   The advantage
	is that traffic that's local to a segment won't be copied
	to the other --- which should reduce the overall bandwidth
	utilization of this approach.

<br><br>
	The disadvantages involve NetBIOS and Netware/IPX.  NetBIOS 
	is a "chatty" protocol involving <em>lots</em> of broadcasts, 
	particularly by servers (which in '95, NT, and WfW is 
	<em>every</em> machine with any "shares").  IPX is better, for 
	the most part, but most of the servers and services utilized by 
	Netware require SAP's (service advertising packets).  These are 
	broadcasts as well.

<br><br>
	(SAP's are why you don't have to configure a Netware client 
	system with information about default routers, DNS servers,
	and things like that.   The client listens to the wire for
	some period of time and hears a list of these periodic SAP's.
	The disadvantage in large networks with lots of servers, 
	print servers, and other services is that the SAP's can chew
	up a sizable portion of your bandwidth --- and they <em>are</em>
	routed).

<dt>Gateways:

<dd>Rather than trying to get this to work at a layer <em>below</em>
	the transport (NetBIOS, TCP/IP, IPX/SPX) you could try to
	get above it, into the presentation, session or application
	layers.  These approaches are generically called "gateways."

<br><br>
	However.  I don't know of any gateways that are appropriate
	to SMB servers.

<dt>Warning:

<dd>
	The rumors I've been hearing are that Microsoft will be phasing
	NetBEUI out in favor of TCP/IP.  So your organization's 
	constraint may not be feasibly in the long run (the next year
	or two).
</dl>
</blockquote>

<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
	align="left" border="0">Please tell me what to do.</strong></p>

<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
	align="left" border="0">Conclusion:

<br><br>
	Question your management's constraint about TCP/IP.
	NT and '95 both include it (so it can't be a cost issue).

<br><br>
	TCP/IP is the most widely used and deployed set of networking
	protocols in the world --- and has been around longer than
	anything else in current use.  It is clearly scaleable
	(despite the naysayers and doomsdayers -- "the Death of 
	the Internet" is not imminent).  It doesn't suffer from
	the limitations of IPX and NetBIOS.

<br><br>
	I suspect that your management's proscription is based 
	on ignorance.  They probably think they know just enough
	about TCP/IP to worry about security and not enough to
	know that protocol selection has little to do with system's
	security.  I've seen this discussed several times on the
	<a href="news:comp.unix.security">comp.unix.security</a> and 
	<a href="http://www.geek-girl.com/bugtraq/">BugTraq</a> 
	mailing lists.  

<br><br>
	If they are concerned about where to get IP addresses it's
	simply a non-issue.  They should read <a 
href="http://www.cis.ohio-state.edu/htbin/rfc/rfc1918.html"
	>RFC 1918</a>.  This RFC establishes several sets of IP 
	addresses to be used by "disconnected" networks. In this case 
	"disconnected" means "behind a firewall" or "not connected to 
	the Internet" (your choice).

<br><br>
	You can use any of these that you want --- you don't have
	to ask anyone's permission.  It is your responsibility to
	prevent any such packets from being routed to the Internet
	(which is where we get all the discussion of "IP Masquerading"
	"NAT: network address translation" and "applications proxies"
	(a form of "gateway").

<br><br>
	If their concern is about preventing propagation of "forbidden" 
	protocols (applications layer) or "sensitive" information across 
	the their routers --- there are well established ways of doing
	that (built right into the Linux kernel, among other
	places).  It's much easier to prevent <em>all</em> propagation than it
	is to selectively allow access to specific protocols like
	HTTP (web), SMTP (e-mail) and especially to FTP (which is an
	ugly protocol for firewall designers to support --- but just
	as easy as any other to block).

<br><br>
	So, I have to question their "important" reasons and suggest
	that <em>if</em> these reasons are that important and bridging
	is not feasible than the probably have an unresolvable 
	conflict in their requirements.

<br><br>
	(They might consider running polling processes on the 
	Linux Samba/NWE server to replication/mirror all of the 
	data that must be accessible between the segments.  This 
	would be a big win in a couple of ways --- if feasible
	given their usage patterns.  It cuts down traffic <em>across</em>
	the routers (speed/latency benefits for all) and ensures
	that an extra "backup" of all the relevant data is available.
	The obvious problems involve concurrency if you allow 
	write access on both sides of the fence.  However, if the
	data is of a type that can be "maintained" on one side and
	published across in a read-only fashion it is worth a look).

<br><br>
	In many ways I'd even question their requirement to share
	these as files.  If you have a few-well managed servers
	it may be reasonable to make them all "dual homed" (put
	two ethernet cards in every server and let them all straddle
	the segments).  If they are requiring the propagation of 
	shares created and maintained by desktop users than they 
	probably have a major management problem already.  
</blockquote>


<p><strong><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
	align="left" border="0">TIA, Kate Stecenko.</strong></p>

<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
	align="left" border="0">I 
	hope the explanation helps.  Just off hand it sounds like
	you've been saddled with a poorly considered set of 
	constraints and requirements.  

<br><br>
	It happens to alot of sysadmins and netadmins.  While it
	exercises are creativity and encourages us to socialize
	(in our mailing lists and newsgroups) --- it also leads
	to premature graying (or baldness in my case).

<br><br>
	Sorry there's no magic bullet for this one.
</blockquote>

<a name="tag_century"><p><hr><p></a>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
	align="left" border="0">Some Thoughts on "The Man of the Century"</H3>

<p><strong>From Brian Schramm on Sat, 11 Apr 1998 on the Linux Users Support 
   Team (<a href="http://www.unixzone.dk/lust/lustf1.html">L.U.S.T</a>) 
	Mailing List</strong></p>

<p><strong>Hello,

<br><br>
I think this might interest... It arrived to me without the original
sender ID.

<hr width="10%">
The DALnet #Linux has started a movement to get Linus Torvalds voted as
Man of the Century. Their idea is to get a massive number of votes for
Linus, which would at least get the attention of Linux if nothing else.
They estimate that they need about 1 million votes to pull it off.

<br><br>
They've requested everybody to vote for Linus and to pass it along. The
category in which Linus is being placed also has a mention of Bill
Gates, so we've got some competition. If you would like more 
information, see the URLs below.

<br><dl>
<dt>Vote for Linus Torvalds:
<dd><A HREF="http://www.pathfinder.com/time/time100/time100poll.html"
	>http://www.pathfinder.com/time/time100/time100poll.html</A>

<dt>Linus as Man of the Century Mailing List:
<dd><A HREF="mailto:linusmotc-request@merconline.com"
	>linusmotc-request@merconline.com</A>
</dl>
<hr width="10%">

When you vote the system gives you the present ratings. The category
where Linus shows now: </strong></p>

<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
	align="left" border="0">While 
 I have the utmost respect for Linus and feel greatly
 indebted to him for Linux.  I have reservations about this 
 suggestion.

<br><br>
 First I have to say that the computer has not, in my opinion, been
 the dominate development of this century.  Although microcomputers 
 are the basis for my career and the principle tool in my hobbies
 (writing and participating in newsgroups and mailing lists) --- I
 have to step back and try to achieve a more objective view.

<br><br>
 I'd rate the development of the telephone and our world wide 
 telecommunications infrastructure as roughly an order of magnitude
 more important worldwide.  Granted that modern telephony would be
 impossible without the computer.  The underlying importance of the 
 telephone has driven computers in large part (specifically in the 
 development of Unix --- at AT&T Bell Labs!).  However, my sense of
 history suggests that the impact of telephony was already evident
 before that (when the vast majority of it was run by mechanical 
 relays and even by human switchboard operators).

<br><br>
 Despite this I wouldn't even say that telephony is the most 
 important development of our century.  I think that broadcast 
 media (radio and television) have at least twice as much impact
 as the phone.  The reason is that telephones primarily extend
 our ability to communicate and shrink our time scales --- but they
 are still mostly localised geographically and socially.  The fact
 that the technology allows me to call someone in Japan as easily as
 I could call the local Pizza parlor doesn't matter much when I have
 no acquaintances in Japan.  The telephone doesn't most of us to really
 connect with a significantly broader or larger set of associates 
 than were possible with old-fashioned postal correspondence.

<br><br>
 Broadcast television has had quite a bit of effect on this country
 and on most of the rest of the world.  The results are fundamentally
 different than anything that could be have been accomplished by 
 correspondence or other forms of individual association.  Prior to
 radio and television we didn't even have a word "broadcast."

<br><br>
 I'd put publishing in the same league as broadcast media for potential.
 However it is several centuries old.  Also its potential has never been
 as widely realized as broadcast media due to the simple hurdle of 
 <em>literacy</em>.  This is not so simple as functional literacy.  Many people
 have sufficient academic skills to participate in our (or their) culture
 --- but are not affected enough by any publications to really move 
 society.   I personally consider television to have had a greater 
 effect on our culture based largely on the sheer number of hours that
 people spend absorbing its emanations.  

<br><br>
 It doesn't matter how trite most of the "content" has been --- the 
 fact is that a largely percentage of the world's population has been 
 pacified for an astounding number of hours by TV's and movies (silver 
 screen).  I'm not nearly so concerned by what television has caused 
 people to do as how much it may have prevented by its diversion.

<br><br>
 Despite the its greater importance I still wouldn't say that television,
 movies and other broadcast media is the <em>most</em> important development 
 in our century.  There is one thing that's had even more effect over more
 of the world that those.

<br><br>
 I think I'd have to give the award to Henry Ford.  Not only is the 
 automobile one of the most important and ubiquitous developments of 
 <em>this</em> century, but the manufacturing techniques and organisational
 structures associated with Ford dominate the world's economy and literally
 shape our cities.

<br><br>
 So, despite the fact that Ford appears to have been anti-semitic and
 to have held elitist views that would disgust many people today --- I'd
 have to vote for him for <em>this</em> century.

<br><br>
 That brings me back to Linus.  I think we just might see the real effects
 of the FSF and Linux later.  It may be that people in 2098 will look back
 and remark on how the spirit of co-operation that was fostered by 
 Richard Stallman and Linus Torvalds (among many others) in the field of 
 microcomputer software fundamentally changed our culture's ethic and 
 economy.  We might see radical changes to the publishing industry as 
 more content moves more unto the 'web' (by which I don't just mean HTML 
 carried over HTTP --- but in a broader sense I mean to include the 
 multi-cast communications we see in netnews and on these mailing lists).

<br><br>
 This would have to be accompanied by radical solutions to the <em>real</em>
 problems we face in the world today.  We cannot continue to allow our
 population and resource utilization to grow through another century.
 In addition the current allocation of natural resources must be rationalized
 before we can have a better world.  If we continue to have less than
 5% of the population accounting for 80% of the world's resource consumption
 and continue to allow individual to rape the land that they "own" and 
 discard it when they've extracted the value from it then most of the 
 world's population will remain poor and miserable (and most of the
 "developed" nations will see large parts of their own populations 
 degenerate into "third world" conditions).  This is not "doom and 
 gloom" prophecy --- it's a simple matter of arithmetic.  The question 
 is not "if" but "when" and I think the argument is over decades 
 rather than centuries.

<br><br>
 So, if we're still in a position to concern ourselves about a 
 "person of the century" contest ten decades from now, I hope that
 the standard of living for the rest of the world has improved
 to the point where we can get more than a .05% participation 
 in the selection process.  (There were less than 3 million votes
 listed in the table that Paul quoted, and that's only 1% of 
 <em>just</em> the U.S. population --- which is about 5% of the world
 population last I heard).  

<br><br>
 Who knows,  we might then see a bit of national, racial, or even 
 gender diversity in the candidates!  (Unfortunately that might 
 take way more than a century).

<br><br>
 It's not very likely --- but I'd like to on the next century and be
 astounded by the spread of altruistic collaboration from software into
 other endeavors.

<br><br>
 While I can't vote for Linus Torvalds as the man of this century I can
 mark his accomplishment as one of the most amazing things I've ever 
 seen.  He might leave a legacy that makes him the man of the next century!
</blockquote>

<a name="tag_gateway"><p><hr><p></a>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
	align="left" border="0">Linux as a General Purpose SOHO to 
	Internet Gateway</H3>

<p><strong>From Ron Smith on Sat, 11 Apr 1998 on a newsgroup</strong></p>

<p><strong>
I looked thriugh the FAQ and didn't find any answers to this question.
I hope this is the right forum.</strong></p>

<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
	align="left" border="0">"The" 
	FAQ.  There are a huge number of Linux FAQ and
	HOW-TO documents.  I haven't read them all and I'm
	"<em>The Answer Guy</em>."
</blockquote>

<p><strong>
I am a fairly experienced UNIX developer but I usually leave the
difficult administrative stuff the the SysAdmins.  I have been running a
small LAN for my business using Slakware LINUX (currently version 3.2)
for some time now.  What I really want to do is use the LINUX server as
a gateway to the internet for the rest of my LAN.  I can connect via PPP
to my ISP from the LINUX box with no problems but what I haven't found
any good books or documentation on is:

<br><br>
How do I setup the LINUX server to bridge between my local LAN and the
internet?</strong></p>

<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
	align="left" border="0">
	You probably want to read up on IP Masquerading.
	In it's simplest form you use the ipfw (kernel 
	packet filtering features) and configure them with
	a command like:

<blockquote><code>
		ipfwadm -F -a accept -m -S 192.168.1.0/24 -D any
</code></blockquote>

	... which says:  

<blockquote>
		add a rule to accept packets for forwarding from
		the <tt>192.168.1.*</tt> range of addresses, and masquerade
		the to wherever they are going.
</blockquote>

	This assumes you have all your internal systems already 
	configured with 
	<a href="http://www.cis.ohio-state.edu/htbin/rfc/rfc1918.html">RFC 
		1918</a> IP addresses like <tt>192.168.1.*</tt> 
	or <tt>172.16.*.*</tt> or <tt>10.*.*.*</tt>, and that you have 
	them all configured to use the Linux system as their default router.
	It also assumes that you are running a reasonably recent 
	kernel with the ipfw options enabled.

<br><br>
        There's quite a bit more to it than that --- but that is the core
        command that makes it work.  Note that some protocols --- ftp in
        particular --- don't work reliably through masquerading.  It is often
        better to get a copy of the
        <a href="http://www.tis.com/prodserv/fwtk/readme.html">TIS FWTK</a>
        or <a href="http://www.socks.nec.com/whatissocks.html">SOCKS</a>
        (application layer proxies) to support these
        (<a href="#tag_gw_footnote">*</a>).

<br><br>
	Suggestions:  run a caching nameserver and a good caching 
        web proxy (like
        <a href="http://squid.nlanr.net/Squid/"><tt>squid</tt></a>)
        on the router (the Linux box).
	Make a "best effort" to "harden" the router's configuration
	and contract to have a thorough security  audit performed
	on it.  If at all possible isolate the gateway on the
	"outside" of an interior perimeter router (which can be
	another Linux box running <em>no</em> services, not even inetd).

<br><br>
	Adding the caching for DNS and other protocols can 
	greatly reduce the traffic over the network link and
	only costs a tiny investment in configuration time, RAM,
	and disk space.  Any traffic that's handled by the cache is
	a bit less contention for everyone else using the link and
	everyone between you and the servers that you're accessing
	(i.e. the whole 'net benefits).
</blockquote>

<p><strong><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
	align="left" border="0">I 
would appreciate any help that you can give...I will check back here
periodically or, if possible, email me directly.  Thanks in advance.
</strong></p>

<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
	align="left" border="0">
	Feh!  I'll try to remember to spool off a copy via e-mail.
	Find a good consultant in your area.  A good one will
	show you how to do all of this and will be able to explain
	quite a bit more because he or she will ask quite a bit
	more about your requirements.  I've glossed over quite a bit
	here -- in particular regarding the security issues.
<hr width="40%"">
<ul><li><a name="tag_gw_footnote">Shortly</a> after writing this, but prior
        to "going to press" I hunted around for an alternative to FWTK
        and found <a href="http://wall.etl.go.jp/ysato/DeleGate/">DeleGate</a>,
        which can be used as a SOCKS proxy (semi-transparent but requiring
        client software support) and as a user-driven proxy.  Thus it can be
        used in place if SOCKS and FWTK and seems to be simpler to set up
        than either.  It hasn't been around as long, or used as widely, so
        we can't be as confident in its security and feature set.  But,
        it's well worth a look and has a more BSDish license.
</ul>
</blockquote>

<a name="tag_winmodem"><p><hr><p></a>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
	align="left" border="0">LOADLIN.EXE, Plug &amp; "Pray" and 
	"Win(Lose)Modems"</H3>

<p><strong>From Allen R Gunnerson on Sat, 11 Apr 1998 </strong></p>

<p><strong>I was told be several people that I can configure my loadlin so 
that my plug n play stuff in Win95 would be detected by Linux.  Right now, 
if I use dos mode, I lose all my hardware.  I have tried to configure my 
LTWin modem for Linux with no luck.......  </strong></p>

<blockquote><img src="../gx/dennis/bbub.gif" alt="(!)" width="50" height="28"
	align="left" border="0">I 
	think you have two different issues embedded in here.
	 Plug -n- Play (hardware) is a fairly lame attempt in recent
	years to create PC hardware that autoconfigures itself.  
	When talking about ISA cards this is mostly just marketing
	fluff that fails in many configurations -- and is widely 
	called "Plug -n- Pray" by many of the support reps that 
	I know.

<br><br>
	"WinModems" are another issue.

<br><br>
	Let's start with the first issue:

<br><br>
	A typical PC has two (or three(*)) buses.  System "bus" is
	a hardware interface, with slots or connectors to multiple
	devices.  The original IBM PC (and XT) had 65 pin (8-bit)
	slots.  With the introduction of the AT IBM placed another 
	connector "end-to-end" with the original 65 pin slots
	-- which allowed many old "8-bit" cards to be used in 
	AT and even in modern systems.  These are called "16-bit
	ISA slots."  (The term ISA or "industry standard architecture"
	was coined after the fact -- near the introduction of 
	MCA (micro-channel architecture) and EISA (Extended ISA). 
	These hardware specifications have almost completely 
	disappeared).

<br><ul>
<li>(Technically a SCSI host adapter is a 
		   hardware bridge between your system bus
		   and its own SCSI bus.  This is actually a
		   subsystem -- so that doesn't really count
		   as a "system bus").

</ul><br>
	As the industry fought over MCA vs. EISA (largely resulting
	in the markets rejection of <em>both</em> of them -- due to the 
	crass attempts at exploiting proprietary designs by major
	vendors of each) the clone manufacturers -- particularly the
	motherboard and video engineers -- created a high speed
	32 bit bus called "VESA local bus" or 'VLB' for short.  
	VESA is the "video electronics standards association" although
	there were eventually a variety of disk and network controllers
	that plugged into VLB slots.

<br><br>
	These were the rule for late 386 and throughout most of the
	486 era (if a period of only 5 years can be called an "era").

<br><br>
	With the introduction of the Pentium, Intel also created a
	number of chipsets and introduced a new bus/interface called
	"PCI" (sorry I don't remember what the abbreviation stands
	for -- something like "peripheral to CPU interconnect").

<br><br>
	I don't know alot of the low level details about PCI vs. 
	VLB.  I've heard that there were very good technical reasons
	why VLB couldn't be used in Pentium systems.  I've also 
	heard that Intel rammed their spec down everyone's throats
	in a way that has resulted in their clear domination of
	the chipset market <em>as well as</em> the CPU market.

<br><br>
	Prior to this there were a number of companies selling
	chipsets (all the support circuitry that connects the CPU,
	the memory, the bus(es), and other interfaces to the motherboard
	(like the keyboard connector).  Now there are practically 
	no other companies selling chipsets.  It seems that all of the
	motherboard manufacturers have been forced to use various
	Intel chipsets (Neptune, Triton, etc).  I've heard that some
	of these have had bugs as notorious as some of their CPU's.

<br><br>
	One problem that has persisted through all of this is that
	a typical PC owner has had to manually keep track of how
	each device on the system was integrated with the others.
	Any individual card might require an IRQ (interupt request),
	some I/O port addresses, a DMA channel, and/or some 
	"reserved address space" (for memory mapped I/O between the 
	0xA0000 and the 0xFFFFF regions).  

<br><br>
	There are only a pitifully limited number of each of these 
	resources.  The original PC only had 8 IRQ lines on a 
	single PIC (programmable interrupt controller).  A modern
	PC still only has 15 -- accomplished by "cascading" one
	PIC off of the IRQ 2 of the other.  

<br><br>
	Of these the system timer, keyboard, the real-time clock 
	and the FPU (floating point unit) are already taken up -- 
	as well as two serial ports, a hard disk controller (IDE, 
	SCSI, or any other).  Usually there is also one associated
	with each LPT port and one for any bus mouse interface that 
	we have.  That leaves nine to be distributed between each of 
	our SCSI, ethernet, sound and other cards.   Sound cards often 
	take up <em>two</em> of these incredibly scarce resources.

<br><br>
	As if the scarcity weren't enough of a problem, complexity --
	the fact that every user has to keep track of these for every
	system -- was a major kicker.  This has been a major failing
	of the PC architecture.  The priority of "backward compatibility"
	as left us with a "backwards architecture."

<br><br>
	Plug and Pray was an attempt to relieve some of that complexity
	(though it does nothing to resolve the underlying problems of
	scarcity -- which are deeply ingrained design limitations).  
	It has helped somewhat -- but it requires that all of the 
	components of the systems (hardware and OS) conform to the 
	same spec.  A PnP system can work with some old ISA cards,
	some of the time.  The real problem comes when you use
	multi-boot configuration (as you're doing between DOS and
	Linux) -- since each of these may try to "tune" the 
	configuration to itself.

<br><br>
	The "universal serial bus" (USB) and the 
	"<a href="http://devworld.apple.com/dev/FireWire/">Firewire</a>" 
	specifications offer some hope of relieving the issue of scarcity.  
	Like SCSI these provide an adapter to a semi-intelligent "bus" of
	external peripherals.  In effect the adapter uses one PC
	IRQ and I/O port range -- and negotiates/arbitrates among
	many devices on it's own bus using it's own discrimination
	logic.

<br><br>
	However, it looks like it will take some time for practical
	devices to become widely available in USB form.  So far there
	are a few digital cameras and scanners that support it --- and
	no modems, ISDN TA's, terminals (or null modem adapters), X-10
	powerhouse, or other toys.  Ideally someone would make a 
	couple of models of parallel-USB and RS232-USB bridges so I could
	use existing devices (like parallel port Zip drives and flatbed
	scanners) with my new USB equipment.  It looks like the 
	hardware companies would much rather force us to all buy all new
	peripherals --- and to get peripherals that aren't usable on any
	platform other than a PC.  

<br><br>
	Naturally we can see that Microsoft will benefit from these and 
	any form of "WinModem" or proprietary software drivers for 
	peripherals.  I can't think of anything that will perpetuate the
	status quo of this market more effectively than that short-sighted
	attitude among hardware vendors.
</blockquote>

<a name="tag_mailmasq"><p><hr><p></a>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
	align="left" border="0">'<tt>sendmail</tt>' Masquerading: 
	What and Why</H3>

<p><strong>From Stephen Oberther on Tue, 07 Apr 1998 </strong></p>

<P><strong>First of all let me say that I love the magazine and your
column.  This problem has been bothering me for quite
some time now and I can't seem to figure out how to
remedy it.  I have a dial-up internet account but use my
local sendmail for email distribution.

<br><br>
My question is this: Is there a way to have my actual
email address stampled onto my email so that the
recipient can just reply to the email normally and have
the reply go to my account with my ISP?  Currently, with
the exception of this message if netscape works properly,
the from field is posted with my username and my local
machine name, as it should be.  Is this possible at all
or is it just a lost cause?</strong></p>

<blockquote><img src="../gx/dennis/bbub.gif" width="50" height="28" alt="(!)"
	align="left" border="0">Yes, 
	there is a way to have your system "masquerade" as
	some other system or domain.  In fact this is what most
	organizations do.

<br><br>
	Note:  this '<tt>sendmail</tt>' masquerading feature should 
<em>not</em> be
	confused with "IP Masquerading" (which is a form of 
	TCP/IP network address translation -- or NAT).  In the 
	contest of mail the term refers purely to how the headers
	of each piece of mail are constructed.  (IP masquerading is
	at the transport layer of the OSI reference model while 
	'<tt>sendmail</tt>' masquerading is at the applications layer).

<br><br>
	Now the fact that you mention Netscape (presumably NS
	Navigator or Communicator) raises a different issue.
	Some MUA's --- particularly those that have been ported 
	from or significantly influenced by non-Unix code ---
	will bypass the normal conventions for mail handling under
	Unix and deliver their own mail directly to the apparent
	recipient (by doing the appropriate DNS query for MX 
	records and engaging in a direct TCP dialog with that
	host's SMTP port.  In many cases you can configure these
	to relay mail through some other system --- such as
	'localhost' which will allow your '<tt>sendmail</tt>' (or qmail,
	or vmail, or other local MTA (mail transport agent) to
	apply your local policies (like header rewrites) to the 
	mail).

<br><br>
	Host "hiding" via '<tt>sendmail</tt>' masquerading is such a local
	policy.  Assuming you're using '<tt>sendmail</tt>' you can enable
	it with the following lines to your '<tt>mc</tt>' (Macro Config)
	file:

<blockquote><code>
FEATURE(always_add_domain)dnl<br>
FEATURE(allmasquerade)dnl<br>
FEATURE(always_add_domain)dnl<br>
FEATURE(masquerade_envelope)dnl<br>
MASQUERADE_AS($YOURHOST)dnl

</code></blockquote>
	Naturally you probably need other lines in there
	and you need to run this through the M4 macro preprocessor
	to generate your <tt>/etc/sendmail.cf</tt> file.  (I do not
	recommend hand hacking the cf files as this is 
	more error prone and harder to document and review later).

<br><br>
	You might not need all of these features --- but I use them.

<br><br>
	Note:  this doesn't "hide" your internal host names and/or
	IP address in the "<tt>Received:</tt>" headers --- which is an FAQ
	in security (via obscurity) features.  I merely affects the
	<tt>Reply-Path:</tt> and <tt>From:</tt> addresses.  

<br><br>
	The part about "masquerade_envelope" is one I've added 
	more recently.  It prevents some potentially alarming headers 
	from appearing in my mail when a recieving or relaying mailhost's
	sendmail (or other MTA) can't do a proper "double reverse"
	lookup of my address.  (Yes, my DNS and reverse DNS are out
	of sync --- and no, I haven't fought it out with my ISP
	nor have I assumed control of my own DNS.  Let's not 
	talk about the footwear on the cobbler's kids!).
</blockquote>


<P><strong><img src="../gx/dennis/qbub.gif" width="50" height="28" alt="(?)"
	align="left" border="0">Oh 
and just in case the from address is wrong on this email it should be ...

<br><br>
Thanks in advance, Stephen Oberther </strong></p>


<blockquote><img src="../gx/dennis/bbub.gif" width="50" height="28" alt="(!)"
	align="left" border="0">The
	first test I would make in your situation is to 
	pass a message straight to sendmail with a command like:

<blockquote><code>
	/usr/lib/sendmail -t -v -oe &lt; $TESTMAIL
</code></blockquote>

	... where $TESTMAIL is the name of a file that has a 
	reasonably formatted piece of mail (at least a <tt>To:</tt> and
	a <tt>Subject:</tt> line for a header, a blank line and a few
	lines of text for the body).

<br><br>
	point the <tt>To:</tt> line at one of your other accounts to
	a friend or through some autoresponder (pick one that
	doesn't remove the headers).  Then you can see
	what sort of rewriting is occuring.  It may be that 
	you system's MTA is already properly configured and 
	you can focus on the MUA (mail user agent).
</blockquote>

<a name="tag_x2java"><p><hr><p></a>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
	align="left" border="0">Tools for converting X output to java</H3>

<p><strong>From Sheldon E. Newhouse on Tue, 31 Mar 1998 on the [linuxprog] 
	<a href="http://linux-lists.home.ml.org">mailing list</a></strong></p>

<P><strong>Are there any tools available to convert 
standard C code with X displays to java displays?  Basically, we have a 
long program which is written in C and does low level X output.  We would 
like to port it so that the number crunching part works on a back-end 
server and users can view output on java clients.  The part of the program 
that does the display is fairly short, but intimately connected with the 
X libraires.  Any ideas or references would be appreciated.  
<br><br> 
TIA,
<br>-sen</strong></p>

<blockquote><img src="../gx/dennis/bbub.gif" width="50" height="28" alt="(!)"
	align="left" border="0">I'm not sure about a "Java X Server" per 
se.  However there has been some work done on execution of remote X 
applications through a web browser interface.

<br><br>
 I have yet to use any of this stuff (I barely use X) --- so I can only 
 rely on hearsay and a bit of web searching.
   
<br><br>
 The first technology to consider is the latest release of X Windows 
 itself.  There was an initiative by the X Consortium (*)
 called "Broadway" --- this eventually became the widely accepted 
 code name (possibly widely excepted as well -- but we won't get into that) 
 for the entire X11R6.3 release.
<br>
<ul><li>(Formerly at <A HREF="http://www.x.org">http://www.x.org</A> 
	this now appears to be part of The Open Group at 
	<A HREF="http://www.opengroup.org/">http://www.opengroup.org/</A>)
</ul>
<br>
 Since I don't know most of the details it's probably best for me to
 just refer you to some online articles that discuss it:
<br>

<dl>
<dt>Broadway/Xweb FAQ
<dd><A HREF="http://www.broadwayinfo.com/bwfaq.htm"
	>http://www.broadwayinfo.com/bwfaq.htm</A>

<dt>Can X Survive on the Internet?  By Brad Weinert
<dd><A HREF="http://www.sigs.com/publications/docs/xspot/9609/xspot9609.d.execbrief.html">http://www.sigs.com/publications/docs/xspot/9609/xspot9609.d.execbrief.html</A>

<dt>X Is Dead, Long Live X
<dd><A HREF="http://www.sigs.com/publications/docs/xspot/9603i/xspot9603.d.edit.html">http://www.sigs.com/publications/docs/xspot/9603/xspot9603.d.edit.html</A>
</dl>

<ul>
<li>Both of these articles at sigs.com seem to be
	  a bit out of date, now that ``Broadway'' has been
	  released.  However they offer a pretty quick 
	  preview of what X Web is supposed to be.
</ul>

<br>
 Note that the constraint of this approach is that it seems to require
 that you actually have an X Server on the clients.  This is great if
 you have just about any sort of Linux/Unix clients --- but may be
 prohibitive if you intend for Windows (NT, '95, or 3.x) or MacOS
 clients to access your applications.

<br><br>
 You might be able to deploy the MI/X server (a freely available X Server
 for Windows and MacOS)  but I don't know if it supports the X11R6.x
 "Broadway" features.  You can find out more about MI/X at
 <A HREF="http://tnt.microimages.com/freestuf/mix/"
	>http://tnt.microimages.com/freestuf/mix/</A> and read MicroImages 
Inc.'s FAQ at <A HREF="http://tnt.microimages.com/freestuf/mix/mix-faq.htm"
	>http://tnt.microimages.com/freestuf/mix/mix-faq.htm</A>.  

<br><br>
 A quick perusal of that suggests that it won't support the Broadway
 set of extensions (since the FAQ says that it doesn't support LBX --
 the "low bandwidth X" which is apparently a key part of Broadway).

<br><br>
 I don't know what commercial X Servers for Windows or the Mac will
 help --- but I needn't spend any more space on that issue since I
 you don't specify that as a requirement. Hummingbird's Exceed 
 (<A HREF="http://www.unipres.com/hbird/exceed/"
	>http://www.unipres.com/hbird/exceed/</A>) is a likely candidate.

<br><br>
 Another approach might be to provide your clients with VNC ---
 which was listed in Linux Weekly News 
(<A HREF="http://www.eklektix.com/lwn/">http://www.eklektix.com/lwn/</A>)
 a few weeks ago.  This has nothing to do with Java and almost nothing
 to do with X Windows.  However it does allow you to view X Windows 
 displays from Windows and Mac clients and vice versa --- using an 
 alternative to the X communications protocols.

<br><br>
 The potential advantage is that it sounds much easier to install and 
 configure than a Windows or MacOS X server.  Take a look at at the 
 "Olivetti and Oracle Research Laboratories" 
	(<A HREF="http://www.orl.co.uk/vnc/">http://www.orl.co.uk/vnc/</A>)
 for more on that.  Another advantage of this over MI/X would be that it 
 is open source available under the GPL --- MI/X is free to use but the 
 sources are not available.

<br><br>
 The two approaches that are more directly suggested by your 
 question are:
<br><blockquote>

	An Xlib to Java awt cross compiler (or class or library)

</blockquote><br>
 ... or:

<br><blockquote>
	An X Server for the Java virtual machine (a class that implements
	Xlib).

</blockquote><br>
 I suspect that both of these are feasible --- though the performance 
 costs of the latter may not make it palatable and I'm sure that the
 portability issues in each would be significant.

<br><br>
 Despite my search engine efforts I was unable to find any information
 on any work being done on either approach.  However,  I'm not an expert
 in Java and I don't keep up on it much.  So, maybe someone else here
 will help us out.

<br><br>
 I did look in several likely places at 
<A HREF="http://www.developer.com/directories/"
	>http://www.developer.com/directories/</A>
 (formerly the Gamelan archives).  The closest I found is a JXTerm ---
 allegedly an 'xterm' in Java.  This includes telnet and cut and paste
 features.  There are several Java terminal emulators including VT100,
 VT220, ANSI-BBS, TN3270 and TN5250 applets.  

<br><br>
 Meanwhile I've been hearing snippets of SCO's 
	(<A HREF="http://www.sco.com/">http://www.sco.com/</A>)
 "Tarantella" for the last year or so.  This apparently does act as
 an X Windows to Java gateway, providing a sort of "web desktop" or
 "webtop" as their marketing copy refers to it. It appears that you'd 
 have to install a SCO OpenServer system to either run your application 
 or to act as a gateway between your applications server and your clients.
 (I doubt sincerely that SCO will make Tarantella available for Linux
 --- and it doesn't seem to be written <em>in</em> Java).  I'm really curious
 as to how this works.

<br><br>
	(While I was writing this I installed a new copy of the Netscape
	RPM from my Red Hat CD -- this is a new system that I just built 
	from parts, it's running S.u.S.E. -- started an X session, started 
	Navigator, pointed my browswer at 
	<A HREF="http://tarantella.sco.com/">http://tarantella.sco.com/</A> and
	tried to access their demo.  It gets to some point before showing
	my anything like X or it's "webtop" with some complaint about a
	Java Security violation in some class or another.    Exiting and
	retrying got me further along.  Hint:  don't try 'Tarantella'
	during your first Navigator session.  Eventually I was able to
	get it running ...err... walking ...err... limping along.  
	It might be faster over a T1 or an ethernet -- I happen to be
	using the 28.8 PPP connection at the moment).

<br><br>
 If you're curious, go try the demo yourself.  You can also find a
 set of slides from a presentation by Andy Bovington (?) on:
<br><dl>

<dt>Controlling X/Motif apps from Java and Javascript. 
<dd><A HREF="http://www.sco.com/forum97/tarantella/presentations/bov/"
	>http://www.sco.com/forum97/tarantella/presentations/bov/</A>

</dl><br>
 In typical "big company" fashion SCO doesn't tell you how much this
 product costs. They expect you to fill out a survey and have their 
 sales critters call you.  

<br><br>
 I suspect that this circumlocution may result in more converts to 
 open source software than all of the other "freedom" arguments we can 
 muster.

<br><br>
 Meanwhile, my wife, Heather, found a couple of promising links 
 (she's the <em>real</em> search engine wiz in the family).

<br><br>
 Here's the most promising:

<br><dl>
<dt>Eugene O'Neil's XTC, the X Tool Collection
<dd><A HREF="http://www.cs.umb.edu/~eugene/XTC/"
	>http://www.cs.umb.edu/~eugene/XTC/</A>

</dl><br>
 ... which appears to be at the early alpha stages but, in his own 
 words:

<br><blockquote>
   ... is an implementation of the X Window Protocol, written in pure
   Java. It does not require any native C libraries, such as Xlib:
   instead, it is intended as a complete replacement for Xlib, written
   from the ground up to be flexible, object-oriented, and
   multi-threaded.

</blockquote><br>
 (Wow!)

<br><br>
 There was also some work done by a Mr. Igor Boukanov at:

<br><dl>
<dt>Pure Java X client
<dd><A HREF="http://asfys3.fi.uib.no/~boukanov/java.doc/lib.x.html"
	>http://asfys3.fi.uib.no/~boukanov/java.doc/lib.x.html</A>

</dl><br>
 By far the best technical information I found on X Windows in my
 search was:

<br>
<dl>
<dt>Kenton Lee's: Technical X Window System and Motif WWW Sites
<dd><A HREF="http://www.rahul.net/kenton/xsites.html"
	>http://www.rahul.net/kenton/xsites.html</A>
</dl><br>

 Kenton has the best set of links on the subject, and apparently has
 written articles for 'X Advisor Magazine' and several others.
</blockquote>

<a name="tag_hoax"><p><hr><p></a>
<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
	align="left" border="0">"Good Times" are Here 
	Again?  NOT!</H3>
<h4>E-mail and Internet Hoaxes Exposed</h4>


<p><strong>From steve wornham on Mon, 30 Mar 1998 on the 
	[linuxprog] 
	<a href="http://linux-list.home.ml.org/">mailing list</a></strong></p>

<p><strong>I am not sure if this will help anyone but I recently came across 
	it.</strong> (forwarded message <a href="#below">below</a>)</p>

<blockquote><img src="../gx/dennis/bbub.gif" width="50" height="28" alt="(!)"
	align="left" border="0">I hope that I'll be the only one to 
 respond to this and I hope that 
 no one, on any Linux mailing list, will forward this drivel anywhere!

<br><br>
 This appears to be yet another variation of the "Good Times" virus
 hoax.  Hopefully my response will help everyone.  Please do NOT forward
 this message (or any message) to "everyone in your address book."  
 Any mail that you receive that makes this plea should be viewed with
 extreme suspicion --- they are almost always hoaxes, spams, scams, or
 Ponzi schemes.  

<br><br>
 Most are illegal in <em>many</em> jurisdictions (internationally and 
 domestically).  Even the cases that aren't illegal are obvious abuses
 of our shared networking resources (bandwidth).

<br><br>
 I won't dignify this particular hoax with an analysis.  Suffice it 
 to say that it doesn't specify platform, agent, mechanism, or effect
 (symptoms nor "payload").

<br><br>
 For the record it <em>is</em> possible for e-mail to carry some forms of
 computer virus to <em>some</em> users.  Any WinWord .DOC file can contain
 macro virus code --- and can be attached to any e-mail (via MIME).
 However, this "virus" is only "data" to the vast majority of Linux
 users.  Even most Windows users won't be affected most of the time
 --- and all can protect themselves (simply configure your mail user
 agent to disable any "automatic document viewing" features, <em>and</em>
 disable the "auto-executing macros" of all your MS Office packages).

<br><br>
 Lest you think that MS Windows is the only platform affected by
 malicious macros that can be embedded in documents --- consider that
 some versions of the venerable '<tt>vi</tt>' and '<tt>emacs</tt>' editors 
for Unix have
 historically contained similar features (modern implementations 
 either lack them or have them disabled by default).

<br><br>
 In any event some of us in the professional virus fighting community (*)
 consider these "Good Times" messages to <em>be</em> a "social virus" 
--- one 
 that is transmitted via the gullibility and lapses in judgement by the 
 human recipients.  If you have ever forwarded copies of any such 
 warning to anyone else then <em>you</em> have been a carrier of that virus.

<br><ul>
<li>(I used to be a senior QA analyst at McAfee, before I was 
	   their senior Unix sysadmin --- one of my former roommates 
	   is still the head of their virus research department --- 
	   and I've been on the support team at Norton/Symantec where 
	   I was their lead online support rep and BBS SysOp).

</ul><br>
 Innoculate yourself!  Don't perpetuate these hoaxes!  When in doubt
 ask! (Ask <em>one</em> or <em>two</em> <strong>trusted</strong> associates).  
Don't do forward
 any message to "everyone in your address book."  Most importantly,
 don't delete unread mail simply because you think it might contain
 such a virus. (*)

<br><ul>
<li>(If you're really worried, use a simple, text viewer to 
	   look through the suspect message, or switch to an old
	   fashioned mail reader that just <em>reads mail</em> (without 
	   all the auto-execution, dynamic content flim flam)).

</ul><br>
 Incidentally, document macro content isn't the only risk of running 
 some of the modern mail user agents.  A number of GUI, MIME enhanced, 
 HTML extended MUA's will default to running JavaScript, or fetching 
 and executing byte-compiled Java code.  These should be disabled
 or limited to "trusted" domains and hosts wherever possible.  When that's
 not possible --- use a different mail reader.  Another, risk involves
 the automated fetching of HTML images.  While there is no known mechanism
 for this to execute hostile code --- it is possible for the server 
 containing such images to perform traffic analysis (finding out what
 IP address your mail gets forwarded to, and that sort of thing).  This is
 a subtle risk which is more related to privacy than to "virus.'"

<br><br>
 As a final note regarding the "Good Times" class of hoaxes --- if
 a virulent, cross-platform, e-mail transmitted, <em>computer</em> virus
 ever is created --- it is very unlikely that it would always relay with
 the same subject.  If such a virus were created it almost certainly 
 could not be detected by any feature of the message headers (there is no
 concievable reason to write such a program with any such constraint).

<br><br>
 For those who like to follow links, here's some web info about
 "Good Times" and similar hoaxes:

<br><dl>
<dt>anti-Good Times virus page
<dd><A HREF="http://www-students.biola.edu/~dougw/GoodTimes/virus.html"
	>http://www-students.biola.edu/~dougw/GoodTimes/virus.html</A>

<dt>Good Times Virus Hoax FAQ (over 50K)
<dd><A HREF="http://users.aol.com/macfaq/goodtimes.html"
	>http://users.aol.com/macfaq/goodtimes.html</A>
    <br><A HREF="http://www.public.usit.net/lesjones/goodtimes.html"
	>http://www.public.usit.net/lesjones/goodtimes.html</A>

<dt>CIAC Internet Hoaxes (about 48K)
<dd><A HREF="http://ciac.llnl.gov/ciac/CIACHoaxes.html"
	>http://ciac.llnl.gov/ciac/CIACHoaxes.html</A>

<dt>Don't Spread that Hoax!
<dd><A HREF="http://www.nonprofit.net/hoax/hoax.html"
	>http://www.nonprofit.net/hoax/hoax.html</A>
	<ul><li>This one covers many other types of Internet and 
		  e-mail hoax.
	</ul>

<dt>The AFU & Urban Legends Archive
<dd><A HREF="http://www.urbanlegends.com/">http://www.urbanlegends.com/</A>
	<ul><li>The alt.folklore.urban-legends newsgroup home page</ul>
</dl>
</blockquote>

<PRE>
<a name="below">&gt;&gt;</a>     Hi all, 
&gt;&gt;     This was forwarded to me.  Please feel free to pass this along.
&gt;&gt;     Sherry
&gt;&gt;
&gt;&gt;======== Original Message ======
&gt;&gt;     
&gt;&gt; Please be careful!!
&gt;&gt; If you receive an e-mail titled "WIN A Holiday"  Do Not open it, it 
&gt;&gt; will erase everything on your hard drive.  Forward this letter out 
&gt;&gt; to as many people as you can.  This is a new, very malicious virus 
&gt;&gt; and not many people know about it.  This information was 
&gt;&gt; announced yesterday morning from Microsoft, please share it with 
&gt;&gt; everyone in your address book.  Also, do not open or even look at 
&gt;&gt; any mail that says "Returned or unable to Deliver" this virus will 
&gt;&gt; attach itself to your computer components and render them useless.  
&gt;&gt; AOL has said that this is a very dangerous virus and that there is 
&gt;&gt; NO remedy for it at this time.
</PRE>

<a name="tag_xdmthread"><p><hr><p></a>


<p>The <a href="../issue26/lg_answer26.html#login">original message</a> 
	referred to in this thread was sent by Cesar Augusto Kant Grossmann.</p>

<hr width="40%" align="center">

<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
	align="left" border="0">LinuxGazette Mar 1998: xdm Login doesn't! </H3>

<p><strong>From Milton L. Hankins on Mon, 30 Mar 1998 </strong></p>

<p><strong>
Actually, it sounds like Cesar's <tt>.xsession</tt> script is exiting before he
performs his usual "logout" action.</strong></p>

<p><strong>Cesar, does the user account have a <tt>.xsession</tt> file in the 
home directory?  If not, create one.  The simplest one would contain the
line "<tt>fvwm</tt>" or "<tt>xterm</tt>".</strong></p>

<blockquote><img src="../gx/dennis/bbub.gif" width="50" height="28" alt="(!)"
	align="left" border="0">Milton,
<br><br>
 Wouldn't this show up as a problem when he ran '<tt>startx</tt>' as well?

<br><br>
 As I've said before my practical grasp of X is pretty weak -- but
 I do understand the concept of a '<em>session manager</em>.'  Most X clients
 in your start up script are started in the background (with trailing 
 ampersand in shell script syntax).  However one (usually the last
 item executed by the script) must be started in the "foreground."  
 This client, whether it is a window managers, an '<tt>xterm</tt>' or even 
'<tt>xclock</tt>'
 will be the "session manager."  When you exit or kill the session manager
 the X server takes that as a hint to close down (returning you to a shell
 prompt if you used '<tt>startx</tt>' or to an <tt>xdm</tt> login screen 
if you started the session graphically.
<br><br>

 Can you clarify the differences between <tt>~/.xsession</tt> and 
 <tt>~/.Xclients</tt> (mine are just symlinked together)?
</blockquote>

<hr width="40%" align="center">

<H3><img src="../gx/dennis/qbub.gif" alt="(?)" width="50" height="28"
	align="left" border="0">Milton Replied...</H3>

<p><strong>From Jim Dennis on Mon, Mar 30, 1998</strong></p>

<p><strong>Wouldn't this show up as a problem when he ran '<tt>startx</tt>' 
as well?</strong></p>


<blockquote><img src="../gx/dennis/bbub.gif" width="50" height="28" alt="(!)"
	align="left" border="0">Not necessarily, Jim.  It all depends on the 
system scripts.   Traditionally, <tt>startx</tt> uses "<tt>~/.xinitrc</tt>" 
and <tt>xdm</tt> uses "<tt>~./xsession</tt>". 

<br><br>
It sounded like he was only having problems as a "normal user" -- that
root was OK.  You obviously know a lot more about <tt>xdmi</tt> than I do, 
but I went on a hunch that his <tt>xdm</tt> setup was fine. 
</blockquote>

<p><strong><img src="../gx/dennis/qbub.gif" width="50" height="28" alt="(?)"
	align="left" border="0">As I've said before my practical grasp of 
X is pretty weak -- but I do understand the concept of a '<em>session 
manager</em>.'  Most X clients in your start up script are started in the 
background (with trailing ampersand in shell script syntax).  However one 
(usually the last item executed by the script) must be started in the 
"foreground."  </strong></p>

<blockquote><img src="../gx/dennis/bbub.gif" width="50" height="28" alt="(!)"
	align="left" border="0">Right.  (The very fact that you know the 
difference between an X client and an X server means you know something.) 
<font color="#008F00">:)</font> That's what I meant by "usual `logout' 
action."  Most people either logout of a special xterm or exit the window 
manager. </blockquote>


<p><strong><img src="../gx/dennis/qbub.gif" width="50" height="28" alt="(?)"
	align="left" border="0">Can you clarify the differences between 
<tt>~/.xsession</tt> and <tt>~/.Xclients</tt> (mine are just symlinked 
together)?</strong></p>

<blockquote><img src="../gx/dennis/bbub.gif" width="50" height="28" alt="(!)"
	align="left" border="0">I honestly have no idea.  That's pretty 
strange.  Usually, I link <tt>.xsession</tt> and <tt>.xinitrc</tt> together.  
That way, X looks the same whether I use <tt>xdm</tt> or <tt>startx</tt>.
</blockquote>

<!--================================================================-->
<P> <hr> <P>
<H5 align="center"><a href="http://www.linuxgazette.com/ssc.copying.html"
	>Copyright &copy;</a> 1998, James T. Dennis <BR>
Published in <I>Linux Gazette</I> Issue 28 May 1998</H5>
<P> <hr> <P>
<!--================================================================-->
<A HREF="./lg_toc28.html"><IMG SRC="../gx/indexnew.gif" 
	ALT="[ Table Of Contents ]"></A> 
<A HREF="../index.html"><IMG SRC="../gx/homenew.gif" 
	ALT="[ Front Page ]"></A>
<A HREF="lg_bytes28.html"><IMG SRC="../gx/back2.gif" 
	ALT="[ Back ]"></A>
<A HREF="./pizzi.html"><IMG SRC="../gx/fwd.gif" 
	ALT="[ Next ]"></A>

<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<H1><font color="maroon">BigBen: Network Monitor Utility</font></H1>
<H4>By <a href="mailto:cpizzi@bigfoot.com">Cesare Pizzi</a></H4>
</center>
<P> <HR> <P>  
BigBen is a collection of three Perl scripts useful to monitor a Unix 
network. The development is not completed, and there are a lot of things
to add and improve, but I think that the skeleton of the application is 
working quite fine.
The program was built on a Linux box, but I think it will run fine also
on other UNIX environment, with a perl interpreter
<P>
BigBen is made of three scripts:
<ul>
<li>LittleBen:
Client program. This program collect the info on a system and
send all the data to the server
<li>BigBen:
Server program. Accept the connections from the clients and save
the data in the proper place/format
<li>Weber:
Output formatter. This script collect the data files saved by the
server, and creates an HTML output, so you can check your network
on a WEB browser
</ul>
As you can see, the use of this application is quite simple. All the three
scripts run as daemons. BigBen and Weber run on the same system, and the 
LittleBen client can be installed on several systems (all the systems you
need to check).
<P>
The check logic of Weber is the following:
<ul>
<li>when it starts for the first time, it checks for data file sent by the
clients. The data file will be unavailable, because it's easy that the
clients start at the same time, so Weber set an initial Warning message
<li>if at the second check, it does not find a data file, not it set an 
error flag (may be that the client is not started, or has some problems)
<li>after each pause, it checks the file and display the infos in them. An
error is set if it does not find the data file
</ul>
To avoid problem due to the timings between the client and the server
(both wait for a while before check), it's better to start the client before.
<P>
Now, we can analyze the scripts in detail.
<P> <HR> <P> 
<H3>LittleBen</H3> 
<P> <HR> <P> 
LittleBen is the client application: it runs as a daemon, and it is 
configurable through the configuration file (see the LittleBen.conf sample
file). In this file you can put the processes you want to monitor, and the
Min and Max values you want for these processes; if these values are out
of the border you set, the client send an ERROR or a WARNING to the server.
See the README file to have a detailed description and an example of this file.
<P> <HR> <P> 
<H3>BigBen</H3> 
<P> <HR> <P> 
This is the server script. Once installed, it listens on a port (default 4455)
for the data sent out by the clients. 
When the packet is received, it saves the data in the proper directory, where
the Weber will get the data.
See the README file to have a detailed description of the options available.
<P> <HR> <P> 
<H3>Weber</H3> 
<P> <HR> <P> 
The Weber gets the data saved by the BigBen, and creates a couple of HTML
pages, so you can check the data with your HTML browser.
The HTML file created, is able to auto-reload itself, so you will get the
last date in each moment.
The Weber and the BigBen will run on the same system.
<P>
Weber needs a configuration file. See the README file to have more info about
the command line options and the configuration file. The scripts and README
are in a <A HREF="./pizzi.tgz">gzipped tar file </A>for download
purposes.
<P>
*** Please report any bug, enhancement request, comment to the author:<BR> 
*** Cesare Pizzi <BR> 
*** cpizzi@bigfoot.com <BR> 
*** www.geocities.com/SiliconValley/Pines/8305 <BR> 

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1998, Casare Pizzi <BR> 
Published in Issue 28 of <i>Linux Gazette</i>, May 1998</H5></center>

<!--===================================================================-->
<P> <hr> <P> 
<A HREF="./lg_toc28.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif" 
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./lg_answer28.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./hamilton.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P> 

<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<h1><font color="maroon">Building an Audio CD Player, Part 1</font></h1>
<H4>By <a href="mailto:michael@actrix.gen.nz">Michael Hamilton</a></H4>
</center>
<P> <HR> <P>  

This article outlines my recent experiences writing Jcd, a Java CD
player. It is aimed at people who have browsed through an
introductory Java or C++ text and feel they know their way around
either language. While reading the article, I think it
would be a good idea to have a Java textbook on hand to fill in any items
I might gloss over. 
<p>
I have been experimenting with Java in order to evaluate its
usefulness as a general purpose language. One of the things I've written
is a GUI CD player with a track-title database. I chose to write a
CD player because it requires the use of a large part of the language
and its associated libraries: graphical user interfaces, threads,
file I/O sockets, text parsing, image manipulation, data entry forms
and native C calls to interface to the kernel's CD drivers. Since
this is one of my initial attempts at using Java, you shouldn't
assume everything you read below is authoritative or definitive--I'm
just reporting what worked for me.
<p><HR> <P> 
<h3>Features of Jcd</h3>
<p><HR> <P> 
Jcd has the following features:
<p>
<ul>
  <li> 	Play/Stop/Pause/Previous/Next/Eject/Volume control panel
  <li> 	Track/Index direct access
  <li> 	Track, index, number-of-tracks, track-time, track-remaining,
disc-remaining displays
  <li> 	Program play, continuous/single play, shuffle play
  <li> 	Xmcd CDDB artist, disc, track title look up and display
  <li> 	Xmcd CDDB database format and protocols courtesy of Ti Kan and 
Steve Scherf (<A
HREF="http://sunsite.unc.edu/~cddb/xmcd/">http://sunsite.unc.edu/~cddb/xmcd/</A>)
  <li> 	Optional remote CDDB server look up
  <li> 	Autosave of remote look ups to local cache
  <li> 	GUI window for creating/editing artist/title/track local cache entries
  <li> 	Icon button widgets, e.g., play button, pause button light up when active
  <li> 	Penguin button (a built-in plug for Linux)
  <li> 	Multi-threaded, e.g., the controls and display run in a 
separate thread to the database look ups to prevent remote database
look ups from blocking other activities
</ul>
The finished system is shown here:
<p> <center>
<img src="./gx/hamilton/figure1.gif"></center>
<p><HR> <P> 
<h3>Java Application Programming on Linux</h3>
<P> <HR> <P> 
Jcd is a Java application, not a Java applet. That is, it
can't be run in the secure sand box of a Web browser. This is because
Jcd reads and writes files in your local file system, and because
it requires a native-machine-language driver specific to your
operating system and processor architecture. In the future it 
may be possible to make Jcd an Applet, as Sun is working on standards
for controlled accessed to local files and for portable
access to hardware such as CD audio drives. Until then, Jcd must be
run in a Java run-time environment, such as that provided by Sun's
Java Development Kit. I developed Jcd using the
Linux Java Porting Project's port of the Java Development Kit 1.0.2
and 1.1.1. You can find out how to obtain the JDK for Linux by
pointing your browser at <A
HREF="http://java.blackdown.org/">http://java.blackdown.org/</A>.
<p>
This article will lead you through the code of a cut-down version of
Jcd, much as it appeared in the early stages of its development. At the
end of the article, we will have a working command-line-driven player
that can be built upon to create a GUI player such as Jcd.
<p>
Linux supports a set of Sun <b>ioctl</b> commands--device I/O
control calls to the
kernel, for controlling audio CD operations. The kernel's CD-ROM
ioctl interface is defined in the /usr/include/linux/cdrom.h file. This
interface provides a set of calls for functions such as play, stop,
pause, cd-info and others. The Java interface described below
closely parallels the functions the kernel provides.
<p>
<A HREF="./hamilton1.html">Listing 1</A> 
shows a test rig for testing my Java interface.
Ignoring the details for the moment, you can see in lines 26
through 71 that I have a loop reading from <b>cmd_stream</b>. On lines 31
through 65, I check the command read for a keyword. If I match a
keyword, I call the appropriate <b>cd_drive</b> operation.
<p>
At line 1 I declare that Jcd.java is
part of the package Jcd; that is, all classes 
defined in Jcd.java are part of the package Jcd. This serves to
keep the Jcd classes together and grants them 
mutual access to each other's data and methods, except where the data
and methods are explicitly declared private. All classes outside the
package can only access the data and methods that are explicitly
declared public. The Java run-time environment locates the Jcd
package by looking for a Jcd subdirectory in the directories listed in
the CLASSPATH environment variable. While developing Jcd, I put my
working directory . (dot) in the CLASSPATH and created a dummy Jcd
subdirectory by using a symbolic link pointing back to my working
directory:
<p>
<pre>
ln -s . Jcd
</pre>
Later, when I installed the finished Jcd, I put the Jcd package
in the /usr/local/lib/jcd/Jcd directory and added that directory
to my CLASSPATH.
<p>
On lines 8 and 10 of 
<A HREF="./hamilton1.html">Listing 1</A>,
I import the standard Java I/O
classes--a wild card is used to get them all--and I import the
Jcd.Drive class that calls the kernel interface. When referring to
the Drive class I have used the package qualifier Jcd, as well
as the class name Drive.
<p>
At line 14 I declare the <b>main</b> method. The main method is static,
which makes it a class method, so it doesn't belong to any
particular Jcd instance; instead, it belongs to the class as a whole. This is
the method that will be invoked when I run Jcd by typing: 
<p>
<pre>
java Jcd.Jcd
</pre>
The Java loader looks for a static method called main in the
class you tell it to run. One implication of this, is that every
class you write can have its own test rig by including a static main
method in its implementation.
<p>
At lines 16 through 18, I declare cd_drive and assign it to a new
instance of the Drive object. I pass both the drive device name,
/dev/cdrom, and the location of the compiled C shared object module,
Jcd_Drive.so, to the object constructor so that the object can
initialize itself appropriately.
<p>
At line 19 I wrap a DataInputStream object around the System.in
standard input object. DataInputStream is a filter that allows
me to read a byte stream as strings terminated by newlines. The
idea of layering filters over data streams to add new processing
functionality is very prominent in the Java I/O classes.
<p>
The only remaining unexplained pieces of code in 
<A HREF="./hamilton1.html">Listing 1</A> are the
<i>try-catch</i> statements that surround most of the code. In Java, errors
are signalled by throwing exceptions which, if un-caught, cause the
program to issue a diagnostic error. These ``Thowables'' are divided
into two sub-classes: Errors, major problems that will probably
result in a program crash (such as running out of memory); and
Exceptions, problems that you are expected to be able to
handle inside the program (such as reading past end-of-file). Any
action that can result in an Exception has to be handled in one of two
ways: the method in which it can occur must either have a try-catch
statement that handles the exception, or the method must declare that
it can cause the exception, which passes the buck to callers of the
method. Because this is enforced by the compiler, it's a very nice
mechanism for ensuring that exceptions do not go unconsidered by the
programmer.
<p>
In 
<A HREF="./hamilton1.html">Listing 1</A>,
the System.in class can throw an IOException, such as
end-of-file. The Jcd main() method either has to catch each
IOException or pass it on. In this case, my empty catch body will
effectively ignore I/O errors. After catching an exception, execution
continues from the catch statement. The cd_drive object that the main
method uses to control the CD-ROM can also return a DriveException. The main
method has to catch these too--I just print the reason for the
exception and let the program continue.
<p><HR> <P> 
<h3>Jcd Design Details</h3>
<p><HR> <P> 
Now look at Drive.java <A HREF="./hamilton2.html">Listing 2</A>. This file declares the Java
to C interface as a set of body-less native methods on lines 69
through 138. These native methods are implemented in the
Jcd_Drive_ix86-Linux.c C module (<A HREF="./hamilton4.html">Listing 4</A>). The native methods in
<A HREF="./hamilton2.html">Listing 2</A>
are augmented by some Java methods that add additional
operations to make life simpler for the users of the class--for
example on lines 139 to 152, there are several variations of the
<b>play()</b> method to simplify the most common types of requests.
<p>
On lines 13 through 35 of <A HREF="./hamilton2.html">Listing 2</A> the Drive class defines static
class constants for all the instances of the Drive object to share.
The keyword <i>final</i> means a value is constant. There seems to be a
convention amongst Java programmers for representing constants in
uppercase. All the constants in the Drive class are related to the
kernel interface. For example, the frames per second defines the
address unit used by CD-ROM drives; the lead out track number defined
on line 18 is a dummy track that contains info on the total playing
time of the CD.
<p>
Lines 35 through 51 define data unique to each Drive object that is
created. The C module that carries out the kernel calls will access and
update some of this data.
<p>
Most of the methods can throw a DriveException. DriveException is
defined on line 157, and below it a series of sub-classes
define the full range of exceptions that a DriveException may
actually represent. The bodies of these exception classes are almost
empty because the actual processing is passed on to the super
(parent) class to handle which is ultimately the standard Java
library's Exception class. The super-class constructors accept calls
with and without an explanation string, so I've defined both. It
would be nice if the official Java language supported default values
for arguments, so that the excessive repetition of nearly identical
constructors could be avoided (one of the features of the Python
language that I miss the most).
<p>
All of my native methods are declared to be ``synchronized''. Making the
methods synchronized gives each method exclusive access to the Drive when
it is called. This prevents a multi-threaded application from issuing
multiple conflicting (or overlapping) calls to the kernel. Synchronized
methods carry more overhead than non-synchronized ones, but in this
case we are unlikely to request more than a few CD operations per second,
so we needn't worry about the overhead.
<p>
Having defined the interface, I used the <b>javah</b> utility from Sun's Java
Development Kit to help me generate the code for the C module. I used
javah to generate the C header file, Jcd_Drive.h, and the C stubs file,
Jcd_Drive.c.
<p>
<pre>
javah Jcd.Drive
javah -stubs Jcd.Drive
</pre>
@lay:Place 2397l3 around here
<p>
The Jcd_Drive.h file contains data definitions and function prototypes
that define the native C interface. The generated header
file is a little messy, so a more readable version of it is presented in
<A HREF="./hamilton3.html">Listing 3</A>.
It contains a define for each of the final static data
items in the Drive class. Note that javah has used the package name
(Jcd) and class name (Drive) to form the Jcd_Drive prefix for the
native data and function names.
<p>
The Jcd_Drive.c that javah generates provides code that handles the
messy details of taking the data Java passes and making it more palatable
before passing it on to the actual C routines. Aside from compiling
this file and including its object with my own code, I pretty much
ignore its existence. All I have to do is implement the interface
defined in Jcd_Drive.h, I don't need to know which part Jcd_Drive.c
plays in the process.
<p><HR> <P> 
<h3>Integrating Java with C</h3>
<p><HR> <P> 
For me, the ease with which Java and C can be integrated is one of
Java's biggest selling points. I know there's much talk about 
sticking to pure Java, but I'm interested in using Java as a general 
purpose language. I'm sure I'll still need to fall back on C both 
for reasons of performance, and in order to integrate Java into existing 
systems.
If I can write 90% of my systems code in Java and 10% in a well-defined
C module, that may still make for good portability. For example, after
writing a CD-ROM module in C for Linux, it only took me a few hours to
create another C module for SGI IRIX. The Java code in my final
player interrogates its environment to find out which operating system and
architecture it's running on and then dynamically loads the
appropriate native shared object module.
<p>
On line 16 of <A HREF="./hamilton3.html">Listing 3</A>, the Jcd_Drive.h file defines the
ClassJcd_Drive structure that the C run-time environment and Java
run-time environments can use to gain mutual access to data belonging
to Drive objects. The raw data structure has to be augmented with
some Java-environment bookkeeping by the
<tt>HandleTo(Jcd_Drive)</tt> macro
call which creates a new structure called HJcd_Drive on line 26. The C
functions that make up the native interface are always passed
HJcd_Drive as their first argument. The prototypes for these
functions are listed on lines 28 through 45.
<p>
<A HREF="./hamilton4.html">Listing 4</A> 
details Jcd_Drive_ix86-Linux.c, the Linux Intel 
version of the C module. I've used a methodical architecture/OS naming 
convention based on properties I can retrieve from the Java runtime
environment. This allows Jcd to select and locate the appropriate 
native module for each platform at runtime--for the cut down
version of Jcd, I've just hard-coded the module (see line 17 of 
<A HREF="./hamilton1.html">Listing 1</A>).
<p>
Most of the code in 
<A HREF="./hamilton4.html">Listing 4</A> 
is concerned with making the kernel
ioctl calls. Before discussing these calls, I'll get the Java to C native
call side of the equation squared away. Looking at a simple case
first: on lines 181 through 189 of 
<A HREF="./hamilton4.html">Listing 4</A>,
the Jcd_Drive_status()
C function implements the Jcd native <b>status()</b> method (from 
<A HREF="./hamilton2.html">Listing 2</A> 
line 122). When called, the status() function is passed the
HJcd_Drive struct and can access the ClassJcd_Drive it contains by
using the <b>unhand()</b> function. It first checks a C file descriptor to
see if the drive has previously been opened successfully. If the file
descriptor is <tt>-1</tt>, the drive isn't currently 
assigned, so the
function just returns the last known status (which was
stored in the ClassJcd_Drive structure). Otherwise, if the file
descriptor is valid, the new_status() function is called to retrieve a
new status value into the ClassJcd_Drive structure.
<p>
A slightly more complex case is seen on lines 217
to 234, where the <b>Jcd_Drive_trackAddress()</b> function implements the Jcd
native <b>trackAddress()</b> method. The trackAddress() method returns the
address of a track as the number of 75ths of a second from the start
of the CD. The function is passed two parameters: the HJcd_Drive
structure that contains the Java object's data and the track number
in the form of a long integer. The integer is declared as Java_Int,
but as you can see on line 39, this is just my way of getting around
the differences between the Kaffe and Sun Java compilers--looks like
native call implementations can vary a bit between compilers--
hopefully this is something that will be standardized. In fact
under JDK 1.1.1, my Java_Int should be defined as <tt>int32_t</tt>.
<p>
The trackAddress function sets up a <tt>cdrom_tocentry</tt> structure (defined
in /usr/include/linux/cdrom.h) for passing to a kernel ioctl program. In
Unix/Linux, ioctl calls provide access to a variety of kernel services
related to devices. The device the ioctl is to work on is determined
by the file descriptor passed as its first parameter--in Unix all
devices can usually be accessed as special files resident in /dev.
The kind of service an ioctl performs is determined by its second
parameter. In our case we are doing a <tt>CDROMREADTOCENTRY</tt>, i.e., CD-ROM read
table of contents entry. The third parameter to an ioctl is usually
the address of some structure specific to that particular ioctl call.
In this case the third parameter, the <tt>cdrom_tocentry</tt> 
structure, is initialized to contain the track number, and the kernel
will copy the result into fields within the same structure.
<p>
If an ioctl call goes wrong, perhaps due to a drive fault or 
to the drive being empty, the ioctl call returns <tt>-1</tt>. If
this happens, we need to raise a Java exception in the calling Java
module. Line 228 accomplishes this by calling SignalError and
passing it the text name of the exception as the second parameter--in
this case, one of the exceptions declared in 
<A HREF="./hamilton2.html">Listing 2</A>.
The
first parameter to SignalError is used to control the environment in
which the error handling will occur (I left it to default). The last
parameter is any extra text explanation that we may wish to provide--in
this case I'm simply translating the C error number to a text
string. It's important to note that SignalError sets up an exception
that will be processed when the C error routine returns. On returning
to the calling Java routine, only the last of any SignalError calls
will have any effect, i.e., you can't communicate multiple errors via
multiple SignalError calls in one C call.
<p>
If the ioctl call succeeds, we take the address the kernel returned in
<tt>tocentry.cdte_addr.msf</tt> and translate it from minute-second frame to
an integer number of 75ths of a second. This value is returned as
the result of the native method call on line 231.
<p>
As we have seen above, passing numerical data backward and forward
between Java and C is pretty easy. Character strings are almost
as easy, but do require conversion. These two functions do the
necessary conversions:
<p>
<pre>
Hjava_lang_String *makeJavaString(char *from,
	int len);
char *javaString2CString(Hjava_lang_String *from, char *to, int max_len);
</pre>
The function <b>Jcd_Drive_cddbID()</b> on lines 263 to 279 computes the
CDDB ID for a CD-ROM and uses <b>makeJavaString()</b> to convert it to a Java
string before returning it (CDDB is the database format used by the
Xmcd CD player). On lines 64 and 65 the <b>take_player()</b> function uses
<b>javaString2CString()</b> to make a C version of the Java string containing
the device name of the CD-ROM.
<p><HR> <P> 
<h3>Practical Design Issues</h3>
<p><HR> <P> 
If you look at almost any C routine in 
<A HREF="./hamilton4.html">Listing 4</A>, you will see that the
C code is constantly checking things like whether the drive is open or
not. I'm trying to avoid monopolizing the drive. This is especially
important on ejecting the drive tray. When the user uses Jcd to eject
the tray, I relinquish the the drive by closing it and won't access it
again until the user issues another Jcd request. This allows
the user to use the drive for other purposes without leaving Jcd. It
also prevents a problem on my system--if I keep polling the
drive status after an eject, the drive will immediately close again.
There's quite a bit of code that attempts to tip-toe around issues
such as this one.
<p>
I also found that with my particular CD-ROM, if I issue an
inappropriate pause or resume (for example, pause when the drive
isn't playing anything), the kernel driver may become confused, and
further ioctl calls to the drive will hang indefinitely. Once this
happens the only way to get the drive to respond is to reboot. The
pause/resume code on Lines 359 to 386 is careful to check before
proceeding.
<p>
I also found that some kernel CD-ROM drivers won't respond to a play
command while they are already playing. That's why the STOP_PLAY
flag is defined on line 34 in 
<A HREF="./hamilton2.html">Listing 2</A>.
<p>
You would think that CDs would include an ID unique to the album's
artist and title, and perhaps even artist and track information--well,
apparently, this isn't so. As a result, the writers of CD-players
such as Xcd and my own Jcd use a hash-key ID computed from the
lengths of the CDs and the lengths of their tracks. The hash key is
used to look up a database of CD artists, titles and track-titles.
There is a problem with using track lengths to create an ID. For an
artist/title album there may be many pressings (if that's the right
word) manufactured in different counties and states, and the different
pressings may have slightly different lead-in/lead-out times and 
time intervals between tracks. The
ID is constructed so that all approximate matches can be identified--
if there isn't a unique match, the GUI interface of Jcd will present a
list of possibilities.
<p><HR> <P> 
<h3>Making the Makefile</h3>
<p><HR> <P> 
The final thing I'd like to discuss is the Makefile that builds this
lite version of Jcd. Inter-module/inter-class dependencies in Java
tend to depend more on whether a class has changed its interface.
Just because a source file has been modified, it does not necessarily
follow that defined interfaces within it have changed. If you
construct a Makefile using file based inter-dependencies, you are going
to do a lot of needless re-compiles. I don't have a solution to
this problem--maybe a new kind of Java-aware build tool is necessary.
This aside, the Makefile in 
<A HREF="./hamilton5.html">Listing 5</A> does the job.
The CFLAGS option
<tt>-fPIC</tt> is very important; it makes the gcc compiler 
generate position-independent code suitable for loading as a shared library. The
LDFLAGS option <tt>-shared</tt> is obvious enough--it tells the loader to
create a shared object. The LDFLAGS options <tt>-Wl,-soname,Jcd_Drive</tt>
passes the <tt>-soname</tt> option to the linker so that the shared object will
be named Jcd_Drive. Otherwise, the linker will include its path
in its name, and we may get a mismatch on loading a module called
Jcd_Drive. The Makefile adds a new default rule--a <i>.class</i> file
depends on a corresponding <i>.java</i> file. The Makefile installs the
native shared library in an appropriate directory structure to support
multiple architectures and operating systems.
<p>
That's about all you need to know to create a simple CD player. My
next article will examine the Abstract Windowing Toolkit in order to
add a GUI and multi-threading in order to add programmed play.
<p><HR> <P> 
<h3>Resources</h3>
<p><HR> <P> 
ftp://sunsite.unc.edu/pub/Linux/apps/sound/cdrom/:
The sunsite directory where the latest Jcd can be found.
Currently this would be jcd-1.1.tar.gz
<p>
<A
HREF="http://www.actrix.gen.nz/users/michael/">http://www.actrix.gen.nz/users/michael/</A>:
Patches or news concerning Jcd can be found on my home page.
<p>
<A HREF="http://www.blackdown.org/">http://www.blackdown.org/</A>: The Linux Java site.
<p>
<i>Java in a Nutshell</i>, David Flanagan,
O'Reilly & Associates, 1996.
Very nice introduction, with enough detail to build things like Jcd if 
you team it up with Sun's on-line documentation. By the time you read
this article, the second edition will be out--you can use O'Reilly's 
web page, <A HREF="http://www.ora.com/">http://www.ora.com/</A>, to check on its status.
<p>
<i>The Java Language Specification</i>, Gosling, Joy, Steele,
Addison-Wesley 1996.
Good reference on the language and class libraries but doesn't cover
the Abstract Windowing Toolkit.
<p>
InfoMagic Java CD-ROM, Spring 1996:
I used this CD-ROM to gain access to Sun's HTML documentation via my
browser. This was my main source of AWT documentation.
You can't use the JDK on this CD, as it is out of date--but 
the documentation was still useful.
<p>
<i>The Java Class Libraries</i>, Chan and Lee, Addison-Wesley, 1997.
This book covers the AWT, but also repeats much of what I found in 
the previous two. This is the heaviest book I own--I think I
would prefer a lighter
AWT only reference. On brief inspection, <i>Java AWT Reference</i>,
John Zukowski, O'Reilly & Associates, 1997, looks like a good
possibility, and it covers the latest AWT too.
<p>
<i>Advanced Programming in the UNIX Environment</i>, W. Richard Stevens.
Great general reference on Unix programming and provides a good background for
ioctl basics and other stuff.
<p>
<A
HREF="http://sunsite.unc.edu/~cddb/xmcd/">http://sunsite.unc.edu/~cddb/xmcd/ </A>: 
The Xmcd and CDDB home page.
Ti Kan and Steve Scherf developed a Motif CD player, and its
CDDB database format has become a popular standard for free and
shareware CD players. They've defined a protocol for remote
look ups via TCP sockets.
<p>
All listings referred to in this article are available by
anonymous download in the file
<A HREF="./hamilton.tgz">hamilton.tgz</A>.
<p>
<p>
<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1998, Michael Hamilton <BR> 
Published in Issue 28 of <i>Linux Gazette</i>, May 1998</H5></center>

<!--===================================================================-->
<P> <hr> <P> 
<A HREF="./lg_toc28.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif" 
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./pizzi.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./hall.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P> 

<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<H1><font color="maroon">COMDEX/Spring 1998</font></H1>
<H4>By <a href="mailto:">Jon "maddog" Hall</a></H4>
</center>
<P> <HR> <P>  
<A HREF="./photos.html">COMDEX/Spring 1998 Photo Album</A> 
<P> <HR> <P>  

COMDEX in Chicago (April 20-23) was a titanic Linux hit. Vendors around us were astonished
by the attention and business we drew to our booths.
<p>
The Linux Pavilion had a huge sign overhead (thanks to Carlie Fairchild of
<i>Linux Journal</i> and Andy Wahtera, our new ZD/COMDEX representative), and
multiple large floor signs guided people entering COMDEX to the Linux
International Pavilion. We had a page on the COMDEX Web site, mention in
the Show Daily and other marketing ``aids''.
<p>
Linux International vendors with booths in the Pavilion were Caldera, S.u.S.E., InfoMagic
Inc., <i>Linux Journal</i> and Red Hat Software, Inc., a small number of vendors,
but big in heart.
<p>
While smaller in attendance than its Las Vegas cousin, COMDEX in Chicago
seemed to have a lot more end-user customers than the Las Vegas
show--not
really surprising when you consider Chicago is a cultural, economic and
manufacturing center. While Mr. Bill was still trying to boot Windows 98 and
have it stay up, the Linux International Pavilion was singing a sweet song.
Some people thought we had set a new world's record for ``longest line at
COMDEX''--the line where people waited to pick up a free Linux CD-ROM.
<p>
I accompanied Red Hat's ``booth gang'', Anna, Terry and
Mike, to visit the Argonne National Laboratory and Western Suburban Chicago
Linux Users Group (which thankfully is abbreviated AALUG and has its web site
at http://hydra.pns.anl.gov/lug/lug-main.html). The meeting was actually held
at the Fermi National Lab, which recently announced that Linux will be
officially supported at their laboratory and with their applications. Donnie
Barnes flew in from Durham, North Carolina to give a talk on Red Hat 5.0, and
to help give out Red Hat ``souvenirs''. I gave a brief talk at the end of
Donnie's epic speech.
<p>
After the meeting ended, Dr. G. P. Yeh, a physicist in the computing division,
invited us on a tour to see a particle-collider detector. Fermi is expanding
their collider, and the new one is expected to produce more than 20 times the
data of its predecessor. To expand the computing power to analyze and
store this data in real time with traditional methods would have been very
costly, so now Fermi is building a 1000-node Beowulf system to detect quarks
(and other little things). Dr. Yeh
told us that without Linux and the concept of Beowulf systems, the costs of supplying computer power for the next
generation of collider would be many times what they are now forecasting.
<p>
Our sincere thanks to Dan Yocum for setting up the meeting at Fermi and
advertising it, and to Dr. Yeh for showing us the collider.
<p>
On Wednesday S.u.S.E. gave a talk at the Chicagoland Linux Users Group, and
on Thursday I gave a two-hour ``ramble'' to the same group after COMDEX
was over. Then, tired and thirsty, most people retired to the Goose Island
Brewpub.
<p>
The Chicagoland Linux Users Group (http://clug.cc.uic.edu/) helped to staff
the Linux International booth, hand out flyers and line up user group
meetings. So ``thank you'' to Clyde Reichie, Don Weimann, Simon Epsteyn,
William Golembo, Gennagy ``Ugean'' Polishchuk, Long Huynh, Perry Mages, Viktorie
Navratilova, Ben Galliart, Richard Hinton, and especially to Dave Blondell,
the president, who organized the group and the schedules.
<p>
Linux International would like to encourage other Linux vendors to join us in
the next Linux Pavilion at COMDEX, whether it be in Las Vegas or Chicago. We
are definitely looking forward to the next COMDEX in the windy city. For
information on membership or other information about Linux International,
visit our web site, http://www.li.org/.

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1998, Jon "maddog" Hall <BR> 
Published in Issue 28 of <i>Linux Gazette</i>, May 1998</H5></center>

<!--===================================================================-->
<P> <hr> <P> 
<A HREF="./lg_toc28.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif" 
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./hamilton.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./journeay.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P> 

<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<H1><font color="maroon">Home Networking With Linux</font></H1>
<H4>By <a href="mailto:glen@silver-182.silverlink.net">Glen Journeay</a></H4>
</center>
<P> <HR> <P>  
<ol>
<li><A HREF="./journeay.html#home">Home Networking Arrives</A> 
<ul>
<li>Progress on the Home Front
<li>Advantages of Networks
<li>Problems With Networks
</ul>
<li><A HREF="./journeay.html#pick">Picking a Network Solution</A> 
<ul>
<li>Networking Choices
<li>Advantages of Unix
<li>Linux, the Unix for the GNU generation
</ul>
<li><A HREF="./journeay.html#linux">Linux Networking in Action</A> 
<ul>
<li>GNU General Public License - Cant Beat the Price
<li>Support - More Than You Paid For
<li>Supported Hardware, Supported Software
<li>Networking Support
<li>IP Masquerade (Yes, You Can Eat That Cake!)
<li>What Linux Isn't
</ul>
<li><A HREF="./journeay.html#catch">So, What's the Catch</A> 
<li><A HREF="./journeay.html#just">Just Do It!</A> 
<li><A HREF="./journeay.html#future">The Future</A> 
</ol>
<P><HR> <P> 
<A name="home"></A>
<H3>Home Networking Arrives</H3> 
<P> <HR> <P>
It seems it's inevitable that the norm of home PCs becomes not
just having one, but a few.  Often, we acquire more than one computer at
home when we upgrade from our existing system, or we get one for the kids to
use, or the spouse brings one home for work.  Somehow, we end up with
a bunch.
<P>
Dealing with the problems that arise with two or more computers is
our first exposure to being a network administrator.  Let's face it, as
soon as you have more than one, you're trying to move or share information
between them.  The kids want to download a game from the Internet from one
PC and install it on another.  You brought home a file from work, only to
realize that you don't have compatible software at home.  You're
constantly moving files on disk over the sneaker net to the PC downstairs
with the good printer. 
<P>
The best solution to these problems, a network, is generally
staring us in the face out a work, we just don't consider this solution to
be economical or practical for home use.  But, like the idea of having
more than one TV twenty years ago, the day when home networks and multiple
computers in the household will be common place is rapidly approaching. 
Even now, those among us with more money (lots more sometimes) are
exploring totally networked and interactive houses.  In new houses RJ-45
jacks for 10BaseT , and the 100 MHz 100BaseT Ethernet will be become as
common as the phone jacks they look like.
<P>
There are drawbacks to having a network at home.  First off, we
don't have a whole Information Systems (IS) department at home to support
us.  Also, the networking hardware and software can be expensive.  So the
advantages of networking have to out weigh the disadvantages of setup and
maintenance costs. 
<P> <HR> <P>
<A name="pick"></A> 
<H3>Picking A Network Solution</H3> 
<P> <HR> <P>
Let's examine some of the networking solutions available that are
appropriate for home networks.  It turns out that as the PC industry has
matured, the variety of networking options has increased.  These range
from simple plug-n-go printer sharing networks all the way to firewall
protected, server supported intranets.  Normally, the cost and
administration complexity rise as the power and functionality of the
network rise, and as always, the proper way to choose the network you need
is to determine the functions that you require.  Here's a matrix listing
normal network functions and solutions among the common operating home
operating systems and two non-common networking solutions - Linux and
Microsoft NT: 
<pre>
Linux	Unix	NT	Win95	Mac	OS/2
Printer services	x	x	x	x	x	x
File server/sharing	x	*	*	*	*	*
Mail server		x	*	*	*	-	-	
Domain Name Server	x	x	*	*	*	*
Web Server		x	x	*	*	*	*
Firewall		x	*	*	*	-	-
Routing			x	x	x	-	-	-
Gateway			x	x	x	-	-	-
Internet		x	x	x	x	x	x
Ethernet		x	x	x	x	x	x
Token Ring		x	*	*	*	*	*
Arcnet			x	*	*	*	*	*
Framerelay		x	*	*	-	-	-
ISDN			x	*	*	*	-	-	
PPP			x	x	x	x	x	x
SLIP			x	x	x	x	x	x
TCP/IP			x	x	x	x	x	x
X.25			x	*	*	*	*	*
IPX (Novell Netware)	x	x	x	x	*	*
SMB (Windows network)	x	x	x	x	*	*
Appletalk		x	*	*	*	x	*
NFS 			x	x	*	*	*	*
</pre>
<P> <HR> <P>
<pre>
x	Support in system as supplied
*	Support available as extra
-	Support not available
</pre>
Several home operating systems have been left off of the features
comparison chart, most of those have been superceeded by their
manufacturers.  If your favorite is missing, our apology, but discuss this
with the OEM since even they are urging you to switch.  Also, several
flavors of Unix have been covered under just the Unix heading with one
Unix variety, Linux, set aside. 
<P>
Linux since it's inception in 1991, has been different than the
other Unixes in several important ways.  Linux is a Unix clone written
from scratch by Linus Torvalds with assistance from a loosely-knit team of
developers on the Internet.  Linux is (and always will be), with very few
restrictions (see the GNU General Public License), free and has evolved
into a full fledged, high performance Unix originally based on the Intel
386, now available on more different computer architectures than any other
single operating system in the world.  It should be noted that Linux is
not the only freely distributed Unix variety, it just seems to be the best
supported one at this time.  It has good support available from the team
of developers on the Internet and very extensive documentation in the form
of HOWTO instructions, FAQs and Unix man pages, also available freely over
the Internet. Linux distributions, the operating system and all required
other software to have a fully functional system, are available for less
than $30 on a CDROM and for free when downloaded from FTP sites on the
Internet.  Linux network servers for home use actually require no more
than an old 386 in order to provide excellent performance for file
servers, print servers, mail servers and network gateways and routers. 
Linux is very robust.  Many Linux boxes around the world have not crashed
or been rebooted for over a year.  I do not think any Windows or Macintosh
product can make this claim. 
<P>
Windows NT, the networking oriented operating system offered by
Microsoft, has been available since 1991 too.  It has all of the above
features available for a price.  This system can easily cost over $1000 to
get almost all of the features listed above.  It has good support
available and as it begins to replace Unix as a major operating system on
the Internet it will mature into a powerful operating system available on
many different computer architectures.  It currently cannot perform all of
the networking functions that Unix or Linux can offer, but it will soon. 
Undoubtedly, NT with the continued support of Microsoft has a bright
future.
<P>
Unix, of course, is a well established networking power house.  In
fact, Unix is the workhorse of the Internet.  All of the protocols and
services that the Internet were originally based on were developed on
Unix.  Because of the maturity of Unix, it has already gone through the
growing pains that are now plaguing NT, such as security and crash
problems.  Despite predictions for years that Unix use will decline, Unix
use continues to increase.  Until the advent of Linux, there was no
inexpensive, powerful Unix available for the home.  Unix operating systems
generally cost over $2000 for an operating system with the features listed
above.  And even now the relative complexity of Unix to most other
operating systems discourages wide use except at colleges and large
businesses.
<P>
Windows 95, the Macintosh OS and OS/2 also provide limited
networking out of the box, and with additional software can perform as
printer servers, file servers, mail servers, name servers, firewalls, and
web servers. None of these operating systems were designed originally to
support intensive networking services, but can do a good job for small
networks with the right software and hardware.  These operating systems
can be outfitted to perform almost all of the above features for about
$500, and the basic operating system is generally supplied with the PC.
Also these systems are very easy to setup and configure. 
<P>
Picking a home networking solution at the present time is largely
dependent upon your networking requirements and budget.  Obviously, most
of us cannot afford to spend large amounts of money unless a home business
is involved.  Luckily at this time one of most powerful is also the
cheapest.  Linux offers all of the power of Unix and as software
installation programs become more sophisticated, it's also becoming easier
(almost painless) to install and administer.  Indeed, if you have the
time, patience, disk space and an Internet link, you can download Linux
from several FTP sites located around the world.  With all this to offer,
you wonder why Linux is not being used more often, well, it is.  Linux is
now being used on over 8 million computers around the world, in over 40%
of the Internet Service Providers (ISPs) in the world, by large
corporations, and US government agencies including NASA which recently put
an experiment on the Space Shuttle run by a Linux computer. 
<P> <HR> <P>
<A name="linux"></A> 
<H3>Linux Networking in Action</H3> 
<P> <HR> <P>
Assuming that you do decide to set up a home network server using
Linux, the first step is to find PC hardware that can be used to run the
server.  This should not present a problem since Linux supports just about
any PC configuration made within the last five years, and as stated above,
an older 386 PC can easily support a home network of five or more PCs. 
Linux runs on any 386/486/586/Pentium class processor (including AMD,
Cyrix), Dec Alpha, PowerPC (MkLinux for Apple), M68xxx (Amiga, Atari), Sun
SPARC and MIPS.  A minimum system based on a 386 requires 4 Meg of RAM
(more is better) and 50 Meg of disk space (200 Meg is better).  While
Linux can be run on a 386/4MB/20MB system, this system will be very slow. 
Eight MB of memory and 50 MB of disk space is a more realistic minimum for
a useful system.  If this describes the PC you've been using as a door
stop for the last few years, then dust it off, because it'll work fine. 
Many for the more popular Linux distributions along with manuals are now
available at bookstores. 
<P>
Don't worry if you have both Macintoshs and IBM PCs to support at
home.  Linux happily coexists with all of the most popular home operating
systems.  Linux knows the networking protocols and file systems native to
a multitude of different operating systems on a network: MS DOS, Windows
for Workgroups, Win95, Win NT, Mac OS, OS/2, Novell, Amiga, VAX and Unix. 
Details to implement support for these network support is provided by
step-by-step instructions written in HOWTO documents available on the
Internet. 
<P>
You will need to decide on the hardware link to use at home. 
Ethernet is probably the least expensive and even slow Ethernet (10Mbps) 
provides performance that exceeds most home requirements.  Fast Ethernet
(100Mbps) is rapidly becoming the business Ethernet standard and is still
reasonable affordable for home use.  Ethernet interface cards range in
price from $20 for an 8-bit ISA bus 10MHz card to $100 for a 100MHz card. 
10Base2 seems to be the home user Ethernet cable choice, but 10BaseT isn't
far behind.  With 10Base2 there is simply a coaxial cable "daisy chained"
between computers on the network.  The cable must not ever be discontinuous
and 50 ohm terminators are required at both ends of the daisy chain.  If
you're having a home built, getting a 10BaseT cable network installed is
easily done and by choosing Category 5 cable you can ensure an easy
upgrade path to Fast Ethernet.  Also the 50 ohm terminators are not
required.  A 10BaseT system of more than two interface cards will require
an Ethernet hub, and be warned that Category 5 cable is not cheap
($0.40/foot), so you'll pay more for a 10BaseT installation, but this a
system will last longer, and is more convenient than 10base2.  Linux
supports almost any network interface card, so your networking
requirements will probably depend more on the PCs at the other end of the
Ethernet cable. 
<P>
The Linux server could be the gateway to the Internet for all of
the rest of the PCs (or whatever) on your home network.  This will require
a connection to a local or national ISP which can provide an IP address
(preferably a static IP address) for the Linux gateway.  The Internet link
can be over a modem, ISDN, frame relay or ATM connection.  Linux will also
provide firewall services so that no one will be able to invade your home
network from the Internet connection.  Using a process called IP
masquerading, Linux will provide Internet access to all of the PCs on your
home network even with only one valid IP address and fully qualified
domain name.  This is done by making it appear that all of the TCP/IP
traffic coming from your home network is coming from the Linux PC.  When
traffic comes back for the other machines, the Linux PC will act like the
post office and sort all the network traffic back to the proper PC.  A
Linux machine can easily support two to five PCs surfing the Internet on a
28.8 modem link.  A Linux computer can provide mail server services
allowing you to create as many e-mail addresses as you require at home. 
All of the following can be done with ONLY ONE NORMAL PPP or SLIP link to
an Internet Service Provider.  There would be no extra charges for
additional e-mail services or subnetworks since all of these functions
would be performed at home by your Linux server.  Are you tired of having
only one PC on the Internet at home or paying for multiple Internet
accounts?  Then Linux is the answer. 
<P>
The Linux PC will provide printer and file server functions. 
Samba, a free software package, supports the SMB protocol used by Win95
and WFW.  Samba is used by many large companies on large company networks. 
Once configured, it interfaces into the Windows operating system and works
flawlessly allowing all of the network users to have individual and shared
disk space, plus allowing the user specify and use any printer on the
Linux server (or network printer for that matter).  Here again, as for all
of Linux, the software is available for free over the Internet, complete
with installation instructions and source code, and the software is being
actively developed and maintained by the original developer.  Linux has a
similar software package called Netatalk which provides similar support
for the Apple Localtalk protocol.  A tape backup system can be installed
in the Linux server to automatically back up your server. 
<P>
Linux provides all of the network services traditionally
associated with Unix.  Mail server service can be accomplished using using
sendmail or smail.  Any user on the Linux system can then have an e-mail
address.  The e-mail account can be accessed from the network PCs using an
e-mail client with the POP3 protocol, such as Eudora or Pegasus.  If your
network needs Domain Name Service, the named program can provide it.  If
you support more than on type of network or several small networks, the
Linux server can act as a gateway to tie all of the subnets together. 
Kernel routing rules can also be used to allow the server to act as a
firewall and control access to the internal network.  NFS, which stands
for Network File System, allows computers to mount disk drives on remote
machines.  NFS is also available with any Linux distribution, although
most other operating systems will require additional software to use NFS. 
The other network standard applications used on TCP/IP networks are always
available: FTP, telnet, remote shells, ping, etc.
<P>
A Linux server also provides a state-of-the-art web server and
Java development system.  Several web servers are available for running on
Linux with the Apache web server being the most popular.  Apache is now
the most popular web server on the Internet with over 45% of all web
servers running it.  The Java Development Kit is being ported from Sun
Microsystems and provides a Java compiler for developing Java
applications.  In fact support for Java can be complied into the Linux
operating system allowing the server to run native Java code.  This
feature is still being discussed for most operating systems.
<P> <HR> <P>
<A name="catch"></A> 
<H3>So, What's the Catch?</H3> 
<P> <HR> <P>
By now most of you are wondering what the catch is with running
Linux.  There's no real catch.  Linux has been developing and maturing at
a rate that far exceeds that of such well supported systems as Windows NT. 
For example, Windows NT just announced support for up to eight CPUs in a
multiprocessor system.  Linux now supports the Intel SMP multiprocessor
specification which provides support for up to twenty CPUs in a single
system.
<P>
With this power comes the complexity of the installation and
support.  In fact, installation and maintenance have been the subject of
many recent articles.  However, recent Linux distributions have made the
installation process much easier and provide tools to make system
administration easier.  Also helping the situation is that, unlike Windows
NT which is a relatively new operating system, Unix has been around for
decades, so there exists a larger base of trained system personnel for
Unix systems than there are for Windows NT.  The traditional support
market was with large installations at large companies in a workstation
environment, but it's now shifting to support the use of Unix in smaller
businesses.  Since UNIX is such a strait forward operating system to
develop software in, many young and eager software developers and
hobbiests are turning to Linux for an inexpensive development platform. 
These young people are an excellent source of system administration
knowledge, and most of them can be contacted for free advise on news
groups on the Internet. 
<P>
Linux, like other Unixes, has not previously been an operating
system commonly used at home.  Many of the applications developed for Unix
systems are available on Linux.  This was traditionally the scientific
workstation area, and the quality of the applications reflects this. 
Unfortunately, Linux suffers from a shortage of applications oriented
towards the average computer consumer.  So, even though a Linux makes for
an excellent server,and it is also an excellent workstation, running the
latest release of the free graphical environment, X windows, it cannot run
the latest version of Office 97 (although many Windows applications can be
run using the WABI Windows emulator available from Caldera software or the
Wine windows emulator). There are several software companies (and others)
now developing and selling consumer applications to fill this gap.
<P> <HR> <P>
<A name="just"></A> 
<H3>Just Do It</H3> 
<P> <HR> <P>
Linux is an operating system with minimal initial cost, yet
powerful enough to easily handle a home network or small business. 
Especially nice is that the older PC hardware which is normally retired
can be very effectively used as a network server for a small network.
Local Linux users groups and computer stores provide excellent Linux
support.  The support available from the Internet is also excellent.  It's
always comforting to receive an e-mail from the original developer of some
Linux software acknowledging that the bug you've reported has been fixed. 
<P> <HR> <P>
<A name="future"></A> 
<H3>The Future</H3> 
<P> <HR> <P>
In many ways, the advent and growth of Linux has gone hand-in-hand
with the growth of the Internet, and the work of Linus Torvalds and many
hard working developers.  Presently, Linux is an extremely capable
operating system available at an unbelievable price. Development of the
operating system to incorporate the latest hardware and software
developments is continuing at a rapid pace.  Although the future of the
Internet, the Personal Computer, and the Network Computer is unknowable,
it would seem that Linux will be part of that future.

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1998, Glen Journeay <BR> 
Published in Issue 28 of <i>Linux Gazette</i>, May 1998</H5></center>

<!--===================================================================-->
<P> <hr> <P> 
<A HREF="./lg_toc28.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif" 
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./hall.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./nielsen.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P> 

<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<h1><font color="maroon">IPmasquerading with Roadrunner or Second Ethernet
Card </font></H1>
<H4>By <a href="mailto:men2@auto.med.ohio-state.edu">Mark Nielsen</a></H4>
</center>
<P> <HR> <P>  

This is for Red Hat 5.0 systems. You can probably do a similar thing
for other linux systems. It is specifically configured for roadrunner in
Columbus, Ohio. If you live somewhere else, you will have to change 
anything with "columbus" in the configuration to something else. So far,
the only thing I see you have change is in /etc/resolv.conf, but I believe
that gets changed everytime you start rrhdcpcd.  
<p>
If you manage to pull this off, you are almost one step away from being
able to install a real network to the internet. Think about it, the
only difference between what we are doing here and a real network
connected
to the internet is that fact that your local intranet doesn't have real
valid ip addresses. If you had real valid ip addresses and your gateway
addressed stayed the same (it changes everytime you log into roadrunner)
then you would have a real fixed network connected to the internet. 
Do this, and you can actually say you have real networking experience.
This involves ethernet, DNS, ip forwarding, ip masquerading, ethernet
configuration, and a lot of other stuff. Good luck!
<p>
I also wish to thank a bunch of people at The Ohio State University for
their suggestions. I hope I was able to implement them correctly!
<p>
<ol>
<li> <A href="#ref">References</a>
<li>Install roadrunner first on a windows95
	computer and get the configuration files. You will need them.
<li> <a href="#short"> Short way</a>, if you have 2 3com 3c509 cards
	aet at irq=10, address 300, and irq=11,address=310. If this works,
	great, but otherwise do all the steps. 
<li> <a href="#first"> Setup your ethernet cards.</a>
<li> <A href="#dns">Setup your DNS</a> on the server. 
    Just use my examples. I have it setup for 9 computers
     if you need that many. Also, you must have the DNS
    rpm installed. Here is a 
<a
href="ftp://linux.med.ohio-state.edu/cdrom/RedHat/RPMS/caching-nameserver-1.1-4.noarch.rpm"> 
dns caching server</a> from my cheapbytes Redhat 5.0 cdrom. 

<li> <a href="#client">Setup your clients</a>. 
<li> <a href="#mas"> Compile kernel
	</a> for ip masquerading and ethernet card driver.
<li> <a href="#change"> Change various configuration</a> files. 
<li> <A href="#hook">Hook up your</a> hub, 
	gateway computer, and roadrunner. 
<li><a href="#connect">  Connect your gateway computer</a> to the internet
with roadrunner.
<li> <a href="#service"> Setting roadrunner</a> up as a service and
	making the first ethernet card use rrdhcpcd. 
<li><a href="#stopstart"> Starting and stopping</a> the roadrunner service
	and rrdhpcd.
<li> <a href="#other">Other things</a>. 
<li><a href="#index"> Index </a> of files. 
You should not have blank lines at the beginning of the files!

</ol>

<hr> 
<a name="ref"></a>
<h2>References </h2>
<ol>
<li><a href="ftp://ftp.fammed.ohio-state.edu/pub/rr/">
RoadRunner Columbus, OH Infosite</a>.  You can get roadrunner stuff
from here.  
	<li> <a
href="http://www.ssc.com/linux/LDP/HOWTO/mini/IP-Masquerade-3.html">
	HOWTO -- Compiling the Kernel for IP Masquerade Support</a>
	<li> <a href="http://www.tor.shaw.wave.ca/~ambrose/">
	Linux IP Masquerade Resource</a>
	<li><a href="http://www.indyramp.com/masq/"> 
	Linux IP Masquerading Web Site</a> 
	<li><a href="http://www.vortech.net/rrlinux/linux.htm"> 
	RoadRunner </a> help webpage. This is where I got my rrclientd
	program. 
	<li><a href="http://www.ssc.com/linux/LDP/HOWTO/DNS-HOWTO.html">
		DNS</a>. You almost don't need this if you use
		/etc/hosts file for your linux computers. For Windoze95
		and other operating systems you will have to. 
	<li><a
href="http://www.ssc.com/linux/LDP/HOWTO/Ethernet-HOWTO.html">
	Ethernet</a>. Howto set up your ethernet cards. 
	<li> <a
href="http://www.ssc.com/linux/LDP/HOWTO/Firewall-HOWTO.html">
	Firewall</a>. If you want to setup your firewall, it is
	trivial with this setup. 
	<li> <a
href="http://www.ssc.com/linux/LDP/HOWTO/NET-3-HOWTO.html">Networking-3</a>.
	How to do networking in general.  
	<li> <a
href="http://www.ssc.com/linux/LDP/HOWTO/BootPrompt-HOWTO.html">
	Bootprompt</a>. Howto modify what the kernel does at
	boottime. 
	<li> <a
href="http://www.ssc.com/linux/LDP/HOWTO/Kernel-HOWTO.html">
	Linux kernel </a>
	<li><a href="http://www.ssc.com/linux/LDP/HOWTO/mini/DHCPcd.html">
		DHCPcd mini howto</a>. I found this useful in answering
		some questions. 
</ol>

<hr>
<a name="short"></a>
<h2>Short way </h2>
THIS SHORT SECTION ONLY WORKS IF YOU MANAGE to get both ethernet cards
detected with modules. It will probably not work for most people. 
<p>
This will probably only work with RedHat 5.0. 
These steps you must not deviate from. For some reason, the installation
of redhat detected both ethernet cards properly and also the kernel
has ip forwarding in the kernel. It just needs to be enabled. Thus, 
Installing your own network is just a bunch of file copying and a couple
of commands and you are done. Be sure to install roadrunner with 
Windows95 first to get a configuration file. 
<p>
1. Install both ethernet cards before you install RedHat 5.0
The two ethernet cards I used were 3com 3c509.
The first had values of, irq=10, address=300 and the second had
irq=11, address=310.  
Also, when you install RedHat 5.0, go ahead and install it for a LAN
and have it autoprobe the ethernet cards. I cannot figure it out, but
when I installed redhat after installing these two ethernet cards, it
gets them both everytime, when before it wouldn't. When it comes close to
the end of the RedHat 5.0 installation, it will ask to to select which
services you want started on bootup. I turn off
sendmail and smb. I do this because it hanged on me at boot time. 
When you install RedHat 5.0, install everything. I did. You also shouldn't
have to change /etc/lilo.conf. 
<p>
2. You don't need to recompile the kernel. Just add this file to yours.
<br><a href="#index_lilo"> /etc/rc.d/rc.local</a>
<br>   Also, add the krb5.ini file in C:\NETMANAG for Windows95 to 
<br>        /etc/krb5.conf
<br>   Also, make a file called "/etc/rrpasswd" which only has one line on
it        which is the password for your roadrunner username. 
<p>
3. Execute the commands
<br>        mkdir /etc/dhcpc
<br>        unset noglob
<p>
4. Copy these files to their exact location
<br><a href="#index_network">        /etc/sysconfig/network</a>
<br><a href="#index_eth0">  /etc/sysconfig/network-scripts/ifcfg-eth0</a>
<br><a href="#index_eth1"> /etc/sysconfig/network-scripts/ifcfg-eth1</a>
<br><a href="#index_roadrunner">        /etc/rc.d/init.d/roadrunner</a>
<br><a href="#index_resolv">        /etc/dhcpc/resolv.conf</a>
<br>
<br><a href="#index_named">        /etc/named.conf</a>
<br><a href="#index_0">        /var/named/10.0.0</a>
<br><a href="#index_mark">        /var/named/mark.local</a>
<br><a href="#index_nlocal">        /var/named/named.local</a>
<br>
<br><a href="#index_hname">        /etc/HOSTNAME</a>
<br><a href="#index_hosts">        /etc/hosts</a>
<br>
<br><a href="#index_login2">        /root/Login2.bat</a>
<br><a href="#index_email">        /root/email.pl</a>
<br><a href="#index_cron2">        /root/cron2</a>   

<p>
5. Downlaod <a href="http://www.vortech.net/rrlinux/linux.htm">
rrclientd-1.3</a>, untar and ungzip it, and
 copy all the files in rrclientd-1.3/bin to /sbin. For example, if you
        are in rrclientd-1.3/bin, execute "cp * /sbin". I had the binaries
	when I got mine, so hopefully you won't have to compile them.
	Compiling with the new libraries Red Hat 
	has had has been tricky at times. 
<p> You may have to alter the /etc/services file as it says in the
README file for rrclientd-1.3. 
<p>
6.  Execute the commands
<br>	    mv /etc/resolv.conf /etc/resolv.conf_old	
<br>        ln -s /etc/dhcpc/resolv.conf /etc/resolv.conf
<br>        mv /sbin/dhcpcd /sbin/dhcpcd_old
<br>        mv /usr/sbin/dhcpcd /usr/sbin/dhcpcd_old
<br>        mv /usr/bin/rdate /usr/bin/rdate_old
<br>
<br>        ln -s /sbin/rdate /usr/bin/rdate
<br>        ln -s /sbin/rrdhcpcd /sbin/dhcpcd
<br>        ln -s /sbin/rrdhcpcd /usr/sbin/dhcpcd
<br>	    ln -s /sbin/rrclientd /usr/sbin/rrclientd
<br>
<br>	    cp /root/roadrunner /etc/rc.d/init.d  ## adding roadrunner
service
<br>        chkconfig --add roadrunner 
<br>
<br>        crontab /root/RR/cron2   ### resetting connection in a cron
job
<br>
<br>         ## Making it so we can execute the scripts with cron2
<br>        chmod 755 /root/Login2.bat /root/email.pl /etc/rc.d/init.d/roadrunner
<br>
<br>		### We only want root to see the password!
<br>        chmod 700 /etc/rrpasswd
<p>
7. In /etc/rc.d/init.d/roadrunner, make sure you change the username to
your username that you got for roadrunner. 
<p>
8. Follow the steps in <a href="#hook"> Hook up your hub, gateway
computer, and roadrunner</a> and if you have clients, follow the
steps in <a href="#client">Setup your clients </a>.
<p>
9. Now we need to attach dhpc to your first ethernet card. Follow
the instructions on part b of <a href="#partb"> Setting roadrunner up as a
service</a>.
<p>
10. Reboot your computer and you are done!
<p>
11. If you have any problems whatsoever, all I can say is, make sure your
timezone is correct and that your time is not ahead of the current time
by one second or behind it by more than 5 minutes, and if that doesn't
help, use the rest of the instructions I have. 
<p>


<hr>
<a name="first"></a>
<h2> First ethernet card </h2>

Install your first ethernet card as normal when you install the operating 
system. Give it a phony ip address you will not use on your network. 
For some reason, this ethernet card has to be the one connected to the
outside in order to get everything to work right with xwindows
forwarding. Now, let me state, I had to do this for only people coming
in. Going out, you should have no problem with the second ethernet card
being the one hooked up to roadrunner. However, I could never telnet in 
from work to my house and get an xwindows program to work when 
roadrunner was using the second ethernet card.  
The second ethernet card will be for the intranet. <p>

<p>
Also, setup your second ethernet card to NOT use the same irq and 
address of your first ethernet card. Traditionally, I use lower
irq and address for my first ethernet card compared to the second. Often
I use a dos computer using a dos program to set the values for the
ethernet cards. You will probably have to do this as well. 
<p>
Don't do anything yet with roadrunner or your rrdhcpcd program yet. 
Also, don't worry about the network configurations yet, we will take
care of it later. Also don't worry about the fact Linux probably
won't see the second ethernet card, we will take care of this later. 
Just make sure the ethernet cards don't use the same hardware values.
Also, if your second ethernet card has a lower irq and address than the
first, the computer might think it is the first, so I believe there
really is a reason why I make the first ethernet card with the lower
values. I ain't gonna test if I am wrong. You should just make sure
at least one ethernet card is detected. 
<p>

<hr>
<a name="dns"></a>
<h3> Setup your DNS server on your server connected to the
        internet.</h3> If you know what you are doing, you can
        change the configurations. Because I am silly, I choose
        the domain "mark.local". If "mark.local" every becomes an
official
        domain, then you will have to change every occurance of 
"mark.local"
        to something else in the files below. 

<ol>
        <li> Copy the following files to your server
        <ol>
                <li> <a href="#index_named">/etc/named.boot</a>
                <li> <a href="#index_resolv">
                        /etc/resolv.conf</a>
                <li> <a href="#index_mark">
                        /var/named/mark.local</a>
                <li> <a href="#index_0">
                        /var/named/10.0.0</a>
		<li> <a href="#index_nlocal">/var/named/named.local</a>
		<li> <a href="#index_hosts"> /etc/hosts</a> is a file
		I would use, but don't need. Just in case your dns server
		fails, this is handy for a backup. 
        </ol>

        <li> Leave /var/named/named.ca and named.local the same
        <li> Restart named with this command
                <br> /etc/rc.d/init.d/named restart
</ol>
<p>
There are a couple of things you could change for your own
personal needs.  In
/var/named/mark.local, I disabled localhost definition.  
<p>
Now at least your clients computers can find each other. I assume you
know how to setup ip addresses, gateways, and other stuff for your
clients. I will give some pointers on this anyways. Setup clients
to use DNS server.

<hr>
<a name="client"></a> 
<h3> Setup your client computers</h3>
In your computer that is acting like the DNS server, I have upto
eight additional entries in the dns server so that you can have upto
eight computers using the dns server. I am assuming you know a little
bit about ethernet cards. Here are the following configurations I
did for a computer of mine. 
<ol>
        <li> ip address = 10.0.0.21
        <li> name address = c1.mark.local
        <li> gateway address = 10.0.0.10  
		<-- second ethernet card on server computer 
        <li> netmask = 255.255.255.0   
        <li> As for the file /etc/resolv.conf, 
                <a href="#index_resolv_client"> use this one</a> 
                for the clients.
        <li> I didn't have to fuss with the kernel on the client
                computers. As far as the clients are concerened, your
                server is just a normal gateway.  
        <li> <a href="#index_hosts"> /etc/hosts</a> is a file
                I would use, but don't need. Just in case your dns server
                fails, this is handy for a backup.

</ol>
<p>
The only thing you should have to change to each additional computer
is the ip address and the name address. c2.mark.local and 10.0.0.22 would
be used for the next computer. Get the idea?
<p>
Also, if you are using pc or mac clients or other stuff, check out the
<a
href="http://www.ssc.com/linux/LDP/HOWTO/mini/IP-Masquerade-3.html#ss3.3"> 
masquerading mini-howto</a>.

<hr>
<a name="mas"></a>
<h3> Setup masquerading on the server</h3>
<p>
If you were able to get your module(s) to detect both ethernet cards, 
then this section doesn't apply. But if you could not get the modules
to recognize both ethernet cards, which will be the case for most people,
you MUST COMPILE THE DRIVER of the ethernet card into your
kernel and also compile in the masquerading bit. I have had problems
getting modules to work with 2 ethernet cards of the same type. 
Somehow, when I installed RedHat 5.0 from scratch, it got both of 
my ethernet cards, but it was probably an unusal case. 
<p>
Read the 
<a
href="http://www.ssc.com/linux/LDP/HOWTO/mini/IP-Masquerade-3.html#ss3.1">
ip masquerading HOWTO</a>. Follow its steps
                on compiling the kernel for masquerading.
                 NOTE -- VERY DANGEROUS if you screw this up. About,
                installing the kernel, RedHat did something
                silly when they configured the /etc/lilo.conf file. 
                Change this line "image=/boot/vmlinuz-2.0.32" to
                "image=/boot/vmlinuz" and make sure you run "lilo"
                at some point before you reboot your computer. Do it
                now to be safe. 
<p>
1. And also, these are the steps I use to compile the kernel, first
configure it like the howto says
<br> cd /usr/src/linux
<br> make config
<p>
2. and when that is done, compile it 
<br> make dep 
<br> make clean
<br> make zImage 
<p>3. and if it worked, compile and install the modules
<br> make modules
<br> make modules_install
<p>
4. After you created your kernel,
                do the following steps to install your new kernel.
<p>
 cp /usr/src/linux arch/i386/boot/zImage   /boot/vmlinuz_NEW
<br> rm /boot/vmlinuz
<bR> ln -s /boot/vmlinuz_NEW /boot/vmlinuz
<br> lilo

                <p>
                That should install your kernel if you compiled it. 
                Here is an example of my 
                <a href="#index_lilo">/etc/lilo.conf</a> file.

<p> YOUR /etc/lilo.conf WILL NOT BE THE SAME AS MINE. Change <a
href="#index_lilo">/etc/lilo.conf</a> for your specific needs 
        and please
        read about append in the BOOTPROMPT howto before you use it.
        You will have to modify this file yourself.
        Add the append statement like I did for two ethernet cards.

<hr>
<a name="change"></a>
<h3> Change some configuration files</h3>

Use these files.
<ol>
<li> Change <a href="#index_rc.local"> /etc/rc.d/rc.local</a> 
	which will start the ip masquerading. Actually, ADD THIS
	to your rc.local file and do not overwite it. 
<li> Change <a href="#index_network">/etc/sysconfig/network</a> 
	and remember that these values
	don't me anything and will get changed once you log into
	the internet. 
<li>Change <a href="#index_eth0">
	/etc/sysconfig/network-scripts/ifcfg-eth0</a> and also
	change
	<a href="#index_eth1">
	/etc/sysconfig/network-scripts/ifcfg-eth0</a>.
</ol>

<hr>
<a name="hook"></a>
<h2>Hook up the network. </h2>
<ol>
	<li> Put your gateway server computer between the roadrunner
		box and the hub. 	
	<li> Reboot the computer.
	<li> Hook up all your other computers to the hub.
	<li> See if you can ping or connect from a client computer
		to your gateway computer. If so good.
	<li>See if your internal computers can see each other. You don't
		need the gateway computer to do this, this is just
		to check to see if your hub is working. Telnet, ping, 
		ftp, or others should work. For example, "ping c1"
		would ping your c1.mark.local computer. If you used
		/etc/hosts like I told you to, you don't need the 
		gateway server to resolve the ip address. Or you could
		just do "ping 10.0.0.21" to do the same thing.    

</ol>
Specifically, you should hook up the first ethernet card to the roadrunner
modem thing and the second ethernet card to the hub. 
<p>
Now we need to get your gateway computer connected to the internet. 


<hr>
<a name="connect"></a>
<h2>Connect your gateway to the internet. </h2>

Did you remember to first install roadrunner on a Windows95
computer to get the configuration files? If so, you better. 
<p>
Download the <a href="http://www.vortech.net/rrlinux/linux.htm"> 
 rrclientd-1.3.tar.gz and  rrdhcpcd-1.02.tar.gz</a> files. 
You don't need rrdhcpcd-1.02.tar.gz unless you want to compile as
it has a binary contained in rrclientd-1.3.tar.gz. 
Here are the briefs instructions on what to do, but read the
README file that comes with rrclientd-1.3.tar.gz. It tells you
in better detail what to do next. Use rrdhcpcd instead of dhcpcd. 
It works better and seems to initiate faster.  
<ol>
	<li> Create a /etc/rrpasswd file that contains the password
		for your account. A "chmod 700 /etc/rrpasswd"
		command if you only want root to be able to read it. 
	<li> Link your /etc/resolv.conf file to /etc/dhcpc/resolv.conf
		with the commands
		<br>mkdir /etc/dhcpc
		<br>cp /etc/resolv.conf /etc/dhcpc/resolv.conf
		<br> rm /etc/resolv.conf
		<br>ln -s /etc/dhcpc/resolv.conf /etc/resolv.conf
	<li> Copy a file from your windows95 installation
		to /etc/krb5.conf
	<li>Make changes to your /etc/services file as said in the readme
		file from rrclientd-1.3.tar.gz.
	<li> Copy the binaries you need for rrclientd into 
		/sbin, or at least, that is what I did. The rest
		of this document will assume you put your
		binaries in /sbin. 
	<li> Make sure the time on your computer is not ahead of the
		current time and not behind by more than 5 minutes. 
		Also, make sure your timezone is correct. 
	<li> I am going to assume you are using rrdhcpcd. If you don't
		have a binary of it, you will have to compile it. 
  		Execute these commands to make sure you have the correct
		links to use the new programs you copied to /sbin. 
<br>        mv /sbin/dhcpcd /sbin/dhcpcd_old
<br>        mv /usr/sbin/dhcpcd /usr/sbin/dhcpcd_old
<br>        mv /usr/bin/rdate /usr/bin/rdate_old
<br>
<br>        ln -s /sbin/rdate /usr/bin/rdate
<br>        ln -s /sbin/rrdhcpcd /sbin/dhcpcd
<br>        ln -s /sbin/rrdhcpcd /usr/sbin/dhcpcd
<br>        ln -s /sbin/rrclientd /usr/sbin/rrclientd

</ol>
<p>
Once you have installed rrclientd-1.3.tar.gz properly, 
use this file <a href="#index_login"> /root/Login.bat</a> to 
start your login session with "source /root/Login.bat". Remember to
change USERNAME in the file to whatever username it is that you have. 
In my script, I stop and start rrdhcpcd, which is unecessary. Once
rrdhcpcd is started, it tries to renew the ip address every 3 hours. 
Thus, you should never have to stop rrdhcpcd, but I do it anyways.  

<p>

<hr>
<a name="service"></a>  
<h2>Setting roadrunner up as a service. </h2>
You need to set your ethernet card to use the dhcp protocol and to have
roadrunner as an activated service in order for it to start when
your computer is turned on. This worked for me. I read the dhcpcd program
(and probably rrdhcpcd does the same thing) tries to renew the ip
address every 3 hours. This is good. This means users don't have to start
and stop it. 

<p>
A. First, install roadrunner as a service. 
<ol>
	<li> <a href="http://www.vortech.net/rrlinux/rhrrclientd.htm">
This webpage</a> is the guide I used. 
	<li> <a href="#index_roadrunner"> /root/roadruner</a> is
		the file you need. I downloaded this April 7th, 1998. 
		It looks pretty straightforward, so I doubt it will
		change. 
	<li> Change your username in the file like it says to. 
	<li> Copy it to the /etc/rc.d/init.d directory like
		<br> cp /root/roadrunner /etc/rc.d/init.d
	<li> Issue the command
		<br> chkconfig --list | grep roadrunner
		<br> and you should see 
		<br> roadrunner 0:off 1:off 2:off 3:off 4:off 5:off 6:off
	<li> Activate the service by
		<br>chkconfig --add roadrunner
	<li>Issue the command
                <br> chkconfig --list | grep roadrunner
                <br> and you should see
                <br> roadrunner 0:off 1:off 2:on 3:on 4:on 5:on 6:off
</ol>
<p>
<a name="partb"></a>
B. Now use the control panel. Log in as root and use xwindows. "startx"
will start xwindows at the prompt if you don't have xdm running. 
The control-panel should be there. This next step will set the first
ethernet card to use dhcp which we replaced with rrdhcp (the computer
doesn't know any better). 
<p>
<ol>	
	<li> Click on the "Network Configuration" icon in the
		control panel. 
	<li> Click on "Interfaces". 
	<li> Click on "eth0"
	<li> Click on "edit"
	<li> OPTIONAL: Click on "Allow user to (de)active interface".
	<li> Choose "dhcp" for Interface configuration protocol.
	<li> Click somewhere to save the changes. 
</ol>
<p>
Okay, we got rrdhcpcd running by setting the first ethernet card to use 
the protocl dhcp and we installed the roadrunner service which uses rrclientd.
<h3> Reboot your computer and see what happens!</h3>
You should be connected to the internet when your server boots up as
well as all your clients. 
If you use a web browser, you might have to set it to use the 
"proxy-server" on port 8080. Programs like telnet, ssh, nslookup, ftp,
and ping should work. Actually, ping might work with just rrdhcpcd being
activated. 


<hr>
<a name="stopstart"></a>  
<h2>Starting and stopping the roadrunner service and rrdhpcd. </h2>
Well, to stop everything down and start everything up, you would do

<pre>
/etc/rc.d/init.d/roadrunner stop
/etc/rc.d/init.d/network stop
/etc/rc.d/init.d/network start
/etc/rc.d/init.d/roadrunner start
</pre>
<p>
But of course, that is a little drastic. Rrdhpcd supposedly tries to
renew the ip address every 3 hours, so you should never have to start
and stop it. That is good because it takes a while to initiate and
stalls the network. 
<p>
Why would you want to stop and start the roadrunner service?
Well, in theory, rrdhpcd should get the same ip address 99% of the time
if you leave it on all the time. If it doesn't, you are screwed and you
will have to restart the roadrunner service. Thus, instead of using my
/root/Login.bat script, just put into the cron for the roadrunner service
to be stopped and started at specific times. Use the files
<a href="#index_login2"> /root/Login2.bat</a> and 
<a href="#index_cron2"> /root/cron2</a> and
<a href="#index_email"> /root/email.pl</a>. 
Make sure you do a "chmod 755 /root/Login2.bat /root/email.pl". 
And also do a "crontab /root/cron2". Oh, uh, if you had other stuff
cronned as root, I would "add the cron stuff" or otherwise you are
going to blow away your previous cron jobs. 
<p>
Also, a quote from Joshua Jackson when I e-mailed him about what
problems you might have being logged in all the time. 
<pre>
If for some reason you lose your IP address (this SHOULD NOT happen under
normal circumstances), you Kerberos tickets and GSS auth info would become
invalid.  If this happens, rrclientd will exit and you will need to log   
back in.

The only reason that you would lose your IP address would either be a
hardware/software malfunction at either the client or server end or a
reset of the dhcp servers at RR.

Joshua Jackson
</pre>

<hr>
<a name="other"></a>
<h2>Other things </h2>
<b>Use this section at your own risk. </b>
This stuff I plan to elaborate more on given that some people have
made good suggestions about them. For updates to this webpage, look
at <a href="http://linux.med.ohio-state.edu/nielsen/rr.html"> 
http://linux.med.ohio-state.edu/nielsen/rr.html</a>, but that might even
change someday. NONE OF THIS STUFF in this section is explained well. 
Modifications are probably in order at some point. This is just what
I would do. 

<ol>
	<li> If you don't setup the roadrunner service and bind rrdhcpcd
		to the ethernet card but you want to stay connected
		almost 24 hours a day, 
you could do something like send yourself
		e-mail once an hour use a 
		<a href="#index_email">perl script</a> and
		and <a href="#index_cron">cron</a> job on your
		gateway
		server and issue the
		command "crontab cron" to get it started. 
		The /root/cron file uses
<a href="#index_login"> /root/Login.bat</a> file, so you need it also. 
		Also
		the <a href="#index_kill"> /root/Kill.bat</a>
		file to kill it at 1 a.m. You don't have to, I do.
		Do a "chmod 755 /root/email.pl /root/Kill.bat
/root/Login.bat".  Modify the stuff as you see fit. Also, add this to your
		/etc/rc.d/rc.local file and replace USERNAME with the
		username you use for roadrunner. This will start the
		stuff at boot time if you didn't set it up to do so
		with the roadrunner service and control panel. 
<pre>
echo starting rrdhcpcd
/sbin/rrdhcpcd eth0
echo sleeping for 5 seconds
sleep 5
echo Starting rrclientd
/sbin/rrclientd  -u USERNAME /etc/rrpasswd dce-server 
echo finished
echo sleeping 20 more seconds
sleep 20
</pre>  
	<li> If you are interested in what programs you can use, 
		telnet, ssh, ftp, ping, nslookup, and xwindows programs
		seem to work. I have heard other ones do as well.
		Some of resources in "References" above mention other
		things like ircs and other stuff.  
	<li> In /etc/inet.d, I would comment out ftp, telnet, rsh, 
		pop3, pop2, imap, and gopher for security reasons. 
		Compile and install <a
href="http://www.cs.hut.fi/ssh/"> ssh</a>. 
	<li> If you are interested in fixing /etc/resolv.conf so that it
		doesn't change, do a "chmod 444 /etc/dhcpc/resolv.conf"
		after you configure it. I recommend you only add
information like nameservers and domains, like mine is
<pre>
domain columbus.rr.com
search mark.local columbus.rr.com 
nameserver 10.0.0.10  ### this is our DNS
nameserver 204.210.252.18 ### this is the roadrunner dns
nameserver 128.146.1.7  ### ONLY FOR OSU PEOPLE IN COLUMBUS OHIO!
</pre>

</ol>
<hr>
<a name="index"></a>
<h2>Index of files</h2>
<h3> You should not have blank lines at the beginning of the files!</h3>
<hr>
<a name="index_named"></a>
/etc/named.boot for server
<hr><pre> 
;
; a caching only nameserver config
;
directory                              /var/named
cache           .                      named.ca
primary         0.0.127.in-addr.arpa   named.local
primary        mark.local        mark.local
primary          0.0.10.in-addr.arpa   10.0.0
</pre>

<hr>
<a name="index_resolv"></a>
/etc/resolv.conf for server and clients
<hr><pre>
domain columbus.rr.com
search mark.local columbus.rr.com 
nameserver 10.0.0.10  ### this is our DNS
nameserver 204.210.252.18 ### this is the roadrunner dns
nameserver 128.146.1.7  ### ONLY FOR OSU PEOPLE IN COLUMBUS OHIO!

### You can probably use our dns first if you want. Actually, I would.
</pre><hr>

<hr>
<a name="index_named_mark"></a>      
/var/named/mark.local for server
<hr><pre> 
mark.local.       IN      SOA  main.mark.local. root.main.mark.local.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
mark.local.       IN      NS      main.mark.local.
;localhost IN       A       127.0.0.1
main.mark.local.   IN     A       10.0.0.10
c1.mark.local.     IN      A       10.0.0.21
c2.mark.local.     IN     A       10.0.0.22
c3.mark.local.     IN     A       10.0.0.23
c4.mark.local.     IN     A       10.0.0.24
c5.mark.local.     IN     A       10.0.0.25
c6.mark.local.     IN     A       10.0.0.26
c7.mark.local.     IN     A       10.0.0.27
c8.mark.local.     IN     A       10.0.0.28
</pre><hr>

<hr>
<a name="index_0"></a>      
/var/named/10.0.0 for server
<hr><pre> 
0.0.10.in-addr.arpa. IN   SOA  main.mark.local. root.main.mark.local. (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
              IN      NS      main.mark.local.
10.0.0.10.in-addr.arpa.       IN      PTR     main.mark.local.
21.0.0.10.in-addr.arpa.       IN      PTR     c1.mark.local.
22.0.0.10.in-addr.arpa.       IN      PTR     c2.mark.local.
23.0.0.10.in-addr.arpa.       IN      PTR     c3.mark.local.
24.0.0.10.in-addr.arpa.       IN      PTR     c4.mark.local.
25.0.0.10.in-addr.arpa.       IN      PTR     c5.mark.local.
26.0.0.10.in-addr.arpa.       IN      PTR     c6.mark.local.
27.0.0.10.in-addr.arpa.       IN      PTR     c7.mark.local.
28.0.0.10.in-addr.arpa.       IN      PTR     c8.mark.local.
</pre><hr>

<hr>
<a name="index_nlocal"></a>
/var/named/named.local for server 
<hr><pre>


@       IN      SOA     localhost. root.localhost.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
              IN      NS      localhost.

1       IN      PTR     localhost.
</pre>
<hr>

<hr>
<a name="index_hosts"></a>      
/etc/hosts for server and clients
<hr><pre> 
127.0.0.1 localhost     localhost.localdomain
10.0.0.21 c1.mark.local c1
10.0.0.10 main.mark.local       main
10.0.0.22 c2.mark.local c2
10.0.0.23 c3.mark.local c3
10.0.0.24 c4.mark.local c4
10.0.0.25 c5.mark.local c5
10.0.0.26 c6.mark.local c6
10.0.0.27 c7.mark.local c7
10.0.0.28 c8.mark.local c8

</pre><hr>

<hr>
<a name="index_resolv_client"></a>      
/etc/resolv.conf for the client computers
<hr><pre> 
search mark.local
nameserver 10.0.0.10
</pre><hr>

<hr>
<a name="index_lilo"></a>      
/etc/lilo.conf
<hr><pre> 
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
### WARNING!!! THE APPEND STATEMENT IS FOR MY COMPUTER ONLY!!!!!
image=/boot/vmlinuz
        label=linux
        root=/dev/hda1
        append="ether10,0x300,eth0 ether=11,0x310,eth1"
        read-only
</pre><hr>

<hr>
<a name="index_rc.local"></a>
/etc/rc.d/rc.local for server 
<hr><pre>
## Add this file to /etc/rc.d/rc.local 

echo "setting up ip masquerde"
/sbin/depmod -a
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_raudio
/sbin/modprobe ip_masq_irc

echo "setting up permissions for 10.0.0.0 domain for mas"
ipfwadm -F -p deny
ipfwadm -F -a m -S 10.0.0.0/24 -D 0.0.0.0/0
</pre><hr>

<hr>
<a name="index_network"></a>
/etc/sysconfig/network for server
<hr><pre>
NETWORKING=yes
FORWARD_IPV4=true
HOSTNAME=main.mark.local
DOMAINNAME=mark.local
GATEWAY=
GATEWAYDEV=eth0
</pre><hr>

<hr>
<a name="index_eth0"></a>
/etc/sysconfig/network-scripts/ifcfg-eth0
<hr><pre>
DEVICE=eth0
IPADDR=10.0.1.10
NETMASK=255.255.255.0
NETWORK=10.0.1.0
BROADCAST=10.0.1.255
ONBOOT=yes
</pre><hr>

<hr>
<a name="index_eth1"></a>
/etc/sysconfig/network-scripts/ifcfg-eth1
<hr><pre>
DEVICE=eth1
IPADDR=10.0.0.10
NETMASK=255.255.255.0
NETWORK=10.0.0.0
BROADCAST=10.0.0.255
ONBOOT=yes
</pre><hr>

<hr>
<a name="index_login"></a>
/root/Login.bat
<hr><pre>
## This is a drastic solution to stop and start your roadrunner stuff
## Personally, you should only have to start and stop the roadunner
## service every once in a while, and you shouldn't mess with the network
date
echo killing rrclientd
/sbin/rrclientd -k
sleep 5
echo killing rrdhcpcd
/sbin/rrdhcpcd -k eth0
echo sleeping 2 seconds
sleep 2
### uncomment the next 5 lines if you wish, you probably don't have to
##echo stopping and starting the network
##/etc/rc.d/init.d/network stop
##echo sleeping 5 seconds
##sleep 5 
##/etc/rc.d/init.d/network start
echo starting rrdhcpcd
/sbin/rrdhcpcd eth0
echo sleeping for 5 seconds
sleep 5
echo Starting rrclientd
/sbin/rrclientd  -u USERNAME /etc/rrpasswd dce-server
echo finished
echo sleeping 20 more seconds
sleep 20
</pre><hr>

<hr>
<a name="index_roadrunner"></a>
/root/roadrunner for server 
<hr><pre>
#!/bin/sh
#
# roadrunner  This shell script takes care of starting and stopping
#             rrclientd.
#
# chkconfig: 2345 11 30
# description: Logs the system into TWC Road Runner Internet Service
#
# Author: Joshua Jackson  jjackson@neo.lrun.com
#         1/6/98
#
# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

[ -f /usr/sbin/rrclientd ] || exit 0

RRUSER="Your Username Goes here!"

# See how we were called.
case "$1" in
  start)
        # Start daemons.
        echo -n "Logging into Road Runner: "
        daemon rrclientd -u ${RRUSER} /etc/rrpasswd dce-server
        echo
        ;;
  stop)
        # Stop daemons.
        echo -n "Logging out of Road Runner "
        killproc rrclientd
        echo
        ;;
  status)
        status rrclientd
        ;;
  restart)
        $0 stop
        $0 start
        ;;
  *)
        echo "Usage: roadrunner start|stop|restart"
        exit 1
esac

exit 0
</pre><hr>

<hr>
<a name="index_email"></a>
/root/email.pl for server
<hr><pre>
!/usr/bin/perl

$EMAIL = "USERNAME\@somewhere.foo.edu";

open(EMAIL,"| /bin/mail -s RR $EMAIL");
$date = `date`;
chop $date;

print EMAIL "DATE AND TIME: $date\n";
print EMAIL "--------------------------------------------------\n";
print EMAIL "test\n";

close(EMAIL);
</pre><hr>
        
<hr>
<a name="index_cron"></a>
/root/cron for server  
<hr><pre>
# Let us restart dhcpd and rrclient 7 a.m., 2 p.m., and 10 p.m.
# and kill it at 1 a.m.
# and e-mail once an hour 5 minutes after the hour
0 7,14,22 * * *     /root/Login.bat  >> /root/Login.log
0 1 * * *     /root/Kill.bat >> /root/Kill.log
5 * * * * /root/mail.pl  
</pre><hr>
        
<hr>
<a name="index_kill"></a>
/root/Kill.bat for server  
<hr><pre>
date
/sbin/rrclientd -k
sleep 5
/sbin/rrdhcpcd -k eth0
sleep 5
</pre><hr>

<hr>
<a name="index_login2"></a>
/root/Login2.bat
<hr><pre>
### We just need to quickly stop and start roadrunner
/etc/rc.d/init.d/roadrunner stop
sleep 5
/etc/rc.d/init.d/roadrunner start
</pre><hr>
        
<hr>
<a name="index_cron2"></a>
/root/cron2  
<hr><pre>
# Let us restart roadrunner 7 a.m., 2 p.m., and 10 p.m.
# and e-mail once an hour 5 minutes after the hour
0 7,14,22 * * *     /root/Login2.bat  >> /root/Login2.log
5 * * * * /root/mail.pl
</pre><hr>

<hr>
<a name="index_hname"></a>
/etc/HOSTNAME
<hr><pre>
main.mark.local
</pre><hr>

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1998, Mark Nielsen <BR> 
Published in Issue 28 of <i>Linux Gazette</i>, May 1998</H5></center>

<!--===================================================================-->
<P> <hr> <P> 
<A HREF="./lg_toc28.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif" 
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./journeay.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./winer.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P> 

<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->
	<center><h1>
		<img src="./gx/winer/blueribbon.gif" height=30 width=18
hspace=2 align=top alt="blue ribbon" border=0> Keep Your Eye On The
Prize </H1> 
<H4>By <a href="mailto:dave@scripting.com">Dave Winer</a></H4>
	</center>
	<blockquote>
		<FONT SIZE="+2"><b>T</b></FONT>o people who think that open source is a panacea, think again. I have a bunch of experience here, predating the current euphoria. A few bullet points follow.<p>

Our SDK, first released in 1992, and often updated, was totally open source. Some parts of it gained traction, but most of it was ignored. We did the vast majority of the work on the toolkit, with paid employees. <p>

In January 1995 we released the source to MacBird Runtime, hoping to ignite a move towards real user interfaces on the web. Nothing happened. It was never ported, and no bug fixes were ever supplied.<p>

In 1997, I looked on the web for base64 code that worked with handles, not files. Finding none, I adapted existing implementations and released the source. This one worked, sort of. It was ported to HyperCard. Has anyone else used the code? I don't know.<p>

<b>Why didn't these things work?</b><p>

First, I have to tell you, I don't know why they didn't work. I can only guess.<p>

I certainly was excited about the idea of releasing the source and having other people do the work for me. Did I underhype these source releases? I did the best I could with what I had at the time.<p>

The Frontier community tends to group where we are active. So if I back off updating something, they focus their attention where we are working. I find this frustrating, but I think it's just human nature at work. <p>

We aren't updating MacBird (or DocServer or a bunch of other things) but no one is clamoring for the source for those things. We are actively updating Frontier and the website framework and workflow facilities, and every day I get an email or two saying that it would all work much better if I just gave them the source, implying that the people would know what to do with it, or would keep up their interest in the code after they got it.<p>

I have mixed experiences with this. I have given away code, sometimes with good results, but really, most of the time the projects get started with some enthusiasm, and wither on the vine. I've learned that if I want something to take root, I have to make a financial commitment to that happening.<p>

<b>Chuck's sig</b><p>

My friend Chuck Shotton uses a great signature on his email. He says "Shut up and eat your vegetables!" I can't be that direct, I wish I could, but I'd like to tell the people who want to replace my team, you haven't got a clue how hard it is to maintain a source code base like Frontier. If you want me to trust you, get started working on fixing the problems in the code we have released, and then we'll take a look at trusting you with our family jewels.<p>

Further, having invested several million dollars in this source code base, why do you think I should give it to you? If you want to know how this feels to me, imagine a stranger arriving at your front door and demanding food and a warm bed. You let them in. Sure! You can sleep here. It would be stupid to think that it would all come out for the best. Love at first sight? Nahh. I prefer to be romanced.<p>

No other creative or engineering art works this way. Art and money are closely related. Try sitting down with a group of artists and ask them what's on their mind. Very quickly the topic shifts to money. And it can be very hard to get them off that subject.<p>

Think about art yourself. When you look at a piece of art does it cross your mind how much it's worth? If you meet someone who's an artist, do you ask how much money they make from their art? Be honest. Try some experiments. Tell people you're an artist. See how often the conversation turns to how much money you make. What about all the actors who are waiters and taxi drivers? Do you take them seriously before they "make it"? What does making it mean? What's it? Does money have anything to do with it?<p>

The open source message is all about money, by the way, paid versus unpaid programmers, and in that sense it diflects us from where the most good can be done. Open source is a tactic. It's a zig to the commercial industry's zag. It can gain a market presence. Good tactics. But it's not right in every situation, far from it, nor can you make the world revolve around free source. It certainly has a place. But in itself it is not the revolution. I'm sure of this.<p>

<b>Netscape Netscape Netscape</b><p>

I think Netscape has not done a service to the software world, users and developers, by going so strong on open source. If they want to please their shareholders, it's going to be complex and potentially very political. Like O'Reilly, who ships a mixture of open and closed source, so must Netscape, or the shareholders will throw out current management and replace them with people who are focused on making money. You can be sure of one thing, shareholders are not going to pay for what's right, they pay for what provides a good return on investment.<p>

The focus is on Netscape. They're going to have to do an unprecedented political balancing act as developers feed them new features and bug-fixes, expecting that open source means open access to Netscape's distribution. There are indications, no clear statements, that this is *not* the way it will work. There's no commitment on Netscape's part to ship the work you do, nor would it be reasonable for them to make that commitment. Sometimes it's easier and more cost-effective to do the work yourself than to evaluate all the possible (sometimes conflicting!) submitted implementations.<p>

We go thru this all the time. Developers, paid or not, make mistakes, or see things thru a narrower perspective than you can support. You have to read the code carefully before giving it to your users. I've learned this the hard way. Software has to have goals. And if Navigator fragments into fifteen incompatible browsers, they play right into Microsoft's strength. MSIE will become the market share leader, and content will be coded for their browser, not the various flavors of Navigator.<p>

Think it thru. Even if Netscape hasn't said how it will work, how *must* it work? Netscape has bitten off a huge political task. Do they have the mature wisdom and global perspective needed to pull it off? Even if they were King Solomon, could they do it?<p>

<b>Philosophers</b><p>

At age 42, I hear much of the philosophy of open source coming from people who are younger. It truly is a generational thing. I've said before, if I were in my early 20s I would probably be part of the open source thing, but I'm not in my early 20s, I'm in my early 40s.<p>

As all middle-aged people seem to believe, I think the younger people have a lot to learn. I look at them and I see myself at their age. I'm sure some part of this is real, but most of it is projection. They aren't me, they are them. They're throwing out some of our lessons and beliefs. That's inevitable, and therefore good. <p>

My advantage is deep experience. Their advantage is lack of experience. I really mean that. When I was young we threw out the ways of mainframes and discovered the power of minis and then micros. The older folk sniffed. "We did that years ago!" they said. But the seeds of their demise were already in the ground and we were the sprouts. The people of my generation, the two Steves at Apple, Bill Gates at Microsoft, and others, really did kick the legs out from under IBM, Sperry, DEC, etc. We know how it turned out.<p>

But Compaq and Lotus had Ben Rosen and Apple had Mike Markkula. They were the adult supervision, the teachers, they gave us the inside scoop on the opposition. They told us how the world worked, and we worked around that. They were our surrogate fathers, caring about our success, enjoying it vicariously. I had my own angel, a man named Bill Jordan. When I was in my 20s and 30s, he was in his 50s and 60s. He taught me a lot. I owe much of my success to Bill. <p>

The best revolutions embrace all that was learned in past revolutions. Keep your eyes open, understand how the system you're trying to undermine really works. Bill Gates never said publicly that he was going to take IBM out of its strategic place in the software business. For all I know, he didn't even intend to do it. Looking at it from my insider perspective, while all this was going on, I know they had doubts about their ability to lead the industry as late as 1990.<p>

That's why I say it isn't about open source, it's about open minds. Drawing lines alienates people to you. Attacking Microsoft verbally causes Windows users to tune out. You can't undermine by trying to dictate the terms, you have to do it by invading at night, slipping in the back door unnoticed. Then when the old folks wake up, it's too damned late.<p>

So, speaking as an old geezer to a bunch of young whippersnappers, let's really cause some trouble, keep your eyes and ears open and stop attacking so openly. <p>

A new slogan. It goes right along with the old slogans, Dig We Must, Let's Have Fun, Namaste Y'all.<p>

Keep Your Eye on the Prize.<p>

Know what you want, and get it.<p>

Dave Winer
	</blockquote>
	
<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1998, Dave Winer <BR> 
Published in Issue 28 of <i>Linux Gazette</i>, May 1998</H5></center>

<!--===================================================================-->
<P> <hr> <P> 
<A HREF="./lg_toc28.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif" 
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./nielsen.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./vermeer1.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P> 

<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<H1>Linux Fax for Dummies :-)</H1>
<H4>By <a href="mailto:mv@fgi.fi">Martin Vermeer</a></H4>
</center>
<P> <HR> <P>  

<I>If you are like me, you may be all the time on the lookout for nifty
little utilities and the like, that might make life easier and more pleasant
for end users. I came into Linux rather late in the process, February 1997,
and although I know how to program (and have written a few handy little
things too, using this great new language<B> tcl/tk</B></I>)<I>, due to
time constraints, I have felt no strong inclination to join ranks with
the hacker community. Heck, I never even compiled my own kernel!</I>
<BR>
<HR WIDTH="100%">
<BR>For someone as ancient as me (vintage 1953) it is probably better to
concentrate on things that I am good at, without requiring a substantial
investment in time. So, I have been looking around, learning <B>tcl/tk</B>,
and writting little things that make life easier especially for people
that are not very computer literate. Because, what is happening now to
Linux, is that it is gaining a technically less sophisticated user base.
We should adapt to this. Part of this adaptation is taking place; the new,
gorgeous-looking desktop environments such as KDE and Gnome are soon becoming
standard stuff on the Linux desktop, and more and more software is acquiring
a graphical user interface.<B> tcl/tk</B>, <B>perl/tk</B>, <B>gtk</B>,
and <B>java</B>, are among the tools that make this possible. <B>tcl/tk</B>
especially is ideal for "glueing" already existing command-line oriented
utilities together into great-looking desktop thingies.

<P>A recommended fax package for Linux is <FONT FACE="Courier New,Courier">fax/efax/efix</FONT>
by Ed Casas.<FONT FACE="Courier New,Courier"> fax</FONT> is an ordinary
shell script, containing calls to the binary modules <FONT FACE="Courier New,Courier">efax</FONT>
(taking care of the difficult, low-level faxing stuff) and <FONT FACE="Courier New,Courier">efix</FONT>
(taking care of some file format conversions needed). They work, but are
command-line stuff; not for dummies.

<P>For sending faxes using <FONT FACE="Courier New,Courier">efax</FONT>
you can use <FONT FACE="Courier New,Courier">LyX</FONT>, the graphical
word processor running on top of <FONT FACE="Courier New,Courier">LaTeX</FONT>.
I can really recommend this word processor: especially the new release
0.12&nbsp; is great, with lots of new features including on-the-fly localization.
See the <A HREF="../issue27/ayers5.html">review by Larry Ayers</A> in the last issue of Linux Gazette, and a
picture (I couldn't resist) below.

<P><IMG SRC="./gx/vermeer/lyx.jpeg" ALT="[lyx picture]" HEIGHT=393 WIDTH=569>

<P>For receiving faxes, it is possible to install <FONT FACE="Courier New,Courier">efax</FONT>
as a daemon through the bootup script (see man page), so it continually
waits for faxes to come in. It is even possible to do this in such a way,
that it does not get in the way of outgoing traffic, e.g. an Internet connection.
Then, when this connection closes, the deamon starts again listening to
the serial port.

<P>Any faxes received will be stored into a spool directory, typically
(Red Hat)<FONT FACE="Courier New,Courier"> /var/spool/fax/</FONT>. You
can make <FONT FACE="Courier New,Courier">xbiff</FONT> or <FONT FACE="Courier New,Courier">xmailbox</FONT>
look if faxes have arrived into the spool directory, and signal it to the
user. I haven't tried this, though. There are various ways to read messages
from the spool directory. Ed Casas' script <FONT FACE="Courier New,Courier">fax</FONT>
can be used, but is <I>so</I> unbecoming. I really would love it if there
was a graphical client to do this!

<P>So... I decided to do a search, an extensive one, using Alta Vista.
No luck.&nbsp; Following links, I found a number of&nbsp; listings of fax
and communication software, including Hylafax, which is a fax server application
for network use, undoubtedly good, but not what I was looking for. Then
I decided, OK, it cannot be too hard to write a thing like this myself.
I started coding, and after three hours or so, I had the skeleton of a
working graphical fax client running.

<P>I wanted my skeleton script to use the existing utility <FONT FACE="Courier New,Courier">viewfax</FONT>
(a GNU product) to display fax pages on the screen. The program -- found
in the RPM package <FONT FACE="Courier New,Courier">mgetty-viewfax</FONT>
--&nbsp; is very fast and very convenient, but with a slightly "emacsish"
user interface. Well, what the heck. I read the man page and found there
a reference to <FONT FACE="Courier New,Courier">faxview.tcl</FONT>, a <B>tcl/tk</B>
"graphical front end" to viewfax. Precisely what I was trying to write!
<BR>.
<CENTER><IMG SRC="./gx/vermeer/faxview.jpeg" ALT="[faxview GUI]" HEIGHT=479 WIDTH=444></CENTER>


<P>I downloaded the <FONT FACE="Courier New,Courier">faxview-1.0</FONT>
tarball from the ftp server at <FONT FACE="Courier New,Courier"><A HREF="ftp://ftp.UL.BaWue.DE/pub/purple/fax">ftp://ftp.UL.BaWue.DE/pub/purple/fax</A></FONT>,
extracted the files <FONT FACE="Courier New,Courier">faxview</FONT> (the
<B>tcl/tk</B> script) and <FONT FACE="Courier New,Courier">faxview.1</FONT>
(the man page) from it. It worked great (see picture)! The author of this
software is Ralph Schleicher from Ulm, Germany. So much for reinventing
the wheel... this really raises some questions:
<UL>
<LI>
Do we really <I>know</I> all the Linux software that is out there?</LI>

<LI>
Are many authors too modest about their products, in other words, do they
rather keep their software -- even just "scripts" -- to themselves, where
a professional Windows programmer would have happily marketed commercially
a Visual Basic script of the same quality?</LI>

<LI>
Is it really easy enough to post announcements and even source code for
new software, for people that have not been part of the "circuit", and
is the infrastructure in place to make people find the information that
they need on the existence of such software?&nbsp; Referring to my above
negative Alta Vista and software list experience.</LI>
</UL>
If anyone has any useful software to refer me to, found by accident against
the slings and arrows of poor posting... let me know! What is your favourite
"under-advertised" Linux software?
<BR>&nbsp;

<P>Martin Vermeer
<BR><FONT FACE="Courier New,Courier"><A HREF="mailto:mv@fgi.fi">mv@fgi.fi</A></FONT>
<BR>&nbsp;

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1998, Martin Vermeer <BR> 
Published in Issue 28 of <i>Linux Gazette</i>, May 1998</H5></center>

<!--===================================================================-->
<P> <hr> <P> 
<A HREF="./lg_toc28.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif" 
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./winer.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./schweizer.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P> 

<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<H1><font color="maroon">Marketing Linux</font></H1>
<H4>By Jim Schweizer</H4>
</center>
<P> <HR> <P>  

I was just reading <I>Crossing the Chasm: Marketing and Selling
High-Tech Products to Mainstream Customers</I> by Geoffry Moore and
sat back for a few minutes to muse on how Linux could benefit
from its strategies.
<P>
Mr Moore suggests that there is a bell curve that describes how a new 
technology is adapted by a market. At the front of the curve is a small
section of Innovators and next to it a slightly larger Early Adapter
section. After that there are two large sections at the middle of the curve, 
the Early Majority and then the Late Majority. Finally, there is a Laggards 
section.
<P>
The hypothisis is there is a 'chasm' between the way one markets to
the Innovators/Early Adapters and a completely different strategy for the 
Early Majority. It's my belief that Linux now has one foot out over the 
chasm, and companies that plan to market Linux or Linux related products
should examine their marketng strategies closely.
<P>
For Linux to be successful it must adopt a marketing strategy designed to 
'cross the chasm' between selling to Innovators/early adapters and an 
early majority of users.
<P>
Visionaries and early adapters are already singing the praises of Linux 
and of the Free Software movement. But there are big differences between
them and the people in mainstream corporate environments who make the 
buying decisions.
<P>
The early adapters differ greatly from the early majority in their 
buying habits - early majority buyers are pragmatists. They want to 
buy from market leaders with proven track records and from companies 
that adhere to industry standards. They want a high degree of customer
support, etc.
<P>
In the words of my brother, Paul, "This is just my opinion but, when 
I look at Linux from the standpoint of an MIS director, I see a cost 
nightmare.  I have no single source that is accountable for support 
issues.  I see a limited supply of qualified support engineers and 
technicians.  I see a limited supply of drivers for new hardware.  
And the list goes on...."  email Fri. Feb. 28, 1997
<P>
Pragmatists may not trust the visionaries in the inovator/early 
adapter market. They want references from within their own group - 
references that come from companies already using the product.
<P>
If you are in a start-up period, where do the references come from? 
One possible strategy is the 'Storming the Beach' approach. The 
visionaries have given you the base of operations (an island off the coast), 
and you have the goal of market domination (liberation of the continent.) 
What you do is establish yourself firmly in a market niche 
(The Beach) then throw all your marketing/sales efforts into 
expanding the market (moving off the beaches and into the country side.)
<P>
Where within the purchasing departments of large corporations is Linux's
Beach? Is it in the web server loaded with RedHat/Apache quietly
counting up hits day after day, week after week without any down time? 
Is it in the old Slackware box hiding in the corner providing print spooling
services without a large maintenance overhead? Is it in the new TurboLinux 
box running Samba?
<P>
"Reduction in scope is key to the chasm crossing strategy." If you want to 
dominate a market, you must first dominate one section of it. Does being
a web server utilize all of Linux's strenghts? No way! But it does get 
Linux noticed.
<P>
IMHO the talk about Linux needing an Office Suite is misguided. M$ Word and 
Excel are solidly entrenched. Linux jumping up and down shouting, "Me too!" 
is not going to get it noticed. 
<P>
What Linux needs is a well designed application profile. One thing
that Linux can focus on and use as a landing point. People use toasters,
coffee makers and refrigerators in the kitchen, but they don't combine 
them into one product and try to get Housing Inc. to sell it.
<P>
This one application needs to be a must-have, something that provides a 
dramatic competitive advantage and improved productivity in an area 
already well-understood by corporate America. To find this must-have 
product companies can use traditional macro- and microlevel market research.
<P>
Innovators and early adapters are interested in how all parts of 
Linux works. Mainstream customers aren't going to be. For them it's 
going to be more like buying a Christmas tree - as long as the good part
is showing, they're happy.
<P>
So, as the troops mass in the ports of our small island, have the Chiefs of
Staff found a landing point yet?

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1998, Jim Schweizer <BR> 
Published in Issue 28 of <i>Linux Gazette</i>, May 1998</H5></center>

<!--===================================================================-->
<P> <hr> <P> 
<A HREF="./lg_toc28.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif" 
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./vermeer1.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./poel.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P> 

<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->


<center>
<H1><font color="maroon">Product Review: Music Publisher</font></H1>
<H4>By <a href="mailto:bvdpoel@kootenay.com">Bob van der Poel</a></H4>
</center>

<P> <HR> <P> 
<P>If you are a musician, you can only cry about the lack of music programs
which run under Linux. Yes, there are many CD players, sound editors, etc.
But, when it comes to notation programs your choices are severely limited.
My search for notation editors (a program which will produce printed sheet
music) has turned up three choices: </P>

<OL>
<LI>The graphical program Rosegarden (http://www.bath.ac.uk/~masjpf/rose.html).
This is a very interesting program which tries its best to be all things.
It has a notation editor which handles most of the normal editing functions,
a midi sequencer which will play music from the notation editor as well
as record data from a midi keyboard, and the ability to import midi files
and convert them to notation. Sounds wonderful...but, unfortunately, Rosegarden
is a work in progress and simply doesn't do all it is supposed to, or does
them awkwardly. I have been unable to get the sequencer to work using my
Gravis Ultra soundcard; and I find that the notation editor is tedious
to use since there are no keyboard accelerators for entering note data.
In addition there is no easy way to print music. Rosegarden does have a
option to export files in MusicTex, OpusTex and PMX (a preprocessor for
MusiXTex). I tired some of the combinations, but was not really all that
impressed by the output. However, the biggest problem I have with Rosegarden
(and a lot of other music editors) is that they work on the music as if
it were a long string. This means changes to the start of the music work
there way to the end of the chart. For example, if in bar one of a piece
you have four quarter notes and you wish to change to the first quarter
to two eights, you first change the first quarter to an eighth, then insert
an eighth. When the first change is done, everything to the right of the
edit point is reformatted with the result that none of the music is now
in the correct measure. Of course, inserting the second eighth fixes this.
But, if you have several staves of music and you do a few edits, it is
really easy to mess the entire piece up.<BR>
<BR>
</LI>

<LI>The various TeX music systems. I must admit that I did not spend a
lot of time with any of the variants. I can handle LaTeX for word processing,
but the music variants seemed to be pretty complicated to use, all in a
state of beta, and none seem to produce what looks like a finished work.
<BR>
<BR>
</LI>

<LI>MUP. This, at first look, would probably be the last program to pick.
But after a fair bit of testing I have decided to use it. So far, I'm happy
with my choice. </LI>
</OL>

<P>Quoting from the user's manual: &quot;The music publisher program called
'Mup' takes a text file describing music as input, and generates PostScript
output for printing that music. The input file can be created using your
favorite text editor, or generated from any other source, such as another
program. The input must be written in a special language designed especially
for describing music.&quot;</P>

<P>Unlike Rosegarden (and the Windows offerings) MUP does not operate in
a WYSIWYG environment. As a matter of fact, the MUP distribution doesn't
even have a means of editing music. MUP uses plain text files which look
much like source code for a program as its input. Use vi, emacs or whatever
your flavor of editor is. Then, process the file with MUP to create postscript;
and finally print the postscript file. If you don't have a postscript printer
you'll need ghostscript to print things out. And ghostview is handy for
screen previews. MUP uses lines of text to describe a piece of music. </P>

<P>For example, here are the first few bars of Bye Bye Blackbird: </P>

<UL>
<LI>1: 8g;c+;e+;g+;g;b&amp;;c#+;g+; </LI>

<LI>bar </LI>

<LI>1: 8g;b;d+;f+;4g+;g+;</LI>

<LI>bar </LI>

<LI>1: 8g;c+;e+;g+;g;b&amp;;c#+;e+; </LI>

<LI>bar </LI>

<LI>1: 4g+;b;c+;c#+; </LI>

<LI>bar</LI>

<LI>1: 4d+;c+;a;f;</LI>

<LI>bar</LI>
</UL>

<P>The &quot;1:&quot; at the start of each line is the staff/voice indicator
(in this example it refers to staff 1 and, since there is no additional
argument, voice 1). Following the staff/voice are the notes for the measure.
The first measure has an eighth note g, eight note c, etc. The next measure
has several eight notes as well as two quarter notes. At first this might
seem to be a bit difficult to follow, but in no time at all it does make
sense. </P>

<P>A MUP score can contain up to 32 staves of music, each with two voices.
Each voice can have multiple notes (or chords)...so complex arrangements
are quite possible. In addition to the actual staves, you can also include
lyrics, musical symbols, etc. </P>

<P>I started to use MUP when I started to play saxophone in a small combo.
We all play from fake-type music (chords, lyrics and the melody line).
But I'm not the greatest sax player in the world and find it pretty hard
to transpose from C to B flat while sight reading. So, I started to rewrite
the C charts in to B flat by hand. I find anything which needs a pen to
be tedious, which is what led me to try MUP. After a few practice charts,
I can enter a page of one line music with lyrics in about an hour. And
since MUP can produce MIDI files as well as doing transpositions, it really
works well for what I needed. I can print the music in different keys for
everyone in the combo, and I can create a midi file in the right key for
practicing at home. </P>

<P>I have included the actual mup file I created for <A HREF="blackbird.mup">Bye
Bye Blackbird</A> and a <A HREF="./gx/poel/blackbird.jpg">printed music</A> image.</P>

<P>Flushed with the success of doing these simple charts, I decided to
try a more complex task. I also play in a fifteen piece dance band. Most
of the music we play is arranged by our leader, but recently some of the
members have doing them as well. So, I decided to give it a try. My first
arrangement of the old standard <A HREF="fever.mup">Fever</A> took the
better part of two days to complete. It is arranged for 11 voices on 6
staves. We played it the other night and I was pleased--not only was everyone
impressed by the appearance of the charts, it didn't sound to bad either.
I have printed out the first page of the <A HREF="./gx/poel/fever.jpg">conductor's
score</A> .</P>

<P>If you would like to see some of my other arrangements, I have posted
them along with a copy of this review from <A HREF="http://www.kootenay.com/~bvdpoel">http://www.kootenay.com/~bvdpoel</A>.</P>

<P>I certainly don't have room in this short review to cover all the features
of a complex program like MUP. Just a few of the more useful items I've
been using are if/else statements to produce charts for different instruments,
file includes to read in my own &quot;boiler plate&quot;, and macros to
make my input files easier to create, read and revise. </P>

<P>MUP comes complete with well written, 99 page users manual in postscript
(you'll have to print it out), as well as the the same information in HTML
format. Equally impressive is the customer support available via email.
I've sent a number of queries to the authors and have received courteous,
timely replies to each and every one. </P>

<P>MUP is not free. You can download a working copy of the program, the
source code if you want it, and the manual from <A HREF="http://www.Arkkra.com/">http://www.Arkkra.com</A>.
The program is a complete working copy--however it prints a &quot;this
is an unregistered copy&quot; watermark on all pages of the score. MUP
registration is only $29.00, after which you get a license which turns
off the marks. This is a pretty low price to pay for such a well thought
out program. </P>

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1998, Bob van der Poel <BR> 
Published in Issue 28 of <i>Linux Gazette</i>, May 1998</H5></center>

<!--===================================================================-->
<P> <hr> <P> 
<A HREF="./lg_toc28.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif" 
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./schweizer.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./celestino.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P> 

<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<h1><font color="maroon">Book Review: Netscape IFC In a Nutshell</font></h1>
<H4>By <a href="mailto:celestinor@acm.org">R. J. Celestino</a></H4>
</center>
<P> <HR> <P>  
<ul>
  <li>Authors:	Dean Petrich and David Flanagan
  <li>Publisher:	O'Reilly and Associates
  <li>E-mail:	<A HREF="mailto:info@oreilly.com">info@oreilly.com</A> 
  <li>URL:	<A HREF="http://www.oreilly.com/">http://www.oreilly.com/</A> 
  <li>Price:	$19.95 US
  <li>ISBN:	1-56592-343-X
</ul>
Netscape quietly released its Internet Foundation Classes (IFC) in the
spring of 1996. This free Java class library offers developers a welcome
alternative to the lifeless GUI widgets and basic graphics provided in
Sun's Abstract Windowing Toolkit (AWT). However, the IFC can be 
intimidating even for experienced Java developers. To effectively use the IFC, you must
learn its event model and its container model, both of which differ
from standard Java. Additionally, learning the IFL's
classes and API is no small endeavor. <i>Netscape IFC in a Nutshell</i>
helps, with good explanations, examples and a handy quick reference guide.
<p>
<i>Netscape IFC in a Nutshell</i> is written by Dan Petrich and
David Flanangan. In the Nutshell tradition, it is not too big or
intimidating. The cover graphic will surely lead IFC geeks to refer to
it as ``the fish book''. It weighs in at around 350 pages, approximately
140 pages of which are the quick reference section. This same reference
information is available in HTML format from Netscape. I think it is
helpful to complement on-line documentation with a compact hard copy
reference, and I'm sure we all agree that making notes in the margin of
an HTML page can be a bit difficult.
<p>
The book is far more than an API reference. It
takes you through the IFC classes in a logical and matter-of-fact
manner. Numerous examples cover most of the important aspects of the
IFC. The examples are typically small but effective. They are well focused
on the topics at hand and help immensely with understanding. 
The book does not include a CD-ROM, which is too bad as it would make a
nice addition to the book. As an alternative, O'Reilly and Associates could
have provided space on their web site for on-line examples and running
applets. Unfortunately, they didn't do that either, so be prepared to
type in each example and code fragment by hand.
<p>
The authors begin with a high-level introduction to the IFC. They discuss
its capabilities including the sophisticated GUI widgets, persistence
mechanism and the visual construction tool <i>Constructor</i>. If you
are not sure what the IFC is all about or if it's right for you, this
section is very helpful.
<p>
The next topic is an introduction to the most basic class in the IFC,
the Application Class. As an IFC user, I have noticed that the IFC often
departs from traditional Java vernacular. The Application class is one
example of many you will come across. Seasoned Java developers typically
understand <i>application</i> to mean a stand-alone Java program,
and <i>applet</i> to mean a restricted Java program that runs in a
browser. Forget all that when using the IFC. Every running IFC program,
be it stand-alone or applet, is an application. Don't worry though;
it's all explained very simply in this chapter using the power of the
venerable <b>Hello World</b> program.
<p>
Having straightened out what an application is, the book takes you
through a good explanation of the IFC's View classes. View classes in
the IFC are akin to the Container classes in standard Java, but with
differences in both architecture and capabilities. The authors devote
three chapters to a discussion of these classes. They make good use of
examples to show you many of the important features, from tiling a
bitmap on the background to drawing.
<p>
Users interact with GUIs using a mouse and keyboard. In Java, these
devices make themselves known by generating <i>events</i>. The mechanism
by which these events are made available to your program is known as the
event model. The Java standard event model has evolved over its short
lifetime. It began as an inheritance-based model, eventually maturing to
the more powerful delegation-based model used today. The IFC uses a hybrid
model. The chapter on mouse and keyboard events covers the inheritance-based model. The chapter on targets covers the IFCs implementation of
delegation-style event handling. The details of using each type of event
are discussed in reasonable detail. Numerous examples show how to code
your own event processing. However, I felt that the authors should have
contrasted the two styles better. In addition, it would be helpful if
they offered some guidelines on when to use each model.
<p>
The book moves on to cover each widget in considerable detail. Remember
that the IFC provides a replacement for every standard widget, so even
items as simple as a push-button or text field have a new API. These
chapters really drive home the power of these IFC widgets, making the
traditional widgets from Sun look absolutely bland.
<p>
I found their treatment of scrolling particularly useful. The IFC
provides a framework to support scrolling of text and graphics. While
very powerful, understanding the details can be daunting. The authors
present scrolling clearly and offer good illustrative examples. With
the details in this chapter, you will be able to add scrolling to any
application with ease.
<p>
Another excellent section is the one on layout managers. Layout managers
are classes that help View classes decide upon the size and position of
the widgets they contain. The IFC includes a powerful new layout manager,
the PackLayout. The book covers this complex layout manager in excellent
detail. Outside of this book, there is virtually no useful documentation
on the true behavior of the pack layout.
<p>
Anyone who has ever written an applet that displays images will
eventually reach the conclusion ``why don't they handle all of this mess
for me?'' Netscape's engineers felt the same way, and they did something
about it. In the chapters on images and animation, you will learn how
simply your application can read and display image files (both GIFs and
JPEGs). Creating animation is a simple matter as
well. The book explains how the IFC handles threading, sequencing and
double buffering. If you are interested in images and animation,
these chapters will get you going quickly and painlessly.
<p>
In the <i>Advanced Topics</i> section, the authors cover the details of
the TextView class, archives, and the free GUI builder Constructor.
<p>
The authors rightly spend a considerable amount of time discussing the TextView
class. They show how to use TextView to display
HTML documents, handle hyperlinks, open a mini editor and more. With all
this versatility from a single component, it is a comfort to have clear
explanations and examples to lead you.
<p>
The authors next discuss archives. Archives provide object
persistence. Every class in the IFC can be archived to disk so that it
can outlive the process that created it. The authors detail how to use
IFC archives to read and write objects in a number of situations. They
also discuss how to archive existing IFC classes and explain how
to archive classes that you have created.
<p>
Finally, you will learn how to use Netscape Constructor. Unlike the rest
of the IFC, Constructor is an application not a component. Perhaps
this is why the chapter is so skimpy. Considering this chapter is
in the ``Advanced Topics'' section, I would have expected more detailed
information. Nonetheless, the chapter does provide some good information
on few aspects of the elusive Constructor.
<p>
The GUIs that are created using the IFC are truly a pleasure to
behold. The widgets, in stark contrast to their plain Java brethren, have
a polished look and feel. Some of the components, such as TextView,
are so powerful that they could be marketed on their own. Learning such
a comprehensive class library can be downright scary. 
<i>Netscape IFC in a Nutshell</i> provides numerous easy to follow examples,
detailed explanations and a quick reference guide.
<p>
Eventually, the IFC will be subsumed by the Java Foundation Classes (JFC),
a joint venture between Sun and Netscape. But if you want beautiful
user interfaces today, the IFC is the way to go, and <i>Netscape IFC in a
Nutshell</i> is a great way to get you there.

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1998, R. J. Celestino <BR> 
Published in Issue 28 of <i>Linux Gazette</i>, May 1998</H5></center>

<!--===================================================================-->
<P> <hr> <P> 
<A HREF="./lg_toc28.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif" 
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./poel.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./ayers1.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P> 

<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center><h1>The Xfstt True-Type Font Server</h1></center>

<center>
<h4>By <a href="mailto:layers@marktwain.net">Larry Ayers</a></h4>
</center>
<P> <hr><P> 


<center><h3>Introduction</h3></center>

<p>After using Linux for some time I had developed a less-than-favorable
attitude towards TrueType fonts, partly because of their close association
with Microsoft products and partly because of the high-quality printed output
which Postscript fonts typically yield. I had become accustomed to the
poor-quality of the X windows screen display when using scaled (rather than
bit-mapped) PS fonts, only occasionally finding the un-aliased jagginess of
certain font sizes jarring.  This is particularly noticeable in Netscape when
large fonts are displayed (titles, etc).

<p>It was with some bemusement that I read various announcements of TrueType
font-renderers and libraries for Linux in the past year.  "Why", I wondered,
"are people expending so much energy developing TTF support for Linux when
Postscript fonts are supposed to be superior in so many ways?".  I supposed
these packages were for people who had bought TrueType fonts and wanted them
available under Linux.

<p>Last month I was idly scanning messages posted to the XEmacs-beta mailing
list.  I happened across a passing reference to the use of something called
xfstt to provide TrueType fonts for XEmacs.  The writer of the message stated
that these fonts display well under X windows.  This intrigued me, and later I 
happened to be discussing various Linux matters with Chris Gonnerman, who runs 
a small computer business in a nearby small town here in northern Missouri.
He showed me a Linux machine running a TT font-server, which piqued my
interest further.


<p>A few days later I saw an announcement posted on the
<a href="http://freshmeat.net">freshmeat</a> web-site stating that xfstt-0.9.8 
had just been released.  Something about a new release irrationally induces me 
to try it out, so I got the package from 
<a href="ftp://sunsite.unc.edu/pub/Linux/X11/fonts/Xfstt-0.9.8.tgz">Sunsite</a> 
and compiled it.

<center><h3>Getting Xfstt to Work</h3></center>

<p>Xfstt is being developed by Herbert Duerr, and as far as I can tell it
seems to be a one-man project.  The documentation is rather scanty, but the
FAQ file in the distribution provides enough information to get started.
Xfstt is a font server similar to X's native xfs.  Once the server has been
compiled and installed, all that needs to be done is to populate the
directory&nbsp; <kbd>/usr/ttfonts</kbd>&nbsp; with *.ttf files (this directory
should have been created for you during the installation process), run
&nbsp;<kbd>xfstt -sync</kbd> (which lets the server know about the fonts),
then add the following line to your XF86Config file, near the end of the
font-path section:<br>

<p>&nbsp;&nbsp;<kbd>Fontpath   "unix/:7100"</kbd>

<p>I'm guessing that the "path" above is actually the port at which xfstt
listens for font-requests from applications.

<p>Once these tasks have been completed, shut down X and execute the
backgrounded command &nbsp;<kbd>xfstt &</kbd>, wait a few seconds, then
restart X.  The easiest way to try it out is to start Netscape, and in the
Options-&gt;General Preferences-&gt;Fonts dialog scroll through your installed
fonts and select one with (Ttf) appended to the font-name.  Netscape showcases 
xfstt's capabilities due to the variety of font-sizes in many web-pages.  The
larger fonts in particular are much improved, without the jagginess they
usually exhibit.

<p>A little experimentation is needed to determine which of your applications
can make use of these fonts.  The Gimp will use them, but it already does a
good job smoothing Postscript fonts, and I didn't see any great improvement
using TrueType fonts.  XEmacs will display scalable fonts, but I'd never used
it for long with Postscript fonts due to X-induced scaling and rendering
problems.  The new TT fonts will be available from the Options menu and the
improvement is remarkable.

<p>Another use for this font server is as a supplier of window-manager title
and menu fonts.  A well-chosen font can really enhance the appearance of a
desktop; I've tried this with fvwm2 and icewm, and I'm sure it would work with 
others.  Lines such as these:<br>

<p><pre>MenuStyle  gold darkslateblue bisque3 -ttf-americana-bold-r-*-*-12-*-*-*-*-*-*-* mwm

WindowFont&nbsp;&nbsp;&nbsp;-ttf-americana-bold-r-*-*-14-*-*-*-*-*-*-*
</pre><br>

<p>(for fvwm2)should work.  The <em>-ttf-</em> prefix of the font-specifier is
the usual location of the font foundry name, such as Adobe or Bitstream.

<p>According to the xfstt FAQ the StarOffice suite, the Xcoral editor, and
Java can use these fonts, but I haven't tried them.  The distribution includes
a sample <kbd>font.properties</kbd> file for use with Java.

<center><h3>Possible Problems</h3></center>

<p>The xfstt FAQ lists several problems people have had, mostly due to
misconfiguration.  The only one I've seen is not serious, but deserves
mention.  Once your XF86Config file has been modified (with the new Fontpath
added) the xfstt server will need to be running first before X is started.  If 
it's not running, X will fail to start, generating one of those classicly
cryptic error messages X is so fond of:<br><pre>
&nbsp;&nbsp;<kbd>_FontTransSocketUNIXConnect: Can't connect: errno = 111</kbd>
&nbsp;&nbsp;<kbd>_X11TransSocketUNIXConnect: Can't connect: errno = 111</kbd>
</pre>


<p>Either xfstt will have to be started from the rc.init scripts (and thus
be running constantly) or it can be manually started just before starting an 
X session. A shell script or alias could also be used to first start xfstt 
followed by X.

<center><h3>Other Implementations</h3></center>

<p>Xfstt isn't the only way to use TT fonts in a Linux X session.  Another
project consists of a series of patches to the XFree86 source which will
enable X's native font-server to provide TT fonts.  Confusingly, the name of
the project is <em>xfsft</em>.  The home page of this effort is a good
central site for other information on the web concerning TrueType fonts and
Linux.  It can be accessed
<a href="http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/">here</a>.  A link
on the page will take you to the FTP site where the patches can be found.
The site also contains links to screen-shots of Netscape displaying TT fonts.

<p>The <em>Freetype</em> project is yet another approach.  It isn't an
end-user application or server, but a library intended for use by programmers
desiring to embed TT support in their applications; the project home-page is
<a href="http://www.physiol.med.tu-muenchen.de/~robert/freetype.htm">here</a>.

<center><h3>Conclusions</h3></center>

<p>According to Herbert Duerr (in the FAQ) TT fonts are particularly suited
for display on low-resolution devices such as a computer monitor.  Even though 
xfstt doesn't do any anti-aliasing of the fonts (since there's no support for
this in X) nonetheless the fonts are displayed very clearly in all sizes.
Unix traditionalists will stick with their tried-and-true fixed-width fonts,
but users familiar with the font display properties of the various mswindows
OS's might want to give xfstt a try.  It sure works well for me! 

<hr>

<!-- hhmts start -->
Last modified: Wed 29 Apr 1998
<!-- hhmts end -->

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1998, Larry Ayers <BR> 
Published in Issue 28 of <i>Linux Gazette</i>, May 1998</H5></center>

<!--===================================================================-->
<P> <hr> <P> 
<A HREF="./lg_toc28.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif" 
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./celestino.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./ayers2.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P> 

<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center><h1>Updates to Past Reviews</h1></center>

<center>
<h4>By <a href="mailto:layers@marktwain.net">Larry Ayers</a></h4>
</center>
<P> <hr>

<p>The Linux software world has been extraordinarily fecund lately.  I could
write all day every day and still not adequately describe and evaluate the
many new software packages released in the past couple of months.  But I need
to backtrack a bit and bring up-to-date some of the reviews from past issues
of the Gazette (otherwise I'll be spending much time answering e-mail
concerning broken links, etc.).
<P> <hr>

<p>

<center><h3>Icewm</h3></center>

<p>I LG #21 I wrote a short piece about the first public beta of Marco Macek's
window-manager <strong>icewm</strong>; afterwards I continued to use it from
time to time until it began crashing at random intervals, which discouraged
me.  Lately I'd noticed several new icewm releases mentioned on various Linux
web-sites, so I thought I'd try the most recent one (as I write this, the
current version is 0.8.16; they have been incrementing rapidly, so there is
probably a newer one by the time you read this).

<p>I've probably tried just about every window-manager out there; perhaps I'm
becoming a trifle jaded, but the prospect of spending hours, if not days,
learning to configure a WM to my liking isn't too appealing.  I did just that
with fvwm2 a couple of years ago and just don't have the time or inclination
to repeat the process.  I've tried Enlightenment, Afterstep and WindowMaker,
and though I appreciate their features and configurability, I haven't yet
devoted the time needed to effectively use them.  Icewm is by design not as
complex and feature-laden as the above-mentioned managers, therefore
developing a pleasing and usable configuration can be done in a fairly short
time.

<p>Memory usage is another factor to consider.  Most window-managers tend to
use about one megabyte of memory, but the various modules (such as fvwm2's
pager and Afterstep's numerous add-ons) add significant amounts.  Although
minimalist managers such as wmx are available, they seem to use nearly the
same amount of memory as fvwm2 (in wmx's case, possibly because of the use of
the shaped window X-extension).  Icewm uses a remarkably small amount of
memory (averaging about 600-800 kb. on my system), considering that it does
90% of what the others do.

<p>I asked Marco Macek what his original motivations were when he started
coding icewm, and this was his response:<br>

<blockquote>Well, I was using fvwm and while it was quite configurable, there
were lots of little things that I could never get right, even if by hacking
the source. I wanted the wm that would feel right to users used to CUA-style
GUIs (windows, os2, motif). fvwm95 was an improvement (I contributed a few
things to it), but since I wanted a more configurable look, I quickly realized
that writing it from scratch was the right thing to do. The result seems to be
a leaner WM that feels good to use.  At least to me (and it seems quite a few
other people). For me, the feel is more important than look. People get much
more used to feel (keystrokes, behaviour) than look. That is the reason for
configurable look but not feel. Changing the look occasionally makes things
interesting while the feel should really stay the same.
</blockquote>

<p>Icewm isn't difficult or time-consuming to set up.  Several pre-defined
themes are included, and the configuration variables are split into several
files, making it easy to edit, say, just the colors or menus without having to 
wade through a long config file looking for particular sections.  The icons
can take some time, as they need to have particular sizes and filenames in
order for icewm to be able to make use of them.  Any item in the root menu can 
have a mini-icon displayed next to its menu-entry, with the same icon used as
the leftmost titlebar icon.  John Bradley's excellent xv graphics program can
be used to resize an *.xpm file to 16x16 and 32x32 pixels, which are the two
sizes needed.  The icon files then need to be renamed to
<em>[name]_16x16.xpm</em> and <em>[name]_32x32.xpm</em> and put in the
window-manager's icon directory, which defaults to
<kbd>/usr/local/lib/X11/icewm/icons</kbd>.

<p>The menu configuration file, located in&nbsp;
<kbd>/usr/local/lib/X11/icewm/menu</kbd> has entries in this format:<br>

<p><kbd>prog Xvile edit xvile</kbd><br>

<p>The first word after "prog" is the name as you want it shown in the menu,
the second word is the prefix of the xpm icon-file (that is, the part before
the underscore), and the third word is the command which actually starts the
program.  If there are no icon-files named <kbd>edit_16x16.xpm</kbd>
and <kbd>edit_32x32.xpm</kbd> error messages will be displayed on the console
from which X was started but they are harmless and default icons will be used
in the titlebar, while there won't be one at all next to the corresponding
menu-entry.

<p>If you happen to try editing any of the theme configuration files (where
the various frame and title-bar colors are set) you will notice that the
colors are specified in hex format (such as "rgb:E0/E0/E0"), which isn't too
intuitive.  After configuring various X windows programs for a while, you
probably will be able to remember several favorite color-names from the rgb.txt
color-database file,  such as darkslateblue and navajowhite.  This isn't
mentioned in the icewm docs, but I've found that these easily-remembered
color-names can be substituted for the hex names and will work just as well.
Just remember to put the names within double quotes. 

<p>One feature of fvwm which I've grown accustomed to, and which icewm can
also do, is displaying certain windows without a titlebar and/or appearing on
all desktops.  The icewm docs explain these settings.  A pager isn't included, 
but the Afterstep-like "workspaces" icewm provides perform a similar
function.  The win95-like taskbar, complete with a start-menu, is a help while 
gaining familiarity with the window-manager, but its functions are available
using either the keyboard or the root-menu, and it can be turned off by
setting <kbd>ShowTaskBar=0</kbd> in the preferences config file.

<p>Admittedly, this sort of desktop configuration is much easier with KDE
beta4, but you pay for the ease of using and configuring KDE; it uses a
quite a bit of memory and takes an awfully long time to start up.  Of
all the window-managers I've used, icewm and Chris Cannam's wmx seem to be the 
quickest to start.

<p>I think that with the release of version 0.8.16 icewm is stable enough for
heavy use and deserves wider exposure.  Marco Macek is currently adapting icewm
to the GNOME desktop, and further enhancements are likely.     

<center><h3>Maxwell</h3></center>

<p>Naturally, as soon as LG #27 appeared, the link I had provided for the
binary Maxwell word-processor distribution was no longer valid.  The Sunsite
incoming directory was cleaned up for the first time in many months and the
file was moved.  Here are two links which hopefully will work for a while:

<ul>
  <li><a
      href="ftp://ftp.demon.co.uk/pub/linux/apps/maxwell/maxwell-0.5.2.tar.gz">British site</a>
  <li><a
      href="ftp://sunsite.unc.edu/pub/Linux/apps/wp/maxwell-0.5.2.tar.gz">US site</a>
</ul>

<p>Still no news on whether Maxwell's source will be made available or not.

<center><h3>NEdit</h3></center>

<p>NEdit version 5.02 was released recently.  It's available from the home
<a href="ftp://ftp.fnal.gov/KITS/pub/nedit/v5_0_2">site</a>.  This Motif-based 
editor has become increasingly popular due to its easy-to-learn interface and
intuitive mouse support.  Its CUA-style menus and keystrokes are easy to learn 
for users coming from a windows or mac background, and it's a good choice for
people desiring a powerful, syntax-highlighting editor complete with a native
macro language.  If the prospect of learning Emacs or VI is daunting, NEdit is
ideal.

<center><h3>XaoS</h3></center>

<p>Version 3.00 of the fast interactive fractal zoomer XaoS was released
recently by its maintainer Jan Hubicka of Czechoslovakia.  Xaos is now
officially a part of the GNU project; I'm not sure just what this means beyond 
receiving Richard Stallman's blessing and new availability from the
<a href="ftp://ftp.gnu.org/pub/gnu">GNU</a> FTP site.

<p>This version has many new features, though the interface to them is still a
series of text-based information panels.  An interesting animated tutorial is
now included which can be accessed by typing <b>h</b> twice.  There are
now so many new options and filters that the tutorial is very helpful in
gaining an overview of XaoS's powers.  Check out the "motion blur" filter,
which really makes you feel like you are plunging headlong into the fractal
depths. Here's a small screenshot:<br>

<p><img alt="motion blur screenshot" src="./gx/ayers/motion.gif">

<p>Another nice effect is gray-scale embossed fractal zooming, which looks
like this:<br>

<p><img alt="embossed fractal" src="./gx/ayers/emboss.gif">

<p>XaoS has really come a long way since the first version I tried.  Keep up
the good work, Jan!

<center><h3>Tcd</h3></center>A non-beta 2.1 release of Tcd and its GTK version
Gtcd is now available from the home
<a href="http://flow.ml.org/tcd">site</a>.  This has become one the nicest
CD-players available, with theme support using pixmap backgrounds.  Several
sample themes are included, several of which were contributed by users.  The
bug which caused the GTK version to crash at the end of a CD has been fixed,
and the CDDB support has been enhanced.

<center><h3>XEphem</h3></center>

<p>Version 3.1 of XEphem, Elwood Downey's astronomical program which I wrote
about in LG #25, has been released.  Noteworthy is the announcement on the
XEphem <a href="http://iraf.noao.edu/~ecdowney/xephem.html">home</a> page of
recent successes compiling XEphem with Lesstif rather than Motif.  Here are
some of the other new features:<br>

<p>&nbsp;&nbsp;Sky View:
<ul>
         <li>improved grid 
         <li>improved DSS FITS networking code 
         <li>improved layout and drawing 
         <li>separate limiting magnitudes for deep sky and stars 
</ul>
<p>&nbsp;&nbsp;General: 
<ul>
         <li>brighter color scheme is now the default 
         <li>printing includes Mars, Moon and Sky View images 
         <li>support for network Proxies, SOCKS and firewalls 
         <li>support for Delta T 
         <li>simpler installation 
         <li>many small but welcome changes 
</ul>

<center><h3>Lout</h3></center>

Jeffrey H. Kingston has released the source for version 3.12 of <b>Lout</b>,
an upstart TeX/LaTeX competitor.  New in this release is an option to output
PDF documents rather than Postscript.  As usual, the GPL-ed source can be
obtained from this <a href="ftp://ftp.cs.usyd.edu.au/jeff/lout/">FTP</a>
site. 

<center><h3>WordNet</h3></center>

<p>In my review of the WordNet dictionary/thesaurus package last issue I
mentioned that it would be useful to be able to compile the source, and that
success had eluded me.  <a href="mailto:rdn@tara.n.eunet.de">Christopher
Richardson</a> e-mailed me a suggestion which enabled the WordNet files to
build here; it's worth trying this if you have installed the package.  The
change is small, just a couple of lines in the top-level Makefile.

<p>Try commenting out line number 101 (<kbd>LOCAL_LDFLAGS = -static</kbd>),
then change line 135 from<br>

<p><kbd>#WNB_LIBS = -ltk4.2 -ltcl7.6 -lX11 -lm -ldl -lsocket -lnsl</kbd><br>

<p>to<br>

<p><kbd>WNB_LIBS = -ltk4.2 -ltcl7.6 -lX11 -lm -ldl # -lsocket -lnsl</kbd>

<p>The other changes needed in the Makefile are explained well in the
comments.  A natively compiled WordNet wish interpreter is only 61 kb.,
whereas the included statically-linked interpreter is 1.39 mb.

<center><h3>S-lang</h3></center>

<p>John Davis, developer of the S-Lang programming language and a collection
of excellent programs which make use of it, has released a new version of the
S-Lang library package, along with new versions of the <b>slrn</b> newsreader,
the <b>jed</b> emacs-like editor, and the <b>most</b> pager.  One of the most
interesting changes is the inclusion of exhaustive and readable documentation
in a variety of formats for the S-lang language.  If you install the new
S-lang library and header files any applications which use S-lang will have to
be recompiled.

<center><h3>Bomb</h3></center>

<p>Scott Draves has released a new version of his Bomb interactive visual
stimulus package, which I reviewed in LG #18.  The svgalib and X programs have
been merged into one executable, and it now works in X windows on 8, 16, and
32 bpp displays.  An interesting new feature is the addition of Scheme-based
scripting. GNU Guile is the Scheme-variant which Bomb needs, and a compiled
libguile and other necessary files are included in the archive along with a
script which is supposed to run Bomb with these files loaded rather than with
any Guile version which might happen to be installed elsewhere.  I couldn't
get it to work, though it looks to be an interesting development.  Several
sample Scheme scripts are included as examples.  Rather than needing separate
executables for console use (using svgalib) and X, this new version will
detect the current display-type and adapt itself accordingly.  Bomb in an X
session is no longer limited to 8-bit (256 color) displays; I've been using it
in 16-bit X sessions and it works well, though it runs somewhat slower than in
in a full-screen console display.  Perhaps when Guile development stabilizes
and a new official release is available (1.2 is the current release),
scripting Bomb's behaviour will be possible for Linux users.  Perhaps my Guile 
problems with bomb are due to my particular set-up; if it worked for you, let
me know!

<p>Version 1.18 of Bomb is available from this WWW
<a href="http://www.cs.cmu.edu/~spot/bomb.html">site</a>.
<hr>

<!-- hhmts start -->
Last modified: Wed 29 Apr 1998
<!-- hhmts end -->

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1998, Larry Ayers <BR> 
Published in Issue 28 of <i>Linux Gazette</i>, May 1998</H5></center>

<!--===================================================================-->
<P> <hr> <P> 
<A HREF="./lg_toc28.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif" 
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./ayers1.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./raymond.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P> 

<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<h1><font color="maroon">Open Source Summit</font></h1>
<H4>By <a href="mailto:esr@thyrsus.com">Eric Raymond</a></H4>
</center>
<P> <HR> <P>  

On April 7th, 1998, a select group of the most influential people in the
Open Source community gathered in Palo Alto to meet each other, consider the
implications of Netscape's browser source release, and discuss where the
Open Source movement is headed (and, especially how it can work with the market
rather than against it, for the benefit of both).
<p>
The summit was hosted by O'Reilly & Associates, a company that has been
symbiotic with the Open Source movement for many years. Linux's own Linus
Torvalds attended. The inventors of all three major scripting
languages were present: Larry Wall (Perl), John Ousterhout (Tcl) and
Guido Van Rossum (Python). Eric Allman (Sendmail) and Paul Vixie
(BIND/DNS) were present, representing their own projects and the BSD
community. Phil Zimmerman, the author of PGP, was there too, as was
John Gilmore, a co-founder of Cygnus and the Electronic Frontier
Foundation. Brian Behlendorf spoke for the maintainers of
Apache. Jamie Zawinski and Tom Paquin represented Netscape and
mozilla.org. For my semi-accidental role in motivating the Netscape
source release with ``The Cathedral and the Bazaar'', I also had the
honor to be among those invited.
<p>
We met from 8:30AM to 5PM, following up with a well-attended press
briefing. It was invigorating just to be around the amount of
intelligence and accomplishment there, and a bit sobering to realize
how absolutely critical their work has become--not just to the
hacker culture but to the world expecting the Internet
to become the vital communications medium of the next century.
<p>
One of the most important purposes of the meeting was simply to permit
everyone to meet face to face, shake hands, look in each others' eyes and
hear each others' voices. Many of us had never actually met each
other before, despite having been in e-mail conversations for
many years. Tim O'Reilly felt (correctly, I think) that Net contact
has not been quite enough as a community builder; that the
opportunities and challenges we face now require an attempt to build
more personal trust among the chieftains of the major Open Source
tribes.
<p>
In that, I think, the meeting was very successful. But it also
certainly dealt with substance as well. We discussed different
perspectives on the Open source/free software phenomenon and different
definitions of it. One of the meeting's important results was a general
agreement that, in all the variant definitions, <i>public access to
source</i> was the most important and only absolutely critical common
element.
<p>
We discussed the vexing issue of labels, considering the implications
of ``freeware'', ``sourceware'', ``open source'', and ``freed software''.
After a vote, we agreed to use ``Open Source'' as our label. The
implication of this label is that we intend to convince the corporate
world to adopt our way for economic, self-interested, non-ideological
reasons. (This is the line of attack I've been pursuing though
<A HREF="http://www.opensource.org">www.opensource.org</A> and many recent interviews with the national press.)
<p>
We talked about business models. Several people in the room are facing
questions about how to ride the interface between the market and the
hacker culture. Netscape is approaching this from one side; Scriptics
(John Ousterhout's Tcl company) and Eric Allman's commercial Sendmail
launch are approaching it from the other. No one is certain yet what will
work, but we were able to identify common problems and some possible
strategies for attacking them.
<p>
We talked about development models--the various ways in which
projects are organized, the strengths and weaknesses of each model, and
what our individual experiences have been.
There were no magic insights, but again it seemed helpful to 
recognize common problems.
<p>
We all understood this meeting could be only a beginning. Late in the
day we developed a tentative agenda for a larger follow-up conference
which O'Reilly may host later in the year. We hope to bring other
key people from the Open Source community in on that follow-up--one of
the last things Tim asked us to think about
was who should have been with us, but was not.
<p>
The day ended with a well-attended press briefing at which all of us
answered questions from Bay Area and national reporters--some got the
message, some didn't. For every one that genuinely wanted to
understand the logic of the Open Source approach, there was another
who repeated ``lets-you-and-him-fight'' questions about Microsoft.
Still, the first burst of publicity about our gathering (it is two days later
as I write) has been very positive.
<p>
We are entering a very exciting time. In the wake of the Netscape
release, the Open Source community, has achieved a visibility it never
had before. We're making friends in new places and meeting new
challenges. The larger world we're now trying to persuade to adopt
our way doesn't care about our factional differences; it wants to know
what we can do for it that is valuable enough to motivate a major
change in the ground rules of the software industry.
<p>
To do that persuading, we'll need to pull together as one community
more than we have in the past. We--not just the Linux community but
the BSD people, the Perl, Python and Tcl hackers, the
Internet infrastructure people and the Free Software
Foundation--will need to present one face and speak one language
and tell one story to that larger world.
<p>
That is, ultimately, why this meeting was so important. All of us came
away with a better sense of what that story is and how each of the
major tribes fits into it. Just the fact that we faced the reporters
(and, by extension, the rest of the world) together was a very
powerful statement. The summit was a good beginning--one to build
on in the coming months.

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1998, Eric Raymond <BR> 
Published in Issue 28 of <i>Linux Gazette</i>, May 1998</H5></center>

<!--===================================================================-->
<P> <hr> <P> 
<A HREF="./lg_toc28.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif" 
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./ayers2.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./rossum.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P> 

<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<H1><font color="maroon">Open Source Summit Trip Report</font></H1>
<H4>By <a href="mailto:guido@CNRI.Reston.Va.US">Guido van Rossum</a></H4>
</center>
<P> <HR> <P>  
Date: Fri, 10 Apr 1998 <BR> 
This last Tuesday was the date for O'Reilly's Freeware Open Source
summit and press conference.  I promised a few people a trip report,
and decided I might as well post it to the Python newsgroup.  Warning:
this is biased and may occasionally be mistaken where facts are
concerned -- read at your own risk!  It's also longer than I planned
-- we did cover a lot...
<P>
<H4>Background</H4> 
<P>
Tim O'Reilly realized that freely available software is much more
important for the Internet than most people, especially many of the
higher level decision makers and their informers (e.g. the press)
think.  The common perception is that the Internet is mostly built on
proprietary software, e.g. Solaris, Netscape, and Microsoft products.
But in fact, many crucial pieces of software are in fact not
proprietary: sendmail delivers 80% of all email mail, BIND (the
Berkeley Internet Name Daemon) does most of the name-to-IP-address
translations, Apache is the #1 web server, the most popular encryption
software is PGP, the three most commonly used scripting languages are
Perl, Tcl and Python, and so on.
<P>
All these great pieces of software are freely available in source
form!  What's going on here?  Of course, we all know why this is --
this is a great software development model.  But corporate America is
slow to discover this.  The release of the Mozilla sources by Netscape
was the first hint that this may be changing -- and once this was
announced, O'Reilly started to receive calls from the press about this
mysterious "freeware", and realized there was an opportunity to
increase the press's awareness of open source software.
<P>
The meeting had two distinct parts: first, the invited software
developers discussed the merits and problems of open source software,
their plans, and so on.  Second, at the end of the day we held a press
conference.  I'll report on both events separately.
<P>
<H4>The Summit</H4> 
<P>
Basically, the gathered software developers talked amongst themselves
from 9 till 5.  It would have lasted all week if it weren't for Tim
O'Reilly's talent as a moderator!  Most participants were from the Bay
Area; I flew in from Washington DC, and John Ousterhout (who normally
also lives there) interrupted his vacation in Hawaii for a day.
<P>
We started off by a round where everyone was asked to mention their
motivation and positive experiences: why did make source available,
what worked well, what do you like about the process.  In the end we
agreed on two main reasons why the open source development model works
so well.  Most other reasons can be reduced to a special case of
either of these.
<P>
One, from the developer's point of view, there's the advantage of
*massive peer review* (also formulated as "debugging is
parallellizable").  There is no other methodology for software
development that yields software that is as reliable and robust as
open source.
<P>
Two, from the user's point of view, the big advantage of open source
flexibility.  Linus Torvalds emphasized this with the following
example: he is generally quite happy with Netscape's browser, but he
has one wish: to disable animated GIFs, which are used almost
exclusively for advertising.  Without source, he couldn't do this!
(Jamie Zawinski of Netscape called this "scratching itches." :-)
<P>
Other advantages of open source software development that were
mentioned included low cost technology transfer, and the use of a
reference implementation to help develop a standard.
<P>
As far as the initial motivation for making source available, a
(surprising, to me!) large number of developers said their initial or
ulterior motivation was moral/ethical: they believe that it is "the
right thing to do" to make source available.  
<P>
In the next round, we discussed our negative experiences -- what
doesn't work, what are your biggest problems, and so on.  Apart from
some joke entries like "our biggest problem are stupid people", 
two problems were common.
<P>
One, as a package becomes more popular, the developer spends more time
on helping users than on developing software.  While there are ways to
avoid this (e.g., don't answer email), it remains a problem -- without
a support organization, you're it!  This can be summarized as "you're
crushed by your own success."
<P>
Two, it's often a problem to get the people who want to contribute to
do so in a meaningful manner.  The darkest picture was painted by John
Ousterhout, who claims that a contributed patch saves him only 50% of
the development time compared to writing it himself from scratch.
Some agreed; others (like me) rebutted that it's a sliding scale --
yes, for the core of the package, this may be true -- but there are
many peripheral items where much contributed code can be accepted "as
is" -- even if it doesn't work -- since the massive peer review /
debugging once it is released will eventually fix it.  Linus has an
extreme but clear point of view: the *interfaces* need to be designed
carefully by the main developer; the implementations may be buggy.
For example, Linus doesn't mind at all if there are some buggy device
drivers -- that only affects a small number of people, and only until
they get fixed -- while a bad design will haunt you until the end of
times.  (This matches my own experience, but Linus said it clearer.)
<P>
This boils down to a matter of control.  It was noted that almost all
systems represented have a core that's kept under (relatively) tight
control by the main developer, and a well-defined and flexible
extension mechanism which is used by most contributors, where control
is less important.
<P>
Other problems that were mentioned included the current intellectual
property laws and the way the legal system is abused to enforce them
in strange ways, and unfair "badmouthing" of open source software by
competitors trying to peddle proprietary solutions.  Also, the
distribution model (revenue model) isn't ideal -- you can't buy most
freeware packages at your local neighborhood software supermarket,
even in Palo Alto.  (You can buy Red Hat Linux there, though!)  Code
bloat was also mentioned (but the Netscape boys pointed out that this
is not a unique problem of open source software :-).
<P>
After lunch, we discussed what to do about the problems.
<P>
We didn't say much more about the control issues, except to note that
managing a distributed development team like the contributors to the
average open source package is a bit like herding cats.  (The first
time this came up I heard "hurting cats", which I found a bit strange
-- luckily Tim or other O'Reilly people made copious notes on a
flip board. :-) The best contribution (for me) came from Eric Raymond
and Cygnus' John Gilmore, who noted that it's possible to train your
contributors, (e.g. through style guides, coding standards etc.), and
that this is actually an effective way to improve the quality of the
contributions.  One way to go at it is simply saving scraps of
"internal documentation" as you are producing them, e.g., in response
to email questions from other developers, and in a couple of years,
voila, an internals manual!
<P>
The rest of the time (and also interspersed throughout the rest of the 
day) we discussed various business models that may make open source a
sustainable activity, rather than a hobby or a questionable skunkworks 
activity.
<P>
It turns out that almost everyone present was involved in an attempt
to commercialize their software -- and *everyone* wanted to do so
without making the sources proprietary.  Everybody's situation is a
little different though -- sometimes because of the user base of their
software, sometimes because of the competition, sometimes for legal
reasons, and sometimes simply because they have different motivation.
<P>
For example, John Gilmore told us how Cygnus is successful selling GCC
ports to the embedded systems industry -- a small niche market that,
before Cygnus came in, was monopolized by a small number of compiler
companies who'd charge a million to retarget an existing compiler to a
slightly different chip.
<P>
Another success story was told by Sameer Parekh of C2Net, who are
selling Stronghold, a commercial, secure version of Apache.  Because
of the patent situation on encryption software, there is no free
encryption code that can be used for commercial purposes, so companies
in need of a web server with encryption have to pay *some* vendor.
Note that C2Net provides their customers with the source for their
version of Apache, but only with binaries of their encryption library.
<P>
Yet another story was told by Paul Vixie of the Internet Software
Consortium, a non-profit that's maintaining BIND.  Some big computer
vendors paid the ISC a lot of money for Paul to further develop BIND,
and didn't mind that Paul would make the sources available for free to
others, as long as the work got done.
<P>
There were also those for whom it was too early to declare success (or
failure): Larry Wall and Linus Torvalds aren't making any money
directly off selling copies of Perl and Linux.  Others are though, and
of course O'Reilly makes a lot of money on the Perl books -- as are
other publishers.  Linus has an exciting non-Linux related job at
Transmeta, and has no plans to personally commercialize Linux; Larry
however is working for O'Reilly and there are some plans to
commercialize at least the Windows port (which is done by an outside
company with some kind of license agreement from O'Reilly).
<P>
John Ousterhout has just made the jump to the commercial world for
Tcl/Tk with his new company Scriptics, formed after Sun canceled its
plans for producing Tcl/Tk products.  John is planning on a mixture of 
open source and proprietary software: Tcl and Tk themselves will
remain open source forever, but Scriptics plans to make money off
proprietary tools like a debugger and a source analyzer.  One reason
to keep Tcl/Tk free is to ensure that nobody has an incentive to "fork 
off" an incompatible version.
<P>
Eric Allman of Senmail, Inc told a similar story -- he had first hoped
to create a consortium but found all doors closed, so in order to
remain in control he quit his job and formed Sendmail, Inc. with Greg
Olson.  He promises that a free version will remain available, but
seems to aim at licensing it to the big computer vendors.
<P>
While everybody's story is different, there's one common line:
everybody is working on a *sustainable* business model that produces a 
sufficient revenue stream to pay for developers and a support
organization, without giving up the advantages of open source
software.  As Netscape's freeing of the Mozilla source shows, this
idea is even getting some attention amongst traditional proprietary
software vendors!
<P>
<H4>Freeware, Open Source or Sourceware?</H4> 
<P>
We spent some time discussing the terminology of choice.  Tim took a
straw poll.  Free software or freeware got almost no positive votes
the cutesy "freed software" even got many negative votes).  The winner
was a tie between open source software (favored by Eric Raymond) and
sourceware (which has been used by Cygnus).
<P>
I've had some reservations about "open source", but I like it better
than the too-cute sourceware, and I agree with the perception that
freeware has a bad reputation -- and of course, much "freeware" comes
without source, while the common factor of the software represented at 
the summit is the availability of source code.
<P>
Eric Raymond has trademarked the term "Open Source" (capitalized) and
has a somewhat precise definition of what is or isn't Open Source on
his web site (see below).  I sometimes worry that this can become a
limitation: what if I call my software Open Source, with his approval,
and later I change the terms and conditions, or Eric changes his
definition -- I could be sued by someone who says I have to stick to
the Open Source rules.  Eric believes that this won't happen, and
besides says that everyone is free to use the "open source"
(lowercase) without sticking to his definition.  We'll see -- for now, 
I'm favorable to the concept, but we won't put "Open Source" on the
Python web site yet.  (Note that we don't use "freeware" either.)
<P>
<H4>Where next?</H4> 
<P>
We briefly discussed how to approach the press and possible follow-up
meetings.  The general conclusion seems to be that the time is ripe to
try and get the message to the next level of managers in companies
that are already using the products of open source software
development -- the CIOs who don't even know that their developers are
using Perl or Python, and only listen to their peer CIOs, the Wall
Street Journal, and the expensive consulting and market analysis firms
that haven't discovered open source software yet either.  How we're
going to do that?  Clearly the press conference is a step in the right
direction, and O'Reilly will be following up to the press.  Eric
Raymond is very active in talking to corporate people.  Sarah Daniels
of Scriptics has some big ideas for a joint ad campaign (we'll
see...).
<P>
What I got out of it?  Lots -- more clarity about why open source
software works so well, and how to make it work even better, as well
as motivation to try and find a revenue stream.
<P>
<H4>The press conference</H4> 
<P>
The press conference started around 5.30 and lasted until 7.30 or 8.00
PM.  All developers sat behind a long table behind name tags, with Tim
O'Reilly in the middle.  There were about 20-30 reporters; the first
hour we had our pictures taken about twice a second.  Tim O'Reilly
gave a short introduction (see URLs below) and then let the press go
loose.  They mostly picked the better-known names, so I didn't get to
say much (of course, much attention went to the two guys from
Netscape).
<P>
As predicted, it was at times difficult to divert the subject away
from "how are you taking on Microsoft" or "clearly this can't work".
With some journalists, you can give a perfectly clear answer to the
question, and all they do is give you a blank stare and ask the same
question again with slightly different words.  But most of them were
really trying to understand the message (and some clearly had already
gotten it before they came).  Once the formal part of the press
conference was over, everyone stuck around and many one-on-one or
two-on-two interviews were carried out.
<P>
All in all it was an interesting and useful event; see below for the
first results.  Of course, we'll have to see if we really change the
perception of the open source software development model as a fringe
freak issue...
<P>
<H4>References</H4> 
<P>
(These predate the summit.)
<ul>
<li><A HREF="http://www.oreilly.com/oreilly/press/freeware.html">
O'Reilly's original press release</A>, listing some key participants.

<li><A HREF="http://www.oreilly.com/oreilly/news/freeware.html">Tim
O'Reilly's opinion of freeware</A>.

<li><A HREF="http://www.earthspace.net/~esr/writings/cathedral-bazaar/">
Eric Raymond's paper</A> <I>The Cathedral and the Bazaar</I>. 

<li><A HREF="http://www.opensource.org/">Eric Raymond's Open Source web
site</A>.
	
</ul>
<H4>Press coverage</H4> 
<P>
(As forwarded to my by O'Reilly's PR team.)
<P>
Before the summit, Tom Abate wrote a column in the SF Chronicle,
<A HREF="http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/1998/04/02/BU71924.DTL">
"The Brains Behind Freeware to Meet."</A>
<P>
<A
HREF="http://www.news.com/News/Item/0,4,20913,00.html?st.ne.fd.mdh">"Open
source gurus convene"</A> 

<P>
Wednesday's San Francisco Chronicle had a full page piece by Tom Abate
on the Open Source story, containing interviews with (and pictures of)
Larry Wall, Linus Torvalds, Paul Vixie, and Tom Paquin.  The 
<A
HREF="http://www.sfgate.com/cgi-bin/article.cgi?file=/chronicle/archive/1998/04/09/BU94387.DTL">
on-line version</A>, sans pictures.
<P>
Also, NPR ran a long piece on Linux Wednesday evening.  There's a
<A HREF="http://www.npr.org/programs/atc/archives/1998/980408.atc.html">
RealAudio version</A> 
<P>
<A HREF="http://www.internetnews.com/bus-news/1998/04/0802-netscape.html">
Judy DeMocker's piece in Meckler's internetnews.com</A>.
<P>
John Markoff is planning on running his piece on the summit in next
Monday's New York Times.
<P> 
For even more information on this topic, see <A
HREF="http://webreview.com/wr/pub/98/04/10">webreview</A>.
<P>
--Guido van Rossum (<A HREF="http://www.python.org/~guido/">home page</A>) 

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1998, Guido van Rossum <BR> 
Published in Issue 28 of <i>Linux Gazette</i>, May 1998</H5></center>

<!--===================================================================-->
<P> <hr> <P> 
<A HREF="./lg_toc28.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif" 
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./raymond.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./oreilly.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P> 

<P> <HR> <P> 
FOR IMMEDIATE RELEASE: April 15, 1998<BR> 
FOR FURTHER INFORMATION CONTACT<BR> 
http://www.oreilly.com/, http://www.webreview.com/
<P> <HR> <P> 
<center>
<H2><font color="maroon">OPEN SOURCE PIONEERS MEET IN HISTORIC
SUMMIT</font></H2> </center>
<P> 
Developers of key Internet technologies confirm advantages of open
source development process and agree to cooperate in spreading the word
<P>
Sebastopol, CA--Heavyweights of the Internet software community met in
an historic summit in Palo Alto on April 7 to explore ways of expanding
the use and acceptance of open source software development, which
relies on wide distribution of program source code to spur innovation
and increase software quality.  Organized by Tim O'Reilly, CEO of
O'Reilly & Associates, the attendees included creators of underlying
Internet services such as the Domain Name System and email routing, as
well as web servers and browsers, scripting languages, and even whole
operating systems.
<P>
The meeting's purpose was to facilitate a high-level discussion of the
successes and challenges facing the developers. While this type of
software has often been called "freeware" or "free software" in the
past, the developers agreed that commercial development of the software
is part of the picture, and that the terms "open source" or
"sourceware" best describe the development method they support.
<P>
Open source software, or sourceware, was defined at the summit as
"software whose source code is available, so that users can customize
or extend it." This is in contrast to most software, whose source code
is not available to the public. Sourceware may be available for free or
in commercial packages.
<P>
Summit attendees also agreed on the most important aspects of open
source software:
<ol>
<li>Flexibility. Because the source code is freely available, any given
program may have hundreds or thousands of developers. Each open source
community has tremendous flexibility in modifying the program.
Developers can modify the software to suit their needs, or the needs of
their companies, customers or communities. Stability and consistency
for open source software is typically maintained by the creator or a
development team who controls the core release of the software.
Commercial entities generally can't afford to spend the resources on
niche markets, of which there may be thousands. But developers working
on their own can easily do so, then make their work available to others
for further modification and improvement.

<li>Innovation. The development model encourages tremendous innovation.
When developers can see and modify source code, they receive rapid
feedback and a constant flow of ideas from other developers. Innovation
is also taking place with many companies creating new approaches to
business, successfully integrating sourceware and commercial efforts.
Many of the companies present at the summit freely distribute source
code, and earn revenue through offering services, support,
documentation, customization, or additional software products to their
customers.

<li>Reliability. With hundreds or thousands of developers testing,
inspecting, and fixing bugs for a given program, the quality assurance
program for open source software is far more reliable and efficient
than any commercial effort can afford to be. Massive, independent peer
review, similar to what takes place in the scientific community but on
a much larger scale thanks to the Internet, is a major strength.

<li>Faster development time. With so many more testers, development
cycles can go much faster than in typical commercial efforts.
</ol>
The group identified numerous ways that sourceware is already
mission-critical throughout industry, academia, and government.  The
myth is that IT managers won't rely on free or open source software. As
Tim O'Reilly pointed out at the press conference following the event,
at least two of the open source programs whose developers attended the
summit, Bind and Sendmail, form the backbone of the Internet
infrastructure that all Internet-connected companies rely on.
Languages such as Perl, Tcl and Python are intimately involved in the
operation of virtually all major web sites, and Apache is the server of
choice for more than half of all web sites.
<P>
The attendees agreed that future collaboration would take place in
coming months, including workshops on open source business models,
project management and source code licensing issues, and coordinated
public relations efforts involving open source programs. There are tens
of thousands of developers worldwide who were not at the summit, but
who are integral to the development of open source software. Followup
meetings will focus on bringing together larger groups.
<P>
Spreading the word about the importance and value of open source
software was seen as vital to the group's efforts. O'Reilly noted,
"Until Netscape announced that they would release the source code to
Communicator, open source software received little attention in the
press. Now everyone wants to know about it. It's important to realize
just how successful and widespread open source development is.  Much of
today's most innovative and important software has been built using
this model."
<P>
<H4>OPEN SOURCE SUMMIT ATTENDEES & AFFILIATIONS</H4> 
Attendees included:<BR> 
* Tim O'Reilly, CEO of O'Reilly & Associates, publisher of books on
Linux, Perl, Apache, DNS & Bind, sendmail, Tcl, PGP, and other open
source software, and presenters of the Perl Conference.
* Linus Torvalds, creator of the Linux operating system, considered by
many to be the only real competitor to Microsoft's hold on the desktop;
* Tom Paquin and Jamie Zawinski of mozilla.org, Netscape
Communications;
* Larry Wall, creator of the Perl  language, which is used even more
widely than Java to create active content and manage web sites;
* Brian Behlendorf, one of the founders of the Apache Group, whose
Apache web server runs more than 50% of all Web sites;
* Sameer Parekh, President of C2Net Software, Inc. and member of the
Apache Group;
* Eric Allman, CTO of Sendmail, Inc.; author of sendmail, the mail
transport agent which routes over 75% of mail on the Internet today;
* Greg Olson, CEO of Sendmail, Inc.;
* Paul Vixie, maintainer of the Bind program, which manages the
Internet's Domain Naming System;
* John Ousterhout, CEO, Scriptics Corp. and creator of the popular Tcl
scripting language which is widely used for rapid GUI development, web
content generation and extensible applications;
* Guido van Rossum, creator of the fast-growing Python language;
* Phil Zimmermann, creator of the well-known PGP (Pretty Good Privacy)
cryptography program;
* John Gilmore, co-founder of Cygnus Solutions, commercial supporters
of open sourceware programming tools like the ubiquitous GNU C
compiler; and
* Eric Raymond, independent developer active in the Linux community and
author of the influential paper, "The Cathedral and the Bazaar."
<P>
<H4>RELATED WEB SITES</H4> 
<P>
Apache: http://www.apache.org/
Bind: http://www.isc.org/
C2Net/Stronghold: http://www.c2.net/
Cygnus Solutions: http://www.cygnus.com/
Free Software Foundation: http://www.fsf.org
Linux: http://www.svlug.org/
Mozilla: http://www.mozilla.org/
Netscape: http://www.netscape.com/
Open Source: http://www.opensource.org/
O'Reilly: http://www.oreilly.com/
Perl: http://www.perl.com / also http://www.perl.org/
PGP: http://www.nai.com/products/security/freeware.asp
Prime Time Freeware: http://www.ptf.com/
Python: http://www.python.org/
Scriptics/Tcl: http://www.scriptics.com/
Sendmail: http://www.sendmail.com/
WebReview: http://www.webreview.com/

<!--===================================================================-->
<P> <hr> <P> 
<A HREF="./lg_toc28.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif" 
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./rossum.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./vermeer2.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P> 

<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<H1>A Tale in Writing</H1>
<H4>By <a href="mailto:mv@fgi.fi">Martin Vermeer</a></H4>
</center>
<P> <HR> <P>  

<H1>
A tale in writing</H1>
I suppose most of you are like me, every evening watching the tv, and on
friday going out and renting the latest DV's from the corner store. Everybody
does that; after work, you want some fun and don't want to think too much,
and those stories are quite good, actually. Of course they all look the
same, after a while; I suppose that's what you get when one company is
controlling all production. But at least it's safe for the kids to watch.
You know what to expect for your money.

<P>Now the other day, a couple years ago, a funny thing happened to me.
A friend -- I won't tell you his name -- put this thing into my hands.
A small rectangular thing, you could put it into your pocket. No power
chord; funny. And you could open it, just like that. Inside, sheets and
sheets of white paper bound together; and on those sheets, small black
marks, thousands of them. You could open the thing -- a <I>book</I>, they
call it -- at any point; it is random-access, just like a video disk, if
you know what I mean. Not like those oldfashioned video tapes that you
have to reel to get to the point you want.

<P>Now the most fascinating thing about this <I>book</I>, and those black
markings: they <I>mean</I> something! Some people actually look at them
and get the meaning straightaway, turning page after page, taking in a
complete story as if they were watching it from the DV screen. I looked
at it with amazement. It was really baffling -- there were just these black
signs on the paper, rows and rows of them, <I>letters</I> and <I>words</I>
and <I>sentences</I> -- and as dead as doornails. But the moment someone
capable of taking them in, looked at them, they turned into a living story,
with really living people talking back to the person looking at the book!
You know, I got all worked up about it, when the reality of the thing was
finally penetrating. Some of those words even referred to <I>non-existing</I>
things. Boy, this was <I>wild</I> stuff!

<P>I wanted to learn this too. I told my friend, and he said "you want
to learn to read? Sure!". That's how I started learning to read books.
It wasn't easy, mind you. It was a lot of hard work, and took me many months
before I would be able to understand the meaning even of simple <I>text
</I>(sorry for the jargon). Several times, I would quit in desperation.
But suddenly it started to make sense, and things would miraculously come
to life before my mind's eyes -- without any television screen, just me
and my mind. A new universe opened itself to me!

<P>Through my friend, I met other people who had gone through the same
experience. What struck me was, how friendly and helpful -- and <I>civilized</I>
-- they all were. They didn't look down on me for only recently having
joined their ranks; no, they helped me, provided me with books to read,
and gradually I became versed in the ways of this new culture, and made
a habit of reading books all the time. If only I could explain the experience,
of real people from near and far, coming to life just from dead marks on
paper, no electricity, no display screen involved, no nothing... just the
miraculous working of the unaided human mind...

<P>My family was worried about me; they witnessed with growing concern
how my previous voracious appetite for digital video cartridges all but
disappeared -- those are really, and I mean <I>really</I>, mediocre and
devoid of imagination once you get to know books -- and I would withdraw
with these weird, archaic-looking rectangular paper objects, spiritualistic
stuff that sane people would not have anything to do with... I tried, with
little luck, to explain to them what had happened to me.

<P>Now, reading has become a way of life for me; I sometimes withdraw to
remote places, with just books as company. On one occasion I climbed a
tree to read a book while sitting up there; damned uncomfortable, but I
just wanted to show to myself&nbsp; that <I>it could be done</I>, as books
have no power cord etc. Since I've found out that this is rather typical
behaviour for newbie reading geeks. Or, I go out and meet my reading friends,
and discuss at length all the things of common interest. There is no end
to it really.

<P>A funny thing about the reading subculture is that you can get a discussion
going about the most far-out and irrelevant subjects. I remember a heated
debate going on over many evenings on <I>where the page numbers</I> (the
sequence numbers added to the pages in a book to more easily refer to them)<I>
should be put</I>: bottom right, bottom middle or top right! One would
imagine that better uses for one's time could be found... and then there
are books containing, in addition to text, pictures. These are a sort of
hybrid between "real" books and digital video's. I have been told that
they may help to spread the reading art to a broader audience... others,
however, especially the veteran reading subculture members, are disgusted
by this, saying that it contaminates the true and noble art and is a concession
to commercialism -- meaning, of course, Universal Digital Video Inc.

<P>One thing I also learned, was that books, or texts,&nbsp; are something
you can produce yourself. You can put black marks on paper -- <I>writing</I>,
they call it -- until you got the equivalent of a book made all by you.
Then, when people read your book, <I>you</I> spring to life before <I>their</I>
eyes, and you can tell them whatever you want -- without even appearing
before a camera! Imagine.

<P>Not that producing <I>text</I> is easy! I know, because I tried it.
I still do it to keep a record of my experiences, for later (I have since
learned that many people do this). But the things I have tried to <I>write</I>
for others turned out rather awful. It takes skill and training, lots of
training, to produce something worthwhile! That's what experienced writers
have told me. They also kindly offered to help me develop my skills. Perhaps
someday...

<P>All this has been now several years past. You may have noticed, from
the above, how helpful people in the reading subculture are towards newcomers;
they really go to great lengths to help you, <I>if you are prepared to
learn</I>. They have little patience with intellectual laziness. And you
know something: I too, quite automatically and selfevidently adopted the
rules of the subculture, and I too find myself instructing newcomers in
the noble art and its cultural premises. And I <I>am</I> writing texts
that are read by people, about things existing and non-existing, about
people living and dead and imaginary, in the comforting knowledge that,
by my writing, all this <I>does</I> exist, and all these people <I>do</I>
live, in a very real sense. Figure that. It is indeed better to give than
to receive!

<P>As a final word, I have referred to the community of reading people
-- literates, they call themselves -- as a subculture. Numerically this
is true, but I find it unfortunate. They should be the mainstrain culture!
Think, however, of the effort required to teach the <I>whole population</I>
the art of reading! This would be obviously quite unthinkable. Imagine,
a fully literate population! Bullshit. So, a subculture it will undoubtedly
remain, and I have been fortunate and privileged to have been able to join
it. You can too -- you only have to <I>want</I> it hard enough.

<P>Welcome to my world!
<BR>&nbsp;
<ADDRESS>
Martin Vermeer</ADDRESS>

<ADDRESS>
mv@liisa.pp.fi</ADDRESS>


<P>Any similarity to real circumstances in the real world is wholly and
fully intentional.

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1998, Martin Vermeer <BR> 
Published in Issue 28 of <i>Linux Gazette</i>, May 1998</H5></center>

<!--===================================================================-->
<P> <hr> <P> 
<A HREF="./lg_toc28.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif" 
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./oreilly.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./gonnerman.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P> 

<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>

<P> <HR> <P> 
<!--===================================================================-->

<center>
<H1><font color="maroon">Where Nothing Else Will Do</font></H1>
<H4>By <A HREF="mailto:chris.gonnerman@usa.net">Chris Gonnerman</A></H4>
</center>
<P> <HR> <P>  

<H3>Introduction</H3>

<P>
Long, long ago I was hired for my first paying job, working on a Tandy 16B running XENIX. 
It had about a meg of RAM (if I remember right), a total of 30 Mb of hard drive 
(two 15 Mb SCSI-1 external drives), and it actually served three users at the same time!

<P>
Some years later I joined the Air Force, and because I knew Unix (and liked it), 
I was assigned to program and administer a pair of Unix-based Motorola computers.
Wow!  Four meg of RAM, 60 Mb of hard disk, and 32 serial ports each, 
running Unix System V Release 3.  I thought I was in heaven!
(Note, Windows 3.0 was just about to be released...)

<P>
Well, to make a long story short, several years later I have my own company,
New Century Computers, selling and servicing Intel and compatible PC equipment. 
Most of these computers run Windows 95, and while I 
have always liked the interface, I have always missed Unix.
The Motorola's I worked with were shut down every six months
(whether they needed it or not) and cleaned and serviced.
Crashes?  Only in the early stages, when we were debugging the vendor's tape drivers.

<P>
I don't remember when I first heard of Linux, but after browsing the book section at WaldenBooks
I bought "Linux SECRETS" by Naba Barkakati (printed by IDG Books).
I installed Linux on a spare 486 and played around with it.
Still, my customers want Windows, so I sell them Windows.

<P>
But sometimes, Linux is the only choice. Nothing else will do.

<P>
<HR>

<H3>Evil DOS Programs</H3>

<P>
One of my oldest customers is the Juvenile Office in Adair County, Missouri.
When the chief Juvenile Officer called me one day and said he needed to run
Lotus Notes on his network, I started sweating bullets.

<P>
A few years ago (before I started doing business with them),
the JO purchased a custom written DOS program called "Juvenile Court Records."
The programmer wrote it using the Clarion database manager, and he was not much of a programmer.
They ran it on a LANtastic network.

<P>
This "evil DOS program" <EM>requires</EM> 615Kb of conventional memory.
It actually only runs right in 620 or more Kb. They did this under DOS using a QEMM
(the Quarterdeck Expanded Memory Manager) feature called VIDRAM.
VIDRAM remaps the color text screen to the monochrome address range,
and adds the color text memory region to the conventional memory pool,
resulting in 784 Kb of total conventional RAM.
After DOS boots and the LANtastic TSR's load, they still had 630 Kb or so.

<P>
Anyway, this program <EM>will not</EM> run under Windows 95.
No way, no how.
Windows 95 will never allow enough conventional RAM, and VIDRAM won't work there
(blows up very nicely). I knew this, and so I began to sweat bullets.
What Mike (the chief Juvenile Officer) expected to see was a Windows 95 window with JCR
in it on the same screen as a Lotus Notes window.

<P>
Why is keeping JCR running so important?
First, because all of their records regarding the disposition of juvenile cases
for the last five or six years are in it.
We can't get the Clarion source code; the programmer has evaporated.
We could probably rewrite the program from scratch, but the State of Missouri
(Office of State Courts Administrator, or OSCA) has stated that they will be providing
a case-management program "in about two years."
Spending to rewrite the program would cost more than keeping it running (at this point),
and would be wasted money when OSCA delivers their solution.
So, they are stuck with this boat-anchor program.

<P>
Enter Linux.
I had been searching for an answer for most of a month when I remembered 
<a href="http://www.dosemu.org">DOSEMU</a>.
I fired up XDOS on my Linux box and looked at the conventional RAM total.

<P>
627Kb free. Hallelujah!

<P>
We sold them a new file server, a Pentium 166 with 16 Mb RAM, running Debian Linux.
I installed DOSEMU 0.66.7, straight from the CD, and then configured it with Windows 95 DOS.
While OpenDOS is supposed to get an extra K free (628 Kb),
since Windows 95 comes with a new system, I just used it.
After SYSing the diskimage with Win95, I basically installed the minimum DOS commands
needed to run the JCR program and work with the filesystem.
I copied the EXITEMU command to the names LOGOUT and LOGOFF.
I also set up "conventional" file sharing via 
<a href="http://samba.anu.edu.au/samba">Samba</a>.
Then the work began.

<P>
First, several DOS machines had to be upgraded to Windows 95,
which of course required RAM for most, hard drives for some,
and new mainboards for a few.
To access the server from these Windows 95 machines,
we elected to use 
<a href="http://www.ncd.com">NCD</a> <a href="http://www.ncd.com/ppcx/ppcx.html">PC-Xware</a>.
Of all the commercial X Servers for Windows 95, it is the simplest (and cheapest) I have found.
It makes "shortcut" icons for connections automatically
after you go through the Connection Wizard, and it works well with XDM.

<P>
As an aside, telnet would have worked, but getting a usable color telnet is hard.
The JCR program is written like many DOS programs, using a broad range of colors.
XDOS over PC-Xware also makes all the function keys work.

<P>
Now, Mike (and the other JO employees) can see Lotus Notes and the JCR program at the same time,
on the same system. No rebooting.
The total price tag for PC-Xware was higher than the cost of the equipment,
but the customer is happy.

<P><HR>

<H3>Unexpected ISP Problems</H3>

<P>
The Paris R-II School District (in Paris, Missouri; I'm not international yet)
is another regular customer.
In the High School, they have a well-stocked lab of Windows 95 computers
with a Windows NT 3.51 server.
<a href="http://www.more.net">MORENet</a>, 
a state contractor, provides them Internet service at a subsidized rate,
and the High School and Elementary are connected via fiberoptics.
The whole Internet connection setup was a bargain (as these things go)
since the school district received a lot of donated labor and discounted materials.

<P>
Unfortunately, the Junior High is across town.
After looking into leasing a line between the two locations,
and considering even radio frequency networking,
the Superintendent hit upon a better idea.
He approached several ISP's in neighboring towns (Paris had no ISP at that time)
and offered them co-location on school district property.
One of them, 
<a href="http://www.mcmsys.com">MCM Systems</a> in Moberly, Missouri agreed:
In return for unlimited free rent of a closet,
the Junior High would receive unlimited free Internet access.
MCM Systems installed a dial-up router in the closet of the Band Room
and we ran Ethernet cable from there to the Computer Lab.
MCM is providing Internet access in the Paris area
for the cost of the leased line and equipment only,
and they are happy (as far as I can tell).

<P>
So, I arrived one day to set up the Computer Lab.
After installing all the net cards and connecting everything,
I called MCM Systems to get the IP address range we were to use.

<P>
The tech I spoke to informed me that we had a range of ten IP addresses available.
Oops.  In the Junior High they already had about 25 computers to connect to the Internet.
We had a problem.

<P>
This time it took me only a few minutes to decide on Linux.
My mandate was to "make it work," and outside of the costs
already bid the district didn't have a lot of money to spend to do it.
I selected a computer in the Junior High lab with a Pentium 75 mainboard,
transferred a larger (1.6 Gb) hard drive from another computer,
and started installing Slackware Linux.
I copied a full install set from the Internet to a DOS partition on the 1.6 Gb drive,
created and booted from the boot/root set, and got to work setting everything up.

<P>
Naturally the whole purpose of this exercise was to use IP Masquerade,
and this was my first time using this feature.
I installed a second NE2000 compatible,
set up a private network address (10.0.0.1) on the "inside" network adapter,
and the first assigned Internet address on the "outside" adapter.
So far, so good.
I tested the installation from a Windows 95 computer using 10.0.0.2
(assigned through the network control panel), and it worked great!

<P>
The problem started when I installed 
<a href="http://www.isc.org">ISC (Internet Software Consortium)</a>
dhcpd and tried to set it up.
It configured and compiled fine, and I set the broadcast route as described in the README,
but when I tried to start it I got an error message:

<p>

<table border=0>
<tr><td width=30>&nbsp;</td>
<td>

<table>
<tr>
    <td>
    <samp>
    The standard socket API can only support hosts<br>
    with a single network interface.  If you must run<br>
    dhcpd on a host with multiple interfaces, you must<br>
    compile in BPF or NIT support.  If neither option<br>
    is supported on your system, please let us know.<br>
    </samp>
    </td>
</tr>
</table>

</td></tr>
</table>

<P>
I did some research, and learned that in this version of dhcpd,
any system lacking Berkley Packet Filter and Network Interface Tap technology
(such as Linux) can't run dhcpd with more than one network interface (PPP and SLIP excepted).
I examined the program closely,
and hacked it to hard-code the interface name I wanted to support.
After all, I didn't <STRONG>want</STRONG> to support both interfaces;
the outside interface doesn't need DHCP.

<P>
Later, in the privacy of my office, I tore apart another copy of dhcpd.
Instead of hard-coding the interface name, I added a command to the dhcpd.conf file.
I also refined the lease-time format. Here is a sample:

<p>

<table border=0>
<tr><td width=30>&nbsp;</td>
<td>

<table>
<tr>
	<td>
	<U><STRONG>dhcpd.conf</STRONG></U>
	</td>
</tr>
<tr>
	<td>
	<samp>
	server-identifier 10.0.0.10;<br>
	interface "eth0";<br>
	<br>
	subnet 10.0.0.0 netmask 255.0.0.0 {<br>
	    option domain-name "paris.mcmsys.com";<br>
	    default-lease-time 3 days 12 hours;<br>
	    max-lease-time 7 days;<br>
	    option subnet-mask 255.0.0.0;<br>
	    range 10.0.1.20 10.0.1.250;<br>
	}</samp>
	</td>
</tr>
</table>

</td></tr>
</table>

<P>
Previously, the *-lease-time commands used a single number, as seconds, as in:

<p>
<table border=0>
<tr><td width=30>&nbsp;</td>
<td>

<table>
<tr>
	<td>
	<samp>
	default-lease-time 302400;
	</samp>
	</td>
</tr>
</table>

</td></tr>
</table>

<P>
I think my way is more readable.

<P>
Later still I took this code to the school and implemented it.
It worked fine, so I called the installation done.
For the cost of labor and one extra net card,
we converted a workstation into a capable server and solved an Internet connection problem.

<P>
We are running <a href="http://www.apache.org">Apache</a>
on that system now, not so much for web services as for its web proxy.
Twenty-five students on a single 56Kbps line is kind of slow,
but with the proxy the performance is acceptable.
It is also used as a file server via Samba.

<P>
I submitted my dhcpd patches to ISC,
and received an email back from Ted Lemon telling me that my patch
doesn't do what I think it does.
Hmm.
So I studied his explanation and concluded that my patch is not a good all-around solution.
However, the BPF/NIT problem with Linux has apparently been fixed somewhere along the line,
and ISC's version 2.0 dhcpd (now in final beta) handles it.
I highly recommend ISC's dhcpd; it seems solid (even the pre-1.0.0 beta I originally used).

<P>
I have also uploaded my patches to Sunsite, as dhcpdpatch-1.0.0.tar.gz,
in case someone would like to try the *-lease-time feature.

<P><HR>

<H3>When Linux is the Best Choice</H3>

<P>
I love Linux.
I am addicted to the features, the power, and the configurability.
I especially like that I can work directly with the source for almost any program,
fixing bugs and adding features as I need or want to.

<P>
The power of Linux is flexibility, stability, and economy...
the ability to run a <STRONG>real</STRONG> OS on older or inexpensive hardware.

<P>
For my average customer (home users and small businesses with a single computer),
Linux is not presently the best choice.
These users don't have the depth of understanding to work with Linux as we do.
(Frankly, few of them have any real understanding of Windows 95 either).
The average user expects to be able to purchase <STRONG>anything</STRONG>
off the shelf at Wal-Mart and have it work for them.
Someday, maybe, Linux will be a good choice for these users,
if we (the entire Linux community) keep supporting and improving it.

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1998, Chris Gonnerman <BR> 
Published in Issue 28 of <i>Linux Gazette</i>, May 1998</H5></center>

<!--===================================================================-->
<P> <hr> <P> 
<A HREF="./lg_toc28.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif" 
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./vermeer2.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./lg_backpage28.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P> 
<center>
<H1><IMG SRC="../gx/backpage.gif" alt="Linux Gazette Back Page"></H1>

<H5>Copyright &copy; 1998 Specialized Systems Consultants, Inc.<br>
For information regarding copying and distribution of this material see the
<A HREF="../ssc.copying.html">Copying License</A>.</H5>
</center>

<P> <hr> <P> 

<H3>Contents:</H3>
<ul>
<li><a HREF="./lg_backpage28.html#authors">About This Month's Authors</a>
<li><a HREF="./lg_backpage28.html#notlinux">Not Linux</a>
</ul>

<a name="authors"></a>
<P> <HR> <P> 
<!--======================================================================-->

<center><H3><font color="maroon">About This Month's Authors</font></H3></center>

<P> <HR> <P> 
<!--======================================================================-->

<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Larry Ayers</H4>
Larry lives on a small farm
in northern Missouri, where he is currently engaged in building a
timber-frame house for his family. He operates a portable band-saw mill,
does general woodworking, plays the fiddle and searches for rare
prairie plants, as well as growing shiitake mushrooms. He is also
struggling with configuring a Usenet news server for his local ISP.

<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">R. J. Celestino</H4>
Bob Celestino holds an undergradutate degree in Mechanical
Engineering and advanced degrees in Electrical and Computer Engineering. He
has been a Linux devotee for more than four years. When not recompiling his
kernel or pushing Java to its limits, he enjoys spending time with his
wife and three kids. He pays the bills by posing as a software engineer at
Harris Corp. in sunny Florida.

<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Jim Dennis</H4>
Jim is the proprietor of <A href="http://www.starshine.org">
Starshine Technical Services</A>.
His professional experience includes work in the technical 
support, quality assurance, and information services (MIS)
departments of software companies like 
<A href="http://www.quarterdeck.com"> Quarterdeck</A>, 
<A href="http://www.symantec.com"> Symantec/
Peter Norton Group</A>, and 
<A href="http://www.mcafee.com"> McAfee Associates</A> -- as well as 
positions (field service rep) with smaller VAR's.
He's been using Linux since version 0.99p10 and is an active
participant on an ever-changing list of mailing lists and 
newsgroups.  He's just started collaborating on the 2nd Edition
for a book on Unix systems administration.
Jim is an avid science fiction fan -- and was
married at the World Science Fiction Convention in Anaheim.

<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Chris Gonnerman</H4>
Chris lives and works in the small northeast Missouri town of LaBelle,
running New Century Computers.  His wife, Tracy, works with him in his
business, and he also employs two full time technicians.

<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Michael Hamilton</H4>
Michael has been working as a freelance Unix C/C++ developer
since 1989. More recently he's been working on web applications and
Unix server administration. Michael tripped over one of Linus's
postings back at the beginning of 1992 and has been hooked ever
since.

<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Glen Journeay</H4>
Glen is a mechanical engineer with a background in automated test and
real-time control using a variety of
computer systems. He's designed, built and maintained automated test
systems for Boeing and the U.S. Navy, since
graduating from University of California, Davis in 1983. 
Glen, his wife and two children live in Poulsbo where they
like to ski, hike, sail, and ride.  He's been using a Linux-based
home network since 1996.

<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Mike List </H4>
Mike is a father of four teenagers, musician,
and recently reformed technophobe, who has been into computers
since April,1996, and Linux since July, 1997.

<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Mark Nielsen</H4>
Mark is a Systems Specialist at The Ohio State University managing
a linux users group. His main goal is to try and help the downfall
of the evil empire or to help split the evil empire into a company with
the operating system and a company with the applications. He loves
Perl, Apache, Linux, and PostgreSQL as free and open software for the
people by the people to counteract the meaningless purchase of terrible
software based on ignorance. With knowledge comes power. Spread
the word. 

<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Cesare Pizzi</H4>
Cesare started to play with computers when he was 10 years old; his first box was 
a Commodore VIC20. During the years he changed several systems, and a couple
of years ago met Linux.
After the first impact, he started to develop software, little kernel patches,
and so on.
In the real life, he works in a support team in HP as a contractor. He
likes music, movies, travels and red wines.

<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Bob van der Poel</H4>
Bob started using computers in 1982 when he purchased
a Radio Shack Color Computer complete with 32K of memory and a cassette
tape recorder for storing programs and data. He has written many programs,
and marketed many for the OS9 operating system. He lives with his wife, two
cats and Tora (the wonder dog) on a small acreage in S.E. British Columbia,
Canada. You can reach him via email: bvdpoel@kootenay.com. If he's not too
busy gardening, practicing sax or just having fun he'll probably send a
prompt reply.

<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Eric S. Raymond</H4>
Eric is a semi-regular contributor to <i>Linux Journal</i>. You
can find more of his writings, including his paper ``The Cathedral and
the Bazaar'', at http://www.ccil.org/~esr/.

<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Guido van Rossum</H4>
Guido is the father of the Python programming language and a leader in
the Open Source community.

<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Jim Schweizer</H4>
Jim is currently a Consultant in web site
administration and design. He is the author of an on-line
textbook about Computer and Internet use and is an Instructor of
English at several universities in Western Japan. His main hobby
is being the Webmaster for the Tokyo Linux Users Group.

<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Martin Vermeer</H4>
Martin is a European citizen born in The Netherlands in 1953 
and living with his wife in Helsinki, Finland, since 1981, where he is
employed as a research professor at the Finnish Geodetic Institute.
His first UNIX experience was in 1984 with OS-9, running on a Dragon
MC6809E home computer (64k memory, 720k disk!). He is a relative newcomer
to Linux, installing RH4.0 February 1997 on his home PC and, encouraged,
only a week later on his job PC. Now he runs 5.0 at home, job soon to 
follow.
Special Linux interests: LyX, Pascal (p2c), tcl/tk.

<a name="notlinux"></a>
<P> <hr> <P> 
<!--====================================================================-->

<center><H3><font color="maroon">Not Linux</font></H3></center>

<P> <HR> <P> 
<!--======================================================================-->
<P>
Thanks to all our authors, not just the ones above, but also those who wrote
giving us their tips and tricks and making suggestions. Thanks also to our
new mirror sites.
<P> 
I've been slightly ill the past week, and as a result, I have been
more than slightly grumpy. My fellow employees are avoiding me like the 
plague, and I don't blame them. Illness should be declared illegal, so this
sort of alienation doesn't go on. :-)
<P> 
I went to see <I>Titanic</I> for the second time--this time with my
husband Riley. We saw it at the local Cinerama--that big curved screen is
just awesome for "larger than life" films such as this one. It was fun
seeing the February cover of <I>Linux Journal</I> sail by.
<P> 
I'm planning to set up a page for translations of <I>LG</I> into languages
other than English. If you have such a site or know of one, please let me
know.
<P> 
Have fun!

<P> <hr> <P> 
<A HREF="http://www.ssc.com/ssc/Employees/Margie/margie.html">
Marjorie L. Richardson</A> <br>
Editor, <A HREF="http://www.linuxgazette.com/"><i>Linux Gazette</i></A>, <A
HREF="mailto:gazette@ssc.com">gazette@ssc.com</a>

<P> <HR> <P>
<!--====================================================================-->
<A HREF="./lg_toc28.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF 
CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG SRC="../gx/homenew.gif" ALT="[ FRONT 
PAGE ]"></A> 
<A HREF="./gonnerman.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<p><hr><p>
<I>Linux Gazette</I> Issue 28, May 1998,
<A HREF="http://www.linuxgazette.com/">http://www.linuxgazette.com</A><BR> 
This page written and maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto:gazette@ssc.com"> gazette@ssc.com</A>
<P> 
</BODY>
</HTML>