to: streng@mayflower.de cc: schotte@mayflower.de hallo Herr Streng, Ihr Kollege Bjoern Schotte gab unter anderem ueber die [small-cms]- Mailingliste folgende(s) Jobangebot(e) bekannt: > [...] > > Für unseren Kunden Sixt, [...] suchen wir JavaScript-Spezialisten mit > robusten PHP-Kenntnissen (Schwerpunkt liegt auf JavaScript). Robust > bedeutet hier, dass die Grundlagen von PHP da sind sowie regelmäßige > Entwicklung mit PHP durchgeführt wurde; ein Verständnis oder gar Faible > für XML erwarten wir ebenfalls. Es erwartet dich eines der spannendsten > Projekte im Umfeld von Mozilla und XUL. [...] Wende dich an Gregor Streng, > oder unter 089/23249712. > Arbeitsort: Pullach bei München. Arbeitsdauer: mehrere Monate. [...] > > [...] > -- > ThinkPHP / Mayflower GmbH schotte@mayflower.de > Sedanstraße 27 Tel: 0931 / 78 43 804 > 97082 Würzburg Fax: 0931 / 78 43 795 > * http://www.thinkphp.de/ * http://blog.rent-a-phpwizard.de/ Leider bin ich familiaer und arbeitsmaessig zu sehr gebunden, um flexibel genug auf die Offerte, mehrere Monate vor Ort in Muenchen zu arbeiten, reagieren zu koennen. Dafuer entspreche ich Ihren Anforderungen an einen, kreativ und sauber, aber keineswegs dogmatisch programmierenden JavaScript- Spezialisten - kreativ und undogmatisch, da ich z.b. die Heraus- forderungen liebe, vor die man bei der Beruecksichtigung des weitgefaecherten DOM-Zoos gestellt ist - sauber programmierend, da ich modular und vollstaendig objektorientiert arbeite. XML ist fuer mich kein Fremdwort, da ich auch schon eigene DTDs und XSL-Transformationen geschrieben habe. Ausserdem beschaeftige ich mich seit kurzen mit der mozilla-Plattform als Basis fuer "rapid prototyping". Auch wenn ich fuer den ausgeschriebenen Job nicht in Frage komme, moechte ich Ihnen mein Wissen zur Verfuegung stellen, einfach auch, um eine Rueckmeldung zu bekommen, ob die von mir geschriebenen proto- typischen Erweiterungen der javascript-API auch bei umfangreicheren Projekten, wie dem Ihren, einsetzbar oder eben doch eher von akade- mischer Natur sind. mit freundlichem gruss - Peter Seliger - (peterS. - pseliger@gmx.net) fyi - bis jetzt stehen folgende methoden zur verfuegung: modul "jsApi.Object.typeDetection.js" - - die globalen funktionen: isUndefined(/*obj*/); isNull(/*obj*/); isNative(/*obj*/); isAlien(/*obj*/); isNode(/*obj*/); isBooleanPrimitive(/*obj*/); isStringPrimitive(/*obj*/); isNumberPrimitive(/*obj*/); isBooleanObject(/*obj*/); isStringObject(/*obj*/); isNumberObject(/*obj*/); isInteger(/*obj*/); isFraction(/*obj*/); isPrimitive(/*obj*/); isObject(/*obj*/); isDate(/*obj*/); isError(/*obj*/); isRegExp(/*obj*/); isFunction(/*obj*/); isArray(/*obj*/); isObjectObject(/*obj*/); isConstructedObject(/*obj*/); isEmpty(/*obj*/); - die objekt-methoden: Object.isEmpty(); Function.isEmpty(); Object.getConstructorName(); Object.getObjectType(); modul "jsApi.Object.toSource.js" - ("toSource" ist in msie/opera gar nicht und in mozilla meiner meinung nach nicht konsistent genug implementiert) - die helfer-methoden: String.toRegExpString(); String.quote(); - die objekt-methoden: Boolean.toSource(); Number.toSource(); String.toSource(); RegExp.toSource(); Date.toSource(); Error.toSource(); Function.toSource(); Array.toSource(); Object.toSource(); - die globale funktion: toSource(/*obj*/); modul "jsApi.Object.dump.js" - - die objekt-methode: Object.dump(); - die globale funktion: dump(/*obj*/); modul "jsApi.Object.equals.js" - (identitaet ODER aequivalenz) - die objekt-methode: Object.equals(); modul "jsApi.Object.clone.js" - (komplett bzw. unvollstaendig) - die objekt-methode: Object.clone(/*(shallowCloneLevel)*/); modul "jsApi.Array.contains.js" - - die array-methoden: Array.contains(/*obj*/); Array.indexOf(/*obj*/); Array.lastIndexOf(/*obj*/); modul "jsApi.Array.normalize.js" - - die array-methoden: Array.normalize(); Array.getNormalized(); modul "jsApi.Array.shuffle.js" - - die array-methoden: Array.shuffle(); Array.getShuffled(); modul "jsApi.Array.setMethods.js" - (abgeleitet aus der naiven mengenlehre) - die array-methoden: Array.isSubsetOf(/*arr*/); Array.isRealSubsetOf(/*arr*/); Array.isSupersetOf(/*arr*/); Array.isUniverseOf(/*arr(,arr,arr,...)*/); Array.merge(/*arr*/); Array.getMerger(/*arr*/); Array.intersect(/*arr*/); Array.getIntersection(/*arr*/); Array.isDisjoint(/*arr*/); Array.diff(/*arr*/); Array.getDifference(/*arr*/); Array.symmDiff(/*arr*/); Array.getSymmetricDifference(/*arr*/); Array.complement(/*arr(,arr,arr,...)*/); Array.getComplement(/*arr(,arr,arr,...)*/); Array.isComplementOf(/*arr,arr(,arr,arr,...)*/); modul "jsApi.String.trim.js" - - die string-methoden: String.leftTrim(); String.rightTrim(); String.basicTrim(); String.superTrim(); String.removeWhiteSpaces(); modul "jsApi.NumberString.flexibleConverting.js" - - die string-/number-methoden: String.forceNumber(); Number.round(/*(decimalPlaces)*/); String.round(/*(decimalPlaces)*/); Number.fixedDigits(/*(decimalPlaces,(comma,(block1000)))*/) String.fixedDigits(/*(decimalPlaces,(comma,(block1000)))*/) Number.formatNumberLike(/*pattern*/); String.formatNumberLike(/*pattern*/); modul "jsApi.String.charCodes.js" - - die string-methoden: String.toUnicode(); /*to hexadecimal based unicode*/; String.toHtmlEntity(/*(10|16|"hex"|"dec"|"name")*/); modul "jsApi.Object.selfReferences.js" - (fuer eventabhaengige objektorientierte DHTML-GUIs) - die objekt-eigenschften/-methoden: Object.selfReferences = []; Object.selfReferences.isFragmented(); Object.selfReferences.defragment(); Object.setSelfReference(); Object.getSelfReference(); Object.removeSelfReference();