From a5d64c1d80555a9b6923273396eafe62bbe6962f Mon Sep 17 00:00:00 2001 From: Stefan Koelle Date: Sun, 16 Aug 2026 20:57:07 +0200 Subject: [PATCH] SEO 2 --- content/posts/alt-net-energien.md | 2 +- content/posts/asp-mvc-2.md | 2 +- content/posts/async-refactored.md | 4 +- content/posts/async.md | 8 +-- content/posts/barcamp-bodensee-2010.md | 2 +- .../clean-code-developer-yellow-brick-road.md | 2 +- content/posts/design-by-contract-teil2.md | 2 +- content/posts/dotnet-openspace-sued-2009.md | 4 +- content/posts/mvp-winforms.md | 4 +- content/posts/programmierer.md | 2 +- content/posts/softwarezellen.md | 2 +- content/posts/stupiddb2.md | 2 +- content/posts/webcamps.md | 10 ++-- layouts/_default/baseof.html | 51 +++++++++++++++++-- 14 files changed, 71 insertions(+), 26 deletions(-) diff --git a/content/posts/alt-net-energien.md b/content/posts/alt-net-energien.md index 0547d02..ae7c1b6 100644 --- a/content/posts/alt-net-energien.md +++ b/content/posts/alt-net-energien.md @@ -1,5 +1,5 @@ --- -title: "Gibt es negative Energien in der deutschen ALT.NET Bewegung?" +title: "Negative Energien in der ALT.NET Bewegung?" date: 2009-08-26 slug: alt-net-energien original_url: "https://aztec-project.org/blog/alt-net-energien.html" diff --git a/content/posts/asp-mvc-2.md b/content/posts/asp-mvc-2.md index 1739dbb..ac9583c 100644 --- a/content/posts/asp-mvc-2.md +++ b/content/posts/asp-mvc-2.md @@ -1,5 +1,5 @@ --- -title: "ASP.MVC 2 – Vortrag von Albert bei münchener UserGroup" +title: "ASP.MVC 2 – Vortrag bei münchener UserGroup" date: 2009-10-30 slug: asp-mvc-2 original_url: "https://aztec-project.org/blog/asp-mvc-2.html" diff --git a/content/posts/async-refactored.md b/content/posts/async-refactored.md index 387a9bf..8794c79 100644 --- a/content/posts/async-refactored.md +++ b/content/posts/async-refactored.md @@ -1,5 +1,5 @@ --- -title: "Asynchrone Kommunikation mit dem Async-Pattern (Refactored)" +title: "Async-Pattern (Refactored)" date: 2010-05-06 slug: async-refactored original_url: "https://aztec-project.org/blog/async-refactored.html" @@ -144,7 +144,7 @@ return number \* number; ## Kommentare (Archiv) -1. **[Ralf Westphal](http://ralfw.blogspot.com/)** +1. Avatar **[Ralf Westphal](http://ralfw.blogspot.com/)** [Mai 6, 2010 um 3:02 pm](/posts/async-refactored/) diff --git a/content/posts/async.md b/content/posts/async.md index ac444bd..9c638ef 100644 --- a/content/posts/async.md +++ b/content/posts/async.md @@ -1,5 +1,5 @@ --- -title: "Asynchrone Kommunikation mit dem Async-Pattern" +title: "Kommunikation mit dem Async-Pattern" date: 2010-05-05 slug: async original_url: "https://aztec-project.org/blog/aync.html" @@ -22,7 +22,7 @@ Im Gegensatz zur synchronen Kommunikation handelt es sich bei der asynchronen Ko Asynchrone Kommunikation bietet sich in unterschiedlichsten Situationen an. So ist es z.B. sinnvoll, dass eine WinForms-Anwendung asynchron mit einem Webservice kommuniziert, da der Haupt-Thread der WinForm-Anwendung sonst so lange blockiert wäre, bis der Webservice die Antwort auf die Anfrage liefert. Die Folge wäre, dass im Titel der Anwendung stehen würde, dass die Anwendung nicht antwortet (s. Abbildung 1). Viele Benutzer denken dass es sich bei dieser Meldung um einen Fehler im Programm handelt und beenden das Programm fix über den Task-Manager. Dabei lag es nur an der etwas länger dauernden Kommunikation zwischen der WinForm-Anwendung und dem Webservice. -[](/images/async/keineRueckmeldung.png) Abbildung 1 +[keineRueckmeldung](/images/async/keineRueckmeldung.png) Abbildung 1 Ein weiterer Grund für eine asynchrone Kommunikation wäre, wenn eine Anwendung nur Nachrichten verschicken möchte und es im Grunde keine Rolle spielt, ob diese Nachricht korrekt verarbeitet wurde. Vorstellbar wäre hier Loggen von Aktionen. Mir wäre es jetzt egal, ob die Nachricht korrekt gespeichert wurde oder nicht. Ich will nur nicht, dass meine Anwendung, nur weil Daten geloggt werden müssen, langsamer wird. Es handelt sich ja bei den Log-Daten nicht um Informationen die für die Abarbeitung notwendig sind. @@ -36,7 +36,7 @@ Nun aber genug geredet, jetzt wird programmiert. Für das Beispiel habe ich mich Die Abbildung 2 zeigt die UI der Anwendung. Bei dem Drücken des „Run“-Buttons, soll die eingegebene Zahl asynchron quadriert werden und im Anschluss in das Feld „Ergebnis“ ausgegeben werden. -[](/images/async/Form1.png)Abbildung 2 +[Form1](/images/async/Form1.png)Abbildung 2 Der Code hinter der UI sieht folgendermaßen aus. Beim instanziieren des Forms, wird eine Instanz des Calculators erstellt und ein Delegate auf das „CalcCompleted“-Event registriert. Dieses Event wird aufgerufen sobald der Calculator mit der Berechnung fertig ist. @@ -185,7 +185,7 @@ Sobald die Berechnung abgeschlossen ist, wird der Thread mit dem MainThread übe ## Kommentare (Archiv) -1. **[Ralf Westphal](http://ralfw.blogspot.com/)** +1. Avatar **[Ralf Westphal](http://ralfw.blogspot.com/)** [Mai 6, 2010 um 10:34 am](/posts/async/) diff --git a/content/posts/barcamp-bodensee-2010.md b/content/posts/barcamp-bodensee-2010.md index b7bba5a..11d0fa9 100644 --- a/content/posts/barcamp-bodensee-2010.md +++ b/content/posts/barcamp-bodensee-2010.md @@ -33,7 +33,7 @@ Es gab noch viele weitere gute Sessions, das Wetter hat gestern gut mitgespielt Die [love coaches von be2](http://www.be2.de/blog/) waren auch wieder dabei und [verlosen heute eine faltbare Sitzcouch](http://www.be2.de/blog/barcamp/), die Flexible Love Bank von myfab. -[](/images/barcamp-bodensee-2010/IMG_0247.jpg) +[be2 Verlosung](/images/barcamp-bodensee-2010/IMG_0247.jpg) ## Kommentare (Archiv) diff --git a/content/posts/clean-code-developer-yellow-brick-road.md b/content/posts/clean-code-developer-yellow-brick-road.md index c838c87..7e02780 100644 --- a/content/posts/clean-code-developer-yellow-brick-road.md +++ b/content/posts/clean-code-developer-yellow-brick-road.md @@ -1,5 +1,5 @@ --- -title: "Clean Code Developer – The Yellow Brick Road of the Coder" +title: "Clean Code Developer – The Yellow Brick Road" date: 2009-07-14 slug: clean-code-developer-yellow-brick-road original_url: "https://aztec-project.org/blog/clean-code-developer-yellow-brick-road.html" diff --git a/content/posts/design-by-contract-teil2.md b/content/posts/design-by-contract-teil2.md index c772a18..fb2142b 100644 --- a/content/posts/design-by-contract-teil2.md +++ b/content/posts/design-by-contract-teil2.md @@ -1,5 +1,5 @@ --- -title: "Design by Contract – jetzt auch mit C# – Teil 2" +title: "Design by Contract – Teil 2" date: 2009-11-05 slug: design-by-contract-teil2 original_url: "https://aztec-project.org/blog/design-by-contract-teil2.html" diff --git a/content/posts/dotnet-openspace-sued-2009.md b/content/posts/dotnet-openspace-sued-2009.md index 7a82a4e..dba004d 100644 --- a/content/posts/dotnet-openspace-sued-2009.md +++ b/content/posts/dotnet-openspace-sued-2009.md @@ -16,7 +16,7 @@ Während der Vorstellungsrunde haben wir gemerkt, dass das Open Space nicht nur Falls sich jemand nicht mehr an uns erinnert, hier ein Bild von uns :) - +Foto vom Open Space Süd 2009 (von links nach rechts: [Andreas Seebauer](http://www.xing.com/profile/Andreas_Seebauer2), [Stefan Kölle](http://www.xing.com/profile/Stefan_Koelle), [Thomas Christian](http://www.xing.com/profile/Thomas_Christian9), [Christina Hirth](http://www.xing.com/profile/Christina_Hirth2)) Es gab zwar keine vorher festgelegten Themen, aber diese wurden vor Ort vorgeschlagen und danach demokratisch bestimmt. Es wurden sehr interessante Bereiche besprochen, aber leider konnte man nicht in jeden Open Space gleichzeitig. :) @@ -26,7 +26,7 @@ MVC, DDD, IoC und DI (danke an [Albert](http://der-albert.com/), [Markus](http:/ Das Themenboard : - +Foto vom Open Space Süd 2009 Am Sonntag hat uns besonders die Clean-Code-Development-Runde gefallen. Wir sind dabei, dies in unserem Team umzusetzen. Für alle, die es nicht kennen, gibt es [hier](http://www.clean-code-developer.de/) alle Informationen. diff --git a/content/posts/mvp-winforms.md b/content/posts/mvp-winforms.md index 4daa6ab..8515909 100644 --- a/content/posts/mvp-winforms.md +++ b/content/posts/mvp-winforms.md @@ -14,7 +14,7 @@ Im Teil 1 ([MVP mit WinForms](/posts/mvp-winforms/)) habe ich die Grundgedanken **Das Beispielprojekt** Zur Demonstration habe ich ein Beispielprogramm mit MVP entwickelt, welches einen sehr einfachen Twitterclient darstellt. Das Beispiel wurde nach Contract-First komponentenorientiert gebaut und besteht neben der MVP-Komponente aus weiteren Komponenten. -[](/images/mvp-winforms/Foto1.jpg) +[TwitterClient Architektur](/images/mvp-winforms/Foto1.jpg) Die weiteren Komponenten haben nichts mit MVP zu tun, sondern sollen nur zeigen, wie man MVP in diesem Umfeld integriert. -> [Den kompletten Sourcecode downloaden](/assets/TwitterClient.zip) @@ -30,7 +30,7 @@ Um die Funktionen abzubilden, sind 3 Screens notwendig: 2. Form für das Absenden eines Twitter-Status-Updates 3. Konfigurationsbildschirm für den Twitter-Account -[](/images/mvp-winforms/Foto2.jpg) +[TwitterClient UI](/images/mvp-winforms/Foto2.jpg) Jedes WinForm besteht aus einer View-Klasse (dem WinForm), einem Model, welches als Singleton im IoC-Container konfiguriert wird und einem Presenter. Die einzelnen Funktionen in den Views sind im Beispielprojekt durch Tests abgedeckt und zeigen die notwendigen Tests für diese Art der Implementierung. Gerade durch geringen Funktionsumfang kann man das Muster der Verwendung gut erkennen. diff --git a/content/posts/programmierer.md b/content/posts/programmierer.md index 02a9a1b..b62571c 100644 --- a/content/posts/programmierer.md +++ b/content/posts/programmierer.md @@ -24,7 +24,7 @@ Was haltet ihr von Coding bei der Einstellung? Ist das auch in Europa üblich? W ## Kommentare (Archiv) -1. **[Ralf Westphal](http://ralfw.blogspot.com/)** +1. Avatar **[Ralf Westphal](http://ralfw.blogspot.com/)** [März 14, 2010 um 1:09 pm](/posts/programmierer/) diff --git a/content/posts/softwarezellen.md b/content/posts/softwarezellen.md index 0ccff99..03694f5 100644 --- a/content/posts/softwarezellen.md +++ b/content/posts/softwarezellen.md @@ -1,5 +1,5 @@ --- -title: "Softwarezellen – eine Lösung um die Komplexität zu beherrschen" +title: "Softwarezellen – die Komplexität beherrschen" date: 2010-01-27 slug: softwarezellen original_url: "https://aztec-project.org/blog/softwarezellen.html" diff --git a/content/posts/stupiddb2.md b/content/posts/stupiddb2.md index 4602a5b..97e5dd2 100644 --- a/content/posts/stupiddb2.md +++ b/content/posts/stupiddb2.md @@ -92,7 +92,7 @@ Verwendet ihr schon NoSQL? die DLL und der Sourcecode kann nun als ZIP direkt runtergeladen werden: - [http://www.aztec-project.org](http://www.aztec-project.org/) + [/](/) Gruss Stefan diff --git a/content/posts/webcamps.md b/content/posts/webcamps.md index d71f929..25264f7 100644 --- a/content/posts/webcamps.md +++ b/content/posts/webcamps.md @@ -9,9 +9,9 @@ categories: ["Veranstaltung"] tags: ["HTML", "MVC", "webcamp"] --- -[](http://www.webcamps.ms/#munich_panel) +[camps](http://www.webcamps.ms/#munich_panel) -Um unsere ASP.NET-MVC2-Kenntnisse mal wieder etwas aufzufrischen, haben ein paar von uns das zweitägige [Webcamp](http://www.webcamps.ms/#munich_panel) von Microsoft in München/Unterschleißheim besucht, an dem man unter den Teilnehmern auch ein paar bekannte Gesichter wie [Pete Sacchet](http://blog.sacchet.de/), [Christian Deger](http://www.deger-it.de/) und [Golo Roden](http://www.goloroden.de/) angetroffen hat. +IMG_0165Um unsere ASP.NET-MVC2-Kenntnisse mal wieder etwas aufzufrischen, haben ein paar von uns das zweitägige [Webcamp](http://www.webcamps.ms/#munich_panel) von Microsoft in München/Unterschleißheim besucht, an dem man unter den Teilnehmern auch ein paar bekannte Gesichter wie [Pete Sacchet](http://blog.sacchet.de/), [Christian Deger](http://www.deger-it.de/) und [Golo Roden](http://www.goloroden.de/) angetroffen hat. Am ersten Tag wurden die Grundlagen von MVC2, Entity Framework, JQuery und IIS vermittelt. Dabei wurde anhand einer Rich Web Application gezeigt, wie MVC2, das Entity Framework und JQuery zusammenspielen können. Am zweiten Tag mussten die am Vortag zusammengestellte Teams ein Projekt auf diesen Themengebieten basteln und vorstellen. @@ -19,7 +19,7 @@ Moderiert wurde das Ganze von [Jon Galloway](http://www.webcamps.ms/Speaker/jong Erhofft hatten wir uns von den zwei Tagen, einiges über MVC2 und JQuery zu erfahren. Enttäuscht wurden wir nicht, da uns noch unbekannte HtmlHelper, Validierungsmethoden sowie ein paar Tricks im Umgang mit Visual Studio gezeigt wurden. Das Entity Framework einmal im Einsatz zu sehen, war ganz nett, aber für uns nicht allzu interessant, da wir im Moment mit NHibernate arbeiten und damit ganz gut fahren. - +IMG_0157IMG_0158IMG_0159 Ja, zu essen gab es auch was. War lecker, wie man sieht. @@ -28,7 +28,7 @@ Das einzig Negative an der ganzen Veranstaltung war das Netz im Hotel Dolce Muni Nachdem man dann das WLAN deaktiviert hatte, konnte es dann auch losgehen. - +IMG_0161IMG_0162IMG_0163IMG_0164 Um uns möglichst nah an den Projekten in der Arbeit zu orientieren, haben wir erstmal Folgendes gemacht: SVN angelegt, Features, die wir aufnehmen wollten, erörtert, Architektur gezeichnet, Komponenten herausgearbeitet, Contracts erstellt, Komponenten angelegt, Komponenten implementiert. Und schwupps war die Zeit um. :> Wir sind leider nicht mit unserem Projekt fertig geworden, haben aber trotzdem in den zwei Tagen einiges gelernt. @@ -38,7 +38,7 @@ Glückwunsch nochmal an die Gewinner des Wettbewerbs (Schiffe versenken). ## Kommentare (Archiv) -1. **[Ralf Westphal](http://ralfw.blogspot.com/)** +1. Avatar **[Ralf Westphal](http://ralfw.blogspot.com/)** [Juni 11, 2010 um 12:11 pm](/posts/webcamps/) diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 11ab83f..506348b 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -2,11 +2,56 @@ - {{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ .Title }} | {{ .Site.Title }}{{ end }} - {{- $title := cond .IsHome .Site.Title .Title }} + {{- if and .IsNode (ne .Kind "home") }} + {{- if eq .Kind "term" }}{{ $title = printf "%s (%s)" .Title (cond (eq .Data.Singular "tag") "Tag" "Kategorie") }}{{ end }} + {{- end }} + {{ if .IsHome }}{{ $title }}{{ else }}{{ $title }} | {{ .Site.Title }}{{ end }} + {{- $desc := "" }} - {{- if .IsHome }}{{ $desc = .Site.Params.description }}{{ else }}{{ $desc = .Description }}{{ end }} + {{- if .IsHome }} + {{- $desc = .Site.Params.description }} + {{- else if .IsNode }} + {{- if eq .Kind "term" }} + {{- if eq .Data.Singular "tag" }} + {{- $desc = printf "Alle Beiträge mit dem Tag „%s“ im build broken Blog (2009–2010)." .Title }} + {{- else if eq .Data.Singular "category" }} + {{- $desc = printf "Alle Beiträge in der Kategorie „%s“ im build broken Blog (2009–2010)." .Title }} + {{- else if eq .Data.Singular "author" }} + {{- $desc = printf "Alle Beiträge von %s im build broken Blog (2009–2010)." .Title }} + {{- else }} + {{- $desc = printf "Alle Beiträge zu %s im build broken Blog (2009–2010)." .Title }} + {{- end }} + {{- else if eq .Kind "section" }} + {{- if eq .Section "posts" }} + {{- $desc = "Alle Blogartikel des build broken Archivs (2009–2010): Clean Code, ASP.NET, MVC, MVP, WinForms, StupidDB, NoSQL, Scrum." }} + {{- else if eq .Section "tags" }} + {{- $desc = "Alle Schlagwörter (Tags) des build broken Blog-Archivs (2009–2010)." }} + {{- else if eq .Section "categories" }} + {{- $desc = "Alle Kategorien des build broken Blog-Archivs (2009–2010)." }} + {{- else if eq .Section "author" }} + {{- $desc = "Alle Autoren des build broken Blog-Archivs (2009–2010)." }} + {{- else }} + {{- $desc = printf "Übersicht %s im build broken Blog (2009–2010)." (lower .Title) }} + {{- end }} + {{- else if eq .Kind "taxonomy" }} + {{- if or (eq .Data.Plural "tags") (eq .Title "Tags") }} + {{- $desc = "Alle Schlagwörter (Tags) des build broken Blog-Archivs (2009–2010)." }} + {{- else if or (eq .Data.Plural "categories") (eq .Title "Categories") }} + {{- $desc = "Alle Kategorien des build broken Blog-Archivs (2009–2010)." }} + {{- else if or (eq .Data.Plural "authors") (eq .Data.Singular "author") }} + {{- $desc = "Alle Autoren des build broken Blog-Archivs (2009–2010)." }} + {{- else }} + {{- $desc = printf "Übersicht %s im build broken Blog (2009–2010)." (lower .Title) }} + {{- end }} + {{- else }} + {{- $desc = printf "Übersicht %s im build broken Blog (2009–2010)." (lower .Title) }} + {{- end }} + {{- else if eq .Kind "404" }} + {{- $desc = "Die angeforderte Seite wurde nicht gefunden – build broken Blog-Archiv (2009–2010)." }} + {{- else }} + {{- $desc = .Description }} + {{- end }} {{- if not $desc }}{{ $desc = .Summary | plainify }}{{ end }} {{- $desc = strings.TrimSpace (strings.TrimRight "…" $desc) | truncate 160 }} {{- if $desc }}{{ end }}