HipHop für PHP

Der Schleier wurde gelüftet: Facebook hat mit »HipHop« einen Source Code Umwandler veröffentlicht, der PHP-Code in höchst-optimierten C++ Code konvertiert. Dieser wiederum wird dann mit g++ kompiliert um maximale Performance zu erreichen.

Bei Facebook brachte der Einsatz von HipHop eine durchschnittliche Reduzierung der CPU-Auslastung um 50% – natürlich abhängig von der jeweiligen Seite. Für Facebook bedeutet weniger CPU-Last weniger Server – und damit weniger Kosten. Aber natürlich bedeutet weniger Auslastung auch weniger Energieverbrauch.

In seinem Blog-Beitrag schreibt Haiping Zhao »We are proud to say that at this point, we are serving over 90% of our Web traffic using HipHop, all only six months after deployment.

How HipHop Works
The main challenge of the project was bridging the gap between PHP and C++. PHP is a scripting language with dynamic, weak typing. C++ is a compiled language with static typing. While PHP allows you to write magical dynamic features, most PHP is relatively straightforward. It’s more likely that you see if (…) {…} else {..} than it is to see function foo($x) { include $x; }. This is where we gain in performance. Whenever possible our generated code uses static binding for functions and variables. We also use type inference to pick the most specific type possible for our variables and thus save memory.

[…]

Overall HipHop allows us to keep the best aspects of PHP while taking advantage of the performance benefits of C++. In total, we have written over 300,000 lines of code and more than 5,000 unit tests. All of this will be released this evening on GitHub under the open source PHP license.

Der ganze Artikel (englisch) im Facebook Blog: http://developers.facebook.com/news.php?blog=1&story=358

YUI 3.0 veröffentlich

Das YUI Team veröffentlicht die produktionsreife Version 3.0 der YUI Bibliotheken (Core, Node, Event, Animation, IO, Drag & Drop und weitere). Version 3 ist eine komplette Überarbeitung (die erste seit 2005) und bringt eine Vielzahl an Verbesserungen mit sich.

YUI 3 is the first ground-up redesign of YUI since 2005, and it brings with it a host of modernizations:

  1. Selector-driven: YUI 3 is built around one of the lightest, fastest selector engines available, bringing the expressive power of the CSS selector specification into actions that target DOM nodes.
  2. Syntactically terse: Without polluting the global namespace, YUI 3 supports a more terse coding style in which more can be accomplished with less code.
  3. Self-completing: YUI 3’s light (6.2KB gzipped) seed file can serve as the starting point for any implementation. As long as this seed file is present on the page, you can load any module in the library on the fly. And all modules brought into the page via the built-in loader are done so via combo-handled, non-blocking HTTP requests. This makes loading the library safe, easy and fast.
  4. Sandboxed: YUI modules are bound to YUI instances when you use() them; this protects you against changes that might happen later in the page’s lifecycle. (In other words, if someone blows away a module you’re using after you’ve created your YUI instance, your code won’t be affected.)
    The code we’re shipping today in 3.0.0 is the same code that drives the new Yahoo! Home Page, and it goes out with confidence that it has been exercised vigorously and at scale. The team is thrilled to be sharing it with you today for the first time in a production-ready release.

Websites in verschiedenen IE-Versionen überprüfen

Mit dem »Microsoft Expression Web SuperPreview für Windows Internet Explorer« soll man die so genannte »cross-browser compatibility« – also die Darstellung einer Site in verschiedenen Browsern (oder verschiedenen Versionen eines Browsers) – testen können. Microsoft stellt für den Internet Explorer ein solches Tool kostenlos zum Download bereit. Erfordert aber das .NET Framework (Version 3.5).

Die Installation ist etwas langsam und das Tool an sich auch. Größere Sites kann es nicht korrekt darstellen. Faiz: Nicht wirklich hilfreich.

Microsoft-Expression-Web-SuperPreview-EINSTIEG-450.png

Microsoft-Expression-Web-SuperPreview-DVGW-450.png

Einführung in HTML 5 (Video)

Im Google Code Blog wurde ein Video (unten eingebettet oder auf Youtube) veröffentlicht, das in einer knappen dreiviertel Stunde auf HTML5 eingeht und beschreibt, was dabei an großen Neuerungen und Änderungen zu erwarten ist. Das sind unter anderem die Themen

  • Web vector graphics with the Canvas tag and Scalable Vector Graphics (SVG)
  • The Geolocation API
  • HTML 5 Video
  • The HTML 5 Database and Application Cache
  • Web workers

SourceForge Redesign – »die Dritte«?

Wiederholt hat die Open-Source-Hosting-Plattform SourceForge ein Redesign vorgenommen. Diesmal aber die komplette Website. Das alte, sehr dunkle und unübersichtliche wurde gegen ein frisches – aber auch beliebigeres – Design ersetzt. Insgesamt hat das ganze gewonnen, Kategorien, populäre Projekte und Detailseiten sind übersichtlicher einfacher zu erreichen.

Für mich eine Mischung aus Skype, GitHub und jQuery.

Schöner Debuggen: »prettyPrint« für JavaScript

James Padolsey bietet mit »prettyPrint« eine art Variablen-Dumper für javaScript an (so in der Art wie JavaScript Dump:

»prettyPrint« is an in-browser JavaScript “variable dumper” similar to ColdFusions’s cfdump. It enables you to print out an object of any type in table format for viewing during debugging sessions. In combination with Firebug, »prettyPrint« will make you the best-equipped JavaScript debugger on earth! (not guaranteed)

Some of its key features:

  • Entirely independent. It requires NO StyleSheets or images.
  • Handles infinitely nested objects.
  • All native JavaScript types are supported plus DOM nodes/elements!
  • Protects against circular/repeated references.
  • Allows you to specify the depth to which the object will be printed.
  • Better browser users benefit from gradient column-headers! Thanks to HTML5 and CANVAS!
  • Allows low-level CSS customisation (if such a thing exists).
  • Fully validated with JSLint!

Google Page Speed

Google Page Speed, eine Erweiterung für Firefox und Firebug, soll Webseiten schneller machen und ist als als Open Source verfügbar.

Google veröffentlicht mit Page Speed eine Firefox-Erweiterung, die Web-Designern und -Entwicklern helfen soll, die Ladezeiten ihrer Seiten zu verringern. Dabei geht Page Speed allerdings einen Schritt weiter als andere, ähnliche Firefox-Erweiterungen.
Bislang kam Page Speed nur bei Google intern zum Einsatz. Die Firefox-Erweiterung bettet sich in Firebug ein und schlägt beim Laden von Webseiten Maßnahmen zu deren Optimierung vor. Dabei optimiert Page Speed beispielsweise automatisch die verwendeten Bilder und stellt eine komprimierte Version zur Verfügung, die direkt in der Webseite verwendet werden kann.

(Via Golem.de)

Mozilla Jetpack: Firefox Extensions with Added Thrust

Mozilla Jetpack: Firefox Extensions with Added Thrust: „Jetpack is a new experimental project from Mozilla that could revolutionize how Firefox browser extensions are built and deployed.

[…]

Jetpack’s primary aim is to make extension development and delivery even easier:

  • HTML, CSS and JavaScript will be the only tools required. If you can code for the web, you can create a Jetpack widget.
  • Extensions will be streamed and accessed from a URL.
  • You can develop code directly in the browser using Bespin.
  • Installation and debugging is handled without restarting and uses common tools such as Firebug.
  • A lightweight and versioned API is provided.
  • An extendable set of toolkits and API libraries such as jQuery, Google Maps, Twitter and Delicious will be available.
  • An about:jetpack page shows installed extensions, source code, memory use and other useful tools.

Jetpack is available as a standard Firefox add-on which can be installed from the project page.

(Via SitePoint Blogs.)

Coding-Werkzeuge: Die 10 nützlichsten Browser-Erweiterungen für Web-Entwickler

Aus einem Artikel aus dem T3N Weblog über »Coding-Werkzeuge: Die 10 nützlichsten Browser-Erweiterungen für Web-Entwickler« möchte ich unsere Favoriten zitieren und Webkit ergänzen:

Aardvark

Das Addon Aardvark für Firefox bietet Werkzeuge zur Seitenanalyse via Kontextmenü. Einzelne Seitenelemente lassen sich beispielsweise isolieren oder entfernen. Das ist auch für den „Normalnutzer‘ interessant: Auf diese Weise kann man zum Beispiel ungewünschte Seitenelemente wie Banner oder andere Bildelemente weglassen, um eine Seite für den Ausdruck zu optimieren.

ColorZilla

Mit ColorZilla lassen sich über ein Fadenkreuz Farbwerte auf Webseiten auslesen. Auch Abstandmessungen zwischen zwei Pixeln, Seitenzoom und verschiedenen Farbpaletten gehören zum Leistungsumfang der Erweiterung für Firefox und SeaMonkey.

CSS Validator

Die Firefox-Extension CSS Validator überprüft Webseiten auf Konformität mit dem W3C CSS Standard.

CSSViewer

Mit dem CSSViewer lassen sich die CSS-Attribute zu Elemeten einer HTML-Seite anzeigen.

Dafizilla ViewSourceWith

Die Erweiterung Dafizilla ViewSourceWith läuft mit den meisten Mozilla-basierten Anwendungen wie Firefox, Thunderbird, SeaMonkey, Songbird oder Flock. Sie ermöglicht die Anzeige von Quelltexten, Grafiken und externen CSS-/JavaScript-Dateien mit der bevorzugten Anwendung.

Firebug

Firebug gehört sicherlich zu den bekannteren Erweiterungen für den Firefox. Sie hilft Web-Entwicklern beim Debuggen ihrer Websites und Web-Applikationen. Mit Firebug Lite stehen wichtige Features auch für den Internet Explorer, Opera und Safari zur Verfügung

LinkChecker

Alle Links auf einer Website werden mit der Firefox-Erweiterung LinkChecker auf ihre Gültigkeit überprüft und entsprechend farblich gekennzeichnet.

Web Developer

Die Web Developer Erweiterung gibt es für Firefox, Flock und SeaMonkey. Sie fügt dem Browser ein Menü und eine Toolbar mit verschiedenen Tools für Webentwickler hinzu.

Webkit

Mit dem Safari zu Grunde liegenden Webkit lässt sich auch einiges machen. Ein guter Artikel darüber steht auch hier im Webkit-Blog.

(Via t3n.yeebase.com – Open Source, Web & TYPO3.)