Nie mam zamiaru nikogo indoktrynować. Nie mam zamiaru dyskutować o wyższości tego nad tym i owego nad tamtym. Zamierzam natomiast przedstawić parę zalet regionów oraz powód, dla którego podobają się właśnie mi. A skoro już zdradziłem, że wpis jest subiektywny i tendencyjny, to zacznę właśnie od tego powodu. Z urodzenia jestem ...
Strona głównaUżytkownik
PaSkol | użytkownik
Sztuka programowania 4044 dni, 4 godziny, 1 minutę temu 200 źrodło rozwiń
Jeżeli po przeczytaniu tytułu tego wpisu masz mieszane uczucia, bo niby co wspólnego może mieć psychologia z programowaniem, to zanim postanowisz zrezygnować z dalszej lektury, przypomnij sobie o wzorcach projektowych, a dokładnie skąd się one wzięły. Tak, początkowo to nie był pomysł programisty, ale architekta. Okazał się on jednak nie przystawać do tej dziedziny, za to zgrabnie dał się zaadaptować do naszego podwórka. W przypadku psychologii analogia nie jest może aż tak bezpośrednia, niemniej ...
Sztuka programowania 4066 dni, 7 godzin, 54 minuty temu 297 źrodło rozwiń
Dane w postaci tekstowej mogą posiadać różnorodne formaty. Poszczególne wartości mogą być w nich odseparowane od siebie w dowolny sposób: albo za pomocą dedykowanego znaku, albo poprzez przyjęcie, że każda wartość zajmuje z góry ustalony obszar, a jeśli nie wypełnia jego całości, to jest on uzupełniany spacjami. Same wartości mogą mieć różną postać, wystarczy chociażby pomyśleć o dacie...
Bazy danych i XML 4066 dni, 7 godzin, 54 minuty temu 280 źrodło rozwiń
Takie stwierdzenie nasunęło mi się przedwczoraj podczas przeglądania dotNETomaiank.pl. Chodzi mi dokładnie o to, że nikt nie podbija. Zaglądnąłem na główną, a tam z góry na dół same jedynki i jedna dwójka (na 20 wpisów). Po co się starać fajny post napisać, jak tak naprawdę i tak wszystko jest płaskie i każdy kliknie. Od tego jest .NET Blogs PL, gdzie po prostu serwuje się aktualne posty z blogów, które chcą się tam ...
Zgodnie z zapowiedzią pora na kolejną garść "gotowców" – skryptów, które mogą się przydać. Na początek sposób na przetwarzania prostych formuł (jedynie dodawanie i odejmowanie). Załóżmy że mamy takie wyrażenie: A1+A2-A3, a dodatkowo wartości jego składników przechowywane są w tabeli...
Bazy danych i XML 4100 dni, 8 godzin, 9 minut temu 151 źrodło rozwiń
Niedawno opublikowałem zestaw gotowych skryptów SQL, które mogą się przydać w konkretnych sytuacjach lub posłużyć jako wzorzec w innych przypadkach. Ponieważ – w ramach porządków – znowu uzbierało mi się kilka takich skryptów – i je postanowiłem zaprezentować. Tym sposobem samoistnie powstał mi cykl. Na początek przykład ...
Bazy danych i XML 4106 dni, 12 godzin, 34 minuty temu 170 źrodło rozwiń
Rozpoczynając korzystanie z edytora Visual Studio bardzo dotkliwie odczuwałem brak wspomagania dość prostej czynności jaką jest otaczanie nawiasami klamrowymi – analogicznie do edytora Delphi, który wspomaganie pisania konstrukcji begin … end realizował wzorcowo. Powodowany niedosytem dostępnych możliwości środowiska, odkryłem wkrótce darmowe narzędzie produkcji Microsoft o nazwie Productivity Power Tools rozszerzające VS o tę umiejętność, jak również o wiele innych. Postaram się przedstawić teraz więks...
Czasami w WPF zachodzi potrzeba stworzenia dependency property ale tylko do odczytu. Zwykłą właściwość bardzo łatwo zaimplementować tzn.:publicdouble Area { get { return width*height; } } Jeśli korzystamy z binding’u danych, wtedy powyższe rozwiązanie jest niewystarczające i należy skorzystać z dependnecy property. Dla przypomnienia, standardowa deklaracja wygląda następująco:publicclass MyStateControl : ButtonBase { public MyStateControl() : base() { } public Boolean State { g...
Wyobraźmy sobie, że mamy jakiś zestaw zmiennych, którym chcielibyśmy nadawać wartości w zależności od kategorii, która je opisuje. Jednocześnie – pomimo przynależności do tej kategorii – jeżeli wartość zmiennej dla owej kategorii nie została zdefiniowana – chcielibyśmy, aby taka zmienna używała wartości domyślnej. Zakładamy też, że wartości domyślne posiadają wszystkie zmienne i jeśli zajdzie potrzeba uzależnienia wartości zmiennej od posiadanej przez nią kategorii, nie ma to oznaczać...
Bazy danych i XML 4169 dni, 5 godzin, 38 minut temu 114 źrodło rozwiń
Ten wpis będzie po trosze prywatą ;). Nazbierało mi się kilka różnych skryptów, zazwyczaj są to pojedyncze polecenia SQL, które warto mieć pod ręką. No właśnie ;). Rzecz w tym, że nie zawsze pod tą ręką są, a tu na blogu praktycznie w 99% przypadków by były. Zatem dzielę się nimi, a przy okazji zapewniam sobie ich większą dostępność dla siebie. Na początek skrypt ...
Bazy danych i XML 4176 dni, 4 godziny, 26 minut temu 219 źrodło rozwiń
Zakładam, że polecenia update języka T-SQL nie trzeba nikomu przedstawiać. Jest to jedno z jego czterech podstawowych poleceń. Służy do aktualizacji zawartości kolumn tabeli. Zakładam jednak, że niewiele osób wie, iż polecenie to potrafi także aktualizować...
Bazy danych i XML 4182 dni, 12 godzin, 56 minut temu 167 źrodło rozwiń
Tytuł niniejszego wpisu zapożyczyłem z piosenki zespołu „Raz, Dwa, Trzy”. Uważam, że doskonale oddaje sens rozważań, którymi chciałbym się w tym wpisie zająć. Dość dawno temu usłyszałem ciekawą radę, aby nie nazywać spraw problemami, ponieważ słowo to niesie negatywny wydźwięk i podświadomie sprawia, że normalna sprawa rzeczywiście urasta do rangi problemu. Dlatego sprawy, które są zadaniami do zrealizowania nie powinny być problemami do rozwiązania, zadania matematyczne – nie powinny być ...
Kiedy wprowadza się reguły? Zazwyczaj wówczas, kiedy zjawiska zachodzące w danym środowisku zaczynają wymykać się spod kontroli. Weźmy np. pojazd komunikacji miejskiej. Jeżeli jest on praktycznie pusty, to można z niego wysiadać w tym samym momencie, w którym ktoś chce wsiąść – ta garstka pasażerów wyminie się w drzwiach w sposób intuicyjny. Jeśli jednak liczba wysiadających jak i wsiadających zwiększy się, to konieczna będzie już jakaś regulacja – np. ...
Architektura 4192 dni, 3 godziny, 30 minut temu 105 źrodło rozwiń
Reguły, zasady – przemyślenia na ich temat ostatnio opanowały mój umysł, więc naturalną konsekwencją jego stanu są kolejne moje wpisy. I czuję, że to jeszcze nie koniec. Na blogu ostatnio jest bardziej filozoficznie, ale tak bywa, kiedy dokonuje się retrospekcji. Dziś co nieco o regule nazywania warunków (wywodzącej się z reguły wydzielania metody). Chodzi w niej o to, aby wyrażenia logiczne występujące w kodzie...
Sztuka programowania 4198 dni, 40 minut temu 191 źrodło rozwiń
Informatyka z racji swojego sformalizowania kocha się w regułach. Nie można się praktycznie ruszyć, by w jakąś nie wdepnąć. Zaczynam się powoli zastanawiać, czy nie mamy tutaj do czynienia ze zjawiskiem podobnym do eksplozji klas – eksplozją reguł. Bezsprzecznie do tego stanu rzeczy przyczyniają się także blogi. Widywałem na blogach wpisy, w których ...
Sztuka programowania 4203 dni, 7 godzin, 14 minut temu 219 źrodło rozwiń
Komentarze z reguły są złe, zamiast nich należy pisać czytelny kod (czyli kod, który czytany wyjaśnia swoje działanie). Są złe bo się dewaluują, tj. po jakimś czasie nie korespondują z kodem, opisują go w nieprawdziwy sposób, bo kod się zmienił. Jest to prawda, której obecnie nie trzeba chyba już nikomu tłumaczyć, przynajmniej tym, którzy trzymają rękę na programistycznym pulsie. Czy zatem rezygnując z komentarzy oraz pisząc czytelny kod pozbyliśmy się całego ich zła? Niekoniecznie, ono czeka cierpliwie...
Sztuka programowania 4205 dni, 1 godzinę, 36 minut temu 199 źrodło rozwiń
SQL Profiler – jak zapewne większość wie – jest narzędziem pozwalającym śledzić pracę SQL Serwera. Chyba najbardziej popularnym jego wykorzystaniem, jest śledzenie poleceń SQL przesyłanych do serwera. Zapewne także większość wie, iż nie jest to narzędzie darmowe. Co zatem zrobić, kiedy posiadamy jedynie wersję Express SQL Serwera? Okazuje się, że wiele zadań SQL Profilera można zrealizować samodzielnie. W tym wpisie ...
Bazy danych i XML 4232 dni, 6 godzin, 39 minut temu 175 źrodło rozwiń
Po odłożeniu kodu na weekend, jego przeglądzie i uwzględnieniu komentarzy, można uznać proces refaktoryzacji za zakończony. Pisząc „proces” mam tu na myśli wykonanie refaktoryzacji o ściśle określonym celu – w tym przypadku było to stworzenie mechanizmu importu, który zastąpi używany obecnie. Nie wchodziły zatem w ten proces...
Sztuka programowania 4287 dni, 1 godzinę, 20 minut temu 84 źrodło rozwiń
Ostatnią z czynności refaktoryzacyjnych będzie przystosowanie dotychczasowej klasy MethodObject do używania powstałych w trakcie refaktoryzacji klas. Jak można sprawdzić w części drugiej, klasa ta posiadała cztery publiczne metody: ImportCSV(), ImportTabSeparated(), ImportFixed(), ImportBinary(). Metody te były następnie wykorzystywane przez interfejs użytkownika do wykonywania odpowiednich importów. Te metody muszą zostać zachowane, zmieni się natomiast ich implementacja. Zmianie ulegnie też...
Sztuka programowania 4295 dni, 11 godzin, 58 minut temu 35 źrodło rozwiń
W dotychczasowym procesie refaktoryzacji udało nam się stworzyć elastyczny mechanizm importu – uzyskaliśmy tym samym podstawową funkcjonalność w zadowalającej postaci. Pora zająć się pozostałymi operacjami, które są niezbędne, aby uzyskać kompletną, pierwotną funkcjonalność refaktoryzowanego kodu. Na implementację oczekują przecież: zdefiniowany na początku interfejs IFileSelector i jego pochodna IFilteredFileSelector. Konieczne jest też zaimplementowanie ...
Sztuka programowania 4296 dni, 19 godzin, 33 minuty temu 43 źrodło rozwiń