Archive for Styczeń 2017

h1

GIGO a procesy

Styczeń 28, 2017

Wyobraźmy sobie, że w opisanych przeze mnie wcześniej procesach:

na wejściu do procesu trafiły błędne, niespójne lub niesprawdzone dane, czyli tzw. “śmieci” na wejściu (ang. garbage in) – skrócie GI. Same procesy możemy uogólnić jak to przedstawiono na poniższym diagramie.

W pierwszym procesie dane zostaną przetworzone, przeanalizowane a następnie zostanie wygenerowany raport. Załóżmy, że dane źródłowe składały się z wymieszanych danych z różnych lat, a generowany raport dotyczy podsumowania roku. Porównując takie informacje z zeszłym rokiem otrzymujemy raport, który nie odpowiada rzeczywistości. Działanie procesu jest takie samo, a na wyjściu otrzymujemy nieużyteczne informacje, czyli tzw. “śmieci” na wyjściu (ang. garbage out) – w skrócie GO.

gigo450px

W drugim procesie z kolei, możemy przeprowadzić analogiczną analizę. Załóżmy, że pierwszy z uczestników procesu, usłyszał o samolocie i bez sprawdzenia tej informacji (czy taki lot jest) przekazał dalej albo podobne zachowanie nastąpiło na późniejszym etapie. Można powiedzieć, że gdy wejście do danego kroku procesu nie jest prawdziwe, w wyniku realizacji tego kroku, ta sytuacja się nie zmieni, jeżeli ten krok zakłada korzystanie z informacji i wykonanie kolejnych zaplanowanych działań. W efekcie podjęte działania nie są adekwatne do sytuacji, czyli racjonalnie patrząc powinny zostać spisane na straty. Co niektórzy powiedziliby, że powinny trafić do kosza.

Wiele procesów przetwarza dane wejściowe w konkretne informacje, decyzje (a to może mieć różne konsekwencje, o czym można się przekonać przeglądając różne artykuły dostępne w sieci). Patrząc na uogólniony diagram, gdy wejście będzie niepoprawne, decyzja nie będzie prawidłowa/nieadekwatna (poprzez porównanie do sytuacji, gdy dane byłyby poprawne). W skrócie GIGO (ang. garbage in, garbage out).

Reklamy
h1

Promocyjny proces

Styczeń 21, 2017

Obecnie w sklepach można spotkać wiele wywieszek, ogłoszeń, oznaczeń, że różne produkty znajdują się w promocji, do 10, 30, 50, czy nawet 80%. Idziesz przez centrum handlowe i co chwilę widzimy albo wielki procent albo wielkie liczby. W tym okresie dzieje się tak co roku. Jednakże to, że jest promocja nie znaczy wcale, że znajdziemy coś dla siebie, o ile czegoś w danym momencie potrzebujemy. Można powiedzieć, że postępujemy w poniższy sposób. Zaczynając od tego, że sprawdzamy na co jest rzeczywiście promocja i co ona oznacza…

To sprawdzenie na czym polega promocja i jaka jest cena, ma duże znaczenie. Wiedząc ile kosztuje normalnie taka rzecz, można określić, czy promocja jest “rzeczywiście” promocją czy może naturalnym obniżeniem ceny produktu do poziomu, jaki występował na produkcie jaki czas temu, a został podniesiony przez pewien okres czasu i z różnych względów, w wyniku decyzji biznesowych podmiotu, o czym pisałem we wpisie “Jak są ustalane ceny promocyjne?”. Każdy podmiot na rynku ma swoją strategię wykorzystywania promocji. Czasami, o czym podmioty mówią otwarcie, jest to przygotowanie sklepu na przyjęcie nowej serii produktów lub z nowego sezonu. Innym razem nie mam informacji o powodach promocji, ale robią ją prawie wszyscy.

promocja450px

Na diagramie przerwałem proces na zdarzeniu Cena nieodpowiednia, ponieważ w tym momencie można byłoby go zakończyć, zmienić produkt lub poszukać innej promocji. Podobnie jest to rozwiązane w dalszej części procesu – możliwe przejścia są oznaczone przerywanymi strzałkami na diagramie.

W kolejnym kroku procesu sprawdzamy, czy jest nasz rozmiar. Czasami można zauważyć, że promocja pojawia się, gdy pozostają rozmiary rzadziej kupowane przy danym rodzaju produktu. Pierwszy przykład z brzegu, który mi przychodzi, to zakup koszuli w promocji – przeglądając półkę można zauważyć, że jest przerwa w numeracji np. przy rozmiarach 41, 42, 43, a są pozostałe. Oczywiście mogły zostać już wykupione.

Na koniec pozostaje nam decyzja czy kupujemy dany produkt, biorąc pod uwagę ograniczenia przy np. zwrocie takich produktów.

A może nasz rozmiar w akceptowanej cenie jest on-line? O wykorzystaniu takich technologii pisałem przy okazji wpisu o “Nowoczesnych zakupach”. Wychodząc na zakupy, możemy się przygotować i sprawdzić jak wyglądają oferty sklepów internetowych.

h1

Lokalnie czy na serwerze?

Styczeń 14, 2017

Kilka razy na tydzień czy nawet dziennie, wypełniamy w przeglądarce formularze. Czy to pola do logowania w aplikacji, czy to formularz zamówienia, rejestracji w serwisie czy może komentarz na forum? Każdy z tych formularzy ma określoną liczbę pól, istotną dla danej operacji. Wypełniając formularz nie zastanawiamy się jednak na tym, że pod nim kryje się dodatkowa logika. Tę logikę zauważamy, gdy ominiemy pole lub wpiszemy błędną wartość. Otrzymujemy odpowiedni komunikat, a potem wprowadzamy uzupełnienia i wysyłamy formularz. Działanie to przedstawia poniższy proces.

blog_walidacje450

W powyższym procesie zakładamy, że po wysłaniu formularza jest wykonywana walidacja sposobu jego wypełnienia. Walidacja taka może odbyć się lokalnie, zdalnie (tj. na serwerze) lub w każdym z tych miejsc. Walidacja wykonywana lokalnie przeważnie nie wymaga komunikacji z serwerem i jest wykonywana przez przeglądarkę użytkownika (np. przy użyciu tzw. Java Script, o czym więcej pod linkiem na końcu wpisu). Walidacja wykonywana zdalnie (na sewerze) wymaga przesłania danych do serwera i poczekania na jego odpowiedź.

walidacje_2_450px

Jak widać na diagramie, mamy 2 ścieżki – lokalną na zielono oraz z wykorzystaniem serwera na żółto. Na obydwu ścieżkach wystąpienie błędu (oznaczonego obiektem error event) powoduje powrót do formularza. W pierwszym przypadku formularz do serwera jest przesyłany o 1 raz mniej niż w drugim przypadku.

Częścią wspólną są zdarzenia: początkowe, czyli Zaakceptowany formularz oraz końcowe, czyli Formularz poprawny oraz Formularz niepoprawny. W ramach części procesu, są podobne kroki, ale wykonywane w innych miejscach. Chcąc wdrożyć mechanizmy po obywdu stronach można wykorzystać różne języki programowania i metody. Jak widać w podlinowanym artykule możliwości jest wiele i w zależności od sposobu zaprojektowania rozwiązania mechanizmy są rozdzielone lub silnie ze sobą powiązane (jak np. przy wykorzystaniu AJAX).

h1

Filmowy proces a rzeczywistość

Styczeń 9, 2017

Ostatnio oglądałem film Eagle Eye. W filmie tym ukazana jest wizja pełnej inwigilacji społeczeństwa, w którym wybrane jednostki (osoby, zespoły, firmy), przy wykorzystaniu odpowiednich technologii, są “sterowane” do wykonania określonych czynności. Począwszy na opuszczeniu mieszkania, wybraniu środka lokomocji, poprzez sposób poruszania się po wykonywanie zadań w celu znanym tylko przez komputer.

Właśnie ten komputer, wykorzystując różne dane i narzędzia przeprowadza poniższy proces.

blog1_kadr

Poszczególne kroki wykonywane są w fimie na różne sposoby:

  • Nawiąż kontakt poprzez telefon, ekrany na ulicach, samochód;
  • Określ lokalizację poprzez położenie telefonu, samochodu czy obserwacje z kamer;
  • Wydaj instrukcję poprzez ekrany lub słownie;

Po każdej instrukcji, wykonywana jest weryfikacja postępów w ich realizacji i w zależności od tego czy postęp jest oczekiwany, odbiorca otrzymuje kolejne instrukcje, komunikat lub proces kończy się. Każdy z tych kroków można byłoby rozbić na szczegółówe algorytmy, drzewa decyzyjne lub podprocesy. Wybierając jeden element, można byłoby znaleźć różne jego zastosowania.

Wizja wydaje się dość przerażająca, ale… weźmy na przykład telefon komórkowy – gdy się przemieszczamy, przełączamy się między stacjami bazowymi, gdy zamieszczamy zdjęcie w portalu społecznościowym, to często umieszczamy pod nim naszą lokalizację. Mając teoretycznie dostęp do tych dwóch informacji, jesteśmy w stanie określić w jakim miejscach najczęściej przebywamy i odpowiednio dostosować przekaz. Połączmy to z danymi z innych telefonów komórkowych i mamy powiązania. W internecie (wystarczy wpisać w wyszukiwarce internetowej: „co wie o nas telefon”) można znaleźć wiele publikacji na ten temat. Dobrze jest instalując daną aplikację poświęcić chwilę na jej konfigurację i dostosowanie ustawień do własnych potrzeb i sposobu wykorzystania.