Archiv der Kategorie: Javascript

Windows 8 – neues Feld für Webentwickler

In letzter Zeit bin ich vermehrt im Windows 8 – Umfeld unterwegs. Seit Mitte August gibts die finale Version, die als 90 Tage Evaluierungsversion heruntergeladen werden kann, im Geschäft wird Windows 8 ab dem 26. Oktober stehen. Hab mir auch auf die heimische Kiste Windows 8 als Hauptsystem draufgezogen und kann bisher nicht klagen. Klar, die Metro Windows 8-style UI Modern UI ist arg gewöhnungsbedürftig, aber sonst ist Windows 8 ein rundes System.

Veröffentlicht unter Javascript, misc IT | 3 Kommentare

Javascript in PHP mit der V8-Engine

Googles V8-Javascript-Engine kommt u.a. in Chrome und NodeJS zum Einsatz und ist anerkanntermaßen sauschnell. Umgesetzt wird der Sprachstandard ECMA-262 (5th edition), was aktuell „bleeding edge“ ist. Nun gibt es die Möglichkeit, v8 zu experimentellen Zwecken auch mal aus PHP heraus zu bedienen. Dazu liegt v8js als PECL-Paket vor und kann recht schmerzfrei installiert werden. Aber step by step.

v8js installieren

Habe eben unter Ubuntu 12.04 erfolgreich folgendes Prozedere durchgeführt:

sudo apt-get install php5-dev php-pear libv8-dev build-essential
sudo pecl install pecl install channel://pecl.php.net/v8js-0.1.3
sudo echo extension=v8js.so >>/etc/php5/cli/php.ini

Dabei ist 0.1.3 die derzeit aktuellste v8js-Version, also einfach nachschauen was gerade aktuell ist. Soll auch die Apache-PHP-Version v8 abbekommen:

sudo echo extension=v8js.so >>/etc/php5/apache2/php.ini

Testen tun wir das ganze per phpinfo() bzw. mit

Veröffentlicht unter php, Javascript, webdev | 1 Kommentar

Javascript String Replace ohne Regex

Wer eine einfache Variante zum String Replacement benötigt, kann entweder den Regex-Weg gehen (siehe Nachbildung der PHP-Funktion str_replace), oder einen schnuckeligen Trick anwenden:

alert("Finde mich".split("Finde").join("Replace"));

Den String zum Array am Suchwort zerlegen und dann mit dem Ersatz das Array wieder zusammenfügen. Brauchte letztens eine Quick&Dirty-Lösung, um Zahlen des Formats 600.000,54 in das Javascript geläufige Zahlenformat 600000.54 zu überführen, also Dezimalpunkte raus und Komma durch Punkt ersetzen. Gemacht habe ich es so:

var num = "600.000,54".split(".").join("").split(",").join(".");

Gewinnt sicher keinen Schönheitspreis, die innovative Verwendung von join und split gefielen mir dann aber doch zu gut ;).

Veröffentlicht unter Javascript, Quicktips, webdev | 4 Kommentare

Appentwicklung mit Webtechniken – Appcelerator Titanium

Apps sind zur Zeit in aller Munde. Bekanntlich gibt es mit Android und iOS mal mindestens 2 ernst zu nehmende Plattformen, auf denen man in der Regel vertreten sein möchte. Heißt: Zwei mal dasselbe programmieren, einmal in Java und einmal in Objective C. Das muss nicht sein. Mit dem Cross Platform Framework Appcelerator Titanium wird die Entwicklung in Javascript vorgenommen – nebst Zugriff auf die Gerät-APIs wie Kamera, Beschleunigungsmesser, GPS und allem Klimbim. Nur am Rande: Titanium ist kein kleines Nebenprojekt eines gelangweilten Studenten. Ein paar Millionen Apps sind damit schon erstellt worden, u.a. auch das fies gehypte Wunderlist.

Veröffentlicht unter Javascript, webdev | 4 Kommentare

Chrome Dev Tools: Insidertipps

Chromes Version von Firebug hat sich ordentlich gemausert. Inspiriert durch dieses Video gibts hier nun also ein paar nicht so bekannte Features der Devtools.

Konsole überall einblenden

In jedem Panel der Devtools lässt sich mittels Druck auf ESC die Konsole hochfahren und so simultan arbeiten.

Konsole hochfahren

Konsole hochfahren

Weitere Shortcuts gibts hier.

Die Funktionen dir() und copy()

Bekanntlich lässt sich durch Eingabe des DOM-Elements in die Konsole das HTML dazu selektiv anzeigen (siehe Bild oben: document.body). Mittels der Funktion dir() lässt sich eine weit detailliertere Auflistung anzeigen, die u.a. auch Event Handler anzeigt:

Veröffentlicht unter Javascript, webdev | 7 Kommentare

Best-of-the-Web 7

Und erneut gibt es Link-Spaß für die ganze Familie.

Veröffentlicht unter php, Javascript, Software Engineering, Best of the Web, webdev | Hinterlasse einen Kommentar

Javascript: Arrays kopieren

Banale Aufgabe: Erstelle eine unabhängige Kopie von einem Javascript-Array. Was erstmal billig klingt entpuppt sich für unwissende, PHP verwöhnte Entwickler doch als tricky.

var colors = ["red", "blue", "green"];
var copied = colors;

copied[0] = "magenta";

console.log(colors); //["magenta", "blue", "green"]
console.log(copied); //["magenta", "blue", "green"]

In diesem Beispiel sehen wir also, dass die vermeintliche Kopie eigentlich das gleiche Element ist. Gleiches gilt entsprechend für das Übergeben eines Arrays als Parmeter an eine Funktion.

var colors = ["red", "blue", "green"];

test(colors);
console.log(colors); //["magenta", "blue", "green"]

function test(arr)
{
	arr[0] = "magenta";
}

Offensichtlich nicht wie von PHP gewohnt By Value sondern By Reference.

Ja und wie geht es nun?

Enter Array.slice. Damit lassen sich wirkliche Kopien erstellen.

var colors = ["red", "blue", "green"];
var colorscopy = colors.slice(); //or colors.slice(0, colors.length);

colorscopy[0] = "magenta";

console.log(colors); //["red", "blue", "green"]
console.log(colorscopy); //["magenta", "blue", "green"]

Tada! Als Alternative könnte man sich auch selbst was zusammenbasteln, etwa so:

for (var i in original) {
	copy[i] = original[i];
}

Veröffentlicht unter Javascript, webdev | 6 Kommentare

Reingefallen: Wie man sich auf Facebook „Likes“ erschleicht

Ich dachte eigentlich, immun gegen so billige Spielchen zu sein. Aus dem „Ich weiß schon, wo ich hinklicke“-Grund hatte ich auch lange Zeit keinen Virenscanner drauf und fuhr eigentlich immer gut. Gestern hat michs jedoch erwischt – auf Facebook. Also jetzt nicht so richtig erwischt, aber ich habe ein Video geliked, ohne es zu wollen. Erbost ging ich der Sache auf den Grund und war ziemlich schockiert über diese miese Praktik. Aber der Reihe nach.

Veröffentlicht unter Javascript, misc IT, Persönlich | 82 Kommentare

Zip-Archive entpacken mit Javascript

Unzippen mit Javascript? Wer sollte sowas wollen? Egal! Es geht, reicht das als Begründung? Und das garnicht mal so schlecht. Wie üblich schmeiße ich gleich mit Code um mich:

<script src="ZipFile.complete.js"></script>
<script>
var zipFile = new ZipFile("zipfile.zip", readingDoneCallback);

function readingDoneCallback(zip)
{
	console.log("Zipfile reading finished! " + zip.entries.length + " files found in zip");
	
	for (var i = 0; i < zip.entries.length; i++)
	{
		zip.entries[i].extract(extractCallback);
	}
};

function extractCallback(entry, entryContent) 
{
	var filename = entry.name,
		csize = entry.compressedSize,
		ucsize = entry.uncompressedSize;
	
	console.log("File " + filename + " - comp.: " + csize + ", uncomp.: " + ucsize + "byte");
	console.log("File-Content: " + entryContent);
}
</script>

Simpler Aufbau, logische Implementierung. Alles was zu dieser Magie nötig ist, ist eine 64KB große Javascript-Datei, die auf Binärebene fleißig Bytes umhershiftet.

js-unzipping

js-unzipping

Geht nur mit handelsüblichen Zip-Dateien und auch nur entpacken ist möglich. Die Originalquelle der Library ist diese, eine Readme zur Library gibts auch. Das Ganze ist vollkommen unabhängig von jQuery oder anderen JS-Libraries. Übrigens war der Initiator eine Frage auf Stackoverflow, die der gute Herr Dino Chiesa zum Anreiz genommen hat, da „mal eben was zu schreiben“ ;).

Veröffentlicht unter Javascript, Quicktips, webdev | 7 Kommentare

Java Applet Tutorial: Applet erstellen, einbinden und mit Javascript ansprechen

Wenn ich an Java Applets denke, ist damit immer ein verstaubtes Web 1.0 – Bild assoziiert, gepaart mit animierten gifs und anderen Schandtaten. Heutzutage haben die Applets ihre Nische gefunden und werden vor allem da benutzt, wo Javascript noch zu langsam / umständlich ist, bspw. mathematische Zwecke. Wir widmen uns dem Thema mal ganz von vorne. Selbst wenn keine Javakenntnisse bestehen, soll man also noch gut folgen können. Soweit der Plan.

Veröffentlicht unter Javascript, webdev, Java | 15 Kommentare