File: issue42.html

package info (click to toggle)
lg-issue42 2-4
  • links: PTS
  • area: main
  • in suites: woody
  • size: 2,324 kB
  • ctags: 231
  • sloc: makefile: 36; sh: 4
file content (11115 lines) | stat: -rw-r--r-- 478,425 bytes parent folder | download | duplicates (2)
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
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
8757
8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
8769
8770
8771
8772
8773
8774
8775
8776
8777
8778
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
8836
8837
8838
8839
8840
8841
8842
8843
8844
8845
8846
8847
8848
8849
8850
8851
8852
8853
8854
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
8897
8898
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908
8909
8910
8911
8912
8913
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940
8941
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
9029
9030
9031
9032
9033
9034
9035
9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
9169
9170
9171
9172
9173
9174
9175
9176
9177
9178
9179
9180
9181
9182
9183
9184
9185
9186
9187
9188
9189
9190
9191
9192
9193
9194
9195
9196
9197
9198
9199
9200
9201
9202
9203
9204
9205
9206
9207
9208
9209
9210
9211
9212
9213
9214
9215
9216
9217
9218
9219
9220
9221
9222
9223
9224
9225
9226
9227
9228
9229
9230
9231
9232
9233
9234
9235
9236
9237
9238
9239
9240
9241
9242
9243
9244
9245
9246
9247
9248
9249
9250
9251
9252
9253
9254
9255
9256
9257
9258
9259
9260
9261
9262
9263
9264
9265
9266
9267
9268
9269
9270
9271
9272
9273
9274
9275
9276
9277
9278
9279
9280
9281
9282
9283
9284
9285
9286
9287
9288
9289
9290
9291
9292
9293
9294
9295
9296
9297
9298
9299
9300
9301
9302
9303
9304
9305
9306
9307
9308
9309
9310
9311
9312
9313
9314
9315
9316
9317
9318
9319
9320
9321
9322
9323
9324
9325
9326
9327
9328
9329
9330
9331
9332
9333
9334
9335
9336
9337
9338
9339
9340
9341
9342
9343
9344
9345
9346
9347
9348
9349
9350
9351
9352
9353
9354
9355
9356
9357
9358
9359
9360
9361
9362
9363
9364
9365
9366
9367
9368
9369
9370
9371
9372
9373
9374
9375
9376
9377
9378
9379
9380
9381
9382
9383
9384
9385
9386
9387
9388
9389
9390
9391
9392
9393
9394
9395
9396
9397
9398
9399
9400
9401
9402
9403
9404
9405
9406
9407
9408
9409
9410
9411
9412
9413
9414
9415
9416
9417
9418
9419
9420
9421
9422
9423
9424
9425
9426
9427
9428
9429
9430
9431
9432
9433
9434
9435
9436
9437
9438
9439
9440
9441
9442
9443
9444
9445
9446
9447
9448
9449
9450
9451
9452
9453
9454
9455
9456
9457
9458
9459
9460
9461
9462
9463
9464
9465
9466
9467
9468
9469
9470
9471
9472
9473
9474
9475
9476
9477
9478
9479
9480
9481
9482
9483
9484
9485
9486
9487
9488
9489
9490
9491
9492
9493
9494
9495
9496
9497
9498
9499
9500
9501
9502
9503
9504
9505
9506
9507
9508
9509
9510
9511
9512
9513
9514
9515
9516
9517
9518
9519
9520
9521
9522
9523
9524
9525
9526
9527
9528
9529
9530
9531
9532
9533
9534
9535
9536
9537
9538
9539
9540
9541
9542
9543
9544
9545
9546
9547
9548
9549
9550
9551
9552
9553
9554
9555
9556
9557
9558
9559
9560
9561
9562
9563
9564
9565
9566
9567
9568
9569
9570
9571
9572
9573
9574
9575
9576
9577
9578
9579
9580
9581
9582
9583
9584
9585
9586
9587
9588
9589
9590
9591
9592
9593
9594
9595
9596
9597
9598
9599
9600
9601
9602
9603
9604
9605
9606
9607
9608
9609
9610
9611
9612
9613
9614
9615
9616
9617
9618
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630
9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
9651
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
9675
9676
9677
9678
9679
9680
9681
9682
9683
9684
9685
9686
9687
9688
9689
9690
9691
9692
9693
9694
9695
9696
9697
9698
9699
9700
9701
9702
9703
9704
9705
9706
9707
9708
9709
9710
9711
9712
9713
9714
9715
9716
9717
9718
9719
9720
9721
9722
9723
9724
9725
9726
9727
9728
9729
9730
9731
9732
9733
9734
9735
9736
9737
9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751
9752
9753
9754
9755
9756
9757
9758
9759
9760
9761
9762
9763
9764
9765
9766
9767
9768
9769
9770
9771
9772
9773
9774
9775
9776
9777
9778
9779
9780
9781
9782
9783
9784
9785
9786
9787
9788
9789
9790
9791
9792
9793
9794
9795
9796
9797
9798
9799
9800
9801
9802
9803
9804
9805
9806
9807
9808
9809
9810
9811
9812
9813
9814
9815
9816
9817
9818
9819
9820
9821
9822
9823
9824
9825
9826
9827
9828
9829
9830
9831
9832
9833
9834
9835
9836
9837
9838
9839
9840
9841
9842
9843
9844
9845
9846
9847
9848
9849
9850
9851
9852
9853
9854
9855
9856
9857
9858
9859
9860
9861
9862
9863
9864
9865
9866
9867
9868
9869
9870
9871
9872
9873
9874
9875
9876
9877
9878
9879
9880
9881
9882
9883
9884
9885
9886
9887
9888
9889
9890
9891
9892
9893
9894
9895
9896
9897
9898
9899
9900
9901
9902
9903
9904
9905
9906
9907
9908
9909
9910
9911
9912
9913
9914
9915
9916
9917
9918
9919
9920
9921
9922
9923
9924
9925
9926
9927
9928
9929
9930
9931
9932
9933
9934
9935
9936
9937
9938
9939
9940
9941
9942
9943
9944
9945
9946
9947
9948
9949
9950
9951
9952
9953
9954
9955
9956
9957
9958
9959
9960
9961
9962
9963
9964
9965
9966
9967
9968
9969
9970
9971
9972
9973
9974
9975
9976
9977
9978
9979
9980
9981
9982
9983
9984
9985
9986
9987
9988
9989
9990
9991
9992
9993
9994
9995
9996
9997
9998
9999
10000
10001
10002
10003
10004
10005
10006
10007
10008
10009
10010
10011
10012
10013
10014
10015
10016
10017
10018
10019
10020
10021
10022
10023
10024
10025
10026
10027
10028
10029
10030
10031
10032
10033
10034
10035
10036
10037
10038
10039
10040
10041
10042
10043
10044
10045
10046
10047
10048
10049
10050
10051
10052
10053
10054
10055
10056
10057
10058
10059
10060
10061
10062
10063
10064
10065
10066
10067
10068
10069
10070
10071
10072
10073
10074
10075
10076
10077
10078
10079
10080
10081
10082
10083
10084
10085
10086
10087
10088
10089
10090
10091
10092
10093
10094
10095
10096
10097
10098
10099
10100
10101
10102
10103
10104
10105
10106
10107
10108
10109
10110
10111
10112
10113
10114
10115
10116
10117
10118
10119
10120
10121
10122
10123
10124
10125
10126
10127
10128
10129
10130
10131
10132
10133
10134
10135
10136
10137
10138
10139
10140
10141
10142
10143
10144
10145
10146
10147
10148
10149
10150
10151
10152
10153
10154
10155
10156
10157
10158
10159
10160
10161
10162
10163
10164
10165
10166
10167
10168
10169
10170
10171
10172
10173
10174
10175
10176
10177
10178
10179
10180
10181
10182
10183
10184
10185
10186
10187
10188
10189
10190
10191
10192
10193
10194
10195
10196
10197
10198
10199
10200
10201
10202
10203
10204
10205
10206
10207
10208
10209
10210
10211
10212
10213
10214
10215
10216
10217
10218
10219
10220
10221
10222
10223
10224
10225
10226
10227
10228
10229
10230
10231
10232
10233
10234
10235
10236
10237
10238
10239
10240
10241
10242
10243
10244
10245
10246
10247
10248
10249
10250
10251
10252
10253
10254
10255
10256
10257
10258
10259
10260
10261
10262
10263
10264
10265
10266
10267
10268
10269
10270
10271
10272
10273
10274
10275
10276
10277
10278
10279
10280
10281
10282
10283
10284
10285
10286
10287
10288
10289
10290
10291
10292
10293
10294
10295
10296
10297
10298
10299
10300
10301
10302
10303
10304
10305
10306
10307
10308
10309
10310
10311
10312
10313
10314
10315
10316
10317
10318
10319
10320
10321
10322
10323
10324
10325
10326
10327
10328
10329
10330
10331
10332
10333
10334
10335
10336
10337
10338
10339
10340
10341
10342
10343
10344
10345
10346
10347
10348
10349
10350
10351
10352
10353
10354
10355
10356
10357
10358
10359
10360
10361
10362
10363
10364
10365
10366
10367
10368
10369
10370
10371
10372
10373
10374
10375
10376
10377
10378
10379
10380
10381
10382
10383
10384
10385
10386
10387
10388
10389
10390
10391
10392
10393
10394
10395
10396
10397
10398
10399
10400
10401
10402
10403
10404
10405
10406
10407
10408
10409
10410
10411
10412
10413
10414
10415
10416
10417
10418
10419
10420
10421
10422
10423
10424
10425
10426
10427
10428
10429
10430
10431
10432
10433
10434
10435
10436
10437
10438
10439
10440
10441
10442
10443
10444
10445
10446
10447
10448
10449
10450
10451
10452
10453
10454
10455
10456
10457
10458
10459
10460
10461
10462
10463
10464
10465
10466
10467
10468
10469
10470
10471
10472
10473
10474
10475
10476
10477
10478
10479
10480
10481
10482
10483
10484
10485
10486
10487
10488
10489
10490
10491
10492
10493
10494
10495
10496
10497
10498
10499
10500
10501
10502
10503
10504
10505
10506
10507
10508
10509
10510
10511
10512
10513
10514
10515
10516
10517
10518
10519
10520
10521
10522
10523
10524
10525
10526
10527
10528
10529
10530
10531
10532
10533
10534
10535
10536
10537
10538
10539
10540
10541
10542
10543
10544
10545
10546
10547
10548
10549
10550
10551
10552
10553
10554
10555
10556
10557
10558
10559
10560
10561
10562
10563
10564
10565
10566
10567
10568
10569
10570
10571
10572
10573
10574
10575
10576
10577
10578
10579
10580
10581
10582
10583
10584
10585
10586
10587
10588
10589
10590
10591
10592
10593
10594
10595
10596
10597
10598
10599
10600
10601
10602
10603
10604
10605
10606
10607
10608
10609
10610
10611
10612
10613
10614
10615
10616
10617
10618
10619
10620
10621
10622
10623
10624
10625
10626
10627
10628
10629
10630
10631
10632
10633
10634
10635
10636
10637
10638
10639
10640
10641
10642
10643
10644
10645
10646
10647
10648
10649
10650
10651
10652
10653
10654
10655
10656
10657
10658
10659
10660
10661
10662
10663
10664
10665
10666
10667
10668
10669
10670
10671
10672
10673
10674
10675
10676
10677
10678
10679
10680
10681
10682
10683
10684
10685
10686
10687
10688
10689
10690
10691
10692
10693
10694
10695
10696
10697
10698
10699
10700
10701
10702
10703
10704
10705
10706
10707
10708
10709
10710
10711
10712
10713
10714
10715
10716
10717
10718
10719
10720
10721
10722
10723
10724
10725
10726
10727
10728
10729
10730
10731
10732
10733
10734
10735
10736
10737
10738
10739
10740
10741
10742
10743
10744
10745
10746
10747
10748
10749
10750
10751
10752
10753
10754
10755
10756
10757
10758
10759
10760
10761
10762
10763
10764
10765
10766
10767
10768
10769
10770
10771
10772
10773
10774
10775
10776
10777
10778
10779
10780
10781
10782
10783
10784
10785
10786
10787
10788
10789
10790
10791
10792
10793
10794
10795
10796
10797
10798
10799
10800
10801
10802
10803
10804
10805
10806
10807
10808
10809
10810
10811
10812
10813
10814
10815
10816
10817
10818
10819
10820
10821
10822
10823
10824
10825
10826
10827
10828
10829
10830
10831
10832
10833
10834
10835
10836
10837
10838
10839
10840
10841
10842
10843
10844
10845
10846
10847
10848
10849
10850
10851
10852
10853
10854
10855
10856
10857
10858
10859
10860
10861
10862
10863
10864
10865
10866
10867
10868
10869
10870
10871
10872
10873
10874
10875
10876
10877
10878
10879
10880
10881
10882
10883
10884
10885
10886
10887
10888
10889
10890
10891
10892
10893
10894
10895
10896
10897
10898
10899
10900
10901
10902
10903
10904
10905
10906
10907
10908
10909
10910
10911
10912
10913
10914
10915
10916
10917
10918
10919
10920
10921
10922
10923
10924
10925
10926
10927
10928
10929
10930
10931
10932
10933
10934
10935
10936
10937
10938
10939
10940
10941
10942
10943
10944
10945
10946
10947
10948
10949
10950
10951
10952
10953
10954
10955
10956
10957
10958
10959
10960
10961
10962
10963
10964
10965
10966
10967
10968
10969
10970
10971
10972
10973
10974
10975
10976
10977
10978
10979
10980
10981
10982
10983
10984
10985
10986
10987
10988
10989
10990
10991
10992
10993
10994
10995
10996
10997
10998
10999
11000
11001
11002
11003
11004
11005
11006
11007
11008
11009
11010
11011
11012
11013
11014
11015
11016
11017
11018
11019
11020
11021
11022
11023
11024
11025
11026
11027
11028
11029
11030
11031
11032
11033
11034
11035
11036
11037
11038
11039
11040
11041
11042
11043
11044
11045
11046
11047
11048
11049
11050
11051
11052
11053
11054
11055
11056
11057
11058
11059
11060
11061
11062
11063
11064
11065
11066
11067
11068
11069
11070
11071
11072
11073
11074
11075
11076
11077
11078
11079
11080
11081
11082
11083
11084
11085
11086
11087
11088
11089
11090
11091
11092
11093
11094
11095
11096
11097
11098
11099
11100
11101
11102
11103
11104
11105
11106
11107
11108
11109
11110
11111
11112
11113
11114
11115
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> Linux Gazette Table of Contents LG #42</TITLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#0000AF"
ALINK="#FF0000" >
<center>
<A HREF="http://www.linuxgazette.com/">
<H1><IMG SRC="../gx/newlogo.jpg" ALT="Linux Gazette" border="0"></H1></A> 
<H4>June 1999, Issue 42 Published by <I>Linux Journal</I></H4> 
</center>
<!--=================================================================-->

<table>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
<tr><td>
<table>
<tr>
<td><H1><font color="#BB0000">Visit Our Sponsors:</font></H1></td></tr>
<tr>
<td><A HREF="http://www.linuxjournal.com/"><img src=../gx/ljtop.gif alt="Linux Journal" border=0></A></td></tr>
<tr>
<td><A HREF="http://www.linuxtoday.com/"><img vspace="10" src=../gx/lt-lg.gif alt="LinuxToday" border=0></A></td>
<tr>
<td><A HREF="http://www.stalker.com/ads/cg-lgp.html"><img vspace="10" src=../gx/stalker.gif alt="Communigate Pro" border=0></A></td></tr>
<tr>
<td><A HREF="http://www.cyclades.com/"><img vspace="10" src=../gx/cyclades.gif alt="cyclades" border=0></A></td> </tr>
<tr>
<td><A HREF="http://www.linuxresources.com/"><img vspace="10" src=../gx/linux6.gif alt="Linux Resources" border=0></A></td></tr>
<tr>
<td><A HREF="http://www.LinuxMall.com/"><img vspace="10" src=../gx/linuxmall.gif alt="LinuxMall" border=0></A></td></tr>
<tr> <td>
<A HREF="http://www.redhat.com/"><img vspace="10" src=../gx/redhat.gif alt="Red Hat" border=0></A></td></tr>
<tr> <td>
<A HREF="http://www.suse.com/"><img vspace="10" src=../gx/suse.jpg alt="SuSE" border=0></A></td></tr>
<tr>
<td><A HREF="http://www.infomagic.com/"><img src=../gx/infologo.gif alt="InfoMagic" border=0></A></td></tr>
</tr>
</table>
</td>
<!--==================================================================-->
<TD ROWSPAN="3" WIDTH="2" BGCOLOR="#000000" NOSAVE><IMG
SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=1 HEIGHT=1 WIDTH=1></TD>
<td>
<H1><font color="#BB0000">Table of Contents:</font></H1>
<UL>
<LI><A HREF="../lg_frontpage.html">The Front Page</A> 
<LI><A HREF="./lg_mail42.html">The MailBag</A> 
<ul>
<li><a HREF="./lg_mail42.html#help">Help Wanted & Article Ideas</a>
<li><a HREF="./lg_mail42.html#gen">General Mail</a>
</ul>
<LI><A HREF="./lg_bytes42.html">News Bytes</A>  
<ul>
<li><a HREF="./lg_bytes42.html#general">News in General</a>
<li><a HREF="./lg_bytes42.html#software">Software Announcements</a>
</ul>
<LI><A HREF="./lg_answer42.html">The Answer Guy</A>, by James T. Dennis
<LI><A HREF="./lg_tips42.html">More 2 Cent Tips</A>
<LI><A HREF="./nielsen.html">autofs tutorial revisited</a>, by Mark Nielsen
<LI><A HREF="./lamb.html">Caldera 2.2 Quick Review</a>, by Sean Lamb
<LI><A HREF="./adler.becker.html">From Word Processors to Super Computers</a>, by Stephen Adler
<LI><A HREF="./gm/gm.html">Graphics Muse</a>, by Michael J. Hammel
<LI><A HREF="./adler.fnal.html">Linus at Fermi Lab</a>, by Stephen Adler
<LI><A HREF="./richardson.html">Linux Expo 1999</a>, by Marjorie Richardson
<LI><A HREF="./coats.html">Book Review: Programming Web Graphics</a>, by
Jack Coats
<LI><A HREF="./stumpel.html">Setting up mail for a home network using exim</a>, by Jan W. Stumpel
<LI><A HREF="./carlson.html">An xdm Session</a>, by Chris Carlson
<LI><A HREF="./lg_backpage42.html">The Back Page</A> 
<ul>
<li><a HREF="./lg_backpage42.html#authors">About This Month's Authors</a>
<li><a HREF="./lg_backpage42.html#notlinux">Not Linux</a>
</UL>
</UL>
&nbsp;<BR> 
&nbsp;<BR> 
&nbsp;<BR> 
&nbsp;<BR> 
&nbsp;<BR> 
&nbsp;<BR> 
&nbsp;<BR> 
&nbsp;<BR> 
&nbsp;<BR> 
</td>
</tr>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
</table> 

<!--=============================================================-->
<P> 
<table>
<tr><td>
<A HREF="./issue42.txt.gz">TWDT 1 (gzipped text file)</A><BR>
<A HREF="./issue42.html">TWDT 2 (HTML file)</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.
 </td></tr>
<!--==================================================================-->
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
<tr><td>
<center>
<I>Linux Gazette</I><img src="../gx/tm.gif">, <A HREF="http://www.linuxgazette.com/">http://www.linuxgazette.com/</A><BR> 
This page maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com"> gazette@ssc.com</A>
<P> 
<H5>Copyright &copy; 1996-99 Specialized Systems Consultants, Inc.</H5>
</center>
</td></tr>
<TR>
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
SRC="../gx/hammel/cleardot.gif" ALT="indent" HSPACE=30 VSPACE=2 HEIGHT=1
WIDTH=1 ALIGN=LEFT></TD>
<TD></TD>
</TR>
</table>
<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_mail42.html#help">Help Wanted -- Article Ideas</a>
<li><a HREF="./lg_mail42.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> 
Answers to these questions should be sent directly to the e-mail address of
the inquirer with or without a copy to gazette@ssc.com. Answers that are
copied to <I>LG</I> will be printed in the next issue in the Tips column.

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Thu, 27 May 1999 12:33:42 -0230 (NDT)<BR> 
From: Neil Zanella, <A HREF="mailto:nzanella@cs.mun.ca">
nzanella@cs.mun.ca</A> <BR> 
Subject: <font color="navy">call for article: wireless ethernet</font>
<P>
It would be nice if someone wrote an article on wireless ethernet on Linux
(eg. WaveLAN). I think it would make a good article.
<P>
Best Regards,
<P>
--<BR> 
Neil Zanella

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 03 May 1999 16:33:32 -0500<BR> 
From: Pete Nelson, <A HREF="mailto:pete.nelson@ci.stpaul.mn.us">
pete.nelson@ci.stpaul.mn.us</A> <BR> 
Subject: <font color="navy">Any inetd wizards out there?</font>
<P>
I have been digging for the past several months to try and find any way
to bind inetd to one IP / interface.  I have a machine with several
virtual hosts, and had originally intended for only the main IP /
interface to respond to telnet, ftp, etc.  The virtuals would only
respond via httpd.  Unfortunatly, this doesn't seem to be the way it's
working - not only can I telnet / ftp to all addresses, it seems like
every inetd connection shows up on the LAST IP interface for some
reason.
<P>
I've looked thru manpages, NAG, websites, and while I know a lot more
than when I started looking, I was never able to solve this binding
problem.
<P>
Anyone have the answer?
<P>
--<BR> 
Pete

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 3 May 1999 13:07:07 -0700 <BR> 
From: Darrin Mossor, <A
HREF="mailto:darrinm@Model.com">darrinm@Model.com</A><BR>  
Subject: <font color="navy">LILO Lock</font>
<P>
I have a Dell PII-450 with an STB4400 Riva TNT video board, 128M RAM.  I 
dual boot Windows (for the kids and some games) and RedHat5.2.  I use LILO
to 
handle the booting, with Windows being the default.  Occasionally, Windows
will 
lockup (big surprise), especially when playing more recent, graphics
intensive,  
games.  When this happens, a reset is required and the magic reset button is
<P>
pressed.  Most of the time, on the LILO screen, the boot locks, displaying
"LIX".  A 
second reset is required to get things moving again.
<P>
I'm looking for two things:
<P> 
1) Possible explanations for what would cause LILO to hang (I suspect the
video 
drivers, but I've tried the ones that shipped with the PC, the latest and
even the 
Detonator drivers from nVidia - no change in the frequency of lockups or the
LILO 
hang.
<P> 
2) Where can I find out what (if anything) LILO is trying to tell me by
displaying 
"LIX".  I have a feeling it's trying to tell me something useful, if I new
how to decode 
it.  And I would like to know the source of this information.  I have pretty
good luck 
find the answers myself, but this one has eluded me.
<P>
Other possible details: SB16 for sound, 13.6G IDE HD.
<P>
Thanks,
<P>
    --<BR> 
    Darrin Mossor

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sat, 8 May 1999 18:09:51 -0700 (PDT)<BR> 
From: Ariel "Leon", <A HREF="mailto:a_soul@rocketmail.com">
a_soul@rocketmail.com</A> <BR> 
Subject: <font color="navy">I need some help here, please!</font>
<P>
Hi, I wonder if anyone can help me out here with my
partitions. I have a P100 with 16RAM, i recently 
changed my HDD 'cause it died, i replaced it with a
6.4Gb WesternDigital HDD. When i was installing it
using EZ-Drive, the setup program detected that my
bios wasn't going to support large drives so it
installed EZ-Bios, EZ-Drive also partitioned the
drive into four partitions (right now one has win95
and the others are free).....when i tried to install
debian 1.3.1 the setup insisted in trying to go
through the partitioning process but it detected "bad
logical partitions".
<P>
What can i do to install linux in two of the existing
partitions without losing my data (i'd like to run
dual boot). One more thing, the D:, E: and F:
partitions have recycle bins and i can't get rid of
them even when formating them, what's going on here.
<P>
Thanks
<P>
--<BR> 
Ariel

<P>
Date: Sun, 9 May 1999 19:03:42 +0100 (BST)<BR> 
From: "D. Lovecraft", <A HREF="mailto:dl19@leicester.ac.uk">
dl19@leicester.ac.uk</A> <BR> 
Subject: <font color="navy">Choosing GUI for users</font>
<P>
I have set up my PC to allow all the people in my household (we're
students, by the way) to use various accounts in Linux. No problem
there.
<P>
The thing is the user-interface we use. Everyone uses KDE for their
chosen interface, but I prefer Afterstep. I use the kwm login program
to allow people to,... well,... login, but it always defaults to using
KDE. For the people in my household, this poses no great problem, as
that is what they are after. I would like to be able to use Afterstep
though.
<P>
But try as I might, I cannot get it to load Afterstep just for me. I
have tried editing .xinitrc in my directory, and many other things
besides, but I cannot get it to go.
<P>
Please, oh wise one, what should I do???
<P>
--<BR> 
Dela Lovecraft

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 10 May 1999 22:11:59 +0100<BR> 
From: "Michael", <A HREF="mailto:michael@cimmj.freeserve.co.uk">
michael@cimmj.freeserve.co.uk</A> <BR> 
Subject: <font color="navy">Direct Cable Connection between Win95 and Linux</font>
<P>
Just read issue 41 and read the great article about direct cable connections
between
Win95 and Linux, I tried implementing this method but came across a couple
of problems
running Windows 98. (4.10.1998)
<P>
I can get terminal emulation (using HyperTerminal) running at 38400 baud
but 115200 crashes at the password prompt.  (115200 works with xon/xoff
using kermit as the terminal program).
<P>
Can't figure out how to get Windows to dial out over the serial line as in
your article.
I tried creating a new modem using the modems wizard in the control panel
using
'standard serial between 2 PC's' and it goes through the process reporting
success at
the end but no device appears anywhere.
<P>
In control-panel|System Devices|Com Ports another device appears for COM1 so
Windows
thinks I have 2 COM1's ?
<P>
I click on add Dial Up Connection and can't select anything other than the
Hayes accura
modem I have on COM3.
<P>
Any Ideas ?
<P>
Thanks in advance for any help you may be able to give.
<P>
PS.
<P>
I am running RedHat Linux 5.2 and can't find the ftpserver*.rpm.  Do you
have details
on where I can get the sources/binaries (in any package format - I have the
alien
script and ar) so I can set up an ftp server on this machine.
<P>
--<BR> 
Michael

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 10 May 99 16:05:05 PDT<BR> 
From: "Ross Waters", <A HREF="mailto:rwaters@tartannet.ns.ca">
rwaters@tartannet.ns.ca</A> <BR> 
Subject: <font color="navy">Linux and Windows</font>
<P>
I am new to the computer world and I only have a 386 laptop running Win3.1.
Is there a small linux program I can Install without  losing my win3.1.
I have 200 meg hard ddrive and 8Megs of RAM.
<P>
--<BR> 
  Ross Waters
<blockquote> <I> 
(Check out the article, <A HREF="../issue38/veselosky.html">"Windows/Linux Dual Boot"</A> by Vince Veselosky in issue
38. --Editor)</I> </blockquote> 

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 17 May 1999 13:52:34 -0600<BR> 
From: Chris Hirsch, <A HREF="mailto:chris@symsystems.com">
chris@symsystems.com</A> <BR> 
Subject: <font color="navy">Netscape Bookmark Window Width</font>
<P>
I'm trying to figure out how to adjust the bookmark window width for
netscape 4.51. My problem with the current size is that when looking at
bookmarks that have very long descriptions they get truncated in the
middle and make the descriptions worthless. Is there some way to
dynamically size them? I'll even settle for a static size as long as its
bigger than the defautlt.
<P>
Any suggestions?
<P>
Thanks,
Chris

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Thu, 20 May 1999 20:30:54 -0400<BR> 
From: "Jesse Legg", <A HREF="mailto:jesse.legg@axom.com">
jesse.legg@axom.com</A> <BR> 
Subject: <font color="navy">Good commercial Terminal Emulation</font>
<P>
I'm in need of a good commercial package for Linux and terminal 
emulation. It needs a *very good* VT320 support and such. Any 
suggestions?
<P>
--<BR> 
Jesse

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Fri, 21 May 1999 18:01:02 -0500<BR> 
From: Noel Stoutenburg, <A HREF="mailto:mjolnir@ticnet.com">
mjolnir@ticnet.com</A> <BR> 
Subject: <font color="navy">re: gzipping TWHT-1</font>
<P>
I am in the process of switching to Linux, however, I cannot complete
the process just yet, in addition, I am in the process of moving, and my
linux box is not presently functioning.
<P>
I have been downloading and saving the LG issues, using TWDT - 1, and
discovered that the last three issues have been gz files, but I cannot
figure out how to get these expanded on my win/dos system.   Maybe you
can point me to a place where I can find out what process to use, and
where to get the appropriate software to accomplish the expansion on
DOS/WIN.
Thanks.
<P>
--<BR> 
Noel

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Fri, 21 May 1999 18:04:06 -0500<BR> 
From: Noel Stoutenburg, <A HREF="mailto:mjolnir@ticnet.com">
mjolnir@ticnet.com</A> <BR> 
Subject: <font color="navy">PS to re: gzipping TWHT-1</font>
<P>
I am in the process of switching to Linux, however, I cannot complete
the process just yet, in addition, I am in the process of moving, and my
Linux box is not presently functioning.
<P>
I have been downloading...[snip]...expansion on
DOS/WIN.
<P>
Thanks.
<P>
P.S.  Maybe you could add TWDT 3, which would be an uncompressed file...
--<BR>
Noel
<blockquote> <I> 
(Check this month's 2 Cent Tips for ways to uncompress Linux files using Windows. The HTML file is not compressed and for most issues neither is the txt file. I just started compressing it lately at user's request. --Editor)
</I> </blockquote> 

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sun, 23 May 1999 20:47:57 -0600<BR> 
From: "Steven Koch", <A HREF="mailt:kochsb@home.com">
kochsb@home.com</A> <BR> 
Subject: <font color="navy">How To Make A Bootable Linux (OpenLinux 2.2) Floppy?</font>
<P>
Question: How do I make a bootable OpenLinux 2.2 floppy?  I have Windows 
95 on my PC right now. I already installed OpenLinux 2.2 on my HDD.  I 
put Linux (Root & Swap) on my Second HDD - D: drive.  I did a Full 
install & works great.  But I can't seem to boot to the Linux anymore.
I boot straight to Windows 95 (with no problems).  I don't know if LILO
will work?  On my PC (Acer Open - P133) I have EZ-Drive installed in theDC
BIOS (my BIOS couldn't handle the 6.4MB WD HDD).  I've tried PM's
BootMagic, it won't work because of the EZ-Drive.  That's why I want to
know if it's possible to Boot to Linux from a Floppy?  I tried these 
methods from a Web Site:
<P> 
I have these 3 files in my C: root drive:<BR> 
-> Loadlin.exe<BR> 
-> Vmlinux<BR> 
-> Linux.bat (Below is what's inside of LINUX.BAT file)....<BR> 
<pre>
@echo off
cls
echo.
echo.
echo.
echo.
c:\windows\command\choice /t:y,5 "Do you wish to boot Linux?"
if errorlevel 2 goto End
c:\loadlin.exe c:\vmlinuz root=3D/dev/hdb4 ro
:End
</pre>
I also made this Boot Floppy (According to the Web Site) & it has these
2 files:<BR> 
-> autoexec.bat (Below is what's inside of AUTOEXEC.BAT file)....
<PRE> 
goto %config%
:win95=20
SET CTCM=3DC:\WINDOWS
SET SOUND=3DC:\PROGRA~1\CREATIVE\CTSND
SET MIDI=3DSYNTH:1 MAP:E
SET BLASTER=3DA220 I10 D3 H3 P300 T6
</PRE> 
-> config.sys (Below is what's inside of CONFIG.SYS file)....
<PRE> 
[menu]=20
menuitem=3DLinux, Boot to Linux
menuitem=3DWin95, Boot to Windows 95=20
menucolor=3D15,1
menudefault=3DLinux, 15

[linux]
shell=3Dc:\loadlin.exe c:\vmlinuz root=3D/dev/hdb4 ro

[win95]
</PRE> 
When I Do Boot With The Floppy In The A: Drive, I Receive This Error
Message:
<PRE>
Invalid System Disk
Replace The Disk, And Then Press Any Key
</pre>
I Take Out Floppy & It Boots To Windows 95.  Am I Doing Something Wrong
Here?  I Did Exactly What The Web Site Said To Do. I Know It's Something
In One OF These Files Or There All Wrong?  Or do you know a better
alternative?
Thanks,
<P>
--<BR> 
Steve 

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 24 May 1999 12:58:40 -0400<BR> 
From: Steve Ickes, <A HREF="mailto:stevei@paonline.com">
stevei@paonline.com</A> <BR> 
Subject: <font color="navy">Help wanted</font>
<P>
I am currently trying to install Star Office so that I may finally do
away with my Microsloth products.  However, when running ./setup, I get
a script error.  I have searched and posted but to no avail.  I did find
reference to using 'ldd' instead of 'exec' when running ./setup.bin. 
However, being relatively new to Linux, this means very little to me.
<P>
Any ideas, help or suggestions?  I wouldn't think that this is a big
issue.  Yes, I am running the appropriate versions of glib and lib and
running Red Hat v5.2 with the GNOME desktop and FVWM.
<P>
--<BR> 
Steve

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sun, 9 May 1999 20:48:19 -0400<BR> 
From: "Timothy Gray", <A HREF="mailto:timgray@geocities.com">
timgray@geocities.com</A> <BR> 
Subject: <font color="navy">CAD on Linux and X</font>
<P>
I have a CAD station that is currently windows crippled. I have a
summagraphics tablet and a hp plotter which both work great under WIN95/98
(both are old by most everyones standards.. circa 1989-1990). But, I cannot
find anything on the net about using a tablet with X windows, or a plotter.
Xfree86's sites all mention mice and never say anything about any other
input device. Both items have win/dos/cad drivers along with SCO and VMS
drivers.
<P>
Is there anything I can find about serious CAD under linux and using my
hardware on the net? If I can get this running under xfig I can save
thousands and give me one more reason to use my windows CD's as coasters.
<P> 
--<BR> 
Timothy

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 11 May 1999 10:36:39 +0200
From: Matthias Mikuletz, <A HREF="mailto:matthias@theo2.physik.uni-stuttgart.de">
matthias@theo2.physik.uni-stuttgart.de</A> 
Subject: Corrupt partition table
<P>
I need urgent HELP.
<P>
After having deleted a 8gig primary FAT32 partition and reinstalled a 4gig primary
<P>
and a 4gig extended FAT32 partition on a 13.5 gig drive the linux partition on the last 5gig
<P>
isn't accessible anymore.
<P>
Dos Fdisk works properly, doesn't show up anything unusual, but linux fdisk complains about
<P>
different logical/physical beginnings/endings and overlapping. Also PartitionMagic 3.0 only
tells me about a partition table error #116.
<P>
Windows95 works properly on the first two partitions.
<P>
Can anyone tell me about a tool to fix the partition table (to scan the disk and guess
correct cylinder/head values)?
<P>
Maybe the reassigning of the extended FAT32 partition has destroyed the linux partition.
<P>
Thanks a lot in advance.
<P>
--<BR> 
matthias

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 26 May 1999 23:37:13 EDT<BR> 
From: <A HREF="mailto:Robert8005@aol.com">
Robert8005@aol.com</A> <BR> 
Subject: <font color="navy">Video Problems</font>
<P>
I new to linux and learning fast. I just got one problem when I use startx or 
kde my screen just shows Black and gray stripes. I have a Diamond SpeedStar 
A50  AGP card and a ViewSonic 17EA Monitor. I tried the optiond Caldera said 
and none worked. ANy help would be great.
<P> 
--<BR> 
Robert

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 2 Jun 1999 02:43:24 -0700 (PDT)<BR> 
From: kenneth kenneth, <A HREF="mailto:monkeydrum_98@yahoo.com">
monkeydrum_98@yahoo.com</A> <BR> 
Subject: <font color="navy">Red Hat</font>
<P>
Can you tell me where can i find the step to install
Linux Red Hat 5.2 ....
<P> 
--<BR> 
Kenneth


<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: Fri, 04 Jun 1999 01:31:14 +1000
From: peter, <A HREF="mailto:marshypj@ozemail.com.au">
marshypj@ozemail.com.au</A> 
Subject: netled article issue 41, by larry ayers
<P>
Zee correct address for Matthew Bevan site and NetLed Program is :
<P>
http://mars.ark.com/~mbevan/products/netled.shtml

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 4 May 1999 00:54:19 -0700 (PDT)<BR> 
From: Felix Morley Finch, <A HREF="mailto:felix@crowfix.com">
felix@crowfix.com</A> <BR> 
Subject: <font color="navy">Conversation with Craig Burton</font>
<P>
I think Mr Burton has a lack of imagination on how Linux can take over
a lot of desktops.  He claims
<blockquote> <font color="navy">
	Windows growth would have to go to zero and Linux would have
	to grow exponentially for the next eight to ten years before
	it would even begin to gain on Microsoft. And until Linux is
	at 20% market share, no serious developer is going to give it
	any respect.
</font></blockquote> 
It might be so if the hundreds of millions of Windows PCs in use now
would still be in use eight to ten years from now.  But PCs will be
replaced several times during that period.  Each replacement is
another opportunity for Linux.
<P>
Most people use Windows for Office file compatibility and games.
StarOffice, ApplixWare, and Word Perfect already offer almost complete
Word compatibility, and games are beginning to appear.  In a year or
two, Linux will be reasonable for a majority of uses.  A few early
adaptors will smuggle Linux into offices, its viability will become
evident under practical conditions, and managers will realize they can
save money, downtime, and headaches by installing Linux.
<P>
Internet compatibility requirements, and resentment over expensive
upgrades, will prevent MS from force feeding many more incompatible
Office file format "upgrades".  Cheaper and cheaper hardware will make
the cost of MS software more apparent.  Just as MS Works was developed
as a cheaper alternative to Office, people will "settle" for Linux for
their kids.
<P>
Linux doesn't have to replace existing Windows machines.  It only has
to be a proven viable alternative when people replace old PCs.  Faced
with forced upgrades by MS's short sighted policies, people will
choose inexpensive compatible standards-friendly Linux over expensive
incompatible Redmond-protocols Microsft.
<P>
--<BR>
Felix

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 3 May 1999 18:30:31 EDT<BR> 
From: <A HREF="mailto:Robbo0119@aol.com">Robbo0119@aol.com</A> <BR> 
Subject: <font color="navy">Linux and W98</font>
<P>
I use W98 for most of my essential tasks and also use it for "GAMES". I own a 
lot of games.
<P>
HOWEVER i recently started to use Linux as an alternative operating system. 
It has a steep learning curve , ( at least for me, because I don't seem to 
own the hardware that it comes ready for and have had to hunt down drivers on 
the net, and also learn to install them properly.)
<P>
The current state of Linux reminds me of OS/2 when it first came out. I liked 
OS/2 (I had the 3.0 ). BUT . I stopped using it because there were very few 
(almost none) programs for OS/2 at the time. I considered it a superior OS to 
Windoze. It actually worked.But you had to learn how to make it work.
 <P> 
I will be really glad if Linux makes it in the market, Be assured that Bill 
Gates with all of his money is not going to let an Operating System that's 
essentially FREE take over his market share ( probably he thinks of it as his 
domain).
Good Luck Linux!!
<P> 
--<BR> 
robbo

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 03 May 1999 23:58:12 -0500<BR> 
From: <A
HREF="mailto:cbbrowne@godel.brownes.org">cbbrowne@godel.brownes.org</A> <BR> 
Subject: <font color="navy">LinuxCAD Reviewz</font>
<P>
I think that it is a very good thing that you presented the Official
Reaction of Software Forge Inc to the previous "LinuxCAD" Review; 
the quality of the response as well as the advertising material speaks
as loudly as any review could.  (Including the one claimed to be
"fraudulent.")
<P>
It is clearly important for Linux Gazette to remain editorially objective;
in this case that has been quite successfully done.  However badly you
may have wanted to use a spell-checker, the community will always remain
grateful for your self-control in throttling that impulse.  :-).
<P>
--<BR>
cb

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 4 May 1999 20:41:47 +0200<BR> 
From: Craig Schlenter, <A HREF="mailto:craig@qualica.com">
craig@qualica.com</A> <BR> 
Subject: <font color="navy">NetLED security problem?</font>
<P>
I read an article in <I>Linux Gazette</I> about netled and the comment about not
prepending /dev/ to any of the command line arguments intrigued me so I
thought I'd look at the source code:
<P>
From netled.c:
<pre>
char tty[10] = "/dev/";
[snip]
strcat(tty,argv[1]);
if((ttyfd = open(tty,O_RDWR)) < 0) {
    fprintf(stderr,"Error opening keyboard %s\n ",tty); 
    exit(1);
}
[snip]
</PRE> 
<P>
I'm not an expert in these matters but this would appear to be prone to
a buffer-overflow/stack-smashing attack. The fact that it's part of
main() and not some subroutine might have some bearing on the matter as
I'm not too sure whether exit() will look for some sort of return
address on the stack (and no libc source handy to check) but either way
it looks like something that needs fixing ...
<P>
I'd recommend a
<PRE>
if (strlen(argv[1]) >= 5) {
	fprintf(stderr, "argument too long");
	exit (1);
}
</pre>
be added before the strcat. This is especially relevant since you recommend
running the program SUID root. Actually a size of 10 for tty is too low as a
size since you want argv[1] to be "console" ...
<P>
I've cc'ed the author of the article, linux-gazette too and one of the
security mailing lists maintainers who is probably far more
knowledgeable than me about stack overflows to shed some light on the
matter.
Thank you,
<P>
--<BR> 
Craig

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 11 May 1999 11:12:05 -0600<BR> 
From: <A HREF="mailto:njg@itmin.com">njg@itmin.com</A> <BR> 
Subject: <font color="navy">Desktop Users</font>
<P>
I wish to make a request to the editor of the LG and hope others in my
category will support me. I was prompted to do this after reading mail in
your journal. The letter in April <BR> 
From: "Michael J. Hammel", mjhammel@graphics-muse.org <BR> 
Subject: Re: a newbie's grief : Erik Refner & Clara Lundqvist: "<BR> 
is one such example.
(I must admit that in my debut I created a partition with FIPS and installed
RedHat Linux ver 2.1 on my PC in 1995 with only few problems. So it is not
THAT bad really..But I could not get my modem to work!)
<P>
Linux is more than a BIG OS for developers and programmers. It has a great
future for ordinary PC DESKTOP users like me. Many people in the world
cannot afford Microsoft software. The OS and their Offfice suite is very
expensive. The restrictions of a single PC means if you have more than one
PC the cost increases.
Linux is affordable. One copy of the latest version in a library can be
shared by many. In poorer countries this will be a great boon. People will
learn to manage with the free software that is there to use. Going on the
internet will be easy as Netscape, familiar to everyone is available. A
simple x-based email client allowing multiple users will be all that is
needed, as Netscape does not allow multiple addresses on the same PC.
Also viruses are not a problem in linux, as yet!!! :-)
I read in the news in lg that Corel was going to build a desktop PC version
for ordinary PC users in MAY lg news...
<P>
"Ottawa, Canada - April 21, 1999 - Corel Corporation (NASDAQ: COSFF, TSE:
COS) today announced an alliance with
two major Open Source developer communities to advance the development of
its proposed Linux distribution; a user-friendly
Linux installation and graphical user interface (GUI) for the desktop PC."
<P>
But this may be costly. In the April news there was some hope...
"Project Independence: Linux for the Masses,
http://independence.seul.org/distribution/ "
<P>
Therefore my request.
Could you please reserve a little section of your lg for simple desktop uses
of Linux, as opposed to programmers, LAN users, Server users etc.? News as
well as software reviews specially of value to us  could be great!
Thanks
<P>
--<BR> 
Nandalal Gunaratne
<blockquote> <I> 
(I'd be happy to have deskopt uses included. Anyone who submits this type of
article can be assured that we will post it. --Editor)
</I> </blockquote> 

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 5 May 1999 16:53:53 -0400<BR> 
From: Larry Kollar, <A HREF="mailto:lkollar@my-dejanews.com">
lkollar@my-dejanews.com</A> <BR> 
Subject: <font color="navy">Re: KDE is bloated and slow (not</font>)
<P>
I keep hearing all this stuff about KDE is bloated, KDE is slow, KDE
put a nasty stain on my favorite T-shirt and I can't get it clean,
you get the idea....
<P>
I run Linux part-time on a Mac G3/266 (the beige box, "only" 32MB of
RAM), with KDE as my standard GUI, and I don't see what people are
complaining about.  Maybe I'd feel different if I had to run it on
a Pentium, or on a Mac IIsi running NetBSD or Linux-68k, but KDE
responds well to decent hardware. I recently updated from a beta
to 1.1, and it does feel a bit snappier.
<P>
I'll admit to shutting down X to compile large projects, but only
because of my current RAM limits. Once I add more RAM, I'll probably
change the runlevel to 5 and have X + KDE running all the time.
<P>
Besides, my wife would kill -9 me if I removed KDE -- she learned how
to boot into Linux & start X just so she can play kmahjongg and a couple
of the other games. This by itself is a reason to have KDE available;
you can spend a few minutes showing newbies a comfortable interface
and blunt the irrational fear of not-Windows.
<P>
Looking for a 3-button ADB mouse,
<P>
	--<BR> 
	Larry

<P> <HR> <P> 
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 24 May 1999 14:52:06 +0200<BR> 
From: Roger
Subject: <font color="navy">MTBF for Craig Burton</font>
<P>
Craig Burton said "Show me the MTBF figures"
<P>
I am used to a hardware background, where we calculate MTBF figures
before releasing systems. If nothing else, they give a rougth guide to
how many spares you need;-)
 <P> 
BUT, basicly speaking, this calculation is done by taking an MTBF figure
for each element (This type of component employed in this manner has
this MTBF), which are text book figures derived from statistical
analysis, and then you add them all together.
 <P> 
This means if system A has 10 widgets and 6 doofas, whilst system B has
15 widgets and 12 doofas, then system A will have a much lower MTBF.
<P>
It may seem a harsh way to calculate reliability, but generaly speaking
it works, and one always regards system reliability as being inversely
proportional to system complexity. Most of us are not able to review the
NT source, but it is believed to be far more complex than Linux, which
would suggest that the MTBF is proportionatlely lowwer.
<P>
Of course in software there are many other parameters, but nontheless
complexity is a major parameter. Another biggie is the language used for
development, C programming is far more vulnerable than higher level
languages for obscure bugs such as memory leaks, but for performance
reasons so low level languages are considered essential for OS work, and
so both have the same vulnerability (in fact one can easily find
disaster tales of e.g. memory leaks on both platforms).
<P>
Another major factor is using tried and trusted methods (or re-using
well proven code). Much of the reason for NT's additional complexity is
that it has to support so many MS invented protocols designed to render
it incompatible with the rest of the world. This is particularly so when
one get's out of kernel space into userland, Linux makes heavy (re)use
of legacy *nix software such as sendmail which has a very long history.
<P>
In a nutshell, there are sound scientific arguments as to why Linux may
be more relaible than NT, indeed one of Linus's rallying cries is to
keep things simple, and he resists attempts to over complicate the
kernel. MS (IMHO) appear to have tied themselves in knots with all thier
attempts to do things in a proprietry manner.
<P>
I think Craigs comments that imply that people who say Linux never goes
down are talking shit and are just Linux worshippers are a bit
excessive. Of course Linux does go down, but these people are just
reflecting a common appearence that Linux boxes do seem to go months
before re-boots (so one forgets when one last re-booted), wheras NT
reboots tend to be common enougth to be frustrating (...but we re-booted
just a couple of weeks ago). It is a subtle difference, but Linux by
being a little better appears to cross the memory threshold.
<P>
All I will add is that at work I use both a Linux and NT server, neither
are particularly loaded, and both are doing file and print sharing
(allthougth the Linux box does handle a mega printer which often has
100's of megabytes in the queue, it was moved from the NT box because it
did not work there). The Linux box has only ever gone down during power
outages (no UPS), whilst the NT box (which does has a UPS), has gone
down several times in the two year period I have been in this
environment. Note that the Linux server was just loaded and set up on
the fly by ourselves, whilst the NT box was set up, and is maintained,
by an outside firm with MS certified personel.
<P>
Am I a religious nut for pointing this out? 
<P>
I think Craigs comments that imply that people who say Linux never goes down are talking shit and are just Linux worshippers are a bit excessive. Of course Linux does go down, but these people are just reflecting a common appearence that Linux boxes do seem to go months before re-boots (so one forgets when one last re-booted), wheras NT reboots tend to be common enougth to be frustrating (...but we re-booted just a couple of weeks ago). It is a subtle difference, but Linux by being a little better appears to cross the memory threshold.
<P>
--
Bye for now, And watch out for those
low flying Penguins.......
<P>
Roger


<P> <hr> <P> 
<!--================================================================-->
<center>Published in <i>Linux Gazette</i> Issue 42, June 1999</center>
<!--====================================================================-->
<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_bytes42.html#general">News in General</a>
<li><a HREF="./lg_bytes42.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/cover63.jpg"></center>
<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
July 1999 <I>Linux Journal</I>
</font>
</H3>
<P> 
The July issue of <A HREF="http://www.linuxjournal.com/"><I>Linux
Journal</I></A> will be hitting the newsstands June 11.
This issue focuses on Science and Engineering. Feature articles include
"Archaeology and GIS", "SCEPTRE: Simulation of Nonliear Electric Circuits",
Stuttgart Neural Network Simulator" and "Real-Time Geophysics Using Linux".
Also included are an article by Dan York on "Building a Linux Certification
Program, one by Jon "maddog" Hall about his visit to Fermi Labs at Spring
COMDEX and an interview with Dev Mazumdar and Hannu Savolainen of 4Front
Technolgies.
<I>Linux Journal</I> now has articles that appear "Strictly On-Line".
Check out the Table of Contents at
<A HREF="http://www.linuxjournal.com/issue62/index.html">
http://www.linuxjournal.com/issue62/index.html</A> for articles in this
issue as well as links to the on-line articles. 
To subscribe to <I>Linux Journal</I>, go to <A
HREF="http://www.linuxjournal.com/ljsubsorder.html">
http://www.linuxjournal.com/ljsubsorder.html</A>.
<P> 
<font color="green">
For Subcribers Only</font>: <I>Linux Journal</I> archives are now available 
on-line at <A
HREF="http://interactive.linuxjournal.com">http://interactive.linuxjournal.com/</A> 

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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
1999 USENIX Annual Technical Conference
</font>
</H3> 
<P>
June 6-11, 1999 -- Monterey Conference Center, Monterey, California

<P> The Keynote will be by John Ousterhout, creator of Tcl/TK, speaking on a
fundamental shift in software development to applications created by
extending existing applications, protocols, frameworks, and devices.

<P> The FREENIX track is devoted to high-level technical discussion of open
source software. Peer-refereed papers, expert talks, and evening sessions
will be led by leading OSS developers including Linus Torvalds, Kirk
McKusick, Theodore Ts'o, Theo de Raadt, and Robert J. Chassell for Free
Software Foundation/GNU. (Richard Stallman had planned to lead a BoF but
will be in Turkey on FSF business.)

<P> Web site:  <A HREF=http://www.usenix.org/events/usenix99>
http://www.usenix.org/events/usenix99</A>

<P>

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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
2000 USENIX Annual Technical Conference:  Call For Papers
</font>
</H3> 
<P>
June 18-23, 2000 -- San Diego, California
<P>
The Program Chair, Christopher Small, Lucent Technologies-Bell Labs, and
the Program Committee seeks to bring together the broad advanced computing
community under a single roof to share the results of the latest and best
work, find points of common interest and perspective, and develop new ideas
that cross and break boundaries. They invite your submission of original
and innovative papers.  Invited Talk proposals and suggestions and
proposals of tutorials are also very welcome.
<P>
Paper submissions are due November 29, 1999.
<P>
See <A HREF=http://www.usenix.org/events/sec99/cfp.html>
http://www.usenix.org/events/sec99/cfp.html</A>.



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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
Linux support in Indonesia
</font>
</H3> 
<P>
PT Cakram DataLingga Duaribu has announced it's first commercial Linux support
in Bogor, West Java, INDONESIA.  The support includes Linux consultation
service, Home PC pre-installed with RedHat Linux, Linux Servers with special
configurations.
<P>
For more information, contact <A HREF=http://cdl2000.or.id/linux.html>
http://cdl2000.or.id/linux.html</A> or 
<A HREF=mailto:linux-support@cdl2000.or.id>linux-support@cdl2000.or.id</A>.

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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
Linux 3D Gaming Initiative looking for volunteers
</font>
</H3> 
<P>
The Linux 3D Gaming Initiative (<A HREF=http://www.linux3d.net>
http://www.linux3d.net</A>) is a pro-bono community resource project initiated
by Full On 3D (<A HREF=http://www.fullon3d.com>http://www.fullon3d.com</A>).
It is open to and depending on contributors from all sorts of hardware and
gaming websites.. 
<P>
Voluteers needed:
<UL>
	<LI> Linux gurus of many shades, especially XServer and OpenGL=20
	<LI> networking under Linux ( LAN setup, internet, etc... )
	<LI> 3D theory and application
	<LI> Graphic artist(s)
	<LI> News hunters/updaters - this is a daily work, little HTML 
knowledge is needed
	<LI> Forum moderators
</UL>


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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
Linux Administrators Security Guide 0.1.0
</font>
</H3> 
<P>
<A HREF=https://www.seifried.org/lasg/>https://www.seifried.org/lasg/</A><BR>
150+ pages, Adobe Acrobat format.  An https:-capable browser is required for
download (This means a browser that can view secure webpages, such as recent
versions of Netscape or Internet Explorer.)
<P>
There is an LASG FAQ in HTML format, but https: is still required.<BR>
<A HREF=https://www.seifried.org/lasg/lasg-faq.html>
https://www.seifried.org/lasg/lasg-faq.html</A>.


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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
sourceXchange: Software-Development Model of the Future
</font>
</H3> 
<P>
More than just a job-posting or recruiting Web site, sourceXchange is
the industry's first vehicle to manage the open-source development
process that protects the interests of both corporate sponsors and
open-source developers.
<P>
The sourceXchange is a Web site that maintains a database of all
published project RFPs posted by corporate sponsors, registers
open-source developers and their teams, manages RFP responses from the
developer community, and manages payment.  It also will incorporate
peer review and project milestones to ensure quality and reliability of
each development project.
<P>
SourceXchange, an affiliate of O'Reilly &amp; Associates, was founded in
conjunction with HP, the founding sponsor. The two companies plan to
launch the service in early summer with an array of open-source
development projects from HP that expand its commitment to open-source
technologies.  Pending a successful beta launch in July, sourceXchange
will accept projects from other enterprise sponsors.
<P>
See <A HREF=http://www.sourcexchange.com>www.sourcexchange.com</A> for
details.


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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
Cosource.com: another service to fund Open Source development
</font>
</H3> 
<P>
Redmond, WA -- Veriteam, Inc., today announced the launch of their 
web-based service, Cosource.com (
<A HREF=http://www.cosource.com>www.cosource.com</A>), which will 
enable users of Open Source Software to directly influence the 
development of Open Source Projects.
<P>
Cosource.com will launch the beta-testing phase of their service on 
June 1, 1999.  During the beta-testing phase, registered sponsors will 
nominate seed projects for development by Open Source developers, while 
programmers will register as potential developers of sponsored 
projects.  After the beta phase, Cosource.com will begin accepting 
sponsorships for specific projects from consumers of Open Source 
Software.
<P>
Cosource.com allows individuals to offer financial rewards to 
developers of Open Source Projects in exchange for creating software 
that meets the individuals' needs.  On the web site, a database records 
the specifications and initial sponsorship amount offered for a 
project.  After the initial sponsorship, other sponsors can easily add 
their sponsorship amounts to the project, thus increasing the bounty 
offered for the project.
<P>
Once a significant bounty has accrued, developers bid for the right to 
produce the software according to the specifications detailed by the 
project's sponsors.  The Staff at Cosource.com coordinate the interface 
between the sponsors and developers, making sure the needs of the 
sponsors are met and the developers are paid for their efforts.  
Sponsors make their payments via a secure credit card payment system, 
and the developer is paid with one check issued by Cosource.com.

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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
O'Reilly "Open-Sources" <EM?OpenSources: Voices From the Revolution</EM>
</font>
</H3> 
<P>
Sebastopol, CA-O'Reilly &amp; Associates announced today that they a
are making the entire new book, <EM>?OpenSources: Voices From the
Open Source Revolution</EM> freely available (or "open-sourced")
on their 
<A HREF=http://www.oreilly.com/catalog/opensources/book/toc.html>
web site</A>.
<EM>Open Sources</EM> is a collection of essays that offer insight into 
how the Open Source movement works, why it succeeds, and 
where it is going.
<P>
<EM>OpenSources</EM>, published in January 1999, has earned considerable
critical acclaim. In "OpenSources", Open Source pioneers such as Brian
Belendorf (Apache), Scott Bradner (Internet Engineering Task Force),
Jim Hamerly (Netscape), Kirk McKusick (Berkeley Unix), Tim O'Reilly
(O'Reilly &amp; Associates), Tom Paquin (mozilla.org.), Bruce Peren (Open
Source Initiative), Eric Raymond (Open Source Initiative), Richard
Stallman (Free Software Foundation), Michael Tiemann (Cygnus
Solutions), Linus Torvalds (Linux), Paul Vixie (Bind), Larry Wall
(Perl), and Bob Young (Red Hat) share their vision of the Open Source
movement.


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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
Pacific HiTech and Computer Associates announce Linux partnership
</font>
</H3> 
<P>
ISLANDIA, N.Y., and TOKYO, JAPAN, May 18, 1999--Computer Associates
International, Inc. (CA) and Pacific HiTech today announced a partnership
to broaden the acceptance of Linux and Linux-based applications by
corporate users across the Pacific Rim and worldwide.
<P>
Under terms of the agreement, CA and Pacific HiTech will create a unique,
high-value operating system solution that incorporates both Pacific
HiTech's TurboLinux and CA's industry-leading Unicenter TNG management
technology. CA will develop versions of Unicenter TNG and Unicenter TNG
Framework to support TurboLinux, while Pacific HiTech will promote the use
of Unicenter TNG as the premier management solution for its Linux customer
base. The companies have also agreed to collaborate closely on engineering
multiprocessor clustering and failover support for their respective
solutions.
<P>
Here's the 
<A HREF=http://www.cai.com/press/1999/05/ca_pacific_hitech.htm>
full press release</A>.

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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
Pacific HiTech and IBM
</font>
</H3> 
<P>
Pacific HiTech and IBM announced an industry first partnership whereby Pacific
HiTech will ship IBM's DB2 Universal Database with its Linux Operating
Suite, TurboLinux.
<P>
Pacific HiTech will sell its TurboLinux products integrated with IBM
middleware - beginning with DB2 Universal Database - through its channels in
Asia and North America.  
<P>
Also announced today was the largest deployment to date of IBM NetFinity
servers running Linux.  The deployment, which took place at Kyoto Sangyo
University, a leading university based in Kyoto, Japan, involves more than
600 IBM NetFinity 3000 servers running on Pacific HiTech's TurboLinux
workstation.  The installation of this technology will enable the
university's students, faculty and researchers to run both the TurboLinux
workstation and Microsoft Windows NT operating systems on a single network.

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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
Intel and H-P: Linux on Merced
</font>
</H3> 
<P>
Intel and HP have announced that the
Merced program has included Linux as one of the Operating Systems the
chip will be certified on at its release date.
<P>
The announcement is on
<A HREF=http://developer.intel.com/design/processor/future/overview/sld020.htm>
Intel's website</A>.


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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
USALogin web site revamp (pre-configured Linux systems)
</font>
</H3> 
<P>
USALogin specializes in pre-configured Linux solutions designed to snap into your existing corporate network. 
<P>
USALogin's solution will 
<UL>
	<LI> Protect your network through firewalling
	<LI> Manage your REAL-TIME email - both within your office and to the outside world.  (yourname@yourcompany.com)
	<LI> Host the corporate website (www.yourcompany.com)
	<LI> Allow multple users to access the Internet through one telephone line
	<LI> Manage the corporate email lists
	<LI> Interface seamlessly with Microsoft Outlook, Office and Netscape
</UL>
<P>
The system is complete and installed into your office with a single low monthly cost. 
<P>
USALogin's web site is <A HREF=http://www.usalogin.net>www.usalogin.net</A>.



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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
CTiTEK replaced Windows NT with Linux on a client's webserver
</font>
</H3> 
<P>
Chesterfield, MO - May 18, 1999 - CTiTEK Inc.
<P>
"This is the fourth Linux installation in two months. Others consisted of
firewalls and Email servers.
<P>
An estimated $2,000 - $10,000 annual savings can be realized when switching to
a Linux server.  (Includes labor, hardware, and software savings).
<P> 
A Microsoft FrontPage error on an Email form was the last straw that caused
this conversion to Linux. 
<P>
Instead of consistent errors and copious amounts of time spent on Microsoft's
software undocumented 'issues', it was decided to rebuild the system into a
Linux machine.
<P>
It all started by using Windows NT with Option Pack 4 to run multiple web sites
one year ago.  The customer wanted to run several websites on one machine, so
Windows NT with Option Pack 4 was used. 
<P>
Today it became necessary to run an Email Form (an area on the website that one
can fill-in and the info is sent by email to someone in the company) on the
website, and FrontPage was used to keep everything in the MS 'family'.
Unfortunately the FrontPage Email Form did not work properly with the
webserver. After spending countless hours trying to solve the problem,
including several calls to Microsoft, we realized that the Windows NT Operating
system will have to be rebuilt with the latest version of the Management
Console (An uninstall and installation of the latest option pack did not work).  
<P>
We selected Linux because it is a robust, free Operating System (benchmark
tests with reputable magazines indicate a minimum 75% higher performance).
<P>
TRADEMARKS. Microsoft, Windows, Windows NT, and/or other Microsoft products
referenced herein are either trademarks or registered trademarks of Microsoft."
<P>
CiTEK's website is <A HREF=http://www.citek.com>www.citek.com</A>.


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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
Alpha Processor, Inc. joins Linux International
</font>
</H3> 
<P>
LINUX EXPO, Raleigh, NC, May 19, 1999 - Alpha Processor, Inc. (API), the
leading provider of the world's fastest 64-bit microprocessor and related
technologies, today announced it has joined the non-profit Linux
International organization, formally pledging its continued commitment to
support application development for the Linux operating system.
<P>
"In becoming a member of Linux International, API joins industry
forerunners dedicated to the mass acceptance of Linux," said Jon "Maddog"
Hall, executive director of Linux International.  "Offering today's leading
high-performance platform for Linux, API is an ideal candidate for
membership.  This symbol of API's commitment to growing this market
undoubtedly will inspire innovations throughout the Linux community."
<P>
API is committed to developing enabling technologies to speed adoption and
growth of applications built on the Alpha Linux platform.  Alpha's superior
speed, performance and reliability make it a natural environment for Linux.
API's marketing and engineering partnerships and industry standard platform
price points are expected to expand Alpha's share in this growing market.
<P>
The company's website is 
<A HREF=http://www.alpha-processor.com>www.alpha-processor.com</A>.



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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
Magic Software announces the "Magic for Linux Really Cool Contest"
</font>
</H3> 
<P>
IRVINE, CA (May 20, 1999) -- Magic Software Enterprises (NASDAQ: MGIC)
announced today that it will award a free 10-day cruise for two to
Antarctica to the developer who builds the best e-commerce solution for
the Linux platform using Magic, the company's highly productive
development technology.  The contest, titled "The Magic for Linux Really
Cool Conte st", runs from May 20, 1999 through October 15, 1999, with all
entry forms d ue no later than September 30, 1999.   Complete details on
the contest can be obtained through the company's web site, 
<A HREF=http://www.magic-sw.com>www.magic-sw.com</A>.


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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
Ardent Software delivers key data management software for Red Hat Linux
</font>
</H3> 
<P>
WESTBORO, Mass., May 20, 1999 - Ardent Software, Inc. (Nasdaq: ARDT), a
leading global data management software company, today announced a
partnership with Red Hat Software, the market leading Linux distributor and
service provider. In partnership with Red Hat, Ardent will port key data
management software tools to Red Hat Linux (RHL), allowing Ardent's
extensive channel of resellers and distributors to make their business
applications available to Red Hat Linux users. Among the Ardent products to
be available on the Red Hat Linux platform are its UniVerse and UniData
relational databases and related development tools, including the System
Builder multi-tier 4GL and RedBack Web OLTP environment.
<P>
Ardent's web site is <A HREF=http://www.ardentsoftware.com>
www.ardentsoftware.com</A>.


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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
IACT's Freedom of Choice Petition
</font>
</H3> 
<P>
Join us in IACT's Freedom of Choice Petition, to stop the exclusive
pre-installation [bundling or tying] of a single company's software on the
computers sold, bought and used across the world. To bring real choice and
innovation to the PC market, we should be able to buy and sell new
computer systems compatible with Linux and a wide range of software
programs, in any combination.
<P>
Help us send that direct message to the PC companies, by signing and
supporting IACT's Freedom of Choice Petition! We're already getting great
support from the Internet community and from users, programmers and
resellers of Linux, OS/2, Unix, DOS, BeOS, BSD and yes, Windows, too. To
add your name to all of theirs, just use either our on-line form or
regular e-mail. Details are at
<A HREF=http://pages.cthome.net/iact/iaction-freechoice.html>
http://pages.cthome.net/iact/iaction-freechoice.html</A>.




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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
Linux Links
</font>
</H3> 
<P> 
Rasterman explains his departure from Red Hat:
<A HREF="http://slashdot.org/article.pl?sid=99/05/31/1917240&mode=thread">
http://slashdot.org/article.pl?sid=99/05/31/1917240&mode=thread</A> 

<P> 
LuCAS: Spanish-language Linux documentation:
<A HREF=http://lucas.hispalinux.es>http://lucas.hispalinux.es</A>

<P>
IBM announces support of four Linux distributions:
<A HREF=http://www.theregister.co.uk/990525-000006.html>
http://www.theregister.co.uk/990525-000006.html</A>.

<P>
<A HREF=news.sco.txt>
SCO's views of Linux and comments on recent press articles


<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">
<font color="green">
Proven dk bookkeeping program
</font>
</H3> 
<P>
May 3, 1999 -- Proven Software,Inc. today released Proven dk, Small Business 
Edition. Proven dk is a single-user quick entry bookkeeping 
package written specifically for the Linux desktop. The Small 
Business Edition is priced at $99 (US).  An evaluation copy is available
on the company's website.
<P>
Despite its low price, Proven dk, Small Business Edition is a 
comprehensive accounting system which includes Sales Invoicing, 
Accounts Receivable, CheckWriter, Accounts Payable, General 
Ledger, and Financial Report Generator. This new product provides 
the general bookkeeping and accounting essentials for most small 
businesses and organizations. 
<P> 
The company's web site is 
<A HREF=http://www.provenacct.com>www.provenacct.com</A>. 


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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
EasyCopy: printing and scanning prorgrams for CAD-related industries
</font>
</H3> 
<P>
SAN JOSE, Calif., April, 1999 - AutoGraph International
(AGI) debuted EasyCopy 6.0 at the COE TechniFair with a
scheduled late May release to the marketplace. EasyCopy 6.0
is a major rewrite of AGI's flagship, EasyCopy/X, which has
an installed base of more than 150,000 users worldwide. With
this new generation EasyCopy has taken a major step from a
printing solution to a flexible set of image communication
tools.
<P>
The company says EasyCopy, EasyConvert, EasyCopy/Page,  EasyCopy/Scan and
EasyCopy/Graphics run on Linux.  Pricing of EasyCopy begins at $395.
<P>
The company's URL is <A HREF=http://www.augrin.dk>http://www.augrin.dk</A>.

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

<H3><IMG ALT=" "   SRC="../gx/bolt.gif">
<font color="green">
Other Products
</font>
</H3> 

<P>
Harlequin Lispworks Beta for Red Hat on Intel (Common Lisp implementation):
<A HREF=http://www.harlequin.com/devtools/lisp>http://www.harlequin.com/devtools/lisp</A>.

<P>
/BriefCase 3.0 Released as OpenSource (Software Configuration Management
solution):
<A HREF=http://www.applied-cs-inc.com/>
http://www.applied-cs-inc.com/</A>.

<P>
Sylvan Prometric to Deliver New Linux Certification Tests:<BR>
	Information about the Sair Linux training and certification
program: <a href="http://www.linuxcertification.org/">www.linuxcertification.org</a><BR>
	Locations of Sylvan APTCs:
<a href="http://www.sylvanprometric.com/">www.sylvanprometric.com</a>


<P>
Integrated Computer Solutions, Inc. (ICS) has released its flagship product, Builder Xcessory (BX PRO(tm)), is now
available for SuSE Linux.  The press release is at
<A HREF=http://www.ics.com/about/whatshot/press_releases/bxlinux-suse.html>
http://www.ics.com/about/whatshot/press_releases/bxlinux-suse.html</A>.
This is a WSYWIG integrated development environment.


<P> 
Metroworks Code Warrior software development tool has been
ported to Red Hat.
<A HREF=http://www.metroworks.com>http://www.metroworks.com</A>.


<P>
Web-4M(tm) 2.5 provides a comprehensive collaboration/groupware environment for
Linux. The Web-4M server supports email, news, phone, the Browseable Document
Library(tm), the Interactive Slide Show(tm), audio conferencing, chat, a white
board, a calendar, scheduler and more. The Web-4M server runs under Linux and
other platforms in conjunction with the Apache web server. Clients can be Linux
or any platform that supports a Java-compliant web browser. 
<A HREF=http://www.jdhtech.com>http://www.jdhtech.com</A>. 


<P>
SuperAnt releases Linux Security CD-ROM:
<A HREF=http://www.superant.com>http://www.superant.com</A>.

<P>
VariCAD professional CAD system:
<A HREF=http://www.varicad.com>www.varicad.com</A>.


<P> <hr> <P> 
<!--================================================================-->
<center>Published in <i>Linux Gazette</i> Issue 42, June 1999</center>
<P> <HR> <P>
<!-- =================================================================== -->
<A HREF="./lg_toc42.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_mail42.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<A HREF="./lg_answer42.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; 1999 Specialized Systems Consultants, Inc. </H5> 
<P> 
<H3>Contents:</H3>
<p><a href="#tag/greeting"
	><img src="./../gx/dennis/bbub.gif" alt="(!)" border="0" 
	align="middle"><strong>Greetings From Jim Dennis</strong></A></p>

<DL>
<!-- index_text begins -->
<dt><A HREF="#tag/1"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>Setting up a Loopback Mount --or--
<dd><A HREF="#tag/1"
	><strong>
Loopback (localhost) NFS Mounting for FTP
</strong></a>

<dt><A HREF="#tag/2"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>sites for general disk info? --or--
<dd><A HREF="#tag/2"
	><strong>
General HD Info and Boot Code
</strong></a>

<dt><A HREF="#tag/3"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>TCP Sockets --or--
<dd><A HREF="#tag/3"
	><strong>
SYN, SYN/ACK, ACK, ACK, ACK: TCP Handshaking
</strong></a>

"Pleased to meet you!"
<dt><A HREF="#tag/4"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>cvs tree for pam --or--
<dd><A HREF="#tag/4"
	><strong>
PAM chroot
</strong></a>

Wherein Jim rants about PAM
<dt><A HREF="#tag/5"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>Resizing partitions --or--
<dd><A HREF="#tag/5"
	><strong>
Filesystem Management: What must be "resident" at all times?
</strong></a>

<dt><A HREF="#tag/6"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>Hubs --or--
<dd><A HREF="#tag/6"
	><strong>
Ethernet Switches vs. Hubs
</strong></a>

<dt><A HREF="#tag/7"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>procmail and saved variables. --or--
<dd><A HREF="#tag/7"
	><strong>
MATCH and Replaceable Parameters in procmail
</strong></a>

<dt><A HREF="#tag/8"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	><strong>RMA for Video Card</strong></a>

<dt><A HREF="#tag/9"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>Unix Internal --or--
<dd><A HREF="#tag/9"
	><strong>
Inodes Numbering: An Academic Question
</strong></a>

<dt><A HREF="#tag/10"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>One Bad Sector thats gettin on my nerves! --or--
<dd><A HREF="#tag/10"
	><strong>
One Bad Sector
</strong></a>
It Doesn't Ruin the Whole Disk

<dt><A HREF="#tag/11"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>Server shutdown/restart: 2-key keyboard --or--
<dd><A HREF="#tag/11"
	><strong>
Server Shutdown Button
</strong></a>

<dt><A HREF="#tag/12"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>hal91 --or--
<dd><A HREF="#tag/12"
	><strong>
HAL91 (Floppy Based Linux Distribution)
</strong></a>

<dt><A HREF="#tag/13"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>ping at a differnt port --or--
<dd><A HREF="#tag/13"
	><strong>
Ping a Port: NOT
</strong></a>

<dt><A HREF="#tag/14"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>Hey answer guy!!! --or--
<dd><A HREF="#tag/14"
	><strong>
Linux as a Job!
</strong></a>
Hobbies become fun and profit
<dt><A HREF="#tag/15"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	><strong>New Kernel Loses Ether Driver; 
		Dial on Demand and Masquerading</strong></a>
	<br>A grabbag of user questions.

<dt><A HREF="#tag/16"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	><strong>pcmcia install on debian</strong></a>
<dt><A HREF="#tag/17"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>work-around for gdi printer? --or--
<dd><A HREF="#tag/17"
	><strong>
WinPrinter Work-around
</strong></a>

<dt><A HREF="#tag/18"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>Question about 2 GB max? --or--
<dd><A HREF="#tag/18"
	><strong>
Maximum Filesize vs. Maximum Filesystem Size
</strong></a>

<dt><A HREF="#tag/19"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>Advanced ipfwadm question. icmp forwarding. --or--
<dd><A HREF="#tag/19"
	><strong>
ICMP Masquerading
</strong></a>

<dt><A HREF="#tag/20"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>RedHat 5.2 Kernel 2.0.36 --or--
<dd><A HREF="#tag/20"
	><strong>
Upgrade Breaks Several Programs, <TT>/proc</TT> Problems, BogoMIPS Discrepancies
</strong></a>
<br>A visit to "Library Hell"

<dt><A HREF="#tag/21"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>Pls spare a minute: --or--
<dd><A HREF="#tag/21"
	><strong>
Spare a Minute to Provide "Some Info"
</strong></a>

<dt><A HREF="#tag/22"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>HELP!!!!!!!!!! --or--
<dd><A HREF="#tag/22"
	><strong>
Data "Losted" (sic)
</strong></a>

<dt><A HREF="#tag/23"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	></a>"Network Neighborhood" --or--
<dd><A HREF="#tag/23"
	><strong>
Network Neighborhood: Heterogenous File Sharing
</strong></a>

<dt><A HREF="#tag/24"
	><img src="./../gx/dennis/qbub.gif" height="28" width="50"
	  alt="(?)" border="0"
	><strong>AOL</strong></a>
<!-- index_text ends -->
</DL>
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/greeting"><HR WIDTH="75%" ALIGN="center"></A>
<H3 align="left"><img src="./../gx/dennis/bbubble.gif" 
	height="50" width="60" alt="(!) " border="0"
	>Greetings from Jim Dennis</H3>
<!-- begin greeting -->
<h4 align="center">Lies, Damn Lies and Benchmarks</h4>

<p>Those of you who read slashdot (<a href="http://www.slashdot.org"
 >http://www.slashdot.org</a>), the Linux Weekly News 
 (<a href="http://www.lwn.net">http://www.lwn.net</a>), or other common 
 Linux webazines and forums have undoubtedly tired of reading about 
 the Mindcraft fiasco.  If so, maybe you'll skip this and go unto the 
 usual collection of "Answer Guy" questions.</p>

<p>The Mindcraft story has been interesting.  As some of my colleagues
 have pointed out their "attack" on Linux serves more to legitimize
 Linux as a choice for business servers than to undermine it.  In
 addition it appears that the methodology they used has uncovered
 some legitimate opportunities for improvement in the Linux process
 scheduling facilities.</p>

<p>I'm referring to the "thundering herd" issue that results from a
 large number of processes all doing a <tt>select()</tt> call on a given
 socket for file resource -- such as having a 150 Apache servers
 listening on port 80.  However that is not a new issue; Richard
 Gooch (a significant contributor to the Linux kernel mailing list
 and code base) discussed similar issues and possible patches almost
 a year ago:</p>

<dl><dt>I/O Event Handling Under Linux
   <dd><tt><a 
href="http://wwwatnf.atnf.csiro.au/people/rgooch/linux/docs/io-events.html"
>http://wwwatnf.atnf.csiro.au/people/rgooch/linux/docs/io-events.html</a></tt>
</dl>

<p>It looks like some work will go into the Linux kernel and into
 Apache to resolve some of those issues.  In addition I know that
 Andrew Tridgell and Jeremy Allison (a couple of the principal
 members of the Samba development team) have been been continuing
 thier work on Samba.</p>

<p>So the Linux/Apache/Samba combination will show improvement for the
 general case.  Samba 2.0.4 just shipped and already has some of
 these enhancements.  Some of the interesting changes to the Linux
 kernel might already be present in the 2.3.3 developmental kernel
 (and might be easily pack ported as a set of 2.2.9 patches).  So we
 could see some of the improvements within a couple of weeks.</p>

<p>Some of these improvements may give Linux a better showing in any
 "Mindcraft III" or similar benchmark.  Maybe they won't.  The
 <em>improvements</em> will be for the general case --- and I don't see
 much chance that open source developers will sneak in special case
 code that will only improve "benchmark" performance without being
 of real benefit.</p>

<p>That's one of the problems with closed source vendors.  There's
 great temptation to put in code that isn't of real value to real
 customers but will be great for benchmarks and magazine reviewers.
 This has been detected on several occassions by several vendors;
 but it would be completely blatant in any open source project.</p>

<p>Frankly, I don't care if we improve our Mindcraft results.  I
 prefer to question the very premises on which the whole discussion
 is based.</p>

<p>There are three I'd like to mention:</p>
<ul>
	<li>Big Server for Little Jobs
	<li>Apache for simple HTTP of static HTML
	<li>SMB as a File Service
</ul>

<p>The fallacy of the whole Mindcraft mindset is that we should have
 "big servers" to provide file and web services.  Let's ask about that.</p>

<p>Why?</p>

<p>The reason Microsoft wants to push big servers should be relatively
 obvious.  Microsoft's customers are the hardware vendors and VARs.
 Most end customers, even the IT departments at large corporations,
 don't install their own OS.  They order a system with the OS and
 major services pre-installed (or order systems and pay contractors
 and/or consultants to perform the installation and initial
 configurations).</p>

<p>So, it is in Microsoft's vested interest to encourage the sale of
 high end and expensive systems.  The cost of NT itself is then a
 tinier fraction of the overall outlay.  One or two grand for the OS
 seems less outrageous when expressed as a percentage of 10 to 20
 thousand dollars.</p>

<p>So, how many customers really need 4-way SMP systems?  Are 4-way
 SMP systems <em>EVER</em> really a better choice for web and file services
 than a set of four or more similar quality separate systems?</p>

<p>Big 4 or 8 CPU SMP servers are probably the best choice for some
 applications.  It's even possible that such systems are optimal for
 SOME web and file servers.  What's really important, however, is
 whether such systems are appropriate to YOUR situation.</p>

<p>Back when NT was first starting to emerge as a real threat to
 Netware it was interesting that the press harped on the lack of
 "scaleable SMP" support in Netware 3.x and 4.x.  I'm sure there are
 analysts today who would continue to argue that this was the
 primary reason for Netware's loss of marketshare during the early
 to mid '90s.</p>

<p>Personally I suspect that the bigger factors in Netware's woes were
 from three other causes:</p>

<dl><dt>Client support:  <dd>MS shipped Win '95 and WfW with
		   support for SMB.  Novell never adapted their
		   servers to work with the support that was shipped
		   with the clients.  By all accounts SMB is a
		   vastly inferior suite of protocols to Netware's
		   NCP.  However, IT managers are often eager to
		   save a penny on every client by not having their
		   sysadmins and help desk people visit every new 
		   system to install network client drivers.

    <dt>TCP/IP:  <dd>Novell provided TCP/IP early on --- in the
		   form of expensive addons to their main servers,
		   and a relatively expensive suite of client tools
		   for MS-DOS.  They didn't adapt to the emergence
		   of the Internet in corporate circles by including
		   TCP/IP as standard features in their base
		   packages.  Meanwhile IPX's SAP (service
		   advertising protocols) were sucking up a
		   noticable portion of the available bandwidth as
		   more companies put MANY more devices on their
		   LANs and WANs.  Novell had the technology, but
		   they failed to rethink their pricing model,
		   probably in a doomed effort to protect some of
		   their revenue streams.  

    <dt>Pricing: <dd>Microsoft had a huge advantage over Novell.
		   They could afford to practically give away NT
		   server for a few years (and perhaps turn a blind
		   eye to some amount of piracy, temporarily) so
		   long as that would cost Novell some server licenses.
</dl>
	
<p>Of course, I could be wrong.  I'm not an industry analyst.
 However, I do know that the considered opinion of the Netware
 specialists I knew back around '93 was that Netware didn't need SMP
 support.  It was plenty fast enough without additional processors.
 NT, on the other hand, has so much overhead that it needs about 4
 CPUs to get going.</p>

<p>So, if we're not going to use "big servers" how do we "scale?"</p>

<p>Replication and Distribution.</p>

<p>Look at how the whole Internet scales.  We have the DNS system
 which distributes (and delegates) the management of a huge database
 over millions of domains.  We don't even bat an eye that an average
 DNS lookup takes less than a second.  The SMTP mail system also has
 proven scalability.  It handles untold millions of messages a day
 (some of which isn't even spam).</p>

<p>Of course some people are already chomping at the bit to write to
 me and explain what an idiot I am.  There are problems with
 replicating files and HTML across multiple servers.  Some
 applications are very sensitive to concurrency issues and race
 conditions.  There are cases where the accessor of a file must have
 the absolute latest version and must be able to retain a lock on
 it.  There are cases where we want to lock just portions of files, etc.</p>

<p>However, these are not the most common cases.  Going for the "big
 server" approach is often a sign of laziness.  Rather than identify
 the specific sets of applications that require centralized control
 and access, they try to toss everything on the "one size stomps
 all" server.</p>

<p>In the degenerate case of the Mindcraft benchmarks it would be
 amusing to pit four low cost PCs running Linux against one "big
 server" running NT.  I say "degenerate case" since the benchmarks
 used there don't seem to have any concurrency or locking issues (at
 least not for the HTTP portions of the test).</p>

<p>Needless to say we'd also seem some advantages beyond the
 scalability of our "hoard of cheap servers" approach.  For example
 we could use dynamic DNS and failover scripts to ensure that
 transparent availability was maintained even through the loss of
 three of the four servers.  There's certainly some robustness to
 this approach.  In addition we can perform tests and upgrades to
 one or more systems in these loose clusters without any service
 down time.</p>

<p>Because these use commodity components it's also possible to keep
 shelf spares in an on site depot.  Thus reducing the downtime for
 individual nodes and providing the flexibility to rapidly increase
 the clusters capacity in the face of exceptional demands.</p>

<p>All that --- and it's usually CHEAPER, too.</p>

<p>Naturally there are some challenges to this approach.  As I
 mentioned, we have to configure these systems with some sort of
 replication software (<tt>rdist</tt>, <tt>rsync</tt>) and test 
 regularly to ensure that the replication process isn't introducing 
 errors and/or corruption.  There are also the problems with writable 
 access and the needs for the nodes in a cluster to communicate about 
 file locking and application (i.e. CGI) state.</p>

<p>The point is not so much to promote the "hoard of thin servers"
 approach as to question the premise.  Do we really need a "big
 server" for OUR task?</p>

<p>I've talked about the fundamental disconnect between mass marketing
 and customer requirements before.  "Mass marketing" sells features
 in the hopes that masses will will buy them.  Customers must
 consider the "benefits" of each "feature" before accepting any
 arguments about the superiority of one product's implementation of
 a given "feature" over another.</p>

<p>As an example let's consider Linux' much vaunted "multi-user"
 feature.  To many people this is not a benefit.  Many people will
 never have anyone else "logged into" their system.  To people like
 my mom "multi-user" is just an inconvenience that requires her to
 "login" and means that she sometimes needs to 'su' to get at
 something she wants.  (Granted there are ways around those).  In
 some way Linux' "multi-user" features (and those of NT, for that
 matter) are actually a detriment to some people.  The represent a
 cost (albeit a small and easily surmounted one) to some users.</p>

<p>This leads us to the other two issues that I would question.</p>

<p>Apache is not necessarily the best package for providing 
 high speed, low-latency, HTTP of simple, static HTML files.</p>

<p>There are lightweight micro web servers that can do this 
 better.  I've also heard of people who use a small cluster
 of Squid proxy servers interposed between their Apache servers
 and their routers.  Thus the end users are transparently 
 access an organizations Squid caches rather than directly accessing 
 it's web servers.  This is a strange twist on the usual case
 where the squid caches are located at the client's network.</p>

<p>By all accounts SMB is a horrid filesharing protocol.  The authors
 of Samba take a certain amount of wretched glee in describing all
 of the misfeatures of this protocol.  Its sole "advantage" is that
 it's included, preconfigured with 98% of the the client systems
 that are shipped by hardware vendors today.</p>

<p>Note:  I'm NOT saying that NFS is any better.  Its main advantage
 is that almost all UNIX systems support it.</p>

<p>Personally I have high hopes for CODA.  Its about time we deployed
 better filesystems for the more common requirements of a new millennia.</p>

<p>I'm not the first to say it:</p>  

<blockquote>
	"There are lies, damned lies, and benchmarks"
</blockquote>

<p>However, the important thing about any statistic or benchmark is
 to understand the presenter.  Look behind the numbers and 
 even the methodology and ask:  "Who says?"  "What do they want
 from this?"</p>

<p>Alternatively you can just reject statistics and benchmarks
 from others, and make your decisions based on your own criteria and 
 as a result of your own tests.</p>

<p>The scientific method should not be used solely by scientists.  It
 has application for each of us.</p>

<p>-- Jim Dennis</p>

<!-- end greeting -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/1"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 1 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Loopback (localhost) NFS Mounting for FTP</H3>


<p><strong>From Mark S. Turczan  on Sun, 02 May 1999  
</strong></p>
<!-- ::
Loopback (localhost) NFS Mounting for FTP
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
James,
</STRONG></P>
<P><STRONG>
Would you know of a way to setup a loopback mount within a <TT>/home/ftp</TT>
hierarchy?
</STRONG></P>
<P><STRONG>
Or could you provide a better method to achieve the following?
</STRONG></P>
<P><STRONG>
I've got a set of disks setup under software raid, and I've mounted them
under <TT>/mnt/raid</TT>. What I'd like to do is include a link from a 
directory under <TT>/home/pub/Archive</TT> to the actual files under 
<TT>/mnt/raid/Archive</TT>.
I've tried doing this with a symbolic link, but it doesn't seem to
resolve it when I connect through ftp.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
When you connect as "anonymous" or "ftp" through the
conventionally configure FTP service, or as any member of
a "guestgroup" to a WU-FTP daemon, you are in a chroot
jail.  This is intended to prevent you (an FTP client)
from wandering around the filesystem peeking into things
where you don't belong (as an anonymous or guest user).
</BLOCKQUOTE>
<BLOCKQUOTE>
Naturally symbolic links don't pierce through a chroot wall.
</BLOCKQUOTE>
<BLOCKQUOTE>
It's possible to configure your system to act as an
NFS server and client (concurrrently) and to export a
directory tree (presumably in read-only mode) to yourself.
</BLOCKQUOTE>
<BLOCKQUOTE>
This is one of several tricks that is referred to as a
"loopback mount"  (not to be confused with the
<tt>mount -o loop=</tt>... option which is a way of mounting a
file image as a filesystem).  In this case you're doing
a perfectly normal NFS export, and a perfectly normal
NFS mount.  The only oddity is that the export and mount
are on the same machine and are going through the loopback
network interface.
</BLOCKQUOTE>
<BLOCKQUOTE>
So you put a line in your <TT>/etc/exports</TT> file like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
<TT>/mnt/raid/ftparea</TT>	127.0.0.1(ro,insecure)
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... and possibly some lines like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
<TT>/mnt/raid/ftparea/no/</TT>  (noaccess)
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
(to define a set of subdirectories under the
exported directory tree to which you want to deny
access).
</BLOCKQUOTE>
<BLOCKQUOTE>
... and then you use a command like:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE><BlockQuote>
mount -t nfs 127.0.0.1:/mnt/raid/ftparea <TT>/home/ftp/home</TT>
</BlockQuote></CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
... or whatever.
</BLOCKQUOTE>
<BLOCKQUOTE>
Personally I think it's a horrible kludge.  But I've
done things sort of like this and it does work.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Thanks for any help you can offer.
<br>--
<br>Mark Turczan
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Hope that makes sense.
</BLOCKQUOTE>
<!-- sig -->

<!-- end 1 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/2"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 2 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>General HD Info and Boot Code</H3>


<p><strong>From Erik Bryer  on Sun, 02 May 1999  
</strong></p>
<!-- ::
General HD Info and Boot Code
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Hi,
</STRONG></P>
<P><STRONG><DL><DT>
Got your email address from:
<DD><A HREF="http://www.linuxvalley.com/mirror/lg/issue36/tag/79.html"
	>http://www.linuxvalley.com/mirror/lg/issue36/tag/79.html</A>
</DL></STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Wow!  Someone who actually tells me where their
they found me!  I've always thought that any e-mail
to someone you've never met should include some passing
reference of this sort.
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course, there are cases where it might be superfluous. If
you were to e-mail Linux Torvalds he'd have a pretty good
idea where you got his address; it's in the <TT>/usr/src/linux</TT>
tree on millions of computers.
</BLOCKQUOTE>
<BLOCKQUOTE>
Anyway, linuxvalley.com looks like an interesting site ---
if you read Italian.  I've seen quotes of myself translated
into Italian, Portugese and a couple of other languages
--- it's amusing.  (I just feel sorry for the interpreters
--- any of you out there?  I owe you each a beer!).
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Do you know of any websites with general hard drive info. More
specifically, and I'm quite happy just with a web page reference if you
like, I wonder if, like dos, unix requires executable code in the boot
sector, if it even has a boot sector. I've tried alta vista, but found
mostly junk. Thanks.
</STRONG></P>
<P><STRONG>
Erik Bryer
Calgary
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Well I don't know about general hard drive info.  Many
of the hard drive manufacturers put technical information
about their drives up on the web.  Of course you usually
have to hunt through quite alot of marketing fluff that
clogs many corporate sites to get to the good stuff.
</BLOCKQUOTE>
<BLOCKQUOTE>
However, I can answer the question regarding boot code.
</BLOCKQUOTE>
<BLOCKQUOTE>
The PC BIOS requires that your OS, any OS be loaded from
somewhere.  Your mainstream choices are: hard drive, floppy,
network and (most recently) CD-ROM.  There are some devices
which emulate drives (sold under names like "ROMDisk" et
al.).
</BLOCKQUOTE>
<BLOCKQUOTE>
When loading from a hard drive the BIOS loads the first
sector (512 bytes) on track zero.  This is called the
MBR.  It contains two parts: some boot loader code and
a partition table.  The partition table is in the last
66 bytes of the MBR.  Actually there are 4 primary
partition entries of 16 bytes each, and there's a
pair of "signature" bytes which indicate whether or not
the drive has ever been initialized.  The other 446 bytes
of the MBR contains the primary bootloader code.
</BLOCKQUOTE>
<BLOCKQUOTE>
As you mentioned, MS-DOS provides its own bootloader.  That
just looks for the active partition and loads a secondary
bootloader from the first sector of that partition.
</BLOCKQUOTE>
<BLOCKQUOTE>
OS/2, NT, and the various PC implementations of UNIX each
provide their own bootloaders.  These load code from a
"boot manager" (usually a one track partition somewhere
on the primary drive).
</BLOCKQUOTE>
<BLOCKQUOTE>
Linux offers a number of alternatives for loading the
kernel.  The most common is to use the LILO package.  This
consists of a program, <TT>/sbin/lilo</TT>, that reads a
configuration file (<TT>/etc/lilo.conf</TT>, by default), and builds
a set of primary and secondary boot blocks, and a set of
"maps"  and writes the primary boot code and the pointers
to the secondary blocks and maps into the MBR.  LILO is a
very flexible utility.  You can store information on
up to 16 different boot images, you can pass parameters to
the Linux kernel (which can set various boot time
options in the kernel, or be passed along to init, and
thence to the master environment and to the rc startup
scripts).  You can password restrict some or all of your
LILO boot stanzas, define messages to be displayed at
boot time, issue a command that sets an automatic "one time"
set of boot parameters (<TT>/sbin/lilo</TT> -R), etc.
</BLOCKQUOTE>
<BLOCKQUOTE>
Another option is GRUB, the GNU "grand unified bootloader."
This is slated to be the bootloader for the GNU HURD (a free
microkernel based operating system which has been under
development since before Linus started on the Linux kernel).
I've heard that GRUB can be be used now with the HURD betas
and with Linux.
</BLOCKQUOTE>
<BLOCKQUOTE>
One thing that's interesting about Linux, in contrast to
other operating systems, is that you can load it in
alternative ways.  So you can load the PC Linux kernel using
LOADLIN.EXE (an MS-DOS program) or directly from Win '9x
using the updated LinLoad '95 (??? derived from LOADLIN?).
So you can have copies of your kernel in any MS-DOS
directory and "run them" from MS-DOS. You can put a Linux
kernel straight on a floppy (starting at the first block
thereon) and it will be directly loaded.
</BLOCKQUOTE>
<BLOCKQUOTE>
You can also use SYSLINUX to put a Linux kernel on an MS-DOS
formatted floppy and load it from there.  (If you mount up a
<A HREF="http://www.redhat.com/">Red Hat</A> installation floppy 
you'll see a copy of the
SYSLINUX.CFG file that the SYSLINUX boot loader reads).
</BLOCKQUOTE>
<BLOCKQUOTE>
It's also possible to load Linux over a network (given a
suitable bootp PROM, installed in a NIC, for example).
There is nothing to prevent a computer manufacturer from
installing a Linux kernel in their own ROMs --- loading it
with initrd (initialization RAM disk) support.  There are
some people doing this for "embedded" systems already (seems
to be primarily in specialized systems, not in commodity
PCs).
</BLOCKQUOTE>
<BLOCKQUOTE>
Igel has been making Linux based Xterminal/etherterminal
systems using "Disk on a Chip" drivers for
years. (<A HREF="http://www.igelusa.com"
	>http://www.igelusa.com</A>)
</BLOCKQUOTE>
<BLOCKQUOTE>
As for finding "mostly junk" .... Yeah!  I get that,
too.  However, a big part of "The Answer Guy's" success
is that I sift through enough of that junk to (usually)
come up with what I'm looking for.  (Sometimes it's even
what my correspondents were asking about!)
</BLOCKQUOTE>
<BLOCKQUOTE>
I hope that helps.
</BLOCKQUOTE>
<!-- sig -->

<!-- end 2 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/3"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 3 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>SYN, SYN/ACK, ACK, ACK, ACK: TCP Handshaking</H3>
<H4 ALIGN="center">
"Pleased to meet you!"</H4>


<p><strong>From Kent S  on Sun, 02 May 1999  
</strong></p>
<!-- ::
SYN, SYN/ACK, ACK, ACK, ACK: TCP Handshaking
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"Pleased to meet you!"
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I need help in finding information regarding how sockets are
established (not how to code them). In other words, I know that
there is a standard procedure followed (SYN,SYN/ACK,ACK) in
getting a device talking with a server.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
This is referred to as a "three way handshake."
The "SYN" flags are requests by the TCP stack at one
end of a socket to synchronize themselves to the sequence
numbering for this new sessions.  The ACK flags
acknowlege earlier packets in this session.  Obviously
only the initial packet has no ACK flag, since there are
no previous packets to acknowlege.  Only the second
packet (the first response from a server to a client)
has both the SYN and the ACK bits set.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I am more curious in determining how, where, and who actually
handles this on the Linux server.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
The kernel.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
As an example - I have inetd looking at port 226 for me that will
start a program that will read from the socket. If this program
terminates (kill,alarm,etc...)  then the device attempts to
re-establish (sends a SYN). Then one of two things happens
depending on how the program was stopped. Either the server never
responds until the device sends a reset or the server sends a
SYN/ACK and then sends a packets saying that it is finished
sending data. My questions are on the level of does RESET reset a
port or a socket, and why would a server send a finish sending
data flag if the device is requesting a connection. I have been
unable to find info about the protocols of communications that
should be taking place. Any help would be appreciated!
</STRONG></P>
<P><STRONG>
Kenneth Scott
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I don't really understand what you're asking or what
situation you are trying to describe.  Giving examples
of what you see and the specific diagnostic commands
you're using to gather your data on the problem (ps,
netstat, lsof, etc) would probably help.
</BLOCKQUOTE>
<BLOCKQUOTE>
However, I can take a guess at what you might be seeing.
</BLOCKQUOTE>
<BLOCKQUOTE>
There is also a three way handshake at the termination
of a TCP session.  Either side sends a packet with the
FIN (final) flag set, and waits for the other side to
acknowlege that with another FIN packet.
</BLOCKQUOTE>
<BLOCKQUOTE>
After the local process as attempted to close the
socket (and the TCP stack has sent the FIN packet to the
remote system) the process will be listed as being in the
FIN_WAIT stat when you do a '<tt>netstat</tt>' command.   Buggy
TCP clients may just close their end of the connection
without completing the three way session termination.  This
seems to be mostly from certain MS Windows FTP clients.
</BLOCKQUOTE>
<BLOCKQUOTE>
There seems to be no "timeout" for how long a processes
will sit in FIN_WAIT.  When I managed a busy FTP server
farm for McAfee Associates (a shareware company with lots
of MS-DOS and Windows products) I used to see alot of zombies
which were children of FTP daemon processes that were in
FIN_WAIT.  I had a skulker script that would find the
parents of the zombies, check their age and argument list
and summarily kill them.
</BLOCKQUOTE>
<BLOCKQUOTE>
I don't know the details about the TCP RST (reset) process.
I've at the extreme edge of my knowlege of TCP in this
message --- so I can't go into any greater detail on this.
</BLOCKQUOTE>
<BLOCKQUOTE>
However, I've heard that the best sources of information
about TCP protocols are a couple of books.  One would be the
O'Reilly volume by Craig Hunt (the crab book), <em>Understanding
TCP/IP</em> <em>[ Actually, the "crab book" is 
	<a href="http://www.oreilly.com/catalog/tcp2/index.html"
	>TCP/IP Network Administration</a>, now in its 2nd edition.
	-- Heather ]</em>,
 the other would be a three volume set by Comer and
Stevens <em><a href="http://www.prenhall.com/allbooks/esm_0132169878.html"
>Internetworking With Tcp/Ip: Principles, Protocols, and Architecture</a></em>.
</BLOCKQUOTE>
<BLOCKQUOTE>
As you've suggested these are written more with the
programmer in mind.  However the O'Reilly book seems to be
more suitable for sysadmins and users (besides being a
paperback, and therefore much less expensive than the three
volume hardcover text books from Prentice Hall).
</BLOCKQUOTE>
<BLOCKQUOTE>
One of these days I'll get around to reading that one.
I'd been holding out for one that covered IPv6 in the
hope that IPv6 would be deployed more widely by the time
I got around to learning all the gory details.  However,
it looks like we'll still be dealing with IPv4 (the
current suite of protocols) for the foreseeable future.
</BLOCKQUOTE>
<!-- sig -->

<!-- end 3 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/4"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 4 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>PAM chroot</H3>
<H4 ALIGN="center">
Wherein Jim rants about PAM</H4>


<p><strong>From Terrell larson  on Sun, 02 May 1999  
</strong></p>
<!-- ::
PAM chroot
~~~~~~~~~~
Wherein Jim rants about PAM
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I'm interested in a CHROOT option probably in pam-pwdb and I've
been unable to find it.  If it does not exist I may be willing to
implement it IF I can find the current source tree and IF I can
find out where to forward it for general use.
</STRONG></P>
<P><STRONG>
Info will be appreciated...
</STRONG></P>
<P><STRONG>
Thanx
<br>Terrell Larson
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Terrell,
</BLOCKQUOTE>
<BLOCKQUOTE>
It's an interesting question.  I presume you're talking
about implementing/re-implementing PAM support for an old
convention among SVR4 UNIX implementations where
specific accounts can be marked for special chroot
handling by giving them a '<tt>*</tt>' as the "login shell"
</BLOCKQUOTE>
<BLOCKQUOTE>
This is described in O'Reilly &amp; Associates' 
<em><a href="http://www.oreilly.com/catalog/puis/noframes.html"
>Practical Internet and Unix Security</a></em>, p232, Garfinkel and Spafford
and most other books on UNIX security.
</BLOCKQUOTE>
<BLOCKQUOTE>
(For our readers that are unfamiliar with the trick: the
login program; upon seeing that the login shell for a given
account is set to '<tt>*</tt>' does a <tt>chroot()</tt> system call to the
directory that's listed as that account's "home" directory.
Therein '<tt>login</tt>' <tt>exec()</tt>'s the appropriate copy of 
'<tt>login</tt>' thereunder.  This normally would then <tt>exec()</tt> 
a normal shell, as listed in the /...(chroot top)...<tt>/etc/passwd</tt> file.)
</BLOCKQUOTE>
<BLOCKQUOTE>
I was doing some research on a paper (that I still plan on
submitting to USENIX, one of these days) when I first
read about this convention.  My paper was on a completely
different use of <tt>chroot()</tt>, but I was doing a literature
search.
</BLOCKQUOTE>
<BLOCKQUOTE>
Naturally I tried this particular trick on one of my Linux
systems. It worked fine.  In fact I just tested it, as I
write this, on a new <A HREF="http://www.debian.org/">Debian</A> 
2.1 installation that I've been playing with and it works there.
</BLOCKQUOTE>
<BLOCKQUOTE>
However on PAM based systems (using pluggable authentication
modules) --- notably on <A HREF="http://www.redhat.com/">Red Hat</A> 
4.x, 5.x and presumably the new 6.0 system as well as any where the 
admins have added Linux PAM after-the-fact --- it doesn't work.
</BLOCKQUOTE>
<BLOCKQUOTE>
I mentioned this in e-mail to Andrew Morgan, the maintainer
and co-ordinator of the PAM development project.  There is,
of course a listing for a pam_chroot module in the PAM
administrator's guide.  However, that doesn't do the same
sort of thing --- and there's no example of how you'd
use it to accomplish the same job.  It's also listed as
"unwritten."  I did run across a file at the following URL
that you might want to look at:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE>
<A HREF="http://www.us.kernel.org/pub/linux/libs/pam/pre/forgotten/changeroot.tar.gz"
	>http://www.us.kernel.org/pub/linux/libs/pam/pre/forgotten/changeroot.tar.gz</A>
</CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
It's from late 1997 and is only about 3K.  All it contains
is source to a simple command, a man page and a sample
configuration file.  It seems to be an alternative
implementation of the chrootuid program that Weitse Venema
wrote years ago (part of his '<tt>logdaemon</tt>' package).
</BLOCKQUOTE>
<BLOCKQUOTE>
This particular program (changeroot) seems to have nothing
to do with PAM.  I'd also guess (from the parent directory
name) that the code is not under active development.
</BLOCKQUOTE>
<BLOCKQUOTE>
Obviously, you could use something like chrootuid, or this
changeroot program or you could write a simple C program (or
even a PERL script) that would implement this procedure and
use a reference to that in lieu of the '<tt>*</tt>' that I've been
talking about.  In other words instead of an entry like:
</BLOCKQUOTE>

<blockquote><pre>guest:x:65533:65534:Jailed Guest:/usr/local/jail:*
</pre></blockquote>
<BLOCKQUOTE>
... where '<tt>login</tt>' spots the the '<tt>*</tt>', performs the 
<tt>chroot()</tt> to <TT>/usr/local/jail</TT>, and <tt>exec()</tt>'s 
the copy of <TT>/bin/login</TT> thereunder; we'd see something like:
</BLOCKQUOTE>

<blockquote><pre>guest:x:65533:65534:Jailed Guest:/usr/local/jail:/usr/local/sbin/jailsh
</pre></blockquote>
<BLOCKQUOTE>
... where <tt>jailsh</tt> is a hypothetical SUID root program that
performs these same steps.
</BLOCKQUOTE>
<BLOCKQUOTE>
This approach will work with any version of UNIX (so its
more portable).  Another advantage for Linux under a 2.2
kernel is that this hypothetical jailsh program could be
written to use the new "privileges" model (which are listed
in the sources under the "capabilities" misnomer --- but
let's not get into that peeve).
</BLOCKQUOTE>
<BLOCKQUOTE>
The disadvantage of this approach is that we have to write a
custom program (which I'm calling <tt>jailsh</tt>).  It has to run as
'root' (or with several rootly privileges, <tt>setuid()</tt>, and
<tt>chroot()</tt> at least).  I might toss together something for use
on one of my systems (I have in the past) --- but I'd be
very reluctant to publish those as solutions that anyone
else would trust.  I simply don't consider myself a
sufficiently experienced and skilled programmer to be
writing SUID root code for public consumption.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, this brings us back to your message.  <tt>chroot()</tt> jails are
not used much.  You'd expect them to see more widespread
use, but they they are a bit of a hassle to initially
configure (creating a suitable skeleton tree under the
target chroot point, getting the requisite shared libraries
and device nodes in place for your applications, etc.).  In
addition there are ongoing concerns that chroot jails are
too easy to break out of.  In cases where you want to
isolate a root/privileged program --- it's too easy for them
to chroot back out of the jail.  This concern may be
addressed by clever use of the new "privileges" features in
the 2.2 kernels.  However, since you're asking, I presume
you already have your application well considered.
</BLOCKQUOTE>
<BLOCKQUOTE>
It sounds like you are willing to contribute some code to
this.  So you might start with a small standalone program
(based on <tt>chrootuid</tt> or the <tt>changelog</tt> program listed above,
if their licenses are amenable to your needs).
</BLOCKQUOTE>

<BLOCKQUOTE><dl>
<dt>You can find chrootuid at:
<dd><code><A HREF="ftp://ftp.porcupine.org/pub/security/index.html"
	>ftp://ftp.porcupine.org/pub/security/index.html</A></code>
<dt>... and there's some some of GNU package called <tt>g2s</tt>
<dd><code><A HREF="http://freshmeat.net/appindex/1998/05/11/894932721.html"
	>http://freshmeat.net/appindex/1998/05/11/894932721.html</A></code>
	<br>... that's  listed as "an interesting alternative to
		inetd/tcpwrapper/chrootuid/relay/tcp-env/antispam/etc."
</dl>
</BLOCKQUOTE>
<BLOCKQUOTE>
PAM pwdb is maintained by Christian Gafton.  The canonical
forum for discussions relating to PAM development is the
pam-list (<A HREF="mailto:pam-list@redhat.com"
	>pam-list@redhat.com</A>).  The canonical web site is
at:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><code>
<A HREF="http://www.kernel.org/pub/libs/pam"
	>http://www.kernel.org/pub/libs/pam</A>
</code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... which is generally inaccessible (as kernel.org is the
master site for the Linux kernel --- which gets too much
traffic for a reasonable Internet connection).  So it
should be accessed through one of the mirrors.  The Linux
kernel crowd use a relatively simple and innovative
DNS trick to maintain a list of mirrors that we can use
without having to strain our memories.  Basically you can
use URLs of the form:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><code>
<A HREF="http://www.us.kernel.org"
	>http://www.us.kernel.org</A>
</code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... to access a DNS round-robin collection of U.S. mirrors.
There are mirrors in many other countries and regions, from
Afghanistan (<tt><A HREF="http://www.af.kernel.org"
	>http://www.af.kernel.org</A></tt>) to Zimbabwe
(<tt><A HREF="http://www.zw.kernel.org"
	>http://www.zw.kernel.org</A></tt>).  (Yes, they just use the
ISO two letter country codes as a subdomain prefix).  Most
of these sites mirror the whole kernel.org FTP and web
trees.  If you have trouble connecting to one of the
sites, try again.  A check with '<tt>dig</tt>' lists about a dozen
U.S. mirror sites for www.us.kernel.org.  Any decent
resolver libraries will cycle through the available
addresses until one works (upon successive access attempts).
That's part of what allows the whole DNS round robin scheme to work).
</BLOCKQUOTE>
<BLOCKQUOTE>
These carry sources and links to the many ongoing PAM module projects.
</BLOCKQUOTE>
<BLOCKQUOTE>
But I digress. Getting back to PAM.  Personally I'm somewhat
disappointed in the Linux PAM project.  I've expressed this
to the list and I've discussed it with Christian Gafton in
person.  He and Andrew will probably be irritated to see
this published in Linux Gazette --- and they are invited to
compose and submit a rebuttal, or anything they like, to
the editors here.  (I've courtesy copied them on this e-mail).
</BLOCKQUOTE>
<BLOCKQUOTE>
My principal complaint is that the PAM project seems to be
permanently stuck near version 0.6x.  It was at 0.57 about
two years ago.  The response on the mailing list (and
direction from Christian) when I raised this concern was:
"So what, it's just an arbitrary version number."
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course I'm not a programmer or a distribution integrator;
I'm just a dumb user, admin and support guy <EM>and writer</EM> ---
so my opinion doesn't count for much.  However, it does get
published, so others can beat up on me when they disagree.
It seems to be that a version number of 0.x still connotes
"beta" --- not ready for production use to most people.  Red
Hat and <A HREF="http://www.caldera.com/">Caldera</A> are the 
only distributions that include integrated PAM support.  Many 
authentication dependent packages, like <tt>ssh</tt>, don't include 
PAM support "out-of-the-box" and it is non-trivial (read: "scary and
difficult") for an "average" Linux user or junior sysadmin
to install the PAM suite into an existing system.
</BLOCKQUOTE>
<BLOCKQUOTE>
As one example if you'd been using Debian, 
<A HREF="http://www.suse.com/">S.u.S.E.</A> or
<A HREF="http://www.slackware.org/">Slackware</A> for your application 
(with the chroot'd users) and you installed PAM, you'd probably be pretty 
distressed to find it suddenly broken.  <em>[ hint: don't log out until
you've attempted to access all your desirable services via the localhost
interface and gotten them visible again, minimally telnet or ssh.  Yes, I've
been there. -- Heather ]</em>  Granted, this whole '<tt>*</tt>' shell
chroot business is pretty obscure to the "average" user
or the "junior" sysadmin.  However, it is documented in
most books on Unix security (I reviewed about twenty books
at a couple of books stores with the words UNIX and security
in their titles --- over half of them described this
mechanism and several gave examples).
</BLOCKQUOTE>
<BLOCKQUOTE>
Another complaint that I have is that the existing PAM
deployment doesn't include S/Key or OPIE support, and
doesn't even include clear examples of how to add-in and
configure any form of pluggable OTP.  Given that network
password sniffing is one of the most common problems that
one might want to solve with PAM this seems like a pretty
significant omission.
</BLOCKQUOTE>
<BLOCKQUOTE>
The response to this on the list and in personal discussion
amounted to:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
"that's crypto --- and the U.S. government black helicopters
are hovering over our heads ready to bomb Red Hat's offices
if they include anything like it."
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
(Yes, I'm paraphrasing).  Personally I think this is absurd.
Yes, the U.S. federal government's restrictions regarding
the "export" of cryptography software are an embarassment to
free people everywhere.  I'm personally ashamed of our
entire political process as a result of the ways in which
"my" government was repeatedly thwarted the popular will of
the people vis a vis cryptography.  However, S/Key and OPIE
are not cryptography.  They use hashes, fancy checksums, as
the basis for their authentication.  Specifically OPIE uses
MD5 by default.  (I guess that the spec for S/Key -- OPIE
allows for one to use alternative hash algorithms, MD2,
maybe SHA-1, etc.  I don't know the details on that).
Ironically the code for the standard UNIX password hashing
method, use your password and some "salt" as a 56-bit DES
key to "encrypt" a string of NULs, is far more easily
subverted into true cryptographic use than MD5.  Of course
both the conventional DES hashing and the MD5 code are
already in every major Linux distribution, and always have
been!
</BLOCKQUOTE>
<BLOCKQUOTE>
One compromise would be to include DOCUMENTATION.  Give
us a URL that points to a script.  Have the script walk one
through the processing of fetching, installing, and
configuring pam_opie.  Granted it's not THAT difficult.  I
was able to perform the task by hand in about an hour.
However, it would probably take an "average" sysadmin about
twice that and it would probably take an "average" Linux
user about four times that.  Consequently it probably won't
happen in any significant number of sites.  So it just
doesn't get done at all.
</BLOCKQUOTE>
<BLOCKQUOTE>
(The argument that OPIE and other OTP, one-time-password
schemes, is an incomplete solution is also well considered.
It doesn't secure the connection so sniffing will still
reveal other confidential data, etc.  ssh IS a much better
solution.  The new <A HREF="http://www.xs4all.nl/~freeswan/">FreeS/WAN</A> 
ipsec implementation is also a much better approach.  However, 
there are enough people out there that can't or won't install 
strong cryptographic support that some stop gap is indicated.  
Providing smooth easy installation and configuration of OTP is 
one thing that PAM could do to address this problem).
</BLOCKQUOTE>
<BLOCKQUOTE>
By far my biggest complaint about PAM is that it hasn't
delivered on its most important promise.  It doesn't put
Linux on par with <A HREF="http://www.freebsd.org/">FreeBSD</A>, 
<A HREF="http://www.netbsd.org/">NetBSD</A>, and 
<A HREF="http://www.openbsd.org/">OpenBSD</A> for authentication.
</BLOCKQUOTE>
<BLOCKQUOTE>
FreeBSD has supported S/Key compatible OTP "out-of-the-box"
for YEARS.  (Note: Walnut Creek, the largest distributor of
FreeBSD CDs and books and the major sponsor for FreeBSD
development hasn't been hit by the "black helicopters").
</BLOCKQUOTE>
<BLOCKQUOTE>
Beyond just this discussion of OTP, FreeBSD's libraries have
provided seams shadow and MD5 password hashing for years.
Regardless of PAM I still bump into Linux applications that
fail to authenticate because they don't properly handle some
aspect of shadowing and MD5 checksums.  Just last week
one of my fellow techs at Linuxcare was fighting for a
couple of hours with that on a Yellow Dog (Linux for
PowerPC) installation at the office.
</BLOCKQUOTE>
<BLOCKQUOTE>
That was the whole idea of the PAM project.  However, PAM
can't deliver on that promise until it attracts widespread
support from the application/utility writers that perform
authentication.  FreeBSD hides most of the details behind
their implemention of the standard library functions that
most programmers were already using to perform their
authentication (<tt>getpwent()</tt>, etc.).  We can't do that with
PAM and glibc --- but we need to straighten out this
mess eventually.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, I would welcome any new blood that got involved in the
PAM project.  I realize that Andrew will probably say:
"Quit your whining and turn in some code!"  That's fair
enough.  (However, as I've said before, you don't want to
see any C code from me, yet).
</BLOCKQUOTE>
<BLOCKQUOTE>
PAM is an ambitious project.  It goes beyond Linux (in
an effort to implement standards that have been proposed
to the IETF by Sun and other vendors).  I realize that there
is some delay because these proposed standards are in draft
form and are still in flux (the XSSO, single-sign-on stuff
also seems to be languishing).   However, I'd still like to
see it deliver more in the near term.
</BLOCKQUOTE>
<!-- sig -->

<!-- end 4 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/5"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 5 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Filesystem Management: What must be "resident" at all times?</H3>


<p><strong>From peter on Sun, 02 May 1999  
</strong></p>
<!-- ::
Filesystem Management: What must be "resident" at all times?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I'm familiar with moving a portion of a UNIX file system that doesn't
need to be resident at all times to a larger partition.  What's the
safest way to do this for a portion of the file system (<TT>/usr</TT> ?) that
needs to be resident at all times?
</STRONG></P>
<P><STRONG>
Thanks for your help,
<br>Peter
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
The "resident" is not a "term of art" for Unix systems
administration.  Also <TT>/usr</TT> doesn't have to be <EM>mounted</EM>
at <EM>all</EM> times.  In particular you should be able to
bring the system up in single user mode and peform most
maintenance operations without <TT>/usr</TT> being mounted.
</BLOCKQUOTE>
<BLOCKQUOTE>
That's why we have a <TT>/sbin</TT> directory.  Originally we had
<TT>/bin</TT>, which was intended to contain just those files that
were necessary to bring the rest of the system online.
However, as UNIX systems developed shared libraries a number
of the items which were traditionally located in <TT>/bin</TT> (such
as sh --- the shell) came to depend on <TT>/usr/lib</TT> which was the
traditional location of the .so (shared object) files.
</BLOCKQUOTE>
<BLOCKQUOTE>
So some vendors started creating a <TT>/sbin</TT> ('<tt>s</tt>' for
"statically linked" --- which theoretically allows one
to replace <TT>/bin</TT> with a symlink or use it as a mount point
for its own filesystem.  Of course most Linux distributions
don't put <EM>statically linked</EM> binaries in <TT>/sbin</TT> --- we've
moved many of the shared libraries into <TT>/lib</TT>.
</BLOCKQUOTE>
<BLOCKQUOTE>
Personally I think the whole arrangement is a bit ugly.
The idea of having duplicate but statically linked versions
of many commands in <TT>/sbin</TT> is feasible.  Having <TT>/bin</TT>
contain a set of symlinks to the <TT>/sbin</TT> command is fine
(since they will work while nothing is mounted over <TT>/bin</TT>
and the mount of any other filesystem over <TT>/bin</TT> will then
make those symlinks "disappear").  I don't like this
insistence on dynamically linked <EM>everything</EM> since that
means that you can't even run ldconfig to fix the
<TT>/etc/ld.so.cache</TT> file if it gets corrupted.  You have to
boot from a floppy to get anything done.
</BLOCKQUOTE>
<BLOCKQUOTE>
In any event: let's look at a typical Linux root directory
</BLOCKQUOTE>
<BLOCKQUOTE><pre>
drwxr-xr-x   2 root     root         1024 Apr 16 12:52 bin
drwxr-xr-x   2 root     root         1024 Apr 16 05:20 boot
drwxr-xr-x   1 root     root         3072 Apr 25 11:11 cdrom
drwxr-xr-x   2 root     root        17408 Apr 25 07:00 dev
drwxr-xr-x  41 root     root         3072 Apr 25 11:11 etc
drwxrwsr-x   5 root     staff        1024 Apr 19 01:58 home
drwxrwsr-x   2 root     floppy       1024 Feb  1 04:42 floppy
drwxr-xr-x   2 root     root         1024 Feb  1 04:42 initrd
drwxr-xr-x   3 root     root         2048 Apr 16 12:38 lib
drwxr-xr-x   2 root     root        12288 Apr 16 04:46 lost+found
drwxr-xr-x   4 root     root         1024 Apr 19 03:41 mnt
dr-xr-xr-x   6 root     root            0 Apr 18 08:10 proc
drwx------   4 root     root         1024 Apr 22 15:42 root
drwxr-xr-x   2 root     root         2048 Apr 16 12:53 sbin
drwxrwxrwt   2 root     root         1024 Apr 25 12:41 tmp
drwxr-xr-x  15 root     root         1024 Apr 16 05:17 usr
drwxr-xr-x  17 root     root         1024 Apr 17 11:01 var
</pre></BLOCKQUOTE>
<BLOCKQUOTE>
This is from a fairly new <A HREF="http://www.debian.org/">Debian</A> 
2.1 installation.  Here's the same list with some commentary:
</BLOCKQUOTE>
<BLOCKQUOTE><dl>
<dt>bin
	<dd>contains many common commands.  Should be able
	to put this on a mounted fs.  Ironically the mount
	command is in this directory and is dynamically linked!
	That's just WRONG.  (And I don't care what the FHS
	says about it).
<dt>boot
	<dd>contains kernels and associates System.map files
	and backups of the boot sector, as created by
	<TT>/sbin/lilo</TT>.  Oddly enough this can be a mounted
	filesystem.  As I've described many times, Linux
	doesn't require that its kernel be located on its
	root filesystem.  The System.map file isn't
	needed during the boot cycle (and isn't "needed"
	by much of anything --- '<tt>lsof</tt>' seems to complain
	if I don't have one or if it's mismatched to my
	kernel version but that's about it).
<dt>dev
	<dd>contains device nodes.  MUST be on root fs.
	(Richard Gooch has written a special devfs ---
	sort of like <TT>/proc</TT> for device nodes.  That would
	allow this to be a mounted filesystem)
<dt>etc
	<dd>contains passwd, group files, startup scripts and the
	mtab (which tracks all of the mounted filesystems).
<dt>floppy
	<dd>this is stupid.  It's just a mount point.  I prefer
	to put most of my mount points under <TT>/mnt</TT> --- so I have
	a <TT>/mnt/cdrom</TT>, a <TT>/mnt/floppy</TT>, <TT>/mnt/a</TT> 
	(DOS floppy), and others.
<dt>home
	<dd>This should be either a mount point or a symlink to
	some directory on a mounted fs.  I sometimes use -&gt;
	<TT>/usr/local/home</TT> if I have a small number of filesystems
	to work with.
<dt>initrd
	<dd>I'd have put this under <TT>/boot</TT>.  Anyway, mine is empty.
	This is intended to remount any "initial RAM disk" that
	was used.  (I might do a kernel patch to move this)
	When a kernel has initrd support enabled (compiled in)
	then a compressed image of the initrd filesystem is
	appended to the kernel.  The kernel then automatically
	creates the RAM disk, decompresses and copies the image
	into it, and runs the <TT>/linuxrc</TT> program that it should
	find there. (See <TT>/usr/src/linux/Documentation/initrd.txt</TT>
	for details).  This doesn't have to be here if you don't
	want/need access to the initrd after boot.
<dt>lib
	<dd>This <EM>MUST</EM> be on <TT>/</TT>; it contains your 
	<tt>libc.so</tt> and other shared libraries on which almost ALL 
	programs on your system depend.
<dt>lost+found
	<dd>This must be at the top of every filesystem.
	fsck will link any "lost clusters" into nodes under
	this directory; giving you an opportunity to fix them.
	Indeed, you should probably have a script that
	periodically checks this and warns the sysadmin any time
	any of these directories are non-empty.
<dt>mnt
	<dd>This is conventionally used as a mount point or as a
	directory containing a list of mount points.  It's where
	you mount "temporary" and "removable" filesystems.
<dt>opt
	<dd>This is a place to store large "optional" packages
	like WordPerfect, StarOffice, etc.  I usually make
	this a symlink to <TT>/usr/local/opt</TT>
<dt>proc
	<dd>This is a "virtual filesystem"  a representation of the
	system's process state as a set of file nodes.  The BSD
	systems that implement the proc filesystem typically do
	so much different than Linux.  Under Linux you can read
	much more info from <TT>/proc</TT> entries, and more of it is
	represented a plain text.  The idea of <TT>/proc</TT> is that we
	can have the kernel provide a filesystem/directory
	abstraction of its state and we can write programs like
	'<tt>ps</tt>' and '<tt>top</tt>' to use normal UNIX file semantics to
	read that information.  Linux is unique in that you can
	also modify many proc entries to changed the system
	state.  The most common case of this is to enable kernel
	routing using '<tt>echo 1 &gt; /proc/sys/net/ipv4/ip_forward</TT>'
<dt>root
	<dd>this is the root user's home directory.  Handy if you
	have any scripts or data/configuration files that you want
	to access during boot or single-user mode when <TT>/home</TT> will
	not be mounted.
<dt>sbin
	<dd>as I've noted, this should contain statically linked
	versions of the files that you absolutely need to fix a
	broken system.  Linux, like Solaris and other modern
	versions of UNIX has gone to the dark side of practically
	requiring shared libraries for EVERYTHING.  While shared
	libraries are very useful for conversing disk space and
	memory and offer huge performance benefits --- they are
	just one extra thing to break (for robustness and security).
	So a decent compromise is to have a subset of statically
	linked programs for use when everything is broken.
	(Having a kernel module or patch that could automatically
	detect and repair a corrupt <TT>/etc/ld.so.cache</TT> file would
	be a pretty good idea, too).
<dt>tmp
	<dd>this can be a mounted filesystem or a symlink to a
	directory on one.
<dt>usr
	<dd>this normally <EM>should</EM> be a mounted filesystem
<dt>var <dd>this can be mounted or a symlink.
</dl></BLOCKQUOTE>
<BLOCKQUOTE>
Of course the preceding is all must my opinion.  The
most authoritative commentary on what Linux filesystems
should look like is the FHS --- the Linux Filesystem
Hierarchy Standard (co-ordinated by Dan Quinlan), homepage
<a href="http://www.pathname.com/fhs/">http://www.pathname.com/fhs/</a>. 
</BLOCKQUOTE>
<!-- sig -->

<!-- end 5 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/6"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 6 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Ethernet Switches vs. Hubs</H3>


<p><strong>From Louan Handke  on Sat, 01 May 1999  
</strong></p>
<!-- ::
Ethernet Switches vs. Hubs
~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
What is the difference between switch hub and unswitched hubs
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
The traditional ethernet hub (concentrator, repeater,
etc) is a relatively simple device which just amplifies
the signals on any of its ports out to all of the other
ports.  A "switch" or "intelligent" hub is more of a
multiport bridge.  It "learns" which MAC addresses
(ethernet hardware assignments) are on each of its ports
and only "repeats" (rebroadcasts) data frames to the
appropriate port.
</BLOCKQUOTE>
<BLOCKQUOTE>
In a traditional hub only one system on a given network
segment can be "talking" at any given time.   The whole
network segment is virtually a single wire.  Any time
two or more systems attempt to send packets at close to
the same time there is a "collision."  This is called
CSMA/CD --- carrier sense (listen for quiet), multiple
access (any card and "speak up"), with collision detection.
</BLOCKQUOTE>
<BLOCKQUOTE>
Whenever a collision occurs the cards involved send a
short jamming signal, and then they perform a psuedo
random "backoff" delay before attempting to re-broadcast.
Since it is incredibly unlikely that two cards will choose
the same amount of backoff delay one of them will usually
"win" and get to send first.  That's fine with only a
couple of cards in contention.  However, as utilization
approaches 20% or more, the number of collisions skyrockets
and the overall average throughput drags to a crawl.
</BLOCKQUOTE>
<BLOCKQUOTE>
The traditional answer was to segment the systems ---
putting servers in close proximity to their clients
(work groups), put routers between segments, and
put lots of interfaces in your workgroup servers
(four to eight ethernet interfaces was not unusual
for big netware servers).
</BLOCKQUOTE>
<BLOCKQUOTE>
Etherswitches are used to alleviate some of these
problems.  On a 24 port etherswitch its theoretically
possible for 12 pairs of systems to be concurrently
exchanging data frames.    This allows for much
larger segments (called VLANs --- virtual local
area networks).
</BLOCKQUOTE>
<BLOCKQUOTE>
On the downside, etherswitches are typically much more
expensive than their more passive cousins.  They have to
contain processors, memory, and firmware.  In addition
their processors have to be pretty quick (usually
quick RISC chips with a mess of ASICs I guess).  Also
there are degenerate cases.   If all of your servers are
located on one or two legs of an etherswitch then it
won't help much.  All of the clients will be waiting for
that one (or those couple of) port(s) to be clear ---
a classic bottleneck.
</BLOCKQUOTE>
<BLOCKQUOTE>
Again the solution is to have lots of smaller servers
--- segment the network, and replicate the data and
services so that they clients tend to use local
copies of everythings.  Hierarchies scale!
</BLOCKQUOTE>
<BLOCKQUOTE>
(Not to say that etherswitches don't have their
place --- its just to say that their deployment should
be based on an understanding of the situation and the
benefits vs. the costs of the technology.  Most vendors
have little interest in your needs --- they want to
sell you the shiny expensive toy).
</BLOCKQUOTE>
<!-- sig -->

<!-- end 6 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/7"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 7 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>MATCH and Replaceable Parameters in procmail</H3>


<p><strong>From Nick Moffitt  on Sat, 01 May 1999  
</strong></p>
<!-- ::
MATCH and Replaceable Parameters in procmail
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
So, here's one for the answer guy.
</STRONG></P>
<P><STRONG>
I have a mhonarc user that creates drop points for a mhonarc script to
walk by every night and process.  Thing is, I don't want to have to
edit the mhonarc user's <tt>.procmailrc</tt> every single time.  That is, let's
say that I have the following:
</STRONG></P>
<Pre><STRONG>
:0:
* ^Sender: owner-potato-peelers
spool/potato-peelers

:0:
* ^Sender: owner-onion-skinners
spool/onion-skinners
</STRONG></Pre>
<P><STRONG>
Is there some way that I can automate this format?  e.g.:
</STRONG></P>
<Pre><STRONG>
:0:
* ^Sender: owner-\([^@]+\)
spool/$1
</STRONG></Pre>
<P><STRONG>
This likely breaks procmail's own regex syntax, but you get the point.
"Anything that has an owner-foo Sender header should go to spool/foo."
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Nick,
</BLOCKQUOTE>
<BLOCKQUOTE>
You have the right idea but, as you've guessed, the
wrong syntax.  The answer is to use the <tt>MATCH</tt> variable
and the <tt>\/</tt> (fencepost) operator as described in this
excerpt from the <tt>procmailrc</tt>(5) man page:
</BLOCKQUOTE>

<blockquote><pre>       MATCH       This variable is assigned to by procmail when-
                   ever  it is told to extract text from a match-
                   ing regular expression.  It will  contain  all
                   text  matching the regular expression past the
                   `\/' token.
</pre></blockquote>
<BLOCKQUOTE>
So, your recipe would look something like:
</BLOCKQUOTE>
<blockquote><pre>:0:
* ^Sender: owner-\/.*
spool/$MATCH
</pre></blockquote>
<BLOCKQUOTE>
(though I haven't tested this specifically).
</BLOCKQUOTE>
<!-- sig -->

<!-- end 7 -->
<HR WIDTH="40%" ALIGN="center">
<!-- begin 11 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>procmail and saved variables.</H3>


<p><strong>From Nick Moffitt  on Sun, 2 May 1999  
</strong></p>
<font color="#000066"><em>
<P><STRONG>
[Jim Dennis said]
So, your recipe would look something like:
</STRONG></P>
<P><STRONG><BlockQuote><Code>
<Br>:0:
<Br>* ^Sender: owner-\/.*
<Br>spool/$MATCH
</Code></BlockQuote></STRONG></P>
<P><STRONG>
(though I haven't tested this specifically).
</STRONG></P>
</em></font>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I have!  It works like a charm.
</BLOCKQUOTE>
<!-- end 11 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/8"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 8 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>RMA for Video Card</H3>

<p><strong>From Siddhartha Bezbaruah  on Sat, 01 May 1999  
</strong></p>
<!-- ::
RMA for Video Card
~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I am mailing this on behalf of Software Decsions Inc., Houton, TX
77036.
<em>[ normally, I etch out personalized information like this.  But
this person seems to want their name up, so what the heck, I'll leave it
in. -- Heather ]</em>
</STRONG></P>
<P><STRONG>
I have been calling at 541-967-2450 to get an RMA number for one
of my company's VIPER V330 video card. The customer service
connected me to the technical support or RMA department and they
hunged up two times. I also faxed the required information at
254-750-9051 on April 21, 1999.  But there is no reaponse.
</STRONG></P>
<P><STRONG>
Please, let me know how to get an RMA from Diamond Multimedia.
<br>Sincerely
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I don't know.  I suppose I could try to dig up the
phone number for the one guy that I know that works
there (in their QA department).  I had lunch with him
last Saturday.
</BLOCKQUOTE>
<BLOCKQUOTE>
However, Diamond is big company.  I'd probably have to
do exactly the same sorts of things you're doing.
Call them up, go through some labyrinthine voice menu
system, explain my problem --- at least twice, and
feel like a supplicant at the high temple doing pennance
for my ill-informed purchasing decision.
</BLOCKQUOTE>
<BLOCKQUOTE>
What's odd is that I was under the impression that
Diamond was releasing programming specs for most of their
recent video cards so I'm curious why you're having a
problem.  I'm not familiar with this particular model
(manufacturers churn through video chipsets and models
so fast that I've just given up on tracking any names or
model numbers).
</BLOCKQUOTE>
<BLOCKQUOTE>
In any event I'm not the customer service department
or the "consumer watchdog" so you can't sick ME on them.
You'll have to go fight that battle yourself.
</BLOCKQUOTE>
<!-- sig -->

<!-- end 8 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/9"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 9 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Inodes Numbering: An Academic Question</H3>

<p><strong>From mcp on Sat, 01 May 1999  
</strong></p>
<!-- ::
Inodes Numbering: An Academic Question
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Hello,
<br>Could u pls explain me
As the inodes of unix file system are store in disk in the form of linear
arrays,the index value doesn't start from zero.But generally in
'C' the array index starts from zero.What is the reason
<br>Thanx
<br>Prakash
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Hmm.  This is one of those questions where it's hard to
start on an answer.  The set of premises upon which you're
basing your question is so shaky that the question itself
is hard to grasp.
</BLOCKQUOTE>
<BLOCKQUOTE>
First, it seems to be a question about Unix internals.
</BLOCKQUOTE>
<BLOCKQUOTE>
"Why isn't there an inode 0?"
</BLOCKQUOTE>
<BLOCKQUOTE>
Because the programmers of the Unix implementation that
you're looking at may not have wanted to start numbering
at zero.  Of course, I'm not sure that there is no inode
number zero.  I'm not sure how you can be sure, either.
</BLOCKQUOTE>
<BLOCKQUOTE>
It may be that the badblocks list is stored in inode zero
(on some filesystems). At least in some filesystems the
list of bad blocks is managed by "allocating" them to a
special system inode.  They effectively become part of the
"bad blocks" file.  Since this is done during the creation
of the filesystem (before even a base directory is created)
it would logically follow that this would have the
lowest numbered inode on a given fs.
</BLOCKQUOTE>
<BLOCKQUOTE>
I wouldn't say that inodes are "store in disk in the form of
linear arrays."  Inodes are stored in a filesystem in
whatever manner the designer of a fileystem chooses to
store them.  They may be represented as arrays in most
see programs --- though they are probably more often
managed as linked lists of structs.  They might be
doubly linked, hashed/btrees of structs.  I'm not a C
programmer so I don't really know.  Of course we could
go look at the code --- but I'm not even enough of a
programmer to infer the overall design from a worm's
eye perusal of the that.
</BLOCKQUOTE>
<BLOCKQUOTE>
I've heard that some filesystems (like those in LVM ---
logical volume management systems) put different ranges of
inodes on each PV (physical volume).  Thus they don't
start numbering the inodes for a given fs at 0 or one
or anything even close.  There is no particular reason
why they should.  The inode is just an arbitrary <EM>unique</EM>
identifier for all information about a file, sans it's
"names"  (links).
</BLOCKQUOTE>
<BLOCKQUOTE>
The greater questions is:  "Why?"
</BLOCKQUOTE>
<BLOCKQUOTE>
Why do you ask?
</BLOCKQUOTE>
<!-- sig -->

<!-- end 9 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/10"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 10 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>One Bad Sector</H3>
<H4 ALIGN="center">
It Doesn't Ruin the Whole Disk</H4>

<p><strong>From John Gilbert  on Tue, 04 May 1999  
</strong></p>
<!-- ::
One Bad Sector
~~~~~~~~~~~~~~
It Doesn't Ruin the Whole Disk
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I cant believe that its not possible to re-use or dispose of a bad
sector on a hard drive!!!
</STRONG></P>
<P><STRONG>
Please tell me its possible to do something!
</STRONG></P>
<P><STRONG>
I only have one bad sector - but its really pissing me off!
Isn't there something I can do?
</STRONG></P>
<P><STRONG>
Awaiting your response,
<br>JB.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Hmm.  You can "dispose" of a bad sector by adding it to
the bad blocks list.  The easiest way to do this is to
allow the <tt>mke2fs</tt> and <tt>e2fsck</tt> tools "check" the portions
of the disk that underlie a given filesystem by using the
<tt>-c</tt> options to each of them.
</BLOCKQUOTE>
<BLOCKQUOTE>
Thus, when you first create an ext2 filesystem you should
always add the <tt>-c</tt> option so that it will (transparently)
call the '<tt>badblocks</tt>' command and account for those that are
detected.  (The installation front ends to most Linux and
GNU suite distributions, such as 
<A HREF="http://www.redhat.com/">Red Hat</A>, 
<A HREF="http://www.caldera.com/">Caldera</A>, etc.
have a checkbox on their menu/dialogs to enable this).
</BLOCKQUOTE>
<BLOCKQUOTE>
When you suspect that additional sectors have gone bad
you should run '<tt>e2fsck -c</tt>' to add any newly bad sectors
to the bad blocks list that is maintained as part of the
the filesystem's metadata.
</BLOCKQUOTE>
<BLOCKQUOTE>
There are similar features for other filesystem types ---
although in some cases you'll have to build the badblocks
table to a file and run the filesytem formatting utility
separately (I won't go into details about feeding a
badblocks list to each of the alternative Linux filesystem
types as I don't know them off hand and they'd only be of
interest to a tiny percentage of LG reader --- much less
than 1% by my guess).
</BLOCKQUOTE>
<BLOCKQUOTE>
If the sector that goes bad is sector number one on track
zero --- then you have a paperweight.  That one sector is a
single point of failure (SPOF) in the whole PC drive
management architecture.  This is a limitation of the
architecture that lies below the OS level as it is imposed
by the BIOS.  Certainly someone could write a BIOS to
overcome the problem.  It's also possible that your hard
drive has quite a bit of built in redundancy to prevent the
problem from ever being visible to the BIOS.
</BLOCKQUOTE>
<BLOCKQUOTE>
Modern hard drives are sophisticated pieces of electronics.
</BLOCKQUOTE>
<BLOCKQUOTE>
They have embedded microprocessors running programs that map
their own arrangements of data blocks into an abstraction
that's compatible with the BIOS representation of a hard
disk.  A BIOS "thinks" of a hard disk as a flat three
dimensional array of head and tracks (cylinders) and
sectors.  In reality modern drives are almost always more
complex and far less regular.
</BLOCKQUOTE>
<BLOCKQUOTE>
Most modern drives store more sectors on their outer tracks
than they do on the inner ones.  This is referred to as ZBR
(zone-bit recording).
</BLOCKQUOTE>
<BLOCKQUOTE>
Most drives have "extra" sectors on each track --- and
they'll automatically map the "extras" in for any sector
that they detect as bad or "weak."
</BLOCKQUOTE>
<BLOCKQUOTE>
All hard drives have always implemented some error detection
into their electronics.  All recent drives (the last decade
or so) have also implemented at least rudimentary ECC, error
correction coding.  When a drive's electronics detect errors
they automatically try several re-reads to "get it right."
Many drives are programmed to move the successfully read
data into one of the "extras" on that track when this
occurs.  Likewise if they detect "correctable" errors
through their ECC mechanisms.  Some drives might even
migrate data to extra sectors on adjacent tracks or heads.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, you generally won't see bad sectors on a modern drive
until there are enough of them that all of the available
extras on a given track, cylinder, or within a given zone,
are all in use.
</BLOCKQUOTE>
<BLOCKQUOTE>
Most drives have a "hidden" extra cylinder on which they
store some of the persistent data for these low level
mapping and remapping operations.  This is the "diagnostics
cylinder."  I think that they also have at least one sector
per track or cylinder devoted to maintaining the bad block
remappings for that track.  (Some drives might implement
this as an additional surface --- so that one drive head
is devoted to all diagnostics).
</BLOCKQUOTE>
<BLOCKQUOTE>
Most modern hard drives also have quite a bit of RAM on
them.  A half meg is minimal, and two to four meg is common
on larger, high performance SCSI drives.  I don't keep up on
these things so they may have drives with 8 or 16 Mb
onboard.
</BLOCKQUOTE>
<BLOCKQUOTE>
I've often wondered if it wouldn't make more sense for drive
manufacturers to support a small (socketed?) bit of NVRAM to
store the MBR and the location of their diagnostics data
map.  Of course it's possible that some of them ARE doing
this --- since I wouldn't know.
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course I'm just speculating here.  I've never designed
hard drives and my discussions with hardware engineers from
Seagate, Quantum and other aquaintances in the field have
been far less detailed than my preceding speculations.
</BLOCKQUOTE>
<BLOCKQUOTE>
The key point here is that these drives are not just simple
arrays of heads, sectors and tracks.  I think I read a
message from Linus recently (on the kernel-list, in
reference to discussions about implementing "elevator-seeking"
and similar tricks in the low level disk drivers) that
basically said: 'anyone who treats a modern hard drive as
anything other than a linear list of storage blocks is a
fool.'
</BLOCKQUOTE>
<BLOCKQUOTE>
As for "re-using" a bad sector: you shouldn't have to worry
about that.  If you drive hasn't already done it automatically
and transparently then your best strategy is to mark it as
bad and let the OS work AROUND that spot.  Occasional
surface defects and wear and tear are to be expected in any
mechanical equipment --- and hard drives are fundamentally
mechanical.
</BLOCKQUOTE>
<!-- sig -->

<!-- end 10 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/11"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 12 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Server Shutdown Button</H3>

<hr align="center" width="40%">
<p>This follows up on "Secure Shutdown from the Console",
		<a href="../issue39/tag/21.html"
	>http://www.linuxgazette.com/issue39/tag/21.html</a>.</p>
<hr align="center" width="40%">

<p><strong>From Scot E. Wilcoxon  on Sun, 02 May 1999  
</strong></p>
<!-- ::
Server Shutdown Button
~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
About the "Answer Guy" comments in the April 1999 LG about
shutting down a server, perhaps with a special login:
</STRONG></P>
<P><STRONG>
I have also created Linux servers without monitors, but I used a
two-key keyboard: a cheap serial mouse.  See `<tt>man gpm</tt>` for the
"SPECIAL COMMANDS" and "-S" instructions.  With this option
enabled in <TT>/etc/rc.d/init.d/gpm</TT> you can triple-click the mouse to
initiate either a shutdown or a reboot.  This gives operators a
safe way to shut down a server without having to have a monitor or
keyboard on the server.  The BIOS does have to allow booting
without those plugged in, but many BIOSes can be configured to
continue despite those errors.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Cool!  There's a man page I hadn't read recently and
thoroughly enough!  The best part is you can configure
it with a set of three custom commmands instead of the
defaults (<tt>shutdown -r</tt>, <tt>shutdown -h</tt>, and an internal
<tt>init</tt> signalling routine).  I don't know what I'll
do with that, but it sure sounds useful.
</BLOCKQUOTE>
<!-- sig -->

<!-- end 12 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/12"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 13 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>HAL91 (Floppy Based Linux Distribution)</H3>


<p><strong>From twager on Wed, 05 May 1999  
</strong></p>
<!-- ::
HAL91 (Floppy Based Linux Distribution)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Hi..
</STRONG></P>
<P><STRONG>
I am trying to get hal91 going...I have the bootdisk running
ok but cannot get the data disk to load. with the <tt>init.disk2</tt>
command..It tell me it cannot find and ext2 file system on
<TT>/dev/fd0</TT> ...I got the system off a cheapbytes cdrom I thought this
might be faulty so I downloaded the file using <tt>lynx</tt> from the
author's site but the same result occurred...I then mounted a floppy
and <tt>cp</tt>'d the data file across This time the floppy was seen but it
told me it could not find <tt>usr.tar.gz</tt> I <tt>mv</tt>'d the file to 
<tt>usr.tar.gz</tt> and it mounted but all that was there was 
<tt>Lost+Found</tt>...
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Did you really '<tt>cp</tt>' the second image unto a mounted
filesystem on the floppy?
</BLOCKQUOTE>
<BLOCKQUOTE>
I have no experience with HAL91, although I've heard that it
is one of several floppy based mini-distributions) like
Tom's Root/Boot, MuLinux, MiniLinux, LOAF (Linux On A
Floppy), etc.
</BLOCKQUOTE>
<BLOCKQUOTE>
It looks like the canonical home page for HAL91 is at:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><code>
<A HREF="http://home.sol.no/~okolaas/hal91.html"
	>http://home.sol.no/~okolaas/hal91.html</A>
</code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
I found that by following one of the many related links at
the bottom of Tom Oehser's page (Tom's Root/Boot) at:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><code>
<A HREF="http://www.toms.net/rb"
	>http://www.toms.net/rb</A>
</code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
Images for most of these would be written to the raw floppy
device using dd rather than copied onto some filesystem that
you've put thereon.  In other words normally you wouldn't
use the 'cp' command to create boot floppies for any
mini-distribution.  Usually you'd use a command like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
dd bs=18k if=image.dat of=/dev/fd0
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
(while there is no MOUNTED fs residing on that flopppy
drive!).
</BLOCKQUOTE>
<BLOCKQUOTE>
It's also possible to use a command like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
dd &lt; image.dat &gt; /dev/fd0
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... though it is more efficient and reliable to set <tt>dd</tt>'s
block size (18K is size of one one track on a 1.44 Mb
diskette: 1440 blocks of 1K each is 1474560 bytes, as is
18K * 80 --- and most HD floppies support 80 tracks).
The use of <tt>dd</tt>'s <tt>if=</tt> and <tt>of=</tt> parameters 
vs. the redirection operators is relatively inconsequential.
</BLOCKQUOTE>
<BLOCKQUOTE>
The HAL91 pages don't explicitly say how you should create
the "datadisk" (supplemental diskette --- which can
be unpacked to a second RAM disk under <TT>/usr</TT> to provide
some additional programs and utilities).  I presume that it
is supposed to be be written to the raw floppy device in
the same way that the boot diskette is prepared.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I have done a strings on the file and looked through that
but there is not mention of either of the readouts I got.....I
have written to the author but no reply..I have written to all the
linux lists but no reply....  I would like to get this running as
I am giving a talk on Linux to the local ham radio club and would
like to take this prog as well as Mandrake and RedHat as I am
hoping it might get a few interested..If you have any tips or help
where else I could look a cc reply would be greatly
appreciated.....I struggled with Stampede from the cdrom but
this has me beat :&gt;(
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Why have you selected HAL91 for this case?  There are
several other choices (look at the bottom of Tom Oehser's
page, as listed above, for a few of them).
</BLOCKQUOTE>
<BLOCKQUOTE>
I'm not saying that HAL91 is "the wrong choice" ---
what I'm suggesting is that you try a couple of these
so that you can form a basis for comparison.  So far
my personal favorite is Tom's Root/Boot --- though I like
Trinux for other work.
</BLOCKQUOTE>
<BLOCKQUOTE>
As for your ham radio group: consider looking at the
Linux Speaker's Bureau web site at:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><code>
<A HREF="http://www.linuxresources.com/lsb/index.html"
	>http://www.linuxresources.com/lsb/index.html</A>
</code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
You might find someone in your area (or someone
who will be in your area on other business) who can
give a slick presentation about Linux and can help people
during an installfest.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Regards.
<br>Ted
<br><em>Beware of geeks bearing gifs</em>
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Be even more wary of geeks wearing GIFs!
</BLOCKQUOTE>
<!-- sig -->

<!-- end 13 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/13"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 14 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Ping a Port: NOT</H3>


<p><strong>From Derek Leung  on Wed, 05 May 1999  
</strong></p>
<!-- ::
Ping a Port: NOT
~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Hi,
</STRONG></P>
<P><STRONG>
I am just wondering if there is any way that I can
code to ping a destination if it is alive or not.  However, the server
is known to be behind a firewall, and only one port is open to public.
So, is there anyone know how to code a "ping" program that could ping on
a certain port?  I will greatly appreciate for any ideas.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
The '<tt>ping</tt>' command generates an ICMP echo request packet.
ICMP is a protocol over IP that implements "control
messages" (flow control, routing, etc.).  At level the
very concept of TCP/UDP ports is completely irrelevant.
(TCP and UDP are other protocols that ride over IP, they
are orthogonal to ICMP).
</BLOCKQUOTE>
<BLOCKQUOTE>
There are a number of programs that you can use for
port scanning (and your application seems to call for
testing a single port on a single host --- which is a
very short list ports to scan).  I'd recommend that you
look at <tt>netcat</tt> (sometimes installed as '<tt>nc</tt>' 
on some Linux systems) and <tt>nmap</tt>.
</BLOCKQUOTE>
<BLOCKQUOTE>
A quick place to find these and many other interesting tools
would be the Trinux web site:  <tt><A HREF="http://www.trinux.org"
	>http://www.trinux.org</A></tt>
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Derek
<br>SDU TEAM
</STRONG></P>
<P><STRONG>
PS.  I use PERL to code.  If there are any available C module, please let
me know too.  Thanks.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
There are some sophisticated PERL sockets and <tt>RAW::IP</tt> tools
--- you'd want to look at CPAN (<tt><A HREF="http://www.cpan.org"
	>http://www.cpan.org</A></tt>) for
those.  There are numerous modules to allow easy PERL coding
for specific network protocols and services --- and there
are  many sample scripts there.
</BLOCKQUOTE>
<!-- sig -->

<!-- end 14 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/14"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 15 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Linux as a Job!</H3>
<H4 ALIGN="center">
Hobbies become fun and profit</H4>


<p><strong>From Nate Brazell  on Fri, 07 May 1999  
</strong></p>
<!-- ::
Linux as a Job!
~~~~~~~~~~~~~~~
Hobbies become fun and profit
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I am new to Linux and have a definate need to learn it.  It is now my
job!  Here are a couple of questions???
</STRONG></P>
<P><STRONG>
1.  I need to establish a dial up server?  How?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
<tt>mgetty</tt>.  Install <tt>mgetty</tt> and follow the directions in
its info file (using the emacs/xemacs '<tt>info</tt>' package
or the standalone '<tt>info</tt>' command).  You can also read
the manual in HTML at:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><code>
<A HREF="http://www.leo.org/~doering/mgetty/index.html"
	>http://www.leo.org/~doering/mgetty/index.html</A>
</code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
<tt>mgetty</tt> is included with many Linux distributions.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
2.  I need to install a new drive and mount an existing file system to
the new drive.  This one I know how to do, however I haven't messed with
UNIX in a while and want to make sure my plan will work.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
The hard part is the hardware.  Once that's done you
just run '<tt>fdisk</tt>' then '<tt>mke2fs</tt>' (<tt>mkfs.ext2</tt>) 
and '<tt>mount</tt>' Finally you simply added the new filesystem and 
mountpoint to your <TT>/etc/fstab</TT> (so that the system will mount 
the new filesystem automatically after the next reboot).
</BLOCKQUOTE>
<BLOCKQUOTE>
Here's a couple of sample commands assuming that your adding
an IDE drive to a system's secondary controller.  The
new drive will be  <TT>/dev/hdc</TT>.  I'm assuming that <TT>/dev/hda</TT>
is your existing OS installation and that <TT>/dev/hdb</TT> is a
CD-ROM slaved off of the same controller; that's best
since CDs are accessed relatively infrequently and most
often just to copy things to your local volume.  Thus
putting the new drive on the other IDE chain in a typical
modern system gives a performance boost.  Only one drive
per IDE chain can be accessed at any given modem by the
kernel.  SCSI allows commands to the drives to be handled
in parallel (the request is issued, the drive is
"disconnected" from the bus and it issues an interrupt
when it is ready to provide or fetch more data).
</BLOCKQUOTE>
<BLOCKQUOTE>
So you use commands like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
fdisk /dev/hdc
<br>&nbsp;
<BR># menu interface to configure new filesystems
<br>&nbsp;
<br>for i in 1 3 5 6 7 8; do
<br>mke2fs -c /dev/hdc$i
<br>done
<br>&nbsp;
<BR># -c enables automatic 'badblock' checking
<BR># This example assumes you created six filesystems
<BR># on the new drive, perhaps leaving partition two
<BR># as a swap partition and number 4 is used to house
<BR># the extension which contains 5 through 8
<BR># I use a bash/sh for loop to save typing and to
<BR># give me longer to sip my coffee while it works
<BR># unattended
<br>&nbsp;
<br>mount /dev/hdc1 /home
<br>mount /dev/hdc3 /usr/local
<br>mount /dev/hdc5 /u1
<br>mount /dev/hdc6 /var/log
<br>mount -o sync /dev/hdc7 /var/spool
<br>mount -o noatime /dev/hdc8 /var/spool/news
<br>&nbsp;
<br>vi /etc/fstab
<br>&nbsp;
<BR># add the new filesystem(s) as appropriate to
<BR># the fstab file format. See the appropriate
<BR># man page from manual section 5 (i.e. man 5 fstab)
</CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
In this (admittedly complicated) example I've put the
new filesystems on a few mount points that often need
to "grow" or are otherwise good candidates for having
their own filesystems.
</BLOCKQUOTE>
<BLOCKQUOTE>
I've glossed completely over the details of mount each of
these on a temporary mount point (I use <TT>/mnt/tmp</TT>) and
copying/moving/migrating all the data from the extent
directories to their new filesytems.  The short form
of that is (for each filesystem):
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><pre>
mount $NEWFS /mnt/tmp
cp -pax $OLDDIR /mnt/tmp
umount /mnt/tmp
mv $OLDDIR $OLDDIR.old
mkdir $OLDDIR
chmod $OLD_DIR_PERMS $OLDDIR
mount $NEWFS $OLDDIR
</pre></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
.... and there are many variations.  Once you've well
and truly confirmed that your copies are good you can then
rm -fr each of the $OLDDIR.old directories.  One way to
compare two directory trees and ensure that the data and
the metadata (ownership and permissions) have been
faithfully replicated is to use a command like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
(cd $OLDDIR.old &amp;&amp; tar cf - . ) |
<br>( cd $NEWDIR  &amp;&amp; tar df - )
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
(note the need for line continuation on this example.)
</BLOCKQUOTE>
<BLOCKQUOTE>
Note:  In all of these preceding examples I've only
give the basic idea.  You should NOT just cut and paste
these commands without understanding them and editing them
to suit your actual needs and situation.
</BLOCKQUOTE>
<BLOCKQUOTE>
One other note:  I've shown a couple of mount examples
with options (<tt>sync</tt> for our spool fs, and <tt>noatime</tt> for
<TT>/var/spool/news</TT>).  One of the key advantages to using
smaller, more focused filesystems is that you can then
apply mount options that are appropriate to them.
You can greatly increase the performce of a newspool
by preventng the kernel's fs drivers from updating the
"Access Time" (<tt>atime</tt>) stamps on each file each time it
is read.  You can greatly reduce the risk of data damage
to your mail spools and queue using the <tt>sync</tt> option (so that
a catastrophic power supply failure or bump of the "off"
switch is less likely to mangle the filesystem.
</BLOCKQUOTE>
<BLOCKQUOTE>
Such options can trade off performance for features or
integrity assurance.  Tune to taste and serve to your users.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Can you help me?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Yes.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Will you help me?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I hope I already have.
</BLOCKQUOTE>
<!-- sig -->

<!-- end 15 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/15"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 15 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>New Kernel Loses Ether Driver; Dial on Demand and Masquerading</H3>
<H4 ALIGN="center">
A grabbag of user questions.</H4>


<p><strong>From Adams, James  on Sun, 02 May 1999  
</strong></p>
<!-- ::
New Kernel Loses Ether Driver; Dial on Demand and Masquerading
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A grabbag of user questions.
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Answer Guy,
</STRONG></P>
<P><STRONG>
I know you are extrmely busy and such, I hope you can point me in
</STRONG></P>
<P><STRONG>
the right direction. I am trying to find the tell all instructions
for recompiling a new kernel for RH5.2 (Mandrake 5.3). I have
tried repeatedly to do this but still no luck.
</STRONG></P>
<P><STRONG>
The main problem I run into is that my ethernet no longer works
</STRONG></P>
<P><STRONG>
after booting into the "new" setup. Something about SCIOFLAGS (I
think), and the network is not working.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
That means that you haven't successfully included the driver
for your ethernet adapter.  You have to know what sort of
driver it takes.  I realize that this is the problem.  There
is no easy way to tell this from a running kernel --- none
the entries under <TT>/proc</TT> seem to say which ether driver is
active.  You might find your ethernet card mentioned in
<TT>/proc/pci</TT> (a list of PCI devices recognized by your kernel).
Otherwise just open the case and look at the actual card
hardware.
</BLOCKQUOTE>
<BLOCKQUOTE>
One trick I've occasionally used during installfests is an
ugly hack.  I cd to <TT>/lib/modules/preferred/net</TT> (or
thereabouts) and do something like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
for i in <TT>./*;</TT> do insmod $i &amp;&amp; echo $i; done
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... which tries to load EVERY available module in that
directory.  This could hang the system, but usually it just
spits out the name(s) of any modules that successfully
detect a card that they can drive.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
If you could point me in the right direction I would forever be in
your debt (sort of). I also want to be able to have dial on
demand, I have a small home network and want to use it with
ipfwadm.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
There is a program called 'diald' which used to be the main
"dial on demand" daemon (driver).  However, I've read that
the latest versions of PPP have some built in "on demand"
features.
</BLOCKQUOTE>
<BLOCKQUOTE>
I must admit that I haven't been using modem PPP for the
last several months.  I'm spoiled rotten by my DSL line
(which as only been down once since I got it).  I'd only
been using POTS PPP occasionally in the last couple of years
since I was using ISDN (with its own dial-on-demand in my
Trancell/WebRamp ISDN router) --- so I was only using
diald/pppd when that was being flaky.
</BLOCKQUOTE>
<BLOCKQUOTE>
However, I've been meaning to play with the new pppd options
at some point.  So I'll look into it.
</BLOCKQUOTE>
<BLOCKQUOTE>
I presume that you mean that you want to use your PPP link
through IP masquerading (when you say "with ipfwadm").
There are numerous HOWTOs and numerous back issues of my
column where I've discussed masquerading.  The short form is
to use the following commands on your router (the Linux box
with the ethernet the PPP links on it):
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
echo 1 &gt; <TT>/proc/sys/net/ipv4/ip_forward</TT>
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
(to enable routing)
</BLOCKQUOTE>
<BLOCKQUOTE>
and:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
ipfwadm -F -a acc -m -D 0.0.0.0/0 -S 192.168.0.0/16
ipfwadm -F -a acc -m -D 0.0.0.0/0 -S 10.0.0.0/8
ipfwadm -F -a acc -m -D 0.0.0.0/0 -S 172.16.0.0/12
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
(you only need one of these, but all of them won't hurt).
</BLOCKQUOTE>
<BLOCKQUOTE>
This last set of commands adds a set of rules to the Linux
packet filtering tables to masquerade any source addresses
in the 192.168.*.*, the 10.*.*.* and the 172.16.*.* through
172.31.*.* ranges.  Those are all of the addressed reserved
in RFC 1918 for "private" use.
</BLOCKQUOTE>
<BLOCKQUOTE>
As I've discussed before you should also put in some packet
filtering and anti-spoofing rules to protect your home
network from outside attack.  Crackers and script-kiddies
are not a myth --- I see probes on my network all the time
and I've just recently let one of my system get cracked into
(I was being sloppy with that one --- it's part of why my
mail was down for a couple of weeks; though only a small
part).
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Thanks
in Advance
Jim Adams
</STRONG></P>
<!-- sig -->

<!-- end 15 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/16"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 16 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>pcmcia install on debian</H3>

<p>After every Bay Area Linux User Group 
	(<a href="http://www.balug.org/">BALUG</a>) meeting, we head
	to a local deli named Max's to continue chatting until about
	midnight.  Some of the Debian folk are becoming regulars, so
	Jim and I had a chance to ask a few questions.</p>

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

<p><strong>From Joey Hess  on Sun, 02 May 1999  
</strong></p>
<P><STRONG>
Hi Jim, I don't know you're proper email address, so I'm using
this one. At Max's tonight, your S.O. asked me about installing
debian on a system that needs PCMCIA to use the cd drive and how
to enable that. Well I dug around and the info she needs is at
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
That was resourceful.  Our addresses are:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
Jim Dennis&lt; <A HREF="mailto:jimd@starshine.org"
	>jimd@starshine.org</A>&gt;,
Heather Stern &lt;<A HREF="mailto:star@starshine.org"
	>star@starshine.org</A>&gt;
</BlockQuote></BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
<A HREF="http://debian.org/releases/stable/i386/ch-init-config.en.html#s7.11"
	>http://debian.org/releases/stable/i386/ch-init-config.en.html#s7.11</A>
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I'm copying Heather on this reply.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
If the version of debian she's installing doesn't have a pcmcia
entry on the menu, she should install the most recent one, it's
documented to have it.
</STRONG></P>
<P><STRONG>
And in respone to your own query about installing debian without
rebooting, another possibility would be to grab
</STRONG></P>
<PRE><STRONG>
<A HREF="ftp://ftp.debian.org/debian/dists/stable/main"
	>ftp://ftp.debian.org/debian/dists/stable/main</A>/disks-i386/2.1.9-1999-03-03/base2_1.tgz
</STRONG></PRE>
<P><STRONG>
This is a basic debian system, tarred. After you unpack that you
should be able to run dpkg --root=/wherever -i foo.deb and install
additional deb's if necessary. And you can chroot into it and play
around. If you "sh root/pkgsel" in there, you'll get to the
package group selection menu debian normally displays after the
install from booth floppies.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Sounds interesting.  I'll try that soon.
</BLOCKQUOTE>
<BLOCKQUOTE>
Do you know of a project to complete a more complete system
integrity auditing tool than debsums?  I like that the rpm -Va
command tells me about changes to <EM>permissions</EM>, <EM>ownership</EM>,
and other metadata.  debsums seems to be a light wrapper around
md5sum.
</BLOCKQUOTE>
<BLOCKQUOTE>
On slackware systems I can just use 'tar df ...' to get this
sort of info.  When I met Patrick Volkerding at LinuxWorld I
suggested he write a script to do that for a whole CD full of
of tar files --- sort of an "auditors workbench."  (I also
suggested that he make this an option from the boot menu on
the CD and that he make a custom boot floppy for system
auditing; so that the <A HREF="http://www.slackware.org/">Slackware</A> sysadmin is encouraged to
do proper audits of their system, from a clean boot off of a
write protected floppy).
</BLOCKQUOTE>
<BLOCKQUOTE>
I'd like to encourage the <A HREF="http://www.debian.org/">Debian</A> team to also come up with
such a beast (and I'll try to devote some time and Linuxcare
resources to actually DOING it).  However, it occurs to me that
the existing Debian hacks can probably do something like this
practically overnight.  (I'll be fighting a much longer learning
curve before I'm ready to contribute a production quality
package to this effort).
</BLOCKQUOTE>
<BLOCKQUOTE>
I've heard that Debian packages encapsulate .tar files.  Is that
true?  Are they tar or tar.gz? (no problem, 'tar dzf ...' works).
I suppose I could use alien to extract tar files from .deb files
(one at a time) and then use tar df on each of those.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
--
see shy jo
</STRONG></P>

<!-- end 16 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/17"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 17 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>WinPrinter Work-around</H3>


<p><strong>From harmbehrens on Sat, 01 May 1999  
</strong></p>
<!-- ::
WinPrinter Work-around
~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Hello,
is there any work-around to get a gdi printer (Star Wintype 4000) to
work with Linux :-?
Harm
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Save the file to some supported format (something that
MS Windows can read), copy the file to a Windows system
(to which your GDI printer is attached) and/or reboot
your system into MS Windows, and use that to print.
</BLOCKQUOTE>
<BLOCKQUOTE>
--- Alternatively I suppose you could configure a
Windows system to share its printer and use Samba
(smbclient) to print to that.
</BLOCKQUOTE>
<BLOCKQUOTE>
Those are WORKAROUNDS.
</BLOCKQUOTE>
<BLOCKQUOTE>
I presume that these are NOT what you wanted to hear.
However, there is no way that I know of to support
a Winprinter without running drivers that are native
to MS Windows (and its GDI --- graphics device interface
--- APIs).
</BLOCKQUOTE>
<BLOCKQUOTE>
I think that the development of GDI printers was a
devious and clever trick by Microsoft.  Tie the
customer AND the printer manufacturers inextricably to
Microsoft's SOFTWARE and leave them both vulnerable to
MS upgrades for the lives of their products.  It's
diabolically clever.
</BLOCKQUOTE>
<!-- sig -->

<!-- end 17 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/18"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 18 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Maximum Filesize vs. Maximum Filesystem Size</H3>
<H4 ALIGN="center">
(From LinuxPPC Mailing List)</H4>


<p><strong>From Charlie Romero  on Thu, 27 May 1999  
</strong></p>
<!-- ::
Maximum Filesize vs. Maximum Filesystem Size
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(From LinuxPPC Mailing List)
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I'm a little confused on the 2 GB thing. Is it ok to have each partition
ie. <TT>/usr</TT> , <TT>/etc</TT>, <TT>/home</TT> at 2GB each or can the whole file system not exceed
2 GB.
</STRONG></P>
<P><STRONG>
If I have a 10 GB drive, is this ok.
</STRONG></P>
<P><STRONG>
<TT>/usr</TT>	2GB
<TT>/etc</TT>	2GB
<TT>/opt</TT>	2GB
<TT>/home</TT>	2GB
<TT>/swap</TT>	2GB
</STRONG></P>
<P><STRONG>
or do I have to keep the total under 2GB?
</STRONG></P>
<P><STRONG>
Thanks,
Charlie
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Actually 2Gb is the maximum FILESIZE under 32-bit versions
of Linux.  (Alpha, and presumably UltraSPARC ports are not
hampered by this).
</BLOCKQUOTE>
<BLOCKQUOTE>
Linux ext2 filesystems can be much larger than 2Gb ---
and can be much larger than any available consumer hard
drives or common arrays (although the lack of
journaling/logging means that fsck may take a prohibitively
long time on larger filesystems).
</BLOCKQUOTE>
<!-- sig -->

<!-- end 18 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/19"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 19 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>ICMP Masquerading</H3>


<p><strong>From Abraham S. Lin  on Thu, 27 May 1999  
</strong></p>
<!-- ::
ICMP Masquerading
~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Hi, jim,
This is your e-mail address on Linuxgazette, so I tried. Hope this
is not your personal mailbox.
</STRONG></P>
<P><STRONG>
After reading all the docs, howtow, and the docs from www.xos.nl
(supposedly original ipfwadm site), there are little mention of icmp
forwarding, and no examples of it.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
So far it all goes to the same mailbox eventually.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
My setup is:
1. Redhat 5.2(full install), machine name ken. one interface to internet,
</STRONG></P>
<P><STRONG>
the other to localnet.
2. localnet machines with 10.1.1.x private addresses. (kolya and brian)
</STRONG></P>
<P><STRONG>
I did deny on all in/out/forward rules of ipfwadm. And then enabling them
one by one. It's a tuff job but seems like all is well.
</STRONG></P>
<P><STRONG>
Until I figured that ping and traceroute doesn't work from localnet. Not
even from the linux gateway to internet.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
You don't mention which version of the kernel you're using.
That's important because most versions of the 2.0 kernel
series didn't support ICMP masquerading.  It's still listed
as an experimental feature.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Thanks for this in advance. After this is fixed I think we'll have to make
ipfirewalling HOWTO better than it is now. It didn't do on icmp forwarding.
</STRONG></P>
<P><STRONG>
Thanks again,
abe
</STRONG></P>
<P><STRONG>
P.S.
Here's the digest of my <TT>/etc/rc.d/rc.local</TT> on the icmp part:
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	><BlockQuote>
Your problem has to do with MASQUERADING of ICMP.
It has nothing to do with forwarding them.
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
You probably have to compile a later 2.0.36 kernel
to add this support.  You could also consider trying
the 2.2.9 or later kernels and switching to the newer
IP Chains model.
</BLOCKQUOTE>
<BLOCKQUOTE>
IP Masquerading through IPChains is not well explained
in their HOWTO.  I just had to figure that one out
while teaching Linux classes at SGI (one of my Linuxcare
roles).
</BLOCKQUOTE>
<BLOCKQUOTE>
I don't have my example handy but the key is to
understand that the -j option to the ipchains command
is used both for "jumping" to a chain (that you've
created) and for declaring a disposition to a given
packet.  Thus ACCEPT, DENY, REJECT, REDIR, RETURN and MASQ
are sorta treated like chains (you use tham as targets to
the -j option) but they will not be listed with the -L
and are not "flushed" with -F, etc.
</BLOCKQUOTE>
<BLOCKQUOTE>
When you want to masquerade for a network all you really
need is:
</BLOCKQUOTE>

<blockquote><pre>ipchains -A forward -s $INTERNALNET -d 0.0.0.0/0 -j MASQ
</pre></blockquote>
<BLOCKQUOTE>
... add a rule to the (pre-defined) forwarding chain
so that any package with a source address (<TT>-s</TT>) matching
our internal address and a destination (<TT>-d</TT>) of anywhere
(else) is "just" MASQueraded.
</BLOCKQUOTE>
<BLOCKQUOTE>
I've successfully configured masquerading with
just that rule (and the usual routes and ip_forwarding
enabled).  It doesn't seem to need any special rule
to match addresses going from an internal address to
another internal address.  So we don't need to
do something like:
</BLOCKQUOTE>

<blockquote><pre>ipchains -A forward -s $INTERNALNET  -d ! $INTERNALNET -j MASQ
</pre></blockquote>
<BLOCKQUOTE>
... where the ! sign negates our address mask and
comes to refer to any destination that is NOT in our
internal network.
</BLOCKQUOTE>
<BLOCKQUOTE>
This second variation of the rule is more precise and
probably more correct.  However it doesn't seem to be
necessary.
</BLOCKQUOTE>
<BLOCKQUOTE>
I have also been successful in setting up bidirectional
masqeurading with just two fowarding rules:
</BLOCKQUOTE>

<blockquote><pre>ipchains -A forward -s $MYNET -d 0.0.0.0/0 -j MASQ
ipchains -A forward -s $HISNET -d 0.0.0.0/0 -j MASQ
</pre></blockquote>
<BLOCKQUOTE>
... again this seems to work although:
</BLOCKQUOTE>

<blockquote><pre>ipchains -A forward -s $MYNET -d $HISNET -j MASQ
ipchains -A forward -s $HISNET -d $MYNET -j MASQ
</pre></blockquote>
<BLOCKQUOTE>
... would seem to be more precise and probably better.
</BLOCKQUOTE>
<BLOCKQUOTE>
The examples in the HOWTOs seem to insist on creating
a separate chain for our masquerading rules using something
like:
</BLOCKQUOTE>

<blockquote><pre>ipchains -N mymasq
</pre></blockquote>
<BLOCKQUOTE>
... and then using various rules to jump (<TT>-j</TT>) into that
chain (which then just does a MASQ anyway, also using the
-j option).  This added level of indirection seems to be
completely unnecessary for the simple case and is far too
confusing from the examples.  I suggest that people start
with my simpler examples and only add the additional
chains of rules as their needs demand it.
</BLOCKQUOTE>
<BLOCKQUOTE>
Your excerpts:
</BLOCKQUOTE>

<blockquote><pre>&gt; extip=_EXTERNAL_INTERFACE_IP
&gt; intip=_INTERNAL_INTERFACE_IP
&gt; localnet=10.1.1.0/24
&gt; any=0.0.0.0/0
&gt; # A ping from kolya to 132.206.1.11 Not right still...........
&gt; /sbin/ipfwadm -I -a accept -V $intip -P icmp -S $localnet 8 -D $any
&gt; /sbin/ipfwadm -O -a accept -V $extip -P icmp -S $extip 8 -D $any
&gt; /sbin/ipfwadm -I -a accept -V $extip -P icmp -S $any 0 -D $extip
&gt; /sbin/ipfwadm -O -a accept -V $intip -P icmp -S $any 0 -D $localnet
&gt;
&gt; # A traceroute from kolya to 132.206.1.11 Not right still.......
&gt; /sbin/ipfwadm -I -a accept -V $intip -P icmp -S $localnet 8 -D $any
&gt; /sbin/ipfwadm -O -a accept -V $intip -P icmp -S $intip 11 -D $localnet
&gt;
&gt; /sbin/ipfwadm -I -a accept -V $intip -P icmp -S $localnet 8 -D $any
&gt; /sbin/ipfwadm -O -a accept -V $extip -P icmp -S $extip 8 -D $any
&gt; /sbin/ipfwadm -I -a accept -V $extip -P icmp -S $any 11 -D $extip
&gt; /sbin/ipfwadm -O -a accept -V $intip -P icmp -S $any 11 -D $localnet
&gt;
&gt; # This line just produces error message. Don't know the syntax for icmp.
&gt; /sbin/ipfwadm -F -a accept -P icmp -S $localnet 3:11 -D $any
</pre></blockquote>
<BLOCKQUOTE>
I think you probably actually want something more like
</BLOCKQUOTE>

<blockquote><pre>/sbin/ipfwadm -F -a accept -m -P icmp -S $localnet 3 11 -D $any
</pre></blockquote>
<BLOCKQUOTE>
... "port ranges" (the 3:11 syntax) aren't meaningful
for ICMP.  I presume you are trying to limit the
packet filters to accepting/relaying "echo request" and
"echo reply" packets in this example.  I don't have a
handy list of ICMP packet types but you definitely also
want to allow some other packet types to get through
(for MTU path discovery)!
</BLOCKQUOTE>
<BLOCKQUOTE>
Actually I'm not sure that you need it when masquerading
since the ICMP message that informs a TCP stack that a
"Don't Fragment" packet was dropped might only need
to reach our router/gateway (the system performing the
masquerading).  I'm not sure if it needs to get all the
way back to our host.
</BLOCKQUOTE>
<BLOCKQUOTE>
In any event I'd suggest that you adopt the opposite
strategy with regards to ICMP packets.  There are only  a
few of them that need to be filtered out (redirects mainly).
So far it seems to be safe to let most other ICMP message
types through.   (Well, about as safe as letting any sort
of IP traffic through, masqueraded or otherwise.  Naturally
you should consider proxying with SOCKS, Dante or DeleGate
to tighten security even further).
</BLOCKQUOTE>
<!-- sig -->

<!-- end 19 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/20"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 20 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Upgrade Breaks Several Programs, <TT>/proc</TT> Problems, BogoMIPS Discrepancies</H3>
<H4 ALIGN="center">
A visit to "Library Hell"</H4>


<p><strong>From Pete Caffall  on Thu, 27 May 1999  
</strong></p>
<!-- ::
Upgrade Breaks Several Programs, <TT>/proc</TT> Problems, BogoMIPS Discrepancies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A visit to "Library Hell"
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Jim:
</STRONG></P>
<P><STRONG><BlockQuote>
I'm kind of going nuts here trying to figure this one out.  I
</BlockQuote></STRONG></P>
<P><STRONG>
have just recently upgraded my system at home with RedHat 5.2. It
previously had RedHat 5.0 on it. Since then I have been unable to
get Netscape (4.5.1 or 4.06) to work, as well as Word Perfect 7.0
, and not to be outdone - arena. All break on start up with a
segmentation fault (SYSSEGV) and a core dump.  Prior to the
upgrade, all worked (well - don't know about arena - just tried
that to see if it might also break). I did not change my hardware
configuration and is the same as prior to the update. ASUS 5ab MB,
AMD K 6 II 3D 333mhz processor, 64 mb 100mhz sdimm, 5 gb WD IDE hd
drive where Linux is installed.  XFree86, Afterstep that came with
the distribution, and ATI Xpert 98 video with 8mb.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
It sounds like the upgrade replaced your shared libraries
with versions that aren't quite compatible with these
applications.  Netscape Navigator and Communicator have
both historically been pretty picky about their shared
libraries.
</BLOCKQUOTE>
<BLOCKQUOTE>
There are occasions in the past where a GNU bug fix to their
libc has broken versions of Navigator and Communicator that
relied upon these bugs.   You can find out which libraries
these files are linked against with the 'ldd' command.
</BLOCKQUOTE>
<BLOCKQUOTE>
You can also rebuild your <TT>/etc/ld.so.cache</TT> file by running
the 'ldconfig' command (a good idea to try that any time
you suspect shared library problems).
</BLOCKQUOTE>
<BLOCKQUOTE>
You say (later) that you tried using libc.so.5.4.33.
However you don't say <EM>how</EM> you tried to use it.  There
are a couple of magic environment variables LD_PRELOAD and
LD_LIBRARY_PATH which can be used to override the
order in which shared libraries are loaded (and thus
can control which library gets loaded to supply a given
set of functions).
</BLOCKQUOTE>
<BLOCKQUOTE>
You can read the ld.so(8) man page for some details about
how the linker/dynamic for shared objects works under Linux
and other GNU systems.
</BLOCKQUOTE>
<BLOCKQUOTE>
Typically you'd copy your old libraries (with which these
programs were working) into some directory
(<TT>/usr/local/lib-special</TT> for example) and then replace your
links to Navigator, Communicator, WordPerfect, and any other
affected programs with a short wrapper script that sets and
exports the appropriate environment variables and then
launches the original program.  There are examples of such
scripts on the web (from people who've had to hack them up
to run earlier versions of Navigator after earlier upgrades
of glibc).
</BLOCKQUOTE>
<BLOCKQUOTE>
Most of this nonsense should be unnecessary under Linux.
First, programs should be written to rely on the
exposed/documented characteristics of the libraries against
which they are linked.  Also it's supposed to be possible to
linked to more specific library versions in cases where
the more general version won't work with your application.
That's why we have so many symlinks like these:
</BLOCKQUOTE>

<blockquote><pre>-rwxr-xr-x   libc-2.0.7.so
lrwxrwxrwx   libc.so.4 -&gt; libc.so.4.7.6
-rwxr-xr-x   libc.so.4.7.6
lrwxrwxrwx   libc.so.5 -&gt; libc.so.5.4.46
-rwxr-xr-x   libc.so.5.4.46
-rwxr-xr-x   libc.so.5.4.7
lrwxrwxrwx   libc.so.6 -&gt; libc-2.0.7.so
</pre></blockquote>
<BLOCKQUOTE>
(from <TT>/lib</TT> on one of my <A HREF="http://www.suse.com/">S.u.S.E.</A> systems, actually).
</BLOCKQUOTE>
<BLOCKQUOTE>
The idea is that we should be able to have a libc.so.4.6.XX
with a symlink to libc.so.4.6.  libc.so.4.7.6 (from my
example) would still be the "default" for libc.so.4, but
programs that were linked to libc.so.4.6 would use our
libc.so.4.6.XX.  Thus they would be more specifically
bound to the 4.6 versions of the libraries than to the
4.7 or 4.5.
</BLOCKQUOTE>
<BLOCKQUOTE>
This is far more flexible than the implementation of DLLs
we see in MS Windows and NT.  It can automatically tolerate
multiple concurrent versions of each library.  The
LD_PRELOAD and LD_LIBRARY_PATH environment variables give us
even more flexibility since we can override the linkage at
run time for a specific process (or family or processes).
</BLOCKQUOTE>
<BLOCKQUOTE>
However, it can be a pain to manage for mere mortals
such as myself.  Oddly enough it also seems to be more of
a problem for the commercial packages than for other Linux
software.  I have to cope with far less "library hell"
resulting from typical binary packages than I do with
the big commercial ones.
</BLOCKQUOTE>
<BLOCKQUOTE>
I supposed one thing that WordPerfect, Netscape, Applix,
and Star Division could all do is to include all of the
libraries that they require (with which they are linked and
tested) on their CDs.  They could then have an installation
and/or configuration option to install those in a
special directory (<TT>/opt/${PACKAGE}/lib</TT>) and to automatically
invoke their programs in a "compatability mode" where they
set their own LD_PRELOAD variables properly and launch thier
binaries.
</BLOCKQUOTE>
<BLOCKQUOTE>
Such a scheme could allow these companies to be more robust
in the face of distribution updates (such as your
transition from <A HREF="http://www.redhat.com/">Red Hat</A> 5.0 to 5.2 and the more disastrous
change from 5.x to 6.0 that has broken StarOffice and other
packages for so many Red Hat users in recent weeks).
</BLOCKQUOTE>
<BLOCKQUOTE>
(At the same time these packages would not need to take
up the additional disk space and memory footprint when
running on a system whose default libraries are suited
to the situation).
</BLOCKQUOTE>
<BLOCKQUOTE>
In any event you might consider upgrading to RH 6.0 and
WP 8.0.  I personally suggest letting the distribution
maintainers do as much of the work of getting you
out of "library hell" as possible.
</BLOCKQUOTE>
<PRE><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
One thing I have noticed -it had problems trying to mount the
</STRONG></PRE>
<P><STRONG>
<TT>/proc</TT> file system - boot message indicated that it couldn't find
<TT>/proc</TT> in the fstab or mtab. I didn't notice it the last time I
booted, and looking in <TT>/proc</TT>, it shows as a file system, although
df -a doesn't show it. I tried using the libc.so.5.4.33 but this
did not resolve the problem.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I presume that your reference to libc.so.5.4.33 relates back
to your problems with certain applications since the <TT>/proc</TT>
issues are very unlikely to relate to your shared libraries.
</BLOCKQUOTE>
<BLOCKQUOTE>
Classically the 'mount' command should be statically linked.
I notice that S.u.S.E. 5.2 and <A HREF="http://www.debian.org/">Debian</A> 2.1 and Red Hat 5.2
all have it dynamically linked against libc.  This is BAD
(since a corrupt ls.so.cache or a damaged libc.so will then
prevent you from even mounting up an alternative filesystem).
There is an alarming trend to configure whole systems to
practically require dynamic linking for everything.  This
makes the whole system less robust with greater and more
critical interdependencies.  (In this regard we are
following in Sun's footsteps; it's practically impossible to
create a statically linked program under Solaris).
</BLOCKQUOTE>
<BLOCKQUOTE>
However, I doubt that your problem with <TT>/proc</TT> has anything
to do with shared libraries.
</BLOCKQUOTE>
<BLOCKQUOTE>
Your mtab file should initially be empty when your reboot.
Your <TT>/etc/fstab</TT> file should have an entry from <TT>/proc</TT> that
looks something like:
</BLOCKQUOTE>

<blockquote><pre>none     /proc        proc       defaults   	0 0
</pre></blockquote>
<BLOCKQUOTE>
... If it doesn't, add one.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Any suggestions (nice ones) would be appreciated.
</STRONG></P>
<P><STRONG>
One curiosity question: The system at home with the AMD K6 II
</STRONG></P>
<P><STRONG>
3D reports 663 bogomips.  The system I have at work is a Pentium
II (not Celeron) 400 Mhz, and it reports 397 bogomips. What gives.
Thanks in advance for any help you can give.
Pete Caffall
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I wouldn't worry about it.  BogoMIPS are a measure of how
fast your processor executes a fast idle loop.  That is to
say, how fast can your processor do NOTHING.  In most cases
a stock Pentium CPU will have a BogoMIPS value that's
reasonably close to its clock speed.  However Pentium MMX
and various clone CPUs with MMX like extensions (like
your AMD K6) will have higher BogoMIPS values.
</BLOCKQUOTE>
<BLOCKQUOTE>
My Pentium 150 shows:
</BLOCKQUOTE>

<blockquote><pre>cpu MHz		: 167.050963
bogomips	: 66.56
</pre></blockquote>
<BLOCKQUOTE>
(excerpts from <TT>/proc/cpuinfo</TT>) while my Omnibook 800
(Pentium 166) shows a BogoMIPS of 328.50.  My old
386DX/33 shows a BogoMIPS of about 6.6
</BLOCKQUOTE>
<BLOCKQUOTE>
There's a reason why Linus named these "BOGO"-MIPS
</BLOCKQUOTE>
<BLOCKQUOTE>
(I guess they're actually used in the kernel for
certain types of short idle loops).
</BLOCKQUOTE>
<!-- sig -->

<!-- end 20 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/21"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 21 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Spare a Minute to Provide "Some Info"</H3>


<p><strong>From fujairah on Thu, 20 May 1999  
</strong></p>
<!-- ::
Spare a Minute to Provide "Some Info"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
To william smith
</STRONG></P>
<P><STRONG>
I have read about your answers on different linux sites.  We are
interested in LINUX and wish to see how it works, If it is fine we
will be interested to go for it.
</STRONG></P>
<P><STRONG>
If you could kindly give us some info about LINUX it will be
really useful to us.
</STRONG></P>
<P><STRONG>
-	P.GOWRI SHANKAR
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Um.  That's pretty open-ended.  It took me over a
minute to format this replay and trim up the portions
of your message that I'm quoting for context.
</BLOCKQUOTE>
<BLOCKQUOTE>
Linux is an independent and free implementation of the
POSIX and UNIX programming APIs and conventions.  Most
UNIX software can be ported to Linux with ease.
</BLOCKQUOTE>
<BLOCKQUOTE>
Because all of the core parts of a Linux/GNU system
are open source) it should be possible to port <EM>any</EM>
UNIX software to it.
</BLOCKQUOTE>
<BLOCKQUOTE>
What else is there to say on the subject.  You found
back issues of the "Answer Guy" so you must have found
numerous other links to Linux web sites.  It is one of the
most popular subjects on the Internet.
</BLOCKQUOTE>
<BLOCKQUOTE>
You are obviously already "interested" in it (enough
to look around on the web to find me and enough to
write to me).  So you best strategy is to get a
copy of Linux to play with (it's free after all, though
you're best option is to pay for a copy of one of the
popular distributions, to save you the trouble, time and
expense of downloading a whole suite for yourself).
</BLOCKQUOTE>
<BLOCKQUOTE>
As for matching Linux features to your needs:  Only you
can do that.  Certainly you can, and probably should,
hire a consultant (or contract with a consulting firm)
to perform a requirements analysis process.
</BLOCKQUOTE>
<BLOCKQUOTE>
From what you've said here, all I can say is:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
Well, I like it.
</BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
As for how it works.
</BLOCKQUOTE>
<BLOCKQUOTE>
Well you install it, usually by booting from your CD or a
specially written floppy, then you follow a number of
installation dialogs, answering mysterious questions with
obscure parameters.  A bit later after much disk activity,
often accompanied by "informative" progress indicator
dialogs, you reboot.  Then you log in to either a text or
graphic session and you issues commands by typing them at a
command prompt, selecting them from text menus or using a
mouse.
</BLOCKQUOTE>
<BLOCKQUOTE>
In other words, Linux works just like any other
microcomputer operating system.  I can't be more specific
(because your minute is up, but also because there are many
different distributions of Linux and most of them have
many different options --- so you can choose almost any
aspect of your user interface, for yourself).
</BLOCKQUOTE>
<!-- sig -->

<!-- end 21 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/22"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 22 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Data "Losted" (sic)</H3>


<p><strong>From Andres Martinez Pintor  on Thu, 20 May 1999  
</strong></p>
<!-- ::
Data "Losted" (sic)
~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I lost all information in my drive using diskedit.The parameter
block BPB was losted.I don't have anything in diskedit ...it's all
in 00.All I want is the disk drive operating...the information and
programs not needed .Is there a program for this? to get to c:\
</STRONG></P>
<P><STRONG>
Samsung VA 34324A 4.3G
Please help me.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
First this doesn't sound like a Linux question.
There isn't any Linux program named "diskedit" that
I've ever heard of, and we don't designate out filesystems
using names like "C:"
</BLOCKQUOTE>
<BLOCKQUOTE>
Next, what were you doing in DiskEdit if you don't know
how to use it, and you didn't have a current backup?
</BLOCKQUOTE>
<BLOCKQUOTE>
Last, if you don't care about the data (information and
programs not needed) then why not simply repartition the
drive and put new filesystems on it?
</BLOCKQUOTE>
<BLOCKQUOTE>
(If you do care about the data you could always try Norton
utilities "UNFORMAT.EXE" program.  One trick we used to do
with that, when I was on the Norton tech support team, is to
FORMAT a drive, then immediately UNFORMAT it.  This often
recovered most of the data, relatively quickly and
painlessly. However, I don't work for Norton, or Symantec,
anymore. so if you want their help, on the legacy DOS
derived platforms that I've abandoned, call them).
</BLOCKQUOTE>
<!-- sig -->

<!-- end 22 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/23"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 23 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Network Neighborhood: Heterogenous File Sharing</H3>


<p><strong>From azlan  on Thu, 20 May 1999  
</strong></p>
<!-- ::
Network Neighborhood: Heterogenous File Sharing
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
How do I configure the Network setting so that I can access other
PCs in a LAN regardless of what other PCs have as their
OSs(Linux/Windows/Macs) -- Network File Sharing.
</STRONG></P>
<P><STRONG>
Thank you,
</STRONG></P>
<P><STRONG>
AZLAN
Ipoh, Malaysia
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Using Samba on your Linux and other UNIX systems will allow
them to act as file and print servers to NT, Win '9x, WfW,
and OS/2 LANMan clients.
</BLOCKQUOTE>
<BLOCKQUOTE>
Netatalk will allow the same Linux and UNIX systems provide
file and print services to MacOS clients (although MacOS X
will probably be even better in this role --- if you want to
pay for it).
</BLOCKQUOTE>
<BLOCKQUOTE>
While we're on the subject it's possible to run Novell
Netware under Linux (available through <A HREF="http://www.caldera.com/">Caldera</A>).  There's
also the free mars_nwe (Netware emulator).
</BLOCKQUOTE>
<BLOCKQUOTE>
So, the obvious answer to your question is to install the
appropriate software on your Linux and other UNIX systems.
This will allow them to communicate with your Windows and
MacOS systems using the protocols that are native to those
systems.
</BLOCKQUOTE>
<BLOCKQUOTE>
Naturally you could try installing NFS on the "other"
operating systems.  However, NFS is a pretty lame protocol
(particularly in versions 1 and 2).  Linux support for NFS
is still not sterling, though the new kernel driver is
getting better and we are seeing some preliminary v3 and NFS
over TCP support.  More importantly we find that the various
NFS implementations for NT, Win '9x, MacOS, etc. are very
bad.  These take lots of resources from these non-UNIX
operating systems, cause conflicts and make these systems
even less robust and stable (which is very bad considering
how often we have to reboot our NT, '9x and Macs already).
</BLOCKQUOTE>
<BLOCKQUOTE>
I should point out that Samba and Netatalk aren't a bed of
roses.  Actually, to question that old idiom a bit perhaps I
should say that they ARE a bed of roses, complete with
thorns!
</BLOCKQUOTE>
<BLOCKQUOTE>
Presumably you'd like seamless filesharing with robust file
and record locking, security, and high reliability.
</BLOCKQUOTE>
<BLOCKQUOTE>
The problems that come with this are often subtle.  If you
took a given directory tree (say the home directories for
your users) and shared/exported it out over NFS, AppleTalk,
and SMB protocols you'd probably find numerous problems with
file corruptions and horrible concurrency issues.  The low
level locking semantics and, in many cases, the file
formatting characteristics, even the file naming syntax, are
all just different enough to cause irreconcilable
differences.
</BLOCKQUOTE>
<BLOCKQUOTE>
Frankly your best bet for heterogenous file sharing to this
day is probably Netware.  Naturally this means getting
Netware clients for you MacOS, Win '9x, and even OS/2, and
MS-DOS systems.  Native Linux drivers for accessing Netware
servers are available.  There are the ncpfs (free) drivers
(aren't those in the stock 2.2 kernels these days?) and the
clients from Caldera (non-free, based on code licensed from
Novell).
</BLOCKQUOTE>
<BLOCKQUOTE>
Sometimes I wonder why FTP is still such a widespread and
popular protocol.  Other times I look at the issues like
these, and I know.
</BLOCKQUOTE>
<!-- sig -->

<!-- end 23 -->
<!--     .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.     -->
<A NAME="tag/24"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 24 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>AOL</H3>


<p><strong>From Ydoc10 on Mon, 17 May 1999  
</strong></p>
<P><STRONG>
Is there any way to access AOL E-mail without knowing the password
and being undetected??  As in showing mail read, etc.
</STRONG></P>
<P><STRONG>
Also...same question for AOL IM's....
</STRONG></P>
<P><STRONG>
Really need to know
Thanks
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Not that I know of.  In any event it sounds like
such activities would be illegal and petty.  In addition
this question has nothing to do with Linux.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, where do you idiots get my address and why do you
ask me these silly, irrelevant and juvenile questions?
</BLOCKQUOTE>
<BLOCKQUOTE>
Actually you could "access" AOL E-mail by sniffing any
network connection over which it was travelling.  Of
course you'd have get access to said network segment
while the victim was access his or her e-mail.
</BLOCKQUOTE>
<BLOCKQUOTE>
You could probably also get it from the victim's
computer if you surrepticiously gained access to
that (it probably appears in temporary files and
possibly in removed/deleted file fragments.
</BLOCKQUOTE>
<BLOCKQUOTE>
Naturally you could send the victim a hacked up
"upgrade" to their AOL software and hope that
he or she is stupid enough to install it.
</BLOCKQUOTE>
<BLOCKQUOTE>
Then again you could walk into one of the AOL
offices and try to gain direct access to their
servers.  That should be entertaining.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you actually try any of these moronic schemes
I hope you get promptly arrested and suffer a
humiliating time in the press.
</BLOCKQUOTE>
<!-- sig -->

<!-- end 24 -->
<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><font color="#CC0000">New Tips:</font></H3>
<ul>
<li><a HREF="./lg_tips42.html#jones">
IP address in Linux Gazette
</a>
<li><a HREF="./lg_tips42.html#bestor">
root Password
</a>
<li><a HREF="./lg_tips42.html#primes">
Shutting up your modem
</a>
<li><a HREF="./lg_tips42.html#jones2">
PPP IP address
</a>
<li><a HREF="./lg_tips42.html#magnus">
IP adress from ifconfig
</a>
<li><a HREF="./lg_tips42.html#stanford">
Modems
</a>
</ul>
<H3><font color="#CC0000">Answers to Mail Bag Questions:</font></H3> 
<ul>
<li><a HREF="./lg_tips42.html#leary">
Re: [SLL] Basic Question: Gnome Panel?
</a>
<li><a HREF="./lg_tips42.html#stern">
tar.gz on Windows, ZIP on Linux--1
</a>
<li><a HREF="./lg_tips42.html#murphy">
Linux Gazette Format--2
</a>
<li><a HREF="./lg_tips42.html#inskeep1">
Reading Linux Files from Win95--3
</a>
<li><a HREF="./lg_tips42.html#inskeep2">
a.out binaries not working--1
</a>
<li><a HREF="./lg_tips42.html#smith1">
Re: Linux partitions from Windows--1
</a>
<li><a HREF="./lg_tips42.html#smith2">
Re: a.out binaries not working--2
</a>
<li><a HREF="./lg_tips42.html#smith3">
Re: FTP access methods
</a>
<li><a HREF="./lg_tips42.html#bodony">
Windows NT and Linux hate each other?
</a>
<li><a HREF="./lg_tips42.html#frank">
Re: Linux partitions from Windows--2
</a>
<li><a HREF="./lg_tips42.html#murray">
Problems running your a.out executable--3
</a>
<li><a HREF="./lg_tips42.html#jensen">
Linux Partitions on Windows--3
</a>
<li><a HREF="./lg_tips42.html#killian">
Need help on Internet connection with Linux
</a>
<li><a HREF="./lg_tips42.html#michal">
Re: Linux Gazette Format--4
</a>
<li><a HREF="./lg_tips42.html#brown1">
Network boot disk for i386 without hd 
</a>
<li><a HREF="./lg_tips42.html#brown2">
Subject: Linux partitions from Windows--4
</a>
<li><a HREF="./lg_tips42.html#hadess">
FTP access methods...
</a>
<li><a HREF="./lg_tips42.html#baker">
a.out--4
</a>
<li><a HREF="./lg_tips42.html#greene">
Re: Linux Gazette Format--6
</a>
<li><a HREF="./lg_tips42.html#ruang">
The PPP problem, followup.
</a>
<li><a HREF="./lg_tips42.html#berkley">
Re: ANSWER: Word to PostScript 
</a>
<li><a HREF="./lg_tips42.html#walsh">
3COM cards
</a>
<li><a HREF="./lg_tips42.html#powell">
HD-less
</a>
<li><a HREF="./lg_tips42.html#wood">
3COM cards
</a>
<li><a HREF="./lg_tips42.html#crane">
Re: question for the board
</a>
<li><a HREF="./lg_tips42.html#radovan">
Re: Network boot disk for i386 without hd
</a>
<li><a HREF="./lg_tips42.html#radovan2">
Re: FTP access methods...
</a>
<li><a HREF="./lg_tips42.html#jay">
re: soundpro
</a>
<li><a HREF="./lg_tips42.html#saiorse">
Re: Question about 2 GB max? 
</a>
<li><a HREF="./lg_tips42.html#rini">
Re: Question about 2 GB max? 
</a>
</ul>

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

<a name="jones"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">
IP address in Linux Gazette
</font> </H3>
Date: Wed, 5 May 1999 08:39:07 -0400<BR> 
From: "F. D. Jones", <A HREF="mailto:mrj@magicnet.net">mrj@magicnet.net</A> 
<P>
	FYI, the current implementaion of pppd automatically runs the
script /etc/ppp/ip-up when the ppp connetion is established.  One of
the variables created in the script is $IPLOCAL which is your assigned
ip address.  No perl or awk required, and it's reliable because it's
reported by the daemon handling your ppp!  There are a few other
conditional  scripts invoked by pppd, also.  Check them out.
<P>
   From the man page for pppd:
<P>
SCRIPTS
       Pppd invokes scripts at various stages in its processing which can be used  to  perform
       site-specific ancillary processing.  These scripts are usually shell scripts, but could
       be executable code files instead.  Pppd does not wait for the scripts to  finish.   The
       scripts  are  executed  as root (with the real and effective user-id set to 0), so that
       they can do things such as update routing tables or run privileged daemons.  Be careful
       that the contents of these scripts do not compromise your system's security.  Pppd runs
       the scripts with standard input, output and error redirected to /dev/null, and with  an
       environment  that  is empty except for some environment variables that give information
       about the link.  The environment variables that pppd sets are:
<P>
       DEVICE The name of the serial tty device being used.
<P>
       IFNAME The name of the network interface being used.
<P>
       IPLOCAL
              The IP address for the local end of the link.  This is only set  when  IPCP  has
              come up.
<P>
       IPREMOTE
              The  IP  address for the remote end of the link.  This is only set when IPCP has
              come up.
<P>
       PEERNAME
              The authenticated name of the peer.  This is only set if the peer  authenticates
              itself.
<P>
       SPEED  The baud rate of the tty device.
<P>
       UID    The real user-id of the user who invoked pppd.
<P>
       Pppd  invokes  the  following scripts, if they exist.  It is not an error if they don't
       exist.

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

<a name="bestor"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">
root Password
</font> </H3>
Date: Wed, 05 May 1999 23:40:19 -0400<BR> 
From: David Bestor, <A HREF="mailto:dab@indenial.com">dab@indenial.com</A> 
<P>
Forgot root password?<BR> 
Sendmail hangs on boot?<BR> 
That new startup script locks up your system.. 
<P>
Instead of breaking into your system just
boot up into single user mode.
<P>
At the lilo prompt just type: <tt>linux -s</tt>
<P>
Example:
<PRE> 
LILO:linux -s 
</PRE> 
This will boot up into single user mode
and it doesnt even ask for a password...
<P>
Much easier than trying to break in..
<P>
Thanks<BR> 
<P> 
--<BR> 
David

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

<a name="primes"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">
Shutting Up Yer Modem
</font> </H3>
Date: Thu, 06 May 1999 06:54:30 PDT
<A HREF="mailto:primes@hotmail.com">primes@hotmail.com</A> 
<P>
This shuts up or quietens noisy modems during dialup. recall the following 
AT commands.
<P>
controls speaker volume:
<ul>
<li>L0      low volume.
<li>L1      low volume.
<li>L2      medium volume (default).
<li>L3      high volume.
</ul>
<P>
operates speaker:
<ul>
<li>M0      speaker always off.
<li>M1      speaker on until connect (default).
<li>M2      speaker always on.
<li>M3      speaker on after dial, until connect.
</ul>
<P>
<ul>
<li>Z       resets modem
<li>DT      tone dials specified phone number.
</ul>
<P>
you now have to modify the expect-send pairs in your chat script. note that 
the above commands should be prefixed by AT. the following chat script turns 
off the modem speaker.
<PRE>
/usr/sbin/chat                                     \
   ABORT           '\nBUSY\r'                      \
   ABORT           '\nNO ANSWER\r'                 \
   ABORT           '\nRINGING\r\n\r\nRINGING\r'    \
   ''              ATZ                             \
   'OK'            ATM0                            \
   'OK'            ATDT1234567                     \
   CONNECT         ''                              \
   ogin:--ogin:    mylogin                         \
   assword?        mypassword
</PRE>
after specifying the ABORT strings, the sequence will first expect nothing; 
and then send the string ATZ to reset the modem. the expected response to 
this is the string OK, after which the string of ATM0 is sent to turn off 
the modem speaker. when it receives OK, the phone number 1234567 is dialed 
out, after which the login procedure begins.
<P>
to vary the speaker's volume, just suitably modify the expect-send pairs 
before the ATDT command, eg. replacing ATM0 by ATL0 uses low volume for the 
speaker.
<P>
--<BR> 
primes

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

<a name="jones2"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">
PPP IP address
</font> </H3>
Date: Tue, 11 May 1999 10:53:27 -0400<BR> 
From: Robert Jones, <A
HREF="mailto:rjones@chaotika.net">rjones@chaotika.net</A> 
<P>
In response to the recent couple tips about finding the IP address of a PPP
interface, I offer the following script, which will tell you the IP address of
any properly configured network interface on your system.
<PRE>
#!/bin/sh

if [ -z $1 ]; then
    echo "You must specify a network interface."
elif [ -z "`grep $1: /proc/net/dev`" ]; then
    echo "Interface '$1' does not exist on this system."
else
        IPADDR=`ifconfig $1 | grep inet | cut -d: -f2 | cut -d\  -f1`
        echo "The IP address for $1 is $IPADDR."
fi
</pre>
--<BR> 
Robert 

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

<a name="magnus"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">
IP adress from ifconfig
</font> </H3>
Date: Wed, 12 May 1999 00:43:31 +0100 (GMT+0100)<BR> 
From: Magnus & Tina, <A HREF="mailto:magnus@gol.com">magnus@gol.com</A> 
<P>
I couldn't resist. Why use perl or awk?
<P>
Here is another one of those "How to get an IP adress from pppd" tips.
In this specific case for the gateway. 
It needs to be changed depending on the printout format of ifconfig though.
<PRE>
ifconfig | fgrep P-t-P | cut -c42-56 > /tmp/gw_ip
</PRE>
--<BR> 
Magnus

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

<a name="stanford"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">
Modems
</font> </H3>
Date: Sun, 16 May 1999 10:40:34 -0600
From: "Joey Stanford", <A HREF="mailto:rescue@telebot.net">
rescue@telebot.net</A> 
<P>
 Just wanted to let you know that, contrary to the lists circulationg
around, ASKEY V1433VQH-X modems are Linux Compatable!  You have to
disable PNP and set it up as COM3 (their terms) and IRQ4.  Took me
almost a week to figure that out. =3D)  Thought it would be helpful to
others!
<P>
--<BR> 
Joey


<P> <hr> <P> 
<!--================================================================-->
<H4><font color="maroon">
Tips in the following section are answers to questions printed in the Mail
Bag column of previous issues.
</font></H4> 

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

<a name="leary"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: [SLL] Basic Question: Gnome Panel?
</font> </H3>
Date: Tue, 25 May 1999 21:53:30 -0700<BR> 
From: Michael Leary, <A HREF="mailto:leary@nwlink.com">leary@nwlink.com</A> 
<P>
My thanks to Bradley Willson.  For anyone else, here's what was wrong:
<P>
my .xinitrc was:
<PRE>
exec /usr/bin/enlightenment
</pre>
as per the enlightenment docs (I think?), anyway, when it should have been:
<PRE>
exec gnome-session
</PRE>
as per the gnome FAQ on gnome.org. This works great now, and all is well.
<P>
--<BR> 
Michael

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

<a name="stern"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
tar.gz on Windows, ZIP on Linux--1
</font> </H3>
Date: Mon, 03 May 1999 00:52:17 +0000<BR> 
From: Heather Stern, <A HREF="maito:star@starshine.org">star@starshine.org</A> 
<P>
I'll try to keep this short enough to stay at the Two Cent Tips level :)
<P>
'zip and 'unzip' are the Linux tools to deal with .ZIP files.  According
to the 
man page, it's been around since 1990, so it predates Linux itself by
several 
years, it exists on other UNIX and UNIX-like systems too.  (And it's
been ported 
to MSwin - see <A HREF="http://www.itribe.net/virtunix/">http://www.itribe.net/virtunix/</A> for an unzipper that
handles long 
names and fixes line ends.)  
<P>
At any rate, I can see your point -- MSwin users are used to finding
apps and 
documentation wrapped in .ZIP files, but true newvies don't know what a
.TGZ is, 
and assume it's useless to them.
<P>
It's not. tough!  WinZIP (<A HREF="http://www.winzip.com/">http://www.winzip.com/</A>) handles tar-gzipped
files
with no hassle whatsoever.  I have two laptops, one w95 and one Linux -
and with
these two utilities I really don't have to think about file formats when
I toss
archives back and forth.
<P>
--<BR> 
Heather

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

<a name="murphy"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Linux Gazette Format--2
</font> </H3>
Date: Mon, 3 May 1999 19:54:46 -0700<BR> 
From: "Nichole Murphy", <A HREF="mailto:Nichole-Murphy@worldnet.att.net">Nichole-Murphy@worldnet.att.net</A> 
<P>
You can Download the text or HTML files and untar them with WinZip. Winzip
will tell you that the tar.gz files contain a compressed file and ask if you
would like to uncompress the second file. Chose "yes" then read the files
with any program you want.
<P> 
--<BR> 
Nichole

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

<a name="inskeep1"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Reading Linux Files from Win95--3
</font> </H3>
Date: Mon, 03 May 1999 22:10:53 -0400<BR> 
From: Peter Inskeep, <A
HREF="mailto:pinskeep@iglou.com">pinskeep@iglou.com</A> 
<P>
I know of at least one program that will read Linux files from your
Windows 95 operating system.  It is called "explore2fs.exe."  It is
about 486K long, and is self contained, if I recall correctly.  I know
it is a long note, but I have copied the author's Readme.txt file
below.  The author, John Newbigin, is from Australia.  The program
opens an explorer like window showing your Linux file systems, ie.,
/dev/hda5, /dev/hdb6, or whatever.  You can read most files, if I
recall correctly.  I also use a program called Windows Commander, by
Deiter Prissing, I believe, in Germany.  It may be that program that
enables me to read individual files, but it is John's program that
makes it possible to read and scan the Linux file systems.
<P>
--<BR> 
Pete

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

<a name="inskeep2"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
a.out binaries not working--1
</font> </H3>
Date: Mon, 03 May 1999 21:59:04 -0400<BR> 
From: Peter Inskeep, <A HREF="mailto:pinskeep@iglou.com">
pinskeep@iglou.com</A> 
<P>
Darren,<BR> 
Try running the a.out binary with the command line:
            ./a.out
I recently installed RedHat 5.2 and found that its $PATH statement
does not include a path of " ./: "
./ is the path of the current directory that you are in.
Remarkably, RedHat does not set up paths so that your current path is
looked at to execute a file.
<P>
Pete

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

<a name="smith1"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: Linux partitions from Windows--1
</font> </H3>
Date: Mon, 3 May 1999 23:44:59 +0200 (CEST)<BR> 
From: <A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl</A> 
<P>
You can read (but not write) ext2 filesystems ubder Windows with the
FSDEXT2 driver. See http://www.yipton.demon.co.uk/
<P>
--<BR> 
Roland

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

<a name="smith2"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: a.out binaries not working--2
</font> </H3>
Date: Mon, 3 May 1999 23:32:30 +0200 (CEST)<BR> 
From: <A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl</A> 
<P>
You should probably install a different C development package. Most
distributions have two available: one for a.out and one for ELF
binaries. Install the package that makes ELF binaries. 
<P>
If you want to run the a.out binaries, you have to have support for
that in the kernel. Either compiled in or as a module (binfmt_aout).
<P>
Roland

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

<a name="smith3"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: FTP access methods
</font> </H3>
Date: Mon, 3 May 1999 23:27:08 +0200 (CEST)<BR> 
From: <A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl</A> 
<P>
Regarding your question about mounting FTP sites...
<P>
I do not think you can mount an ftp site directly.
<P>
But you might want to check if the FTP site also supports NFS (Network
File System) access. That should do what you want.
<P>
If you just want to synchronize a remote with a local directory, rsync
might be a better choice.
<P>
Hope this helps, 
<P>
--<BR> 
Roland

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

<a name="bodony"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Windows NT and Linux hate each other?
</font> </H3>
Date: Tue, 11 May 1999 06:49:10 -0500<BR> 
From: "Daniel J. Bodony", <A HREF="mailto:bodony@purdue.edu">
bodony@purdue.edu</A> 
<P>
Dear Pepijn,
<P>Just recently, my roomate and I installed RH5.2 and NT/4.0 on the same
machine and had a problem very similar to the one you describe.&nbsp; The
network card used was a 3C509b that had been in an 486 running RH5.0 and
was known to work.&nbsp; In the new machine, NT/4.0 could see and use the
network card fine but RH5.2 could not.&nbsp; More specifically, RH5.2 could
find the network card but could not initialize it and Tx/Rx packets.&nbsp;
The answer turned out be that NT/4.0 would <I>Reset and Change</I> the
card's IO port and interupt values to a different set of numbers each time
the computer was rebooted so that the card was on a different IO/IRQ each
time RH5.2 started.&nbsp;&nbsp; Perhaps Win95 is doing something similar.
<P>The fix was to force NT/4.0 to choose one and only one IO/IRQ combination.&nbsp;
Then all worked fine.
<P>
--<BR> 
Dan

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

<a name="frank"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: Linux partitions from Windows--2
</font> </H3>
Date: Tue, 4 May 1999 19:42:35 +0200 (CEST)<BR> 
From: Der Guru, <A HREF="mailto:frank@di-net.de">frank@di-net.de</A> 
<P>
Mark,<BR> 
I use fsdext2. It gives you read access to your Linux partitions. You can
find the URL at freshmeat.
Regards
<P>
--<BR> 
Frank Maloschytzki

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

<a name="murray"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Problems running your a.out executable--3
</font> </H3>
Date: Thu, 6 May 1999 16:38:27 +0100<BR> 
From: "D.McMurray", <A HREF="mailto:d.mcmurray@dccl.net">
d.mcmurray@dccl.net</A> 
<P>
This sounds to me like a very common mistake with newcomers to this type =
of operating system, especially those with a DOS/Windows background. I =
am assuming you are merely typing:
<PRE>
a.out
</PRE>
at the command prompt, which in DOS would normally execute the program. =
You may find that the mishap is due to the path enviroment variable, =
Which usually has the current directory '.' added by default in DOS but =
not so in Linux, well RedHat in particular, I cannot speak for the other =
distributions.
<P>
When you type 'a.out' the directories in your path variable are =
searched, if the file a.out is not found you will receive an error =
message along the lines of 'command not found' or similar. Try =
specifying the location of the executable, assuming you are in the =
directory containing the file try typing:
<PRE>
./a.out
</PRE>
This specifies that the file can be found in the current directory. If =
this works you can save having to type the './' each time by adding the =
directory '.' to your user profiles path enviroment.
<P>
Hope this helps,
    regards,
<P>
--<BR> 
        David McMurray

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

<a name="jensen"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Linux Partitions on Windows--3
</font> </H3>
Date: Sat, 8 May 1999 17:39:32 +0200 (CEST)<BR> 
From: Torben Dam Jensen, <A HREF="mailto:tdj@hco.kol.ou.dk">
tdj@hco.kol.ou.dk</A> <BR> 
<blockquote> <font color="navy">
I got a question for ya... is there a driver or application I can use to
get at least read access to my Linux partitions from Windows? Thanks,
</font></blockquote> 
<P>
Yep !
<P>
<A HREF="http://www.yipton.demon.co.uk/">http://www.yipton.demon.co.uk/</A> 
<P>
<A HREF="ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ext2">
ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ext2</A> 
<P>
<A HREF="http://www.diskwarez.com/other/ext2tool.zip">
http://www.diskwarez.com/other/ext2tool.zip</A> 
<A HREF="http://www.diskwarez.com/other/ext2tool.txt">
http://www.diskwarez.com/other/ext2tool.txt</A> (for a description)
<P>
Above links should get you going... 
<P>
--<BR>
Torben

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

<a name="killian"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Need help on Internet connection with Linux
</font> </H3>
Date: Sat, 08 May 1999 12:17:37 -0400<BR> 
From: Laurin Killian, <A HREF="mailto:lek@uconect.net">
lek@uconect.net</A> 
<blockquote> <font color="navy">
 First I used kppp (script based)
</font></blockquote> 
You sure you want script based?  I don't think you do.  I went to the
homepage for what appears to be your internet provider
(<A HREF="http://www.asiaaccess.net.th/">http://www.asiaaccess.net.th/</A>), and I see no mention of the logins requiring a
script.  Try "PAP" under kppp - it stands for Password Authentication
Protocol.   Since you're using kppp this should be easy to set up.
<P>
Might as well go all the way since I'm trying to help:
When you create a new account under kppp, all you should need to fill in
is:
<PRE>
(Dial Tab):
	Connection Name and Phone Number
	Authentication:		 PAP!
(DNS Tab):
	Primary and secondary DNS #'s from ISP.
</PRE>
It is advisable to backup/delete ppp.options (as you originally did),
since kppp generates its own options (but may get confused if you added
conflicting options in that file).
<P>
It looks like AsiaAccess does have an option for a script, but
using PAP is easier and supposedly faster
<P> 
Let me know if this works.
<P>
--<BR> 
Laurin

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

<a name="michal"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: Linux Gazette Format--4
</font> </H3>
Date: Sun, 9 May 1999 13:57:00 -0600 (MDT)<BR> 
From: Michal Jaegermann, <A HREF="mailto:michal@ellpspace.math.ualberta.ca">
michal@ellpspace.math.ualberta.ca</A> 
<P>
this is a comment to a complaint in Mail Bag, LG#41, from
jcclemen@SHERWIN.RMC.com that LG is not available in a format accessible
to Windows user and your response to that.
<P>
Even under 'doze there are tools available which handle .tar.gz
files.  WinZip, for example, has even pointy-clicky interface
and accepts many different formats beyond zip; tar.gz is one
of these.
<P>
  --<BR> 
  Michal

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

<a name="brown1"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Network boot disk for i386 without hd 
</font> </H3>
Date: Wed, 12 May 1999 17:41:31 +0200<BR> 
From: BROWN Nick, <A HREF="mailto:Nick.BROWN@coe.int">
Nick.BROWN@coe.int</A> 
<P>
Several distributions exist for floppy-only machines.  Check out mulinux or
tomsrtbt (<A HREF="http://www.toms.net/rb/">http://www.toms.net/rb/</A>). 
<P>
--<BR> 
Nick

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

<a name="brown2"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Subject: Linux partitions from Windows--4
</font> </H3>
Date: Wed, 12 May 1999 17:43:12 +0200<BR> 
From: BROWN Nick, <A HREF="mailto:Nick.BROWN@coe.int">
Nick.BROWN@coe.int</A> 
<P>
Check out e2fs at <A HREF="http://uranus.it.swin.edu.au/~jn/linux/">
http://uranus.it.swin.edu.au/~jn/linux/</A> 
<P>
--<BR> 
Nick

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

<a name="hadess"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Linux partitions from Windows--6
</font> </H3>
Date: Fri, 14 May 1999 14:27:36 +0200<BR> 
From: Hadess, <A HREF="mailto:hadess@infonie.fr">
hadess@infonie.fr</A> 
<P>
Try-out Fsdext2 that you can grab at http://www.yipton.demon.co.uk/
It's only a read-only driver, but would you want to break your linux drive, hum ?
Ciao
--<BR> 
Hadess

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

<a name="hadess"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
FTP access methods...
</font> </H3>
Date: Fri, 14 May 1999 14:34:36 +0200<BR> 
From: Hadess, <A HREF="mailto:hadess@infonie.fr">
hadess@infonie.fr</A> 
<P>
If you want to have Unix-like access on a remote machine, you'd better use NFS. It's
not possible to mount FTP shares (if it's, mail-me =).
<P>
Your Windows apps were only hiding you the whole FTP thingy. They did the same thing
KFM does: show folders _as if_ they were local, no more.
<P>
NFS is in stock distro now and 2.2.x NFS performances are rather good, but worse than
FTP of course. Compile a new kernel for your rescue disk w/ NFS included.
Ciao
<P>
--<BR> 
Hadess

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

<a name="baker"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
a.out--4
</font> </H3>
Date: Fri, 14 May 1999 14:50:33 -0400<BR>
From: Help Desk, <A HREF="mailto:help-desk@utc.edu">help-desk@utc.edu</A> 
<P>
>Is your current directory in your PATH?  If not try ./a.out to execute.
You can get a more meaningful name w/ <tt>gcc -o myprogram myprogram.c</tt>. This
gives the executable the name myprogram.  To set the path edit your
bash_profile and add '.' w/o the quotes to the path statement.  Similiarly, for
other shells.
<P>
--<BR> 
Charles Baker

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

<a name="greene"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: Linux Gazette Format--6
</font> </H3>
Date: Sun, 16 May 1999 04:30:55 +0200<BR> 
From: "Anthony E. Greene", <A HREF="mailto:agreene@pobox.com">
agreene@pobox.com</A> 
<P>
In Linux Gazette #41, you wrote:
<blockquote> <font color="navy">
Many of us have and use Linux, but are still bound by the need to 
standardize in the corporate world to the Windows environment. As a Linux
newbie, I still do not have a high speed modem bought and installed on 
my Linux box at home so have no way to get the tar, etc formats, and, of
course, many of us have a higher speed lines at work. Is there a way to 
download the file in a format that can be unzipped, etc. on a Windows
workstation then print out? Also, a format easily read by Windows machines 
would make publicizing the Linux system possible to others now
using Windows. For example, our local PCC users club(Coastal Areas PC 
Users Group, www.caug-pc.org http://www.caug-pc.org) has a web
site. I guess what I'm saying, is if we only publish Linux documents in 
formats that Linux users and/or Linux gurus can use, how do we grow the
user base? 
</font></blockquote> 
There are many native Win95/98 freeware and shareware compression utilities 
listed at Winfiles:
<P>
<A HREF="http://www.winfiles.com/">http://www.winfiles.com/</A> 
<P>
--<BR> 
Anthony

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

<a name="ruang"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
The PPP problem, followup.
</font> </H3>
Date: Sun, 16 May 1999 10:19:15 +0700<BR> 
From: Ruangvith Tantibhaedhyangkul, <A HREF="mailto:ruangvith@linuxfan.com">
ruangvith@linuxfan.com</A> 
<P>
To all generous "Linuxians",
<P>
I've solved my problem about Internet connection with Linux, as I called
for help in <I>Linux Gazette</I>.  After that, tens of suggestions have come
from almost all parts of the world.  I've tried almost all as well.  One
of these sent me to the right solution.  It was from document "How to
Hook up PPP in Linux" by W.G. Unruh, recommended to me by Jerry Boyd. 
Thanks for all your kindness.
<P>
The best of this is not the solution itself, but the way it comes, such
generosity which has been bringing about this wonderful OS.  It's a true
Linux way!
<P> 
--<BR> 
Ruangvith 

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

<a name="berkley"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: ANSWER: Word to PostScript 
</font> </H3>
Date: Sun, 16 May 1999 10:27:23 -0700<BR> 
From: Mike Berkley, <A HREF="mailto:Mike.Berkley@ec.gc.ca">Mike.Berkley@ec.gc.ca</A> 
<P>
<blockquote> <font color="navy">
From: "Asle Aursand", asle@sentinel.no <BR> 
It is possible to print to file. The resulting *.prn file is
really a Postscript file, at least if you are using a postscript
printer. Anyway, this *.prn file you can import into Ghostview.
</font></blockquote> 
<P>
I read your tip, Asle, and there is one problem with it.  Some
Microsoft printer drivers do not yield legal Postscript documents when
printing to a file.
<P>
I have experienced the following two misfeatures:
<P>
    1. HP Postscript drivers add a single line of HP printer codes to
       the top of the file, to force the printer to use Postscript
       mode.  Since the first line of the file no longer begins with
       %!PS, Ghostscript and non-HP printers will give an error and
       refuse to display the file.  You have to hand edit the file to 
       get real Postscript.
<P>
    2. Some NT print drivers mix up a few of the %Page comments, so
       that Ghostview cannot digest the file.  Ghostscript can indeed
       display the Postscript, but Ghostview cannot be used.
<P>
--<BR> 
Mike Berkley

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

<a name="walsh"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Uninstalling Software
</font> </H3>
Date: Tue, 18 May 1999 17:54:01 +0000<BR> 
From: Tom Walsh, <A HREF="mailto:tom@mytoys.com">tom@mytoys.com</A> 
<P>
You can uninstall a binary distribution of software that was unpacked
from a tarball by using: "tar ztf some-name.tgz | xargs -ikillit echo '
rm -f killit' | /bin/sh". Try the command without using the final pipe
into the shell to see what the resulting list of commands will be to the
shell. BTW, I use this technique a lot to reduce the tedium of
repetitious operations on files/directories.
<P>
--<BR> 
Tom

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

<a name="powell"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
HD-less
</font> </H3>
Date: Wed, 19 May 1999 22:38:45 -0500<BR> 
From: "Charles W. Powell MD", <A HREF="mailto:cwpowell@kuhub.cc.ukans.edu">
cwpowell@kuhub.cc.ukans.edu</A> 
<P>
Slackware (and other distributions, I suppose) has a "rescue disk" that
becomes the "root disk" of the boot-root floppy disk pair.  If one uses
the "boot" floppy called 'net.i' and the "root" disk called 'rescue.gz'
one finds a highly funtional system at hand.  Using this pair I recently
initialized the network card (an Intel EtherExpress Pro) when the
standard kernel failed at the task.  Using the 'ifconfig' and 'route'
commands I put the machine on my network in minutes.
<P>
Just about any site that handles various distributions will have this
disk set available.  Create the floppies using:
<PRE>
	dd if=/path/to/boot/or/root/image of=/dev/fd0
</PRE>
under Linux, or with 'rawrite.exe' under DOS.
<P>
Network initialization is accomplished with the following commands:
<PRE>
	ifconfig eth0 192.168.x.y
	route add -net 192.168.x.0
</PRE>
or with appropriate addresses for your network. I hope this helps.
<P>
--<BR> 
Charles

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

<a name="wood"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
3COM cards
</font> </H3>
Date: Mon, 24 May 1999 14:25:33 +0100<BR> 
From: Wood Alan, <A
HREF="mailtp:WOOD_A@admiral.co.uk">WOOD_A@admiral.co.uk</A> 
<blockquote> <font color="navy">
I've installed Linux Red Hat 5.2 on my friend's computer, and now for some
extremely odd reason the Red Hat machine and the NT Server 4.0 that's on
his 
other machine can't see each other over the network. At all. They don't
even 
respond to each other's ARP requests. 
The link is alive (judging from the lights on his switching hub), and the
machines 
can see each other fine when he runs Windows 95 on the machine where I've 
installed Red Hat. TCP/IP is installed and configured correctly on both
machines. 
The Red Hat machine has a 10 Mbps 3COM card, the NT machine a 100 Mbps 
3COM, and the lights on the hub say that it's using those speeds on the
interfaces 
that the machines are on, regardless of whether the one machine is running
Linux or Windows 95. 
What on Earth could be going on here? 
</font></blockquote> 
<P>
 I had a similar problem with the kernel as supplied with RH5.2, even when
recompiled. I tracked it down to not being able to properly determine the
IRQ
that was being used by my 3c509 in PnP mode. I just forced the card to use a
<P>
fixed IRQ, and passed the module the correct IRQ, and all came back to me. I
now can boot the machine into either Linux or W95, and networking works
fine.
I keep meaning to try it with the 2.2.7 kernel to see if it can determine
the correct
IRQ, but have not gotten around to it as it works now.
<P>
--<BR> 
Alan Wood

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

<a name="crane"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: question for the board
</font> </H3>
Date: Tue, 11 May 1999 11:05:13 +0100<BR> 
From: Stephen Crane, <A HREF="mailto:scrane@flexicom.com">
scrane@flexicom.com</A> 
<blockquote> <font color="navy">
I am confused about what I will need to install Red 
Hat 5.2 on my new dell system last attempt met me 
with a command line only --- xfree 3.3.3.1+ was 
needed for my video card TNT chipset however I was 
looking for the files - and I am hoping for RPMS 
out there for me to do it the easy way.
</font></blockquote> 
<P>
XFree86-3.3.3.1 rpms are in the usual place, i.e.,
updates.redhat.com or, my favourite mirror, Sunsite:
<P>
<A HREF="http://sunsite.doc.ic.ac.uk/packages/Linux/redhat-updates/5.2/i386/">
http://sunsite.doc.ic.ac.uk/packages/Linux/redhat-updates/5.2/i386/</A> 
<P>
The best index for, well almost everything, is
rpmfind.net, e.g.:
<P>
<A HREF="http://rpmfind.net/linux/RPM/redhat/5.2/">
http://rpmfind.net/linux/RPM/redhat/5.2/</A> 
<P>
Cheers,
<P> 
--<BR> 
Steve

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

<a name="radovan"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: Network boot disk for i386 without hd
</font> </H3>
Date: Thu, 27 May 1999 15:38:42 +0200<BR> 
From: Radovan Garabik, <A HREF="mailto:garabik@melkor.dnp.fmph.uniba.sk">
garabik@melkor.dnp.fmph.uniba.sk</A> 
<blockquote> <font color="navy">
I have a Linux machine in my office network and several i386 that has no hd,
but has 1.44 floppy. They also have ne2000 network card, without no proms.
Is there a way to make a boot disk that allow my i386 to boot and login into
my Linux machine??? I searched the web but found only solutions that reffer
to using network cards with eproms/proms. Thanks.
</font></blockquote> 
How much memory do the i386's have?<BR> 
You can check out one of one-floppy mini distributions, or set up nfs-root
linux on them - it requires loadlin.exe and kernel with compiled nfsroot
support, and (depending on how much memory you have) swapping over nfs.
It is not that difficult to be done, but not for a beginner.
Alternatively you can boot into DOS and use good old NCSA telnet to connect
to your linux machine.
<P>
--<BR> 
Radovan

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

<a name="radovan2"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: FTP access methods...
</font> </H3>
Date: Thu, 27 May 1999 15:48:22 +0200<BR> 
From: Radovan Garabik, <A HREF="mailto:garabik@melkor.dnp.fmph.uniba.sk">
garabik@melkor.dnp.fmph.uniba.sk</A> 
<blockquote> <font color="navy">
Ok tough guys, I have written down more one-liners and cool tricks from the 
Linux Gazette pages than from anywhere else.
And I finally have a good question: In both Window$ and O$/2 I had apps that
would treat ftp sites as folders (directories). It worked real well with
keeping data in sync off-site. Is there a tool that will allow an FTP site
to be mounted under Linux? It seems fairly useful to me, but freshmeat and
other resources turned up nada.
</font></blockquote> 
Linux VFS is not very friendly to the idea of external filesystems...
However, check out http://atrey.karlin.mff.cuni.cz/~pavel/podfuk/podfuk.html
I have not tried it yet, but I am going in a short time.
<blockquote> <font color="navy">
I am working on a cool 1 disk Linux distro that has pilot backup features
and other remote file access ideas that could really benefit from this.
</font></blockquote> 
<P>
probably NFS is the way to go....
<P>
--<BR> 
Radovan

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

<a name="jay"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
re: soundpro
</font> </H3>
Date: Fri, 28 May 1999 01:10:14 +0800 (SGT)<BR> 
From: "Jayasuthan ......", <A HREF="mailto:suthan@eplx01.fairchildsemi.com">
suthan@eplx01.fairchildsemi.com</A> 
<P>
Please check for linux supported soundcards.. second the might compatible
with other cards. Try compile soundcard driver as modules. And learn to
use isapnp and conf.modules which might help
<P>
--<BR> 
Jayasuthan

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

<a name="saoirse"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: Question about 2 GB max? 
</font> </H3>
Date: Fri, 28 May 1999 15:39:40 -0400 (EDT)<BR> 
From: Deirdre Saoirse, <A HREF="mailto:deirdre@deirdre.net">
deirdre@deirdre.net</A> 
<P>
<blockquote> <font color="navy">
On Thu, 27 May 1999, Jim Dennis wrote:<BR> 
 	Actually 2Gb is the maximum FILESIZE under 32-bit versions
 	of Linux.  (Alpha, and presumably UltraSPARC ports are not
 	hampered by this).
 	Linux ext2 filesystems can be much larger than 2Gb ---
</font></blockquote> 
That's fine as far as the general theory goes, however...:
See: <BR> 
<A HREF="http://www.dartmouth.edu/cgi-bin/cgiwrap/jonh/lppc/faq.pl?_highlightWords=partition%20size&file=494">
"http://www.dartmouth.edu/cgi-bin/cgiwrap/jonh/lppc/faq.pl?_highlightWords=partition%20size&file=494</A> 
<P>
Traditionally, there has been a 2GB partition size limit (not just a FILE
size limit) on PowerPC Linux partitions. I don't know if that will
continue to be true with newer versions but it is true of LinuxPPC up to
revision 4 and DR3 of MkLinux. I haven't checked if there's a
YellowDogLinux specific answer however.
<P>
pre-5 of LinuxPPC reportedly handles larger partitions but I haven't found
specifics for later versions (does anyone want to update the
FAQ-o-Matic?).
<P>
--<BR> 
Deirdre

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

<a name="rini"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
Re: Question about 2 GB max? 
</font> </H3>
Date: Fri, 28 May 1999 19:13:24 -0400 (EDT)<BR> 
From: Tom Rini, <A HREF="mailto:tmrini@ntplx.net">tmrini@ntplx.net</A> 
<P>
<blockquote> <font color="navy">
On Fri, 28 May 1999, Deirdre Saoirse wrote:<BR> 
That's fine as far as the general theory goes, however...:

See: http://www.dartmouth.edu/cgi-bin/cgiwrap/jonh/lppc/faq.pl?_highlightWords=p artition%20size&file=494
</font></blockquote> 
<P>
This is however, WRONG.  wrong wrong wrong wrong.  Well, almost. :)  If
you use a newer e2fsprogs (ie compile 1.14 or whatever is current) you're
fine.  I'm not even sure if R4/DR3 really does have that problem (been a
while, and I forget just when that problem was fixed).  R5/YDL/anything
w/ current e2fsprogs is fine.
<P>
--<BR> 
Tom



<P> <hr> <P> 
<!--================================================================-->
<center>Published in <I>Linux Gazette</I> Issue 42, June 1999</center>
<P> <hr> <P> 
<!--================================================================-->

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

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

<center>
<H1><font color="maroon">Mark's autofs tutorial revisited</font></H1>
<H4><a href="mailto:mark@tcu-inc.com">by Mark Nielsen</a></H4> 
</center>
<P> <HR> <P>  

<h1>  Mark's autofs tutorial <u><i>revisited</i></u></h1>
<br><i> <a href="http://www.tcu-inc.com">at The Computer Underground</a></i>
</center>
<p>
If this document changes, it will be available here: 
<a href="http://www.tcu-inc.com/mark/articles/Autofs2.html">
Mark's autofs tutorial revisited</a>.
 Also, an earlier version of this tutorial is at
<a href="http://www.ssc.com/lg/issue24/nielsen.html">
January 1998 Issue #24.</a>

<P> <hr><P> 

<ol>
<li><a href="#Intro"> Some notes.</a>
<li><a href="#Install"> Installing Autofs</a> 
<li><a href="#Explain"> Explaining what we did.</a> 
<li> <a href="#Install2"> Installing for new users.</a>
<li><a href="#zip"> Installing a zip drive</a> and other resources.
</ol>

<hr>
<a name="Intro"></a>
<h1> Some notes.</h1>
<p>
What is autofs? Autofs lets you use your floppy and cdrom drives a little 
easier. In the MS Windoze world, when you need to access your floppy
drive, you just goto drive "a:" and it is there. To replicate this feature
in the Linux or UNIX world, you use an automounter that attaches a device 
(like a floppy or cdrom drive) to a directory on the computer.  
<p>
If you don't have an automounter, you must manually attach a device to 
a directory using the commands "mount" and "umount". An example of attaching
your floppy drive to the directory "/mnt/floppy" would be
<pre>
mount /dev/fGd0 /mnt/floppy
</pre>
<p>
If you need to explicitly define how the floppy drive was formatted, you
can
use these commands
<pre>
mount -t msdos /dev/fd0 /mnt/floppy  ## For msdos formatted disks 
mount -t ext2 /dev/fd0 /mnt/floppy  ## For "linux" formatted disks
</pre>
Also, you must make sure the directory "/mnt/floppy" exists. A command to
make the directory would be, 
<pre>
mkdir -p /mnt/floppy
</pre> 
 
And this command unmounts or frees up the floppy drive from being used.
<pre>    
umount /dev/fd0 
</pre>    

Also, something one should be aware of, KDE and GNOME, which are desktop
environments for X, usually have their own way of using floppy drives. 
The problem is, if you connect to your computer through telnet or ssh, these
features are not available to you. That isn't nice. Using Autofs, any 
program or user entering a directory that is assigned to a device (like
a floppy drive) causes the device to be attached to that directory. This
happens at the system level rather than in the GUI level.
<p>
Also, 
Autofs can be used to grab an nfs site (and other things) and attach it 
to a directory. It can do more than just automouting your floppy and
cdrom drives. 
<p>
If you need some more info, try these urls or commands on your computer,
<ol>
<li>man automount
<li>man autofs
<li>man /usr/man/man5/auto.master.5 
<li>more /usr/doc/autofs-3.1.3/README
<li><a href="http://metalab.unc.edu/LDP/HOWTO/mini/Automount.html">
Automount howto</a>
</ol>

NOTE: You also should consider any security hazards about using autofs.  
  
<hr>
<a name="Install"></a>
<h1> Installing Autofs.</h1>

How do you install Autofs? Well, although I hate to demonstrate things for
only one particular version of Linux (since I am heavily growing fond of
Debian), this demo will be made for RedHat 6.0.   

<p>
I assume "/dev/cdrom" is your cdrom drive and "dev/fd0" is your
floppy drive. I am also assuming you will backup your "/etc/auto.master"
file. 
Use this script to create the following files and restart autofs.
 Login as "root", goto 
your home directory, copy whatever is between
the next two lines to a file called "CreateAutofs.script" and 
then execute 
the script with the command 
<pre> 
source CreateAutofs.script
</pre>

----------------------------------------------------------------------
<pre>
mkdir -p /root/Drives
cd /root/Drives

     ### Let us make sure the two directories exist, ignore errors
mkdir -p /mnt/Drives/floppy
mkdir /mnt/Drives/cdrom
     ### Let us backup the auto files in case they haven't
mv -f /etc/auto.master /etc/auto.master_old
mv -f /etc/auto.floppy /etc/auto.floppy_old
mv -f /etc/auto.cdrom /etc/auto.cdrom_old
     ### Create the files for autofs
echo "/mnt/Drives/cdrom /etc/auto.cdrom --timeout 10" > /etc/auto.master
echo "/mnt/Drives/floppy /etc/auto.floppy --timeout 3" >> /etc/auto.master
echo "floppy   -fstype=auto         :/dev/fd0" > /etc/auto.floppy
echo "cdrom    -fstype=iso9660,ro   :/dev/cdrom" > /etc/auto.cdrom
     ### Create the links to the floppy drive and cdrom drive
ln -s /mnt/Drives/floppy/floppy a:
ln -s /mnt/Drives/floppy/floppy floppy
ln -s /mnt/Drives/cdrom/cdrom d:
ln -s /mnt/Drives/cdrom/cdrom cdrom 
     ### Lets retstart autofs
/etc/rc.d/init.d/autofs stop
/etc/rc.d/init.d/autofs start
     ### If it didn't work, you might have to reboot 
cd /root/Drives
</pre>
----------------------------------------------------------------------

<hr>
<a name="Explain"></a>
<h1> Explaining what we did.</h1>
<p>

Now put a floppy disk formatted for MSDOS and a cdrom in and execute the
commands 
<pre>
ls /root/Drives/a:
ls /root/Drives/d:
</pre>
to see if there is anything on them. Hopefully you don't get any error
messages. 

<p>
Personally, my /etc/auto.floppy file looks like 
<pre>
floppy          -fstype=auto,defaults,user,suid :/dev/fd0
</pre>
and my /etc/auto.cdrom file look like this
<pre>
cdrom           -fstype=iso9660,user,suid       :/dev/cdrom
</pre>

The reason why I gave conservative values in the script was the fact the
my values might be security hazards. But since I am the only person
using my computer, I wanted to make sure my personal account had full
access to the floppy and cdrom drives. Previously "-fstype=auto" wasn't
working quite right with msdos disks, but when I increased the timeout to
3 seconds, it seemed to be working fine. 
I made the timeout value for the cdrom
10 seconds because it wasn't working really well at 1 second, and I
figured it was because the drive didn't have enough time to "warm up"
before it was being shut down. You might want to test what the timeout
value for your cdrom drive should be. 

<p>
Your "/etc/rc.d/init.d/autofs" script first looks at "/etc/auto.master".
That file usually has three things on each line. It has
the directory which all mounts will be located at. Then next to that value
is the filename which contains the configuration(s) for what devices you
want mounted. We will call these filenames the "supplemental" files. Next
to that value is the timeout which you want to
occur after so many seconds of inactivity. The timeout will free or umount
all devices specified in the supplemental files after so many seconds of
inactivity. 
<p>
Now, the supplemental files can have more than on entry, but for my
purposes I don't do that. Read below for the explanation. The supplemental
files can be named anything you want them to be named. They also have
three values for each entry. The first value is the "pseudo" directory.
I
will explain this later. The second value contains the
mount options. The third value is the device (like "/dev/fd0" which
is the floppy drive) which the "pseudo" directory
is connected to.
<p>
The "pseudo" directory is contained in the directory which is defined
in "/etc/auto.master". When people try to access this "pseudo"
directory,
they will be rerouted to the device you specified. For example, the above
script will generate a link called "a:" which if you list with the
command "ls a:" will give you a list of files in the floppy drive. Or, a
similar command would be "ls /mnt/Drives/floppy/floppy". But if you do the
command "ls /mnt/Drives/floppy", you don't see anything even 
though the directory
"/mnt/Drives/floppy/floppy" should exist. That is because 
"/mnt/Drives/floppy/floppy"
doesn't exist as a file or directory, but somehow the system knows that
if you specifically ask for "/mnt/Drives/floppy/floppy", it will reroute you
to the floppy drive. 
<p>
Now as to the reason why I didn't combine the floppy drive and cdrom drive
into the same supplementary file. Each definition in the
"/etc/auto.master" file will have its own "automount" program running for
it. If you have several devices running on the same automount program and
one of them fails, it could force the others not to work. That is why
I want every device running on its own automount program which means
there is one device per supplementary file per entry in the
"/etc/auto.master" file.   
<p>
Also, another thing to note is, I use links to the "pseudo" directories.  
Non computer geeks will get confused if they try to manually use the
"pseudo" directories. Basically, the "pseudo" directories are
directories
that don't exist until you try to use them. I like to use links to the
"pseudo" directories so that the user sees and uses the link, 
and thus is happy
because they are just always "there", which is unlike the
"pseudo" directories which come and go as you need them.

<hr>
<a name="Install2"></a>
<h1> Installing for new users.</h1>
<p>
How do you install this for new users?
First, you must understand, the mount options you put into the autofs 
configuration files heavily determine how much a user can use the floppy
or cdrom drives or other types of devices. There are also security hazards
using autofs one should be aware of. 

 Do the following,
<hr>
<pre>
mkdir -p /etc/skel/Drives
ln -s /mnt/Drives/floppy/floppy  /etc/skel/Drives/floppy  ## link to floppy
ln -s /mnt/Drives/floppy/floppy  /etc/skel/Drives/a: 
ln -s /mnt/Drives/cdrom/cdrom    /etc/skel/Drives/cdrom    ## link to cdrom
ln -s /mnt/Drives/cdrom/cdrom    /etc/skel/Drives/d: 
</pre>
<hr> 
<p>
How do you install it for a user called "frank"?
<p> Well assuming that Frank's home directory is /home/frank,

<hr>
<pre>
mkdir -p /home/frank/Drives   ## make a path for frank
chown frank /home/frank/Drives   ## Let frank own the directory

ln -s /mnt/Drives/floppy/floppy /home/frank/Drives/a:   ## link to floppy
ln -s /mnt/Drives/floppy/floppy /home/frank/Drives/floppy
ln -s /mnt/Drives/cdrom/cdrom /home/frank/Drives/d:   ## link to cdrom
ln -s /mnt/Drives/cdrom/cdrom /home/frank/Drives/cdrom

chown frank /home/frank/Drives/*  ### Let frank own the contents of directory
</pre>
<hr>

A truly risky command to install for a user after installing it for new 
users would be

<hr>
<pre>
     ### DO NOT DO THIS UNLESS YOU LIKE RISK
mkdir -p /home/frank/Drives

if [ -d /etc/skel/Drives ]; then
    tar -C /etc/skel -c Drives | tar -C /home/frank -xv Drives
    chown -R frank /home/frank/Drives 
   else
     echo "Dude, like try to make a /etc/skel/Drives directory first."
fi
</pre>


<hr>
<a name="zip"></a>
<h1> Installing a zip drive or other resources.</h1>
Okay, now for some more funky stuff. I am going to use one more 
configuration file to both do the zip drive and an nfs site. 
First, I am assuming the zip drive is the slave on the primary
IDE controller of your computer. Actually, I tried to connect to this
site through nfs, and it didn't work. I tried it to one of my local 
computers and it worked fine. 
<p>

<hr>

<pre>
echo "/mnt/Drives/zip /etc/auto.zip --timeout 10 --timeout 5" &gt;&gt; /etc/auto.master
echo "kernel   -ro,soft,intr   ftp.kernel.org:/pub/linux" &gt; /etc/auto.zip
echo "zip1   -fstype=auto,rw :/dev/hdb1 " &gt;&gt; /etc/auto.zip 
echo "zip2   -fstype=auto,rw :/dev/hdb2 " &gt;&gt; /etc/auto.zip  
echo "zip3   -fstype=auto,rw :/dev/hdb3 " &gt;&gt; /etc/auto.zip
echo "zip4   -fstype=auto,rw :/dev/hdb4 " &gt;&gt; /etc/auto.zip

ln -s /mnt/Drives/zip/kernel  /etc/skel/Drives/kernel 
ln -s /mnt/Drives/zip/zip4    /etc/skel/Drives/zip    ## link to cdrom

</pre>

<hr> 
<i>
Mark works for <a href="http://www.tcu-inc.com">The Computer Underground</a>
as JALG. In his spare time, he tries to do volunteer stuff. Mark takes an
active role in 
<a href="http://bopper.wcbe.org/~COLUG/">COLUG
</a>
 located in Columbus, Ohio.
</i>

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

<!--===================================================================-->

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

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

<center>
<H1><font color="maroon">Caldera 2.2 Quick Review</font></H1>
<H4>By <a href="mailto:slambo42@my-dejanews.com">Sean Lamb</a></H4>
</center>
<P> <HR> <P>  

Yesterday I installed the Caldera 2.2 CD that I got at Comdex over my existing RH 5.2 install.  The short review is "cool!"  The longer review follows:
<P>
This distro is really aimed at the newbie.  From the boot floppy, immediately after running LILO, the disk loads a graphical, although text-based, interface while it loads the modules and does some basic hardware probing.  The interface is smart enough to load basic keyboard and mouse drivers for those, like me, who are migrating from MSWindows (it does go through a mouse test page so you can refine your
rodential setup if you need to).  It also autoprobes for the setup files and loads the appropriate modules to access them.  The first thing it does that
requires user-supplied answers is partitioning.  Setup launches a custom version of Partition Magic to create/resize partitions for Linux.  I didn't
make any changes to my partition table, so I just acknowledged through it after determining that it could see all my partitions.
<P>
The next step is the only step of the setup that I didn't like so much; it forced me to reformat the Linux partition.  For a newbie without a lot of data on the drive, this isn't that big of a problem.  But experienced users are likely to have data that they still want/need to keep on those partitions.  There is an Expert mode for setup that you can choose before
partitioning that likely addresses this issue, but I didn't try that.  If I really needed to, I could have canceled setup and backed up my important data at this time and then restarted setup.  For my installation, I allowed it to reformat the drive and setup continued.
<P>
After the partition was formatted and ready to continue, setup asked me what packages I wanted to install.  For my install, there wasn't an expert
option, but there were a few choices here: minimum packages, all recommended packages, or all packages.  I chose all recommended packages for this step. It installs all the core packages and almost everything that a basic user will need to get the machine going.  However, there are a couple of interesting choices that the developers have made for us (this option
installs Apache but not any of the Office suites).  What impressed me here is that as soon as you told it which package option you wanted, it started copying those packages to the disk immediately, while it still prompted for user information.  This setup really shows off the multitasking capabilities of the OS nicely.
<P>
I've probably got the next few options out of order, but while it's copying packages to the hard drive, setup asks for your basic ethernet configuration, assigns a root password and creates user accounts, sets up XFree86 to your hardware and resolution choices (prompts with an extensive list of monitors but allows you to customize the monitor choice; similar
options with the video card, but autoprobe worked for me) and tests the X configuration that you selected.  There are probably some other options in there that I forgot, but you get the idea.
<P>
Once setup has gathered all the information it needs, setup does something that we will probably never see from an MS install: it lets you play tetris while setup finishes copying files.  When it finishes copying files, it turns on the Finish button at the bottom of the screen next to the progress indicator to indicate that it is done.  It doesn't stop your game, but waits patiently until you are done (it also doesn't force you to stop playing when the game ends, if you really want to play another game right now).
<P>
After setup is done, it launches the kernel and packages that are installed on the hard drive and boots into KDE, where it prompts for the username and
password.  At this point it looks much like a WinNT install, except that the widgets are different shapes/sizes, it presents a list of users' accounts on
the machine (login names only).  The login window does give you the option of how you want to login (either directly into KDE or into "failsafe" mode that is just the command shell) as well as a shutdown/reboot button.  I've already found that the reboot button is very handy here, because now I don't have to give out the root password to the rest of the family in case they don't catch LILO in time and really want to boot MSWin.
<P>
On each user's first login to the system, assuming they choose to login to KDE directly (which is the default option), they are presented with the KDE
Desktop Setup Wizard.  This wizard asks the user to setup a theme and asks what handy icons to put on the desktop.  One neat thing that the wizard does is that it gives you the option of placing icons on the desktop for floppy and CD drives that automount the media.  One problem that I found was that as myself, as soon as I setup the color scheme that I wanted, I got logged out.  It took a while to find the Wizard again, but he is setup in the Utilities menu if you want to run it again (this didn't happen when I was root).
<P>
The only problem that I had with setup is that it didn't setup LILO for me.  When I rebooted, it hung with LI.  From all the reading that I did, I knew
that this was a fairly common issue, so finding possible solutions wasn't that difficult (it helped that I had a second machine here that was untouched that had a modem connection).  What I found to help here was to boot from the setup boot disk and type "boot root=/dev/hda4" at the LILO boot prompt (change the root param as appropriate for your system).  This
booted the kernel that I had installed on the hard drive so that I could make the necessary config changes.  I found that I was able to setup LILO
properly by using Lisa and following the prompts (while logged in as root, of course).  The cool thing here is that the setup boot disk can be used as
a sort of rescue disk in case there are problems.
<P>
For me, the next step will be to setup my PNP devices to get my sound, ethernet and modem connections working (yeah, booted in Win95 right now).  I'll probably end up disabling PNP on those cards and setting their configs manually to what Win95 set them up to be, but that's for next weekend.

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1999, Sean Lamb <BR> 
Published in Issue 42 of <i>Linux Gazette</i>, June 1999</H5></center>

<!--===================================================================-->

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

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

<center>
<H1><font color="maroon">From Word Processors to Super Computers<br>
Donald Becker Speaks about Beowulf at NYLUG</font></H1>
<H4>By <a href="mailto:adler@bnl.gov">Stephen Adler</a></H4>
</center>
<P> <HR> <P>  

<br>
<img src="gx/adler.becker/DB20VSmall.jpg" align="left" vspace=10 hspace=10>
<center><font size=+2>
<img src=gx/adler.becker/DB18VSmall.jpg>
<spacer type=vertical size=10>
<img src=gx/adler.becker/IBMLogoSmall.jpg>
<spacer type=vertical size=10>
</center></font>
<br>
<font size=-1>
</font>
<br clear="left">
<P> Editor's note: In the 
<A HREF=http://ssadler.phy.bnl.gov/adler/DB/DonaldBecker.html>
original article</A> on Adler's website, many of the
inline images display a larger copy of themselves when clicked on.  These
larger images are not included in the <EM>Linux Gazette</EM> version, to
keep the total size of the <EM>Gazette</EM> small.
<hr>
<br>
I got an e-mail over the weekend announcing that Donald Becker would
be addressing the NYLUG on May 19th. That's the New York Linux users
group for those of you out west. From out here on Long Island, NYC is
a long way away. But I figured I would rough out the commute into NYC
to catch what Donald had to say about his Beowulf project. Actually,
if you can keep a secret, I'll admit to having fun writing up my
encounters with Internet luminaries like Donald and publishing them on
the Internet. This would give me a chance to do so once again, so the
long commute into NYC didn't seem so bad.
<p>
<table align=left>
<caption align=bottom><font size=-1>
A rainy day in New York City, and I'm hustling around looking for a
parking lot.
</font></caption>
<tr><td>
<img src="gx/adler.becker/DB02Small.jpg" vspace=10 hspace=20>
</table>
Wednesday came flying along, I spent most of the afternoon beating up
on an alpha personal workstation 433au, trying to get Linux installed
on it. Hey, Red Hat 6.0 was out and since they have a generic kernel
which seems to run on all Alpha variants, I figured this should be a
snap. <b>Wrong!</b> For some reason, MILO refuses to boot up on the
machine. I've been trying off and on to get alpha/Linux installed on
this machine since January. It belongs to a professor at Stony Brook
who is a real Linux enthusiast, and started down the path of the Linux
install, and ran into this MILO problem. I gave it a try, a graduate
student from Columbia gave it a try, and we have all failed. The <a
href="http://www.rhic.bnl.gov/html2/tour2.html">Relativistic Heavy Ion
Collider</a> is coming on line soon so we don't have much time to
spend on this box. It has become somewhat like King Author's
sword. Who ever can pull that sword out of the rock, or install Linux
on that machine, will lead a blessed life... Roy, (The professor who
owns the Alpha) has now put up a reward for who ever can get Linux
installed on the damn thing. The reward right now stands at 2 tickets
to see the NY Yanks. (Or Knicks if you are of that persuasion...)
<br clear="left">
<p>
<table align=right>
<caption align=bottom><font size=-1>
Gucci bags and Rolex watches for sale abound. Where are the damn
umbrella sellers!
</font></caption>
<tr><td>
<img src=gx/adler.becker/DB04Small.jpg vspace=10 hspace=20>
</table>
Time flies when you are having trouble getting Linux installed on
something, as it did that Wednesday afternoon. I ended up missing the
4:05pm train into Penn Station and decided to drive in. To my dismay,
it would have taken just as long to wait for the next train, as it
would have to drive in. Rain poured out of the sky as I topped 20MPH
speeds on the Long Island Expressway heading west into Manhattan. I
wanted to get to the meeting in time to be able to meet Donald and the
rest of the NYLUG members. That was just not going to happen. At this
rate, I would be lucky to get to hear him speak at all.
<p>
It's 6:20pm and I'm heading up 3rd Ave in search of a parking lot. The
meeting starts at 6:30pm. Damn, I'm always running just on time. With
little effort, I was able to find a very reasonable parking lot which
charged $10 'till closing. It's usually about $25 for a mid town
parking lot.  I dropped the car off, and dash out in search of the IBM
building where the NYLUG was meeting. Rain is coming down, I'm getting
soaked, and I'm looking all over the place for those street vendors
who always have what you don't need at the time. Fake Rolex watches
were up for sale, as were Gucci bags, but no umbrellas. I could feel
the rain starting to seep onto my scalp as I ran across Madison,
heading north towards 57 St.
<p>
IBM, a while back, started to get a clue about the benefits of Open
Source/Free software and has now donated one of their meeting rooms
for the NYLUG, who meet about once a month. (Rasterman is talking at
the next one.) The IBM building stands very tall on the corner of 57th
and Madison. It boasts some modern work of some sort at its entrance.
One needs to sign in, in order to be let into the building. The
meeting was being held on the 9th floor.
<br clear=right>
<p>
I arrive to the meeting room where NYLUG is gathered. A projector is
setup with Donald's laptop plugged into it. There are about 30 or 40
people present. Jim Gleason, the organizer of the meeting, who works
for VA Research, is there talking with Donald, looking rather
busy. He sees me and introduces me to Donald. I have just drove in
through about 2.5 hours of LIE traffic, dashed across several streets
and avenues under the rain, and my bladder had been screaming at me
since exit 40 on the LIE that it needed to be relieved. I couldn't
concentrate much on what I was saying at the time. I shook hands with
Donald, and muttered something like, "We use lots of computers at
BNL". I don't remember how he responded, I think he didn't say
anything. I then managed to get myself away, find a seat, store my
laptop and look for a good place to take a photo of the room.
<br clear=left>
<p>
<center>
<table>
<caption align=bottom><font size=-1>
A shot of the NYLUG meeting room, courtesy of IBM. By the time Donald's
talk was well underway, there was basically standing room only.
</font></caption>
<tr><td>
<img src=gx/adler.becker/DB12Small.jpg>
</table>
</center>
<p>
Jim Gleason took the mike, and called on people to sit down. He wanted
to get the meeting going on time, (it was getting close to 7pm by
now). I settled down into my seat, booted my laptop, and proceeded to
ignore my aching bladder. I had more important business to take care
at the time.<p>
<p>
<table align=left>
<caption align=bottom><font size=-1>
A solemn moment for Jim Gleason, the VA Research guy who is one of the
NYLUG contacts and organizers. Actually, the shot was taken as he
happened to look down at his notes. The only time he did so during his
introduction. Murphy's law is at work here. Jim is a very energetic
guy who is excited about his work.
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB14Small.jpg vspace=10 hspace=10>
</table>
At this point, I started to take notes, as Donald start talking. Since
my notes are always rather jumbled, it will be easer to me to cover in
broad stokes the topics he talked about instead of trying to give a
word by word reproduction of what he said.
<p>
His introductory slide showed two things. His affiliation with the NASA
Goddard Space Center and a company called Scyld Computing
Corporation. My guess is that he has been given the liberty at NASA to
work with this Scyld startup to help bring the Beowulf into the
private sector. Good for him. At this point, something rather annoying
started to happen. The projector which was hooked up to Donald's
laptop, started to lose sync with it. Donald, who has a bit of
shyness to himself, was having a hard time giving his talk while at
the same time, pressing various auto sync buttons on the projector to
try and get his transparencies back up on the screen. This went on
through his talk. It really didn't matter since he didn't bother to
walk through his slides, rather he just talked from the top of his
head about what he as been doing for that past 7 years.
<p>
Donald's talk went on until 8:20pm. During that time I got the
following out of his talk.
<p>
<table align=right>
<caption align=bottom><font size=-1>
A bad picture of Donald at the beginning of his talk. It looks like my
camera is getting out of sync with the fabric of space-time. (One of these
day's I'm going to upgrade my analog camera to a digital one. But with
the increase in property taxes out on Long Island and the small salary
a "junior" scientist makes at BNL, it will be some time be for I do so.)
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB15Small.jpg vspace=10 hspace=20>
</table>
He introduced the concept of a Beowulf system. Basically, it is a
cluster of many, off-the-shelf PC's, running Linux, and tied together
through a high speed, low latency networking infrastructure. The
network topology of this system tends to be a flat one which makes it
easier on the application side. Fast Ethernet, tied through a fast
Ethernet switch is the current network hardware of choice for a
Beowulf cluster. ATM is too expensive at this point and I believe he
mentioned that the latency tends to be greater than with fast
Ethernet. (But don't hold me to that statement.) He did mention that
the ATM "overhead" was way too large. After the talk was
over, one of the questions from someone in the audience revealed that
Beowulf is basically a library of software which one uses to help
implement a distributed application. This includes facilities such as
providing a global PID, methods of remote execution of processes, much
like rsh, etc. There was some mention of mpi/vpm (and mpiII) which are
parallel processing abstractions sitting above the Beowulf
distributed processing layer. One of the tasks on my list is to
clearly learn about this software, but unfortunately, Donald's talk was
not a HOWTO on using Beowulf to parallelize your application. It was
more like, "I've worked on Beowulf, and here are some interesting
things about it...". So, the specifics of Beowulf still elude me.
<p>
Donald talked a bit about the open source nature of the project. In
short, being an open source project was crucial in making it as
reliable as it is. This also holds for the Linux kernel itself. While
working on building Beowulf clusters, Donald ran across some problems
with the Linux kernel which he had to fix. Things like only being able
to mount 64 file systems got in his way. Having hundreds of PC's
talking to each other on the network stressed the networking data
structures in the Kernel which he also had to deal with. Being that he
had the source code to the kernel he was able to make the Beowulf
project work. He also took in contributions from outsiders. If the
contributed software was of relevance and worked well, he would
include it.
<p>
<table align=left>
<caption align=bottom><font size=-1>
The side of the IBM building, as I face Madison Ave. Thank you IBM for
letting the NYLUG use your meeting rooms so that we can hear Donald
speak. Although it would be nice if you guys got a Linux friendly
projector. Its OK if the projector is not Y2K certified. We'll take it
any way.
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB09small.jpg vspace=10 hspace=20>
</table>
Donald spoke a bit about the history of his project. His first cluster
was made up of 100MHz DX4Somethings (DX486?). (Due to the projector not
being able to sync properly to Donald's PC, I could only read part of
the slides. You have to give credit to the IBM folk though. The
projector was certified as being Y2K compliant. It had a rather
official looking sticker on its side saying so...) In 1996, a 2.2
GF/sec cluster was built, followed by a 10GF/sec system in 1997. This
was a threshold crossing system. NASA considered 10GF/sec to be the
minimum computing power for a system to be called a "super
computer". In 1998, a 40+GF/sec system was put together, (at Los
Alamos National Laboratory I believe.) What made all this possible was
the fact that price per performance was gaining rather rapidly for PC
based machines. The threshold was crossed between 1996/1997 making the
Beowulf type system competitive with the big Cray type systems. The
Beowulf project crossed another watershed when a Beowulf system won
the Gordon Bell prize for $/performance. (I believe this was around
1997.) The NASA Goddard Space Center at the time had a "Super
Computer" in its basement, called the T3D I believe. It was a 10GF/sec
machine. Donald was able, through open source software, a good network
and cheap PC's, in essence beat it.
<p>
Donald spent some time showing pictures of current Beowulf clusters in
operation. Some were rack mounted systems, some were bunches of PC's
on a shelfs. The PC's on shelfs Beowulf system is called LOBOS which
stands for Lots of Boxes on Shelves. One of the systems built in the 19
inch racks was called the hive due to the noise the large cabinet
fans made.
<p>
<table align=right>
<caption align=bottom><font size=-1>
The art work standing at the entrance to the IBM
building. Unfortunately, I can't tell the difference between this and a
bunch of steel beams welded together.
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB08Small.jpg vspace=10 hspace=20>
</table>
Some applications which are currently using Beowulf systems are
climate modeling, ray tracing and galaxy evolution modeling. He was
particularly intrigued with the galaxy evolution modeling
application. In order to model a galaxy, you need to have every star
in the galaxy, interact with every other star in the galaxy. Gravity's
force is felt at infinite distances. One would think that this kind of
find grained application would not work well on a network distributed
system. But the guys at Los Alamos, came up with a tree structured
algorithm which mapped very well onto a network topology, thus making
a Beowulf architecture work for this type of computing problem.  NASA
uses the Beowulfs for image processing of satellite and Hubble
images. The Hubble images had to be refocused because of the "over
site" of one of the mirror polishers. One application of satellite
image processing is to splice together all the satellite photos taken
from various angles and positions of one area on earth, to form one
large coherent image.
<p>
Some of the specifics about Beowulf clusters he mentioned were the
following. Usually one of the nodes is set aside and dedicated to
managing the rest of the nodes in the cluster. It's the job
distributor. Some very simple techniques are used to keep track of
which systems have not crashed. A multicast coming from each machine
is received by the controlling node or it pings the rest of the
nodes in the cluster. If one of the nodes goes down, the controller
quits submitting jobs to it. There are some mechanisms within the
Beowulf software for process migration from one node to another. He
also talked about how he uses RPM extensively to maintain the software
on the nodes. He referred to RPM as a "key technology" enabling the
easy maintainability, software wise, of large clusters of PC's. A
question came up asking about how he maintains his Beowulf code. He
didn't answer the question very well. He didn't really want to answer
the question since he did not want to endorse any kind of source code
management software like rcs or cvs. But he did stress that RPM was
key in order to be able to distribute software to may PC's.
<p>
<table align=left>
<caption align=bottom><font size=-1>
Who's that imposter! (I've gotta' upgrade that damn camera...)
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB10Small.jpg vspace=10 hspace=20>
</table>
He also talked about the stability of the machines he works with. Most
of his systems had been up for over a 100 days. I believe some of the
Beowulf clusters had been up for over 200 days. What is important is
not that a single machine has been up that long, but that large
numbers of machines have been up and running for that amount of
time. Because of the long running nature of a Beowulf cluster, one
tends not to use the latest and greatest software release of
anything. He was using a 2.0.3x version of Linux on his machines. He
also pointed out a critical feature of having the source code
available for the kernel and all the software which makes up a Beowulf
system. If there is a bug found, then one can fix it by modifying a
few lines of code. That one module or program gets recompiled and you're
off and running again, with a minimum amount of administrative
work. If one works with closed source systems, it is often the case
that when a similar small bug is found and fixed, a whole cascade of
software upgrades result. This is due to the fact that the bug fix
will come in the form of a new software release. This release then
upgrades your shared libraries. The shared library upgrades then force
you to upgrade all your applications and on and on. After which you
are then forced into revalidating your whole cluster for production
use. Something which can take a <b>long</b> time. Donald mentioned
that he validates his systems by running Linux kernel compilations for
two days to "burn in" his systems.
<p>
Donald also spent some time talking about how one runs a
Beowulf cluster and keeps it reliable. This is done by monitoring the
hardware for possible future failures. The most common one is due to
failing fans. There seems to be a host of applications which monitor
system performance, from the temperature of the boxes, to network
packet error checking. Keeping an eye on these problems helps keep a
Beowulf cluster healthy.
<p>
<table align=right>
<caption align=bottom><font size=-1>
Donald answering questions after his talk. I nice shot of his left
back side.
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB13Small.jpg vspace=10 hspace=20>
</table>
One last thing worth mentioning. With all this talk of running Linux
systems for 100's of days on end, a Windows "story" came up. It turns
out that there is a bug in the timer software for Windows. It will
cause your PC to crash in 49 days. This bug was just recently found
and has been around for a long time. Since a Windows system rarely
stays up for that long, its has only been until recently that this bug
has been found.
<p>
One person in the audience asked why Donald used Linux as the kernel
for building up his Beowulf project instead of one of the BSD
kernels. Donald had an interesting answer to that question. First off,
the BSD kernels were not as stable as Linux, back when he started
working on his project. He then proceeded to complain that working
with the BSD developers was very difficult. They tend to hide the
development process thus making it harder to contribute the needed
upgrades. (Remember that Donald had to work with the internal data
structures of the kernel in order to make his project scale.) He then
said that these BSD developers had very large egos. "Their ego's would
fill this room" he said, thus implying the difficulty of working with
them. He then went on to say that he was quite able to work with
Linus. Linus was a laid back guy.
<p>
<center>
<table>
<caption align=bottom><font size=-1>
Another shot of Donald left backside. Although I'm starting to work
around towards his front. If I'm lucky I may get him looking into the camera.
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB17Small.jpg>
</table>
</center>
<p>
There were many other interesting questions which were discussed
during Donald's talk. You can read my <a
href="http://ssadler.phy.bnl.gov/adler/DB/nylug.5.19.1999.txt">jumbled notes</a> if you care to try and
decipher them for more information.
<p>
<table align=left>
<caption align=bottom><font size=-1>
Well, that's as far forward as I could get. Although I did get a nice
shot of him and his book which I proudly display at the top of
this write up.
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB16Small.jpg vspace=10 hspace=20>
</table>
The session came to an end about 8:20pm. During his session he plugged
his
<a href="http://mitpress.mit.edu/book-home.tcl?isbn=026269218X">
new book about Beowulf clusters</a> titled <u>How to Build a
Beowulf</u>. The book was written in collaboration with several of the
Beowulf developers and is a compilation of a lot of the tutorials and
documentation on the software. It's published by MIT Press and fits in
with the other "definitive" references to mpi, mpiII and pvm also
published by MIT Press. He said that he makes about 30 cents per book
sold and was counting up the number of people in the audience to see
if he could buy dinner with the proceeds if every one bought one. One
guy in the audience offered him 60 cents for the book he had in his
hand, doubling his take home profit. Donald declined the offer.
<br clear=left>
<p>
People got up and started to leave the room after the talk was over. I
stuck around to take some pictures of Donald as he talked to some
NYLUGers. I eventually was able to get a chance to re-introduce myself
to him. I have him my card and invited him out to BNL if he were ever
in the area again. (I'm really bad at this sort of thing.) I then
asked him if he had trouble getting funding for his first Beowulf
system. He told me that he got the Beowulf idea back when he was
working for the NSA. He presented the idea to his superiors. He needed
$50K to put a cluster of nodes to together. For the NSA, $50K just too
little to bother with and his request was declined. So he took his
idea over to NASA. NASA thought it was worth funding, so he got a job
there specifically to work on his Beowulf idea. The rest, as they say,
is history.
<p>
<center>
<table>
<caption align=bottom><font size=-1>
My last shot of Donald as we start receiving our dinner orders. I was
fortuitous enough to take this shot just as the waiter held Donald's
plate right over his mouth. It is truly amazing how often Murphy's law
kicks in. The guy looking right into the camera is named Judd. He
works for Netscape and announced at the NYLUG meeting an install fest
he was organizing.
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB01Small.jpg>
</table>
</center>
<p>
I left the room and spent some time with Jim Gleason in the hallway
just outside. VA Research is about to deliver a 36 node system to BNL
this coming week and we talked about that a bit. Suddenly, my
bladder screamed at me and I broke off in mid sentence, "Where's the
men's room!". To my fortune, it was about 10 feet behind me. I don't
know how I was able to ignore my bodily functions from exit 40 of the
LIE until now...
<p>
<table align=right>
<caption align=bottom><font size=-1>
A picture of the other table where the 2nd half of the NYLUGers hung
out while waiting for their food to show up.
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB23Small.jpg vspace=10 hspace=20>
</table>
A small fraction of the group then headed over to Kapland's deli for a
real NYC deli meal. I ordered an extra lean pastrami sandwich. In
typical NY deli fashion, I was delivered just that, a mountain of
extra lean pastrami sandwiched between two thin slices of rye bread;
nothing else. The pickles and cole slaw were delivered on dishes as we
sat down. I had to manually apply the Russian dressing myself.
<p>
I sat across one guy who seemed to do business with wall street. One
tidbit which I found rather interesting was that he had this friend
who put systems together for wall street trading firms. One would
assume that these systems are bullet proof; 100% reliable. It turns
out that they crash all the time. There is enough redundancy in these
systems so that these crashes can be afforded. After hearing Donald
talk about large numbers of systems being up for 100's of days at a
time, and then hearing that wall street trading systems crash
continuously was a real shock. Maybe wall street will begin to
understand the power of Open Source. Until then, my retirement
fund will not be as safe as it could be.
<p>
<table align=left>
<caption align=bottom><font size=-1>
Another shot of Jim Gleason along with Matthew Hunt and Ari. Ari is
the guy in the back who also works for VA Research. He's coming out to
BNL to setup the 36 node machine I'm aching to submit my jobs to. The
guy in the middle is Matthew Hunt, President of the Linux Users of NY
group (LUNY).
</caption></font>
<tr><td>
<img src=gx/adler.becker/DB22Small.jpg vspace=10 hspace=20>
</table>
At about 9:30pm, Jim Gleason was getting worried about getting Donald
to JFK to catch his 11:30pm flight to NC. Donald was headed down to
attend the LinuxExpo. It was getting late for me as well. I said good bye
to the crowd of NYLUGers and headed out in search of that lot
where I parked my car. The drive back to where I live on Long Island
proceeded in standard form. After giving the MTA guy the $3.50 toll
for using the Midtown Tunnel, I start counting the exists along the
LI as I drive by them. 1, 2, ... 10, 11, ... 20, ..., 30...
<p>
Driving along on the LIE always leads my mind to wandering in
thought. This time, my mind wandered around open source land. I still
cannot get a grip on the power of the Internet. What really made
Donald's project possible was the fact that he had access to
Linux. You could never build a Beowulf cluster out of windows 3.1
machines. Think about it, this is what was running on those powerful
100MHz DX486 machines back when he started this project. I can imagine
going to one of the NSA administrators and trying to convince him that
you could take all those PC's the secretaries were using to write up
memos using MS Word, gang them together and turn them into a super
computer. And do so for only $50K. Back in 1992, that was a radical
idea! And look at what we have now, super computers popping up and the
beginning of a new industry. Also, has anyone ever heard of an NT
Beowulf cluster?  I'm sure Micro Soft would boast of one if there was
one. (And take credit for the idea as well.) That would be a good way
to test the stability of NT. Run 100 NT machines in a cluster and see
how long you would keep them <b>all</b> up and running. It would be
nice to see Mindcraft perform such a feat. Having 100 Linux machines
running for over a hundred days translates to 10,000 cpu days of
continuous running. Benchmark that Mindcraft...
<p>
Exit number 67, exit number 68. Ahhh, exit 68, home at last.
<br><br>
<hr>
<br>
Please <a href="mailto:adler@bnl.gov">e-mail</a> me your comments, if
you have any. I'm always interested in what you may have to say
related to this write up or anything else on your mind.
<p>
<a href="http://ssadler.phy.bnl.gov/adler/adler/SAArticles.html">Click
here</a> if you want to read other articles I've published on the
Internet, or <a href="http://ssadler.phy.bnl.gov/adler/adler">click
here</a> to view my home page.

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1999, Stephen Adler <BR> 
Published in Issue 42 of <i>Linux Gazette</i>, June 1999</H5></center>

<!--===================================================================-->

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

<P> <HR> <P> 
<!--===================================================================-->
<!-- =============================================================
		These pages are designed by Michael J. Hammel.  Permission to 
		use all graphics and other content is granted provided you give 
		me (or the original authors/artists) credit for the work and this
		copyright notice is not removed.

		(c)1997, 1998 Michael J. Hammel (mjhammel@graphics-muse.org)
     ============================================================= !--><!--  The Button box as a client side imagemap --><map NAME="nav-main"><area SHAPE="rect" HREF="#mews" coords="10,10 170,40"><area SHAPE="rect" HREF="#webwonderings" coords="0,55 175,85"><area SHAPE="rect" HREF="#musings" coords="75,115 170,145"><area SHAPE="rect" HREF="#resources" coords="5,170 110,195"></map>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 COLS=2 NOSAVE >
<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP NOSAVE><img SRC="gm/images/gm-logo-3.jpg" height=169 width=400></td>

<td ALIGN=LEFT VALIGN=CENTER NOSAVE>
<br><b><font size=+1>muse:</font></b>
<ol>
<li>
<i><font face="Arial,Helvetica"><font size=-1>v; to become absorbed in
thought&nbsp;</font></font></i></li>

<li>
<i><font face="Arial,Helvetica"><font size=-1>n; [ fr. Any of the nine
sister goddesses of learning and the arts in Greek Mythology ]: a source
of inspiration</font></font></i></li>
</ol>

<center><font size=-2>&copy; 1999 by <a href="mailto:mjhammel@graphics-muse.org">mjh</a></font></center>
</td>
</tr>
</table>

<hr SIZE=1 NOSHADE WIDTH="100%">
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 COLS=2 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td WIDTH="187" NOSAVE><img SRC="gm/images/muse-image-map.jpg" ALT="Button Bar" USEMAP="#nav-main" height=200 width=185 align=LEFT></td>

<td VALIGN=TOP WIDTH="65%" NOSAVE>
<br><img SRC="gm/images/w.gif" ALT="W" height=28 width=36 align=BOTTOM><font face="Arial,Helvetica"><font size=-1>elcome
to the Graphics Muse! Why a "muse"? Well, except for the sisters aspect,
the above definitions are pretty much the way I'd describe my own interest
in computer graphics: it keeps me deep in thought and it is a daily source
of inspiration.&nbsp;</font></font>
<center>
<p><font face="Arial,Helvetica"><font size=-1>[<a href="#mews">Graphics
Mews</a>][<a href="#webwonderings">WebWonderings</a>][<a href="#musings">Musings</a>][<a href="#rsrc">Resources</a>]</font></font></center>

<p><img SRC="gm/images/t.gif" ALT="T" height=28 width=26><font face="Arial,Helvetica"><font size=-1>his
column is dedicated to the use, creation, distribution, and discussion
of computer graphics tools for Linux systems.</font></font></td>
</tr>
</table>

<table BORDER=0 COLS=2 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP NOSAVE>
<br><font face="Arial,Helvetica"><font size=-1>I've been working on some
extensions and updates to my XNotesPlus program this month, which I've
had to work on in between the Muse, TheGimp.com, and a number of articles
and cover art work for the Linux Journal.&nbsp; Suprising how busy I'm
keeping considering that, officially, I'm unemployed.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Part of the work I was doing
this month for both the Muse and TheGimp.com wasn't for this months issues.&nbsp;
I was preparing for some future articles, ones which require more than
the usual week and a half I spend on them for normal issues.&nbsp; That
led to an even more compressed time frame for this months Muse.&nbsp; Running
on a bit of brain strain, I opted for a little brain stimulus, or rather
eye stimulus.&nbsp; That, and a little followup to last months issue, which
brought in quite a bit of email.&nbsp; That, too, was a bit suprising.&nbsp;
But very welcome.&nbsp;</font></font>
<p><font face="Arial,Helvetica"><font size=-1>In this months column you'll
find:</font></font>
<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>A little eye candy, please -
XScreensaver</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>A followup to last months Vector
Drawing Tools for Linux</font></font></li>
</ul>
<font face="Arial,Helvetica"><font size=-1>And, of course, the requisite
set of product announcements, interesting bits of news and Web sites, and
reader email.&nbsp; Keep those letters coming!</font></font>
<center><table BORDER=0 CELLSPACING=0 CELLPADDING=5 COLS=1 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td ALIGN=CENTER NOSAVE><a href="http://www.clbooks.com/home.html?from=CJK692"><img SRC="gm/images/cla_small.gif" HSPACE=10 BORDER=0 height=60 width=234 align=CENTER></a></td>
</tr>
</table></center>
</td>

<td ALIGN=CENTER VALIGN=CENTER WIDTH="220" NOSAVE>
<table BORDER=0 CELLSPACING=0 CELLPADDING=4 COLS=1 NOSAVE >
<tr NOSAVE>
<td ALIGN=CENTER VALIGN=CENTER WIDTH="219" NOSAVE><img SRC="gm/images/artistsguide.jpg" height=140 width=110></td>
</tr>

<tr NOSAVE>
<td NOSAVE><b><i><font face="Arial,Helvetica">The Artists' Guide to the
Gimp</font></i></b>
<br><font face="Arial,Helvetica"><font size=-1>Available online from <a href="http://www.fatbrain.com">FatBrain</a>,
<a href="http://www.softpro.com/softpro/1-57831-011-3.html">SoftPro
Books</a> and <a href="http://search.borders.com/fcgi-bin/db2www/search/search.d2w/Details?&mediaType=Book&prodID=51315727">Borders
Books</a>.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>In Denver, try the <a href="http://www.tatteredcover.com/cgi-bin/bookfind.pl?lit_ttl=Gimp&Id=733947.13300&refer=list&page=book&isbn=1-57831-011-3&str=1">Tattered
Cover Book Store.</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Also, check out the associated
web site, <a href="http://www.thegimp.com">TheGimp.com</a>, sponsored by
SSC, Inc. and edited by The Graphics Muse - <b><font color="#993300">Michael
J. Hammel</font></b>.</font></font></td>
</tr>
</table>
</td>
</tr>
</table>

<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="mews"></a><img SRC="gm/images/mews.jpg" height=50 width=245>
<table BORDER=0 COLS=3 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP WIDTH="140" NOSAVE>
<table BORDER CELLSPACING=0 CELLPADDING=2 COLS=1 WIDTH="100%" HEIGHT="100%" BGCOLOR="#FE992B" NOSAVE >
<tr>
<td><b><font face="Arial,Helvetica"><font size=-1>Other Announcements:</font></font></b></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#Superficie 0.5">Superficie
0.5</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#Graphic Counter Language 2.20.3.D">Graphic
Counter Language 2.20.3.D</a></font></font></td>
</tr>

<tr NOSAVE>
<td NOSAVE><font face="Arial,Helvetica"><font size=-1><a href="mews.html#MathMap">MathMap</a></font></font></td>
</tr>

<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP NOSAVE><font face="Arial,Helvetica"><font size=-1><a href="mews.html#Panorama Tools v1.7.2">Panorama
Tools v1.7.2</a></font></font></td>
</tr>

<tr NOSAVE>
<td NOSAVE><font face="Arial,Helvetica"><font size=-1><a href="mews.html#GIMP 1.1.5">GIMP
1.1.5</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#Gimp ImageMap Plug-In Release 0.9">Gimp
ImageMap Plug-In Release 0.9</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#DiaCanvas 0.10.">DiaCanvas
0.10</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#tgif 4.1.9">tgif
4.1.9</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#Swift Generator 0.7.1">Swift
Generator 0.7.1</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#Giram 0.0.17">Giram
0.0.17</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#Install-Webserver 0.1">Install-Webserver
0.1</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#povfront 0.9-2">povfront
0.9-2</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#Wacom Driver for XFree86 alpha 3">Wacom
Driver for XFree86 alpha 3</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#xfsft 1.1.5">xfsft
1.1.5</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#XawTV 2.44">XawTV
2.44</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#RenderDotC 3.1">RenderDotC
3.1</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#Terraform 0.3.1">Terraform
0.3.1</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="mews.html#AleVT 1.4.5">AleVT
1.4.5</a></font></font></td>
</tr>

<tr NOSAVE>
<td ALIGN=CENTER NOSAVE><font face="Arial,Helvetica"><font size=-1>&lt;
<a href="mews.html">More
Mews</a> ></font></font></td>
</tr>
</table>
</td>

<td WIDTH="1" NOSAVE></td>

<td ALIGN=LEFT VALIGN=TOP NOSAVE>
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 COLS=1 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td NOSAVE><font face="Arial,Helvetica"><font size=-1><b>Disclaimer</b>:
Before I get too far into this I should note that any of the news items
I post in this section are just that - news. Either I happened to run across
them via some mailing list I was on, via some Usenet newsgroup, or via
email from someone. I'm not necessarily endorsing these products (some
of which may be commercial), I'm just letting you know I'd heard about
them in the past month.</font></font></td>
</tr>

<tr>
<td>
<hr NOSHADE WIDTH="100%"></td>
</tr>
</table>
<b><font face="Arial,Helvetica"><font size=+1>RealPlayer G2 alpha</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; J-Dog - May 19th
1999, 10:16 EST&nbsp;</font></font>
<p><font face="Arial,Helvetica"><font size=-1>RealPlayer for Unix allows
you to play streaming audio and video over the Internet in real-time.&nbsp;</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.real.com/">http://www.real.com/</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.real.com/products/player/linux.html">http://www.real.com/products/player/linux.html</a></font></font>
<br><b><font face="Arial,Helvetica"><font size=-1>Editor's Note:&nbsp;
Whoohoo!&nbsp; Works great!</font></font></b>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>The Linux Image Montage
Project pre-1120</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; Jordan Husney - May
17th 1999, 07:15 EST&nbsp;</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The Linux Image Montage Project
("LIMP"), is an attempt to distill the Linux community's spirit down into
one cool looking poster using user-contributed images and the GIMP.&nbsp;</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Now 70% complete,
only 480 image to go until project completion.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://linux.remotepoint.com/">http://linux.remotepoint.com/</a></font></font></td>
</tr>

<tr>
<td></td>

<td></td>

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

<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>IBM ANNOUNCES OPEN-SOURCE
AVAILABILITY OF 3D VISUALIZATION SOFTWARE</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>IBM Visualization Data Explorer
Source Code Made Available to Developer Community.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.research.ibm.com/dci/software.html">http://www.research.ibm.com/dci/software.html</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.research.ibm.com/dci/dx_release.html">http://www.research.ibm.com/dci/dx_release.html</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>ImageMagick 4.2.6</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; Necronom IV - May
19th 1999, 16:03 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>ImageMagick (TM) is a package
for display and interactive manipulation of images for the X Window System.
It is written in C and interfaces to the X library, and therefore does
not require any proprietary toolkit in order to compile. Although the software
is copyrighted, it is available for free and can be redistributed without
fee. ImageMagick is known to compile and run on virtually any Unix system
and Linux. It also runs under Windows NT, Windows 95, Macintosh, and VMS.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Many new features
and bugfixes, see the Changelog for more information.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.wizards.dupont.com/cristy/ImageMagick.html">http://www.wizards.dupont.com/cristy/ImageMagick.html</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>IPAD 0.9.00</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; sergio - May 19th
1999, 10:04 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>IPAD is an intelligent vector
drawing package built using the multiplatform IPAD-Pro core and so provides
a very powerfull consistant interface across all supported platforms without
the need to have X11 or MS Windows available. It allows easy editing across
files using multiple overlapping windows. The graphics objects drawn and
edited by IPAD have built in intelligence. They react to the mouse and
each other so as to maximise user productivity and reduce tedious repetitive
setup sequences.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Faster character
drawing under X11, new grid support, new guide line support, new window
manager dialog and much more info in file selector.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.demon.co.uk/titan/">http://www.demon.co.uk/titan/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>Image::Grab 0.9.3</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; Mark Hershberger
- May 19th 1999, 09:59 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The Image::Grab Perl module
allows you to easily grab an image with an oft-changing URL from the internet.
This makes it possible to write simple scripts to download weather maps
or comic strips on a daily or hourly basis without user intervention. It
is also useful for bypassing advertising banners.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Updated the realm
code so that HTTP authentication actually works, changed the interface,
but if you tried to use the realm call before, you should have gotten an
error.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://everybody.org/mah/hacks/Image-Grab-0.9.3.html">http://everybody.org/mah/hacks/Image-Grab-0.9.3.html</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>Panorama 0.11.2</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; Angel Jimenez - May
18th 1999, 13:31 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Panorama is a framework for
3D graphics production. It will include modelling, rendering, animating,
post-processing, etc. There's currently no support for animation, but this
feature will be added soon.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Added a new text
image filter, a new configuration file, and documentation. Lots of bug
fixes.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.gnu.org/software/panorama/panorama.html">http://www.gnu.org/software/panorama/panorama.html</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>Sketch 0.6.0</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; Bernhard Herzog -
May 18th 1999, 12:58 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Sketch is a drawing program
similar to CorelDraw or Adobe Illustrator. It is written almost completely
in python with some modules written in C, thus combining the flexibility
and power of Python with the speed of C. Advanced features include gradient
fills, clip masks, text along a path, blend groups, convert text to curves,
and more.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: First stable release.
Includes some national language support, improved Illustrator filters and
bug fixes.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.online.de/home/sketch/">http://www.online.de/home/sketch/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>FFTW 2.1.2</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; Steven G. Johnson
- May 18th 1999, 12:57 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>FFTW is a fast C FFT library.
It includes complex, real, and parallel transforms, and can handle arbitrary
array sizes efficiently. FFTW is typically faster than other publically-available
FFT implementations, and is even competitive with vendor-tuned libraries
(benchmarks are available at the homepage). To achieve this performance,
FFTW uses novel code-generation and runtime self-optimization techniques
(along with many other tricks).</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Fixed a problem
with our parallel MPI transform test programs under MPICH.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://theory.lcs.mit.edu/~fftw/">http://theory.lcs.mit.edu/~fftw/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>LAGII 0.1.4</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; XoXus - May 18th
1999, 12:02 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>LAGII lets you run AGI games
natively under Linux. AGI games include the Sierra classics such as Kings
Quest, Space Quest, etc. Most games don't work fully, but they work quite
well most of the time.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Functional X11 driver
is nearly done.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.zip.com.au/~gsymonds/LAGII/">http://www.zip.com.au/~gsymonds/LAGII/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>Glide 2.60</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; Lee Reynolds - May
18th 1999, 11:44 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>This is the first alpha release
of Glide 2 for the Banshee and Voodoo 3 cards.&nbsp; According to the author
the Quake 3 test will run under it, your mileage may vary. As of now it
will only do 3D full screen, windowed support will be included later. The
author will be at Linux Expo till the 23rd and has said he will ignore
all email during this period. Those in need of support are advised to use
the 3dfx newsgroups.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: This is the first
version of Glide for linux with support for the Voodoo Banshee and Voodoo
3 chipsets. This is still glide 2.x, glide 3 has not been ported to linux
as of yet</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://glide.xxedgexx.com/3DfxRPMS_vb_glibc.html">http://glide.xxedgexx.com/3DfxRPMS_vb_glibc.html</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>LibGGI 2.0 Beta 2.1</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; Andreas Beck - May
17th 1999, 07:19 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>LibGGI is an attempt to unify
all those graphical output systems that exist on Unix. It is a very fast,
simple (ever tried to make a small graphics app directly in Xlib?) and
lightweight interface layer, that allows you to run the very same binary
on many different graphics subsystems like X, SVGAlib, Glide, etc.&nbsp;
LibGGI will detect (or you can select, of course) the environment you are
running in, and redirect its output as required.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Better autoconf
checking for some targets and other bugfixes, fbdev target uses acceleration
on kernel-native matroxfb, better mode-switching for non-kgicon fbdev drivers,
svgalib target enhanced, X target fixed for remote displays with different
endianness as well as small enhancements for LibGII (especially for the
Linux-Console input).</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.ggi-project.org/">http://www.ggi-project.org/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<p><!--
		  -- Did You Know Section
		  -->
<h2>
Did You Know?</h2>

<blockquote><font face="Arial,Helvetica"><font size=-1>...there is a story
in EETimesOnline about ILM's camera work, including a mention of Linux.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.eet.com/story/career/timespeople/OEG19990517S0023">http://www.eet.com/story/career/timespeople/OEG19990517S0023</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>...and another on how working
on special effects expose engineers to the hot technologies of the day.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.eet.com/story/career/timespeople/OEG19990513S0020">http://www.eet.com/story/career/timespeople/OEG19990513S0020</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>...there is a project online
that aims to produce a short (10 minute) 3D animated movie using POV-Ray.&nbsp;
The Internet Movie Project can be found at <a href="http://www.imp.org/">http://www.imp.org/</a></font></font>
<p>.<font face="Arial,Helvetica"><font size=-1>..RealPlayer is an <a href="http://w3c.org/AudioVideo/">SMIL
(Synchronized Multimedia Integration Language)</a> enabled player?&nbsp;
SMIL is based on XML and was designed by the good people at W3C.&nbsp;
Since SMIL is another text-based markup language, you can, as always, use
any text editor to author SMIL files.&nbsp; If you're interested in other
SMIL players and some links to some GUI based authoring tools, take a look
at <a href="http://www.justsmil.com">http://www.justsmil.com</a>.&nbsp;
So far, no authoring tools for Linux are listed, although I've sent email
to the people working on GRiNS to ask if they plan on a Linux port (they
are working on both IRIX and Solaris ports, so I'd think it wouldn't be
a difficult port to Linux).</font></font></blockquote>
<!--
		  -- Q and A Section
		  -->
<h2>
Q and A</h2>
<i><font face="Arial,Helvetica"><font size=-1>Q:&nbsp; Marjorie Richardson
asks:&nbsp; Could you tell me if there is a Linux graphics program that
will convert RGB to CMYK easily? (easily as in push a button)</font></font></i>
<p><font face="Arial,Helvetica"><font size=-1>A: <b><font color="#CC6600">ImageMagick</font></b>
has the command line tool <b>convert</b> that will convert between many
different file formats.&nbsp; One output format is raw CMYK.&nbsp; Keep
in mind that raw CMYK may not be quite right for print output - it doesn't
take into consideration display characteristics of either the monitor on
which you viewed the original or the device on which you'll be printing.&nbsp;
But it will probably be fairly close for many images.</font></font>
<br><font face="Arial,Helvetica"><font size=-1>See: <a href="http://www.wizards.dupont.com/cristy/www/convert.html">http://www.wizards.dupont.com/cristy/www/convert.html</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>A:&nbsp; blah</font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<h2>
Reader Mail</h2>
<font face="Arial,Helvetica"><font size=-1>Hadess &lt;<a href="mailto:hadess@writeme.com">hadess@writeme.com</a>>
writes:</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>First I'd like you
to know that the only thing worth reading in the Linux Gazette (at least
for me) is the Graphics Muse ^_^</font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse</font></b>:&nbsp;
I'm flattered, but I often read most of the rest of the Gazette myself.&nbsp;
Larry Ayers and the other regular and guest writers tend to know a lot
more about systems administration than I do, and I often find bits of very
useful into there.&nbsp;&nbsp; I'm just the graphics guy.</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>Well, I use the
GIMP everyday and I frequently use a file-manager to launch it associated
with an image. I'd like GIMP to start only once. I'd like to launch it
once and then, afterwards, launch another image and make it load by the
first GIMP instance I launched.&nbsp; Any ideas ?</font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse</font></b>:&nbsp;
If you want to work on the new image interactively, then I can only think
of one way to do it - Perl::Fu.&nbsp; But getting the Perl extension to
work with the Gimp can take a bit of work.&nbsp; I'm going to do an article
on it for the June issue of <a href="http://www.thegimp.com">TheGimp.com</a>
(this month will be on Gimp 1.2 status).&nbsp; You can also take a look
at the new O'Reilly text "<i>Programming Web Graphics with Perl and GNU
Software</i>".&nbsp; There is a chapter on the Gimp which goes into a&nbsp;
fair amount of detail on the Perl scripting interface for the Gimp.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The Perl extension has a
server portion, so you could write a perl script to connect to the server
and pass it the name of a plug-in and file that could be used to pop open
a new image window for the currently running Gimp.&nbsp; It will even,
I believe, launch the Gimp if its not already running.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>I'm no Perl::Fu expert, however.&nbsp;
This is just my impression of how things work.</font></font>
<p>A<font face="Arial,Helvetica"><font size=-1>ntti Huotari &lt;<a href="mailto:ahuotari@cc.hut.fi">ahuotari@cc.hut.fi</a>>
writes:</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>You said in your
latest Graphics Muse column that Macromedia Flash 3 runs only on non-Linux
systems. Well, infact it does run almost flawlessly on Linux with the latest
WINE release&nbsp; (OK, it still has a few bugs, but you can create Flash
movies, etc. with it).</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The following setup is used:</font></font>
<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>RedHat-5.2</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Kernel-2.2.9</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Wine-990508</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Flash 3 is installed in Windows95
(dual boot)</font></font></li>
</ul>
</blockquote>
<font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse</font></b>:&nbsp;
Ok, I stand corrected.&nbsp; I just don't run WINE - I want these tools
to run natively on Unix.&nbsp; I've been waiting 10 years (since working
on the Dell Unix product) for applications to run natively on desktop Unix.&nbsp;
So I guess that's why I didn't consider WINE.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>I never have figured out
how to do this, though.&nbsp; I mean, where do I get Windows95/98?&nbsp;
You go into computer stores and all they stock is "Upgrades".&nbsp; No
one sells a complete installation apparently.&nbsp; Not that I've looked
too hard.</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>Just to let you
know,</font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse</font></b>:&nbsp;
I appreciate the feedback.&nbsp; I'm sure there are qutie a few readers
who would love to know this works.</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>PS. Thanks for the
nice book about Gimp.</font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse</font></b>:&nbsp;
Your quite welcome.&nbsp; I'm glad you find it useful!</font></font>
<p>A<font face="Arial,Helvetica"><font size=-1>ntti Huotari &lt;<a href="mailto:ahuotari@cc.hut.fi">ahuotari@cc.hut.fi</a>>
followed up with:</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>Just to clarify
things, Wine+Flash3 isn't ready for production yet. For example the text
tool doesn't work and there are lots of little problems. But like I said
you <i>can</i> play, create movies with it, etc. Sound effects seem to
work fine too. And it gets better with every new release of Wine.</font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse</font></b>:&nbsp;
I'll post this too.&nbsp; Its good info.&nbsp; I'm sure it will help keep
expectations in line for anyone who tries it.</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>From <a href="http://www.winehq.com">www.winehq.com</a>:</font></font>
<br><font face="Arial,Helvetica"><font size=-1>Wine is an implementation
of the Windows 3.x and Win32 APIs on top of X and Unix. (So it isn't an
emulator and you don't need Microsoft Windows.) Wine consists of a program
loader, which loads and executes a Windows binary, and a library that implements
Windows API calls using their UNIX or X11 equivalents.</font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse</font></b>:&nbsp;
Hmmm.&nbsp; I didn't realize that.&nbsp; I guess I could try it eventually.&nbsp;
I just <i>hate</i> using any MS-based tools.&nbsp; But I should open my
mind to different options.&nbsp; It is, after all, part of my own preachings
to people:&nbsp; Choice.&nbsp; Thats the key.</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>But, I do agree
with you that it would be much better to have applications that are especially
made for *NIX.</font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse</font></b>:&nbsp;
It's happening.&nbsp; Slowly, but I think it's an inevitable process at
this point.&nbsp; I'm looking forward to the ports of graphics applications
that I'm sure we'll be hearing about over the next 6-12 months.</font></font>
<br>
<hr NOSHADE WIDTH="100%">
<br><a NAME="webwonderings"></a><img SRC="gm/images/webwonderings.jpg" height=57 width=246>
<h2>
blah</h2>
<font face="Arial,Helvetica"><font size=-1>I wondered around the Net a
bit this month, but couldn't find anything interesting to write about relating
to Web development.&nbsp; Oh, sure there are lots of topics.&nbsp; I just
couldn't find one that peaked my curiousity - and I could fit into my writing
schedule.&nbsp; I thought about looking at Zope, but it had some system
requirements I didn't have.&nbsp; I spent a bit of time trying to install
some other packages, some for the Vector Tools followup article and some
for some future articles, and didn't really want to deal with it again
for yet another package.&nbsp; But Zope does look interesting.&nbsp; I'll
try to take a look at it sometime in the near future.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Other than that, I only came
up with one Web-related item:&nbsp; After a couple of years of wondering
how to make this work, I finally figured out how to force text to flow
around a table.&nbsp; I like to use tables to place an image with a caption
below it, image in the top cell and the caption in a cell below it, but
I've always been stuck with shoving text into a cell in the table - I couldn't
just have text flow around the table like I do with non-tabled images.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Well, it seems that my use
of Netscape Composer had led me to ignore checking the completeness of
the HTML it created.&nbsp; I was perusing some other sites on the net -
I think it was the BBC news site - and saw one with a configuration just
like I wanted to make:&nbsp; image in a table, caption below it, text flowing
around it to the right.&nbsp; I looked at the HTML and didn't see anything
special.&nbsp; So I copied everything from that site's table to one of
my own, then started removing items one at a time to find the key element.&nbsp;
The key, it seems, is the ALIGN= argument.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>It is possible to make text
flow around a table, but not directly with Composer.&nbsp; Composer, although
it provides a toggle for the Align argument, doesn't actually place this
argument in the TABLE tag if you use the default option of "Left".&nbsp;
Arrgghh!&nbsp; You have to edit the TABLE tag and add the ALIGN=LEFT by
hand.&nbsp; So, configure your text editor in Netscape.&nbsp; I use vi&nbsp;
(if you use Emacs there is a good chance you're not using Composer anyway).&nbsp;
You'll want to create the table first, just as always.&nbsp; Make the table
just a bit wider than the image and leave the image left aligned in it's
cell (which leaves space between the image and the text that will flow
around it).&nbsp; Then add your text.&nbsp; Later, go back and edit the
HTML by hand (Edit->HTML Source) and add the ALIGN=LEFT argument to your
table.&nbsp; Viola!&nbsp; Right-side flowing text around your tables.&nbsp;
This modification will stay as long as you don't edit that table again.&nbsp;
If you do make changes to the table, you'll have to go back and add the
ALIGN=LEFT argument by hand again.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>I guess it helps to check
these automated contraptions every now and then - just to keep them honest.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Oh, and as to why this was
titled "blah":&nbsp; that's the text placeholder in the template file I
use for the main page of the Graphics Muse.&nbsp; It seemed appropriate.&nbsp;
The alternative was "Yada Yada Yada", but I wasn't sure how many Seinfeld
fans there were reading the Muse.</font></font>
<br>
<hr NOSHADE WIDTH="100%">
<p><a NAME="musings"></a>
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 COLS=2 NOSAVE >
<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP WIDTH="245" NOSAVE><img SRC="gm/images/musings.jpg" height=50 width=245></td>

<td NOSAVE>
<center><table BORDER CELLSPACING=0 CELLPADDING=3 COLS=1 WIDTH="100%" BGCOLOR="#FE992B" NOSAVE >
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="musings.html">Also:&nbsp;
A Followup to last months Vector Drawing Tool on Linux</a></font></font></td>
</tr>
</table></center>
</td>
</tr>
</table>

<h2>
<font face="Arial,Helvetica">A Little Eye Candy, Please - XScreensaver</font></h2>
<font face="Arial,Helvetica"><font size=-1>In most issues of the Graphics
Muse, I talk about useful tools, things with which you can perform some
real world task.&nbsp; That's fine, most of the time.&nbsp; But one needs
to have a little fun every now and then.&nbsp; Sometimes, you just need
to do something that, well, has no real purpose.&nbsp; Except to make you
smile.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>In the world of graphics
tools for Linux there are probably several programs (we can't <i>really</i>
call them tools, per se) that could be considered just fun.&nbsp; No, I
don't mean games.&nbsp; That's entertainment.&nbsp; Despite what you read
in the press or hear from politicians, games are not completely mindless
jaunts for the juvenile crowd.&nbsp; No, we need something that has nothing
to offer but stunning visual preoccupation.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Thank goodness for screensavers.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Watching the ever streaming
line of announcements over at <a href="http://www.freshmeat.net">freshmeat</a>,
I noticed an announcement for something called cmatrix.&nbsp; It was said
to be a screensaver in the style of <a href="#movie">The Matrix</a>, that
wonderfully confusing cinema fantasy starring Keanu Reeves.&nbsp; Unfortunately,
it's not an X-based program.&nbsp; It runs under Curses, a terminal based
graphical interface.&nbsp; Then I saw that Jamie Zawinsky, late of Netscape,
had added a Matrix hack to his xscreensaver program.&nbsp; So I scrounged
around a bit and found xscreensaver, downloaded it and put it to work.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Cool.</font></font>
<br>&nbsp;
<br>&nbsp;
<table ALIGN=LEFT BORDER=0 CELLSPACING=0 CELLPADDING=4 WIDTH="376" NOSAVE >
<tr NOSAVE>
<td NOSAVE><img SRC="gm/images/xmatrix.gif" height=304 width=366></td>
</tr>

<tr>
<td>
<center><b><font face="Arial,Helvetica"><font size=+1>The Matrix (xmatrix)
Screensaver</font></font></b></center>
</td>
</tr>
</table>
<font face="Arial,Helvetica"><font size=-1>Xscreensaver is a program that
manages other programs that draw on the root window.&nbsp; The root window
is a special window - it's the window inside which all other windows get
drawn.&nbsp; It doesn't look like a window like you might expect because
it doesn't have a window frame around it.&nbsp; But any program, properly
written, can draw on the root window.&nbsp; Jamie's design is to make xscreensaver
a daemon - a program that runs all the time in the background - that would
wait to see when there was a period of inactivity from the user.&nbsp;
When that period expires, xscreensaver runs another program.&nbsp; This
other program is the one that actually draws on the root window.&nbsp;
These other programs are called, in xscreensaver vernacular,
<a href="#hacks vs. demos">hacks</a>.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>I don't usually run screensavers,
a screen blanking or energy-saving monitor suffices most of the time.&nbsp;
But the shear number of hacks available for xscreensaver was somewhat astounding.&nbsp;
I counted over 80 of these in the hacks directory.&nbsp; Jamie has screenshots
for most of these on his xscreensaver Web site (<a href="http://www.jwz.org/xscreensaver/">http://www.jwz.org/xscreensaver/</a>).&nbsp;
Be warned:&nbsp; it can take quite a while to download the page with the
screenshots if you're on a slow link.&nbsp; You don't really have to download
the latest version from this web site since most Linux distributions will
contain a version of xscreensaver already.&nbsp; But you might want to
check to see if any new hacks have been added or if a new version is availalble.&nbsp;
On my Red Hat 5.2 I had a considerably older version than the latest (3.12)
posted on Jamie's site.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Since xscreensaver runs as
a daemon and a client (the hack), you need to look at these seperately.&nbsp;
The daemon, <i>xscreensaver</i>, has no user interface.&nbsp; It's configuration
is controlled by a standalone client program called <i>xscreensaver-demo</i>.</font></font>
<center>
<p><img SRC="gm/images/xs-demo.gif" height=281 width=553>
<br><b><font face="Arial,Helvetica"><font size=+1>xscreensaver-demo</font></font></b></center>

<p><font face="Arial,Helvetica"><font size=-1>If you don't have an <i>$HOME/.xscreensaver</i>
file, then xscreensaver uses its default configuration.&nbsp; In this example
case this means the demo window has all 80+ hacks available.&nbsp; This
if fine for the demo, but when you put together a menu option for your
favorite Window Manager to launch the screensavers, you may want to limit
this list using your own configuration file.&nbsp; We'll talk about the
configuration file a little later in this article.</font></font>
<p><font size=-1><font face="Arial,Helvetica">The demo dialog allows you
to double click on an entry in the list of hacks to start it.&nbsp; To
stop the hack just move the mouse or click a mouse button once.&nbsp; This
is handy for looking through the list of hacks to see what they all do.&nbsp;
You can also type a hack command (the command uses ordinary command line,
aka shell, syntax) in the text field just below the list.&nbsp; The buttons
perform obvious functions - run the next hack in the list, run the previous
hack in the list, quit the demo program and open the preferences dialog.&nbsp;
Quitting will exit the demo window but does not kill off the xscreensaver
demo.&nbsp; You do that manually with the <i>xscreensaver-command</i> program's
</font><tt>-exi</tt><font face="Arial,Helvetica">t
option.</font></font>
<br>&nbsp;
<br>&nbsp;
<table ALIGN=LEFT BORDER=0 CELLSPACING=0 CELLPADDING=4 WIDTH="412" NOSAVE >
<tr NOSAVE>
<td NOSAVE><img SRC="gm/images/xs-prefs.gif" height=346 width=402></td>
</tr>

<tr>
<td>
<center><b><font face="Arial,Helvetica"><font size=+1>Preferences Dialog
Window</font></font></b></center>
</td>
</tr>
</table>
<font face="Arial,Helvetica"><font size=-1>The demo window also has a preferences
dialog.&nbsp; Here you can configure the daemon's behaviour with respect
to when it notices inactivity and whether or not it requires using a password
to log back in.&nbsp; You'll notice there isn't any field for specifying
a password.&nbsp; Xscreensaver will use your password from the /etc/password
(or /etc/shadow, if you have that) file.&nbsp; Saver Timeout is the inactivity
period to wait on, while Cycle Timeout is the period of time the current
hack gets run.&nbsp; Xscreensaver will cycle through the list of hacks
in your .xscreensaver file's <u>programs</u> entry if more than one entry
exists and if the cycle timeout is set to something other than 0 (0 means
never cycle).</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The Fade Duration is used
only with writable colormaps.&nbsp; This causes the screen to fade to black
when the screensaver starts or between hacks when cycling is enabled.&nbsp;
Fade ticks controls how fast this fade should occur.&nbsp; Higher numbers
make for smoother fades, but take longer to complete.&nbsp; Fading to black
may not work with your hardware and X server configuration, so changes
to this field may have no effect.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The Lock Timeout is the grace
period after the screensaver has kicked in where no password is required,
even if Require Password has been set.&nbsp; If this value were 5 minutes,
for example, and the screensaver had only been running for 3 minutes before
you typed something or moved the mouse, then you wouldn't have to type
a password.&nbsp; Useful for those short periods you run to the bathroom
and hate having to retype your password just to get going again.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Password Timeout is the time
for which the password dialog will remain on the screen waiting for a valid
response before it gives up and returns to the screensaver.&nbsp;&nbsp;
In the example here, the dialog would be present for 30 seconds - ample
time for a decent typist with the right password.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>While the demo window and
it's preference dialog allow you to configure how the daemon will run,
it isn't really how you want to run xscreensaver in the background, say
from a Window Manager menu.&nbsp; As mentioned earlier, another program
is used to kill off the xscreensaver daemon - <i>xscreensaver-command</i>.&nbsp;
This is a command line program designed to issue commands to the daemon
without using windowing interface (although it can launch the Demo window
too).&nbsp; A hack in the programs list of your configuration file can
be called directly using the xscreensaver-command program.&nbsp; This is
how I set up a menu under FVWM2 to specifically run the Matrix screensaver.</font></font>
<p><b><u><font face="Arial,Helvetica">The .xscreensaver configuration file</font></u></b>
<p><font face="Arial,Helvetica"><font size=-1>All of the options you can
set interactively with the Preferences dialog can also be set using the
xscreensaver-command program.&nbsp; Alternatively, you can specify often
used options in your .xscreensaver configuration file.&nbsp; We've already
mentioned the programs entry, which is a list of programs to run in shell-syntax
format.&nbsp; You list one program per line and use shell continuation
marks, but cannot use semicolons.&nbsp; So, an entry like this</font></font>
<blockquote><tt>programs:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmatrix;&nbsp; qix -root;&nbsp;
xv -root -rmode 5 image.gif -quit</tt></blockquote>
<font face="Arial,Helvetica"><font size=-1>is invalid.&nbsp; Instead, you
would enter it like this:</font></font>
<blockquote><tt>programs:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
\</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmatrix&nbsp;&nbsp;&nbsp;
\n\</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; qix -root&nbsp; \n\</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xv -root -rmode 5 image.gif
-quit&nbsp;&nbsp;&nbsp; \n\</tt></blockquote>
<font face="Arial,Helvetica"><font size=-1>Each of these programs are found
via your PATH environment variable, so if they aren't available from an
ordinary command line, then you may want to fully qualify the path name.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>When you use xscreensaver-command
to launch one of these programs specifically, you reference the program
by the order in which it appears in the list.&nbsp; So xmatrix is program
number 1, qix is number 2 and so forth.&nbsp; You can then invoke this
screensaver directly using a command line like this:</font></font>
<blockquote><tt>% xscreensaver-command -select 1</tt></blockquote>
<font face="Arial,Helvetica"><font size=-1>The -select option tells xscreensaver
to blank the screen immediately and run the hack specified.&nbsp; There
are variations on how you can do this using the xscreensaver-command program.&nbsp;
Check the man page that comes with the source for complete details.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>All of the options in the
.xscreensaver configuration file use a name:token format.&nbsp; That is,
you specify the name of the option, followed by a colon and the setting
for that option.&nbsp; Since the configuration option uses the same option
names as the X Resources file, you can also place these settings in your
.Xdefaults file if you like.&nbsp; I prefer using program specific files
like .xscreensaver because if I screw up that one file I don't take the
chance of breaking some other program like I might if I used my .Xdefaults
file instead.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>[ <a href="musings.html#A Little Eye-Candy, Please (continued)">More
Eye Candy</a> ]</font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><font face="Arial,Helvetica"><font size=-1>Footnotes:</font></font>
<ol>
<li>
<a NAME="movie"></a><font face="Arial,Helvetica"><font size=-1>If you haven't
seen this movie yet, go now!&nbsp; The story line far outpaces the special
effects, which themselves are some of the best I've ever seen.&nbsp; This
movie is the 2001 of the current generation.</font></font></li>

<li>
<a NAME="hacks vs. demos"></a><font face="Arial,Helvetica"><font size=-1>In
the documentation, hacks are also often called demos.&nbsp; Don't let the
terminology confuse you.</font></font></li>
</ol>

<table BORDER=0 COLS=1 WIDTH="100%" BGCOLOR="#000000" NOSAVE >
<tr NOSAVE>
<td NOSAVE><img SRC="apr98/gm/images/cleardot.gif" height=2 width=2></td>
</tr>
</table>
<a NAME="rsrc"></a><img SRC="gm/images/resources.jpg" height=50 width=245>
<br><font face="Arial,Helvetica"><font size=-1>The following links are
just starting points for finding more information about computer graphics
and multimedia in general for Linux systems. If you have some application
specific information for me, I'll add them to my other pages or you can
contact the maintainer of some other web site. I'll consider adding other
general references here, but application or site specific information needs
to go into one of the following general references and not listed here.</font></font>
<br>&nbsp;
<table BORDER=0 COLS=2 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td NOSAVE><font face="Arial,Helvetica"><font size=-1>Online Magazines
and News sources&nbsp;</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.news.com/">C|Net
Tech News</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.eklektix.com/lwn/">Linux
Weekly News</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://slashdot.org/">Slashdot.org</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://TheGimp.com">TheGimp.com</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>General Web Sites&nbsp;</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.graphics-muse.org/linux.html">Linux
Graphics</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.bright.net/~dlphilp/linux_soundapps.html">Linux
Sound/Midi Page</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://LinuxArtist.org">Linux
Artist.org</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Some of the Mailing Lists
and Newsgroups I keep an eye on and where I get much of the information
in this column&nbsp;</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.gimp.org">The
Gimp User and Gimp Developer Mailing Lists</a>.&nbsp;</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.irtc.org">The
IRTC-L discussion list</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="news:comp.graphics.rendering.raytracing">comp.graphics.rendering.raytracing</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="news:comp.graphics.rendering.renderman">comp.graphics.rendering.renderman</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="news:comp.graphics.api.opengl">comp.graphics.api.opengl</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="news:comp.os.linux.announce">comp.os.linux.announce</a></font></font></td>

<td><img SRC="gm/images/gmuse-2.jpg" HSPACE=10 BORDER=2 height=248 width=200></td>
</tr>
</table>
<a NAME="future"></a>
<h2>
Future Directions</h2>
<font face="Arial,Helvetica"><font size=-1>Next month:&nbsp; I'd like to
look at TV and motion capture cards, but I don't have any so the best I
can do is write about the drivers for them.&nbsp; Barring that, I'm not
sure what I'll look at.&nbsp; Maybe a little about dealing with drawing
using Gtk and Motif widgets, something I've been working on lately.&nbsp;
We'll see.</font></font>
<p><font face="Arial,Helvetica"><font size=-1><a href="mailto:mjhammel@graphics-muse.org">Let
me know what you'd like to hear about!</a></font></font>
<br>
<hr NOSHADE WIDTH="100%">
<div align=right><font face="Arial,Helvetica"><font size=-1>&copy; 1999
<a href="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</a></font></font></div>

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1999, Michael J. Hammel <BR> 
Published in Issue 42 of <i>Linux Gazette</i>, June 1999</H5></center>

<!--===================================================================-->
<br><img SRC="gm/images/mews.jpg" height=50 width=245>
<table WIDTH="100%" >
<tr>
<td ALIGN=RIGHT WIDTH="100%"><font size=-2>&copy; 1999 <a href="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</a></font></td>
</tr>

<tr>
<td VALIGN=TOP BGCOLOR="#000000" cellpadding="0" cellspacing="0"><img SRC="gm/images/cleardot.gif" ALT="indent"  align=LEFT></td>
</tr>
</table>

<table BORDER=0 COLS=3 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP WIDTH="140" NOSAVE>
<table BORDER CELLSPACING=0 CELLPADDING=2 COLS=1 WIDTH="100%" HEIGHT="100%" BGCOLOR="#FE992B" NOSAVE >
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#Superficie 0.5">Superficie
0.5</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#Graphic Counter Language 2.20.3.D">Graphic
Counter Language 2.20.3.D</a></font></font></td>
</tr>

<tr NOSAVE>
<td NOSAVE><font face="Arial,Helvetica"><font size=-1><a href="#MathMap">MathMap</a></font></font></td>
</tr>

<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP NOSAVE><font face="Arial,Helvetica"><font size=-1><a href="#Panorama Tools v1.7.2">Panorama
Tools v1.7.2</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#GIMP 1.1.5">GIMP
1.1.5</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#Gimp ImageMap Plug-In Release 0.9">Gimp
ImageMap Plug-In Release 0.9</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#DiaCanvas 0.10.">DiaCanvas
0.10</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#tgif 4.1.9">tgif
4.1.9</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#Swift Generator 0.7.1">Swift
Generator 0.7.</a>&nbsp;</font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#Giram 0.0.17">Giram
0.0.17</a>&nbsp;</font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#Install-Webserver 0.1">Install-Webserver
0.1</a>&nbsp;</font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#povfront 0.9-2">povfront
0.9-2</a>&nbsp;</font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#Wacom Driver for XFree86 alpha 3">Wacom
Driver for XFree86 alpha 3</a>&nbsp;</font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#xfsft 1.1.5">xfsft
1.1.5</a>&nbsp;</font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#XawTV 2.44">XawTV
2.44</a>&nbsp;</font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#RenderDotC 3.1">RenderDotC
3.1</a>&nbsp;</font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#Terraform 0.3.1">Terraform
0.3.1</a>&nbsp;</font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#AleVT 1.4.5">AleVT
1.4.5</a>&nbsp;</font></font></td>
</tr>
</table>
</td>

<td WIDTH="1" NOSAVE></td>

<td ALIGN=LEFT VALIGN=TOP NOSAVE>
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 COLS=1 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td NOSAVE><font face="Arial,Helvetica"><font size=-1><b>Disclaimer</b>:
Before I get too far into this I should note that any of the news items
I post in this section are just that - news. Either I happened to run across
them via some mailing list I was on, via some Usenet newsgroup, or via
email from someone. I'm not necessarily endorsing these products (some
of which may be commercial), I'm just letting you know I'd heard about
them in the past month.</font></font></td>
</tr>

<tr>
<td>
<hr NOSHADE WIDTH="100%"></td>
</tr>
</table>
<a NAME="Superficie 0.5"></a><b><font face="Arial,Helvetica"><font size=+1>Superficie
0.5</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; Juan Pablo - May
17th 1999, 07:19 EST&nbsp;</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Superficie (surface) is a
little program for viewing and doing basic manipulation of 3D surfaces.
It reads a file with the data, and displays the object in a window, so
you can interact with it.&nbsp;</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Improved autoconf
scripts, bug fixes, mathematica package, etc.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.linuxsupportline.com/~superficie/">http://www.linuxsupportline.com/~superficie/</a></font></font>
<br>&nbsp;</td>
</tr>

<tr>
<td></td>

<td></td>

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

<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="Graphic Counter Language 2.20.3.D"></a><b><font face="Arial,Helvetica"><font size=+1>Graphic
Counter Language 2.20.3.D</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; G. Adam Stanislav
- May 17th 1999, 07:37 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>GCL is a new CGI programming
language that allows webmasters to create fully customized web counters
in as few as 15-20 lines of code. The webmaster provides images for the
digits in gif, xbm, or gd format, plus optional comma, head, tail, and
background images. The webmaster can choose how the various elements that
will comprise the final graphic counter are aligned. As of version 2.10,
the webmaster may compile images directly to the binary executable.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: 64-bit counter size
allowing the count to go up to trillions and a faster lexical analyzer.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.whizkidtech.net/gcl/">http://www.whizkidtech.net/gcl/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="MathMap"></a><b><font face="Arial,Helvetica"><font size=+1>MathMap</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>MathMap is a GIMP plug-in
which allows distortion of images specified by mathematical formulae. For
each pixel in the generated image, an expression is evaluated which should
return a pixel value. The expression can either refer to a pixel in the
source image or can generate pixels completely independent of the source.
MathMap not only allows the generation of still images but also of animations.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The MathMap homepage can
be found at</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1><a href="http://www.unix.cslab.tuwien.ac.at/~schani/mathmap/">http://www.unix.cslab.tuwien.ac.at/~schani/mathmap/</a></font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1>It includes a user's manual
as well as screenshots and examples.</font></font>
<br><font face="Arial,Helvetica"><font size=-1>Mark Probst</font></font>
<br><font face="Arial,Helvetica"><font size=-1>Student, Programmer</font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="Panorama Tools v1.7.2"></a><b><font face="Arial,Helvetica"><font size=+1>Panorama
Tools v1.7.2</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>Panorama Tools is a free
program which can be used to generate, edit and transform many kinds of
panoramic images. Its five main functionalities are:</font></font>
<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>Correction of images.</font></font></li>

<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>Automatic cropping of images
to brightest rectangle.</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Remove all sorts of barrel and/or
pincussion distortion.</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Correct light fall-off at edges
of your wide angle shots.</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Correct chromatic errors (colour
separation) of your lens.</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Correct chromatic errors (colour
separation) of your scanner.</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Skew/Unskew your images horizontally
or vertically.</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Correction of scanning slit
cameras.</font></font></li>
</ul>

<li>
<font face="Arial,Helvetica"><font size=-1>Perspective Control</font></font></li>

<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>Simulates a shift lens in software</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>For normal and fisheye lenses</font></font></li>
</ul>

<li>
<font face="Arial,Helvetica"><font size=-1>Remap from any projection to
any projection</font></font></li>

<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>Warp and unwarp normal, panoramic
and fisheye images.</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Convert equirectangular LivePicture
panoramas to QTVR-panoramas and vice-versa.</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Convert mirror images (BeHere-setup
or similar) to any panorama and vice-versa. Convert fisheye images to any
panorama and vice-versa</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Unwarp panorama sections (QTVR,
LivePicture, or VRML-cubes) to edit in GIMP, then rewarp and seamlessly
insert back.</font></font></li>
</ul>

<li>
<font face="Arial,Helvetica"><font size=-1>Adjust images into a panoramic
view</font></font></li>

<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>Generate full panoramic view
using any mixture of normal, fisheye and panoramic images.</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Built-in optimizer to find optimum
pitch/roll/yaw for a given image to fit a panorama</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Built-in optimizer to find optimum
correction settings for a given image.</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Built-in stitching tool to automatically
merge images into a panoramic view.</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Automatic colour adjustment
of to be merged images</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Extract any view (normal/fisheye/panoramic)
from any panorama (RealVR/QTVR/rectilinear/VRML-cubes)</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Insert any image (normal/fisheye/panoramic)
into any panorama (RealVR/QTVR/rectilinearVRML-cubes)</font></font></li>
</ul>

<li>
<font face="Arial,Helvetica"><font size=-1>Realtime Panorama Editor</font></font></li>

<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>The realtime Panorama Editor
is a separate Plug-in which makes the GIMP window an editable VR-viewer.
You can pan left and right, tilt up and down, and zoom in and out. At any
time you can use all GIMP tools to edit the image and instantly apply the
changes to the warped panoramic image while keeping the interactive window
open. This can be done with any view ("camera") and any panorama (see 'adjust'
above).</font></font></li>
</ul>
</ul>
<font face="Arial,Helvetica"><font size=-1>H. Dersch</font></font>
<br><font face="Arial,Helvetica"><font size=-1>-------------------------------------</font></font>
<br><font face="Arial,Helvetica"><font size=-1>Spherical Panoramas, Macro
Panoramas,</font></font>
<br><font face="Arial,Helvetica"><font size=-1>Free Panorama Software:</font></font>
<br><font face="Arial,Helvetica"><font size=-1>&lt;<a href="http://www.fh-furtwangen.de/~dersch">http://www.fh-furtwangen.de/~dersch</a>></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%"><a NAME="GIMP 1.1.5"></a><b><font face="Arial,Helvetica"><font size=+1>GIMP
1.1.5</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1><a href="ftp://ftp.gimp.org/pub/gimp/unstable/v1.1.5/">ftp://ftp.gimp.org/pub/gimp/unstable/v1.1.5/</a></font></font>
<br><font face="Arial,Helvetica"><font size=-1>GTK+ 1.2.x is required.
Grab it at: <a href="ftp://ftp.gimp.org/pub/gtk/v1.2/">ftp://ftp.gimp.org/pub/gtk/v1.2/</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>What's new? Lots.</font></font>
<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>Many UI changes, including revamped
tool options and togglable tools</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>All the PDB wrappers in the
app are autogenned by the pdbgen tool. There may be some brokenness as
a result of this, please report problems to <a href="mailto:bugs@gimp.org">bugs@gimp.org</a></font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Crop tool rework</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Persistant global parasites</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Some new plugins: rcm, gdyntext.
Plug-in bugfixes</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>OS/2 port merges</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>Lots more stuff that I forgot,
see ChangeLog</font></font></li>
</ul>
<font face="Arial,Helvetica"><font size=-1>-Yosh</font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="Gimp ImageMap Plug-In Release 0.9"></a><b><font face="Arial,Helvetica"><font size=+1>Gimp
ImageMap Plug-In Release 0.9</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>Release 0.9 of my plug-in
for the creation of clickable imagemaps is now available on my homepage:
<a href="http://home-2.consunet.nl/~cb007736">http://home-2.consunet.nl/~cb007736</a>
.&nbsp; This release contains new functionality (List of standard prefixes
in settings dialog, better handling of invalid input, 'view source' dialog
for easy copy/paste to other programs, etc.) and some cosmetic bugfixes.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>This is the last release
before 1.0. Version 1.0 will basically be the same as 0.9 but with all
(?) bugs removed. Any volunteers for seriously beta testing this release?</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Maurits Rijk</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="mailto:lpeek.mrijk@consunet.nl">lpeek.mrijk@consunet.nl</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="DiaCanvas 0.10."></a><b><font face="Arial,Helvetica"><font size=+1>DiaCanvas
0.10.</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>It's a generalization of
the very nice canvas used by the drawing tool DIA. It is about to offer
the same features, only at a more generic way.&nbsp; It's much more GTK
oriented than the original DIA.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>You can find it at:</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://web.inter.nl.net/hcc/klem">http://web.inter.nl.net/hcc/klem</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>I know it's not perfect at
all, but it will give a nice impression of what it's suposed to be.</font></font>
<br><font face="Arial,Helvetica"><font size=-1>Arjan Molenaar</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="mailto:arjan@inter.nl.net">arjan@inter.nl.net</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="tgif 4.1.9"></a><b><font face="Arial,Helvetica"><font size=+1>tgif
4.1.9</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; Bill Cheng - May
20th 1999, 10:50 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>tgif is a vector-based draw
tool, with the additional benefit of being sort of a web-browser. That
is, you can fetch drawings from a web server with it, and you can make
objects in your picture into hotlinks to other parts of the drawing, or
to other drawings accessible via http.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Fixed a few bugs
and added a new X default, Tgif.PSFontAliases to allow fake font names
in Tgif.AdditionalFonts. Using this X default, different encodings of the
same PS font can be used. Also added 3 new internal commands: set_allow_interrupt(),
size_named_obj_absolute(), and get_named_obj_bbox().</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://bourbon.cs.umd.edu:8001/tgif/">http://bourbon.cs.umd.edu:8001/tgif/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="Swift Generator 0.7.1"></a><b><font face="Arial,Helvetica"><font size=+1>Swift
Generator 0.7.1</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; Olivier Debon - May
23rd 1999, 17:45 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Swift-Generator is a utility
'ala' Macromedia Generator. It aims at dynamically replacing texts, fonts,
sounds and movie clips in either Template Generator files or standard Flash
files. This allows Webmasters to create dynamic content such as stock tickers,
news tickers, weather forecasts and the like.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Serious bug fixed.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.swift-tools.com/">http://www.swift-tools.com/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="Giram 0.0.17"></a><b><font face="Arial,Helvetica"><font size=+1>Giram
0.0.17</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; David Odin - May
26th 1999, 22:38 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Giram Is Really A Modeller.
It is a multi-purpose 3D modeller written with the GTK+ User interface
v1.2. It can load and save POV-Ray and AutoCAD DXF sources files. Some
basic modelling tools are already there and it is growing very fast.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Better and easier
to use Plugins interface, better support for DXF, Giram can now export
in S3D format, rotation can now be restrained to fixed angles, as well
as various bugfixes.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.minet.net/giram/">http://www.minet.net/giram/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="Install-Webserver 0.1"></a><b><font face="Arial,Helvetica"><font size=+1>Install-Webserver
0.1</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; Donncha O Caoimh
- May 26th 1999, 22:34 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Install-Webserver will install
Apache, PHP and MySQL for you. All you have to do is run one script.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: First release.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://members.xoom.com/xeer/">http://members.xoom.com/xeer/</a></font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Editors Note:&nbsp; It's
not graphics, but it is web based and for people like me, could be very
useful for testing things on my local box before uploading to my remote
web server.</font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="povfront 0.9-2"></a><b><font face="Arial,Helvetica"><font size=+1>povfront
0.9-2</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; Philippe P.E. DAVID
- May 26th 1999, 22:32 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>PovFront is a front-end for
POVray ray tracing engine. It manages all the available options as well
as the script only ones. It provides multiple rendering possibility and
trace of them. It will provide network rendering in the future.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: This is intended
to be the last version before 1.0. The next major version will introduce
network rendering.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://perso.club-internet.fr/clovis1/">http://perso.club-internet.fr/clovis1/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="Wacom Driver for XFree86 alpha 3"></a><b><font face="Arial,Helvetica"><font size=+1>Wacom
Driver for XFree86 alpha 3</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; Fred - May 26th 1999,
09:34 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>This is an XFree86 XInput
driver for Wacom tablets. It handles wacom IV and V protocols.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Corrected lens cursor
support for Intuos models.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.lepied.com/xfree86/">http://www.lepied.com/xfree86/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="xfsft 1.1.5"></a><b><font face="Arial,Helvetica"><font size=+1>xfsft
1.1.5</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; Ross_Campbell - May
25th 1999, 17:05 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>The Xfsft patches to X11R6
enable X11 servers (including XFree86) and the font server xfs to use TrueType
fonts and improves on the way X11 handles international scalable fonts.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: This version fixes
a bug in the previous version and includes a version of mkfontdir that
causes it to automatically build `encodings.dir' files.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/">http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="XawTV 2.44"></a><b><font face="Arial,Helvetica"><font size=+1>XawTV
2.44</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; funnyguy - May 25th
1999, 12:59 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>XawTV is a simple Xaw-based
TV program which uses the bttv driver or video4linux. It contains various
command-line utilities for grabbing images and avi movies, for tuning in
TV stations, etc. A grabber driver for vic and a radio application (needs
KDE) for the boards with radio support are included as well.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: fbtv: added -q switch,
started lirc support , changed float to double for X resources, fixed the
radio programs, webcam bugfix.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.in-berlin.de/User/kraxel/xawtv.html">http://www.in-berlin.de/User/kraxel/xawtv.html</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%"><a NAME="RenderDotC 3.1"></a><b><font face="Arial,Helvetica"><font size=+1>RenderDotC
3.1</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; Emil Mikulic - May
25th 1999, 12:01 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>RenderDotC (RDC) is a photorealistic
rendering toolkit which adheres to the RenderMan(R) standard. Using the
Reyes architecture, RDC supports advanced capabilities such as motion blur,
depth of field, trim curves, texture/environment/displacement mapping,
and programmable shading in the RenderMan Shading Language. The shader
compiler included in the toolkit compiles shaders all the way to machine
language for the highest possible performance.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Now available for
Linux</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.dotcsw.com">http://www.dotcsw.com</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="Terraform 0.3.1"></a><b><font face="Arial,Helvetica"><font size=+1>Terraform
0.3.1</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; RNG - May 25th 1999,
11:43 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Terraform allows you to create
fractal terrain (also called a height field) and transform it using a number
of algorithms. It is meant to be a tool for those who want to generate
digital terrain models for use in raytracing or other simulations. Terraform
features different views and colormaps and has a preview mode which features
interactive real-time rotation of the terrain object. Terraform is written
using Gtk-- (the C++ wrapper for Gtk+).</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Better dialogs,
faster 2D redraw, lots of bug fixes, and some internal code changes</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.peoplesoft.com/peoplepages/g/robert_gasch/terraform/">http://www.peoplesoft.com/peoplepages/g/robert_gasch/terraform/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="AleVT 1.4.5"></a><b><font face="Arial,Helvetica"><font size=+1>AleVT
1.4.5</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>&nbsp; froese - May 25th
1999, 11:03 EST</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>AleVT is an X11 teletext/videotext
decoder and browser for the bttv driver. It features multiple windows,
a page cache, regexp searching, built-in manual, and more. Also included
is a program to get the time from teletext.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://user.exit.de/froese/">http://user.exit.de/froese/</a></font></font>
<table WIDTH="100%" >
<tr>
<td VALIGN=TOP COLSPAN="4" BGCOLOR="#000000" cellpadding="0" cellspacing="0"><img SRC="gm/images/cleardot.gif" ALT="indent"  align=LEFT></td>
</tr>
</table>

<table WIDTH="100%" >
<tr>
<td ALIGN=RIGHT><font size=-2>&copy; 1999 by <a href="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</a></font></td>
</tr>
</table>

     ============================================================= !-->
<br><img SRC="gm/images/musings.jpg" height=50 width=245>
<table WIDTH="100%" >
<tr>
<td ALIGN=RIGHT WIDTH="100%"><font size=-2>&copy; 1999 <a href="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</a></font></td>
</tr>

<tr>
<td VALIGN=TOP BGCOLOR="#000000" cellpadding="0" cellspacing="0"><img SRC="gm/images/cleardot.gif" ALT="indent"  align=LEFT></td>
</tr>
</table>

<table BORDER=0 COLS=3 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP WIDTH="140" NOSAVE>
<table BORDER CELLSPACING=0 CELLPADDING=2 COLS=1 WIDTH="100%" HEIGHT="100%" BGCOLOR="#FE992B" NOSAVE >
<tr NOSAVE>
<td NOSAVE><font face="Arial,Helvetica"><font size=-1><a href="#A Follow Up to Vector Drawing Tools on Linux">A
Follow Up to Vector Drawing Tools on Linux</a></font></font></td>
</tr>

<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="#A Little Eye-Candy, Please (continued)">A
Little Eye Candy, Please (continued)</a></font></font></td>
</tr>
</table>
</td>

<td WIDTH="1" NOSAVE></td>

<td ALIGN=LEFT VALIGN=TOP NOSAVE>
<table BORDER=0 CELLSPACING=0 CELLPADDING=3 COLS=1 WIDTH="100%" NOSAVE >
<tr>
<td><b><font face="Arial,Helvetica"><font size=+1>more musings...</font></font></b></td>
</tr>
</table>
</td>
</tr>
</table>

<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="A Follow Up to Vector Drawing Tools on Linux"></a><b><font face="Arial,Helvetica"><font size=+1>A
Follow Up to Vector Drawing Tools on Linux</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>I received a lot of email
in response to my article on Vector Drawing tools for Linux.&nbsp; That's
good - it's really the only way I know anyone really reads this stuff.&nbsp;
Fortunately, it was all positive feedback, some praise and a lot of helpful
hints relating to the tools I discussed.&nbsp; Here is some of the email
I received, and my responses to them.</font></font>
<p>
<hr SIZE=1 NOSHADE WIDTH="85%">
<br><u><font face="Arial,Helvetica">One package I missed:&nbsp; ImPress</font></u>
<p><font face="Arial,Helvetica"><font color="#990000"><font size=-1>I'll
admit that ImPress has some bugs.&nbsp; Please give it a try sometime.</font></font></font>
<br><font face="Arial,Helvetica"><font color="#990000"><font size=-1><a href="http://www.ntlug.org/~ccox/impress/index.html">http://www.ntlug.org/~ccox/impress/index.html</a></font></font></font>
<p><font face="Arial,Helvetica"><font color="#990000"><font size=-1>Regards,</font></font></font>
<br><font face="Arial,Helvetica"><font color="#990000"><font size=-1>Chris</font></font></font>
<br><font face="Arial,Helvetica"><font color="#990000"><font size=-1><a href="mailto:ccox@acm.org">ccox@acm.org</a></font></font></font>
<p><font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse:</font></b>&nbsp;
Whoa.&nbsp; I didn't even know that ImPress was a vector tool.&nbsp; So
much for my research capabilities.&nbsp; I downloaded it and took a quick
look.&nbsp; I have to say, this may be the simplest tool of the bunch.&nbsp;
For someone who wants to create simple diagrams and then print them out,
this may just be the tool.&nbsp; It has a simple interface that includes
all the basic shapes you might want, plus support for embedded text and
Postscript output.&nbsp; It's not nearly as full featured as the TGIF or
XFig, but it is simple to use and requires no special configuration.&nbsp;
It doesn't even require compiling - it's a Tcl/Tk script!&nbsp; Very impressive.&nbsp;
Here are a few screen shots.</font></font>
<br>&nbsp;
<center><table BORDER=0 CELLSPACING=0 CELLPADDING=4 NOSAVE >
<tr NOSAVE>
<td NOSAVE>
<center><img SRC="gm/images/impress-1.gif" height=276 width=559></center>
</td>

<td>
<center><img SRC="gm/images/impress-2.gif" height=308 width=94></center>
</td>
</tr>

<tr>
<td>
<center><b><font face="Arial,Helvetica"><font size=+1>Impress main window</font></font></b></center>
</td>

<td>
<center><b><font face="Arial,Helvetica"><font size=+1>Toolbox</font></font></b></center>
</td>
</tr>
</table></center>

<p><font face="Arial,Helvetica"><font size=-1>The downloadable package
doesn't include much in the way of documentation, unfortunately.&nbsp;
The Web site only contains HTML-ized versions of the documentation that
comes with the package.&nbsp; But this small amount of documentation should
still be enough to get you moving pretty quickly in this package.&nbsp;
I did note that at least one part of the documentation was wrong:&nbsp;
double clicking on the color palette entry in the main dialog doesn't bring
up the color editing dialog.&nbsp; You need to double click on the Fill
button instead.&nbsp; Minor detail.&nbsp; The program still works pretty
good.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>My only question:&nbsp; how
did Chris get those pictures of Tux and the dinosaur into his example?&nbsp;
The dinosaur looks like it might be clip art (vector graphics), but the
Tux image looks like an imported raster graphic.&nbsp; There doesn't appear
to be a raster import feature in the version I have.&nbsp; Maybe its something
under development.</font></font>
<p>
<hr SIZE=1 NOSHADE WIDTH="80%">
<br><u><font face="Arial,Helvetica">KIllustrator</font></u>
<ol>
<li>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Killustrator
requires egcs 1.x OR gcc 2.8 since gcc 2.7.2 is so very broken for C++
code (ie no ANSI compliance).&nbsp; Not a problen on Redhat 5.x, since
the default C++ compiler on Redhat is egcs, and gcc is only for C code,
especially the old stable kernel series. 2.0.x</font></font></font></li>

<li>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>With KDE
installed already on my system, it was a standard source code install with
./configure ; make ; make install working flawlessly. (for 0.6.3 , there
are later versions)</font></font></font></li>

<li>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>It imports
Xfig drawings, apparantly, and exports GIF, eps, ppm, and xpm (it may support
more, but I don't have for instance tiff or png development libraries installed,
so configure may simple have selected to use those installed.) It also
saves to its own (XML?) based format.</font></font></font></li>

<li>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>For running
KDE applications you need the Qt libraries and the KDE libraries, nothing
more. To compile them Qt-devel, and kdesupport packages are needed.</font></font></font></li>

<li>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>For a
full KDE install, install packages in the order Qt, kdesupport, kdelibs,
all others in any order {kdebase, kdegames, kdegraphics, kdenetwork, korgransier,
klyx, kdeutils, kdetoys, kdemultimedia}</font></font></font></li>

<li>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Killustrator
was designed from the start as a KDE application so its unlikely to be
uncoupled. (unlike Gimp, which precedes GNOME). It only needs the kdelibraries
and Qt - it will happily run on any X11 system with them installed. Its
also the vector graphics package for the KDE office suite, and I think
0.6.x is the last release which will have a compile time option of running
without koffice support. (The website might need checked for that one)</font></font></font></li>

<li>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>As its
a koffice application, it can be emabedded in other applications using
the KOM/OP corba orb, which is usable independent of Qt and KDE, so it
may be possible to embed killustrator in another application understanding
KOM/OP.&nbsp; ie as is done throughout koffice (SuSE 6.1 has an alpha release
included)</font></font></font></li>
</ol>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>George
Russell</font></font></font>
<br><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1><a href="mailto:george.russell@clara.net">george.russell@clara.net</a></font></font></font>
<p><font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse:</font></b>&nbsp;
This was very helpful information, especially the bit about what libraries
are needed to run and what libraries are needed to compile KDE applications.&nbsp;
Unfortunately, since it appears that KIllustrator is being tied to another
suite of tools (KDE Office Suite), I doubt I'll try it myself.&nbsp; I
don't need all those other pieces.&nbsp; Maybe they'll be part of the next
full distribution I purchase, in which case I'll take a look at them then.&nbsp;
I just don't feel like downloading huge amounts of stuff I won't really
use anyway.</font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Your
comments about KIllustrator in the Linux Gazette are missleading.&nbsp;
Killustrator isn't "tied to KDE" as you indicate, it runs perfectly fine
on any desktop.&nbsp; KIllustrator, however, uses KDE as application development
framework, which is something completely different.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>This
has nothing to do with "being KDE-aware", it's all about writing applications.&nbsp;
KDE is not just a desktop, it's a set of libraries and tools that makes
it possible to&nbsp; write applications. By asking programmers not to use
modern tools to develop their applications, you force them to re-invent
the wheel over and over again.In the best case this will provide us with
applications similar to xfig and tgif (which both cannot compete with modern
standards). In the worst case this leads to no applications at all.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Come'on,
installing software on linux today means a few clicks in kpackage, that
can't be that hard ;-)</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Matthias
Ettrich &lt;<a href="mailto:ettrich@kde.org">ettrich@kde.org</a>></font></font></font>
<p><font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse:</font></b>&nbsp;
End users don't distiguish between "application development framework"
and dependencies.&nbsp; It's just symantics.&nbsp; KIllustrator is tied
to KDE because you need the appropriate KDE libraries to run the program
and/or compile it.&nbsp; The same is true of the Gimp - it's tied to Gtk.&nbsp;
The difference is that Gtk has been available in most Linux distributions,
and for a number of other Unix platforms, for some time now (at least the
past year).&nbsp; KDE is just now becoming part of most Linux distributions,
which will make grabbing the occassional extra KDE package from the net
a less complex issue in the future.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>This isn't to say KDE is
a problem to deal with, it's just not currently convenient to the end user.&nbsp;
Gnome applications have the same problem.&nbsp; But for users on non-Linux
platforms, for which neither Gnome or KDE are available, these applications
are of no use.&nbsp; It's your choice as a developer, of course.&nbsp;
I prefer to write for any Unix platform, or at least as many as I can reasonably
support.</font></font>
<p>
<hr SIZE=1 NOSHADE WIDTH="80%">
<br><u><font face="Arial,Helvetica">XFig</font></u>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>I read
in your LG article that you could not get xfig to export or print. Is your
problem perhaps that you have not got fig2dev installed?&nbsp; This program
is part of the transfig package (see the xfig docs).</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Yours,</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Jeroen
Nijhof</font></font></font>
<br><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1><a href="mailto:J.H.B.Nijhof@aston.ac.uk">J.H.B.Nijhof@aston.ac.uk</a></font></font></font>
<p><font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse:</font></b>&nbsp;
Looks like that could be the reason.&nbsp; I, indeed, do not have fig2dev
installed.</font></font>
<p>
<hr SIZE=1 NOSHADE WIDTH="80%">
<p><u><font face="Arial,Helvetica">Sketch</font></u>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>I've
just read the new issue of the Linux Gazette and your Graphics Muse column
and I was delighted to see that you investigated the vector drawing programs
available for Linux.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>As
the developer of Sketch, I was somewhat disappointed, as you can imagine,
when I read that you weren't able to install it. The points you raise are
perfectly valid, although most of the problems are caused by misleading
statements in PILs README, I think. I guess that everybody who is not very
experienced with building Python C-Extensions will have similar problems,
and I don't know how many people have given up installing Sketch because
of this.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>In
your column, you write:</font></font></font>
<blockquote><i><font face="Arial,Helvetica"><font size=-1>Sketch requires
Python v1.5.1 or later, the Python Imaging Library, v1.0b1 and Tcl/TK,
version 8.0 or later.&nbsp; To build the Python Imaging Library (aka PIL)
you can't use the RPM version of Python - you have to build the python
distribution from source and install it.&nbsp; This is because you have
to build PIL under the "Extensions" directory of the Python 1.5 directories.</font></font></i></blockquote>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>This is
not true, actually. The PIL README says that you should unpack the archive
in Python's Extensions directory, but you can in fact unpack it anywhere
you like (in your home directory for instance) and build it there.</font></font></font>
<blockquote><i><font face="Arial,Helvetica"><font size=-1>Although I have
Python 1.5 installed on my stock RH 5.2 box, there is no Extensions directory.&nbsp;
Plus, if I just made the directory where 1.5 is installed (/usr/lib/python1.5),
I'd have to build the PIL as the root user.&nbsp; Not a good thing.&nbsp;
So I downloaded the Python 1.5 source, built it, then tried the PIL buid.&nbsp;
It didn't work - something about missing a config directory.</font></font></i></blockquote>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>You don't
need the Python sources to build the PIL as long as you have a complete
installation of the Python interpreter and the C-header-files, libraries
and configuration files. RedHat has split Python into several packages.
The header files and configuration files are in the python-devel rpm, as
far as I can tell (I don't use RedHat, but I had a look at their ftp server),
so if you install that rpm you should be able to build PIL with these commands:</font></font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>% tar xvzf Imaging-1.0b1.tar.gz</font></font>
<br><font face="Arial,Helvetica"><font size=-1>% cd Imaging-1.0b1/libImaging/</font></font>
<br><font face="Arial,Helvetica"><font size=-1>% ./configure</font></font>
<br><font face="Arial,Helvetica"><font size=-1>% make</font></font>
<br><font face="Arial,Helvetica"><font size=-1>% cd ..</font></font>
<br><font face="Arial,Helvetica"><font size=-1>% make -f Makefile.pre.in
boot</font></font>
<br><font face="Arial,Helvetica"><font size=-1>% make</font></font></blockquote>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>and install
it under /usr/lib/python1.5/site-packages as described in the PIL README.
After that, installing Sketch itself should be simple, I hope :)</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>All
in all, I have to thank you for the article. As a developer, it's difficult
to guess where user's may have problems and the information you provide
is exactly what I need to make Sketch easier to install.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>I really
hope that you give Sketch another try and perhaps write about it and the
other programs again in a future graphics muse column.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Bernhard
Herzog &lt;<a href="mailto:sketch@online.de">sketch@online.de</a>></font></font></font>
<p><font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse:</font></b>&nbsp;
Attention developers - this is <u>exactly</u> the way you should respond
to end user and press criticisms!&nbsp; I applaud Bernard for taking my
issues to heart and offering such useful feedback.&nbsp; I hope, for my
own projects, that I reply to criticisms' in the same professional and
meaningful manner.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Oh, and Bernard's feeback
was perfect.&nbsp; I managed to get things running pretty quick with his
help.&nbsp; Note that he is correct about the Red Hat RPMs - if you are
using the Red Hat 5.2 distribution you may not have automatically installed
the Python development package, which you need to build PIL.&nbsp; You'll
know this is the case if you try to run the Makefile.pre.in step (above)
and get a message about</font></font>
<blockquote><tt><font size=-1>No rule to make target `/usr/lib/python1.5/config/Makefile</font></tt></blockquote>
<font face="Arial,Helvetica"><font size=-1>That would be because the "config"
directory for Python only gets installed (using RPMs) with the <a href="http://rufus.w3.org/linux/RPM/redhat/5.2/i386/python-devel-1.5.1-5.i386.html">python-devel-1.5.1-5
RPM for i386 </a>package.&nbsp; Don't forget to also install the three
header files from PIL into the python include directories.&nbsp; The INSTALL
file for Sketch describes this simply enough.&nbsp; After getting the Python
development package and Python Imaging Library installed, the build for
sketch was very simple.&nbsp; Just folllow the steps in the README.&nbsp;
Sketch itself is easy to build.&nbsp; It's all the bits and pieces it requires
from Python that were a bit of a pain to get going.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>One other thing:&nbsp; make
sure you build with the 0.6.0 version.&nbsp; I tried with an earlier 0.5.5
version and had some build incompatibilities with my Python 1.5.1 installation.&nbsp;
You can get around these easily enough, but its even easier if you just
grab the 0.6.0 (or later) source code.</font></font>
<center>
<p><img SRC="gm/images/sketch.gif" VSPACE=10 height=424 width=583></center>

<p><font face="Arial,Helvetica"><font size=-1>Sketch's interface is fairly
simple to learn.&nbsp; Unlike TGIF or XFig, Sketch is more of an artists
tool, something like Adobe Illustrator (it even reads and writes Illustrator
files!).&nbsp; I wouldn't really put sketch in the same category as the
other two - they seem meant for different uses.&nbsp; Being more of an
artist (or at least a wanna-be artist), I really liked Sketch.&nbsp; Once
I managed to get it running.</font></font>
<p>
<hr SIZE=1 NOSHADE WIDTH="80%">
<p><u><font face="Arial,Helvetica">And just a little praise...</font></u>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>This
is a letter from a real Graphics Muse fan!&nbsp; You are doing a great
job with your column in the Linux Gazette, and all that monthly.&nbsp;
Congratulations!</font></font></font>
<p><font face="Arial,Helvetica"><font size=-1><font color="#993300">'Muse:</font>&nbsp;
Thanks!</font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Sometimes,
I think of contributing more to the Linux community myself, but my daytime
job eats up most of my time/energy.&nbsp; How can you make such a neat
article every month?&nbsp; Where do you get your energy from? Kryptonite?&nbsp;
:-)</font></font></font>
<p><font face="Arial,Helvetica"><font size=-1><font color="#993300">'Muse:</font><font color="#000000">&nbsp;
No, but a lack of anything that remotely resembles a social life helps.&nbsp;
As for your contribution to the cause - you're making it now, by providing
feedback to me.&nbsp; Don't underestimate the importance such feedback
plays.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Why
I'm really writing this letter...</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>In
[last] month's Gazette you compare tgif and xfig.&nbsp; In brief:&nbsp;
Well done.&nbsp; Great job!&nbsp; I liked especially the sentence that
your preference towards tgif is _not_ mirrored in the numerical "test"-result.&nbsp;
If every software comparison/test were done so carefully, we would have
far fewer flame wars in the news groups.</font></font></font>
<p><font face="Arial,Helvetica"><font size=-1><font color="#CC0000">'Muse:
</font><font color="#000000">Maybe,
but human instinct is toward clarification from the point of view of the
reader.&nbsp; Which means argument is almost guaranteed at some point (at
least between relatively intellectually motivated individuals).&nbsp; But
I digress.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>As
I am a long-time (old-time?) user of both programs, I just want to add
some fine points to your careful judgment.&nbsp; Why the heck would you
want to use both?&nbsp; Well, once you are in the boat, you must row.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Almost
all of the documents I produce are typeset with LaTeX.&nbsp; From time
to time I have to include simple drawings.&nbsp; Now, because TeX produces
such wonderful looking documents, the graphics have to match that.&nbsp;
This means all the text (e.g. labels, legend) in a graph must be typeset
with TeX.&nbsp; Using fonts from a different family does not look good.&nbsp;
The problem is that TeX's graphing capabilities (i.e. the picture-environment)
are very limited.&nbsp; What the user wants is the full power of Postscript.&nbsp;
That said, xfig and it's companion programs transfig, and fig2dev are a
blessing.&nbsp; They allow for exactly what I have been describing.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>The
typical data-flow looks like this:</font></font></font>
<p><tt>&nbsp; editor&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
TeX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
dvips</tt>
<br><tt>|-------> doc.tex ---------------+----> doc.dvi ---+----> doc.ps</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
^&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
^</tt>
<br><tt>&nbsp; xfig&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
fig2dev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|</tt>
<br><tt>|-------> graph.fig ----+---> graph.tex&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+---> graph.ps ----------->+</tt>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>The
dependencies between the files are automatically updated with a Makefile.&nbsp;
OK, now you know why I am stuck with xfig: it is the only program that
can separate the text-output (read: TeX) from the graphic-output (read:
Postscript).</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Enter:
Postscript files.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Imagine
a colleague walking in and saying: "We should include one of these fancy
XYZ [insert program name yourself] outputs, you know that thing can produce
Postscript-files."&nbsp; Oh, oh -- this is bad news.</font></font></font>
<ol>
<li>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Sad but
true Postscript is not always Postscript.&nbsp; Some software has a very
particular idea of what makes up the Postscript-standard.</font></font></font></li>

<li>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Sure,
the program's output looks fancy, but it cannot be published without some
editing.&nbsp; How to edit a Postscript file?&nbsp; Lucky if you have Wolfgang
Glunz's pstoedit [currently version 3.03].&nbsp; <i>pstoedit</i> translates
a ps-file with the help of ghostscript into a tgif-compatible file.&nbsp;
For a long time pstoedit's tgif-driver was the only one leading from un-editable
Postscript back to an editable format.&nbsp; Later it was the best driver
to do that.&nbsp; Today the xfig-driver does as well as the fig-driver.&nbsp;
But I started editing my ps-files a long time ago, and that is why I am
using tgif.&nbsp; Once upon a time I was the only tool to do what I needed.</font></font></font></li>
</ol>
<font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>You see,
the stories behind the usage of this tool or that tool can be quite convoluted.&nbsp;
The numbers of an "arbitrary" test may not tell you what you need.&nbsp;
Therefore, your xfig versus tgif comparison is a shining example of how
to write about performance, usability and all that.</font></font></font>
<p><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>Christoph
L. Spiel</font></font></font>
<br><font face="Arial,Helvetica"><font color="#CC0000"><font size=-1>cspiel@ccmr.cornell.edu</font></font></font>
<p><font face="Arial,Helvetica"><font size=-1><font color="#993300">'Muse:</font>&nbsp;
All very good points!&nbsp; So often we measure tools objectively, using
what we think are absolute comparisons of speed or performance.&nbsp; But
we often fail to measure the seemingly intangible value of comfort that
lies within a tool for the individual user.&nbsp; Perhaps we should look
at software less as abstract pieces of pseudo-machinery and more as extensions
of our daily lives.&nbsp; We give life to our automobiles by referring
to them as "she".&nbsp; And if that automobile provides no comfort, then
it has limited value to the owner.&nbsp; Comfort, it seems, should be an
intrinsic part of our measurements of a software tool's usefulness to the
individual.</font></font>
<br>
<hr SIZE=3 NOSHADE WIDTH="100%">
<br><a NAME="A Little Eye-Candy, Please (continued)"></a><b><font face="Arial,Helvetica"><font size=+1>A
Little Eye Candy, Please (continued)</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>In my fvwm-menu file I've
added the following entries to run xscreensaver:</font></font>
<p><tt><font size=-1>AddToMenu XScreensaver "Screen Saver"&nbsp;&nbsp;&nbsp;
Title</font></tt>
<br><tt><font size=-1>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Matrix"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Function&nbsp;&nbsp;&nbsp; ScreenSaverMatrix</font></tt>
<br><tt><font size=-1>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "XSaver On"&nbsp;&nbsp;&nbsp;&nbsp;
Function&nbsp;&nbsp;&nbsp; ScreenSaverOn</font></tt>
<br><tt><font size=-1>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "XSaver Off"&nbsp;&nbsp;&nbsp;
Function&nbsp;&nbsp;&nbsp; ScreenSaverOff</font></tt><tt><font size=-1></font></tt>
<p><tt><font size=-1>AddToFunc ScreenSaverMatrix</font></tt>
<br><tt><font size=-1>+ "I"&nbsp;&nbsp; Exec&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
exec xscreensaver -no-splash &amp;</font></tt>
<br><tt><font size=-1>+ "I"&nbsp;&nbsp; Exec&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
exec xscreensaver-command -select 1&amp;</font></tt>
<p><tt><font size=-1>AddToFunc ScreenSaverOn</font></tt>
<br><tt><font size=-1>+ "I"&nbsp;&nbsp; Exec&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
exec xscreensaver -no-splash &amp;</font></tt><tt><font size=-1></font></tt>
<p><tt><font size=-1>AddToFunc ScreenSaverOff</font></tt>
<br><tt><font size=-1>+ "I"&nbsp;&nbsp; Exec&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
exec xscreensaver-command -exit&amp;</font></tt>
<br><tt><font size=-1>+ "I"&nbsp;&nbsp; Exec&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
exec xset s on</font></tt><tt><font size=-1></font></tt>
<p><font face="Arial,Helvetica"><font size=-1>The first entry, Matrix,
will run only the xmatrix screensaver immediately and leave it running.&nbsp;
The second entry just starts the screensaver using the first entry in my
programs list in $HOME/.xscreensaver and allows it to cycle through the
list.&nbsp; This also starts only when the configured inactivity period
has expired.&nbsp; The last entry shuts xscreensaver off and returns my
X servers screen blanker back on.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>The three programs that come
with xscreensaver - the xscreensaver daemon, xscreensaver-demo and xscreensaver-command
- also include extensive man pages in HTML&nbsp;format.&nbsp; It seems
a bit odd that there are som many options for something as simple as a
screensaver, but they are all useful options.&nbsp; Be sure to read through
the documentation before trying to set up running the screensaver from
your window manager as I&nbsp;have done in the examples above.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Some of the other intersting
hacks I have configured are:</font></font>
<center><img SRC="gm/images/decayscreen.jpg" VSPACE=10 height=432 width=576>
<br><b><font face="Arial,Helvetica">Decay Screen</font></b>
<p><img SRC="gm/images/spotlight.jpg" VSPACE=10 height=176 width=252>
<br><b><font face="Arial,Helvetica">Spotlight</font></b><br CLEAR=BOTH>
<BR>
<br><img SRC="gm/images/radar.jpg" VSPACE=10 height=432 width=576>
<br><b><font face="Arial,Helvetica">Radar</font></b></center>

<p><font face="Arial,Helvetica"><font size=-1>It's just a fun thing to
play with, not much else really.&nbsp; If you dig into the code for some
of these hacks (and xscreensaver itself), however, you might just learn
quite a bit about how low level graphics work under X.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Enjoy!</font></font>
<br>&nbsp;
<table WIDTH="100%" >
<tr>
<td VALIGN=TOP COLSPAN="4" BGCOLOR="#000000" cellpadding="0" cellspacing="0"><img SRC="gm/images/cleardot.gif" ALT="indent"  align=LEFT></td>
</tr>
</table>

<table WIDTH="100%" >
<tr>
<td ALIGN=RIGHT><font size=-2>&copy; 1998 by <a href="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</a></font></td>
</tr>
</table>

<br><img SRC="gm/images/webwonderings.jpg" height=50 width=245>
<table WIDTH="100%" >
<tr>
<td ALIGN=RIGHT WIDTH="100%"><font size=-2>&copy; 1999 <a href="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</a></font></td>
</tr>

<tr>
<td VALIGN=TOP BGCOLOR="#000000" cellpadding="0" cellspacing="0"><img SRC="gm/images/cleardot.gif" ALT="indent"  align=LEFT></td>
</tr>
</table>

<table WIDTH="100%" >
<tr>
<td VALIGN=TOP COLSPAN="4" BGCOLOR="#000000" cellpadding="0" cellspacing="0"><img SRC="gm/images/cleardot.gif" ALT="indent"  align=LEFT></td>
</tr>
</table>

<table WIDTH="100%" >
<tr>
<td ALIGN=RIGHT><font size=-2>&copy; 1999 by <a href="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</a></font></td>
</tr>
</table>


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

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

<center>
<H1><font color="maroon">Linus at Fermi Lab</font></H1>
<H4>By <a href="mailto:adler@bnl.gov">Stephen Adler</a></H4>
</center>
<P> <HR> <P>  

<br>
<table align="left">
<tr><td>
<img src="gx/adler.fnal/comdex9977Small.jpg" align="center" hspace=20 vspace=10>
<caption align="bottom">
<font size=-1>
FNAL main building. It's 5:28pm and I'm rushing to get to Ramsey
Auditorium, which is through and on the other side of the main
building.
</font>
</caption>
</table>
<table><tr><td>
<center>
<img src="gx/adler.fnal/comdex9992Small.jpg" hspace=20 vspace=10>
</center>
<tr><td>
<br>
<font size=+1>
<center>
<b>Linus at Fermi Lab</b>
</center>
</font>
<tr><td>
<br>
<br>
<font size=-1>
Authors note: Slashdot posted this page on their site but the article
really starts at <a
href="http://ssadler.phy.bnl.gov/adler/Torvalds/comdex99.html">http://ssadler.phy.bnl.gov/adler/Torvalds/comdex99.html
</a>. It's an introductory page which puts my FNAL and Comdex write-up into
perspective. If you are only interested in what Linus had to say at FNAL,
then just read on.
<P>
Editor's note: In the original article on Adler's website, many of the 
inline images display a larger copy of themselves when clicked on.  These
larger images are not included in the <EM>Linux Gazette</EM> version, to
keep the total size of the <EM>Gazette</EM> small.
</font>
</table>
<br clear="left">
<hr>
<center>
<table>
<tr><td>
<img src="gx/adler.fnal/comdex9997Small.jpg" hspace=20 vspace=10>
<caption align="bottom">
<font size=-1>
A clear day for flying. Long Island Islip Airport lies ahead.
</font>
</caption>
</table>
</center>

<p>

April 19th, the day of Linus's talk at FNAL, dawned to be a gorgeous
day on Long Island. I'm going to fly Southwest, the 1:20pm flight,
through Baltimore, and transfer to the Chicago Midway flight. I'm to
arrive in Chicago at 4:30pm. Linus's talk is scheduled for
5:30pm. Trying to get my reservation setup to fly out to Chicago was a
mess. Originally, Linus was scheduled to talk at 7:30pm. And I planned
my flight scheduled around that. (4:30pm arrival, 7:30pm talk, no
problem.) But, that changed when I got a message about Linus's talk
being rescheduled. By then I had no choice except brave the tight
time table. So, I had a relaxing morning, enjoying some quality time
with my wife. Flight time came and off to the airport I go. With such nice
weather, all flights were on time. (The Free Software Gods were
looking after me...)
<p>

<img src="gx/adler.fnal/comdex9996Small.jpg" hspace=20 vspace=10 align="right">

4:25pm arrives, the plane wheels up to the midway terminal gate, and
bam, I'm off running. Those 1970's or 80's commercials of OJ Simpson
running through airports was the title theme of my thoughts at the
time. (Where is the running lane!!!) I hit the National Car Rental
booth. Two rather relaxed attendants are shooting the breeze. I
quietly but firmly tell one of them that I have a rental
reservation. ("Get me my car <b>now</b>!!!") The attendant gets a little
nervous, shuts up and starts processing my car rental. The rental cars
are located in an adjacent parking lot just out side the main terminal
building. No need wait for a bus to take me to the car rental lot,
(again, the Free Software Gods are looking over my shoulder...) Within
10 minutes after landing, I'm in my car looking for a way out of the
airport. For those of you familiar with the Chicago area, I got on I-55
south (south west really...) to I-355. I-355 north to I-88 west. Turn off
on 59 heading north. From there you hit Batavia rd west and bang, your
at the FNAL main building. 4:45pm, on I-55. 5:00pm 355 north, 5:08 I-88
west. 5:18pm 59 north. 5:20 pm Batavia rd. 5:25pm FNAL main
building. 2 minute walk to Ramsey Hall, site of Linus's talk. (Mind
you I did not break any traffic laws. The Free Software Gods will
attest to that. You can take the issue up with them.)

<p>

<br clear="right">
<table align="left">
<tr><td>
<img src="gx/adler.fnal/comdex9991Small.jpg" hspace=20 vspace=10>
<caption align="bottom">
<font size=-1>
My first shot of Mad Dog. Dan Yocum is on the left and G P Yeh on the
right.
</font>
</caption>
</table>
Ramsey hall is an elegant auditorium. It has a red motif to it. Red
carpeting and seating is the cause of that. Many a physicist have given
talks in this auditorium, including <a
href="http://www.amazon.com/exec/obidos/ASIN/0553380168/o/qid=924795188/sr=2-1/002-2436774-1420814">
Stephen Hawking</a>. Now it's Linus's turn. The guy who organized this
event is named Dan Yocum. He wrote to me in an e-mail that it was easy
to get Linus to come out to FNAL. He e-mailed Mad Dog an
invitation. ("It's easy, I just asked!") I
later learned that Linus and Mad Dog had a rather thorough tour of the
Lab. This included some accelerator facilities, one of the large
collider detector facilities (CDF) and the computing center. Now it
was Linus's turn to entertain some question from the audience. In
some e-mail exchanges with Dan, I told him that I may not make it to
Linus's talk and that his Comdex keynote address would probably be
very similar. Dan replied telling me that Linus hates speeches. His
plan was to make this a question and answer session. He wanted to hear
from the physicists and not to hear himself talk.
<br clear="left">

<p>
<table align="right">
<tr><td>
<img src="gx/adler.fnal/comdex9990Small.jpg" hspace=20 vspace=10>
<caption align="bottom">
<font size=-1>
Linus sitting amongst curious Ph.D. graduate students answering
questions before his talk. This shot was taken seconds after I saw
Linus for the first time.
</font>
</caption>
</table>
You have to walk through FNAL's main building to get to Ramsey. I got
there, went down to the front seats so that I could get a good
position from where to take some snaps of Linus giving his talk. I
put my notebook down and looked around to see if Linus was around. I
was sitting on the right side of the auditorium. I looked over to the
left and noticed a cluster of people. The first one who stood out was
this guy with rather long beard, and frizzy white hair. It took a
minute, but soon realized he was "Mad Dog". Out comes the camera and I
walk (rush?) over to the left side of the auditorium, go right up to
Mad Dog and take his picture. He looked at me like, who the hell are
you! I waved at him or something to try and let him know that I'm a
friendly guy, not this weirdo maniac running around taking pictures
of strangers. I then turn to my left and sitting amongst a bunch of
young guys, I see Linus. I remember the phrase going through my head,
"There his is, Linus". He didn't notice me, he was too busy talking to
the guys who were sitting next to him. Again, I take my camera, try and
get as close as I can, zoom in and snap, I take another picture. I'm
in this rather "fanatic" state right now. I'm not really thinking
clearly, and all I can seem to do is take pictures of the guys who in
reality are total strangers. I stand around and try and take some more
pictures. I then go over to Mad Dog, introduce myself, give him my
card and ask a bunch of dumb questions he really does not want to
answer. Finally, my mental state settles down a bit, and I manage to
get myself back over to my side of the auditorium from where I sit
down, take out my note book, clear my head, and try to take some
sensible notes of the talk.
<br clear="right">

<p>

<img src="gx/adler.fnal/comdex9989Small.jpg" hspace=20 vspace=10 align="left">

With that, Dan Yocum gets up, and starts the standard Fermi Lab/Ramsey
Hall tradition in introducing speakers. He introduces John Hall, and
in turn John introduces Linus. (I've seen it worst at BNL where there
were 4 introductory speakers ...) John gets up and starts in with this
story about how he met Linus 5 years ago at a DECUS meeting in New
Orleans. He gave some specifics about getting Linus's trip financed,
(I thought I had it tough) and then some detail of Linus at the New
Orleans convention. The one bit of John's introduction which stuck in
my mind was his piano analogy. If one sits down to play a piano, the
pianist can get a feeling for the quality of the piano as he plays
it. A rough piano has a rough feeling, a great piano has a great
feeling. It's in the touch. At the New Orleans conference, a Linux
installation was underway, I believe headed by Mad Dog himself. He
heard a voice over his should saying "Can I help you?". It was Linus,
offering assistance in getting his Linux kernel up and running. Mad
Dog tells the audience that within about 10 minutes, with Linus's help,
Linux was up and running. (I can't remember if Mad Dog mentioned the
hardware specs of this machine.) In any case, Mad Dog, keyboarding on
this machine, was getting that first feel of Linux. 10 minutes later
he made a mental note. Linux was going to be inevitable. It has that
feel of a great piano. He continues on to talk a bit about his
relationship with Linus which is clearly a deep one.  With that, he
ends and Linus comes up on stage to start his talk. Or rather his
question and answer session.

<p>

Linus starts by saying he does not like podium and thus will not stand
behind one for this Q&A session. He has this wireless mike which Dan has
hooked him up with. I also notice that the FNAL media guys are
recording this session for posterity, so if you don't like my write-up,
you can contact them to get a full playback of Linus's talk. In
any case, Linus starts off with a very brief history of Linux. It was
1992(?), he had a PC, but there was no Unix available for it. Since,
and I quote "he was the best programmer since Jesus," he would fix
that. He would write his own Unix like OS. So off he went and wrote
it. The concept that need fosters development was key in getting the
Linux kernel going and has been key through out all of its
development.  And then he did something which was, as he says, the
most important decision of his life. He posted the code on the
Internet, via some news group and asked for feedback. That he got. He
expected people to download his code, run it and tell him whether it
works or not. "Linus, this really sucks!" He got some of those
responses; but more importantly, he got code back in the form of patch
fixes and enhancements. And from then on it was history. With that he
ends his introductory talk and starts in on the questions.

<p>

Dan Yocum starts it off by asking about the 2.3 kernel and/or plans
for large files systems (i.e. file system journaling.) A good question,
since in High Energy and Nuclear Physics there is a big need now for
this type of file system. Petabytes of data will soon be recored and
file systems which can handle this type of data load will be
necessary. (Maybe not a petabyte file system, but terabyte file systems
will be a must.) Linus's answer to that question was that up to this
point, large files systems were not an issue. He reminded us that back
in the days when he was starting the kernel, there was a 64 Meg
partition limit which he had to solve. He then said something about
how new users bring new problems and how this was the "development
model" for the kernel.
<br clear="left">

<p>

At this point my notes get rather fuzzy so I'm just going to
paraphrase from what I can decipher from them.

<p>

Someone asked about security issues with Linux. Linus said that people
are keeping after the bug fixes. From my personal experience with Linux
and the Red Hat distribution, this is the case.

<p>

Someone asked about addressing more than 2 Gigs on a 32 bit
system. His answer was to use a 64 bit machine. Linux is fully 64 bit
compliant.

<p>

There was a complicated SMP question to which the answer was that 2.0
and to some extent 2.2 are really a single spinlock SMP
implementation. Linus will work on making it more fine grain.

<p>

<img src="gx/adler.fnal/comdex9987Small.jpg" hspace=20 vspace=10 align="right">
He then talked about how one should not design for the theoretical
perfect implementation since this will screw up another
implementation. The kernel lives in a world of diverse needs and one
needs to try and fit them all in. Therefore no one need gets all the
attention but all needs are tended to some extent. This type of
clear-headedness of Linus is an indication to me as to why the kernel
has gotten as far as it has.

<p>

There was a question about capabilities. I believe this is like
splitting up the super user function into separate users through
access control lists. Theoretically it's a good idea, but in practice
it's too complex. Most of the time, one sets up the system in the wrong
way, making it less secure. He claimed it's a feature which needs to be
added to Linux just so that one can check it off on the "Linux can
do this" matrix, but then have a README on how to disable it.

<p>

Someone asked the copyright question. Linus talked about the license
he released his original kernel code under. Basically, its intent was
that anyone could use it, distribute it and modify it. But the
modifications had to be freely distributable as well. The people were
starting to sell the Linux kernel at computer shows by charging a
couple of bucks for the floppies. They asked Linus if this was
OK. Clearly, Linus said that it was obviously OK, since he wanted the
code to be distributed and could not expect people to lose money on
the distribution cost. So he modified his license. I'm not sure
whether he modified his license further, but the fact is that he
eventually switched over to the GPL license. He said that it was an
awful piece of legalese but it fulfilled all his requirements. Also,
the one bit of software which it really depended on was the GNU C
compiler. That played a role in the adoption of GPL for the Linux
code. Again, the main emphasis was that the source code had to be
available to the "community" as well as the modifications, which were
brought back into the Linux source repository.

<p>

A question on the Merced was asked. Linus said he would not sign any
Non-Disclosure Agreements. The reason for this is that he does not want
to be put in the situation where he cannot release his source code due
to conflicts with an NDA. A very wise choice on his part. He lets
others sign the agreements, which has been done by others. Notably,
there are some people at CERN who are working on the Merced
port. Linus defended Intel's move on asking for NDA's to be signed. It's
done so that Intel can keep control over the flow of the technical
information into the public domain. Once the CPU has been fully
released by Intel into the "market," then they certainly want every one
to know how to use it. But before that, it's clear that they need to
keep their specs under wraps to keep the competition at bay. The big
problem with the Merced is in the compiler technology sector. All the
kernel needs is a version of gcc that will generate
a Merced executable. It's up to the gcc guys to get it to generate
Merced instructions. Linus is confident that once gcc is
ready, which should be by the time the Merced is released, then the
Linux port will follow within a couple of days or weeks.

<p>

Someone asked what is better, one really fast CPU or many not so fast
CPUs. Linus's answer was that the best SMP system for the Linux kernel
is a dual CPU one. If one were to build a Beowulf type cluster, one
should do so using a set of dual CPU systems.

<p>

There was a question about SVGAlib -- what its viability was for the
future. Linus's response to that was that 2 or 3 days after working
with X11, he decided never to go back to console mode. All he needs,
graphics wise, is to have 15 xterms open with the kernel compiling in
one of them. He kept reminding the audience that all he really likes
to do is compile the kernel. The fvwm2 window manager coupled to 15
concurrently opened xterms was all the graphics functionality he
needed. This question was one directed towards games. He said that
there was a good OS for running games called Windows. He claimed that
MS admitted to the fact that they could not write an OS very well and
basically kept out of the way of the software games developers by
letting them take over the system when the game app was active.

<p>

A question was asked about how he decides whose code is to be included
in the kernel. He said that drivers were no-brainers. Since the code sits
outside the kernel, he tends to include them without much
thought. When it comes to adding something that exists in kernel
space, then his main requirement is that there be at least one person
who will take charge in maintaining it. My take on this is that items
like the TCP stack or the kernel version of NFS etc. are coordinated
and maintained by someone besides Linus.

<p>

<br clear="right">
<img src="gx/adler.fnal/comdex9981aSmall.jpg" hspace=20 vspace=10 align="left">
A question was asked about the recent benchmark comparison between NT
and Linux. The
<a href="http://www.mindcraft.com/whitepapers/nts4rhlinux.html">
benchmark</a> was done by Mindcraft, and the results showed that Linux
was 2 or 3 times slower at file and web serving than NT. There was an
interesting story behind this. Linus was paneling on a session down
in Atlanta. There was a Microsoft representative on the panel. Linus
was presented with this benchmark report from Mindcraft, who seem to
have a lot of credibility in the IT world regarding doing
benchmarks. The report was presented to him just as he was sitting
down at the panelist table. This left Linus in a rather awkward
position of having to defend Linux against NT with this Microsoft Rep on
the same panel and not having any time to digest these benchmarks. It
turns out later that this company specializes in Microsoft OSes and
has done a series of benchmarks comparing NT with Solaris etc. All the
benchmarks come out in favor of NT and the large Unix companies (Sun
etc.) have to mount a PR campaign to refute the results. Linux in this
case has no corporate machine backing it up with resources to fight
back. What surprised Linus was that the journalists came out
defending Linux. It was the journalists who came out questioning the
validity of this Mindcraft benchmark. As of this time, it seems that
the benchmarks are going to be performed again, this time with an
equally well-tuned Linux system.

<p>

Someone asked him if he ever has talked with Bill Gates. His reply was
that, no he has not, but if he did, he would "be talking money." (His
palms rubbed together as he was finishing his answer.)

<p>

More questions on benchmarks. The conclusion to his answer on
benchmarks is that the best benchmark is your own application. It's not
easy since this requires the vendors to give you access to their
hardware and you have to do some porting. The bottom line is that your
own application is truly the best benchmark.

<p>

Someone asked about frame buffers or rather how one could get a DVD
app ported to Linux. Linus said that most of the work is in setting up
the hardware. Once done, the hardware takes care of getting the DVD
imagery onto the screen. The trick is to get this to interface to
X11. He didn't seem to have any immediate plans on taking on this
project. Also he mentioned that DVD encryption is a trade secret. I
assumed this means that an open source application would be difficult
to implement.

<p>

Someone who works at Lucent asked a question related to drivers for
modems made by Lucent. The question lead to a discussion about how one
can get companies to release the specs of their hardware. Linus made a
point about how sometimes it's not a question about keeping the
engineering design behind some gizmo a secret and thus keeping a market
advantage. But rather one wants to keep secret the bad engineering
that went into making the gizmo. He hypothesized an example of a gizmo
that in order to get it to run, you need to write to xyz registers in
some specific order, then toggle some interrupt lines, followed by
holding the reset bit in the CSR high for 30 clock cycles
etc. etc. This kind of kludgey design is the real reason behind not
releasing specification. It's all hidden in the binary version of the
driver.

<p>

Someone asked about UDI, Unified Driver Interface. Linus replied that
it's in the Nice Theory stage but he is keeping an open mind about
the idea.

<p>

<img src="gx/adler.fnal/comdex9982Small.jpg" hspace=20 vspace=10 align="left">
Some question was asked which led to some interesting statements by
Linus. This regards software development through Internet
collaboration. Talk is very cheap, and he never takes anyone at face
value. The best way to collaborate with Linus is to show him code
that works. That is what he want to see. Otherwise, my guess is that
unless your ideas are of obvious importance, they will go ignored.

<p>

A question came up about GUIs. He as no interest in GUI design or
interfaces, and has no influence in current GUI theological
discussions ongoing right now. (My guess is that this refers to
GNOME vs. KDE type of theoretical friction.) He is happy using fvwm2
and his 15 xterms to apply patches to the kernel and rebuild it again
and again.

<p>

I asked a question about how he maintains the Linux source
repository. I wanted to know if he used CVS. His reply was that he has
his own method. I should think of it as lovingly hand-crafted
maintenance of the kernel source. He does not use CVS because he does
not need it. He is the only one who applies patches or updates the source
code, and he does not care to use the history logging mechanism CVS
provides. He does use CVS at work, so he knows what it's capable of
doing, but chooses not to use it.

<p>

By this time we started to run out of time, and a few more questions
were asked. From these questions, the following general statements
were given by Linus. MS is a good OS for running games. The bottleneck
in the development cycle of the kernel was the users. A project
should never grow beyond the scope of what can be kept in one person's
head. My take on this is that the kernel is broken up into many
"projects," each one with a leader in charge of it. And whatever that
one person is in charge of, he must keep the whole concept and source
code layout/structure/functionality in his head. Keeping "things"
modular is the Unix way.

<p>

Developers grow linearly, while the users
exponentially. The users of Linux have grown by 7 orders of magnitude,
and his goal of global domination is only 2 orders of magnitude
away. "What's 2 orders of magnitude after growing 7..." (Global
domination is in reach.) Avoid black and white when trying to solve a
problem. There is never a silver bullet which can be applied to a
project or problem to "fix it".

<p>

<table align="right">
<tr><td>
<img src="gx/adler.fnal/comdex9980Small.jpg" hspace=20 vspace=10 align="right">
<caption align="bottom">
<font size=-1>
Linus, Dan Yocum, and G P Yeh. Dan works in the FNAL IT department
providing Linux support to anyone who needs it at FNAL and
G P on CDF working on "event builders" for CDF. A bunch of Linux boxen
tied together with an ATM switch.
<font>
</caption>
</table>

The next great challenge for Linux is
to conquer the desktop. When it comes to servers there is no
loyalty. Servers are black boxes that sit in windowless rooms and
are used to serve files and printers etc. As soon as a newer, better
server comes out, the old one is replaced. No questions asked. This is
one of the reasons why Linux has been able to penetrate the server
market. It's the easiest one to crack. The desktop is totally
different. There are very strong loyalties attached to desktops. If a
new, better desktop comes out, people tend to get their shotguns out to
defend their old, not-so-good technology, often resorting to falsehoods
in order to defend them. Linus wants people to get used to using
Linux for their desktop. Linus also wants to see the day when he can
walk into CompUSA or equivalent store and find that one has a choice in
the OS one wants to run on their new PC. He does not want to see one
default OS, and does not want people to default to Linux either.

<p>

Linus concluded with the statement that there has always been a
physical invariant regarding building his kernel. This being 12
minutes. It always took 12 minutes to compile the kernel. When he
started out with his 386, it was 12 minutes, when he moved up to a
66MHz 486, the code has grown such that it still took 12 minutes. The
growth of the code and the speed up of the Intel technology kept pace
with each other such that the kernel compile time always took 12
minutes. This has changed recently. With his quad CPU development
system, it now takes him 73 seconds to build the kernel. He admitted
that the hardware development has now been recently out-paced his
software (kernel) development.

<p>

With that, a physicist from FNAL named G P Yeh, who is one of FNAL's
strongest Linux advocates, closed the session by thanking Linus for
all his work. FNAL is now using Linux in a <em>big</em> way to process all
the data coming out of the large collider detectors that will start
taking data within a year or so. The data rate from these detectors is
expected to increase 200 fold from the last time they took data. This
is due to an upgrade to the Tevetron called the Main Injector. It's
designed to increase the proton flux by <em>a lot</em>, and thus 200 times
more data will flow out of the detectors. Linux will play a big part
in analyzing all this data. (I can attest that Linux is playing a big
role at BNL as well. It will be used on about 500 processors to
analyze the data coming out of the 4 detectors being built for the
Relativistic Heavy Ion Collider. The RHIC is scheduled to turn on
this summer, and by this coming winter the Intel Linux farm will
start its first production data processing.)

<p>
<center>
<table>
<tr><td>
<img src="gx/adler.fnal/comdex9983Small.jpg" hspace=20 vspace=10>
<caption align="bottom" width=80%>
<font size=-1>
The audience crowds Linus after his talk.
</font>
</caption>
</table>
</center>
<p>

<img src="gx/adler.fnal/comdex9984Small.jpg" hspace=20 vspace=10 align="left">
With that final congratulatory announcement, the talk came to an
end. People got up and scattered about. I headed over to the left side
of the auditorium where Linus and Mad Dog were located. Linus was
surrounded by people asking questions. I was out of earshot, so I
could not listen to the back and forth between the guys and Linus. I
did get a chance to get over to Mad Dog and reintroduce myself. My
intent was to invite him out to BNL if and when he and/or Linus got
out to NY. I'm not sure if Mad Dog is interested in seeing yet another
collider facility, but he did encourage me to try and contact the
Bizzar Show people and set up a talk or panel. Something with a topic
along the lines of Linux in Physics. I told him I could do that, and
I'll try to follow up with the organizers of the Bizzar. I then hung
out with the Linus crowd for a bit, taking a couple of pictures. There
was this one guy who had on a tee shirt with an Intel logo announcing
the i80666 CPU. The phrase "Runs hotter than
hell" was written underneath. Linus told the guy he like his tee
shirt. This guy then took off his shirt so that Linus could see the
back of his tee shirt. It sported a picture of Bill Gates with horns,
looking like the devil. After another snap or two, I had my chance to
introduce myself to Linus. I gave him my business card (not that I
do any business, it's more like an identity card), and thanked him for
his work on Linux because it's made our lives some much easier. He
replied saying that he did not do it for me, he was just doing it for
himself and the users are just a big pain. "Yeah", I replied, "Users
are loosers..." I was a bit flush as I was talking to him, I really
don't know what I was saying. The fact of the matter is, Linux has made
my life a lot more complicated. Ever since I installed Linux on my
first PC 3 years ago, (built from parts bought at a computer show),
I've been so tied up in this Linux Open Source thing, and it's become
such a central theme in my work, that I can hardly say it's made my
life any easier. It's made it more fun, and it has save BNL and FNAL a
lot of money. It has saved millions of dollars at FNAL alone. But as I
said, I really wasn't thinking straight since I was talking to Linus for
the first time in my life.

<p>

<br clear="left">
<img src="gx/adler.fnal/comdex9986Small.jpg" hspace=20 vspace=10 align="right">
So I've had my chance of meeting Linus and Mad Dog. I must say that
Mad Dog comes across as a very serious, level headed guy. It's hard to
imagine someone with such a fantastic beard being so calm and
decisive. My guess is that he has to be in his line of work at DEC
(now Compaq?). I would also venture to guess that once you get to know
him, and he gets to know you, if you manage to get a beer in his hand,
then you're in for a ruckus of a good time. Linus impressed me as being
very down to earth. He is not aloof and was willing to take time to
talk to those interested in talking to him. He was very generous with
his signatures at the end of his talk. He also impressed me as someone
who has a practical approach to solving problems. In many of his
answers, he alludes to the fact that one should follow the middle
road. Don't make a project too grandiose. "A project has to sit inside
one person's head", "There is no silver bullet", "Never design to the
100% theoretical limit", and on and on. I'm sure that this is one of
the reasons why Linux is as successful as it has been. He also
mentioned during his talk that he is willing to listen to new
ideas. He said that it always starts off being a really dumb
idea. But the idea is not dismissed. (Maybe there are a lot of ideas
that are really dumb which he <em>has</em> dismissed.) But the point is that the
idea would be knocked around the kernel development news group or
e-mail list group and evolve into a not-so-dumb idea and finally into
something important that could be included in the kernel.

<p>

I left Linus and Mad Dog behind in Ramsey. My plan was to stay at FNAL
for the night and drive in early to catch the opening keynote at
Comdex. Bill Gates was giving this keynote. From Linus to Bill, this
was going to be a real contrast.

<p>

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1999, Stephen Adler <BR> 
Published in Issue 42 of <i>Linux Gazette</i>, June 1999</H5></center>

<!--===================================================================-->

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

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

<center>
<H1><font color="maroon">Linux Expo 1999</font></H1>
<H4>By <a href="mailto:ljeditor@ssc.com">Marjorie Richardson</a></H4>
</center>
<P> <HR> <P>  
<A HREF="./photos.html">Photo Album</A> 
<P> <HR> <P> 
Red Hat proved once again that they can put on a good show for the
Linux community. Bigger and better than ever, Linux Expo again doubled in
size and attracted top speakers such as Dr. Peter Braam and Dr. Theodore
Ts'o. Big business was there too, represented by such companies
as IBM, Hewlett Packard and SGI (formerly Silicon Graphics), as well
as the usual Linux vendors, such as SuSE, Caldera, VA Linux Systems,
Enhanced Software Technologies, Cygnus and many others.
<p>
I talked to Dave McAllister of SGI about their involvement in Linux
and Open Source and found SGI to be much more committed to this community
than I would have suspected. They released their most robust and scalable
file system, XFS, to the community in an effort to aid Linux in reaching
what he called ``Enterprise level''. Whatever their reasons
for doing so, this is certainly something that was applauded by everyone
I talked to at the show.
<p>
One of the most exciting announcements before the show was
O'Reilly's and HP's sourceXchange.com web site. I
attended a discussion about this site, which is designed to aid in
getting needed open source developed by obtaining sponsors who will
pay developers to write the code they need and then release it to
the public. This is an idea whose time has come, as another group
has also started a web site for the same purpose--this one
is CoSource.com from a couple of independents, Bernie Thompson and
Norman Jacobowitz, who write for LJ. It's obvious that Bernie,
Norman and O'Reilly are committed to the community and wish to
drive open source development, but I was a bit suspicious of HP. When
I asked about HP's motives for involvement in this project, Wayne
Caccamo told me HP felt this project was inevitable and wanted to take a
leadership role in it <i>and</i> they wanted to ``ingratiate''
themselves to the Open Source community--talk about honesty! After
that remark, I was ready to believe anything. I'm looking forward
to seeing how both these sites work out. (For more on this subject,
see Doc Searls' article on the <i>Linux Journal</i> web site
at http://www.linuxresources.com/articles/conversations/001.html and
Bernie Thompson's article in this issue, ``Market Making in
the Bazaar''.)
<p>
There were the usual fun things to do, such as a chili pepper
sauce contest and a paintball contest pitting vi against Emacs
once more--and once again vi won, proving it is the best editor
available--or that its advocates are the best shots. More than one
group bought blocks of tickets to a local showing of <i>Star Wars-The
Phantom Menace</i>. The ALS (Atlanta Linux Showcase) group invited me
to go along with them. Fun movie, but not as compelling as the first
one--then again, who expected it to be?
<p>
I especially enjoyed my booth time talking to current and future readers
and authors. In particular, it was a pleasure to finally meet Alan Cox
and Telsa Gwynne.
<p>
Alpha Processor, Inc., a Samsung company, announced they were
joining Linux International, and Guy Ludden presented a check to Jon
``maddog'' Hall. I got the picture and then took several
others of Jon, including one with a people-size Tux, who was roaming
the show floor.
<p>
Compared to LinuxWorld, Linux Expo came across as more polished, more
``we've done this before successfully''. LinuxWorld had
a lot of glitz--electricity and energy filling the air--that
just wasn't there at Linux Expo. I think this had mostly to do with
the fact that it wasn't the first time for these guys--the
experience showed. The speakers all like Linux Expo better, as the Expo
paid their travel expenses while LinuxWorld left them to get there on
their own. LinuxWorld had more people and more vendors, but they also
have the advantage of being in Silicon Valley.
<p>
Evan Leibowitz described the Expo as ``the show where Linux lost
its innocence'' due to two unpleasant situations that arose. One was
Pacific HiTech's being kicked out for passing out t-shirts without
buying booth space. The other was the use of the Red Hat trademark
without permission, by LinuxCare on their poster parodying a Palm Pilot
ad. No matter which side you took on this incident--the calling of
lawyers certainly signals the ``end of innocence''.
<p>
The show was a definitely a success. I talked to Bob Young on the last
day, and he certainly seemed pleased with how it had turned out. See
my interview with Bob in this issue. For more vendor announcements,
see ``Linux Kernels''.


<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1999, Marjorie Richardson <BR> 
Published in Issue 42 of <i>Linux Gazette</i>, June 1999</H5></center>

<!--===================================================================-->

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

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

<center>
<H1><font color="maroon">Book Review: Programming Web Graphics with Perl &amp;
GNU Software</font></H1>
<H4>By <a href="mailto:jcoats@colltech.com">Jack Coats</a></H4>
</center>
<P> <HR> <P>  
<ul>

  <li>Author:	Shawn P. Wallace
  <li>E-mail:	info@ora.com
  <li>URL:	http://www.ora.com/
  <li>Publisher:	O'Reilly &amp; Associates
  <li>ISBN:	1-56592-478-9
</ul>
<P> <HR> <P> 
While I am not a big time web developer or graphics enthusiast, I
found <i>Programming Web Graphics</i> to be very interesting reading. The
book begins with a down-to-earth explanation of graphics and file
formats. From there, it goes into how web servers serve the files and
reviews the free libraries available to develop graphics. The details of
the libraries may not be everyone's cup of tea, but understanding
what they can do helps with understanding how browsers and other utilities
can benefit you.
<p>
The graphic programming tools are not for the rookie Perl hacker,
but are explained in reasonable detail that anyone with some experience
in Perl can learn to use the available free tools.
<p>
The exciting part of writing programs to do graphics on the Web is
dynamic techniques. <i>PWG</i> covers image maps and animated GIFs, and
includes techniques on how to roll your own tools, such as web counters,
web cams and thumbnailing groups of images.
<p>
It is refreshing to see a book that does not ignore the non-graphical web
user, and reviews the good and bad of writing browser-specific web pages.
<p>
Overall this is a great book for understanding some of the more advanced
techniques and as a tool book for generating ideas and methods of your
own. If you are looking for a ``how-to'', hands-on tutorial,
for the un-initiated non-Perl coder, keep looking.

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1999, Jack Coats <BR> 
Published in Issue 42 of <i>Linux Gazette</i>, June 1999</H5></center>

<!--===================================================================-->

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

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

<center>
<H1><font color="maroon">Setting up mail for a home network using exim</font></H1>
<H4>By <a href="mailto:">Jan W. Stumpel, Oegstgeest, The Netherlands</a></H4>
</center>
<P> <HR> <P>  

<h4><a NAME="exim1"></a>1 Introduction</h4>

Setting up a home network with Linux and Win95, using Samba, IP
Masquerading, and diald has been described many times, also in the Linux
Gazette, but so far I have not found a recipe for setting up <i>mail</i> on
a small network with only one dial-up e-mail account. In this article I want
to explain how I did it. With this system:

<p><ul><li> users on the network can send local mail to each other, and
reply to it, also locally.</li>

<li> outgoing mail has a proper From: address, so the outside world can
reply to it.</li>

<li> the e-mail account is shared by the users, but each only receives
his/her personal mail.</li></ul> 

<p>This is realized on my system (running Debian Linux 2.1) using the
following programs: 

<p><ul><li> exim as the mail transfer agent (it is
<i>much</i> easier to configure than sendmail).</li>

<li> fetchmail for collecting the mail from the ISP.</li>

<li> pine as the mail client on the Linux side (but other clients can be
used as well, including <tt>mail</tt>).</li>

<li> Microsoft Internet Mail on the Windows side (but other clients can be
used as well).</li>

<li> qpopper as the POP3 server, for moving mail from the Linux system to
the Win95 machine.</li></ul> 

<p>I have this set up for two machines (1 Linux + 1 Win95) but it will
probably also work for a somewhat larger network, and may be sufficient for
a small office. Note: this article is Debian-oriented. If you use another
distribution, change where appropriate!

<h4> <a NAME="exim2"></a>2 The network and the names</h4>

For this article I assume the following <i>names</i> (change these to
correspond with your own situation):

<p><ul><li> the owner / system administrator is called Joe Bloggs.</li>

<li> the Linux machine is called <b>heaven</b>.</li>

<li> the Win95 machine is called <b>earth</b>. It is mostly used by Emily
Bloggs.</li>

<li> Joe's user name on heaven is <tt>joe</tt>.</li>

<li> Emily's user name on heaven is <tt>emi</tt>.</li>

<li> Emily's user name on earth is also <tt>emi</tt>; her Linux password on
heaven and her 'password for Microsoft networking' on earth are the
same.</li>

<li> Joe has a dialup account (dynamic IP address) with an ISP called
<tt>isp.com</tt>. Mail from the ISP can be collected using POP3.</li>

<li> Joe's account name at the ISP is <tt>jbloggs</tt>.</li>

<li> Joe's e-mail address (also used by Emily) is
<tt>joe.bloggs@isp.com</tt>.</li>

<li> Joe's password for collecting POP3 mail is <tt>zaphod</tt>.</li>

<li> The ISP's mail server (for sending mail) is <tt>smtp.isp.com</tt>.</li>

<li> The ISP's POP3 server (for collecting mail) is <tt>pop3.isp.com</tt>.
</li>

<li> heaven and earth belong to a domain called <tt>home</tt>. This domain
name is meant for use only inside the home network; Joe has not registered
his domain name and it cannot be recognized by the outside world.</li> </ul>
I also assume that the local networking works, and that there is on-demand
dialup access using diald. There is no name server on heaven.
/etc/resolv.conf contains the addresses of two name servers supplied by the
ISP. These same addresses are entered into the TCP/IP configuration on
earth.

<p><tt>/etc/hostname</tt> on heaven is

<p><tt>heaven</tt>

<p><tt>/etc/hosts</tt> on heaven is

<p><tt>127.0.0.1 localhost</tt>
<br><tt>192.168.1.1 heaven.home heaven</tt>
<br><tt>192.168.1.2 earth.home earth</tt>

<p>On earth there is a file <tt>c:\windows\hosts</tt> with the same contents
as <tt>/etc/hosts</tt>.

<h4><a NAME="exim3"></a>3 Mail addresses</h4>

Mail messages can have more than just the address in the 'To:' and 'From:'
lines, for instance :

<p><tt>To: Emily Bloggs &lt;joe.bloggs@isp.com></tt>

<p>'Emily Bloggs' in the above example is the 'real-name part'. It is set in
the e-mail program which composes the message. This 'real-name part' can be
used for delivering Emily's mail to her. Note: if the 'real-name part' has
dots in it, it must be quoted using " characters ("Joe C. Bloggs"). See also
<tt>man mailaddr</tt>.

<h4> <a NAME="exim4"></a>4 Configuring exim</h4>

On a Debian system this is done by running <tt>eximconfig. </tt>It asks a
number of questions which you can answer as follows:

<p><ul><li>your system is an Internet site using smarthost.</li>

<li>the 'visible mail domain' is <tt>home</tt></li>

<li>other names apart from <tt>home</tt> and <tt>heaven.home</tt>: answer
<tt>heaven:localhost</tt></li>

<li>you don't want to relay for any non-local domains.</li>

<li>you want to relay for the local network <tt>192.168.1.0/16</tt></li>

<li>RBL (spam filter database): whatever you like. I said <tt>n</tt></li>

<li>The smarthost, handling outgoing mail, is <tt>smtp.isp.com</tt></li>

<li>System administrator mail should go to <tt>joe</tt> (not to
<tt>root</tt>!)</li> </ul>

In MS Internet Mail (or whatever mail client you use on Win95) <tt>heaven</tt>
must be entered both as the STMP server and as the POP3 server. Under 'pop3
account' and 'pop3 password', enter the username <tt>emi</tt> and her Linux
password. Enter the the name, Emily Bloggs, and the e-mail address, <tt>emi@home</tt>,
in the appropriate place. Note that the e-mail address must be in the <i>local
domain</i>!

<p>On the Linux side, nothing special has to be set. /etc/pine/conf and
the users' ~/.pinerc can be used 'out of the box'. The mail client (pine)
constructs local addresses using the hostname together with user information
from /etc/passwd.

<p>With the above setup, local users can happily send mail to each other
and reply to it. For instance, in pine at heaven, user <tt>joe</tt> sends
mail to user <tt>emi</tt>. Automatically, pine changes this to:

<p><tt>To: Emily Bloggs &lt;emi@heaven.home></tt>

<p>The message is delivered immediately (as you can see if you run eximon,
the exim monitoring utility). <tt>emi</tt> (should she log in to heaven)
would see the message as coming from

<p><tt>From: Joe Bloggs &lt;joe@home></tt>

<p>So <tt>home</tt> really functions like a local domain within which messages
can be exchanged. The problem is sending messages to the outside world.
A From: address like <tt>&lt;joe@home></tt> is no good because nobody on
the outside could reply to an address in the non-existent domain <tt>home</tt>.

<h4><a NAME="exim5"></a>5 Fixing the From: address</h4>

We must change the local From: address into a valid e-mail address (the
e-mail account at the ISP), but <i>only</i> in the case of outgoing messages.
With exim, we can do this by means of a 'transport filter'. The outgoing
mail passes through this filter, and the From: address is changed. Local
mail will not be affected.

<p>The following filter will do the trick, provided we are <i>sure</i> that
the address that we want to change is always between &lt; and > signs. This
is not guaranteed, but <i>very</i> common: <tt>pine</tt>, <tt>mutt</tt>, and
<tt>mail</tt>, as well as MS Internet Mail all generate such addresses.

<p><pre>#!/usr/bin/perl
while (&lt;STDIN>) {
	if (/^From: /) {
		s/&lt;.*>/&lt;'joe.bloggs@isp.com'>/;
		print "$_"; last;
		}
	print "$_";
	}
while (&lt;STDIN>) { print "$_"; }
</pre>

Don't forget to change the e-mail address to yours! Call this program
<tt>outfilt</tt>, do <tt>chmod +x outfilt</tt> and put it in
<tt>/usr/bin</tt>. Now we must add a line to <tt>/etc/exim.conf</tt>, so the
last lines of the <tt>TRANSPORTS CONFIGURATION</tt> section read:

<p><pre>remote_smtp:
   driver = smtp
   headers_remove = "sender"
   transport_filter = "/usr/bin/outfilt"
end</pre>

Actually, we added <i>two</i> lines. The <tt>headers_remove</tt> line is
also new. This prevents exim from adding a Sender: header to the message (as
it would do with this setup, if you use pine). The Sender: line can cause
trouble with some (badly configured) mail destinations.

<p>With these changes to /etc/exim.conf, whenever anyone sends an e-mail
message to the outside world it is now delivered properly by exim. Exim
(through diald) opens the outside line at once. In a home situation this is
probably what you want. In a small office, with a lot of e-mail traffic, you
may want to defer messages and send them as a bunch at certain times, to
save phone costs. This is possible, but I don't need it myself and have not
looked into it. You could look at the 'Linux Mail-Queue mini-HOWTO'.

<h4><a NAME="exim6"></a>6 Fetchmail configuration</h4>

At the command <tt>fetchmail</tt> diald opens the line and the mail from the
ISP is collected (and passed to exim for local delivery). Only users who
have a <tt>.fetchmailrc</tt>, owned by themselves, in their home directory
can run fetchmail. This file can be created using the configuration tool
fetchmailconfig. You get something like:

<p><pre># Configuration created Sun Mar 28 03:15:20 1999 by fetchmailconf
set postmaster "postmaster"
poll pop3.isp.com with proto POP3
       user "jbloggs" there with password "zaphod" is joe here options fetchall warnings 3600
</pre>

The <tt>.fetchmailrc</tt> files belonging to the various users could all be
copies of each other, but with the ownership set to the user concerned. It
is not so nice that every user has the password in plain view. Maybe there
is a better way, but in a home situation it does not matter.

<p>The main point is that whoever runs fetchmail, the mail must always
be delivered to the <i>same</i> user mailbox (<tt>joe</tt>'s mailbox in
this case).

<h4><a NAME="exim7"></a>7 Removing exim's delivery limit</h4>

Exim by default does not deliver more than 10 messages at a time. I am sure
there are circumstances where this makes perfect sense, but having a dialup
account is not one of them. To get rid of this restriction, you must put
into the <tt>MAIN CONFIGURATION</tt> section of <tt>/etc/exim.conf</tt>,
before the <tt>end</tt> statement, a line

<p><tt>smtp_accept_queue_per_connection = 0</tt>

<h4><a NAME="exim8"></a>8 Delivering personal mail</h4>

Through <tt>fetchmail</tt> and <tt>exim</tt>, all mail from the outside
is by default delivered to Joe's mailbox (<tt>var/spool/mail/joe</tt>)
at heaven. In Joe's home directory he puts a file called <tt>.forward</tt>,
containing the following text:

<p><tt># Exim filter</tt>
<br><tt>if $header_to: contains Emily then deliver emi endif</tt>

<p>If mail contains 'Emily' in (the 'real name part' of) the To: address
(and this will almost always be the case when her friends send her mail) it
will go into her mail account on heaven, not into Joe's. She can move the
mail to her own machine using POP3 (see below).

<h4><a NAME="exim9"></a>9 Transferring mail with qpopper</h4>

To let heaven act as POP3 server for earth, qpopper can be installed. I
installed the Debian package <tt>qpopper_2.3-4.deb</tt>. Installation is
automatic; no configuration is necessary. If Emily presses 'get/send
messages' in MS Internet Mail, the contents of her mailbox on heaven get
transferred to earth (and all mail, local or outside, which she has written
gets delivered).

<h4><a NAME="exim10"></a>10 Manually checking the mail</h4>

Thanks to a 'shortcut' on earth's Win95 'desktop', which does a telnet to
heaven, Emily can log into heaven and start <tt>fetchmail</tt> by hand. That
is, if she does not want to wait for the scheduled <tt>cron</tt> times when
fetchmail runs. After the mail has been transferred from the ISP, she can
press 'get/send messages' to move any mail from her heaven mailbox into the
earth one.

<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1999, Jan W. Stumpel<BR> 
Published in Issue 42 of <i>Linux Gazette</i>, June 1999</H5></center>

<!--===================================================================-->

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

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

<center>
<H1><font color="maroon">An xdm Session</font></H1>
<H4>By <a href="mailto:cwcarlson@home.com">Chris Carlson</a></H4>
</center>
<P> <HR> <P>  

<p>
So, you've got X Windows working on your system, you've
set your system to automatically start <i>xdm</i> by setting the default
run state to 5 and now you want to customize your personal windows session
by having certain applications start automatically after you log in.
<p>
At work, I like to log out of my system every evening before I go home
so that others may log in when I'm not there. It doesn't
happen often, but I don't want someone coming into my office and
using a window logged in as me. [You never know when someone gets curious
and starts wandering through my saved mail messages.]  The problem is,
I have certain applications that I want brought up automatically, like
my list of things to do and my calendar program.
<p>
In this article, I'm going to explain an X Windows session,
how it is started and what you can do to customize it. It will show
you how to automatically start the window manager of your choice,
have applications start automatically and customize colors and fonts to
your liking. Since X Windows is pretty much identical on all platforms,
much of what I am going to explain can be used on other platforms that
use X Windows other than just XFree86 on Linux. As a matter of fact,
I will make some comparisons between the version of XFree86 that comes
with Red Hat 5.x and what comes with Silicon Graphics IRIX&reg;. You may
note that the files I discuss on both systems have the same name but
are usually just in different directories.
<p>
I realize that other articles have been written about X Windows
configuration, for example Jay Ts' fine article in the December
issue entitled ``X Window System Administration.''  X Windows
is an extremely versatile windowing environment and, because of this,
can be very complex. For this reason, I believe it will require many
articles that might overlap but each will provide information from a
different perspective. This article is intended to be from a user's
perspective, rather than from an administrator's.
<p>
To start off with and to keep my article from becoming a book in itself,
this article is written with the following assumptions:
<p>
<ol>
  <li>	That you are working with the default configuration of xdm as
it is installed by Red Hat (see <a href="#foot">Footnote</a>). This means that you haven't
changed any of the files found in /etc/X11/xdm. (Since I don't
have an installation of any of the other Linux vendor releases, I'm
presuming their default configuration is identical or similar enough
that it won't cause any problems.)
With this in mind, I will refer to filenames that are used and
referenced by xdm (and their contents) as specified in the installed
configuration file. It should be noted, however, that almost all of
these filenames can be changed by modifying /etc/X11/xdm/xdm-config
or by specifying a different configuration file on the command
line when starting xdm. (On the SGI, the configuration file is
/var/X11/xdm/xdm-config and I have seen some installations use
/usr/lib/X11/xdm/xdm-config.)
  <li>	That you have a basic understanding of the server/client concept
used by X Windows. i.e. The X server handles the display and keyboard
and runs as an application. User's applications are clients that
request services from the X server to display things and provide input.
  <li>	That you have some familiarity with X resources and how they
are used in the X environment.
</ol>
<p>
<h3>User Session Initialization and Termination</h3>
<p>
When the X server is started automatically via <i>xdm</i>, the user is
presented with a login screen. When a user successfully logs in via this
screen, <i>xdm</i> starts the ``user session''. This session is
a shell script which, when it terminates, ends the user's session
and <i>xdm</i> resets the X server and returns to the login screen.
<p>
Prior to starting a session, <i>xdm</i> runs a small startup script with
root privileges to perform any user initialization that may be required.
Currently, this file, /etc/X11/xdm/GiveConsole, changes the ownership of
/dev/console to that of the user so messages sent there can be displayed
on a window in the user's environment.
<p>
In like manner, when the session ends, xdm runs another small exit script
with root privileges to clean up anything that might have been set up by
the startup script. Currently, this script, /etc/X11/xdm/TakeConsole,
changes the ownership of /dev/console back to root.
<p>
Note that these two files are /var/X11/xdm/GiveConsole and
/var/X11/xdm/TakeConsole on the SGI.
<p>
The step of interest to this article is the actual starting of the user
session itself. Here, <i>xdm</i> starts a subprocess running the script
/etc/X11/xdm/Xsession (/var/X11/xdm/Xsession on SGI) and waits for it
to exit. When it does, <i>xdm</i> processes the exit script and returns
to the login screen. This session script is run with the user's
privileges.
<p>
A resource has been set for <i>xdm</i> which causes the parameter
``failsafe'' to be passed to the user session if the user uses
the F1 key rather than the Enter key to complete his/her login. This can
be very useful if the user makes a mistake in his or her customized
session script which makes it impossible to log in. How this feature
is taken advantage of is discussed below. It should be noted that I
found this resource defined for both Linux and SGI and is used in an
identical manner on both.
<p>
<h3>The Xsession File</h3>
<p>
The /etc/X11/xdm/Xsession file provided by Red Hat is quite simple,
especially when compared to the /var/X11/xdm/Xsession file provided with
the SGI. This file is a standard Bourne shell script which performs
all the user startup and initialization that the system administrator
wants done for all users.
<p>
As described above, if the user logs in and pressed F1 rather than
the Enter key, the parameter ``failsafe'' is passed to the
session file. The first thing the /etc/X11/xdm/Xsession file does is
check if this parameter exists and, if it does, exec's an xterm.
This bypasses all other initialization and provides the user with a
terminal window to work with. Notice that this is a good method of
logging in if the user has done something to his/her personal session
file that otherwise prevents logging in.
<p>
For those that don't understand the function of exec, this is a
builtin command provided by all the standard shell programs. It causes
the current running shell to be replaced by the exec'd program.
Thus, the current running shell never returns from an exec (unless the
program referenced fails to start for some reason) and the parent process
is not aware of any change in the child process. The exec'd
program retains the process ID of the shell and, when it terminates,
it is as if the shell terminated and the user session ends.
<p>
Presuming ``failsafe'' is not a parameter passed to Xsession,
the script continues by redirecting stderr to an error file. If it can
write to it, this file will be .xsession-errors in the user's home
directory. If the session can't write to the user's home
directory or this file is write protected for some reason, the script
will attempt to use /tmp/xses-$USER, where $USER is the user's
login name.
<p>
This error file is useful for determining problems during the user's
session. Any errors generated by applications that are started (including
the window manager or applications started by the window manager)
will be sent to this file. If the user has problems starting a user
session after logging in, he/she can perform a ``failsafe''
login (as described above) and look at this file. The error messages
may be of some help in determining the problem.
<p>
Finally, the standard Xsession file transfers control to one of a set of
shell scripts, depending on their existence and if they are executable.
It does this with the exec command which means that, whichever program is
run, it replaces the Xsession process and becomes the new user session.
The shell scripts are:
<p>
<pre>
1. $HOME/.xsession
2. $HOME/.Xclients
3. /etc/X11/xinit/Xclients
</pre>
Some interesting notes about this compared to the script used on an
SGI computer. SGI does not require the scripts to be executable but
will run /bin/sh against them if they aren``t. Also, SGI only looks
for $HOME/.xsession. If this file doesn't exist, the system Xsession
file sets up the default user environment provided by SGI. Red Hat
chose to break the default user session into two steps, since the
standard installation will provide /etc/X11/xinit/Xclients.
<p>
If none of the three files above exist or are executable, then the
user``s .Xresources file is loaded (if it exists) and the program
<i>xsm</i> is exec'd. <i>xsm</i> is one of the many window managers
provided with Red Hat Linux.
<p>
<h3>User Customized Xsession File</h3>
<p>
As you may have guessed from the above explanation of the
system's Xsession file, the user can create his/her own shell script
which will be processed as the user session. This is a very powerful
capability and provides each user the ability to do whatever processing
they want each time they log in via the X login. In this script,
the user can start various applications, set root window resources,
set one-time environment variables, change default keyboard definitions
and select a window manager.
<p>
The easiest way to set up your own personal Xsession file is to copy
the system /etc/X11/xinit/Xclients file into your home directory as
.xsession or .Xclients (what, in the future, I will refer to as the
user's Xsession file) and then edit it as desired. I'm not
going to step through the contents of the /etc/X11/xinit/Xclients file,
you can do this on your own. I'm going to just explain some of
the things one might want to do.
<p>
One important thing is to load desired resources into the root window.
This is usually done with the following commands:
<p>
<pre>
resources=$HOME/.Xresources
if [ -f &quot;$resources&quot; ]; then
/usr/bin/X11/xrdb -load &quot;$resources&quot;
	fi
</pre>
Another thing that the user may wish to do is set the root
window background to something different. This is done with the
<i>/usr/bin/X11/xsetroot</i> command. For example, I have my background
defined as follows:
<p>
<pre>

</pre>
Note that this command can also be used to set the default cursor
and cursor color for the root window, a two-tone plaid pattern for the
background or an X bitmap to be used as a pattern.
<p>
Also, the command <i>/usr/bin/X11/xset</i> can be used to set the
desired bell volume, key click, DPMS (energy saving) features and
mouse parameters. This command can also set autorepeat and screensaver
parameters.
<p>
If you want to define special keys, you can run <i>/usr/bin/X11/xmodmap</i>
from this script. For example, I like to be able to access the full
ISO 8859-1 character set and insert internationalized characters in
my documents. Also, Linux likes to define &lt;Shft&gt;F1 to be F11
and &lt;Shft&gt;F2 to be F12. Since my keyboard has an F11 and F12,
I prefer these keys to be set to F13 and F14 respectively. To handle
this, I have defined $HOME/.xmodmaprc to contain the following:
<p>
<pre>
keycode 113 = Multi_key
	keysym F1 = F1 F13
	keysym F2 = F2 F14
	keysym F3 = F3 F15
	...
	keysym F10 = F10 F22
	keycode 95 = F11 F23
	keycode 96 = F12 F24
</pre>
Then, in my $HOME/.xsession file I have the following:
<p>
<pre>
if [ -r $HOME/.xmodmaprc ]; then
	    /usr/bin/X11/xmodmap $HOME/.xmodmaprc
	fi
</pre>
Finally, the most important step is running a window manager.
Red Hat likes to run <i>fvwm</i> because it can be set up to look a lot
like Windows 95&reg;. Since I use SGI computers a lot, I prefer Motif (which
costs money and doesn't come with Linux normally). There is also
<i>xsm</i> and <i>twm</i> available. You might want to read the man pages
for each to determine which window manager you prefer.
<p>
If it is desired, the user can exec the window manager as the last
thing in the Xsession file. This will mean that the user has to end
the window manager to end their session and return to the login screen.
I prefer to run the window manager as a background process and exec an
xterm as the last thing. This way, when I exit the xterm session, the
user session will end and the login screen will be brought up. Note that
the window manager and any window applications will be terminated because
the X display will be closed. Any non-window applications started as
a background process will not be terminated automatically and could
continue after the user's session ends.
<p>
I start the Motif window manager as follows:
<p>
<pre>
/usr/bin/X11/mwm
</pre>
I start the final xterm with:
<p>
<pre>
exec nxterm -geometry 80x50+10+10 -ls
</pre>
This creates a version of the xterm that supports color. It will be
80 characters wide and display 50 lines. The window will be positioned
in the upper left corner of the screen (at pixel position 10x10).
The last option forces nxterm to run the shell as a login shell.
<p>
From within the user's Xsession file, you can run a number of
xterms, xclock or whatever, all of which will start automatically when
you login. Be sure to specify a geometry (with the -geometry option)
to get each application positioned on the screen where you want it.
<p>
Also, remember to run the applications in the background (by terminating
the line with ``&'') otherwise, the user Xsession file will
wait until that application terminates before continuing.
<p>
<h3>Important Tricks</h3>
<p>
Here I want to discuss some more interesting and important tricks
that can be done from the user's Xsession file.
<p>
All window managers can execute programs from a pulldown menu. Sometimes
these programs need special environment variables defined prior to
their execution (for example, Netscape may need SOCKS_NS to be defined).
Since the user's environment variables are not usually set until
a shell is started, the window manager and any programs started from
the window manager will not have the user's environment defined.
Trying to set them in $HOME/.cshrc, $HOME/.profile or $HOME/.login
won't do any good.
<p>
One trick is to define these environment variables in the user's
Xsession file. It is necessary to set these environment variables before
you start the window manager.
<p>
Another trick that I like to do is define XUSERFILESEARCHPATH in my user
Xsession file. Most applications look for and use a application resource
file, usually found in /usr/lib/X11/app-defaults. For example, Netscape
uses the file /usr/lib/X11/app-defaults/Netscape for its application
resource settings. If you want to change any of these settings for your
personal environment, you can copy this file into your home directory
and modify it. Next time you run Netscape, it will find the one in your
home directory first and use it.
<p>
I have found my home directory cluttered with application resource files
and wanted to put them into my own private app-defaults directory. I did
this by creating the directory and copying all the resource files into it.
Then, I set XUSERFILESEARCHPATH to the following in my user Xsession file:
<p>
<pre>
/home/carlson/app-defaults/%N:/usr/lib/X11/%L/app-defaults/%N:/usr/lib/X11/app-defaults/%N
</pre>
This makes the application search in /home/carlson/app-defaults
for application resource files before going to the default locations
under /usr/lib/X11.
<p>
One last trick is for those of you that have multiple computers all
running X servers. Here at home, I have an SGI O2 and my Linux machine.
When I log in remotely to my O2, I want to be able to run X applications
and have them use the display on my Linux box. In order to do this,
I need to run <i>xhost</i> each time I log in to my Linux box to allow
remote logins to access the X server.
<p>
As part of my user Xsession file, I have the following line:
<p>
<pre>

</pre>
This sets the X server on my Linux box to allow access from
moonlight, the name of my O2.
<p>
<h3>Conclusion</h3>
<p>
I hope you have found this information useful and interesting.
I've tried to show you how to create your own user Xsession
file to start applications, set a special environment and run your own
window manager. I'm sure you can come up with many more ideas.
<p>
One useful tool that I wrote, based on a similar application provided
with SGI, is <i>userenv</i>. This application creates a login shell as
a child and has it print its environment. This environment is collected
and then printed to stdout in a form that can be executed to create the
same environment by a shell.
<p>
In my user Xsession file, I have the following line:
<p>
<pre>
eval `userenv`
</pre>
This computes my user environment and echos it in a form that
the shell can execute the output to create the same environment.
The <i>eval</i> command causes the output to be processed by the shell.
<p>
You are welcome to a copy of the source for this program from my web
site, http://members.home.net/cwcarlson/files/utilities.tar.gz.
<p>
<a name="foot"></a>
<h3>Footnote</h3>
<p>
I am running Red Hat 5.1 but it appears that it
hasn't changed significantly for a few years. Also, I find the
configuration almost identical with other Unix platforms such as Silicon
Graphics IRIX&reg;. The only differences appear to be in what directory
files are maintained.)
<p>
<!--===================================================================-->
<P> <hr> <P> 
<center><H5>Copyright &copy; 1999, Chris Carlson <BR> 
Published in Issue 42 of <i>Linux Gazette</i>, June 1999</H5></center>

<!--===================================================================-->
<center><H2>
<A HREF="http://www.linuxgazette.com/">
<IMG SRC="../gx/newlogo.jpg" width=600 height=256 border=0
ALT="Linux Gazette... making Linux just a little more fun!"></a>
</H2>
<H4>Published by <A HREF="http://www.linuxjournal.com/"><I>Linux Journal</I></A></H4>
</center>

<P> <hr> <P> 

<H1><font color="maroon">The Back Page</font></H1>
<ul>
<li><a HREF="./lg_backpage42.html#authors">About This Month's Authors</a>
<li><a HREF="./lg_backpage42.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">Stephen Adler</H4>
While not building <a href="http://www.phenix.bnl.gov">detectors</a>
in search of the quark gluon plasma, Steve Adler spends his time either
4 wheeling around the lab grounds or writing articles about the people
behind the open source movement.

<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">Chris Carlson</H4>
Chris has been developing software for various systems
and hardware since 1973. He worked for 8 years as a Developer's
Support Engineer for Silicon Graphics, Inc. based in Southern California.
He is now working for DataDirect Networks assisting in the development
and test of SGI and Linux device drivers. He lives in Orange County,
California.

<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Jack Coats</H4>
Jack (is a consulting UNIX administrator
for Collective Technologies. Personal activities include his family,
church, leading a local UNIX users group in Houston (HOUNIX), and
hacking computers.

<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> and is now working for <A
HREF="http://www.linuxcare.com/">LinuxCare</A>.
His professional experience includes work in the technical 
support, quality assurance, and information services (MIS)
departments of software companies like 
Quarterdeck, Symantec/Peter Norton Group and 
McAfee Associates -- 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">Michael J. Hammel</H4>
   A Computer Science graduate of Texas Tech University, Michael J. Hammel, 
mjhammel@graphics-muse.org, is an software developer specializing in X/Motif
living in Dallas, Texas (but calls Boulder, CO home for some reason). 
His background includes everything from data 
communications to GUI development to Interactive Cable systems, all based in 
Unix.  He has worked for companies such as Nortel, Dell Computer, and 
Xi Graphics.
	Michael writes the monthly Graphics Muse column in the Linux Gazette,
maintains the Graphics Muse Web site and theLinux Graphics mini-Howto, helps 
administer the Internet Ray Tracing Competition (http://irtc.org) and 
recently completed work on his new book "The Artist's Guide to the Gimp", 
published by SSC, Inc.  His outside interests include running, basketball, 
Thai food, gardening, and dogs.

<P> 
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Mark Nielsen</H4>
Mark founded The Computer Underground, Inc. in June of 1998. Since then,
he has been working on Linux solutions for his customers ranging from custom
computer hardware sales to programming and networking. Mark specializes in Perl,
SQL, and HTML programming along with Beowulf clusters. Mark believes in the
concept of contributing back to the Linux community which helped to start his
company. Mark and his employees are always looking for exciting projects to do.

<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> 
With this issue, <EM>Linux Gazette</EM> has a new editor.  My name is Mike
Orr, and I have been SSC's Webmaster since April.  Margie is still here to
advise me on the <EM>Gazette</EM>, and without her and Darcy's help, this
first issue would not have come out.  Special thanks also goes to
Jim Dennis and Heather Stern, who also helped me out immensely this month.
<P>
I have been a Linux enthusiast since November 1991 and got my own computer
to install Linux on in 1993.  I started with SLS and Slackware, but have been
running Debian since 1995.  At times I can be seen lurking on the debian-devel
mailing list, but currently I hang out mostly in the comp.lang.python
newsgroup.  
<P>
I have a personal web page at 
<A HREF=http://mso.oz.net/>http://mso.oz.net/</A>,
<P>
Have fun!

<P> <hr> <P> 
Michael Orr<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_toc42.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="./carlson.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<p><hr><p>
<center>
<I>Linux Gazette</I> Issue 42, May 1999,
<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>
<H5>Copyright &copy; 1999 Specialized Systems Consultants, Inc.<br>
</center>
<P> 
</BODY>
</HTML>