Sunday, January 31, 2010

NUnitForms a testowanie plików exe

Traf chciał, że ostatnimi czasy realizuję zlecenia pewnej firmy mającej siedzibę we Wrocławiu. Ze względu na technologie stosowane w tejże firmie, rozwiązania które tworzę ze swoimi partnerami są oparte o .NET. Nadszedł taki moment, że trzeba było napisać testy do Windows Forms, które tworzą UI naszej aplikacji. Dość rozsądnym wyborem wydawał się być NUnitForms i na jego użycie się zdecydowaliśmy.

NUnitForms ma tą własność, że nie lubi testować plików EXE - z założenia wszystkie formatki miały być zapakowane w plik DLL aby NUnitForms mógł je testować. Zanim jednak ślepo wydzieliliśmy formatki do osobnej biblioteki dynamicznej, zastanowiliśmy się, jak testować sam plik EXE.

Da się to zrobić.

PS. I tak zmuszeni byliśmy wydzielić bibliotekę dynamiczną z formatkami. Powód był prozaiczny: nasza aplikacja była zależna od początkowych ustawień (pamiętanych w pliku konfiguracyjnym z pomocą narzędzi z przestrzeni System.Configuration). Ustawienia te były wstrzykiwane do formatki głównej programu. A teraz pytanie: jak wstrzyknąć taki obiekt z innego programu? :-) Nie przyszło nam żadne rozsądne rozwiązanie do głowy i postanowiliśmy podzielić projekt. Swoją drogą, jeśli ktoś zna jakieś ładne rozwiązanie tego problemu - z chęcią posłucham :-)

Wednesday, January 27, 2010

Tuesday, January 26, 2010

Herzlich wilkommen in Freistaat Bayern, czyli co zrobić z białą kiełbasą i cebulą

Dzisiaj zapanowały bardziej południowo-niemieckie klimaty. Odgrzebałem w lodówce białą kiełbasę, podwędziłem współlokatorowi dwie cebule, skoczyłem po piwko... i było.

Przepis będzie mało oryginalny, bo niezmodyfikowany przepis znaleziony w sieci.

Biała kiełbasa w sosie piwno-cebulowym

Składniki
  • 1 kg białej kiełbasy
  • butelka jasnego piwa
  • 2 cebule
  • łyżka margaryny
  • łyżka mąki
  • sok z 1 cytryny
  • cukier puder
  • sól, pieprz
Przygotowanie 
Cytując: na dnie garnka układamy całą kiełbasę (jedna warstwa).Piwo mieszamy pół na pół z wodą i zalewamy tym kiełbasę. Dodajemy pokrojoną w plastry cebulę i gotujemy na wolnym ogniu przez pół godziny. Mąkę zarumieniamy na patelni i rozprowadzamy ją wywarem spod kiełbasy [jakkolwiek to stwierdzenie jest dla mnie wciąż enigmatyczne, to sam po prostu zagęściłem sos tą mąką, uprzejmo wyciągając z niej kiełbasę]. Dodać do smaku soli, pieprzu, soku z cytryny i szczyptę cukru [tu mała modyfikacja: ja sobie cukier odpuściłem...]. Sos powinien być w smaku słodko - kwaśny i w miarę gęsty [... a co za tym idzie, sos nie był słodki].

W gotowym sosie dusimy jeszcze przez chwilę kiełbasę pokrojoną na kawałki i podajemy jako ciepły posiłek.
 

Polecam z dobrym piwkiem i pieczywem posmarowanym masełkiem osełkowym :-)

Ach, zdjęcia nie będzie, bo nie nadawało się do publikacji.

Monday, January 25, 2010

Testowanie aplikacji webowych - testy akceptacji

Ostatnio zainteresowałem się odrobinę rozwijaniem aplikacji webowych. Jestem w tej materii kompletnie zielony, ale dłubiąc tu i tam staram się poznać np. Django. Z racji mojego prawie religijnego podejścia do testowania swoich produktów, regularnie zastanawiam się, jak dobrze testować takie aplikacje. Traf chciał, że natrafiłem na to:

 Charming Python: Easy Web data collection with mechanize and Beautiful Soup

Autor tekstu wykorzystuje tutaj mechanize oraz Beatiful Soup do zbierania informacji z serwisów internetowych. Jednak, jeśli przyjrzeć się składni, to czy to nie wygląda na piękny framework do pisania testów akceptacji dla aplikacji webowej? Jeszcze tylko je zautomatyzować, ubrać w jakiś pyUnit... i mamy testy akceptacji.

Oczywiście zapewne istnieją jakieś lepsze frameworki do testów akceptacji (Selenium?) ale czytając artykuł o mechanize wydało mi się on całkiem niezłym narzędziem.

Sunday, January 24, 2010

Obiad-z-byle-czego

Są takie chwile, kiedy obiad należy zrobić w miarę szybko, a ma się ochotę na coś dobrego, a nie zwyczajny zapychacz. Tak się złożyło, że tej soboty odkryliśmy pokłady nieużytych dotychczas boczniaków w lodówce... i mieliśmy wskazówkę, co zrobić dalej.

Obiad-z-byle-czego

Składniki
  • 250gr boczniaków
  • średnia cebula
  • nieco ponad pół szklanki wody
  • łyżeczka mąki
  • przyprawy: sól, pieprz, pieprz ziołowy, czosnek granulowany, lubczyk
  • dwie piersi z kurczaka (na 4 filety)
  • kilka plastrów sera do topienia
  • torebka ryżu
  • brokuły
  • bułka tarta
  • 50-100g masła 
Przygotowanie
Cebulę kroimy w kostkę i szklimy na patelni; umyte i pokrojone w kostkę boczniaki wrzucamy do cebuli, zalewamy wodą i przyprawiamy solą, pieprzem, czosnkiem i lubczykiem. Gotujemy aż do otrzymania pożądanej konsystencji.

Ryż gotujemy wedle gustu. My lubimy twardszy ;-)

Brokuły dzielimy na mniejsze części (zostawiamy tylko główki) i gotujemy. Z bułki tartej i masła robimy zasmażkę i dekorujemy nią brokuły.

Pierś z kurczaka oczyszczamy i suszymy (np. papierem). Każdą pierś przekrajamy wzdłuż, na pół - tak, aby otrzymać dwa filety. Przyprawiamy lubczykiem, pieprzem ziołowym, odrobiną soli i czosnkiem z obu stron; smażymy na złoto. Pod koniec smażenia kładziemy plasterki sera na piersiach i czekamy, aż się roztopi.

Voilà! Obiad-z-byle-czego zrobiony i gotowy do spożycia - i jest naprawdę dobry. Podawać z dobrym piwkiem.




PS. Zdjęcie do najlepszych nie należy, ale robione było na szybko - żeby szamka nie wystygła.


   

Event-Driven Programming The Easy Way

O, fajne!

Trellis

Wednesday, January 20, 2010

Kontrowersyjna szarlotka

Za dużo tu informatyki, więc dzisiaj będzie o pieczeniu. Trochę na pół gwizdka, bo nie będzie zdjęć - przynajmniej w najbliższym czasie. [aktualizacja: zdjęcia będą - 19.03.2010] Ostatni raz tę szarlotkę piekłem wczesną jesienią [aktualizacja: upiekłem ją na początku marca].

Kontrowersyjna szarlotka

Składniki (ciasto)
  • 3 szklanki mąki (pszennej)
  • 250g margaryny (do pieczenia)
  • 3 ugotowane jajka
  • 3 łyżki śmietany kremówki
  • pół szklanki cukru
  • 3 lyżeczki proszku do pieczenia
  • cukier puder 
Składniki (nadzienie)
  • 1,2kg jabłek (tak, by po starkowaniu wyszło ich około 1kg) lub 1kg jabłek w zaprawie
  • kilka garści rodzynek, opcjonalnie orzechy laskowe
  • cukier, cynamon 
Mąkę posiekać z margaryną i cukrem. Dodać starte na drobno (możliwie najdrobniej) żółtka z jajek, a nastepnie dodać proszek do pieczenia. Dodać śmietanę. Na koniec wyrobić ciasto rękami, podzielić na dwie równe części i rozwałkować - tak, by uzyskane "placki" pasowały do formy, w której ciasto będzie wypiekane.

Jabłka zetrzeć (lub skorzystać z gotowych jabłek w zaprawie), dodać cukier i cynamon do smaku. Rodzynki sparzyć i wymieszać z jabłkami; podobnie z orzechami laskowymi. Osobiście lubię wrzucić sporo cynamonu, aby uzyskać lekko pikantny posmak.

Do normalnej wielkości formy (z natłuszczonym przynajmniej dnem) włożyć pierwszy placek i położyć przygotowane nadzienie. Ostrożnie przykryć całość drugim plackiem (trzeba sprytnie, bo zdarza się mu rwać). Na tym etapie ważne jest, żeby placek możliwie dobrze pasowal do formy - jeśli tak nie jest, trochę wrednie się go dopasowuje. Na koniec należy wziąć widelec i ponakłuwać całość (dość gęsto) by ciasto mogło "oddychać". Tak przygotowane ciasto wrzucamy do piekarnika nagrzanego na 200 stopni na około 40 minut. Pod koniec warto doglądać, czy placek się nie spiekł.

Po wyjęciu należy posypać cukrem pudrem. Podawać na ciepło (lub zimno, jeśli ktoś lubi) udekorowane bitą śmietaną.





Smacznego.

PS. Przepis przekazany mi przez moją mamę.

Friday, January 15, 2010

O portfolio dewelopera

Już rozumiem, czego brakowało w moim CV.
 I, jak to powiedział Jeff Atwood, "It's not our job to be better than anyone else; we just need to be better than we were a year ago." Tak, by zakończyć pozytywnym akcentem.

Thursday, January 14, 2010

Generowanie throbberów

To-Jest-Cudowne.

Generator throbberów

Czasem ma się szczęście do znalezienia dokładnie takiego narzędzia, jak potrzebujesz.

Tuesday, January 12, 2010

Saturday, January 9, 2010

Sunday, January 3, 2010

Code-review, początek rozważań

Ostatnio, jako że mój blog zaczął bardziej przypominać wirówkę, postanowiłem napisać coś od siebie na temat przeglądania kodu (code review). Zanim to jednak nastąpi, pozwolę sobie przedstawić bardzo sensowny artykuł o tym, jak przeprowadzić taki przegląd w sposób socjalnie odpowiedzialny:

Effective Code Reviews Without Pain

Myślę, że każdy powinien to przeczytać zanim zabierze się za dyskusję na temat kodu - czy to własnego, czy też cudzego.

Major C problem

Nie sposób się nie przyznać racji (edit: że to poważny problem). Choć nie mnie to stwierdzać, żaden ze mnie programista C.

C's Biggest Mistake

Quines

Ciekawostka. Czysta gimnastyka myślowa.

Quines list

Saturday, January 2, 2010

Jest już późno...

... lol ;-)


Kilka oczywistych rzeczy o kreacji obiektów w Javie.

Mało zaskakujące.

Mutability, Arrays and the Cost of Temporary Objects in Java

No, może poza tym, że wołanie "values()" na typie wyliczeniowym w Javie nie jest najrozsądniejszym wyjściem. Wygląda na to, że ze względu na nietrwałość/ulotność (lepiej brzmi niż niemutowalność, czyż nie?) zastosowano tzw. defensive copying - choć to już mało istotne.

Reading code top to bottom, not inside-out...

... czyli podsumowując to. Artykuł jest dość stary i przydługi, ale warto z niego zapamiętać jedną rzecz podczas pisania/czytania kodu: kod powinien się czytać od góry do dołu, a nie skacząc po nim wzrokiem niczym młody baranek hasający po zielonej łączce znaków ASCII. Swoja drogą: czy to właśnie nie jest takie goto,  ukryte w myślach? 

Ten post prawdopodobnie niewiele wniesie do Twojego życia - choć to zależy od Twojego programistycznego doświadczenia.

Modyfikacja kodu w locie

That sounds interesting.

JMangler is a framework for generic interception and transformation of Java programs at load-time.

 Nie żeby to była jakaś nowość, ale możliwości tego narzędzia wydają się być naprawdę spore.