C# Extention Methodes

Oft kommt man beim programieren an einem Punkt an an dem na denkt “Diese Methode wäre jetzt super!!!”  Ist doch kein Problem einfach eine neue klasse und von der alten erben und diese Methode hinzufügen. Schön und gut aber was ist wen die Basisklasse sealed ist? Hier kommen Extention Methodes ins Spiel.

 

 public static class StringExtentions
    {
      //reverses the string... pretty obvious really
        public static string Reverse(this string input)
        {
            char[] chars = input.ToCharArray();
            Array.Reverse(chars);
            return new String(chars);
        }

        // "a string".IsNullOrEmpty() beats string.IsNullOrEmpty("a string")
        public static bool IsNullOrEmpty(this string theString)
        {
            return string.IsNullOrEmpty(theString);
        }

        //not so sure about this one -
        //"a string {0}".Format("blah") vs string.Format("a string {0}", "blah")
        public static string With(this string format, params object[] args)
        {
            return string.Format(format, args);
        }

    }

 

Extention Methodes lassen sich jedoch nicht nur einfach einzelne bestimme Klassen anwenden. Man kann sie zu Beispiel auch so schreiben das sie Generisch sind. Hier zum Beispiel auf alle Objekte die das interface IComparable implementieren.

 

    public static class Extentions
    {
        public static T ConvertTo<T>(this IConvertible value)
        {
            return (T)Convert.ChangeType(value, typeof(T));
        }

        public static bool IsBetween<T>(this T value, T low, T high) where T : IComparable<T>
        {
            return value.CompareTo(low) >= 0 && value.CompareTo(high) <= 0;
        }

        public static bool IsGreater<T>(this T value, T then) where T : IComparable<T>
        {
            return value.CompareTo(then) >= 0;
        }

        public static bool IsLower<T>(this T value, T then) where T : IComparable<T>
        {
            return value.CompareTo(then) <= 0;
        }
    }

 

Damit sind sie ein sehr mächtiges Tool und erleichtern einem die Arbeit oftmals.


Developer PC

Developer PCBei der Zusammenstellung meines neun PC’s Mitte 2012 war es mir wichtig das er für nächsten Zeit für Alles gerüstet ist. Zudem sollte er möglichst günstig sein. Auf dieser Grundlage habe ich angefangen das System zusammen zu stellen, habe Produkttests gelesen und bin schlussendlich auf Folgenden Konfiguration gekommen.

AMD FX-8150 3600 AM3+ BOX € 179,90
GIGABYTE GA-990FXA-UD5 € 167,90
Kingston HyperX DIMM 16 GB DDR3-1866 Quad-Kit  € 119,90
be quiet! Dark Power Pro 10 750W ATX23 € 149,90
Zalman Z9 ATX € 43,99
Corsair ForceGT 2,5″ SSD 120 GB SSD € 112,90
Zota1.2 D5 X GTX560 Ti 448 Cores R € 219,90

Gesamtsumme


€ 994,39

 

Ich habe mich für den AMD entschieden, weil er der einzige Prozessor ist echte 8 Kerne hat, was beim Multithreaded Programmen enorm von Vorteil ist. Er basiert auf der leistungsstarken Bulldozer-Architektur von AMD. Kommt aus aus der Server Baureihe. Als sokel kommt ein am3+ zum Einsatz. Standardmäßig ist er mit 3,6 GHz getaktet. Bei großer singelcore Auslastung ist er aber in der Lage einzelne Kerne auszuschalten und dafür die anderen Kerne Zu übertaten. Des weiteren besitzt er 8 MB L2 und L3 cache, was den den Austausch zwischen CPU und Ram vermindert und somit das System schneller macht. Die 16 GB Kingsten Hyper X sprechen denk ich mal für sich selbst.

Für das Gigabyte Board habe ich mich entschieden, da es durchweg gut Bewertungen hatte und ich bis jetzt nur Gute Erfahrungen mit Gigabyte gemacht habe. Die Ausstattung des Boards kann sich sehen lassen. Um das Board mit dem Prozessor zu betreiben muss man jedoch ein BIOS update durchführen. Mit dem ausgelieferten BIOS ist es leider nicht Möglich. Somit muss man bedenken das man erst einmal einen älteren Prozessor verbauen um das update einzuspielen.

Die SSD verleiht den System quasi Flügel. Der Zugriff auf die Daten ist einfach Unglaublich schnell.

Nach dem alles zusammen gebaut ist und Windows installier ist komme ich unter Windows 7 auf folgende Leistungsindex:

Windows 7 Leistungsindex

Jedoch ist Windows 7 zwar noch aktuell aber die Zukunft wird auf Windows 8 Hinauslaufen und dafür ist das System ausgelegt, weshalb es mich nicht wundert das der Leistungsindex hier höher ausfällt.Windows 8 Leistungsindex

Die CPU arbeitet wunder bar und verteilt die last auf die ihm zu Verfügung stehende 8 Kerne.cpu auslastung

Developer PC zusammenbauDen einzigen Fehler den ich beim zusammen stellen gemacht habe war es die Boxed Edition des Prozessors genommen zu haben. Der Standard Lüfter ist einfach nur Laut was bei längerer Arbeit ziemlich schnell anfängt zu nerven. Weshalb ich mir kurzer Zeit nach einem anderen Lüfter umgesehen habe. Nach einiger Recherche ist meine Wahl auf den Noctua NH-U9B gefallen.  Seit dem dieser ein meinem Rechner Verbaut ist das einzige was man ab und an hört das drehen meiner anderen Festplatten.


Notizen 2.0

Zettel und Stift haben aus gedient. Zu mindestens bei mir 😉 Ich war noch nie der Typ der Ordnung in seinen Notizen halten konnte. Schon vor Jahren haben ich mir gewünscht eine Art Tablett zu habe auf denen ich meine Mitschriften Elektronisch speichern konnte. Diesbezüglich habe ich schon eine menge ausprobiert. Angefangen das ich alle handschriftlichen Notizen, damals noch nach der Schule, abgetippt habe. Dies hat allerdings massig an zeit in Anspruch genommen.

Zum beginn meines Studiums habe ich dann versucht mit dem Laptop mit zu schreiben, Dies hat allerdings nur mäßigen Erfolg gebracht, da Zeichnungen oder Formeln nun mal nicht so schnell mitschreiben kann und man dadurch den Anschluss verliert. Also zurück zu Stift und Papier. Ein paar Monate später habe ich mir dann eine Stift geholt der alles geschrieben gleichzeitig digital erfasst. Klingt erst mal gut, wenn da nicht das Problem mit dem weiter verarbeiten gewesen wäre. Leider war es bei meinem Exemplar nicht ohne weiteres möglich seine digitalen Mitschriften im Nachhinein noch einmal zu bearbeiten. Im Großen und ganzen eine gute Idee jedoch mit kleinen aber wichtigen Einschränkungen.

Nun da die Tablets erschwinglich sind, ist es meines Erachtens die beste Möglichkeit seine notieren Digital zu haben. Dabei ist es völlig egal ob es sich bei dem Tablet um ein iPad, ein Android basierendes Tablet oder sogar in Zukunft um ein Microsoft Surface handelt. Alle Systeme habe auf die eine oder andere Art die Möglichkeit Digitale Notizen zu machen. Hier werde ich das ganze anhand eines Android Tablets, genauer gesagt anhand das Asus Transformer TF101, erläutern.

Zum anfertigen von Notizen bietet GooglePlay alles was das herz begehrt. Hier werde ich mich auf 2 apps beschränken.

SuperNote

SuperNote_Screenshot_1Die Note app von Asus. Dies ist lediglich für einige Android basierte Asus Geräte verfügbar. Der funktionsumfang ist hervorragend, nahezu alles was für das notieren eine Vorlesung benötigt wird ist vorhanden. Egal ob Tastatur Eingabe oder die handschriftliche Eingabe, alles geht geht leicht von der Hand und die Bedienungen ist sehr intuitiv. Die handschriftliche Eingabe ist dank der Grundlinie spielend leicht.

Auch das anfertigen von Zeichnungen ist ausgezeichnet. Nach dem fertigstellen Screenshot_2012-07-11-14-52-12einer Zeichnung lässt sich diese noch verschieben und skalieren um sie perfekt zu positionieren.

Selbst wen man einmal nicht mitkommt mit dem mitschreiben, bietet die App eine Lösung. Einfach ein Foto machen und dies in die Notizen einfügen. Auch diese lassen sich wieder frei verschieben und skalieren.

Abgelegt werden die Notizen sehr übersichtlich in Notizbüchern, so dass man kein durcheinander der von unterschiedlichen Notizen hat.

Ein Manko liegt jedoch daran das man die Notizbücher leider nicht komplett, zum Beispiel als pdf exportieren sondern lediglich einzelne Seiten als Bild.

Für die unter euch die kein Asus gerät ihr eigen nennen können gibt es alternative apps mit ähnlichen Funktionsumfang. Hier sei zum Beispiel FreeNote erwähnt.

ezPDF Reader

Screenshot ezPDF ReaderManchmal ist es besser nicht alles mit zu schreiben sondern sich lediglich notieren im Script zu machen. In der Regel sind diese zum Begin einer Vorlesung als pdf erhältlich. Hier für eignet sich ezPDF Reader.

Der Funktionsumfang ist recht umfangreich, so lassen sich nicht nur Handschriftliche Notizen und Hervorhebungen machen sondern auch das einfügen von Bilder, Leeren Seiten und vieles mehr.

Seit dem letzten update sind die grundlegenden Funktionen auch in der Acrobat App verfügbar, jedoch ist der Umfang den ezPDF Reader bietet deutlich. Die App kostet derzeit 2,99 €. Meiner Meinung nach ist der Preis durchaus angemessen.

 

Eingabe Stift

Wacom BAMBOO

Ein gute kapazitiver Stift ist zum arbeiten unersetzlich. Zum beginn habe ich eine billigen Stift benutzt, dies funktionierte auch ganz gut für die ersten Tage, doch nach einer weile bemerkte ich das der Stift immer ungenaue und unzuverlässiger wurde. Gerade nach dem Reinigen der Oberfläche Funktionierte der Stift überhaupt nicht.

Also habe ich mich ein bisschen umgeschaut und bin nach einer weile auf den Wacom BAMBOO gestoßen. In meinen Augen derzeit der beste Stift für kapazitive Displays. Selbst nach mehreren Wochen intensiver Benutzung Wacom BAMBOOfunktioniert er noch Tadellos. Sollte jedoch irgendwann einmal doch Einschränkungen verzeichnen ist es möglich die Spitze aus zu tauschen. Es gibt den Wacom BAMBOO in zwei Ausführungen. Der einzige unterschied besteht daran, dass bei der einen Version noch Zusätzlich noch ein Normaler Stift integriert ist. Ansonsten haben sie den selben Funktionsumfang und funktionieren gleich gut. Dank seiner angenehmen Größe, liegt er gut in der Hand, selbst wen man etwas Größere Hände hat lässt sich angenehm mit ihm schreiben.

 

Fazit

In meinen Augen wird es Zeit um zu denken und seine Notizen auf einem Tablett zu machen. In welcher Art und Weise sei dahingestellt. Ob auf einem Android Tablett, einem iPad oder auf einem Microsoft basierenden Gerät spielt eher eine kleinere Rolle. Der Zeit setze ich auch die Android Variante, doch werden ich über kurz oder lang auf Microsoft und OneNote setzen.