Sprzedaj swój stary telefon Czy masz może w szafie tak stary telefon, że wydaje się, że musiałbyś komuś zapłacić aby go od Ciebie zabrał? Jeśli tak, to mam dla Ciebie świetne rozwiązanie, zrób z niego pożytek i sprzedaj go w Top Dollar Mobile. Jakiś czas temu natrafiłem w sieci na artykuł, który opisywał wejście TDM na rynek polski. Pomysł...

Czytaj dalej

Podsumowanie roku 2011 Czas na podsumowanie minionego roku. W ostatnich 12 miesiącach na blogu pojawiło się  tylko 18 wpisów - tragedia. W poprzednim roku (2010), niepełnym, bo blog powstał w maju, wpisów było 44.  W 2011 roku witrynę odwiedziło 3307 unikalny użytkowników (spadek prawie o 50%), którzy wygenerowali 4326 odwiedzin (6190 odsłon)....

Czytaj dalej

Prawdziwy Android Gingerbread Idą święta. Czas na pierniki - androidowe :) Składniki: 300 g mąki pszennej, 100 g mąki żytniej pełnoziarnistej, 2 duże jajka, 13 dag cukru pudru, 10 dag masła, roztopionego, 10 dag miodu, 1 łyżka przyprawy do piernika, 1 łyżka kakao, 1 łyżeczka sody oczyszczonej. Wszystkie składniki wsypać do naczynia, wymieszać...

Czytaj dalej

Do czego służy laptop? Wracając z wakacji we wrześniu, czekając na przesiadkę na lotnisku w Brukseli, zostałem uświadomiony do czego w dzisiejszych czasach służy laptop... to po prostu podstawka pod iPad'a :)

Czytaj dalej

Wideo GTalk w Warszawskim Metrze W weekend przeprowadziłem ciekawy eksperyment. Siedząc w pędzącym metrze, trzymając w ręku Galaxy Taba 10.1, łączącego się z siecią poprzez operatora Play (jedyny dostępny "pod ziemią") nawiązałem wideochat z osobą na powierzchni :) Niby nic, ale żebyście widzieli miny osób siedzących obok :) Bezcenne! Wideoczat w wersji...

Czytaj dalej

Pamięć Transakcyjna – Istniejące implementacje – cz.1

STM Logo

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. Dość pokaźna lista znajduje się w wikipedii. W tym poście chciałbym omówić jedynie kilka.

Rozwiązanie, którego wydajność opisywałem w poprzednim poście, jest modyfikacją maszyny wirtualnej Javy. Dokładny opis znajduje się w dokumencie [1] oraz na tej stronie. Można pobrać przykładowy kod i spróbować samemu uruchomić to rozwiązanie.

Drugie rozwiązanie, jakie chciałbym zaprezentować, zostało stworzone w laboratoriach Microsoft Research (prawdopodobnie przy pomocy Brown University), i nosi nazwę SXM (dokumentacja znajduje się tutaj [2]). Wersję 1.0 można pobrać tutaj [3], a wersję 1.1 tutaj [4]. Jest to implementacja na platformę .NET w postaci specjalnej biblioteki. Zamysł jest prosty: klasy, których chcemy używać równolegle, musimy zarejestrować w fabryce obiektów i dzięki tej fabryce musimy te obiekty tworzyć. Właściwości, których będziemy używać, należy dodatkowo opatrzyć specjalnym atrybutem. Fabryka dynamicznie tworzy podklasę i opakowuje atrybuty w specjalne wywołania - to są właśnie atonomiczne bloki. Dynamiczne tworzenie podklas możliwe jest dzięki mechanizmom z przestrzeni nazw System.Reflection.Emit.  Ponadto kod źródłowy SXM, która można pobrać z podanych linków [3,4], zorganizowany jest jako benchmark. Zawiera dwie różne implementacje fabryk, nakłaniając programistę do napisania swojej i sprawdzenia jej wydajności z istniejącymi.

Kolejne rozwiązanie, również na platformę microsoftu, to STM.NET. Można śmiało założyć, że SXM był pierwowzorem, na którym bazowali inżynierowie tworzący STM.NET. Historia tego produktu jest jednak o wiele bardziej ciekawa. STM.NET funkcjonował od jakiegoś czasu jako projekt na DevLab’ach, czyli wyżej w hierarchii niż MS Research. Blog zespołu tworzącego można śledzić tutaj nadal, mimo tego, że projekt został zakończony – tak można przeczytać na oficjalnej stronie rozwiązania – dnia 13 maja br. Dla programisty zostawiono jedynie podręcznik użytkownika. Rozwiązanie to nie było biblioteką, a zmodyfikowaną wersją platformy .NET 4 beta 1. Jak wiemy, mechanizm transakcji najlepiej sprawdzi się wtedy, kiedy będzie na stałe zintegrowany z platformą, na jaką został napisany – tak właśnie uczynili inżynierowie.

Według mnie projektu nie wycofano, bo był on mało przydatny. Myślę, że wejdzie on w skład Parallel Extensions w następnej wersji platformy – ale to tylko moje domysły. Dlaczego tak uważam? Wiadomo dokładnie, jak nazywał się plik, który był do pobrania w czasie trwania projektu (dotNetFx40_STMNet_10_x86.exe). Na zagranicznych portalach, na których był udostępniany, została po nim tylko notka, że usunięto zasób ze względu na prawa autorskie (zobacz). Ktoś się natrudził, aby to uczynić. Nie ustrzeżono się jednak błędów. Mimo usunięcia strony pobierania archiwa z przykładami i dokumentacją bezpośredni link do pliku działał jeszcze przez ponad miesiąc. Spragniony tego rozwiązania nadal szukam w czeluściach Internetu pliku ze zmodyfikowaną wersją platformy…

W następnym poście opiszę kolejne implementacje. Zapraszam.

Źródła:

Update, godz 14:30:

Z nieznanych mi przyczyn, podany link do zmodyfikowanej platformy, w serwisie depositfiles, zaczął nagle działać.

Promuj