Ostatnio zderzyłem się z problemem transakcyjnej pamięci (STM) i właściwie brakiem dostępnych implementacji w C# (poza NSTM). Różne wariacje na temat które powstały przez lata w stajni Microsoftu nie doczekały się do dnia dzisiejszego funkcjonującej implementacji (głównie dlatego, że zdecydowano – całkiem rozsądnie – że wsparcie dla tego mechanizmu powinno być na poziomie CLR). Dla osób zainteresowanych tematem przedstawię w skrócie moją implementację, zapewne nie pozbawioną wad, jednak mającą jedną zasadniczą zaletę – prostotę implementacji i użycia. Zatem zapraszam do lektury :-)
Continue reading »

 

Mała zmiana tematu po kilku miesiącach – opowiem dziś coś niecoś o technologiach ze stajni Microsoftu i związanych z nimi wzorcami. A tak konkretniej to będzie to (bodajże najpopularniejszy) wzorzec związany z Silverlight i Windows Presentation Foundation (WPF) – czyli MVVM. Opowiem jaka powinna być (moim skromnym zdaniem) kolejność tworzenia poszczególnych warstw, co postaram się poprzeć „dowodami”, nie koniecznie formalnymi ;) Opowiem również o związanych z implementacją wzorca problemach i być może nawet o rozwiązaniach tych problemów. Continue reading »

 

Tak jak obiecałem we wcześniejszym wpisie napiszę kilka słów o konfiguracji debuggera w Aptana Studio 3 – czyli Eclipse z „wbudowanym” PyDev i kilkoma innymi przydatnymi dodatkami. Wprawdzie temat tyczy się głównie Django, jednak konfiguracja dla innych framework’ów czy technologii dla Pythona jest zbliżona. Całość sprowadza się do kilku kliknięć, ewentualnie wpisania kilku znaków, więc myślę, że nie powinno być z tym problemów. A więc zaczynamy!
Continue reading »

 

Przez ostatni miesiąc dość dużo czasu spędziłem na nauce frameworka Django. Po ponad 8 latach tworzenia stron w PHP (pierwsze jeszcze w czasach PHP3) stwierdziłem, że pora poszerzyć horyzonty i zobaczyć, dlaczego inne technologie zyskują tak dużą popularność. W przedbiegach z wyścigu odpadł RoR – głównie ze względu na moją niechęć do samego Rubyego (przecież Python jest ładniejszy…). Na placu boju pozostały ASP.NET MVC i Django. I o ile sam C# jako język całkiem mi się podoba, o tyle rozwiązania Microsoftowe ogólnie już nie tak bardzo, nawet mimo tego, iż mógłbym ASP hostować na VPS-ie z Linuksem (poprzez Mono). W związku z tym wybór padł na Django. I tak się zaczyna cała historia…;-)

Continue reading »

 

Ostatnio poszukiwałem magicznego wzoru na wyliczenie procentu rabatu przy kaskadowym naliczaniu kolejnych rabatów jednostkowych. Jednak tym razem wujek Google nie był zbyt pomocny, po kilku stronach się poddałem i postanowiłem skorzystać z pomocy królowej nauk – matematyki. W ten oto sposób otrzymałem prosty wzór na wyliczenie końcowego rabatu bez względu na liczbę kolejnych naliczanych rabatów. Oto i on:

R_k = 100-{(100-R_1)*...*(100-R_n)}/{100^{n-1}}

Legenda:
Rk : końcowy procent rabatu wyliczony kaskadowo
R1 … Rn : kolejne rabaty do wyliczenia

Dla niezorientowanych: kaskadowy sposób naliczania rabatów polega na tym, że każdy kolejny rabat liczony jest od ceny umniejszonej o dotychczas naliczone rabaty. Dzięki temu sprzedawca zyskuje nawet kilka cennych procent ze swojej wyjściowej ceny ;-)

Mam nadzieję, że wzór przyda się tej mniej matematycznie myślącej części społeczeństwa (większości?), choć oczywiście zachęcam do samodzielnego wysilenia szarych komórek.

© 2012 Bart's Developer Log Suffusion theme by Sayontan Sinha