Micro-Optimization: Bilder schrumpfen lassen oder direkt “einbetten”

image.png

Ich bastel gerade am “CodeInside Dashboard” und da die Seite äusserst einfach gestrickt ist, sollte es doch möglich sein alle Empfehlungen von Google Pagespeed bzw. Yahoos YSlow einzuhalten. Ein Punkt dabei war, dass die 4 PNGs die auf der Seite eingebunden waren optimiert werden konnten.

Vorher – ohne Optimierung:

Zu sehen ist hier der komplette Seitenaufruf mit allen Requests die danach komen. Darunter ist das Logo sowie die Personenbilder:

image

Durch diesen Blogpost bin auf den Dienst “Tinypng.org” aufmerksam geworden und hab die drei Personenbilder mal da durchgejagt:

image

Das Logo habe ich ebenfalls verkleinert:

image

Da das Logo auf mehreren Seiten vorkommen kann und ich dem Browser den zusätzlichen Request ersparen möchte, verlinke ich das Bild so:

<img alt=”Logo” height=”125″ width=”350″ src=”data:image/png;base64,…

Damit ist das gesamte Bild direkt in der Seite eingebettet und es braucht nur noch ein HTTP Request.

Nach der Optimierung:

image

Von 234kb auf 182kb und ein paar Millisekunden eingespart. Kein grosse Sache, aber in Zeiten von “Mobile First” sollte man wieder genauer hinschauen was über die Leitung geht.

Read more

Fix: FeedBurner “Your feed filesize is larger than 576K.”

image.png

Während des Domain-Umzugs und des WordPress Updates gab es plötzlich ein Problem bei FeedBurner: “Your feed filesize is larger than 576K. You need to reduce its size in order for FeedBurner to process it. Tips for controlling feed file size with Blogger can be found in Tech Tips on FeedBurner Forums, our support site.” Über […]

Read more

Umzug auf Windows Azure – VMs, WordPress Migration, DNS Änderungen

image.png

Seit ca. 2 Wochen läuft dieser Blog auf einer WordPress Installation in einer Azure VM. Da ich mir das Thema erst recht kompliziert vorgestellt hatte, hier mal ein Blick hinter die Kulissen. Warum umziehen? Bislang lief dieser Blog (und die englischsprachige Variante) bei einem Hoster irgendwo in Deutschland. Grösstes Problem war aber, dass der Hoster […]

Read more

Pagespeed, Content-Encoding: gzip header und ein Proxy

image.png

Ich hatte heute kurz mit dem Performance Addon “Pagespeed” eine Seite analysiert. Die Seite läuft auf Windows Azure Website, nutzt ASP.NET und das dazugehörige Bundling Framework und ist eigentlich nur eine statische Seite. Größter Kritikpunkt von Pagespeed: Kompression der Seite fehlt Huh? Eigentlich bin ich davon ausgegangen, dass die Seite automatisch “ge-gzipt” wird wenn der […]

Read more

Fix: Entity Framework Code First: “The model backing the ‘FooDbContext’ has changed…”

Das Entity Framework Code First Model ist recht praktisch um eine kleine Datenbank schnell zu designen. Allerdings steckt etwas Magic (naja – Untertreibung – da steckt viel dunkles Yuyu und Voodoo) darin. Das EF-Model überprüft ob die Datenbank noch dazu passt und falls nicht gibt es verschiedenen Strategien. Die einfachste Strategie ist es immer die […]

Read more

Fix: Entity Framework Many-To-Many SqlException mit “FOREIGN KEY constraint…”

image.png

Enity Framework M zu N oder “Many-To-Many”: Eine simple M zu N Beziehung mittels Entity Framework Code First zu definieren ist ziemlich trivial: 1: public class DemoContext : DbContext 2: { 3: public DbSet<User> Users { get; set; } 4: public DbSet<Group> Groups { get; set; } 5: } 6:  7: public class User 8: […]

Read more

Windows Azure Active Directory – CRUD für Users und Groups

image.png

Die Authentifizierung am Windows Azure Active Directory haben wir sowohl bereits mit dem Tooling als auch via Code gesehen. Heute geht es darum, wie man Daten lesen und sogar auch schreiben kann. Windows Azure Active Directory? Wer keine Ahnung von der Begrifflichkeit hat, dem empfehle ich ebenfalls die beiden vorangegangen Blogposts oder schaut einfach auf […]

Read more

Einstieg in SignalR 2.0 & Azure Website Websockets

image.png

SignalR ist ein Open Source Framework für Real Time WebApps. Das größte Problem am Real-Time im Web ist der Kanal zwischen Browser und Server. Wer noch nie was mit SignalR und den Problemstellungen zu tun hatte, hier ein paar Eckpunkte: Das Problem Traditionell initiert der Browser den Request zum Server und der Server schickt eine […]

Read more

Up For Grabs – OSS wants you!

image.png

Es gibt heute unzählige Open Source Projekte und glücklicherweise nimmt das Thema auch in der .NET Welt an Fahrt auf. Doch wie beteiligt man sich denn am besten an einem Open Source Projekt? Die Seite “up-for-grabs.net” listet .NET OSS Projekte auf, welche “Hilfe” gern entgegennehmen und kleine Aufgaben zur Verfügung stellen. Die Aufgaben sollten in […]

Read more

Windows Azure Active Directory & ASP.NET Tooling: Ein Blick hinter die Kulissen

image.png

Wer im neuen Visual Studio ein ASP.NET Projekt erstellt, bekommt den neuen “One ASP.NET” Dialog zu sehen. Dieser hilft die verschiedenen ASP.NET Frameworks zu kombinieren und zudem erlaubt er es direkt einen Authentifizierungsprovider zu wählen. Doch was macht dieses Tooling eigentlich? Schritt für Schritt: Die neue Projektvorlage für ASP.NET Projekte ist wesentlich aufgeräumter als früher: […]

Read more

Letzte Posts

  • image.png
    Azure AppInsights: Ein mini Google Analytics für Websites

    Seit der Build Konferenz ist das neue Azure Portal für alle freigeschaltet. Durch das neue Portal ist mir ein “Dienst” aufgefallen, den ich bisher nicht gesehen hatte: Azure Application Insights Viel weiss ich nicht über den Dienst, aber wer eine Azure Website hat der sollte mal die “Analytics” Box öffnen. Im Grunde handelt es sich […]

  • image.png
    Source Code veröffentlichen – aber bitte mit Lizenz

    Seit es den Blog gibt wird auch meist der gesamte Demo Source Code mit veröffentlicht. Das Ganze hatte ich am Anfang noch als .zip verteilt, später lag es mal auf Google Code und nun liegen alle Samples und sonstige Sachen auf GitHub. Beim letzten User Group Treffen in Zürich mit dem Titel “Open Source: Get […]

  • Fix: Cannot convert from ‘CConnectProxy::_ComMapClass *’ to ‘AddInDesignerObjects::IDTExtensibility2 *’

    Mal einen etwas esoterischer Blogpost, welcher auftaucht wenn man zu viel mit Office Addins rumspielt. Der Fehler passiert beim Bauen von C++ Projekten, welchen diesen Typ benötigen. Lösung (auf 64bit Systemen): C:\Program Files (x86)\Common Files\DESIGNER>regsvr32 MSADDNDR.DLL And Rebuild. Meine lieben Kollegen hatte mir dies schon mehrfach gesagt, allerdings hatte ich es immer wieder vergessen Das […]

  • Gegen das Gesetz verstoßen: X Jahre Haft. Gegen die Terms of Use verstoßen: Bann auf Lebenszeit. Danke Google & co.

    Bei fast allen Diensten die man im Internet nutzen kann muss man den “Terms of use” zustimmen. Völlig logisch dass da natürlich drin steht was erlaubt und was nicht. Wenn man gegen diese Regelungen verstößt hat das Unternehmen natürlich das Recht etwas dagegen zu unternehmen. In der heutigen Welt beherrschen einige wenige Unternehmen die digitale […]

  • image.png
    RSS Feed samt Kommentaranzahl und andere nicht Standard Elemente mit dem SyndicationFeed auslesen

    Jetzt mal ein Blogpost ohne ein fancy NuGet Package: Seit .NET 3.5 gibt es die SyndicationFeed Klasse. Eine schon etwas ältere API, reicht aber aus um Atom bzw. RSS Feeds zu lesen. In diversen RSS Feeds gibt es aber Erweiterungen, welche man natürlich auch auslesen möchte. So gibt WordPress z.B. auch die Anzahl der geposteten […]

Amazon Shop

Facebook