Thursday, 25 January 2007

Koniec monopolu?

Dobre wieści dla korzystających z Neostrady TP. Zgodnie z zawartą w zeszłym roku umową między TPSA a Netią, od 15 marca zasięg usługi Net24 (ADSL) ulegnie rozszerzeniu praktycznie na wszystkich aktualnie korzystających z Neostrady. Netia przygotowała specjalny cennik dla chętnych do zmiany dostawcy dostępu do internetu. Oferta jest bardzo atrakcyjna cenowo (125 złotych miesięcznie, brutto, za łącze 6Mbps/256kbps !) a co więcej, nie posiada limitu transferu. Jeśli choć raz TPSA przycięła Ci kurek do 4KBps - wiesz, jak to boli.


Cała sprawa jest o tyle bardziej interesująca, że TPSA została właśnie zmuszona do zmiany regulaminu świadczenia usługi Neostrada. A to oznacza (patrz § 33 p. 1,3 - pdf), że abonent może wypowiedzieć umowę, nawet zawartą na czas określony, bez płacenia molochowi odszkodowania. W takim wypadku należy zgłosić rozwiązanie umowy do 14 lutego, 15 lutego wejdzie ono w życie. Haczyk jest jeden - czy jesteś w stanie przeżyć miesiąc (15 lutego - 15 marca) bez sieci?


Korzystanie z Net24 nie oznacza rozwiązania umowy z TPSA o abonament telefoniczny, ale pozwala zmniejszyć go nawet do planu socjalnego. Jest też możliwość przeniesienia abonamentu do np. Tele2, o ile nie zmieni to parametrów technicznych łącza (czyli wg. Biura Obsługi Klienta Tele2 - będzie działać).


Nie, to nie jest artykuł sponsorowany. To tylko wynik wściekłości osobnika, którego łącze nagle nie pozwala czytać stron internetowych, jeśli nie wyłączy się w przeglądarce pobierania obrazków. A i wtedy jest kiepsko. Tak, przekroczyłem limit...

Saturday, 20 January 2007

Sprawdzanie wydajności

Często zdarza się sytuacja, gdy programista ma kilka pomysłów na zaimplementowanie jednej operacji. Albo do jednego problemu pasuje parę algorytmów, każdy ma swoje zalety i nie do końca wiadomo, który wybrać. Zazwyczaj pisze się wtedy kawałek kodu do szybkiego zmierzenia czasu wykonywania i zapomina o nim po wykorzystaniu. Celem zaoszczędzenia kilku minut następnym razem, wrzucam w sieć prostą klasę do porównywania wydajności.


Mały wyjaśnienie dla dociekliwych: klasa napisana jest tak, by pomiary nie uwzględniały czasu pierwszej kompilacji wykonywanych metod oraz czasu ładowania potrzebnych bibliotek do pamięci. Pomiar wykonywany jest za pomocą DateTime.UtcNow - ta metoda jest nieco szybsza od zwykłego Now, ponieważ nie musi uwzględniać stref czasowych. Ma też tą przewagę nad odwołaniami do API windows, że działa pod linuksem. A mniejszą nieco dokładność łatwo zniwelować odpowiednio zwiększając liczbę wykonań testu.


Przykład wykorzystania:


static void Main(string[] args)
{
PerformanceTestRunner ptr = new PerformanceTestRunner(100000); // liczba przebiegów do wykonania
ptr["Something Old"] = new TestMethod(TestSomething);
ptr["Something New"] = new TestMethod(TestOtherWay);
ptr.Run(1000); // parametr do przekazania metodzie testującej
}

private static void TestSomething(Object o)
{ // tutaj trafia kod do sprawdzenia
}

private static void TestOtherWay(Object o)
{ // tutaj trafia kod do sprawdzenia
}