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
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE> Linux Gazette Front Page </TITLE>
</HEAD>
<BODY>
<H2>
<IMG SRC="../gx/banner.gif"
ALT="Linux Gazette... making Linux just a little more fun!">
</H2>
<H5>Copyright © 1996 Specialized Systems Consultants, Inc.
<A HREF="mailto:linux@ssc.com"><I>linux@ssc.com</I></A></H5>
<P> <HR> <P>
<H2>Welcome to Linux Gazette!<img src="../gx/tm.gif" alt="(tm)"></H2>
<P>
<I>Linux Gazette</I>, a member of the Linux Documentation Project, is
an on-line WWW publication that is dedicated to two simple ideas:
<UL>
<LI>Making Linux just a <I>little</I> more fun
<LI>Sharing ideas and discoveries
</UL>
<P>
The basic idea behind these two concepts is that Linux is
one cool OS, whose price for admission is a willingness to read,
learn, tinker (aka, <I>hack!</I>), and then share your experiences. The
Gazette is a compilation of basic tips, tricks,
suggestions, ideas and short articles about Linux designed to
make using Linux fun and easy. <I>LG</I> began as a personal project of John M.
Fisk, and grew to include
contributions freely provided by a growing number of authors. <I>Linux
Journal</I> is now publishing the Gazette using material contributed by outside
authors <a href="../authors.html">(note to potential authors)</a>.
Without these authors there would not be a Gazette, and I thank them all.
Drop a note to the author of anything that you find helpful or
instructive--the author's e-mail address is included for this very
purpose.
<P>
<I>Linux Gazette</I> is a non-commercial publication and will
remain that way.
A tar, gzip file containing all issues of <I>Linux Gazette</I> and one containing
the current issue can be found at <A
HREF="ftp://ftp.ssc.com/pub/lg/">ftp://ftp.ssc.com/pub/lg/</A>
<P>
Thanks to <B>Matt Welsh</B>, coordinator of the <B>Linux
Documentation Project</B>, for graciously bringing the <I>Linux Gazette</I>
under the auspices of the LDP. The material included in these documents is
covered by a designedly liberal copyright: as long as you are using the
material for non-commercial purposes, you may do with them as you please.
For information regarding copying and distribution of this material read
the <A HREF="../ssc.copying.html">Copying License</A>.
<P>
A new table of contents will appear with each issue that will allow you to
easily find articles of interest. A search engine is also provided to
allow you to search all issues for items relating to a particular subject.
<P>
Have fun!
<P> <HR> <P>
<UL>
<LI><A HREF="./lg_toc11.html">Table of Contents Issue #11</A>
<LI><A HREF="../issue10/lg_toc10.html">Table of Contents Issue #10</A>
<LI><A HREF="../issue09/lg_toc09.html">Table of Contents Issue #9</A>
<LI><A HREF="../issue01to08/gazette_toc.html">Table of Contents Issues #1-#8</A>
<LI><A HREF="../lg_index.html">Index of All Issues</A>
</UL>
<form method="post" action="http://www.ssc.com/cgi-bin/htsearch">
<table cellspacing=0>
<tr><td colspan=2><hr size=4></td></tr>
<tr><td>
<B> Search In:</b> <select name=restrict>
<option value="/lj/">Linux Journal (TM)
<option value="/ssc/" >SSC Products and Services
<option value="/websmith/" >WWWsmith Online
<option value="/linux/" >Linux Resources
<option value="/lg/" SELECTED>Linux Gazette (TM)
<option value="" >Entire Web Site
</select>
<br>
<B>Search For:</b>
<input type="text" size="30" name="words" value="">
</td><td>
<input type="image" src="../gx/searchbtn.gif" border=0 name="Search"><br>
</td></tr></table>
</form>
<P> <HR><p>
<h3>
Click here for <i>Linux Journal's</i> latest
<A HREF="http://www.ssc.com/linews/index.html">
<IMG SRC="../gx/fire.gif" alt="Hot Linux News!" align=middle border=0></A></h3>
<p><HR><p>
<H2><A HREF="../mirrors.html">Linux Gazette WWW & FTP Mirror Sites</A></H2>
<P>
For those readers who are accessing <I>Linux Gazette</I> from outside the
U.S. or are having problems with slow connections at a particular site,
mirror sites are available worldwide.
Thanks to all of the people who have kindly offered the use of their
WWW and FTP sites in order to make this possible!
<P> <HR> <P>
Got any <I>great</I> ideas for improvements! Send your
<A HREF="mailto:gazette@ssc.com">comments, criticisms, suggestions and
ideas.</A>
<P> <HR> <P>
<H3><I>Linux Gazette</I> is published by:<BR> </H3>
<center><H2><IMG SRC="../gx/SSC_LOGO.gif" ALT=" "><A HREF="http://www.ssc.com/">
SSC</A> - Publishers of <A HREF="http://www.ssc.com/lj/">
Linux Journal</A><img src="../gx/tm.gif" alt="(tm)"></H2></center>
<P> <HR> <P>
<I>Linux Gazette</I>, http://www.ssc.com/lg/ <BR>
This page written and maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com"> gazette@ssc.com</A>
<P> <HR> <P>
<!--====================================================================-->
<H1><IMG SRC="./gx/boo-banner2.gif" ALT="Linux Gazette"></H1>
<H5>Copyright © 1996 Specialized Systems Consultants, Inc. <BR>
For information regarding copying and distribution of this material see the
<A HREF="../ssc.copying.html">Copying License</A>.</H5>
<P> <HR> <P>
<center><H1>Table of Contents Issue #11</H1></center>
<P> <HR> <P>
<UL>
<LI><A HREF="../lg_frontpage.html">The Front Page</A>
<LI><A HREF="./lg_mail11.html">The MailBag</A>
<LI><A HREF="./lg_tips11.html">More 2 Cent Tips</A>
<ul>
<li><a HREF="./lg_tips11.html#xterm">Another X Term Title Trick</a>
<li><a HREF="./lg_tips11.html#file">File Decompression</a>
<li><a HREF="./lg_tips11.html#quick">Quick Tricks from John Fisk</a>
<li><a HREF="./lg_tips11.html#two">Two Tips for the Price of One</a>
<li><a HREF="./lg_tips11.html#emacs">The Ultimate Emacs Control M Trick</a>
<li><a HREF="./lg_tips11.html#vi">VI Trick</a>
<li><a HREF="./lg_tips11.html#xdm">XDM Replacement</a>
</ul>
<LI><A HREF="./lg_bytes11.html">News Bytes</A>
<ul>
<li><a HREF="./lg_bytes11.html#general">News in General</a>
<li><a HREF="./lg_bytes11.html#software">Software Announcements</a>
</ul>
<LI><A HREF="./gm.html">Graphics Muse</A>, by Michael J. Hammel
<LI><A HREF="./xemacs-tip.html">Kill-Ring for Xemacs</A>, by Larry Ayers
<LI><A HREF="./linus.html">Linus to Move to U.S. in 1997</A>, by Phil Hughes
<LI><A HREF="./hotjava.html">New Release Reviews</A>, by Larry Ayers
<ul>
<LI><A HREF="./hotjava.html">Sun's Hotjava Browser on Linux</A>
<LI><A HREF="./tkg.html">The TkGoodstuff Package</A>
<LI><A HREF="./xfiles.html">X-Files</A>
</ul>
<LI><A HREF="./tapr.html">TAPR Statement on Spread Spectrum Technology
Development</A>, from Steve Stroh
<LI><A HREF="./tclinst.html">TCL/TK Installation</A>, by Earl Brown
<LI><A HREF="./wkndmech.html">Weekend Mechanic</A>, by John M.
Fisk
<LI><A HREF="./lg_backpage11.html">The Back Page</A>
<ul>
<li><a HREF="./lg_backpage11.html#authors">About This Month's Authors</a>
<li><a HREF="./lg_backpage11.html#notlinux">Not Linux</a>
</ul>
</UL>
<P> <HR><P>
<!--=============================================================-->
<A HREF="./issue11.txt">The Whole Damn Thing 1 (text)</A><BR>
<A HREF="./issue11.html">The Whole Damn Thing 2 (HTML)</A><BR>
are files containing the entire issue: one in text format, one in HTML.
They are provided
strictly as a way to save the contents as one file for later printing in
the format of your choice;
there is no guarantee of working links in the HTML version.
<!--=============================================================-->
<P> <HR><P>
Got any <I>great</I> ideas for improvements! Send your
<A HREF="mailto:gazette@ssc.com">comments, criticisms, suggestions
and ideas.</A>
<P><hr><p>
This page written and maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com"> gazette@ssc.com</A>
<!--====================================================================-->
<H4><IMG ALIGN=MIDDLE SRC="./gx/bat-l.gif">
"Linux Gazette...<I>making Linux just a little less scary!</I>"
<IMG ALIGN=MIDDLE SRC="./gx/bat-r.gif"> </H4>
<HR>
<center>
<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>
</center>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sun, 29 Sep 1996 01:46:02 -0700 <BR>
Subject: <B>MPEG </B> <BR>
From: Tristan RAMBO Savatier tristan@mpeg.org <BR>
<P>
FYI: Linux now has a fast MPEG software player !
<P>
Check MpegTV at <a href="http://www.mpegtv.com/">
http://www.mpegtv.com/</a>
<P>
--Tristan <BR>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Mon, 30 Sep 1996 <BR>
Subject: <b>Help?? Firewalling under 2.0.X</b> <BR>
From: jwells@nwlink.com (James E. Wells) <BR>
<P>
Greetings,
<P>
I know this message should normally be sent to one of the linux
newsgroups, however I felt this to be a bit more efficient. Basically
the problem is that I can't seem to get IP Masquerading going under 2.X.
I have enabled firewalling / masquerading and disabled forwarding /
bridging. When I look at /proc/net I have two alias files which have to
do with the IP Aliasing, and I have IP Accounting, Forwarding, Input,
and Output, however I have no Masquerading. I have rebuilt the kernel a
number of times to no avail. I have toyed with ipfwadm a number of
times and found that it works fine for all forms of firewalling except
for Masquerading. Any help from you or the readers of this, the best
electronic mag on the net, would be greatly appreciated.
<pre>
================================ ===============================
// \\ // \\
|| James E. Wells | | ||
|| mailto:nikatjef@nwlink.com | | Junior System Administrator ||
|| mailto:james@LaserDyn.com | | Northwest Link ||
\\ // \\ //
================================ ===============================
</pre>
<blockquote><i>
(Okay, all you firewall experts out there, who's got a good answer for this
one? --Editor)
</i></blockquote>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 02 Oct 1996 14:45:06 -0400 <BR>
Subject: <b>Wow! Support for Win 1.3 :)</b> <BR>
From: Eric Wright majestik@netcom.ca <BR>
<P>
In issue #10, Product Announcements
<blockquote>
V Multi-Platform GUI
Version 1.13 of V for X, Windows 1.3, and WIN32 (NT, Windows95) was released on September 9, 1996. It is....
</blockquote>
Windows 1.3, eh? heheh
<P>
Ps: great job with LG, keep it up ...
<blockquote> <I>
(Oops, didn't read that one close enough, I guess. I'd say that was a definite
typo, and it would have been nice to have mentioned Linux more directly. This
product does work for Linux--there is an article by Dr. Wampler about it
in the upcoming December issue of Linux Journal. Anyway I've changed it to
take out all Windows references. Sorry about that. --Editor)
</I></blockquote>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Thu, 03 Oct 1996 10:35:38 +0000 <BR>
Subject: <B>#10 </B> <BR>
From: "Adam D. Moss" adam@uunet.pipex.com <BR>
<P>
Thanks for another Linux Gazette issue!
<P>
--Adam
<PRE>
Adam D. Moss / Consulting / adam@uunet.pipex.com
====-==-=-=--=--=---=---=-------- ---- --- -- -- -- - - - - - - -
UUNET PIPEX / 332 Science Park / Milton Road / Cambridge CB4 4BZ
/ England / Voice +44 (0)1223 250100 / Fax +44 (0)1223 250101
- - - - - - - -- -- -- --- ---- --------=---=---=--=--=-=-==-====
</PRE>
<blockquote><i>
(Short and sweet. Thank you for reading <I>LG</I>. --Editor)
</i></blockquote>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Thu, 03 Oct 1996 15:12:16 +0800 <BR>
Subject: <B>Postscript Format Request </B> <BR>
From: Phil Lewis lewispj@eeye.com.sg <BR>
<P>
Could you please provide the lg in postscript format please so that it
will be possible to easily read it in hard copy format - It will get a
wider readership and reduce unnecessary multiple www downloads each time
within our organization.
<P>
Thanks,
Phil Lewis <BR>
Electric Eye <BR>
Singapore <BR>
<blockquote><i>
(Due to popular request, I have added one big text file to the list of
options in the Table of Contents called "The Whole Damn Thing 1". Also.
thanks to one of our readers (see next letter) there is also an HTML file called
"The Whole Damn Thing 2". For now that's the best I can do for you--postscript
and other formats will have to wait. --Editor)
</i></blockquote>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Thu, 03 Oct 1996 12:56:52 -0500 <BR>
Subject: <B>New Set Up of LG </B><BR>
From: Tushar Teredesai Tushar@Agents.ECE.IIT.Edu <BR>
<P>
Hi,
<P>
I miss the old set up of LG whereby I could download the whole of the LG
which was contained in a single page. Even issue 9 had and alternative
comprising the whole LG in a single page. Hope U provide such a complete
page again. Though there is text version of the entire thing, I would
prefer a html version.
<P>
Maybe I could do that combining to a single .html and .txt if U tell me
how (i.e. the rules for formatting.)
<P>
BTW, great job. Very useful for guys like me who are new entrants to
administration of their own systems after being dependent on others to
do the dirty job.
<P>
Thanx. <BR>
--Tushar <BR>
<PRE>
-->> http://Tushar.Home.ML.Org
-->> mailto:Tushar@Agents.ECE.IIT.Edu
Running ....... Cos anything else would be a waste...
`:::' ....... ......
::: * `::. ::'
::: .:: .:.::. .:: .:: `::. :'
::: :: :: :: :: :: :::.
::: .::. .:: ::. `::::. .:' ::.
.:::.....................::' .::::..
</PRE>
<blockquote><i>
(What a wonderful idea! Neither Michael, the webmaster, nor I have time to
combine <I>LG</I>
each month, and we were thinking of putting out requests for someone to do
it for us. And here's a volunteer! So we now have "The Whole Damn Thing 2"
in HTML format for issue 9 thanks to Michael, and for issue 10 thanks to
Tushar. What great guys! --Editor)
</i></blockquote>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 02 Oct 1996 23:00:22 -0400 <BR>
Subject: <B>Linux version of aprs </B><BR>
From: bill pemberton wapembe@gallows.smart.net <BR>
<P>
in the current (issue 10) of the <I>Linux Gazette</I> you mentioned that a
Linux version of aprs was available. can you provide further ref?
i searched the ham links on the net but could find no reference to the
Linux version. thanks for the assist.<BR>
-- <BR>
wapembe@smart.net "actual meaningless quote to be inserted soon!"
<blockquote><i>
(Sorry, I personally cannot. You might try writing Steve Stroh
(strohs@halcyon.com), who sent us the TAPR Position Statement that
appears elsewhere in this issue. --Editor)
</i></blockquote>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: 05 Oct 1996 23:42:02 +0200 <BR>
Subject: <B>mailing list </B><BR>
From: Markus Gutschke gutschk@uni-muenster.de <BR>
<P>
Have you considered to set up a mailing list that distributes copies of
<i>Linux Gazette</i>? For me, it is very cumbersome to actively look for new
versions of files and to download them from the net; sending/receiving
e-mail/news is fine though, because this can be automated and I do it
in batch-mode every night.
<P>
Markus
<blockquote><i>
(Yes, this has been requested before, and is on the list of things to
possibly do in the future. However, setting up and maintaining a mailing
list is not something I have time for in the foreseeable future. Since I
plan to have a new issue up on the first of each month, you only have to
look for changes once a month. That shouldn't be too cumbersome.--Editor)
</i></blockquote>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Sat, 12 Oct 1996 14:17:49 -0400 <BR>
Subject: <B>William R. Della Croce, Jr.</B><BR>
From: "rikk@dragonstar.net" rikk@dragonstar.net <BR>
<P>
Greetings,
<P>
In reference to your article on whether or not Linux is a registered
trademark or not...
<P>
First off allow me to say "This guy is the lowest in the scum chain."
There is commercialization, and there is gluttony. Seems to me this person
is trying to take over the Linux name to better his pockets. I
wish you had printed his e-mail address, and let him get a feel for
the anger and disgust...
<P>
At any rate, keep up the good work!
<P>
TTFN....Rikk <BR>
rikk@dragonstar.net <BR>
<PRE>
+------------------------------------------------------------------------+
|
| Life on the edge, dragonstar.net
|
| Friends don't let friends do DOS!
|
| Running Linux 2.x Intel x86
|
+------------------------------------------------------------------------+
</PRE>
<blockquote><I>
(Yes, well, while we agree with your sentiments, printing his e-mail address
would probably not have been productive. Lawyers are working on this situation, and
we keep hearing that we will be getting an announcement any day now. Maybe
this week, something will break. It will be on the "Linux Hot News" button
as soon as it does. Thanks for writing. --Editor)
</I></blockquote>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Thu, 17 Oct 1996 14:55:31 -0400 <BR>
Subject: <B>pointer trouble </B> <BR>
From: Bill Semler wsemler@epix.net <BR>
<P>
Hi -
<P> Just wanted to let you know that the URL ftp://ftp.ssc.com/pub/lg
pointed to
in, roughly, the middle of the front page actually points to ftp.ssc.com/lg
which will
display the directory structure but things cannot be accessed. Not a
real big deal, but... Thanks for everything.
<P>
-- <BR>
Bill Semler, N3RLR <BR>
wsemler@epix.net <BR>
<blockquote> <I>
(Thanks for letting me know. I've got it fixed now. Don't know why, but
leaving out the /pub happens to me often when I type that address. Think
it must be time to set up an abbreviation for it, so vi can take care of
it for me. --Editor)
</I> </blockquote>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Fri, 18 Oct 1996 16:05:00 -0700 <BR>
Subject: <B> Linux Gazette versions </B> <BR>
From: paulc@sunsite.unc.edu <BR>
<P>
I noticed a few people recently wanting to take versions of the Linux
Gazette home with them or trying to convert them to run on MS-Win
systems, well there is a program on the Amiga which fetches pages from
the web and changes links over in the process to either an absolute or
relative path - great for the gazette. Well, I'm in the process of
converting this program to Linux, and would be happy to supply you with
the compilable source code so that you can then place the file generated
by this program on one of the pages for download (after gzipping it
maybe)
<P>
Squiz.
<blockquote> <I>
(Thanks for thinking of me. This does sound like easy method, and an
easier method is always a better method. Send it on when it's ready.
--Editor)
</I> </blockquote>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 22 Oct 1996 14:17:57 -0700 <BR>
Subject: <B> Xwindows depth </B> <BR>
From: James Amendolagine uq274@freenet.victoria.bc.ca <BR>
<P>
Hello,
<P>
I have recently been messing with my x-server, and have managed to
get a depth of 16, ie 2^16 colors. This works really nice with netscape,
but some programs (doom, abuse, and other games) wont work with this
many colors. Do you know of a fix? I have tried to get X to support
multiple depths--to no avail. The man-page suggests that some video
cards support multiple depths and some don't. How do I know if mine
does.
<P>
I would really like to see an article on this subject,
<P>
Thanks, <BR>
Jamie <BR>
<blockquote> <I>
(Okay, guys here's another request for help with a good idea for an article.
All you authors out there looking for a subject, start writing. --Editor)
</I> </blockquote>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 23 Oct 1996 12:54:11 -0500 (CDT) <BR>
Subject: <B> have you seen latest replacement for X? </B> <BR>
From: jim fetters gfetters@uxa.ecn.bgu.edu <BR>
<P>
well, sort of. please check this out.
<P>
<A
HREF="http://veda.synet.net/numan/berlin">http://veda.synet.net/numan/berlin</A>
<P>
-jim
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Thu, 24 Oct 1996 08:10:41 +0200 <BR>
Subject: <B> could not login to ftp server </B> <BR>
From: Hermann Boeken hboeken@de.lucent.com <BR>
<P>
Hi.
<P>
In the mailbag of LG 10 you write:
<P><blockquote>
> (No problem. tar files are available, I've just been having technical<br>
> difficulties -- they were unreadable. At any rate John Fisk sent us
new <br>
> files that are now up at ftp://ftp.ssc.com/pub/lg/. Also, our issue 10 file, <br>
> lg_issue10.tar.gzp and all issues (1-10) file,
LinuxGazette_oct96.tar.gzp <br>
> are located at that site. --Editor)<br>
</blockquote>
<P>
But it is (still?) not possible to login to the ftp server.
<P>
Hermann
<PRE>
--
...
':'...''.
'::.''''':;:
.-Hermann Boeken--Fon:+49-911-5266186---'::;-------;;:--.
| Fax:+49-911-5266299 :::,, :;; |
| ;:;' ;:; |
| Lucent Technologies ;;: .;: |
| Bell labs Innovations :;:, ,:;: |
| OEPT ':;;;:;:' |
| System Integration & Test |
| |
`-hboeken@lucent.com----------na426@fim.uni-erlangen.de-'
</PRE>
<blockquote> <I>
(Hmmm, it's been working for some time. The mirror sites have all downloaded
files from the ftp server with no problem. I guess I need to know more about
the type of problem you are having -- what kind of messages you get, etc.?
If you are using a web browser--which one and what version?
I have tried to write you directly several times, but all mail comes back
marked "Host unknown". --Editor)
</I> </blockquote>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Tue, 15 Oct 1996 17:10:52 +0100 <BR>
Subject: <B>Mirroring of Linux Gazette </B> <BR>
From: Massimo Orlando massimo@asterix.unime.it<BR>
<P>
Hi, <BR>
I am a student of Computer Science at University of Messina and I am the
system administrator of the Server of the Department.
I have written the form to become a mirror of the Linux Gazette but I
have a question for you:
<P>
Must I download the compress file (LinuxGazette_xxx.tar.gz) or
is it automatic?
<P>
P.S.: sorry for my english
<P>
Thank you for your future answer. <BR>
bye <BR>
Massimo Orlando <BR>
<blockquote> <I>
(Massimo, I seem to be having trouble getting mail to you--it keeps coming
back with unrecoverable errors. There is a README.mirrors file on the ftp site,
ftp://ftp.ssc.com/pub/lg/
with instructions. It is definitely not automatic. The University's site
is very cool, and I will be happy
for you to mirror <I>LG</I>. I will need an exact address though (for both the
mirror and you); it was
not obvious to me how to find <I>LG</I> just by looking at the University's
main web page. Please write again. --Editor)
</I> </blockquote>
<P> <HR> <P>
<!--====================================================================-->
<IMG ALT=" " SRC="../gx/envelope.gif">
Date: Wed, 23 Oct 1996 14:53:13 -0500 <BR>
Subject: <B>http://cenotaph.generec.nl/lg/issue10/lg_toc10.html </B><BR>
From: teun@cyclone.generec.nl <BR>
<blockquote> <I>
(Nice and short and full of information. Only two problems: I can't find
this page (Netscape returns "No DNS entry"), and mail to this address is
returned "host unknown". Please write again. --Editor)
</I> </blockquote>
<!--====================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc11.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF
CONTENTS ]"></A>
<A HREF="../index.html"><IMG SRC="../gx/homenew.gif" ALT="[ FRONT
PAGE ]"></A>
<A HREF="lg_tips11.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P>
<h5>This page written and maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com">gazette@ssc.com</A><BR>
Copyright © 1996 Specialized Systems Consultants, Inc. </H5>
<P><HR> <P>
<H4><IMG ALIGN=MIDDLE SRC="./gx/bat-l.gif">
"Linux Gazette...<I>making Linux just a little less scary!</I>
"<IMG ALIGN=MIDDLE SRC="./gx/bat-r.gif"> </H4>
<hr>
<!-- 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>.</center>
<p><hr><p>
<H3>Contents:</H3>
<ul>
<li><a HREF="./lg_tips11.html#xterm">Another XTerm Title Trick</a>
<li><a HREF="./lg_tips11.html#file">File Decompression</a>
<li><a HREF="./lg_tips11.html#quick">Quick Tricks from John Fisk</a>
<li><a HREF="./lg_tips11.html#two">Two Tips for the Price of One</a>
<li><a HREF="./lg_tips11.html#emacs">The Ultimate Emacs Control M Trick</a>
<li><a HREF="./lg_tips11.html#vi">VI Trick</a>
<li><a HREF="./lg_tips11.html#xdm">XDM Replacement</a>
</ul>
<P> <hr> <P>
<!--================================================================-->
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif"><a name="xterm">Another XTerm
Titlebar Trick</a></H3>
<P>
Date: Wed, 2 Oct 1996 16:11:35 -0700 (PDT)<BR>
From: Jonathan Gross <A HREF="mailto:jong@ssc.com">jong@ssc.com </A><BR>
<P>
I have a quick stupid shell script to change the titlebar on the
fly:
<PRE>
#!/bin/bash
echo "]0;$1"
</PRE>
where the ^[ is done in Emacs by typing C-q Esc and the ^G is done
by typing C-q C-g, or in vi by typing C-v instead of C-q before each
control sequence.
<P>
Then you type:
<PRE>
linux$ titlebar "string for window title"
</PRE>
Where "titlebar" is the name of your shell script. Dumb, simple,
but easy to use...
<PRE>
Jonathan Gross
Specialized Systems Consultants, 206-782-7733
"A jewel mine of courtesies and a living casket of diplomacy"
</PRE>
<P> <hr> <P>
<!-- ===================================================================== -->
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif"><a name="file">File Decompressing</a></H3>
<P>
Date: Fri, 27 Sep 1996 08:32:37 +0200 (MET DST) <BR>
From: Xabier Vazquez Gallardo, <A HREF="mailto:sixconse@sc.ehu.es">sixconse@sc.ehu.es </A><BR>
<P>
Hi there:
<P>
Here is a script I wrote two years ago, but I think it can
be useful for everybody. It can also help in learning shell script
programming.
<P>
The function of this script is to help ppl decompressing
compressed files with tar, gzip, compress, arj, zip, etc, and any
combination of these compression tools. Just type "gus filename" and the
script will call the necessary decompression program.
<P>
Thanx in advance, <BR>
Xabier Vazquez Gallardo
<PRE>
------------ 8< --------- 8< ---------- 8< ----------- 8< ------------
#!/bin/sh
# If you are under ULTRIX use /bin/sh5 instead of /bin/sh (too buggy)
################################################################################
# @(#)gus,v 2.8 11/22/1994 (c) XaBier Vazquez Gallardo <sixconse@sc.ehu.es>
# You'll need this external programs:
# gzip, tar, sed, awk, unarj, lha, zoo, unzip, test, pgp, uncompress, echo and
# uudecode. If you don't have all those programs maybe gus won't work.
#
# Program Description:
# Decompress all this kind of files and combinations of them:
# .arc .zip .ZIP .arj .zoo .lzh .lha .lzh .Z .z .tar .tgz .shar .pgp
# .[1-8ln] .man .uu and .uue
# * Man type files will be displayed
#
# Please send suggestions or gub reports to XaBi <sixconse@sc.ehu.es>
# Sorry about my English, but it's better than Spanish, isn't it?
################################################################################
gus_version="V2.8"
gus_date="11/22/1994"
# Show a long help :)
do_help ()
{
echo
echo This script helps you decompressing Unix archives compressed with compress,
echo gzip, tar, shar, lha, arj, zip, zoo, pgp, arc and uuencode. It also formats
echo manual pages. Now you don\'t need to type all those long lines to decompress
echo a tar + gz archive, only type \'gus file\' and it will do all the work.
echo "GUS knows this extensions and combinations of them (tar + gzip, etc):"
echo ".Z .z .zip .arj .zoo .arc .lha .lz .pgp .tar .tgz .shar .[1-8ln] .man .uu .uue"
echo
echo "USAGE: '`basename $0` [-h | [[-r | -rf] f1 [f2] ...]' will decompress f1, f2, ..."
echo " '-h' show you this help"
echo " '-r' remove with prompt compressed file after decompress it"
echo " '-rf' remove without prompt compressed file after decompress it"
echo "ie: '`basename $0` file1 -rf file2 file3' will do this:"
echo " decompress file[123] and remove file[23] without any ask"
echo " *WARNING* Be careful with option '-rf'"
exit 0
}
# Find a file in your path
# input : "filename"
# output: $filresult=full_path/filename || $filename="" + error message
# ie : findfile zip
findfile ()
{
sifs=$IFS
IFS=:
fileresult=""
for dir in $PATH; do
test -z "$dir" && dir=.
if [ -x $dir/$1 ] ; then
fileresult="$dir/$1"
break
fi
done
IFS=$sifs
test -z "$fileresult" && echo ERROR: Can\'t find $1
}
# Change status variables
# input: " | decompress_command_line" \
# " decompress_program_name +" \
# 1 (if gus must create a decompressed file) || 0 (if not) \
# 1 (if decompress program can pipe it result) || 0 (if not) \
# 1 (if decompress program accepts stdin pipes) || 0 (if not)
# output: none
# ie : changevars " | tar xvfo -" " tar +" 0 1 1
changevars ()
{
command=$command$1
message=$message$2
create=$3
exit_f=$4
do_cat=$5
}
# Ask Y/N before remove a file
# input : "filename"
# output : $removeit = 0 (if answer is no) || 1 (if is yes)
# ie : makeask /usr/local/foo.bar.tar
makeask ()
{
exit_ask=0
while [ $exit_ask = 0 ] ; do
echo "Do you want to remove '$1' [Y/N]? \c"
read yesno
case $yesno in
y* | Y*)
removeit=1
exit_ask=1
;;
n* | N*)
removeit=0
exit_ask=1
;;
esac
done
}
# Check program parameters and count files
# input : "command_line_params"
# output : $total_files=num_of_files_to_process || or help_screen
# ie : check_params -rf foo.tar
check_params ()
{
for i in $*
do
case $i in
-rf | -r)
total_files=`expr $total_files - 1`
;;
-h)
do_help
;;
esac
done
}
echo GUS $gus_version [$gus_date] General Unpack Shell for Un*x \(c\) XaBi
total_files=$#
check_params $*
if [ $total_files = 0 ] ; then
echo ERROR: not enough params
echo "TRY : `basename $0` -h"
exit 1
fi
if [ $total_files = 1 ] ; then
echo [ $total_files ] file to process ...
else
echo [ $total_files ] files to process ...
fi
removefile=0
promptbefore=0
for file_tmp in $*
do
case $file_tmp in
-rf)
removefile=1
promptbefore=0
continue
;;
-r)
removefile=1
promptbefore=1
continue
;;
esac
if test -f $file_tmp ; then
exit_f=0
command=""
message=""
do_cat=1
create=1
file=`basename $file_tmp`
while [ $exit_f -eq 0 ] ; do
old_file=$file
extension=`echo $file | sed -e 's/.*\.//'`
if [ "$extension" = "$file" ] ; then
extension=""
else
file=`echo $file | sed -e s/\.$extension$//`
fi
case $extension in
tar)
changevars " | tar xvfo -" " tar +" 0 1 1
;;
Z)
changevars " | uncompress" " compress +" 1 0 1
;;
z | gz)
changevars " | gzip -d" " gzip +" 1 0 1
;;
tgz)
changevars " | gzip -d | tar xvfo -" " tar + gzip +" 0 1 1
;;
uu | uue)
changevars " | uudecode" " uuencode +" 0 1 1
;;
shar)
changevars " | sh" " shar +" 0 1 1
;;
zip | ZIP)
if [ -z "$command" ] ; then
findfile unzip
test ! -z "$fileresult" && changevars $fileresult " zip +" 0 1 0
else
echo ERROR: Can\'t pipe to unzip. File partialy decompressed.
fi
exit_f=1
;;
arj | ARJ)
if [ -z "$command" ] ; then
findfile unarj
test ! -z "$fileresult" && changevars $fileresult" x" " arj +" 0 1 0
else
echo ERROR: Can\'t pipe to unarj. File partialy decompressed.
fi
exit_f=1
;;
arc | ARC)
if [ -z "$command" ] ; then
findfile arc
test ! -z "$fileresult" && changevars $fileresult" x" " arc +" 0 1
0
else
echo ERROR: Can\'t pipe to arc. File partialy decompressed.
fi
exit_f=1
;;
zoo | ZOO)
if [ -z "$command" ] ; then
findfile zoo
test ! -z "$fileresult" && changevars $fileresult" x" " zoo +" 0 1 0
else
echo ERROR: Can\'t pipe to zoo. File partialy decompressed.
fi
exit_f=1
;;
lzh | lha | lz | LZH | LHZ | LZ)
findfile lha
test ! -z "$fileresult" && changevars " | "$fileresult" x -" " lha +" 0 1 1
exit_f=1
;;
pgp)
findfile pgp
if [ ! -z "$fileresult" ] ; then
changevars " | "$fileresult " pgp +" 0 0 1
else
exit_f=1
fi
;;
[1-8nl] | man)
test -z "$command" && changevars " | nroff -man | more" " man +" 0 1 1
exit_f=1
;;
*)
exit_f=1
;;
esac
done
test $create -eq 1 && command=$command" > "$old_file
if [ -z "$message" ] ; then
echo ERROR: Don\'t know how to handle [ $file_tmp ]
else
message=`echo $message | sed -e 's/ +$//'`
echo "File [ `basename $file_tmp` ]"
echo "Type [ $message ]"
if [ $do_cat = 1 ] ; then
command="cat "$file_tmp" "$command
else
command=$command" "$file_tmp
fi
eval $command && {
if [ $removefile = 1 ] ; then
if [ $promptbefore = 1 ] ; then
makeask $file_tmp
test $removeit -eq 1 && rm -f $file_tmp
else
rm -f $file_tmp
fi
fi
} || echo ERROR: [ $file_tmp ] can\'t decompress ...
fi
else
echo ERROR: [ $file_tmp ] Can\'t process it! Exists????
fi
done
</PRE>
<P> <hr> <P>
<!--================================================================-->
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif"><a name="quick">Quick Tips from John</A></H3>
Date: Tue, 08 Oct 1996 08:18:39 -0500 (CDT) <BR>
From: John M. Fisk
<A HREF="mailto:fiskjm@ctrvax.Vanderbilt.Edu">fiskjm@ctrvax.Vanderbilt.Edu </A><BR>
<P>
I recently ran across a "Quick Tip" that might be useful to anyone
using the BASH shell. There's a rarely mentioned but very useful feature
that's included with it: an online help function that describes all of
its built-in functions. To use it you simply invoke it as:
<PRE>
% help <builtin>
</PRE>
and it displays a brief usage message. To get a listing of all of the
topics that are available, simply type in:
<PRE>
% help
</PRE>
This displays a listing of all of BASH's builtin functions. So, for
example, if you were interesting in using the "getopts" builtin in order
to parse command line options for a shell script, you'd invoke the help
function as:
<PRE>
% help getopts
</PRE>
which prints a helpful summary of the function and its invocation.
<P>
The other thing I recently ran across was the use of the "$()" construct
in BASH shell programming. When I first started learning shell
programming the construct which I'd seen used for command substitution was
something like:
<PRE>
DATE=`date + "%A %B %C"`
</PRE>
which assigned the output of the date command to the variable DATE. I
recently read that this has been deprecated and the accepted construct now
for command substitution is the use of the dollar sign and parentheses.
The above statement should now be written as:
<PRE>
DATE=$(date + "%A %B %C")
</PRE>
which has the same effect. This works under both BASH and the Korn shell
(I'm not sure if this also works with C-shell derivatives). <BR>
____________________________________________________________John M. Fisk
<P> <hr> <P>
<!--================================================================-->
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif"><a name="two">Two Tips for the Price of One</A></H3>
<P>
Date: Fri, 4 Oct 1996 18:28:05 -0500 (CDT) <BR>
From: David Ishee <A HREF="mailto:ishee@erc.msstate.edu">
ishee@erc.msstate.edu</A><BR>
<P>
Just looking at your $0.02 tips and I had some $0.01 tips to add. I liked
the perl trick for removing Control-M characters so I made it an alias in
my .cshrc file (for the tcsh shell):
<PRE>
alias tu "perl -pi.bak -e 's/\r//g;' \!^"
</PRE>
Now type "tu filelist" to run the above command. (tu stands for to Unix)
<P>
Another $0.01 tip:
<P>
When I used the xterm title bar thingy and I was at a VT, the escape
characters would just cause the Linux terminal to beep at me. I now have
this in my .cshrc (for the tcsh shell):
<PRE>
if ($TERM == "xterm") then
alias precmd 'echo -n "\033]2;"`whoami`":"`pwd`"\007"'
endif
</PRE>
This puts my login_name:directory in my title bar, but not when I go to a
Linux VT.
<PRE>
+--------------------------------------------------------------------+
| David Ishee ishee@erc.msstate.edu |
| Mechanical Engineering Senior |
| Mississippi State University OS/2 and Linux user |
+------------- http://www2.msstate.edu/~dmi1/index.html -------------+
</PRE>
<P> <hr> <P>
<!--================================================================-->
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif"><a name="emacs">The
Ultimate Emacs Control M Trick </A> </H3>
Date: Thu, 3 Oct 1996 10:19:24 -0700 <BR>
From: Rick Bronson <A HREF="mailto:rick@efn.org">rick@efn.org </A><BR>
<P>
Hi,
<P>
Here is the ultimate Emacs Control M Trick:
<P>
Put the following line in your .emacs file:
<PRE>
(require 'dos-mode)
</PRE>
and have dos-mode.el, which for me is in ~/lisp/dos-mode.el, some where
in your path by putting the following line in your .emacs file:
<PRE>
(setq load-path (append load-path (list "/home/rick/lisp")))
</PRE>
That's it! Now you can edit native DOS files without having to do
any conversion at all. You won't see any ^M stuff in the DOS files,
they are removed for you. You can cut and paste between DOS and UNIX
buffers and the ^M stuff is handled automatically.
<P>
dos-mode.el is available in
/ftp@archive.cis.ohio-state.edu:/pub/gnu/emacs/elisp-archive/modes as
dos-mode.el.Z
<PRE>
_
| |
/ /__
.------------------------------------------------------------._______/ (___)
| Rick Bronson rick@efn.org Tel 541-465-9008 _o_ | (___)
| Invivo Research http://www.efn.org/~rick \|/ |_______ (___)
| 745 Foothill Drive "Onde esta dinheiro?" `---' | \_(___)
| Eugene, OR 97405-4651 -- Gal Costa Disk | Golf|
`------------------------------------------------------------'
</PRE>
<P> <hr> <P>
<!--================================================================-->
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif"><a name="vi">VI Trick</A></H3>
Date: Sat, 26 Oct 1996 05:11:34 -0500 <BR>
From: John R. Potter <A HREF="mailto:jrpotter@neosoft.com">
jrpotter@neosoft.com</A><BR>
<P>
I thought you might be interested in my favorite vi trick, which is not a
vi trick at all. I spend a lot of time in vi edit sessions, usually with
two files open moving data between them using the named buffers. Often
someone will come in with a 'brush fire' that needs immediate attention and
I really don't want to quit my edit session and lose my buffers. So I put
it to sleep with Control Z. You can start up another vi edit session,
complete with named buffers and everything. They are two complete separate
sessions with no ties between them. When the fire is under control you can
bring back the original session with 'fg'. I know this is a very simple
thing, but for a long time I didn't know you could do it so I would quit
the original session.
<P>
- John Potter
<P> <hr> <P>
<!--================================================================-->
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif"><a name="xdm">XDM Replacement</A></H3>
Date: Thu, 03 Oct 1996 23:26:00 -0400 <BR>
From: Jim Nicholson <A
HREF="mailto:pcks@cnj.digex.net">pcks@cnj.digex.net</A><BR>
<P>
I'm not sure how well known it is in the Linux community, but Pierre
Ficheux (<A HREF="mailto:pierre@ai.alienor.fr">pierre@ai.alienor.fr</A>) has written a replacement for the
XDM logon dialog that lets you set up icons for users - sort of like
what you can do on an SGI machine. The file can be had via
ftp://ftp.ibp.fr/pub/linux/tsx-11/sources/usr.bin.X11/xdm-photo-1.1.tar.gz;
more info is available on Pierre's web site
<A HREF="http://alienor.fr/~pierre/index_us.html">
http://alienor.fr/~pierre/index_us.html</A><BR>
<P>
- Jim Nicholson
<P> <hr> <P>
<!--================================================================-->
<A HREF="./lg_toc11.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF
CONTENTS ]"></A> <A HREF="../index.html"><IMG SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A> <A HREF="lg_mail11.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<A HREF="lg_bytes11.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<h5>This page maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com">gazette@ssc.com</A><BR>
Copyright © 1996 Specialized Systems Consultants, Inc. </H5>
<P><HR> <P>
<H4><IMG ALIGN=MIDDLE SRC="./gx/bat-l.gif">
"Linux Gazette...<I>making Linux just a little less scary!</I>"
<IMG ALIGN=MIDDLE SRC="./gx/bat-r.gif"> </H4>
<HR>
<center><h1>
<IMG SRC="../gx/bytes.gif" border=1 ALT="News Bytes"></h1></center>
<P> <hr> <P>
<H3>Contents:</H3>
<ul>
<li><a HREF="./lg_bytes11.html#general">News in General</a>
<li><a HREF="./lg_bytes11.html#software">Software Announcements</a>
</ul>
<p><hr><p>
<!-- =================================================================== -->
<center><H3><a name="general"> News in General </a></H3></center>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">Comdex Conference</H3>
<P>
17 Oct 1996 <BR>
Please join Linux International at
The Linux Technology Showcase, COMDEX FALL/96.
This will be the largest presentation of Linux to date outside the Internet.
The show will run November 18-22, 1996 in Las Vegas, Nevada.
The Linux Showcase will be promoted in the show preview,
show guide, show daily and other materials on a par with the
Multimedia, Windows, Internet, Networking and other showcases.
The location is downstairs at the Sands Expo & Convention Center,
just off the famous Las Vegas Strip.
<P>
For additional information: <BR>
Linux International, <A HREF="http://www.li.org/">http://www.li.org/</A><BR>
<A HREF="mailto:li@li.org">li@li.org</A><BR>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">Free Software Union</H3>
<P>
"Free Software Lovers Unite!"
<P>
The FSU is a volunteer, democratic organization dedicated to the Free
Software community. It provides all users, developers, and enthusiasts
with full-voice, free membership in a voting decision making body. It
channels resources, manpower, and community feedback for voter
endorsed project implementation.
<P>
The FSU gives developers guarantee of wide acceptance and support by
providing guidelines and tools for development to produce consistent
and inter-operable software, and volunteer man-power recruiting
assistance for large endorsed projects.
<P>
Some of the projects that the FSU is currently considering is the
adoption of CORBA or SOM, licensed porting/re-implementation of
OpenDoc, a "Free Software Map" database of all known free software
projects (a superset of LSM), and much more!
<P>
FSU Founder/Contact: Jan Vicherek, <A HREF="mailto:honza@ied.com">honza@ied.com</A><BR>
FSU Mailing List Posts: <A HREF="mailto:fslu@calum.csclub.uwaterloo.ca">
fslu@calum.csclub.uwaterloo.ca </A><BR>
Find out more and join at: <A HREF="http://www.jagunet.com/~braddock/fslu/org">
http://www.jagunet.com/~braddock/fslu/org </A><BR>
<P><hr><P>
<!-- ===================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">Lasermoon, Linux-FT</H3>
<P>
Date: Tue, 08 Oct 1996 <BR>
Clarification - Linux-FT, The Road Ahead <BR>
<P>
Linux-FT is a Lasermoon Ltd product which was developed with the intention
of achieving POSIX.1 and XPG4 certification as part of a project
Lasermoon started in January 1995. Lasermoon obtained the required
licenses (POSIX.1, XPG4 etc) and X/Open membership to facilitate this
fully GPL'ed effort. Unifix were involved in the development of the
distribution, and components from Linux-FT were fed back into other
Unifix products (hence the similarities).
<P>
The technology behind Linux-FT was acquired by Caldera during 1996 and
will be incorporated into the Caldera's Linux products.
<P>
Caldera's involvement with Linux-FT has been the subject of many postings
and press announcements over many months and details can be found on
the Linux-FT WWW site at www.lasermoon.co.uk and Caldera (www.caldera.com).
<blockquote>
Unifix have no connection with, or control over Linux-FT. Whilst
we are flattered that Linux-FT is receiving such attention, BOTH
Unifix GmbH and the Unifix 2.0 RELEASE HAVE NOTHING WHATSOEVER
TO DO WITH CONTINUING Linux-FT DEVELOPMENTS.
</blockquote>
Caldera and Lasermoon are continuing the work of developing
a truly Standards Certified/Branded Linux (released under the GPL).
Working with the original developers, we welcome all contributors to the
POSIX.1 and XPG4 standardization effort which is essential for the
long term success of Linux.
<P>
By working together, we can accomplish this effort in a much more
effective manner and comply with the licensing requirements of The Open
Group and other such organizations.
<P>
For additional information: <BR>
Lasermoon Ltd, The Forge, Wickham, Hants, England <BR>
<A HREF="mailto:info@lasermoon.co.uk">info@lasermoon.co.uk </A> <BR>
<A HREF="http://www.lasermoon.co.uk">http://www.lasermoon.co.uk </A><BR>
<P><hr><P>
<!-- ===================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
Linux Consultants HOWTO Reaches Hundred Entry Mark</H3>
<P>
October 17, 1996 -- Only one month after its
debut on September 18, 1996, the Linux Consultants HOWTO, a
listing of companies and individuals providing commercial support
for the freely redistributable operating system Linux, now
contains over a hundred entries.
<P>
The Linux Consultants HOWTO is free and can be downloaded
from <A HREF="http://www.sypher.com/tbm/Consultants-HOWTO">
http://www.sypher.com/tbm/Consultants-HOWTO </A><BR>
<P>
For additional information: <BR>
Martin Michlmayr, <A HREF="mailto:tbm@sypher.com">tbm@sypher.com</A><BR>
<A HREF="http://www.sypher.com/tbm">http://www.sypher.com/tbm</A><BR>
<P><hr><P>
<!-- ===================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">Linux in the News</H3>
<P>
News Articles about Linux:<BR>
<ul>
<li><a href="http://www.infoworld.com/cgi-bin/displayArchives.pl?dt_iwe42-96_89.htm">
"Linux Operating System Cheap, Powerful Red Hat Linux 4.0 Has No Web-
Connection Limits"</a><br> <i>Infoworld, October 14, 1996</i><br>
"I'm in awe of how quickly the Linux operating system is moving foward.
Last summer I predicted that Linux...would infiltrate mainstream corporate
America. If Red Hat Software Inc. (and all the unsung Linux contributors)
continue advancing Linux at the present rate, such widespread adoption is
guaranteed."<br>
<li><A HREF="http://www.pcweek.com/opinion/1021/21mach.html">
"Taking a Second Look at Linux"</a> PC Week, 10/21/96,
<li><A HREF="http://www.pcmag.com/issues/1517/pcmg0012.htm">
"Spreading the Linux Gospel"</a>,
PC Magazine, 10/8/96, a review of books relating to Linux.
<li>"Building a Linux Web Server",
Sys Admin: The Journal for Unix Systems Administrators, October 1996.
<li><A HREF="http://www.pcweek.com/opinion/1007/07.html">
"Linux: Microsoft's Real Competition?"</a> PC Week, 10/7/96.
<li>"Unix Survey: Users Like Reliability, Scalability, and Performance" Byte
October, 1996. Compares: IBM AIX, Digital Unix, HP-UX, SCO, SunOS/Solaris,
System V, and Linux.
</ul>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">Linux on PCTV</H3>
<P>
The PCTV production company, <A HREF="http://www.pctv.com/">
http://www.pctv.com/</A>, which produces Computer
Chronicles, USER GROUP and @HOME, is producing four half-hour shows on UNIX
and Linux. These shows are:
<ul>
<li>History of UNIX (aired in October)
<li>Contemporary UNIX (airs first on November 4th)
<li>Linux (airs first in January)
<li>UNIX Futures (air times not yet set)
</ul>
<P>
These shows will be aired as part of the USER GROUP show, which is carried
on ME/U,
Jones Computer Network (a 24-hour cable network dedicated entirely to the
subject of computers) and the NBC Super Channel
and CNBC Europe, as well as by Satellite.
USIA WorldNet will begin carrying the Users Group show.
<P>
Please check your local cable or satellite company for viewing times of
USER GROUP.
<P>
For additional information: <BR>
Jon "maddog" Hall, Executive Director Linux International <BR>
<A HREF="mailto:jon.hall@li.org">jon.hall@li.org </A> <BR>
<P><hr><P>
<!-- ===================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">New Linux Q&A Site</H3>
<P>
A new threaded Linux Q&A and
discussion area has been created at The Forge Foundation web site:
<P>
<A
HREF="http://www.theforge.com/InterBoard">http://www.theforge.com/InterBoard</A><BR>
<P>
Create your own account or use the link that lets log you in
anonymously, then choose the group "Foundry - Linux Q&A".
This is an unmoderated group open to everyone.
<P>
For additional information: <BR>
Hal Reed, <A HREF="mailto:hal@theforge.com">hal@theforge.com</A><BR>
The Forge Foundation, <A HREF="http://www.theforge.com/">
http://www.theforge.com/</A><BR>
<P><hr><P>
<!-- ===================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">Northcon Nov 4-6</H3>
<P>
Northcon is Nov 4-6 at the WA Convention & Trade Center (near the Kingdome) in Seattle, Washington.
There will be 350 exhibits by "Leading Electronics Manufacturers".
<P>
Mon. Nov 4, 10-5 <BR>
Tue. Nov 5, 9-5 <BR>
Wed. Nov 6, 9-4 <BR>
<P>
You can register on-line (free) at <A HREF="http://www.northcon.org">
http://www.northcon.org</A>.
<P>
For additional information: <BR>
<A HREF="mailto:northcon@ieee.org">northcon@ieee.org</A> or call
1-800-877-2668<BR>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">Open Systems World/FedUnix Conference</H3>
<P>
There will be a Open Systems World/FedUnix conference/trade show in
Washington DC on November 4-8. It is a traditional event devoted to
open computing (read: Unix), attended mostly by government and
commercial Information Systems types.
<P>
Since Linux has gained the attention of such circles, there is a 2-day
Linux track at this conference. I am chairing a Linux-related session,
scheduled for Thursday, November 7, 1996. Speakers will be
people who apply Linux in real world situations, both in the
government and the private sector, and will tell us about their good
and bad experiences, and plans for the future.
Among the speakers, there are some who use Linux as a primary OS, as
well as those for whom Linux is just another environment.
<P>
For additional information: <BR>
<A
HREF="http://www.mcsp.com/OSW-FedUNIX.html">http://www.mcsp.com/OSW-FedUNIX.html
</A><BR>
Przemek Klosowski, <A HREF="mailto:przemek@nist.gov">przemek@nist.gov</A><BR>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">QT GUI Contest Announcement</H3>
<P>
On October 1 Troll Tech announced the Qt GUI programming contest (free entry).
<P>
A contest for programmers, writing free GUI software using Qt (a C++
GUI toolkit, see http://www.troll.no/). Anyone can enter, there is no
fee for entry, and any program can be entered as long as it is written
in C++ and uses Qt.
<P>
The winner will be paid US$2000 and two runners-up $500 after the
contest has closed on May 1, 1997 and the jury has done its job.
<P>
We wish to encourage more free GUI software for X11, and we wish more people
to experience for themselves how good Qt is.
<P>
For additional information: <BR>
<A HREF="http://www.troll.no/contest.html">http://www.troll.no/contest.html</A><BR>
<A HREF="mailto:contest@troll.no">contest@troll.no</A><BR>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">Vulnerabilities in Linux</H3>
<P>
An October 10 CIAC (Computer Incident Advisory Capability, U.S. Department of
Energy) bulletin describes a security hole in Linux when using
a Bash shell as the default shell, and explains how to avoid it.
Additional information can be found at the
<A HREF="http://ciac.llnl.gov/ciac/bulletins/h-01.shtml/">CIAC web site</A>.
<P>
On August 15, CIAC announced a security hole in the mount and umount Linux
programs, and gave fixes. Additional information can be found at the CIAC
web site, <A HREF="http://ciac.llnl.gov/ciac/bulletins/g-38.shtml/">CIAC web site</A>
<P>
If you find code that could be potentially dangerous, you should contact
the Computer Emergency Response Team (CERT),
<A HREF="http://www.cert.org/">http://www.cert.org/</A>, at Carnegie Mellon
University. Reporting forms can
be found at <A HREF="ftp://info.cert.org/pub/incident_reporting_form">
ftp://info.cert.org/pub/incident_reporting_form</A>.
<P> <hr> <P>
<!-- =================================================================== -->
<center><H3><a name="software"> Software Announcements </A></H3></center>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">Craftworks Linux 2.2 Intel Version</H3>
<P>
Mon, 07 Oct 1996 <BR>
Craftwork Solutions has released it's
second generation Linux OS for the Intel platform. Craftworks 2.2 is a
complete, customizable operating system for Intel based machines that
empowers the desktop. It is a solid operating environment for desktop
workstations and Web server solutions. The Linux environment provides
improved processing performance, high reliability and built-in security, at
an affordable price.
<P>
For additional information: <BR>
Craftwork Solutions, Inc., <A HREF="http://www.craftwork.com">
http://www.craftwork.com</A><BR>
<A HREF="mailto:info@craftwork.com">info@craftwork.com</A><BR>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">Java Development Kit--JDK 1.0.2 for Linux</H3>
<P>
On Friday September 27th 1996, Sun Microsystems provided the Java
community with the long awaited update of the binary license,
subsequently making redistribution of the Linux JDK 1.0.2 (Java
Development Kit) possible.
<P>
For additional information:<BR>
<A HREF="http://www.blackdown.org/java-linux/Information.html">
http://www.blackdown.org/java-linux/Information.html </A> <BR>
Robert Herrmann <A HREF="mailto:bherrman@netcom.com">bherrman@netcom.com</A><BR>
NETCOM On-line Communication Services <BR>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">Linux On A Disk</H3>
<P>
06 Oct 1996 <BR>
A 1 or 2 GigaByte IDE Hard Disk Pre-Loaded with Linux. Positively the
easiest way to get the Linux Operating System up and running on your PC.
<P>
<A HREF="http://www.cosmoseng.com/">http://www.cosmoseng.com/</A><BR>
<P>
For additional information: <BR>
Clay Claiborne, <A HREF="mailto:cjc@earthlink.net">cjc@earthlink.net</A><BR>
Cosmos Engineering Co., Los Angeles, CA <BR>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">MkLinux Release 2.0</H3>
<P>
23 Sept 1996 <BR>
Apple Computer, Inc.
(Nasdaq: AAPL) announced today that it is making available Developer
Release 2 of MkLinux. Based on the Open Software Foundation (OSF) Mach
Kernel, MkLinux allows users to run UNIX applications and solutions on
high performance Power PC-based products. The DR2 release delivers
substantially improved performance and stability, and many features
Linux developers and customers have been asking for.
<P>
Apple is making the source code for Developer Release 2 available free
of charge on the Apple MkLinux web site at <A HREF="http://www.mklinux.apple.com/">
http://www.mklinux.apple.com/</A> long with snapshots of MkLinux, updates,
patches, and late-breaking news. Apple's MkLinux Developer Release 2
CD is available from Prime Time Freeware for U.S. $20.
<P>
For additional information: <BR>
Prime Time Freeware, <A HREF="mailto:info@ptf.com">info@ptf.com</A>,
<A HREF="http://www.ptf.com/">http://www.ptf.com/</A><BR>
Apple Computer Inc., <A HREF="http://www.apple.com/">http://www.apple.com/</A><BR>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">Red Hat Linux 4.0 Users's Guide</H3>
<P>
Fri, 04 Oct 1996 <BR>
Red Hat Linux 4.0 Users's Guide free via FTP!
That's right, the 236 page Red Hat Linux 4.0 User's Guide is now
available via FTP, in PostScript and HTML form. It is also available
for browsing on our web site. The Users's Guide covers installation,
configuration, RPM, control-panel, and basic system administration
issues, and is a must have for anyone running Red Hat Linux.
<P>
<A HREF="http://www.redhat.com/support/rhl/manual">
http://www.redhat.com/support/rhl/manual</A> <BR>
<A HREF="ftp://ftp.redhat.com/pub/redhat/redhat-4.0/Users-Guide">
ftp://ftp.redhat.com/pub/redhat/redhat-4.0/Users-Guide</A> <BR>
<P>
The Red Hat 4.0 User's Guide is distributed under the same terms as
the Linux Documentation Project (LDP) documents.
<P>
For additional information: <BR>
Red Hat Software, <A
HREF="http://www.redhat.com/">http://www.redhat.com/</A><BR>
<A HREF="mailto:info@redhat.com">info@redhat.com</A><BR>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">Video Mosaic Netscape Plugin for Linux</H3>
<P>
18 Oct 1996 <BR>
Vosaic (Video Mosaic) is available as a Netscape Navigator plug-in
for Linux from the Systems Research Group of the University of
Illinois at Urbana-Champaign and Vosaic Corp.
<P>
Vosaic supports real time video over the Internet that is embedded in
standard Web pages. The technology allows one to view MPEG video
at 6 to 10 frames per second over telephone dial up connections at
28.8 Kbits/s. Higher bandwidths improve video quality. There is no
download latency - videos are displayed as the data arrives over the
network. Get the 1 BETA 12 plug-in at:
<P>
<A HREF="http://www.vosaic.com/">http://www.vosaic.com/</A> <BR>
<P>
Vosaic requires kernel 2.0 and above, as well as XFree86 3.1.2.
<P>
For additional information: <BR>
<A HREF="mailto:info@mosaic.com">info@mosaic.com</A><BR>
<A HREF="http://choices.cs.uiuc.edu/srg/stan/video.ps">
http://choices.cs.uiuc.edu/srg/stan/video.ps</A> <BR>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">Virtual Paper--Online-Document Viewing System</H3>
<P>
04 Oct 1996 <BR>
Virtual Paper is a high-quality online-document viewing system.
Lectern, the Virtual Paper viewer, offers good legibility (using
anti-aliasing), fast page-turning speed, a smooth user interface,
and the ability to handle both PostScript and scanned "legacy" documents.
<P>
It's written in Modula-3, is distributed in both source and executable
format, and is free (but copyright by Digital Equipment Corporation).
<P>
DEC has announced the availability of the
Virtual Paper system in x86/Linux ELF executable format.
<P>
For details on the overall system, including links to the executables
and sources, see:
<P>
<A HREF="http://www.research.digital.com/SRC/virtualpaper/">
http://www.research.digital.com/SRC/virtualpaper/</A><BR>
<P>
For additional information: <BR>
Paul McJones, <A HREF="mailto:mcjones@pa.dec.com">mcjones@pa.dec.com </A><BR>
Andrew Birrell, <A HREF="mailto:birrell@pa.de.com">birrell@pa.de.com </A><BR>
DEC Systems Research Center (SRC), Palo Alto, California, USA <BR>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">WebThreads 1.0.1 for Linux</H3>
<P>
08 Oct 1996 <BR>
WebThreads, LLC of Vienna, VA, announced the release of WebThreads 1.0.1
web site interactivity and visitor tracking solution. WebThreads allows you
to create truly interactive web sites that respond and change in real time
to individual visitors based on their actions while providing the webmaster
with a tremendous amount of information about what the visitors are doing
on your site. WebThreads is a lightweight and easy to install set of CGI
scripts written entirely in C that greatly enhance the flexibility,
interactivity and visitor traffic reporting accuracy of standard WWW
servers.
<P>
For additional information: <BR>
WebThreads, <A HREF="http://www.webthreads.com/">http://www.webthreads.com/</A><BR>
<A HREF="mailto:info@webthreads.com">info@webthreads.com</A><BR>
<P> <hr> <P>
<!-- =================================================================== -->
<H3><IMG ALT=" " SRC="../gx/bolt.gif">XForms V0.81--X11 GUI Toolkit & Builder</H3>
<P>
29 Sep 1996 <BR>
XForms is a graphical user interface toolkit and builder based on Xlib
for X Window Systems. XForms is a portable and efficient C library
that can be used in both C and C++ programs.
The library works in all visuals and all depths (1-24) and comes
with a rich set of objects such as buttons (of many flavors, including color
XPMs as labels) , browsers, sliders, and menus integrated into an
elegant event/object call back execution model that allows fast and
easy construction of X-applications. It also has OpenGL (on SGI) and
Mesa support.
<P>
XForms V0.81 for Linux/m68k and MkLinux is available from
<P>
<A HREF="http://bragg.phys.uwm.edu/xforms">http://bragg.phys.uwm.edu/xforms</A><BR>
<A
HREF="ftp://laue.phys.uwm.edu/pub/xforms">ftp://laue.phys.uwm.edu/pub/xforms</A><BR>
<P>
In addition, XForms is already available for Linux/i386,
Linux/Alpha and other Unix platforms.
<P>
For additional information:<BR>
T.C. Zhao, <A HREF="mailto:zhao@laue.phys.uwm.edu">zhao@laue.phys.uwm.edu</A><BR>
Surface Labs, Dept. of Physics, UW-Milwaukee <BR>
<P> <HR> <P>
<!-- =================================================================== -->
<A HREF="./lg_toc11.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF
CONTENTS ]"></A>
<A HREF="../index.html"><IMG SRC="../gx/homenew.gif" ALT="[ FRONT
PAGE ]"></A>
<A HREF="lg_tips11.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<A HREF="gm.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P><HR><P>
<h5>This page written and maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com">gazette@ssc.com</A><BR>
Copyright © 1996 Specialized Systems Consultants, Inc. </H5>
<P><HR> <P>
<!--===================================================================-->
<H4><IMG ALIGN=MIDDLE SRC="./gx/bat-l.gif">
"Linux Gazette...<I>making Linux just a little less scary!</I>
"<IMG ALIGN=MIDDLE SRC="./gx/bat-r.gif"> </H4>
<P> <HR> <P>
<!--===================================================================-->
<TABLE>
<tr>
<td valign="top">
<IMG SRC=../gx/hammel/lgpenguin.gif ALT="Larry Ewing's Penguin Gazette"
WIDTH="161" HEIGHT="160" border="0">
</td>
<td valign="center">
<H1> The Graphics Muse </H1>
<table>
<tr>
<td>by</td>
<td><A HREF="mailto:mjhammel@csn.net">
<IMG SRC="./gx/hammel/sig.gif" ALT="Michael J. Hammel"
ALIGN="left" WIDTH="240" HEIGHT="23" border="0">
</A>
</td>
</table>
</td>
<tr>
<td align=center colspan=2>
<HR>
</td>
<tr>
<td align=left colspan=2>
<B>muse:</B>
<OL>
<LI><I>v;</I> to become absorbed in thought
<LI><I>n;</I> [ fr. Any of the nine sister goddesses of learning and the
arts in Greek Mythology ]: a source of inspiration
</OL>
</td>
<tr>
<td align=center colspan=2>
<HR>
</td>
</table>
<UL>
<LI><A HREF="#mews">Graphics Mews</A>
<LI><A HREF="#musings">Musings</A>
<LI><A HREF="#future">Future directions</A>
</UL>
<HR>
Welcome to the Graphics Muse! This is the first in what I hope will be a
long running monthly column relating to computer graphics on Linux systems.
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.
<P>
This column will be divided into two sections:
<A HREF="#mews"><I>Graphics Mews</I></A>,
a section devoted to the latest news in graphics such as new releases of
products (free or commercial), people in the news, conventions and
conferences and whatever else might be of general interest to the graphics
community, and
<A HREF="#musings"><I>Musings</I></A>,
a section where I can spew whatever I think
needs to be covered more in depth. The later section I hope will cover
things like reviews of products, tips and tricks, interviews with graphics
people, or maybe just my philosophies on life. You'll just have to come
back each month and see where things go.
<P>
I'm open to suggestions on topics for the Musings section. I'll also take
any and all notices regarding graphics tools that are being released or
updated. Please don't send notices as advertisements - I only want to know
about new releases or new products. I'm only doing that to keep my workload
down a little.
<P>
One thing this column <I>won't</I> cover is X programming or windowing
API's (unless they are specifically designed for the development of
graphics tools). There are lots of places to get information about X.
This column is about computer graphics in general.
<P>
<A NAME="mews">
<H2>Graphics Mews</H2>
</A>
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.
<UL>
<LI>Megahedron
<BR>According to the announcement sent to me from Syndesis Corporation
(the maker of this product), Megahedron is a programmable 3D graphics
engine. It runs on a number of platforms, including Linux. You
can check out the web site at
<A HREF="http://www.threedee.com/">
http://www.threedee.com/</A>.
<LI>QT
<BR>Troll Tech AS has released a free version of QT for the X Window
System. QT is a complete and well-developed object-oriented program
for developing graphical user interface applications using C++.
For additional information check out Troll Tech's web site at
<A HREF="http://www.troll.no/">http://www.troll.no/</A>.
</UL>
Thats all I've seen for this month. Software releases have been kinda
sparse the past month for some reason.
<P>
<A NAME="musings">
<H2>Musings</H2>
</A>
First, let me start with some shameless self-promotion:
<A HREF="http://www.csn.net/~mjhammel/linux-graphics-howto.html">
The Linux Graphics mini-Howto</A>
and the
<A HREF="http://www.csn.net/~mjhammel/povray/povray.html">
Unix Graphics Utilities</A>
pages. The latter of these I
started late last year while beginning to learn about computer graphics
through the use of POV-Ray, a 3D rendering tool. I had found that most of
the tools available for use with POV-Ray were not Unix based (not
specifically, anyway) so I tried to find info on Unix based tools since I
was running Linux. After I learned a bit more about computer graphics I
started the Linux Graphics mini-Howto in retaliation for a coworkers claims
that doing graphics was best left to MS based systems. NOT! The tools
need a little organizing, a few need better documentation, but in general
you can do some very impressive graphics on Linux systems.
<P>
These two pages are available at:
<br>
<A HREF="http://www.csn.net/~mjhammel/linux-graphics-howto.html">
http://www.csn.net/~mjhammel/linux-graphics-howto.html</A>
and
<br>
<A HREF="http://www.csn.net/~mjhammel/povray/povray.html">
http://www.csn.net/~mjhammel/povray/povray.html</A>.
<br>
I was offered some free web space by a couple of people so I'll be moving
my pages sometime in the future, but probably not till after January.
<P>
<B>Note</B>: if you are the official maintainer of any of the packages
listed in these pages feel free to keep me informed of new releases. The
information there is only as good as the info I've gathered from newsgroups
and word of mouth so far.
<P>
Ok, enough about me.
<P>
My first bit of musings revolves around the use of images in web pages.
I get a number of e-mails from people who've seen my web pages (or possibly
my ramblings on various newsgroups or mailing lists) asking how to do blah
or where can I get blah to do blah for their web pages. The "where" parts
are covered by the links mentioned above. The "how" part is a broad
question. I'll summarize.
<P>
When creating graphics for your pages, keep the following things in mind:
<OL>
<LI>Consider your target audience:
<UL>
<LH>Home Users</LH>
<LI>Most home users have slow links. Even 28.8 modems don't load
big graphics all that fast. Keep your images small.
<LI>Animations that are done with like cell-animations are done
for cartoons (sequences of individual images with slight
variations to simulate movement) require each cell to be
loaded across the net. This is tantamount to one big image
taking forever to load.
<LI>Most home users are still limited to 256 colors on their displays.
Lots of users have upgraded to better graphics cards, but how
many people do you want to alienate with an image with 10000
colors?
</UL>
<LI>
If you want the average person to visit your page, you have to give
them two things: content and flash. The flash has to be done using
as little download time as possible, with as much color as you can
squeeze in without overloading the browser (causing it to dither
images). The content must be the reason for your pages, not the
flash.
<LI>Background images should be just that - in the background. Don't
make the background so gaudy it distracts from your real content.
<LI>Use common colormaps - this reduces the number of colors the
browser has to allocate, leaving some space for other applications.
X-based systems can allocate colors into private colormaps, but
this causes that annoying "flashing" you see (try running Netscape
with the -install option - you'll see what I mean).
<LI>Flash can be added easily with a simple background over which you
add some in-line transparent GIFs.
<LI>Never use an "Under Construction" image. Its the Web. Of course
its under construction!
<LI>Don't put those silly graphic dots in place of HTML list bullets.
First, they waste the users time downloading (each requires another
connection to the server) and second they break the formatting
rules provided with HTML. Its just not good practice and they don't
have any real value add to your pages.
</UL>
Now that you know some basic guidelines for you images, how do you go about
creating the images? It depends on what kind of images you want to make.
If you want a simple, cartoon-like image you can get a drawing program like
xpaint. This tool is good for drawing circles and boxes and filling them
in, using a window like a canvas to paint on the screen. However, this
tool is limited in what you can do to the image once you've drawn it. One
highly popular tool for a number of platforms that does this
post-processing is Adobe Photoshop. Using a tool like this takes a bit of
practice, but once you've mastered it you can do some rather amazing
things. A Linux alternative to Photoshop is the
<A HREF="http://www.XCF.Berkeley.EDU/~gimp/">
Gimp</A>.
The logos on this page were created with the Gimp. So was the background.
<P>
3D images are a whole other matter. There are actually more well-known
tools for doing 3D work than there are for doing image manipulation (ie
tools like the Gimp). Probably the best known of these is POV-Ray. This
tool reads in a text file that uses a "scene description language" to describe
how objects in the scene should be positioned and textured. The drawback
to these tools is that they lack a point-and-click interface.
There are separate tools available,
known as modellers, that allow the creation of the scene files without
actually rendering the image. In order to create 3D image you need to
either learn the scene description language or learn who to use a modeller
that will create it for you.
<P>
I know this is fairly basic and undetailed, but this is just my first
column. Over time I'll try to cover both beginner and more advanced issues.
<P>
<A NAME="future">
<H2>Future Directions</H2>
</A>
Next month: How do you create the textures that get applied to 3D images?
Beyond that, I'm considering talking about how to use Type 1 fonts in your
images: how to install them, how you can manipulate them with the Gimp to
make interesting logos, etc. I'd also like to provide some tips for using
POV-Ray and BMRT (although I have a lot to learn about the latter). And I
might try to cover a little on how to do animations. Things are pretty
open right now.
<A HREF="mailto:mjhammel@csn.net">
Let me know what you'd like to hear about!</A>
<P>
<HR>
<FONT size=2>
"Linux Gazette" Penguin courtesy of
<A HREF="mailto:lewing@isc.tamu.edu">
Larry Ewing</A>.
</FONT>
<HR>
<center><H5>Copyright © 1996, M. J. Hammel</H5></center>
<center> <H5>Published in Issue 11 of the Linux Gazette</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc11.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./lg_bytes11.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./xemacs-tip.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<H4><IMG ALIGN=MIDDLE SRC="./gx/bat-l.gif">
"Linux Gazette...<I>making Linux just a little less scary!</I>
"<IMG ALIGN=MIDDLE SRC="./gx/bat-r.gif"> </H4>
<P> <HR> <P>
<!--===================================================================-->
<center><h2>A "Kill-Ring" Menu For Xemacs</h2></center>
<center><h4><a href="mailto: layers@vax2.rain.gen.mo.us">by Larry
Ayers</a></h4></center>
<center>Copyright © 1996</center><BR>
<center><H5>Published in Issue 11 of the Linux Gazette</H5></center>
<P> <HR> <P>
Lately I've been enjoying exploring the myriad capabilities of GNU Emacs'
offspring and competitor, Xemacs. Aside from the burden of downloading the
voluminous source, Xemacs offers quite a few features which Gnu Emacs
lacks. Luckily for those considering a transition, the basic keystrokes and
commands are nearly identical.
<p>One feature of Gnu Emacs which I began to miss after a while was the handy
pull-down menu which displays the first few words of each cut or copied
selection made in the current session, i.e. the "kill-ring". The prospect of
figuring out how the lisp files work which determine the menu-bar's structure
wasn't too appealing. I know a little lisp, but not enough to add a new menu
entry.
<p>Some weeks later, while idly browsing through some emacs newsgroup
headers, I came across this posting, which I'll quote here in full:<br>
<pre>
In article <9604170740.AA26236@portia.uk.abs> imac@portia.rd.abs.alcatel.co.uk
(Ian MacKinnon) writes:
> When I used emacs (before I saw the light), I made use of a function
> mouse-menu-choose-yank which offered you the choice to yank from the recent
> history of selections via a popup menu, but I can't get it to work in
> XEmacs because x-popup-menu doesn't exist, and the parameters to
> popup-menu are different. Has anyone got an alternative. I enclose the
> ...
I have hacked the Emacs codes of mouse-menu-choose-yank to put in
Xemacs as follows:
<code>
(defvar yank-menu-length 40
"*Maximum length of an item in the menu for select-and-yank.")
(defun select-and-yank-filter (menu)
(let* ((count 0))
(append menu
(mapcar
#'(lambda (str)
(if (> (length str) yank-menu-length)
(setq str (substring str 0 yank-menu-length)))
(prog1
(vector
str
(list
'progn
'(push-mark (point))
(list 'insert (list 'current-kill count t)))
t)
(setq count (1+ count))))
kill-ring))))
</code>
For this to work, you have to put on your menu bar the following submenu
(use add-submenu for that for example):
<code>
("Select and Yank"
:included kill-ring
:filter select-and-yank-filter)
</code>
Hope this help
-----------------------------------------------------------------------
PHAM Dinh Tuan | e-mail: Dinh-Tuan.Pham@imag.fr
Laboratoire de Modelisation et Calcul | Tel: +33 76 51 44 23
BP 53, 38041 Grenoble cedex (France) | Fax: +33 76 63 12 63
-----------------------------------------------------------------------
</pre>
<p>
It took a little experimenting to get this to work. The first section
of lisp code, ending with "kill-ring))))", can be copied unaltered into
the xemacs section of your ~/.emacs file. If you're using Xemacs 19.14
(the current version), it goes into your ~/.xemacs-options file.
<p>The second, shorter lisp snippet needs one small addition:<br>
<pre>
<code>
(add-submenu nil '("Kill-Ring"
:included kill-ring
:filter select-and-yank-filter))
</pre>
</code><br>
<p>As well as adding the proper syntax for <i>add-submenu</i>, I shortened
the menu-title, but it could be called anything you like.
<p>When I first restarted Xemacs after placing this code into the init file
the new submenu was nowhere to be seen. I surmised that I'd made some error,
and put off further experimentation for another time. A few minutes later I
was busily editing some file. I happened to glance up at the menu-bar and
found a brand-new kill-ring submenu. Surprisingly the new menu only appears
after a selection has been cut or copied.
<p>I was happy, and thought that by relating my experience I could encourage
other Xemacs users (especially the ones who know as little lisp as I do!) to
try this neat hack. Thanks to Dinh Tuan Pham, if he or she should happen to
see this.
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc11.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./gm.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./linus.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<H4><IMG ALIGN=MIDDLE SRC="./gx/bat-l.gif">
"Linux Gazette...<I>making Linux just a little less scary!</I>
"<IMG ALIGN=MIDDLE SRC="./gx/bat-r.gif"> </H4>
<P> <HR> <P>
<!--===================================================================-->
<center> <H2>Linus to Move to U.S. in 1997 </H2></center>
<center> <H4>By Phil Hughes, <A HREF="mailto:phil@ssc.com">phil@ssc.com</a></h4></center>
<center><H5>Copyright © 1996</H5></center>
<center> <H5>Published in Issue 11 of the Linux Gazette</H5></center>
<P> <HR> <P>
<P>
Linus Torvalds is currently in the process of finishing up his Master's
degree at the University of Helsinki. After degree completion, he plans
to move to Santa Clara, California, where he will begin working for
Transmeta in March, 1997. Since Transmeta does not do Linux,
this is a Linux-neutral position; however, his
contract includes a provision for time to continue work on Linux.
<p>
After careful consideration of what he wanted in the future for himself and
his family, Linus decided to pursue a position in the business world.
A friend of his, who works for Transmeta and who has been a
long-time Linux contributor, talked to his management and found
a position for Linus that would both utilize his talents and interest him.
<p>
Linus feels that the match between Transmeta and his future goals is a good one.
Transmeta is a relatively small company. While Linus' main job will not
be working on Linux, Transmeta recognizes the good that Linux is doing, and
will allow Linus time and freedom to continue with the Linux project.
<p>
Here at <i>Linux Journal</i> we see this as a chance to let Linus trade in
some of that virtual beer we owe him for the real stuff.
While not exactly around the corner, being on the same coast and within
about two hours by airplane makes the trade a lot easier.
<P>
While some have expressed fear that Linus' choice to apparently have a
life could adversely affect Linux development, I think this is
not the case.
Those of us who have had the opportunity to sit down and talk with Linus
know that Linus already has a life.
While he spends a lot of time working on Linux, he does have other interests.
The goal in attending the University of Helsinki was to get a degree, not
to build the operating system we are all now involved in.
<P>
I think his decision to go to a Linux-neutral company, even though
he had job offers from companies working with Linux, will be an advantage
to the Linux industry as a whole. Also,
being in the U.S. will make it easier for Linus to participate in shows
and other events here, while still maintaining a personal life.
Besides, it is going to be nice to be able to say that the person who
created our operating system of choice has a job.
<P>
-- Phil Hughes <BR>
Publisher of <I>Linux Journal</I> <BR>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc11.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./xemacs-tip.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="tkg.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<!--===================================================================-->
<P> <hr> <P>
<H4><IMG ALIGN=MIDDLE SRC="./gx/bat-l.gif">
"Linux Gazette...<I>making Linux just a little less scary!</I>
"<IMG ALIGN=MIDDLE SRC="./gx/bat-r.gif"> </H4>
<P> <HR> <P>
<!--===================================================================-->
<center><h1>Running Sun's Hotjava Browser on a Linux System</h1></center>
<hr>
<center><h4><a href="mailto: layers@vax2.rain.gen.mo.us">by Larry
Ayers</a></h4></center>
<center>Copyright (c) 1996</center><BR>
<center><H5>Published in Issue 11 of the Linux Gazette</H5></center>
<center><h3>Introduction</h3></center>
<P> <hr>
<p>Recently I stopped by the
<a href="http://www.blackdown.org/java-linux/Information.html">Java-Linux</a>
web-page to see what was new and found an intriguing new link. This link
took me to a page which contains a script allowing Sun Microsystem's HotJava
web-browser to be run on a Linux machine. I was skeptical, as the Java-based
browser supposedly is only available in versions for Win 95/NT and Sparc
Solaris systems. The comments in the script stated that the Sparc version
should be downloaded and installed, after which the new script should be
edited to reflect the location of the Java Developers Kit on the machine.
The comments were rather terse; what I wanted to know was whether it worked
well enough to even bother with.
<center><h3>Download and Installation</h3></center>
<p>You've probably guessed that my curiosity got the better of me; feeling
faintly foolish I FTP'ed the three-and-one-half megabytes of Sparc binaries
from the <a href="ftp://ftp.javasoft.com/pub/">Javasoft site</a> and installed
them. After substituting the new start-up shell script for the supplied
script I was ready to try it out. The first try it died, complaining that it
couldn't find <b>mkdir</b> in /usr/bin. I re-edited the shell script and
corrected that path. This time it worked, and I have to say I was impressed.
<center><h3>So What's It Like?</h3></center>
<p>HotJava is a graphically well-designed browser. The graphics in the
various help-pages, the buttons, and the general design are all professionally
executed, and pleasing to the eye. Here is a screen-shot of one of the
included monitor applets:<br>
<HR>
<img src="./gx/ayers/splash.jpg" alt="HotJava" align=center>
<HR>
<p>The browser takes about as long to start up as Netscape does. It's
informative to start it from an xterm window, as verbose messages scroll by
throughout the session indicating what threads and applets are active.
You'll also be able to see its dying words, as (at least on my machine) it
will only run for about one-half an hour before crashing. While it runs it
seems to do well, though. I aimed it at http://www.gamelan.com and tried a
variety of java applets. They seemed to take longer to load than with
Netscape, but once loaded worked well. Frames, once a Netscape exclusive,
are supported. There is also a menu option allowing hotlists from other
browsers to be imported.
<p>In its current "pre-beta" state HotJava uses an awful lot of
memory. <b>Top</b> reported usage of fourteen to fifteen megabytes! No wonder
I could only start it when the machine was lightly loaded. The current version
of the Linux java compiler is a memory hog as well, so perhaps this is a trait
of java, being an interpreted language as it is.
<p>HotJava includes two interesting monitor applets. One shows the current
memory usage in bar-graph form, with a button which will clear past images and
pages from memory, rather like Netscape's "clear memory cache" function. The
other shows a list of all of the active threads, with often as many as twenty
to thirty active at once.
<p>I did notice that if used locally; i.e. for viewing HTML files on the local
hard disk rather than on the net, it wouldn't crash. GIF and JPEG images
referred to from a page (rather than inline on the page) are viewed in the
same window with an internal viewer. This is in contrast to some browsers
which call an external program for this purpose.
<p>I should state here that I don't have the Java Developer's Kit version 1.02
patchlevel 2 installed; my installation is the plain 1.02. Patchlevel 2 is
recommended on the Java-Linux page. Perhaps some of the problems I had with
HotJava can be attributed to my slightly out-of-date JDK.
<CENTER><H3>Conclusion</H3></CENTER>
Even with all of the faults related above my overall impression was
positive. Remember, this is a <b>pre-beta</b> release. HotJava is a major
evolutionary step up from the web-page applets which are the most common
uses of java these days. What other large application written in java is
available? It is a tribute to the inherent cross-platform nature of the
java language that a release intended for Sparc Solaris machines will run at
all on my humble 486 Linux box. Thanks go to whomever modified the
<i>hotjava</i> script and made it available on the Java-Linux site!
<hr>
<address><a href="http://vax2.rain.gen.mo.us/~layers/">Larry
Ayers<layers@vax2.rain.gen.mo.us></a></address>
<!-- hhmts start --> Last modified: Sat Oct 26 17:29:28 CDT 1996
<!-- hhmts end -->
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc11.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./linus.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./tkg.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<!--===================================================================-->
<H4><IMG ALIGN=MIDDLE SRC="./gx/bat-l.gif">
"Linux Gazette...<I>making Linux just a little less scary!</I>
"<IMG ALIGN=MIDDLE SRC="./gx/bat-r.gif"> </H4>
<P> <HR> <P>
<!--===================================================================-->
<center><h1>The TkGoodstuff Package</h1></center>
<center><h4><a href="mailto: layers@vax2.rain.gen.mo.us">by Larry
Ayers</a></h4></center>
<center>Copyright © 1996</center><BR>
<center><H5>Published in Issue 11 of the Linux Gazette</H5></center>
<P> <hr> <P>
<center><h3>Introduction</h3></center>
<p>For the past couple of years Mark Crimmins at the University of Michigan has
been developing and refining an extremely configurable desktop button-bar;
since it's written in Tcl-Tk and superficially resembles the Fvwm Goodstuff
module, it is known as TkGoodstuff. The utility has passed through several
beta versions in the last year. Recently Mark made available a release version
4.1, so I thought this would be an auspicious time to review it.
<center><h3>Features</h3></center>
<p>TkGoodstuff is really a package of "clients", which are modular utilities,
organized and displayed by the master program. Some of the client utilities
were written by Mark Crimmins, while others were contributed by
users. They include:<br>
<ul>
<li>Window-list: displays running programs a la Win95
<li>Pager: Compact pager, like fvwm's
<li>Biff: Mail notifier
<li>Net: Net status indicator, can also launch scripts
<li>Dialer: Configurable ppp/slip script-generator and launcher
<li>Jots: Notepad utility
<li>Watchdog: Monitors any logfile for changes
<li>Clock: Any sort you like
<li>Load: Like a miniature xload
<li>Many others! Consult the <a href="http://www-personal.umich.edu/~markcrim/tkgoodstuff">web-site</a> for descriptions
</ul>
<img align="left" hspace=10 src="./gx/ayers/tkg.gif" alt="TkGoodstuff screenshot">
<p>TkGoodstuff includes a tabbed-notebook style configuration utility, which
allows a multitude of settings to be made for all of the clients. Colors,
icons, fonts, and nesting of clients can all be determined here. Configuring
a utility like this one can be extremely time-consuming. I like to rough out
the configuration in one pass, live with it for a while, then make incremental
changes from time to time as they occur to me. After making any change in the
configuration notebook a window pops up giving you the opportunity to restart
Tkgoodstuff (hereafter referred to as Tkg).
<p>Tkg is designed to cooperate with and interact with Fvwm; it can be loaded
as an Fvwm module either at start-up or from the mouse-menu. If run as a
module the button-bar will "stay on top" and inhabit all pager windows. There
is also an option which allows Tkg to span any of the four screen edges.<br>
<p>On my system PPP dial-up sessions are initiated by means of a short shell
script called <i>ppdi</i>. I recently discovered that the Tkg <b>Net</b>
client can launch this script when its panel is mouse-clicked, and terminate
the session the same way by launching the <i>ppp-off</i> script. This is just
marginally easier than finding an rxvt window and typing the commands in, but
much easier to explain to my wife and kids! The <b>Net</b> button also shows
total time online when a connection is open.
<p>Modules which are used less often can be invoked from a submenu viewed by
clicking the <i>Utilities</i> button.
<p>My favorite configuration uses a small subset of the available modules,
with the window-list and pager combination occupying the lower half of the
bar.
<p>Tkg comes with ample documentation in the form of linked HTML files. A
tutorial is even included which provides help for creating your own modules.
<hr>
<center><h3>Availability and Installation</h3>
</center>
<p>TkGoodstuff is available from the major Linux archive FTP sites, but its <a
href="ftp://merv.philosophy.lsa.umich.edu/pub">home site</a> will have the
most recent version. The compilation and installation process is
well-documented within the package; the current version (4.1) does require
Tcl-7.5 and Tk-4.1.<br>
<hr>
<address><a href="http://vax2.rain.gen.mo.us/~layers/">Larry
Ayers<layers@vax2.rain.gen.mo.us></a></address> <!-- hhmts start -->
Last modified: Tue Oct 22 09:25:55 CDT 1996
<!-- hhmts end -->
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc11.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./hotjava.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./xfiles.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<!--===================================================================-->
<H4><IMG ALIGN=MIDDLE SRC="./gx/bat-l.gif">
"Linux Gazette...<I>making Linux just a little less scary!</I>
"<IMG ALIGN=MIDDLE SRC="./gx/bat-r.gif"> </H4>
<P> <HR> <P>
<!--===================================================================-->
<CENTER>
<H1>X-Files</H1>
</CENTER>
<center><h4><a href="mailto: layers@vax2.rain.gen.mo.us">by Larry
Ayers</a></h4></center>
<center>Copyright © 1996</center><BR>
<center><H5>Published in Issue 11 of the Linux Gazette</H5></center>
<P> <HR> <P>
From two Finnish college students, Juha Forsten and Mikko Kiviniemi, comes
a new variation on the theme of translating basic Unix commands into a
graphical form with Tcl/Tk. X-Files superficially resembles FileRunner
(reviewed in LG #9) due to a shared ancestry: those legendary Amiga
file managers which seem to inspire such loyalty and nostalgia. This new one
has quite a list of features, all of which are configurable to an extreme.</P>
<CENTER>
<H3>Features, Some Unique</H3>
</CENTER>
<P>X-Files is one of those apps which you could spend hours customizing. The
X-Files window at first glance seems cluttered and busy, with row after row of
multicolored function buttons. I believe the authors set up the default
configuration this way so a new user could see all of the possibilities at a
glance. Click here to take a look: <A href="./gx/ayers/xfiles_1.gif">Initial View</A></P>
<P>Exploring further I found that a pull-down menu allows the default
button-arrangement to be exchanged for any of three alternate choices.
Alternately, any individual row can be disabled. As a further refinement there
is an entry under the "config" menu item which allows the appearance and
behavior of any button to be edited. A small edit-window pops up after you
click a mouse button on whichever button you'd like to change. The color,
button text, and command you'd like the button to run can be entered in and
saved. Entire groups of buttons, each optimized for a certain project or type
of work, could be created. They would then be available from the menubar.</P>
<P>Another built-in mini-editor is also available from the menubar. This one
allows specific behavior to be assigned to various file extensions. If you'd
prefer the Gimp rather than XV to be the default image viewer for jpg files
this'll let you do it. A separate program or action can be assigned to each
of the left and middle mouse-buttons.</P>
<P>The references to <I>left</I> and <I>middle</I> in the above statement seem
to refer to a three-button mouse. X-Files was written with this sort of mouse
in mind and can be a little awkward to use with a two-button mouse, like mine.
Even if you have <I>emulate three-button mouse</I> set in your XF86Config
file, double-clicking both mouse buttons at once takes a while to get used
to.</P>
<P>I was pleased to see complete keyboard-control support in this file manager.
The arrow keys and page-up and page-down keys work in whichever directory pane
the mouse cursor is in. The focus follows the mouse without clicking, even to
list-boxes and entry-fields. Lack of this feature is a shortcoming in the
other two Tk file managers I've written about, Tkdesk and FileRunner.</P>
<P>The <I>mv</I> command in Linux (and other Unix variants) has a peculiarity:
it refuses to move a file from one partition to another. Most file managers
I've used deal with this by means of a behind-the-scenes subterfuge. While
the user thinks the manager is moving the file, it's actually copying the
file, then quickly deleting it from the original location. The overall effect
is the same. The <B>Move</B> button in X-Files hasn't learned this trick yet,
but I imagine after a few more version releases it will. This behavior has
an effect upon file deletions which puzzled me for a while. X-Files would
occasionally refuse to delete files for no apparent reason. What was
happening was a result of X-Files' use of an undelete/trashcan directory. This
directory (~/.xfiles/xfiles_dumpster) is created during installation, and the
default behavior is to move all deleted files to this directory. This would
be fine if all your files were on the same partition; if they're not X-files
will balk. Luckily this feature is easily disabled; I prefer irrevocable
deletion anyway.</P>
<P>A "virtual file system", similar to but not quite as refined as the Midnight
Commander's, allows the contents of zipped and tarred and gzipped files to be
browsed. In this beta <I>*.tgz</I> files are supported, but not
<I>*.tar.gz</I> files.</P>
<HR>
<CENTER>
<H3>Licensing and Availability</H3>
</CENTER>
<P>X-Files has many other features; why not check out the <A
href="http://pinhead.tky.hut.fi/~xf_adm/">X-Files Home page</A> and find out
more? The source can be downloaded from the page as well. As of this writing
(early October) it hasn't shown up on the archive sites.</P>
<P>This program isn't completely free. The terms are similar to those of John
Bradley's XV image viewer: it's free to individuals, but for business and any
other multiple-user use it costs twenty dollars to register. The authors also
hint that feature requests from those who have paid will be more likely to be
acted upon. An individual wishing to be a "supported user" only has to pay ten
dollars.</P>
<HR>
<CENTER>
<H3>Conclusion</H3>
</CENTER>
<P>I consider X-Files to be a direct competitor in features and utility to
both FileRunner and the Midnight Commander. Tkdesk and Moxfm are in a
different league; they're much more than file managers, though many of the
functions are comparable. The Midnight Commander has the useful trait of
running in a console session as well as in an rxvt or xterm window. Because of
this, Midnight Commander is among the first apps I resurrect after
repartitioning and reinstalling Linux. I'm just happy that we now have
choices in applications for Linux; it wasn't that long ago that Linux users
were glad to have just one of each type of app or utility.</P>
<HR>
<ADDRESS>
<A href="http://vax2.rain.gen.mo.us/~layers/">Larry
Ayers<layers@vax2.rain.gen.mo.us></A></ADDRESS>
<!-- hhmts start -->
Last modified: Tue Oct 22 09:24:14 CDT 1996
<!-- hhmts end -->
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc11.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./tkg.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./tapr.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<!--===================================================================-->
<H4><IMG ALIGN=MIDDLE SRC="./gx/bat-l.gif">
"Linux Gazette...<I>making Linux just a little less scary!</I>
"<IMG ALIGN=MIDDLE SRC="./gx/bat-r.gif"> </H4>
<P> <HR> <P>
<!--===================================================================-->
Subject: TAPR SS Position Statement <BR>
Date: Thu, 26 Sep 1996 12:18:44 -0700 (PDT) <BR>
From: Steve Stroh <BR>
To: Phil Hughes WB6SWR <BR>
<P>
I suspect that the "Intranet" described below will be built on Linux-based IP
routers, possibly a simple implementation that can be booted from floppy
or Flash Card.
<P>
It's going to be very, very interesting.
<P>
Steve N8GNJ, <A HREF="mailto:strohs@halcyon.com">strohs@halcyon.com</A><BR>
Amateur Radio TCP/IP <A HREF="mailto:n8gnj@sw.n8gnj.ampr.org">
n8gnj@sw.n8gnj.ampr.org</A><BR>
| Amateur Spread Spectrum is the wave of the present!<BR>
<P><HR> <P>
<center><H2>TAPR's Statement on Spread Spectrum Technology Development</H2></center>
<center><H4><A HREF="http://www.tapr.org/">http://www.tapr.org/</A></H4></center>
<P>
TAPR was founded in 1982 as a membership supported non-profit amateur radio
research and development organization with specific interests in the areas
of packet and digital communications. In the tradition of TAPR, the Board
of Directors at their Fall 1995 meeting voted that the organization would
begin to actively pursue the research and development of amateur radio
spread spectrum digital communications. At the Spring 1996 board of
directors meeting, the following statement of purpose was passed:
<blockquote>
"TAPR believes that the technical facts support our conviction that
conventional and spread spectrum systems can coexist without detriment to
conventional systems on all frequencies from MF to EHF. To this end, TAPR
will begin to research spread spectrum systems that will develop technology
for future deployment."
</blockquote>
As stated above, the TAPR board feels strongly about TAPR's focus on spread
spectrum technology and especially how it relates to the potential
coexistence on frequencies that will have increased number of users
occupying them. The amateur radio bands, like other spectrum will become
more heavily utilized in the future. It is in the interest of amateur radio
to develop systems that are interference-resistant while not interfering
with other primary or secondary users on those frequencies.
<P>
TAPR understands the concerns many have with the new technology, and
believes that efforts in both education and research is necessary in order
to allay the fears about interference and to demonstrate the benefits of the
technology.
<P>
TAPR believes that todays' communications technology is moving toward all
digital transmitters and receivers. These advances in technology, combined
with the swift evolution of cell based transmission and switching protocols,
are opening up a new set of possibilities for unique new services utilizing
intelligent networks. These will contain smart transmitters, receivers, and
switches. Today's Internet is perhaps the best example of a self-regulating
structure that embodies these new technological approaches to communications
in the networking domain. However, to date, many of these innovations have
not moved into the wireless networking arena. TAPR will work on moving
these innovations into the amateur radio community.
<P>
TAPR feels that the VHF/UHF/SHF radio networks of the future will involve a
mixture of links and switches of different ownership, which terminate at the
end-user via relatively short-distance links. What will then be required is
a built-in, distributed, self-governing set of protocols to cause the
network's behavior to make more efficient use of a limited, common shared
resource, the radio spectrum. Creating such a self-regulating structure for
the optimal sharing of spectrum will require much effort.
<P>
One of the major problems which stands in the way of these new approaches
today is the current FCC regulatory environment and the manner in which
spectrum is managed and allocated under its rules.
<P>
Historically, the current regulatory approach to radio has been based upon
the technology that was in use at the time that the Communications Act of
1934 was framed, basically what we would call today, 'dumb' transmitters
speaking to 'dumb' receivers. The technology of that time required reserved
bandwidths to be set aside for each licensed service so that spectrum would
be available when needed. Given this regulatory approach, many new
applications cannot be accommodated since there is no available unallocated
spectrum to 'park' new services. However, given the new set of tools
available to the entrepreneur with the advent of digital technology, what
once were 'dumb' transmitters and receivers can now be smart devices which
are capable of exercising greater judgment in the effective use and sharing
of spectrum. The more flexible the tools that we incorporate in these
devices, the greater the number of uses that can be accommodated in a fixed,
shared spectrum.
<P>
Therefore, TAPR will focus its spread spectrum effort in the following
areas:
<ul>
<li>TAPR will work to promote rules and technologies to make the most efficient
use of the spectrum through power control, forward error correction, and
other means to minimize interference among spread spectrum users and
existing communications systems.
<li>TAPR will work on issues and efforts with other national organizations to
change the regulatory environment and rules in order to promote the
experimentation, development, and later deployment of spread spectrum
technology.
<li>TAPR will work to develop information on the topic to help educate members
and the amateur community as a whole about spread spectrum technology, and
to disseminate this information via printed publications, the World Wide
Web, presentations at conferences and meetings, and other means.
<li>TAPR will work to foster experimentation, development, and design of spread
spectrum systems, and to facilitate the exchange of information between the
researchers and other interested parties.
<li>TAPR will work to develop a national intra-network to foster the deployment
of future high-speed spread spectrum systems into regional and local
communities, including the development of suitable protocols and guidelines
for deployment of these systems.
<li>TAPR will work with commercial companies who manufacture spread spectrum
devices which operate in spectrum shared by the amateur radio service (ARS),
in order to make them more aware of the nature of ARS operations on those
bands with the goal to work towards the deployment of devices which will
minimize interference between all spectrum sharing partners.
<li>TAPR will work with commercial companies who manufacture spread spectrum
devices in order to identify equipments that can be either used or modified
for use for Part 97 operation.
</ul>
<P>
Adopted by the TAPR Board on September 20th, 1996
at Seatac, Washington Board Meeting.
<P>
Spread Spectrum Statement Committee: <BR>
Greg Jones, WD5IVD <BR>
Dewayne Hendricks, WA8DZP <BR>
Barry McLarnon, VE3JF <BR>
Steve Bible, N7HPR <BR>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc11.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./xfiles.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="tclinst.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<!--===================================================================-->
<H4><IMG ALIGN=MIDDLE SRC="./gx/bat-l.gif">
"Linux Gazette...<I>making Linux just a little less scary!</I>
"<IMG ALIGN=MIDDLE SRC="./gx/bat-r.gif"> </H4>
<P> <HR> <P>
<!--===================================================================-->
<center> <H1>My Experience Installing TCL/TK <BR>
from 7.4 to 7.5</h1></center>
<center> <H2>on Red Hat Linux 2.1, kernel release 1.2.13</h2></center>
<center> <H3>By Earl Brown,
<A HREF="mailto:gleep@lvinet.com">gleep@lvinet.com</a></h3></center>
<center><H5>Copyright © 1996</H5></center>
<center> <H5>Published in Issue 11 of the Linux Gazette</H5></center>
<P> <HR> <P>
<H4>In which I chronicle my experiences attempting to upgrade my version of
TCL/TK to match the web-based help files I had already obtained.</h4><p>
For the short version, click <A href="tclinst.html#Summary">here</a><p>
On with the story!<p>
Naturally, the first thing I looked for was the RPM. Found it,
couldn't get it because Red Hat FTP was _slow_ during daytime. So I
went to sun.<p>
There I found tcl7.5 (I'm cautious - don't want to use beta stuff when
I can avoid it. That is until I'm independently wealthy with time on
my hands!). Look for:
<pre> ftp://ftp.sunlabs.com/pub/tcl/tcl7.5p1.tar.gz</pre>
That's the file I got. Download it. While you're there, get:
<pre> tk4.1p1.tar.gz</pre>
I created a directory off my home:
<pre> ~/tcl</pre>
and put both files in there. From there I unzipped them to get two subdirectories:<p>
<pre> ~/tcl/tcl7.5
~/tcl/tk4.1</pre>
Both of these contain a README file - I read it (but only closely
enough to see that there was a README in the 'unix' subdirectory that
would give me info on how to compile.<p>
So, I changed to the unix subdirectory:<p>
<pre> ~/tcl/tcl7.5/unix</pre>
And read the README file. It said run "configure" (which just checked out
my machine), and then run "make" (which does about what you'd expect),
then run "make install". All of these appeared to work, but when I ran
'wish', I still had the old versions. Hmmmm. Damn.<p>
Put it on the back burner for a while - I've other work to do. When I
got home, I looked up the files again (and found the RPM this time),
and downloaded them (at 28.8, instead of T-1 :(<p>
<hr>
Next morning...<p>
First thing is try the RPM. No luck - it said the .rpm was a 'version
3' RPM, and that I needed to upgrade my version of RPM. Okay - glad
I've got two machines at home (Thank you, Mom, for giving me your old
'486!), I started up the Windows box (I'm looking forward to getting
WABI so my wife can play FreeCell in a _real_ OS :) and started surfing
again...<p>
Does anybody know why the rpm says that rpm2.2.rpm is a version 3 rpm
and I need to upgrade?<p>
While I was finding this out, I was exploring other avenues. I got the
files from sun installed on my machine at home. But they wouldn't
compile (something about missing include files - this didn't surprise
me, I've stripped that machine back in the name of hard drive space).<p>
So, being the explorer I am, I got out the 'sun archives' CD from my
Red Hat install set. Did a 'find' for "*.tcl" and was happy to see
there was a tcl7.5p1.tar.gz file. Good. Ungzipped the thing and 'tar
tvf'ed it to see what was in it. Hmmm. "./usr/..." Looks like I
should just untar it from the root directory. I'm not so cautious when
I'm frustrated.<p>
This option took a _lot_ of drive space. I wish I could undo it. It
didn't really work (and it complained about not being able to form
links. I tried to do the links myself, but it still failed).<p>
<hr>
Nap time...<p>
That was relaxing. I realized I'd been able to compile at the office,
where it was all the same setup, so I could play with "make install" at
home and see what I could do.<p>
While I was connected to work, I had the idea to try "wish" from the
compiled directory at work. IT WORKED! Headway at last! (Did I also
mention that I'm sometimes a bit slow?) But I've got this really ugly
hierarchy of files to my compiled copy of 'wish', and I don't know what
it's going to look for. Copy to my home machine.<p>
Here's the part where things go quickly.<p>
On the home machine, I set up the directory structure I had at work and
untarred the files. Now I've got a working copy of wish and tclsh.<p>
I created a 'bin' directory off my home directory and copied 'wish' and
'tclsh' into that directory. I also copied the two 'lib' files
"libtcl7.5.a" and "libtk4.1.a" into the bin directory. I don't know
where they really go, but this place makes good sense.<p>
So I run 'wish' from there. Error message - unable to load 'libtcl'
from a list of directories. I'm not sure what they all were, but one
was '~/library'. Since it worked from ~/tcl/tk4.1/unix, I just copied
the '~/tcl/tk4.1/library' directory to '~/library', and then copied
'~/tcl/tcl7.5/library' to '~/library'.<p>
Now wish ran with the right version. Delete the ~/tcl structure
(backup just in case!) and it worked. Good enough. I played with my
working install of tcl/tk quite happily the rest of the day.<p>
<hr>
But during the night...<p>
"I've got to set it up to work better!"<p>
So, I get to work and get 'wish' to give me an error message - it
complained that the 'init.tcl' was not found in
'/usr/local/lib/tcl7.5'.<p>
Okay. I went to '~/tcl/tcl7.5/library' and copied the files I found
there to '/usr/local/lib/tcl7.5' (a directory which I had to create, by
the way).<p>
Run 'wish' again, and this time it complains about 'tk.tcl' not being
found in '/usr/local/lib/tk4.1'. I'd expected something like that.
So, create '/usr/local/lib/tk4.1' and 'cp ~/tcl/tk4.1/library/*
/usr/local/lib/tk4.1'. And it worked!<p>
Then 'cp ~/tcl/tcl7.5/unix/tclsh /usr/bin/tclsh7.5' and 'cp
~/tcl/tl4.1/unix/wish /usr/bin/wish4.1'. Go to ~ and run 'wish4.1'.
It worked again! Good, create the link 'ln -sf /usr/bin/wish4.1
/usr/bin/wish' and 'ln -sf /usr/bin/tclsh7.5 /usr/bin/tclsh'<p>
Try it again; 'wish' - and success!<p>
Things I found out:<p>
<UL><LI>In Red Hat 2.1, the tcl/tk libraries are in /usr/lib, but the upgrade
looks for stuff in /usr/local/lib. Can anybody explain this
relationship to me?<p></li>
<LI>The script '~/tcl/tcl7.5/unix/configure' has a pair of options:
--prefix and --exec-prefix. They have something to do with where
tcl/tk expect things to be. Anybody know exactly what?<p></li>
</ul>
<A name="Summary"><hr>
<H2>Short Summary:</h2></a>
<pre>
Get ftp://ftp.sunlabs.com/pub/tcl/tcl7.5p1.tar.gz and tk4.1p1.tar.gz
'gunzip' them and 'tar xvf' them
'cd ./tcl7.5/unix'
'configure'
'make'
'make install'
'cd ../..'
'cd ./tk4.1/unix'
'configure'
'make'
'make install'
cd ../..
'cp ./tk4.1/unix/wish /usr/bin/wish4.1'
'cp ./tcl7.5/unix/tclsh /usr/bin/tclsh7.5'
'ln -sf /usr/bin/wish4.1 /usr/bin/wish'
'ln -sf /usr/bin/tclsh7.5 /usr/bin/tclsh'
'mkdir /usr/local/lib/tcl7.5'
'mkdir /usr/local/lib/tk4.1'
'cp ./tcl7.5/library/* /usr/local/lib/tcl7.5'
'cp ./tk4.1/library/* /usr/local/lib/tk4.1'
</pre>
<p>
At this point, I'm pretty sure 'wish' will work. But no guarantees.<p>
And there will also be a bunch of files left over from any previous
installation of TCL/TK. Maybe someday I'll clean them up. Probably
not till I get the new Red Hat 4, tho...(I've got to remember to tar &
gzip my 'home' tree before that install!)<p>
Earl
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc11.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./tapr.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./wkndmech.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<!--============================================================-->
<H4><IMG ALIGN=MIDDLE SRC="./gx/bat-l.gif">
"Linux Gazette...<I>making Linux just a little less scary!</I>
"<IMG ALIGN=MIDDLE SRC="./gx/bat-r.gif"> </H4>
<P> <HR> <P>
<!--============================================================-->
<img src="../gx/fisk/wkndMech.gif" align=bottom width=397 height=150>
<h1>Welcome to The Linux Weekend Mechanic!</h1>
<h2>Published in the November Edition of the Linux Gazette (#11)</h2>
<font size="2"><b>
Copyright (c) 1996 John M. Fisk <fiskjm@ctrvax.vanderbilt.edu><br>
The Linux Gazette is Copyright(c) 1996 Specialized Systems Consultants Inc.
</b></font><p>
<hr>
<p>
<font size="+4">Y</font>ou've made it to the weekend and things have finally slowed down.
You crawl outa bed, bag the shave 'n shower 'cause it's Saturday, grab
that much needed cup of caffeine (your favorite alkaloid), and shuffle
down the hall to the den. It's time to fire up the Linux box, break out
the trusty 'ol Snap-On's, pop the hood, jack 'er up, and do a bit of
overhauling!
<p>
<img src="../gx/fisk/mechanic.gif" align=bottom width=147 height=66>
<font size="+2">Time to become the <i>Linux Weekend Mechanic!</i></font>
<p><hr><p>
<!-- TABLE OF CONTENTS ================================================ -->
<h2>Table of Contents</h2>
<ul>
<li><a href="#welcome">And Just What Is the Linux Weekend Mechanic?</a>
<li><a href="#news">The Talk About Town...</a>
<li><a href="#tar">The Shop Manual: More <i>tar</i> Tricks!</a>
<li><a href="#fileinfo">The Shop Manual: Basic File Information</a>
</ul>
<!-- END TABLE OF CONTENTS ============================================ -->
<p><hr><p>
<!-- WELCOME SECTION ================================================== -->
<h2><a name="welcome"><img src="../gx/fisk/attndant.gif" width=129 height=99> And
Just What <i>Is</i> the Linux Weekend Mechanic...?</a></h2>
<p>
Glad you asked... :-)
<p>
After a very busy year creating, writing, editing, proofing, and producing the
first eight issues of the <b>Linux Gazette</b> I'm happy to say that it's been
turned over to the kind folks at the <a href="http://www.ssc.com/">Linux
Journal</a> who will be continuing its production. My special thanks to
<b>Phil Hughes</b>, the producer of the Linux Journal who first broached the
subject of taking over the Gazette when the time commitment was getting out of
hand, AND to <b>Marjorie Richardson</b>, the new editor of the Gazette whose
wit and wisdom should ensure that the LG will continue to flourish.
<p>
And now that someone else is doing the day to day management of the Gazette
I'm back to reading, writing, and tinkering -- and this is what the <b>Weekend
Mechanic</b> is all about.
<p>
I'd like to try to put together a monthly column for the Gazette that deals
with customizing and running Linux on a personal, stand-alone (<i>i.e.</i>,
not directly networked) PC. The scope of topics may include things such as:
<ul>
<li>Shell Programming
<li>Shell Customizations
<li>Program Reviews
<li>Useful Utilities
<li>Simple Tcl/Tk Scripting
<li>Dial-Up PPP Setup and Tips
<li>And so forth...
</ul>
<p>
Basically, it covers the topics that I've found interesting using Linux on my
PC at home -- I've got a shiny new Cyrix P-166+ machine as of August of this
year and have 'Net access via a dial-up PPP connection. So, since I'm writing
from my own experiences, you can anticipate the types of topics I'd likely be
covering. I should add one important proviso: <i>Keep in mind that many of
the suggestions and ideas are NOT useful or recommended in a networked or
multi-user setting in which security is an issue!!</i>
<p>
Let me say this another way:
<p>
<i>Caveat Emptor!</i>
<p>
Because I have a stand alone box and a wife who absolutely hates using
computers I'm the only one that has physical access to my machine. For this
reason, security is not something that I've had to deal with. However, at
<a href="http://www.mtsu.edu/">MTSU</a>, where I'm currently in school, we use
both HP-UX machines and a number of P-133 machines running Red Hat 3.0.3 Linux
with the 2.0 kernel upgrade. Security on these Linux boxes has been a VERY
REAL issue of late -- if you're running Linux and someone else has potential
access to your machine you'd be well advised to think twice before trying
everything I might suggest. That's not to put a damper on anyone's
enthusiasm, but having one's system hacked is a serious bummer.
<p>
And now that that's been said, I really do hope that the information here will
be useful or helpful. The more I use Linux the more I'm amazed at its depth
and breadth and the range of tools and programs that are available. It is
seriously fun!
<p>
For this reason, I've decided to use the "Weekend Mechanic" motif.
Thing is, if you're running Linux you've undoubtedly discovered that it takes
more time to set up, configure, and fine-tune than most shrink-wrapped OS's.
It's a "high needs" OS. Now, you could use one of those
fancy-shmancy off-the-shelf Brand X OS's, but the question you have to ask
yourself is...
<p>
<i>Do you really want to be see hanging around an OS that looks like it comes
with training wheels...?!!</i>
<p>
I don't <i>think</i> so... ! ;-)
<p>
So, if you're one of those "<i>I'd rather have a '68 Pontiac with a big
block V8, Rochester QuadraJet, Dualies, and a box of Snap-On's than anything
else"</i> kind of folks...
<p>
<b>Relax, you're in the right place. Welcome aboard :-)</b>
<!-- END WELCOME SECTION ============================================== -->
<p><hr><p>
<!-- SHOP NEWS ======================================================== -->
<h2><a name="news"><img src="../gx/fisk/desklamp.gif" width=79 height=99
align=bottom>The Talk About Town...</a></h2>
<p>
For anyone who's been regularly reading the comp.os.linux.* hierarchy you'll
realize that there's been a LOT happening recently within the Linux community.
Here's just a smattering of some things that you might find interesting as
well as other odds-n-ends.
<p>
Oh, and BTW...
<p>
<img src="./gx/fisk/pumpkin1.gif" width=138 height=98 align=middle>
<font size="+4">Happy Halloween!</font>
<img src="./gx/fisk/pumpkin2.gif" width=119 height=94 align=middle>
<p>
And now, back to the news...
<p>
<h3><img src="../gx/text.gif" width=60 height=45 align=bottom>Caldera to
release source code for DR DOS, CP/M, Novell DOS, and PalmDOS</h3>
<p>
Yup, you read that right!
<p>
Caldera has <a href="http://www.caldera.com/news/">announced</a> that it is
in the process of a planned release of source code for DR DOS, CP/M, Novell DOS,
and PalmDOS AND the beginning of a project which they are calling
<b>OpenDOS</b>. The announcement stated a tentative date of the first quarter of
1997 for this to occur. Drop by and have a look. I think you'll find it
interesting.
<p>
If you've got the hard drive space and want to do a bit of hacking away at
something new, here's an interesting opportunity.
<h3><img src="../gx/text.gif" width=60 height=45 align=bottom>Did you know that
there's a "FreeDOS" Project underway...?</h3>
<p>
Yup, there's a group working on a freely available version of a DOS-like OS.
You can find out more on what they're doing, how to get a copy of the current
version, and how to contribute to this effort by checking out the
<a href="http://sunsite.unc.edu/pub/micro/pc-stuff/freedos/freedos.html">FreeDOS
home page at sunsite.unc.edu/pub/micro/pc-stuff/freedos/freedos.html</a>.
<p>
And speaking of new toys...
<h3><img src="../gx/text.gif" width=60 height=45 align=bottom>StarOffice and
Adobe beta software for Linux!</h3>
<p>
StarOffice, a German software developer, has recently announced a freely
available beta version of its <b>StarOffice</b> suite of productivity
applications for the Linux OS. This is a seriously cool application suite
that has a LOT of high end features. One caveat: <b>you'll need a copy of
the Motif libraries</b> in order to run these applications. If you don't have
motif, then you might want to try some gentle arm-twisting to see whether the
folks at StarOffice would release a statically-linked version.
<p>
For those of you with Motif, you can get the installation "disk
sets" at any sunsite mirror such as:
<p>
<a href="ftp://ftp.cc.gatech.edu/pub/linux/apps/staroffice/"> GA Tech's
FTP Linux Archive</a>
<p>
in their /pub/linux/apps/staroffice/ directory. Also, Adobe has just
announced a beta version of their <b>Adobe Acrobat 3.0</b> reader for
the Linux OS. You can find out the particulars of how to obtain a copy
at:
<p>
<a href="http://www.adobe.com/acrobat/readstep.html">ADOBE's WWW site
</a>
<p>
in their /acrobat/readstep.html page. I just got a copy of this and the
installation was a breeze. At least on my system, load time was about
what all motif-based apps tend to be (read: "somewhat slow")
but performance thereafter was really quite good.
<p>
If you're interested in having a peek at a screen shot with one of the
distributed pages, here's a look at it:
<p>
<a href="./gx/fisk/acrobat.gif">ADOBE Acrobat 3.0 screen dump (~40K) 810x630</a>
<p>
Keep in mind that the official stance is that it is only supported under the
<b>Yggdrasil Fall '95</b> Linux distribution. However, under my 'ol
<b>Slackware '96</b> it runs just fine... Also, you'll notice the subtle
subliminal message in the titlebar... :-)
<p>
And speaking of distributions...
<h3><img src="../gx/text.gif" width=60 height=45 align=bottom>Slackware '96 is
out and Red Hat Rembrandt is on its way!</h3>
<p>
Now that the Linux kernel 2.0 is out and, for most folks, ELF is in, you'll
find a number of much-awaited distributions with the 2.0 kernel and necessary
development utilities. If you've been waiting to upgrade then now's the time!
<p>
There is a growing number of very good Linux distributions available, many of
which now incorporate the recent kernel and development set upgrades. I've
just installed Slackware '96 (<i>AKA</i> Slackware 3.1</i>) which I received
from the folks at
<p>
<a href="http://www.cdrom.com/">Walnut Creek</a>
<p>
who are the official distributors of Slackware Linux. Since it was also my
birthday recently my wife just got me a copy of the August, 1996 Linux
Developer's Resource 6-CD Set from
<p>
<a href="http://www.infomagic.com/">InfoMagic</a>
<p>
Both of these are VERY nice sets that run in the $25 - $40 range and include a
boatload of program sources from the usual linux FTP archive sites
(sunsite.unc.edu, tsx-11.mit.edu, prep.ai.mit.edu, and so forth). Those of
you who are on the monthly Mo' Linux mailing from
<p>
<a href="http://www.pht.com/">Pacific HiTech</a>
<p>
will have just gotten a copy of the Slackware '96 CD with the September
edition of Mo' Linux. Pacific HiTech (PHT) has a VERY nice service which
offers a monthly CD full of all kinds of goodies including the most recent
kernel sources, new programs and updates from Sunsite's Incoming dir, the
latest GNU stuff including GCC and its accessories, and so forth. They take
special requests and have recently included things such as the huge Perl
archives, Tcl/Tk archives, Python archives, the Java Development Kit (JDK),
and so forth. Also, there are regular Red Hat RPM and SRPM updates each month
for those running Red Hat systems.
<p>
And keep in mind that Red Hat's Rembrandt just hit beta release! This is their
kernel 2.0 version and should be ready for regular release soon! You can get
a copy of Rembrandt beta at the
<p>
<a href="http://www.redhat.com/">Red Hat WWW site</a>
<p>
as well as find all kinds of nifty info and links in their "Linux
Info" page.
<p>
Since Christmas is just around the corner, I'm thinking about writing up a
small "Wish List" of tools and toys that you might want to put on
your Beloved's "Get For Me List". The small hoard of books and CD's
on the bookshelf is growing -- next month I'd like to do a short piece on
things that I've found useful. *YMMV.
<p>
<font size="-2">*YMMV: "Your Mileage May Vary"</font>
<h3><img src="../gx/text.gif" width=60 height=45 align=bottom>Here's the patch
for the sysklog bug in Slackware '96</h3>
<p> Those of you who've just installed Slackware 3.1 may have run into
the same rather frustrating bug in the <b>sysklog</b> package that I
did. After a recent installation, I found that syslogd would dump core
after running pppd. About that time, postings to comp.os.linux.setup
and misc suggested that this was a problem with the distribution and not
with the hardware I was running.
<p>
So, after a request for help to <b>Dr. Greg Wettstein</b>, the maintainer of
the sysklog package, I received the following patch from him that remedied
the situation. For those of you needing this, you can get a copy of the
message which Greg sent. Just load it and save it to disk as a text file.
You'll also need a copy of the sysklog sources to recompile the program.
Here's what you'll need:
<p>
<a href="./misc/sysklog.patch">Sysklog patch from G. Wettstein (~70K)</a>
<p>
MANY thanks to Greg W. and the rest of the folks who've worked on this
program.
<p>
I mentioned in the above announcement about StarOffice that you'll need a copy
of the motif libraries to run this product (at least while it is distributed
as shared-library executables). I really want to put in a good word for the
folks at <a href="http://www.redhat.com/">Red Hat Software Inc.</a> and for
their version of <b>Red Hat Motif 2.0</b>.
<p>
When I went to the <b>Linux Expo '96</b> this past April, I had a seriously
fun time meeting folks, chatting, perusing the various book and vendor tables,
and sitting in on the various talks. If you missed it this past year and you
can drive, fly, Amtrak, run, jog, walk, or crawl your way to Raleigh, North
Carolina next Spring, then you won't want to miss it!! I don't know for sure
if they're planning another Expo, but if so, you really don't want to miss it.
<p>
Anyway, while I was there I bought a copy of <b>Red Hat Motif 2.0</b> and have
been using it ever since. Now, I know that one of the FAQ's to the various
comp.os.linux.**** groups is "HELP! Which Motif should I get?!!", or
something to that effect. There usually ensues a modestly impassioned
discussion about the merits and drawbacks of one's recent Motif purchase.
<p>
For the record, I'd like to say that I've been extraordinarily pleased with
this product. It comes with a very complete User's Manual which covers
installation and configuring the Motif Window Manager (mwm). The CD also
contains the Motif libraries, development tools, and documentation in both
*.tar.gz format and as RPM's.
<p>
Installation was a breeze using rpm version 2.0 and I've been compiling motif
stuff without a hitch ever since. This includes programs such as mosaic,
plan, llnlXFtp, llnlXDir, xtar, xmcalendar, xmdiary, XEmacs, GVim, and so
forth. Compiling with the Motif libs has been completely transparent and
using shared, pre-compiled binaries (such as StarOffice) has been flawless.
<p>
At a time when there has been a LOT of negative press towards a variety of
individuals and institutions, let me offer a very heartfelt positive comment:
<p>
To the folks at Red Hat, thanks for a VERY nice product!
<p>
(FYI, I just got a copy of the most recent flyer from <b>Surplus Direct</b>, a
distributor of, you guessed it..., surplus hardware and software. On page 17
of the flyer they offer the <b>Red Hat's MOTIF for LINUX V2.0 CD</b> for
$99.99. Not a bad deal... :-) You can call them at 1-800-753-7877 U.S. or
541-387-6000 International. They even have a nifty web page which you can
check out at <a href="http://www.surplusdirect.com/">
http://www.surplusdirect.com</a>)
<!-- END SHOP NEWS ==================================================== -->
<p><hr><p>
<!-- TAR ARTICLE ====================================================== -->
<h2><a name="tar"><img src="../gx/fisk/toolchest.gif" width=122 height=97
align=bottom>More <i>tar</i> Tricks!</a></h2>
<p>
OK, ready for a quiz...? Close your books, put away your notes, and answer the
following question:
<p>
Without looking at the <i>man</i> page, (a) What does the following command
do? and (b) Why on earth would you use it in the first place?
<pre>
tar -tvzf file.tar.gz |tr -s ' ' |cut -d ' ' -f8 |less
</pre>
<p>
Don't peek...!
<p>
<font size="-1">(If this were a REAL web page, you'd click on a tiny icon of a
music box and have it do RealAudio of that jingle from Jeopardy while an
accompanied set of animated icons amuses you. But since I'm not that bright,
you'll have to hum quietly to yourself and decide when you're tired of
waiting... :-)</font>
<p>
Figured it out?
<p>
If you guessed that it uses <b>tar</b> to do an archive listing on a tar'd and
GNU gzip'd archive, then you'd be warm.
<p>
If you guessed that it uses <b>tar</b> to do an archive listing on a tar'd and
GNU gzip'd archive and then piped the output to the GNU <b>tr</b> utility
which would translate multiple instances of the space character into a single
space character, then you'd be even warmer.
<p>
If you guessed that it uses <b>tar</b> to do an archive listing on a tar'd and
GNU gzip'd archive and then piped the output to the GNU <b>tr</b> utility
which would translate multiple instances of the space character into a single
space character and then pipe <i>that</i> output to the GNU <b>cut</b> utility
which would use that single space as a field delimiter and then print only the
data in field 8, then you'd be hot.
<p>
And if you guessed that it uses <b>tar</b> to do an archive listing
on a tar'd and GNU gzip'd archive and then piped the output to the GNU
<b>tr</b> utility which would translate multiple instances of the space
character into a single space character and then pipe <i>that</i> output
to the GNU <b>cut</b> utility which would use that single space as a
field delimiter and then print only the data in field 8 and then output
all of that to the <b>less</b> pager so that you could view, search, edit, and
optionally print the output, then you, my friend get to...
<p>
<b>Go to the head of your class! :-)</b>
<p>
Actually, I wouldn't have been able to guess this without peeking a bit, so
don't feel bad if you didn't guess all of it correctly. But this answer only
gives the answer to part (a). The real question you have to ask yourself is,
"Why on earth would you do this in the first place?"
<p>
Good question.
<p>
I'll get to that in a moment, but first, let me ask a simple question:
"How do you know what's actually inside a tar or tar+gzip archive
<i>without</i> actually unarchiving it?" Now, you can always unarchive a
tar.gz file and have a look at things but what if you really only wanted to
see what was in it or just look at a single file in the archive. What do you
do then?
<p>
The answer lies, at least in part, with our funky little command line above.
<p>
Let's see what we can do with this.
<p>
The first thing you've all probably realized is that tar has a bazillion or so
command line arguments so you can do almost anything with it. As you've
guessed, using the "-t" option displays a listing of the files in
the archive. If the archive has been compressed, then using the
"-z" option will automatically uncompress the archive.
<p>
So far, so good.
<p>
Thing is, what you want to do is actually look at one of the files in that
archive. Say you wanted to have a peek at the README file that came with some
program. Seems silly to have to unarchive an entire (potentially HUGE) file
just to see one item. Those of you who've used tar for a while will realize
where I'm going with this. You see, another one of tar's nifty little options
is the "-O" (which can also be invoked as --to-stdout) which causes
tar to send the output directly to standard output: generally, your computer
terminal. This is what we need to use to get a look at some file in the
archive -- we'll have tar send it to stdout so we can view it. That way, we
won't need to unarchive the file.
<p>
The other piece of the puzzle involves how you get tar to unarchive a specific
file within an archive. Again, you manual page readers will know that this is
done by simply appending the filename(s) to the end of the argument. Now in
case I'm starting to lose any of you, here's an example which should help
clear things up.
<p>
Say that I have some archive such as the <b>a2ps</b> program (which does ASCII
-> PostScript conversion, BTW). To get a listing of the files in the
archive all I have to do is:
<pre>
tar -tvzf a2ps-4.5.23.src.tar.gz
</pre>
and this gives me the following output:
<pre>
drwxr-xr-x 11714/117 0 Sep 5 11:38 1996 a2ps-4.5.23/
-rw-r--r-- 11714/117 7721 Sep 5 11:38 1996 a2ps-4.5.23/INSTALL
-rw-r--r-- 11714/117 2281 Sep 5 11:38 1996 a2ps-4.5.23/README
-rw-r--r-- 11714/117 1429 Sep 5 11:38 1996 a2ps-4.5.23/TODO
-rwxr-xr-x 11714/117 4773 Sep 5 11:38 1996 a2ps-4.5.23/install-sh
-rw-r----- 11714/117 3576 Sep 5 11:38 1996 a2ps-4.5.23/Makefile.in
-rw-r--r-- 11714/117 907 Sep 5 11:38 1996 a2ps-4.5.23/config.h.in
-rwxr-xr-x 11714/117 47767 Sep 5 11:38 1996 a2ps-4.5.23/configure
-rw-r----- 11714/117 1415 Sep 5 11:38 1996 a2ps-4.5.23/configure.in
-rw-r--r-- 11714/117 81240 Sep 5 11:38 1996 a2ps-4.5.23/a2ps.c
-rw-r----- 11714/117 70081 Sep 5 11:38 1996 a2ps-4.5.23/a2ps.h
-rw-r--r-- 11714/117 15348 Sep 5 11:38 1996 a2ps-4.5.23/afm.h
-rw-r--r-- 11714/117 10482 Sep 5 11:38 1996 a2ps-4.5.23/a2ps.man
</pre>
So now, let's say that I want to have a look at what's in the README or the
INSTALL file; well, now that you know that you send the output of tar to
stdout you know you're golden! All you'd need to do is something like:
<pre>
tar -xvzOf a2ps-4.5.23.src.tar.gz a2ps-4.5.23/README
</pre>
And, <i>voila!</i>, there's your file. The astute will immediately comment
that piping <i>that</i> output to a pager such as <b>more</b> or <b>less</b>
makes a lot more sense because now you can actually read more than just the
last screen full of text.
<p>
Note, too, that the basic command line was (in <i>pseudocode</i>):
<pre>
tar -options archive.tar.gz path/fileToView
</pre>
Notice that you have to include the "a2ps-4.5.23/" portion and NOT
just the name of the file.
<p>
So, now we're getting somewhere!
<p>
You can use the <kbd>tar -tvzf FILENAME.tar.gz</kbd> command line to get a
directory listing of a tar archive and then use something like:
<pre>
tar -xvzOf a2ps-4.5.23.src.tar.gz a2ps-4.5.23/README |less
</pre>
to actually view the file -- the tar file is intact, nothing is unarchived to
disk, and you fingers never leave your hand!
<p>
And now, let's pick up on our original question once again. Here's where that
funky little command line becomes useful to use once again.
<p>
Those of you who've done a bit of shell programming know that, fundamentally,
every programmer is lazy at heart. That is to say, shell scripts are a VERY
convenient way of saving yourself the bother of typing the same commands over
and over again -- and this is one of those places where this is handy.
<p>
Now that you know how to view a file from within a tar file without ever
unarchiving the entire file, wouldn't it be handy to set up a shell script to
do just that...?
<p>
You know I wouldn't have asked this if I didn't already have an answer in
mind... eh?
<p>
Well, this is one of those things that I've started toying around with in the
past couple days and while I haven't gotten anything written yet, that nifty
little tar command at the top is part of the solution. You see, it would be
quite handy to be able to do a listing of a tar archive, select one or more of
the files, and then view them. The thing is, as I mentioned before, you have
to give tar the full name of the file you wish to view -- including any path
information. That is, if you'd tried to do:
<pre>
tar -xvzOf a2ps-4.5.23.src.tar.gz README |less
</pre>
you'd have gotten an error message because there's no README file in the
archive -- there <i>is</i> the file a2ps-4.5.23/README. See the difference?
You have to have the a2ps-4.5.23/ prefix for tar to work correctly.
<p>
So, can you think of a way to take the output of tar -- the file listing --
and generate a listing of just the filenames which you can pass back to tar.
Again, remember that it has to include the entire path+name but cannot be the
entire line, such as:
<pre>
-rw-r--r-- 11714/117 2281 Sep 5 11:38 1996 a2ps-4.5.23/README
</pre>
Somehow, we've got to strip away all the leading stuff and get only to the
a2ps-4.5.23/README entry. So let's cut to the chase.
<p>
One way to do this is using the method I mentioned above: using tar with the
"-t" option displays a file listing. Next, you can use <b>cut</b>
to access a single a column of data because, as you've all noticed, there are
8 fields of information in the above listing:
<pre>
PERMISSIONS GROUP/USER SIZE MONTH DAY HR:MIN YEAR PATH/FILENAME
</pre>
Now, you'll also notice that these are separated by a space and so you should
be able to use this as a field separator. But if you try something like:
<pre>
tar -tvzf a2ps-4.5.23.src.tar.gz |cut -d ' ' -f8
</pre>
what you end up with is:
<pre>
7721
2281
1429
4773
3576
Sep
1415
Sep
Sep
Sep
Sep
</pre>
So what went wrong!?
<p>
Well, we used a space character as the field delimiter which was the correct
thing to do. But have a look at the actual file listing. Notice that there
is a single space between <i>most</i>, but not all, of the fields. Between
the group/user field and the size field there is a variable number of spaces
and there appears to be two spaces between SEP and 5. So, <b>cut</b>
dutifully used a single space character as the field separator, but the
result wasn't' what we expected.
<p>
Hmmm... now what...?
<p>
Well, there's another little mentioned but VERY useful utility called
<b>tr</b>. It's a seriously handy little item that does, among other things,
character translation. In this case, we can use it to <i>truncate</i> a
series of one or more spaces into a single space (and THEN, cut should work
correctly!).
<p>
Now, is the light dawning? :-)
<p>
We use tar to get the file listing, tr to truncate all the extraneous spaces
into a single space character, and then pipe the whole thing through cut to
get just the fields that we want. Doing this on the a2ps file, we get:
<pre>
a2ps-4.5.23/
a2ps-4.5.23/INSTALL
a2ps-4.5.23/README
a2ps-4.5.23/TODO
a2ps-4.5.23/install-sh
a2ps-4.5.23/Makefile.in
a2ps-4.5.23/config.h.in
a2ps-4.5.23/configure
a2ps-4.5.23/configure.in
a2ps-4.5.23/a2ps.c
a2ps-4.5.23/a2ps.h
a2ps-4.5.23/afm.h
a2ps-4.5.23/a2ps.man
</pre>
<p>
Pretty slick, eh?
<p>
Now, we can pick any of these entries and if we pass them to tar using the
"-O" option then the file gets printed to stdout. Pipe this output
to <b>less</b> and we're golden!
<p>
A tar file viewer!
<p>
So why mention all of this?
<p>
Well, first, because I'm toying around with ideas for a shell script that will
do just this -- write a small program that will let me view individual files
from a tar.gz archive. I've got a couple ideas floating around and may try
using the <b>dialog</b> program for a console UI, or I might just go ahead and
try this using tcl/tk.
<p>
Second, I do this to point out one of the beauties of using Linux (or any UNIX
type OS) and that is the use of pipes to connect any number of the myriad of
utilities together into a powerful command. Using four programs and a bunch of
pipes, we've seen how we can easily ready any file within a tar archive
without having to uncompress the entire thing.
<p>
That is seriously cool!
<p>
Anyway, I've just started playing with this. Let me quickly mention, for
those of you who already know and are waving your cyberhands in the air, that
there <i>is</i> a very easy way to manipulate tar.gz files already -- and it's
with a program that MOST Linux distributions already install: <b>Midnight
Commander</b>.
<p>
I cannot say enough good things about this program. I'm honestly not much of
a file manager type user -- I really do prefer the command line for most file
and directory operations. But, mc is different. I have absolutely fallen in
love with this. It's very well designed, is quite mature, has a boatload of
nifty features, AND it'll let you easily view and copy files from a tar.gz
archive using its VFS (virtual file system).
<p>
I've been wanting to do a write up on MC now for, quite literally, months and
just haven't had the time to write a decent article -- one that really does it
justice. Anyway, for those of you who are interested, all you have to do to
access a tar.gz file is fire up mc, select the tar.gz file and either double
click on it (if you're running gpm and have mouse support) or hit RETURN and
it'll automatically unarchive the file into a VFS from which you can browse
the archive just as though it were installed on your harddrive.
<p>
The other application that'll let you do this is the <b>xtar</b> program -- a
motif based app that I recently came across at the ftp.x.org archive. I
honestly haven't seen this at sunsite or tsx-11 and I don't know that I've
seen it any of the usual Linux distributions either. It's a VERY nice little
app that let's you browse and view tar.gz archives.
<p>
Anyway, try out mc or xtar if you want tar.gz browsing right now. But, let's
see if we can't figure out a way to do something like this using shell
scripting or tcl/tk. I'll let the interested work on this and, if I have any
successes myself, I'll write this up in next month's issue.
<p>
Til then, Happy Scripting!
<!-- END TAR ARTICLE ================================================== -->
<P><HR><P>
<!-- FILE INFO ARTICLE ================================================ -->
<h2><a name="fileinfo"><img src="../gx/fisk/toolchest.gif" width=122 height=97
align=bottom>Basic File Information</a></h2>
<p>
OK, quick question:
<p>
Can you name 5 tools or utilities which you can use to get information about a
file?
<p>
I'm sure you can if you give it a bit of thought. You see, most of the time,
if you've installed a system yourself then you have a pretty good idea about
what's on it and (hopefully...) where things are. But what if you come across
a cryptically named file (Hmmm... fancy that on a UNIX system... :-) in your
/usr/bin directory and want to get a bit of information about it. Or, what if
you know what it is that you're looking for, but just can't find it!
<p>
Ok, so let's talk about a couple tools you can work with to get basic file
information.
<p>
The one's that I was thinking about included:
<b>
<ul>
<li>ls
<li>file
<li>type & which
<li>find & locate
<li>ldd
</ul>
</b>
<p>
Now, there are others, I'm sure, but these five basic utilities (seven if
you count similar ones) will go quite a ways towards helping you get a handle
on what's on your system.
<h3>A look at <i>ls</i></h3>
<p>
Anyone's who's used Linux for more than..., Hmmm... about a day or so, has run
across <b>ls</b> which does a directory listing. And, if you've ventured a
peek at its manual page, your first reaction may have been one of incredulity
at the bewildering number of command line options. Fear not. You really only
need a couple of these on a routine basis (these are your friends) and the
rest of these let you do all kinds of groovy and interesting things when you
have nothing else to do but play with your directory listings (these are you
great Aunt Fanny's half-sister's double cousin, twice removed... you know
they're around, you just have no earthly idea as to what they do).
<p>
So, you know that if you want to get basic information about a file, then the
best place to start is with a directory listing. Using the "-l"
option gives you a <b>long</b> listing which includes the file type (regular,
directory, fifo, block, and so forth), number of hard links, user name, group
name, size in bytes, timestamp (generally, the modification time), and the
file name itself.
<p>
You also know, I'm sure, that adding the "-a" displays <b>all</b>
files, including all the so-called dot-files which begin with a period (.) and
which are normally not displayed in a directory listing.
<p>
Many Linux distributions also configure ls to use the "-F" option
which print a suffix after each file to indicate what its basic type is:
<ul>
<li>"*" for regular files which are executable
<li>"/" for directories
<li>"@" for symbolic links ("symlinks")
<li>"|" for FIFO's ("pipes" or "First In
First Out")
<li>"=" for sockets
<li> nothing for regular files
</ul>
<p>
So, just using humble 'ol ls can give you quite a bit of information about
your files. A couple of the more useful things that you can do with ls
include using the "-t" option which sorts the directory contents by
time. This is very useful if you happen to be in a directory such as /usr/bin
that has a LOT of files and you're looking for something which you've recently
added but can't recall the name. Using "ls -lt" causes all the
newest files to, as it were, rise to the top of the list. If, however, you
want to list the latest files <i>last</i>, no problem, mon, just add the
"-r" option to the soup and you'll get a <b>reversed</b> listing by
time (<i>i.e.</i>, "ls -ltr").
<p>
Yet another handy little option will let you find out when a file's
<i>status</i> was last changed. The status includes things such as owner or
group information or permissions. You can change these things without
actually modifying the file itself. Generally, the time stamp indicates when
a file was last modified, but if what you want to see is when a file's
<i>status</i> was last changed, then use the "-c" option. Now, if
you're wondering whether permissions or user/group information has been
changed recently, then use "ls -ltrc" command to display the files
which have changed status most recently at the end of the listing.
<p>
Those are just a few of the things that you can do with ls. So, if you're
stuck at home on some rainy Saturday afternoon and are tired of the <i>Laverne
And Shirley</i> reruns, go amuse yourself -- read the ls manual page, write
down all the options, and try them all out. At least there won't be
commercial interruptions... :-)
<h3>Using <i>file</i></h3>
<p>
Besides using <i>ls</i> with the "-F" option, there's another very
handy utility called <b>file</b> which gives you a indication of what a file
actually is.
<p>
Every now and then, someone posts a message to one of the comp.os.linux groups
asking about how they can determine whether a file is a.out or ELF (or
something else, for that matter). If you really do have a mysterious file,
then <b>file</b> is the utility for you.
<p>
So, let's say that you've come across a file in your /usr/local/bin directory
called "d2utxt" and it beats the pants off of you what this thing
is. Well, you could try something like:
<pre>
file /usr/local/bin/d2utxt
</pre>
I've actually got that file on my system and when I run this (from within VIM
of course -- notice that my fingers never leave my hand... :-) I get:
<pre>
/usr/local/bin/d2utxt: Linux/i386 executable or impure executable (OMAGIC)
</pre>
OK, that lets me know that it's some kind of executable. So is it ELF or not?
Well, let's run this on a file which I know is ELF and see what happens:
<pre>
file /usr/bin/vi
/usr/bin/vim: ELF 32-bit LSB executable i386 (386 and up) Version 1
</pre>
So, there's your answer! It seems that the d2utxt program was, in fact, a.out
format and vim is in our now familiar ELF format. So, if you're wondering
what kind of executable format a file is in, this is your solution. And keep
in mind that <b>file</b> recognizes a LOT more than simply executables. As an
exercise, try running it on a plain text file, a shell script, a *.dvi file, a
postscript file, a shared library file, and so forth. I won't go into the
specifics of how file works its magic (no pun intended... honest!) but if
you're interested, the manual page gives those details.
<blockquote>
<p><img src="./gx/fisk/droplite.gif" width=36 height=93 align=bottom>
Keep in mind that the <b>file</b> utility is a VERY useful tool to
have at your disposal when you're writing shell programs that depend
on knowing what a file's type is.
<p>
For example, suppose that you decide to write a shell script to
automate file printing. One of the things that your script will need
to know is what type of file you are working with. Tex, DVI,
PostScript, and plain text files get printed using quite different
programs. Here's an ideal situation in which the <b>file</b> program
will give you that information.
<p>
Again, convince yourself of this by running file against several
different file formats -- pretty impressive, eh?
</blockquote>
<h3>Finding Executables with <i>type & which</i></h3>
<p>
The next bit of information about a file that can often be quite useful is
a rather simple one: "Where is it??!!"
<p>
If you're trying to find an executable then this task is greatly eased by use
of either <b>which</b> or <b>type</b> (if you're using the BASH shell).
Either one of these will print the path to a give executable -- assuming, that
is, that it is in your PATH statement. So, let's say that you wanted to find
out where xdvi was located. Now, you could probably guess, but let's just say
that you really were clueless and wanted to know. Well, if you tried
something like the following you could find out:
<pre>
which xdvi
/usr/X11/bin/xdvi
type xdvi
xdvi is /usr/X11/bin/xdvi
</pre>
Hmmm... that was pretty easy now, wasn't it? Both of these found our file in
the /usr/X11/bin/ directory and the output was pretty similar. But before we
call this an even draw, suppose that you try to do something like this:
<pre>
type tarx
tarx is aliased to `tar -xvzf'
type exec
exec is a shell builtin
</pre>
Hmmm... interesting.
<p>
I won't give you the output that happens when I run <b>which</b> on either of
these because what happens is it prints an error message that states that it
couldn't find it in... and then prints the <i>entire</i> search PATH. I'll
let you try this one at home. Suffice it to say that if you're running the
BASH shell, then using <b>type</b> gives you the added benefit of recognizing
shell aliases and builtins in addition to executables.
<p>
Very handy.
<p>
Another useful little item that <b>type</b> can do for you is find
<i>duplicate</i> executables. Now before you go scoffing, consider the fact
that it is VERY easy to do a bit of "Do-It-Yourself" system
upgrading and install a few programs. If you don't know that the program
which you are installing has already been installed (but in a different
directory) then you end up with two copies. So which one gets executed?
<p>
Good question.
<p>
Presuming that you don't use absolute path names for executables
(<i>e.g.</i>/usr/bin/vim) every time you want to start a program, then
whichever executable is found first in your PATH statement. So, if you have
two copies of <b>elvis</b> (one from an original installation and one from a
new compile and install) then the one that is found first is executed.
<p>
And how, do you suppose, I know this...?
<p>
Believe me, I've done it :-)
<p>
And the results can be impressively frustrating.
<p>
Specifically, I had upgraded a version of Tcl/Tk a while back and when I ran
all my favorite tcl/tk apps I started getting weird messages about version
incompatibilities and so forth. So I recompiled and reinstalled and
<i>still</i> got those annoying error messages. It was driving me crazy.
Finally, I tried running <b>type</b> and noticed that the <b>wish</b>
executable wasn't where I thought I'd installed it. The breakthrough came when
I tried:
<pre>
type -a wish
wish is /usr/local/bin/wish
wish is /usr/bin/wish
</pre>
Ah Ha!!
<p>
You see, there had been an old copy of a previous version lying around and I
had simply forgotten to delete/rename it. The old version was being found
first but it was incompatible with the tcl scripts I was using. Renaming the
old version cleared things up.
<p>
So the moral of the story is that if want to ensure that you have only one
copy of a program in the search PATH, then use <kbd>type -a</kbd>.
<h3>Finding Files with <i>find & locate</i></h3>
<p>
OK, so now you know how to find executables... what if what you're looking for
is NOT an executable? What then?
<p>
Well, these next two utilities deserve an entire article (and, in fact, got
just that in one of the recent issues of the <a href="http://www.ssc.com/">
Linux Journal</a>. Both <b>find</b> and <b>locate</b> will allow you to
search anywhere in your system for a given file. For the time being, I'm
going to use a simple example.
<p>
Suppose that I'm looking for a certain configuration file for the <b>lynx</b>
program. I've discovered that lynx has a config file that will let me set
various options -- but I don't know where this is located except that I have
a hunch that it is somewhere in /usr/local/. Great! To find it, all we have
to do is:
<pre>
find /usr/local -name lynx* -print
/usr/local/bin/lynx
/usr/local/lib/lynx
/usr/local/lib/lynx/lynx.cfg
/usr/local/lib/lynx/lynx.hlp
/usr/local/lib/lynx/lynx.man
/usr/local/lib/lynx/lynx_help_main.html
/usr/local/lib/lynx.cfg
/usr/local/lib/lynx.cfg.color
/usr/local/man/man1/lynx.1
/usr/local/src/INSTALLED/lynx2-5FM.color.ELF.tgz
/usr/local/src/Incoming/lynx2-6.tar.gz
/usr/local/src/Incoming/lynx2-6.color.ELF.tgz
/usr/local/doc/lynx
</pre>
Yow! Bonanza!
<p>
So there we go... <b>find</b> not only located our lynx configuration file but
also found that there were duplicates! Interesting :-) So how do we do this
for <i>any</i> file? Well, the basic pattern is:
<pre>
find <directory> -name <pattern> -print
</pre>
That is, the first argument is the directory from which to START looking.
Find will automatically traverse all the subdirectories beneath this. So, if
you wanted to scour your entire system, you just invoke find as:
<pre>
find / -name lynx* -print
</pre>
<p>
The second argument is "-name" followed by the pattern of the file
name you're looking for. And finally, the "-print" option specifies
that find should print the results to stdout. Keep in mind, though, that the
GNU version of find doesn't need the "-print" option -- it defaults
to printing to standard out (your terminal :-).
<p>
The other handy-dandy little tool is <b>locate</b>. If this has been set up
correctly (that is, that the database of files is routinely updated) then it
is a LOT faster to use than find if all you are looking for is a particular
file name!
<p>
To use it just invoke it as:
<pre>
locate lynx
/home/fiskjm/.lynx-bookmarks
/home/fiskjm/.lynxrc
/usr/bin/lynx
/usr/doc/lynx
/usr/doc/lynx/about_lynx
/usr/doc/lynx/about_lynx/about_lynx-dev.html.gz
/usr/doc/lynx/about_lynx/about_lynx.html.gz
/usr/doc/lynx/about_lynx/COPYHEADER.gz
/usr/doc/lynx/about_lynx/COPYING.gz
/usr/doc/lynx/CHANGES.gz
/usr/doc/lynx/CHANGES2-3.gz
/usr/doc/lynx/CHANGES2-4.gz
/usr/doc/lynx/CMU.announce.gz
/usr/doc/lynx/CRAWL.announce.gz
/usr/doc/lynx/DESC.gz
/usr/doc/lynx/docs
/usr/doc/lynx/docs/README.html.gz
/usr/doc/lynx/docs/README.txt.gz
/usr/doc/lynx/docs/RFC-MAILCAP.txt.gz
/usr/doc/lynx/FM.announce.gz
/usr/doc/lynx/IBMPC-charsets.announce.gz
/usr/doc/lynx/INSTALLATION.gz
/usr/doc/lynx/lynx_help
/usr/doc/lynx/lynx_help/keystroke_commands
/usr/doc/lynx/lynx_help/keystroke_commands/bookmark_help.html.gz
/usr/doc/lynx/lynx_help/keystroke_commands/dired_help.html.gz
/usr/doc/lynx/lynx_help/keystroke_commands/edit_help.html.gz
/usr/doc/lynx/lynx_help/keystroke_commands/gopher_types_help.html.gz
/usr/doc/lynx/lynx_help/keystroke_commands/history_help.html.gz
/usr/doc/lynx/lynx_help/keystroke_commands/keystroke_help.html.gz
/usr/doc/lynx/lynx_help/keystroke_commands/movement_help.html.gz
/usr/doc/lynx/lynx_help/keystroke_commands/option_help.html.gz
/usr/doc/lynx/lynx_help/keystroke_commands/other_help.html.gz
/usr/doc/lynx/lynx_help/keystroke_commands/print_help.html.gz
/usr/doc/lynx/lynx_help/keystroke_commands/scrolling_help.html.gz
/usr/doc/lynx/lynx_help/keystroke_commands/xterm_help.html.gz
/usr/doc/lynx/lynx_help/lynx_help_main.html.gz
/usr/doc/lynx/lynx_help/Lynx_users_guide.html.gz
/usr/doc/lynx/PROBLEMS.gz
/usr/doc/lynx/README.gz
/usr/doc/lynx/RELEASE_STATEMENT.gz
/usr/doc/lynx/samples
/usr/doc/lynx/samples/jumpsUnix.html.gz
/usr/doc/lynx/samples/jumpsVMS.html.gz
/usr/doc/lynx/samples/lynx.cfg.gz
/usr/doc/lynx/samples/lynx.com.gz
/usr/doc/lynx/samples/mailcap.gz
/usr/doc/lynx/samples/mime.types.gz
/usr/doc/lynx/SOCKETSHR.announce.gz
/usr/doc/lynx/TCPWARE.announce.gz
/usr/doc/lynx/userdefs.h.gz
/usr/doc/lynx/VMSWAIS.announce.gz
/usr/lib/lynx
/usr/lib/lynx/lynx.cfg
/usr/lib/lynx/lynx.hlp
/usr/local/bin/lynx
/usr/local/doc/lynx
/usr/local/doc/lynx/LynxUser.guide.gz
/usr/local/lib/lynx
/usr/local/lib/lynx.cfg
/usr/local/lib/lynx.cfg.color
/usr/local/lib/lynx/keystroke_commands
/usr/local/lib/lynx/keystroke_commands/bookmark_help.html
/usr/local/lib/lynx/keystroke_commands/dired_help.html
/usr/local/lib/lynx/keystroke_commands/gopher_types_help.html
/usr/local/lib/lynx/keystroke_commands/history_help.html
/usr/local/lib/lynx/keystroke_commands/keystroke_help.html
/usr/local/lib/lynx/keystroke_commands/movement_help.html
/usr/local/lib/lynx/keystroke_commands/option_help.html
/usr/local/lib/lynx/keystroke_commands/other_help.html
/usr/local/lib/lynx/keystroke_commands/print_help.html
/usr/local/lib/lynx/keystroke_commands/scrolling_help.html
/usr/local/lib/lynx/keystroke_commands/xterm_help.html
/usr/local/lib/lynx/lynx.cfg
/usr/local/lib/lynx/lynx.hlp
/usr/local/lib/lynx/lynx.man
/usr/local/lib/lynx/LynxStartFile.html
/usr/local/lib/lynx/lynx_help_main.html
/usr/local/lib/lynx/Lynx_users_guide.html
/usr/local/lib/lynx/new_installs.html
/usr/local/lib/lynx/readme.html
/usr/local/man/man1/lynx.1
/usr/local/src/Incoming/lynx2-6.color.ELF.tgz
/usr/local/src/Incoming/lynx2-6.tar.gz
/usr/local/src/INSTALLED/lynx2-5FM.color.ELF.tgz
/usr/man/man1/lynx.1.gz
/var/log/packages/lynx
/var/X11R6/lib/config/lynx.cf
</pre>
YIKES!!
<p>
On my system, this took about 1 second to display and it printed the location
of EVERY instance of "lynx". Now, for some reason which I haven't
figured out yet why this doesn't work the way the manual page indicates that
it should. Maybe your system works better than mine... :-)
<p>
The way that it <i>should</i> work is that you give locate a filename
<i>pattern</i> which it searches for. Such as:
<pre>
locate lynx*
</pre>
<p>
However, when I tried this on my system, it simply returned nothing. Using
<kbd>locate lynx</kbd> worked like a charm.
<p>
Got me.
<p>
Keep in mind, too, that <b>find</b> is a seriously powerful search tool that
has all kinds of options that let you do sophisticated searches. You really
do need to check out the article that recently appeared in the Linux Journal.
I'm sorry that I can't recall offhand which issue it was in, but the LJ has
put a number of articles online on the Web and so you might try looking at
their <a href="http://www.ssc.com/lj/">web site</a> for information.
<h3>Finding Shared Library Information with <i>ldd</i></h3>
<p>
Finally, here's a nifty little trick that let's you see what shared libraries
a file is linked against. If you've ever wondered whether a file was
statically or dynamically linked, then here's your answer!
<p>
Just invoke <b>ldd</b> with the name of the executable and it will print out a
listing of all the libraries that it is linked against AND where these
libraries are located on your system.
<p>
So, for example, running ldd against <b>gvim</b> (Graphical VIM), I get the
following output:
<pre>
libXm.so.2 => /usr/X11R6/lib/libXm.so.2
libXt.so.6 => /usr/X11R6/lib/libXt.so.6
libSM.so.6 => /usr/X11R6/lib/libSM.so.6
libICE.so.6 => /usr/X11R6/lib/libICE.so.6
libXext.so.6 => /usr/X11R6/lib/libXext.so.6
libX11.so.6 => /usr/X11R6/lib/libX11.so.6
libncurses.so.3.0 => /lib/libncurses.so.3.0
libc.so.5 => /lib/libc.so.5.3.12
libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4
</pre>
<p>
pretty nifty, eh?
<p>
Anyway, if you've ever picked up a pre-compiled binary and it just simply won't
execute, try running ldd against it to ensure that all the needed libraries
are being found.
<p>
So, that should do it!
<p>
I'm sure that there are many other tricks and means for prying information out
of an obscure file. As a parting note, if you've ever wondered just exactly
what a file does then you can try a couple things. The first is to see
whether there is a manual page for the program. That's usually a good source
of information. The other maneuver you can try is simply something like:
<pre>
prog --help
</pre>
<p>
Presuming the program's name was "prog", then frequently using a
command line option such as "--help" will print a help message.
Also, a number of programs will, if they don't recognize a command line
option, go ahead and print a short usage statement anyway. If you're in the
dark, give it a whirl!
<!-- FILE INFO ARTICLE ================================================ -->
<p><hr><p>
<img src="../gx/fisk/mailme.gif" align=middle width=38 height=30> If you'd like,
drop me a note at:
<address> John M. Fisk
<a href="mailto: fiskjm@ctrvax.vanderbilt.edu">
<fiskjm@ctrvax.vanderbilt.edu></a>
</address>
<p>
Version Information:<br><b>
$Id: issue11.html,v 1.1.1.1 1997/09/14 15:01:36 schwarz Exp $
</b>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc11.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./tclinst.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<!--===================================================================-->
<A HREF="./lg_backpage11.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<H1><IMG SRC="./gx/boo-banner2.gif" alt="Linux Gazette"></H1>
<H5>Copyright © 1996 Specialized Systems Consultants, Inc.<br>
For information regarding copying and distribution of this material see the
<A HREF="../ssc.copying.html">Copying License</A>.</H5>
<P> <hr> <P>
<center><H1>The Back Page</H1></center>
<P> <hr> <P>
<H3>Contents:</H3>
<ul>
<li><a HREF="./lg_backpage11.html#authors">About This Month's Authors</a>
<li><a HREF="./lg_backpage11.html#notlinux">Not Linux</a>
</ul>
<P> <HR> <P>
<!--======================================================================-->
<center><H3><A name="authors"> About This Month's Authors </A></H3></center>
<P> <HR> <P>
<!--======================================================================-->
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Larry Ayers</H4>
Larry Ayers 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">Earl Brown</a></H4>
Earl Brown has been involved in the Internet for 4 or 5 years, and got into
Unix when he realized that Unix helped start the Internet and
that it is the future of the Internet, as well. He loves LINUX as an
operating system, because "The fact that it's free doesn't hurt, but the
important thing is that I think it's the best OS out there." He is a
computer programmer, an Internet specialist. He has fantasies/dreams
about becoming a writer and a college teacher. For more of his work, see
http://www.lvinet.com/~gleep/CompKnow/CompIdx.htm. His personal web page
can be found at http://www.enol.com/~gleep/.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">John M. Fisk</H4>
John Fisk is most noteworthy as the former editor of the <I>Linux Gazette</I>.
After three years as a General Surgery resident and
Research Fellow at the Vanderbilt University Medical Center,
John decided to "hang up the stethoscope", and pursue a
career in Medical Information Management. He's currently a full
time student at the Middle Tennessee State University and hopes
to complete a graduate degree in Computer Science before
entering a Medical Informatics Fellowship. In his dwindling
free time he and his wife Faith enjoy hiking and camping in
Tennessee's beautiful Great Smoky Mountains. He has been an avid Linux fan,
since his first Slackware 2.0.0 installation a year and a half
ago.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Michael J. Hammel</H4>
Michael J. Hammel,
is a transient software engineer with a background in
everything from data communications to GUI development to Interactive Cable
systems--all based in Unix. His interests outside of computers
include 5K/10K races, skiing, Thai food and gardening. He suggests if you
have any serious interest in finding out more about him, you visit his home
pages at http://www.csn.net/~mjhammel. You'll find out more
there than you really wanted to know.
<P>
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Phil Hughes</H4>
Phil Hughes is the publisher of <I>Linux Journal</I>, and thereby <I>Linux
Gazette</I>. As an employer, Phil is "Vicious, Evil,
Mean, & Nasty, but kind of mellow" as a boss should be.
He dreams of permanently tele-commuting from his home on the
Pacific coast of the Olympic Peninsula.
<P> <hr> <P>
<!--====================================================================-->
<center><H3><A name="notlinux"> Not Linux </A></H3></center>
<P> <HR> <P>
<!--======================================================================-->
<P>
Thanks to all our authors, not just the ones above, but also those who wrote
giving us their tips and tricks and making suggestions. Thanks also to our
new mirror sites.
<P>
Since I've chosen to celebrate Halloween in this issue, I'll include
a few Halloween and weird links in hopes that they will not disappear on November 1. <BR>
<P>
<IMG ALIGN=LEFT ALT="" SRC="./gx/penguin.gif">
<ul>
<li><A HREF="http://www.cascade.net/yaboo.html">YABOO</A> A YAHOO parody
page with only Halloween links. Some neat links to Halloween history, ghost
stories, etc.
<li><A HREF="http://www.chaco.com/~glenn/jack/">Virtual Jack-0-Lantern</A>
Have fun creating your own virtual jack-o-lantern.
<li><A HREF="http://www.kahunanui.com/hellhaven.html">Virtual Haunted House</A>
Looked interesting, but not open until October 31. Check it out.
<li><A HREF="http://www.best.com/~4forry/">Forest J. Ackerman</A> of
monster and "Sci Fi" movies has a very weird site indeed.
<li><A HREF="http://www.drmoreau.com/">The Island of Dr. Moreau</A> movie
site.
<li><A HREF="http://www.dash.com/netro/fun/hol/hlw.html">Halloween Mystery</A>
Billed as an interactive MUD-like page, this turned out to be a
game that you play following text instructions and story-line to solve a
mystery.
<li><A HREF="http://www.discworld.imaginary.com:5678/">Discworld</A> is
not exactly Halloween, but is definitely weird and fun. Another MUD game
based on Terry Pratchett's fantasy novels.
</ul>
<P>
If you would like some personal information about me, clicking on my
name below will take you to my home page. It's getting jazzier by the moment.
<P> <hr> <P>
<A HREF="http://www.ssc.com/ssc/Employees/Margie/margie.html">
Marjorie L. Richardson</a><br>
Editor, <i>Linux Gazette</i> <A HREF="mailto:gazette@ssc.com">gazette@ssc.com</a>
<P> <HR> <P>
<!--====================================================================-->
<A HREF="./lg_toc11.html"><IMG SRC="../gx/indexnew.gif" ALT="[ TABLE OF
CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG SRC="../gx/homenew.gif" ALT="[ FRONT
PAGE ]"></A>
<A HREF="./wkndmech.html"><IMG SRC="../gx/back2.gif" ALT=" Back "></A>
<p><hr><p>
<I>Linux Gazette</I>, http://www.ssc.com/lg/<BR>
This page written and maintained by the Editor of <I>Linux Gazette</I>,
<A HREF="mailto: gazette@ssc.com"> gazette@ssc.com</A>
<P>
</BODY>
</HTML>
|