Neujahr 👍 👎

Ich bedanke mich für das bisherige Interesse und wünsche ein glückliches und erfolgreiches neues Jahr 2015.

Ich würde mich natürlich sehr darüber freuen, dich auch im nächsten Jahr wieder hier begrüßen zu dürfen.

Ping per C# 👍 👎

Zwar könnte man hier ähnlich wie im Artikel Konsolenausgabe in C# verwenden für traceroute beschrieben vorgehen, jedoch bietet es sich an, die Ping-Klasse des .NET-Frameworks zu verwenden. Diese möchte ich mit diesem Beitrag kurz vorstellen, da sie interessanterweise zu den doch eher unbekannteren Funktionalitäten gehört.
Ping-Klasse verwenden
010203040506
using(Ping ping = new Ping()) {    PingReply reply = ping.Send("coders-online.net");
long time = reply.RoundtripTime; // 19 IPStatus status = reply.Status; // Success}
Es können durch entsprechende Überladungen weiterführende Optionen wie die zu übertragenden Daten festgelegt werden. Durch die seit .NET 4.5 verfügbare Methode SendPingAsync besteht außerdem auch die Möglichkeit, nach dem komfortablen und nicht-blockierenden async/await-Muster vorzugehen.

Grad-Angaben für trigonometrische Funktionen in C# 👍 👎

In einem Gespräch wurde mir kürzlich vom "seltsamen" Verhalten trigonometrischer Methoden wie Math.Sin oder Math.Cos berichtet. Nun lag das Problem jedoch weniger an C# (ohnehin kaum vorstellbar Smiley: winking), sondern vielmehr an den übergebenen Werten – diese lagen nämlich in Grad vor, wobei C# das Bogenmaß erwartet.

Glücklicherweise lassen sich die Werte jedoch schnell und problemlos jeweils zueinander umrechnen:
Umrechung von Grad <-> Bogenmaß
010203040506070809
  // Grad zu Bogenmaß umrechnenpublic static double DegToRad(double degrees) {    return (degrees * (Math.PI / 180));}
// Bogenmaß zu Grad umrechnenpublic static double RadToDeg(double radians) { return (radians * (180 / Math.PI));}
Entsprechende Funktionen habe ich im Rahmen von "PHP-Funktionen in C#" schon einmal zur Verfügung gestellt:

Podcast-Empfehlungen 👍 👎

Da ich sehr gerne Podcasts höre, möchte ich heute ein paar besonders erwähnenswerte Exemplare kurz vorstellen:

Alternativlos

In diesem Podcast sprechen Felix von Leitner und Frank Rieger über gesellschaftsrelevante Themen. Zu den bisherigen Themenbereichen gehörten beispielsweise Geheimdienste, Kernkraftwerke, Kryptographie, Verschwörungstheorien und Wirtschaft. Technische Details und Humor kommen dabei selten zu kurz, leider erscheinen die Folgen jedoch recht unregelmäßig und derzeit selten – aber das Warten lohnt sich, wie ich finde.

CRE

Als Chaosradio Express gestartet sicherlich einer der Klassiker des monothematischen Podcasts, bei dem die Gäste zusammen mit Tim Pritlove zu diversen Themen aus den Bereichen Kultur und Technik diskutieren. Die bisherigen Themenbereiche umfassten beispielsweise Computerspiele, Fernsehen, Kaffee, Nachrichtendienste, Programmiersprachen, Raumfahrt, Stadtplanung, Steuern und VoIP. Sehr detailreich und mit meist längeren Folgen, derzeit jedoch leider ebenfalls sehr selten neue Veröffentlichungen.

methodisch inkorrekt

Alle zwei Wochen treffen sich die Physiker Nicolas Wöhrl und Reinhard Remfort von der Universität Duisburg-Essen, um über meist aktuelle wissenschaftliche Veröffentlichungen zu sprechen. Bonus-Inhalte der meisten Sendungen sind das Experiment der Woche und das China-Gadget der Woche – mit interessanten Einsichten und mehr oder weniger nützlichen Gimmicks. Die Themen sind im naturwissenschaftlichen Bereich zu verorten. Derzeit auf jeden Fall einer meiner Favoriten, da nicht nur sehr lehrreich, sondern auch überaus unterhaltsam.

omega tau

Markus Völter und Nora Ludewig liefern hier einen ebenfalls monothematischen Podcast mit vielen Details zum jeweiligen Thema, wobei üblicherweise ein Gesprächspartner als Experte befragt wird. Zu den bisherigen Themen gehörten beispielsweise Eisenbahnsicherungstechnik, Evolution, Kohlenstoffschichten, Robotik, Seismologie, Strahltriebwerke und Wetterdatenerfassung. Besonders erwähnenswert ist außerdem, dass es Folgen auf Deutsch und Englisch gibt, wobei es sich um jeweils unterschiedliche Themen handelt.


Auf der Unterseite Links finden sich noch ein paar weitere erwähnenswerte Podcasts.

Parität einer Zahl prüfen 👍 👎

Manchmal kann es für ein Problem relevant sein, ob eine Zahl (un-)gerade ist. Dies lässt sich sehr einfach durch Verwendung der ganzzahligen Division mit Rest (Modulo) bewerkstelligen – wir dividieren dabei einfach durch 2.

Eine Erweiterungsmethode für den Typ int in C# könnte beispielsweise wie folgt aussehen:
int.IsEven implementieren und verwenden (Modulo)
0102030405
public static bool IsEven(this int number) {    return ((number % 2) == 0);}
bool isEven = (7).IsEven(); // false
Im Stellenwertsystem zur Basis 2 (Dualsystem) kann man sich zu Nutze machen, dass bei ungeraden Zahlen die letzte Ziffer mit der Wertigkeit 1 gesetzt sein muss, da ansonsten die Zahl in jedem Fall gerade wäre. Übertragen auf die Arbeit im Binärsystem soll also das letzte Bit [nicht] gesetzt sein, was wir durch eine bitweise Verknüpfung ermitteln und dadurch eine entsprechende Optimierung ermöglichen:
int.IsEven implementieren und verwenden (Bitarithmetik)
0102030405
public static bool IsEven(this int number) {    return ((number & 1) == 0);}
bool isEven = (7).IsEven(); // false
Entsprechende IsOdd()-Methoden können ggf. analog dazu implementiert werden.

Projektverweise

Kategorien / Archiv  |  Übersicht RSS-Feed

Schlagworte

Suche