Vorige aflevering | Search TidBITS | TidBITS Home Page | Volgende aflevering

TidBITS#401/20-Okt-97

Sta je al te trappelen? Matt Neuburg bespreekt Text Machine, een krachtig stukje gereedschap voor tekstverwerking (lees:'grepping) voor ons allen. Verder beëindigen wij de serie van Rick Holzgrafe over succesvolle shareware, en hierbij wijzen wij de beschuldiging van de hand dat de serie het artikel-equivalent zou zijn van Zeno's Paradox. Andere zaken betreffen het verlies van Apple in het vierde kwartaal, een verwijzing naar uitgebreide informatie over hoe om te gaan met spam in de laatste twee afleveringen van NetBITS, prijsreducties van Apple, en het lang verwachte uitkomen van Spring Cleaning 2.0.

Onderwerpen:

Copyright 1997 TidBITS Electronic Publishing. All rights reserved.
Information: <[email protected]> Comments: <[email protected]>


Deze editie van TidBITS werd gedeeltelijk gesponsord door:


Dit nummer werd uit het Engels vertaald door:

Verder werkten mee:


MailBITS/20-Okt-97

Recentelijk in NetBITS -- Als je geïnteresseerd bent in het doorgronden van het probleem van spam-e-mail, bekijk dan de laatste twee afleveringen van NetBITS. In NetBITS-003 schreef Adam wat je er persoonlijk, commercieel en juridisch aan kunt doen om de hoeveelheid ongevraagde, ongewenste commerciële e-mail die veel van ons ontvangen te beperken. Vervolgens, in NetBITS-004, besprak de hoofdredacteur van NetBITS, Glenn Fleishman, verscheidene manieren om spam te stoppen op server-niveau. Andere onderwerpen waren onder meer een blik op hoe de tijdszones zich verhouden tot de tijden zoals weergegeven in e-mail headers, hoe je Internet kan gebruiken om de klok van je computer correct in te stellen, en gedachten over het aanschaffen van ISDN-apparatuur voor een klein bedrijf. Je kan deze afleveringen van NetBITS bekijken op onze website en je gratis abonneren op NetBITS door een e-mail te zenden naar <[email protected]>. [ACE]

<http://www.netbits.net/nb-issues/NetBITS-003.html>
<http://www.netbits.net/nb-issues/NetBITS-004.html>

Apple lijdt $161 miljoen verlies in vierde kwartaal -- De afgelopen week heeft Apple zijn resultaten voor het vierde kwartaal bekend gemaakt, waaronder een netto-verlies van $161 miljoen. Dit jaar bedroegen Apple's inkomsten totaal 7,1 miljard dollar, dat is 28 procent minder dan de 9,8 miljard in 1996. Het netto-verlies voor 1997 werd 1,0 miljard dollar, tegenover een 816 miljoen verlies in 1996. Toch is het verlies van 161 miljoen niets om over te roepen, want zonder de kosten die Apple maakte in verband met de overname van Power Computing's Macintosh-activiteiten zou het slechts een 24 miljoen verlies zijn geweest. Ook positief was de afname van de terugkerende bedrijfskosten naar 353 miljoen, minder dan de 408 miljoen in het derde kwartaal van 1997 en de 505 miljoen in het vierde kwartaal van 1996. Gunstig was de sterke verkoop van Mac OS 8, waarvan sinds het uitkomen in juli al twee miljoen exemplaren van zijn verkocht. Het 1,0 miljard netto-verlies voor dit jaar is alarmerend, maar hou er rekening mee dat het 217 miljoen aan herstructureringskosten betreft en 450 miljoen afschrijvingen in verband met de overnames van NeXT en Power Computing. Zonder die 667 miljoen dollar aan eenmalige kosten zou het verlies van 1997 niet 1,0 miljard bedragen hebben, maar 333 miljoen. [ACE]

<http://product.info.apple.com/pr/press.releases/1998/q1/971015.pr.rel.q497.html>

Apple verlaagt prijzen en start acties -- De afgelopen week heeft Apple de prijzen van de PowerBook 3400 en de Power Macintosh 8600 sterk verlaagd. Bijvoorbeeld, Apple verlaagde de prijs van de Power Macintosh 8600/300/Zip van 3200 naar 2600 dollar; de prijs van de PowerBook 3400c/200 werd verlaagd van 4500 to 3800 dollar (zie de bespreking van de PowerBook 3400 in TidBITS-371). Verder heeft Apple een aantal acties ingesteld bedoeld om mensen aan te moedigen randapparatuur van Apple aan te schaffen, zowel los als in combinatie met een nieuwe Mac. De Apple QuickTake 200 digitale camera bijvoorbeeld (straatprijs van 550 dollar) komt nu met een korting van 75 dollar indien los aangeschaft of met een korting van 150 dollar indien deze is aangeschaft in combinatie met bepaalde nieuwe Macs. Traditioneel verlaagt Apple de prijzen als er nieuwe produkten in aantocht zijn; zonder twijfel heeft deze promotie te maken met de komst van de zogenaamde Gossamer Macs. [TJE]

<http://product.info.apple.com/pr/press.releases/1998/q1/971013.pr.rel.addontakeoff.html>
<http://db.tidbits.com/getbits.acgi?tbart=00702>
<http://www.zdnet.com/macweek/mw_1137/nw_gossamer.html>

Cyberian Outpost heeft zijn DealBITS-aanbod van de PowerBook 3400 bijgesteld, en biedt NU (via de onderstaande URL's) een 200 MHz model voor $3679 en een 240 MHz model voor $4427. Dit aanbod komt overeen met $50 korting op de normale prijs van Cyberian Outpost.

<http://www.tidbits.com/products/power-book-3400c-200.html>
<http://www.tidbits.com/products/power-book-3400c-240.html>

Aladdin brengt Spring Cleaning 2.0 uit -- Aladdin Systems heeft vandaag de lang verwachte upgrade uitgebracht van Spring Cleaning 2.0, het populaire gereedschap voor het de-installeren van software voor de Macintosh. Spring Cleaning helpt je harddisks op te ruimen door overbodige en niet noodzakelijke bestanden op verschillende manieren te verwijderen. Wijzigingen en toevoegingen ten opzichte van Spring Cleaning 1.0 zijn onder meer een nieuwe, gemakkelijkere interface; een 'Duplicates Remover'-module die duplicaat-bestanden opspoort en verwijdert; 'Storage Folders' die kunnen fungeren als tijdelijke opslagplaatsen, totdat je er zeker van bent dat je de bestanden wil wissen; en archivering met StuffIt-compressie, als je schijfruimte wilt besparen zonder het wissen van bestanden. Features die meekomen uit versie 1.0 zijn onder meer de mogelijkheid om programma's en gerelateerde bestanden te de-installeren, de mogelijkheid om overbodige PowerPC- of 68K-code binnen fat binary-applicaties te verwijderen, het verwijderen van niet gebruikte preferences-bestanden, het repareren van gebroken aliassen, het verwijderen van lege mappen, en meer. Spring Cleaning 2.0 vereist System 7.0 of later, en het gaat over de toonbank voor $120; gratis upgrades van 1.0 zullen verkrijgbaar zijn op Aladdin's website tot en met 31-Dec-97. [ACE]

<http://www.aladdinsys.com/springcleaning/index.html>


Succesvolle Shareware, deel 4

door Rick Holzgrafe <[email protected]>

In deel 1 van dit artikel (zie TidBITS-395) heb ik aandacht besteed aan twee van de zeven hoofdpunten waarmee auteurs van shareware volgens mij rekening moeten houden: het Product en Geduld. In de tweede aflevering kwam het derde hoofdpunt aan bod: Polijsten (zie TidBITS-398). Nadat we het in de vorige nummer van TidBITS hebben gehad over Betalen en Verspreiding (zie TidBITS 400_), wordt het tijd de serie af te sluiten met de laatste twee hoofdpunten, Promotie en Politiek.

<http://db.tidbits.com/getbits.acgi?tbart=04108>
<http://db.tidbits.com/getbits.acgi?tbart=04155>
<http://db.tidbits.com/getbits.acgi?tbart=04181>

Het zesde hoofdpunt: Promotie -- "Als je het maar maakt, komen ze het wel kopen." zo werkt dat dus niet. Als je geen reclame maakt voor je software, zullen maar weinig mensen merken dat deze überhaupt bestaat, laat staan dat ze je produkt zullen kopen. De kunst van goede promotie (ook wel evangelisatie genoemd) bestaat eigenlijk hierin, dat je schreeuwt hoe fantastisch je produkt wel niet is, en dat andere mensen dat vervolgens luidkeels overnemen. Je hebt er tijd voor nodig en je moet er de nodige inspanning in steken, en misschien zelfs een beetje geld, maar het is een onmisbaar onderdeel van je succes. Ik heb wat manieren om met schreeuwen te beginnen op een rijtje gezet.

Promotie: Adverteren -- Als je maar genoeg geld hebt, kun je altijd de aandacht op je produkt vestigen. Koop gewoon overal advertentieruimte: in tijdschriften, op Web sites, op de televisie, zelfs in foldertjes die bij andermans produkten worden bijgesloten.

Goed idee! Jammer alleen dat je er sloten geld voor nodig hebt... Adverteren is afschuwelijk duur, en er zijn dus maar weinig auteurs van shareware die zich dat kunnen veroorloven. In de tien jaar dat ik shareware-programma's verkoop heb ik nog nooit een cent aan advertenties uitgegeven. Niet dat ik adverteren verwerpelijk vind, maar omdat ik voor mijn geld maar bitter weinig advertentieruimte kan kopen -ik heb nooit de enorme hoeveelheid geld gehad om zoveel te adverteren dat het ook op zou vallen. Advertenties in de belangrijke tijdschriften kosten bijvoorbeeld duizenden franken of guldens, en zelfs in mijn dromen heb ik nog niet genoeg geld gehad om te denken aan het adverteren op de televisie, want dan kunnen de kosten nog eens een factor 10 hoger uitvallen.

Onlangs is een alternatief beschikbaar gekomen dat alleszins het overwegen waard is. Veel grote Web sites voorzien in hun onderhoud door advertentieruimte te verkopen, waarvan de tarieven beginnen bij een paar honderd gulden. Dat blijft veel voor iemand die niets kan missen, maar onbereikbaar voor iedereen. Zelf heb ik het niet geprobeerd, dus ik kan het niet aanbevelen -misschien is het de moeite waard, misschien ook niet. Maar alle publiciteit is meegenomen, dus als je je een kleine Web-advertentie kunt veroorloven, is het zeker de moeite waard om het uit te proberen.

Promotie: Je Web site -- Bouw een eigen Web site. Dat zal je niet meer dan zo'n 25 tot 50 gulden per maand kosten bij de meeste providers, en misschien zit deze dienst al in het pakket waarvoor je betaalt. Zo niet, zorg dan dat je dit gaat doen: dit is typisch een voorbeeld van weinig uitgeven om veel meer te verdienen. Als je slecht bent in het coderen in pure HTML, gebruik dan een van de vele HTML-editors die er momenteel zijn -er zijn er genoeg, kies er maar een uit.

Op je site moet dezelfde informatie gevonden kunnen worden als in je ReadMe bestand. Anders dan je ReadMe bestand is je site op de eerste plaats bedoeld als een advertentie, dus zorg ervoor dat hij ook anders is opgebouwd: zet de belangrijke (maar saaie) informatie aan het eind, en begin met je kant noch wal rakende aanprijzingen. Ga je niet te buiten aan enorme graphics: veel gebruikers hebben geen geduld om te wachten tot hun langzame modem een grote pagina heeft binnen gehaald. Zorg ervoor dat de pagina er zo goed en professioneel mogelijk uit ziet (net als je product zelf). Je kan ervoor kiezen om grote schermafbeeldingen op te nemen op vervolgpagina's, zodat die de mensen kunnen bedienen die wel bereid zijn tijd in het downloaden daarvan te steken. Op je hoofdpagina kan je dan volstaan met mini-afbeeldingen, samen met eventuele logo's van je bedrijf en/of je product. Het is handig om in je download-gebied verwijzingen op te nemen naar de meest geschikte Info-Mac en UMich mirror-sites, liefst met een mondiale spreiding. Het is helemaal niet erg om een enigszins ruim aanbod te hebben, want niet alle sites zullen altijd beschikbaar zijn.

Naarmate je Web site van 50 gulden populairder wordt, zal hij meer moeite hebben om het daarbij horende dataverkeer aan te kunnen. Zodra dat gebeurt, moet je een (duurdere) site bouwen die wel al het verkeer aan kan. Het is het waard! Als je het kan betalen, laat dan een eigen domeinnaam registreren bij InterNIC (kost $50 per jaar). Op die manier is je site makkelijker te vinden (www.semicolon.com is het enige wat je hoeft te onthouden om de mijne te vinden) en je kan je site gemakkelijk verplaatsen naar een andere provider zonder dat de links en bookmarks naar je oude site waardeloos worden. Dit kan van onschatbaar belang blijken.

<http://www.semicolon.com/>

Promotie: Andere Web Sites -- Er zijn miljoenen Web sites, en sommige hiervan trekken mensen aan die je klant zouden moeten zijn. Een aantal hiervan zijn shareware sites, andere hebben betrekking op het werk of spel dat je produkt biedt. Probeer deze sites te vinden en stuur mail naar de webmasters. Geef ze de beste presentatie die je te bieden hebt, vraag ze om een link aan te brengen naar jouw site door ze te beloven zelf ook een link aan te brengen, en vraag ze om je produkt te recenseren. Draag het evangelie uit! Wees beleefd, maar probeer wel de aandacht te trekken.

Promotie: Usenet News -- Usenet is een prachtige, gratis manier om reclame te maken. Wees wel voorzichtig - je kan vele mensen op de tenen trappen door zonder overleg reclame te maken. Lezers van nieuwsgroepen zullen in het algemeen korte, puntsgewijze aankondigingen van nieuwe produkten wel tolereren; dit zullen ze zien als een soort service. Maar als je iedere week een bericht stuurt met iets van "Probeer dit fantastische programma!" zal je binnen de kortste keren begraven worden onder onvriendelijke reacties. Respecteer Usenet: stuur alleen berichten als je werkelijk nieuws hebt, en alleen in van toepassing zijnde groepen.

Promotie: Persberichten -- Gebruik een persbericht om jezelf wat meer aandacht te geven. De pers wil juist graag persberichten ontvangen; het is een van de belangrijkste manieren om berichten uit de industrie te ontvangen. [Als je een persbericht op je Web site plaatst, zorg er dan voor dat de pers het makkelijk kan vinden. Veel sites hebben een 'pers' link op hun home page, of zorg voor een link vanaf de home page naar een "Over Ons" pagina die vervolgens ook de persberichten biedt. Je zou ook een verbinding met een persbericht aan kunnen brengen op de pagina die behoort bij het product dat daar beschreven wordt. -Tonya]

De Zevende P: Politiek -- De laatste van onze Zeven P's is Politiek: de kunst om aardig te zijn. In feite wil je zoveel mogelijk vrienden maken, om twee redenen. Allereerst is het hebben van vrienden natuurlijk leuk! Als tweede zorgt een flinke hoeveelheid vrienden voor veel goodwill, wat een noodzaak is voor ieder bedrijf of persoon.

Politiek: Wees Aardig -- Wees altijd hoffelijk, onafhankelijk van de omstandigheden. Zeg veel "altstublieft" en "dankuwel", net zoals je geleerd is. Herlees een bericht een aantal maal voordat je het verstuurt, en probeer manieren te bedenken waarop de lezer je bericht verkeerd zou kunnen interpreteren. Veel shareware-programmeurs zijn geen grote schrijvers, en het is niet moeilijk om iets te schrijven dat onbedoeld iemand kwaad maakt. Je lezers kunnen je gezicht niet zien, geen stemgeluid horen of gezichtsuitdrukking zien, en misschien realiseren ze zich niet dat je grappig of ironisch probeert te zijn. Als je je produkt via Internet wil distribueren is het extra belangrijk om te overwegen dat Engels niet ieders moedertaal is. Wees helder en eenduidig.

Politiek: Help Iedereen -- Ik heb in het begin de fout gemaakt om mensen die me niet betaald hadden ondersteuning te weigeren. Ik heb dat een keer gedaan met iemand wiens cheque ik kwijtgeraakt was. Ik heb me uitgebreid verontschuldigd, maar het kwaad was al geschied: die persoon zal waarschijnlijk nooit meer een programma van mij kopen, en hij zal bovendien tegen anderen zeggen wat een waardeloos figuur ik ben. Op dit moment geef ik iedereen ondersteuning, en vraag ik niet langer of ze betaald hebben.

Mensen helpen heeft nog een ander voordeel. Veel gebruikers willen de kosten niet betalen totdat ze iets van je nodig hebben. Geef ze een beetje ondersteuning en - hoppa - gelijk een cheque in de post.

Politiek: Maak Vrienden -- Ik noemde al de voordelen van het maken van vrienden. Wat voor soort vrienden kan je maken?

Ontwikkelaars zijn goede vrienden. Ze kunnen je helpen om technische problemen op te lossen, en kunnen advies geven over de verkoop van je produkten. In ruil hiervoor doe jij natuurlijk hetzelfde voor hen.

Artiesten zijn goede vrienden. Zelfs als ze niet iets van hun werk gratis aan je af kunnen staan, kunnen ze je van advies zijn over grafisch ontwerp, en misschien tips geven over artiesten die in je budget passen.

Journalisten zijn goede vrienden. Ze kunnen advies geven over het promoten van je produkten, ze kunnen je vertellen over trends in jouw deel van de industrie, misschien willen ze recensies schrijven, en ze zullen goed luisteren naar wat voor nieuws, roddel of opinie je ook maar te bieden hebt in hun gebied. Bovendien is het prettig om naar ze te luisteren: ze hebben veel kennis en zijn goed in woorden.

Webmasters zijn goede vrienden. Ze kunnen links bieden naar je site, je adviseren over het ontwerp van een site, en je zo nu en dan interessante mogelijkheden bieden, zoals misschien wel reclame-ruimte in ruil voor een paar gratis kopie�n van je produkt voor hun loterij of iets dergelijks.

Het allerbelangrijkste is echter dat het goed is om vrienden te hebben. Vrienden zijn beter dan geld, beter dan beroemdheid. Ik heb een aantal van mijn beste vrienden ontmoet door mijn shareware-werk - ondanks het feit dat ik sommige daarvan nooit heb ontmoet. Maak dus stapels vrienden! Het is het beste advies wat ik kan geven.

Dat is het mensen. Ik heb advies geboden over mijn opvatting, de zeven P's van shareware-zaken. Als je dit onderwerp verder wil onderzoeken, ga dan naar mijn homepage met meer links over dit onderwerp.

<http://www2.semicolon.com/Rick/ShareSuccess/SharewareLinks.html>

[Rick Holzgrafe heeft geprogrammeerd voor een aantal bekende bedrijven in Silicon Valley op momenten dat hij niet bezig was met shareware.]


Scoor voor de Grepper: Text Machine

door Matt Neuburg <[email protected]>

Ze zijn onder ons - de greppers. Er kan er nu een naast je zitten. In feite zou je er zelf eentje kunnen zijn. Ja, jij! Je hebt misschien nooit gegrept, misschien weet je niet eens wat greppen is; toch is er een redelijke kans dat er ook in jou, diep binnenin, een heimelijk verlangen groeit om te greppen.

Okee, nu ik je aandacht heb, waar heb ik het in vredesnaam over? Het feit dat GREP begonnen is als een acroniem voor "global regular expression and print" zou ons noch moeten weerhouden noch moeten afschrikken. Laten we zeggen dat "grep" staat voor een zeer krachtige manier van tekstzoeken en zoeken-en-vervangen, zonder welke ons leven zoals we dat nu kennen onmogelijk zou zijn of in ieder geval zonder betekenis. Veel van de dagelijkse tekstverwerkingstaken zijn nog slechts een grap met grep.

In het verleden heb ik vaak vriend verbaasd (en vijand verbijsterd) met het uit de losse pols oplossen van schijnbaar zeer ingewikkelde tekstverwerkersproblemen. Bij voorbeeld: iemand heeft mij ooit benaderd met een tekstbestand dat hij in een bestaande database wou importeren. Het bestand bestond uit duizenden tab-gescheiden regels:

John  [tab]  Doe    [tab]  473   [tab]  yes
Dick  [tab]  Smith  [tab]  2471  [tab]  no
Jane  [tab]  Brown  [tab]  587   [tab]  yes

Wat is het probleem? De database verwacht de achternaam eerst en de voornaam als tweede en kan ze niet gemakkelijk omwisselen. De namen moesten worden verwisseld voordat het bestand geïmporteerd werd. Mijn vriend was onthutst toen ik het bestand opende met Nisus Writer en alle gevallen van:

^\(.:*\)\t\(.:*\)\t

liet vervangen door:

\2\t\1\t

en met een uitgestreken gezicht hem zijn bestand teruggaf. Deze vriend was een uitgesproken voorbeeld van iemand die moest greppen, maar er niets vanaf weet. Waarom niet?

Dit komt waarschijnlijk omdat de enige manier om te greppen is om een tekstverwerker te hebben met ingebouwde grep-faciliteiten en vervolgens te leren om regels te maken die, als je geen computer hebt, nogal vaag zijn. En alsof dat nog niet erg genoeg is hanteren verschillende programma's grep op verschillende manieren (het bovenstaande voorbeeld van Nisus Writer zou bijvoorbeeld niet werken bij BBEdit). Maar PreFab Software brengt hier verandering in, met het uitbrengen van Text Machine 1.0.

Het concept van Text Machine is die van een universele grep utility. Je hoeft maar een grep te leren, namelijk die van Text Machine, en vervolgens kan je vanuit een andere applicatie daar een beroep op doen. En Text Machine wil graag dat je succesvol kan greppen dus geeft het niet alleen een uitgebreide hoeveelheid greps maar de commando's die je geeft zijn in een soort van Engels en dus veel eenvoudiger dan de normale backslash-achtige troep. Text Machine is scriptable - dat is de manier waarop andere programma's ermee praten. Je kan het dus van afstand bedienen en je kan grep-mogelijkheden uitwisselen met de wat minder technisch ingeleefde collegae die ook Text Machine gebruiken; simpelweg door ze het script te geven.

<http://www.prefab.com/>

Het is een prachtig idee, maar het beste moet nog komen. Idealiter zou je willen dat Text Machine een zoek-en-vervang venster geeft, met pop-down menu's zodat je nauwelijks grep hoeft te leren en de veranderingen direct in je programma kan maken. En inderdaad, dat bleek PreFab's oorspronkelijke uitgangspunt - Text Machine zou een deel worden van OpenDoc. Maar toen werd dit in de war geschopt doordat Apple ophield met OpenDoc en de dialoog-interface werd uitgesteld tot versie 1.1. Ik heb hier een alpha van gezien en heb veel lol gehad met het dialoog-gebaseerd zoek-en-vervang greppen in Eudora. Maar op het moment ontbreekt het Text Machine aan een interface; de enige manier om ermee te communiceren is via scripting (normaal gesproken in AppleScript of Frontier's UserTalk). Voor velen van ons is dat een opluchting en geen probleem; maar als je er problemen mee hebt, moet je waarschijnlijk wachten tot versie 1.1.

Grep School -- Hoewel ik zeer gesteld ben op Nisus Writer's grep, geef ik toe dat een deel van het genoegen schuilt in het hocus-pocus gedoe. Hoe kan rommel zo krachtig zijn? Als ik Text Machine had gebruikt toen ik mijn vriend hielp met het opmaken van zijn bestand voor de database, had ik waarschijnlijk mijn status als eerbiedwaardige tovenaar verloren als ik mijn vriend een AppleScript script had gegeven dat precies hetzelfde doet (bijvoorbeeld als het gedraaid wordt in Apple's eigen Script Editor):

    tell application "Text Machine" to
      replace in alias "HD:yourFile" all
        "[(textstart or paragraphdelimiter)1]" &
        "[(column)2, tab]" &
        "[(column)3, tab]" with
        "[group1, group3, tab, group2, tab]"

Dit is weliswaar nog steeds in code, -om zeker te zijn- maar het is engelsachtige code, heel begrijpelijk als je eenmaal een paar feitjes weet. De dingen tussen de haakjes met de nummertjes daarachter zijn groepen. De term "column" betekent de hele tekst binnen een kolom, alles tussen een tab of een terugloop en de volgende. Dus, de eerste groep is alles wat voor de alinea komt; de tweede groep is alles in een alinea tot aan de eerste tab en de derde groep is alles tussen de eerste tab en de tweede tab. We draaien vervolgens de tweede en derde groep om.

Hier is een ander voorbeeld van Text Machine's grep. Gisteren (echt waar!) wou een kennis de mogelijkheid hebben de titles uit alle HTML documenten te halen (dus wat er tussen de <title> tags staat). Dit zou het in de meeste gevallen voor elkaar moeten kunnen krijgen:

    tell application "Text Machine" to
      extract in alias "HD:my Web site:default.html" first
        "['<title>']" &
        "[(shortest oneOrMore char)1]" &
        "[htmlTag]"
        transform with "[group1]"

Enkele aanhalingstekens geven gedeelten van letterlijke tekst weer. De toevoeging "transform with" voert een vervanging uit op de tekst die we terugkrijgen, maar niet in het origineel; dus houden we groep 1 over en dat is precies alles tussen de <title> tag en de volgende tag (die naar wij mogen aannemen </title> is).

Een meer algemene oplossing vereist dat we alternatieven vinden voor iedere letter, want Text Machine is kastgevoelig.

    tell application "Text Machine" to
      extract in alias "HD:my Web site:default.html" first
        "['<']" &
        "[('t' or 'T'), ('i' or 'I'), ('t' or 'T')]" &
        "[('l' or 'L'), ('e' or 'E')]" &
        "['>']" &
        "[(shortest oneOrMore char)1" &
        "[htmlTag]"
        transform with "[group1]"

Gelukkig verandert dit in versie 1.1 als er een kastgevoeligheidsoptie komt.

Greptitude Test -- PreFab Software toonde geweldige slimheid door grep-patronen te implementeren in Engels-achtige zinsneden in plaats van de traditionele Unix-achtige codes. Deze eigenschap is uniek - Nisus Writer heeft iets soortgelijks, maar is onhandig in gebruik en heeft beperkte mogelijkheden. PreFab Software heeft Text Machine ook een verbazingwekkend kien uitgeknobbeld repertoire gegeven.

Kijk naar de reeks hoedanigheden waarmee Text Machine kan werken. Het kan zoek-en-herplaatsing verrichten op een letterreeks, aangereikt als parameter van een commando. Maar, zoals we hebben gezien, het kan ook zoeken en vervangingen maken in bestanden op een schijf.

Wat nog bruikbaarder is, Text Machine kan een document openen en geopend laten. Het beeldt het document niet af, want het heeft geen Vensters (behalve in een speciale debugging mode). Maar het houdt de tekst van een bestand in het geheugen, waardoor iedere verandering gemaakt door zoek-en vervang niet uitgeschreven wordt naar schijf tenzij je ze expliciet bewaart via een van je scipt-commando's.Een "insertiepunt" wordt ook gehandhaafd, zodat opeenvolgende aanroepen van een woord zoals "vervang volgende" door de tekst zal rondgaan. Nog mooier: Text Machine kan een nieuw dokument in het geheugen aanmaken, het kan meerdere dokumenten in het geheugen zetten, het kan tekst toekennen aan een dokument in het geheugen. Zo kan men dus met grote teksten werken zonder hehaaldelijk Text Machine in te schakelen, dit vermindert overhead en vergroot de snelheid.

Dan is er de ruime syntax van de vier woorden van Text Machine."Vervang" verandert de originele tekst en geeft het veranderde resultaat of het aantal van de veranderingen terug. "Extraheer" onderzoekt en geeft de gevonden tekst terug, en als optie doet hij er een herplaatsing mee; "extraheer alles" geeft een lijst terug of een gelimiteerde string."Localiseer" en "maak passend"meldt dingen als de inhoud, positie en lengte van gevonden tekst of teksten, resultaten van herplaatsing en de inhoud van iedere groep; die informatie helpt andere applicaties, die te scripten zijn, in te grijpen op hetgeen Text Machine gevonden heeft.

Nu een leuk accent. Vaak is het nodig om een serie van "herplaats alles"te verrichten, commando's om een document te veranderen op een totale wijze. Hiervoor verschaft Text Machine een verkorting: de teksten waarnaar gezocht moet worden en de teksten die erdoor moeten worden vervangen worden verketend tot twee lijsten; je geeft een "herplaats alles" commando, Text Machine loopt dan beide lijsten door. Een bijgevoegd utility-script laat zien hoe een andere handigheid geïmplementeerd moet worden: je maakt de zoek-en-herplaats paren als een tab-begrensd tekstbestand en laat het vervolgens door Text Machine analyseren, dat dan de lijsten genereert.

Grep Tide --Grep van Text Machine is bijna een super-set van grep-implementaties in programma's zoals BBEdit, Nisus Writer, en Microsoft Word. Het laat je bijvoorbeeld de langste of kortste overeenkomst specifiëren; BBEdit en Word kunnen dat niet; het laat je een kwantiteit of een reeks kwantiteiten specifiëren - bijvoorbeeld 60 tot 80 opeenvolgende non-returns - iets wat in BBEdit en Nisus zeer moeilijk is.

Anderzijds mist het enkele traditionele grep-konstructies. Je kan het niet hebben over een reeks letters zoals een letter die alfabetisch komt tussen "a" en "g"; je dient de inhoud van de reeks expliciet op te geven, zoals: "[<abcdefg>]".(Rechtvaardiging hiervan zou kunnen zijn dat zo een specificatie niet moeilijk is en trouwens de meest voorkomende benodigde sets zijn vooraf gedefinieerd, zoals: "[kleine Letter] or [controlLetter]".) Het is niet mogelijk (in version 1.0) letters, ongeacht hoofd- of kleine letters, die overeenkomstig zijn, te zoeken, hetgeen ongemakkelijk is. Tevens zijn er bijna geen positie-bepalende sleutelwoorden, zodat ik in mijn eerste voorbeeld het moest hebben over het begin van een regel (paragraaf) als "[textstart ofparagraphdelimiter]" en dat dan moest omzeilen omwille van het feit dat de overeenkostige tekst een extra letter bevatte.

Echter, deze tekortkomingen kunnen omzeild worden, in het algemeen dus is de grep van Text Machine bijzonder krachtig en kan daarbij gemakkelijk engels-achtige zinsneden uitdrukken.

Ik heb bijvoorbeeld een HyperCard stack, die berichten archiveert van mail-lijsten. De mail-lijsten ontvang ik in de vorm van een digest (vele berichten in een e-mail-boodschap); de stack analyseert de digest, bewaart het gegevens-veld, onderwerp-, afzender-, en verzenderveld van ieder bericht en de inhoud op een aparte kaart. Indertijd had ik een duvelse tijd nodig om dit in HyperTalk te coderen, echterHyperCard spreekt AppleScript, dus is grep van Text Machine in Hypercard beschikbaar; op dat punt aangeland wordt dezelfde taak kinderspel (en veel sneller) om te coderen. Ook Microsoft Word kan profiteren door Text Machine op te roepen: hoe vaak heb ik, een WordBasic-macro schrijvende, gehoopt dat de grep van Word meer overeenkomst had met die van Nisus Writer!. Nu, met Text Machine bij de hand, is dat zo.

Grep-extensies naar AppleScript (zoals Late Night Software's "Regulaire Expressies") and UserTalk (the "regex" UCMD) bestaan. Maar Text Machine is veel gemakkelijker te gebruiken dan deze en is veel krachtiger. Ook heeft Text Machine het voordeel van een echte applicatie te zijn, die tekst bestanden kan modifiëren of grote tekstbestanden kan opslaan voor uitgebreide bewerking.

Pak een Grep --Als je eigenaar bent van Nisus Writer en je prettig voelt met zijn grep en niet meer aan scripting hoeft te doen dan die met Nisus macros heb je Text Machine waarschijnlijk niet nodig. Ook heeft de grep van Nisus Writer een speciale eigenschap: het is werkzaam op gestileerde tekst. Er zijn dus enkele taken waar Nisus uniek voor geschikt is en Text Machine geen mededinger probeert te zijn.

Anderzijds, als je AppleScript gebruikt of bereid bent om het te gebruiken, of UserTalk, en je hebt een programma dat scriptable is of een dat een OSA-script kan uitvoeren (HyperCard, Microsoft Word, FileMaker Pro, etc.), dan kun je de grep-functie van Text Machine inbouwen en misschien een antwoord vinden op je tekstverwerkingsgebedjes.

Ongetwijfeld verslaat de leer-moeilijkheidsgraad van Text Machine die van de traditionele greps. Het zou echter onjuist zijn te beweren dat er geen moeilijkheidsgraad zou zijn. In deze versie is, denk ik, Text Machine niet de grep voor de doorsnee-gebruiker. Laten we ervoor uitkomen: Text Machine is eigenaardig. Je moet bereid zijn te scripten en ook al is het idioom van Text Machine makkelijk aan te leren, experimenteren en vernuft zijn nog steeds nodig om de juiste resultaten te bereiken.

In mijn vocabulaire is "eigenaardig" echter als een lovende uitdrukking bedoeld. Misschien moet je een rare zijn zoals ik ben om het te waarderen; ik vind toch dat Text Machine prachtig is. Het biedt een duidelijke functionaliteit, schitterend verwezenlijkt en gemaakt ten dienste van andere applicaties. Maanden heb ik gewacht tot Text Machine zich tot wasdom ontwikkelde en nu heeft het een stevige plaats in mijn gereedschappenbuidel. PreFab heeft een gratis 30 dagen-demo, die je in staat stelt tot de zelfde overtuiging te komen.

Text Machine kost $75, tot 12-Nov-97, de prijs gaat dan omhoog naar $95. Kopers van 1.0 krijgen een gratis update naar versie 1.1.


Niet-winstgevende en niet-commerciële publicaties en Websites mogen artikels overnemen of een HTML link maken als de bron duidelijk en volledig vermeld wordt. Anderen gelieve ons te contacteren. We garanderen de precisie van de artikels niet. Caveat lector. Publicatie-, product- en firmanamen kunnen gedeponeerde merken zijn van hun ondernemingen.

Vorige aflevering | Search TidBITS | TidBITS Home Page | Volgende aflevering