Axum to kolejny inkubacyjny projekt z Redmond, o którym warto wspomnieć. Model agenta, który przedstawiłem w poprzednim poście, został przez giganta potraktowany całkiem poważnie. Solidna implementacja, skalowalność, wtyczka do Visual Studio - to wszystko daje całkiem duże pole do popisu, ale powoli...
Programowanie rozproszone 5139 dni, 1 godzinę, 8 minut temu 22 źrodło rozwiń
Witam dziś chciałbym poruszyć kolejny problem na który się natknąłem podczas rozwijania projektu. Problem dotyczy przesyłania danych pomiędzy kontrolerem a usługami(service). Weźmy prosty przykład. Mamy funkcje która z pobranych danych od użytkownika tworzy temat i post na forum następnie zwraca id zarówno tematu jak i posta. I tutaj pojawia się problem gdy potrzebujemy zwrócić wiele danych z danej funkcji z usług.
Programowanie rozproszone 5142 dni, 12 godzin, 16 minut temu 81 źrodło rozwiń
Microsoft Press wydał e-book na temat gorącego ostatnimi czasy, programowania równoległego. Książka na 224 (anglojęzycznych) stronach przedstawia idee zrównoleglania, oraz prezentuje przykłady oparte oczywiście o Parallel Extensions w .NET Framework 4.0
Programowanie rozproszone 5142 dni, 12 godzin, 16 minut temu 70 źrodło rozwiń
Troszeczkę szybciej niż planowałem (bo… 1stSCC coraz bliżej) rozpocząłem przygodę z Microsoft’owym Cloud Computing, czyli Azure. Post ten jest pierwszym z cyklu kilku postów poświęconych technologii Microsoft Azure, w szczególności zaś SQL Azure. Na samym początku chciałbym przedstawić jak dostać się do tego serwisu, bo choć niby jest to niezbyt trudne, to korzystając z subskrypcji MSDN, trzeba odrobinę się napracować przy uruchamianiu usługi i pamiętać o jednym drobiażdzku. Na początku krótkie przypomni...
Programowanie rozproszone 5145 dni, 21 godzin, 44 minuty temu 85 źrodło rozwiń
W ostatniej wersji C# pojawiła się możliwość zrównoleglenia obliczeń w bardzo prosty sposób. Pętlę:for(int n =0; n <8; n++){ Console.WriteLine("Normal - iteracja {0} wątek {1}", n, Thread.CurrentThread.ManagedThreadId);} można zastąpić następującą konstrukcją:Parallel.For(0, 8, i =>{ Console.WriteLine("Parallel - iteracja {0} wątek {1}", i, Thread.CurrentThread.ManagedThreadId);}); Zapis ten powinien spowodować, że obl...
Programowanie rozproszone 5154 dni, 9 godzin, 38 minut temu 174 źrodło rozwiń
Autor: Witam po długiej przerwie wszystkich stęsknionych wpisów odnośnie TPLa. Pamiętam moje przyrzeczenie odnośnie pisania przynajmniej 1 wpisu na tydzień z tego tematu, ale niestety inne rzeczy nie pozwalają poświęcić się temu tematowi w takim stopniu jakbym sobie tego życzył. No, ale nie tracąc czasu na smętne wstępy przejdźmy do treści…dziś krótko acz przydatnie. Dziś chciałbym powiedzieć o dość ciekawej funkcjonalności a mianowicie kontynuacjach. Dzięki nim możemy napisać następujący fragment k...
Programowanie rozproszone 5158 dni, 13 godzin, 37 minut temu 57 źrodło rozwiń
Twórcy Google jako pierwszych serwerów użyli ręcznie składanych PC połączonych w jedną sieć. Zdecydowali się na takie rozwiązanie, ponieważ koszty zakupów komercyjnych maszyn znacznie przekraczały założony budżet. To posunięcie było strzałem w 10! Magia jednak tkwiła nie tyle w komputerach, co w specjalnie napisanym oprogramowaniu - i tu przechodzimy do kwestii programowania równoległego.
Programowanie rozproszone 5162 dni, 11 godzin, 52 minuty temu 63 źrodło rozwiń
Może zdarzyć się tak, że jedno żądanie zostanie wysłane do usługi kilka razy. Fajnie więc by było zabezpieczyć system przed taką ewentualnością. W nagłówku każdego żądania przekazywany jest unikalny identyfikator żądania. W momencie walidacji nagłówka system sprawdza identyfikator z pomocą jedno-instancjowego obiektu SafeContainer. Każdy identyfikator przechowywany jest w kontenerze prze n-minut. Po upływie tego czasu usuwane są "stare" identyfikatory. Jak na razie nie znalazłem sensowniejszego rozwiązan...
Programowanie rozproszone 5164 dni, 1 godzinę, 57 minut temu 61 źrodło rozwiń
Dziś chciałbym zaprezentować zastosowanie sieci Hopfielda do rozpoznawania polskich banknotów. Można zastosować takie rozwiązanie w automacie przyjmującym banknoty w celu odgadnięcia właściwego nominału banknotu. Oczywiście zapamiętanie obrazka całego banknotu nie jest dobrym pomysłem gdyż w przyzwoitej rozdzielczości obraz będzie zbyt duży do zapamiętania, poza tym, banknoty mają różną wielkość, postanowiłem pokazać przykład z zapamiętaniem prawego górnego rogu i rozpoznawaniem ...
Programowanie rozproszone 5171 dni, 10 godzin, 52 minuty temu 170 źrodło rozwiń
OpenMP - źródło, które zainspirowało mnie do zmian w HopfieldSymulatorze znajduje się tudaj. Dzisiaj napiszę o C++ w wykorzystanym projekcie. Cała warstwa obliczeniowa jest napisana w tym języku. Oczywiście po napisaniu dobrze jest program zoptymalizować, można jeśli używamy C# i kodu zarządzalnego użyć Parallel.For(...), no ale w czystym natywnym C++ nie ma takij możliwości, pozostaje użycie OpenMP lub wzorców wielowątkowości, które są dostępne w Visual C++ 2010. Niestety nie mam ...
Programowanie rozproszone 5173 dni, 18 godzin, 29 minut temu 54 źrodło rozwiń
August 07Daj się poznać #3 Dzisiaj postanowiłem usprawnić symulator sieci Hopfielda o zapamiętywanie kolorów. Jak pewnie wiecie z poprzednich wpisów na wyjściu sieci Hopfielda są wartości od -1 do +1 aby zapisać obraz kolorowy można – taki był mój pierwszy zamysł – podzielić ten przedział na wszystkie dostępne kolory RGB bez przezroczystości Alpha wychodzi 256x256x256 przedziałów, trochę dużo. Eksperymenty pokazały, że jest z tym kłopot obrazy co prawda zapamiętywały się ale pokazywały się przekłamania…
Programowanie rozproszone 5173 dni, 20 godzin, 10 minut temu 76 źrodło rozwiń
Autor: Chciałbym napisać dziś słów kilka o WCF RIA Services. Dokładnego przeglądu standardowych scenariuszy wersji pierwszej finalnej dokonałem niejako publikując zaktualizowane przykłady w dwóch częściach (patrz cz.I i cz.II). I chociaż jest tam wiele fajnych funkcjonalności, to dziś napiszę o trochę mniej standardowych, rzadziej spotykanych rzeczach. Mam tu na myśli takie zagadnienia jak korzystanie z NHibernate, MVVM (jest to typowe podejście dla Silverlight, ale nie zawsze przykłady czy prezentacje...
Programowanie rozproszone 5178 dni, 15 godzin, 7 minut temu 216 źrodło rozwiń
Dziś przedstawiam nowe GUI do Hopfield Symulatora 0.2.1. Źródła projektu można pobrać tutaj: http://hopfieldsimulator.codeplex.com/SourceControl/list/changesets Instalator w wersji 0.2.1 x86 tutaj: http://hopfieldsimulator.codeplex.com/releases/view/49956
Programowanie rozproszone 5178 dni, 15 godzin, 7 minut temu 78 źrodło rozwiń
STM (z ang. Software Transactional Memory) to podejście zaczerpnięte od kolegów z baz danych. Idea jest bardzo prosta: albo wszystkie instrukcje w danej transakcji wykonają się poprawnie, albo żadna z nich nie powinna się wykonać. Cecha ta określana jest jako niepodzielność. Głównych cech jest w sumie 4...
Programowanie rozproszone 5178 dni, 15 godzin, 7 minut temu 46 źrodło rozwiń
Dziś zgodnie z obietnicą na dziś rozpracowałem kontrolkę MsChart. Dodam, że na CodePlex dodałem nową wersję symulatora z formatką wykresów. Źródła: http://hopfieldsimulator.codeplex.com/SourceControl/list/changeses Instalator: http://hopfieldsimulator.codeplex.com/releases/view/50075
Programowanie rozproszone 5179 dni, 10 godzin, 32 minuty temu 33 źrodło rozwiń
Z implementacją równoległych zadań można sobie poradzić na wiele różnych sposobów. Zazwyczaj jednak instalujemy blokady, monitory, tworzymy transakcje, oplatamy synchroniczny kod. Co by się jednak stało, gdyby całe takie podejście odwrócić do góry nogami? Takich przełomowych projektów było wiele, oferowały nowy model pisania równoległych aplikacji, bez pamięci wspólnej i z wymianą komunikatów. W dzisiejszym wpisie chciałbym przedstawić Wam Model Agenta.
Programowanie rozproszone 5188 dni, 22 godziny, 31 minut temu 68 źrodło rozwiń
W poprzednim poście przedstawiłem Wam kilka istniejących implementacji STM, teraz, chciałbym dopełnić tą listę o kilka, równie ważnych, rozwiązań.
Programowanie rozproszone 5191 dni, 16 godzin temu 47 źrodło rozwiń
Na rynku istnieje wiele rozwiązań implementująych STM - zdziwilibyście się, jak wiele. Są to rozszerzenia dla więkoszści języków: zaczynając od C, przez C++, C#, Java, Haskell, Perl. W tym poście chciałbym omówić jedynie kilka z nich.
Programowanie rozproszone 5192 dni, 22 godziny, 2 minuty temu 51 źrodło rozwiń
Jakiś czas temu (kilka miesięcy;)) obiecywałem, ze napiszę artykuł o WCF Data Service. Zainteresowanych odsyłam tutaj.
Programowanie rozproszone 5195 dni, 23 godziny, 7 minut temu 111 źrodło rozwiń
W poprzednich wpisach przedstawiłem Wam mechanizm Pamięci Transakcyjnej, a teraz chciałbym skupić się na jego wydajności względem zwykłych metod synchronizacji. Testy zostały przeprowadzone na maszynie z ponad 100 procesorów.
Programowanie rozproszone 5198 dni, 15 godzin, 5 minut temu 44 źrodło rozwiń