Monday 30 January 2012

Application components


Writing application is not so easy.
If you want to write good extensible application, you should use good tools and solution in Your application.
After writing some applications, I found some tools that may help in software production.

Logs
- log4net

Database - conversion to objects (DAL, data access layer)
- TT generating classes from relational database tables, (own Kiro Database mechanizm)
- NHibernate
- Cassandra
- MongoDb
- Memcache
Links:
- Compare document database http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

Application Frameworks
- MVVM pattern with WPF
- Prism - modules, bootstraper
- Enterprise Library
- Unity (Container)

GUI
- Windows Ribbon Library for WPF (http://www.microsoft.com/download/en/details.aspx?id=11877)

Server/Client
- WCF communication through net-pipe, net-tcp, webservices
- WIF - Windows Identity Foundation

Builds
- Apache Archiva - repository of builds and versions
- Apache Maven - versioning server
- Cruise Control - build server
- Nuget - but it hasn't sth like pom, You can't choose which library version you want to use in your software

Web
- Parametrized Web.config during Deploy (http://vishaljoshi.blogspot.com/2010/07/web-deploy-parameterization-in-action.html)
- JQuery Mobile (http://jquerymobile.com)
- Kontrolki do HTML5 i javascript (płatne) http://dhtmlx.com/touch/samples/

Friday 20 January 2012

Ogólna architektura aplikacji


Wstęp

Witam.
Tym artykułem rozpoczynam serię postów na temat architektury, wzorców projektowych i dobrych praktyk stosowanych przy tworzeniu aplikacji w .Net Framework.
Oczywiście, zawarte tu informacje są bardzo subiektywne, a "dobre praktyki" podlegają konfrontacji.
Jednakże, gdzieś chciałbym zawrzeć swoje spostrzeżenia i przemyślenia oraz znalezione informacje o pisaniu aplikacji w .Net Framework.

Wszystkie rozwiązania będą zawarte w przykładowym projekcie http://sampledotnetapp.codeplex.com.

Aplikacja

Elementy funkcjonalne aplikacji

Z czego składa się standardowa aplikacja:
  • Zbieranie logów
  • Komunikacja z serwerem
  • Komunikacja z bazą danych
  • Komunikacja z webservicami
  • Graficzny interfejs użytkownika
  • Moduły - pluginy
  • Interakcja pomiędzy modułem a interfejsem
Wydaje mi się, że są to wszystkie elementy, które wykorzystują aplikacje, jeżeli brakuje tu czegoś bardzo proszę o komentarz.

Elementy niefunkcjonalne aplikacji
Oprócz tych funkcjonalnych cech aplikacji, są także niefunkcjonalne, lecz równie istotne.
Aplikacja powinna także:
  • Zawierać jak najmniej zbędnej dokumentacji
    Duże koszty utrzymania zgodnych z prawdą komentarzy i rozbudowanych dokumentacji
  • Być na tyle elastyczna na ile się da
    Użycie interfejsów i ogólnych mechanizmów z możliwością napisania dedykowanych elementów
  • Prosta w konstrukcji
    Niestety elastyczność i prostota trochę się wykluczają
  • Wysoka testowalność poszczególnych elementów aplikacji
    Stworzenie aplikacji, która w łatwy sposób można pokryć testami to grunt do napisania niezawodnej aplikacji
 Narzędzia do projektowania aplikacji
 Z darmowych narzędzi dostępnych na rynku można wyszczególnić:
  • Visual Paradigm Community Edition
  • Pencil Evolus
 

Wednesday 11 January 2012

Moje pierwsze piwo

2012-01-10 18:50
Tworzenie Brzeczki
Część składników do przygotowania piwka

Dzisiaj zacząłem robić moje pierwsze własnoręcznie wykonane piwo z użyciem ekstraktów słodowych. Przepis jak je zrobić jak i wszelkie składniki i narzędzia potrzebne do wykonania piwa dostałem od kolegi Artura za co mu bardzo dziękuję.


Piwko jest z gatunku "Ale" i powinno być wytwarzane przy pomocy górnej fermentacji drożdży w temperaturze pokojowej tj. 18-22 stopnie Celcjusza.


2012-01-11 00:12
Brzeczka zrobiona, ale problemy były ...
Zakończyłem właśnie etap tworzenia "Brzeczki". W skali Ballinga ma 12 stopni. Przepis podaje, że ma być około 10, więc raczej się załapałem.
Ogólnie wrażenia są przednie, ale sporo nie wiedziałem i byłem trochę zestresowany. Popełniłem parę błędów i dzięki temu mam nauczkę na przyszłość.



Gotowałem w dwóch garnkach po 4 litry w każdym (co nie jest niczym złym), ale po zagotowaniu wody i wyłączeniu palnika gazu, rozpocząłem wrzucanie ekstraktu słodowego (cały czas mieszając). Problem polega na tym, że czas pomiędzy wrzuceniem ekstraktu do jednego garnka a drugiego był mniej więcej 5-7 minut i tyle doliczyłem drugiemu garnkowi do czasu gotowania, który po włączeniu palnika powinien wynosić 60 minut.

Oczywiście zagapiłem się i ustawiłem budzik na 60 minut od rozpoczęcia gotowania drugiego garnka (pierwszy już od 7 minut się gotował) w związku z tym garnek pierwszy gotował się 67 minut, a drugi 60. Mała obsuwa na starcie, ale oczywiście to nie wszystko.


Brzeczka zaraz po przelaniu do fermentora


Aerometr do mierzenia ilości stopni
w skali Ballinga

Mile oglądając telewizje, zapomniałem o jednej ważnej rzeczy. Przed upływem 10 minut od końca gotowania, należy wrzucić 10gr chmielu aromatyzowanego. Hmm.. Zorientowałem się jak było już 57 minut gotowania pierwszego garnka, więc dorzuciłem chmiel i gotowałem jeszcze 10 minut.
Oprócz tego okazało się, że potrzebna jest waga do odmierzenia ilości chmielu w gramach. W związku z tym odmierzałem go na oko.


Składniki Marynka i Lubelski granulat chmielu.
Marynka to gorzki chmiel, natomiast Lubelski to aromatyczny.
W środku, preparat do dezynfekcji końcowej narzędzi.

Przy okazji zabrakło także sitka do odsączania gotowej brzeczki. Znalazłem bawełnianą ścierkę z dużymi jak na ścierkę, dziurkami. Wyparzyłem ją w gotowanej wodzie, upewniłem się, że żadnych badziewi na niej nie ma i przez 20 minut przelewałem przez nią piwko. Namęczyłem się z tym strasznie, bo osadu było bardzo dużo i musiałem cały czas mieszać drewnianą łyżką po ścierce żeby woda z piwa się przez nią przesączyła.W końcu się udało i właśnie jestem na etapie przygotowania drożdży.


Instrukcja i przewodnik dla początkującego piwowara

Drożdże zanim się doda do piwa należy rozpuścić w wodzie o temperaturze pokojowej poniżej 30 stopni. Oczywiście naczynie musi być wyparzone, tak też zrobiłem. Ciekawy jest sposób przygotowania drożdży bo trzeba włożyć łyżkę do zagotowanej i wlanej wody w naczyniu, a następnie przykryć folią aluminiową. Podejrzewam, że chodzi tu o szybkie ostudzenie naczynia, a potem sterylną łyżeczką pomieszanie wody z drożdżami.
W każdym bądź razie czekam, aż mi woda wystygnie.

2012-01-12 17:05
Dodanie drożdży
Niestety dopiero teraz dodałem drożdże. Mam nadzieję, że w tym czasie nic się złego z piwem nie stało. Od ostudzenia brzeczki minęło mniej więcej 16 godzin, także w tym czasie piwo jest najbardziej narażone na obce bakterie. Trzymam kciuki za powodzenie przedsięwzięcia.



Fermentor jak i inne przyrządy
i składniki kupione w sklepie Browamator




20 litrów tyle wychodzi z jednego
zestawu piwowarskiego.


Zauważyłem, że moje zielone piwko jest bardzo gorzkie. Podobno tak jest zawsze na początku i nie trzeba się tym przejmować. W trakcie fermentacji gorycz powinna ustąpić miejsca innym aromatom.
Teraz czas fermentacji głównej, także czekam 7 dni, a potem przelewam do drugiego fermentora na fermentację cichą.


2012-01-12 17:10
Fermentacja główna
Tutaj za wiele pracy nie ma. Głównie trzeba się uzbroić w cierpliwość i pozwolić pracować drożdżom. Mam nadzieję, że będą bardziej pracowite ode mnie :)
Fermentuje się..
2012.01.20 18:53
Fermentacja cicha
Minął tydzień od rozpoczęcia fermentacji, także nadszedł czas na przelanie do nowego fermentora na tzw. fermentacje cichą.
Z racji wcześniejszego braku sita w tym momencie widzę konsekwencje. Ilość osadu jaka została na dnie fermentora jest bardo nie wielka, jakieś 5 mm. Nie wiem jaki to ma wpływ na piwo. Bardzo możliwe, że będzie miało mniej wartości smakowych.
Jednakże z jednego mogę być zadowolony. Piwo jest naprawdę klarowne. Zero mentów, co widać zresztą na poniższym zdjęciu.
Efekt głównej fermentacji
Smak
Jest ciekawy, ale nie oszałamiający. Delikatny, lekko gazowany, o wyraźnym smaku, w trakcie picia ma delikatny smak, ale na końcu mocna gorycz.

Zapach
Lekko korzenny zapach chmielu z wyczuwalną goryczką i zawartością alkoholu.

Wnioski
Powiem szczerze, że jak na razie nie zdobyło mojego uznania. Jest smaczne, ale chyba trochę za delikatne i za gorzkie. Z opinii znajomego wiem, że gorycz ustąpi miejsca prawdziwemu smakowi chmielu w dalszym etapie fermentacji i leżakowania. Także muszę się uzbroić w cierpliwość i czekać.


2012.01.30 22:31
Cicho leży w butelkach
Czas leżakowania rozpoczął się jakieś 5 dni temu. Wziąłem się za rozlanie piwska do butelek i niestety mam tylko 15 butelek szklanych i dwa baniaki plastikowe. Ale co mam w to leje, także 10 litrów wlane do dwóch plastikowych butelek po wodzie mineralnej, a reszta w butelkach po piwie.
Poleżakuje miesiąc czasu i będzie już można z czystym sumieniem pić.

2012.03.09 11:42
Efekt po miesiącu leżakowania
Hej, teraz mogę powiedzieć jedno na temat tego piwka.
Jest naprawdę dobre ;)
Ta mocna gorycz ustąpiła miejsca smakowi, a piwo jest aż troszkę za mocno gazowane.
Najwidoczniej za dużo dodałem płynnej glukozy przy rozlewaniu do butelek.
Jakby nie było, uważam te piwo za bardzo udane. Nie spotkałem się wśród smakoszy mojego trunku ze zniesmaczeniem, a wręcz przeciwnie, większość chciała wiedzieć jak ja to zrobiłem.
Są jednak wady, których nie da się ukryć. Z 20 litrów zostało mi 5. Wszystko już poszło :)
Niestety tak dobre piwo nie poleży zbyt długo, szczególnie gdy gospodarz lubi częstować wszystkich wokoło.
Dlatego czas zacząć drugie piwko. Mam nadzieję, że w najbliższym czasie zajmę się przygotowaniem kolejnej partii mojego wyrobu.