Ostatnio napisałem jak możemy odebrać pingback z innego serwisu/strony. Teraz pora na to byśmy my poinformowali inną stronę, że linkujemy do niej. Samo w sobie wysyłanie nie jest skomplikowane, jednak to kiedy wysłać pingback może stanowić nie lada problem. Na przykład dodajemy post, który ma się wyświetlić 30 kwietnia, kiedy więc powinniśmy wysłać pingback? Przy dodaniu? Nie da rady bo go jeszcze nie ma widocznego, przez co nie ma jak zweryfikować czy pingback pochodzi z naszego źródła. Przy pierws...
Krótko o tym jak i kiedy korzystać z Creation methods.
Sztuka programowania 3403 dni, 10 godzin, 30 minut temu 383 źrodło rozwiń
W poprzednim wpisie przedstawiłem podstawy macierzy DSM. Dzisiaj postaram się wyjaśnić, jakie znaczenie ma to w praktyce. Sam fakt, że macierz pokazuje referencje między różnymi elementami systemu nie jest zbyt ciekawy. Pierwszą własność, jaką w łatwy sposób możemy odczytać z DSM jest spójność (cohesion). Dokładna wartość spójności zależy od konkretnej metryki. Ogólnie pisząc, wysoka spójność w systemie oznacza, że elementy w nim są bardzo od siebie zależne. Przyjrzyjmy się następującemu przykładowi (źr...
Sztuka programowania 3403 dni, 10 godzin, 30 minut temu 101 źrodło rozwiń
Opublikowano Do 22 kwietnia JetBrains oferuje zniżkę na swoje produkty w wersji personal. Więcej informacji tutaj: http://www.jetbrains.com/specials/ Tutaj cenniczek:ReSharper (34% OFF)IntelliJ IDEA (50% OFF)WebStorm (41% OFF)AppCode (40% OFF)PyCharm (40% OFF)PhpStorm (40% OFF)RubyMine (40% OFF)dotTrace Performance (35% OFF)dotCover (40% OFF) To też może Cię zainteresować:JetBrains szalejeWebcast z Johnem SkeetemWarsztat czyli moje narzędzia pracyWarsztat czyli moje narzędzia pracy–te używane spor...
Dziś krótki post informacyjny o zbliżającej się wielkimi krokami konferencji. Już niebawem odbędzie się konferencja ...
W dzisiejszym wpisie chciałbym zaprezentować macierz zależności i co można z niej odczytać. Pominiemy aspekty matematyczne – ze względu, że jest to macierz istnieje wiele faktów matematycznych ale myślę, że nie są one najważniejsze dla programisty. Załóżmy, że mamy prostą aplikację składającą się z klienta, warstwy usług, biznesowej oraz DAL. Macierz możemy wygenerować w nDepend – o tym programie kiedyś już pisałem. Umożliwia przede wszystkim liczenie metryk kodu i monitorowanie jakości kodu. Macierz dla...
Sztuka programowania 3404 dni, 9 godzin, 8 minut temu 114 źrodło rozwiń
“Masowa” i “SmtpClient” w jednym zdaniu? Nie, to nie jest żart. Każdy, kto choć raz musiał wysyłać serię maili z poziomu kodu C# pomyśli, że zwariowałem. Blokowanie wątku, cała gama wyjątków, które może rzucić metoda Send(), czy obsługa stanu aplikacji po takim błędzie. To ważniejsze atrakcje, jakie możemy napotkać korzystając z tej klasy. Jest na to jedna prosta metoda. Wróć. Właściwość… DeliveryMethod.
Sztuka programowania 3406 dni, 2 godziny, 12 minut temu 224 źrodło rozwiń
Właśnie został opublikowany kolejny mój artykuł, tym razem o GC. Zapraszam do lektury: http://msdn.microsoft.com/pl-pl/library/garbage-collector-cz-1
Sztuka programowania 3408 dni, 6 godzin, 48 minut temu 217 źrodło rozwiń
Już od jakiegoś czasu nie "postowałem" na moim blogu... Na usprawiedliwienie napiszę, że po godzinach pracuję obecnie nad własnym czytnikiem RSS online (wiadomo, google reader niebawem zniknie, a jak na razie nic innego nie przypadło mi do gustu, tak że postanowiłem stworzyć coś własnego... zobaczymy co z tego wyjdzie...). W każdym bądź razie czas nadrobić zaległości, a prace nad czytnikiem również potrafią dostarczyć trochę tematów do opisania ;) Jednym z nich tytułowy problem sprawdzania jakości wprowa...
Chwytliwy tytuł, nie ma co, no nie?:) Dobra wiadomość jest taka, że jest on po części prawdziwy! Co prawda nie ma jeszcze sposobu na wpięcie R# w Sublime Text czy dodanie nawigacji R# do notatnika (heh, to by było coś!), ale część funkcjonalności tego doskonałego narzędzia wreszcie będzie można użyć poza Visualem (co mnie raduje niezmiernie). W nowej wersji R# poza VS można wyciągnąć statyczną analizę kodu, wpinając ją np. proces...
Opublikowano Nie zdążyłem dotrzeć przed oblicze komputera na czas aby obejrzeć JetBrainsowy webinar z Johnem Skeetem Big thanks to @jonskeet for the Webinar (and the private class named var). Thank you to everyone that attending. Recording available soon. — JetBrains ReSharper (@resharper) …no właśnie, zaintrygowało mnie “private class named var” Napisałem taki kawałek kodu: public class VarHacking{ private class var{ public string Message { get; set; } } public v...
Sztuka programowania 3408 dni, 6 godzin, 48 minut temu 237 źrodło rozwiń
Co to jest pingback? Jest to rodzaj notyfikacji dotyczącej umieszczenia linku do danego źródła w tekście. Notyfikację tę my możemy zarówno wysłać jak i otrzymać. Dziś napiszę jak my możemy odebrać taki pingback i co musi zostać spełnione, zaś następnym razem opisze sposób wysyłania takiej notyfikacji. To co będziemy potrzebować (choć nie jest to konieczne) to biblioteka XML-RPC.NET – ułatwi nam ona znacząco implementację – gdyż komunikacja odbywa się poprzez XML-RPC, oczywiście dla hardcorów istni...
From few days I’m official member of codeguru redaction. I have hope the cooperation will be delightful. But now time is for rebellion!
Jeśli jest źle, i wiadomo że jest źle, to jest dobrze. Bo może być tylko lepiej. I czas na zmiany. Najważniejsze, aby być zadowolonym z siebie. Czerpać radość i satysfakcję z codziennych obowiązków i nie czuć się “gorszym” względem otoczenia. Wykorzystywać ogromne możliwości rzucane przez naszą profesję. Kilka lat temu miałem niemały kryzys odnośnie swojej roli w z...
W .NET do synchronizacji dostępnych jest wiele mechanizmów. W dzisiejszym wpisie chciałbym przedstawić różnice między semaforem a muteksem. Na pierwszy rzut oka, wyglądają one identycznie. Przykład:class Program { staticvoid Main(string[] args) { Mutex mutex =new Mutex(); mutex.WaitOne(); Console.WriteLine("Sekcja krytyczna tutaj"); mutex.ReleaseMutex(); Semaphore semaphore=new Semaphore(1,1); semaphore.WaitOne(); Console.WriteLine("Sekcja krytyczn...
Sztuka programowania 3410 dni, 9 godzin, 7 minut temu 181 źrodło rozwiń
O klasie ManualResetEvent pisałem na blogu już wielokrotnie. Prosty przykład:internalstaticclass Sample { privatestaticreadonly ManualResetEvent _manualEvent=new ManualResetEvent(false); publicstaticvoid Main() { Task.Factory.StartNew(Run); _manualEvent.WaitOne(); Console.WriteLine("Exiting..."); } privatestaticvoid Run() { Thread.Sleep(1000); Console.WriteLine("Run"); _manualEvent.Set(); } } Zastosowanie ManualResetEvent oraz AutoResetE...
Sztuka programowania 3412 dni, 10 godzin temu 118 źrodło rozwiń
Opublikowano Wiadomość z ostatnie chwili, dosłownie jeszcze gorąca – prosto z Redmond. Właśnie wyszedł Update 2 dla Visual Studio 2012. Zmiany zaszły w 4 głównych obszarach: Agile planing – teraz wszystko musi być agile więc poprawili TFS-a w tym zakresie – co dokładnie to nie sprawdzałem bo nie mam już przyjemności pracy z TFS-em Jakość – czyli zmiany w Test Managerze, code coverage, asp.net manual testing, “significant” polepszenia w zakresie testowania dla SharePointa Windows Store dev – tutaj ...
Wielowątkowość jest bardzo skomplikowanym tematem. W celu napisania prostego kodu wystarczy znać naprawdę niewiele konstrukcji. Sytuacja znaczącą komplikuje się gdy mamy wysokie wymagania odnoście pamięci czy CPU. RegisterWaitForSingleObject jest metodą dość mało popularną a przydatną gdy chcemy oszczędzić trochę pamięci.Wyobraźmy sobie, że mamy kod, który chcemy wykonać wyłącznie w momencie zasygnalizowania przez WaitHandle (AutoResetEvent, Semafor itp.). Jeśli operacja wewnątrz zajmuje trochę czasu w...
Sztuka programowania 3414 dni, 7 godzin, 41 minut temu 120 źrodło rozwiń
Miałem ostatnio okazję implementować własny provider claimów do SharePointa. Jak prawie całe API SharePointa, ta kupa kupy woła o pomstę do nieba. Postanowiłem wykorzystać okazję i zaprezentować jak to złe API mogłoby wyglądać, gdyby ktoś w teamie odpowiedzialnym za “dev-experience” tego kolosa miał trochę oleju w głowie. Ale najpierw kilka słów wprowadzenia, czyli przedstawienie problemu.
Prosty wzorzec, jak tworzyć kontekst aplikacji z obiektami ładującymi się tylko w razie potrzeby.
Sztuka programowania 3416 dni, 9 godzin, 12 minut temu 296 źrodło rozwiń