Vorige aflevering | Search TidBITS | TidBITS Homepage | Volgende aflevering
Ons onderzoek hoe redelijk normale lieden MacsBug kunnen toepassen wordt deze week vervolgd en bevat waardevolle informatie over het door ontwikkelaars maken van een logboek tijdens het beta-testen van een programma. Ook kijkt Adam in dit nummer naar het klaarblijkelijke verscheiden van Claris Emailer en we zien de verschijning van belangrijke software, inclusief QuarkXPress 4.04, Eudora Pro 4.0.2, AutoShare 3.0, en FileMaker Pro 4.0v2 en het "bijna verschenen" StuffIt Deluxe 5.0.
Onderwerpen:
Copyright 1998 TidBITS Electronic Publishing. All rights reserved.
Information: <[email protected]> Comments: <[email protected]>
Je kunt je gratis abonneren op de Nederlandse afleveringen van TidBITS
door een (blanco) mailtje te sturen naar: [email protected]. Je
krijgt deze dan per e-mail toegestuurd.
Om je abonnement op te zeggen, kun je een mailtje sturen naar: [email protected].
Deze editie van TidBITS werd gedeeltelijk gesponsord door:
APS Technologies -- 800/443-4199 -- <[email protected]> -- Hoe
maak je back-ups van je APS-harddisks? Probeer APS tape, removable,
magneto-optical, en CD-R drives! <http://www.apstech.com/>
Northwest Nexus -- 1 888-NWNEXUS -- <http://www.nwnexus.com/>
Zakelijke oplossingen op het Internet in geheel Pacific Northwest.
Small Dog Electronics -- Speciale Aanbieding voor TidBITS Lezers!
Dayna 100Base-T Fast Ethernet 8-port Hub & 4 PCI Cards: $299
PowerBook 3400c/200 (refurbished) met Gratis Backpack: $1499!
Voor Details: <http://www.smalldog.com/> -- 802/496-7171
Cyberian Outpost -- The Cool Place to Buy an iMac!
Gedurende een beperkte periode is het verzenden GRATIS
van de iMac, de origineelste Mac sinds de originele Mac!
<http://www.tidbits.com/tbp/imac-free-ship.html>
Norton Utilities 4.0: De meest vermaarde Mac disk recovery software!
Upgrade van eerdere versies om HFS+ volumes te kunnen repareren
met de nieuwe Norton Utilities interface: Slechts $44.95 na een korting van $50!
Download vandaag! -> <http://www.digitalriver.com/TidBITS/NUM40/>
WebDoubler: BLOKKEER je LAN tegen ongewenst materiaal!
Bezoek Maxum's Website voor complete informatie over WebDoubler
en een korting van 20% voor TidBITS lezers! Download de demo nu!
<http://www.maxum.com/WebDoubler/TidBITSDeal.html>
CRASHED DISK? Bij de nieuwe Retrospect 4.1 van Dantz zit een
bootable CD die het makkelijker maakt je harde schijf te herstellen vanaf
je back-up. Het beste back-up programma dat bestaat! $29.95 upgrades.
Lees meer over Retrospect 4.1 op <http://www.dantz.com/>.
Dit nummer werd uit het Engels vertaald door:
Verder werkten mee:
Vertaling: [MSH] & [DPF]
QuarkXPress 4.04 Opwaardering richt zich op vele foutjes -- Quark heeft een opwaardering voor QuarkXPress 4.0 vrijgegeven, waarin diverse fouten met betrekking tot Printen en Vind/Verander handelingen, Bezier regels met pijlkoppen en verschillende andere problemen worden hersteld.Voorts heeft Quark de scripting syntax in de AppleScript dictionary veranderd om nieuwe 4.0 eigenschappen toe te kunnen voegen en met bestaande scripts beter te kunnen werken. Bezitters van versie 4.03 kunnen een 3 MB updater downloaden, eigenaren van vroegere versies van QuarkXPress 4.0 dienen de 8.2 MB "universal updater"te downloaden. [JLC]
<http://www.quark.com/quarkxpress/qxpfix_1.html>
Eudora Pro 4.0.2 Nu Verkrijgbaar -- Al blijft Eudora Pro 4.1 in het beta stadium, Qualcomm heeft tenslotte Eudora Pro 4.0.2 laten verschijnen, dat een aantal kleinere fouten en treiterige ergernissen herstelt. Heb je met Eudora Pro 4.0.1 moeite, dan is het downloaden van de gratis 5 MB updater de moeite waard; zo niet, zou ik aanbevelen op versie 4.1. te wachten. [ACE]
<http://eudora.qualcomm.com/betas/epro41.html>
<http://eudora.qualcomm.com/pro_email/updaters.html>
AutoShare 3.0 Verschenen -- Mikael Hansen heeft versie 3.0 van AutoShare vrijgegeven, zijn freeware mailing list manager en auto-responder, die samenwerkt met Eudora Internet Mail Server en Stalker Internet Mail Server. Belangrijke nieuwe eigenschappen houden in ondersteuning van interne en externe subscriber databases, MIME digests ondersteuning, additionele remote email administratie commandos en ondersteuning van meer bounce formats. Belangrijkste eigenschap is de ondersteunung van subscriber databases, wat je in staat stelt om je eigen velden toe te voegen. AutoShare communiceert met externe databases via scripting, dit verschaft goede flexibiliteit, maar kan leiden tot slechte prestaties. AutoShare 3.0 is een 1.9 MB download. [ACE]
<http://www.dnai.com/~meh/autoshare/>
StuffIt Deluxe 5.0 Aangekondigd -- Aladdin Systems heeft StuffIt Deluxe 5.0 aangekondigd, een belangrijke versie van hun populair compressieprogramma. Voornaamste nieuwe eigenschap van StuffIt Deluxe 5.0 is een nieuw compressieformaat, 20 procent kleiner, dat verenigbaar is met Windows. Ook inbegrepen bij StuffIt Deluxe 5.0 is ondersteuning van MacBinary III, verenigbaar met Mac OS 8.5, tevens "Archive Via Rename" werkzaam met .hqx en .bin, snelle conversie van self-extracting archieven naar StuffIt archieven en, nieuw, ondersteuning voor Outlook Express en Mailsmith op de "Stuff en Mail" manier. Aladdin verwacht StuffIt Deluxe 5.0 eind Oktober te leveren voor een geschatte detailprijs van $79.95; de prijs voor gebruikersgroepen zal $49.95 zijn. Zij die StuffIt Deluxe and DropStuff hebben - en eigenaren van AutoDoubler, DiskDoubler en de Eudora Productivity Toolkit - kunnen opwaarderen naar StuffIt Deluxe 5.0 voor $29.95 tot 31-Mar-99 met bewijs van de aankoop (zoals je Aladdin-registratienummer of door een fax van een fotocopie van ontvangst, handleiding, of schrijf naar Customer Service op 831/761-6206). StuffIt Deluxe heeft een 68020 Mac of later met 8 MB RAM en System 7.5.3 of later nodig. [ACE]
<http://www.aladdinsys.com/company/news/releases/stuffit/100798-predlx50.html>
Updater Naar FileMaker Pro 4.0v2 Beschikbaar -- FileMaker, Inc. heeft een gratis updater naar FileMaker Pro 4.0v2 uitgegeven, die de veranderingen en foutverbeteringen uit FileMaker Pro 4.1 naar gebruikers van FileMaker Pro 4.0 brengt zonder de nieuwe ODBC features van versie 4.1 (zie "FileMaker Pro 4.1 doet ODBC voor een stevige prijs" in TidBITS-447). Verbeteringen zijn onder andere de mogelijkheid om bestanden in het Excel 98 formaat te importeren, ondersteuning voor het Euro-symbool, verbeteringen aan het tonen van JPEG-afbeeldingen in FileMaker en verscheidene verbeteringen aan het importeren, exporteren, verwijderen en sorteren van records in specifieke situaties. De Mac OS updater is 1,8 MB groot; er zijn ook updaters beschikbaar voor verschillende versies van Microsoft Windows. [GD]
<http://www.filemaker.com/support/>
<http://db.tidbits.com/getbits.acgi?tbart=05091>
<ftp://ftp.filemaker.com/pub/USA-Macintosh/Updaters/FileMakerPro40v2Update.bin>
door Adam C. Engst <[email protected]>. Vertaling: [DPF] & [LmR]
Was iemand verrast toen Emailer verdween na teruggebracht te zijn bij Apple in de Claris-naar-FileMaker, Inc. transformatie? Misschien de gebruikers van Emailer wel, omdat er meestal weinig nodig is voor blinde loyaliteit aan een goed programma dat je elke dag (en ook nog eens de gehele dag) gebruikt. Emailer was en is nog steeds een goed e-mailprogramma, en om eerlijk te zijn verdient het een beter lot dan wegkwijnen. Ondanks verscheidene petities is dat wat er waarschijnlijk zal gebeuren, tenzij... nou ja, laten we niet op de feiten vooruitlopen.
<http://www.macsoldiers.com/save-emailer/>
<http://www.pasoftware.com/save_emailer.shtml>
Denk een moment aan Apple als het Macintosh bedrijf. Apple moet altijd op het dunne koord balanceren om een balans te vinden tussen het toevoegen van mogelijkheiden aan de Macintosh en het onderhouden van goede relaties met Macintosh ontwikkelaars. Het zou voor Apple niet moeilijk zijn om een bepaald Macintosh product te vernietigen door vergelijkbare mogelijkheden in het Mac OS in te bouwen. Het is in het verleden wel eens gebeurd, en het zal in de toekomst nog wel eens gebeuren: AppleScript legde een bom onder UserLand Frontier als een commercieel scriptingpakket; PlainTalk heeft de ontwikkeling van goede spraakherkenningssoftware vertraagd en talloze shareware producten zijn de mottenballen ingegaan omdat Apple mogelijkheden als hiërarchische menu's en desktop afbeeldingen in het besturingssysteem inbouwde. Apple moet dit soort zaken heel voorzichtig aanpakken: wanneer het dit niet doet loopt het het risico dat ontwikkelaars, de werkelijke kracht achter de Macintosh, van het bedrijf vervreemd raken.
Noodzakelijke Herzieningen -- Apple heeft nu dus een krachtige maar verouderende email client in haar bezit. Alhoewel Emailer een aantal prachtige mogelijkheden heeft bovenop een solide fundament, laten de belangrijkste concurrenten - Eudora Pro en Outlook Express - Emailer achter. Zij hebben ondersteuning ingebouwd voor meerdere accounts, HTML-gebaseerde mail, LDAP directory services, IMAP voor het ophalen van mail, spellingscontrole terwijl je typt en nog meer. Alsof dat nog niet genoeg is verschijnen er ook nog eens nieuwe e-mailprogramma's zoals Mailsmith van Bare Bones Software en PowerMail van CTM Development, die de markt nog eens verder verdelen. Vandaag de dag is het belangrijkste onderscheidende kenmerk van Emailer de mogelijkheid om mail op te halen van CompuServe en AOL.
<http://web.barebones.com/products/msmith/msmith.html>
<http://www.ctmdev.com/>
Het herzien van Emailer met als doel te kunnen concurreren is nog niet eens eenvoudig, omdat het toevoegen van ondersteuning van HTML-gebaseerde mail het toevoegen van een HTML-parser betekent, en bovendien het aanpassen van de ingebouwde tekst-editor. Ondersteuning van IMAP vereist flinke veranderingen aan de code die de mail ophaalt, en IMAP vereist bovendien een herstructurering van de brievenbussen omdat mail dan ook op de server kan worden opgeslagen. Apple zou personeel voor deze taken kunnen aannemen, maar dat kost geld, en Apple is nog steeds voornamelijk bezig met de pogingen om het bedrijf in de 'zwarte' cijfers te houden. Projecten die mogelijk niet winstgevend zullen zijn maken niet veel kans in het Apple Computer van vandaag de dag.
Apple's Opties -- Laten we voorlopig even aannemen dat Apple van plan zou zijn geld en moeite te steken in het op niveau brengen van Emailer. Wat zou dat inhouden?
Apple zou Emailer gratis leveren bij elk exemplaar van het Mac OS. Precies de manier om ontwikkelaars tegen Apple in het harnas te drijven en geld te verliezen. Het feit dat Outlook Express gratis bij de huidige versies van het Mac OS wordt geleverd, is niet populair bij andere e-mailontwikkelaars maar Microsoft is in ieder geval gelukkig en in de industrie van vandaag de dag is het beter als Microsoft blij is met je dan als ze dat niet zijn.
Apple zou Emailer kunnen verkopen voor laten we zeggen $50 via de gebruikelijke verkoopkanalen. Andere ontwikkelaars zouden dit niet zo erg vinden daar Apple's enige voordeel het vergroten van de naamsbekendheid zou zijn. Apple is echter nooit erg goed geweest in het verkopen van goedkope software. Het Mac OS verkoopt goed, net als -naar ik aanneem- het Apple Internet Connection Kit (hetgeen het klad bracht in mijn Internet Starter Kit for Macintosh boek/software pakket) goed werd verkocht. Apple heeft misschien moeite met het verkopen van genoeg exemplaren binnen de gefragmenteerde markt om een duur update-proces te rechtvaardigen.
Als Apple besluit om Emailer niet te updaten, ontspruit er een andere mogelijkheid. Het gratis weggeven van de huidige versie van Emailer kost weliswaar niets meer dan een beetje goodwill bij de ontwikkelaars. Maar de hele email-community wordt erdoor geschaad omdat de aanvaarding van nieuwe mogelijkheden die interoperabiliteit behoeven, erdoor wordt vertraagd. Een voorbeeld: een set van standaard headers wordt goedgekeurd voor gebruik bij een mailinglijst om het zo e-mailprogramma's makkelijker te maken om mailinglijstberichten te identificeren en taken te automatiseren als abonneren, abonnementen opzeggen, versturen, hulp etc.,. Zonder ondersteuning voor deze nieuwe headers in email programma's (die niet zouden plaatsvinden binnen een stervend Emailer), zouden lijst-mailing-beheerders veel minder geneigd zijn om de nieuwe headers te implementeren waarmee ze het gebruik ervan voor ons, de normale gebruikers, zouden verminderen.
<http://info.internet.isi.edu/in-notes/rfc/files/rfc2369.txt>
<http://search.ietf.org/internet-drafts/draft-chandhok-listid-01.txt>
De adoptie van Emailer -- In het licht van de kleine kans op winst met Emailer en de groet kans op het vervreemden van een aantal Macintosh ontwikkelaars zou Apple kunnen overwegen om Emailer te verkopen aan een ander bedrijf. Dat is de manier waarop 3Com Claris Organizer heeft uitgekozen om te gebruiken voor de PalmPilot; bovendien is het een feit dat Apple met Emailer heeft lopen leuren.
<http://db.tidbits.com/getbits.acgi?tbart=04874>
Het probleem is dat elk bedrijf dat Emailer van Apple koopt nog steeds geld zal moeten uittrekken voor het updaten en het verkopen van Emailer. Het besluit zou makkelijker genomen kunnen worden als er minder concurrentie was want concurreren tegen een verzameling van krachtige programma's die uiteenlopen van gratis tot goedkoop is nu niet echt een recept voor zakelijk succes. Het grootste positieve argument is dat een klein bedrijf als Fog City Software (het bedrijf dat Emailer aanvankelijk ontwikkelde, hoewel de hoofdontwikkelaar van Emailer nu voor Outlook Express werkt) niet zoveel exemplaren zou hoeven te verkopen als een reus zoals Apple, om winst te maken. Maar toch is het verkopen van software niet goedkoop en dat geldt dubbel hard voor goedkope software, waar je hoge verkoopcijfers nodig hebt om de publiciteitskosten te dekken.
Dus, ofschoon het nog steeds zou kunnen gebeuren, zie ik geen van de bekende Macintosh bedrijven Emailer kopen en nieuw leven inblazen. De meeste commerciële kans zou liggen bij een rijk maar onbekend bedrijf dat het zou willen gebruiken om zichzelf in de Macintosh-markt te introduceren. Zij zouden in ieder geval een aanzienlijke mond-tot-mond reclame genereren bij de huidige Emailer-gebruikers en die vorm van beruchtheid is ongelooflijk waardevol.
Als ik gelijk krijg en Emailer weinig kans heeft om, zelfs me de bovengenoemde opties, te overleven, is er dan misschien een alternatief? Lees TidBITS volgende week voor een aantal gedachten over hoe we zowel Emailer als een keur aan andere programma's die ook de moeite waard zijn maar een vroeg einde hebben gekend.
door Geoff Duncan <[email protected]>. Vertaling: [GRP], [JV], [IdM], [JS] & [MK]
Het eerste deel van dit artikel, in TidBITS-449, ging over MacsBug, de gratis low-level debugger van Apple. Er werd uitgelegd hoe het geïnstalleerd en aangeroepen moest worden en hoe je met MacsBug problemen als gevolg van het vastlopen van een programma kunt opvangen. Het opzoeken van systeemfout-nummers met MacsBug, het converteren tussen decimalen en hexadecimalen, en de basisfuncties van wiskunde zijn ook besproken.
<http://db.tidbits.com/getbits.acgi?tbart=05118>
Hier gaan we vooral in op een aantal MacsBug commando's waarmee je gedetailleerde informatie over je systeem en programma's kunt opzoeken. Ik zal ook een beetje proberen uit te leggen hoe je Macintosh en de verschillende programma's gebruik maken van geheugen en hoe je problemen kunt bijhouden met behulp van MacsBug. MacsBug is nog steeds geen gebruikersvriendelijke software die ik alle Macintosh gebruikers zou aanraden, maar als je toch al zover gekomen bent, kan het geen kwaad om nog een stapje verder te gaan.
"By Your Command"-- Eerst kijken we naar een aantal algemene (maar zeer nuttige) MacsBug-commando's. De commando's zijn niet gevoelig voor het soort letter; het maakt niet uit of, zoals ik dat hieronder gedaan heb, je ze met een hoofdletter schrijft of niet. MacsBug heeft ook een Help-commando waarmee de vaak cryptische omschrijvingen van deze en andere commando's kunnen worden opgeroepen. Hoewel het zal blijken dat veel van MacsBug's mogelijkheden te maken hebben met obscure functies als traps, breakpoints en disassembly, zitten er ook een paar heel nuttige juweeltjes tussen. Type Help Misc in om een klein voorproefje ervan te krijgen.
How - Laat zien waarom MacsBug is aangeroepen. Wanneer je MacsBug expres hebt ingetypt, geeft dit commando weer dat een NMI (Non-Maskable Interrupt) de oorzaak is.
Stat - Geeft de datum weer, de tijd (inclusief hoe lang geleden het was dat je de machine voor het laatst hebt opgestart), de naam van de huidige applicatie en wat technische informatie over je systeem. Stat is handig om uit te zoeken hoe lang geleden de machine voor het laatst is opgestart; mijn PowerBook, hoewel het een groot deel van de dag slaapt, staat bijvoorbeeld nu al langer dan vier maanden aan.
ProcInfo - Geeft een overzicht weer van draaiende programma's (of processen), inclusief onmerkbare achtergrondprogramma's. De status kolom geeft aan welk programma op de voorgrond is (dit kan verschillen van het programma dat op dit moment wordt uitgevoerd onder Cur AppName), welke applicaties op de achtergrond zijn en welke alleen maar op de achtergrond zijn. Je kunt ook het type zien van een programma, de programmeur-codes, hoeveel geheugen het in beslag neemt en hoeveel van dat geheugen nog vrij is. Deze geheugen-gegevens worden in hexadecimalen weergegeven, dus als je een recente versie van MacsBug gebruikt, vergeet dan vooral niet dat je ze kunt aanklikken, op Return kunt drukken en dan worden deze gegevens omgezet in decimalen. Het is een geweldige manier om erachter te komen hoeveel geheugen er wordt gebruikt door Finder en door achtergrond-applicaties als File Sharing, Web Sharing of Desktop PrintMonitor. Let wel, het totale geheugen dat hier wordt weergegeven is exclusief tijdelijk geheugen uit de system heap dat door de applicatie gebruikt wordt. Zo kan MacsBug bijvoorbeeld aangeven dat Internet Explorer 5 MB geheugen gebruikt, terwijl Over Deze Computer, onder MacOS 8.x, een veel hoger getal aangeeft omdat daar wel het tijdelijk geheugen wordt meegerekend.
File - Wist je dat het Mac OS slechts 348 bestandsvorken - data en resource - kan open hebben op hetzelfde moment? Het File commando toont een volledige lijst van alle open bestandsvorken, waarin soms zowel datavork als resourcevork van eenzelfde bestand voorkomen. In deze lijst zie je niet alleen de documenten en bestanden die open zijn, maar ook alle draaiende applicaties, fonts, schijfdirectories, extensies, plug-ins en shared libraries die gebruikt worden door programma's, en nog een en ander. Aan het einde van de lijst kan je zien hoeveel bestandsvorken open zijn op het moment: wees niet verbaasd als dit getal dicht bij de 200 zit. Het is niets ongewoons voor designers, productiekunstenaars, programmeurs en webontwikkelaars onbewust te veel bestanden te openen. Gewoonlijk kan je het probleem oplossen door een programma te verlaten (of ongebruikte fonts te verwijderen). Als je wil weten welke bestanden door een bepaald programma worden opengehouden, gebruik dan het commando File -P, gevolgd door het proces-serienummer van het programma waarin je geïnteresseerd bent. Proces-serienummers bestaan uit vier cijfers en je vindt ze in de eerste kolom van het ProcInfo-commando dat hierboven vermeld werd. Om alle open bestanden te zien, zonder de fonts, type File 0 (nul, niet de letter O).
Vol - Geeft je informatie over alle schijven die op het bureau staan. Meestal weet je wel welke schijven er zijn, maar dit commando geeft je iets meer informatie. Eerst en vooral geeft het je (in hexadecimaal) afzonderlijke totalen voor het aantal mappen en bestanden op je schijf, in tegenstelling tot het Get Info commando in de Finder, dat slechts het totaal aantal elementen aangeeft. (Het geeft je ook de grootte van de allocatieblokken, maar deze informatie schijnt onjuist voor HFS+ schijven)
StopAS - Sluit alle verbindingen met AppleShare-servers af, zowel voor verbindingen gemaakt via AppleTalk als TCP/IP. (vroegere versies van MacsBug ondersteunen het StopXPP commando, dat enkel AppleTalk-verbindingen afsluit.) Voor de niet-programmeurs heeft StopAS twee functies. Ten eerste wil je misschien alle AppleShare-verbindingen verbreken wanneer een server problemen veroorzaakt (zoals schijffouten of trage reacties wegens opstoppingen op het netwerk). Ten tweede, herinner je uit het eerste deel van dit artikel dat AppleShare-servers je laten vallen als je langer dan een paar minuten in MacsBug zit. Daar zit nog een ander nadeel aan vast: als dit gebeurt, dan zullen bij het verlaten van MacsBug de andere applicaties nog enkele minuten in het ongewisse verkeren, zich afvragend waar die servers nu toch gebleven zijn. Als je StopAS gebruikt om AppleShareverbindingen af te sluiten, dan elimineer je vertragingen wanneer je MacsBug verlaat.
DX - Wanneer programmeurs een applicatie debuggen, stoppen ze er regelmatig commando's in die "user breaks" genoemd worden, en die MacsBug bewust doen reageren. User breaks zijn nuttig wanneer een programmeur wil uitvinden wat er gebeurt vooraleer een programma crasht eerder dan nadat het het bekende universum verlaten heeft. Programma's die worden vrijgegeven voor het publiek bevatten normaal gezien geen user breaks meer, maar af en toe ontsnappen ze wel eens: ik heb een script dat er een paar doet afgaan in Eudora Pro, en ik heb er hopen gezien in pre-release en beta software. Als je MacsBug niet hebt geïnstalleerd en je komt zo'n user break tegen, dan crasht het programma normaalgezien met een fout -10; met MacsBug geïnstalleerd, zal MacsBug overnemen net zoals bij een systeemfout, maar zal de oorzaak aangeven als een user break samen met (af en toe) een bericht van de programmeur. Dikwijls kan je een user break verlaten door Command-G te typen, maar je zou de user break als een bug moeten melden aan de programmeur. Hoe dan ook, als je er een vervelende tegenkomt en je probeert een beetje serieus te werken, dan kan je het DX commando gebruiken om MacsBug te vertellen user breaks te negeren: DX OFF zet user breaks af, DX ON zet ze aan, en DX NOW vertelt je of user breaks aan of uit staan, zonder iets te veranderen aan de status. Als je user breaks afzet zal MacsBug ze terug aanzetten wanneert je je computer herstart.
Heap heap hoera -- Elk programma dat op je Mac draait bewaart zijn vensters, dialoogkaders, bestanden en andere gegevens in een stuk RAM dat we programma-heap noemen. De grootte van een heap hangt af van de hoeveelheid geheugen die aan een programma is toegekend. Het systeem heeft ook een heap, en het is de enige heap die het Mac OS onmiddellijk kan vergroten of verkleinen. Om de grootte van een programma-heap te veranderen, moet je het programma stopzetten, de geheugeninstellingen veranderen in het Toon Info-venster, en dan het programma herstarten. Dat is één van de redenen waarom voorstanders van andere systemen beweren dat het Mac OS een zwak geheugenmodel heeft.
Heaps zijn verdeeld in blokken, die ofwel vrij (ongebruikt) kunnen zijn, herplaatsbaar (in gebruik, maar kunnen nog verplaatst worden) of vast (in gebruik en niet verplaatsbaar). Blokken in gebruik kunnen ook aangeduid worden als purgeable, wat betekent dat het programma ze liefst in het RAM houdt, maar dat ze kunnen losgelaten worden (purged) als het programma meer vrij geheugen nodig heeft. Ieder geheugenblok begint met een header waarin wat informatie staat over het geheugenblok.
Een programma-heap lijkt een beetje op een harde schijf in die zin dat hij gefragmenteerd kan geraken. Als een programma geheugen gebruikt en weer vrijmaakt (bijvoorbeeld bij het openen en sluiten van dokumenten), kunnen zowel vrije als bezette geheugenblokken verspreid raken over heel de heap. Als de blokken herplaatsbaar zijn zal het programma ze herschikken om grotere vrije ruimtes te maken - net als bij het optimaliseren van een harde schijf. Maar als de blokken op slot zijn kunnen ze niet verplaatst worden, en kan het programma een vraag om grote geheugenblokken (bijvoorbeeld bij het openen van een groot dokument) misschien niet inwilligen, zelfs al is het totaal aan vrij geheugen voldoende om aan de vraag te voldoen.
Met die kennis in het achterhoofd vraag je je misschien wel af waarom programma's eigenlijk vaste geheugenblokken gebruiken. Er zijn verschillende redenen, maar een goed voorbeeld is het afspelen van een film. Als het geheugenblok met de film elk moment kon verplaatst worden, dan zou het programma constant moeten checken of het geheugen verplaatst was, wat de prestaties naar beneden zou halen. Door te kunnen garanderen dat het geheugenblok op zijn plaats blijft, kan het programma zich concentreren op het afspelen van de film, en daarna (theoretisch) het geheugenblok teruggeven. Het ene programma gebruikt al meer vast geheugen dan het andere, maar alle programma's gebruiken het een beetje.
Er bestaat een programma dat een grafische weergave geeft van delen van de programma-heap (en dat kan kijken naar heap-blokken): ZoneRanger van Joshua Golub, te downloaden (517K) op de website van Metrowerks. Het is een beetje onstabiel onder recente versies van het Mac OS, maar het is nuttig en leerzaam.
<http://www.metrowerks.com/tools/software/zoneranger.html>
MacsBug heeft het geheugen in de smiezen.
HT - Het HT (heap total) commando toont informatie over de geheugenpartitie (heap) van de huidige applicatie, inclusief de hoeveelheid vrij, verplaatspaar, onverplaatsbaar en vrij te maken geheugen. HT geeft de resultaten in hexadecimale en decimale getallen, uitgedrukt in bytes: je kan dit commado gebruiken om een beetje te zien wat er achter de schermen gebeurt. Als een programma vertelt dat het een gebrek aan geheugen heeft, maar het HT commando laat een grote hoeveelheid vrij geheugen zien, dan is de heap waarschijnlijk flink gefragmenteerd. Je kan proberen de applicatie af te sluiten en opnieuw te starten. Als het probleem blijft bestaan zal het toekennen van meer geheugen aan de applicatie mogelijk het probleem niet oplossen, omdat grote stukken geheugen net zo gemakkelijk gefragmenteerd kunnen raken als kleine (Echter, als een programma om geheugen zeurt, en HT toont aan dat er echt te weinig beschikbaar is, dan zal het toekennen van meer geheugen wel helpen.)
HZ en HX - Het heap total commando, HT, werkt alleen op de geheugenpartitie van de huidige applicatie. Hoe krijg je nu informatie over de heap die een andere applicatie toebehoort? Ten eerste heb je informatie over de andere heaps nodig, en deze is beschikbaar via het HZ (heap zones) commando. HZ geeft een lijst van alle heaps, compleet met namen van de applicaties waar ze toe behoren. Elk item in de lijst an HZ begint met een decimaal getal, beginnend met #1. Je kan deze getallen gebruiken om met het HX (heap exchange) commando van heap te verwisselen. Dus, als HZ toont dat Nisus Writer heap nummer #9 op mijn computer heeft, typ ik HX #9 om te schakelen naar de heap van Nisus Writer ongeacht welke applicatie aktief was toen MacsBug werd ingeschakeld. Als ik dat gedaan heb, toont het HT commando de informatie over de heap van Nisus Writer.
HC - Het HC (heap check) commando vraagt MacsBug om te controleren of de heap beschadigd is; je kunt HC ALL gebruiken om alle heaps te controleren. Je kunt dit proberen als een programma zich vreemd gedraagt maar nog niet crasht. Als het HC-commando toont dat een heap beschadigd is, kunnen de zaken snel verergeren: bewaar al je werk en verlaat het programma. Let wel op dat dit commando genept kan worden en kan denken dat een heap beschadigd is als MacsBug wordt ingeschakeld net als het programma bezig is blokken geheugen heen en weer te schuiven middels de Memory Manager. Er zijn manieren om MacsBug te vertellen door te draaien tot een veilig moment, maar het is gewoonlijk eenvoudiger om MacsBug te verlaten met G (of Command-G), een seconde te wachten, en dan MacsBug weer in te schakelen om te kijken of het probleem er nog steeds is. Als je nieuwsgierig bent, kun je kijken naar het WNE en WNEPPC commando (alleen beschikbaar in recente versies van MacsBug) in de hulpteksten van MacsBug voor meer informatie.
Logging Problemen -- Omdat MacsBug zo goed is in het achterhalen van informatie over de applicatie die je gebruikt en over de toestand van je Macintosh is het niet alleen een nuttig programma voor programmeurs, maar ook voor mensen die software testen of beoordelen. Het enige probleem is hoe je bepaalt welke informatie van belang is als je een bug wilt rapporteren.
Gelukkig hebben de makers van MacsBug dat gemakkelijk voor je gemaakt. Zoals de naam al suggereert, maakt het commando StdLog een tekstbestand aan met gestandaardiseerd gelogde informatie die ontwikkelaars meestal nodig hebben als ze een bug onderzoeken. Deze logs zijn aardig groot (meestal zo'n 20K) en bevatten de resultaten van verschillende MacsBug commando's, waaronder veel die hier besproken zijn. Na het geven van het StdLog-commando verschijnt het logbestand als een tekstbestand met de naam StdLog op het bureaublad. Als je later opnieuw het commando StdLog geeft, schrijft MacsBug de informatie achter wat er al stond in het aangetroffen bestand StdLog en schrijft dus geen bestaande data over.
Ik vind het niet zo'n goed idee om een standaard-logbestand via e-mail op te sturen bij wijze van bug-report, tenzij je dit natuurlijk al hebt afgesproken met de maker van het programma. Geef liever een beknopte beschrijving van de bug en vertel erbij dat je een MacsBug-log hebt gemaakt naar aanleiding van het probleem en dat je dit desgewenst kunt opsturen. Hou dat bestand bij je. Er zijn ontwikkelaars die het niet met me eens zijn op dit punt, maar sprekend vanuit mijn ervaring met het verwerken van bug-reports die ik via e-mail binnen kreeg, vind ik ik lange rapportages met attachments onhandiger dan korte briefjes. Eerlijk gezegd horen er nog maar weinig nieuwe bugs op te duiken als een programma eenmaal de status van public beta heeft bereikt. Het is niet bijzonder nuttig voor een ontwikkelaar om tientallen logbestanden binnen te krijgen die betrekking hebben op een probleem dat al bekend is en misschien zelfs al is verholpen.
Weer een Break Point -- In het volgende deel van dit artikel zullen we kijken naar het gebruik van MacsBug om gecrashte machines automatisch te herstarten. Als je meer informatie wilt over MacsBug, kijk dan eens naar Apple's MacsBug Reference and Debugging Guide die te krijgen is in Acrobat PDF formaat. Hoewel er geen updates van zijn verschenen sinds MacsBug 6.2 in 1991 kun je hier nog steeds gedetailleerde informatie vinden over hoe het geheugenbeheer van de Macintosh er onder de motorkap uitziet, en ook over traps, disassembly en nog veel meer kom je een hoop te weten.
<http://developer.apple.com/dev/tools/debuggers/MacsBug/Documentation/MacsBugRef_6.2.pdf>
Als aanvulling zou een uitgebreid tweedelig artikel kunnen dienen dat het weekblad MWJ eerder dit jaar publiceerde. In dit artikel, MacsBug for Non-Programmers, werden verschillende eigenschappen van MacsBug besproken die we hier niet hebben behandeld, zoals het analyseren van heaps en het tonen en zoeken van wat er in het geheugen aanwezig is. Beide delen van het artikel zijn overgenomen op Ted Landau's MacFixIt site. Als dit nog niet genoeg diepgaand Macintosh-nieuws is, vraag dan op tijd een drie weken durend gratis proefabonnement op MWJ aan, zodat je hun bespreking van MacOS 8.5 mee kunt pikken, of download een paar gratis proefnummers.
<http://www.macfixit.com/reports/MacsBug.shtml>
<http://www.gcsf.com/pages/mwj/>
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 Homepage | Volgende aflevering