Vertaal

Translate to EnglishÜbersetzen Sie zum Deutsch/GermanΜεταφράστε στα ελληνικά/GreekПереведите к русскому/RussianOversetter til Norsk/NorwegianÖversätta till Svensk/Swedishहिन्दी अनुवाद करने के लिए/Hindi
Tradueix al català/CatalanTulkot uz latviešu/LatvianPreložiť do slovenčiny/SlovakVertaal aan het Nederlands/Dutchترجمة الى العربية/ArabicTraduzca al Español/SpanishTraduisez au Français/French
Traduca ad Italiano/ItalianTraduza ao Português/Portuguese日本語に翻訳しなさい /Japanese한국어에게 번역하십시오/Korean中文翻译/Chinese Simplified中文翻译/Chinese TraditionalПереклад на українську/Ukrainian
Beeld van Moderne Werkende Systemen (3de Uitgave)
Beeld van XSLT 2.0 en XPath 2.0 de Verwijzing van de Programmeur (Programmeur aan Programmeur)
Beeld van Ontwikkeling van de Pit Linux (3de Uitgave)
Beeld van Begin Google Maps API 3

Scripting HAL

De recente versies van Fedora en andere distributies GNU/Linux omvatten een Laag van de Abstractie van de Hardware (HAL) die wordt gebruikt om apparaten gebruiksklare mogelijkheden te steunen. In deze post zal ik u tonen hoe uw shell manuscripten HAL kunnen gebruiken om apparaat en systeeminformatie terug te winnen.

De termijn HAL is overbelast aangezien het om zowel naar een specificatie als de daadwerkelijke software gebruikte te verwijzen die de specificatie uitvoert. Vanuit een inschrijving ontwikkelaarsgezichtspunt, is HAL manier om de mogelijkheden en eigenschappen van hardware op te sommen de in bijlage aan een systeem en bericht te ontvangen wanneer iets over de hardware verandert.

Eerst, een zeer snel overzicht van HAL. Elk punt van fysieke hardware in een computer wordt beschouwd zoals zijnd een apparatenvoorwerp dat zich door een Uniek Herkenningsteken van het Apparaat (UDI) identificeerde. Verbonden aan elk apparaat is het voorwerp een veranderlijke reeks duidelijk omlijnde getypte zeer belangrijk-waardeparen (of meta-gegevens) geroepen apparateneigenschappen die beschrijven wat elk apparatenvoorwerp samen met zijn eigenschappen vertegenwoordigt. Sommige apparateneigenschappen worden afgeleid uit de daadwerkelijke fysieke hardware, worden wat samengevoegd van xML-Geformatteerde dossiers, die als de Dossiers van de Informatie van het Apparaat worden bekend, en wat worden afgeleid uit de daadwerkelijke apparatenconfiguratie. De verplichte apparateneigenschappen worden bepaald in de specificatie HAL.

EEN HAL

KSH93 uitgebreide Patronen

De aanpassing van het patroon is een belangrijke component van om het even welke moderne shell. Shell ksh93 steunt beide regelmatige uitdrukkingen evenals wat uitgebreide patronen wordt genoemd. De uitgebreide patronen kunnen van als klasse of type van uitgebreide regelmatige uitdrukkingen worden gedacht. Het doel van deze post is, met sommige voorbeelden te verklaren hoe te om de macht van uitgebreide patronen in uw manuscripten te gebruiken ksh93.

JavaScript E4X

In vorige posten, besprak ik SpiderMonkey shell van de bevellijn js en hoe te om steun aan het toe te voegen om volledige gelezen toegang (, schrijf, crer, kopir, schrap, enz.) aan lokale filesystem via het voorwerp van het Dossier en de bibliotheek toe te laten NSPR.

Terwijl het rumaging rond in de broncode en de documentatie voor js, vond ik dat js gedeeltelijk gesteund de EX4 uitbreiding van XML via een gebruikers configureerbare optie.

Deze post bekijkt wat het neemt om een Xml- document te laden in js van uw lokale filesystem, het te verwerken en het resulterende document uit te schrijven aan uw lokale filesystem gebruikend de voorwerpen van het Dossier en de E4X uitbreiding.

ECMAScript voor (E4X) de specificatie XML (van ecma-357) voegt inheemse steun voor voorwerpen XML en voorwerpen XMLList aan de programmeertaal JavaScript toe. Deze norm werd eerst gepubliceerd in 2004 en werd gebaseerd op uitbreidingen XML die in het (nu Oracle) worden verstrekt Weblogic product van de Workshop BEA. Deze uitbreidingen werden ontworpen door Terry Lucas en John Schneider who ECMAScript voor (E4X) initiatief XML leidde.

Het basisidee achter E4X was dat de verklarende talen zoals XSL en XPATH voor de gemiddelde programmeur snel om te complex zijn te leren en daarom was een eenvoudigere manier om Tot xml- documenten toegang te hebben en te manipuleren nodig. Persoonlijk ga ik niet met die bewering akkoord.

Als terloopse opmerking, momenteel is Schneider stichter en CEO in AgileDelta die de Efficinte XML binaire formaatspecificatie ontwikkelde die ik van plan ben om in een toekomstige post ongeveer te schrijven. Een W3C werkgroep momenteel ontwikkelt de specificatie EXI die op de specificatie AgileDelta gebaseerd is.

Het Voorwerp van het Dossier van JavaScript

Aangezien u waarschijnlijk bewust bent verlenen de motoren JavaScript zoals SpiderMonkey typisch geen toegang tot lokale filesystem wegens redenen veiligheid. Ontwikkelaars toelaten om de manuscripten van een bevellijn te testen, js omvat de ladings () functie die u toelaat om n of meerdere manuscripten JavaScript in de motor te laden SpiderMonkey. Nochtans volstaat dit niet voor onze doeleinden aangezien geen middel om aan filesystem wordt verstrekt te schrijven. Dichter bekijkend de broncode, merkte ik steun voor de voorwerpen van het Dossier op. Deze steun wordt niet toegelaten door gebrek nochtans. Het is niet voldoende tot eenvoudig recompile SpiderMonkey met deze toegelaten optie; u moet de Draagbare Runtime van Netscape ook downloaden en bouwen (NSPR) bibliotheek. Deze bibliotheek verstrekt een platform-neutral API voor systeemniveau en libc-als functies, en door een aantal projecten Mozilla en andere ontwikkelaars van de derdesoftware gebruikt. De huidige versie is 4.7.3 en u kunt het hier downloaden.

Er zijn sommige gotchas aan de bouw Spidermonkey met NSPR. Eerst en vooral, moet u NSPR met succes bouwen. De broncode tarball voor NSPR komt met de standaardautoconfigurehulpmiddelen van GNU. Als u op een systeem met 64 bits bent, moet u uitvoeren vormt met - optie toe:laten-met 64 bits; anders zal de bouwstijl snel ontbreken. U zou de bouwstijl dan moeten testen door het gaan naar testsubdirectory, testsuite te bouwen en het uit te voeren. U moet ook Makefile.ref van SpiderMonkey (ik veronderstel u SpiderMonkey 1.7 en niet een vroegere versie) bouwt om te omvatten libnspr en de Nspr- kopballen wijzigen. Twee compileren tijd bepalen zijn nodig. U kunt of JS_HAS_FILE_OBJECT en JS_THREADSAFE in Makefile.ref of als argumenten van de bevellijn bepalen te maken. Na dan u, SpiderMonkey met inheemse de objecten van het Dossier met succes bouwen steun zou moeten kunnen.

Nu wij js hebben met steun voor de voorwerpen van het Dossier bouwen, wat wij met het kan doen. Goed, veronderstel ik wij met het verwachte Hello manuscript van de Wereld zouden moeten beginnen. js> File.output.writeln (Hello Wereld); Hello Wereld ware js> File.output.writeln (Hello, wereld); O.K. Hello, wereld O.K. js> File.output.writeln (Hello, wereld); Hello, wereld js>

Het bericht dat waar is outputted tenzij u iets anders zoals hierboven getoond toevoegt. Hier is een ander kort voorbeeld dat aantoont hoe te om van de eigenschappen van het voorwerp van het instantieDossier voor de huidige folder een lijst te maken. js> dir = nieuw Dossier (`. '); /home/fpm/js/. js> voor (I in dir) druk (I); van de de wegnaam van de lengteouder isDirectory bestaat isFile canRead canWrite canAppend canReplace isOpen type

Korn Shell 93 Stat Builtin

Deze post toont aan hoe te om een loadable stat builtin voor Korn shell 93 te schrijven.