Vorige aflevering | Search TidBITS | TidBITS Homepage | Volgende aflevering

TidBITS#585/25-Jun-01

Het is weer tijd voor MacHack, en Adam doet verslag vanuit Dearborn over de ontvangst van Mac OS X op de jaarlijkse ontwikkelaarsbijeenkomst. Lees verder om uit te vinden welke hacks de hoogste eer opeisten bij de Hack-wedstrijd van de MacHax Groep, en stem dan af op het tweede deel van Jonathan Rentzsch' artikel over WebObjects, de krachtige webapplicatie-ontwikkelaar van Apple. In het nieuws, Mac OS X 10.0.4 lost een aantal problemen op, en Extensis brengt Suitcase 10 uit.

Onderwerpen:

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


-> Denk je dat TidBITS interessant is voor <-
-> je vrienden, kennissen, collega's? Geef <-
-> hen de tip zich ook GRATIS te abonneren <-
-> of stuur deze aflevering naar hen door! <-


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:


De Nederlandse editie van TidBITS is een letterlijke vertaling van de oorspronkelijke Engelse versie. Daarom is het mogelijk dat een deel van de inhoud niet geldt in bepaalde landen buiten de USA.

Dit nummer werd uit het Engels vertaald door:

Verder werkten mee:


MailBITS/25-Jun-01

[vertaling: JG]

Mac OS X 10.0.4 update uitgebracht -- Apple heeft versie 10.0.4 van Mac OS X uitgegeven, met verbeterde USB-ondersteuning, een betere Classic-omgeving, en de nieuwe 17-inch Apple Studio Display monitor wordt nu ondersteund (zie "Over plat gesproken" in TidBITS-581). De update is verkrijgbaar via het Software Update regelpaneel, of in twee verschillende downloads: een pakket van 12 MB dat Mac OS X 10.0.3 opwaardeert, of een pakket van 19.3 MB dat iedere versie tussen 10.0.0 en 10.0.3 opwaardeert.

<http://www.apple.com/macosx/>
<http://db.tidbits.com/getbits.acgi?tbart=06437>
<http://til.info.apple.com/techinfo.nsf/artnum/n75142>
<http://til.info.apple.com/techinfo.nsf/artnum/n75141>

We zijn erg blij te kunnen melden dat, anders dan bij vorige Mac OS X updates, Apple de veranderingen in 10.0.4 gedocumenteerd heeft. De belangrijkste punten zijn: verbeterde toegang tot gemeenschappelijke FileMaker Pro 5.0 documenten via TCP/IP in de Classic-omgeving, beter PowerBook batterijbehoud in sluimerstand, en iTunes compatibiliteit met meer USB CD-RW drives van derden. Er staan nog steeds een paar frustrerend vage opmerkingen in de notities, zoals "een latere versie van SSH is bijgesloten," terwijl het niet moeilijk geweest zou zijn om te zeggen welke versie ingesloten was en wat er verbeterd was. [JLC]

<http://til.info.apple.com/techinfo.nsf/artnum/n106360>

Suitcase 10 afgeleverd -- Extensis heeft Suitcase 10 uitgegeven, waarin een aantal eigenschappen aan het al lang bestaande fontbeheer-gereedschap zijn toegevoegd. De nieuwe versie voegt de mogelijkheid toe om applicatiegroepen te maken, waarmee lettertypes automatisch actief worden wanneer je een veelgebruikt programma opstart; een QuarkXPress XTension maakt ook ieder lettertype actief dat in een QuarkXPress-document gebruikt wordt (inclusief lettertypes in grafieken). Suitcase 10 ondersteunt ook Multiple Master fonts, bevat FontBook, een gereedschap om lettertypes vooraf te bekijken, voegt een module toe om met font-sets vanuit de regelbalk te werken, vindt corrupte fonts, en voorkomt fontconflicten. Suitcase 10 vereist een PowerPC met Mac OS 8.6 tot 9.1, en kost $100. Upgrades van oudere versies of concurrerende fontbeheerprogramma's zijn verkrijgbaar voor $50. Eigenaars van Suitcase 10 zullen een gratis exemplaar van de Mac OS X-versie krijgen wanneer die later dit jaar uitkomt. Suitcase 10 is een download van 8.2 MB. [JLC]

<http://www.extensis.com/suitcaseten/>


MacHackers en Mac OS X

door Adam C. Engst <[email protected]>
[vertaling: MSH, TK]

De MacHack ontwikkelaarsconferentie van dit jaar markeerde, naar mijn idee, een belangrijk moment in de Macintosh-industrie. Mac OS X bestaat nu ongeveer 90 dagen, ontwikkelaars hebben dus enige tijd gehad om ermee bekend te raken en ervaren gebruikers beginnen lacunes en problemen te onderkennen. Ik was benieuwd hoeveel mensen Mac OS X zouden gebruiken, hoeveel hacks gemaakt zouden zijn voor Mac OS X en wat de algemene opinie betreffende Mac OS X zou zijn. Al was MacHack zoals gewoonlijk uiterst plezierig, Mac OS X lokte slechts reacties uit als "Toekomstmuziek. Probeer het later nog eens."

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

MacHack begon met de traditionele middernachtlezing in de vorm van een paneldiscussie met zeven leden van het team dat indertijd de Macintosh schiep. Op het eerste gezicht leek dat een vreemde beslissing. Waarom zou je mensen, van wie de bijdragen voor de Mac meer dan 20 jaar geleden plaats vonden, op een conferentie uitnodigen waar nu één van de onderwerpen de versie van een besturingssysteem dat 90 dagen geleden verscheen zou zijn? Afgezien van de algemene vermakelijkheidswaarde, terwijl de panelleden verhalen vertelden en met elkaar schertsten, werd ik me er geleidelijk van bewust dat de inleiding op een dieperliggend niveau werkte - het symbolisch doorgeven van de fakkel door de vroege Macintosh-scheppers aan de ontwikkelaars van de hedendaagse Macintosh-wereld. Technologie neigt er niet naar een lange levensduur te hebben, maar in de Mac-wereld en zeker bij een gebeurtenis als een MacHack, waar deelnemers jaar na jaar terugkomen, is een sterk gevoel voor het verleden aanwezig. Het bij elkaar brengen van mensen als Andy Hertzfeld, Bill Atkinson, Caroline Rose, Randy Wigginton, Donn Denman, Jef Raskin, en Daniel Kottke herinneringen ophalend, gaf een verbinding met het verleden terwijl we terzelfdertijd vooruitgaan naar de toekomst met Mac OS X.

Nog plezieriger was de tweede toespraak van mede-oprichter van Apple, Steve Wozniak. Want Woz in levende lijve blijkt waarlijk warm, helder en speels te zijn. Hij vergastte zijn toehoorders op verhalen over zijn hacks, grollen en grappen (een aantal daarvan gingen over geperforeerde vellen van $2 biljetten, die hij gebruikt als er zich gelegenheid voordoet voor een beetje lol, want veel Amerikanen kennen de $2 dollarbiljetten niet en nog minder beseffen ze dat die te koop zijn als geperforeerde vellen). Interessant was dat Woz zei dat hij nooit grappen uithaalde met Steve Jobs; ik had de indruk dat Jobs gewoonweg niet het soort figuur was die je zoiets aandeed en zelfs een onverbeterlijke grappenmaker als Woz zag dat in.

<http://www.bep.treas.gov/store/uc2.htm>

Echo's van persoonlijkheden -- Deze mensen ontmoeten was interessant, niet alleen uit historisch oogpunt, maar ook omdat wij zo de weerspiegeling van hun persoonlijkheid in de Macintosh konden zien. Andy Hertzfeld legde zijn enthousiasme in de Mac en zei dat hij expliciet had geprobeerd het spelerige gevoel van Woz op het Macintosh-project over te brengen. Bill Atkinson legde zijn passie in de Mac, Jef Raskin leende er zijn intellectuele nauwkeurigheid en verlangen naar elegante oplossingen aan, en de bijdragen van Caroline Rose zorgden voor helderheid en oog voor detail.

Het lijdt geen twijfel dat nog vele anderen invloed hebben gehad op de Mac, met Steve Jobs ongetwijfeld als belangrijkste kandidaat. Zonder zijn manier waarop hij anderen uitdaagde om het schijnbaar onmogelijke te doen en zijn ondersteuning voor het project (vooral tijdens de eerste paar magere jaren) zou de Macintosh vandaag zeker niet het succes zijn dat hij is. Veel van de verhalen die we hoorden, gingen over Steve Jobs, en zelfs als we rekening houden met de verschillende meningen van de sprekers, dan is het beeld dat uit die verhalen ontstaat dat van een man die zoveel mogelijk de wereld rondom hem onder controle moet hebben.

De uitdaging van Mac OS X -- Jobs' behoefte aan controle is met de jaren schijnbaar gegroeid. Een klein voorbeeld hiervan is dat hij in de huidige software van Apple vermeldingen van personen in de "Over"-vensters laat verwijderen, terwijl hij er vroeger net op stond dat programmeurs kunstenaars zijn die hun werk moeten ondertekenen. Voor Mac OS X is dit een belangrijk probleem. Net zoals de oorspronkelijke Macintosh is OS X het resultaat van het werk van veel mensen, en toch vinden we in het mooie uiterlijk van Mac OS X niets terug van deze mensen. Het draait allemaal om Steve Jobs en zijn rechterhand, Avie Tevanian. Maar al te vaak is het zo dat wanneer aspecten van Mac OS X, om het zacht uit te drukken, onder vuur komen te liggen (zoals de mate waarin OS X documenten met hun applicaties verbindt door middel van extensies van bestandsnamen), de reden voor die beslissing altijd neerkomt op "omdat Avie het gezegd heeft" of "omdat Steve het zo wil." Steve en Avie zijn dan misschien wel briljante geesten, en noodzakelijk voor het succes van Mac OS X, maar onfeilbaar zijn zij niet.

Onder de ontwikkelaars op MacHack viel geen opvallend enthousiasme te bespeuren voor Mac OS X. Maar weinigen gebruikten het op hun hoofdmachine, en Mac OS X was vereist voor slechts 10 procent van de hacks die voor de Hack-wedstrijd werden ingediend. Degenen die het hardst stonden te juichen om Mac OS X waren de mensen die zowel de Mac als Unix met plezier gebruiken, wat nauwelijks een verrassing is. Zelfs bij die mensen gaf Unix de doorslag, en niet de Macintosh-aspecten van Mac OS X. Woz en de leden van het oorspronkelijke Mac-team waren het eens met deze basishouding - ook zij waren blij met de Unix-basis van Mac OS X, maar hadden kritiek op de Aqua-interface. Woz was wel heel hard toen hij zei dat volgens hem Mac OS X "nog niet klaar was voor prime time."

Zoals een vriend van me het stelde, het huidige Mac OS X voelt aan als een kunstproject, niet als een besturingssysteem met een innovatief interfacedesign na strenge bruikbaarheidstesten. Als de demonstratie van en de discussie over Windows XP (dat op komst is) van enkele ex-Macintosh programmeurs op MacHack typerend is, dan heeft Microsoft enkele designhoudingen overgenomen die belangrijk waren voor de Macintosh. Als dat waar is, zal Apple zich steeds hogere normen moeten stellen of het risico lopen te verliezen in een spel dat het zelf heeft uitgevonden.

Apple is zich bewust van dit probleem. Op een bepaalde sessie konden de mensen op MacHack moeiteloos een Problemen Top 100 in Mac OS X samenstellen, maar op de feedback-sessie van Apple de volgende dag konden Steve Glass en Tim Holmes van Apple zo goed als alle kleine minpunten weerleggen met "ja, dat weten we, en we werken er aan." Het belang van dit antwoord kan niet worden overschat, omdat de andere reële mogelijke reden voor sommige overduidelijke weglatingen en fouten in Mac OS X was dat Apple gewoon geen probleem zag. De vraag die nu blijft bestaan, is wanneer precies Apple een bepaald minpunt zal aanpakken, al geven de vier bugfixes van Mac OS X die we in de laatste 90 dagen hebben gekregen, wel aan dat er beweging in zit. Een voor de hand liggende datum voor een grotere release is Macworld Expo in New York in juli, en vervolgens Macworld Expo in San Francisco volgend jaar januari.

Wat Apple voor heeft op Microsoft - en ik denk dat Microsoft dit nooit kan creëren met Windows - is de hypergeïnformeerde en geïnteresseerde gemeenschap van Macintosh-gebruikers en ontwikkelaars. Wij geven om Apple en de Macintosh, en wij moeten het soort feedback dat Apple gedurende de bètacyclus van OS X ontving, blijven sturen om er voor te zorgen dat Mac OS X een interface krijgt die we graag willen gebruiken.


De MacHax Hack-wedstrijd 2001

door Adam C. Engst <[email protected]>
[vertaling: GH, JS]

Er gebeurt veel op de MacHack ontwikkelaarsconferentie, maar het hart van de bijeenkomst is de Hack-wedstrijd van de MacHax Group, waar programmeurs de kans krijgen om te programmeren zonder zich zorgen te maken over nuttigheid, stabiliteit of zelfs bruikbaarheid. En toch, ieder jaar weer, tonen de opduikende hacks meer dan alleen de speelse kant van de Macintosh - een aantal is al omgezet in shareware en zelfs commerciële produkten. Natuurlijk riskeren zulke hacks uitroepen van "Bruikbaar!" uit het publiek maar dat heeft nog nooit een programmeur met een goed idee tegengehouden op de MacHack.

<http://db.tidbits.com/getbits.acgi?tbser=1199>

Mijn hacks -- Er was geen gevaar voor uitroepen als "Bruikbaar!" bij mijn eerste hack. Vorig jaar was de prijs voor mijn hack van Eudora's auto-correctiemogelijkheden een 1 meter lange houten staak, compleet met splinters. Waarom de organisatie van de wedstrijd mij zo'n prijs toekende is onbelangrijk, maar het was deels om te zien hoe ik thuis zou komen, ik zou wat uit te leggen hebben op het vliegveld met een 1 meter lange staak. Na wat brainstormen voor mijn vertrek kwam ik op het volgende, ik verborg de staak veilig onder de wastafel in de badkamer in mijn hotelkamer en maakte een aantekening in mijn agenda om komend jaar weer kamer 323 te vragen. Bij het inchecken dit jaar, vroeg ik om de kamer en was zeer blij de staak aan te treffen. Ik trok handschoenen aan voor de hack en demonstreerde de staak als wapen terwijl ik dat verhaal vertelde. Om het relevant te maken gebruikte ik het hotel als opslagmedium en de staak als data die ik wegschreef onder de wastafel, later vroeg ik het adres op bij het bestandssysteem voor het blok wat mijn data bevatte (het kamernummer). De toegangssnelheid was miserabel, maar ik kreeg de lachers op mijn hand door de staak goed te bekijken en te vertellen dat er geen datacorruptie was opgetreden. Oh, en dit jaar ga ik kijken of mijn data naar een andere lokatie gekopiërd kan worden, en in dat geval zal ik die bewerken met de schuurpapierprijs die ik dit jaar won.

<http://db.tidbits.com/getbits.acgi?tbart=06103>

Ik nam samen met Leonard Rosenthol en Richard Ford deel aan een andere hack, het ontwerpen en implementeren van een statistiekserver zodat we als Eudora-gebruikers onze gebruiksstatistieken met andere kunnen vergelijken (Eudora 5.0 en later kan gedetailleerde gebruiksstatistieken bijhouden in een XML-bestand). Het was een idee van Leonard om een Eudora plug-in te schrijven om getallen uit het XML-bestand te extraheren en te uploaden naar een set van Perl-scripts die Richard geschreven had om de resultaten te groeperen en te sorteren. Ik had mijn iBook opgesteld om de Perl-scripts onder Mac OS X's Apache Web server te draaien, en ik werkte ook aan een HTML-interface.

Het enige probleem was dat we niet genoeg tijd hadden, zelfs als we doorwerkten tijdens het grootste deel van de wedstrijd. We startten vrijdag direkt na het eten en de wedstrijd begon om middernacht. Mac OS X blokkeerde veel inspanningen van ons met een crash tijdens de installatie van de developer tools, moeizame permissieproblemen en andere vervelende zaken veroorzaakt door de rigide bestandsstructuur. Maar het was erg leuk om Leonard's programma vers uit de compiler te draaien, de output in te voeren in een webpagina, gecreëerd door mij in Mac OS X's TextEdit, en de resultaten geserveerd te zien door Apache met een Perl-script van Richard, bewerkt op afstand op mijn apparaat tot op de laatste minuut voor mijn praatje begon.

Jeugd hacks -- Veel van de 93 hacks dit jaar kwamen van het grote contingent "yoot" hackers die nog op school zitten, de jongste van hen was pas zeven jaar oud. Een jeugdige hack van Justin Christie en Paul Scandariato was zelfs bruikbaar - een REALbasic-applicatie genoemd iWake, die items in een Wakeup items-map opstart elke keer als een Mac uit de sluimerstand komt. Een jeugdteam bestaande uit Mark Johns, Justin Lee, en Charles Melby-Thompson schreven Chia Windows X, om de Mac OS 9 zooming windows rechthoeken te herstellen onder Mac OS X. Daniel Fox schreef een AppleScript genaamd Hackable AirPort Network Seeker, ontworpen om je er verbaal op te attenderen dat je binnen bereik bent van een AirPort netwerk. Tot slot, hackte Andy Furnas een kopie van iTunes om het scriptable te maken door onderdelen van z'n voorganger SoundJam MP in iTunes te plaatsen. Het was een indrukwekkende demonstratie van de jeugd dit jaar, en prachtig om te zien hoe door die MackHack ervaring deze kinderen ieder jaar weer leren en groeien.

Mijn magere pogingen en de jeugd terzijde, hier is de top vijf van hacks van 2001, gekozen door de ontwikkelaars die alle demonstraties gezien hebben.

Vijfde plaats: Palm Finder 2 -- Hoewel het bij MacHack voornamelijk om de Macintosh draait, zijn alternatieve platformen over het algemeen welkom, en het Palm OS wordt sterk ondersteund in de Hack-wedstrijd. Dit jaar kreeg Palm Finder 2 van Lucius Kwok de vijfde plaats met de angstaanjagend nauwkeurige representatie van de Macintosh Finder op het kleine Palmscherm. Het zou nog enger zijn geweest als het gecombineerd was met HFS- van Jesse Donaldson welke gebruik maakte van de nieuwe mogelijkheden in Palm OS 4.0 om bestanden en externe gegevensbronnen te benaderen zodat de harde schijf van een iBook als een 10 GB gegevensbron gebruikt kan worden.

Vierde plaats: Crrrhaaack -- Inspiratie kwam voort uit pech voor John Gotow, auteur van Default Folder, Screen Catcher en andere shareware utilities. Jon liet per ongeluk zijn PowerBook vallen op de eerste dag van de conferentie, waardoor het scherm barstte, en de onderste tweederde ervan onbruikbaar werd. In plaats van jammeren over een gebarsten LCD schreef Jon Crrrhaaack, een systeemextensie die de schermgrootte verandert zodat alleen het bruikbare gedeelte benut wordt (1024 bij 260 puntjes in zijn geval). Een programma dat een interface biedt voor het kiezen van het functionele deel van het scherm was bijgeleverd, en als Jon tijdens zijn presentatie had verteld dat hij de hack ook had geschreven op zijn kapotte PowerBook zou hij wellicht nog hoger zijn geëindigd.

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

Derde plaats: AirPort Radar -- Drie jaar terug was op de MacHack elke tafel in het atrium van het hotel waar de hackers bijeenkwamen voorzien van een Ethernet Hub. De meesten hiervan verdwenen afgelopen jaar omdat veel mensen een AirPort-kaart hadden en het draadloze netwerk konden gebruiken, en dit jaar maakte op een handjevol mensen na iedereen gebruik van de zes AirPort Base Stations die verspreid over het hotel stonden. Gebruik makend van de draadloze netwerkopstelling schreven Mike Neil en Eric Traut AirPort Radar, welke de verschillende signaalsterktes van meerdere AirPort Base Stations gebruikt om uit te rekenen wat de exacte locatie is van een PowerBook, zelfs terwijl die verplaatst wordt.

Tweede plaats: AquaShade -- Het "geest uit de fles"-effect als je een venster kleiner maakt onder Mac OS X naar de Dock is leuk voor een demo, maar veel Macintosh-gebruikers klaagden over het verlies van de Mac OS 9 windowshade-eigenschap waarmee een venster oprolt in zijn eigen titelbalk. Nicholas Riley en Avi Drissman besloten dit probleem op te lossen met hun AquaShade hack, waardoor het windowshade-effect terug is in de Mac OS X minimalisatieknop, althans in Carbon-programma's. Met de control-toets ingedrukt op de minimalisatieknop drukken geeft het normale effect naar de Dock, de optie-toets schakelt de status om van alle open vensters, en de shift-toets maakt de aktie sneller. Er werd spottend "Nuttig!" geroepen tijdens de demonstratie, maar dat hield het applaus en de stemmen die het de tweede plaats gaven niet tegen.

Eerste plaats: Apple Turnover -- Volgens de trotse traditie van bijna nutteloze hacks kreeg Apple Turnover van Mac Murrett de eerste prijs mee naar huis met de technisch indrukwekkende dynamische rotatie van het beeld op de monitor. Verschillende toetscombinaties zorgden ervoor dat Apple Turnover het scherm met de klok mee of er tegenin draaide, of naar specifieke hoeken sprong. Apple Turnover maakt goed gebruik van de Velocity Engine, maar de beslissende factor was wellicht de gedemonstreerde compatibiliteit met asciiMac, een hack van een paar jaar terug dat de volledige Macintosh interface toonde in ASCII karakters.

Hoewel details nog niet beschikbaar waren toen ik dit schreef worden CD-ROMS met alle hacks (en veel ervan met broncode) gewoonlijk te koop aangeboden in de MindVision winkel. Kijk op de MacHack website voor details.

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


WebObjects: Wee mij, deel 2

door Jonathan Rentzsch <[email protected]>
[vertaling: JS, AV, JV]

Vorige week hebben we het gehad over de fundamentele zaken van applicatieservers en hoe ze mettertijd geëvolueerd zijn, en eindigden we met de Informatie Tijdperk aanpak die door WebObjects van Apple gebruikt wordt. Laten we wat nauwkeuriger kijken naar wat WebObjects eigenlijk biedt.

<http://db.tidbits.com/getbits.acgi?tbart=06465>
<http://www.apple.com/webobjects/>

WebObjects architectuur -- Een typische WebObjects-applicatie zit tussen twee adapters. De eerste adapter verbindt de applicatie met een webserver, terwijl de tweede een verbinding maakt met de database:

Webserver <-> WebObjects-applicatie <-> Database

De webserver ontvangt en geeft antwoord op HTTP-verzoeken van gebruikers op het web - het zorgt voor transport van de interface van de applicatie, die bestaat uit webpagina's zoals ze door de gebruiker gezien worden. Apple levert een adapter die het de webserver mogelijk maakt verzoeken door te geven aan de gewenste WebObjects-applicatie (een enkele server kan vele WebObjects-applicaties tegelijk draaien.) WebObjects levert twee types webserver adapters: een langzamere, algemeen bruikbare Common Gateway Interface (CGI) adapter en een set snelle adapters voor specifieke webservers zoals Apache of Internet Information Server van Microsoft. WebSTAR heeft ook een WebObjects adapter.

Het programma WebObjects communiceert met de database via een andere adapter. De database-adapter is verantwoordelijk voor het genereren van SQL, dit versturen naar de database, de tekstuele resultaten ontvangen en dit doorgeven in objecten. Omdat het genereren van de SQL wordt gedaan op het niveau van de adapter, kan de SQL worden geoptimaliseerd voor elke database.

Deze architectuur geeft WebObjects de mogelijkheid om de datatoegang, de interface en de logica van het programma gescheiden te houden, door verschillende gereedschappen de verschillende taken te laten opknappen. Geen van deze componenten hoeven op dezelfde machine te leven: een Mac OS 9 webserver met WebSTAR kan praten met WebObjects op een machine met Mac OS X Server 10, welke op zijn beurt verbinding kan zoeken met databases op een Windows 2000 systeem.

Datatoegang: EOModeler -- In het hart van WebObjects bevindt zich iets totaal anders dan wat met concurrerende programma's wordt meegeleverd: Enterprise Objects Framework (EOF). Deze verbazingwekkende technologie geeft programmeurs de mogelijkheid om databases te benaderen via makkelijk te manipuleren software objecten (in plaats van low-level tekstuele SQL, welke specifiek kan zijn voor de database).

De eerste stap is het maken van een databasemodel met een krachtige applicatie genaamd EOModeler welke databasemodellen maakt en beheert. Een model is een bestand dat informatie bevat over de lay-out van een database. Het bevat informatie zoals tabelnamen, kolomnamen, datatypes en meer. Dit is lastig werk, maar EOModeler bied duidelijke manieren voor het maken van een nieuw model of het afleiden van een model van een bestaande database (wat voor mij pure magie is).

Met het model in de hand, genereert EOModeler vervolgens automatisch Java code voor het maken, updaten en verwijderen van objecten in een database. Databasetabellen worden Java classes, kolommen worden class-velden en rijen worden class-instanties. Deze vervaardigde classes gebruiken EOF voor het beheren van de database. EOF zelf gebruikt een adapter om te communiceren met de database. Deze adapter genereert SQLcode, stuurt dit naar de database en analyseert wat er terugkomt.

Dit kan verwarrend klinken, maar het komt er op neer dat de specifieke webapplicatie die wordt ontwikkeld nooit met low-level SQL in aanraking komt - het gebruikt alleen objecten van een hoger niveau. EOF en de database adapter genereren en analyseren al het vreselijke SQL. Omdat EOF ook adapters gebruikt om te communiceren met de database, is EOF niet gebonden aan een bepaald soort database. Het is bijvoorbeeld niet nodig de webapplicatie aan te passen als je verandert van FrontBase naar Oracle.

Interface: WebObjects Builder -- Bekend onder de koosnaam "WOBuilder", is dit gereedschap een WYSIWYG html-editor zoals FileMaker Home Page, de oude Symantec Visual Page, of Adobe PageMill. Alhoewel WOBuilder een oudere editor is en niet compleet up-to-date (het biedt bijvoorbeeld geen ondersteuning voor Cascading Style Sheets), biedt het wel functies die geen enkele andere html-editor heeft.

WOBuilder is op de hoogte van objecten. Het is bijvoorbeeld simpel om met grafisch gereedschap een dynamisch gegenereerde html-tabel te maken die elk record van een database weergeeft. Alhoewel dat ook gebruikelijk is bij andere gereedschappen, is het wel uniek dat het maken van zo'n tabel zonder typen gaat - het is alleen klikken, slepen en laten vallen.

WOBuilder maakt het ook zo eenvoudig als slepen en vallen om de informatiestromen in een applicatie te beheren. Het is bijvoorbeeld simpel om een webpagina te maken, welke een tekstveld bevat waar de gebruiker zijn/haar naam kan typen. Na het drukken op de submit knop, tovert WebObjects het precies op de plek waar de programmeur het wil hebben. Al het analyseren van de respons, tekstdecodering, ontdekken van objecten en het werkelijke kopiëren van de data wordt voor de programmeur gedaan door het WebObjects framework. Hierdoor kan de programmeur zich concentreren op de unieke functionaliteit van het programma.

De bemoeienis van WebObjects met de HTML van een pagina is minimaal: het voegt alleen een start/stop tag-paar toe voor elke component die wordt toegevoegd aan een pagina. De tag is een minieme plaatsvervanger die het bestaan van een component en zijn naam afkondigt. Alle andere informatie die nodig is voor de taak van een component, wordt bewaard in een apart "bindings"-bestand.

Logica: Project Builder -- Project Builder is een meertalige (C, C++, Objective C, en Java) geïntegreerde ontwikkelomgeving. Het is krachtig en is ruwweg vergelijkbaar met CodeWarrior van Metrowerks. Apple gebruikt Project Builder voor de ontwikkeling van grote delen van Mac OS X - het hindert projecten geenszins, hoe groot ook de eisen van de logische verwerking mogen zijn.

Elk gereedschap op zich is indrukwekkend, maar ze zijn geschreven om samen te werken. Je kunt een database-object van EOModeler naar een webpagina in WOBuilder slepen. WOBuilder leest de Java code van je Project Builder projectbestand en genereert de code voor jou. Dubbelklikken op een modelbestand of een webcomponent in Project Builder start respectievelijk EOModeler en WOBuilder.

WebObjects pijnlijke plekjes -- Ik wil niet dat je na dit artikel gaat denken dat WebObjects de hemel op aarde is. Eerste nadeel: in tegenstelling tot een steeds groeiend aantal gereedschappen, is WebObjects niet gratis of Open Source (hoewel de flat fee van $700 veel aantrekkelijker is dan de oorspronkelijke $50.000 licentie voor een onbeperkt aantal connecties). Niettegenstaande kan dit een breekpunt zijn voor vele kleine organisaties.

Hoewel demonstraties van WebObjects tonen hoe het werkende database-ondersteunde webapplicaties kan bouwen zonder enige programmeercode, vereist serieus gebruik van WebObjects programmeercode. En WebObjects heeft een hele steile leercurve, zelfs voor ervaren programmeurs. Hoewel het Informatie Tijdperk ontwerp van WebObjects (die we in het eerste deel van dit artikel bespraken) interface, logica en data van elkaar scheidt, deelt het tevens deze fundamentele concepten op in honderden kleine klassen die samenwerken. De complexiteit wordt nog vergroot door het gebruik van het framework model voor applicatie-ontwikkeling, waardoor programmeurs specifieke elementen in de functionaliteit moeten opsporen en vervangen om een applicatie aan specifieke noden aan te passen. De documentatie van WebObjects is beter dan gemiddeld, maar het is vaak onduidelijk hoe een bepaalde taak volbracht moet worden.

Eén functie die aan WebObjects ontbreekt, en die in sommige andere applicatieservers zit, is automatische session fail-over. Dit wil zeggen dat een applicatie kan crashen, en een andere applicatie zal, onzichtbaar, de gebruikerssessie overnemen. De gebruiker is zich er zelfs niet van bewust dat er een crash was! De reserve-applicatie kan zelfs ergens op een andere server draaien, zodat in het geval van een stroomonderbreking, een reservemachine de leemte kan opvullen zonder onderbreking van de dienst.

Hoewel je WebObject applicaties kan bouwen voor zowel Windows NT/2000 en Mac OS X (en Mac OS X Server 10), zijn de gereedschappen voor Windows achtergebleven op versie 4.5 en ze zullen niet aangepast worden. Dit is een serieuze slag voor WebObjects ontwikkelaars die in bedrijven werken die geen Apple hardware willen aankopen.

De onlangs uitgebrachte WebObjects 5.0, geheel in Java geschreven, voelt duidelijk aan als een "punt-nul" versie. Je moet de root account activeren en dan inloggen als root om de software te installeren (je kunt root uitschakelen na installatie). Erger, er is geen uninstall-optie - om WebObjects te verwijderen moet je de drive wissen. Sommige elementen van versie 4.5 zijn op mysterieuze wijze verdwenen (zoals de FlatFile en LDAP data source adapters). De beloofde Linux ontwikkeloptie is niet aangekomen, waardoor enkel Mac OS X (en Mac OS X Server 10), Windows NT/2000, HP/UX, en Solaris overblijven als ondersteunde platformen. EOModeler 5 verslikt zich regelmatig als je hem EOModeler 4.5 modelbestanden voedt, en crasht nogal snel, met verlies van niet bewaarde veranderingen. Tenzij je een veteraan van het eerste uur bent, zou ik wachten tot Apple zijn eerste bugfix uitbrengt voordat je geld en tijd steekt in WebObjects 5.

Waarom WebObjects -- WebObjects heeft zijn aandeel wratten; desalniettemin vind ik het bouwen van een applicatie met WebObjects bijna pure vreugde. Wanneer je de grondslagen van WebObjects kent, kom je in een wereld terecht waarin je webpagina's in uren kunt bouwen terwijl het anders dagen in beslag zou nemen. De beste vergelijking is het gevoel dat je krijgt wanneer je met een snelle auto over een kronkelende weg omgeven door bomen rijdt. Je waardeert de functies van de machine die je in staat stellen snel naar je uiteindelijke doel te navigeren.

[Jonathan "Wolf" Rentzsch is de bezieler van Red Shed Software en organiseert een maandelijkse mac-programmeurs bijeenkomst in Northwest Illinois.]


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