Autor: Ostatnie kilka dni przesiedziałem nad samą fizyką. Nie implementowałem jej(w sposób nie-testowy) w grze, gdyż najpierw musiałem poznać tą bibliotekę i opracować „jak to zrobić”. Całe szczęście Box2D jak i Farseer Physics używa się przyjemnie i nie miałem większych problemów z ogarnięciem ich. Przy pierwszym s...
Dzisiaj musiałem w LINQ TO SQL napisać zapytanie odpowiadające takiemu zapytaniu w T-SQL...
Bazy danych i XML 5193 dni, 5 godzin, 21 minut temu 71 źrodło rozwiń
Podobnie jak w przypadku większości standardowych operacji, gdy mowa o wysyłaniu poczty, biblioteka Microsoft .NET zawiera intuicyjnie zaprojektowane klasy pozwalające na szybką implementacje tej akcji we własnym kodzie. Pomimo niskiego stopnia trudności, pomysł zebrania wszystkich potrzebnych informacji w postaci krótkiego artykułu nie uważam za chybiony. Zapewne zaoszczędzi to czas programistom którzy szukają w pełni działającego przykładu, czy szybkiego przeglądu tego obszaru biblioteki .NET.
Na początek przytoczę źródło o może niezbyt wysokiej renomie w ostatnim czasie, charakteryzujące się jednak dużą liczbą opisywanych nowinek - http://www.chip.pl/news/wydarzenia/umowy-i-fuzje/2010/09/sojusz-microsoftu-i-wordpressa-oznacza-koniec-dla-windows-live-spaces Jako, że sam posiadam bloga w serwisie Windows Live jest to dla mnie smutna wiadomość, tym bardziej, że gorąco kibicuje całej platformie jaką jest Windows Liv...
Visual Studio posiada opcje, która pozwoli przenieść się do fragmentu kodu gdzie została zdefiniowana dana zmienna. Wystarczy zaznaczyć daną zmienną i wybrać z menu kontekstowego opcję „Go To Definition”. To samo można osiągnąć wciskając domyślnie zdefiniowany klawisz F12. Jednak oba sposoby nie było dla mnie zbyt wygodne. W Visual Studio Gallery możemy znaleźć małe rozszerzenie, które rozwiązuje ten problem. Po instalac...
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...
Witam dziś podczas kodowania natrafiłem na dosyć nieprzyjemne utrudnienie. Mianowicie dotyczy ono wstrzykiwania poprzez IoC HttpContext i pobierania aktualnego kontekstu do klas które tego potrzebują np. sesja. ciasteczka itp. Jak wiadomo HttpContext jest trudno dostępnym obiektem i ciężko w łatwy sposób wstrzyknąć. Wiec postanowiłem napisac wrapper do HttpContext.
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 ...
W ramach relaksu postanowiłem dziś skupić się na mało istotnym, aczkolwiek bardzo irytującym mnie szczególe. Mam na myśli wykorzystywany przeze mnie skrypt TinyMCE (wspominałem o nim tutaj). Otóż po najechaniu na przyciski odpowiedzialne za pogrubianie, pochylanie (itp) tekstu, wyświetlają się podpowiedzi… w języku angielskim. Skoro tworzę cały projekt po Polsku, postanowiłem także ten drobny element spolszczyć. Zajrzałem więc na oficjalną stronę projektu w poszukiwaniu informacji związanych ze zmianą d...
Visual Studio 2010 wprowadza dużo zmian i mnóstwo ułatwień w sposób rozszerzania środowiska. Microsoft dołożył wielu starań aby proces tworzenia wtyczek był o prostszy, niż było to do tej pory. I zgadnijcie co? Udało się!
Pierwsze relacyjne bazy danych powstały w latach ‘70 ubiegłego wieku, na długo przedtem nim języki programowania zorientowane obiektowo stały się popularne. Obecnie są standardem jeśli chodzi o mechanizm persystencji w programowaniu obiektowym. Jednak o tym, że translacja obiektowego modelu na relacyjny jest bardzo często procesem karkołomnym, nieprzyjemnym i bł...
Architektura 5194 dni, 18 godzin, 28 minut temu 185 źrodło rozwiń
W poprzedniej części serii poświęconej tematyce WPF 3D, opisane zostały rodzaje materiałów, jakimi można pokrywać figury i bryły w tworzonej scenie 3D, pominięte ciszą zostały natomiast pędzle wykorzystywane do przygotowania odpowiedniego materiału. W tym wpisie wiadomości dotyczące pokrycia figur zostaną uzupełnione i omówione zostaną pędzle, które są elementem wykorzystanego materiału. Wykorzystanie pędzla jest konieczne do przygotowania materiału dla wybranej figury lub bryły w scenie. W odróżnieniu j...
Okiełznać mysz w XNA + WF Podstawowym elementem zaznaczania jest ustalenie pozycji myszy na ekranie. Przy pracy nad tą funkcjonalnością pewien delikatny niuans sprawił, że zajęło to zdecydowanie dłużej, niż zakładałem.Mysz w XNA Dobranie się do pozycji myszy w czystym XNA jest niezmiernie łatwo. Służy do tego obiekt klasy MouseState, który wypełniamy bieżącymi informacjami fragmentem kodu: MouseState mouseState = Mouse.GetState(); Po wykonaniu takiej operacji obiekt mouseState zawiera aktualną pozycję m...
Konwertery to bardzo przydatny mechanizm WPF'a pozwalający, w czasie procesu bindowania, na konwersję pomiędzy różnymi typami wartości. Wcześniej czy później przyjdzie taki monent, że będziemy musieli/chcieli napisać swój własny konwerter. Możemy zrobić to na kilka sposobów. Poniżej postaram się przybliżyć rózne sposoby implementacji konwertera z ich zaletami i wadami. Jako przykład w poniższych rozważaniach posłuży DateConverter z MSDN'a. Podejście pierwsze (StaticResource)Realizacja konwertera polega ...
Visual Studio jako środowisko programistyczne dostarcza wiele mechanizmów ułatwiających pracę programistom – różnego rodzaju wizardy czy skróty klawiaturowe. Odkąd pracuję nad aplikacją pisaną w ASP.NET MVC, szczególnie podoba mi się możliwość szybkiego przełączania pomiędzy widokiem a powiązanym z nim kontrolerem. Można to uczynić bardzo szybko klikając prawym przyciskiem myszki w ciele metody (kontrolera) b...
Mechanizm dodawania zdjęć już napisałem, więc przyszedł czas na przemyślenie kwestii ich wyświetlania. W dzisiejszych czasach pewnego rodzaju standardem jest używanie do tego celu różnych skryptów – w większości przypadków napisanych za pomocą JavaScript’u. Do najpopularniejszej grupy takich mini-galerii należą tzw. LightBox‘y, które najłatwiej skojarzyć z efektownym nałożeniem półprzezroczystego tła na stronę i wyświetleniem pożądanego elementu na jej pierwszym planie. Najpopularniejsze skrypty, które t...
W dzisiejszej części przedstawię sposób wykorzystania corutines w Silverlight. Corutines to mechanizm pozwalający na wykonywanie sekwencji kodu tzn. do puki nie skończy się działanie danego bloku kodu, program nie przejdzie dalej. W Silverlight, gdzie wszystko musi być wywoływane asynchronicznie tego typu mechanizm jest wręcz zbawieniem. Nie oznacza to, że od teraz wszelkiego rodzaju operacje będziesz wykonywał przy wykorzystaniu corutines. To by zabiło całą koncepcję technologii Silverlight, jednakże z...
Silverlight 5195 dni, 20 godzin, 31 minut temu 30 źrodło rozwiń
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ł...