Menu / szukaj

Godmode w LiveBoxie

Wydawać się mogłoby, że taka czynność jak zdefiniowanie statycznego adresu IP na postawie numeru MAC w XXI wieku nie powinna sprawiać najmniejszych problemów. Do niedawna myślałem, że na rynku nie znajdzie się router, który nie ma takiej funkcjonalności, a tu ostatnio musiałem zrobić taką rzecz w LiveBoxie. Przechodząc przez standardowe menu nie znalazłem żadnej funkcji, która by na to pozwalała. Jak to zwykle w takiego typu problemach sięgnąłem do Google. I owszem znalazło się wiele rozwiązań, ale większość z nich bazowało na telnecie. Takie rozwiązanie nie było akceptowalne ponieważ docelowo zmiany takie powinien przeprowadzić zwykły użytkownik routera, który musiałem skonfigurować. Bawienie się routerem przez telneta niosło duże zagrożenie, że coś zostanie przypadkowo popsute. Czytaj dalej

Odjechany na rockowo spektakl muzyczny – Leningrad

Dziś chciałem polecić wszystkim spektakl – Leningrad. Chciałbym coś napisać co zachęciłoby Was do wybrania się na ten spektakl, ale sądzę, że żadne słowa nie oddadzą tego co dzieje się na scenie. Masa energii, muzyki, humoru, euforii i przede wszystkim super kreacje Mariusza Kiljana i Tomasza Marsa. Podsumowując – nigdy nie wyszedłem radosny ze spektaklu. Byłem na nim w październiku i teraz w styczniu wybieram się po raz kolejny. A zresztą zobaczcie sami…

Czytaj dalej

Reset indeksu tabeli w SQL

Dziś potrzebowałem zrobić bardzo nietypową operację – zresetować indeks w tabeli w MS SQLu. I szczerze mówiąc nie sądziłem, że robi się to tak prosto. W tym celu należy użyć komendy:

DBCC CHECKIDENT (nazwa_tabeli, reseed, ostatni_indeks)

W komendzie podajemy nazwę tabeli, w której chcemy zresetować indeks oraz numer ostatniego indeksu w tabeli. Jeżeli chce się aby automatycznie generowane numery zaczynały się od 1 to należy użyć tego polecenia w następujący sposób:

DBCC CHECKIDENT (nazwa_tabeli, reseed, 0)

Należy pamiętać, że użycie tej komendy może spowodować błąd, w sytuacji, gdy ustalimy pierwszą wartość poniżej wartości użytych już w tabeli.

Snippety

Ostatnio odkryłem na nowo funkcjonalność definiowania własnym szablonów kodu. Funkcjonalność ta jest bardzo często nie wykorzystywana przez programistów, ale potrafi zdziałać cuda. W pisaniu aplikacji biznesowej zawsze przychodzi taki moment, że trzeba napisać kod służący do zapisywania danych do bazy, jak równię ich odczytywania.

W takim przypadku 90% kodu jest taka sama. Po pierwsze odczytujemy numer kolumny, w której przechowywane są dane w np. SQLDataReader. A następnie budujemy na podstawie danych obiekty. W trakcie odczytu danych z bazy należy oprogramować działanie w sytuacji gdy wystąpi null. I tu najczęściej sprawdza się czy w kolumnie odczytywanej występuje wartość null. Jeśli tak to podstawia się jakąś domyślną. Jeśli nie ma nulla to odczytuje się wartość z bazy.

Czytaj dalej

SerializableDictionary

Dzisiejszego dnia potrzebowałem użyć serializacji XML dla klasy Dictionary. Bardzo się zdziwiłem gdy okazało się, że klasa ta nie wspiera tego rodzaju serializacji. Wydawałoby się, że zapis danych w formacie XML jest dzisiaj już standardem, ale okazuje się, że jednak nie wszędzie. Stosując podstawową zasadę programisty po co pisać coś co ktoś inny już napisał uruchomiłem Google i zacząłem szukać rozwiązania. Udało mi się znaleźć kilka przykładów rozwiązania tego problemu, ale każde z nich miało jakiś drobny błąd, który powodował, że słownik nie działał tak jak powinien. Czytaj dalej

Productivity Power Tools – z czym to się je

Dzisiejszy wpis chciałem poświęcić dodatkowi do Visual Studio, bez którego uważam, że nie da się pracować. Osoby, które go nie używały nie wiedzą co tracą. Tym dodatkiem jest Productivity Power Tools. Jest on darmowy i można go pobrać ze strony http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef.

Czytaj dalej

MTS 2010 – moje przemyślenia

W ubiegłym tygodniu miała miejsce konferencja MTS 2010. Był to mój drugi wyjazd na MTS i szczerze mówiąc jestem lekko nim rozczarowany. Jeżeli mam go porównać do zeszłorocznego to wypada on zdecydowanie gorzej. Przede wszystkim mam trochę żal do organizatorów. Wydaje mi się, że ten MTS zatracił trochę swój charakter. Rok temu miałem odczucie, że trafiłem do jednej wielkiej rodziny, jeśli można to tak nazwać. Był czas na wszystko. Widać było duże zainteresowanie. Szczególnie jeśli widziało się sale pełne osób siedzących na schodach. W tym roku było inaczej. Było znacznie mniej czasu – przynajmniej w moim odczuciu. Pomiędzy sesjami biegało się z sali do sali w obawie przed tym, aby nie zamknięto drzwi przed nosem. Czytaj dalej

Sprawdzanie wersji Excela

W aplikacjach biznesowych bardzo często występuje funkcjonalność importu / eksportu danych z / do Excela. Jednym ze sposobów pobierania danych z Excela jest zastosowanie OLE DB jako dostawcy danych. Nie jest to może rozwiązanie najbardziej optymalne, ale czasami nie ma możliwości wpływu na jego wybór. W celu skorzystanie z tego sposobu należy zdefiniować łańcuch połączenia. I tu pojawia się problem ponieważ aby ten sposób zadziałał musi być zainstalowany Excel. Dodatkowo definicja łańcucha połączenia zależy od wersji Excela zainstalowanej na komputerze. Oba te warunki wymuszają sprawdzenie tego przed próbą pobrania danych z Excela. Czytaj dalej

Parallel.For – wielowątkowość nigdy nie była tak łatwa

W ostatniej wersji C# pojawiła się możliwość zrównoleglenia obliczeń w bardzo prosty sposób. Pętlę:

for (int n = 0; n <  8; n++)
{
   Console.WriteLine("Normal - iteracja {0} wątek {1}", n,
     Thread.CurrentThread.ManagedThreadId);
}&#91;/code&#93;
<p style="text-align: justify;">można zastąpić następującą konstrukcją:
Parallel.For(0, 8, i =>
{
   Console.WriteLine("Parallel - iteracja {0} wątek {1}", i,
      Thread.CurrentThread.ManagedThreadId);
});

Czytaj dalej