Tuesday, May 26, 2015
Goodbye Blogger, welcame octopress
Blog was moved to the Octopress + github pages. You may find it here zuchos.com
Sunday, July 6, 2014
Confitura 2014 - Developers family reunion
I like this time of the year. Summers just begins, it's nice and warm outside the sun is shining and my favorite community conference takes place. Confitura is very close to my heart. I had a pleasure to participate in the organization in the past. But this year I was on the other side, a speaker. I was a bit curious how community will react on the topic of my speech ("How to be a happy Developer?")? Would it catch attention and fill the room? It was a "soft" presentation after all.
But my doubts vanished in the air of full venue and were definitely gone afterwards when the applause rang out. Thank you for attending to my presentation, it was a pleasure to share my insights about carrier with you. For those who chose the other session, no worries, you will still be able to watch it. Just wait a bit and follow ConfituraPL on Twitter or Facebook (the video should be available on youtube).
One of the insight on my presentation was that "the most important are the people around you" and that's the thing that I love about Confitura. Each year I have a great opportunity to meet lot's of people. Those that I met during studies, my past jobs, community leaders and conference veterans. It's like family reunion. I haven't seen many of those guys for a long time and sometimes we haven’t heard from each other for a while, but during Confitura we talk together, gossip or joke like it was yesterday. Besides that I met lot's of new people too, I hope we will see each other next year (or maybe during WarsJava?).
Kudos for organizers and volunteers, job well done. That was great developers family reunion!
But my doubts vanished in the air of full venue and were definitely gone afterwards when the applause rang out. Thank you for attending to my presentation, it was a pleasure to share my insights about carrier with you. For those who chose the other session, no worries, you will still be able to watch it. Just wait a bit and follow ConfituraPL on Twitter or Facebook (the video should be available on youtube).
One of the insight on my presentation was that "the most important are the people around you" and that's the thing that I love about Confitura. Each year I have a great opportunity to meet lot's of people. Those that I met during studies, my past jobs, community leaders and conference veterans. It's like family reunion. I haven't seen many of those guys for a long time and sometimes we haven’t heard from each other for a while, but during Confitura we talk together, gossip or joke like it was yesterday. Besides that I met lot's of new people too, I hope we will see each other next year (or maybe during WarsJava?).
Kudos for organizers and volunteers, job well done. That was great developers family reunion!
Monday, December 16, 2013
What does Agile mean to you?
Not so long time a go, I was on the conference about Agile (AgileByExample - great conference by the way) and one of the sponsors has a win-tablet contest. To win brand new Nexus you had to post on their facebook wall answer for a question:
Adaptation is very important thing, in fact it's a matter of live or dead.
Mammoth, Squirrel, Landscape, Beware sing
What does Agile mean to you?I posted 2 answers but the contest was setup and someone else won my Nexus (just kidding of course). Conference was over but the question was coming back, ringing in my head. What the hell is Agile ? Is it methodology (ugly word), nickname for Scrum, XP or maybe just a buzzword? Other questions emerged: Who could be agile? Developer? Analyst? CEO? Housewife? My confusion was rising… I knew that I had to start from the beginning. What is called Agile by most of the people? For sure one of those:
- TDD
- Scrum
- Kanban
What are the similarities?
TDD gives me flexibility to change my code anytime and I know that it will work as I'm expecting. Scrum (same as Kanban) helps me to deal with changing (or just discovered) customer's requirements. Main difference between agile approach and its opposite: waterfall (or simply planned end-to-end process) is ability to handle change. So simply agile means being adaptive.Adaptation is very important thing, in fact it's a matter of live or dead.
It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is the most adaptable to change. Charls DarvinSo if you don't want to end up like mammoth or dinosaurs, be adaptive! I think that the reason why nowadays start-ups and small innovative companies are so successful. They are adaptive!
![]() |
| You don't want to end up like mammoth |
Adaptive: another buzzword?
But not to get from one buzzword to another, what is my definition of being adaptive. I believe that there is a philosophy behind it. I come to terms with fact that I'm not able to plan and control everything (believe me, that it took me a while). Maybe for some of you it's obvious, but I'm programmer. When I write println("hello world"), the text is printed out. Moreover in the real world I am expected to make promises and fulfill them (those are named estimates, plans, sprint backlogs etc). So sometimes I may have illusion that I'm in control. That means that: I may think long enough and come up with solution or plan that will work! And will always work… cause it's smart and made well.![]() |
| Wanna play? |
And here comes Agile…
There is no a such thing as perfect plan, solution or even estimate. Some things are better than the other, but usually you don't know how good they are until you try. The solution is to start with something small, try it out and then change. Repeat that cycle forever (I call it: try-change cycle). There is always temptation to spend more time on planning and invent a perfect solution. But in my opinion it's better to spend that time on trying out. The other problem is that, in big organizations to change something you must have well-documented-bullet-proof plan and blessings from the CEO or managers. That's the reason why such organizations are almost incapable to change. So if you are working in such organization remember: it's much better to change one team (call it pilot project) immediately than spend a year to make a plan that will change organization. If your team will be successful it would be much easier to spread the change. On the other hand, if your first solution will fail you may easily change it (remember, be adaptive!).![]() |
| She is definitely Agile! |
Agile is direction not destination
Bottom line is, be adaptive, prefer try-change cycle over thinking on master plan. Always start with something small, try it out (as it is) and then if it doesn't work well enough, change it. Remember! You are never there, something that may work today but tomorrow world will change. You should never-ever end try-change cycle. That's my definition of agile and anyone could be agile: student, developer, programer, CEO, housewife, literally anybody. I tried to be agile in my personal life and no surprise here, it works!![]() |
| Are we there yet ? |
Beware
Beware you will meet salesmen that will tell you that there is a magic pill called Scrum or whatever. You just buy it or make a certificate and you are agile! Just like that! If you believe them, it means that you are not agile enough. I don't say that making certificates or training doesn't make sense, just remember that those are just tools to become agile, not the agile itself.![]() |
| Beware agile certificates! |
Disclaimer
Everything you just read it's my personal option. I'm not considering myself as agile guru or coach. I just think that I understood what agile means to me and I want to share this though with you. Thanks for reading that, if you disagree or have some more insights about agile just leave a comment or drop an email.Photos
Photos on CC license taken from Flickr:Mammoth, Squirrel, Landscape, Beware sing
Tuesday, October 15, 2013
How to make workshop conference ? - Warsjawa 2013
If you wonder "How to make workshop conference ?", you know that's could be extremely difficult. There are hundreds of attendees and workshops are usually quite small (at most 30 people). Programming workshops usually needs infrastructure as access to internet, large display, microphone speakers. So you need about 20 rooms with equipment and lot's of organizers to solve "bugs" when they show up. You know Murphy's Law, and you know that "bugs" will appear shortly after conference will start. It sounds like a head ache, doesn't it ? But If you want to know how to do it, and how to turn that conference in success, ask Warsjawa organizers. They have the magic formula. Warsjawa 2013 was spectacular success. Every thing went really smooth!
![]() |
| Creative attendees that was something we were counting on |
This year I had a great opportunity to be on the other side (together with Jan Zborowski and Pawel Stawicki). I was trainer on "One day with challenging client" training. That's training made by SoftwareMill which main goal was to create similar to real-life case and get attendees involved. On that case we show up traps that team members could be caught. Many of those traps are not the traps set up by "evil client" but by the team itself. On the other hand we demonstrate good practices that make communication with client more efficient. We teach attendees a bunch of simple guidelines that could improve their relations with customer and increase project success rate.
![]() |
| Q&A session |
Attendees were really great, all tree teams managed to deliver working solution. On Q&A session we had a great opportunity to talk about everyday problems. I hope that this training will help them in their every day work. It's not a silver bullet but some technics should be useful (I was attendee at this training once and I use them often :-) ) Big thanks to one of the organizers , Adam Chudzik was helping us during the training, his was very eager to help and we really appreciate that.
![]() |
| My, speaking with passion |
After finishing my workshop I was really tired but event though I took usability training workshop with Mateusz Kaczmarek and Michał Trzaskowski. Workshop was fine and that was nice trip out of my comfort zone. I learned a bit about usability testing. It was nice introduction to the Human-Computer Interaction course that I just started on Coursera.
![]() |
| Having beer with another Łukasz |
The conference after party was at "Mam ochotę". I met a lot of Java/Scala geeks there and had a change to talk a bit about Scalar. Scalar is our new baby (SoftwareMill's), it's one-day fee Scala conference, that will take place in Warsaw at 05.04.2014. That was a great day but very exhausting.
PS 1. If you enjoy idea of "One day with challenging client", we (SoftwareMill) may run it at your company or conference.
PS 2. Next chance to attend to that training is on AgileByExample 2013 (on this friday)
PS 3. All photos were made by organizers, used by permission. To see Warsjawa 2013 gallery click here
Thursday, October 3, 2013
Code Review is not about...
In SML we do code reviews. We do them on daily basis. Actually the point that we are now is a result of long journey that we made. We try different strategies and tools until we went to the place that we are now (but it doesn't mean that we are going to end up here).
During this journey we found many risks and traps that are waiting for a newcomer. That's what this post is all about, traps & misconceptions on code review.
Code control: many organizations uses CR for controlling codebase. Most of them are using pre-commit strategy. In many cases its because those projects are open-source with hundred of commiters. In real life this is quite rare scenario, so if you hired someone it means that you trust him enough to let him commit code to repository. I know that in some organizations there will be temptation to make procedure that will force developers to "review" and "approve" every commit, but it will not guarantee the quality. Moreover people will soon treat code review as "stupid" corporate procedure and will try to hack-it (such changing password every month e.g. people are using passwords like: mypass1, mypass2 etc.).
Hall of blame: Don't user CR for finding scape goats or guilty ones. Let's assume that there was a failure and you found a person who "reviewed" the "bad code" and blame him for not pointing it out. I will cause that development in your company will drastically slow down. People will be pointing out every semicolon not at the right place, because they will be afraid of being scape goat. Your team members will start feeling unconfident and the lack of trust.
"Code" of duty: Don't push on your developers to much. If you force them to make review every day for an hour, soon they will hate it and treat as unfunny duty. Code review is about learning, praising others and giving feedback so it's very social activity. CR could be fun, don't spoil it.
I'm not my code: If your code was reviewed by someone and he left some comment (sometimes even not too nice), don't get angry. He isn't saying that you are a poor developer. That wasn't his intention nor code review is about that. All he did, was criticizing some piece of code (not the author). Code review is all about code, not about you. Don't treat code review tool as forum with "trolls" and people fighting each other. When you will be writing comments try not to be rude or too strict. Try to imagine that your are on the other side reading it.
To sum it up, there is plenty of ways to make code review wrong. Those 4 are the one that I experienced or anticipated, so beware. I promise to write post about "what code review is about".
If you wan't to try out code review tool (fruit of our experience & practices) visit codebrag.com
If you wan't to try out code review tool (fruit of our experience & practices) visit codebrag.com
Used photos:
1. "The Puppet Master" by Henk
2. "ready for duty" by Leonard John Matthews
3. "Polar wolf's argument" by Tambako the Jaguar
Thursday, July 11, 2013
Gdzie kucharek sześć, tam nie ma co jeść - czyli Confitura 2013
W tym roku zdobyć wejściówkę na Confiturę było trudniej niż na niejeden koncert super-mega gwiazdy. Renoma konferencji rośnie i należy się z tego cieszyć. W tym roku doszły mnie słuchy, że "uwaga, uwaga" nie będzie obiadu. Wielu wieszczyło klęskę, puste sale i pojawienie się band głodnych programistów napadających na przechodniów konsumujących kebaby. Jak się jednak okazało plotki były mocno przesadzone. Obiad był, w formie nieco skromniejszej niż zwykle. Ale po kolei.
Rozpoczęcie konferencji, odbyło się z wielką klasą. Panowie z kapituły powitali nas w fartuchach niczym szefowie kuchni w towarzystwie kociołka w którym robiona była konfitura. Bardzo było to pomysłowe i doprawiło konferencję nutką poczucia humoru. Na otwarciu przekazano także symboliczną nagrodę dla firmy Javart za to, że wspierała ona Confiturę (wcześniej Javarsovie) przez wszystkie edycje. Szkoda tylko, że zabrakło w tej chwili ś.p. Pawła Cybulskiego dzięki któremu to wsparcie miało miejsce. Brawa dla kapituły za nagradzanie firm wytrwale budujących społeczność i inwestujących w nią długoterminowo.
W tym roku do wyboru było 5 równoległych ścieżek. Ja swoją rozpocząłem od Storma. Prezentacja pozwoliła zrozumieć elementarne pojęcia jak "spout" i "bolt" oraz zapoznać nas z przyjemnym API które ma Storm. Prowadzący pokazał jak łatwo można uruchomić sobie prostą topologie oraz jak łatwo można budować te bardziej skomplikowane. Co prawda z prezentacji nie można było wynieść wiele więcej, ale mi to specjalnie nie przeszkadzało ponieważ wcześniej bardzo niewiele o Stormie słyszałem, a prezentacja zainteresowała mnie tą technologią. Po krótkiej przerwie wybrałem MapReduce z Moniką Nawrot. Prezentacja także zaczynała się od podstaw i odpowiedzi na pytanie: "Po co nam to całe przetwarzanie w chmurze". Później mogliśmy poznać więcej szczegółów działania funkcji map, reduce i shuffle. Prowadząca pokazała także parę przykładów implementacji z wykorzystaniem Flume, która usprawnia i ułatwia korzystanie z MapReduce'a.
Następnie zaś byłem na moim zadaniem najlepszej prezentacji na Confiturze 2013 czyli z "Czego być może nikt nie powiedział ci o JS, a co jednak powinnaś/powinieneś wiedzieć". Mój firmowy kolega Michał Ostruszka okazał się świetnym prelegentem. Nie tylko przygotował ciekawą prezentację, ale także zaprezentował ją w sposób sprawny, lekki oraz z poczuciem humoru.
Następnie była przerwa obiadowa, podczas której miał nastąpić armagedon wieszczony przez Inków na grudzień 2012. Na szczęście nic się nie stało. Okazało się, że obiad był! Co prawda w formie trochę skromniejszej niż rok temu (gulasz i kanapki), ale każdy kto studiował musi przyznać, że w porównaniu do studenckich obiadów były to nie lada frykasy. Ja po skonsumowaniu gulaszu poszedłem uzupełnić dietę o warzywa oraz mięso (czyli na kebab). Bardzo fajnie, że ta przerwa była na tyle długa, że można było sobie wyskoczyć na kebab czy piwko i spokojnie wrócić na dalszy ciąg wykładów.
Następną prezentacje niestety przegadałem na konferencyjnych korytarzach. Ale cóż to także ważny aspekt konferencji, spotkać długo niewidzianych znajomych czy poznać nowe osoby dzielące tą samą co my pasję. Następnie posłuchałem Tomasza Borka o jednej z bolączek naszej profecji, a mianowicie o różnicach kulturowych dzielących Europę oraz Indie. Myślę, że ta prezentacja pozwoliła mi lepiej zrozumieć naszych kolegów zamieszkujących subkontynent indyjski. Przy następnej sposobności na pewno przetestuje zdobyte informacje.
Kolejnym moim wyborem była prezentacja Marcina Zajączkowskiego o testach mutacyjnych. Temat o którym parę razy słyszałem, natomiast nigdy zgłębiłem Prezentacja Marcina odpowiedziała na najważniejsze moje pytania. Dowiedziałem się jakie mamy do dyspozycji narzędzia, jakie są ich ograniczenia oraz czy da się tego użyć w prawdziwym projekcie.
Na koniec posłuchałem prezentacji Michała Bartyzla o architekturze systemów. Była to ciekawa historia kilku prawdziwych projektów z morałem. Morał był dość oczywisty, ale często o nim zapominamy, otóż przy podejmowaniu decyzji co do rozwiązań, należy wziąć pod uwagę wiele czynników także tych "biznesowych" i "organizacyjnych", a nie ulegać wyłącznie technicznym nowościom i zachciankom programistów :-)
Potem było rozdanie nagród. Nie wiem czemu, ale jakimś dziwnym trafem nigdy nic nie wylosowałem (na żadnej z edycji). Może w żelatynie jest jakiś kod typu:
while (!lastname.equals("Żuchowski")) { lastname = losuj(); }
:-)
Kapituła przyznała także nagrodę specjalną Jackowi Laskowskiemu, którego każdy chyba zna i który jest ojcem chrzestnym nie tylko Confitury ale także Javarsovii.
Potem razem z grupą szczęśliwych entuzjastów Javy oraz technologii około JVM-owych udałem się na przystanek gdzie czekał na nas "Confitura Bus" sponsorowany przez mojego pracodawcę czyli SoftwareMill. Po podróży w miłym gronie znaleźliśmy się na Spoinie. Na Spoinie można było się nie tylko spoić (piwem ufundowanym przez Touk) ale także pojeść pizze i pograć jedną z wielu gier barowych (cymbergaj, piłkarzyki, bilard oraz kręgle). Można było porozmawiać z Konradem Malawskim o pracy w Ebayu i Scali, zagrać w kręgle z dumnie reprezentującym barwy CitiBanku Jackiem Laskowskim o honor firmy (sorry Jacek, następnym razem się odegrasz). Impreza była naprawdę przednia i trwała dość, długo. Ja jak rasowy kopciuszek zawinąłem się lekko po północy (gdy zegar wybijał po raz 193).
Podsumowując: konferencja bardzo fajna, impreza po prostu super! Kapituła jak zwykle spisała się na medal. Naprawdę myślę, że uszczuplenie budżetu na obiad to był dobry krok. Także, dzięki temu udało się zorganizować tak fajną Spoinę. Lokalizacja w postaci kampusu UW, rewelacyjna. Największe 2 mankamenty poprzedniej edycji czyli brak klimy oraz zbyt gęste ustawienie stoisk sponsorskich zostały wyeliminowane. Jak się okazało, gdzie kucharzy sześciu tam jest i co zjeść, i czego posłuchać, i czego się napić.
Cichy bohater.
Tomek Dziurko niestety w tym roku nie mógł uczestniczyć w konferencji. Tomek dzielnie pracował całe pół roku przygotowując konferencję ale z powodów rodzinnych musiał zostać w domu. Dlatego dla mnie to on będzie cichym bohaterem tej edycji. Mam nadzieje, ze za rok będzie mógł brać udział w tym święcie społeczności razem ze mną. Zrobiłem dla niego wszystko co mogłem, czyli wypiłem jego zdrowie na Spoinie.
Rozpoczęcie konferencji, odbyło się z wielką klasą. Panowie z kapituły powitali nas w fartuchach niczym szefowie kuchni w towarzystwie kociołka w którym robiona była konfitura. Bardzo było to pomysłowe i doprawiło konferencję nutką poczucia humoru. Na otwarciu przekazano także symboliczną nagrodę dla firmy Javart za to, że wspierała ona Confiturę (wcześniej Javarsovie) przez wszystkie edycje. Szkoda tylko, że zabrakło w tej chwili ś.p. Pawła Cybulskiego dzięki któremu to wsparcie miało miejsce. Brawa dla kapituły za nagradzanie firm wytrwale budujących społeczność i inwestujących w nią długoterminowo.
W tym roku do wyboru było 5 równoległych ścieżek. Ja swoją rozpocząłem od Storma. Prezentacja pozwoliła zrozumieć elementarne pojęcia jak "spout" i "bolt" oraz zapoznać nas z przyjemnym API które ma Storm. Prowadzący pokazał jak łatwo można uruchomić sobie prostą topologie oraz jak łatwo można budować te bardziej skomplikowane. Co prawda z prezentacji nie można było wynieść wiele więcej, ale mi to specjalnie nie przeszkadzało ponieważ wcześniej bardzo niewiele o Stormie słyszałem, a prezentacja zainteresowała mnie tą technologią. Po krótkiej przerwie wybrałem MapReduce z Moniką Nawrot. Prezentacja także zaczynała się od podstaw i odpowiedzi na pytanie: "Po co nam to całe przetwarzanie w chmurze". Później mogliśmy poznać więcej szczegółów działania funkcji map, reduce i shuffle. Prowadząca pokazała także parę przykładów implementacji z wykorzystaniem Flume, która usprawnia i ułatwia korzystanie z MapReduce'a.
Następnie zaś byłem na moim zadaniem najlepszej prezentacji na Confiturze 2013 czyli z "Czego być może nikt nie powiedział ci o JS, a co jednak powinnaś/powinieneś wiedzieć". Mój firmowy kolega Michał Ostruszka okazał się świetnym prelegentem. Nie tylko przygotował ciekawą prezentację, ale także zaprezentował ją w sposób sprawny, lekki oraz z poczuciem humoru.
Następnie była przerwa obiadowa, podczas której miał nastąpić armagedon wieszczony przez Inków na grudzień 2012. Na szczęście nic się nie stało. Okazało się, że obiad był! Co prawda w formie trochę skromniejszej niż rok temu (gulasz i kanapki), ale każdy kto studiował musi przyznać, że w porównaniu do studenckich obiadów były to nie lada frykasy. Ja po skonsumowaniu gulaszu poszedłem uzupełnić dietę o warzywa oraz mięso (czyli na kebab). Bardzo fajnie, że ta przerwa była na tyle długa, że można było sobie wyskoczyć na kebab czy piwko i spokojnie wrócić na dalszy ciąg wykładów.
Następną prezentacje niestety przegadałem na konferencyjnych korytarzach. Ale cóż to także ważny aspekt konferencji, spotkać długo niewidzianych znajomych czy poznać nowe osoby dzielące tą samą co my pasję. Następnie posłuchałem Tomasza Borka o jednej z bolączek naszej profecji, a mianowicie o różnicach kulturowych dzielących Europę oraz Indie. Myślę, że ta prezentacja pozwoliła mi lepiej zrozumieć naszych kolegów zamieszkujących subkontynent indyjski. Przy następnej sposobności na pewno przetestuje zdobyte informacje.
Kolejnym moim wyborem była prezentacja Marcina Zajączkowskiego o testach mutacyjnych. Temat o którym parę razy słyszałem, natomiast nigdy zgłębiłem Prezentacja Marcina odpowiedziała na najważniejsze moje pytania. Dowiedziałem się jakie mamy do dyspozycji narzędzia, jakie są ich ograniczenia oraz czy da się tego użyć w prawdziwym projekcie.
Na koniec posłuchałem prezentacji Michała Bartyzla o architekturze systemów. Była to ciekawa historia kilku prawdziwych projektów z morałem. Morał był dość oczywisty, ale często o nim zapominamy, otóż przy podejmowaniu decyzji co do rozwiązań, należy wziąć pod uwagę wiele czynników także tych "biznesowych" i "organizacyjnych", a nie ulegać wyłącznie technicznym nowościom i zachciankom programistów :-)
Potem było rozdanie nagród. Nie wiem czemu, ale jakimś dziwnym trafem nigdy nic nie wylosowałem (na żadnej z edycji). Może w żelatynie jest jakiś kod typu:
while (!lastname.equals("Żuchowski")) { lastname = losuj(); }
:-)
Kapituła przyznała także nagrodę specjalną Jackowi Laskowskiemu, którego każdy chyba zna i który jest ojcem chrzestnym nie tylko Confitury ale także Javarsovii.
Potem razem z grupą szczęśliwych entuzjastów Javy oraz technologii około JVM-owych udałem się na przystanek gdzie czekał na nas "Confitura Bus" sponsorowany przez mojego pracodawcę czyli SoftwareMill. Po podróży w miłym gronie znaleźliśmy się na Spoinie. Na Spoinie można było się nie tylko spoić (piwem ufundowanym przez Touk) ale także pojeść pizze i pograć jedną z wielu gier barowych (cymbergaj, piłkarzyki, bilard oraz kręgle). Można było porozmawiać z Konradem Malawskim o pracy w Ebayu i Scali, zagrać w kręgle z dumnie reprezentującym barwy CitiBanku Jackiem Laskowskim o honor firmy (sorry Jacek, następnym razem się odegrasz). Impreza była naprawdę przednia i trwała dość, długo. Ja jak rasowy kopciuszek zawinąłem się lekko po północy (gdy zegar wybijał po raz 193).
Podsumowując: konferencja bardzo fajna, impreza po prostu super! Kapituła jak zwykle spisała się na medal. Naprawdę myślę, że uszczuplenie budżetu na obiad to był dobry krok. Także, dzięki temu udało się zorganizować tak fajną Spoinę. Lokalizacja w postaci kampusu UW, rewelacyjna. Największe 2 mankamenty poprzedniej edycji czyli brak klimy oraz zbyt gęste ustawienie stoisk sponsorskich zostały wyeliminowane. Jak się okazało, gdzie kucharzy sześciu tam jest i co zjeść, i czego posłuchać, i czego się napić.
Cichy bohater.
Tomek Dziurko niestety w tym roku nie mógł uczestniczyć w konferencji. Tomek dzielnie pracował całe pół roku przygotowując konferencję ale z powodów rodzinnych musiał zostać w domu. Dlatego dla mnie to on będzie cichym bohaterem tej edycji. Mam nadzieje, ze za rok będzie mógł brać udział w tym święcie społeczności razem ze mną. Zrobiłem dla niego wszystko co mogłem, czyli wypiłem jego zdrowie na Spoinie.
Sunday, September 30, 2012
How to configure Hibernate 4 with JTA transaction for unit tests ?
Some time ago I had to configure Hibernate 4 to work with local unit tests with JTA. At the beginning I was a bit worried that it could be painful. But it appeared to be quite easy when I made it work. The big deal was to find out, how to configure hibernate to use JTA transaction manager (not thread local one), because it was hard to find any information, docs or manuals about this topic.
So let's start with persistence.xml:
Pay attention at transaction-type="JTA" setting. The other think is configuration when EntityManagerFactory is being build:
So, the EntityManagerFactory has been build and configured. Now it's time to use it, in this purpose just call "emf.createEntityManager()" and You have ready to use EntityManager.
And on the end crucial thing: How to menage transactions in unit test ?
It's simple:
So enjoy using JTA-like transactions in Your unit tests. Just remeber that this platform is mock implementation and You are not beyond full JEE server, so e.g. Injecting UserTransaction is not the best idea ;-)
Wednesday, September 21, 2011
Jak zdobyć Linchpin'a za darmo - czyli audible.com
Wiele słyszałem o książce Setha Godina "Linchpin", właściwie słyszałem za wiele i gdy masa krytyczna została osiągnięta postanowiłem tę książkę przeczytać. W pierwszej kolejności wpisałem w przeglądarkę amazon.com, aby sprawdzić ile ta książka kosztuje (na Kindla ma się rozumieć). $ 12.64 to cena całkiem atrakcyjna i już miałem kliknąć "buy", gdy nagle zobaczyłem, że mogę tą książkę mieć za darmo.
Jako, że powszechnie wiadomo, że nic w życiu za darmo nie ma, postanowiłem przyjrzeć się gdzie tkwi haczyk. Za darmo można nabyć Lichpin'a poprzez sklep audible.com (sklep z audiobookami należący do Amazona). Właściwie do tej pory z audiobookami byłem na bakier. Ale skoro można mieć taką dobrą książkę za darmo postanowiłem spróbować. Audible.com bardzo mile mnie zaskoczyło, przy rejestracji (można skorzystać z konta amazonowego) i skorzystaniu z 30-to dniowego bezpłatnego członkostwa otrzymujemy dwa kredyty (z ang. credit) i dostęp do wielu promocji, darmowych próbek audiobooków i próbek.
Zostań członkiem naszego klubu czyli gdzie jest haczyk ?
Haczyk twki w tym, że jeśli nie zrezygnujemy w trakcie tych 30 dni (ale nic nas od tego powstrzymać nie może jeżeli tylko chcemy), nasze członkostwo zostanie przedłużone na kolejny miesiąc. Za $15 (dokładnie $14,95) otrzymamy miesięcznie jeden kredyt oraz prolongatę członkostwa na kolejne 30 dni (a co za tym idzie dostęp do próbek, darmowych audiobooków itd). "Kredyt" to nic innego jak "wirtualna" waluta w audible.com. Większość książek możemy kupić już za jeden kredyt, niektóre z nich za dwa. Możemy także kupować audiobooki korzystając z konwencjonalnej waluty.
Podsumowując za $15 możemy kupić jednego audiobooka miesięcznie oraz uzyskujemy sprawo do rabatów na inne audiobooki oraz dostęp do darmowych audiobooków i próbek. Jest to tylko jeden z dostępnych abonamentów (złoty). Jeżeli chcecie wiedzieć więcej na ich temat zajrzyjcie tutaj. Gdy wejdziecie na audible.com bezpośrednio, a nie poprzez próbę kupna książki w amazon.com, dostaniecie inną ofertę członkowską, a mianowicie pierwsze trzy miesiące za pół ceny. Według mnie jest to oferta mniej korzystna bo za trzy miesiące zapłacimy $21,50 i zyskujemy 3 kredyty. W przypadku oferty ze strony amazon.com pierwszy miesiąc gratis (w tym 2 kredyty) oraz dobrowolne przedłużenie członkostwa o miesiąc za $15 (jeden kredyt). Tak więc trzy kredyty będą kosztowały nas $15 czyli $7,5 mniej. Dodam, że audiobooki dostępne za 1 kredyt w gotówce kosztują więcej niż $15, choć czasami można trafić na wyprzedaż i kupić audiobooka za np. $5.
Jak słuchać ?
Ważna informacja dla wszystkich zainteresowanych, audible.com nie pozwala na pobrania audiobooka w formacie mp3, ani w dowolnym innym otwartym formacie. Pliki można pobierać ze strony za pośrednictwem specjalnego oprogramowania. Na szczęście dostępne jest ono na większość popularnych urządzeń, od telefonów komórkowych po odtwarzacze mp3, a nawet nawigacje GPS. Warto także dodać, że Kindle 3, odtwarza te audiobooki i wchodzą one w skład naszej biblioteki. Ja korzystałem z audible.com na trzech urządzeniach: PC, telefon systemem Android oraz Kindle.
Aplikacja na komputer PC, przypomina aplikacje z lat '90 i robi bardzo nieprzyjemne wrażenie. Mi nie udało się znaleźć szybkiego sposobu na "przeskoczenie" do dowolnego miejsca w audiobooku. Jedyna funkcja, która na to pozwala to przewijanie. Brak także podziału na rozdziały, jednym słowem żenada. Jeden z moich kolegów twierdzi, że ta aplikacja bardzo przypomina iTunes. Ja nie wiem, gdyż nie korzystam z technologii z pod znaku jabłuszka.
Program na telefon komórkowy z systemem Andorid pobrałem z Andorid Store. Tutaj miłe zaskoczenie, aplikacja jest nowoczesna i posiada wszystkie funkcje, których brakuje wersji PC, a nawet parę więcej (np. cofnięcie o 30 sekund). Aplikacja dobrze współpracuje z zestawem słuchawkowym za pomocą, którego możemy wznawiać i zatrzymywać odtwarzanie. Można także regulować prędkość "czytania" co jest na pewno przydatną funkcją w przypadku literatury obcojęzycznej. Niestety, jeżeli naszym rodzimym językiem jest polski, wszystkie książki w audible.com będą obcojęzyczne.
Wsparcie dla audiobooków w Kindle jest na poziomie bez wątpienia lepszym niż w aplikacji PC ale niestety gorszym niż w aplikacji na Android'a. Brakuje możliwości przeskoku do dowolnego miejsca w książce, jest za to podział na rozdziały. Czasami, gdy zmieniamy rozdział następuje krótka chwila opóźnienia, prawdopodobnie z uwagi na możliwości sprzętowe urządzenia. W przypadku audiobooków bardzo brakuje także funkcji synchronizacji postępu słuchania.
"What goes around, comes around."
Reasumując, jeżeli chcesz przeczytać książkę, zastanów się może warto jej posłuchać ? Zwłaszcza jeżeli możesz mieć ją za darmo. Słuchać książki możesz często w miejscach w których nie da się jej czytać. Dla mnie audiobooki są dopełnieniem i pozawalają mi bardziej produktywnie wykorzystać czas, który do tej pory uważałem za stracony (gdy idę do pracy lub jadę na zakupy). Osobiście uważam, że jeżeli ktoś już się w audiobooki wciągnie i je polubi to zostanie klubowiczem audible.com i $15 miesięcznie będzie w stanie poświęcić. Mi strategia audible.com bardzo się podoba i nawiązując do Setha Godina, warto jest coś dać, bo dawanie jest sztuką. A jeśli to co robimy jest sztuką ludzie nas docenią, kupią nasz produkt i odniesiemy sukces.
PS. postaram się zamieścić swoją recenzję Linchpin'a bo na pewno jest to książka, o której warto wspomnieć.
Jako, że powszechnie wiadomo, że nic w życiu za darmo nie ma, postanowiłem przyjrzeć się gdzie tkwi haczyk. Za darmo można nabyć Lichpin'a poprzez sklep audible.com (sklep z audiobookami należący do Amazona). Właściwie do tej pory z audiobookami byłem na bakier. Ale skoro można mieć taką dobrą książkę za darmo postanowiłem spróbować. Audible.com bardzo mile mnie zaskoczyło, przy rejestracji (można skorzystać z konta amazonowego) i skorzystaniu z 30-to dniowego bezpłatnego członkostwa otrzymujemy dwa kredyty (z ang. credit) i dostęp do wielu promocji, darmowych próbek audiobooków i próbek.
Zostań członkiem naszego klubu czyli gdzie jest haczyk ?
Haczyk twki w tym, że jeśli nie zrezygnujemy w trakcie tych 30 dni (ale nic nas od tego powstrzymać nie może jeżeli tylko chcemy), nasze członkostwo zostanie przedłużone na kolejny miesiąc. Za $15 (dokładnie $14,95) otrzymamy miesięcznie jeden kredyt oraz prolongatę członkostwa na kolejne 30 dni (a co za tym idzie dostęp do próbek, darmowych audiobooków itd). "Kredyt" to nic innego jak "wirtualna" waluta w audible.com. Większość książek możemy kupić już za jeden kredyt, niektóre z nich za dwa. Możemy także kupować audiobooki korzystając z konwencjonalnej waluty.
Podsumowując za $15 możemy kupić jednego audiobooka miesięcznie oraz uzyskujemy sprawo do rabatów na inne audiobooki oraz dostęp do darmowych audiobooków i próbek. Jest to tylko jeden z dostępnych abonamentów (złoty). Jeżeli chcecie wiedzieć więcej na ich temat zajrzyjcie tutaj. Gdy wejdziecie na audible.com bezpośrednio, a nie poprzez próbę kupna książki w amazon.com, dostaniecie inną ofertę członkowską, a mianowicie pierwsze trzy miesiące za pół ceny. Według mnie jest to oferta mniej korzystna bo za trzy miesiące zapłacimy $21,50 i zyskujemy 3 kredyty. W przypadku oferty ze strony amazon.com pierwszy miesiąc gratis (w tym 2 kredyty) oraz dobrowolne przedłużenie członkostwa o miesiąc za $15 (jeden kredyt). Tak więc trzy kredyty będą kosztowały nas $15 czyli $7,5 mniej. Dodam, że audiobooki dostępne za 1 kredyt w gotówce kosztują więcej niż $15, choć czasami można trafić na wyprzedaż i kupić audiobooka za np. $5.
Jak słuchać ?
Ważna informacja dla wszystkich zainteresowanych, audible.com nie pozwala na pobrania audiobooka w formacie mp3, ani w dowolnym innym otwartym formacie. Pliki można pobierać ze strony za pośrednictwem specjalnego oprogramowania. Na szczęście dostępne jest ono na większość popularnych urządzeń, od telefonów komórkowych po odtwarzacze mp3, a nawet nawigacje GPS. Warto także dodać, że Kindle 3, odtwarza te audiobooki i wchodzą one w skład naszej biblioteki. Ja korzystałem z audible.com na trzech urządzeniach: PC, telefon systemem Android oraz Kindle.
Aplikacja na komputer PC, przypomina aplikacje z lat '90 i robi bardzo nieprzyjemne wrażenie. Mi nie udało się znaleźć szybkiego sposobu na "przeskoczenie" do dowolnego miejsca w audiobooku. Jedyna funkcja, która na to pozwala to przewijanie. Brak także podziału na rozdziały, jednym słowem żenada. Jeden z moich kolegów twierdzi, że ta aplikacja bardzo przypomina iTunes. Ja nie wiem, gdyż nie korzystam z technologii z pod znaku jabłuszka.
| Screenshot z market.android.com |
Program na telefon komórkowy z systemem Andorid pobrałem z Andorid Store. Tutaj miłe zaskoczenie, aplikacja jest nowoczesna i posiada wszystkie funkcje, których brakuje wersji PC, a nawet parę więcej (np. cofnięcie o 30 sekund). Aplikacja dobrze współpracuje z zestawem słuchawkowym za pomocą, którego możemy wznawiać i zatrzymywać odtwarzanie. Można także regulować prędkość "czytania" co jest na pewno przydatną funkcją w przypadku literatury obcojęzycznej. Niestety, jeżeli naszym rodzimym językiem jest polski, wszystkie książki w audible.com będą obcojęzyczne.
Wsparcie dla audiobooków w Kindle jest na poziomie bez wątpienia lepszym niż w aplikacji PC ale niestety gorszym niż w aplikacji na Android'a. Brakuje możliwości przeskoku do dowolnego miejsca w książce, jest za to podział na rozdziały. Czasami, gdy zmieniamy rozdział następuje krótka chwila opóźnienia, prawdopodobnie z uwagi na możliwości sprzętowe urządzenia. W przypadku audiobooków bardzo brakuje także funkcji synchronizacji postępu słuchania.
"What goes around, comes around."
Reasumując, jeżeli chcesz przeczytać książkę, zastanów się może warto jej posłuchać ? Zwłaszcza jeżeli możesz mieć ją za darmo. Słuchać książki możesz często w miejscach w których nie da się jej czytać. Dla mnie audiobooki są dopełnieniem i pozawalają mi bardziej produktywnie wykorzystać czas, który do tej pory uważałem za stracony (gdy idę do pracy lub jadę na zakupy). Osobiście uważam, że jeżeli ktoś już się w audiobooki wciągnie i je polubi to zostanie klubowiczem audible.com i $15 miesięcznie będzie w stanie poświęcić. Mi strategia audible.com bardzo się podoba i nawiązując do Setha Godina, warto jest coś dać, bo dawanie jest sztuką. A jeśli to co robimy jest sztuką ludzie nas docenią, kupią nasz produkt i odniesiemy sukces.
PS. postaram się zamieścić swoją recenzję Linchpin'a bo na pewno jest to książka, o której warto wspomnieć.
Monday, September 19, 2011
Agile By Example - relacja
W dniach 15-16.09.2011 dzięki mojemu pracodawcy (firmie 7N) miałem okazję uczestniczyć w konferencji AgileByExample. Konferencja odbyła się w Warszawie w Centralnym Basenie Artystycznym. Samo miejsce było dość egzotyczne, gdyż z reguły konferencje na których bywałem odbywały się na uczelniach czy w kinach, ale bez wątpienia była to pierwsza konferencja w basenie. Sam lokal jest dość ciekawy, a dzięki samemu basenowi i faktowi iż kolejne rzędy były położone coraz wyżej widoczność była naprawdę dobra. W CBA nad nagłośnieniem czuwała lokalna ekipa i była to jedna z najlepiej nagłośnionych konferencji na jakiej byłem.
Konferencja ABE trwała 2 dni i podczas niej mogliśmy posłuchać wielu ciekawych prezentacji ułożonych w jedną ścieżkę. Ciekawostką było wprowadzenie sesji Q&A po blokach 2-3 prezentacji, gdzie na każde pytanie mógł odpowiedzieć więcej niż jeden prelegent. Jak dla mnie to rozwiązanie w pełni się sprawdziło, choć niektórzy z prelegentów próbowali wyłamać się z formuły. Prezentacje które wbudziły moje największe zainteresowanie to:
Konferencja ABE trwała 2 dni i podczas niej mogliśmy posłuchać wielu ciekawych prezentacji ułożonych w jedną ścieżkę. Ciekawostką było wprowadzenie sesji Q&A po blokach 2-3 prezentacji, gdzie na każde pytanie mógł odpowiedzieć więcej niż jeden prelegent. Jak dla mnie to rozwiązanie w pełni się sprawdziło, choć niektórzy z prelegentów próbowali wyłamać się z formuły. Prezentacje które wbudziły moje największe zainteresowanie to:
- Jutta Eckstein - Applying Agile Development Practices in Distributed Teams
- Inbar Oren - How to Lose a Team in 10 Days
- Marcin Czenko - Don't Start with Kanban
- Alexandru Bolboaca - TDD - Let's Have a Real Conversation
Bałem się, że na ABE spotkam przede wszystkim fanatyków próbujących sprzedać Agile jako lek na całe zło tego świata i miło się zaskoczyłem, gdyż takich ludzi było bardzo niewielu. Zdecydowana większość uczestników to doświadczeni praktycy, a zarazem pragmatycy, którzy w ruchu Agile widzą przede wszystkim wartość jaką wnosi on do organizacji ich pracy oraz jego wpływ na jakość produktów. Jednocześnie wszyscy żyją w tej samej rzeczywistości pełnej tych okropnych klientów i ich dziwnych wymagań :-)
To co mi się odrobinę nie podobało to prezentacje w których robienie "show" odgrywało większą rolę od samej prezentacji, ale na szczęście było ich dość niewiele. Prezentacje trwały ok. 30 minut co sprawiało, że trudno było znudzić się którąkolwiek z prezentacji.
Tak więc i organizatorom i prelegentom mogę wystawić ocenę bardzo dobrą jako uczestnik. Polecam i zapraszam za rok, może się tam spotkamy ?
Monday, October 11, 2010
Pokrowiec dla Kindle
To temat, który nurtuje większość osób kupujących Kindle. Dla mnie rewelacyjnym rozwiązaniem jest okładka wraz z lampką (diodą LED) oferowana przez Amazon.com. Zbiera dobre recenzję i jest zasilana z baterii Kindla. Jest jednak jeden duży minus czyli cena. $59 to sporo zważywszy, że koszt urządzenia to $189. Drugim, większym problemem jest to, że gdy wartość zamówienia przekroczy ok. $200-210 Amazon zaczyna doliczać $50 na podatki (VAT). W efekcie pokrowiec zaczyna kosztować $109 i chyba sami przyznacie, że jest to suma spora jak za okładkę. Można złożyć osobne zamówienie na okładkę (aby nie płacić VAT) ale wtedy należy doliczyć koszt wysyłki (ok. $10-20), który podnosi cenę okładki.
Pokrowiec i mój Kindle
Dlatego zdecydowałem się na zakup okładki w Polsce. Nie korzystałem oczywiście z "okazji" na allegro, gdzie można nabyć okładki dostępne w Amazon.com (ich cena jest wyższa niż w Amazon.com). W zamian udało mi się znaleźć coś takiego:
(konto sprzedawcy http://allegro.pl/show_user_auctions.php?uid=2131297 ).
Cena atrakcyjna (33zł) i szycie "na miarę" - brzmi nieźle. Wybrałem sobie kolory i złożyłem zamówienie. Czas realizacji od zamówienia do dostarczenia ok. 7 dni. Kindle pasuje, towar "zgodny z opisem". Pokrowiec jest dość gruby (ok. 3-4 cm) z powodu zastosowaniu pianki (pomiędzy podszewką, a warstwą zewnętrzną) chroniącej czytnik przed uszkodzeniami. Etui kupiłem z myślą o noszeniu czytnika w plecaku, więc nie jest to dla mnie duża niedogodność. Kluczowa dla mnie jest ochrona czytnika przed uszkodzeniami "mechanicznymi" (czasami rzucam plecakiem lub nosze w nim inne cięższe przedmioty) oraz przed wilgocią (gdy mój plecak zmoknie w czasie ulewy). Myślę, że ten pokrowiec wywiązuje się jak do tej pory z tej roli idealnie (mam go ok. 3 tygodni).
Estetyka jest na co najwyżej średnim poziomie, jeżeli przywiązujesz do niej wielką wagę ten produkt cię nie zachwyci. Prawdziwym problemem tego pokrowca może być jednak jego trwałość. W tej chwili lamówka którą jest obszyty pokrowiec zaczęła się "siepać" (wyłażą z niej włókna/nitki). Drugim słabym punktem wydaje się zapięcie na "rzep", które jest co prawda mocno przyszyte ale z czasem może zacząć się odpruwać.
Podsumowując, za 30 zł otrzymałem produkt, który spełnia moje potrzeby. Największym minusem, może być jednak jego trwałość. Ale zanim ten pokrowiec przestanie spełniać swoją rolę, być może na rynku pojawią się inne alternatywy w podobnej cenie lub cena pokrowców sprzedawanych przez Amazon.com osiągnie bardziej przystępny poziom.
Wednesday, October 6, 2010
Kindle mój... to jest to... lubię go...
Od niespełna miesiąca jestem szczęśliwym posiadaczem czytnika Amazon Kindle 3G 6". Muszę od początku zaznaczyć, że jestem jego wielkim fanem (choć to krótka znajomość).
Miłość od pierwszego wejrzenia
Muszę przyznać, że pierwszy raz gdy usłyszałem o technologii elektronicznego papieru (e-ink) jakoś nie byłem do niej przekonany. Wydawało mi się, że to coś co umrze gdzieś na etapie proof-of-concept. Słyszałem o czytnikach Sony, ale dla mnie to firma znana ze swych różnych wynalazków, które często okazują się strzałem kulą w płot (np. mini disc, własny system kompresji plików zamiast mp3 etc.). Ale później Amazon pokazał Kindle, a jeszcze później znajomy zakupił Kindla drugiej generacji. Wystarczyło parę chwil z Kindlem 2G, aby przekonać się, że jest to coś co ma szansę działać i nie jest tylko czytnikiem, ale platformą mającą wsparcie największej księgarni świata.
Odpowiedź na moje potrzeby...
Dla mnie Kindle idealnie spełnia moje potrzeby. Mogę czytać na nim książki, sprawdzić pocztę oraz kupować/pozyskiwać nowe książki/dokumenty. Rewelacyjnie prosto rozwiązano także kwestię słownika. Wystarczy najechać kursorem na słowo, a na dole wyświetla się jego zwięzła definicja. Jeżeli potrzebujemy lepszego wyjaśnienia, naciskamy "enter" i wyświetla nam się pełna definicja słownikowa danego słowa. Pełny szacun dla programistów za to, że w słowniku, słownik też działa :)
Nie muszę więc już nosić kilku książek w plecaku (zwykle 2, beletrystyka oraz IT). Nie mam także problemu ze sprawdzaniem w słowniku słówek z literatury anglojęzycznej (w metrze korzystanie z konwencjonalnego słownika jest dość trudne).
Jeszcze bardziej Kindle
Muszę przyznać, że decyzję o zakupie odłożyłem o miesiąc, gdyż często nakręcam się na niektóre gadżety, a po jakimś czasie zdaje sobie sprawę, że z nich nie korzystam. Po miesiącu jednak chciałem Kindla równie mocno jak wcześniej, złożyłem więc zamówienie i czekałem. Czekałem niespełna tydzień choć Amazon na stronie informował, że wysyłka nastąpi najpóźniej za 10 dni.
Po kilku dniach, doszedłem do wniosku, że Kindle jest lepszy niż myślałem. Ma m.in. wbudowany odtwarzacz mp3 oraz darmowy internet. Choć Amazon nie pisze tego otwarcie i zaznacza, że internet jest po to aby korzystać z wiki oraz amazon.com, sama przeglądarka ma wbudowane zakładki do bbc.com, yahoo.com czy espn.com. Do tej pory nie zostałem obciążony żadnymi opłatami. Amazon nie chwali darmowym internetem bo przeglądarka jest w zakładce "experimental" co pozwala im na usunięcie jej, wprowadzenie opłat lub zablokowanie w dowolnym dogodnym dla Amazon momencie. Póki co internet jest za darmo więc można śmiało korzystać.
Inną ogromną zaletą Kindle jest ekran, który naprawdę wygląda jak papier i pozostaje czytelny nawet w ostrym słońcu. Bateria trzyma miesiąc z wyłączoną komunikacją bezprzewodową (3G i WiFi), a 10 z włączoną.
Minusy
Było sporo o plusach i wspaniałości Kindla więc teraz łyżka dziegciu. Największym minusem Kindla dla mnie jest obsługa pdf-ów. Jest ona w najlepszym wypadku poprawna i jeżeli chcecie czytać głównie pdfy, kupcie większego i droższego Kindle DX. Pliki PDF można co prawda konwertować do formatu .mobi ale nie jest to bezbolesne. Po konwersji obrazki, schematy i kody źródłowe mogą się nam porozjeżdżać.
Drugi minus to DRMy. Póki co, nie są zbyt powszechne więc problem jest niewielki. Kindle obsługuje jedynie DRM plików we własnym formacie AZW. Pozostałe formaty uzbrojone w DRM jak np. pdf nie są obsługiwane. Pozostaje mieć nadzieję, że wraz z kolejną wersją oprogramowania obsługa ta zostanie dodana.
Podsumowanie
Gorąco polecam Kindla każdemu kto czyta codziennie, a jego lektura nie zawiera wielu obrazków i wykresów. Za cenę ok. 650 zł (189$ + 20$ dostawa) dostajemy czytnik książek, z możliwością słuchania mp3 oraz dostępem do internetu. Jeżeli spełniasz wymienione przeze mnie kryteria będziesz zadowolony, jeżeli nie sam oceń czy Kindle 3G jest dla ciebie.
PS. jeżeli chcecie mogę napisać więcej na temat, sklepów z książkami i akcesoriów do Kindle.
PS. jeżeli chcecie mogę napisać więcej na temat, sklepów z książkami i akcesoriów do Kindle.
Wednesday, December 23, 2009
Tuesday, June 30, 2009
Javarsovia 2009
To już 3cia edycja największej w Polsce (a niektórzy twierdzą, że także w Europie) bezpłatnej konferencji poświęconej technologią z rodziny Java. Javowe święto odbędzie się poraz kolejny na Wydziale Biologii UW.
Tych którzy nie będą świętowali amerykańskiego dnia niepodległości lub bawili się przy dźwiękach festiwalu Open'er gorąco zapraszam na Javarsovie.
Dlaczego tak agituje ? Bo warto, a także dlatego, że w tym roku udało mi się znaleść w szacownym gronie organizatorów. I choć mój wkład w organizację jest niewielki, mogę Wam zagwarantować, że nie będziecie żałować poświęconego czasu.
W tym roku będą trzy równoległe sesje prezentacji oraz jedna sesja warsztatowa. Co ciekawe będziecie mogli posłuchać nie tylko o nowych frameworkach o których zwykle się mówi przy takich okazjach, ale także posłuchać prezentacji pragmatyków. Będzie można usłyszeć o technikach testowania, ciągłej integracji czy programowaniu w środowisku klastrowym. Prelegenci którzy wąchali już niejednokrotnie proch projektowych pól bitwenych odpowiedzą na drążące was pytania.
Miłośnicy nowych technologii będą mogli posłuchać o Androidzie czy witrualizacji. Nie zabraknie także prezentacji bardziej koncepcyjnych a dotyczących takich tematów jak kryptografia czy "cloud computing".
Po konferencji odbędzie się impreza integracyjna na którą zaproszenia będzie można zdobyć podczas Javarsovii. Będzie to kolejna okazja aby porozmawiać z prelegentami czy sponsorami. W końcu znajomości najlepiej zawiera się przy piwie.
Tak więc do zobaczenia na Javarsovii'09!
Wszelkie informacje znajdziecie -> tutaj
Tych którzy nie będą świętowali amerykańskiego dnia niepodległości lub bawili się przy dźwiękach festiwalu Open'er gorąco zapraszam na Javarsovie.
Dlaczego tak agituje ? Bo warto, a także dlatego, że w tym roku udało mi się znaleść w szacownym gronie organizatorów. I choć mój wkład w organizację jest niewielki, mogę Wam zagwarantować, że nie będziecie żałować poświęconego czasu.
W tym roku będą trzy równoległe sesje prezentacji oraz jedna sesja warsztatowa. Co ciekawe będziecie mogli posłuchać nie tylko o nowych frameworkach o których zwykle się mówi przy takich okazjach, ale także posłuchać prezentacji pragmatyków. Będzie można usłyszeć o technikach testowania, ciągłej integracji czy programowaniu w środowisku klastrowym. Prelegenci którzy wąchali już niejednokrotnie proch projektowych pól bitwenych odpowiedzą na drążące was pytania.
Miłośnicy nowych technologii będą mogli posłuchać o Androidzie czy witrualizacji. Nie zabraknie także prezentacji bardziej koncepcyjnych a dotyczących takich tematów jak kryptografia czy "cloud computing".
Po konferencji odbędzie się impreza integracyjna na którą zaproszenia będzie można zdobyć podczas Javarsovii. Będzie to kolejna okazja aby porozmawiać z prelegentami czy sponsorami. W końcu znajomości najlepiej zawiera się przy piwie.
Tak więc do zobaczenia na Javarsovii'09!
Wszelkie informacje znajdziecie -> tutaj
Wednesday, May 13, 2009
Produkt "szyty" na miarę...
Metafora
Wiele firm właśnie tak mówi o swoich aplikacjach, idąc tym tropem zacząłem się przyglądać bliżej tej metaforze.
Chcąc być posiadaczem ręcznie uszytego garnituru/sukni klient udaje się do zakładu krawieckiego. Tłumaczy krawcowi jakiego rodzaju ma być to garnitur (ślubny, zwykły etc.). Klient wybiera kolor, fason i fakturę materiału. Krawiec może w tym wyborze pomóc, doradzić, a czasem zasugerować. Następnie mierzy on klienta i przystępuje do pracy.
Po jakimś czasie klient przychodzi na przymiarkę. Sprawdza czy krawiec zastosował się do jego wymagań, a następnie przymierza "wyrób". Krawiec jeżeli to konieczne nanosi poprawki, wykańcza drobiazgi, a następnie dostarcza gotowy produkt.
Analogia
Czytając książki na temat metodyk tworzenia oprogramowania mam wrażenie, że ta metafora jest bardzo prawdziwa. Z jednym małym ale...
Przychodząc do krawca wierzymy, że jest on specjalistą w swojej dziedzinie. Z reguły ufamy jego radą i sugestią, a co najważniejsze pozostawiamy mu szczegóły techniczne. Wybraliśmy tego szewca, a nie innego. Polecił nam go znajomy, który był zadowolony, więc i my powierzamy w jego ręce wykonanie naszego zamówienia.
W świecie tworzenia oprogramowania zaufanie do wykonawcy to towar dość mocno deficytowy. Nie chodzi o zaufanie do firmy jako solidnego partnera w interesach, ale do ludzi tworzących produkt jako fachowców. Klient bardzo często nie mówi jedynie czego oczekuje od produktu i jakie jego potrzeby ma on zaspakajać. Klient często (bardzo często/przeważnie) decyduje o wszystkim od kolorów począwszy, a na układzie formularzy skończywszy. Nie było by w tym nic złego, gdyby klient był ekspertem od danego typu aplikacji, ale najczęściej nie jest.
Właśnie z tego powodu, gdy przychodzimy do krawca nie mówimy mu jakim ściegiem ma szyć, czy w jaki sposób kroić materiał. Wybieramy co prawda fason, ale nie projektujemy każdej kieszeni i kołnierza. Dlaczego ? Bo na tym zna się lepiej krawiec, który uszył już setkę innych garniturów. Ma on dostateczną wiedzę i doświadczenie, więc prawdopodobnie zrobi to lepiej.
Klient ma zawszę rację
Klient najczęściej wie wszystko najlepiej, przecież to on będzie korzystał z tego systemu (być może "do końca życia"). Dlatego specjalista od ubezpieczeń może zaprojektować formularz, a Pani Krysia określić przepływ stron.
Dlaczego klient nie ufa fachowcom ? Dlaczego klient chce wykonywać pracę projektanta ?
Po pierwsze: "Bo może". Czy gdyby producent samochodów poprosił nas o współpracę w tworzeniu nowego modelu. Czy nie kusiło by nas, aby zrobić to auto pod siebie ? Pewnie tak i każdy z nas zrobił by to czysto subiektywnie. Subiektywnie w tym wypadku nie znaczy lepiej. Dla kogoś innego ten produkt może nie być tak intuicyjny i wygodny jak nam się wydaję. Jak często nowy model samochodu/telefonu zaskoczył nas bardzo użyteczną funkcją, której sami byśmy nie wymyślili ? Zaufajmy tym ludziom ! To twórcy dla których jakość ich dzieła jest często nie mniej ważna niż dla klienta.
Po drugie: "Bo to Pani Krysia będzie całe życie kożystała z tego produktu i to dla niej ten system".
Twierdzenie często nieprawdziwe, ponieważ kadra się zmienia, ludzie przychodzą i odchodzą, a produkt zostaje. Co więcej pewne przyzwyczajenia Pani Krysi mogą być niewspółdzielone przez inne osoby (np. nie miały styczności z poprzednim oprogramowaniem używanym w firmie).
Po trzecie: "Bo już mamy taki jeden system i nikt nie umie się nim posługiwać. Dodatkowo jest strasznie nieintuicyjny".
Trzeba sobie postawić pytanie, dlaczego ten system jest taki "zły" ? Czy osoby korzystające z niego zostały należycie przeszkolone ? Jeżeli nie, to lepszym rozwiązaniem jest zorganizowanie szkoleń dla pracowników, zamiast angażowanie ich w "projektowanie" aplikacji. Jeżeli tak, należy zapewnić użytkowników, że podczas fazy analizy ich potrzeby i sposób pracy zostaną dokładnie zgłębione i uwzględnione w projekcie aplikacji. Co więcej można konsultować pewne rozwiązania z "biznesem".
To chyba najpopularniejsze powody dla których klient staje się projektantem. Czasami trzeba po prostu zastanowić się co za nimi stoi i poprzez ich zrozumienie przekonać klienta do zmiany podejścia. Czasami jednak nie mamy wpływu na klienta i wtedy wszystko staje się kwestią zaufania, dlatego apeluje do "klientów" zaufajcie fachowcom (sprawdzajcie, nadzorujcie, audytujcie ale ufajcie...).
Tuesday, May 5, 2009
Broken Window Theory...
Teoria
Nie pamiętam już gdzie ale jakiś czas temu czytałem o "teorii rozbitej szyby". Termin ten kojarzony jest przede wszystkim z Rudolphem Giulianim burmistrzem Nowego Jorku.
Teoria ta w skrócie mówi iż jedna zbita szyba pozostawiona w budynku sprawi że będzie on dalej niszczony w dużo szybszym tempie.
Sam widziałem zastosowanie tej teorii w praktyce widując pozostawione na długie tygodnie/miesiące samochody. Gdy były "całe" nikt ich nie dewastował, wystarczyło że ktoś wybił pierwszą szybę, reflektor (i nikt go nie wymienił,nie zakleił folią szyby), a dewastacja następowała lawinowo z dnia na dzień. Milczące przyzwolenie sprawiało, że ludzie czuli się mniej odpowiedzialni, a odpowiedzialność za zniszczenie samochodu stawała się coraz bardziej rozmyta na wiele osób.
Problem
W wielu projektach w których byłem widziałem rozwiązania mało eleganckie lub wręcz sprzeczne z powszechnie przyjętymi zasadami tego rzemiosła. Gdy po krótkim dochodzeniu udawało się zlokalizować winnego ten tłumaczył się, że zrobił tak samo jak było to rozwiązane w innym miejscu. Na argument, że jest to zrobione w sposób nieprawidłowy, odpowiadał, że jemu też się to rozwiązanie nie podoba, ale przecież w innych miejscach ktoś inny też tak postąpił, więc nie wpłynie to istotnie na jakość projektu. Gdy udało się znaleźć tego kto zapoczątkował złą praktykę okazywało się, że to było rozwiązanie "tymczasowe" i "później" miało być zrobione to lepiej (lub w inny sposób tłumaczone deadline-ami). Bardzo szybko jedna zbita szyba zamieniła się w 2, potem 3 i liczba ta stale rosła. Co więcej wszyscy zaczęli narzekać na wyjątkowo niską jakość projektu, któremu "nic" już nie zaszkodzi, więc wszystkie chwyty stały się dozwolone.
Rozwiązanie ?
Sam muszę przyznać że zdarzało mi się rozwiązywać problem "łatając" coś w sposób brzydki ("skoro wszyscy tak robią"). Ale gdy ktoś zwrócił mi uwagę na pierwszą rozbita przeze mnie szybę zwykle od razu starałem się ją naprawić. Większość programistów, gdy popełnią taki błąd i zostanie im zwrócona uwaga nie jest dumna z tego faktu. Taki "winny developer" stara się jak najszybciej poprawić swój błąd/niedopatrzenie/lenistwo.
Burmistrz Giuliani zwiększył uprawnienia Policji i wypowiedział bezwzględną walkę graficiarzom, a co może zrobić architekt/lead developer/kierownik projektu ?
Myślę, że powołanie "Policji projektowej" nie jest złym pomysłem ;) Być może brzmi to śmiesznie, biurokratycznie i formalnie ale można spojrzeć na to pod innym kontem.
Policjant będzie to rola odpowiedzialna za jakość kodu. Może być nią jedna osoba lub grupa osób, może być to także funkcja "przechodnia". Policjant nie musi całymi dniami przeglądać kodu w poszukiwaniu "zbrodni". Wystarczy, że gdy przypadkiem ją zauważy nie przejdzie obok niej obojętnie. Być może przydało by się miejsce w którym takie fragmenty były by wypisywane (np. bug tracker, tablica korkowa) nawet anonimowo bez dochodzenia kto je popełnił. Osoba mając w danej chwili więcej czasu mogła by je poprawić i zdjąć z tablicy, mógłby zrobić to także sam autor widząc swoje "dzieło" na tablicy. Czy takie rozwiązanie sprawdziło by się w praktyce ? Prawdopodobnie tak, ale pewności nie mam gdyż nigdy nie widziałem jego zastosowania.
Na pewno najlepszą metodą dbania o jakoś kodu jest pisanie kody wysokiej jakości, ale jak sami widzimy różnie z tym bywa. Czasami taki błąd może być źródłem pośpiechu, niezrozumienia danego fragmentu aplikacji czy braku umiejętności. Jak pokazuje praktyka takich sytuacji uniknąć się nie da, ale to nie znaczy, że nie można z nimi walczyć.
Inną metodą przeciwdziałania są rewizje kodu. W takim podejściu każdy kawałek kodu musi zostać zaakceptowany przez innego programistę. Jest to metoda bez wątpienia bardziej skuteczna ale zarazem wymaga poświęcenia większej ilości dodatkowego czasu oraz skutecznego jej egzekwowania (np. za pomocą odpowiednich narzędzi zintegrowanych z repozytorium).
Nie pamiętam już gdzie ale jakiś czas temu czytałem o "teorii rozbitej szyby". Termin ten kojarzony jest przede wszystkim z Rudolphem Giulianim burmistrzem Nowego Jorku.
Teoria ta w skrócie mówi iż jedna zbita szyba pozostawiona w budynku sprawi że będzie on dalej niszczony w dużo szybszym tempie.
Sam widziałem zastosowanie tej teorii w praktyce widując pozostawione na długie tygodnie/miesiące samochody. Gdy były "całe" nikt ich nie dewastował, wystarczyło że ktoś wybił pierwszą szybę, reflektor (i nikt go nie wymienił,nie zakleił folią szyby), a dewastacja następowała lawinowo z dnia na dzień. Milczące przyzwolenie sprawiało, że ludzie czuli się mniej odpowiedzialni, a odpowiedzialność za zniszczenie samochodu stawała się coraz bardziej rozmyta na wiele osób.
Problem
W wielu projektach w których byłem widziałem rozwiązania mało eleganckie lub wręcz sprzeczne z powszechnie przyjętymi zasadami tego rzemiosła. Gdy po krótkim dochodzeniu udawało się zlokalizować winnego ten tłumaczył się, że zrobił tak samo jak było to rozwiązane w innym miejscu. Na argument, że jest to zrobione w sposób nieprawidłowy, odpowiadał, że jemu też się to rozwiązanie nie podoba, ale przecież w innych miejscach ktoś inny też tak postąpił, więc nie wpłynie to istotnie na jakość projektu. Gdy udało się znaleźć tego kto zapoczątkował złą praktykę okazywało się, że to było rozwiązanie "tymczasowe" i "później" miało być zrobione to lepiej (lub w inny sposób tłumaczone deadline-ami). Bardzo szybko jedna zbita szyba zamieniła się w 2, potem 3 i liczba ta stale rosła. Co więcej wszyscy zaczęli narzekać na wyjątkowo niską jakość projektu, któremu "nic" już nie zaszkodzi, więc wszystkie chwyty stały się dozwolone.
Rozwiązanie ?
Sam muszę przyznać że zdarzało mi się rozwiązywać problem "łatając" coś w sposób brzydki ("skoro wszyscy tak robią"). Ale gdy ktoś zwrócił mi uwagę na pierwszą rozbita przeze mnie szybę zwykle od razu starałem się ją naprawić. Większość programistów, gdy popełnią taki błąd i zostanie im zwrócona uwaga nie jest dumna z tego faktu. Taki "winny developer" stara się jak najszybciej poprawić swój błąd/niedopatrzenie/lenistwo.
Burmistrz Giuliani zwiększył uprawnienia Policji i wypowiedział bezwzględną walkę graficiarzom, a co może zrobić architekt/lead developer/kierownik projektu ?
Myślę, że powołanie "Policji projektowej" nie jest złym pomysłem ;) Być może brzmi to śmiesznie, biurokratycznie i formalnie ale można spojrzeć na to pod innym kontem.
Policjant będzie to rola odpowiedzialna za jakość kodu. Może być nią jedna osoba lub grupa osób, może być to także funkcja "przechodnia". Policjant nie musi całymi dniami przeglądać kodu w poszukiwaniu "zbrodni". Wystarczy, że gdy przypadkiem ją zauważy nie przejdzie obok niej obojętnie. Być może przydało by się miejsce w którym takie fragmenty były by wypisywane (np. bug tracker, tablica korkowa) nawet anonimowo bez dochodzenia kto je popełnił. Osoba mając w danej chwili więcej czasu mogła by je poprawić i zdjąć z tablicy, mógłby zrobić to także sam autor widząc swoje "dzieło" na tablicy. Czy takie rozwiązanie sprawdziło by się w praktyce ? Prawdopodobnie tak, ale pewności nie mam gdyż nigdy nie widziałem jego zastosowania.
Na pewno najlepszą metodą dbania o jakoś kodu jest pisanie kody wysokiej jakości, ale jak sami widzimy różnie z tym bywa. Czasami taki błąd może być źródłem pośpiechu, niezrozumienia danego fragmentu aplikacji czy braku umiejętności. Jak pokazuje praktyka takich sytuacji uniknąć się nie da, ale to nie znaczy, że nie można z nimi walczyć.
Inną metodą przeciwdziałania są rewizje kodu. W takim podejściu każdy kawałek kodu musi zostać zaakceptowany przez innego programistę. Jest to metoda bez wątpienia bardziej skuteczna ale zarazem wymaga poświęcenia większej ilości dodatkowego czasu oraz skutecznego jej egzekwowania (np. za pomocą odpowiednich narzędzi zintegrowanych z repozytorium).
Saturday, January 10, 2009
SpringSource w Warszawie
Przeglądając sobie stronę SpringSource trafiłem na informację, że jeden z kursów z podstaw Springa odbędzie się w Warszawie.
Szkolenie będzie miało miejsce w Warsaw Financial Center, a jego koszt to jedyne 2000 Euro i potrwa 4 dni.
Tutaj znajdziecie link do szkolenia:
http://www.springsource.com/training/spr001/waw-20090310
To chyba pierwsza tego rodzaju wizyta Panów ze SpringSource w Polsce.
PS. Jeżeli ktoś z Was będzie uczestniczył w tym szkoleniu zapraszam do podzielenia się wrażeniami.
Szkolenie będzie miało miejsce w Warsaw Financial Center, a jego koszt to jedyne 2000 Euro i potrwa 4 dni.
Tutaj znajdziecie link do szkolenia:
http://www.springsource.com/training/spr001/waw-20090310
To chyba pierwsza tego rodzaju wizyta Panów ze SpringSource w Polsce.
PS. Jeżeli ktoś z Was będzie uczestniczył w tym szkoleniu zapraszam do podzielenia się wrażeniami.
Sunday, November 23, 2008
Warsjava08 - subiektywnie...
No i po konferencji. Myślę, że wysiłek oranizatorów w tym roku bardzo się opłacił. Konferencja była naprawdę dobrze zoorganizowana (olbrzymi krok do przodu w stosunku do '07).
Co mi się podobało:
- duża ilość uczestników i obowiązek rejstracji przez sieć, który sprawił że organizatorzy mogli zapewnić każdemu posiłek (a nawet można było iść po dokładke ;) ).
- którsze prezentacje, dzięki temu można było posłuchać o różnych rzeczach, a jak ktoś danym tematem nie był zainteresowany to mógł łatwo przeczekać.
- fajna impreza integracyjna :)
- koszulki dla wszystkich
- adrenalina towarzysząca losowaniu nagród
Co mi się troszke niepodobało (ale tylko troszkę...):
- trochę brak dyscypliny niektórych prelegentów (chyba właściwie jednego) sprawił, że prezentacje Łukasza i Jacka zostały mocno skrócone. Prezentacja Jacka mogła być naprawdę bardzo ciekawa gdyby miał więcej czasu. Ważne jest też robienie przerw, dzięki którym można rozporostować nogi, porozmawiać i odzyskać świeżość umysłu do słuchania kolejnych prezentacji.
- prezentacja o Eclipse RCP i web'ie. Uważam, że poziom tej prezentacji był średni, a prowadzący pokazał coś (RAP-a) o czy nie umiał, wiele więcej powiedzieć. Sama aplikacja w SWT to przecież nie jest jakieś wiekie osiągnięcie, a to co miało robić różnicę czyli RAP, zostało dość pobieżnie nakreślone i tak naprawdę niewiele o tym rozwiązaniu się dowiedzieliśmy.
- brakowało mi takiego wstępu oraz podsumowania wygłoszonego przez ktogoś z organizatorów (prelegentów).
Podsumowując...
Licze na to, że prezentację Jacka o web-appie i OSGi jeszcze kiedyś w całości usłyszę. Temat jest gorący i wart zainteresowania, a Jacek prezentacje przygotowuje naprawdę solidnie.
Wielkie brawa dla organizatorów i dużego postępu jaki zrobiła Warsjava w ciągu tego roku. Brawa dla sponsorów za to, że mogliśmy nakarmić nie tylko umysły, a potem się wspólnie spotkać i porozmawiać przy piwku.
Może, warto zaprosić na spotkanie JUGowe Tomasza Zieleniewskiego, aby opowiedział nam wiecej o SIPie, SIP servletach i SLEE, bo temat jest dość interesujący. Ale na JUGu przydała by się raczej bardziej techniczna, a mniej marketingowa prezentacja.
Co mi się podobało:
- duża ilość uczestników i obowiązek rejstracji przez sieć, który sprawił że organizatorzy mogli zapewnić każdemu posiłek (a nawet można było iść po dokładke ;) ).
- którsze prezentacje, dzięki temu można było posłuchać o różnych rzeczach, a jak ktoś danym tematem nie był zainteresowany to mógł łatwo przeczekać.
- fajna impreza integracyjna :)
- koszulki dla wszystkich
- adrenalina towarzysząca losowaniu nagród
Co mi się troszke niepodobało (ale tylko troszkę...):
- trochę brak dyscypliny niektórych prelegentów (chyba właściwie jednego) sprawił, że prezentacje Łukasza i Jacka zostały mocno skrócone. Prezentacja Jacka mogła być naprawdę bardzo ciekawa gdyby miał więcej czasu. Ważne jest też robienie przerw, dzięki którym można rozporostować nogi, porozmawiać i odzyskać świeżość umysłu do słuchania kolejnych prezentacji.
- prezentacja o Eclipse RCP i web'ie. Uważam, że poziom tej prezentacji był średni, a prowadzący pokazał coś (RAP-a) o czy nie umiał, wiele więcej powiedzieć. Sama aplikacja w SWT to przecież nie jest jakieś wiekie osiągnięcie, a to co miało robić różnicę czyli RAP, zostało dość pobieżnie nakreślone i tak naprawdę niewiele o tym rozwiązaniu się dowiedzieliśmy.
- brakowało mi takiego wstępu oraz podsumowania wygłoszonego przez ktogoś z organizatorów (prelegentów).
Podsumowując...
Licze na to, że prezentację Jacka o web-appie i OSGi jeszcze kiedyś w całości usłyszę. Temat jest gorący i wart zainteresowania, a Jacek prezentacje przygotowuje naprawdę solidnie.
Wielkie brawa dla organizatorów i dużego postępu jaki zrobiła Warsjava w ciągu tego roku. Brawa dla sponsorów za to, że mogliśmy nakarmić nie tylko umysły, a potem się wspólnie spotkać i porozmawiać przy piwku.
Może, warto zaprosić na spotkanie JUGowe Tomasza Zieleniewskiego, aby opowiedział nam wiecej o SIPie, SIP servletach i SLEE, bo temat jest dość interesujący. Ale na JUGu przydała by się raczej bardziej techniczna, a mniej marketingowa prezentacja.
Tuesday, October 21, 2008
Dexter, MacBook & product placement.
A dzisiaj coś z zupełnie innej beczki, a mianowicie produkt placement firmy Apple.
Chyba każdy z nas oglądając produkcje filmowe z USA zwrócił uwagę na te laptopy z jabłuszkami na pokrywach, prawda ? Występują one niezwykle często, myślę, że popularność ich w filmach i serialach jest dużo większa niż w rzeczywistości.
Na filmach pokazani są super-fajni ludzie, a przecież ci jak wiadomo korzystają wyłącznie ze sprzętu firmy Apple :). Mogłoby się wydawać, że ten produkt placement jest nachalny i mocno przypadkowy (tzn. Apple mówi, chcemy żeby w Waszym firmie grały Mac'i i wszystkie komputery w danym filmie maja logo ogryzka...).
Oglądając ostatni odcinek serialu Dexter, bliżej się temu product placement'owi przyjrzałem. Product placement jabłuszek jest dużo bardziej podstępny niż nam się wydaje :) (zgodnie ze spiskową teorią dziejów).
Wydawałoby się że wszystkie komputery w Dexterze to Mac'i, nic bardziej błędnego. Ostatni obejrzany odcinek doprowadził mnie do bardzo ciekawych wniosków (sezon 3, epizod 3).
Na posterunku policji wszyscy korzystają z komputerów HP. Takie nudne miejsce, nudni ludzie korzystający z nudnych komputerów ;). Wyjątkiem jest Dexter, korzystający ze swojego MacBooka Pro, zarówno w domu jak i w pracy.

No właśnie Dexter zawsze korzysta z Mac book'a, no ale cóż on jest fajny i nie można mu się dziwić, że wybrał Mac'a w końcu fajnie ludzie wybierają fajne komputery.

Ale najlepsze na koniec. W ostatnim odcinku pojawił się niejaki Nathan Marten, mający na koncie wyrok za pedofilie, a obecnie dobierający się do rodziny Dexter'a.
Bardzo zły gości, nie sądzicie ? Jakiego komputera może używać taki zły do szpiku kości drań ? I tu niespodzianka! Nathan używa wypasionego laptopa firmy Alienware.

Firma ta zajmuje się budowaniem modeli z górnej półki dla graczy! Tak te komputery adresowane są dla graczy. Tak więc, jak czarne kapelusze to gracze. Pedofil nie mógł wybrać Mac'a bo jest zdecydowanie niefajnym człowiekiem.
Nie traktujcie tego artykułu zbyt poważnie :)
Chyba każdy z nas oglądając produkcje filmowe z USA zwrócił uwagę na te laptopy z jabłuszkami na pokrywach, prawda ? Występują one niezwykle często, myślę, że popularność ich w filmach i serialach jest dużo większa niż w rzeczywistości.
Na filmach pokazani są super-fajni ludzie, a przecież ci jak wiadomo korzystają wyłącznie ze sprzętu firmy Apple :). Mogłoby się wydawać, że ten produkt placement jest nachalny i mocno przypadkowy (tzn. Apple mówi, chcemy żeby w Waszym firmie grały Mac'i i wszystkie komputery w danym filmie maja logo ogryzka...).
Oglądając ostatni odcinek serialu Dexter, bliżej się temu product placement'owi przyjrzałem. Product placement jabłuszek jest dużo bardziej podstępny niż nam się wydaje :) (zgodnie ze spiskową teorią dziejów).
Wydawałoby się że wszystkie komputery w Dexterze to Mac'i, nic bardziej błędnego. Ostatni obejrzany odcinek doprowadził mnie do bardzo ciekawych wniosków (sezon 3, epizod 3).
Na posterunku policji wszyscy korzystają z komputerów HP. Takie nudne miejsce, nudni ludzie korzystający z nudnych komputerów ;). Wyjątkiem jest Dexter, korzystający ze swojego MacBooka Pro, zarówno w domu jak i w pracy.

No właśnie Dexter zawsze korzysta z Mac book'a, no ale cóż on jest fajny i nie można mu się dziwić, że wybrał Mac'a w końcu fajnie ludzie wybierają fajne komputery.

Ale najlepsze na koniec. W ostatnim odcinku pojawił się niejaki Nathan Marten, mający na koncie wyrok za pedofilie, a obecnie dobierający się do rodziny Dexter'a.
Bardzo zły gości, nie sądzicie ? Jakiego komputera może używać taki zły do szpiku kości drań ? I tu niespodzianka! Nathan używa wypasionego laptopa firmy Alienware.

Firma ta zajmuje się budowaniem modeli z górnej półki dla graczy! Tak te komputery adresowane są dla graczy. Tak więc, jak czarne kapelusze to gracze. Pedofil nie mógł wybrać Mac'a bo jest zdecydowanie niefajnym człowiekiem.
Nie traktujcie tego artykułu zbyt poważnie :)
Wednesday, October 8, 2008
Pragmatyczny programista vs. Crtl+space
Ostatnio okazyjnie nabyłem książkę Panów: Andrew Hunta oraz Davida Thomasa pod tytułem "Pragmatyczny programista". Warto dodać że książka ta została wydana w 2000 roku (w USA, w Polsce 2002).
W rozdziale o narzędziach, autorzy przekonują do tezy, że programista powinien posługiwać się biegle jednym edytorem tekstu i używać go wszędzie, gdzie się da. Tłumaczą, że maestria w posługiwaniu się jednym prostym narzędziem, jest znacznie ważniejsza niż wyręczanie się kombajnem w rodzaju IDE.
Dla mnie teza ta jest dzisiaj już trochę nieaktualna. Wyobraźmy sobie kogoś kto nad projektem w JEE (z wykorzystaniem np. spring, hibernate, struts) pracuje np. vi. Znałem osobiście jednego programistę który taki styl pracy preferował ale do pewnego czasu. Kiedy poznał Intellij Idea (to nie jest blog sponsorowany) i zapoznał się z klawiszologią jego praca stała się nie tylko szybsza i prostsza ale także mniej błędogenna.
Czy więc dzisiaj słowa zawarte w pragmatycznym programiście są nadal aktualne?
Od 2000 roku wiele się zmieniło, wystarczy spojrzeć jakie wtedy były IDE i jakie są teraz... Dzisiaj Eclipse czy IDEA to nie tylko produkty tworzone pod kontem konkretnego języka. To rozwiązania do których istnieje całe bogactwo rozszerzeń, dzięki którym praca programisty staje się nie tylko prostsza ale także mniej błedo genna.
Często bowiem zdarza się, że edytując config w xml popełniam literówke. Błędy zawarte w plikach konfiguracyjnych wychodzą dopiero podczas działania aplikacji. Wykrywanie takich błędów jest więc bardzo kosztowne, ponieważ trzeba aplikacje zbudować, uruchomić i jeżeli będziemy mieli szczęście to wyłapiemy błąd podczas uruchamiania aplikacji, jeżeli nie to będziemy go musieli wy klikać.
Gdy mamy do dyspozycji IDE, z walidacją tych configów błąd lub ostrzeżenie zobaczymy na ekranie w momencie jego popełnienia, tak więc IDE oszczędza nam w tym wypadku wiele pracy. Dodatkowo IDE podpowie także w xml nazwę pakietu czy klasy.
Dodatkowo dzięki IDE zwiększa się czytelność kodu (autoformatowanie) i nawigacja po strukturach klas i interfejstów jest bardzo ułatwiona.
Dzisiaj IDE zaspokaja w 99% potrzeby programisty, ale fakt jest faktem, że raz na jakiś czas trzeba coś zrobić poza nim. Wtedy trzeba użyć narzędzi o których piszą autorzy "Pragmatycznego programisty". Maestria w posługiwaniu się nimi jest atutem, ale czy koniecznością ?
Jak widać wiele się zmieniło w ciągu ostatnich paru lat w pracy programistów. IDE jest dzisiaj ważnym narzędziem bez którego ciężko się obyć. Należy jednak pamiętać, że IDE to tylko narzędzie i nie ma w nim magicznych krasnoludków, które wszystko za nas zrobią. Niestety efektem ubocznym korzystania z IDE jest często niewiedza, co tak naprawdę się dzieje pod spodem, co IDE robi za nas. Spotkałem już "programistów" którzy tworzyli programy w IDE, a gdy poprosiłem ich o uruchomienie ich z linii poleceń, nie potrafili tego zrobić :) Podobne anegdotki, krążyły o programistach korzystających z Visual Studio, że nie piszą oni kodu, a go wyklikują.
Podsumowując, świat idzie na przód i narzędzia też i sam edytor to dzisiaj stanowczo zbyt mało. Dzisiaj maestria w posługiwaniu się IDE jest coraz bardziej wskazana, należy być jednak świadomym tego co IDE za nas robi (czasami może nam coś popsuć i wtedy wiemy gdzie szukać błędu), bo czasami nadchodzi chwila w której musimy stanąć twarzą w twarz z linią poleceń.
W rozdziale o narzędziach, autorzy przekonują do tezy, że programista powinien posługiwać się biegle jednym edytorem tekstu i używać go wszędzie, gdzie się da. Tłumaczą, że maestria w posługiwaniu się jednym prostym narzędziem, jest znacznie ważniejsza niż wyręczanie się kombajnem w rodzaju IDE.
Dla mnie teza ta jest dzisiaj już trochę nieaktualna. Wyobraźmy sobie kogoś kto nad projektem w JEE (z wykorzystaniem np. spring, hibernate, struts) pracuje np. vi. Znałem osobiście jednego programistę który taki styl pracy preferował ale do pewnego czasu. Kiedy poznał Intellij Idea (to nie jest blog sponsorowany) i zapoznał się z klawiszologią jego praca stała się nie tylko szybsza i prostsza ale także mniej błędogenna.
Czy więc dzisiaj słowa zawarte w pragmatycznym programiście są nadal aktualne?
Od 2000 roku wiele się zmieniło, wystarczy spojrzeć jakie wtedy były IDE i jakie są teraz... Dzisiaj Eclipse czy IDEA to nie tylko produkty tworzone pod kontem konkretnego języka. To rozwiązania do których istnieje całe bogactwo rozszerzeń, dzięki którym praca programisty staje się nie tylko prostsza ale także mniej błedo genna.
Często bowiem zdarza się, że edytując config w xml popełniam literówke. Błędy zawarte w plikach konfiguracyjnych wychodzą dopiero podczas działania aplikacji. Wykrywanie takich błędów jest więc bardzo kosztowne, ponieważ trzeba aplikacje zbudować, uruchomić i jeżeli będziemy mieli szczęście to wyłapiemy błąd podczas uruchamiania aplikacji, jeżeli nie to będziemy go musieli wy klikać.
Gdy mamy do dyspozycji IDE, z walidacją tych configów błąd lub ostrzeżenie zobaczymy na ekranie w momencie jego popełnienia, tak więc IDE oszczędza nam w tym wypadku wiele pracy. Dodatkowo IDE podpowie także w xml nazwę pakietu czy klasy.
Dodatkowo dzięki IDE zwiększa się czytelność kodu (autoformatowanie) i nawigacja po strukturach klas i interfejstów jest bardzo ułatwiona.
Dzisiaj IDE zaspokaja w 99% potrzeby programisty, ale fakt jest faktem, że raz na jakiś czas trzeba coś zrobić poza nim. Wtedy trzeba użyć narzędzi o których piszą autorzy "Pragmatycznego programisty". Maestria w posługiwaniu się nimi jest atutem, ale czy koniecznością ?
Jak widać wiele się zmieniło w ciągu ostatnich paru lat w pracy programistów. IDE jest dzisiaj ważnym narzędziem bez którego ciężko się obyć. Należy jednak pamiętać, że IDE to tylko narzędzie i nie ma w nim magicznych krasnoludków, które wszystko za nas zrobią. Niestety efektem ubocznym korzystania z IDE jest często niewiedza, co tak naprawdę się dzieje pod spodem, co IDE robi za nas. Spotkałem już "programistów" którzy tworzyli programy w IDE, a gdy poprosiłem ich o uruchomienie ich z linii poleceń, nie potrafili tego zrobić :) Podobne anegdotki, krążyły o programistach korzystających z Visual Studio, że nie piszą oni kodu, a go wyklikują.
Podsumowując, świat idzie na przód i narzędzia też i sam edytor to dzisiaj stanowczo zbyt mało. Dzisiaj maestria w posługiwaniu się IDE jest coraz bardziej wskazana, należy być jednak świadomym tego co IDE za nas robi (czasami może nam coś popsuć i wtedy wiemy gdzie szukać błędu), bo czasami nadchodzi chwila w której musimy stanąć twarzą w twarz z linią poleceń.
Wednesday, September 17, 2008
Rada
Dzisiaj podczas szukania czegoś na temat hibernate znalazłem ciekawą stronkę na, którą jakimś dziwnym trafem nigdy nie trafiłem :)
Common Problems
A na niej złotymi zgłoskami ważną rade...
Tak to w życiu bywa... że chcesz czy nie chcesz dokumentacje przeczytać warto, a nawet trzeba :)
Common Problems
A na niej złotymi zgłoskami ważną rade...
I'm having trouble with a bidirectional association.
When you update a bidirectional association you must update both ends.
parent.getChildren().add(child);
child.setParent(parent);
It's best to do this in an association management method of your persistent class.
I'm still having trouble!
Read the documentation! There's a detailed section about "Parent/Child Relationships" in chapter 16 of the reference documentation including code examples.
Tak to w życiu bywa... że chcesz czy nie chcesz dokumentacje przeczytać warto, a nawet trzeba :)
Subscribe to:
Posts (Atom)




















