Za czasów .NETa 2.0, dość uciążliwym mógł być brak prostej możliwości rozszerzania już istniejących klas. Zespół MS postanowił ten sposób rozwiązać, tworząc właśnie “Extension methods”. I tak, .NET 3.5 oferuje nam całkiem przystępny mechanizm pozwalający dodawać nowe funkcjonalności do już istniejących typów. Zasada działania Działa to wszystko zadziwiająco łatwo. Najpierw odrobina kodu, zamienimy stringa na tabli...
Jako że omówiliśmy już jakie rodzaje dokumentacji należy tworzyć, możemy przejść do odpowiedzi na pytanie jak należy rozwinąć styl, dzięki której taką dokumentację będzie dało się czytać. Naucz się pisać Niestety, nie ma tutaj dróg na skróty. Najlepszym sposobem na nauczenie się jak pisać dobrą dokumentację jest najpierw nauczyć się pisać (cokolwiek). Istnieją pewne istotne różnice między dokumentacją techniczną i Twoją przeciętną prozą, ale solidne podstawy w komunikacji pisemnej są wymaganiem nie do za...
Wiedza, wiedza, wiedza… Tworzenie systemów operacyjnych to niszowa dziedzina informatyki. Zajmują się nią nieliczni. Osobiście uważam jednak, że posiadanie wiadomości z zakresu systemów operacyjnych, to absolutny obowiązek każdego szanującego się informatyka. Nie myślę tu oczywiście o umiejętności obsługi Linuksa, czy też administracji Windowsem, tylko o zagadnieniach typu wieloprocesowość i wielowątkowość, synchronizacja procesów i wątków, szeregowanie, zarządzanie pamięcią, czy choćby znajomość zarysu ...
Silników fizycznych mamy całą masę: Box2D, Bullet, Havok, PhysX, Newton Game Dynamics. Część jest OpenSource, część darmowa tylko do zastosowań niekomercyjnych, niektóre tylko komercyjne. Część 2D, cześć 3D. Część stosunkowo mało rozbudowana(np. pierwsze dwa z mojej listy), część to ogromne biblioteki(te komercyjne). Niestet...
Logika biznesowa projektu jest w znaczącej większości pokryta testami jednostkowymi. Od pewnego momentu do każdej nowej funkcjonalności staram się stosować podejście Test-Driven Development, pisząc najpierw testy ją definiujące. Nie robiłem tego od samego początku, bo wahał...
Autor: Podczas zmagań ze stworzeniem rejestracji użytkowników (która jest już dla BlogMaker'a w 90% skończona i wkrótce pojawi się o tym szerszy post) przyszło stworzyć kod aktywujący, który zostanie mailem wysłany do użytkownika, aby potwierdzić adres, na który rejestruje się dane konto. Ów kod nie jest niczym innym jak przypadkowym łańcuchem znaków. początkowo użyłem po prostu obiektu klasy Random, który przy odpowied...
Podczas stosowania Agile niezbędnym jest podział kolejnych funkcjonalności klienta na zadania (tasks), które przydzielane są następnie kolejnym członkom zespołu programistycznego. Funkcjonalności dzielimy na zadania na początku każdej iteracji - dzielimy tylko te funkcjonalności które mają być w danym okresie czasu zaimplementowane...
Niniejszym postem rozpoczynam cykl publikacji o zastosowaniu F# i związanych z nim narzędzi do tworzenia interpretera na przykładzie imlementacji V+, który wykorzystywany jest do programowania wirtualnego robota w środowisku RLab.
Ludzie branche tworzą… Motywów do tworzenia gałęzi w projektach jest co nie miara. W nie tak prehistorycznych czasach (które chyba z resztą trwają do dziś) królowania CVS, a później SVN większość rzeczy trafiała bezpośrednio do trunka – głównej gałęzi. Rozgałęzienia były tworzone w momentach, gdy projekt rzeczywiście obierał dwa, dosyć odmienne biegi rozwoju (np. v1 i v2 – obie rozwijane). Inną strategią (nie wykluczającą pierwszej!) było tworzenie gałęzi – stabilnej, rozwojowej, a czasem eksperymentalne...
Programowanie w parach, to jeden z najbardziej kontrowersyjnych pomysłów jakie spotkać możemy podczas przeglądania publikacji dotyczących extreme programming’u. Jak można pracować wydajniej redukując liczbę zadań nad którymi pracujemy o połowę? Brzmi niedorzecznie, a jednak ma szereg nie koniecznie widocznych od razu zalet…
Co pewien czas można natknąć się na porównania odnośnie mocy obliczeniowej komputerów bardzo dawnych i tych dzisiejszych. Takim dość typowym, często powtarzanym stwierdzeniem jest na przykład to, iż komputer sterujący misją Apollo 11 miał moc porównywalną z dzisiejszym kalkulatorem. Podobne ciekawostki służą czasami ukazaniu gigantycznego postępu, jaki dokonał się w ciągu ostatnich kilku dekad jeśli chodz...
Autor: Poprzednim razem pisałem dla tych, którzy marzą, że po nauczeniu się jakiegoś języka programowania, szybko zapełnią swój garaż nowymi modelami Ferrari, Astona Martina czy Lamborghini. Tym razem postaram się skupić bardziej na odpowiedzeniu na pytanie ludziom, którzy wyżej stawiają sobie własny rozwój niż ciągnący się za nimi tłum piszczących nastolatek. Źle. Kto widział żeby za programistami gani...
Autor: Mam silny background .NET-owy, zdarzyło mi się dłużej programować w Javie. Właściwie od kiedy zacząłem programować bardziej „na serio”, towarzyszyło mi Visual Studio, Eclipse, czy NetBeans. Od zawszę więc myślałem, że dobre środowisko pracy, to podstawa. Bynajmniej, nie twierdzę teraz inaczej – ale czy dobre środowisko oznacza ciężkie, w pełni wyposażone, dopasowane do danego języka IDE? A może „zwykły” edytor tekstu wystarczy?Rys historyczny Pierwszą styczność z edytorem tekstu, konk...
Na początku był Agile… Manifest Agile i zawarte w nim idee. Manifest, mimo że niezwykle odkrywczy był jednak bardzo ogólny – prezentował wartości, ale nie tłumaczył, jak wprowadzić je w życie. Nieuniknione było więc powstanie metodologii ściślej opisujących proces wytwarzania oprogramowania...
Dziś 13. września - 256. dzień roku. Święto wszystkich programistów i programistek. Zatem wszystkiego najlepszego bracia i siostry programistki! Mniej błędów w programach i więcej ciekawych zadań i wyzwań na nadchodzące przyszłe dni!
Kreatywność zespołu, to cecha pożądana przez każdego lidera zespołu – niezależnie od branży, będąc osobą odpowiedzialną za zespół wymagamy kreatywnego podejścia, tj. wprowadzania nowych pomysłów do projektów w zakresie wiedzy technicznej czy też procesów przyczyniających się do zakończenia projektu przed czasem. Pracownicy przejawiający inicjatywę, wychodzący z nowymi koncepcjami, ideami, skojarzeniami stanowią filar i siłę napędową zespołu.
Dość często natyka się człowiek (bądź ktokolwiek inny) całkiem niechcący na taki czy inny kawałek internetu mający uchodzić za ZABAWNY. Zabawność, oceniana w skali 1-10, mimo wysiłku autorów zwykle oscyluje jak dla mnie w granicach 3-4. Poniżej przedstawiam sześć ewenementów bezapelacyjnie ocenionych przeze mnie na 10/10, które w ciągu ostatnich kilku miesięcy spowodowały zetknięcie się kącików mych ust w centralnym punkcie tyłu głowy. Większość z was pewnie je zna. Wszystkie są świetne. Kolejność losowa.
Autor: Zbliża się już prawie rok od kiedy .NET Blogs PL istnieje, a ja przez cały czas zbierałem się jak sójka za morze by napisać drugą wersję. Teraz przyszła na to pora :) Jednak zanim za to się zabiorę jestem ciekaw (jeżeli oczywiście korzystacie z dotnetblogs.pl) jakich funkcjonalności wam brakuje, czy w ogóle jakiś brakuje? Co byście zmienili? Częściej korzystacie z agregowanego RSS czy wchodzicie na stronę?
Nie jest to może news w pełnym tego słowa znaczeniu, ale ponieważ do tej pory o tym nie pisałem... więc oto informacja: Ok. 2 miesiące temu został uruchomiony portal z artykułami dla programistów ...
Jak się okazuje, elementy używane w czasie tworzenia aplikacji pod OpenNETCF.IoC niewiele różnią się od tradycyjnych elementów używanych w aplikacjach opartych na Smart Client Software Factories ( na szczęście nie ma tu ‘automatów’ generujących tony kodu jak z karabinu maszynowego). W końcu OpenNETCF.IoC bazuje na MCSF, które z kolei bazowało na SCSF. Więc jeżeli ktoś wcześniej ich używał, powinien mieć zadanie ułatwione Generalnie, OpenNETCF.IoC pozwalają na stworzenie aplikacji opartej o moduły, któr...