czwartek, 14 lutego 2013

A database design problem

This time in English, because I want share this with my international friends.

The problem statement is very easy:
  1. Online store (everybody knows what is it about)
  2. Each user has Address.
  3. You can place Order for one Product.
  4. To simplify you have only 3 tables: Order, Product, Address.
The most straightforward approach would be to model this like this:


But then when Product or Address is updated it would affect Order that was placed. Of course this behaviour would be unacceptable from business perspective. If you would like to keep this design you could make Address and Product rows immunable. So every time user changes address new row is added to Address table and every product modification is a new row Product table. This could work in this scenario but:
  1. There is a risk that database would grow.(not a big deal)
  2. How would you solve that some other tables are related to Product or Address. With every Product, Address change you should write logic to replace foreign keys with new values.
  3. Change of object should be update in database. That's what I feel :).
That is why, I would choose alternative approach. 

It looks like denormalized and as wikipedia states:
A standard piece of database design guidance is that the designer should create a fully normalized design 
but in my opinion it isn't denormalized. When order is placed you have to take a snapshot of related tables Product and Address. Since the relations Order-Product and Order-Address is 1-1 you can just add fields to Order.

What are your opinions? How can you design it better?

poniedziałek, 7 stycznia 2013

Rankingi czytelnictwa - jak mnie to wkurza!!

Co pewien czas w telewizji pojawia się raport o stanie czytelnictwa. I tak dowiadujemy się, że statystyczny Polak czyta mniej niż jedną książkę w miesiącu. Ja rozumiem, że aby mówić o społeczeństwie trzeba używać statystyki. Problemem jest to, że ludzie później wartościują się nawzajem na podstawie liczby przeczytanych książek, która jest nieistotna.

Dla mnie są najważniejsze unikalne wrażenia, przemyślenia, doświadczenia, wnioski itd., które wynikają z lektury. Wierzę, że niejedna książka, którą ja skreślałem mogłaby zmienić czyjeś życie. Tak samo książki dla innych nudne, zmieniają moje.

Dlaczego bezrefleksyjne czytelnictwo nie jest tępione a gloryfikowane? Ostatnio nawet słyszałem, jak znajomy był dumny z tego, że czyta książki, które mają renomę trudnych. Automatycznie klasyfikujemy czytelnika Dostojowskiego jako lepszego od fascynata science fiction. A dlaczego w ogóle zawsze wartościujemy książkę jako lepszą od filmu, film lepszy od serialu itd. Ta szkolna hierarchia jest dla mnie śmieszna i przestarzała. Tym bardziej, że tym, co ostatnio zrobiło na mnie prawdziwe wrażenie był ostatni odcinek Breaking Bad.

sobota, 8 grudnia 2012

12 things successful people do differently

https://www.facebook.com/photo.php?fbid=291793344275349&set=a.269105549877462.60842.266409250147092&type=1&ref=nf

Jeden z moich sakseful znajomych umieścił post na FB z odpowiedzią na to, jak się zachowują ludzie sukcesu. Nie wiem do końca dlaczego, ale ten zbiór mądrości zwyczajnie mnie odrzuca, jak wszystkie tego typu przewodniki o szczęściu i sukcesie. Żeby naprawdę osiągnąć sukces, trzeba najpierw określić, czym on dla Ciebie jest, czego szukasz w życiu. Większość ludzi bezmyślnie stara się te rady stosować do swojej obecnej sytuacji. Trzeba uważać, żeby nie wpaść w pułapkę dążenia do ogólnie przyjętej definicji sukcesu.

Może tylko ja to tak widzę, ale te przewodniki starają się nam wmówić, że sukces to BMW, dom, wysokie stanowisko i rodzina. I faktycznie kryteria bardzo SMART, tylko czy na pewno to jest cel? Czy nie chodzi o to, żeby znaleźć pasję i przekonanie, że robi się właściwe rzeczy, to do czego jest się powołanym? Czy nie bardziej odkrywczy od tych 12 rad jest cytat z Chłopaki nie płaczą:
Wystarczy że odpowiesz sobie na zajebiście, ale to zajebiście ważne pytanie: Co lubię w życiu robić, a potem zacznij to robić.

Najpierw odpowiedz, czym jest sukces. Dopiero wtedy te rady mogą pomóc. Ale czy teraz nie są one oczywiste?

sobota, 24 listopada 2012

Piąteczek, czyli impreza

Ostatni wpis na Make Life Harder idealnie wpisał się w mój wieczór. Faktycznie, wychodziłem na imprezę i rzeczywiście oszukiwałem się, że tym razem będzie fajnie. Najgorszą rzeczą w życiu jest nadzieja. To jest trudne, ale trzeba ją zabijać w zarodku.

Z oszukiwania się, że tym razem trafimy 6tkę w totka, nic dobrego nie wyniknie. Ludzie wysyłają po raz 100tny to samo CV z nadzieją, że w końcu rekruterzy się odezwą. Dlaczego? Co miałoby się zmienić? Oczekiwanie, że te same metody zaczną nagle przynosić zupełnie inne rezultaty jest naiwne. To dotyczy wszystkiego.

Dlatego, w następny piątek muszę albo zmienić strategię spędzania wieczoru albo przynajmniej zabić odpowiednio wcześnie nadzieję. Znowu mi się nie uda.

sobota, 27 października 2012

Niejasne zadania - jak do nich podejść

Gdy robimy coś po raz pierwszy, nigdy nie jesteśmy pewni, czy podążamy we właściwym kierunku. Zauważyłem to szczególnie wyraźnie dziś na warsztacie konferencji warsjawa. Prowadzący po teoretycznym wstępie przydzielił nam do wykonania konkretne zadania. Wszyscy byliśmy zagubieni. Okazało się nawet, że teoria może być interpretowana na wiele sposobów.

W takiej sytuacji najlepiej wypytywać osobę, która zleciła nam zadanie, tak długo aż dokładnie zrozumiemy, o co chodzi. Jednak w praktyce nie zawsze mamy szansę spytać. Managerowie bywają bardzo zajęci, a dziś prowadzący na chwilę wyszedł. Co wtedy możemy zrobić? Przecież oddając pustą kartkę nie odróżnimy się od małpy.

Na ratunek zawsze przychodzi zdrowy rozsądek. Robimy coś po raz pierwszy, więc nie ukrywajmy, że dokładnie wszystko wiemy. Ja opisuję najpierw, jak zrozumiałem zadanie, a później je rozwiązuje. Przedstawienie samego rozwiązania jest zbyt ryzykowne, bo jeśli okaże się błędne, pewnie ocenią nas jako idiotów. A ja w najgorszym wypadku dowiem się, że przyjąłem zupełnie złe założenia. Ale za to mój prawidłowy proces wnioskowania i analizowania zostanie oceniony trochę lepiej niż możliwości intelektualne małpy.

środa, 24 października 2012

Dlaczego obecne czasy są trudne

Zwierzęta wszystkie swoje akcje (oczywiście nieświadomie) podporządkowują chęci przeżycia swojego i gatunku. Po to jedzą, polują, budzą się, rozmnażają. Są dobrze zaprogramowanymi maszynami.

My się od nich różnimy. Dzięki rozwojowi cywilizacji przetrwanie nie stanowi dziś większego problemu. Skoro nie musimy tak zaciekle o nie walczyć, mamy więcej czasu na cokolwiek. To jest źródło wolności.

Ale czy na pewno wszyscy różnimy się od zwierząt? Nie jestem przekonany. Wielu jest zniewolonych przez system. Nagrodą mają być pieniądze, środkiem do celu edukacja i ciężka praca. I tak ludzie od wczesnych lat bezrefleksyjnie uczą się wszystkiego, słuchają wszelkich nakazów i zakazów, zdobywają świetne oceny z każdego nawet nielubianego przedmiotu. A gdy trzeba iść na studia, ponieważ są ze wszystkiego dobrzy i nie mają większych zainteresowań, wybierają te, które zapewnią im pracę. A później to już są blisko celu - wymarzonej pracy w korpo po 12 godzin dziennie.

Z tą ścieżką leminga jest tylko jeden problem. Jesteśmy ludźmi i niegodne jest, żeby wyrzekać się daru wolności.  Prawda jest taka, że obecne czasy do niczego nas nie zmuszają, więc nie możemy udawać szczurów. Człowiek musi swoją ścieżkę znaleźć sam. To jest trudne, bo nie istnieją żadne uniwersalne odpowiedzi.

Nie twierdzę, że każdy może zarabiać na tym, co lubi. Ale nawet wtedy nie trzeba zaprzedawać swoich pasji. Każdy może znaleźć jakąkolwiek, nieangażującą pracę zapewniającą przetrwanie i korzystać z wolności po pracy. A może z czasem każdy się nauczy zarabiać na tym, co lubi.


niedziela, 7 października 2012

Mierzalność celów zawodowych

W Accenture najbardziej mi się podoba, że firma zachęca a nawet wymaga od pracowników myślenia o przyszłości. Niestety, postawienie mierzalnych celów jest w mojej branży bardzo trudne. Takie cele sportowca są bardzo łatwe do postawienia. Np. wiem, że w tym roku chciałbym zacząć ćwiczyć martwy ciąg i osiągnąć 8*80kg front squat. Ze względu na naturę sportu to są proste mierzalne cele.

A w pracy? Powiedzmy, że chciałbym stać się ekspertem w jakiejś nowej dla mnie technologii np. EJB. Kiedy będę mógł powiedzieć, że osiągnąłem sukces? Pierwszym krokiem musi tu być zakomunikowanie swoich celów przełożonym. Jeżeli EJB jest używane obecnie w pracy to sprawa jest prosta. Bycie ekspertem oznacza, że będę sam efektywnie wykorzystywał tą technologię a z czasem stanę się osobą, z którą będą konsultowane wszystkie problemy z nią związane.

Tak czy inaczej warto dokumentować swoją wiedzę. Jeżeli w przyszłym projekcie zespół będzie zupełnie nowy dla mnie, to z mojej renomy eksperta nic nie zostanie. Dlatego, certyfikat to zawsze dobry pomysł, szczególnie na początku drogi zawodowej, gdy dopiero zaczynamy pracować nad swoją renomą.

SyntaxHighlighter