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...
Strona głównaUżytkownik
Paweł Łukasik | użytkownik
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...
O tym, że Microsoft chciałby “uskrypcić” C#, pierwszy raz usłyszałem w 2009 roku na MVP Summit. Efektem takich zapowiedzi jest projekt Roslyn – czyli Compiler As A Service. Idea bardzo interesująca i zacna, jej implementacja – z tego co czytałem – również. Glenn Block (m.in.) wziął Roslyn, wziął NuGeta, wziął C#, wziął fajny pomysł i zainicjował projekt ScriptCS. Idea jest prosta (wyjaśniona w większych szczegółach na blogu G...
Tak mnie dzisiaj naszło, podsumowałem liczbę linii kodu, którą dzisiaj wygenerowały moje palce czasami z pomocą resharpera, ctrl+c, ctrl+v i mojego konwertera klas na knockout JS. Łącznie dziś napisałem: 4956 linii kodu, w tym cshtml: 2141, C#: 1771 i JS: 1044. Czy jest to wydajna praca? Czy to nie jest wydajna praca? Popatrzmy na taski, całość zamknęła 20 tasków i 4 Product Backlog Items i około 5 bugów. Czy to już jest wydajnie?
To jedyne przykazanie w całym Devkalogu pozostawione w oryginalnej formie. Nie kradnij srajtaśmy z biura? Owszem, nie kradnij, ale ja nie o tym. Nie kradnij poprzez piracenie oprogramowania/muzyki/filmów? Owszem. Ale ja nie o tym. Dawno temu, jeszcze w 2008 roku, Jeremy Millernapisał: If you’re writing ADO.Net code by hand, you’re stealing from your employe...
Sztuka programowania 4295 dni, 12 godzin, 5 minut temu 270 źrodło rozwiń
Gutek niedawno napisał o swoich przemyśleniach odnośnie programowania podczas jazdy samochodem. Takie myśli mogą nas dopaść wszędzie. Od tego naprawdę nie ma ucieczki… o ile jesteśmy faktycznie odpowiednio zaangażowani. Mnie ostatnio dopadły one podczas grania w doskonałe NFS: Most Wanted na Androida. Jeszcze p…asja? Czy już p…ierdolec? Dla tych którzy nie grali: są to wyścigi samochodowe;). Gracz otrzymuje kilka trybów wyścigów. Jest tam oczywi...
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 4307 dni, 1 godzinę, 1 minutę temu 84 źrodło rozwiń
I am a software developer. From my experience I can say, that this is one of the best jobs someone can do. It is creative, demanding and extremely rewarding plus it has an awesome community with friendly and intelligent people. When i was entering the work market in my first company i had various assumptins ans misconceptions that i learned in university. Boy i was soo wrong about a lot of things. In this post i want to dosciss some of them.You are passionate, hard working and very engaded, sorry that’s ...
Z pewnością zdolnych/dobrych programistów jest cała masa. Prawdopodobnie większość z nas ma coś ciekawego do powiedzenia, spostrzeżenia do przekazania, dobre praktyki warte stosowania na szeroką skalę. Aż żal, że ogromna część takiej wiedzy/przemyśleń się po prostu marnuje. Dziesiątki niezaimplementowanych ulepszeń w bibliotekach, setki nierozpoczętych dyskusji, czy ...
W celu optymalizacji każdy procesor posiada swój cache. Temat jest dosyć rozbudowany bo zwykłe cache jest podzielony na kilka warstw aby przyśpieszyć dostęp do niego. W dzisiejszym w poście chciałbym wprowadzić pojęcie cache line co jest tak naprawdę po prostu wpisem w pamięci podręcznej. Jeśli procesor czyta jakieś dane to umieszcza je w cache line. Cache line to nie tylko jedna, pojedyncza zmienna a na przykład 64 bajty. Jeśli zatem czytamy pojedynczą zmienną Int32, w rzeczywistości procesor przeczyta...
Sztuka programowania 4301 dni, 12 godzin, 35 minut temu 196 źrodło rozwiń
GC nic nie wie o zasobach niezarządzanych. Nie wie ile pamięci one zajmują oraz oczywiście nie jest w stanie zwolnić takich zasobów. O zarządzaniu taką pamięcią pisałem już wiele razy. Opisywałem również zasadę działania GC. Zwykle jest on odpalany po przekroczeniu pewnego progu zużycia pamięci. Niestety, jak wspomniałem, GC nie wie nic o niezarządzanych zasobach. Co w przypadku gdy wrapper zużywa bardzo mało pamięci a zasoby niezarządzane w nim konsumują bardzo wiele pamięci? Dzięki metodom AddMemoryPre...
Sztuka programowania 4313 dni, 1 godzinę, 14 minut temu 139 źrodło rozwiń
Przychodzi baba do lekarza. Mówi “panie doktorze, byłam już u doktora X i on zalecił mi Y“. Na co lekarz: “a-HA! znam X, to konował, nic nie umie, tak naprawdę to dopiero JA pani powiem co trzeba zrobić“. Baba jest od tej pory zakochana w swoim nowym doktorze, nie mając tak naprawdę pojęcia czy faktycznie jest tak dobry jak twierdzi. Chodzi po sąsiadac...
Czasami zachodzi potrzeba wykonania krytycznego kodu, który zużywa dużo zasobów. Podobnie jak w CER, nie chcemy wykonywać kodu jeśli wiemy, że nie ma wystarczającej pamięci. W .NET istnieje klasa MemoryFailPoint, która potrafi z góry “zaalokować” określoną pamięć.publicsealedclass MemoryFailPoint : CriticalFinalizerObject, IDisposable { public MemoryFailPoint(Int32 sizeInMegabytes); ~MemoryFailPoint(); publicvoid Dispose(); } MemoryFailPoint sprawdzi czy jest dostępna pamięć. Jeśli jej nie...
Sztuka programowania 4317 dni, 19 godzin, 13 minut temu 103 źrodło rozwiń
Refaktoryzacja – ot kolejne popularne słowo…. nie zupełnie. Pisząc software nie zawsze dokładnie wiemy jak on będzie wyglądał i co finalnie będzie robił – tzn. w danej chwili (zdefiniowanym kwancie czasu, żeby brzmieć mądrzej) zawsze wiemy co będzie robił, tylko z dalszej perspektywy mentalnej – tj. po dłuższym okresie może się okazać, że robi coś zupełnie innego niż początkowo zakładaliśmy. Oczywiście nie ma w tym nic złego, przecież wszyscy jesteśmy teraz agile jednak nie wiedząc co fina...
Jednym z ostatnich rodzajów długów jakie chcę poruszyć to testy. Testy we wszelakiej postaci, od jednostkowych, przez integracyjne, specyfikacji, smoke, white i black box do obrzydliwych ręcznych. Brak testów to najgorsza rzecz jaką możemy zrobić. W każdej normalnej branży (a nie takiej, gdzie większość to pryszczaci kolesie z problemami interpersonalnymi ) czyli takiej o solidnych podstawach ukształtowanych przez lata praktyki, normą są testy. Budowlańcy robią testy wytrzymałości beton...
Sztuka programowania 4319 dni, 22 godziny, 21 minut temu 158 źrodło rozwiń
W tym wpisie zaprezentuję dwie klasy dziedziczące po FileOfValuesReader i realizujące odczyt z plików tekstowych oraz binarnych. Obie klasy będą współpracować z odpowiadającymi im klasami wyodrębniającymi wartości z odczytanej zawartości. A ponieważ dopełnią one całości mechanizmu importu, to przygotuję także odpowiednie testy, które pozwolą upewnić się, że mechanizm importu nadal działa tak samo. Jako pierwszą zaimplementuję ...
Sztuka programowania 4318 dni, 12 godzin, 9 minut temu 37 źrodło rozwiń
Wszyscy w zawodzie zaczynaliśmy podobnie: nie wiedząc nic. Każdy z nas jest teraz na innym poziomie: jedni nadal nie wiedzą nic, inni mało, jeszcze inni dużo… ale nikt nie wie wszystkiego. Z biegiem lat kształtujemy sobie opinie na sposoby tworzenia oprogramowania – w końcu pochłania to sporą część naszego życia.
Nadeszła pora, by doprowadzić do współpracy klas odczytujących pliki i klas wyodrębniających z nich dane. Aby ta współpraca była jednak w ogóle możliwa – klasa FileOfValuesReader musi zostać zmodyfikowana, albowiem musi być możliwe „wstrzyknięcie” do niej obiektu implementującego interfejs IValuesExtractor. W rezultacie konstruktor zyska jeszcze jeden, dodatkowy parametr, poprzez który będzie można przekazać odpowiedni interpreter danych. Ponieważ ów interpreter trafia od razu do klasy bazowej ...
Sztuka programowania 4317 dni, 19 godzin, 13 minut temu 45 źrodło rozwiń
Witajcie w drugim odcinku Coding News – nowej, cotygodniowej serii, w której omawiam najciekawsze wydarzenia i znaleziska minionego tygodnia.
Witajcie w pierwszym odcinku Coding News – nowej, cotygodniowej serii, w której omawiam najciekawsze wydarzenia i znaleziska minionego tygodnia.