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
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> Linux Gazette Table of Contents LG #43</TITLE>
<META NAME="robots" CONTENT="noindex, nofollow">
</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>July 1999, Issue 43 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.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.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="../index.html">The Front Page</A>
<LI><A HREF="lg_mail43.html">The MailBag</A>
<ul>
<li><a HREF="lg_mail43.html#help">Help Wanted & Article Ideas</a>
<li><a HREF="lg_mail43.html#gen">General Mail</a>
</ul>
<LI><A HREF="lg_bytes43.html">News Bytes</A>
<ul>
<li><a HREF="lg_bytes43.html#general">News in General</a>
<li><a HREF="lg_bytes43.html#software">Software Announcements</a>
</ul>
<LI><A HREF="lg_answer43.html">The Answer Guy</A>, by James T. Dennis
<LI><A HREF="lg_tips43.html">More 2 Cent Tips</A>
<LI><A HREF="bennet.html">PLIP: Laplink Cable Install of Debian 2.1</a>, by Bill Bennet
<LI><A HREF="carlson.html">An xdm Session</a>, by Chris Carlson
<LI><A HREF="feinberg.html">Getting Involved in Open Source</a>, by Andrew Feinberg
<LI><A HREF="gibbs/Web_Design.html">Better Web Page Design Under Linux</a>, by Chris Gibbs
<LI><A HREF="gm/gm.html">Graphics Muse</a>, by Michael J. Hammel
<LI><A HREF="jacobowitz.esr_microsoft.html">Into the Belly of the Beast</a>,
by Norman M. Jacobowitz<BR> <EM>(About Eric S. Raymond's talk at Microsoft.)</EM>
<LI><A HREF="jacobowitz.xfce.html">XFce3: Now 100% Free Software!</a>, by Norman M. Jacobowitz
<LI><A HREF="nielsen.kickstart.html">Mark's Kickstart Examples</a>, by Mark Nielsen
<LI><A HREF="nielsen.xdm.html">Configuring XDM -- a graphical login interface for Linux or UNIX</a>, by Mark Nielsen
<LI><A HREF="scheidler.html">Syslog-ng</a>, by Balazs Scheidler
<LI><A HREF="silva.ai.html">Artificial Intelligence on Linux</a>, by Anderson Silva
<LI><A HREF="silva.ip_masq.html">IP MASQ Setup with Ipchains Quick Start</a>, by Terry Hendrix and Anderson Silva
<LI><A HREF="silva.logo.html">Using Linux to Teach Kids How to Program</a>, by Anderson Silva
<LI><A HREF="stumpel.html">Setting Up Mail for a Home Network Using Exim</a> (revised), by Jan Stumpel
<LI><A HREF="./york.html">Creating A Linux Certification Program, Part 6</a>, by Dan York
<LI>New Release Reviews, by Larry Ayers
<ul>
<li><A HREF="ayers.html">AbiWord's Potential</a>
</ul>
<LI><A HREF="lg_backpage43.html">The Back Page</A>
<ul>
<li><a HREF="lg_backpage43.html#authors">About This Month's Authors</a>
<li><a HREF="lg_backpage43.html#notlinux">Not Linux</a>
</UL>
</UL>
<P> An interesting article from the upcoming
<EM>Linux Journal</EM>:<BR>
<A HREF=http://www.linuxjournal.com/lj-issues/issue64/3513.html>
Linux as an OPI Server for the Graphic Arts Industry</A>, <BR>by Jeff Wall.
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<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="./issue43.txt.gz">TWDT 1 (gzipped text file)</A><BR>
<A HREF="./issue43.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 © 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="#help">Help Wanted -- Article Ideas</a>
<li><a HREF="#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 <nzanella@cs.mun.ca>
<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> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sat, 05 Jun 1999 16:06:20 +0000
<BR>From: Jeffrey Bell (jfbell@earthlink.net)
<BR>Subject: <FONT COLOR=navy>Article idea</FONT>
I don't know if this has already been done but how about an article
about setting up a network printer between to GNU/Linux boxes.
--
Jeffrey A. Bell
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Fri, 4 Jun 1999 10:27:30 -0700 (PDT)<BR>
<BR>From: Kenneth Scharf (scharkalvin@yahoo.com)
<BR>Subject: <FONT COLOR=navy>How to format floppies with an LS120</FONT>
<P> I have installed an LS120 IDE drive in my linux machine and it works
fine. I compiled the kernel with ide-floppy support for this. There
is only one thing missing, a utility that will format floppies in the
LS120 drive. Once I get this I can rip out the 'real' floppy disk
drive and grap it's interrupt for a second lan card. Any Ideas here?
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 9 Jun 1999 11:55:19 -0600
<BR>From: Terry Singleton (terry@dynavar.com)
<BR>Subject: <FONT COLOR=navy>gazette</FONT>
<P> Is the gazette not searchable? I am trying to find out if linux supports
multilink PPP? with the built in pptd or a custom one?
<P> Terry Singleton, Network Engineer<BR>
Dynavar Networking
<BLOCKQUOTE><EM>
(In response to the many letters we have received on searching:
there is a link to a new </EM>LG<EM> search engine on The Front Page.
--Editor.)
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sun, 20 Jun 1999 15:57:36 GMT
<BR>From: d@fnmail.com (daniel)
<BR>Subject: <FONT COLOR=navy>suggestions and comments</FONT>
<P> Hi. read your "Getting started with Linux" and as it says it gives a brief
introduction to Linux. I've just started with linux, slakware, and comming from
windows there are some problems that are hard to figure out for yourself. First
of all it's this thing with devices. It took me two hours to get my cd-rom to
work. it's simple, but if you don't know how to mount your cd or you don't know
what a mounted hd/cd etc. is then it's quite tricky. And very often you need
your cd. Then it took me about three more hours to connect to internet. This
was also quite tricky comparing to just use the dial-up networking in windows.
Since much information about linux can be found on the internet it's not good
if you can't connect to it. I don't need this information, but I think these
two things are stuff you should put in your article, espescially how to connect
to an internet provider so you can serch for information on the web. daniel,
d@fnmail.com
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Fri, 4 Jun 1999 14:53:27 -0500
<BR>From: Tom Wyrick (twyrick@paulo.com)
<BR>Subject: <FONT COLOR=navy>RedHat Linux 6.0 on a Tecra 8000</FONT>
<P> I recently attempted to install RedHat Linux 6.0 on a Toshiba Tecra 8000
notebook computer, and ran into a couple of problems. The first time I
installed it, everything appeared to be working properly, except the
keyboard keys were too "touchy". Many times, it would act like the keys
were sticking and print a character twice when it was pressed once.
(I've seen a couple other references to this issue on Usenet, but no
solutions were posted.)
<P> After I used Linux for several days on the notebook, I encountered a
situation where it didn't unlock the hard drive for read/write usage
after it finished performing a disk check with fsck, and subsequent
reboots failed due to the file system being stuck in "read only" mode.
<P> At this point, I decided to reformat and do another install from
scratch. This time around, the only changes I made were #1, not to put
the system in runlevel 5 so it started in X immediately upon boot-up,
and #2, enabled the apmd service for advanced power management. When
this install completed, I had problems right away where Linux would boot
- and then I wouldn't be able to type on the keyboard at all. (Every so
often, I was able to get control of the keyboard back - but only after
multiple reboots by hitting the power button on the notebook.)
<P> Has anyone else out there had any luck running Linux on a Tecra 8000?
Thanks, Tom.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
<BR>From: "box2.tin.it" (toblett@tin.it)
<BR>Subject: <FONT COLOR=navy>Extrenal ISDN adapters</FONT>
Date: Sat, 5 Jun 1999 21:44:36 +0200
<P> Is it possible to get ISDN adapters to work under Linux though they are =
not supportet by the manufacturer on gessing there details?
<P>--<BR>
Peter
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sat, 5 Jun 1999 23:43:34 -0400
<BR>From: "Jay Bramble" (shipkiller@earthlink.net)
<BR>Subject: <FONT COLOR=navy>IPChaining and Firewall rules</FONT>
<P>I have a small home network with 5 systems. I use Linux as my
proxy/firewall/dial-upon demand internet server and fileserver.
Before I upgraded to RH6 I could go to any site on the Web. Now with RH6 I
cannot get to some sites. ie: www.hotmail.com, www.outpost.com and
www.iomega.com to name a few. I can get to them from my Linux box but not
from the network. It sends the request and I see some data return but then
everything stops.
Here is my rc.firewall file:
<PRE>
# In rc.d make a script called rc.firewall. Make it mod 700.
# Makes it read/write/execute by owner(root)
# chmod 700 rc.firewall
#!/bin/sh
#
#rc.firewall - Initial SIMPLE IP Masquerade test for 2.2.3 kernels
#using IPCHAINS
#enable dynamic IP address
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
/ipchains -M -S 7200 10 60
#
#Home Area Network
#192.168.28.0/24
#
ipchains -P forward DENY
ipchains -A forward -s 192.168.1.0/24 -j MASQ
ipchains -A forward -s 192.168.1.1/24 -j MASQ
ipchains -A forward -s 192.168.1.2/24 -j MASQ
ipchains -A forward -s 192.168.1.4/24 -j MASQ
ipchains -A forward -s 192.168.1.5/24 -j MASQ
</PRE>
<P> It looks like those sites don't like how my proxy/firewall is setup. This
only happened when I upgraded to RH6 and the 2.2 series of kernels.
<P> Any Ideas?????????
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 07 Jun 1999 18:43:21 -0400
<BR>From: "Edward G. Prentice" (egp@egp.net)
<BR>Subject: <FONT COLOR=navy>NFS boot RH6.0 Alpha?</FONT>
<P> I have a few old Alpha (UDB Multia) systems. All but one have no disks.
I'm hoping to figure out how to NFS boot one of them to become a diskless
firewall box. I noticed while configuring the kernel that there is an option
for NFS mount of the root, so I suspect all the software pieces are there -
just a small matter of configuring the server to listen for NFS requests. The
primary question I have, is: does anyone know if it is possible (through the
SRM or ARC consoles) to boot directly from the net, or do I have to boot a
floppy first that then boots from the net? I think there's also a way to put
milo into flash memory so I don't need the floppy for milo, but I don't know
how to tell milo to see the ethernet device. If I can't do it directly, how do
I do it indirectly? - it sure would be nice to have one (or more) diskless
alphas. On a somewhat related topic - is there any problem with adding a PCI
NIC card to the Multia to get a second ethernet device for my firewall effort?
Thanks in advance. /egp
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Thu, 10 Jun 1999 03:34:53 -0400
<BR>From: zak (zak@acadia.net)
<BR>Subject: <FONT COLOR=navy>KODAK Picture Disk & gimp</FONT>
<P> Hi, again. I've started saving my photos with a KODAK Picture Disk when I
have them developed. When I was using Windows this was no problem, but now
that I'm using Linux there is. KODAK does not support Linux with the software
that comes with their disks. When I save my images to my HD using MCOPY, the
images are upside down, but not reversed edge-wise. I've tried using gimp to
turn them 'right-side-up', and have managed to do just about everything else
with those images using gimp *but* that. (I fully admit I have no knowledge
about image manipulation, and really only want to know enough to accomplish
this one thing.) Can someone please tell me how to do this with gimp? I'm
using RH 5.1. Thanks in advance for any help you can give me.<BR>
Zak
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Thu, 10 Jun 1999 17:47:07 +0200
<BR>From: khreis (septcs@cybercable.tm.fr)
<BR>Subject: <FONT COLOR=navy>Linux as Xterminal with SGI</FONT>
<P> I'd like to ask about a strange thing I am getting when I run an SGI
application displayed on a Linux Xserver(PC )
<P>The Linux Xserver is running with RedHat 5.2 as following:
<PRE>
Driver "accel"
Device "Trio32/Trio64"
Monitor "Standard VGA, 640x480 @ 60 Hz"
Subsection "Display"
Depth 32
Modes "640x480"
ViewPort 0 0
Virtual 800 600
</PRE>
<P> If I open a tiff image (RGB 24bits) on the SGI it shows ok with all colors.
It is also OK if I open the same image on the Linux server using XV or Gimp.
<P> But if I display the image on the linux monitor while it is running on the
SGI the colors are not matching at all. The image resolution is perfect but
for the colors , the white is getting yellowish as if the green channel is
missing or getting dimmer or I can say as the blue and red channel are swapped.
<P> I used with a csh login on sgi:
<PRE>
setenv DISPLAY linux1:0
fm /var/tmp
</PRE>
<P> On linux The fm window appears and I doubleclick on a tiff image:
<PRE>Spok.tif</PRE>
a window open with the image of my cat ( white originally) with yellow
dominance.
<P> Today I am asking myself what is wrong and how should I repair. Can
anybody help on this.
<P> Thanks in advance
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Fri, 11 Jun 1999 10:45:35 +0200
<BR>From: ANTONIO SORIA (mpenas@sego.es)
<BR>Subject: <FONT COLOR=navy>need help!!!</FONT>
<P> I have a problem and i hope linuxgazette can help me with it. I'm about
to buy a Toshiba Satellite S4030CDS which comes with the Trident Cyber 9525
video card. I've seen in the Xfree86 3.3.3.1 docs that it supports Trident
cyber 9520. Can i use this driver for the 9525? Please, if you know the answer
or know somebody who can help me let me know.
<P> Thanks very much for reading my message and for the great gazzette!!
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Fri, 11 Jun 1999 11:41:42 -0400
<BR>From: Kedric Bartsch (root@129.190.137.43)
<BR>Subject: <FONT COLOR=navy>vertical scroll bars and fvwm95</FONT>
<P> I have been using fvwm95 on RH5.2. All the xterms have scrollbars on the
left side of their window. I recently installed SuSE6.1 and found that the
xterm windows in fvwm95 have no vertical scroll bars at all. This makes it
tough to look back through a screen's previous display. I tried the "Scroll
module" in the fvwm95 configuration menue but it scrolls the window itself
rather than the screen display history. I know the previous lines are there
because past display lines appear when I resize the window vertically.
<P> My question is how to I add vertical scroll bars to the xterm displays?
<P>Thanks,<BR>
Kedric C. Bartsch
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sat, 12 Jun 1999 17:24:13 +0100
<BR>From: "Jolt-Freak" (stephen@ph01480.freeserve.co.uk)
<BR>Subject: <FONT COLOR=navy>X won't start </FONT>
<P> I Have Reacently Installed LINUX on an old 486DX2/66 that I bought for
that specific purpose. I can boot up an login into root but when i issue
the command the command startx to get X to star this is what i get:
<BLOCKQUOTE><EM>
(This message came with MIME-escapes embedded. I'm not sure which
numbers were typed and which are MIME codes. --Ed.)
</EM></BLOCKQUOTE>
<PRE>
execve failed for /ect/X11/X (errno 2)
</PRE>
and then 6
<PRE>
_X11TransSocketUNIXConnect: Can't Connect: errno =3D 2
</PRE>
then
<PRE>
Giving up
</PRE>
and Finally
<PRE<
Xinit:No Such File or directory (errno 2):
unable to connect to X server followed by xinit: No such process (errno =
3): Server error.
</PRE>
I wonderered if anyone could help a LINUX newbie
<P>Jolt-Freak<BR>
(Only playing with the prompt)
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 14 Jun 1999 13:04:39 +0200
<BR>From: Izbaner (lizbaner@alfa.c-map.pl)
<BR>Subject: <FONT COLOR=navy>set_multmode {Error 0x04}</FONT>
<P> I have a problem with hard disk (Seagate 4.3MB). On the start appears
the kernel message:
<PRE>
hda: set_multmode 0x51 {DriveStatus SeekComplete Error}
error 0x04 {DriveStatusError}
</PRE>
<P> It appears in all kernel's versions and distributions, which I have
(SuSE 5.3, 6.0, 6.1; RedHat 5.1, 6.0; kernel from 2.0.34 to 2.2.9).
After that I can work in text mode, but in X Window some applications
hang up the system (no key work, no actions, no way to exit or shutdown
the system...).
<P> Help me, please!!!
<P>
__________________<BR>
Lucas z Izbanerowic
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 14 Jun 1999 14:12:04 +0200
<BR>From: rakeshm@za.ibm.com
<BR>Subject: <FONT COLOR=navy>FAT32 and Linux</FONT>
<P> Hi everyone...
<P> I just got a new PC and it came with Win 98 (and FAT32) pre-installed. I
also recently read an article saying that Linux does not get along with
FAT32. =&gr; LILO can;t be loaded on FAT32. Is this correct ?
<P> I plan on installing Red Hat Linux 6.0 on a seperate slave drive, and
having a dual boot. I need to keep my Win98 as well as everyone in the
family uses it, and likes Games.
Has anyone had any problems with Win98 and Linux ? Is there anything that I
have to watch out for ?
<P> Thanks<BR>
Regards<BR>
Rakesh Mistry
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 15 Jun 1999 07:51:20 +0800
<BR>From: Haji Mokhtar Stork (znur@pl.jaring.my)
<BR>Subject: <FONT COLOR=navy>Installation of REDHAT with Win98</FONT>
<P> By now you would have become the fifth person I have tried to contact
over the above mentioned subject. The closest I got was to a detailed
description on how to partition and install Dos/Win95/OS-2, but when I
tried contacting the person through his e-mail, apparently it no longer
exists. So I am back to square one.
<P> I have purchased REDHAT 6.0 at a local Linux fair. Unfortunately I go
not get them to partition and install it on my computer for free as I
was leaving for China the next day. Now I am trying to do so with great
hardship. The material I have downloaded from Linuz.com and
metalab.unc.edu etc does not serve my needs, so I need your expertise in
detail on how to go about it.
<P> I have formatted my HardDisk 4.5GB.<BR>
It has a DOS 6.2 pre-partition of26%<BR>
The Extended partition is 74%<BR>
Logical Drives E: and F: are each 37%<BR>
Drive E: has Win98. F: is for Linux.<BR>
I have a second slave Hard Disk as D:<BR>
<P> Problem arise when I boot REDHAT 6.0, its an auto generated process
which guides me through. First question: SCSI [select: No/Yes?Back].
When selecting Yes, a selection is provided but on choosing and going to
auto verification, all proposals are rejected because my system has an
Adaptec AVA-1502 SCSI Host Adaptor. I can't go any further!
<P> First, I have gone about the right partitioning?
<P> I can't read the README file on my REDHAT CD Rom because I cannot get it
started.
<P> Please kindly assist me. Thank you.
<P> Haji Mokhtar Stork<BR>
Malaysia.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 15 Jun 1999 03:20:09 PDT
<BR>From: Marek fastcom (mfastcom@hotmail.com)
<BR>Subject: <FONT COLOR=navy>LINUX Ghostscripts *.DWG into *.EPS </FONT>
<P> Are there any LINUX scripts (Ghostscripts) available for
converting *.DWG into *.EPS alternatively JPG, TIF,etc.
<P>Regards.<BR>
Marek
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 16 Jun 1999 07:14:20 -0700 (PDT)
<BR>From: "Allen D. Tate" (computermantate@yahoo.com)
<BR>Subject: <FONT COLOR=navy>Dell Optiplex GX1 and the PS/2 Mouse</FONT>
<P> I have a Dell OptiPlex GX1, Pentium II w/64 MB RAM and I'm trying to
get XWindow up and running but when I run startx, I get no response
from the mouse. Has anyone ran into a similar problem? If so how did
you fix it? I tried changing the mouse settings in the X86Config file
but it didn't seem to help. Any comments or suggestions will be
greatly appreciated.
<P> Thanks,<BR>
Allen Tate<BR>
Evansville, Indiana
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
<P> Hello to all in the linux community, I would like to ask anyone who
might have some idea on how to mount a cdrom in linux, when I go into
the /mnt directory and type mount cdrom the response I get is something
like Linux does not recognise hdc as a block device. I am running linux
6.0 and I have no idea what manufacturer or driver my cdrom drive is,
can anyone help ???
<P> thanks<BR>
Dave
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sat, 19 Jun 1999 23:41:38 +0200
<BR>From: Thomas H (thomas@snt.nu)
<BR>Subject: <FONT COLOR=navy>Cable modem problems + graphical ftp client</FONT>
<P> Hi!<BR>
<P> I am a new GNU/Linux user (coming from the OS/2 world). I find the Linux
programs powerful, although it often is quite frustrating to learn to
use all of them.
<P> It's a shame to say, but I write this from a Windoze machine. The reason
is that my cable modem provider (Telia in Sweden) pops out my connection
in 175 seconds when using dhclient under SuSE Linux 6.0. Anyone got a
solution?
<P> Another question I would be very grateful to have an answer to regards
FTP. Which good FTP-programs for X do you recommend? I need one that
supports the PASV (passive) mode. I also would like to have a program
that can sync files between my /home/thomas and my ftp server. I have
heard about "rsync" but don't know anything about it.
<P> Thanks for any help!
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sun, 20 Jun 1999 00:17:25 -0700
<BR>From: Ricky Deitemeyer (ricky@mediabase.premrad.com)
<BR>Subject: <FONT COLOR=navy>FAT Compatibility</FONT>
<P> At work I have a Linux (Redhat 6.0) workstation and at home I have a
WinnNT machine. What are some good utils that I could use to write to a
disk with a FAT fs under Linux? (I'm assuming that this would be easier
than trying to get NT to read ext2...)
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 21 Jun 1999 12:52:38 +0100
<BR>From: Network Management (Netman@fastnet-systems.com)
<BR>Subject: <FONT COLOR=navy>Netflex3 cards on RedHat 5.2</FONT>
<P> I am a new user to Linux and am running a Compaq Deskpro (for my sins).
I have seen several mails about using the integrated Netflex3 cards but
have not seen any replies which mean anything to me. Can someone please
send me instructions on how to find and install a driver for this card.
<P>Thanks in advance for anyone who can help.<BR>
Andy
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 21 Jun 1999 17:45:17 +0200
<BR>From: Horacio Antunez (hantunez@ippt.gov.pl)
<BR>Subject: <FONT COLOR=navy>Installation problems</FONT>
<P> While trying to install
RedHat 6.0, after checking CDROM and Floppy disk I got the message
<PRE>
scsi : 0 hosts
scsi : detected total
Partition check
VFS: Cannot open device 08:21
Kernel panic: VFS: Unable to mount root fs on 08:21
</PRE>
<P> Configuration:<BR>
Dell Precision 610, P.III Xeon 500 MHz, 1GB RAM, NT 4.0<BR>
HD: 2x 9 GB SCSI<BR>
M.O. drive (also with SCSI controller)<BR>
<P> The thing is that I had no problems on an identical machine except for:
256MB RAM, only 1 HD 9GB SCSI, no M.O. drive.
<P> Is there any upper limit for RAM?
<P> Does Linux support:
<UL>
<LI> more than 1 hard disk?,
<LI> magneto-optic drives?
</UL>
<P> TIA for any help<BR>
Horacio Antunez
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 21 Jun 1999 13:53:51 -0500
<BR>From: Gregory Buck (GBuck@sbsway.com)
<BR>Subject: <FONT COLOR=navy>Tseng Labs</FONT>
<P> Does Tseng Labs have an e-mail address I can get in touch with them through?
I have been to their web site and e-mailed them at: 'financial@tseng.com'
and 'prodsupp@tseng.com' (both addresses generate an "unknown e-mail
address" type of error).
<P> Thank you for your help.<BR>
Gregory Buck
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 21 Jun 1999 17:00:48 -0600
<BR>From: Bryan Anderson (byran@sykes.com)
<BR>Subject: <FONT COLOR=navy>Compiling problems</FONT>
<P> I am currently running redhat 4.2 for SPARC on a SPARC IPC. I have been
programming C and C++ for about four years now, but this problem has me
stumped. I am trying to port a few apps over from i386 linux to Sparc
linux. I downloaded the source files and untarred them just fine, but from
then on the horrors begin. I have read the docs for each app and followed
the instructions meticulously, and even tried some of my own homebrewed
fixes to try and get the sources to run, but I still can not get anywhere.
The problems seem to lie in not the source itself, but in the libs
installed on my machine. I get tons of warnings and one error that seems
to stand out. The error is transcribed as something like this:
<PRE>
/usr/include/time.h:58 -- Parse error for fd_func
</PRE>
<P> The only other problem I have found is on perusal of the *.h files, I have
found numerous references to header files in directories that don't EVEN
EXIST!!! Is this a standard thing, or just on the SPARC port for linux?
For example, I am looking inside my /usr/include/sys/time.h and find
references to a linux/time.h, when there is not a linux directory
anywhere!! Is this a standard? If it is, it seems that someone got a
little sloppy in their porting. I have managed to fix this problem by
going in and removing references to files that don't exist or redirecting
them to files that do exist, but the error above has definitely stumped me.
Does anyone have experience with this error and how it can be fixed? I
don't have much experience in building my own header files, but when I did
do it, I never saw that error. I would be much obliged to anyone who could
provide some guidence in this issue.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 22 Jun 1999 01:17:20 +0200
<BR>From: "Bgsoft" (maximiliam@agarde.it)
<BR>Subject: <FONT COLOR=navy>Info sulla Red Hat!</FONT>
<P>Spett.le Direttoredel Linux Gazzette,
<P> Mi chiamo Nino Brando, e dato che ho visto in edicola una promozione(se si
pu chiamarla cos) della red hat di linux, contenente 4 CD.
<P> Vengo al nocciolo, e possibile che ci sia il sistema operativo Linux? Anche
perch il prezzo non supera le .25.000, e poi la Red Hat un sistema
operativo?
<P> Chiedo scusa per la mia ignoranza ma da poco che vorrei entrare nel mondo
Linux, sarei lieto di una risposta ed anche di qualche consiglio.
<P>La ringrazio,<BR>
distinti saluti<BR>
Nino Brando
<BLOCKQUOTE><EM>
(Can somebody who speaks Italian please help this person? He sent me
an English version but I couldn't understand it either. :) I think he
saw a Red Hat disk set and is wondering if it's the real Linux.
--Ed.)
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
Date: Wed, 23 Jun 1999 23:20:31 PDT
<BR>From: junainah sarian (ainina76@hotmail.com)
<BR>Subject: <FONT COLOR=navy>Installing Linux in Windows 98</FONT>
<P> I've difficulties in installing the Linux. Can you help me in solving this
matter?
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Thu, 24 Jun 1999 14:50:21 +0300
<BR>From: vintze (vintze@libertatea.ro)
<BR>Subject: <FONT COLOR=navy>help me please!</FONT>
<P> I'm from Romania. I install linux in my PowerPC but i can't print. I
have a 8600/200 Power Mac and a HP 4MV printer. Please HELP me.
my e-mail addres is vintze@libertatea.ro
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Fri, 25 Jun 1999 09:24:45 +1000
<BR>From: Zubin Henner (zubinh@one.net.au)
<BR>Subject: <FONT COLOR=navy>Help! Compatibility problems between linux and windows filesystems;</FONT>
StarOffice 5.1; Graphics settings
<P> Hi Linuxsters, I am a current Win98 user trying to switch to Linux, but
I have run into a few little problems!
<P> Firstly, after successfully partitioning my HDD and installing Red Hat
Linux 5.2, I wanted to reinstall Win98 as it was getting rather slow.
So I mounted my (FAT32) C: drive in Linux (mount -t vfat /dev/hda1
/mnt/c:) and backed up my essential files onto the Linux partition.
<P> After reinstalling Windows I copied the files back, only to discover
that some seemed to be corrupted by the Linux filesystem. Some
self-extracting programs like WinZip 7.0 and WinBoost 1.24 will not
execute, giving errors like "Permission denied" or "This is not a Win32
application". This is not a drama as I can simply download these again,
however many of my important compressed "zip" files containing Word
documents are corrupt and some files cannot be extracted. What is the
sitch? Can these files be "fixed"? Should I completely avoid mixing
the two filesystems in future? Any help would be gratefully
appreciated!
<P> Another problem I had was installing StarOffice 5.1 Personal Edition for
Linux - it freezes on page 2 of setup where it asks for the registration
key number. I downloaded the program from download.com and therefore
don't have a number. Even if I did it would be no use as the program
freezes anyway. Also I have since realised that it is probably because
I only have 15MB RAM (1MB for built-in video card) and not the minimum
requirement of 32MB (duh!). Which poses the question, "Why does MS
Office happily run on my system with the flaw-ridden inefficient Windows
OS, while StarOffice won't?" Please excuse me, I am only new to Linux!
I plan to upgrade my RAM soon so hopefully this won't be a problem -
just curious, you know?
<P> I am also having problems getting the appropriate graphics settings
happening on Linux. I have a Socket 7 M571 motherboard with a built-in
64-bit VGA chip. It is a 1 to 4MB chip and I have set it to 1MB (in
BIOS) due to my pathetic RAM situation. In Windows I can easily go to
800x600 and 1024x768 with 16- and 24-bit colour. During Red Hat Linux
5.2 installation I selected "VGA16" video card and "Custom:
Non-interlaced SVGA; 800x600@60Hz, 640x480@72Hz" monitor type. But it
won't go above 640x480 resolution without going into virtual mode. The
colour settings are also not right. What do I do?
<P> And finally (!) every time I exit "X", I get an error message "FreeFont
count is 2; should be 1; Fixing..." What does this mean and how do I fix
it? (do I need to?)
<P> I love the idea of leaving Windows behind but I can't while I have these
problems! Could I ask that any responses be reasonably basic as I am
totally new to Linux (or should I say "Linux is totally new to me!").
All help will be greatly appreciated! Thank you...
<P> Zubin.
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sun, 27 Jun 1999 02:49:34 PDT
<BR>From: javafun@excite.com
<BR>Subject: <FONT COLOR=navy>linux in algeria</FONT>
<P> I would thank for your good job, i installed red hat linux 5.1 without much
trouble except for xwindow my video card is sis 5597 i wonder if it's
supported under linux.
<P> friendly mimoune
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 30 Jun 1999 12:48:10 +0100
<BR>From: "ian baker" (ian@pncl.co.uk)
<BR>Subject: <FONT COLOR=navy>Question!</FONT>
<P> Hi,
<P> I am growing to like the idea, philosophy behind Linux. I am a home user,
reasonable non-technical, is this a good move? and what is the difference
between Redhat and Suse. I hope I'm sending this to the right place and hope
that you'll give me an answer.
<P> Many thanks<BR>
Ian Baker (UK)
<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: Tue, 1 Jun 1999 18:15:14 -0400
<BR>From: "Pierre Abbat" (phma@oltronics.net)
<BR>Subject: <FONT COLOR=navy>Garbled HTML in Linux Gazette</FONT>
<P> I found a reliable way to crash KFM: look at the front page, follow the link to
the current issue, then follow the front page link. A few people have reported
KFM crashes. I ran Amaya to check the page for errors and found the following:
<PRE>
*** Errors in http://www.linuxgazette.com/ temp file: /home/phma/.amaya/1/www.linuxgazette.com
line 53, char 51: Unknown attribute "NOSAVE"
line 57, char 22: Unknown attribute "color-"#BB0000""
line 107, char 73: Unknown tag </table<
line 114, char 7: Tag <table> is not allowed here
</PRE>
[rest of error message not shown.]
<P> Please fix them (I suspect the </table<, but it might be something
else).
phma
<BLOCKQUOTE><EM>
(These tags were related to the old search engine. I took them out and
it works now with my KFM. Please let me know if you have any further
problems. --Editor)
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 16 Jun 1999 12:15:34 -0600
<BR>From: Coran Fisher (salyavin@verinet.com)
<BR>Subject: <FONT COLOR=navy>Setting up mail for a home network using exim</FONT>
<P> I was just reading the article "Setting up mail for a home network using
exim" in issue 42 and I noticed one possible problem. In the suggested .forward
file any mail that contains Emily in the To header will go to emi's mailbox, if
someone was to send a message with several addresses in the To field one to
jbloggs and one address had Emily in it (weather Emily be the Emily on the
local network or some other Emily). If a person sent mail with only one To
address and bcc'd or cc'd the rest that problem wouldn't exist but alas not all
email is sent that way (at least to me). You could probably cut down on the
possibility of this a bit by having it look for Emily's first and last name.
<P>Regards,<BR>
Coran
<BLOCKQUOTE><EM>
(A revised version of the article appears in this issue. --Ed.)
</EM></BLOCKQUOTE>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sat, 19 Jun 1999 14:30:47 +1000 (EST)
<BR>From: corprint login <'corprint@mail.netspace.net.au'>
<BR>Subject: <FONT COLOR=navy>LG Issue 42 - email article</FONT>
<P> I was most impressed with the following article in Linux Gazette 42,
June 1999: "Setting up mail for a home network using exim"
<P> I followed Jan's suggestions on a RedHat 5.1 Linux system and it
eventually worked. You may care to note the following comments and
pass them on to the author (as no email address was offered).
<OL>
<LI> The "exim" package as supplied with RedHat Linux does not include
"eximconfig". I pinched a copy from a Debian distribution using ar and tar. The
configure file is too hard to setup without it.
<LI> The perl script "outfilt" as published, fails on my system. The
'@' character in the script should be '\@'.
<LI> As I do not use a Smarthost for email, I found that taking out the
reference to it in the ROUTERS CONFIGURATION section of the exim configure
file, worked fine. (Note that Debian uses exim.conf whereas the RedHat version
of exim uses the file 'configure').
</OL>
<P> I have seen many requests for interfacing MS Internet Mail (???) to
Linux mail facilities on the Linux User Group discussion lists and
this article is most timely.
<P> Thank you for a great magazine.<BR>
Frank Drew
<P> <hr> <P>
<!--================================================================-->
<center>Published in <i>Linux Gazette</i> Issue 43, July 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="#general">News in General</a>
<li><a HREF="#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/cover64.jpg"></center>
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
August 1999 <I>Linux Journal</I>
</font>
</H3>
<P>
The August issue of <A HREF="http://www.linuxjournal.com/"><I>Linux
Journal</I></A> will be hitting the newsstands in mid-July.
This issue focuses on Graphics with an article about flight simulators
one about game ports at Loki, and one about Motif/Lesstif application
development.
<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/lj-issues/issue64/index.html">
http://www.linuxjournal.com/issue64/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/subscribe/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">EDUCAUSE news
</font>
</H3>
<P> News from EDUCAUSE: Edupage, 26 May 1999
<P> A federal judge has indicated that he may rule in favor of <STRONG>Sun
Microsystems</STRONG> in the company's <STRONG>copyright battle with Microsoft
</STRONG>, allowing Sun to keep control of its Java programming language. The
ongoing legal battle between Sun and Microsoft arose from concerns that
Microsoft violated its licensing agreement with Sun for use of Java's source
code by altering Java to run more effectively on the Windows operating system.
U.S. District Judge Ronald Whyte wrote that he will most likely rule in favor
of Sun, preventing Microsoft and other companies from changing Java to run
certain software products better than others. Some analysts speculate that the
court loss may not deter Microsoft, but will instead provide the company with
incentive to stop using Java or even to develop an alternative. (Los Angeles
Times 05/26/99)
<P> <STRONG>IBM plans to adjust its AIX operating system to support Linux
applications.</STRONG> This will allow IBM customers to store all of their Web
applications on one server, the company says. IBM's Robert LeBlanc says, "As
more customers move to the Web, they'll need to integrate applications."
Enabling AIX to run Linux will help customers simplify and manage growing
networks, says LeBlanc. IBM's modified version of AIX will be released by the
end of this year, the company says. Analysts say IBM and Sun, which modified
Solaris to support Linux, are ensuring that they will be able to take advantage
of any Linux Web applications that may become popular in the future. In
addition to the AIX changes, IBM plans to ship its DB2 software with Pacific
HiTech's TurboLinux version of Linux. Pacific HiTech will package IBM's
WebSphere software with TurboLinux by the end of 1999, says IBM's Dick
Sullivan. (Bloomberg 05/25/99)
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">Ecrix's VXA-1 Tape Drive to Ship with Penguin Computing's Linux Servers
</font>
</H3>
<P> Boulder, CO - June 8, 1999 - Ecrix Corporation today announced a key
partnership with Penguin Computing Inc., the Linux reliability leader and
the nation's largest and fastest-growing company focused exclusively on
turnkey Linux solutions. According to the agreement, Penguin will offer
Ecrix's highly reliable VXA-1 tape drive on all of its Linux servers,
providing an exciting new data backup and restore option for its customers.
Based on Ecrix's groundbreaking VXA technology, the VXA-1 tape drive
delivers major advances over conventional tape technology, offering users
unprecedented data restore capabilities. The VXA-1 tape drive is the
price/performance leader in its market, with 66GB of capacity, 6MB/second
data transfer speed, and an MSRP of $1,295. The partnership with Penguin
Computing enables Ecrix to begin penetrating the fast-growing Linux market,
and provides Penguin's customers with leading-edge tape drive products.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">SuSE Launches Business Partner Program
</font>
</H3>
<P> Nuremberg, Germany -- June 4, 1999 -- Today, SuSE GmbH, the parent company
of SuSE Inc., began offering a Business Partner Program targeted
specifically at Linux system integrators and consultants. This program
is in addition to the recently-announced VAR and ISV Partner Programs
launched at Spring Comdex '99 by SuSE Inc.
<P> The Business Partner Program includes priority support, training, a
moderated private on-line forum, and access to a knowledge base, among
other features. Qualified Partners are those who seek to offer Linux
services and want to benefefit from association with the SuSE brand.
<P> Those interested in applying for the SuSE Business Partner Program should
contact SuSE by sending e-mail to business-partner@suse.de or calling
+49 911 740 53 56 (Europe). Those interested in the VAR and ISV programs
should send email to info@suse.com or call 1-510-835-7873 (U.S.).
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">LinuxMall.com Partners with Workstation 2000
</font>
</H3>
<P>
<P> LinuxMall.com is pleased to announce our partnership with Workstation 2000.
Workstation 2000 is a California-based provider of Linux workstations,
notebooks and servers. Workstation 2000 combines high-quality hardware with
the Linux OS to provide solutions for small business, corporations,
educational institutions and personal use.
<P> The Workstation 2000 Developer Station is the ideal workhorse for
productivity under Linux. The Developer Station base system is equipped with
a 400 MHz Pentium II processor, Intel SE440-BX motherboard, 64 MB of RAM and
a 4 GB EIDE hard disk. All that horsepower is tucked into a quality
mid-tower case with an 8 MB AGP video card, 10/100 Ethernet card and a 40x
CD-ROM.
<P> Learn more about the Workstation 2000 Developer Station:
<A HREF=http://www.LinuxMall.com/products/01112.html>
http://www.LinuxMall.com/products/01112.html</A>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
Magic Software to Send Linux Developers to Meet the Penguins
</font>
</H3>
<P> Magic Software Enterprises announced 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
Contest, runs from May 20, 1999 through October 15, 1999, with all entry forms
due no later than September 30, 1999. Comp lete details on the contest can be
obtained through the company's website, http://www.magic-sw.com.
<P> Magic is also on the board of directors of Linux International.
<P> Magic also announced new technology bringing interactive processing to web
applications. They will be demonstrating it at Linux World in August.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
UseNetServer.Com allowing Linux users free access to their NNTP servers
</font>
</H3>
<P> UseNetServer.Com has made the decision to convert our NNTP systems to Linux
from MS Windows NT. In doing this we are opening up our servers to the Linux
Community for propagation of important information. UseNetServer.Com is
allowing all users interested in Linux newsgroup issues free access to our
servers. Your login / password is linux / free connecting to
Linux-news.usenetserver.com (207.153.76.21) or news2.usenetserver.com
(207.153.76.19).
<P> We have found several major bugs in the kernel which Alan Cox and Stephen
Tweedie have quickly resolved for us. Allowing commercial grade news to the
Linux community will speed the dissemination of Linux patches and problems. If
you have any new news groups you would like added to the hierarchy drop me an
email at usenet@exectech.net and we will include them. Joe Devita, and his
crew of propeller heads at the Linux General Store
(http://www.linuxgeneralstore.com) in Atlanta helped install and solve all of
our problems. Please note we are still working Rob Fleischmann with BCandid
(Highwind Software) to resolve some of their software issues with Linux.
<P> UseNetServer is peering with all the major NNTP providers to include
SuperNew, UUNet, SprintNet, and many other smaller providers. This provides a
near real time feed of this information, so you don't have to wait on your slow
local server for the data. I have added 70gb dedicated to just the Linux
groups, this will spool up to a ton of information for you. If you are
overseas, you can still connect to our servers as we are very well connected
via NetRail a tier-1 internet provider. We have terrific speed to the UK and
Asia which multiple DS-3s connected to MAE-East and MAE-West. Check us out.
http://www.usenetserver.com, we're a small company trying to help out a big
community. We look forward to your comments on this free access.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">Linux certification exams
</font>
</H3>
<P> June 3, 1999, Raleigh, NC-- The <STRONG>Linux Professional Institute
(LPI)</STRONG>, an industry-wide group developing a professional certification
program for Linux, is pleased to announce the creation of its corporate
sponsorship program and a number of early sponsors. LPI also welcomes the
addition of several new members to its Advisory Council, including IBM,
ExecuTrain and CompUSA.
<P> Two sponsorship plans, for corporations and individuals, have been
introduced to allow anyone to assist the LPI in its goal of creating a
high-quality, vendor-neutral program. LPI aims to deliver its first
certification exams in July 1999.
<P> "While we have heavily depended on the volunteer community in the spirit of
other Linux projects, putting together a respected certification program
requires a substantial investment," said Chuck Mead, LPI Director of
Corporate Relations. "The financial support of the Linux community is
crucial to our program's timeliness and credibility."
<P> The LPI corporate sponsorship program allows for donations from $1,000 to
more than $50,000. Individual sponsorships allow for donations from $100 to
$1,000.
<P> Current sponsors include Caldera, LinuxCare, SuSE, Digital Creations,
Jon 'maddog' Hall, Richard Ames, and others.
<P> A full description of sponsor benefits and other features of the program,
can be found at http://www.lpi.org/sponsorship.html on the LPI website.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">Sair - Weiley Linux and GNU certification program
</font>
</H3>
<P> New York, NY May 3, 1999</b> Global publisher John Wiley & Sons, Inc.
today announced its partnership with Sair, Inc., to publish a series of test
preparation guides for the Sair Linux and GNU Certification program.
<P> Dr. P. Tobin Maginnis, noted Linux researcher and President and Founder
of the Oxford, Mississippi-based Sair, Inc., has put together an advisory
board of Linux industry leaders to develop an authoritative,
non-proprietary certification program. The comprehensive, four-level
training and testing program is aimed at information technology
professionals in the private and public sectors. Students will acquire
high-level skills and in-depth knowledge of Linux, the fastest growing
open source operating system in the world.<br>
<P>http://www.linuxcertification.org.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
German thin client developer opens office in Hong Kong
</font>
</H3>
<P> <STRONG>IGEL GmbH</STRONG> from Germany - expert developer of thin client technology (embedded systems) based on Linux OS - expands in the Asia Pacific
market with the establishment of "IGEL Asia Limited" in Hong Kong,
opening May, 1999.
<P> IGEL GMBH is expanding in the Asia Pacific region to
accommodate growth and a need to be closer to the major OEM production
centers in Asia. CEO, Franz Hintermayr said that IGEL currently works
with a large number of international clients, some of whom have strong
ties as well as production in Asia. One of the aims of having an office
in Hong Kong is to work more closely and effectively with these existing
and potential partners in that region. Apart from the OEM business IGEL
seeks to further develop ties with telecoms, ISP's and distribution
channels for its range of products and services. IGEL products will
also be localized, for which a local development team will be set up, to
specifically target markets such as China, Taiwan, Korea and Japan;
which use the double byte character set. The operation in Hong Kong
will be managed by Mr. Jean Louis van der Velde, who has been active in
the IT business in Asia for the past 12 years.
<P> IGEL, established in 1989, is one of today's most innovative vendors of
computer technology. These technologies include JNT for embedded
systems, Etherminal Thin Client products, internet decoders, and IGEL
clock soft-and hardware products for professional time synchronization.
For more Information please refer to the IGEL web-site at www.igel.de or
the mirror site www.igelasia.com
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">Renting software
</font>
</H3>
<P> Ottawa, Canada -- June 9, 1999 -- <STRONG>Corel</STRONG> Corporation is
pleased to announce that it is joining forces with
<STRONG>Channelware</STRONG>, a business unit of Nortel Networks to rent its
award-winning software applications to customers. This initiative joins the
first program involving distribution of Channelware's NetActive software
through retail stores.
<P> Corel Print House Magic 4 NetActive Version will be available for
customers to rent at select Blockbuster locations in Austin, Texas, and
Anchorage, Alaska, starting in June.
"Channelware invented secure Software Activation and we are proud to be
teaming up with them in this breakthrough initiative," said Dr. Michael
Cowpland, president and chief executive officer of Corel Corporation. "The
dynamics of the computer world are changing rapidly, and we are keen to use
this rental technology to allow our customers to access our products more
easily - even without leaving their houses. This is an innovation in the
software industry."
<P> Channelware's NetActive technology will be embedded in the Corel software,
making it possible for customers to rent the software for 72 hours. Once
the customer brings the CD-ROM home and launches the application, the
software will connect to the Channelware Activation Server. A one-time
InstanceKey is then delivered over the Web in seconds. The key enables the
customer to start using the software. The NetActive system keeps track of
how long the customer uses the software, and offers the customer options
for extended use.
<P> Unlike standard video rentals, the customer will keep the software rental
CD after the initial rental is over. After the rental period, the user has
the option to: rent the software again; buy the right to use the rented
software on a perpetual basis; or buy retail versions of Corel Print House
Magic online and have the shrinkwrap versions of the product delivered to
the door. The 72-hour rental has a suggested retail price (SRP) of US
$5.99; re-renting costs US $3.99. Customers can buy Corel Print House Magic
4 NetActive Version on a perpetual basis for US $29.95*.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">Free Linux training materials
</font>
</H3>
<P>
<P> GBdirect, Europe's leading provider of Linux training, today announced
the release of free Linux training materials. Lecture notes for the
first four modules of their ``Linux Systems'' training course are now
available on the web (www.linuxtraining.co.uk). The cover:
<OL>
<LI> An Overview of a Linux System
<LI> The Linux Filesystem
<LI> The Linux Command Line Interface
<LI> Basic Linux Tools
</OL>
<P> Each module consists of 20-25 pages of bullet-pointed lecture notes
followed by graduated exercises. Experienced commercial instructors
should be able to deliver the lecture notes in about 1 hour, leaving
between 1 and 2 hours for practical work based on the exercises. In
addition to good teaching skills, the users of these materials are
expected to have sound knowledge of the Linux and UNIX operating
systems.
<P> In the interests of good citizenship, the modules are distributed in
low-bandwidth, open-source, formats.
<P> GBdirect's primary motivation for releasing thse notes as open source
software is to ensure their widest possible dissemination. A
secondary motivation is the company's desire to `give something back'
to the community which provides them with virtually all of their
office software.
<P> The company hope that others will contribute to the Linux Training
Materials Project, by authoring their own lecture notes or by
modifying those which GBdirect have contributed. To encourage such
participation, GBdirect are releasing their materials under an open
source licence derived from the Linux Documentation Project. This
allows end-users to copy and distribute the lecture notes as the
please, but protects the copyrights of their original authors.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">Pacific HiTech renamed to TurboLinux
</font>
</H3>
<P>SAN FRANCISCO, June 8 -- Pacific HiTech, the leader in high-performance
Linux, today announced it has officially changed its name to TurboLinux, Inc.
The change in the corporate identity marks the next milestone in the company's
ramp-up of its North American operations in the wake of recent major alliance
announcements with IBM and Computer Associates.
<P> "We are determined to be a key catalyst in fueling the adoption of Linux
worldwide and have demonstrated our ability to do this successfully in the
Pacific Rim," said Cliff Miller, CEO of TurboLinux. "Building on that success
by extending our presence into the North American market and other global
markets represents the logical next steps for us. Our name change reflects our
larger, global role beyond the Pacific Rim."
<P> TurboLinux is quickly emerging as a dominant, global player in the Linux
industry with offices in the U.S, Japan, China and Australia. Its product is
currently the fastest growing operating system platform in Japan, with more
than two million units of TurboLinux distributed in the past 18 months via
retail and wholesale channels, hardware OEM programs, and book and magazine
bundling. When TurboLinux 3.0 was introduced in Asia in December, it outsold
Microsoft Corp.'s Windows NT (2000) at Japanese retail point of sale outlets,
according to the high technology analyst firm Computer News. Further, the
product was voted "Editor's Choice Award for 1998" by Byte Magazine in Japan.
<P> The company's web sites is www.turbolinux.com or, in Japanese, at
www.pht.co.jp.
<P> TurboLinux also announced it will be the first Linux provider to sign an
original equipment manufacturing (OEM) software agreement with Sendmail for
Sendmail Pro. TurboLinux will integrate and bundle Sendmail Pro with an
enterprise Linux mail server product to be introduced later this year.
TurboLinux will provide Sendmail support to Linux customers in Japan.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">TurboLinux 3.6 distribution released
</font>
</H3>
<P> SAN FRANCISCO, June 29 /PRNewswire/ -- TurboLinux, the leader in
high-performance Linux, today announced it is shipping its newest English
language offering, TurboLinux Workstation 3.6.
<P> Based on the 2.2.9 Linux kernel, TurboLinux Workstation 3.6 retails for
$49.95 and is currently available from the company's web site at
www.turbolinux.com. It will be available in North America through retail
outlets and resellers later this summer.
<P> "TurboLinux is best known as the Linux leader in the Pacific Rim through
our Japanese and Chinese language products," said Cliff Miller, president and
CEO of TurboLinux. "TurboLinux Workstation 3.6 is the first of a series of
forthcoming Linux offerings that are designed to meet the needs of high
performance Linux users in North America and illustrate our ongoing commitment
to this market. On TurboLinux Workstation 3.6 we've also improved the installer
that Forbes Online and other reviewers described as the best in the market."
<P> TurboLinux Workstation 3.6 includes Netscape's latest version 4.6 browser
and an easy-to-install RPM version of Corel's popular WordPerfect 8 for Linux.
Other popular office productivity software for Linux and a comprehensive suite
of developer tools are also included. For increased flexibility, TurboLinux
Workstation 3.6 users can choose between the default TurboDesk desktop
environment or the latest GNOME or KDE windows managers.
<P> TurboLinux Workstation 3.6 ships with an all-new, 300-page user's guide.
In addition to the installation and source CDs, users also receive a Companion
CD packed with popular Linux applications and utilities, including Tripwire,
Staroffice 5.0 and X-win32. TurboLinux provides 60 days of free installation
support.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">Corel and Rebel.com Sponsor Ottawa Linux Symposium
</font>
</H3>
<P> Ottawa, Canada- June 15, 1999- Corel Corporation and Rebel.com are hosting
the 1st annual Ottawa Linux Symposium in Ottawa from July 22 to July 24, 1999.
<P> The Ottawa Linux Symposium, run by Achilles Internet Ltd., will provide the
opportunity for Linux developers and system administrators to expand
their knowledge of the Linux operating system. The event is for anyone who
is interested in the technology behind Linux and will feature a number of
prominent speakers from the Linux community. The keynote speaker for the
event is Alan Cox, one of the primary Linux developers. Mr. Cox is the
maintainer for the AC series of leading-edge Linux patches.
<P> Achilles has invited 350 Linux developers from all around the world. The
list of speakers is impressive, including: Pat Beirne of Corel Corporation;
Alex deVries of The Puffin Group Inc.; Zach A. Brown of Red Hat Software Ltd.;
Stephane Eranian of Hewlett-Packard; Miguel de Icaza of GNOME Support; Richard
Guy Briggs of Free S/WAN; and Mike Shaver of Mozilla.org.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
Benchmark specialist invites Red Hat and Microsoft to a rematch
</font>
</H3>
<P> Chicago, IL -(June 17 1999) - Neal Nelson, benchmark guru and founder of
the world's largest independent client/server testing facility, has extended an
invitation to Microsoft and Red Hat to participate in an open, public
performance comparison between hot operating system rivals Windows NT and
Linux.
<P> Nelson issued the invitation as a result of a recently published study
sponsored by Microsoft.* One of the conclusions of the study is that
"Microsoft Windows NT Server 4.0 is 2.5 times faster than Linux as a File
Server and 3.7 times faster as a Web Server."
<P> Many have questioned the test results because different tuning levels were
used for NT than those used with Linux. For example, NT was tested with NT
tuning, benchmarking and technical support from Microsoft, as well as
Internet Information Server 4.0 tuning information from the Standard
Performance Evaluation Corp.
<P> Linux however, received almost no additional tuning, support or involvement
from Linux-based technical sources. The testing lab cited difficulty in
obtaining tuning information from Linux knowledge bases, and a query with
Red Hat ended up going through the wrong channels.
<P> This has outraged the growing base of Linux supporters who are clamoring for
an unbiased test, one that is not sponsored by either Microsoft or Linux.
<P> *Study conducted by Mindcraft, Inc., a software testing company based in Los
Gatos, CA
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">32BitsOnline.com Merges with Bleeding Edge Magazine
</font>
</H3>
<P> VANCOUVER, BC - June 17, 1999 - Medullas Publishing Company, parent company
of 32BitsOnline Magazine (http://www.32bitsonline.com/) and Linux Applications
(http://www.linuxapps.com/) today announced that it has acquired Bleeding Edge
Magazine (http://www.gcs.bc.ca/bem/).
Under the term of the agreement, Bleeding Edge will join 32BitsOnline Magazine
as its news information source for software development.
<P> Like 32BitsOnline, Bleeding Edge will continue to centrally focus on
developing open source application for Linux. In addition to application
development, Bleeding Edge will also focus in delivering articles on gaming
development.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">New site offers free personal file storage for linux users
</font>
</H3>
<P>
<P> Mill Valley, CA, JUNE//99 - Linux users can now get 25 Megs of free disk
space for their files accessible from any computer on the Internet.
FreeLinuxSpace.com, a new website service from FreeDiskSpace, offers
subscribers free a virtual folders system, where they can upload, store
and download all types of files into their personal secured area. "For
Linux users this service alleviates the need for setting up floppy, zip,
or hardware drives," it also gives business people and students the
ability to store files securely and share files with colleagues
worldwide", said Ari Freeman, CMO of FreeDiskSpace.
<P> The FreeLinuxSpace folder service includes password protection, file
descriptions, multiple file downloads, free trial versions of software
programs and requires no FTP software. Folders can be upgraded to
include high security protection through "https" and shared folder
access to unlimited amount of users.
<P> To get 25 free Megs of online file storage and to learn more about the
sites. Go to FreeDiskSpace.com or FreeLinuxSpace.com.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">Linux Press new series: <EM>Linux Resource Series</EM>
</font>
</H3>
<P> PENNGROVE, CA (June 29, 1999) - Linux Press today introduced its newest
line of books, the *Linux Resource Series*. Designed to provide comprehensive
documentation for the latest Linux distributions and concepts, the Linux
Resource Series will enable users of all levels to access Linux information.
<P> First in the series is <STRONG><EM>The Installation and Getting Started
Guides for Red Hat Linux 6.0</EM></STRONG>. Based on Red Hat's latest Linux 6.0
distribution, the two user manuals have been combined into one handy volume.
Also included are two Red Hat Linux 6.0 CD-ROMs that contain the Linux
operating system, the source code and a selection of over 600 packages such as
C/C++ compilers, programming languages, Internet Server, utilities, editors and
much more. Bonus files include a commercial-grade backup program and disk
partitioning tools.
<P> "The Installation and Getting Started Guides for Red Hat Linux 6.0" provide
information on the following significant subjects: Installation, Package
Selection with RPM, System Administration, System Configuration, Latest
Stable 2.2.x Kernel, Networking, GNOME and KDE Window Managers, and Enhanced
Font Support.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">Linux Links
</font>
</H3>
<P> Linux Knowledge Base:
<A HREF=http://linuxkb.cheek.com/>
http://linuxkb.cheek.com/</A> <BR>
(many forms of Linux documentation
including the HOWTOs, <EM>Gazette</EM> articles, and third-party documentation.
<P> The Linux Guide, a comprehensive compendium of Linux
terms and definitions: <A HREF=http://www.linuxlinks.com/guide/>
http://www.linuxlinks.com/guide/</A>
<P>Red Hat's imminent IPO (stock offering):
<A HREF=http://www.redhat.com/corp/press_ipo.html>
http://www.redhat.com/corp/press_ipo.html</A>. Check the
<A HREF=http://www.redhat.com>Red Hat home page</A> for updates.
<P> A Linux web camera: <A HREF=http://www.linuxcam.com/>
http://www.linuxcam.com/</A>, <A HREF=http://www.musiqueplus.com/>
http://www.musiqueplus.com/</A>
<P> Applix's new Linux division (newsalert.com article):
<A HREF=http://www.newsalert.com/bin/story?StoryId=Cn2CHqbKbyteXotm>
http://www.newsalert.com/bin/story?StoryId=Cn2CHqbKbyteXotm</A>
<P> Free web-based e-mail, run on a Linux server:
<A HREF=http://www.linuxmail.org/>http://www.linuxmail.org/</A>
<P> Canadian Linux site, with links to lots of Linux information:
<A HREF=www.linuxcanada.net>http://www.linuxcanada.net</A>
<P> Server administration system for schools (kindergarten through high
school):
<A HREF=http://k12admin.cmsd.bc.ca/>http://k12admin.cmsd.bc.ca/</A>
<P> Home Depot testing Linux for mushrooming PC volume (computerworld
article):
<A HREF=http://www.computerworld.com/home/print.nsf/CWFlash/990621B00E>
http://www.computerworld.com/home/print.nsf/CWFlash/990621B00E</A>
<P> Extensive IDG interview with Linus (SunWorld article):
<A HREF=http://www.sunworld.com/swol-06-1999/swol-06-torvalds.html?0621a>
http://www.sunworld.com/swol-06-1999/swol-06-torvalds.html?0621a</A>
<P> TheLinuxStore Comes to www.onsale.com (Yahoo article):
<A HREF=http://biz.yahoo.com/bw/990621/ca_onsale__1.html>
http://biz.yahoo.com/bw/990621/ca_onsale__1.html</A>
<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">C.O.L.A news
</font>
</H3>
<P>
<UL>
<LI><A
HREF="http://www.cs.helsinki.fi/%7Emjrauhal/linux/cola.archive/1999-06/mjr.1999-06-20.005">
Ganymede 0.99.2 - network directory management system</A>
<LI><A
HREF= http://www.cs.helsinki.fi/%7Emjrauhal/linux/cola.archive/1999-06/mjr.1999-06-20.007>
Votes needed against upcoming European Software Patent Laws</A>
<LI><A
HREF=http://www.cs.helsinki.fi/%7Emjrauhal/linux/cola.archive/1999-06/mjr.1999-06-24.013>
SkateNews - free news reader written in Java</A>
</UL>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">Cygnus introduces Code Fusion IDE for Linux
</font>
</H3>
<P>
<P> PC EXPO, N.Y., June 21, 1999 - Cygnus Solutions, the leader in
open-source software, today unveiled Cygnus Code Fusion for Linux, the
industry's highest performance1, most complete Integrated Development
Environment (IDE) for Linux developers. Code Fusion IDE makes it
possible for developers familiar with programming on Windows platforms
to quickly become productive in developing for Linux.
<P> The Code Fusion IDE is optimized for the Intel2 Architecture to provide
developers the tools required for building the fastest applications
possible. This complete Linux IDE tightly integrates C, C++, and Java3
programming languages with a robust graphical user interface (GUI) to
enhance developer productivity and reduce software product
time-to-market. Cygnus Code Fusion supports all major Linux
distributions to offer Linux developers the most flexibility in
development on and for Linux.
<P> With Code Fusion, Cygnus combines the latest Cygnus-certified,
open-source GNU tools release with an intuitive graphical IDE
framework. The performance and functionality of the Code Fusion IDE --
featuring a C, C++, and Java tools project manager, editor, graphical
browsers and the Cygnus Insight debugger interface, is being
demonstrated for the first time at PC Expo in the Linux Pavilion at the
Cygnus Booth, 1525-27.
<P> Cygnus Code Fusion for Linux will be shipped in July 1999 and is priced
at $299. Code Fusion IDE features a simple installation of all necessary
tools to develop software on Linux, including printed and on-line
documentation and 30-day installation support upon registration. Code
Fusion will be available for purchase online at www.cygnus.com/linux and
through the Cygnus Partner Program.
<P> Cygnus also announced plans to release the source code to <STRONG> Cygnus
Insight</STRONG>, a graphical user interface (GUI) for the industry-standard
GNU debugger, GDB. Known in programming circles as GDBtk, the Cygnus Insight
GUI provides the technology for effective and efficient debug sessions by
improving a software developer's ability to visualize, manage, and examine the
status of a program as it is debugged. The source code for Cygnus Insight
debugger will be available from Cygnus in July on
http://sourceware.cygnus.com/gdb.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">
Cygnus launches subscription service for open source software</A>
</font>
</H3>
<P> SUNNYVALE, Calif., June 8, 1999 - Cygnus Solutions, the leader in
open-source software, today announced the immediate availability of Sourceware
CD, a subscription program for the open-source software projects hosted by
Cygnus at http://sourceware.cygnus.com. The Sourceware CD provides convenient
access to the latest open-source technologies, such as eCos (Embedded Cygnus
Operating System), the EGCS compiler, GDB debugger, and Cygwin, which are
currently available on the sourceware.cygnus.com Web site.
Sourceware.cygnus.com is an open-source Web resource for software developers
around the world that provides infrastructural software technologies intended
to establish a common, open standard platform for software development.
The Sourceware CD provides a complete snapshot of sources and selected
binaries for:
<PRE>
Cygwin - a UNIX API for Win32 systems,
eCos - the Embedded Cygnus Operating System,
EGCS Compiler project - features industry leading embedded compiler
technology,
GDB - industry leading embedded and native debugger,
Open-Source Tools for the Java Language - a developer toolkit and
Mauve, a test suite for Java class libraries,
binutils, libstdc++, GNATS, automake, autoconf and other open source
sponsored projects.
</PRE>
<P> The Cygnus Sourceware CD is immediately available and is priced at
$19.99 for a single snapshot, or $69.99 for an annual CD subscription
(domestic customers only) that includes four quarterly shipments of the
latest source code from all Sourceware projects. Sourceware CDs can be
ordered immediately at www.cygnus.com/sourcewarecd or
http://sourceware.cygnus.com/.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">iServer: a Web/Application Server Written Entirely in Java
</font>
</H3>
<P>
<P> Kearny, NJ. - June 27, 1999 - Servertec today announced the availability of
a new release of iServer, a small, fast, scalable and easy to administer
platform independent Web/Application Server written entirely in JavaTM.
<P> iServer is the perfect Web Server for serving static Web pages and a
powerful Application Server for generating dynamic, data driving Web pages
using Java Servlets, iScript, Common Gateway Interface (CGI) and Server Side
Includes (SSI).
<P> iServer is now more scalable than ever, it can use any JDBC accessible
database to store users, groups, access rights and access control lists, as
well as, log client requests, server events and errors. The release also
features support for JSDK 2.1, invoker servlet, an expanded API, bug fixes
and updates to administrator and documentation.
<P> iServer preview release is available for free at http://www.servertec.com
(connect-time charges may apply).
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">Compaq to Offer Linux Software Tools from Cygnus
</font>
</H3>
<P>
<b><u>VARVISION</u>, San Diego, CA, May 26, 1999 </b>Cygnus
Solutions, the leader in open-source software, today announced that
Compaq Computer Corporation plans to make available the Cygnus
Professional Linux Developers Kit online to members of the Compaq
Solutions Alliance (CSA). Cygnus GNUPro Toolkit for Linux, Cygnus
Source-Navigator for Linux, and future Linux software development
products from Cygnus will be available to more than 3,500 independent
software vendors, consultants and systems integrators who are members of
the CSA program. Cygnus is also offering CSA members the industry=92s first
Linux support package for GNUPro tools. Given the growing demand
for Linux products, any software developer, software consultant, or
system integrator can evaluate Cygnus=92 Linux products at the CSA Test
Drive New Technologies web site
(<a href="http://www.compaq.com/csa/">www.compaq.com/csa/</a>).
Members can then link to Cygnus to purchase the software at special
pricing.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">Canto Media Asset Management (MAM) solution
</font>
</H3>
<P> May 26, 1999 (Berlin)- Canto Software, creator of Cumulus, the award-winnin
g Media Asset Management (MAM) solution, announced support for the Linux
operating system to be made available by the end of this year. The company will
expand what it already the broadest platform support for a media asset
management solution.
<P> http://www.canto.com
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">Linux STREAMS
</font>
</H3>
<P> Linux STREAMS (LiS) version 2.2 is now available.
<P>Documentation: http://email.gcom.com/LiS/<BR>
Download: ftp://ftp.gcom.com/pub/linux/src/LiS-2.2/LiS-2.2.tgz
<P> Support for 2.2.x kernels. Better loadable module support. Support for
kerneld. Some bug fixes. Better documentation.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">Xref-Speller v.93.4
</font>
</H3>
<P> Xref-Speller v.93.4 for Linux is now available at addresses:
<P> Primary site: http://www.xref.sk/<BR>
Mirror site: http://guma.ii.fmph.uniba.sk/xref/
<P> Xref-Speller is a source browsing and advanced editing package
intended for C and Java software developers.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">e-smith server and gateway
</font>
</H3>
<P>
<P>The e-smith server and gateway is a special distribution of Linux that
installs on a PC in about 10 minutes, automatically converting it into a
Internet thin communications server (SMTP, POP3, web, security, routing, etc.
services). Installation is 100% automatic. A graphical user interface makes
it very simple to configure the server and administer the network. We designed
the product to be usable by enterprises without Linux expertise. It's an open
source product, available for free download, or on CDROM with a manual for $40.
We sell support contracts on it (ninety days for $195 / one year for $390).
<P> http://www.e-smith.net
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">eSoft inks liscensing pact with HP for "redphish"
</font>
</H3>
<P>
<P> BROOMFIELD, Colo., June 21, 1999 - eSoft Inc. (NASDAQ Small Caps: ESFT), the
company that develops Internet access solutions for small businesses, today
announced it has entered into a software licensing agreement with
Hewlett-Packard Company (HP), one of the world's leading computer
corporations. This is the first agreement for redphish(tm), the Linux(tm)
licensing program recently unveiled by eSoft and is expected to total up to
$500,000 in development and licensing fees.
<P> eSoft Inc. was founded in 1984 with headquarters in Broomfield, Colo. eSoft
provides a family of Internet appliances and services that enable small to
medium-sized business to harness the full power of the Internet. The TEAM
Internet family of products is designed for businesses with up to 200
workstations and provides low-cost, LAN-to-Internet connectivity and
includes a range of featus, irencluding e-mail, Web browsing, firewall
security, a Web server, remote access and virtual private network (VPN)
functionality. Contact eSoft at 295 Interlocken Blvd., #500, Broomfield,
Colo., 80021, USA; 303-444-1600 phone; 303-444-1640 fax; www.esoft.com. TEAM
Internet is a registered trademark of eSoft Inc.
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
<font color="green">Other Products
</font>
</H3>
<P> ACIS First 3D Modeling Engine To Offer LIN UX Port:
<A HREF=http://www.spatial.com>http://www.spatial.com</A>
<P> NetBeans announces integrated EJB, CORBA and XML support in Java 2
Technology Development Suite:
<A HREF="http://www.netbeans.com">www.netbeans.com</A>
<P>Kaffe will be the first Java Virtual Machine to run Microsoft Java
extensions on non-MS operating systems (newsalert.com article):
<A HREF=http://www.newsalert.com/bin/story?StoryId=Cn2r:qbWbtLLnmdG3>
http://www.newsalert.com/bin/story?StoryId=Cn2r:qbWbtLLnmdG3</A>
<P> SGMLtools 1.0.10 available for download:
<A HREF=http://www.inf.ufrgs.br/~casantos/SGMLtools/>
http://www.inf.ufrgs.br/~casantos/SGMLtools/</A><BR>
[Please download in the late evening to conserve bandwidth.]
<P> South African vendor of Linux distributions:
<A HREF=http://www.os2.co.za/software>http://www.os2.co.za/software</A>
<P> <hr> <P>
<!--================================================================-->
<center>Published in <i>Linux Gazette</i> Issue 43, July 1999</center>
<P> <HR> <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"
><strong>Hey answer guy!!!</strong></a>
<dt><A HREF="#tag/2"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>One more thing. --or--
<dd><A HREF="#tag/2"
><strong>Null Modems: Connecting MS-DOS to Linux as a
Serial Terminal</strong></a>
<dt><A HREF="#tag/3"
><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/3"
><strong>Upgrade Breaks Several Programs,
<TT>/proc</TT> Problems, BogoMIPS Discrepancies</strong></a>
<br>A visit to "Library Hell"
<dt><A HREF="#tag/4"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Floppy/mount Problems: Disk Spins,
Lights are on, No one's Home? --or--
<dd><A HREF="#tag/4"
><strong>Floppy Failure: mdir Works; mount Fails</strong></a>
<br>Found the Culprit!
<dt><A HREF="#tag/5"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>need your help --or--
<dd><A HREF="#tag/5"
><strong>Incompetance in Parenting</strong></a>
<dt><A HREF="#tag/6"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>bad clusters --or--
<dd><A HREF="#tag/6"
><strong>Try Linux ... and Grammar</strong></a>
<dt><A HREF="#tag/7"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Duplicating / --or--
<dd><A HREF="#tag/7"
><strong>Out of Space....or Inodes? All Sparsity Lost?</strong></a>
<dt><A HREF="#tag/8"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>RAID 1 solutions --or--
<dd><A HREF="#tag/8"
><strong>Arco Duplidisk: Disk Mirroring</strong></a>
<dt><A HREF="#tag/9"
><img src="./../gx/dennis/qbub.gif" height="28" width="50"
alt="(?)" border="0"
></a>Modem Help --or--
<dd><A HREF="#tag/9"
><strong>Searching for Days for a Linux Modem:
The Daze Continues</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 -->
<p>So, my LG activity for this month is pretty sparse. Does
that mean that I haven't been involved in any Linux activity?
Does it mean that I'm not getting enough LG TAG e-mail?
</p><blockquote>
HARDLY!
</blockquote><p>
However, my work at <a href="http://www.linuxcare.com/">Linuxcare</a>
has been taking a pretty big bite
out of my time. In addition the long drive up to the city
(from my house in Campbell to Linuxcare's offices in San Francisco
is about 50 miles) keeps me away from the keyboard for far too
long. (Yes, I'm looking for <em>cheap</em> digs up in the city to keep
my up there during the week).
</p><p>
Mostly I've been working with our training department, presenting
classes on Linux Systems Administration to our customers and our
new employees, and helping develop and refine the courseware around
which the classes are built.
</p><p>
I've also been watching the Linux news on the 'net with my usual
zeal.
</p><p>
The leading story this month seems to be
"<a href="http://www.mindcraft.com/whitepapers/openbench1.html"
>Mindcraft III</a> --- The Return of the Benchmarkers."
The results of the benchmarking tests aren't surprising. NT
with IIS still fared better on this particular platform under
<a href="http://www.kegel.com/mindcraft_redux.html">these test conditions</a>
than the Linux+Apache+Samba combination. The Linux 2.2.9 kernel and
The Apache 1.3.6 release seems to have closed almost half of the gap.
</p><p>
As I suggested last month, the most interesting lessons from this
story have little to do with the programming and the numeric
results. There were technical issues in the 2.2.5 kernel that
were addressed by 2.2.9. I guess Apache was updated to use the
<tt>sendfile()</tt> system call. These are relatively minor tweaks.
</p><p>
Microsoft and Mindcraft collaborated for a significant amount
of time to find a set of conditions under which the Linux/Apache/
Samba combination would perform at a disadvantage to NT.
</p><p>
When MS and Mindcraft originally published their results the
suite of tests and the processes employeed were thoroughly
and quickly discredited. I've never seen such in-depth
analysis about the value (or lack thereof) of benchmarking in
the computing industry press.
</p><p>
Nonetheless, the developers of the involved open source packages
shrugged, analyzed the results, did some profiling of their own,
looked over their respective bits of code, devoted hours to
coding tweaks, a few days worth to tests, and spent some time
exchanging and debating different approaches to improving the code.
</p><p>
The important lessons from this are:
</p><ol>
<li> Just because a criticism is discredited, biased, and
possibly dishonest doesn't mean that we can't find
some clues to lead to real improvements. These
developers could have stuck their heads in the sand and
dismissed the whole topic as unimportant. They could
have felt that the PR and advocacy responses would
suffice.
<br> <br>
That "ostrich" approach is more commonly found in
corporate and government circles than among freeware
programmers. This is largely due to management. A
development manager at a large corporation will tend
to put as much energy into internal PR and "spin
control" as to any real improvement in the product.
Programmers often find themselves at odds with
their own management.
<br> <br>
<li> When we choose to attend to criticisms, it's vital
not to adopt their demonstration model as your objective.
We must stay true to our own requirements.
<br> <br>
It would be easy to focus on "beating the Mindcraft
benchmark" --- to insert special case code that exists
solely to produce superior results under the specific
conditions present in that suite of tests.
<br> <br>
This is referred to as "fraud."
<br> <br>
It would be technically easy for the kernel developers
to write the code for this. However, it would be
difficult to actually perpetrate this or any other fraud
in any open source project (since the code is there for
all to see --- and there are a number of people who
actually read that code).
<br> <br>
So, the Linux, Apache, and Samba developers showed
admirable focus on real improvements and seemed to
have eschewed any temptation to commit fraud.
<br> <br>
(We can't know whether the competition has rigged their
platform, since it is closed source and hasn't been
thoroughly audited by reputable independents).
</ol><p>
This leads us to a broader lesson. We can't properly evaluate any
statistics (benchmark results are statistics, after all) without
considering the source. What were the objectives (the
requirements) of the people involved? Are the objectives of the
people who took the measurements compatible with those of their
audience. In large part any statistic "means" what the presenter
intends it to "mean" (i.e. the number can only be applied to the
situation that was measured).
</p><p>
Benchmarks are employed primarily by two groups of people:
Software and hardware company marketeers, and computer periodical
writers, editors and publishers. Occasionally sysadmins and IT
people use statistics that are similar to benchmarks ---
simulations results --- for their performance tuning and
capacity planning work. Unfortunately these simulations are
often confused with benchmarks.
</p><ul>
<li> Interestingly the term benchmark probably stems from
physical "marks" (scratches or grooves), in work benches
used by woodworkers and other craftsmen to provide handy
measurements for their productions.
</ul><p>
Jim's first rule of requirements analysis is:
</p><blockquote>
Identify the involved parties.
</blockquote><p>
In this case we see two different producers of benchmarks and
a common audience (the potential customers, and the readership
are mostly the same). We also see that the real customers of
most periodicals are the advertisers --- which work for the same
corporations as the marketeers. This leads to a preference for
benchmarks that is bred of familiarity.
</p><p>
Most real people on the street don't "use" benchmarks. They may
be affected by them (as the opinions they form and get form others
are partially swayed by overall reputations of the organizations
that produce the benchmarks and those of the publications they read).
</p><p>
One of the best <a href="http://cs.alfred.edu/~lansdoct/mstest.html"
>responses</a> to the Mindcraft III results that I've
read is by Christopher Lansdown. Basically it turns the question around.
</p><p>
Instead of interpreting the top of the graphs as "how fast does
this go?" (a performance question) he looks at the bottom and the
"baseline" system configurations (intended for comparison) and
asks: "What is the most cost effective hardware and software
combination which will provide the optimal capacity?"
</p><p>
This is an objective which matches that of most IT directors,
sysadmins, webmasters and other people in the real world.
</p><p>
Let's consider the hypothetical question: Which is faster, an
ostrich or a penguin? Which is faster UNDERWATER?
</p><p>
What Christopher points out is that a single processor PC
with a couple hundred Mb of RAM and a single fast ethernet
card is adequate for serving simple, static HTML pages to
the web for any organization that has less than about 5 or
6 T1 (high speed) Internet lines. That is regardless of
the demand/load (millions of hits per day) since the webserver
will be idly waiting for the communications channels to clear
whenever the demand exceeds the channel capacity.
</p><p>
The Mindcraft benchmarks clearly demonstrate this fact.
You don't need NT with IIS and a 4 CPU SMP system with a
Gigabyte of RAM and four 100Mbps ethernet cards to provide
web services to the Internet. These results also suggest
rather strongly that you don't need that platform for
serving static HTML to your high speed Intranet.
</p><p>
Of course, the immediate retort is to question the applicability
of these results to <em>dynamic content</em>. The Mindcraft benchmark
design doesn't measure any form of dynamic content (but the
<a href="http://www.heise.de/ct/english//99/13/186-1/">c't magazine</a>
did - their article also has performance tuning hints for high-end hardware).
Given the obvious objectives of the designers of this benchmark
suite we can speculate that NT wouldn't fare as well in that scenario.
Other empirical and anecdotal evidence supports that hypothesis; most
users who have experience with Linux and NT webservers claim that
the Linux systems "seem" more responsive and more robust;
Microsoft uses about a half dozen separate NT webservers at their
site (which still "feels" slow to many users).
</p><p>
This brings us back to our key lesson. Selection of hardware and
software platforms should be based on requirements analysis.
Benchmarks serve the requirements of the people who produce and
disseminate them. Those requirements are unlikely to match those
of the people who will be ultimately selecting software and
hardware for real world deployment.
</p><p>
It is interesting to ask: "How does NT gain an advantage in this
situation?" and "What could Linux do to perform better under those
circumstances?"
</p><p>
From what I've read there are a few tricks that might help.
Apparently one of the issues in this scenario is the fact that
the system tested as four high speed ethernet cards.
</p><p>
Normally Linux (and other operating systems) are
"interrupt-driven" --- activity on an interface generates an
"interrupt" (a hardware event) which triggers some software
activity (to schedule a handler). This is normally a
efficient model. Most devices (network interfaces, hard disk
controllers, serial ports, keyboards, etc) only need to be
"serviced" occasionally (at rates that are glacial by
comparison to modern processors).
</p><p>
Apparently NT has some sort of option to disable interrupts on (at
least some) interfaces.
</p><p>
The other common model for handling I/O is called "polling." In
this case the CPU checks for new data as frequently as its
processing load allows. Polling is incredibly inefficient under
most circumstances.
</p><p>
However, under the conditions present in the Mindcraft survey
it can be more efficient and offer less latency than interrupt
driven techniques.
</p><p>
It would be sheer idiocy for Linux to adopt a straight polling
strategy for it's networking interfaces. However, it might be
possible to have a hybrid. If the interrupt frequency on a
given device exceeds one threshold the kernel might then switch
to polling on that device. When the polling shows that the
activity on that device as dropped back below another threshold it
might be able to switch back to interrupt-driven mode.
</p><p>
I don't know if this is feasible. I don't even know if it's
being considered by any Linux kernel developers. It might
involve some significant retooling of each of the ethernet
drivers. But, it is an interesting question. Other interesting
questions: Will this be of benefit to any significant number of
real world applications? Do those benefits outweigh the costs
of implementation (larger more complex kernels, more opportunities
for bugs, etc)?
</p><p>
Another obvious criticism of the whole Mindcraft scenario is the
use of Apache. The Apache team's priorities relate to correctness
(conformance to published standards), portability (the Apache
web server and related tools run on almost all forms of UNIX, not
just Linux; they even run on NT and its ilk), and features
(support for the many modules and forms of dynamic content, etc).
Note that performance isn't in the top three on this list.
</p><p>
Apache isn't the only web server available for Linux. It also
isn't the "vendor preferred" web server (whatever that would
mean!) So the primary justification for using it in these
benchmarks is that it is the dominant web server in the Linux
market. In fact Apache is the dominant web server on the Internet
as a whole. Over half of all publicly accessible web servers
run Apache or some derivative. (We might be tempted to draw a
conclusion from this. It might be that some features are more
important to more web masters than sheer performance speeds and
latencies. Of course that might be an erroneous conclusion ---
the dominance of Apache could be due to other factors. The
dominance of MS Windows is primarily and artifact of the PC
purchasing process --- MS Windows comes pre-installed, as did
MS-DOS before it).
</p><p>
So, what if we switch out Apache for some other web server.
</p><p>
Zeus (<a href="http://www.zeustech.net/products/zeus3/"
>http://www.zeustech.net/products/zeus3/</a>), a commercial
offering for Linux and other forms of UNIX, is probably the
fastest in existence.
</p><p>
thttpd (<a href="http://www.acme.com/software/thttpd/"
>http://www.acme.com/software/thttpd/</a>) is probably the
fastest in the "free" world. It's about as fast as the
experimental <a href="http://www.fenrus.demon.nl/">kHTTPd</a>
(an implementation of a web server that
runs directly in the kernel -- like the kNFSd that's available
for Linux 2.2.x).
</p><p>
Under many conditions thttpd (and probably kHTTPd) are a few
times faster than Apache. So they might beat NT + IIS by
about 100 to 200 per cent. Of course, performance analysis is
not that simple. If the kernel really is tied up in interrupt
processing for a major portion of it's time in the Mindcraft
scenario --- then the fast lightweight web server might offer
only marginal improvement FOR THAT TEST.
</p><p>
For us back in the real world the implication is clear, however.
If all you want to do is serve static pages with as little load
and delay as possible --- consider using a lightweight httpd.
</p><p>
Also back in the real world we get back to other questions.
How much does the hardware for a Mindcraft configuration cost?
How much would it cost for a normal corporation to
purchase/license the NT+IIS configuration that would be required
for that configuration? (If I recall correctly, Microsoft still
charges user licensing fees based on the desired capacity of
concurrent IIS processes/threads/connections. I don't know the
details, but I get the impression that you'd have to add a few
grand to the $900 copy of NT server to legally support a
"Mindcraft" configuration).
</p><p>
It's likely that a different test --- one whose objectives were
stated to more closely simulate a "real world" market might
give much different results.
</p><p>
Consider this:
</p><blockquote>
<strong>Objective:</strong> Build/configure a web service out of standard
commercially/freely available hardware and software components
such that the total cost of the installation/deployment would be
cost a typical customer less than $3000 outlay and no more than
$1000 per year of recurring expenses (not counting bandwidth and
ISP charges).
</blockquote><blockquote>
Participants will be free to bring any software and hardware that
conforms to these requirements and to perform any tuning or
optimizations they wish before and between scheduled executions
of the test suite.
</blockquote><blockquote>
<strong>Results:</strong> The competing configurations will be tested with a
mixture various sorts of common requests. The required responses
will include static and dynamic pages which will be checked for
correctness against a published baseline. Configurations
generating more than X errors will be disqualified. Response
times will be measured and graphed over a range of simulated
loads. Any service failures will be noted on the graph where they
occur. The graphs for each configuration will be computed based
on the averages over Y runs through the test suite.
</blockquote><blockquote>
The graphs will be published as the final results.
</blockquote><p>
The whole test could be redone for $5000 and $10000 price points
to give an overview of the scalability of each configuration.
</p><p>
Note that this proposed benchmark idea (it's not a complete
specification) doesn't generate a simple number. The graphs of
the entire performance are the result. This allows the potential
customer to gauge the configurations against their anticipated
requirements.
</p><p>
How would a team of Linux/Apache and Samba enthusiasts approach
this sort of contest? I'll save that question for next month.
</p><p>
Meanwhile, if you're enough of a glutton for my writing (an
odd form of PUNishment I'll admit) and my paltry selection of
answers, rants and ramblings for this month isn't enough then
take a look at a couple of my "Open Letters"
(<a href="http://www.starshine.org/jimd/openletters"
>http://www.starshine.org/jimd/openletters</a>).
By next month I hope
that my book (<a href="http://www.newriders.com/934-3.htm">Linux Systems
Administration</a>) will be off to the printers and my work at
Linuxcare will have reached a level where I can do MORE ANSWER GUY QUESTIONS!
</p>
<em><p>[ But not quite as many as January, ok? -- Heather ]</p></em>
<!-- 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"
>Hey answer guy!!!</H3>
<p><strong>From Nate Brazell on Mon, 31 May 1999
</strong></p>
<P><STRONG>
Wow!
</STRONG></P>
<P><STRONG>
I really didn't expect a response. And certainly not one as detailed as
this!!!
</STRONG></P>
<P><STRONG>
Thanks Dennis.
</STRONG></P>
<P><STRONG>
I do have questions regarding this part:
<font color="#000033">
<br><code>>> mount $NEWFS /mnt/tmp</code>
(Mounting my new FS)
<br><code>>> cp -pax $OLDDIR /mnt/tmp</code>
(Copying all data to /mnt/tmp)
<br><code>>> umount /mnt/tmp</code>
(unmounting /mnt/tmp? Where does my data go?)
</font></strong></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Your data stays both in <tt>$OLDDIR</tt> and on the filesystem that
you had mounted on <TT>/mnt/tmp</TT> and which you'll be mounting
over a new (empty) mount point which has the same name
as the directory that contains the original copy of your data).
</BLOCKQUOTE>
<BLOCKQUOTE>
See the next couple of commands:
<font color="#000033">
<br><code>>> mv $OLDDIR $OLDDIR.old</code>
(Moving directories)
<br><code>>> mkdir $OLDDIR</code>
(recreating directory)
<br><code>>> chmod $OLD_DIR_PERMS $OLDDIR</code>
(Setting perms)
<br><code>>> mount $NEWFS $OLDDIR</code>
(Mounting new FS)
</font></blockquote>
<BLOCKQUOTE>
Using these commands you now have two copies of your
data. One copy is named <TT>.../$OLDDIR.old</TT> and the other
is a new filesystem mounted on <TT>.../$OLDDIR</TT>
</BLOCKQUOTE>
<BLOCKQUOTE>
After you've verified, to your satisfaction, that
everything is alright after your change, you can remove
the old copy with '<tt>rm -fr $OLDDIR.old</tt>'
</BLOCKQUOTE>
<BLOCKQUOTE>
In general there are two ways to transparently migrate
data from one filesystem to another under UNIX.
</BLOCKQUOTE>
<BLOCKQUOTE>
The method I've describe moves the data onto a new
filesystem that's mounted directly under the old
location. Another method is to create a new filesystem
on an arbitrary mount point (conventionally <TT>/u1</TT>, <TT>/u2</TT>, etc).
and the original directory is replaced with a symlink to
point to a directory under that new fs.
</BLOCKQUOTE>
<BLOCKQUOTE>
In either case it's possible that some differences will
not be entirely transparent. In particular some files
might have had hardlinks that crossed the boundary of the
directory tree. Those links would now be broken (resulting
in two separate files where formerly you had one file
with two or more links. This is rarely a problem. However
you could test for this case with a bit of scripting and editing.
</BLOCKQUOTE>
<BLOCKQUOTE>
Mainly you generate a report using '<tt>find</tt>'. Use something like:
</BLOCKQUOTE>
<blockquote><pre>find $FSROOT -xdev -not -type d -links +1 \
-printf "%i %p\n" | sort -n
</pre></blockquote>
<BLOCKQUOTE>
... where <tt>$FSROOT</tt> is the root of whichever filesystem
houses the directory tree that you're trying to migrate.
</BLOCKQUOTE>
<BLOCKQUOTE>
This prints a list of files sorted by their inodes. Any set
of hard links to a given file have their device number and
inode pair in common. You can then manually seach the
resulting list (usually fairly short). For any even file
you don't have to worry at all if all of its links, or none
of its links, are under the subdirectory tree that you are
moving. Probably there will be none that have this problem.
For those that do, simply replace one set of the hard links
with symlinks. In other words, all of the hard links that
are inside the target directory tree should be converted to
symlinks, or vice versa.
</BLOCKQUOTE>
<BLOCKQUOTE>
It's very unlikely that this will cause any problem. If you
ever see a case where a UNIX or Linux program suffers from
"transplant shock" I'd like to hear about it.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Where is the old data that needs to go back into the newly
created <tt>$OLDDIR</tt>?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
You copied it with the '<TT>cp -pax</TT>'
</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"
>Null Modems: Connecting MS-DOS to Linux as a Serial Terminal</H3>
<p><strong>From phax on Mon, 31 May 1999
</strong></p>
<!-- ::
Null Modems: Connecting MS-DOS to Linux as a Serial Terminal
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Would the terminal program start the null modem connection or
would you have to have it be connected before hand through DOS
(I don't know a whole lot about DOS)? I know Linux will be
looking for a terminal on <tt>ttyS0</tt> but will a terminal emulator
show up as a terminal connected on that port?
Sorry to be such a nag,
</STRONG></P>
<P><STRONG>
Richard Mills
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Linux will look for terminal connections on
a line (<TT>/dev/ttyS0</TT>, <TT>/dev/ttyS1</TT>, whatever) if it
it has a "<tt>getty</tt>" process running on that port.
</BLOCKQUOTE>
<BLOCKQUOTE>
You set up a getty process by modifying your <TT>/etc/inittab</TT>
and adding a line like:
</BLOCKQUOTE>
<blockquote><pre>d1:23:respawn:/sbin/agetty -L 38400,19200,9600,2400,1200 ttyS1 vt100
</pre></blockquote>
<BLOCKQUOTE>
... where you can use <tt>agetty</tt>, <tt>uugetty</tt>, <tt>mgetty</tt>, or
<tt>getty_ps</tt> (but not <tt>mingetty</tt>). The syntax and additional
configuration of each of these other getty packages differs slightly.
Search through old issues of the Answer Guy for more
detailed explanations and examples.
</BLOCKQUOTE>
<BLOCKQUOTE><em>[ Issues 16, 17, 18, 21, 22, and 23 mention getty, and more
recently, issues 34 and 37 describe using X over serial lines.
-- Heather ]
</em></BLOCKQUOTE>
<BLOCKQUOTE>
As far as the DOS side of this, you generally just have to
start up your terminal emulation package and configure it
for "direct" or "null-modem" use.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 2 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/3"><HR WIDTH="75%" ALIGN="center"></A>
<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>This refers to <a href="../../issue42/tag/20.html">Upgrade breaks
several programs...</a> in Issue 42.</p>
<hr width="40%" align="center">
<!-- begin 3 -->
<p><strong>From Peter Caffall on Mon, 31 May 1999
</strong></p>
<!-- ::<BlockQuote>
Upgrade Breaks Several Programs, <TT>/proc</TT> Problems, BogoMIPS Discrepancies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A visit to "Library Hell"
</BlockQuote>:: -->
<P><STRONG>
Jim:
</STRONG></P>
<P><STRONG>
Thanks you for your detailed reply. Since I wrote, I resolved
(although not yet solved) the problem. I had a free partition on
my disk, which I made bootable, and installed (from scratch) the
new RedHat 5.2. This came up with no real problems. Then I began
moving some of the stuff from the old partition to the
new. Everything works. When things settle down, and I've got
everything from the old slice that I need, I will just wipe it
out, and free it up.
</STRONG></P>
<P><STRONG>
The reference to <tt>libc.so.5.4.33</tt> was due to a reference on another
page to problems with Netscape.
</STRONG></P>
<P><STRONG>
Thanks again
<br>Pete Caffall
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Glad you got it working.
If you have the disk space (on a second drive or extra
partition) you could do a fresh installation of
<A HREF="http://www.redhat.com/">Red Hat</A> 6.0 and then selectively
migrate your configuration and data files from your old filesystems.
It's sort of a slow laborious way to do upgrades, but it's one that works
for me.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 3 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/4"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 5 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Floppy Failure: mdir Works; mount Fails</H3>
<p><strong>From Tim Baverstock on Fri, 25 Jun 1999
</strong></p>
<!-- ::
Floppy Failure: mdir Works; mount Fails
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi.
</STRONG></P>
<P><STRONG>
I came across this page where someone'd asked you a question,
apparently identical to something a (non-techie) friend of mine is
now experiencing, except that his Linux is a vanilla RedHat 5.1
install (although with Star Office, and RedHat 5.2 Ghostscript and
ppp).
</STRONG></P>
<P><STRONG>
He has a PCI PnP soundcard in his machine, which he's not managed
to get working with W95 or with Linux, but the rest of the machine
worked fine for both OSs, including the floppy.
</STRONG></P>
<P><STRONG>
All of a sudden, about a month ago, the floppy stopped mounting on
Linux (works fine on W95).
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Does writing to the floppy work under MS Windows?
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I can `<TT>less -f /dev/fd0</TT>', to see the data on the floppy, and
<tt>mdir</tt>/<tt>mcopy</tt> work fine.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Does '<tt>mcopy</tt>' work in both directions (copying to
the floppy as well as from it)?
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
The machine mounts his W95 <tt>C:</tt> drive as <TT>/mnt/dosC</TT>, and
that works perfectly as well.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
So we know that this kernel is compiled with
FAT fs support (linked in directly or the
loadable module support is working).
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
When I try `<TT>mount -t msdos /dev/fd0 /tmp/floppy</TT>', the mount
command goes into `<tt>D</tt>' wait in the `<tt>ps axf</tt>' output, as
does the update demon. The floppy lights, spins, then stops, but no
failure messages appear, and I can't kill the mount. Subsequent
attepts to mount also block, and if I recall correctly, <tt>mcopy</tt> says
it can't write to the device.
</STRONG></P>
<P><STRONG>
Nothing appears in <TT>/var/log/messages</TT>.
</STRONG></P>
<P><STRONG>
During shutdown, the <tt>umount -a</tt> line in
<TT>/etc/rc.d/init.d/halt</TT> hangs too.
</STRONG></P>
<P><STRONG>
If you're interested in whether fiddling with the soundcard fixes
the problem, I'll be happy to let you know, but since mcopy and
mdir work, this seems unlikely.
</STRONG></P>
<P><STRONG>
Nothing's been added or removed within the machine's case, so I
think the only thing that could have changed, which persists over
powerdowns, is the CMOS, and hence (presumably) some aspect of PnP
that W95 was fiddling around with.
</STRONG></P>
<P><STRONG>
I've only ever had <tt>isapnp</tt> work under RedHat 6.0, when Redhat did
it all for me!
<IMG SRC="./../gx/dennis/smily.gif" ALT=":)"
height="24" width="20" align="middle">
For my earlier kernels, I used the <tt>cmgr</tt> patch.
</STRONG></P>
<P><STRONG>
Cheers,
<br>Tim Baverstock.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
What happens if you try mounting it in read-only mode?
</BLOCKQUOTE>
<BLOCKQUOTE>
It sure sounds like a hardware failure. I'd buy an
extra floppy drive (about $20 US in most computer parts
stores). I've asked questions to see if the problem
is limited to the write functionality (since a careful
reading of your messages seems to correlate to read-only
vs. read/write access). When you mount a filesystem
in rw mode under Linux --- I think the atime on the
root of that filesystem will be updated (involving
a write to the media). If it works when you try the
'<tt>mount -o ro</tt>' variation on the command --- that
suggests that it is related to the write functions.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 5 -->
<hr width="40%" align="center">
<!-- begin 4 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Found The Culprit!</H3>
<p><strong>From Tim Baverstock on Sun, 27 Jun 1999
</strong></p>
<p><strong>
Hi Jim.
</strong></p>
<p><strong>
Ach! Rats!
</strong></p>
<p><strong>
I forgot to email you the solution I discovered!
</strong></p>
<p><strong>
The drive wrote perfectly well under Windows, and worked without difficulty in
both directions with <tt>mcopy</tt>. I should have made this clearer in my
first email; my apologies for this.
</strong></p>
<p><strong>
The functionality of the drive, and the evident integrity of the msdos filing
system module eliminated those subsystems from the problem, which was why I was
so perplexed, and why I wrote to you.
<IMG SRC="./../gx/dennis/smily.gif" ALT=":)"
height="24" width="20" align="middle">
</strong></p>
<p><strong>
The next day, I used <tt>strace</tt> on `<tt>mount</tt>' to try and find out
where it hung. It hung on the actual <tt>mount()</tt> system call itself.
</strong></p>
<p><strong>
I noticed that the automounter was in `<tt>D</tt>' discwait on the process
list during its own mount attempt, so I disabled it in the boot sequence
while trying to find out what was going on (I wanted to strace the very
first attempt to mount the floppydrive) but that cured the problem!
</strong></p>
<p><strong>
Further investigation (with <tt>strace</tt>) revealed that I'd earlier changed
<TT>/etc/resolv.conf</TT> to include a domain search path while trying to set
my friend up with an ISP account, and the DNS hang was causing automount to
hang while trying to finagle those strange pseudo-NFS mounts of the local
host it does (by the host's internet name, not as `localhost') for the floppy
drive!
</strong></p>
<p><strong>
I fixed <tt>resolv.conf</tt>, and the problem went away, although I've left
AMD disabled, because autofs does the same job, and was installed alongside
it on RedHat; and because one day I'll get my friend's ISP working on Linux
as well as Windows. I don't want this to repeat.
<IMG SRC="./../gx/dennis/smily.gif" ALT=":)"
height="24" width="20" align="middle">
</strong></p>
<p><strong>
Many thanks for your response, and my apologies once more for not writing
sooner,
</strong></p>
<p><strong>
Tim Baverstock.
</strong></p>
<!-- end 4 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/5"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 6 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Incompetance in Parenting</H3>
<p><strong>From Bernard Hahn on Fri, 25 Jun 1999
</strong></p>
<!-- ::
Incompetance in Parenting
~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hello my name is Bernie.
</STRONG></P>
<P><STRONG>
I have a 16 year old son that is heading for big trouble on
the net while I am at work. I can not be in both places at
the some time to keep an eye on him. Do you know if there are
any programs that will run in Windows 98 that can copy the
key board buffer to a file that would let me read in a text
format. I would like the program to run at boot up and be
able to copy the buffer all day long. I believe reading his
keyboard buffer may be of some help to me.
</STRONG></P>
<P><STRONG>
Please help, thank you for any help you my have to offer,
<br>Bernie in Los Angeles
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
First, I'm NOT the "I want to spy on my children's use of MS
Windows" Guy! I'm the Linux Gazette Answer Guy.
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course, if you used Linux it would be pretty easy to
secure the system so that the Internet and the modem were
inaccessible during specific times of day or until specific
passwords had been typed. It would even be possible to
configure filtering and access control (to monitor and limit
web access). You'd probably need to invest in some
cabinetry (physically securing a PC generally involves carpentry).
</BLOCKQUOTE>
<BLOCKQUOTE>
Your question has nothing to do with Linux.
</BLOCKQUOTE>
<BLOCKQUOTE>
More importantly your problem is much larger than any
software can solve. No software in the world could possibly
make your son more trustworthy. You cannot keep your kid
out of "big trouble on the net" by spying on his keystrokes.
</BLOCKQUOTE>
<BLOCKQUOTE>
If the muddled thinking that leads you to the fundamentally
flawed (and morally corrupt) notion that you should covertly
spy on your own teenage child using such software is typical
of your approach to parenting then its probably too late for
Bernie Jr.
</BLOCKQUOTE>
<BLOCKQUOTE>
I don't know what kind of "big trouble" you're trying to
protect the kid from. If it's porn, keep in mind that porn
sites are generally accessed through a GUI browser --- which
are conveniently configured for one-handed operation (point
and shoot, so to speak). If you're afraid that the kid is
"cracking" (sometimes erroneously referred to as "hacking")
and/or phreaking than any attempts you make to lock him out
of your Windows '98 PC will just be too pathetic. If you do
successfully find out that he's been vising 'badboys.net'
what do you plan to do? Confront him with your printouts?
Ground him until he's 35?
</BLOCKQUOTE>
<BLOCKQUOTE>
So what do you think the kid will do when he knows he's been
caught out? Will it be an contest: your computer skills and
time against his? Can he detect and bypass your futre
methods better than you can implement them? Will he go use
some buddy's computer? Will he skip the virtual trouble of
the 'net and go out to get into trouble of a more dangerous
variety? What will it do for the kid's opinion of you that
you don't have the balls to talk to him directly and that
you have to resort sneaking around on him?
</BLOCKQUOTE>
<BLOCKQUOTE>
The whole think is disgusting.
</BLOCKQUOTE>
<BLOCKQUOTE>
If you can't trust the kid with the computer by himself ---
lock the computer is some room when you're not home or get
rid of it.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 6 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/6"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 7 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Try Linux ... and Grammar</H3>
<p><strong>From firefly on Mon, 14 Jun 1999
</strong></p>
<!-- ::
Try Linux ... and Grammar
~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
hi dont know if you can help me so ill run my problem by ya!
</STRONG></P>
<P><STRONG>
i just bought a8.4gig samsung drv
i put it in as a slave and used partition magic to partition it
4k clusters......2gig/5gigand 1.4gig
rebooted and installed win 95b
</STRONG></P>
<P><STRONG>
when itryed to use files form the hdd thsy had errors so i thought
though ill format the drv and start again..... i removed all
partitions and rebooted with a boot disk95ver and it started to
format when it got too 27% it started saying. TRYING TO RECOVER
FILE ALLOCATION UNITS now scandisk says ive got bad
clusters...could you tell me whats happening here?
</STRONG></P>
<P><STRONG>
thanks g.lishman
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Sounds like a bad drive, bad cable, or bad controller
(not to mention a bad keyboard actuator).
</BLOCKQUOTE>
<BLOCKQUOTE>
It could be some incompatibility between the slave and
master (some IDE drives cannot co-exist in some combinations
on an IDE channel). Try running it on the other IDE channel
that you'll find in most recent PCs. (Configure the new
drive as standalone or as the master to your IDE/ATAPI
CD-ROM if you have one on that channel). Make sure to try a
fresh drive cable.
</BLOCKQUOTE>
<BLOCKQUOTE>
You might also try using some punctuation and capitalization
in your messages. This is not IRC. When you ask volunteers
(such as me) to provide the technical support that your
vendor was supposed to have sold you, the least you can do
is spend a little extra time on your message. It's best if
you can give the impression that you've done a bit of
research and made some attempt to find the answer on your
own.
</BLOCKQUOTE>
<BLOCKQUOTE>
Naturally you could also try installing Linux on this drive.
Linux has a neat utility called 'badblocks' which can be
used by itself and which is called by our filesystem
creation and filesystem check utilities (mke2fs and e2fsck
among others). After all, I'm the LINUX GAZETTE "Answer Guy"
not the "my Samsung IDE hard drive doesn't work with
Microsoft Windows '95 rev B answer guy."
</BLOCKQUOTE>
<!-- sig -->
<!-- end 7 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/7"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 9 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Out of Space....or Inodes? All Sparsity Lost?</H3>
<p><strong>From Derek Wyatt on Fri, 11 Jun 1999
</strong></p>
<!-- ::
Out of Space....or Inodes? All Sparsity Lost?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi James,
</STRONG></P>
<P><STRONG>
I know this question has been asked before (i'v read the 'stuff' in the
previous columns) but this one has an interesting wrinkle which i can't
answer. I hope you can
<IMG SRC="./../gx/dennis/smily.gif" ALT=":)"
height="24" width="20" align="middle">
</STRONG></P>
<P><STRONG>
I was copying a new slackware 4.0 installation from one disk to another.
Incidently, i used two methods, using <tt>tar</tt> and
<tt>find | afio</tt>, etc... It was the right way. I've done it
many many many times before.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
You might not have preserved allocation "holes" (the
"sparsity") of the files as you transferred them.
</BLOCKQUOTE>
<BLOCKQUOTE>
When a program opens a file in write mode and does a <tt>seek()</tt>
or <tt>lseek()</tt> to some point that is more than a block past the
end of the file, the Linux native filesystems (<tt>ext2</tt>, <tt>minix</tt>,
etc) will leave the unnecessary blocks unallocated. This
is possible in inode based filesystems (not in FAT/MS-DOS
formatted filesystems).
</BLOCKQUOTE>
<BLOCKQUOTE>
These filesystems treat reads into such unallocated regions
of a file as blocks of NULs (ASCII zero characters).
</BLOCKQUOTE>
<BLOCKQUOTE>
So, you use normal read and write commands in sequence
(like '<tt>cp</tt>' and '<tt>cat</tt>' to to copy files) then you'll expand
any such "holes" in the allocation map (the inode's list
of clusters) into blocks of NULs and the file will
take more space than it used to.
</BLOCKQUOTE>
<BLOCKQUOTE>
One possibility is that you used to have such "sparse"
files and that your method of copying them failed to
preserve those "holes." You could use the GNU '<tt>cp
--sparse=always</tt>' option to restore the "holes" in
selected files (or create new ones wherever there are
blocks of NULs in the data).
</BLOCKQUOTE>
<BLOCKQUOTE>
Most files are not sparse --- in fact there are only a
couple of old dbm style libraries that used to create
them in normal system use (the sendmail <tt>newaliases</tt>
command used to be a prime example).
</BLOCKQUOTE>
<BLOCKQUOTE>
I don't think this accounts for your whole problem (i.e.
it's not wholly a "holey" problem).
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Now, the problem is this: after the copy was complete, i used the
slackware bootdisk and rootdisk to reboot things nice and clean to test
the disk, and every copy i tried to do (including running lilo)
resulted in a "file too large" error message. A '<tt>df</tt>' reported that the
disk had lots of space on it, as did '<tt>du</tt>' (as did basic common sense
<IMG SRC="./../gx/dennis/smily.gif" ALT=":)"
height="24" width="20" align="middle"> ).
The disk became completely unusable until i destroyed it and reinstalled
slackware from scratch.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Perhaps you should look at the output of the '<TT>df -i</TT>' command.
</BLOCKQUOTE>
<BLOCKQUOTE>
Your Linux filesystems actually have couple of resources that
are depleted at different rates from one another. If you
have lots of small files than you are using up inodes faster
than data blocks. The normal '<tt>df</tt>' command output reports
on your free <EM>data</EM> space. '<tt>df -i</tt>' reports on the
inode utilization.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, its possible that you ran out of inodes even if you have
plenty of disk space.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Now, considering that the disk was just a 'raw' disk with data on it (ie.
it wasn't the root partition at this point) I have no idea why it would
behave like this. I tried eliminating <TT>/proc/*</TT> just for the heck of it,
but to no avail.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
It is very easy to accidentally copy/archive your <TT>/proc</TT>
(which is generally no harm). The problem is that you
can easily restore that to your new root fs and
mount a real <TT>/proc</TT> back over the restored <em>copy/snapshot</em>
of the state of your proc fs back when you did the backup.
</BLOCKQUOTE>
<BLOCKQUOTE>
I recommend that you use the <tt>find -xdev</tt> or <tt>-mount</tt> options
to prevent your find from crossing filesystem boundaries.
</BLOCKQUOTE>
<BLOCKQUOTE>
Let's say you have <TT>/</TT>, <TT>/usr/</TT>, <TT>/var</TT>,
<TT>/usr/local</TT>, and <TT>/home</TT> as local filesystems. To use
'<tt>cpio</tt>' to back them up you could use a command like
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE>
find / /usr/ /var /usr/local /home -mount -depth | cpio ....
</CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
... to feed only the file names that are on that list
of filesystem to <tt>cpio</tt>.
</BLOCKQUOTE>
<BLOCKQUOTE>
When using '<tt>cpio</tt>' you can preserve sparsity while
COPYING IN your data using the <tt>--sparse</tt> option.
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course '<tt>tar</tt>' works differently from '<tt>cpio</tt>' in just
about everyway that you could think of. You have to
use something a bit more like:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote><Code>
tar cSlf /dev/st0 / /usr/ /var /usr/local /home
</Code></BlockQuote></BLOCKQUOTE>
<BLOCKQUOTE>
... where the <tt>-S</tt> preserves sparsity (during archive
creation; and apparently NOT during restoration
unless the archive was correctly created). Personally
I think that this is a bug in GNU tar.
</BLOCKQUOTE>
<BLOCKQUOTE><em>[ I suppose fortcing someone to use -S (or --sparse)
when restoring offers the </em>ability<em> to desparsify the
file, on a new filesystem which has room for it. Why it
should be the default to not come out as it went in, though,
I've no idea. -- Heather ]
</em></BLOCKQUOTE>
<BLOCKQUOTE>
The <tt>tar -l</tt> option instructs '<tt>tar</tt>' not to cross fs boundaries.
</BLOCKQUOTE>
<BLOCKQUOTE>
The key general point here is that you might have
mounted <TT>/proc</TT> or any other filesystem over a non-empty
mount point. I personally think that the distribution
maintainers should modify the default <tt>rc*</tt> scripts
so that they won't mount filesystems over non-empty
directories. I'd modify them to uniquely rename and
remake any non-empty directory before mounting something
over it (and post a nastygram to syslog, of course).
</BLOCKQUOTE>
<BLOCKQUOTE><em>[ I disagree; I often touch a file named
<code>THIS_IS_THE_UNDERLYING_MOUNTPOINT</code> for mount points,
and I've actually had occasional administrative use for a few
files to sit in the underlying drive in case that fs doesn't
mount. Usually, notes about what should have been there,
although I suppose that could be the content of the
commentary filename above. -- Heather ]
</em></BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I hope i've given you enough information here. I've been using linux for
years and have never come across something like this.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I really don't know if I've given you the answer that will
help for your situation. I've just tried to explain the
most common couple of "out of space" situations that I've
seen and heard about --- with the hopes that you're
situation isn't more bizarre.
</BLOCKQUOTE>
<BLOCKQUOTE>
If your space problems persist through a reboot then
you don't have the old "open anonymous file" problem
(which I've described on other occasions). It's also a
very good idea to run <tt>fsck</tt> (do a filesystem check)
when you can't account for your missing space.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Thanks alot! And keep up the good work
<IMG SRC="./../gx/dennis/smily.gif" ALT=":)"
height="24" width="20" align="middle">
</STRONG></P>
<P><STRONG>
Sincerely,
<br>Derek Quinn Wyatt
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I hope it helps.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 9 -->
<hr width="40%" align="center">
<!-- begin 8 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Need to learn details. Any suggestions?</H3>
<p><strong>From Derek Wyatt on Fri, 11 Jun 1999
</strong></p>
<p><strong>
Jim, thanks a lot for your quick reply.
</strong></p>
<p><strong>
I don't think this applies in my situation but there are a few things here
that are news to me. It's good to know. If you were here, i'm sure you
could figure it out
<IMG SRC="./../gx/dennis/smily.gif" ALT=":)"
height="24" width="20" align="middle">
But you're not. I simply need to learn more to
solve something like this myself.
</strong></p>
<p><strong>
My knowledge of linux, how to use it and administrate it is in the upper
intermediate level, i think. In order to get it higher, i need to learn
about the details of the filesystem, the kernel, processes, etc etc...
How would you recommend going about this sort of thing? Are there some
online documents, or some books you would recommend? How about some
source code to pour over?
</strong></p>
<p><strong>
Thanks again
<br><IMG SRC="./../gx/dennis/smily.gif" ALT=":)"
height="24" width="20" align="middle">
<br>Derek
</strong></p>
<blockquote><img src="./../gx/dennis/bbubble.gif"
height="50" width="60" alt="(!) " border="0">
Most Linux distributions, certainly all the large ones,
contain the option to install the source code.
</blockquote>
<blockquote>The Linux-Kernel mailing list
(<a href="http://www.tux.org/lkml/">http://www,tux.org/lkml/</a>)
has archives mirrored in a few places, and several of the documents
in the Linux Documentation Project
(<a href="http://metalab.unc.edu/LDP/">http://metalab,unc.edu/LDP/</a>)
are more rather than less technical.
</blockquote>
<!-- end 8 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/8"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 10 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Arco Duplidisk: Disk Mirroring</H3>
<p><strong>From Randy Kerr on Tue, 08 Jun 1999
</strong></p>
<!-- ::
Arco Duplidisk: Disk Mirroring
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Hi Jim,
</STRONG></P>
<P><STRONG>
Not quite sure how to post a question to the 'Answer Guy'
and this seems to be the only option.
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
One of these days we should clarify that. The
address: <mailto: <A HREF="mailto:answerguy@linuxgazette.com"
>answerguy@linuxgazette.com</A>> should work,
as does <mailto: <A HREF="mailto:linux-questions-only@ssc.com"
>linux-questions-only@ssc.com</A>> and, of course my
home/personal address at starshine.org (deprecated).
</BLOCKQUOTE>
<P><STRONG><IMG SRC="./../gx/dennis/qbub.gif" ALT="(?)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I was wondering if you have had any experience or know of anyone
using Arco's DupliDisk for mirroring IDE drives. Wanted to know something
about reliability, ease of installation, etc. Specifically, if a hard disk
must be cloned prior to linking to its mate, or if the card mirrors the
entire drive upon installation.
</STRONG></P>
<P><STRONG>
Thanks a lot.
<br>Randy Kerr
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
I don't have any experience with these controllers.
</BLOCKQUOTE>
<BLOCKQUOTE>
However it should work. According to their FAQ
(<A HREF="http://www.arcoide.com/faq.htm"
>http://www.arcoide.com/faq.htm</A>):
</BLOCKQUOTE>
<BLOCKQUOTE><DL>
<DT>Q : Does the DupliDisk support Windows 95, 98 and NT?
<DD>A : Yes, the DupliDisk is a total hardware solution and will work
with any operating system--Windows 3.x, 95, 98 and NT, UNIX, LINUX,
BSDI, <A HREF="http://www.freebsd.org/">FreeBSD</A>, OS/2, Novell,
Solaris386--without the use of ...
</DL>
</BLOCKQUOTE>
<BLOCKQUOTE>
I have no idea regarding ease of use, reliability or any of
that. A web search on the phrase "Arco Duplidisk"
generates almost a 100 hits at Yahoo! including reviews
in Computerist Magazine (<A HREF="http://www.p3p.com"
>http://www.p3p.com</A>),
VAR Business (<A HREF="http://www.varbusiness.com"
>http://www.varbusiness.com</A>), Telephony
World (<A HREF="http://www.telephonyworld.com"
>http://www.telephonyworld.com</A>),
PC Today (<A HREF="http://www.pctoday.com"
>http://www.pctoday.com</A>) Medicine News
(<A HREF="http://www.medicine-news.com/articles/computer"
>http://www.medicine-news.com/articles/computer</A>)
</BLOCKQUOTE>
<BLOCKQUOTE>
Here are pointers to those reviews directly though I'm
no judge of their accuracy or value:
</BLOCKQUOTE>
<BLOCKQUOTE><dl>
<dt>Arco Announces New IDE Backup Device DupliDisk Makes Disk
Mirroring an Affordable Option
<DD><A HREF="http://www.p3p.com/news/10/arco.shtml"
>http://www.p3p.com/news/10/arco.shtml</A>
<DT>Arco Will Back You Up - VARBUSINESS - December 1996
<DD><A HREF="http://www.varbusiness.com/print-archive/19961201/1220varsh048.asp"
>http://www.varbusiness.com/print-archive/19961201/1220varsh048.asp</A>
<DT>Arco Announces New IDE Backup Device DupliDisk Makes Disk
Mirroring an Affordable Option
<DD><A HREF="http://www.telephonyworld.com/roundup/duplidisk.htm"
>http://www.telephonyworld.com/roundup/duplidisk.htm</A>
<DT>ARCO Computer,DupliDisk,medicine-news.com, Press Releases computer
hard- and software,
<DD><A HREF="http://www.medicine-news.com/articles/computer/arco98_1.html"
>http://www.medicine-news.com/articles/computer/arco98_1.html</A>
<DT>PC Today's Hard-Hitting Product Reviews
<DD><A HREF="http://www.pctoday.com/editorial/hardware/980416.html"
>http://www.pctoday.com/editorial/hardware/980416.html</A>
</DL>
</BLOCKQUOTE>
<BLOCKQUOTE>
In any event I'm not sure that the ~$200 you'd spend on one
of these would really net you much advantage over Linux
built-in md (multi-device) drivers (which implement
striping, mirroring and RAID 5 through software).
</BLOCKQUOTE>
<BLOCKQUOTE>
These devices don't do give any performance advantage over a
single disk drive (mentioned in their FAQ). Even the Linux
software driver gives <EM>some</EM> performance edge over single
disk (by interleaving read and write requests among the
available drives and resynching the devices asynchronously
through its caching mechanisms).
</BLOCKQUOTE>
<BLOCKQUOTE>
You should also consider the nature of the risks which the
Duplidisk addresses vs. the actual risk profiles that are
present. Duplidisk only protects you from a single drive
failure (per controller). It doesn't address accidental
deletion, damage due to software bugs (data corruption, etc)
or deliberate sabotage due to failures in your security
measures (including crackers, trojans, viruses, etc).
</BLOCKQUOTE>
<BLOCKQUOTE>
Drive failure is currently one of the less common causes of
data losss under Linux (although the rate of damage caused
by PC virus infection are probably even lower than disk
failure under Linux).
</BLOCKQUOTE>
<BLOCKQUOTE>
Overall, I think you're much better served by
using an extra hard drive (which you'd connect to Duplidisk)
and just perform nightly snapshots to it using 'cp -pax'
and or 'cpio -p' or 'tar cf ...' piped into a 'tar xf ...'
The "snapshot" method protects against several different
threats --- particularly that of accidental deletion; which
is the most common cause of data loss. (If you have a
'cron' job which makes your snapshots in the middle of the
night you'll usually have a half a day or so to realize that
you've accidentally removed or damaged some of them).
</BLOCKQUOTE>
<BLOCKQUOTE>
Personally I think that's a better way of spending your
money. (Heck, you can use the extra two hundred bucks to
put in a third drive --- and use a combination of md/RAID-1
--- mirroring across a pair of drives and using the third
for snapshots).
</BLOCKQUOTE>
<!-- sig -->
<!-- end 10 -->
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
<A NAME="tag/9"><HR WIDTH="75%" ALIGN="center"></A>
<!-- begin 11 -->
<H3 align="left"><img src="./../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Searching for Days for a Linux Modem: The Daze Continues</H3>
<p><strong>From Chris on Tue, 08 Jun 1999
</strong></p>
<!-- ::
Searching for Days for a Linux Modem: The Daze Continues
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
i have been searching for days trying to find a Linux compatable modem.
could you recomend a decent one?
</STRONG></P>
<P><STRONG>
thank you
chris
</STRONG></P>
<BLOCKQUOTE><IMG SRC="./../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Any external modem should work. Some internal modems
will --- but I don't recommend internal modems as a rule.
</BLOCKQUOTE>
<BLOCKQUOTE>
Unfortunately modems are one of those classes of PC
components where the specific models and brands change
so often that I just can't keep track of the "good ones."
</BLOCKQUOTE>
<BLOCKQUOTE>
I personally like Zyxel and Practical Peripherals.
I don't like the USR "Sportster" line (cheap) and find
that their "Courier" series is of high quality but
also inordinately high price for home applications.
(ISPs see very high duty cycles on their modems ---
the extra money spent on an industrial grade modem for
them is usually well spent; home and most office system
modems get only intermittent use and light duty cycles).
</BLOCKQUOTE>
<!-- sig -->
<!-- end 11 -->
<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¢ Tips!</A></H1> <BR>
Send Linux Tips and Tricks to <A HREF="mailto:gazette@ssc.com">
gazette@ssc.com
</A>
<P>
[ <A HREF="#new_tips">New Tips</A> ]
[ <A HREF="#answers">Answers to Mail Bag Questions</A> ]
</center>
<P> <hr> <P>
<!--================================================================-->
<a name="new_tips"></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">
"." in root's path is unsafe!! (was: a.out binaries not working)
</font> </H3>
<BR>Date: Sat, 12 Jun 1999 14:58:28 -0400
<BR>From: "Peter V. Inskeep" <pinskeep@iglou.com>
<P> In Linux Gazette, Issue # 42, I provided an answer to the question of
getting an a.out binary to run. I suggested that typing "./a.out" (sans
quotes) would do the trick. I went on to suggest that the "current
directory" be added to the path to avoid the bother of typing ./ before
the name of the binary to be run.
<P> Several have written to me to point out that adding ./ to the path is
not good practice from a security viewpoint. Therefore, I urge anyone
who has added the ./ to their path after reading my answer, remove it.
Instead, just get in the practice of typing ./myprogramname when one
wants to run a binary in the current directory.
<P> I'd like to take this opportunity to thank Alex B., Art W., and
Pete in the UK for taking the time to write me notes explaining the
pitfalls of putting dot slash (./) in one's PATH. This is especially
true for root, but apparently not good practice for anyone. As I
understand it, a transgressor could easily put a program with evil
intentions, but with a common name, such as "ls," in one of your
commonly used directories. Next time you type ls on the command line,
the evil program is run rather than the ls directory display program.
This is so if one had modified one's PATH to include ./. If one had to
include ./ in one's path, make sure it is at the end of the PATH
statement.
<P> Thanks for giving me this opportunity to correct the bad information I
presented. Also, thanks again to those who took the time to write to me
to explain the consequences of adding ./ to the PATH statement.
<P> Pete, NO2D
<P> Date: Thu, 10 Jun 1999 13:19:05 +0100
<BR>From: Pat Neave <patneave@lucent.com>
<P><PRE>
> 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.
</PRE>
<P> There is a good reason for RedHat (and hopefully all the Linux distributers)
not to include '.' in your PATH. Its a security risk. Now, you may be OK on
a non-networked system but I don't think it is a good habit to get into.
The following is quoted from the Path Mini HOWTO:
<BLOCKQUOTE>
<H4>12. Security concerns</H4>
<P> The path is sometimes a big security problem. It is a very common
way to hack into a system using some mistakes in path settings. It is
easy to make Trojan horse attacks if hacker gets root or other users to
execute his versions of commands.
<P> A common mistake in the past (?) was to keep '.' in the root's path.
Malicious hacker makes program 'ls' in his home directory. If root
makes
<PRE>
# cd ~hacker
# ls
</PRE>
he executes ls command of hacker's.
</BLOCKQUOTE>
<P>--<BR>
Pat
<P> Date: Mon, 14 Jun 1999 19:31:48 +0100
<BR>From: Jeffrey Voight <jeff@cscc.net>
<P> If you find it absolutely
necessary to include . in your path, at least put it as the last entry
in your path so that the system binaries are searched before '.' is.
<P> Date: Tue, 15 Jun 1999 10:34:52 +0100<BR>
<BR>From: Alexander Thorp, <A HREF=mailto:athorp@lucent.com>athorp@lucent.com</A>
<P> Peter Inskeep writes:
<BLOCKQUOTE>
"Remarkably, RedHat does not set up paths so that your current path is
looked at to execute a file", i.e. does not include the directory . in
$PATH."
</BLOCKQUOTE>
<P> This would only be remarkable to a DOS user. The inclusion of .
in $PATH exposes the user to trojan horses. It should never appear in
root's $PATH, and I don't like it in mine either.
<P> Alex Thorp
<BLOCKQUOTE><EM>
(This is a sample of many letters received on the dangers of '.'.
I don't use it in the root path, but I like in my path. :) --Ed.)
</EM></BLOCKQUOTE>
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">More Vi .exrc stuff
</font> </H3>
<BR>Date: Wed, 9 Jun 1999 15:18:11 -0400 (EDT)
<BR>From: Matt Boutet <boutet@cosf.zko.dec.com>
<P> When setting up you .exrc file for vi you can use the map command to map
the function keys in addtion to the few unassigned 'normal' keys.
Example:
<PRE>
map #1 :set nu
</PRE>
this makes F1 turn line numbering on.
<P> Matt
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">gzipping TWHT-1 (unzipping UNIX files on Windows)
</font> </H3>
<BR>Date: Fri, 25 Jun 1999 10:24:41 +0530
<BR>From: "Nagesh S K" <nagadew@hotmail.com>
<P> I am using winzip for windows from http://www.winzip.com this can handle
various zip formats including gz,tar,zip,ajr etc. hope this helps.
<P> Subject: Linux / Windows<BR>
<BR>Date: Tue, 29 Jun 1999 17:22:36 +0200<BR>
<BR>From: Peter Van Rompaey <peter.van.rompaey@xylos.be><A>
<P> maybe you already know this, but .tar and .gz files can be unpacked under
Windows using Winzip 7
<P> All the README-files (and every other plain-text file for that matter) can
be opened with Notepad/Wordpad.
<P> Also, if you use a Windows filesystem on you floppies ( vfat ), you can read
'em under Windows, but you can also mount them RW on any linux which has
vfat support compiled into the kernel (most distributions have, trust me :-)
<P> If you use StarOffice 5, then you can use Office 97 files to exchange data,
cuz SO5 uses an O97-compatible file format.
<P> Hope this helps ya and feel free to DMAL for comments/questions,
<P> greetz,<BR>
Blacky<BR>
Undernet - #Supportline #Groningen
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">Deleted web pages
</font> </H3>
<BR>Date: Thu, 3 Jun 1999 15:02:06 +0200
<BR>From: "Martin Skjoldebrand" <martin.skjoldebrand@nsmpd.se>
<P> This is not exclusively a Linux trick of course but here it goes:
<P> If you've changed your web site structure and thereby removed a previous
entry page (the first page a visitor comes to) which may have links to it you
could link that page to your current entry page.
<P> I removed my foreword.htm some time ago and later found a stale link on a
foreign page leading to the missing page. So I simply created a link to my
current toc.html. Now whenever someone follows the original link, instead of
getting a 404 they get the toc.html.
<P> HTH someone ...<BR>
M.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
<font color="navy">Make modem ignore funny dial tones
</font> </H3>
<BR>Date: Fri, 4 Jun 1999 14:24:18 -0400 (EDT)
<BR>From: Matt Willis <matt@optimus.cee.cornell.edu>
On my telephone line, I have voice mail. The dialtone is different when
there is a message waiting. This causes my modem (USR 56k) to get confused
and quit, saying "No dialtone". Effectively, this breaks any automated
dialup routines, such as a cron daemon to fetch mail in the middle of the
night. To ignore dial tones, I added ATX3 to my modem codes:
<PRE>
#!/bin/sh
#
# This is part 2 of the ppp-on script. It will perform the connection
# protocol for the desired connection.
#
exec /usr/sbin/chat -v \
TIMEOUT 23 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' ATZ \
'OK' ATL0M0 \
'OK' ATX3 \
'OK-+++\c-OK' ATH0 \
TIMEOUT 50 \
OK ATDT$TELEPHONE \
CONNECT '' \
rname:--rname: $ACCOUNT \
assword: $PASSWORD
</PRE>
<P> <hr> <P>
<!--================================================================-->
<a name="answers"></a>
<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>
<!--================================================================-->
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">Network boot disk for i386 without hd
</font> </H3>
<BR>Date: Fri, 4 Jun 1999 11:13:43 +0100
<BR>From: Wim Lemmers <Wim.Lemmers@digital.com>
<P> <A HREF=http://www.psychosis.com/linux-router/>
http://www.psychosis.com/linux-router/</A>
<P> Hi, I think this comes close to what you're looking for.
<P>wim
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">Question about 2 GB max?
</font> </H3>
<BR>Date: Fri, 4 Jun 1999 18:33:15 -0400
<BR>From: "Steven G. Johnson" <stevenj@alum.mit.edu>
Deirdre Saoirse wrote in the June $0.02 tips:
<BLOCKQUOTE>
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.
</BLOCKQUOTE>
<P> This is no longer true for LinuxPPC (including revision 4) or YDL, although
it's still true for MkLinux. The partition limit was due to a kernel
problem that disappeared somewhere in the 2.1.x series...use a 2.2.x kernel
and you'll be fine. (I am using a 4GB partition quite happily with
LinuxPPC R4 right now, with an uptime of several months.)
<P> Cordially,<BR>
Steven G. Johnson
<P> Date: Fri, 4 Jun 1999 18:37:26 -0400<BR>
<BR>From: "Steven G. Johnson" <stevenj@alum.mit.edu><BR>
<P> Whoops, I read further in your June 2 cent tips, and I see that someone
else has already replied to her message...although they claim the problem
is with e2fsprogs, which I didn't touch on my machine. (Although perhaps
there was an upgraded version in the installer image that I downloaded
along with the new kernel.)
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">FTP access methods
</font> </H3>
<BR>Date: Sat, 05 Jun 1999 13:27:44 +0200
<BR>From: Ben De Rydt <ben.de.rydt@pandora.be>
Subject: RE: FTP access methods
<BLOCKQUOTE>
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.
</BLOCKQUOTE>
<P> Midnight Commander allows you to show an FTP-site in one pane and
your local file system in the other. You can acces the FTP-site like
you would a local directory (i.c. F5: copy, F6: move/rename, etc...)
<P> Greetings,<BR>
Ben
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">Any inetd wizards out there?
</font> </H3>
<BR>Date: Mon, 14 Jun 1999 18:26:16 +0200
<BR>From: Ton Nijkes <tonn@wau.mis.ah.nl>
<P> On Mon, 03 May 1999 16:33:32 -0500, Pete wrote:
<BLOCKQUOTE>
<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?
</BLOCKQUOTE>
<P> Pete,
<P> I think the tcp wrapper daemon (tcpd) should do the trick.
In /etc/hosts.allow and /etc/hosts.deny you can use constructs like daemon@host
that will accomplish what you need (sort of).
<P> Try:
<PRE>
man tcpd
man 5 hosts_access (look for 'SERVER ENDPOINT PATTERNS')
</PRE>
<P> Greetings,<BR>
Ton.
<P> <hr> <P>
<!--================================================================-->
<a name=""></a>
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
ANSWER: <font color="navy">
</font> </H3>
<BR>Date: Sun, 27 Jun 1999 14:43:43 -0800
<BR>From: Ramon Gandia <rfg@nook.net>
Subject: Direct Win05-Linux connection
<P> michael@cimmj.freeserve.co.uk wrote in LG #42:
<BLOCKQUOTE>
<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.
</BLOCKQUOTE>
<P> The problem is in Win95/98. It does not come with a null modem
driver. Windows assumes that you are using a REAL modem complete
with AT commands, etc. If all you have is a null serial cable
between the Win95 box and the Linux PPP server, then Win95 cannot
be used because it cannot be set up unless you use a modem and a
phone line.
<P> However, there IS a null modem driver. You install this driver
by copying it to c:\WINDOWS\INF (a hidden directory). You can
then install a new modem. Select not to detect, but you will
pick it from a list. When you get to the list, it will be at
the top of the list of manufacturers, and you can select the
generic null modem driver.
<P> This driver has been around the internet for years, but I have
put it up on my ftp server.
<A HREF=ftp://ftp.nook.net/pub/unix/mdmcisco.inf>
ftp://ftp.nook.net/pub/unix/mdmcisco.inf</A>
<P> I have no problem then using my Win95 computers with terminal
servers such as my Livingstons. It works a LOT faster than
using a Modem, and communications is typically 115,200.
<P>--<BR>
Ramon Gandia ================= Sysadmin ================ Nook Net<BR>
http://www.nook.net rfg@nook.net<BR>
<P> <hr> <P>
<!--================================================================-->
<center>Published in <I>Linux Gazette</I> Issue 43, July 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">PLIP: Laplink Cable Install of Debian 2.1</font></H1>
<H4>By <a href="mailto:bbennet@mb.sympatico.ca">Bill Bennet</a></H4>
</center>
<P> <HR> <P>
<center><h2><font color=blue>This installs linux via the parallel port</font></h2></center>
<p> Have you got a machine that is ready for linux but it has no CDROM drive? Is it also missing a modem or a network card? If you have a running linux box (with CDROM drive) available to you, then you can easily install linux via the good old laplink cable that plugs into the parallel port. Even old neglected machines come with a parallel port somewhere, so this method will guarantee that you can walk into any installing situation and be ready to roll.<br>
<h2><font color="blue">Debian 2.1 can do this thing</font></h2>
<p> Just about all linux distributions can do this little PLIP console connection. There is a lot of good <a href="#pliphow">information</a> available for you as well, but if it is only for RedHat, then as a Debian user you may feel left out. Even worse, too many times an article will assume that you know what you are doing.
<p> Heck, I do not know what I am doing, but I got this PLIP thing to install Debian 2.1 because I needed a good peer to peer network game player that fits on a small hard disk. Good old Debian has the small purposeful ".deb" packages that you can put in one at a time to make a very small yet powerful server. This article fires up Debian 2.1 and installs a PLIP peer to peer network system with <a href="#xme">X</a> Windows so we can play <a href="#netmaz">netmaze</a> head to head versus a small, bloodthirsty nephew or niece.
<p> The target system is a "Frankenstein"; a 486/DX66 with no CDROM, no modem, no network card, 16 MB RAM, a 1.44 MB floppy and two tiny hard disks, 110 and 170 megabytes small.
<p>We begin at the running linux box that will serve us our CD through the <a href="#laplink">laplink</a> cable.
<h2><font color="blue">Server for the PLIP</font></h2>
<p>We need to login as root and edit these files:<ul>
<li><a href="#initd">/etc/init.d/network</a>
<li><a href="#networks">/etc/networks</a>
<li><a href="#hosts">/etc/hosts</a>
<li><a href="#deny">/etc/hosts-deny</a>
<li><a href="#allow">/etc/hosts-allow</a>
<li><a href="#exports">/etc/exports</a>
<li><a href="#fstab">/etc/fstab</a>
</ul>
<br>
<h2><font color="blue">Scripting is the mojo for linux</font></h2>
<p> Those wacky HOWTO writers are always letting you copy their hard work by giving you a little script to run on your machine.
<p>We need to create this little executable script:
<pre>
#!/bin/sh
killall -HUP /usr/sbin/rpc.mountd
killall -HUP /usr/sbin/rpc.nfsd
echo re-exported file systems
</pre>
<p> Fire up mcedit (it comes with Midnight Commander. You do have it, yes?). Go to the <a href="#NFShowto">NFS-HOWTO</a> and block out the exportfs script with the F3 toggle and then F9 copy it to the ~/.cedit/cooledit.clip file. Exit with F10.
<p> Then type mcedit your-new-file-name. It will give you a nice blank page to F9 insert the ~/.cedit/cooledit.clip file. Edit it in your personal way and F2 save it, or F9 save it as your-new-script-command-name.
<p> Then type chmod 755 your-new-file-name to make it executable. Copy it to /usr/sbin just for fun, but also to make it live in the path.
<p> For easy mnemonics and to honour the author, we should call it exportfs. Done.
<p> Huh? What does it do? It exports the currently mountable NFS directories in case you make a change.
<a name="initd"><h3><font color="blue">/etc/init.d/network</font></h3></a>
<p>We simply need to tell the machine about the plip1 device and who it connects with via pointopoint networking.
<pre>
#! /bin/sh
ifconfig lo 127.0.0.1
route add -net 127.0.0.0
IPADDR=192.168.1.5
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
GATEWAY=
#ifconfig eth0 ${IPADDR} netmask ${NETMASK} broadcast ${BROADCAST}
#route add -net ${NETWORK}
[ "${GATEWAY}" ] && route add default gw ${GATEWAY} metric 1
ifconfig plip1 CHGUY pointopoint Salma up
route add -net ${NETWORK} netmask ${NETMASK} dev plip1
</pre>
<h3><font color="blue"><a name="networks">/etc/networks</a></font></h3>
<p>The networks your machine knows about:
<pre>
loopback 127.0.0.0
localnet 192.168.1.0
</pre>
<h3><font color="blue"><a name="hosts">/etc/hosts</a></font></h3>
<p>Well? Who is on this network anyway?
<pre>
127.0.0.1 localhost
192.168.1.5 CHGUY.chguy.net CHGUY
192.168.1.3 Salma.chguy.net Salma
</pre>
<h3><font color="blue"><a name="deny">/etc/hosts.deny</a></font></h3>
<p>Kind of like being doorman at 54, eh?
<pre>
ALL: PARANOID: DENY
</pre>
<h3><font color="blue"><a name="allow">/etc/hosts.allow</a></font></h3>
<p>Salma gets in every time.
<pre>
ALL: 192.168.1.3: ALLOW
</pre>
<h3><font color="blue"><a name="exports">/etc/exports</a></font></h3>
<p>The NFS server will only give out the directories in the exports file.
<pre>
/cdrom *.chguy.net
</pre>
<h3><font color="blue"><a name="fstab">/etc/fstab</a></font></h3>
<p>This will let ordinary users mount the CDROM drive, which is not a problem at a home LAN (Local Area Network. Yes, that is right, your linux CD gives you a replacement for NT).
<pre>
# (file system) (mount point) (type) (options) (dump) (pass)
/dev/cdrom /cdrom iso9660 users,exec,ro 0 0
</pre>
<br>
<h2><font color="blue">Turn it on</font></h2>
<p>Time to turn on PLIP on this CD server <a href="#plipon">machine</a>:
<pre>
ifconfig plip1 CHGUY pointopoint Salma up
route add Salma dev plip1
</pre>
<p>All is ready for the installation.
<ul><li>we will allow the new machine onto the system
<li>we have assigned a network address to each machine
<li>we will export the /cdrom directory when the installer mounts the CD
</ul>
<h2><font color="blue">Client for the PLIP</font></h2>
<p> The target for the installation is the client of your server. However, this is PLIP peer to peer networking, so both of the machines act as a server. For this installation we will refer to the target machine as the client, code named Salma.
<h3><font color="blue">Make two install diskettes</font></h3>
<p> Back at the server, mount the <a href="#CHGUY">B1</a> CD (B2 for a laptop) and make your two installation floppies.
<p>Simply cd deep into the CD:
<br>
<pre>
cd /debian/dists/slink/main/disks-i386/current
dd if=resc1440.bin of=/dev/fd0
dd if=drv1440.bin of=/dev/fd0
</pre>
<h2><font color="blue">Salma Laptop</font></h2>
<p> The resc1440.bin is the generic PC booter; resc1440tecra.bin is made for laptops.
<p> Place your floppy in the drive and power up Salma for the installation.
<br>
<h2><font color="blue">She boots your machine</font></h2>
<p> You get a nice menu of jobs with the Debian installer. Please read all of your <a href="#fdisk">options</a> and stay loose!
<p> The Debian installation will go through the usual motions of assigning mount points for "/" (root), "/swap", and your custom placements.
<p> Now it is time to "Install Operating System Kernel and Modules" and that is how we will enable PLIP on Salma.
<p> After the kernel is ready to PLIP we can install the base system, which is a nice little ten MB file that fits on seven floppies. Yes, that is right, you can just make seven more floppies and get it on, no need to use PLIP.
<p> We are here to play <a href="#netmaz">netmaze</a> and make a peer to peer network, so read on.
<br>
<h2><font color="blue">From the floppy</font></h2>
<p> The installer will ask you how you are going to install the kernel and modules, and even though you are going to use the CD in a minute, you must tell it you are going to install from a floppy.
<p> In almost every case you will be selecting /dev/fd0: it is the first floppy drive.
<p> Then it will ask for the resc1440.bin diskette so that you can make a live file system to work from. It booted, so it is already in the drive.
<h3><font color="blue">Kernel Modules</font></h3>
<p><i>You have landed on Community Chest: FOLLOW INSTRUCTIONS ON TOP CARD</i>. <i>Your card says a driver is a kernel module</i>. <i>You no longer will ask for drivers</i>. <i>You will now ask for kernel modules</i>. <i>Do not pass GO</i>.
<p> When the resc1440.bin diskette is done loading, the installer will ask you to place the Drivers floppy in the drive. It is the drv1440.bin diskette.
<h2><font color="blue">Configure for PLIP</font></h2>
<p> Now the installer wants to jump ahead to Make Linux Bootable Directly From Hard Disk. This is a confounder and we need a volunteer to fix it.
<p> You need to go down the menu and select "Configure Device Driver Modules". You need your set of modules to be installed in your kernel so that you can network to the CD server.
<h2><font color="blue">The set of modules</font></h2>
<p> There is a basic set of modules needed for your machine. It varies from user to user of course, and the following list is only a suggestion.
<h3><font color="blue"> Group Module</font></h3>
<ul><li>block----no, you do not need <strong>paride</strong> right now. Compile it into your custom kernel in future if you want to use external devices, like CDROM drives, etc.
<li>cdrom---no, you will not be controlling the server's CDROM. Get the right one from here if you buy a proprietary CDROM drive in future.
<li>fs------YES, please get <strong>nfs</strong> so you can NFS and export files to your network.
<li>fs------YES, please get <strong>nls_iso8859_1</strong> for the nice character set to read.
<li>fs------YES, please get <strong>vfat</strong> so you can muck about in the DOS file system and see long filenames.
<li>ipv4----YES, please get <strong>rarp</strong> just in case your network tools need it. I do not know; better safe than sorry.
<li>misc----no, you do not use <strong>lp</strong> right now. Compile it into your custom kernel in future if you want to switch from PLIP to printing. If you have two parallel ports then go ahead.
<li>misc----YES, please get <strong>serial</strong> so you can use the serial port for an external modem in future.
<li>misc----YES, please get <strong>psaux</strong> if you are trying to use USB and it craps out as usual. Then you can still use your ps/2 mouse.
<li>net-----YES, please get <strong>dummy</strong> just in case your network tools need it. I do not know; better safe than sorry.
<li>net-----YES, please get <strong>plip</strong> so that you can do pointopoint networking via the laplink cable.
<li>net-----YES, please get <strong>ppp</strong> for future hookups to your ISP.
<li>scsi----no, you might not have any scsi devices. Here is where you get that <strong>ppa</strong> module for your external Zip drive.
</ul>
<p> When you install the modules and the installer gives you a new screen for parameters, you can usually just press Enter to go ahead.
<p> The plip module will already have the io port address and irq of the parallel port assigned to it, so just press Enter at the parameters page.
<h2><font color="blue">Configure the Network</font></h2>
<p> The installer wants to make linux bootable again, but ignore it and select "Configure the Network".
<p> It wants the host name of your system, so type in Salma to match the examples in this article.
<br>
<p> Now it wants to know if you are on a network, so answer yes. The domain name is "chguy.net", just like in the examples.
<h2><font color="blue">The IP address</font></h2>
<p> The IP address can be the default (automatic) numbers thrown up on the screen. These are the numbers for a Class C network, the type you have at home.
<p><strong>Your IP address, according to the examples, is 192.168.1.3 for your hostname of Salma.</strong>
<p> The rest of the numbers are automatic and good ones to use for your network. We have used them for the example and it saves you a lot of typing and checking.
<p><strong>Netmask = 255.255.255.0</strong>
<p><strong>IP Broadcast address = 192.168.1.255</strong>
<p><strong>Gateway</strong> = whatever... If you have a modem on the other machine, then make a gateway. Or a Dell, or a Netwinder, your choice.
<p> Normally from home you will be making a gateway to the internet through your ISP.
<p><strong>Domain Name Service</strong> = your ISP nameserver. Here at home, there is no modem on the two PLIP machines, so I have each machine look at its local address and also on the other nameserver.
<p> So, for the example, all we put in the nameserver places are the two IP addresses of the two PLIP machines.
<p> We tell the installer that "Another system will be the DNS server".
<p><strong>Nameserver = 127.0.0.1 192.168.1.5</strong>
<h3><font color="blue">Execute a Shell</font></h3>
<p> A LeftAlt-F2 will light up a new console for you. A LeftAlt-F3 will show the error messages from your plip attempts. You could also just select "Execute a shell" from that wacky menu.
<p> At the prompt you can immediately type in the ifconfig command to see what is running.
<p> Again with the ifconfig, you set up PLIP on Salma with this:
<pre>
ifconfig plip1 192.168.1.3 pointopoint 192.168.1.5 up
</pre>
<p> Wait, you are not set up yet. You better set a route to the CD server machine.
<pre>
route add 192.168.1.5 dev plip1
</pre>
<h2><font color="blue">Install the Base System</font></h2>
<p> The menu wants to make linux bootable again. Please select "Install the Base System".
<h2><font color="blue">Choose Network Interface</font></h2>
<p> Now we can select "plip: Parallel-line IP" from the menu of interfaces.
<p> Yikes! The friendly installer now tells us that it will not create a complete PLIP configuration.
<p> The installer does not know that you just did it with the ifconfig and route commands. Maybe we can get another volunteer to set up the script to see this step.
<p> Now we are asked to select the installation medium. Yes, it is "nfs: NFS (network filesystem)".
<p> The installer will ask you for the address of the server and the directory where the debian archive lives.
<h2><font color="blue">"push de button and make it go"</font></h2>
<p><ul><li>the CD is going to be NFS mounted on Salma on /instmnt
<li>you have already mounted the CD on /cdrom on the server
<li>you have /cdrom listed in /etc/exports and now the installer can find it and use the CD.
</ul>
<p> Type in the IP address of the CD server with a colon and the NFS export directory of the mounted CDROM. The screen prompt says "Choose Debian NFS filesystem":
<pre>
192.168.1.5:/cdrom/debian
</pre>
<h2><font color="blue">We are going live to chguy.net</font></h2>
<p> On your screen is a little window called "Choose Debian archive path". It only shows up when you are connected and online with the CD server machine. The installer is asking you for the location of the Debian archive directory in the mounted NFS filesystem.
<p> The answer is /debian. Always is.
<br>
<br>
<h3><a name="pliphow"><font color="blue">Reference reading and links:</font></a></h3>
<p>BootPrompt-HOWTO - required reading for all linuxians
<p>PLIP-mini-HOWTO - you need the kernel configuration tips and troubleshooter
<p>Kernel-HOWTO - you might need to make a custom kernel with a PLIP module
<p><a name="NFShowto">NFS-HOWTO</a> - you absolutely need the exportfs script and this HOWTO
<p><a href="http://debian.org">The Installation Guide</a> for Debian 2.1 - good basic stuff here
<p><a name="loadlin">"Loadlin.exe</a> Installer", LG#34 - step by step for booting from a logical drive
<h3><a name="CHGUY"><font color="blue">linux on CD</font></a></h3>
<p> Your CHGUY Debian 2.1 CD set is labeled B1, B2, S1 and S2. The B1 CD (#1 of 4) is the installer for a regular desktop machine. The B2 CD (#2 of 4) is slightly tweaked for installing Debian 2.1 on your laptop machine. For installing via dselect, either one can go in the CDROM drive. Those wacky hackers are ready for anything.
<h3><a name="xme"><font color="blue">X Windows is compact</font></h3>
<p> When you install the Standard Server package it only fills up 50 megabytes on your hard disk. Add in 32 megabytes for a swap partition and you have only used 80 megabytes from a small, old hard disk. That will leave you enough room for the xbase ".debs" plus your video-card-specific xserver and the rest of the XFree86 window system.
<p> Both 486s have Apache webserver, anonymous FTP, the TrueType fontserver, full networking, full use of the video card, blazing fast ping times on the PLIP cable (5.2 milliseconds) plus my choice of hot window managers like AfterStep and the icewm.
<p> Total installed ".deb" space taken up on either machine is 127 megabytes; including sharp little network games like Freeciv, netmaze and crossfire. Who needs bloated systems? Certainly not the linuxians.
<h3><a name="plipon"><font color="blue">New PLIP commands</font></a></h3>
<p>You can make this into an executable script called plipon with:
<pre>
chmod 755 plipon
</pre>
<p>This is the new command plipon:
<pre>
#! /bin/sh
ifconfig plip1 CHGUY pointopoint Salma up
route add Salma dev plip1
</pre>
<p>The above script runs on the CD server CHGUY. Reverse it for Salma.
<p>The new plipoff command:
<pre>
#! /bin/sh
ifconfig plip1 down
</pre>
<p> You can copy it to /usr/sbin just for fun and so that it lives in the path.
<h3><a name="netmaz"><font color="blue">Bloodthirsty Midgets</font></h3>
<p> My six years old nephew Brady "the Mighty Naturta" and his almost-twin cousin Jesse "the NO-baby" absolutely love to play netmaze. It installs in seconds through the laplink cable and it plays for hours. The package is called netmaze and all you do is run the server on one machine and the netmaze client on both. You can even add a few robots to chase you down. The players you see are smiley face spheres. Heaps of fun!
<h3><a name="fdisk"><font color="blue">Three primary and one extended</font></a></h3>
<p> Please use GNU/linux fdisk to make your new primary partition for "/" (root). Too many of you are too excited to get going and you place linux on an <a href="#loadlin">extended</a> partition. Just a reminder, the PC design allows you to get up to four primary partitions per hard disk drive, or three primary and one extended (which you can load up with lots of logical partitions). Do NOT use DOS fdisk if you have just one hard disk. DOS fdisk is disabled so that it will only make one primary partition if you only have one hard disk.
<h3><a name="laplink"><font color="blue">Laplink vs USB</font></a></h3>
<p> Get this: A recent advertisement for USB home networking between two machines was crowing over the fact that all you do is plug it in and you can enjoy full networking of two machines. It was "only" $85.00 for your set of newfangled doodads. *Limit of twelve feet of cable.
<p> I began to think that this was madness! You can get a laplink cable and hook up your two machines for full network connection; plus it is probably a "free" cable that was paid for a long time ago. *Limit of fifty feet, unless you begin to pick up radio signals.
<p> You plug the laplink cable into the parallel port of each machine; yes, the same place where your printer should go. Your laptop can use this PLIP method to share files with your desktop at work and at home. Plus it is hard-boiled, rock-solid networking through a cable; completely under your control. Methinks this USB thing was just a ploy to sell new machines.
<hr>
<p><center><strong><font color="blue">made with mcedit on an i486 <BR>
running Debian 2.1 Linux 2.0.36<BR>
No systems were frozen or crashed during the testing of these procedures.<BR>
All references to Salma Hayek are purely lascivious.</font></strong></center>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Bill Bennet <BR>
Published in Issue 43 of <i>Linux Gazette</i>, July 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>
[Revised to fix a few HTML tags. Originally published in issue #42.]
</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®. 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 "$resources" ]; then
/usr/bin/X11/xrdb -load "$resources"
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>
/usr/bin/X11/xsetroot -solid DarkSeaGreen4
</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 <Shft>F1 to be F11
and <Shft>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®. 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>
/usr/bin/X11/xhost +moonlight
</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®. The only differences appear to be in what directory
files are maintained.)
<p>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Chris Carlson <BR>
Published in Issue 43 of <i>Linux Gazette</i>, July 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Getting Involved in Open Source</font></H1>
<H4>By <A HREF="mailto:andrew@ultraviolet.org">Andrew Feinberg</A></H4>
</center>
<P> <HR> <P>
<EM>How to join and render help to the Linux community.</EM>
<p>
Linux has always been maintained by volunteers. In fact, the ``gift
culture'' of the Open Source community has always been one of its strong
points. However, the majority of users who would like to contribute do not
know how to get involved. This article will discuss aspects of becoming
active in the Open Source community and contributing to the Linux
kernel and other projects, including my experiences with becoming involved
in the Debian project.
<p>
<h3>The Kernel</h3>
<p>
The contributors file in /usr/src/linux on my home system is huge. My
linux-kernel mailing list folder is always full of mail from people,
eagerly discussing the ins and outs of improving this operating system. Many
people assume that Linus is the sole author of Linux. Not true, I tell
them. Linux is the prime example of the ``benevolent dictator'' model of
open-source development. A prospective developer submits code to Linus or
one of the few ``lieutenants'' such as Alan Cox. They decide what will go
into the kernel.
<p>
Another scenario is that certain parts of the kernel,
such as the kernel NFS system, have a maintainer.
Code is submited to them, and they decide what goes into their part
of the kernel. Occasionally, Linus or someone will ask for a person to take
over a part of the kernel. If you volunteer, make sure you know the code
and can handle the responsibility of maintaining it and accepting patches.
Be prepared to handle loads of mail if something breaks. Also, make sure
you are on the linux-kernel mailing list.
<p>
<h3>GNOME</h3>
<p>
One of the more exciting developments in the past year has been the effort
to provide Linux with an easy to use desktop. One of the two front-runners
in that effort has been GNOME: the GNU Network Object Model Environment.
Unlike the kernel, GNOME uses CVS, a version control system, to keep track
of code submitted by developers around the world. This eliminates the need
for someone to patch sources by hand to create an upgrade. To get CVS
access to GNOME, send mail to Miguel de Icaza (miguel@kernel.org). Include
a description of what code you will be writing, along with an encrypted
password. More information is available at <A HREF=http://www.gnome.org/>
http://www.gnome.org/</A>.
<p>
<h3>Debian</h3>
<p>
Debian GNU/Linux is unique in that unlike most other distributions, it is
maintained entirely by a team of volunteers from all over the world.
Becoming a Debian developer entails your maintaining a package;
that is, you will make sure the latest version is on the Debian FTP
site and that bugs get fixed as soon as possible fixes are done by you, if you
package your own software, or the upstream maintainer, if you package
someone else's software. or the software of a project such as GNOME or
Mozilla. Because developers can place packages into the distribution
tree, Debian is rather strict on security issues, especially when it comes
to letting new developers into the project. A PGP key, (or coming soon,
GNUPG) key is a must, and this key must be signed by another Debian
developer. This may seem Draconian, but it is imperative that they be sure
that the developers are who they say they are. After they receive your
PGP/GPG key (signed), someone may call you for a telephone interview. This
will consist of asking you a few questions, generally about the package(s)
you intend to maintain. The whole process takes time, but it ensures
the distribution is secure.
<p>
<h3>Wrapping It Up</h3>
<p>
The open-source development model allows talented people to collaborate on
projects from across the world. If someone feels they have something
useful to contribute, they can. This article only touches on three
projects. The Open Source movement is truly a ``gift culture''. You are
judged by what you have contributed and the quality of your code.
Countless projects are out there that can benefit from the
assistance of the community. With your help, they can flourish, and you
may be ``known by your initials''.
<p>
<h3>Resources</h3>
<p>
GNOME:<BR>
<A HREF=http://www.gnome.org/>http://www.gnome.org/</A>
<p>
Debian GNU/Linux:<BR>
<A HREF=http://www.debian.org/>http://www.debian.org/</A><br>
<A HREF=http://www.debian.org/devel>http://www.debian.org/devel</A>
(Developer Information)
<p>
The Linux Kernel Mailing List:
<A HREF=http://www.tux.org/hypermail/linux-kernel/>
http://www.tux.org/hypermail/linux-kernel/</A> (archives)<br>
To subscribe,
send mail to majordomo@vger.rutgers.edu with <tt>subscribe linux-kernel</tt> in
the body.
<p>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Andrew Feinberg <BR>
Published in Issue 43 of <i>Linux Gazette</i>, July 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Better Web Page Design Under Linux</font></H1>
<H4>By <a href="mailto:chrisgibbs@geocities.com">Chris Gibbs</a></H4>
</center>
Note: The author does not have regular Internet access at this time and may be
slow in responding to e-mails.<BR>
<P> <HR> <P>
<H2>Contents</H2>
<P ALIGN=LEFT><A HREF="#bwd1"><FONT COLOR="#280099">Wysiwyg Editors</FONT></A>
</P>
<P ALIGN=LEFT><A HREF="#bwd2"><FONT COLOR="#280099">The Advantage of
Linux</FONT></A>
</P>
<P ALIGN=LEFT><A HREF="#bwd3"><FONT COLOR="#280099">Setting up Apache</FONT></A></P>
<P ALIGN=LEFT><A HREF="#bwd3.1"><FONT COLOR="#280099">Starting and
Testing Apache</FONT></A></P>
<P ALIGN=LEFT><A HREF="#bwd4"><FONT COLOR="#280099">Search Engines</FONT></A></P>
<P ALIGN=LEFT><A HREF="#bwd5"><FONT COLOR="#280099">SGML Support</FONT></A></P>
<H2>Introduction</H2>
<P>Recently an article was published in Linux Gazette entitled <B>Web
Page Design Under Linux</B>. This article produced some criticism in
later issues. The main criticism seems to have been of the authors
preference for hand coding HTML rather than using a HTML editor like
the Windows HotDog editor. This is an argument I do not really want
to get involved with. Neither do I want to spend much time on style.
Whilst in most cases users want simple fast loading, clear pages,
there will always be a place for garish eye candy, huge graphics and
all kinds of complexities that take forever to download on a 28k
modem. What I do want to address are the great things that linux
offers. Great things that are free and would cost a fortune to
implement on other operating systems. In particular I shall explain
how to set your linux box up to be your own intranet server, and
thereby fully exploit the abilities Linux offers for designing
applications for the Web.
</P>
<p>
One point I think needs making, and which does not fit in with the rest of this
article, is the <b>Plugger</b> Plug-in for Netscape Navigator. In the past
many people have complained that Netscape plug-ins are not generally available
for Linux. Plugger from <a
href="http://www.infovav.se/=hubbe/plugger.html">http://www.infovav.se/=hubbe/plugger.html</a>,
seeks to address this by providing support for many audio/video/image types.
<EM>[Ed. note: This domain name has disappeared. The author is looking for an
alternate URL.]</EM>
<H2><A NAME="bwd1"></A>Wysiwyg Editors</H2>
<P>By way of introduction though, I will put my two penny worth into
the 'editor argument'. I have never yet found a HTML editor that I
like! I am writing this article in StarOffice 5.0. I have never used
it to write HTML so this is something of a test. I expect I'll have
to edit the source when I finish writing. Another editor that seems
as good as any other I have tried is the composer part of Netscape
Communicator. I find this irritating, very very irritating. Why?
Because I like my text to be fully justified. OK I know that some
people think that full justification 'goes against the spirit of
HTML', but personally I would rather read text that is fully
justified than text which is not. I do not believe I am alone in this
preference.</P>
<P>What happens with Netscape is that after I have spent a couple of
hours designing some pages until I am happy with them, I load them
all into vi and change every occurrence of <B><P></B> into <B><P
align=justify></B>, which can take some time if I've written a lot
of text. Now a little later I want to make some changes, so I load
the pages into Netscape Composer and I make some changes. But whist
Communicator understands <B><P align=justify></B>, Composer
does not. In fact Composer does not allow <B><P align=justify></B>
and changes each occurrence back to <B><P>.</B>... Bummer... I
have to re-edit all the source by hand again. If I thought there was
some advantage to using Composer, rather than hand writing my HTML I
guess I would write a little program to search HTML files for <B><P></B>
and replace with <B><P align=justify></B>. But this is not the
only short coming of HTML wysiwyg editors. They just don't seem able
to do exactly what I want, how I want.
</P>
<P>OK in fairness I am now impressed with StarOffice! Although there
is no button to give full justification, it is easy to edit the <B>Text
Body style</B> so that full justification is automatic. It is also
easy to automatically indent the first line of a paragraph, set
double line spacing etc. etc. Maybe I will be converted to using a
wysiwyg editor for my HTML after all.
</P>
<P>One feature that seems to be missing from StarOffice 5.0, is any
easy way to define lists. Tables are well supported, but lists are
not. I guess that it should be possible to define some new styles to
allow the use of different kinds of list, but one would have thought
that a button should be available for them. Also given the different
kinds of list available for HTML, one might find that the styles menu
becomes cumbersome and more difficult than it should be.
</P>
<P>OK simple layouts are quicker with a HTML editor, but if you want
full control you have to hand edit at some point. So to my way of
thinking if you want to write good HTML you must learn HTML. It is a
very bad idea to to think you can skip learning HTML by getting an
editor that works like a word processor. You will not have the skills
you need to produce good web pages. HTML is very easy to learn. Once
you know it then you might find that Netscape or StarOffice provide
useful tools to help you. But please do not think such tools replace
the need to be able to hand code HTML.
</P>
<P>The essential document to read if you want to produce great
Web-Pages efficiently is <A HREF="http://www.w3.org/TR/REC-html40">HTML
4.0 (W3C: HTML 4.0 Specification)</A>, this is the full Document Type
Definition for HTML and SGML. For once I have taken my own advice and
read it! The problems I mention above regarding text formatting have
all been solved for me! I look at the HTML source StarOffice has
given, whilst I am impressed, I am not happy. Again I think that an
editor like <B>vi</B> or <B>emacs</B> really is better and more
efficient than using a <B>wysiwyg</B> editor.
</P>
<P>The reason is that HTML 4.0 allows the use of <B>Style Sheets</B>.
This article depends upon the use of a style sheet, <A HREF="./gibbs/special.css">special.css</A>.
This is a document that says how a browser should render my document.
An important feature is that browsers that cannot display certain
things (e.g. graphics) are not disadvantaged. All browsers can access
this page in the way I intend them to. In the past authors have been
forced to use techniques to format their pages that cannot be
displayed correctly on all browsers. Propriety HTML extensions, the
conversion of text into graphics, the use of images for white space
control, the use of tables for layout and even the use of programs,
have all been used to format text, all these methods cause difficulty
for users and extra work for developers. The correct use of style
sheets avoids these problems.
</P>
<P>Once you are familiar with the use of <B>style sheets</B>, it will
not matter how badly Netscape Composer performs, or how unfamiliar
you are with StarOffice, using an editor like <B>vi</B>, really can
be simpler than using something like <B>Hotdog</B>. Load <A HREF="./gibbs/special.css">my
style sheet</A> into your favorite editor and see for yourself how
easy it is to change the look and feel of this document.
</P>
<p>STOP PRESS.....
<P>Even as I am writing this document, I have found yet another web browser
for linux! This one is worh some attention since it is produced by the W3
consortium, the same people who define the HTML specification. In fact
this is the browser they use to test their specification. The following text
is displayed when you start it for the first time:-
<dl>
<dt><b>Amaya</b></dt><dd> is a Web client that acts both as a browser and as
an authoring tool. It has been designed with the primary purpose of
demonstrating new Web technologies in a WYSIWYG environment. The current
version implements HTML, MathML, CSS, and HTTP.<br><br></dd>
<dt><b> Main Features</b></dt><dd>
With Amaya, you can manipulate rich Web pages containing forms, tables and
the most advanced features from HTML. You can create and edit complex
mathematical expressions within Web pages. You can style your documents
using Cascading Style Sheets. You can publish documents on local or remote
servers with the HTTP Put method.<br>
Browsing and authoring are integrated seamlessly. You can browse and edit
Web pages at the same time. For that reason, a simple click just moves the
caret to allow text editing; to follow a link, you have to double click.
<br><br></dd>
<dt><b>Online Manual</b></dt><dd>
A User's Manual is available online. You can browse it with the Help menu,
which displays each section separately. You can also print it: just follow
the Online Manual link below. You'll get the front page. Then build the
whole book with the "Make book" entry from the Special menu and print the
result.</dd>
</dl>
<p>
This browser certainly has some advantages. The version I have is still beta
(1.3b), so there are some short comings. I found that the <b>File -
Open Document</b> dialog can resize its file box so it is non-functional.
Also for some reason not all directories can appear in the directory box. At
least one can specify the required file in the <b>URL</b> box! The fact
that the manual does not come with the package is a definate minus for me.
<p>What is nice about the browser is the pleasent way it renders pages. This
page, for instance, uses full text justification, Amaya can actually split
words in the traditional manner when required.
<p>
The really nice thing about this browser is the fact that you can edit files as you browse them. So if you are creating a document with many pages it is
easy to switch between them. The down side of this is that there seems to be
no way to to edit or view document source. Something that I would like to
see in other browsers is the ability to create a "Table of Contents", with
Amaya you can generate one based on the <b><H...></b> elements in your
document. This will pop up as a seperate window and allow you to easily
navigate through a document that has no links of its own.
<p>At about 4.5 Megbytes, this is probably a very good alternative to
StarOffice if you do not have the disk space required for StarOffice. I
am certainly interested in seeing how this browser develops in the future.
If you want to give it a try you can obtain it from <a href="http://www.w3.org/Amaya">the Amaya homepage</a>. Additionaly there was a review of an earlier
release of Amaya in Linux Gazette some years ago <a href="../issue15/amaya.html">see issue 15</a>. All I have to add to that review is that improvements must have been made. It seems the same in appearence as the screen shots show. Amaya displays the old style of Linux Gazette Contents pages quite well, but the new style in the last three or four issues is completey garbled. When Amaya starts up it no longer looks for a page on its home site, and
I have not seen it seg fault as described. On the whole it does a very good job.
<H2><A NAME="bwd2"></A>The Advantage of Linux</H2>
<P>Now I've got that out of my system I'll get on to my main point.
Drum roll please..... With linux it is simple to build a system you
can gain http access to. Trumpet fanfare please.</P>
<H3>Why is http access to your machine important?</H3>
<P>Even if, like me, you are a stand alone machine, with no kind of
network, it is easy to start up your favorite browser and <B>http://</B>
yourself. This means you can get into the wonderful worlds of cgi
scripts, client server applications, java. etc. etc. etc. Without the
need to access a 'real' network you can test any network application
you care to develop for the Internet. You can test every aspect of
your web design without wasting a phone bill. You can test
applications safe in the knowledge that no matter what mistakes are
in your code, only the machine you are using will be at risk, the
"<I>real</I>" network will be unaffected until you decide
your code is working correctly.</P>
<P>Web page design is not just about putting text/graphics and links
onto the Internet. Increasingly it is about providing good user
interfaces to network applications and providing an efficient means
of communication. In the past only the largest corporations could
afford to implement a WAN (Wide area network). Today anybody with a
modem and pc can join the Internet, or implement their own intranet
(a private network that acts in the same way as the Internet).</P>
<P>To illustrate my points consider the following scenario. You own a
small tobacconists and live in a village called Tiny. Because the
village is small you do not have many customers, so you don't sell
items in vast numbers. That means you do not buy in large quantities
from your suppliers and you cannot get the kind of discounts larger
shops would get. But you have many relations and friends in other,
similar villages who also run small tobacconists. If you all clubbed
together and ordered your supplies as one entity you could take the
discount advantages of bulk buying from your suppliers. The only
problem is knowing which shop needs what items at any given time. You
know that the discounts you would get would allow you to employ a van
driver to deliver to all the shops and still leave each shop a
significant saving.
</P>
<P>How can web design under linux help you solve this problem?</P>
<P>The 'man with a van' needs information, what to buy in what
quantity and where to deliver it. This sounds like a classic database
application. Linux offers many sql database solutions. We want to
keep costs to a minimum, we also want to maximize security and
reliability. So good choices might be ingres or postgreSQL. If we
look at these DBMS's we find that postgreSQL comes with a java
interface. So lets say we design a suitable database with postgreSQL.
This database will be held on a box that will be our server.
</P>
<P>What we need is the ability for each shop to communicate with the
server to tell it what stock we need to buy in. Shop keepers do not
have to be computer literate. They also do not want to spend much
money on computer systems. At least at this time it is unlikely that
they could be persuaded to learn a UNIX operating system like linux.
Cheap boxes already have Windows. An ideal solution is one where each
shop can dial into the server, the manager can start up his/her
favorite browser and use it to enter information to the server. It
should not matter what operating system each shop uses.
</P>
<P>What does our server need to do?</P>
<P>The first thing is to get Apache set up and running. Apache is a
web server and comes with most if not all linux distributions as
standard. What is not always clear is how to set it up correctly.
This is something an installation program cannot do (easily) and
needs to be done by hand. It is Apache that allows us to http
ourselves. Of course, we will also need to allow remote machines to
dial into our server, but that is a matter outside the scope of this
document.
</P>
<P>Once Apache is running we can design a java application to act as
a user interface to our database.</P>
<P>We can test both the client and the server parts of our
application on our server until we are certain it performs as
required.
</P>
<P>Then all we need to do is allow the shopkeepers to be able to dial
into the server and gain access via their browsers to the java
database interface.</P>
<P>The wonderful thing is that at the test stage we only need to use
one linux box which acts as both client and server at the same time.</P>
<H2><A NAME="bwd3"></A>Setting up Apache</H2>
<P>If you do not already know, then Apache is one of the most common
http servers in existence. A great many ISP's (Internet Service
Providers) use Apache to give their clients (i.e. You) access to the
world wide web.
</P>
<P>This document does not attempt to address the requirements of a
true Internet or intranet server. All I am concerned with here is
getting Apache up and running on a standalone machine so that
client/server software can be tested. In particular I am not
concerned with security issues here. If you do not intend to have a
permanent network connection then all should be well. If you intend
other machines to have access to your http server then you should
read all the relevant documentation. Complete configuration of Apache
can be a very complex issue which does not fall within the scope of
this document.</P>
<P>Modern Linux distributions, such as S.u.S.E., have special
requirements for setting up Apache correctly. To avoid confusion
please read the documentation that came with both your linux
distribution and your Apache distribution. The following steps will
work for any Linux distribution, but be warned, if your distribution
has special requirements I cannot be responsible for getting your
system startup files in a mess.
</P>
<P>For instance I shall describe how to start Apache automatically at
boot time by adding a line to your /etc/inittab. Whilst some
Slackware users will benefit from this approach S.u.S.E. users should
find that it is better to edit their /etc/rc.config file in the
appropriate manner.</P>
<H3>Preparing your machine for Apache</H3>
<P>These steps will prepare your machine for the installation of
Apache. You might find that Apache is already installed, following
the above steps will not hurt such installations.
</P>
<OL>
<LI>Make certain you have set your <B>/etc/HOSTNAME</B>
correctly. I call my machine <B>Hawklord</B><br><br>
<LI>Create a new account for the httpd
administrator. I use the user <B>wwwrun</B>, whose primary group is
<B>nogroup</B> (65534).<br><br>
<LI>Edit your <B>/etc/hosts</B> to reflect the name
of your machine. I have the entries
<PRE> 127.0.0.1 localhost
127.0.0.2 Hawklord.Varteg Hawklord </PRE>
<LI>Edit your <B>/etc/hosts.allow</B> I have
<PRE> ALL: 127.0.0.1
ALL: 0.0.0.0
ALL: localhost
ALL: Hawklord.Varteg
</PRE>
</OL>
<P>If Apache is not already installed, find a pre-compiled version
and install it as per the instructions. You should find that
configuration files are placed under <B>/etc/httpd</B>, and other
files are installed under <B>/usr/local/httpd</B>.</P>
<P>The directory <B>/usr/local/httpd/htdocs</B> should contain the
Apache user manual in html format. Actually this directory will
become the root directory of our http site, so you may want to move
this documentation elsewhere eg. <B>/usr/doc/Apache</B>.
</P>
<H3>Plan your http site</H3>
<P>When you log into a http site, eg <B>http://linux.org</B>, you
find yourself at the root of what can be a very complicated directory
structure. You can think of a http site as being a file system just
like your own root file system. Whilst it is true that to a user the
http site will look like a regular file system, the reality on the
servers hard disk(s) can be very different. It is important to
understand the differences and use them to your advantage.
</P>
<P>On my system the document root is at /usr/local/httpd/htdocs, and
this is the directory a user lands in when they access
<B>http://Hawklord.Varteg</B>. But there is only one file and no
sub-directories on my hard disk. I only keep index.html in the
physical location /usr/local/httpd/htdocs. All the documentation
users can access is held in other locations on my hard disks.
</P>
<P>Looking again at /usr/local/httpd you should find other
sub-directories, in particular cgi-bin and icons. These directories
should seem to be located under your document root because they will
contain files that should be available to any html file on your site
that requires them. Though a user should not be able to directly
access these directories. Much of my documentation is under /usr/doc,
so I make that directory appear as /doc to the http server.</P>
<P>What this means is that you can store all your documentation on
the server in locations that seem logical to you, you do not need to
copy files or even make symbolic links to /usr/local/httpd/htdocs.
Instead plan how you want your documentation to appear to a user.
Also you can have directories that users cannot directly access, but
which html documents can access.
</P>
<P>For instance, the directory <B>/usr/doc/</B> contains
</P>
<PRE STYLE="margin-bottom: 0.50cm"> Linux_gazette Howto Ldp java-documentation</PRE>
<P>
I also want to access files under <B>/usr/hobbies/literature</B> and
<B>/usr/src/java/applets</B>
</P>
<P>I want my site to have the following structure:
</P>
<PRE> / ---> cgi-bin
docs ---> Linux_gazette
Howto
Ldp
java-documentation
literature
icons
java_applets
</PRE>
<P>
Planning your http site in this way will save you headaches in the
future!</P>
<H3>httpd.conf</H3>
<P><B>/etc/httpd/httpd.conf</B> is the main configuration file for
Apache. Some versions of Apache and/or Linux distributions recommend
that all configuration information is kept in this file. Other
versions recommend that you use all three files I shall mention
below. If you want to keep all information in one file, simply put
all the information in one file, there is no real difference between
the two methods. You will find that the example files will contain
sufficient comments to enable you to make the best choices for your
system. I am only going to describe the changes you need to make to
get Apache to work for you. Careful reading of the files will let you
configure Apache better for your needs.
</P>
<P>I am aware that a TCL configuration utility called <a href="http://butler.disa.mil/ApacheConfigClient">Comanche</a> exists for Apache.
However, this is still in an early stage of development, so I do not
recommend it for beginners. I found in practice the utility would not
function correctly if you use only <B>httpd.conf</B> to configure
your system. However it could prove useful for experimenting with different
configurations.
</P>
<P><B>For each line in the configuration files you can assume that
your example file has a correct or sensible entry, unless I
specifically mention it. Back up the examples before you make any
changes!</B></P>
<DL>
<DT><B><I>ServerType</I> standalone.</B></DT><DD>
Please use standalone unless you know exactly what you are doing.<br><br></DD><DT>
<B><I>Port</I> 80</B></DT><DD>
Unless you have changed something this is correct, so do not change
it.<br><br></DD><DT>
<B><I>HostnameLookups</I> on</B></DT><DD>
Again, it is probably a mistake to change this unless you know
otherwise.<br><br></DD><DT>
<B><I>User</I> wwwrun</B></DT><DD>
This entry should refer to the user we set up above to be the httpd
administrator.<br><br></DD><DT>
<I><B>Group</B></I></DT><DD>
This entry should refer to the primary group you defined for the
httpd administrator.<br><br></DD><DT>
<B><I>ServerAdmin </I>root@localhost</B></DT><DD>
This is the address Apache will use to send e-mails with details
about problems with the server. Using <B>localhost</B> rather than
<B>Hawklord.Varteg</B> seems to be more reliable.<br><br></DD><DT>
<B><I>ServerRoot</I> /usr/local/httpd</B></DT><DD>
This should point to the location you installed Apache's main files.
By default this is <B>/usr/local/httpd</B><br><br></DD><DT>
<B><I>ServerName</I> Hawklord.Varteg</B></DT><DD>
This should be the fully qualified domain name of the server. It
should be the same as the entry you made in <B>/etc/hosts.allow</B>
and <B>/etc/hosts </B>above.<br><br></DD><DT>
<I><B>Logs</B></I></DT><DD>
Entries concerning log files should probably be left as they are
until you feel confident about changing them. Though you might want
to experiment with the <B><I>loglevel</I></B> entry if you
experience problems.
</DD></DL>
<H3>
srm.conf</H3>
<P>This file contains site specific information. It is where we
define how our site will look to a user.</P>
<DL>
<DT><I><B>DocumentRoot</B></I></DT><DD>
should refer to the directory on our hard disk that will be the root
directory of our site. For our example this is
<B>/usr/local/httpd/htdocs</B><br><br></DD><DT>
<I><B>DirectoryIndex</B></I></DT><DD>
is the name of the file that should be loaded by a browser when a
user enters a directory without specifying a filename, e.g.
<B>http://Hawklord.Varteg/</B> or <B>http://Hawklord.Varteg/docs/</B>.
index.html is a sensible default.<br><br></DD><DT>
<I><B>Alias .....</B></I></DT><DD>
Each line starting <B>Alias </B>will define a virtual directory on
our system. For the example above this should include:
<PRE> Alias /cgi-bin/ /usr/local/httpd/cgi-bin/
Alias /docs/ /usr/doc/
Alias /docs/Linux_gazette/ /usr/doc/Linux_gazette/
Alias /docs/Howto/ /usr/doc/Howto/
Alias /docs/LDP/ /usr/doc/LDP/
Alias /docs/java-documentation/ /usr/doc/java-documentation/
Alias /docs/literature/ /usr/hobbies/literature/
Alias /icons/ /usr/local/httpd/icons/
Alias /java_applets/ /usr/src/java/compiled/
</PRE>
</dD>
<dt><I><B>ErrorDocument</B></I></DT><DD>
Error documents are the response the server will give when the user
types a wrong <B>URL</B>, or tries to access a restricted file or
directory etc. Apache gives good default error documents, but you
can override this behavior and provide your own responses. I keep my
error documents in the directory <B>/usr/local/httpd/error</B></DD></DL>
<H3>
access.conf</H3>
<P>This file contains permissions for our sites directories. If. when
you test your configuration by starting <B>httpd</B> and pointing
your browser to (eg.) <B>http://Hawklord</B>, or <B>http://localhost</B>
(both will work for the above example), you get a file access error
you will need to alter this file. Each directory in your site should
have its own entry.
</P>
<P>By default Apache has a very restricted set of permissions for the
root directory, I have found that changing to:
</P>
<PRE> <Directory />
Options All
Order allow,deny
Allow from all
Options FollowSymLinks
</Directory></PRE>
<P>
solved some problems for me. It is important to realize that a
directory inherits its permissions from its parent directory. So if
you want to allow outside access to your site you need to take great
care when setting up your directory permissions.
</P>
<P><BR><BR>
</P>
<H2><A NAME="bwd3.1"></A>Starting and Testing Apache</H2>
<P>Once you are satisfied that you have correctly installed and
configured Apache, you will want to test it! Log into your machine as
root. At the prompt type:
</P>
<PRE> #: httpd &</PRE>
<P>Now you can log into your machine as any user, start your favorite
browser and enter the <B>URL</B> <B><I>http://localhost</I></B>. If
all goes well you should load the Apache site file <B>index.html</B>.
That is unless you moved the Apache documentation and provided your
own <B>index.html</B> in <B>/usr/local/httpd/htdocs</B>
</P>
<P>Once you ar satisfied that all is well, you will want to have
<B>httpd</B> start at system boot time. Some Linux distributions,
such as Red-Hat or S.u.S.E. will have a script to start Apache in
their <B>init.d</B> directory. If this is the case then you just need
to enable the script for <B>sys V init</B> in the normal manner.
</P>
<P>As an alternative you can put the following line in your
<B>/etc/inittab</B>
</P>
<PRE STYLE="margin-bottom: 0.50cm"> ap:45:once:/bin/su --command=/usr/sbin/httpd</PRE>
<P>
'ap' must be a unique identifier. '45' refers to the runlevels for
which the command will be executed. Once is probably safer to use
than 'respawn', since if there is a mistake in this line you will see
a lot of error messages ;-(
</P>
<P><A NAME="bwd4"></A>The final part of the line '/bin/su
--command=/usr/sbin/httpd', is intended to start up Apache as a
process owned by wwwrun. It would be wise to test this command before
you put it in your <B>/etc/inittab</B>.
</P>
<H2>Search Engines</H2>
<P>If you have Apache running, and a large linux installation, then
you might want to consider implementing a search engine. S.u.S.E.
Linux provides <A HREF="http://htdig/sdsu/edu">htdig</A>, in fact to
gain full benefit from the S.u.S.E. Help System you need to use
something like htdig. The only problem is the disk space you will
need. I have a 1Gig partition devoted to documentation, this may seem
a lot to many users! I have a lot of personal documentation, program
documentation (increasingly this is HTML), all issues of Linux
Gazette, Gimp documentation, java documentation etc. This takes about
500 Meg. The database htdig uses is between 200 - 300 Meg on my
system. To update the database I need 200 - 300 Meg spare under /tmp.
Actually when I update the database I change the location of /tmp
since I do not have enough space on my root partition. Now since I
have arranged all the documentation to be available to Apache, it is
all referenced in htdig's database. If I have a question about any
aspect of linux, or any of my personal subjects, all I have to do is
formulate a suitable search pattern. I cannot adequately describe the
savings in time this has given me! In the past I would have needed to
access newsgroups to find answers to my problems. With htdig I can
avoid this 99.9% of the time! Given the low cost of hard disk space,
the fact that current program documentation is usually given as html,
that most documentation of any kind is available as html, then it
makes good sense to use Apache in conjunction with a search engine in
order to have a most efficient information retrieval system.
</P>
<P>Htdig may not be perfect, if you are used to Infoseek or lycos, it
is a bit annoying because you cannot search for a phrase e.g.
"starting the x server". Rather a document is searched for
that contains all the words you enter. An advantage is that related
words are searched for as well, e.g. if you search for 'god' you can
also get results for 'gods' and 'godly'. Once you get used to htdig
it becomes an indispensable tool. The time it saves you in looking
for information is well worth the cost in terms of disk space. (on my
system the real cost is about 250 Meg, though I need another
temporary 250Meg when re-building the database).</P>
<a name="bwd5"></a><h2>SGML Support</h2>
<p>Finally I shall mention Linux's <b>SGML</b> (Standard Generalized Markup Language) support, this is not normally concidered part of web page design
since most home users will simpy want to be able to create their own
HTML home pages and have no other use for such documents.
<p>However, a great many people will want to produce documents in many
formats. The same document might need to be available for publication as a book, or as an info page as well as being available as web pages. The linux
documentation project contains many documents that are available in different formats according to users needs.
<p>SGML allows a single source to be used to produce many different kinds of
text format. The following package descriptions are taken directly from
the S.u.S.E. 6.0 distribution, though they should all be available for
other distributions:
<br><hr>
Package "sgmltool"<br><br>
<b>SGML-Tools - a text-formatting package</b><br>
SGML-Tools is a text-formatting package based on SGML (Standard Generalized Markup
Language), which allows you to produce LaTeX, HTML, GNU info, LyX, RTF, and plain ASCII (via
groff) from a single source.
<br><br>
This system is tailored for writing technical software documentation, an example of which are the Linux
HOWTO documents. It should be useful for all kinds of printed and online documentation.
<br><br>
SGML-Tools is not able to process arbitrary SGML documents; in such a case, give jade_dsl a try and
write your own DSSSL scripts (take the docbk30 package as an example).
<hr>
Package "jade_dsl"<br><br>
<b>
DSSSL-Engine for SGML documents</b><br><br>
Jade is an implementation of DSSSL (Document Style, Semantics and Specification Language);
pronounce it as "dissl" -- it rimes with whistle.
<br><br>
It has backends for SGML, RTF, MIF, TeX, and HTML.
<br><br>
The parser "nsgmls" and helper tools like "sgmlnorm", "spam", "spent", and "sx" are now included in
the separate package "sp".
<br><br>
You'll find the documentation at /usr/doc/packages/jade_dsl/.
<br><br><hr>
Package "sp"
<br><br>
<b>
SGML parser tools</b><br><br>
The tools of this package provide the possibility to manage SGML and XML documents.
<br><br>
It contains the parser `nsgmls' and the supporting programs `sgmlnorm', `spam', `spent', and `sx'. `sx' is
useful as a converting tool from SGML to XML, the comming WWW standard. You'll find the
documentation for all the programs under /usr/doc/packages/sp/.
<br><br>
<hr>
Package "sp_libs"
<br><br>
<b>Libries required for sp and jade</b><br><br><hr>
Package "gf"
<br>
<br>
<b>
A "general formatter" for SGML documents
</b><br><br>
`gf' from Gary Houston is short for "general formatter", i.e., it can work on documents which use the
ISO "general" document type definition (DTD). It can convert SGML documents conforming to a small
number of DTDs into various output formats: LaTeX, ASCII, RTF and Texinfo. However not every
output format can be generated for every DTD.
<br><br>
Apart from the general DTD, gf supports the HTML DTD used in the WWW project and Gary's Snafu
DTD. `gf' is not intended as a flexible system for hacking up a formatter for a random DTD, but as a
usable document production system for a few DTDs.
<br><br><hr>
Package "jadetex"
<br>
<br>
<b>
JadeTeX - LaTeX macros to process TeX output from Jade (jade_dsl)
</b><br><br>
With Sebastian Rahtz' macro package `jadetex' is is possible to process the output of the TeX backend
of Jade (jade_dsl). Resulting DVI files are viewable e.g., with `xdvi' or printable like any other DVI file.
<hr>
<p>
I have no real experience with SGML so I will leave the appraisal of these packages to the reader. For some people these will prove indespensible tools for
producing HTML pages.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Chris Gibbs <BR>
Published in Issue 43 of <i>Linux Gazette</i>, July 1999</H5></center>
<!--===================================================================-->
<P> THIS IS THE STYLE SHEET Special.css, with <PRE> tags around it
so the contents can be viewed in HTML.
<PRE>
P { text-indent: 1.00cm; text-align:justify }
H1 { border: solid green; background: blue; color: cyan; text-align: center }
H2 { border: solid brown; background: oldlace; text-align: left }
H2.name { border: none; background: white; text-align: center }
OL { border: solid orange; background: oldlace; list-style-type: lower-roman }
DL { font-style: bold; background: oldlace; border: solid orange }
</PRE>
<P> END OF STYLE SHEET Special.css
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Graphics Muse</font></H1>
<H4>By <a href="mailto:mjhammel@graphics-muse.org">Michael Hammel</a></H4>
</center>
<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 </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>© 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. </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>
<p><a href="http://www.clbooks.com/home.html?from=CJK692"><img SRC="gm/images/cla_small.gif" VSPACE=5 BORDER=0 height=60 width=234 align=CENTER></a></center>
<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 CELLSPACING=0 CELLPADDING=0 COLS=2 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP NOSAVE><font face="Arial,Helvetica"><font size=-1>I've
actually had a fun time putting this months column together. In the
past I had been trying to find technical issues to talk about from a layman's
point of view - graphics for the masses. This month, I just sat down
and thought about it the way I do things. I play. I find something
new and fiddle with it. If it's easy to learn and I can do something
useful with it in a few minutes, I keep fiddling. If not, I lose
interest and come back some other time, hopefully when the application
has evolved a bit more. </font></font>
<p><font face="Arial,Helvetica"><font size=-1>This month I started out
by looking for video editing software for Linux. Now, don't get your
hopes up. As with many good ideas, it started in one direction and
headed slightly off center - I didn't do a write up on video editing software.
Instead, I looked at video viewing software. This is something I
thought the average user might have real use for. But if you're still
hoping to find out what's in store for the video editing world, don't lose
hope. I plan on visiting that arena soon. We just need the
tools that are currently available to mature a little more, and we also
need a few more options to choose from for our video editing needs.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>So, in this months column
you'll find:</font></font>
<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>Interactive Management of Image
Maps</font></font></li>
<li>
<font face="Arial,Helvetica"><font size=-1>Linux Video Choices: A review
of Xanim, MainView, MpegTV and RealVideo.</font></font></li>
</ul>
<center><table BORDER=0 CELLSPACING=0 CELLPADDING=5 COLS=1 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td ALIGN=CENTER NOSAVE><a href="http://www.thegimp.com"><img SRC="gm/images/gc-ad.gif" BORDER=0 height=46 width=221></a>
<center><font face="Arial,Helvetica"><font size=-1>The companion site to</font></font>
<br><font face="Arial,Helvetica"><font size=-1><font color="#408AB4">The
Artists' Guide To The Gimp</font>.</font></font>
<br><font face="Arial,Helvetica"><font size=-1>edited by</font></font></center>
<font face="Arial,Helvetica"><font size=-1>The Graphics Muse - <b><font color="#993300">Michael
J. Hammel</font></b>.</font></font></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.clbooks.com/home.html?from=CJK692">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>. 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></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="./gm/mews.html#Recent Blender News from June 6 1999">Recent
Blender News from June 6 1999</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1><a href="./gm/mews.html#MpegTV Player (mtv) 1.0.9.8">MpegTV
Player (mtv) 1.0.9.8</a></font></font></td>
</tr>
<tr NOSAVE>
<td NOSAVE><font face="Arial,Helvetica"><font size=-1><a href="./gm/mews.html#gPhoto 0.3.3">gPhoto
0.3.3</a></font></font></td>
</tr>
<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP NOSAVE><font face="Arial,Helvetica"><font size=-1><a href="./gm/mews.html#GIMP Imagemap plug-in 1.1.1">GIMP
Imagemap plug-in 1.1.1</a></font></font></td>
</tr>
<tr NOSAVE>
<td ALIGN=CENTER NOSAVE><font face="Arial,Helvetica"><font size=-1><
<a href="./gm/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>
<center><a href="http://www.graphics-muse.org/xnotes/xnotes.html"><img SRC="gm/images/xnotesplus-logo.jpg" BORDER=0 height=50 width=306></a></center>
</td>
</tr>
<tr>
<td>
<hr NOSHADE WIDTH="100%"></td>
</tr>
</table>
<b><font face="Arial,Helvetica"><font size=+1>NY Times: Linux Takes Prize
- In an Art Competition</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1>"One of the top prizes in
a prestigious electronic art competition has been given to a deliberately
unusual choice: the Linux computer operating system." (free
registration required)</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.nytimes.com/library/tech/99/mo/cyber/articles/01linux.html">http://www.nytimes.com/library/tech/99/mo/cyber/articles/01linux.html</a></font></font></td>
</tr>
</table>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>ACIS First 3D Modeling
Engine To Offer LINUX Port</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> LinuxPR</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Spatial Inc. a developer
of open, component 3D modeling technology and product data access, exchange,
and sharing solutions, today announced the availability of ACIS® 3D
Toolkit[tm] on Red Hat® Software, Inc.'s LINUX[tm] operating system.
This port will arrive in conjunction with Spatial's scheduled release of
ACIS 3D Toolkit 5.2 in mid June.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://linuxpr.com/releases/32.html">http://linuxpr.com/releases/32.html</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>XScreenSaver 3.16</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> jwz - June 20th 1999,
20:49 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>XScreenSaver is a modular
screen saver and locker for the X Window System. It is highly customizable
and allows the use of any program that can draw on the root window as a
display mode. More than 100 display modes are included in this package.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Added new
demos <i>webcollage</i> and <i>petri</i>, and made it possible to use the
<i>vidwhacker</i>
demo in a pipeline.</font></font>
<br><font face="Arial,Helvetica"><font size=-1>New version of <i>shadebobs</i>,
improved image selection in <i>webcollage</i>, and sped it up slightly,
made configure find the right version of perl, `make clean' was deleting
some things it shouldn't and fixed a typo in the default programs list.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.jwz.org/xscreensaver/">http://www.jwz.org/xscreensaver/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>Swift Generator 0.9</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Olivier Debon - June
20th 1999, 20:40 EST</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, images 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>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Text alignment support
has been added.</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><b><font face="Arial,Helvetica"><font size=+1>gd 1.4</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> NevaLabs (Claudio
Neves) - June 20th 1999, 20:31 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>gd is a library used to create
.GIF images. It has many nice features and can be used in scripts (e.g.
PHP) for dynamic image generation.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.boutell.com/gd/">http://www.boutell.com/gd/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>HP Introduces Linux based
HP VISUALIZE Personal Workstations</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> From NewsAlert</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The HP VISUALIZE PL450 and
XL550 Personal Workstations will ship with Linux and deliver leading application
performance for popular Electronic Design Automation (EDA) software solutions
from Avant!, Mentor Graphics and Synopsys, as well as for other technical
applications.</font></font>
<p><font face="Arial,Helvetica"><font size=-1><a href="http://www.newsalert.com/bin/story?StoryId=Cn224WbKbytaYmtu&FQ=Linux&SymHdl=1&Nav=na-search-&StoryTitle=Linux">Full
Story</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>tkxanim .43</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> AaronA - June 23rd
1999, 16:36 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>tkxanim is a Tcl/Tk front
end to xanim which aims to provide a graphical interface that allows the
user to configure most, if not all, of xanim's options available from the
command line. Since the program is in early alpha development, only a handful
of xanim's options are present for configuration. However, more will
be added with each new release. Despite the lack of options at the time
being, the program is still very usable and visually appealing.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Added a couple minor
features (Debug Level and Animation Loops entry fields). Also cleaned up
the options box a bit.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://members.yourlink.net/aaron/tkxanim.html">http://members.yourlink.net/aaron/tkxanim.html</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><b><font face="Arial,Helvetica"><font size=+1>Wacom Driver for XFree86
alpha 7</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Fred - June 22nd
1999, 17:01 EST</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>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Corrected the init
problem on PenPartner 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%">
<p><!--
-- Did You Know Section
-->
<h2>
Did You Know?</h2>
<blockquote><font face="Arial,Helvetica"><font size=-1>...you can create
maps using an online tool? Check out <a href="http://www.aquarius.geomar.de/omc/">Online
Map Creation</a> (http://www.aquarius.geomar.de/omc/). You can generate
a map, download it's Postscript version and/or view and download it's GIF
version in your browser. Equidistant Cylindrical Projections are
reported to, after a little trimming, map very well to spheres.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>...more information on map
projections can be found at <a href="http://www.ahand.unicamp.br/~furuti/ST/Cart/CartIndex/cartIndex.html">http://www.ahand.unicamp.br/~furuti/ST/Cart/CartIndex/cartIndex.html.</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>...you can use the Iomega
Buz with Linux? Take a look at <a href="http://www.lysator.liu.se/~gz/buz/">http://www.lysator.liu.se/~gz/buz/</a>.
The Buz is a multimedia box that allows you to connect video and audio
inputs directly into your computer. At about $200, this is a pretty
inexpensive way to get into video editing. The bad news is that getting
it working on Linux requires some fairly technical understanding and willingness
to use command line tools (no graphical editing tools yet). This
is not for the faint of heart, the drivers required for this are somewhat
bleeding edge. You'll need to know how to compile kernels and install
drivers modules.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>...there is a <a href="http://linuxpower.org/display_item.phtml?id=120">good
article on producing movies on LinuxPower.org.</a> This article is
apparently going to be the start of a series of articles on producing movies
on Linux. I'll be interested to see what they say about transferring
the images to film/video (something I haven't figured out how to do on
Linux yet). This first article is fairly introductory and regular
readers of the Muse should be able to follow it quite easily. The
good news: it talks about all the tools we've talked about here in
the past - so you should already have the tools you need to get started!</font></font>
<p><font face="Arial,Helvetica"><font size=-1>...3D Life is a site devoted
to 3D character design and animation, linking many sites of artists who
deal in 3D characters. Very good gallery! <a href="http://www.danbbs.dk/~thomcold/3dlife/3dlife.htm">http://www.danbbs.dk/~thomcold/3dlife/3dlife.htm</a></font></font></blockquote>
<!--
-- Q and A Section
-->
<h2>
Q and A</h2>
<i><font face="Arial,Helvetica"><font size=-1>Q: Anyway, I've been
experimenting with BMRT and it seems much slower than POVRay, even without
using radiosity. Using BMRT's area lights are really slow (but probably
more accurate) compared to POV's, although the difference doesn't seem
noticeable.</font></font></i>
<p><font face="Arial,Helvetica"><font size=-1>A: BMRT renders with
2x2 forced oversampling by default, the adaptive oversampling it uses is
not very useful except for very high numbers of samples, because it uses
stochastic sampling. 2x2 oversampling is usually sufficient, but
slows it down a lot. As to radiosity, you can start out by setting
rsamples to 1, and most of the times the 20 or less iterations are more
than enough. So try</font></font>
<blockquote><tt><font size=-1>rendrib -samples 1 1 -radio 10 -rsamples
1 -res 640 480</font></tt></blockquote>
<font face="Arial,Helvetica"><font size=-1>for a test image. Or use
the non-standard Options</font></font>
<blockquote><tt><font size=-1>Option "radiosity" "steps" [10]</font></tt></blockquote>
<font face="Arial,Helvetica"><font size=-1>and</font></font>
<blockquote><tt><font size=-1>Option "radiosity" "minpatchsamples" [1]</font></tt></blockquote>
<font face="Arial,Helvetica"><font size=-1>If you notice radiosity artifacts
(heavy banding) on large uniformly colored areas, increase the rsamples
value (this chops each face into at least this number squared patches).
If your modeller supports this you may also set the subdivision on a per
object basis using the non-standard attribute</font></font>
<blockquote><tt><font size=-1>Attribute "radiosity" "patchsize" ps "elemsize"
es "minsize" ms</font></tt></blockquote>
<font face="Arial,Helvetica"><font size=-1>For details see the BMRT documentation.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Bernd Sieker <<a href="mailto:bsieker@techfak.uni-bielefeld.de">bsieker@techfak.uni-bielefeld.de</a>></font></font>
<br><font face="Arial,Helvetica"><font size=-1>From the IRTC-L mailing
list</font></font>
<p><i><font face="Arial,Helvetica"><font size=-1>Q. I have a simple
image I made with BMRT and would like to see how it would look illuminated
with radiosity. Does anyone have any tips on using the radiosity
settings with BMRT?</font></font></i>
<p><font face="Arial,Helvetica"><font size=-1>For simple scenes radiosity
is quite quick, and remember that it's not dependent on the image size.
If it takes too long you can exclude certain objects from the radiosity
calculations using the non-standard attribute</font></font>
<blockquote><tt><font size=-1>Attribute "radiosity" "zonal" zonalval</font></tt></blockquote>
<font face="Arial,Helvetica"><font size=-1>Bernd Sieker <<a href="mailto:bsieker@techfak.uni-bielefeld.de">bsieker@techfak.uni-bielefeld.de</a>></font></font>
<br><font face="Arial,Helvetica"><font size=-1>From the IRTC-L mailing
list</font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<h2>
Reader Mail</h2>
<font face="Arial,Helvetica"><font size=-1>Seth Burgess wrote:</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>Regarding the user
question [in last months <a href="http://www.thegimp.com">TheGimp.com</a>],
there was one:</font></font>
<br><font face="Arial,Helvetica"><font size=-1>2. can the space [that Gimp
Swap files] consume be limited?</font></font>
<p><font face="Arial,Helvetica"><font size=-1>You answered:</font></font>
<br><font face="Arial,Helvetica"><font size=-1>2. Reduce the number of
levels of undo. I'm not sure if they can be turned off or not - check
the Preferences dialog.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>However, if the user has
plenty of RAM, upping the tile cache size from 10MB to something larger
(say 64) should drastically reduce the swap file size as well.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>And there's the obvious -
work on smaller images.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Seth</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="mailto:sjburges@gimp.org">sjburges@gimp.org</a></font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse</font></b>:
Thanks Seth. I'm not sure why I didn't include that, but that's exactly
what I've done on my system. It's certainly faster working in memory
that with disk swap files.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Regarding the GRiNS port
to Linux (GRiNS is a Graphical SMIL editor - see Did You know in the June
1999 Muse), I asked Jack Jansen: are there any plans for a Linux
port at this time? I'd like to point my readers to resources on SMIL
for which they could make some use, and this would be an interesting start.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Jack replied:</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>There are definitely
plans for a Linux port, but no firm dates yet. The basic functionality
is indeed reasonably easy to port, but handling of audio and video is something
that still needs some investigation. And given that we have only
limited resources we have to prioritize the things we take on.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Jack Jansen</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="mailto:Jack.Jansen@oratrix.com">Jack.Jansen@oratrix.com</a></font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1><a href="mailto:30018675@snetme.cpg.com.au">Paul
Took</a> wrote</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>My name is paul
took, in Melbourne Australia. I recently started a course with interim
technology (formerly computer power) and came across Graphics Muse. I'm
considering doing a second course at another college which involves web
page design (HTML/Javascript etc.) and graphic design/animation (use of
Adobe, Photoshop etc.)</font></font>
<p><font face="Arial,Helvetica"><font size=-1>In your expert opinion: is
it worth doing a structured course like this or buying a couple of web
design books and learning at home??</font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1><b><font color="#993300">'Muse</font></b>:
This is highly dependent on your own motivation and learning habits.
I, personally, learn much more on my own than in a class, but often take
a class when just starting a new topic to get me pointed in the right direction
(like photography, which I just got into recently).</font></font>
<p><font face="Arial,Helvetica"><font size=-1>HTML is easy enough to learn
on your own - there really isn't that much too it. If you need to
learn a slew of specific applications it often helps to take a class (it's
often harder to learn to use the applications than just writing the HTML
yourself). Java is a language unto itself and I'm certain a structured
course would help. Design animation as a class covers a very broad
range of topics - colors, structures, paint and animation techniques, procedural
animation, etc. That's not a class, really - it's a whole degree.
Using Photoshop or some other specific tool is like what I said previously,
it helps to take a class if the tool is sufficiently complex. I don't
think Photoshop is hard to learn (the Gimp is easier - you could always
buy my book on how to use it, of course). But learning what buttons
do what functions in only a small part of the job. The bigger part
is how to use those buttons creatively to produce interesting effects,
sometimes to the point of being able to reproduce the effect quickly (like
drop shadows for logos, which is a very common requirement from clients)
and in the same manner each time.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>If you're just learning web
design for fun, or even for your business, and are confident in your own
ability to teach yourself new topics, then skip the class. But if,
like me, you find a little push in the right direction helps, then take
the structured class.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Of course, if it makes any
difference, I've never taken any classes on HTML or computer graphics.
It's all self taught (except for some minor OpenGL experience, but I never
really used what I learned).</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Hope that helps.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Now, on the subject of image
resolution and printing, I found this post from Brian Reynolds on one of
the Gimp mailing lists:</font></font>
<blockquote><font face="Arial,Helvetica"><font size=-1>David Fokos has
written a very good paper on creating half-tone digital negatives for contact
printing. You can find it at Bostick & Sullivan's web site at:</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.bostick-sullivan.com/Technical%20papers/Digital%20Info/Dave_Fokos/davetech.htm">http://www.bostick-sullivan.com/Technical%20papers/Digital%20Info/Dave_Fokos/davetech.htm</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Besides discussing all the
details about making negatives for contact printing, this paper has a very
good explanation of the resolution metrics (dpi, ppi, lpi) for the various
types of equipment used for digital input and output and how they relate
to each other. The paper assumes you are using Photoshop, but gives
general enough descriptions that you aren't tied to it (as opposed to another
book on digital negatives that assumes Photoshop is the only software available).</font></font>
<br><font face="Arial,Helvetica"><font size=-1>Brian Reynolds</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="mailto:reynolds@panix.com">reynolds@panix.com</a></font></font></blockquote>
<font face="Arial,Helvetica"><font size=-1>I read the paper and Brian is
right - you can apply the digital techniques David discusses to the Gimp
just fine. You might need a bit of background on photography for
this paper, but it's well worth the read.</font></font>
<p>
<hr NOSHADE WIDTH="100%">
<br><a NAME="webwonderings"></a><img SRC="gm/images/webwonderings.jpg" height=57 width=246>
<h2>
Interactive Management of Image Maps</h2>
<font face="Arial,Helvetica"><font size=-1>One of the tools lacking from
the Linux arsenal these days is a really good interactive Web page builder.
I use Netscape Composer for all my pages, but this lacks any sort of integrated
graphics editor. You can configure it to launch an external editor,
however, and this is where the ever popular <a href="http://www.gimp.org">Gimp</a>
comes in.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The Gimp is, of course, the
best raster image editor on Linux. Not only does it have support
for many different effects and filters, it also has a dynamically extendable
interface through the use of plug-ins. One of the latest plug-ins
to gain popular attention is the <a href="http://home-2.consunet.nl/~cb007736/imagemap.html">Image
Map</a> plug-in from <a href="mailto:lpeek.mrijk@consunet.nl">Maurits Rijk</a>.</font></font>
<table ALIGN=LEFT BORDER=0 CELLSPACING=0 CELLPADDING=8 NOSAVE >
<tr NOSAVE>
<td NOSAVE><img SRC="gm/images/imagemap-1.gif" height=508 width=395></td>
</tr>
<tr>
<td>
<center><b><font face="Arial,Helvetica">The Image Map plug-in, shown with
a sample image and the</font></b>
<br><b><font face="Arial,Helvetica">Areas List (the list of URL links)
window disabled.</font></b></center>
</td>
</tr>
</table>
<font face="Arial,Helvetica"><font size=-1>Image Maps, for those unfamiliar
with their use, are an HTML construct that allows an Web page author to
specify regions within a single image to be used as links to different
URLs. Regions can be specified using rectangular, oval and polygonal
coordinates. Both server and client side maps are possible, although
client-side image maps are the more popular of the two types. This
column uses a client-side image map for navigation at the top of the page
(upper left corner of the page, just below the Graphics Muse logo).
By providing a method of mapping the single image into multiple links,
image maps reduce the overhead that multiple images positioned using tables
would require.</font></font>
<p><font size=-1><font face="Arial,Helvetica">The current version of the
Image Map plug-in is 1.1.1. This version includes recent support
for HTML <i>onBlur</i> and <i>onFocus</i> tags. Although the interface
is fairly well designed, the program currently provides no documentation.
Building from source (which is how this plug-in is distributed) is simple
enough: just unpack it and type <i>make</i>. There shouldn't
be any editing of Makefiles or other configuration files necessary.
After compiling you can either do a <i>make install</i> or simply copy
the binary (named <b><font color="#CC6600">imagemap</font></b>) to your
</font><tt>$HOME/.gimp/plug-ins
</tt><font face="Arial,Helvetica">directory
and restart Gimp. Once installed, the plug-in can be accessed via
the <i>Filters->Misc</i> submenu of the Image Window menu.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The interface consists of
a scrollable window on the left and the set of URL links on the right.
The scrolled window is a full size copy of the original image. Two
menu bars are provided - one using traditional pull down text menus and
the other an icon based version of the same features. An additional
icon based menu of region shapes (rectangular, oval, polygonal and so forth)
runs along the left side. The icon menus are all detachable - you
can click on the rough edged left side of each and drag it out of the main
window, although what advantage this might provide I don't know.</font></font>
<table ALIGN=RIGHT BORDER=0 CELLSPACING=0 CELLPADDING=6 NOSAVE >
<tr NOSAVE>
<td NOSAVE>
<center><img SRC="gm/images/imagemap-2.jpg" height=35 width=34></center>
</td>
</tr>
<tr>
<td>
<center><b><font face="Arial,Helvetica">Grid</font></b>
<br><b><font face="Arial,Helvetica">Icon</font></b></center>
</td>
</tr>
</table>
<font face="Arial,Helvetica"><font size=-1>In order to start specifying
regions for the image map, you might first consider turning on the grid
lines. This can be done quickly using the Grid icon in the icon menu
bar, but you'll probably also want to adjust the granularity of the grid.
This can only be done by selecting Goodies->Grid Settings from the text
menus. This will open a dialog box where you can specify the width
and height of the grid boxes, the method for displaying the grids (lines,
crosses or hidden), an offset from the upper left corner in which to begin
the grid and, most importantly, whether region shapes are snapped to grid
intersections. This last item is what will make creating your image
maps rather quick and painless.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>[ <a href="./gm/webwonderings.html">More
Web Wonderings</a> ]</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="./gm/musings.html#Impress Followup">Impress
Follow-up</a></font></font></td>
</tr>
</table></center>
</td>
</tr>
</table>
<h2>
<b><font face="Arial,Helvetica"><font size=+1>Linux Video Choices: A review
of Xanim, MainView, MpegTV and RealVideo.</font></font></b></h2>
<font face="Arial,Helvetica"><font size=-1>I don't do much video work on
Linux yet. I have a sufficiently fast box for it, I just haven't
had much more than a passing interest in it since there aren't many video
editing tools available yet. Still, viewing animation's (in something
other than GIF format on a browser) or streaming video has become an important
part of the Internet in the past few months. So I thought I should
at least take a look at what tools are available from a viewers perspective.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Now, there are a probably
a couple dozen projects underway for viewing video and animations on Linux.
I can't review all of these, there just isn't enough time in the day to
do them justice. So I've chosen four viewers that I think represent
varying aspects of digital video as well as varying support for different
video formats. The four tools are <b><font color="#993300">Xanim</font></b>
by Mark Podlipec, <b><font color="#993300">MainView</font></b> by MainConcept,
<b><font color="#993300">MpegTV</font></b>
by MpegTV, and <b><font color="#993300">RealVideo</font></b> from RealNetworks.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>In order to test these I
decided to download a series of RealVideo, MPEG, and Quicktime files, both
with and without audio, and see how each tool that supports them performed.
For RealVideo and MpegTV, I used appropriate URLs. The test system
was configured with 256Mb of memory using a <a href="#truecolor">TrueColor
visual </a>under the Xi Graphics Accelerated X server with a Matrox Mystique
4Mb video card and the commercial Open Sound System drivers for a Generic
MAD16 Pro (OPTi 82C929) soundcard. For animation's or streaming video/audio
which were used in these tests and for which I know a URL, I have provided
links to the test files. I can't post the video files here since
the Linux Gazette (which is the main location for the Muse column) gets
distributed to a lot of places that wouldn't be happy downloading 2Mb+
video files.</font></font>
<p><b><font face="Arial,Helvetica">A note about file types</font></b>
<p><font face="Arial,Helvetica"><font size=-1>If you're not familiar with
the codec types, just look for animation files with suffices like .mov
and .anim( both are versions of Quicktime, I believe), .fli (FLI/FLC),
.ram, .rm and .rv (RealVideo files), and .mpg (MPEG animation's).</font></font>
<p><b><font face="Arial,Helvetica"><a href="http://xanim.va.pubnix.com/home.html">Xanim</a></font></b>
<br><font face="Arial,Helvetica"><font size=-1>Latest version: 2.80.1</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Long before the others arrived
on the scene, Mark Podlipec's xanim was serving up video files to the masses.
Supporting AVI, Quicktime, FLI/FLC, Amiga, and JFIF file formats along
with GIF and DL Animation's as well as a number of audio formats, the X
Windows System based xanim can play just about any popular animation files
you might find on the Internet.</font></font>
<br>
<br>
<table ALIGN=LEFT BORDER=0 CELLSPACING=0 CELLPADDING=6 NOSAVE >
<tr NOSAVE>
<td NOSAVE><img SRC="gm/images/xanim.gif" height=153 width=271></td>
</tr>
<tr>
<td>
<center><b><font face="Arial,Helvetica"><font size=-1>Xanim, playing an
E! Quicktime interview.</font></font></b></center>
</td>
</tr>
</table>
<font face="Arial,Helvetica"><font size=-1>Xanim is provided in source
format for the main engine, with binary dynamically loadable libraries
(DLLs) provided for various codecs for which the copyright owner would
only provide information if Mark signed an NDA. In a sense, I think
Mark's solution to the proprietary vs. open problem is probably not a bad
compromise. In any case, the source is portable to many Unix (and
other) platforms. Building the source is fairly easy for Linux systems.
Unfortunately the package doesn't support autoconf based compilation,
but I'm not one to complain much about that (considering my own XNotesPlus
doesn't support it either - who has time to learn all these tools?).
Mark provides a build based around imake, which isn't too bad a substitute
for autoconf. The Imakefile only needs one modification for building
on Linux - in section IVb add this line:</font></font>
<blockquote><tt><font size=-1>EXTRA_DEFINES = -I/usr/X11R6/include/X11</font></tt></blockquote>
<font size=-1><font face="Arial,Helvetica">This is necessary, even though
the Imakefile says it shouldn't be required, because Mark doesn't prefix
his use of the X header files with "X11/<header file>" but the standard
imake templates assume that applications do so. Since Mark apparently
does his builds on Linux too, the rest of the Imakefile should probably
work just fine as it is. You then run "</font><tt>xmkmf; make xanim</tt><font face="Arial,Helvetica">"
to build the program. Then just copy it to an appropriate directory,
such as </font><tt>/usr/local/bin</tt><font face="Arial,Helvetica">.
Installation, from build to running my first animation, took about 10 minutes.</font></font>
<p><font size=-1><font face="Arial,Helvetica">The interface for xanim is
rather small, but it supports starting, stopping, rewinding and audio levels.
You can step through a video by clicking various mouse buttons in the display
window. Most of the options supported by xanim are accessible only
from the command line. You can find what options are available using
the traditional </font><tt>--help</tt><font face="Arial,Helvetica"> command
line option. There is a remote interface available that allows external
programs to control xanim and I believe there are GTK, TK and KDE based
front ends to xanim now, although I didn't specifically look for them.
Note that there is no built-in help facility to xanim. You'll need
to read the documentation or visit the Web site for details. But
for most animation's, especially on systems with TrueColor visuals (i.e.
16.7 million color displays), you simply run "</font><tt>xanim <filename></tt><font face="Arial,Helvetica">".
Pretty straight forward, really.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Xanim played all 14 of the
videos I tried with absolutely no problem. I tested Quicktime, MPEG,
FLI and IFF animation's. There was little jitter or no obviously
skipped frames and the sound was perfectly synchronized with the animation's
which came with audio (which, as it turns out, was just the Quicktime files).
Tests were run in both TrueColor and 256 color modes. Xanim had no
problems mapping the full color videos to the lower bit planes. In
fact, it did a better job of doing it than I could using various command
line color related options. By default xanim will loop through the
animation indefinitely. You can change this behavior using command
line options.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>By supporting dynamic loading
of video codecs, Mark has made it easier for end users to add support for
any new codecs that might come along. Now you can simply download
the appropriate binary codec from his site, unpack it, and restart xanim.
Recompilation is no longer necessary. Despite it's apparent visible
simplicity, xanim is still the best all around video player for Linux.</font></font>
<p><b><font face="Arial,Helvetica"><a href="http://www.mainconcept.com">MainView</a></font></b>
<br><font face="Arial,Helvetica"><font size=-1>Version 2.06</font></font>
<p><font face="Arial,Helvetica"><font size=-1>In trying to figure out a
topic for this month's Musings, I started to look around for video editing
software. I'd heard a few packages were available, but had never
tried any of them. One package I did run across was a new commercial
package (currently freely available as a beta distribution) from a German
company called MainConcept. This package included a video display
tool called MainView.</font></font>
<table ALIGN=LEFT BORDER=0 CELLSPACING=0 CELLPADDING=6 NOSAVE >
<tr NOSAVE>
<td NOSAVE><img SRC="gm/images/mainview.jpg" HSPACE=6 VSPACE=10 height=217 width=210></td>
</tr>
<tr>
<td>
<center><b><font face="Arial,Helvetica">MainView, running an MTV </font></b>
<br><b><font face="Arial,Helvetica">sponsored clip of a Garbage </font></b>
<br><b><font face="Arial,Helvetica">video for their single "Happy".</font></b></center>
</td>
</tr>
</table>
<p><font face="Arial,Helvetica"><font size=-1>MainView is actually an external
viewer application to the larger MainActor Video Editing system.
It can, however, be run independently of MainActor. The interface
is even more sparse than xanim's, but doesn't appear as cramped.
Run time options can be accessed through a menu which you can open by right
button clicking with your mouse over the animation window. Options
include changing the speed of the animation and various audio options.
Audio, unfortunately, didn't work at all on any of the animation's I tried.
It always played very loud and completely distorted audio. I ended
up turning audio off after testing it on all the files for audio support
so I could continue testing video playback.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Video support is much better
than audio, fortunately. All 14 of the animation's I tried played
flawlessly under a TrueColor display. When I started MainView the
very first time, I noticed that it complained about requiring the XFree86
DGA (Direct Graphics Extension) extension, but still started anyway.
The extension, it turns out, is only needed if you want to run in full
screen mode. As long as you're not trying to do that, the video portion
of MainView works fairly well.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>One nice feature of MainView
is that it remembers the last directory you were in between sessions.
I like this because I can launch MainView from my FVWM2 GoodStuff bar and
have it be in a directory where I save animation files. MainView
will start by providing a file browser window from which you can select
an animation to view. It then closes the file browser and starts
the video playback window. There doesn't appear to be a way to return
to the file browser, however. That sure would make it easier to browse
through multiple video files without having to restart MainView each time.
MainView also doesn't automatically loop through videos. In fact,
I couldn't find a way from within MainView itself to get a video to loop.
MainActor does allow you to set a repeat count, but not an infinite loop.</font></font>
<br>
<table ALIGN=LEFT BORDER=0 CELLSPACING=0 CELLPADDING=6 NOSAVE >
<tr ALIGN=LEFT VALIGN=TOP NOSAVE>
<td NOSAVE><img SRC="gm/images/compare-2.jpg" VSPACE=10 height=217 width=210></td>
<td NOSAVE><img SRC="gm/images/compare-1.jpg" VSPACE=10 height=148 width=170>
<p><b><font face="Arial,Helvetica">The test frame displayed by </font></b>
<br><b><font face="Arial,Helvetica">xanim. The picture here
is</font></b>
<br><b><font face="Arial,Helvetica">a little less grainy than the</font></b>
<br><b><font face="Arial,Helvetica">MainView display.</font></b></td>
</tr>
<tr NOSAVE>
<td COLSPAN="2" NOSAVE><b><font face="Arial,Helvetica">MainView's version
of the test frame. The contrast is a little better</font></b>
<br><b><font face="Arial,Helvetica">here - you can make out more
detail, but at the expense of image</font></b>
<br><b><font face="Arial,Helvetica">quality, I'd say.</font></b></td>
</tr>
</table>
<font size=-1><font face="Arial,Helvetica">MainActor, the Video Editor
package for which MainView works, does attempt to provide online help which
it tries to launch in a Netscape Window. The HTML help files had
been installed with the RPM distribution, but MainActor failed to get Netscape
to open the HTML files. It simply started a new instance of Netscape
(even if you already had a version of Netscape running). I had to
give a </font><tt>file: </tt><font face="Arial,Helvetica">URL to open the
files manually.</font></font>
<p><b><font face="Arial,Helvetica">Comparing MainView and Xanim under a
256 color display</font></b>
<p><font face="Arial,Helvetica"><font size=-1>Here are screenshots of both
xanim and MainView displaying the same frame of the Garbage video under
a 256 color display. The xanim version appears to have a little better
dithering than MainView, but if you watch the entire video with both players
you can hardly tell the difference.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Although you can currently
download this product for free, MainView and MainActor are commercial products.
The price for the product listed on the company's Web site could only be
found under a Press Release - $80US for the package without documentation,
$115US with documentation plus some other extras. The current version
is distributed in binary and is available for Linux on x86 platforms only
and only in RPM format. Recently, MainConcept announced that MainActor
would be bundled with the <a href="http://www.linuxmedialabs.com">Linux
Media Labs </a> LML33 Video Capture Card. To my knowledge, this
is the first bundling of a Linux oriented hardware peripheral with a Linux
specific application. Things are looking up for off-the-shelf solutions.</font></font>
<br>
<br>
<p><b><font face="Arial,Helvetica"><a href="http://www.mpegtv.com/">MpegTV</a></font></b>
<br><font face="Arial,Helvetica"><font size=-1>Version 1.0.9.4</font></font>
<p><font face="Arial,Helvetica"><font size=-1>As the name implies, MpegTV
only plays MPEG animation files. However, unlike the previous two
applications, MpegTV can handle both static and streaming files, both locally
and across a network. This program actually comes in two pieces -
the command line oriented <i>mtvp</i> program and it's GUI interface, <i>mtv</i>.
The latter requires the XForms library, which is not shipped with any Linux
platforms currently but is free for private use and can be downloaded from
the XForms Web site. For certain features you may also need the SDL
library as well. Both can be found via links on the MpegTV download
page. Installation instructions are not included with the downloaded
package. You have to go to the MpegTV web site to get them.</font></font>
<br>
<table ALIGN=LEFT BORDER=0 CELLSPACING=0 CELLPADDING=6 NOSAVE >
<tr NOSAVE>
<td COLSPAN="2" NOSAVE><img SRC="gm/images/mpegtv-1.gif" height=121 width=499></td>
</tr>
<tr NOSAVE>
<td NOSAVE><img SRC="gm/images/mpegtv-2.gif" height=250 width=328></td>
<td><b><font face="Arial,Helvetica">The MpegTV UI. The </font></b>
<br><b><font face="Arial,Helvetica">control panel's volume </font></b>
<br><b><font face="Arial,Helvetica">controls work well with </font></b>
<br><b><font face="Arial,Helvetica">the OSS sound system I </font></b>
<br><b><font face="Arial,Helvetica">have installed. The video </font></b>
<br><b><font face="Arial,Helvetica">playback, however, was </font></b>
<br><b><font face="Arial,Helvetica">a bit grainy. This was </font></b>
<br><b><font face="Arial,Helvetica">probably the fault of the </font></b>
<br><b><font face="Arial,Helvetica">recording and not the </font></b>
<br><b><font face="Arial,Helvetica">player, since the other </font></b>
<br><b><font face="Arial,Helvetica">MPEG files I tried didn't </font></b>
<br><b><font face="Arial,Helvetica">seem to have this </font></b>
<br><b><font face="Arial,Helvetica">problem.</font></b></td>
</tr>
</table>
<p><font face="Arial,Helvetica"><font size=-1>MpegTV is shareware for personal
use, with a shareware price of $10. It requires a commercial license
for commercial use. The version I downloaded would pop up the usual
annoying "please register" window common for shareware applications.
Personally, this doesn't bug me much since I don't have any problem with
people trying to sell their software. If it's worth it, I pay for
it.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Unfortunately for MpegTV,
this dialog did pose a problem. Half way through the Star Wars trailer
(which I downloaded from their site as part of my testing) the Registration
dialog popped up. At that point the sound quit and the main control
window wasn't redrawn and no longer accepted user input. The video,
however, kept playing. The only way to exit the program after this
was to use "kill -9" on the mtv and mtvp processes. Since I had to
run the program multiple times to try to get screen shots and try various
features, this bug became a real annoyance. I'm hoping that the registered
version doesn't do this (since you should never see the registration screen).</font></font>
<p><font face="Arial,Helvetica"><font size=-1>SDL - <a href="http://www.devolution.com/~slouken/SDL/">Simple
Direct Media Layer</a> - is the same library used by Loki for their
port of Civilization: Call To Power. It provides a layer between
X applications and various low level multimedia API's, including XFree86's
DGA extension. I suspect you'll be seeing this library being used,
and required by, quite a few applications in the future. For MpegTV,
SDL is only required to run MpegTV in full screen mode. One problem
I had with this was that the SDL installation tool installs the library
under /usr/local/lib by default (you can change this during the installation
process). MpegTV requires that the library be installed under /usr/X11R6/lib.
I installed the library under /usr/local/lib and added symbolic links under
/usr/X11R6/lib. This should have worked, but for some reason MpegTV
failed to load the libraries. As far as I can tell, there is nothing
wrong with the symbolic links so I suspect that the library
<b><u>must</u></b>
really be under /usr/X11R6/lib in order to work with MpegTV.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>the company's Web site offered
two test animation's, a short animation of bouncing boxes and an old Star
Wars trailer. Both of these played just fine. There is also
a link to a site with more links to MPEG animation's on the net.
I bounced around a few of those but couldn't find anything more interesting
than the 3 other MPEG animation's I already had. MpegTV played them
all just fine (if you ignore the Registration dialog problem). Additionally,
MpegTV can also play Video CDs, such as the video portion of music CDs.
It doesn't play DVD, however. Although my RH 5.2 system appears to
have the VCD patch applied, and xreadvcd does appear to read the video
cd contents, I couldn't get MpegTV to read the CD nor could I get xreadvcd
to write the MPEG stream to a file. There is something wrong with
my kernel configuration, apparently, so I couldn't really test the Video
CD support in MpegTV.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Interestingly enough, after
downloading the two test MPEG files from the MpegTV site and trying them
with mtv, I then went back and tried them with xanim. I couldn't
play either of them correctly with xanim. I then tried some of the
other mpg files I had used with xanim under mtv. They all played
about the same except for one - monopoly.mpg. Under xanim this played
rather slow, with distinct stoppage between frames. Under mtv this
played just fine. The frames flowed by seamlessly. So, mtv
appears to deal with MPEG files better than xanim, although mtv appears
to have some nasty bugs, at least in the unregistered version.</font></font>
<p><font size=-1><font face="Arial,Helvetica">MpegTV will play MPEG streams
direct from the Internet if you supply a URL on the command line or through
the </font><tt>Play From URL </tt><font face="Arial,Helvetica">option from
the File menu in the control window. I tried this with one site but
found the stream to be too slow to play interactively. After the
20 minute download, which did play while it was being downloaded even though
it looked like only one frame every so often was playing, I tried to replay
it and save it. I could do neither. I don't know if this is
a limitation in the unregistered version or not, however.</font></font>
<br>
<p><b><font face="Arial,Helvetica"><a href="http://www.real.com">RealVideo</a></font></b>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.real.com/products/player/linux.html">Linux
G2 Beta version</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>One of my favorite tools
to be ported to Linux is the RealVideo G2 player from RealNetworks.
While working for Samsung in Dallas, and forced to use an NT box for email,
I got hooked watching and listening to Bloomberg TV financial reports.
I was able to do this only because I was stuck with that NT box (which
sat to one side and collected dust most of the time) and G2 didn't run
on my Solaris box. Now that I'm working from home, I'm thrilled to
be able to view this same content from my Linux box.</font></font>
<table ALIGN=LEFT BORDER=0 CELLSPACING=0 CELLPADDING=6 NOSAVE >
<tr NOSAVE>
<td NOSAVE><img SRC="gm/images/g2.gif" height=442 width=515></td>
</tr>
<tr>
<td>
<center><b><font face="Arial,Helvetica">The G2 Player, running a clip from
the Wild, Wild West. Note that the video </font></b>
<br><b><font face="Arial,Helvetica">window includes links to other movies.
These are all part of the new SMIL </font></b>
<br><b><font face="Arial,Helvetica">(Synchronized Multimedia Integration
Language) page design supported by the G2.</font></b></center>
</td>
</tr>
</table>
<p><font size=-1><font face="Arial,Helvetica">The G2 player can play any
of the streaming video and audio formats from RealNetworks. This
includes the older .ram and .rm audio files as well as the new Synchronized
Multimedia Integration Language - SMIL, yet another of the HTML-style formatting
languages - files, suffixed with </font><b><tt>.smi</tt></b><font face="Arial,Helvetica">.
It doesn't play MPEG or any of the formats the other players support, however.
So you need to find sites that support the RealNetworks formats.
Fortunately, these sites abound on the Internet. RealNetworks was
one of the first to provide a usable streaming media format for the Internet
and it caught on very fast. Many news sites support RealVideo these
days.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The Linux version is still
in beta, at least to my knowledge. I've had no serious problems with
it although sometimes the video window can get visual artifacts when you
switch sites. It also had a few problems with refreshing the video
window when another window had partially hidden the G2 player, and then
the other window was moved away. These problems only happened with
static parts of the video window - any animation's forced window updates
and so they appeared to work just fine.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Playing of the streams has
been pretty good. I think I have more problems with network delays
than with playing the streams. The G2 player comes with a host of
options to configure the player for best performance. It can work
behind firewalls if you're network administrator permits passing the right
port numbers.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The player itself is made
up of a primary video display window surrounded by associated controls.
The NT version includes a scrolling icon-based playlist on the left of
the video window but the Linux version lacks this currently. I don't
think there are any serious technical reason they can't add it in the future,
though. Information about the clip currently playing can be scrolled
through the Clip Info window, or this can be disabled to help increase
performance just a bit. The audio support is very good - RealNetworks
chose to allow skipped video frames in exchange for a fluid audio performance.
I find that appealing as I often just listen to the streams while doing
other work.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Streaming video is still
a jumpy affair. You don't get the smooth frame-by-frame animation's
you get when playing an MPEG or Quicktime file directly from your hard
disk. But the format does support moving anywhere within the stream
at any time. I can jump to the middle and pick up playing from that
point if I choose. Or I can rewind or start over at any point within
the currently playing stream. And I don't have to wait for the entire
file to download in order to do this. I still think streaming audio
is a better media for this technology due to general limitations in bandwidth
to the user, but once we all have higher speed connections, streaming video
will offer choices that TV and cable never could.</font></font>
<p><b><font face="Arial,Helvetica">Other tools</font></b>
<p><font face="Arial,Helvetica"><font size=-1>One other player I tried
was <a href="http://www.freeyellow.com/members4/heroine/">XMovie</a>.
This is a program that runs off of a library built to run Quicktime movies.
It's part of a series of tools that include another video editor called
BCast2000. However, there are licensing limitations with Quicktime
that XMovie can't get around. I don't know if that was the reason
or not, but XMovie couldn't play any of the animation's I tried.
Whatever codecs it supports, it's not the ones being used in the video
files I found on the Internet.</font></font>
<p><b><font face="Arial,Helvetica">Places to find video files online</font></b>
<p><font face="Arial,Helvetica"><font size=-1>You can always check many
of the entertainment sites online, such as <a href="http://www.eonline.com">E!
Online</a>, and <a href="http://www.comcentral.com/download/index.shtml">Comedy
Central's</a> download site. Additionally, you can find clips and
links to other online sources of video files at <a href="http://www.uslink.net/~edgerton/index.html">Jesse's
Movies</a>, and <a href="http://dir.yahoo.com/Entertainment/Movies_and_Film/Multimedia/Video_Clips/">Yahoo!'s
set of movie clip links.</a> Streaming MPEG and MPEG files sites
can be found at <a href="http://www.mpeg.org/MPEG/bitstreams.html">MPEG.org's
MPEG Bitstreams page</a>. RealVideo clips can be found at the
<a href="http://www.real.com/showcase/realplayer/index.html">RealVideo
Showcase</a> site and a their <a href="http://realguide.real.com/">Real
Guide</a> site.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Keep in mind that playing
movies like this doesn't require huge amounts of hardware - a 32Mb Pentium
133 should work just fine, although some animation's may play a little
slow and audio might not sync all that well. But you certainly don't
need the 256Mb of memory I used, nor do you need the latest CPU.
And you certainly don't need a 3D accelerated video card. These animation's
are basically all just a series of individual raster images played very
fast. It's like using a flip book of pictures - the faster you can
flip through the pages, the faster the animation appears to work.
Except on computers and with the right player, you have more control over
the speed.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>I have to admit, I'm still
a big fan of xanim over any of the other players I've tried. For
95% of the animation's out there it's just the right tool for the job.
But it doesn't, to my knowledge, support streaming video/audio. Since
I don't have cable television anymore (what a waste of money that is),
I get my news and information online. I find myself listening and
even watching streaming audio and video with RealVideo quite often these
days. Since the information streams, I can leave it running while
I work and just listen to the bits and pieces of what ever interests me.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Like whether or not my shares
of Disney are ever going to go back into positive territory. Maybe
if they released all their films as streaming MPEGs....</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Since I've always been a
fan of visual media, I find the opportunity to build my own webcasts rather
enticing. Streaming video and audio are the best future for online
video because they don't require the user to download the entire file to
play it. At some point in the future, I hope to be able to put together
some live interviews for webcasting, but I have to investigate what that
will cost and where it can be hosted. In the mean time, at least
I have the right tools to view other webcasts and online video.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>[ <a href="./gm/musings.html">More
Musings</a> ]</font></font>
<p><a NAME="truecolor"></a><font face="Arial,Helvetica"><font size=-1>A
TrueColor Visual is just the X Windows System terminology for a display
that can handle up to 16.7 million colors. Most modern video cards
can handle this, especially if you have 2Mb or more of video memory on
the card.</font></font>
<br>
<table BORDER=0 COLS=1 WIDTH="100%" BGCOLOR="#000000" NOSAVE >
<tr NOSAVE>
<td NOSAVE><img SRC="../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>
<table BORDER=0 COLS=2 WIDTH="100%" NOSAVE >
<tr NOSAVE>
<td NOSAVE><font face="Arial,Helvetica"><font size=-1>Online Magazines
and News sources </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://www.linuxtoday.com">Linux
Today</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 </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 </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>. </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: A return to
3D Modellers.</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>© 1999
<a href="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</a></font></font></div>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Michael Hammel <BR>
Published in Issue 43 of <i>Linux Gazette</i>, July 1999</H5></center>
<!-- =============================================================
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)
============================================================= !-->
<br><img SRC="gm/images/mews.jpg" height=50 width=245>
<table WIDTH="100%" >
<tr>
<td ALIGN=RIGHT WIDTH="100%"><font size=-2>© 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="#Recent Blender News from June 6 1999">Recent
Blender News from June 6 1999</a></font></font></td>
</tr>
<tr>
<td><font face="Arial,Helvetica"><font size=-1> <a href="#MpegTV Player (mtv) 1.0.9.8">MpegTV
Player (mtv) 1.0.9.8</a></font></font></td>
</tr>
<tr NOSAVE>
<td NOSAVE><font face="Arial,Helvetica"><font size=-1> <a href="#gPhoto 0.3.3">gPhoto
0.3.3</a></font></font></td>
</tr>
<tr NOSAVE>
<td ALIGN=LEFT VALIGN=TOP NOSAVE><font face="Arial,Helvetica"><font size=-1> <a href="#GIMP Imagemap plug-in 1.1.1">GIMP
Imagemap plug-in 1.1.1</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>
</td>
</tr>
</table>
<p>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="Recent Blender News from June 6 1999"></a><b><font face="Arial,Helvetica"><font size=+1>Recent
Blender News from June 6 1999</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>- Blender at SIGGRAPH 1999</font></font>
<br><font face="Arial,Helvetica"><font size=-1>NaN will give the first
public presentation of Blender at the world's most famous CG show, this
year in LA, august 10-11-12. Visitors will get a sneak preview
of the 2.0 Game-Blender.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http:/www.siggraph.org/s99/">http:/www.siggraph.org/s99/</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>- Complete Key features</font></font>
<br><font face="Arial,Helvetica"><font size=-1>Blender 1.63 now has radiosity,
environment mapping and DXF output included as C-key features. Version
1.64 will have a text editor (free versions too). We expect to introduce
Python scripting in V 1.65.</font></font>
<br><font face="Arial,Helvetica"><font size=-1>Check out <a href="http:/www.blender.nl/complete/">http:/www.blender.nl/complete/</a></font></font>
<p><font face="Arial,Helvetica"><font size=-1>- Linux 3D h/w acceleration
coming?</font></font>
<br><font face="Arial,Helvetica"><font size=-1>We hope to demonstrate the
first accelerated Linux Blenders at Sig '99. There's still not a
working version here... patience!</font></font>
<p><font face="Arial,Helvetica"><font size=-1>-Ton-</font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="MpegTV Player (mtv) 1.0.9.8"></a><b><font face="Arial,Helvetica"><font size=+1>MpegTV
Player (mtv) 1.0.9.8</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Kerberos - June 27th
1999, 15:06 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>MpegTV Player (mtv) is a
real-time software MPEG-1 Video+Audio Player and VCD Player. It supports
full screen mode, can play from file, pipe, network URL, or Video CD.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.mpegtv.com/download.html">http://www.mpegtv.com/download.html</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="gPhoto 0.3.3"></a><b><font face="Arial,Helvetica"><font size=+1>gPhoto
0.3.3</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Paul S Jenner - June
28th 1999, 12:40 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>gPhoto enables you to take
a photo from any digital camera, load it onto your PC running a free operating
system like GNU/Linux, print it, email it, put it on your web site, save
it on your storage media in popular graphics formats or just view it on
your monitor. gPhoto sports a new HTML engine that allows the creation
of gallery themes (HTML templates with special tags) making publishing
images to the world wide web a snap. A directory browse mode is implemented
making it easy to create an HTML gallery from images already on your computer.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Various bug fixes</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://www.gphoto.org/">http://www.gphoto.org/</a></font></font>
<br>
<hr SIZE=1 NOSHADE WIDTH="100%">
<br><a NAME="GIMP Imagemap plug-in 1.1.1"></a><b><font face="Arial,Helvetica"><font size=+1>GIMP
Imagemap plug-in 1.1.1</font></font></b>
<br><font face="Arial,Helvetica"><font size=-1> Maurits Rijk - June
28th 1999, 12:38 EST</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The GIMP Imagemap plug-in
enables The GIMP (GNU Image Manipulation Program) to create clickable imagemaps
in CSIM, CERN or NCSA format.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Changes: Fixed serious bug
that made version 1.1 segfault at start-up.</font></font>
<br><font face="Arial,Helvetica"><font size=-1><a href="http://home-2.consunet.nl/~cb007736/imagemap.html">http://home-2.consunet.nl/~cb007736/imagemap.html</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>© 1999 by <a href="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</a></font></td>
</tr>
</table>
<!-- =============================================================
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)
============================================================= !-->
<br><img SRC="gm/images/musings.jpg" height=50 width=245>
<table WIDTH="100%" >
<tr>
<td ALIGN=RIGHT WIDTH="100%"><font size=-2>© 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="#Impress Followup">Impress
Follow-up</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="Impress Followup"></a><b><font face="Arial,Helvetica"><font size=+1>Impress
Follow-up</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>Chris Cox dropped me a note
to clarify a few points from my Impress article last month:</font></font>
<p><font face="Arial,Helvetica"><font size=-1>My permanent email is <a href="mailto:cjcox@acm.org">cjcox@acm.org,</a>
not ccox@acm.org (hope ccox@acm.org doesn't get too much mail).</font></font>
<p><font face="Arial,Helvetica"><font size=-1>The Dinosaur is Steve Cowden's
dinosaur he did using Aldus Freehand. It's copyrighted....I tried
to contact him about using it....hope there's no problem. In the
impress_complete package there's a tool called epsfilt and one called pstoedit
(you can actually download the latest copy from its home site....it has
my mods already). You can take EPS to Tk using these tools:</font></font>
<blockquote><tt><font size=-1>$ epsfilt <myfile.ai >myfile.eps
# imperfect tool, may have to hand edit!</font></tt>
<br><tt><font size=-1>$ pstoedit -f tk myfile.eps myfile.tk</font></tt></blockquote>
<font face="Arial,Helvetica"><font size=-1>Then just open the myfile.tk
in ImPress. ImPress doesn't handle clipping regions though....so
the neat dithering stuff you find in commercial packages won't work.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Larry Ewing's penguin was
converted to Postscript by somebody (?). I have since imported a
better one by using Adobe Streamline running under Wine to convert the
actual raster penguin to vector format. The postscript one scales
better than the one converted from the raster image though.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Another thing you might want
to try (though people question its practical implications) is to download
the Tcl/Tk plugin from <a href="http://www.scriptics.com">www.scriptics.com
</a>and
install it into a Netscape browser under Linux. Then edit the plugin.cfg
file as indicated in the documentation to allow you to load a tclet from
<a href="http://www.ntlug.org">www.ntlug.org
</a>and
you can then execute the demo showing a document being retrieved off the
web for editing inside a web browser. It can be saved to any local
disk (which could be a samba mounted area for example). (there are
some Netscape bugs which prevent "saving" from working real well)</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Thanks for taking the time
to look at it,</font></font>
<br><font face="Arial,Helvetica"><font size=-1>Chris Cox</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>© 1999 by <a href="mailto:mjhammel@graphics-muse.org">Michael
J. Hammel</a></font></td>
</tr>
</table>
<!-- =============================================================
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)
============================================================= !-->
<br><img SRC="gm/images/webwonderings.jpg" height=50 width=245>
<table WIDTH="100%" >
<tr>
<td ALIGN=RIGHT WIDTH="100%"><font size=-2>© 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>
<font face="Arial,Helvetica"><font size=-1>With the grid turned on you
can create rectangular, oval or polygonal areas that are snapped to the
grid. With any of these shaped areas you can edit the attributes
of the area using the Edit->Edit Area Info menu option. This option
opens a dialog with three pages: Link, Shape, and JavaScript.
The Link page allows you to specify what URL the region should link to.
With the 1.1 release, you can now drag from Netscape's Location icon directly
into the URL field of this page and the link will be dropped in for you.</font></font>
<table ALIGN=LEFT BORDER=0 CELLSPACING=0 CELLPADDING=6 NOSAVE >
<tr NOSAVE>
<td NOSAVE><img SRC="gm/images/imagemap-3.gif" height=261 width=209></td>
</tr>
<tr>
<td>
<center><b><font face="Arial,Helvetica"><font size=-1>The Selection portion
of the main</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>dialog. Notice
the URL #'s. The</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>higher the number, the
higher the</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>precedence that area
takes for</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>regions that overlap.</font></font></b></center>
</td>
</tr>
</table>
<font face="Arial,Helvetica"><font size=-1>The Shape page will allow you
to edit attributes of the shape itself - height, width, location of vertices,
radius and so forth. The JavaScript page allows you to specify 4
types of JavaScript event handlers: onBlur, onFocus, onMouseOver
and onMouseOut. The text input regions for these is a little small
- only one text line. But the line can go on (apparently) indefinitely.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>To create a new rectangular
or circular shaped area, click once to drag the shape then click again
to anchor it. Doing this opens the area settings dialog so you can
specify the URL to associate with the area. The polygonal area shape
works similarly, except that a double click is required to end the shape
and open the attributes dialog. Additionally, with polygonal shapes
a left mouse button click will anchor a new vertices for the shape.
A right mouse button click will delete the vertices in reverse order.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>To edit the shapes, click
on their URLs in the Selection window or click on the shapes outline while
the Select Existing Area button (the button with the arrow along the left
side of the dialog window) is enabled. Note that when you edit the
shapes size by dragging one of the handles on the shapes outline that the
snap to grid function is no longer in effect. I don't know if this
was intentional or not, however. Don't be suprised to see this change
to match the current grid settings in later releases.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Once you've set the URLs
for shapes, you can change their positions in the map. The lower
in the list the higher precedence that area takes. This is important
for areas which overlap. Notice in the example of the Selection window
that there are 4 areas defined. Area 4 will take precedence over
area 3 any place the two areas overlap.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Now that you have a number
of areas defined, what does the HTML code for this image map look like?
Here is the source for the example at left:</font></font>
<blockquote><tt><font size=-1><IMG SRC="/home/mjhammel/src/graphics/scenes/stock/ttu-ontour-97.pnm"
WIDTH=300 HEIGHT=359 BORDER=0 USEMAP="#"></font></tt>
<p><tt><font size=-1><MAP NAME=""></font></tt>
<br><tt><font size=-1><!-- #$-:Image Map file created by GIMP Imagemap
Plugin --></font></tt>
<br><tt><font size=-1><!-- #$-:GIMP Imagemap Plugin by Maurits Rijk
--></font></tt>
<br><tt><font size=-1><!-- #$-:Please do not edit lines starting with
"#$" --></font></tt>
<br><tt><font size=-1><!-- #$VERSION:1.1 --></font></tt>
<br><tt><font size=-1><!-- #$AUTHOR:Michael J. Hammel --></font></tt>
<br><tt><font size=-1><AREA SHAPE="RECT" COORDS="15,15,285,135" HREF="mailto:thisguy@home.org"></font></tt>
<br><tt><font size=-1><AREA SHAPE="CIRCLE" COORDS="75,135,67" HREF="http://blah.org"></font></tt>
<br><tt><font size=-1><AREA SHAPE="RECT" COORDS="60,285,255,345" HREF="http://blah.blah.net"></font></tt>
<br><tt><font size=-1><AREA SHAPE="POLY" COORDS="285,15,195,15,195,60"
HREF="ftp://somewhere.com"></font></tt>
<br><tt><font size=-1><AREA SHAPE="DEFAULT" HREF="http://www.graphics-muse.org/blah/ttu-ontour-98.jpg"></font></tt>
<br><tt><font size=-1></MAP></font></tt></blockquote>
<font face="Arial,Helvetica"><font size=-1>Notice that the source images
URL is taken to be the path to the image I've opened in the Gimp.
I looked around the plug-in but couldn't find a way to change this.
You apparently have to edit the HTML code manually. There is an option
to set a default URL, using the Info icon, but you can't change the source
reference for the image. One you have this HTML output to a
file you'll need to find some way of importing it into your real HTML file.
The Image Map plug-in does not currently allow you to place this code directly
into an existing HTML file.</font></font>
<p><font face="Arial,Helvetica"><font size=-1>Unfortunately, I found, along
with quite a few bugs with the 1.1.1 release, that the Image Map plug-in
doesn't do many of the things I would like. First, the polygonal
area tool is really difficult to use. For some reason, it won't accept
my double clicks to end a polygon shape definition unless I double click
and don't move my mouse for a split second afterwards. If I double
click and move too quickly I get all sorts of line drawings from the last
vertices created to the current mouse location. It looks something
like a star burst shape. In any case, it's not what was expected.
The unwanted star burst design will go away if you cover and then uncover
the Image Map window with another window (forcing a window update for the
Image Map plug-in). However, getting out of that mode seems to require
backing completely out of the polygon by right mouse clicking until all
vertices have been removed. At this point, the extra line drawing
seems to stop.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Another nit pick of mine
is that the up and down buttons for URLs moves the selected item to the
top or bottom of the list, not up or down one list item. I feel a
little like I'm playing the Towers of Hanoi trying to arrange the URLs.
And I can't specify the path to the image source without hand editing the
saved HTML that the plug-in outputs to file.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Zoom takes a little while
to work - it zooms the whole image and doesn't appear to let you specify
the area to focus in on. I suspect it uses it's own zooming algorithm
and not the Gimp's since the Gimp's zoom is considerably faster.
Or maybe it just takes longer to recompute image map area shapes.
I also don't like the fact that changes to width, height or other shape
attributes don't automatically update the display. I think automatic
updates should probably be a user configurable preference.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>As for bugs, there were a
number that were difficult to recreate. Aside from the problem with
the polygons and double clicking, I noticed at one point that the
height of my first rectangular selection, as displayed in the settings
dialog, was only 1 pixel high. But most of the bugs I found were
minor and self correcting. None seemed to cause the final HTML output
to be corrupted in any way.</font></font><font face="Arial,Helvetica"><font size=-1></font></font>
<p><font face="Arial,Helvetica"><font size=-1>Although I might prefer changes
to certain aspects of the interface, I find Maurits' Image Map plug-in
for the Gimp to be stable, easy to use and produces syntactically correct
HTML. If you do a fair amount of image map work, or even if you'd
just like to create one just for grins, you owe it to yourself to take
a look at this plug-in. It may just easy your life just a bit.</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>© 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">Into the Belly of the Beast</font></H1>
<H4>By <a href="mailto:normj@aa.net">Norman M. Jacobowitz</a></H4>
</center>
<P> <HR> <P>
<EM>ESR goes to Microsoft ... and lives to tell about it!</EM>
<p>It was not a normal day here in Seattle. Eggs were balancing on
end. The city was shrouded in a most un-summerlike mist and fog. And
ESR was speaking at Microsoft.
<p>That's right. Eric S. Raymond was the invited guest of Microsoft
Corporation, and gave a speech to their research group. June 21st was
indeed a freaky Summer Solstice day here in the Northwest.
<p>Eric went into the belly of the beast ... and lives to tell about
it. He was kind enough to share his impressions of what went on, via
this e-mail interview.
<p><i><STRONG>Q:</STRONG> Can you give us a general overview of how and why you came to
be invited to speak at Microsoft's Redmond campus?</i>
<p><STRONG>A:</STRONG> I was invited there by a member of one of Microsoft's research
groups that I met at PC Forum 99. She seemed OK, and offered an
inducement far more interesting than a speaker's fee (about which more
below) so I accepted.
<p><i><STRONG>Q:</STRONG> Were you offered a tour of the campus, and/or were you
introduced to any of the "big name" executives of Microsoft?</i>
<p><STRONG>A:</STRONG> No campus tour, no big names. Though I suppose they might have been
watching the video feed....
<p><i><STRONG>Q:</STRONG> What was the venue like, and how many people showed up for the
event?</i>
<p><STRONG>A:</STRONG> It was a small auditorium. It looked to me like about 200 people
showed up; it was standing room only, with people stacked against the
walls and sitting in the aisles.
<p><i><STRONG>Q:</STRONG> What were the general themes of your speech/presentation? How
were they received? </i>
<p><STRONG>A:</STRONG> All the usual ones for anyone who has heard my talks. Better
reliability through peer review, how Linux beat Brook's Law, open-source
project ownership customs and the reputation incentive, the eight
open-source business models, scaling and complexity effects.
<p><i><STRONG>Q:</STRONG> A confidential informant tells me the event was broadcast to
all 20,000-plus Redmond employees of Microsoft over their internal
network.
This same informant also says a fair percentage of those in actual
attendance became somewhat belligerent towards you and your Open Source
message. Is this true? If so, would you mind elaborating on which parts
of your presentation they took issue with? For example, were they most
perturbed at the insinuation that Open Source products like Linux are
better in the long run than proprietary systems like MS Windows 2000?</i>
<p><STRONG>A:</STRONG> Yes, there were a few belligerent types. Typical was one guy who
observed that Oracle has a partial open-source strategy, then
triumphantly announced that Microsoft's earnings per employee are
several times Oracle's, as though this were a conclusive argument on the
technical issues.
<p>It was kind of amusing, really, fielding brickbats from
testosterone-pumped twentysomethings for whom money and Microsoft's
survival are so central that they have trouble grokking that anyone
can truly think outside that box. On some subjects, their brains just
shut down -- the style reminded me a lot of the anonymous cowards on
Slashdot.
<p>One of the Microsoft people, who knew the faces in the audience,
observed to me afterwards that the people from the NT 2000 development
group were particularly defensive. So, yes, I think my insinuations
were perturbing.
<p><i><STRONG>Q:</STRONG> Did you notice an overall "mood" or general level of
receptivity held by attendees towards what you had to say?</i>
<p><STRONG>A:</STRONG> More positive than I had expected. The flamers were a minority, and
they occasionally got stepped on by other audience members.
<p><i><STRONG>Q:</STRONG> Anything else interesting to report from your Microsoft
visit?</i>
<p><STRONG>A:</STRONG> Yes. One of its co-authors gave me an autographed copy of
"The Unix-Hater's Handbook" :-) But that doesn't quite mean
what you think it does -- I had been one of the manuscript reviewers.
<p><i><STRONG>Q:</STRONG> Of course, many may gather that perhaps the most fun and
exciting aspect of your visit was your dinner with science/speculative
fiction authors Greg Bear and Neal Stephenson. Was that as fun as it
sounds to the rest of us?</i>
<p><STRONG>A:</STRONG> Sure was. Those dinner plans were what seduced me into going to
Redmond, and I wasn't disappointed. George Dyson (author of "Darwin
Among the Machines", and Esther Dyson's brother) was there too. We
spoke
of many things; science fiction and AI and Turing-computability and
cryptography. Oh, and Neal solicited my advice on the proper firearm
for dealing with cougars while hiking with his kids.
<P><HR><!-- ***************************************************** -->
<p>Belligerent Win2k developers. An outspoken advocate of Open Source.
Put them together in a room, and what do you get? Rumor has it there
were fireworks. Who knows what galactic alignments were knocked off
kilter -- it was the Solstice, after all. We'll never know exactly what
happened over there, at least until a sympathetic mole over in Redmond
e-mails us a RealVideo/MPEG copy of ESR's speech. Illiad's <a
href="http://www.userfriendly.org/cartoons/archives/99jun/19990620.html">
User Friendly</a> offers us some food for thought.
<p>Thanks very much to <a href="http://www.tuxedo.org/~esr">Eric
S. Raymond</a> for sharing his Microsoft experience with the Linux/Open Source
community.
<P>
<HR> <!-- ********************************************************* -->
<A NAME=update></A>
<h2>Update!</h2>
<p><a href="http://weber.u.washington.edu/~gfish">Matthew Dockrey</a>
offers his eyewitness account of ESR's Microsoft speech.
<p>Monday morning, a friend of mine at Microsoft mentioned he got a
mailing about the ESR presentation and thought he would swing by. Being
an opportunist, I convinced him to sneak me in. Luckily, they weren't
checking badges at any point. Considering how much they value trade
secrets, their security is really quite lax.
<p>The presentation was in a conference room in Building 31 (Research).
It was far too small for the turnout, although my friend reminded me that
this was supposed to be for just the research group. Getting there 20
minutes late after missing the bus, we were left trying to catch a peek
through the crowd. There was a live video feed as well, and we ended up
watching the first half from 10 meters down the hall on someone's
computer.
<p>The audience was a very odd mix. Most of the people seemed very
serious and were even taking notes. I did notice someone with a KMFMS
t-shirt, though. Some were very obviously hostile towards the Open
Source approach, but not all. (Not everyone who works at Microsoft
actually uses their products at home, remember.) On the way to the
presentation, I saw an office with <i>Linux Journal</i>s and
O'Reilly Linux manuals laying about, so not everyone there is ignoring us.
<p>Overall, it was a good presentation. I was generally impressed with
ESR's skills as an orator. He spent most of the time giving a
sociological explanation for why OSS works, or exists at all. Nothing
all that revolutionary (to us): Open Source is a variant of the
"gift-culture" that often forms when groups of people are not
greatly
bounded by material limitations (such as coastal Pacific Native
Americans and really rich people) and therefore take to giving away
wealth as demonstration of their worth. He also detailed the culture of
Open Source projects, the general patterns and taboos (a project is
owned by someone; you don't fork the project unless you have very good
reasons, etc.) and compared this to territoriality, especially the way we
view land ownership. You can homestead land (start a project), buy
land (have the previous project owner give it to you) or squat on unused
land (take over a long-idle project).
<p>I felt the presentation lost a bit of its focus when he moved from
the abstract sociological viewpoint to actual justification for Open
Source in a business model. I think this was largely because he based
some of his arguments on sweeping claims about OSS being generally
better than proprietary, and the audience challenged this. His point
would probably have been better made without being quite so
confrontational here.
<p>He did make a very good point that 95% of software development is for
internal use only, although there was an amusing moment when his survey of
this particular audience did not reflect this. He also touched on the
fact that most revenue from software is based in support, not the
original sale. He mentioned what happened with Zope, but failed to
pursue it. Of all the business arguments for OSS (and I admit I lean
towards RMS's moralism over ESR's practicality), this seems to be the
most relevant.
<p>Overall, it was a very good presentation, and the audience seemed
generally receptive to his ideas. There were some good-natured laughs on
both sides, such as ESR admitting that most of the gift cultures had been
destroyed by disease, or ESR stating a desire to live in a world "where
software doesn't suck" as a valid reason for working on an OSS project. I
found it particularly amusing when, halfway through the presentation, someone
started handing out freshly printed copies of Sunday's <a
href="http://www.userfriendly.org/cartoons/archives/99jun/19990620.html">
User Friendly</a> comic.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Norman M. Jacobowitz <BR>
Published in Issue 43 of <i>Linux Gazette</i>, July 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">XFce3: Now 100% Free Software!</font></H1>
<H4>By <a href="mailto:normj@aa.net">Norman M. Jacobowitz</a></H4>
</center>
<P> <HR> <P>
<EM>The long-awaited and much-needed "third choice" in Desktop
Environments for X ...</EM>
<p>One of the biggest debates in the Free/Open Source Software community
over the past year has been over KDE and GNOME. Perhaps the major
bone of contention between the two camps was the issue of licensing,
specifically the proprietary nature of the Qt library used by KDE.
<p>During these debates and outright flame wars, an alternative was
lurking in the background. Called XFce, it was a lighter-weight
desktop environment. One could reasonably consider it a middle-ground
solution: more configurable than running a window manager such as
FVWM, but not the behemoth of KDE or the then-nascent GNOME.
Unfortunately, XFce suffered from the same flaw -- a fatal flaw in the
eyes of many -- as KDE: XFce was based on the Xforms library, a
proprietary widget set for the X Window System.
<p>Well, there is now some very good news for Free Software enthusiasts!
Olivier Fourdan, author of XFce, has taken the dramatic step of
rewriting the whole project, using the GIMP toolkit. Finally, we have
what many consider the "holy grail" of desktop environments for X:
a lightweight, highly configurable, reliable, attractive and
<b>100% free</b> alternative to KDE and GNOME.
<p>Recently, Olivier was kind enough to agree to an e-mail interview
and discuss these important developments.
<h3>Q: When and why did you first decide to write XFce?</h3>
<p>A: In late 1996, I started to work as a help desk analyst. As part of
this job, I was working with HP X terms running CDE. I really loved that
environment, and tried to find something similar on Linux.
Unfortunately, the only thing I found was the commercial port of the
real CDE to Linux, and it was really much too expensive for me.
<p>Then in early 1997, I started to play with XForms and fdesign, the
GUI designer. One real cool thing about fdesign is its ability to
generate compilable C code from scratch. The XFce project had started,
but as usual, I really didn't think it could go that far! I just started
coding a very basic toolbar with Xforms, and when I released the first
version on SunSITE (now called Metalab), people started asking for more
and more features.
<p>Initially, XFce was just the toolbar, without the window manager and
all the goodies. In 1998, I released XFce 2.x with xfwm, the window
manager. The rest of the goodies came from release to release ...
<h3>Q: What compelled you to rewrite XFce using the GIMP toolkit? Was
it for technical reasons, licensing reasons, or some mix of both?</h3>
<p>A: I was thinking of porting XFce to GTK+ (the GIMP toolkit) for a long
time. When the GNOME project started, somebody from the team sent me a
mail from Mexico telling me they were starting a new desktop project
with the GIMP toolkit and were looking for such a toolbar.
Unfortunately, I did not know anything about GTK+ at that time and my
skills in X programming were not as good as they are today.
<p>Last year, when I released XFce 2.x, I talked with the people from
Red Hat to see if they could use XFce in their distribution, but they
did not want Xforms-based applications because of the license the
library uses (it's free for private use and free applications, but the
source code is not available).
<p>As time passed, more and more projects were being based on the GIMP
toolkit. I had to make something really new with XFce, include drag and
drop, native language support, improve configurability, etc. So, at the
end of March 1999, I decided to start XFce 3.0 and rewrite it entirely
from scratch with GTK+.
<p>Now I'm really glad I did that, XFce 3.0 is still fast and stable,
and it features all I wanted for XFce, under the GNU General Public
License, based exclusively on GNU tools (NLS, autoconf, automake, etc.)
<h3>Q: Do you know which Linux distributions ship with XFce? And do
you know of any that will now ship with XFce3?</h3>
<p>A: I think Red Hat and SuSE both ship XFce 2.x on their additional
software packages, and Kevin Donnely has made a package for Debian. But
still, as XFce 2.x was based on Xforms, none of these distributions
include XFce in their base system. I know FreeBSD also provides XFce 2.x
as an additional package.
<p>XFce 3.0 is now all GPL, but I guess it is still much too recent
to be included in any distribution -- although I really hope some
distribution will include XFce 3.0 in their base packages, among other
choices for the user.
<h3>Q: What do you think of GNOME and KDE, in general? Can you briefly
summarize the relative merits of each versus XFce3?</h3>
<p>A: KDE is the first attempt to provide Linux with a fully integrated
desktop environment. I've been impressed by KDE 1.1! Unfortunately, KDE
is too close to Microsoft Windows; I really don't like the "Start
menu" style. Sometimes you have to go through several submenus to
launch what you want (but this is a matter of taste). Moreover, KDE uses a
lot of system resources. For example, I was not able to use KDE on an X
terminal through a 10MB local network, whereas XFce works like a charm in
such a configuration.
<p>I don't know much about GNOME, as I could not make it work on my
computer. But what I saw from it was very close to KDE, so the same
remarks apply to GNOME. It seems to be so close to KDE that I don't
understand what the need was for two similar environments on Linux.
<p>I believe the desktop environment should be made to increase
user productivity. Therefore, the goal is to keep most system resources for
the applications, and not to consume all memory and CPU usage with the
desktop environment. For example, does KDE or GNOME fit on a 1.44 MB
floppy?
<p>GNOME and KDE both provide a lot more integrated tools than XFce
(although most of the time, separate tools are more powerful than the
integrated ones; for example, I believe NEdit is better than any
other Kedit or whatever). The exception is KFM, the KDE File Manager,
which is far ahead the best program of all in KDE, in my opinion.
<p>Some people say XFce is for the little systems, while GNOME and KDE
are for bigger ones. I don't agree; the more memory and CPU you save for
your applications, the better it is. And if you still want to use KDE
and GNOME tools, because they are convenient for you, you can use them
under XFce, as its window manager is supposed to be compatible with
these applications, too.
<h3>Q: XFce3 -- could it be your new desktop environment?</h3>
<p>A: If you are looking for an alternative to KDE or GNOME, I strongly
recommend investigating XFce3. It's small and efficient. It's
functional and attractive. And now, it's 100% GPL software. Olivier
has just completed an upgrade to the XFce main page. It includes links
for downloading mirrors and the HTML on-line manual for XFce3.
<p>Hopefully, all of the distributions will start shipping XFce as an
optional desktop environment. It would be even better if at least one
of the distributions would ship XFce3 as the default option. The Free
Software community is famous for giving users a choice. XFce3 is now a
fantastic choice for people who want a free option other than KDE or
GNOME. By shipping XFce3 as a default desktop, perhaps one of the
smaller, more up-and-coming distributions could make itself stand out
from the KDE/GNOME crowd. XFce is a natural fit for any distribution
trying to make itself known as a faster, lighter-weight Linux option.
<p>In any case, XFce3 is worth a look.
<h2>XFce3 Resources</h2>
<p>Olivier Fourdan's <a href="http://www.xfce.org">XFce3 home page</a>,
with the download section and on-line manual. Available are sources and
pre-compiled platforms for Linux and other platforms.
<p>The <a href "http://www.gtk.org/">GIMP Tool Kit home page</a>, with
important information about this free library.
<p>Special thanks go to Chuck Mead of <a
href="http://www.moongroup.com/">Moongroup Consulting</a>, who hosts and
maintains XFCE.org and the XFce Mailing List. Highly recommended
whether you are a novice or expert user. To subscribe, email
<a
href="mailto:xfce-list-request@xfce.org">xfce-list-request@xfce.org</a>
with the word "subscribe" (no quotes) in the subject line. Chuck Mead
is also a board member of the <a href="http://www.lpi.org/"> Linux
Professional Institute</a>.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Norman M. Jacobowitz <BR>
Published in Issue 43 of <i>Linux Gazette</i>, July 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Mark's Kickstart Examples</font></H1>
<H4>By <a href="mailto:mark@gtltd.com">Mark Nielsen</A></H4>
</CENTER>
<P> <HR>
<EM>If this document changes, it will be available at
<a href="http://www.tcu-inc.com">The Computer Underground</a>:
<a href="http://www.tcu-inc.com/mark/articles/Kickstart.html">
http://www.tcu-inc.com/mark/articles/Kickstart.html</a>.</EM>
<HR>
<ol>
<li><a href="#Resources"> Resources.</a>
<li><a href="#What"> What is kickstart?</a>
<li><a href="#Gripes">Gripes and Complaints</a>
<li><a href="#Example"> Cdrom upgrade example.</a>
<li><a href="#ftp"> Advanced -- Ftp example</a>
<li><a href="#conclusion">Conclusion -- it is good</a>
<li><a href="#script"> My perl script</a>
</ol>
<hr>
<a name="Resources"></a>
<h1> Resources.</h1>
<p>
The Kickstart HOWTO is very very good.
<ol>
<li> On the Redhat 6.0 cdrom, look at /doc/README.ks</li>
<li> man mkkickstart</li>
<li>http://www.redhat.com/corp/support/manuals/RHL-6.0-Manual/install-guide/manual/doc129.html [31-Jul-2001: document has been removed. -Ed.]</li>
<li> <a href="http://www.redhat.com/mirrors/LDP/HOWTO/KickStart-HOWTO-6.html">
http://www.redhat.com/mirrors/LDP/HOWTO/KickStart-HOWTO-6.html
</a></li>
<li> <a href="http://redhat.google.com/redhat?q=kickstart&search=redhat">
http://redhat.google.com/redhat?q=kickstart&search=redhat</a></li>
</ol>
<hr>
<a name="What"></a>
<h1> What is Kickstart?</h1>
<p>
One note,
I think it would be a good
if someone made a follow-up article for other Linux distributions. I would
be more than happy to help.
<p>
KickStart for RedHat makes it so you can do a quick installation of RedHat 6.0
without having to go through all the installation menus. It automates it
for you from start to finish (assuming nothing goofs up in between). This
is handy for multiple installations.
All
you have to do is create a "ks.cfg" file on the RedHat 6.0 boot disk. Then
boot off of the disk, type in the command "linux ks=floppy" on the first screen,
and if you are lucky, when it starts the installation process, it should
be able to grab that file and do the whole installation for you.
<p>
Here are the key points you need to be aware of,
<ol>
<li> If you don't have a bootdisk for RedHat 6.0, you need to make one.
Either use "rawrite" that comes on a RedHat 6.0 cd while in DOS, or mount the
cd in Linux and assuming you mounted the cd at /mnt/cdrom and you have
a floppy disk in (that doesn't have anything important on it),
<br> cd /mnt/cdrom/images
<br> dd if=boot.img of=/dev/fd0
<br> ## OR if you are installing off the net
<br> dd if=bootnet.img of=/dev/fd0
<li> The RedHat 6.0 boot disk is formatted as an msdos disk, thus you can
copy the "ks.cfg" file to it in Windoze or in Linux. If you need to
mount the floppy disk in Linux, try,
<br> mkdir -p /mnt/floppy
<br> mount -t msdos /dev/fd0 /mnt/floppy
<li> Kickstart can be installed using a cdrom, over the net through
ftp or nfs, and for multiple computers you can use DHCP. It has other features
as well. For this example, we will use a static ip addresses.
<li> It is assumed we are using standard IDE hard drives and cdroms. If you
have SCSI devices, or other weird devices, you will have to modify the
kickstart file so that it will work.
<li> Something weird happened on one of my installs. After installing
RedHat 60, I tried to do an upgrade and somehow it found over 100 megs
of programs to install as an upgrade even though I didn't do anything to
the system. Weird. I did it again, and it installed 115 packages which
had a total of 112 megs. I don't think it had to install those rpms again,
but that it was an automatic thing with the upgrade option , whether or
not you have those
rpms installed.
</ol>
<hr>
<a name="Gripes"></a>
<h1> Gripes and Complaints</h1>
Well, I have some gripes and complaints. Overall, the kickstart disk is pretty
cool and has improved since 5.2, but still, it seems a little braindead
or it doesn't give you the absolute power you need sometimes.
I want the ability to shoot myself in the foot if I want to. It might sound
weird, but here are my points:
<ol>
<li> I couldn't find a "select all rpms" option. This makes it annoying
since I have to list all the rpms. Perhaps I was blind, but I
didn't find that option.
<li> I can't tell it to force a graphics card and monitor settings with
a certain resolution. This is annoying. Xconfigurator doesn't work
for me half the time, and I need to configure Xwindows after an
installation. An easy way to do this, in a manual installation,
is to set the computer to
VGA 16 and to install the drivers for the true card later. If you
set it to VGA 16 and it thinks it is something else, kickstart will
error and stop the installation process and ask you for more info.
<li> I wish I could force the name of the computer so that it doesn't
stop and ask you what the name of the computer should be if it doesn't
find it in the DNS server. I would like the ability to shoot myself
in the foot and put in incorrect settings just because I want to.
<li> It is pretty stupid about making Linux partitions. It only wants
to see one primary partition and to put everything else into
logical partitions. This is silly especially in multi-boot systems.
It just grabs the rest of the hard drive space after the primary
partition and puts it all into one extended partition. I would like
the ability to specify primary or logical partitions.
It would be
nice if someone were to help make it so you can create a script
which would automate the commands for fdisk. Perhaps there is
and I just don't know about it.
<li> Is there a way to tell it to use a partition that is already defined?
It seems as though it only can use the partitions that it creates. It
would be nice if I could define the partitions ahead of time,
and in the kickstart disk tell it which partitions go to which
directories.
</ol>
Don't get me wrong, kickstart is a cool way of doing things, I just would
like to see it brought to a different level where it is "very" cool. Cool =
give me all the power to shoot myself in the foot just so I can see what
happens. A little bit of pain never hurts anyone. Also, I am not a real
expert at Kickstart, so perhaps I just didn't catch some of the options I
am griping about. I have only been using it for about 2 months at the time
of this document.
<hr>
<a name="Example"></a>
<h1> Cdrom upgrade example</h1>
<p>
Copy what is between the lines to a file called "ks.cfg" to your boot disk.
Then, when you get to the
first screen of the Linux installation, type "linux ks=floppy". Also,
before you do this, make sure the BIOS in your computer is set to boot
off of the floppy drive.
<br>
<pre>
# Copy this file as "ks.cfg" to the boot disk that comes with
# RedHat 6.0. Or make your own boot disk. Anyways, the
# bootdisk is formatted msdos, so you can use a Windows
# computer to copy this file to it. Also, when the prompt
# comes up after you boot off of the floppy disk, type
# linux ks=floppy
# and press enter.
# This is just the configuration you need to do an upgrade using a cdrom.
#
#
### Choose the most popular language in the world.
### This always upsets the French.
lang en
### Tell it to use the cdrom to get the rpms
cdrom
### Tell it to use a us keyboard
keyboard us
### Tell it this is an upgrade and not a regular install
upgrade
### Tell it to install Lilo at the master boot record
lilo --location mbr
%post
echo "Hey dude, this is an example of a post install command using echo."
echo "You probably won't be able to see it though if perl isn't executed."
PATH=$PATH;/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
export PATH
ldconfig
perl -e '$A = 50; print "\nSleeping for 20 seconds. Test variable = $A\n"'
perl -e 'sleep 20'
</pre>
<br>
<hr>
<a name="ftp"></a>
<h1> An installation over ftp</h1>
<p>
Well, this configuration uses ftp, and if you wanted to use nfs,
you could comment
the ftp option and uncomment the nfs option. All you need is a floppy
drive and a network card. Makes things a little easier if you can cut
out a cdrom drive in each of your computers. Also, use a 100 mbit network.
My installations using ftp were actually faster than installing off of
the cdrom when I had a 100 mbit network. A 40 speed cdrom still isn't as
good as a fast network with a few computers. A 100 mbit hub is really
cheap these days.
<p>
#----------
<pre>
# Copy this file as "ks.cfg" to the boot disk that comes with
# RedHat 6.0. Or make your own boot disk. Anyways, the
# bootdisk is formatted msdos, so you can use a Windows
# computer to copy this file to it. Also, when the prompt
# comes up after you boot off of the floppy disk, type
# linux ks=floppy
# and press enter.
### Choose the most popular language in the world.
### This always upsets the French.
lang en
### Tell it what the ethernet cards settings should be
### If your nameserver 10.0.1.15 doesn't exist or doesn't
### have 10.0.1.21 listed in it, it will ask you for a name.
network --bootproto static --ip 10.0.1.10 --netmask 255.255.255.0 --gateway 10.0.1.15 --nameserver 10.0.1.15
### Uncomment this if you have nfs setup on the server
### If so, comment the "url" line.
### If you decide to use an nfs server, make sure you
### put "/home/ftp/RedHat60" in your /etc/exports file.
# nfs --server 10.0.1.15 --dir /home/ftp/RedHat60
### Make sure /home/ftp/RedHat60 exists on the server
### Also, have the cdrom mounted to /home/ftp/RedHat60 on the server.
### You can do this with
### mkdir -p /home/ftp/RedHat60
### mount /dev/cdrom /home/ftp/RedHat60
### In case you don't have a nameserver, use numbers for the url
url --url ftp://10.0.1.15/RedHat60
### Tell it to use the cdrom to get the rpms
# cdrom
### Tell it to use an Intel 10/100 EtherExpress ethernet Card
device ethernet eepro100
### Tell it to use a us keyboard
keyboard us
### Tell it to blow away the master boot record on the hard drive
zerombr yes
### Tell it to do a dumb move and blow away all partitions
clearpart --all
### Make a swap partition, and unfortunately, this will go on a
### logical partition.
part swap --size 100
### It will make a primary partition for root, 2 gigs
### I couldn't find a command to check for bad sectors. Is there one?
### I don't think "grow" will work here, unfortunately
part / --size 2000
### Make a directory /OtherDir which is at least 1 gig and grows
### to fill out the rest of the hard drive
### Since "Kickstart" is literally an unintelligent program,
### it will put this partition on a logical partition
### even though there are plenty of primary partitions to use.
part /Backups --size 1000 --grow
### Tell it to use a MicroSoft compatible mouse
mouse --kickstart microsoft --device ttyS1
### Let it know we are doing an install and not an upgrade
install
### Tell the timezone we are in
timezone --utc US/Eastern
### Tell it to use standard VGA 16, but sometimes it croaks
### at this point and asks you anyways to select a card
### I really wish you could force to install for a particular
### card so that you can "configure" Xwindows after installation
### Xconfigurator gets it wrong %50 of the time for my cards
xconfig --server XF86_VGA16
#### Give it a dumb root password
rootpw MyPassword
#### Tell it to use shadow passwording
auth --useshadow
### Tell it to install Lilo at the master boot record
lilo --location mbr
### Now let us install packages, is there a simple command for all?
%packages
### Select the packages to install, I think this is all of them
### Unlike the installation program which only installs one X Server,
### my options installs all of them in case you switch video cards,
### which I do a lot.
@ Base
@ Printer Support
@ X Window System
@ GNOME
@ KDE
@ Mail/WWW/News Tools
@ DOS/Windows Connectivity
@ File Managers
@ Graphics Manipulation
@ Console Games
@ X Games
@ Console Multimedia
@ X multimedia support
@ Networked Workstation
@ Dialup Workstation
@ News Server
@ NFS Server
@ SMB (Samba) Connectivity
@ IPX/Netware(tm) Connectivity
@ Anonymous FTP Server
@ Web Server
@ DNS Name Server
@ Postgres (SQL) Server
@ Network Management Workstation
@ TeX Document Formatting
@ Emacs
@ Emacs with X windows
@ C Development
@ Development Libraries
@ C++ Development
@ X Development
@ GNOME Development
@ Kernel Development
@ Extra Documentation
AfterStep
AfterStep-APPS
AnotherLevel
ElectricFence
GXedit
ImageMagick
ImageMagick-devel
MAKEDEV
ORBit
ORBit-devel
SVGATextMode
SysVinit
WindowMaker
X11R6-contrib
XFree86-100dpi-fonts
XFree86
XFree86-3DLabs
XFree86-75dpi-fonts
XFree86-8514
XFree86-AGX
XFree86-FBDev
XFree86-I128
XFree86-ISO8859-2
XFree86-ISO8859-2-100dpi-fonts
XFree86-ISO8859-2-75dpi-fonts
XFree86-ISO8859-2-Type1-fonts
XFree86-ISO8859-9-100dpi-fonts
XFree86-ISO8859-9
XFree86-ISO8859-9-75dpi-fonts
XFree86-Mach32
XFree86-Mach64
XFree86-Mach8
XFree86-Mono
XFree86-P9000
XFree86-S3
XFree86-S3V
XFree86-SVGA
XFree86-VGA16
XFree86-W32
XFree86-XF86Setup
XFree86-Xnest
XFree86-Xvfb
XFree86-cyrillic-fonts
XFree86-devel
XFree86-doc
XFree86-libs
XFree86-xfs
Xaw3d
Xaw3d-devel
Xconfigurator
adjtimex
aktion
am-utils
anonftp
apache
apache-devel
apmd
arpwatch
ash
at
audiofile
audiofile-devel
aumix
authconfig
autoconf
autofs
automake
awesfx
basesystem
bash
bash2
bash2-doc
bc
bdflush
bin86
bind
bind-devel
bind-utils
binutils
bison
blt
bootparamd
byacc
bzip2
caching-nameserver
cdecl
cdp
chkconfig
chkfontpath
cleanfeed
comanche
compat-binutils
compat-egcs
compat-egcs-c++
compat-egcs-g77
compat-egcs-objc
compat-glibc
compat-libs
comsat
console-tools
control-center
control-center-devel
control-panel
cpio
cpp
cproto
cracklib
cracklib-dicts
crontabs
ctags
cvs
cxhextris
desktop-backgrounds
dev
dhcp
dhcpcd
dialog
diffstat
diffutils
dip
dosemu
dosemu-freedos
dump
e2fsprogs
e2fsprogs-devel
ed
ee
efax
egcs
egcs-c++
egcs-g77
egcs-objc
eject
elm
emacs
emacs-X11
emacs-el
emacs-leim
emacs-nox
enlightenment
enlightenment-conf
enscript
esound
esound-devel
etcskel
exmh
expect
ext2ed
faces
faces-devel
faces-xface
faq
fbset
fetchmail
fetchmailconf
file
filesystem
fileutils
findutils
finger
flex
fnlib
fnlib-devel
fortune-mod
freetype
freetype-devel
ftp
fvwm
fvwm2
fvwm2-icons
fwhois
gated
gawk
gd
gd-devel
gdb
gdbm
gdbm-devel
gdm
gedit
gedit-devel
genromfs
gettext
getty_ps
gftp
ghostscript
ghostscript-fonts
giftrans
gimp
gimp-data-extras
gimp-devel
gimp-libgimp
gimp-manual
git
glib
glib-devel
glib10
glibc
glibc-devel
glibc-profile
gmc
gmp
gmp-devel
gnome-audio
gnome-audio-extra
gnome-core
gnome-core-devel
gnome-games
gnome-games-devel
gnome-libs
gnome-libs-devel
gnome-linuxconf
gnome-media
gnome-objc
gnome-objc-devel
gnome-pim
gnome-pim-devel
gnome-users-guide
gnome-utils
gnorpm
gnotepad+
gnuchess
gnumeric
gnuplot
gperf
gpm
gpm-devel
gqview
grep
groff
groff-gxditview
gsl
gtk+
gtk+-devel
gtk+10
gtk-engines
gtop
guavac
guile
guile-devel
gv
gzip
gzip
hdparm
helptool
howto
howto-chinese
howto-croatian
howto-french
howto-german
howto-greek
howto-html
howto-indonesian
howto-italian
howto-japanese
howto-korean
howto-polish
howto-serbian
howto-sgml
howto-slovenian
howto-spanish
howto-swedish
howto-turkish
ical
imap
imlib
imlib-cfgeditor
imlib-devel
indent
indexhtml
inews
info
initscripts
inn
inn-devel
install-guide
intimed
ipchains
ipxutils
ircii
isapnptools
isicom
ispell
itcl
jed
jed-common
jed-xjed
joe
kaffe
kbdconfig
kdeadmin
kdebase
kdegames
kdegraphics
kdelibs
kdemultimedia
kdenetwork
kdesupport
kdeutils
kernel
kernel
kernel
kernel-BOOT
kernel-doc
kernel-headers
kernel-ibcs
kernel-pcmcia-cs
kernel-smp
kernel-smp
kernel-smp
kernel-source
kernelcfg
knfsd
knfsd-clients
korganizer
kpilot
kpppload
kterm
ld.so
ldconfig
less
lha
libPropList
libc
libelf
libghttp
libghttp-devel
libgr
libgr-devel
libgr-progs
libgtop
libgtop-devel
libgtop-examples
libjpeg
libjpeg-devel
libjpeg6a
libpcap
libpng
libpng-devel
libstdc++
libtermcap
libtermcap-devel
libtiff
libtiff-devel
libtool
libungif
libungif-devel
libungif-progs
libxml
libxml-devel
lilo
linuxconf
linuxconf-devel
logrotate
losetup
lout
lout-doc
lpg
lpr
lrzsz
lslk
lsof
ltrace
lynx
m4
macutils
mailcap
mailx
make
man
man-pages
mars-nwe
mawk
mc
mcserv
metamail
mgetty
mgetty-sendfax
mgetty-viewfax
mgetty-voice
mikmod
mingetty
minicom
mkbootdisk
mkdosfs-ygg
mkinitrd
mkisofs
mkkickstart
mktemp
mkxauth
mod_perl
mod_php
mod_php3
modemtool
modutils
mount
mouseconfig
mpage
mpg123
mt-st
mtools
multimedia
mutt
mxp
nag
nc
ncftp
ncompress
ncpfs
ncurses
ncurses-devel
ncurses3
net-tools
netcfg
netkit-base
netscape-common
netscape-communicator
netscape-navigator
newt
newt-devel
nmh
nscd
ntsysv
open
p2c
p2c-devel
pam
passwd
patch
pciutils
pdksh
perl
perl-MD5
pidentd
pilot-link
pilot-link-devel
pine
playmidi
playmidi-X11
pmake
pmake-customs
popt
portmap
postgresql
postgresql-clients
postgresql-devel
ppp
printtool
procinfo
procmail
procps
procps-X11
psacct
psmisc
pump
pwdb
pygnome
pygtk
python
python-devel
python-docs
pythonlib
qt
qt-devel
quota
raidtools
rcs
rdate
rdist
readline
readline-devel
redhat-logos
redhat-release
rgrep
rhl-alpha-install-addend-en
rhl-getting-started-guide-en
rhl-install-guide-en
rhmask
rhs-hwdiag
rhs-printfilters
rhsound
rmt
rootfiles
routed
rpm
rpm-devel
rsh
rsync
rusers
rwall
rwho
rxvt
sag
samba
sash
screen
sed
sendmail
sendmail-cf
sendmail-doc
setconsole
setserial
setup
setuptool
sgml-tools
sh-utils
shadow-utils
shapecfg
sharutils
slang
slang-devel
sliplogin
slocate
slrn
slrn-pull
sndconfig
sox
sox-devel
specspo
squid
stat
statserial
strace
svgalib
svgalib-devel
swatch
switchdesk
switchdesk-gnome
switchdesk-kde
symlinks
sysklogd
talk
taper
tar
tcl
tclx
tcp_wrappers
tcpdump
tcsh
telnet
termcap
tetex
tetex-afm
tetex-doc
tetex-dvilj
tetex-dvips
tetex-latex
tetex-xdvi
texinfo
textutils
tftp
time
timeconfig
timed
timetool
tin
tix
tk
tkinter
tksysv
tmpwatch
traceroute
transfig
tree
trn
trojka
tunelp
ucd-snmp
ucd-snmp-devel
ucd-snmp-utils
umb-scheme
unarj
units
unzip
urlview
urw-fonts
usermode
usernet
utempter
util-linux
uucp
vim-X11
vim-common
vim-enhanced
vim-minimal
vixie-cron
vlock
w3c-libwww
w3c-libwww-apps
w3c-libwww-devel
wget
which
wmakerconf
wmconfig
words
wu-ftpd
x11amp
x11amp-devel
x3270
xanim
xbanner
xbill
xboard
xboing
xchat
xcpustate
xdaliclock
xdosemu
xearth
xfig
xfishtank
xfm
xgammon
xinitrc
xjewel
xlispstat
xloadimage
xlockmore
xmailbox
xmorph
xntp3
xosview
xpaint
xpat2
xpdf
xpilot
xpm
xpm-devel
xpuzzles
xrn
xscreensaver
xsysinfo
xtoolwait
xtrojka
xwpick
xxgdb
yp-tools
ypbind
ypserv
ytalk
zgv
zip
zlib
zlib-devel
zsh
### Anything after %post gets interpreted as a post install command
### and will be chrooted to the mount point of "/" for the
### new installation
%post
# add another nameserver
echo "nameserver 10.0.1.10" >> /etc/resolv.conf
echo "10.0.1.10 server.local server" >> /etc/resolv.conf
</pre>
<hr>
<a name="conclusion"></a>
<h1> Conclusion -- it is good</h1>
I think the RedHat Kickstart stuff is good. I never did find out if the
other distributions have it, didn't have enough time. Oh well. It still needs
a lot of work to make it a really cool way of doing installations. The
problem is, instead of just bitching about it, if it needs work, and you like
it, contribute to the cause and help develop kickstart for RedHat or for
any other Linux distribution. I wrote this article, now, you
help out and contact the RedHat folks or other people to make the process
even more cool!
<p>
Overall, I give Kickstart method a "B" for 6.0, and a "C" for the 5.2
version. It is cool compared to the corrupted commercial alternative which
forces you to reboot 10 times before it is done installing. The potential
for Linux is amazing compared to commercial closed sourced alternatives.
When software is written not because of profit but because it is cool
and/or because people want it done right,
the long term potential far outweighs the short-term
profit-minded mentality of people who cannot write good software
or who just
want things done "just to get it to work". Kickstart has the potential to
reduce the overall cost of consulting and the time it takes to install Linux
systems on a mass scale (which benefits the novice and expert
computer consultant). It is funny to watch commercial companies who are
trying to emulate what Linux and other UNIX systems can do. I see commercial
products out there which attempt to do mass installations for closed
sourced corrupted operating systems and I laugh at all the hard work they
have to do. I want to stress something, this method I have shown today
is not the easiest method to install Linux. I will explain this in
another article someday. It will make any commercial or closed sourced
operating system look like garbage compared to Linux.
<hr>
<a name="script"></a>
<h1> My perl script</h1>
I used this perl script to extract a list of rpms from the /RedHat/RPMS
directory on the cdrom. I only had about 6 corrections to make and figured
it would take me longer to fix the perl script that it would be to fix
the list. There has to be a simpler way of getting the list with exact
results, but often
it is just a decision between what you know works, and taking the time
to figure out a better way. It only took me 5 minutes to write this
script. Most of the time wasted was booting off of the kickstart disk
to see how many errors I got.
<pre>
#!/usr/bin/perl
my @RPMS = </home/ftp/RedHat60/RedHat/RPMS/*.rpm>;
my $Dest = "/tmp/List_2.txt";
open(FILE,">$Dest");
foreach $Rpm (@RPMS)
{
## Would be easier if I had used ? instead of /
$Rpm =~ s/\/home\/ftp\/RedHat60\/RedHat\/RPMS\///;
if ($Rpm =~ /\-[0-9]+\-[0-9]+\./)
{($Rpm,$Junk) = split(/\-[0-9]+\-[0-9]\./, $Rpm,2);}
elsif ($Rpm =~ /\-[0-9]+\./)
{($Rpm,$Junk) = split(/\-[0-9]+\./, $Rpm,2);}
else {($Rpm,$Junk) = split(/\-[0-9]/, $Rpm,2);}
print FILE "$Rpm\n";
}
</pre>
<hr>
<i>
<a href="mailto:mark@tcu-inc.com">Mark</a>
works as JALG hardware assistant (shorts and tee-shirt)
under <a href="mailto:mike@tcu-inc.com"> Mike Hunter</a> at
<a href="http://www.tcu-inc.com"> The Computer Underground</a>
and as a professional (suit and tie) consultant at
<a href="http://www.800linux.com">
800linux.com</a>. In his spare time, he does volunteer stuff, like writing
these documents.
</i>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Mark Nielsen<BR>
Published in Issue 43 of <i>Linux Gazette</i>, July 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Configuring XDM -- a graphical login interface for Linux or UNIX</font></H1>
<H4>By <a href="mailto:mark@gtltd.com">Mark Nielsen</a></H4>
</center>
<P> <HR>
<EM>If this document changes, it will be available at
<a href="http://www.tcu-inc.com">The Computer Underground</a>:
<a href="http://www.tcu-inc.com/mark/articles/Kickstart.html">
http://www.tcu-inc.com/mark/articles/Kickstart.html</a>.</EM>
<br>CHANGES:
<ol>
<li> Changed XServers File located at /etc/X11/xdm/Xservers by adding
these lines to get 4 xdm sessions running so that 4 different people
can log in. It seems like all the neat stuff only happened on the last
session. It is probably easy to fix this. Perhaps I will mention it in
the next article.
<pre>
:0 A local /usr/X11R6/bin/X :0
:1 B local /usr/X11R6/bin/X :1
:2 C local /usr/X11R6/bin/X :2
:3 D local /usr/X11R6/bin/X :3
</pre>
</ol>
<hr>
<ol>
<li><a href="#Resources"> Resources</a>
<li><a href="#What"> What is XDM? -- the graphical login interface</a>
<li><a href="#Configs"> My configurations</a>
<li><a href="#conclusion">Conclusion</a>
</ol>
<hr>
<a name="Resources"></a>
<h1> Resources</h1>
<p>
<ol>
<li><a href="http://www.linuxgazette.com/issue42/carlson.html">
Chris Carlson's article</a> in the Linux Gazette.
<li>man xdm
<li><a href="http://www.tcu-inc.com/mark/projects/xdm/">
My old xdm cheat sheet</a> back in 12/1996 when I was just a hacker (in the
good sense). I guess this was around right when the Gazette got started?
How time flies. I should have posted this there at that time.
</ol>
<hr>
<a name="What"></a>
<h1> What is XDM?</h1>
To put it simply, xdm is just a graphical login screen so that you
can impress your boss or friends that you don't have some boring
console to look at when your computer starts up.
It just makes Linux a little bit more cool than
someone might have previously thought.
<p>
In theory, most of configurations here should work for any Linux
distribution. This is configured for RedHat 6.0 though. RedHat 6.0 uses
gdm instead of xdm when it starts its graphical login screen. However,
I haven't got gdm to work in the exact way I want it, even though it
seems much better than xdm. Once I figure out a few things, I will
write a brief article on gdm also.
<p>
Here are some things to note ,
<ol>
<li> If you want xdm (or gdm) to start when you computer starts, you need
to make sure this line<br>
id:3:initdefault:
<br> Looks like this <br>
id:5:initdefault:
<br> in the file "/etc/inittab". Please, whatever you do, get
Xwindows working before you set xdm to start at bootup. If Xwindows
doesn't work, xdm won't work, and that can cause problems.
<li> RedHat 6.0 switched to gdm instead of using xdm
which is apparent at the bottom of the
/etc/inittab with the line <br>
x:5:respawn:/etc/X11/prefdm -nodaemon
<br> thus, change that line to this,
<br> x:5:respawn:/usr/bin/X11/xdm -nodaemon
<li> All the files I am changing are in "/etc/X11/xdm".
</ol>
<hr>
<a name="Configs"></a>
<h1> My config files</h1>
I am only interested in a few files, namely
<br> /etc/X11/xdm/Xsetup_0
<br> /etc/X11/xdm/Xresources
<br> /etc/X11/xdm/GiveConsole
<br> /etc/rc.d/rc.change_graphic
<br> /etc/rc.d/rc.local
<br> /etc/inittab <-- this was explained above
<br> and the gif files in /etc/X11/xdm/graphics/
<p>
Here is the goal, I want to change xdm to make it so it has xeyes,
santa, a clock, a graphics image, and my choice of background color
on the desktop before someone logs in. After they log in, I want santa
to die. Cruel huh?
<p>
Okay, let us do this in order:
<ol>
<li> Copy my <a href="#perl"> graphics perl script</a> to
"/etc/rc.d/rc.change_graphic". This changes the image which appears on
the screen. Images are stored in /etc/X11/xdm/graphics as gif files.
<li> Copy my <a href="#perlkill"> kill santa perl script</a> to
"/etc/X11/xdm/KillXsnow". This kills santa. Santa slows down the desktop.
<li> Copy my <a href="#Xsetup"> Xsetup script</a> to
"/etc/X11/xdm/Xsetup_0". Programs to run with the graphical
login screen.
<li> Copy my <a href="#Xresources"> Xresources script</a> to
"/etc/X11/xdm/Xresources". How the setup of xdm should look like.
<li> Copy my <a href="#GiveConsole"> GiveConsole script</a> to
"/etc/X11/xdm/GiveConsole". Stuff to get executed before Xwindows
is handed over to the user. Also, changes the background image for
xdm.
<li> Add <a href="#local"> this command </a> to "/etc/rc.d/rc.local".
Make sure we get a graphics image to look at when we boot up.
<li> Copy my <a href="http://www.tcu-inc.com/mark/articles/xdm/xdm.tgz">
gif files</a> to
"/etc/X11/xdm/graphics/" and issue this command on the file
<br>
tar -C / -zxvf xdm.tgz
<br> These are just my silly images I use.
</ol>
<hr>
<h1> Here are the rest of my config files:</h1>
<hr>
<a name=perl></a>
<h2> Change graphics perl script</h2>
Located at "/etc/rc.d/rc.change_graphic".
Issue the command "chmod 755 /etc/rc.d/rc.change_graphic" after it is
copied.
<pre>
#!/usr/bin/perl
@Files = </etc/X11/xdm/graphics/*.gif>;
#print @Files;
$Length = @Files;
$Seconds = `date +%S`;
chomp $Second;
$Frac = $Seconds/60;
if (!($Frac > 0)) {$Frac=1}
$Random = $Frac*$Length;
($Random,$Junk) = split(/\./, $Random,2);
if (($Random < 1) || ($Random > $Length -1)) {$Random = 1}
$File = $Files[$Random];
$Rand2 = rand $Length;
($Rand2,$Junk) = split(/\./, $Rand2,2);
$Random = $Random + $Rand2;
if ($Random > $Length - 1) {$Random = $Random - $Length + 1;}
#print "$Length $Random $File\n";
if (-e "/etc/X11/xdm/xdm_front.gif") {system "rm /etc/X11/xdm/xdm_front.gif"}
if (@Files < 1)
{
## Some sort of error messege should be here.
}
else
{system "ln -s $File /etc/X11/xdm/xdm_front.gif";}
</pre>
<hr>
<a name=perlkill></a>
<h2> Kill Santa perl script</h2>
Located at "/etc/X11/xdm/KillXsnow".
Issue the command "chmod 755 /etc/X11/xdm/KillXsnow" after it is
copied.
<pre>
#!/usr/bin/perl
### I had to add the -a option between RH 5.2 and 6.0
@Temp = `cd /proc; grep -a ^/usr/X11R6/bin/xsnow /proc/[0-9]*/cmdline`;
if (@Temp > 0)
{
$Xsnow = shift @Temp;
($Junk,$ProcJunk,$No,$RestOfJunk) = split(?/?,$Xsnow);
## I am really paranoid that I want to kill the right pid
if (($No > 0) && ($Xsnow =~ ?^/proc/$No/cmdline:/usr/X11R6/bin/xsnow?))
{
# system "echo \"Killing pid $No for Xsnow.\n\" > /tmp/1.txt\n";
system "kill $No";
}
}
</pre>
<hr>
<a name=Xsetup></a>
<h2> Xsetup_0 script</h2>
Located at "/etc/X11/xdm/Xsetup_0".
Issue the command "chmod 755 /etc/X11/xdm/Xsetup_0". after it is
copied.
<pre>
#!/bin/sh
# $XConsortium: Xsetup_0,v 1.3 93/09/28 14:30:31 gildea Exp $
/usr/X11R6/bin/xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed -exitOnFail
#/usr/X11R6/bin/xbanner
### Santa and snowflakes
### On some installs, I am missing xsnow for some reason.
/usr/X11R6/bin/xsnow -snowflakes 50 -santa 2 -unsmooth &
### Load the random image
/usr/bin/X11/xloadimage -onroot -at 1,210 /etc/X11/xdm/xdm_front.gif -border brown &
### A clock would be nice to see
/usr/X11R6/bin/xclock -digital -update 1 -fn -adobe-times-medium-i-normal--34-240-100-100-p-168-iso8859-1 -geometry +410+1 &
### Let us turn on xeyes
/usr/X11R6/bin/xeyes -geometry +410+100 &
</pre>
<hr>
<a name=Xresources></a>
<h2> Xrsources file</h2>
Located at "/etc/X11/xdm/Xresources".
Issue the command "chmod 755 /etc/X11/xdm/Xresources" after it is
copied.
<pre>
! $XConsortium: Xresources /main/8 1996/11/11 09:24:46 swick $
xlogin*login.translations: #override\
Ctrl<Key>R: abort-display()\n\
<Key>F1: set-session-argument(failsafe) finish-field()\n\
Ctrl<Key>Return: set-session-argument(failsafe) finish-field()\n\
<Key>Return: set-session-argument() finish-field()
xlogin*borderWidth: 3
xlogin*geometry: 400x200+1+1
xlogin*greeting: CLIENTHOST
xlogin*namePrompt: login:\040
xlogin*fail: Login incorrect
#ifdef COLOR
xlogin*greetColor: CadetBlue
xlogin*failColor: red
*Foreground: black
*Background: #fffff0
#else
xlogin*Foreground: black
xlogin*Background: white
#endif
XConsole.text.geometry: 480x130
XConsole.verbose: true
XConsole*iconic: true
XConsole*font: fixed
Chooser*geometry: 700x500+100+100
Chooser*allowShellResize: false
Chooser*viewport.forceBars: true
Chooser*label.font: *-new century schoolbook-bold-i-normal-*-240-*
Chooser*label.label: XDMCP Host Menu from CLIENTHOST
Chooser*list.font: -*-*-medium-r-normal-*-*-230-*-*-c-*-iso8859-1
Chooser*Command.font: *-new century schoolbook-bold-r-normal-*-180-*
</pre>
<hr>
<a name=GiveConsole></a>
<h2> GiveConsole file</h2>
Located at "/etc/X11/xdm/GiveConsole".
<p>
All you have to do is add "/etc/X11/xdm/KillXsnow & " as the first command
in the file. Mine looks like this,
<pre>
#!/bin/sh
# Assign ownership of the console to the invoking user
# $XConsortium: GiveConsole,v 1.2 93/09/28 14:29:20 gildea Exp $
# By convention, both xconsole and xterm -C check that the
# console is owned by the invoking user and is readable before attaching
# the console output. This way a random user can invoke xterm -C without
# causing serious grief.
/etc/rc.d/rc.change_graphic &
/etc/X11/xdm/KillXsnow &
chown $USER /dev/console
/usr/X11R6/bin/sessreg -a -w "/var/log/wtmp" -u "/var/run/utmp" \
-x "/etc/X11/xdm/Xservers" -l $DISPLAY -h "" $USER
</pre>
<hr>
<a name=local></a>
<h2> /etc/rc.d/rc.local file </h2>
Add this to the /etc/rc.d/rc.local file.
<pre>
/etc/rc.d/rc.change_graphic
</pre>
<hr>
<a name="Conclusion"></a>
<h1> Conclusion</h1>
XDM is pretty cool. This is the old way of doing things. I recommend
going to gdm or something else. For XDM, I give it a B-. It just lacks
some of the stuff I always wanted to see that gdm has.
<p>
I will explain GDM next time. Gdm has
the nice capability of letting you choose which desktop environment
you want. In RedHat 6.0, you can choose KDE, GNOME, or other desktop
environments when you login, which is pretty cool. Overall, I give gdm
a B+, and if it becomes better documented, an A. Again, I hope to make
an article about gdm for the August issue.
<hr>
<i>
<a href="mailto:mark@tcu-inc.com">Mark</a>
works as a receptionist (shorts and tee-shirt)
under <a href="mailto:mike@tcu-inc.com"> Mike Hunter</a> at
<a href="http://www.tcu-inc.com"> The Computer Underground</a>
and as a professional (suit and tie) consultant at
<a href="http://www.800linux.com">
800linux.com</a>. In his spare time, he does volunteer stuff, like writing
these documents.
</i>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Mark Nielsen<BR>
Published in Issue 43 of <i>Linux Gazette</i>, July 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Syslog-ng</font></H1>
<H4>By <a href="mailto:bazsi@balabit.hu">Balazs Scheidler</a></H4>
</center>
<P> <HR> <P>
<H2>1. Introduction</H2>
<P> One of the most neglected area of Unix is handling system events. Daily
checks for system messages is crucial for the security and health conditions
of a computer system.
<P> System logs contain much "noise" - messages which have no importance - and
on the contrary important events, which should not be lost in the load of
messages. With current tools it's difficult to select which messages we are
interested in.
<P> A message is sent to different destinations based on the assigned
facility/priority pair. There are 12+8 (12 real and 8 local) predefined
facilities (mail, news, auth etc.), and 8 different priorities (ranging from
alert to debug).
<P> One problem is that there are facilities which are too general (daemon),
and these facilities are used by many programs, even if they do not relate
each other. It is difficult to find the interesting bits from the enourmous
amount of messages.
<P> A second problem is that there are very few programs which allow setting
their "facility code" to log under. It's at best a compile time parameter.
<P> So using facilities as a means of filtering is not the best way. For it
to be a good solution would require runtime option for all applications, which
specifies the log facility to log under, and the ability to create new
facilities in syslogd. Neither of these are available, and the first is neither
feasible.
<P> One of the design principles of syslog-ng was to make message filtering
much more fine-grained. syslog-ng is able to filter messages based on the
contents of messages in addition to the priority/facility pair. This way only
the messages we are really interested in get to a specific destination. Another
design principle was to make logforwarding between firewalled segments easier:
long hostname format, which makes it easy to find the originating and chain of
forwarding hosts even if a log message traverses several computers. And last
principle was a clean and powerful configuration file format.
<P> This article tries to give you an overview on syslog-ng's internals, for
more detailed information see
<A HREF=http://www.balabit.hu/products/syslog-ng>
http://www.balabit.hu/products/syslog-ng</A>
and select the documentation link.
<H2>2. Message paths</H2>
<P> In syslog-ng a message path (or message route) consist of one or more
sources, one or more filtering rules and one or more destinations (sinks).
A message is entered to syslog-ng in one of its sources, if that message
matches the filtering rules it goes out using one of the destinations.
<H2>2.1. Sources</H2>
<P> A source is a collection of source drivers, which collect messages using a
given method. For instance there's a source driver for AF_UNIX, SOCK_STREAM
style sockets, which is used by the Linux syslog() call.
<P> Different platforms use different means of sending log messages to the
logging daemon, and to be useful on all operating systems, syslog-ng has
support for the most common methods. Tested support exists for Linux, BSDi,
experimental support exists for Solaris (as of version 1.1.22)
<H2>2.2. Destinations</H2>
<P> A destination is a message sink, where log is sent if filtering rules match.
Similarly to sources, destinations may include several drivers which define
how messages are dispatched.
<P> For instance there's a file driver, which writes messages to the given file,
but support exists to send messages to unix, udp and tcp sockets as well.
<H2>2.3. Filters</H2>
<P> Filters perform log routing inside syslog-ng. You can write a boolean
expression using internal functions, which has to evaluate to true for the
message to pass.
<P> An expression may contain the operators "and", "or" and "not", and the
following functions:
<UL>
<LI> facility()
<LI> level()
<LI> program()
<LI> host()
<LI> match()
</UL>
<P> Each of the above functions check the corresponding field of a log message
for matching (e.g. program() checks whether the given program sent the message,
or not). You can use extended regular expressions for matching.
<H2>2.4. Log statements</H2>
<P> Now you have sources, destinations and filters. To connect these together
you need the log statement:
<PRE>
log { source s1; source s2; ...
filter f1; filter f2; ...
destination d1; destination d2; ... };
</PRE>
<P> Messages coming from any of the listed sources, and matching against all
the listed filters (which effectively ANDs them) are sent to all of the listed
destinations.
<H2>3. Example configuration</H2>
<P> This configuration file shows the possibilities and features of syslog-ng.
It receives messages from the network, and also handles local messages. Three
distinct output files are used: one for the messages from sendmail, a second
for messages coming from host1, and a third for messages coming from host2.
<PRE>
options { long_hostnames(on); sync(0); };
source src { udp 0.0.0.0,514; unix-stream /dev/log; internal; };
filter f_sendmail { program("sendmail"); };
filter f_host1 { host("host1"); };
filter f_host2 { host("host2"); };
destination sendmail { file /var/log/sendmail; };
destination host1 { file /var/log/host1; };
destination host2 { file /var/log/host2; };
log { source src; filter f_sendmail; destination sendmail; };
log { source src; filter f_host1; destination host1; };
log { source src; filter f_host2; destination host2; };
</PRE>
<H2>4. References</H2>
<P> Syslog-ng is a product of BalaBit Computing, and is distributed under the
GPL. If you are interested, please visit
<A HREF=http://www.balabit.hu>http://www.balabit.hu</A>.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Balazs Scheidler <BR>
Published in Issue 43 of <i>Linux Gazette</i>, July 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Artificial Intelligence on Linux</font></H1>
<H4>By <a href="mailto:afsilva@liberty.edu">Anderson Silva</a></H4>
</center>
<P> <HR> <P>
Artificial Intelligence is a very controversial subject, but the
way I will approach it in this article is simple and fast. The
way I have been approaching AI is not through the philosophical
or biological aspect, but just as a computational subject.
When humans want to fly, they don't need to study the birds to
learn how to do it, they just get into an airplane. This is my
way of approaching AI. We want to solve puzzles and games through
a computer without really comparing the way a human accomplishes
tasks differently from a computer.
<P> For the first time in the history of my school, there was going
to be offered an Artificial Intelligence (AI) class. I was very
excited about this class because you hear a lot about AI, but you
don't really see a lot of material for it on magazines and online
articles.
<P> Probably the greatest example of an AI application is Turing's
Test. The test consists in a person being a room with a computer
terminal, and this person would start to chat with the computer.
At the end the person would have to figure out if he talked to a
real person on the other end of the terminal or with a computer
program. And if the user confuses the person with the computer
then we would have reached AI.
<P> At, LU we chose Prolog to be the implementation tool for AI. Our
labs at school are Windows NT based and we have only one linux
machine which is designated to students. But I have been a linux
user for almost 2 years, and I wanted to implement all my Prolog
assignments in Linux.
<P> I did some research on the web and I found a great Prolog
compiler for linux. Prolog is like linux in a certain way, there
are several flavors that you can pick from. The one I chose was
SWI Prolog (http://www.hio.hen.nl/faq/SWI-Prolog.html).
Prolog is a very flexible language. Unlike other languages like
C, C++ or Java, Prolog is based on formal mathematical logic, in
this case: Predicate Calculus. A Prolog program is normally made
of facts with a set of rules. To reach the final solution
it has to satisfy this set of rules. Interpreting these rules
allows the computer to deduce the solution by itself. In Prolog
the facts are normally stored on a separate file called
the knowledge base, and rules on another file that is the actual
program.
<P> Allow me to show a very basic search algorithm known as the
<A HREF="gx/silva.ai.jpg">Depth First Search</A> (click for image).
<P>
<HR>
<P> The Program below is the representation of the graph above in
Prolog.
<PRE>
% Name: Anderson Silva
% Date: March 10, 1999
% ================================
% A graph that will be used for a
% Depth First Search Algorithm
% Knowlodge Base.
% ================================
% linked/2
% A nodes and its children
linked(a, [b,c,d]).
linked(b, [e,f]).
linked(c, [g,h]).
linked(d, [i,j]).
linked(e, [k,l]).
linked(f, [l,m]).
linked(g, [n]).
linked(h, [o,p]).
linked(i, [p,q]).
linked(j, [r]).
linked(k, [s]).
linked(l, [t]).
linked(m, []).
linked(n, []).
linked(o, []).
linked(p, [u]).
linked(q, []).
linked(r, []).
linked(s, []).
linked(t, []).
linked(u, []).
% arc/2
% A rule that checks to see if
% there is an arc between two given nodes.
arc(X,Y):- linked(X,L), member(Y,L).
</PRE>
<HR>
<P> The algorthim that searches the graph for a specific goal:
<PRE>
% Name: Anderson Silva
% Date: March 10, 1999
% ================================
% This is the Depth First Algorithm
% implemented in Prolog that will
% use the graph.pl knowlodge base
% ================================
% reverse_write/1
% Inverts the order of the stack.
reverse_write([]).
reverse_write([H|T]):-reverse_write(T), write(H), nl.
% solve/2
% Gives the path in the reverse
% order since dfs is implemented as
% a stack
solve(INode, Solution):- consult('graph.pl'),
query_goal,
dfs([], INode, Solution),
reverse_write(Solution).
% query_goal/0
% Creates the goal to be reached
% during execution
% We start with abolish, so if solve is ran more
% than once, it will make sure it
% forgets the old goals and only look for the
% new on.
query_goal :- abolish(goal(Node)),
write('Goal? [Followed by a period]'),
nl,
read(Node),
assert(goal(Node)).
% goal/1
% When the program runs for the frist time
% query_goal needs to abolish at least one goal
% and that is why goal(standard) is used.
goal(standard).
% dfs/3
% The Actual recursive algorithm for the
% Depth First Search
dfs(Path, Node, [Node|Path]):- goal(Node).
dfs(Path, Node, Sol):- arc(Node, Node1),
</PRE>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Anderson Silva <BR>
Published in Issue 43 of <i>Linux Gazette</i>, July 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">IP MASQ Setup with Ipchains Quick Start</font></H1>
<H4>By <a href="mailto:stu7440@westga.edu">Terry 'Mongoose' Hendrix II</a>
and <a href="mailto:afsilva@liberty.edu">Anderson Silva</a></H4>
</center>
<P> <HR> <P>
<p> Last Month, my brother and I decided that we
were going to setup a small network at my house, so that we could connect
more than one computer to the internet with only one modem and one phone
line. My machine is the one with the modem and it is also running
Linux (server) . My brother's machine is running Windows 95 (Client).
I did some research and found some documentation about private networking
on the web. I decided to try the technique of IP Masquerading with our
little network at home.
<br> IP Masquerading is the technique to assign
your computers internal IP addresses (in my case 10.0.0.1 for the server
and 10.0.0.2 for the client) and share your machines internet connection
with the other clients without having to assign them a external IP address.
I read a lot of the documentation and I did actually understand the whole
process, but I could not get it running right on my computer. So, I entered
the #Linux IRC channel on Undernet.org and found a guy nicknamed Mongoose
to help me.
<br> He gave me a link to a quick tutorial he had
written to get IP MASQ running with ipchains* in no time.
<p>* Ipchains is a program that is bundled with RedHat 6.0 and is used
to set up firewalls and ip masquerading.
<p> After reading Mongoose's tutorial I had my
private network running in less than 10 minutes. That is why I got in touch
with him and he agreed to let me publish his tutorial to the Linux Gazette.
<p>Bellow is the Tutorial:
<br>
<p>----------------------------------------
<br>NOTES
<br>----------------------------------------
<br>The following example has:
<p> 0.0.0.0 the IP of the gateway to the internet.
<br> 10.0.0.1 the IP of the ip masq gateway's eth0.
<br> 10.0.0.2 the IP of the ip masq client0's eth0.
<br> 10.0.0.3 the IP of the ip masq client1's eth0.
<br>
<p>NETWORK IP MASQ GATEWAY SETUP
<br>----------------------------------------
<br>1. Load ethernet card modules ( if needed ).
<p> /sbin/modprobe ne2k-pci
(each card has a specific name)
<p>2. Bring up the device.
<br> ( add to /etc/rc.d/rc.local if you don't have standard
interface scripts)
<p> /sbin/ifconfig eth0 10.0.0.1
netmask 255.255.255.0 up
<br> /sbin/route add -net 10.0.0.0
netmask 255.255.255.0 eth0
<br> /sbin/route add default
gw 0.0.0.0 eth0
<p>3. Allow your IP MASQ clients to use your inet.
<br> A. Add this to /etc/hosts.allow at the end:
<p> ALL:10.0.0.2
<br> ALL:10.0.0.3
<p> B. Add the ips to any other configs it requires.
<br> i. I suggest you use the squid ftp/http
proxy for speed.
<br>
<p>NETWORK CLIENT SETUP ( 10.0.0.2 client0 )
<br>----------------------------------------
<br>1. Load ethernet card modules ( if needed ).
<p> /sbin/modprobe ne2k-pci
<p>2. Bring up the device. ( add this to /etc/rc.d/rc.local if you don't
have standard interface scripts)
<p> /sbin/ifconfig eth0 10.0.0.2
netmask 255.255.255.0 up
<br> /sbin/route add -net 10.0.0.0
netmask 255.255.255.0 eth0
<br> /sbin/route add default
gw 10.0.0.1 eth0
<br>
<p>TESTING NETWORK
<br>----------------------------------------
<br>1. Ping 10.0.0.1 from the the clients and vice versa.
<p>2. Use /sbin/ifconfig to see packet traffic from each host.
<p>3. You should be able to use telnet/ftp between machines now.
<br> A. If you can't telnet from clients to gateway, then check
hosts.allow.
<br>
<p>IP MASQ GATEWAY IP MASQ SETUP
<br>----------------------------------------
<br>1. IP forwarding setup.
<br> A. Enable ip forwarding for the IP MASQ gateway.
<p> echo "1" > proc/sys/net/ipv4/ip_forward
<p> B. Make ip forwarding enabled every boot:
<br> i. For RedHat modify /etc/sysconfig/network
as follows:
<p> FORWARD_IPV4=true
<p> ii. For other distros add this to /etc/rc.d/rc.local
at the end:
<p> echo "1" > proc/sys/net/ipv4/ip_forward
<p> C. To make sure no one smurfs your network add this to
rc.local:
<p> echo "1" > /proc/sys/net/ipv4/tcp_syncookies
<br>
<p>2. Now setup routing. You can add these to rc.local to load every
time.
<br> A. Deny all ip forwarding by default.
<p> /sbin/ipchains -P forward
DENY
<p> B. Allow ip forwarding for your IP MASQ machines 10.0.0.2
and 10.0.0.3.
<p> /sbin/ipchains -A forward
-s 10.0.0.2/24 -j MASQ
<br> /sbin/ipchains -A
forward -s 10.0.0.3/24 -j MASQ
<p> C. Add any masq modules you'll need.
<p> /sbin/modprobe ip_masq_ftp
<br> /sbin/modprobe ip_masq_quake
<br> /sbin/modprobe ip_masq_irc
<br> /sbin/modprobe ip_masq_user
<br> /sbin/modprobe ip_masq_raudio
<br> ...
<p>
<hr>
<p> If you follow this tutorial your network should
work just fine. One other problem that I encountered after setting up my
IP MASQ was that my client could only access servers on the net with their
IP addresses. So, I set up DNS on my linux box, so my clents could do a
domain lookup. All you need to do is to set <b>/etc/resolv.conf</b> with
your nameservers, and make sure that you have the <b>named</b> daemon is
activated. And that should solve the problem.
<P> And if you have done all of these steps
you should be all set to run your private network. If you want to learn
more about IP MASQ and Firewalling please refer to the HOWTOs Documentation
at: <a href="http://metalab.unc.edu/linux/HOWTO/HOWTO-INDEX-3.html#ss3.1">http://metalab.unc.edu/linux/HOWTO/HOWTO-INDEX-3.html#ss3.1</a>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Terry 'Mongoose' Hendrix II and Anderson Silva<BR>
Published in Issue 43 of <i>Linux Gazette</i>, July 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">Using Linux to Teach Kids How to Program</font></H1>
<H4>By <a href="mailto:afsilva@liberty.edu">Anderson Silva</a></H4>
</center>
<P> <HR> <P>
<TABLE WIDTH=100% BORDER=1 CELLPADDING=4 CELLSPACING=3>
<COL WIDTH=256*>
<THEAD>
<TR>
<TD WIDTH=100% VALIGN=TOP>
<P ALIGN=LEFT STYLE="font-weight: medium"><IMG SRC="gx/silva.logo/logo1.jpg" NAME="Graphic1" ALIGN=LEFT HSPACE=10 WIDTH=288 HEIGHT=215 BORDER=0>
I was in 5<SUP>th</SUP> Grade when I took my first computer class in Rio de
Janeiro, Brazil. I was going to start taking a course in LOGO running on
Commodore 64. Soon enough LOGO was known to us as the "turtle
game".</P>
<P ALIGN=LEFT STYLE="font-weight: medium">
LOGO is a programming language developed at the MIT labs in the late-60's, and
its main purpose is to make a programming language for children. LOGO has its
own syntax and semantics, but what really makes it fun for kids is its
Graphical Environment. </P>
<P ALIGN=LEFT STYLE="font-weight: medium">
LOGO has a "programmable" cursor that draws on the screen whatever
you programmed it to do. That cursor is known as the turtle. <BR>With the
turtle you can make animation, draw houses, cars, or any of the primitive
geometrical figures.</P>
</TH>
</TR>
</THEAD>
<TBODY>
<TR>
<TH WIDTH=100% VALIGN=TOP>
<P ALIGN=LEFT><IMG SRC="gx/silva.logo/logo2.jpg" NAME="Graphic2" ALIGN=RIGHT HSPACE=10 WIDTH=299 HEIGHT=299 BORDER=0><SPAN STYLE="font-weight: medium">
For example:<BR>To make the turtle go forward 10 pixels you would
give the command:<BR><B>FD 10<BR><BR></B>
To make the turtle go
backwards 120 pixels:<BR><B>BK 120<BR><BR></B>To turn turn right
or left on a 90 degree angle:<BR></SPAN><B>RT 90 <BR>LT 90</B></P>
<P ALIGN=LEFT><SPAN STYLE="font-weight: medium">To make a simple
arc or circle use the command <B>arc </B>and the degrees of the
circumference and the radius.<BR></SPAN><B>ARC 360 120</B></P>
<P ALIGN=LEFT><SPAN STYLE="font-weight: medium">To set the color
of the background and of the drawing of the turtle:<BR></SPAN><B>SETBG
Color#</B> <SPAN STYLE="font-weight: medium">- (The color number
varies from system to system)<BR><B>SETPC Color#</B> -</SPAN> <SPAN STYLE="font-weight: medium">(It
sets the color of the turtle's drawing)</SPAN></P>
<P ALIGN=LEFT><SPAN STYLE="font-weight: medium">To clean (=clear) the
screen:<BR></SPAN><B>CLEAN</B></P>
</TH>
</TR>
<TR>
<TD WIDTH=100% VALIGN=TOP>
<P> Today I am 21 years old, and I still like playing around
with LOGO. And I will use it to teach my son a little bit about
programming and discrete math concepts. Now, my challenge was to
find a version of LOGO for Linux. I have been using Linux for
about 2 years now, and just a couple of weeks ago I started
searching the web for a free version of LOGO for Linux. It took
me about 30 minutes, but I was able to find the Berkeley LOGO
version, which is really good. It runs in many Unix flavors and
works with MS Operating Systems as well.</P>
<P> I was able to compile it with Red Hat 5.2 pretty fast and
it worked great, but I did encounter several errors with Red Hat
6.0, and i am still trying to figure out some incompatibilities.
The Berkeley distribution of LOGO can be downloaded it at:
<A HREF="ftp://anarres.cs.berkeley.edu/pub/ucblogo/">ftp://anarres.cs.berkeley.edu/pub/ucblogo/</A></P>
<P> The distribution comes with a pretty good user manual,
and it has at least 3 different versions available for download.
I do encourage any programmers that have children to download
LOGO and start having fun with your children, they will have a
blast, and you can even take the opportunity to teach them some
basic Linux tasks.
</P>
</TD>
</TR>
</TBODY>
</TABLE>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Anderson Silva<BR>
Published in Issue 43 of <i>Linux Gazette</i>, July 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:JW.Stumpel@inter.NL.net">Jan Stumpel</a></H4>
[Revised at author's request. Originally published in issue #42.]
</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>
<li> users on the network receive a notification (a pop-up window) when
personal mail for them arrives.</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>
<li> smbclient and Winpopup for mail notification.</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 <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 SMTP 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 <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 <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><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 < 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
$address = 'joe.bloggs@isp.com';
while (<>) {
if (/^From: /) { s/<.*>/<$address>/; print; last; }
print; }
while (<>) { 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/local/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/local/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
fetchmailconf. 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>The <tt>.forward</tt> file must have permissions <tt>-rw-r--r--</tt>. If
you're not sure, give the command <tt>chmod 644 .forward</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 now go into <i>her</i> mail account on heaven, not into Joe's. She can
move the mail to her own machine using POP3 (see below).
<p>Delivery to other users than Emily can be arranged with <tt>elif ...
then</tt> clauses in the <tt>.forward</tt> file. Actually, exim's
<tt>.forward</tt> files can perform a lot of complicated functions. See the
text "Exim's user interface to mail filtering" which comes with the exim
doc's.
<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 Automatic mail notification</h4>
Emily likes to be <i>notified</i> if mail arrives for her at heaven. If Samba
is installed on heaven and Winpopup on earth, this is easy. Mail
notification on earth can be done using smbclient (a program which comes
with Samba).
<p>Joe (as root) has put a Perl program called <tt>mailwarn</tt> into
usr/local/bin:
<p><pre>#!/usr/bin/perl
open POPUP, "| smbclient -M $ARGV[0] >/dev/null 2>&1";
print POPUP "YOU'VE GOT MAIL! GO AND CHECK IT!\n";
print POPUP "It's from $ARGV[1]";
close POPUP; </pre>
<p>This file was, of course, first made executable using <tt>chmod +x
mailwarn</tt>.
<p>In Emily's home directory at heaven there is now also also a
<tt>.forward</tt> file (<tt>emi</tt> is the owner; permissions are 644):
<p><pre># Exim filter
unseen pipe "/usr/local/bin/mailwarn earth $header_from:"</pre>
<p>If mail (local or from the outside) for Emily arrives at heaven, a window
will now pop up on earth telling her this.
<h4><a NAME="exim11"></a>11 Manually collecting the outside 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 © 1999, Jan Stumpel<BR>
Published in Issue 43 of <i>Linux Gazette</i>, July 1999</H5></center>
<h4>"Linux Gazette...<i>making Linux just a little more fun!</i>"</h4>
<hr>
<center>
<p>
<!--===================================================================-->
</p>
</center>
<center>
<h1><font color="#800000">Creating A Linux Certification Program, Part
6</font></h1>
</center>
<center>
<h4>By <a href="mailto:dyork@linuxcare.com">Dan York</a></h4>
</center>
<hr>
<p>It's been quite a crazy ride during the last weeks within the community
effort to build a certification program known as the Linux Professional
Institute (LPI). There are a great many news items to pass along. This
month's article will address:</p>
<ul>
<li>
<a href="#wycd">What You Can Do</a>
</li>
<li>
<a href="#Board">Board Membership Changes</a>
</li>
<li>
<a href="#d">Completed Level 1 Objectives</a>
</li>
<li>
<a href="#ac">Advisory Council Expansion</a>
</li>
<li>
<a href="#German">German "Chapter" Forming</a>
</li>
<li>
<a href="#Logo1">Logo Contest Results</a>
</li>
<li>
<a href="#Developmen1">Development Plan</a>
</li>
<li>
<a href="#Mailing">Mailing-List Archives</a>
</li>
</ul>
<p></p>
<p>If you are interested in reading previous articles in this series, please
see the <a href="#Previous1">links at the bottom of the page</a>.</p>
<hr>
<h2><a name="wycd">What You Can Do</a></h2>
<p>There are a great number of ways you can help make the LPI project a
reality. Here is a quick list:</p>
<p>1. HELP ANALYZE DIFFERENCES BETWEEN LINUX DISTRIBUTIONS</p>
<p> We need some more help documenting the detailed characteristics and
differences between the distributions of Linux. Faber Fedor
<revf2@interactive.net> has agreed to coordinate a project to document the
distributions. In particular we are looking for someone to complete and
maintain the SuSE document, and an additional few hands to help complete the
Slackware document are welcome too. Visit:</p>
<p> <a
href="http://userweb.interactive.net/~revf2/LPI/">http://userweb.interactive.net/~revf2/LPI/</a>
</p>
<p>to see the work that has been done to date by Faber and other volunteers.
Please send any feedback you can to Faber (preferably as an edited HTML
document, with the changes highlighted). You can also visit the archives for
the "linux-cert-program" list at:</p>
<p><a
href="http://lists.linuxcare.com/linux-cert-program/threads.html">http://lists.linuxcare.com/linux-cert-program/threads.html</a></p>
<p>to see messages relating to the project. All of this work will go into
creating the distribution-specific exams that are part of our first level of
certification.</p>
<p>2. WRITE QUESTIONS FOR OUR EXAMS</p>
<p>Very shortly, Scott Murray, our director of exam development, will be
putting out a call for "item writers" to write questions for our first level
exams. Item writers will receive some instruction in the types of questions
we are seeking and then will write items that will be submitted to an
extensive technical review and evaluation process. Writers of items that
survive the initial screening and alpha testing will receive compensation for
their work.</p>
<p>If you have ever had concerns that people who completed other certification
programs weren't really qualified, then please join with us and help make sure
our program is of the appropriate quality.</p>
<p>Please contact Scott Murray (<a
href="mailto:scott@lpi.org">scott@lpi.org</a>) now if you would be interested
in being an item writer when we begin the process.</p>
<p>3. HELP FIND FINANCIAL SPONSORS</p>
<p>Creating a high-quality certification program such as this costs a
significant amount of money. We recently unveiled our sponsorship program for
both businesses and individuals at:</p>
<p><a
href="http://www.lpi.org/sponsorship.html">http://www.lpi.org/sponsorship.html</a></p>
<p>We've already had several major sponsors come on board (Caldera Systems,
Linuxcare and SuSE are the largest) and we are actively speaking with
others. If either your company or you individually would be interested in
donating, we would certainly be interested to talk to you. If you think your
company might be interested, but are uncomfortable bringing the matter up,
please feel free to contact us and we'll be glad to make the approach.</p>
<p>Please direct all sponsorship inquiries to either myself (<a
href="mailto:dan@lpi.org">dan@lpi.org</a>) or Chuck Mead (<a
href="mailto:chuck@lpi.org">chuck@lpi.org</a>).</p>
<p>Please note that while we are incorporating as a nonprofit corporation, we
are not (yet, anyway) a "tax-exempt" entity by U.S. IRS tax guidelines.
Donations to LPI are <em>not</em> tax-deductible in the U.S. as charitable
contributions. (But there may be other ways to deduct such contributions -
contact an accountant for details - and hey, it's for a good cause
anyway!)</p>
<p>4. HELP DEVELOP A COURSEWARE APPROVAL POLICY</p>
<p>As we've had a great number of courseware vendors come to us asking about
"approving" their materials, we are considering implementing such a program.
Chuck Mead has just kicked off a discussion in our Corporate Relations
committee. Join the list, or view the web archive at:</p>
<p><a
href="http://lists.linuxcare.com/linux-cert-corprel/threads.html">http://lists.linuxcare.com/linux-cert-corprel/threads.html</a></p>
<p>The CorpRel committee will be working on a proposal to send to the
Board.</p>
<p>5. HELP WITH OUR PUBLICITY WATCH</p>
<p>With so many information technology publications out there - both in print
and on the web, it's next-to-impossible to stay up-to-date on what's being
said all over the place about Linux certification. We'd like your help.
When you see an article (either in print or online) about Linux certification,
can you please send us the info (article title, publication, date, URL if on
the web). Either send it directly to "linux-cert-pr" if you are a member of
that list (if not, consider joining!) or email it to Evan (<a
href="mailto:evan@lpi.org">evan@lpi.org</a>)</p>
<p>You can see the list of what has been posted at:</p>
<p><a
href="http://lists.linuxcare.com/linux-cert-pr/threads.html">http://lists.linuxcare.com/linux-cert-pr/threads.html</a></p>
<p>Messages sent to linux-cert-pr appear on the archive within an hour.</p>
<p>6. WRITE OR SPEAK ABOUT LPI AND LINUX CERTIFICATION</p>
<p>To date, much of the writing and speaking about LPI and our efforts to
create a Linux certification program has been by members of the Steering
Committee such as Evan and I. But please know that we are not at all
exclusive about that and would encourage others to help out with writing
and/or speaking about LPI and Linux certification.</p>
<p>Many web sites are looking for people to write articles and we'd love to
see more articles out there about Linux certification and LPI. If you know of
a site looking for articles, please go ahead and write one. We'll be glad
to provide some information or assistance if you need it. Also, if you'd
like to write articles, drop us a note and we may be able to steer you to
places where they are looking for writers (usually the online sites are
looking for writers who will write for free).</p>
<p>Print publications are good, too. For instance, I had an article in the
June ";login:" published by USENIX and then an article in the July "Linux
Journal." Scott Murray & Alan Mead are planning to submit an article on
their survey process to a psychometrics journal. Articles might be
appropriate for local or regional newsletters for training organizations, user
groups, etc.</p>
<p>Also, if you're interested in speaking to local groups, we will soon be
making some presentations available online (in Applixware format so far,
probably HTML, too) that you could use. For instance, Faber Fedor recently
spoke to a local association of technical educators in his state.</p>
<p>If you are interested in writing or speaking, please feel free to contact
either Evan (<a href="mailto:evan@lpi.org">evan@lpi.org</a>) or I (<a
href="mailto:dan@lpi.org">dan@lpi.org</a>). Feel free, too, to go ahead and
just write... we'll be glad to look over articles if you'd like us,
too.</p>
<p>7. IF IN GERMANY, HELP WITH THE NEW GERMAN "CHAPTER"</p>
<p>As described further down in this article, there is now an effort underway
to create a German "Chapter" of LPI that would help translate informational
materials into German and also write/speak about LPI certification within
Germany and in the German language. More details will be available soon, but
in the meantime, please contact Mark Semmler at: <a
href="mailto:mark.semmler@frontsite.de">mark.semmler@frontsite.de</a></p>
<p>Please read the <a href="#German">text below</a> for more information.</p>
<p>8. JOIN OUR MAILING LISTS</p>
<p>If you haven't joined one of our committee mailing lists, where more of the
work is going on, visit:</p>
<p><a
href="http://www.lpi.org/involved.html">http://www.lpi.org/involved.html</a></p>
<p>and sign up to help us out!</p>
<p></p>
<hr>
<h2><a name="Board">Board Membership Changes</a></h2>
<p>After being on our Steering Committee list since its formation, Josh Arnold
recently indicated he needed to step aside because of other committments. He
intends to stay subscribed to the mailing lists and hopes to be able to
contribute to the Program Committee on an ongoing basis. We thank Josh for
his willingness to step forward and help lead, and we do hope he can continue
to be involved as our efforts move on.</p>
<p>With Josh's departure, the Steering Committee/Board took some time to
identify what roles we needed to fill. We next considered who had contributed
to the LPI effort in some meaningful way and spoke to a couple of people
about joining the Board. At this time, we are pleased to announce Jared
Buckley's addition to the LPI Board. Jared stepped forward to lead the
Naming committee and has been an active contributor to several of our mailing
lists. During the day, Jared works for Texas Instruments in Dallas, TX, where
he supports the WAN and administers several covert Linux servers.</p>
<p>Please join us in welcoming Jared to the Board. His new responsibilities
will include helping create newsletters such as this and generally helping to
coordinate volunteer participation. He may be reached online at
"jaredb@ti.com". (He will soon have an "lpi.org" address as well.)</p>
<p></p>
<hr>
<h2><a name="d">Completed Level 1 Objectives</a></h2>
<p>Over the last month, a dedicated group of participants worked to finalize
the objectives for the first exam (T1) and the generic portion of the second
group of exams (T2). These objectives were finalized in early June, allowing
courseware developers and publishers to know what they should orient their
materials toward.</p>
<p>We will soon have a web page online providing a simple list of the final
objectives. In the meantime, you can visit our management system at:</p>
<p><a
href="http://www.lpi.org/cgi-bin/poms.py">http://www.lpi.org/cgi-bin/poms.py</a></p>
<p></p>
<hr>
<h2><a name="ac">Advisory Council Expansion</a></h2>
<p>We are pleased to announce our expanded Advisory Council. We continue to
receive great interest from a wide range of organizations. Our current
Advisory Council membership includes (listed alphabetically by company,
asterisk (*) indicates recent addition):</p>
<p>Jim Higgins, Caldera Systems, Director of Education Services<br>
*Chris Tyler, Canadian Linux Users' Exchange, Certification Representative<br>
*Jim Lacey, CompUSA, Director of Operations<br>
*Fiaaz Walji, Corel, Certification Program Manager<br>
*Stephen Solomon, Course Technology, Senior Acquisitions Editor<br>
*Phil Carlson, ExecuTrain, VP of Business Development<br>
*Katalin Wolcott, IBM, Mgr of Linux Services Development, IBM Global
Services<br>
*R.J. Bornhofen, Global Knowledge Network, Linux/Web Curriculum Manager<br>
David Mandala, Linuxcare, VP of Education and Certification<br>
Mark Bolzern, LinuxMall, President<br>
Jim Dennis, Linux Gazette, "The Answer Guy"<br>
Jon "maddog" Hall, Linux International, Executive Director<br>
Phil Hughes, Linux Journal, Publisher<br>
*Stuart Trusty, Linux Labs, President<br>
*Julie Rowe, New Horizons Computer Learning Centers, VP of Products &
Programs<br>
Nancy Maragioglio, New Riders Publishing, Editor<br>
Lonn Johnston, Pacific HiTech, VP North America<br>
Donnie Barnes, Red Hat Software, Director of Technical Programs<br>
*David Conran, SAGE (USENIX) Certification Committee<br>
*Anita Booker, SGI, Global Customer Education Manager<br>
Patrick Volkerding, Slackware, principal developer<br>
Marc Torres, SuSE, Inc., President<br>
*Dr. Lindsay F. Marshall, UK Unix User Group, Chairman<br>
Deb Murray, UniForum, VP Professional Training & Development<br>
Ken Kousky, Wave Technologies, CEO</p>
<p>We keep this list up-to-date on our web site at:</p>
<p><a href="http://www.lpi.org/ac.html">http://www.lpi.org/ac.html</a></p>
<p>We had a great meeting with our Advisory Council members at LinuxExpo (you
can see the pictures at http://www.lpi.org/expopix.html ) and appreciate all
their support!</p>
<p></p>
<hr>
<h2><a name="German">German "chapter" forming</a></h2>
<p>When I knew I was going to be in Munich teaching some classes, (yes,
Linuxcare expects me to actually do some work for them, too, and not just work
on LPI!) I sent out a note asking if anyone would be interested in meeting.
Juergen Off from frontsite AG contacted me and we arranged to meet.</p>
<p>Juergen and his colleague Mark Semmler brought me to the Biergarten in the
beautiful Englisher Garten part of Munich and we had a very enjoyable evening
eating, drinking beer and flipping somewhat randomly between talking in
English and German.</p>
<p>Along the way, Juergen and Mark commented that there really wasn't much
discussion of Linux certification within the German media and Linux community.
They asked "what can we do to help spread the word here in Germany?" As we
talked, Juergen suggested the idea of having a local German "chapter" of
LPI... all three of us were intrigued by the idea and discussed the idea at
length.</p>
<p>After that night, we exchanged more email and also shared the idea with
others we knew in Germany. The others at frontsite AG were quite interested,
as were the folks at SuSE with whom I communicated.</p>
<p>The LPI Board considered the subject and we, too, thought it was a great
idea and gave the go-ahead to the frontsite AG folks to start a discussion and
make it happen. Since there was so much interest, we thought this German
chapter would be a great pilot program to see how this idea can work.</p>
<p>Mark Semmler wasted little time and sent off a note to the "linux-cert"
mailing list asking if people would be interested. His full message, which
includes his German text, can be found at:</p>
<p><a
href="http://lists.linuxcare.com/linux-cert/msg00038.html">http://lists.linuxcare.com/linux-cert/msg00038.html</a></p>
<p>Since this newsletter is going to a global audience and is written in
English, I'm including only Mark's English text below so that you get a sense
of what he and the others are proposing.</p>
<p>I know already there is great interest in meeting at the upcoming LinuxTag
in Kaiserslautern, Germany on June 26th & 27th. It will be great to see
what comes out of discussions there.</p>
<p>Please contact Mark at "<a
href="mailto:mark.semmler@frontsite.de">mark.semmler@frontsite.de</a>" if you
are interested in becoming involved with this effort.</p>
<pre></pre>
<pre>------ Begin Included Message ------</pre>
<pre>Subject: LPI Germany?!
Date: Thu, 24 Jun 1999 01:32:19 +0200
From: Mark Semmler <mark.semmler@frontsite.de></pre>
<pre><German text snipped></pre>
<pre>Hello everybody!</pre>
<pre>We are tracking very interested since a couple of weeks the mailinglists of
the LPI and we are just fascinated by the thoughts and the dynamic of this project.</pre>
<pre>During a meeting with Dan York early this month in Munich, the thought was born,
to create a german-speaking chapter of the LPI.</pre>
<pre>The goals of this "chapter" should be:</pre>
<pre> - promote the idea of LPI Linux certification through local
media, conferences, publications, etc.</pre>
<pre> - maintain German-language mailing lists and a web site
(in German) to promote discussion of Linux certification issues</pre>
<pre> - translate English LPI marketing and information materials into
German for distribution within Germany</pre>
<pre> - assist in identifying people/companies that can perform
the translation of exam items (questions) into German</pre>
<pre> - organize discussion groups and local meetings that bring
together key players within the German training and larger
information technology industry to move Linux certification
forward</pre>
<pre> - communicate ideas from the German-language discussion groups/lists
back to the English-language discussion groups/lists</pre>
<pre> - translate LPI news releases into German and distribute them
to appropriate German news media</pre>
<pre>I'm sure there will be other tasks which develop as well.</pre>
<pre>This chapter should be organized like the LPI.
Means: non-profit and independent.</pre>
<pre>We offer to host and to maintain the mailinglists and the webspace for
such a project on our servers. The domainname could be "(www.)de.lpi.org" and/or "(www.)german.lpi.org".</pre>
<pre>Who is interested?</pre>
<pre>Juergen Off, Mark Semmler, Jens Kiefer, Heiko Franssen, Thorsten Linstead</pre>
<pre>------ End Included Message ------
</pre>
<hr>
<h2><a name="Logo"><a name="Logo1">Logo Contest Results</a></a></h2>
<p>Those of you who have followed our web site and the past newsletters are
aware of the Logo Contest that we ran for quite some time. There were some
pretty amazing entries submitted by some very talented people. We set up a
poll on our web site to get some idea of what viewers thought. In the end,
the simplicity of Jorge Otero's design seems to have captured people's
attention. You can check out all the designs at:</p>
<p><a
href="http://www.lpi.org/logo-results.html">http://www.lpi.org/logo-results.html</a></p>
<p>The LPI Board has not made a formal decision yet, but is leaning strongly
toward using Mr. Otero's design.</p>
<p>Thank you to <strong>all</strong> the people who took time out of their day
to create some artwork for us. It all is great!</p>
<p></p>
<hr>
<h2><a name="Developmen"><a name="Developmen1">Development Plan</a></a></h2>
<p>On our web site, you can now find our plan for the development and
implementation of our first level of certification. The plan, developed
primarily by Scott Murray and Tom Peters, is available at:</p>
<p><a
href="http://www.lpi.org/public_plan.html">http://www.lpi.org/public_plan.html</a></p>
<p>The document will be updated over time as our plans evolve. Please check
it out and send any feedback to Scott (<a
href="mailto:scott@lpi.org">scott@lpi.org</a>) and Tom (<a
href="mailto:tom@lpi.org">tom@lpi.org</a>).</p>
<p></p>
<hr>
<h2><a name="Mailing">Mailing List Archives</a></h2>
<p>FYI, archives of all LPI mailing lists can be found at:</p>
<p><a href="http://lists.linuxcare.com/">
http://lists.linuxcare.com/</a></p>
<p>Messages posted to an LPI list are posted to the web archives within an
hour. Note that we are still working on restoring the historical archives
after a server crash, so they only contain recent information.</p>
<p>There is, however, an archive of the "linux-cert" mailing list going back
to last November when this all began. It is still active and can be found
at:</p>
<p><a href="http://linux.codemeta.com/archives/linuxcert_archive/">
http://linux.codemeta.com/archives/linuxcert_archive/</a></p>
<p>but again, because most of the activity has moved to the committee mailing
lists and the web site, the archive does not reflect the full range of LPI
activity going on today.</p>
<p>This second archive is now searchable at:</p>
<p><a href="http://linux.codemeta.com/archives/archive_search.html">
http://linux.codemeta.com/archives/archive_search.html</a></p>
<p>On the page, you must choose "Linux Certification" from the select button
in order to search our archive.</p>
<p></p>
<p>We also just recently added our mailing lists to the archives at <a
href="http://www.mail-archive.com/">http://www.mail-archive.com/</a> - all of
which are searchable archives.</p>
<blockquote>
<p>linux-cert: <a href="
http://www.mail-archive.com/linux-cert%40linuxcare.com/">
http://www.mail-archive.com/linux-cert%40linuxcare.com/</a></p>
<p>linux-cert-program: <a
href="http://www.mail-archive.com/linux-cert-program%40linuxcare.com/">http://www.mail-archive.com/linux-cert-program%40linuxcare.com/</a></p>
<p>linux-cert-corprel: <a
href="http://www.mail-archive.com/linux-cert-corprel%40linuxcare.com/">http://www.mail-archive.com/linux-cert-corprel%40linuxcare.com/</a></p>
<p>linux-cert-pr <a
href="http://www.mail-archive.com/linux-cert-pr%40linuxcare.com/">http://www.mail-archive.com/linux-cert-pr%40linuxcare.com/</a></p>
</blockquote>
<p></p>
<p>Thanks are due to Matthew Rice for pointing out the availability of
mail-archive.com.</p>
<p><br>
</p>
<hr>
<h2><a name="Final">Final Thoughts</a></h2>
<p>We're nearing the end of the first phase of our development. By the end of
this month, people should be taking our first beta exam in VUE testing centers
all around the globe. Our psychometricians will be analyzing data. Others
will be finalizing our second (T2) set of exams. Another group will be
working on translation of the exams into other languages. Yet another group
will be starting work on the objectives for the Level 2 exams. Marketing
programs will be underway.. we'll be gearing up for LinuxWorld in San Jose in
August... it's going to be a crazy and exciting time!</p>
<p>I hope you'll visit our web site at www.lpi.org and join in the fun and
excitement. It's only through the power of MANY people working together that
we've been able to make this happen!</p>
<p>Thank you all for your continued support.</p>
<p><br>
</p>
<hr>
<center>
<h4><a name="Previous"><a name="Previous1">Previous</a> ``Linux
Certification'' Columns</a></h4>
</center>
<a href="../issue33/york.html">Linux Certification Part #1, October 1998</a>
<br>
<a href="../issue34/york.html">Linux Certification Part #2, November 1998</a>
<br>
<a href="../issue35/york.html">Linux Certification Part #3, December 1998</a>
<br>
<a href="../issue37/york.html">Linux Certification Part #4, February 1999</a>
<br>
Linux Certification Part #5, Mid-April 1999
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Dan York <BR>
Published in Issue 43 of <i>Linux Gazette</i>, July 1999</H5></center>
<!--===================================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">AbiWord's Potential</font></H1>
<H4>By <a href="mailto:layers@marktwain.net">Larry Ayers</a></H4>
</center>
<P> <HR> <P>
<center><font color="maroon"><h3>Introduction</font></h3></center>
<p>There is a tension in the Linux community between developers, who tend to
be comfortable with their text editors and mark-up formatting systems, and
users who want the sort of word processor common in the Mac and Windows
worlds. This tension periodically sparks discussions in newsgroups and
mailing lists, but an Open Source project has yet to produce a finished, fully
usable word processor. The release of GPLed source last year for the Maxwell
word processor failed to draw enough programmer interest to result in an
ongoing and dynamic project to complete the program, possibly because of
Maxwell's reliance on the Motif widget set.
<p>Of course the commercial products StarOffice, WordPerfect and Applix Words
are available for Linux. These are large applications; I'm under the
impression that many users desire something quick to load and less complex, a
word processor suitable for formatted business letters and other shorter
documents. Another factor mitigating against the above commercial
applications is the lack of community involvement. I've noticed that
closed-source applications don't seem to generate mailing list and newsgroup
postings as readily as do various free software projects. I rarely write
directly to developers involved in the various free software projects I
follow, but I know who they are and if the need happened to arise I
wouldn't hesitate to make contact. Free software projects typically attract a
secondary level of co-developers and skilled users who often frequent the
various net forums answering questions and providing assistance.
<p>It has been suggested that writing a good word processor is such a
difficult task that it is beyond the capabilities of an Open Source
development process. More likely, I think, is that a large enough group of
programmers ardently desiring such an application just hasn't ever coalesced.
Perhaps this sort of project is suited for a hybrid approach, one involving
both a commercial firm and independent free-software programmers. AbiSource,
Inc. is giving this idea a try.
<center><font color="maroon"><h3>AbiWord So Far</h3></font></center>
<p>Is it possible for an ambitious Open Source project to thrive and produce useful
results under the sponsorship of a for-profit corporation? The Mozilla
project is one such undertaking. After over a year of source availability much
has been accomplished but the current binary releases, while intriguing,
aren't yet as usable as the current releases of Netscape Communicator. The
bulk of the new code still seems to be primarily coming from paid Netscape
programmers. This might indicate that free software programmers prefer
working on projects which aren't under a corporate aegis; another possible
reason is the sheer size and complexity of the Mozilla code-base. Many
programmers might lack the time and/or skill to comprehend such a project, and
starting from scratch with a relatively new widget-set (GTK) must further
increase the difficulty.
<p>The programmers who started AbiSource, Inc. don't seem to be daunted by the
dearth of efforts to mix business with Open Source from the very beginning of
a project. Mozilla already had a massive source tree when its development was
opened to the outside world last year, while Eric Allman's Sendmail business
followed years of non-profit and open development; Eric had written a proven and
widely-used piece of software before he formed a company to provide service
for corporate users of Sendmail.
<p>It should be kept in mind that these are still early days in the
intersection of the free software and business worlds. Another year or so of
experimentation with the various trials and ventures ought to make evident which
approaches have managed to make money without driving away the developers and
users in the free software community. AbiSource is a new company gambling
that its ideas will prove viable and useful.
<p>AbiSource's goal is to provide basic Open Source business applications for
Linux, Windows, and BeOS users. Their idea is to give their applications away
and charge for service and customization. Abi's first product is a GTK-based
word processor, AbiWord. Outside programming help is welcomed and all of the
usual paraphernalia of an Open Source project, such as mailing lists, CVS
servers, and bug-reporting mechanisms, are available from the AbiSource
web-page,
<a href="http://www.abisource.com">http://www.abisource.com</a>.
The number of non-Abi volunteer programmers contributing code isn't
mentioned on the site, but I believe that the completion of the BeOS port
was largely due to outside Be programmers.
<p>It's interesting that while the source code is under the GPL and thus freely
available and modifiable, the names AbiSource and AbiWord are copyrighted.
This is intended to protect whatever reputation and name-recognition the
company might gain if their services become popular.
<p>The most significant difference between AbiWord and nearly every other
word processor available is the nature of the native file format. An *.abw file is
written in XML and thus is also in ASCII format; the files can be read by any
text editor. This is quite a break with word processor tradition and ensures
that when you write a document with AbiWord you don't run the risk of being
strictly tied to one particular word processor, which may not even run on
machines five years from now. AbiWord can also save in the HTML and RTF
formats, both of which are accessible with word processors such as MS-Word and
WordPerfect. Due to limitations of HTML and RTF some formatting
information is lost (such as the specific fonts used), but attributes such as bold
and italic font styles and tab-settings are retained. If XML really does
become a widely-used and open data-format (as its proponents predict)
AbiSource might be in a good position to gain users and clients.
<p>Many Linux users would like to be able to read MS-Word files with a Linux
word processor. StarOffice, Applix Words, and WordPerfect all come with
filters for the ubiquitous format; these filters usually work well with simple
documents but more complex documents with embedded macro routines are another
matter. AbiSource has chosen to avoid this particular can of worms; the RTF
support should ensure that simply formatted files can be exchanged with Word
users.
<p>Linux users and developers in academia, with its strong unix traditions,
have less of a need to be able to deal with MS-Word files than do the growing
numbers of users coming to Linux from the "real" world, the larger
world of commerce and corporations. Until the nearly universal usage of the
MS-Word format for even the simplest documents begins to decline, alternative
word processors will have to struggle to gain market-share. The fact that
AbiWord is free should be of some help, though there still exists a common
idea that free software is somehow suspect.
<p>With the release of 0.7 (and most recently 0.7.1) AbiSource began to make
binaries freely available on their web-site and have even pressed CDs which
are available at a nominal price. This would seem to indicate that the program has
reached a state of usability. I've been trying out the latest release;
it's serviceable but basic and seems to be stable. I've not had it crash
once. Few of the paragraph and document formatting functions have been
enabled at this point, but font-changes and tab-settings work well. Zooming
(enlarging the apparent size of the document on the screen) is enabled. The
fonts can be changed either from a drop-down selector or with the spiffy GTK
font-selector dialog-box. Here is a screenshot of version 0.7.1:
<p><img alt="AbiWord window" src="gx/ayers/abi.gif" width=690 height=631>
<p>Looks like a normal word processor, doesn't it? Notice the red squiggly
lines beneath certain words; this is supposed to indicate misspelled words. I
have yet to find a way to turn it off. AbiWord comes with its own dictionary,
but there doesn't yet seem to be a way to spell-check a document. Many of the
menu-items are non-functional. Clicking on one of these summons a message-box
stating that "the [function] dialog hasn't been implemented yet"
followed by a pointer to lines in the source file which need the work, a
thoughtful hint to a prospective code contributor.
<p>If you give AbiWord a try, create a new file with a few lines of content,
save it, then examine the resultant <b>*.abw</b> file with a text editor. Your
content will be readable in this file, with surrounding XML tags indicating
formatting specifications. As an example, here is the last line of the file
used in the above screenshot:
<p>
<pre><code><p props="line-height:1.5; margin-right:1.8125in">
<c props="font-family:Century Schoolbook; font-size:14pt; font-style:normal;
font-weight:normal">Variable line-spacing is now working. This is set now for
one and one-half rather than single-spacing.</c></p>
</code></pre>
<p>As you can see, the formatting tagging is comprehensible and could even be
modified "by hand", in an editor rather than in the
word processor. The actual content is accessible, a welcome difference from
the usual binary word processor format in which the content is immersed in a
sea of unreadable binary symbols.
<p>The source distribution contains some interesting examples of
<b>*.abw</b> files but these files were omitted from the binary packages.
<p>In the Linux version, and I assume in the Windows and BeOS versions as
well, printing is handled by the existing print system. On my system the file
seems to be converted to Postscript format, then is passed to Ghostscript for
processing by my print filter. AbiWord uses standard Postscript Type 1 fonts,
but for some reason they need to be located in an Abi-specific directory.
Several standard fonts are supplied with AbiWord, but more can be added as
long as both the <b>*.afm</b> and the <b>*.pfa</b> files are supplied for each
font. As in standard X Windows font installation, the index file
<kbd>fonts.dir</kbd> must be updated as well.
<hr>
<center><font color="maroon"><h3>Conclusion</h3></font></center>
<p>In its current state AbiWord is useful for writing short, simply formatted
documents, but lack of paragraph and document formatting templates, as well as
the lack of functional image insertion, limit its scope. It seems to me that
AbiSource has developed the base structure of the word processor solidly, and
the hooks for completion of the feature-set are in place in skeletal form and
just need to be fleshed out. The decision to use an XML file format should
appeal to users who would like to use something other than the exclusive
binary file-formats of typical word processors. Whether AbiSource will be
able to keep the development process alive until revenue is generated remains
to be seen, but at least the source code will remain available should they fail.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1999, Larry Ayers<BR>
Published in Issue 43 of <i>Linux Gazette</i>, July 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_backpage43.html#authors">About This Month's Authors</a>
<li><a HREF="./lg_backpage43.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">Andrew Feinberg</H4>
Andrew has been using Linux for about three years and computers
for even longer. He is a Debian GNU/Linux developer and an
organizer of the High School Linux User Group site
(<A HREF=http://hs-lug.tux.org/>http://hs-lug.tux.org/</A>). He can be reached
at <A HREF=mailto:andrew@ultraviolet.org>andrew@ultraviolet.org</A>.
<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">Terry "Mongoose" Hendrix I</H4>
Terry has a web page at <A HREF="http://www.westga.edu:80/~stu7440/">http://www.westga.edu:80/~stu7440/</A>.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Norman M. Jacobowitz </H4>
Norman is a freelance writer and marketing consultant
based in Seattle, Washington. Please send your comments,
criticisms, suggestions and job offers to <A HREF=mailto:normj@aa.net>
normj@aa.net</A>.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Sean Lamb</H4>
<EM>[Sean wrote the Caldera review in last month's </EM>LG<EM>, issue #42.]
</EM>
I am a computer science major and LAN Admin at Lakeland College's Madison, WI,
campus as well as a member of the Wisconsin DOT Help Desk and Server Backup
teams. My previous Linux experience was solely with RedHat until installing
Caldera 2.2. I am a member of MadLUG (the Madison Linux User Group, at <A
HREF=http://madlug.jvlnet.com>http://madlug.jvlnet.com</A>) and an active
contributor to the user group's web presence. When I'm not playing with Linux,
I'm building and running my model railroad. I can be reached at <A
HREF=mailto:slambo42@my-dejanews.com> slambo42@my-dejanews.com</A>.
<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.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Anderson Silva</H4>
<A HREF="http://www.4christ.org/anderson.html">Anderson</A>
is a Senior at Liberty University majoring in Computer Science.
Originally from Brazil, now he works at the University's
<A HREF="http://www.liberty.edu/itrc">Information Technology
Center</A>. He is also a member of the <A HREF="http://www.lylug.org/">
Lynchburg Linux User Group</A> in Lynchburg, Virginia.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Jan W. Stumpel</H4>
Jan lives in Oegstgeest, The Netherlands.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Jeff Wall</H4>
Jeff is Production Manager of Mahaffeys' Quality Printing in
Jackson, Mississippi. He helped start the Linux Users Group of Jackson
(<A HREF=http://www.lugoj.org>http://www.lugoj.org</A>) "because we didn't have
one". Happily married, he has a yellow Labrador named Buckminster Fuller and
entirely too many computers. He'll discuss his Linux performance testing the
drop of a hat at <A HREF=mailto:jefferson1@linuxman.net>jefferson1@linuxman.net
</A>.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Dan York</H4>
Dan has been working in the corporate training field for
9 years and is currently employed in the Education department
of <a href="http://www.linuxcare.com/">Linuxcare</a>. He has
been working with the Internet and UNIX systems for the past
13 years and with PCs since the first Apples in 1977. He is
currently the Chair of the Board of Directors of the <a
href="http://www.lpi.org">
Linux Professional Institute</a> and is very grateful that
Linuxcare allows him to spend part of his day working on LPI issues.
Dan is also the maintainer of <a href="http://www.linuxtraining.org/">
www.linuxtraining.org</a>. He enjoys spending his almost-non-existent
free time with his wife and their greyhound and cat at home in New Hampshire.
<a name="notlinux"></a>
<P> <hr> <P>
<!--====================================================================-->
<center><H3><font color="maroon">Not Linux</font></H3></center>
<P> <HR> <P>
<!--======================================================================-->
<P>
I want to give a <FONT SIZE=+2><STRONG>big thanks</STRONG></FONT> to our
authors this month for giving us such a substantial issue. This issue has
almost twice as many articles as last month, and I learned a thing or two
from some of them.
<P> This issue is a little milestone for me. It marks my first time publishing
an ezine without outside help.
<P> Dealing with the one letter where we didn't have a common language to
communicate with got me thinking about my interest in
<STRONG>Esperanto</STRONG>. Because if we all had a common, simple auxiliary
language to fall back on (one much easier to learn than English!), these things
wouldn't happen. Are there any <EM>Gazette</EM> readers who speak Esperanto?
If so and you'd like to chat, write me. <EM>Cxu estas iuj ajn legantoj je la
</EM>Gazette<EM>, kiuj parolas Esperante? Se jes, kaj se vi volus babili,
skribu al mi.</EM>
<P>
<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="index.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="ayers.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<p><hr><p>
<center>
<I>Linux Gazette</I> Issue 43, 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 © 1999 Specialized Systems Consultants, Inc.<br>
</center>
<P>
</BODY>
</HTML>
|