Schlagwort: Technik

Wissenschaft im Diskurs 👍 👎

Regelmäßig erscheinen nicht nur in Fachmagazinen Artikel zu wissenschaftlichen Erkenntnissen, sondern auch in klassischen Nachrichtenmagazinen. Hierbei beobachte ich leider sehr häufig eine große Unsicherheit bis hin zu mehr als fragwürdigen Äußerungen in den zugehörigen Diskussionsbereichen. Daher dachte ich mir, es kann möglicherweise nicht schaden, hier ein paar Aspekte der Natur- und Strukturwissenschaften herauszustellen.

Naturwissenschaften

Naturwissenschaften beschäftigen sich – naheliegenderweise – mit den verschiedenen Erscheinungen der Natur.

Anspruch

Ein verbreiteter Irrtum ist es, Naturwissenschaften als etwas zu sehen, woran man glauben müsste. Im Gegenteil ist es richtig und wichtig, entsprechende Erkenntnisse kritisch zu hinterfragen und zu überprüfen. Naturwissenschaften haben außerdem explizit nicht den Anspruch, Antworten auf den Sinn des Lebens oder ähnliche philosophische Fragestellungen liefern zu können oder auch nur zu wollen.

Naturwissenschaften beobachten natürliche Ereignisse, um auf deren Basis möglichst präzise Beschreibungen und im Idealfall schließlich Vorhersagen erarbeiten zu können. Diese Vorhersagen können sich durchaus auch als unzutreffend erweisen, was für die wissenschaftliche Arbeit jedoch keine "Niederlage" darstellt. Auch daraus lässt sich nämlich neue Erkenntnis ziehen und sei es auch nur, dass man etwas doch noch nicht verstanden hat.

Es gilt im Hinterkopf zu behalten, dass es sich immer um beschreibende Modelle dessen handelt, was Gegenstand der Untersuchung ist. Das heißt nicht zwangsläufig, dass etwas nun "so ist" – Modelle können fortlaufend durch neue Erkenntnisse verbessert oder gar verworfen werden. Im Übrigen können im naturwissenschaftlichen Bereich auch (hinreichend genaue) Näherungslösungen erwünscht und akzeptabel sein.

Finanzen

Naturwissenschaftliche Forschung kostet Geld. Je nach konkretem Vorhaben kann es sich hierbei um Kleinstbeträge mit Küchenutensilien bis hin zu Vorhaben handeln, die außerhalb unserer Erde stattfinden und mehrere Milliarden Euro kosten.

Das Geld wird jedoch nicht, wie oft behauptet, "ins All geschossen" – entsprechend hochwertiges Material kann zwar teuer sein, aber das ist auch schon alles, was dort verbleiben wird. Selbst Weltraumagenturen neigen also keineswegs dazu, Geldscheine in Raketen auf andere Himmelskörper zu befördern. Vielmehr dienen diese Ausgaben insbesondere dazu, die mitunter zahlreichen Mitarbeiter zu bezahlen – von der Förderung der Rohstoffe, über Berater bis hin zu Astronauten. Es ist im Übrigen eine verbreitete Fehlannahme, durch hier "eingesparte" Gelder plötzlich den Welthunger stillen zu können – derartige Probleme sind oftmals sozialer und politischer Art und höchstens am Rande eine Frage des Geldes.

Damit ist leider tatsächlich nicht ausgeschlossen, dass es auch im wissenschaftlichen Betrieb, wie überall sonst auch, zu unnötigen Ausgaben kommen kann. Das finde ich selbstverständlich auch nicht toll und – sofern nicht selbst provoziert – die beteiligten Forscher sicher ebenfalls nicht. Nicht zuletzt möchte ich auch an dieser Stelle noch einmal darauf hinweisen, dass man auch aus augenscheinlichen Fehlschlägen Erkenntnisse ziehen kann.

Grundlagenforschung

Im Bereich der Naturwissenschaften findet, insbesondere an Universitäten, Grundlagenforschung statt. Diese dient als Basis für eventuell mögliche Anwendungen und weitergehende Überlegungen. Diese Grundlagenforschung kann sehr theoretisch sein und mit exotischen Materialien arbeiten; die Nützlichkeit für den Alltag erschließt sich nicht unbedingt sofort. Es handelt sich vordergründig um eine Maßnahme des weiteren Erkenntnisgewinns.

Man weiß mitunter nicht immer bereits im Voraus, wozu eine Überlegung später dienen könnte – und ob überhaupt. Es liegt jedoch in der Natur des Menschen, die Grenzen des Möglichen durch intellektuelle Auseinandersetzung mit dem Gegebenen zu verschieben. Zur Beruhigung sei darauf hingewiesen, dass selbst aus historischer Sicht sehr kuriose Ansätze in heutige Alltagsprodukte einfließen konnten (Stichworte: Quantenmechanik, Zahlentheorie). Ihr solltet also nicht sofort an Verschwendung denken, wenn ihr nicht sofort eine Broschüre mit möglichen Produkten zu einer wissenschaftlichen Theorie finden könnt.

Vertreter

Typische Vertreter der Naturwissenschaften sind die Biologie, Chemie und Physik.

Strukturwissenschaften

Strukturwissenschaften untersuchen abstrakte Objekte auf ihre Eigenschaften und dienen der Modellbildung.

Anspruch

Im Gegensatz zur empirischen Vorgehensweise der Naturwissenschaften basieren Strukturwissenschaften auf einem deduktiven Ansatz, bei welchem – ausgehend von gewissen Grundannahmen – logische Schlüsse gezogen werden. Dies ermöglicht – bei gültigen Schlüssen – tatsächlich absolute, unwiderlegbare Aussagen, die jedoch auch nur soweit gültig sind, wie es die Theorie selbst erlaubt. Wesentliches Element ist die Abstraktion.

Modellbildung

Als sehr einfaches Beispiel sei folgende Überlegung eingebracht: Dass 1 + 1 = 2 ist, dürften die meisten Menschen ohne weiteres Zögern akzeptieren, da es ihnen so beigebracht wurde. Dies ist für die "gewöhnliche" Addition auf natürlichen Zahlen auch völlig richtig und wird sich garantiert niemals ändern, denn im Gegensatz zu natürlichen Phänomenen können hier keine neuen Erkenntnisse auftauchen, die die Aussage widerlegen könnten – vielmehr ist die Theorie absichtlich so konstruiert, dass die Aussage stimmt.

Genauso kann es jedoch auch sinnvoll sein, davon abzuweichen und ein anderes Modell als Grundlage zu verwenden. Sofern wir im Dualsystem rechnen, ergibt sich nämlich die Gleichung 1 + 1 = 10 und in noch spezielleren Algebren ergibt sich gar 1 + 1 = 0 (mod 2). Und tatsächlich ist jede dieser drei Gleichungen in ihrem jeweiligen Kontext richtig und keine der jeweils anderen wurde durch eine dieser Gleichungen widerlegt. Es wäre schlicht umständlich für an das Dezimalsystem gewöhnte Menschen, wenn wir unsere Gegenstände im Dualsystem zählen würden (obwohl aus mathematischer Sicht nichts dagegen spräche).

Ein Computer arbeitet jedoch anders, sodass ein anderes Modell als Grundlage verwendet werden kann – und das funktioniert im Rahmen der Digitaltechnik äußerst gut, wie man nicht zuletzt daran sehen kann, dass ihr hier gerade einen Blog über das Internet lesen könnt, in welchem durchaus sehr spezielle Mathematik zum Einsatz kommen kann, beispielsweise bei Komprimierungen und Verschlüsselungen. Es geht also auch hier letztendlich nicht um "die Wahrheit", sondern vielmehr um passendes Werkzeug zur Lösung einer Problemstellung.

Verbindung

Im Kontext unserer bisherigen Überlegungen sind nun auch die Verbindungen zu den anderen Wissenschaften, beispielsweise der Physik, zu betrachten. Mitunter abenteuerlich anmutende Beschreibungen natürlicher Phänomene bedeuten nun eben genau nicht, dass sich die Natur so verhalten muss, sondern die Natur verhält sich auch völlig ohne unsere Modelle genau so, wie sie es eben macht.

Unsere Modelle dienen lediglich der möglichst präzisen Beschreibung dessen, was wir beobachten können, um davon ausgehend beispielsweise Vorhersagen treffen zu können. Diese Modelle müssen möglicherweise angepasst werden, dies macht jedoch explizit nicht die dahinterliegende Mathematik falsch, sondern bedeutet lediglich, dass das falsche "Werkzeug" gewählt wurde – oder aber Fehler in der Anwendung gemacht wurden. Es sei entsprechend nochmals darauf hingewiesen, dass im Universum also keine Matrizen umherschwirren und auch physikalische Bezeichnungen sollte man nicht immer wörtlich nehmen (Quarks sind also nicht etwa bunt im üblichen Sinne, von "Farben" spricht man hier lediglich im Sinne einer Kategorisierung und "dunkle Materie" meint schlicht einen zumindest bisher nicht sichtbaren Einfluss) – dennoch können sie hilfreich sein, bestimmte Phänomene zu beschreiben.

Die Frage nach dem finalen "Warum?" kann schließlich niemand beantworten; Religionen deklarieren hier lediglich willkürlich und ohne jegliche Evidenz ihre vorgebliche Überzeugung zur "Erklärung" und schließen weitere Nachfragen aus. Konzeptionell ähnlich gehen Pseudo-Wissenschaften und Verschwörungstheorien vor, welche ohne jegliche Anhaltspunkte (bzw. sogar vielen gegensätzlichen Aspekten) einer Überzeugung anhängen. Bloße Gefühle, Meinungen und Sichtweisen genügen dem wissenschaftlichen Anspruch explizit nicht.

Vertreter

Typische Vertreter der Strukturwissenschaften sind die Informatik, Logik und Mathematik.


Bitte beachtet, dass dieser sehr vereinfachte Überblick nicht die ganze Breite der jeweiligen Begriffe und Fachgebiete klären kann, sondern vielmehr dem interessierten Laien eine Möglichkeit der Einordnung geben soll. Sofern ich mit diesem Beitrag dazu anregen konnte, diese Arten der Wissenschaft besser differenzieren zu können und nicht gar nur als "akademische Selbstbeschäftigung" zu betrachten, würde ich mich jedoch sehr freuen.

Weiterführende Informationen und Verweise

Forschungseinrichtungen in Deutschland
Wissenschaftlich orientierte Blogs und Podcasts
Magazine

Die Spektrum der Wissenschaft Verlagsgesellschaft veröffentlicht mehrere (natur-)wissenschaftliche Magazine, darunter insbesondere auch das bekannte Spektrum der Wissenschaft. Die Ausgaben erscheinen monatlich und bieten oftmals auch (ggf. auf Deutsch übersetzte) Artikel direkt beteiligter Forscher.

CCC-Fahrplan aktualisiert 👍 👎

Meine Variante des CCC-Fahrplans wurde erneut aktualisiert und enthält nun auch Informationen zum 35c3.

Die Daten werden regelmäßig aktualisiert; für verbindliche Angaben halte dich bitte an den offiziellen Fahrplan.

Traceroute per C# 👍 👎

In früheren Beiträgen hatte ich bereits erläutert, wie man per C# auf eine Konsolenausgabe zugreifen und programmatisch einen Ping durchführen kann. Dieser Beitrag soll nun ein einfaches Tracerouting per C# nachbilden. Dazu implementieren wir im Folgenden eine einfache (und wie üblich auf das Wesentliche reduzierte) Klasse, welche die Funktionalität durch sukzessive Erhöhung des TTL-Wertes für schlichte Ping-Pakete umsetzt.
Klasse implementieren
01020304050607080910111213141516171819202122232425
public class Traceroute : IDisposable {    private static readonly byte[] buffer = new byte[] {        0x01, 0x03, 0x03, 0x07    };  // Daten zur Übertragung
private readonly Ping ping = new Ping();

public IEnumerable<PingReply> Send(string hostNameOrAddress, int timeout = 3000) { // Paket mit TTL=1 initialisieren PingOptions pingOptions = new PingOptions(1, false);
PingReply pingReply = null;
do { pingReply = this.ping.Send(hostNameOrAddress, timeout, Traceroute.buffer, pingOptions);
// TTL für nächsten Schritt inkrementieren pingOptions.Ttl++;
yield return pingReply; } while(pingReply.Status != IPStatus.Success); }
public void Dispose() => this.ping.Dispose();}
Die Verwendung gestaltet sich nun sehr einfach:
Klasse verwenden (exkl. Namensauflösung)
0102030405
using(Traceroute traceroute = new Traceroute()) {    foreach(PingReply pingReply in traceroute.Send("coders-online.net")) {        Console.WriteLine(pingReply.Address);    }}
Um die entsprechenden Hostnamen zu den jeweiligen IP-Adressen zu ermitteln, kann beispielsweise die Methode Dns.GetHostEntry(…) dienen:
Klasse verwenden (inkl. Namensauflösung)
0102030405060708091011
using(Traceroute traceroute = new Traceroute()) {    foreach(string hostNameOrAddress in traceroute.Send("coders-online.net").Select(pR => {        try {            return Dns.GetHostEntry(pR.Address).HostName;        } catch {            return pR.Address.ToString();        }    })) {        Console.WriteLine(hostNameOrAddress);    }}

Syslog-Nachrichten mit C# versenden 👍 👎

Syslog beschreibt einen Protokollierungsstandard. Dieser Beitrag soll die beispielhafte Implementierung eines C#-Clients aufzeigen. Dazu werden UDP-basierte Nachrichten im (älteren) BSD-Format nach RFC 3164 erzeugt.

In einem früheren Beitrag hatte ich bereits mein NAS von Synology erwähnt. Sofern ihr ebenfalls ein solches besitzt, könnt ihr dieses sehr einfach als Server einrichten und somit direkt für die Beispiele (und mehr) nutzen.
Syslog-Klasse implementieren
010203040506070809101112131415161718192021222324252627282930313233343536
public class Syslog : IDisposable {    private const int Facility = 1;  // user-level messages    private const int FacilityFactor = 8;
private readonly UdpClient udpClient;

public Syslog(string hostname = "localhost", int port = 514) { this.udpClient = new UdpClient(hostname, port); }
public void Send(Severity severity, string message, [CallerMemberName] string caller = null) { byte[] data = Encoding.UTF8.GetBytes(String.Format("<{0}>{1} {2} {3}", ((Syslog.Facility * Syslog.FacilityFactor) + (int) severity), DateTime.Now.ToString("MMM dd HH:mm:ss"), Dns.GetHostName(), ((!String.IsNullOrWhiteSpace(caller)) ? (caller + " ") : (String.Empty)) + message ));
this.udpClient.Send(data, data.Length); }
public void Dispose() => this.udpClient?.Dispose();

public enum Severity { Emergency, // [0] system is unusable Alert, // [1] action must be taken immediately Critical, // [2] critical conditions Error, // [3] error conditions Warning, // [4] warning conditions Notice, // [5] normal but significant condition Informational, // [6] informational messages Debug, // [7] debug-level messages } // https://tools.ietf.org/html/rfc3164}
Es handelt sich hierbei – wie üblich – um eine minimale Implementierung ohne Fehlerbehandlung, welche außerdem keine Konfiguration des Facility-Wertes ermöglicht. Die Verwendung gestaltet sich nun jedoch sehr einfach:
Syslog-Klasse verwenden
01020304
using(Syslog syslog = new Syslog("syslog.example.net")) {    syslog.Send(Severity.Notice, "Dies ist eine weniger interessante Meldung.");    syslog.Send(Severity.Warning, "Dies ist eine sehr interessante Meldung.", "MyApp");}

CCC-Fahrplan aktualisiert 👍 👎

Mein im letzten Jahr gestarteter CCC-Fahrplan wurde aktualisiert und enthält nun Informationen zum 34c3.

Die Daten werden regelmäßig aktualisiert; für verbindliche Angaben halte dich bitte an den offiziellen Fahrplan.

Projektverweise

Kategorien / Archiv  |  Übersicht RSS-Feed

Schlagworte

Suche