Schlagwort-Archive: Microsoft

Slippery When Wet #8: Parsing IP addresses in C#

I proudly present to you the eighth in a infinite number of posts of “Slippery When Wet.” In these posts I show you a little bastard I stumbled on.

When I was trying to read some IP addresses from a CSV file I parsed them with the method IPAddress.Parse() from the System.Net namespace. Everything worked fine up to the eighth ip address. There the Parse method threw a System.FormatException: The format of the IP address was not valid. The IP address that caused the problem looked like ‚127.000.000.008‘. In my opinion this looked like a valid number, although it could be written a little bit shorter.

But Microsoft sees the world a little bit different. According to the answer by Mario Cossi on the problem description I found on social.msdn.microsoft.com this behaviour is completly valid, as all the numbers with leading zeros should be considered as octal numbers and therefore 008 is not valid, as 8 in not in the range of octal numbers. Mario writes that this is defined by standards, but does not refere to the standard where this is defined.

I did some more research but could not find the standard that describes this behaviour. What I did find were some older RFCs (like RFC 790) where IP addresses (or ranges) were written in the format with the leading zeros.

According to a wikipedia article and a therein referenced draft there is no defined standard for the textual representation of a IPv4 address.

In my opinion, the design decision of Microsoft is not the best. At least there should be a possibility to set the expected behaviour in case of a leading zero octet. Especially as the IP address 010.010.010.010 could be interpreted as 10.10.10.10 or 8.8.8.8 and you would not get an error as it would be in octal as well as in decimal a valid number.

As Microsoft did not give this possibility, according to your data you have to read, you should possibily use your own parsing method instead of the built-in one.

Android holt bei den Tablets auf

Nachdem vor einem Jahr Android auf den Smartphones die 50%-Hürde geknackt hat, ist es auch bei den Tablets auf dem Weg, diese Hürde zu meistern. Laut den Zahlen des Marktforschungsunternehmens Strategy Analytics haben die Android-Tablets im dritten Quartal 2012 (3Q12) mit 10,2 Millionen verkaufter Geräte einen Marktanteil von 41,3% erreicht. Apple ist mit 14 Millionen verkaufter iPads immer noch Marktführer, der Marktanteil beträgt 56,7%. Microsoft wird mit 400’000 verkauften Geräten gelistet, gleich viele wie ein Jahr zuvor.
IDC hat ebenfalls Marktzahlen für 3Q12 veröffentlicht, jedoch nicht auf das Betriebssystem bezogen, sondern nach Herstellern. Die absoluten verkauftszahlen für Apple werden hier bestätigt, der Gesamtmarkt wird aber etwas grösser angenommen (27,8 Millionen gegenüber 24,7 Millionen bei Strategy Analytics). Dadurch ergibt sich bei IDC ein Marktanteil von 50,4% für die Tablets von Apple.

Ausblick
Die von Google angekündigten neuen Tablets der Nexus-Reihe dürften einige Käufer finden. Apple versucht aber durch das iPad mini den Markt der kleineren (7 Zoll) Tablets anzugreifen, den Android bisher alleine beherrschte. Und Microsoft startet mit Windows 8 auch richtig im Tablet-Markt. Die bisherigen Windows-Versionen waren ja nicht unbedingt für die Touch-Bedienung geeignet.
Die Verkaufszahlen dürften weiterhin steigen. Dies sicherlich auf Kosten der Netbooks, die wahrscheinlich entweder durch Tablets oder durch ausgewachsene Notebooks ersetzt werden dürften. Der Marktanteil von Apple bei den Tablets wird auf unter 50% sinken. Wie stark dabei die Android-Tablets den Marktanteil steigern können und wieviel Microsoft mit Windows 8 vom Kuchen abbekommt ist dabei schwierig abzuschätzen, da Windows 8 eben erst veröffentlicht wurde und Microsoft mit der eigenen Hardware beim Surface noch Probleme hat.

Zeitgeist revisited: A Browsers History

In meiner Zeitgeist-Auswertung habe ich auch die Marktanteile der Browser dargestellt. Aus Neugier wollte ich wissen, ob sich der Marktanteil eines Browsers stark verändert hat. Dazu habe ich die Zugriffe auf meine Webseite seit der Umstellung auf Piwik ausgewertet:

Browser Marktanteile April 2010 - Dezember 2011

Browser Marktanteile April 2010 - Dezember 2011


Grosse Verschiebungen sind nicht zu beobachten. Beim Internet Explorer ist ein leichter Abwärtstrend auszumachen, die Webkit-Familie kann diese Schwäche zu einer kleinen Marktanteils-Steigerung nutzen.

Für die allgemein als die grossen drei angesehenen Browser Firefox, Chrome und Internet Explorer habe ich noch Grafiken erstellt, die die verschiedenen Versionen der Browser darstellen. Daraus kann man die Aktualisierungen schön sehen. Als erstes der Internet Explorer:

Internet Explorer Versionen April 2010 - Dezember 2011

Internet Explorer Versionen April 2010 - Dezember 2011


Man kann schön sehen, dass der Browser nicht allzu oft überarbeitet wird, mehrere Versionen über lange Zeit verwendet werden und deshalb alte Versionen nicht so schnell ‚aussterben‘.

Als Gegensatz dazu Chrome von Google:

Chrome Versionen April 2010 - Dezember 2011

Chrome Versionen April 2010 - Dezember 2011


Die grosse Legende zeigt schon an, dass die Version sehr oft ändert, der Browser also fleissig überarbeitet wird. Der automatische Update-Mechanismus führt auch dazu, dass der Browser schnell aktualisiert wird und deshalb kaum alte Versionen im Umlauf sind.

Beim Firefox sieht man die Philosophie-Umstellung recht schön:

Firefox Versionen April 2010 - Dezember 2011

Firefox Versionen April 2010 - Dezember 2011


Bis im ersten Quartal des letzten Jahres wurde die Version 3.6 wohl weiterentwickelt, dies zeigte sich aber nur in der dritten Versions-Nummer (3.6.x). Ab der Version 4 wurde dann die Google-Philosophie der häufigen Updates mit Versionsnummer-Erhöhung an der ersten Stelle übernommen. Diese werden nun auch automatisch aktualisiert, so dass die Versionen 4 bis 7 kaum mehr im Einsatz sind.
Man sieht auch, dass etwa 20% der Besucher bei diesem „Update-Wahnsinn“ nicht mitmachen wollen und bei der Version 3.6 geblieben sind.

Die Tendenzen entsprechen auch den bei browser-statistik.de gezeigten Statistiken der Browser-Versionen (Achtung: umgekehrte Darstellung, neue Versionen werden unten hinzugefügt).