Biggle's Blog

Web- und Software Development

by Mario Priebe

Neues Design, neue Kommentarfunktion und was noch so kommt im nächsten Jahr

Ich wollte mich mal wieder zu Wort melden. Nicht das ihr denkt, dass ich mein Blog verweisen lasse :-)

Mit einem neuem, aufgeräumten und responsive reaktionsfähigem Design und Disqus als neue Kommentarfunktion geht es gewappnet in das kommende Jahr. Also, was wird 2013 hier in meinem Blog passieren?

Privates Zeuch

Im privaten Bereich, ist das erste viertel Jahr schon gut verplant. Im Januar werde ich meinen 40. Geburtstag feiern (“NullAgeException”) und im Februar dann, werde ich meine Prüfung zum Ausbilder bei der IHK-Berlin absolvieren und hoffentlich bestehen. Wer etwas über den Ablauf der Ausbildung für Ausbilder erfahren möchte, wird dies hier einem ausführlichen Artikel erfahren.

Am 28.3. werde ich meine geliebte Prinzessin heiraten, mit der ich jetzt 13 Jahre zusammen lebe. Mal schauen, vielleicht schreibe ich auch darüber.

Weiterhin habe ich meinem Sohn versprochen, mit ihm mal in das Computerspielemuseum zu gehen, da freue ich mich drauf.

Gitarrenunterricht

In diesem Jahr habe ich angefangen mir selbst Gitarre beizubringen, nun bin ich an einem Punkt angelangt, wo ich doch einen Gitarrenlehrer benötige. Meinen Sohn habe ich bereits zum Gitarrenunterricht angemeldet, 2013 stoße ich zum Unterricht dazu.

Bewusster & gesünder Leben

Wer mich etwas länger kennt, der weiß dass ich früher mal den Beruf Koch gelernt und viele Jahre ausgeübt habe. Zu jener Zeit, war die Arbeit mit und am PC mein Hobby, welches ich ja mittlerweile zum Beruf machen konnte. Leider habe ich indessen das Kochen und auch meine Ernährung etwas vernachlässigt. Nun aber, werde ich das Kochen zu meinem neuen Hobby auserwählen und mich darin versuchen, uns hier daheim öfters und das auch gesund, zu bekochen.

Abnehmen

Ei, ei ei, das kommen wir auch zum nächsten Punkt. In einem Jahr habe ich doch so um die 10kg zugenommen. Sprich, hier muss was getan werden. Zumal ich im März ja auch in einen Anzug passen möchte : ) Also steht auch ein wenig abnehmen mit auf der Liste.

Entschleunigen

Die Uhr tickt, na und?! Mir doch egal. Ich gehe jetzt alles ein wenig ruhiger und bedachter an. Einfach auch mal das Antworten aussitzen. Manches soll sich auch so ganz von alleine erledigen, habe ich mir sagen lassen. Wie man sich so einiges erleichtern kann, mit welchen Tools man sich bei der täglichen Arbeit unterstützt, werde ich im kommenden Jahr zeigen.

 

Entwicklerkram

Am 7. Januar schon, geht’s gleich zu einem Termin bei der ALT.NET UG Berlin  zum Thema “MS Test der missverstandene Stiefbruder”. Hier wird uns Hendrik Lösch etwas über MS Test erzählen. Ich freu mich drauf : )

Im kommenden Jahr werde ich mich intensiv mit der Windows 8 und Windows Phone 8  Entwicklung beschäftigen und hoffentlich einer meiner Projekte umsetzen, die ich schon seit langem im Kopf habe.

Ich habe hier auch noch ein Raspberry Pi rumliegen, welches mal Verwendung finden sollte und auch der Kinect-Sensor will mal angetestet werden.

Im Oktober geht es dann natürlich wieder zum Developer Space in Leipzig, der Termin (18.10.-20.10.2013) steht ja schon fest. Wer rechtzeitig über die Registrierung informiert werden will, sollte auch alle Fälle den Newsletter abonnieren.

Mal schauen, ob noch die eine oder andere Konferenz dazukommen wird, geplant ist bisher noch nichts weiter.

 

Ansonsten, bleibe ich auch G+ weiterhin treu und hoffe, dass der eine oder andere  sich wieder dort hin zurück “verläuft”.

Was geht bei dir im kommenden Jahr, volles Programm, oder doch eher ganz auf ruhig?

by Mario Priebe

WM2010 – Management | Das “DevBattle” Resultat

Ich hatte ja damals mal aus dem Bauch heraus zum DevBattle aufgerufen, erinnert ihr euch noch? Die Resonanz war eher bescheiden, kann ich ja auch verstehen, nicht viele setzen sich nach der Arbeit noch hin und entwickeln an private Projekten. Nun denn, ich möchte heute meine Version vorstellen.

Das WM2010 Management

Die Features

Über das WM2010 Management kann man die Spielstände der einzelnen WMSpiele speichern. Für die Finalrunden werden die Gegner aus den Gruppen und den einzelnen Finalspielen automatisch ermittelt und für die nächste Begegnung eingetragen.

Des Weiteren findet man zu jedem Spiel links oberhalb das Datum und die Uhrzeit, an dem das Spiel stattfindet und rechts oben den Ort der  Begegnung.

Die Ergebnisübersicht, zeigt den aktuellen Gruppenstand der Länder in dieser Tabelle.

Die Fenster öffnen sich mit einem FadeEffekt und sind rahmenlos im eigenen Design gehalten und können mittels Drag & Drop auf dem Desktop verschoben werden. Das Schließen eines  Fensters erfolgt natürlich auch über ein Fading.

Die Applikation kann geschlossen und minimiert werden. Ein Klick auf den Ball oben rechts führt zurück zur Startseite. Eigentlich nichts dolles, musste aber implementiert werden, da kein vorausgewählter Style verwendet wurde.

Der Blick unter die Motorhaube

In der damaligen Ankündigung ging es ja darum, nicht nur das Tool zu entwickeln, sondern auch um das Beschreiben der Vorgehensweise. Hier möchte ich gerne meine Herangehensweise darstellen.

Die Planung

Die Planung begann recht früh, nämlich sogleich nach der Idee im März. (Viel Zeit blieb ja nicht). Ich aggregierte dazu erstmal Informationen rund um die Fussballweltmeisterschaft. Die am besten geeignete Wissensquelle fand ich – wie so fast immer – bei Wikipedia.

Das Datenbankdesign

Das Design der Datenbank plante ich schon recht früh, hab hab nicht wirklich alles verwendet (Spieler, Position). Hier das ADO-Modell:


SoftwareDesign

ADO Framework / Managementkomponente

In der Managementkomponente findet der Zugriff, über das ADO Framework, auf die SQL Datenbank statt. Hier stehen die CRUD Operationen zu den einzelnen Entities bereit.

Controller

Der Controller bereitet die Operationen für den WM2010 Manager auf und bietet für die Implementierung Methoden zum Ermitteln und Speichern von Datensätzen.

CodeBehind

In den vereinzelten CodeBehind-Dateien werden die Daten für die View (XAML) aufbereitet.

XAML

Die Darstellungsschicht. Diese Schicht dient ausschließlich zur Darstellung der Elemente.

GrafikDesign

Die Fahnen, der Rasen (Hintergrundbild), die WMIcons und die anderen kleinen Icons die im Design verwendet werden, werden namentlich in der Applikation mit einer Verlinkung genannt.

Das ganze dann Zusammengeschustert ergibt das gesehene Gesamterscheinungsbild.



Werkzeuge


Versionierung


Zukunft

Angedacht für eine nächsten Version wären zum Beispiel folgende Anpassungen / Features:

  • Refactoring!
  • Tippspielintegration
  • globales Hosten der Managementkomponente
  • das Ermitteln der Ergebnisse über eine API
  • Einbinden der Wikipedia API um Informationen zu Teams und Stadien darzustellen

Denkbar wäre auch das Streamen von Spielen (was der Hammer wäre) – aber hier spielt wahrscheinlich die Obrigkeit (Veranstalter) nicht mit :/


Fazit

Natürlich ist das ganze noch Verbesserungswürdig. Gerade zum Schluss fängt man dann doch an, das eine oder andere Workaround zu implementieren. Aber es gibt ja immer noch die Zeit “danach”, nicht wahr : ) Okay in diesem Falle hat man Zeit bis 2014 zur nächsten WM etwas gescheites draus zu machen, hehe.

Alles in allem kann ich sagen, es hat ne Menge Spass gemacht und plane schon wieder an etwas Neuem. Aber dieses mal ohne den Abgabedruck, jedenfalls wollte ich das in kommenden privaten Projekten vermeiden.

Nun, Euer Feedback ist gefragt, das WM2010 Management ist eingecheckt und kann gerne weiter verwendet werden (auch einzelne CodeTeile natürlich). Eine Erwähnung des Authors wäre natürlich Super  ;)

Ich bin des Weiteren auch gerne zu größeren, privaten Teamprojekte bereit, bei denen ich mein KnowHow entfalten und natürlich auch von anderen lernen kann.

Offen

Leider bekomme ich das nicht gebacken, eine anständige Setup mit den entsprechenden Datensätzen der Datenbank zu bauen, vielleicht kann mir da ja jemand etwas unter die Arme greifen. Den ConnectionString in der app.conf muss auch für den Benutzer funktionieren. Kein Plan :/

Aber bevor ich es geschafft habe, wäre ich natürlich dankbar, wenn derjenige das Projekt auschecken und als Setup bauen könnte. Die SQL Scripte liegen in der Solution unter SolutionItems.

Download:

by Mario Priebe

Generic.List sortieren | C# Quicky

Um eine generische Liste zu sortieren kann man die Sort Methode auf folgender Art und Weise überschreiben:

1
2
3
public List<Begegnung> Begegnungen { get; set; }
 
Begegnungen.Sort((x, y) => DateTime.Compare((DateTime) x.Spiel.DatumUhrzeit, (DateTime) y.Spiel.DatumUhrzeit));


Beispiel

1
2
3
4
5
6
7
8
9
10
11
12
13
Begegnungen = new List<Begegnung> { new Begegnung { Spiel = new Spiel{DatumUhrzeit = DateTime.Now} }
    , new Begegnung { Spiel = new Spiel{DatumUhrzeit = DateTime.Today.AddDays(2)} } 
    ,new Begegnung{Spiel = new Spiel{DatumUhrzeit = DateTime.Today.AddHours(-5)}}
    ,new Begegnung{Spiel = new Spiel{DatumUhrzeit = DateTime.Today.AddMinutes(66)}}};
 
 
Begegnungen.ForEach(b => Console.WriteLine(b.Spiel.DatumUhrzeit));
 
Begegnungen.Sort((x, y) => DateTime.Compare((DateTime) x.Spiel.DatumUhrzeit, (DateTime) y.Spiel.DatumUhrzeit));
 
Console.WriteLine("---");
 
Begegnungen.ForEach(b => Console.WriteLine(b.Spiel.DatumUhrzeit));
1
2
3
4
5
6
7
8
9
internal class Begegnung
{
    public Spiel Spiel { get; set; }
}
 
internal class Spiel
{
    public DateTime DatumUhrzeit { get; set; }
}

Viel Spass beim entwickeln : )

by Mario Priebe

OpenBook – Grundlagen und Programmierung Android

Der dpunkt.verlag verschenkt derzeit das Grundlagen und Programmieren Buch Android. Gebunden ist die 1.Auflage leider schon vergriffen und aus diesem Grund wird das 352seitige PDF verschenkt. Das Angebot gilt bis zur Veröffentlichung der 2. Auflage.

by Mario Priebe

Basta Spring 2010 – Ich bin dabei

Auch dieses Jahr wurde es mir ermöglicht, die Basta Spring 2010 zu besuchen. Letztes Jahr hat es ja leider projektbedingt nicht geklappt, aber diesmal ist (noch) alles fest.

Aber…. Ja wenn es  diese kleine Wörtchen nicht geben würde : )

Die liebe Pilotenvereinigung Cockpit, hat genau ab meinen Anreisetag bis zu meinen Abreisetag einen Streik geplant. Die Lufthansa hat hier zwar einen Notflugplan bereit gestellt, jedoch der Hinflug bleibt auf alle Fälle annuliert, Naja was solls dann gehts halt per Zug über Frankfurt nach Darmstadt und für den Zurückweg sieht es noch danach aus, dass der Flug planmässig statt finden wird.

Auf jeden Fall freue ich mich aber wieder auf jede Menge “Input”.

Einen voraussichtlichen Sessionplan hab ich mir auch schon zusammengestellt.

23. Februar 2010
 
  *
    09:00 - 09:45 Uhr | Room Hamburg
    2010 – Cloud oder Desktop – wohin geht die Reise?
        o Peter Monadjemi Activetraining
  *
   10:00 - 11:15 Uhr | Room Köln
    Neue Sprachfeatures in C# 4.0
        o Christian Nagel Thinktecture
  *
    11:45 - 13:00 Uhr | Room Köln
    Dynamisch konsumieren in C# 4.0
        o Oliver Sturm Developer Express
  *
    14:30 - 15:45 Uhr | Room Ulm
    REST mit WCF 4, Silverlight und AJAX
        o Daniel Fisher devcoach
  *
    16:15 - 17:30 Uhr | Room Ulm
    Jenseits von System.ServiceModel: WCF-Tools und Libraries
        o Christian Weyer thinktecture
  *
    17:45 - 19:00 Uhr | Room Königswinter
    Datenvisualisierung aus Usability-Sicht
        o Dr. Tobias Komischke Infragistics
  *
    20:30 - 21:45 Uhr | Room Köln
    Advanced Debugging mit Visual Studio 2008 und 2010
        o Ingo Rammer thinktecture
24. Februar 2010
 
  *
    08:30 - 09:45 Uhr | Room Würzburg
    Microsoft Visual Studio "IDE" Tipps und Tricks
        o Rainer Stropek software architects
  *
    10:15 - 11:30 Uhr | Room Köln
    Parallele Applikationen mit .NET 4
        o Manfred Steyer CAMPUS 02
  *
    11:45 - 13:00 Uhr | Room Köln
    Parallel Computing: Von LINQ nach PLINQ
        o Marc André Zhou Logica Deutschland GmbH &amp; Co. KG
  *
    14:30 - 15:45 Uhr | Room Hannover
    Windows Identity Foundation
        o Dominick Baier thinktecture
  *
    16:15 - 17:30 Uhr | Room Ulm
    Das MVVM-Pattern
        o Thomas Claudius Huber
  *
    19:00 - 19:45 Uhr | Room Hamburg
    Why Software Sucks
        o David S. Platt Harvard University Extension School
  *
    20:00 - 21:15 Uhr | Room Ulm
    Blend für Nichtdesigner
        o Stefan Lange empira Software GmbH
25. Februar 2010
 
  *
    08:30 - 09:45 Uhr | Room Hamburg
    Sync Framework Deep Dive
        o Rainer Stropek software architects
  *
    10:15 - 11:30 Uhr | Room Hamburg
    ADO.NET Entity Framework – Tipps, Tricks und gute Praktiken
        o Dr. Holger Schwichtenberg www.IT-Visions.de
  *
    11:30 - 12:30 Uhr | Room Hamburg
    Writing Functional Code — Why F# Matters
        o Ted Neward Neward &amp; Associates
  *
    13:30 - 14:45 Uhr | Room Hannover
    WPF 4.0die Neuerungen im Überblick
        o Thomas Claudius Huber
  *
    15:15 - 16:30 Uhr | Room Würzburg
    TDD und BDD
        o Gregor Biswanger TRIA IT-solutions
  *
    16:45 - 18:00 Uhr | Room Hamburg
    ADO.NET optimiert mit SQL Server einsetzen
        o Thorsten Kansy dotnetconsulting.eu


Wenn du magst, folge mir auf Twitter und/oder abonniere meinen Feed, ich werde sicher ein paar Fotos und meine Eindrücke online stellen, oder wir sehen uns dort : )

by Mario Priebe

CheatSheets on mass

Jede Menge Schummmelzettel, findest du auf devcheatsheet.com.

Von ActionScript bis Yahoo!, sind dort jede Menge Referenzkarten gelistet.