Wyklikany
15/01/2011, 22:14
Znane i…
- Znam Springa, Seama, Play, Wicket, Strutsy…
- A co Pan lubi robić?
- Poznawać, mam nawet konto na Facebooku.
Szał wirtualizacji
- Ten model, który Pan wybrał posiada ekran 7 cali, rozdzielczość 1024 x 600 pikseli, aparat 5 MP, GPS, Wi-Fi, dołączone bogate oprogramowanie m.in. integracja z serwisami społecznościowymi, dwurdzeniowy procesor ARM…
- Dwurdzeniowy procesor? To znaczy, że będę mógł na nim uruchomić wirtualną maszynę?
- Hę?
Przesłuchanie 2.0
- Zatem twierdzi Pan, że nie było Pana na ulicy Południowej dnia 28.12.2010 roku, około godziny 22, czyli w czasie gdy popełniono morderstwo?
- Tak.
- Masz słabe alibi, przyciśniemy Cię mocniej i będziesz ćwierkał jak Twitter!
- Panowie przesłuchujecie mnie już piątą godzinę. Zatem jeszcze raz powtórzę. Byłem wtedy na spotkaniu mojej szkoły, stosowne informacje znajdziecie na Naszej – klasie. Możecie również wejść na mój profil na Facebooku. Tam także znajdziecie wpis o tym spotkaniu wraz z linkiem do Google Maps, z lokalizacją restauracji oraz linki do filmików na YouTubie z tego eventu…
W XXI w. Sherlock Holmes prawdopodobnie nie musiałby wychodzić z domu a Dr Watson byłby specjalistą od szerokopasmowego Internetu.
Wyklikany
02/01/2011, 0:31
Wszyscy jesteśmy programistami, wszyscy jesteśmy partaczami – ja także. Uwielbiamy chodzić na skróty, stosować najprostsze rozwiązania, które wyglądają dorzecznie tylko w naszym, własnym rozumku.
Wszyscy również ocieramy się o paleontologię, gdy czasem zajmujemy się dinozaurem, który dogorywa na OIOM-ie, zafascynowani “Parkiem jurajskim” liczymy na kolejny remake.
Wszyscy kłamią a w szczególności programiści. Ile razy powtarzaliście sobie, że będziecie pisać komentarze w kodzie, robić wcięcia, pisać dokumentację? I co? Piekło zamaraza, Bill Gates instaluje Debiana na swoim downloaderze torrentów a dokumentacji projektu dalej nie widać.
Czasem jednak piłka przelatuje na drugą stronę siatki. Powstało zatem oficjalne wytłumaczenie wszelkiego zła, które trafiło do projektu: “Brak czasu”. Całe szczęście dla ludzkości, że na takie wytłumaczenie nie wpadli piekarze, lekarze, badź inżynierowie projektujący samochody. Wyobrażacie sobie taką scenę: idziecie do salonu odebrać wasze nowe, piękne auto. Wsiadacie do niego, zapinacie pasy, uruchamiacie silnik, kręcicie kierownicą lecz koła nie skręcają…Pewnie jakiś inżynier śpieszył się na deadline.
Zdarzają się czasem chwile, gdy czytanie czyjegoś kodu kojarzy mi się z słuchaniem trash metalu na kacu. Przy odrobinie koncentracji wychwycę melodię, ale i tak przeważa łomot. Kac jak powszechnie wiadomo skłania do refleksji. Coraz częściej nurtuje mnie pytanie dla kogo programiści piszą swój kod. Mam kilka koncepcji, oto one:
- Dla klienta – w końcu to on decyduje co chce i oczekuje od nas realizacji swojej wizji. Co jeszcze ważniejsze na końcu płaci. Nie interesuje go jednak, czy nasz kod jest w pełni obiektowy, czy obiekty spełniają zasadę Low Coupling a kod źródłowy posiada komentarze. Ma działać i już, po to przecież zaangażował profesjonalistów, prawda?
- Dla siebie – istnieje na tym świecie grupa zapaleńców, którzy codziennie robią coś super i prawdopodobnie tylko oni sami o tym wiedzą. Wszystko, co robią wygląda dorzecznie tylko w ich rozumku. Szkoda tylko, że czasem odchodzą z pracy a wraz z nimi kilometry doc-a zapisanego gdzieś pod czapką.
- Dla innych programistów – kod programu, to taka ciągle niedokończona powieść, serial z ciągłymi zamówieniami na kolejne sezony. Do napisania kolejnych odcinków, wątków siadają różni autorzy. Pierwszą rzeczą, której powinni oczekiwać – to wskazówki od poprzedników, choćby dlatego, aby nie ożenić brata z matką żony, teścia. (jakoś tak)
Kod źródłowy piszą programiści dla programistów pamiętajmy o tym. Aby nam wszystkim było łatwiej powstają standardy, stworzono katalog wzorców projektowych, czy zalecenia odnośnie formatowania kodu. To w żadnym wypadku nie jest sztuka dla sztuki.
A Ty dla kogo piszesz swój kod?
Wyklikany
28/11/2010, 1:21
Dzisiaj będzie krótko choć wiem, że po tak długiej nieobecności powinienem napisać coś więcej. Niestety nie tym razem. Ten wpis jest dla mnie formą notatki, aby ocalić dość cenne informacje przed zapomnieniem.
Załóżmy, ze pracujemy przy dużym projekcie informatycznym. Nasze oprogramowanie korzysta z bazy danych PostgreSQL, w której znajduje się spora ilość tabel np. około 200. W kilku lub kilkunastu tabelach powtarza się pewien określony typ danych, dajmy na to adres email. Najczęściej dane tego typu przechowujemy w polu character varying , co do tego panuje raczej powszechna zgodność. Jednak już po chwili powstaje sporna kwesta – maksymalna długość takiego pola. W każdej tabeli kolumna taka może mieć różną, dopuszczalną długość. Skoro takie coś jest możliwe, nie możemy w 100% wykluczyć takiej sytuacji, prawda? Potrzebujemy zatem stworzyć zapytanie SQL, które zwróci nam nazwy tabel, gdzie występuje pole o danej nazwie wraz z informacjami na temat typu tej kolumny oraz ustawionej maksymalnej długości dla niego. Jeśli chcemy wyciągnąć metadane z bazy PostgreSQLa z pomocą przyjdzie nam Information Schema
Zapytanie zwracające potrzebne nam dane, może wyglądać następująco:
SELECT column_name, TABLE_NAME, character_maximum_length, data_type
FROM information_schema.COLUMNS
WHERE column_name ilike '%email%'
ORDER BY column_name;
Rezultat:
column_name|table_name|character_maximum_length|data_type
----------------------------------------------------------------------------
author_email|comments|80|character varying
email|users|80|character varying
Dowiadujemy się zatem, że w całej bazie danych melon znajdują się dwie kolumny z frazą “email” w nazwie i oby dwie są typu character varying, mają również maksymalną długość 80 znaków.
Oczywiście powyższy przykład, to tylko wierzchołek góry lodowej jeśli chodzi o dane jakie możemy wyciągnąć z Information Schema i warto o tym pamiętać.