Nerdblog.pl

Kohana PHP - adding watermark with PNG-24 support

Dodano: 11.11.2009

This function is based on phpion's code but with added PNG-24 alpha channel support. Took me a while to figure it out, but imagecopymerge doesn't support transparency (don't ask me) so I had to use imagecopy and turn on imageAlphaBlending (despite what people in PHP manual's comments say). Too bad it couldn't be done in application/ and I had to edit system/ files.

(...)

Garść porad dla osób pracujących w domu

Dodano: 08.11.2009

Wpis ten dedykuję przede wszystkim osobom, które dopiero zaczynają szeroko pojęty freelancing, a nie starym wyjadaczom, dla których to o czym piszę będzie oczywiste. Więcej na ten temat znajdziecie również na blogu Marcina Kosedowskiego.

(...)

Pięć faz nieudanego zlecenia

Dodano: 24.08.2009

I. Podekscytowanie

Wszystko zaczyna się gdy dostajemy nowe zlecenie. Pieniążki nęcą, wszystko wydaje się być proste, klient ma nawet ciekawe pomysły. Ustalamy terminy, może nieco zbyt optymistycznie, ale z nadzieją, że w najgorszym razie zarwie się kilka nocek. Wszystko jest cud, miód i orzeszki.

Zaczynamy pisać kod. Na początku tłucze się sam, wszystko jest banalne i idzie samo. Klient czasami coś tam doda od siebie, może pomarudzi, ale ogólnie nadal jest sympatycznie. Na wszystkie maile odpowiadamy błyskawicznie, odpisujemy klientowi na smsy, rozwiewamy wszystkie wątpliwości i odpowiadamy na pytania. Gdy już mamy prawie gotowy serwis, nadchodzi druga faza.

II. Irytacja

Nagle okazuje się, że połowa z tego co zrobiliśmy "jednak klientowi nie pasuje". Zaczyna się żmudne poprawianie i przerabianie już istniejących rzeczy. Specyfikacja, która wcześniej wydawała się klarownie jasna nagle okazuje się zagmatwana, bo to jednak nie o to chodziło. Dopiero wtedy zauważamy, że mnóstwo znaczników typu jak w serwisie XYZ tak naprawdę oznacza tak jak sobie wymyśliłem i trzeba się zdrowo domyślać. Najczęściej dotyczy to frontendu, ponieważ funkcjonalności są w mniejszym lub większym stopniu kopią.

Zagryzamy zęby - jeszcze jest czas. Do deadline zostało parę dni / tygodni, zdążymy wszystko zrobić.

III. Zdenerwowanie

Deadline. Straszliwa, czerwona krecha, która straszyła nas przez całą fazę drugą właśnie nadeszła. Projekt nadal nie jest skończony, ponieważ klient zażądał funkcjonalności, których nie było w specyfikacji. Na dodatek w trakcie sprawdzania błędów nagle okazuje się, że w kodzie jest mnóstwo małych, złośliwych chochlików, które psują całokształt. Klient zaczyna wybrzydać, że to mu nie pasuje, tamto nie działa, być może zaczyna nawet grozić zerwaniem umowy albo karami finansowymi. Poprawki zaczynamy robić na odwal się i przestajemy przejmować się optymalizacją.

IV. Frustracja

Tydzień po deadline. Dwa tygodnie po deadline. Klient nadal marudzi, nagle przestaje mu się podobać cały design. Wkurzasz się i przerabiasz. Zaczyna mu przeszkadzać to jak wcześniej działał serwis, też przerabiasz. Prawie każdy mail zaczyna być oznaczony pilne albo na dziś / do jutra musi być. Gdy siadasz do projektu, zaciskasz zęby i masz ochotę uderzyć monitor. Pieniądze, które w pierwszej fazie cię nęciły, teraz wydają ci się śmiesznie małe w porównaniu z tym przez co przechodzisz. I tak powoli, powoli przechodzisz do ostatecznej fazy.

V. Zniechęcenie / olewactwo

Masz już dość. Pieprzysz pieniądze, pieprzysz klienta, pieprzysz wszystko. Zaczynasz zajmować się pierdołami lub innymi zleceniami, bo nie możesz już patrzeć na dzieło twoich rąk, które jeszcze kilka tygodni wcześniej tak radośnie kodziłeś. SMSy od klienta zbywasz wciśnięciem przycisku, a na maila wchodzisz raz dziennie, żeby przejrzeć litanię poprawek. Dorzucasz je sobie do todo i idziesz się opieprzać. Od czasu do czasu skubniesz troche kodu lub nagłym zrywem nadziei poprawiasz wszystko tylko po to, żeby dostać kolejną listę. Etap ten kończy się w zależności od cierpliwości obu stron albo zakończeniem zlecenia, które jakościowo mocno odstaje od tego, co chcieliśmy uzyskać (głównie ze względu na poprawki klienta) albo zerwaniem umowy i utratą zlecenia, co kwitujemy krótkim łatwo przyszło, łatwo poszło i idziemy pracować nad czymś ciekawszym.

Uzupełnienie

W jaki sposób uniknąć takich sytuacji? Poniżej tłumaczenie tekstu 10 Reasons to Politely Decline a Web Design Gig. Oto lista czerwonych lampek, które powinny nam zaświecić podczas przyjmowania zlecenia. Właściwie jest to lista dla webdesignerów, ale poza 4, 8 i 9 dotyczy również developerów.

  1. 10. Klient wciąż powtarza ci jak bardzo jego poprzedni developer był do d...
  2. 9. Chce mieć pewność, że zrobisz stronę tak, żeby pojawiła się na pierwszych miejscach w Google
  3. 8. Ma już listę ponad 100 słów, które chce wrzucić w meta tagi
  4. 7. Nie ma aż tyle kasy za to zlecenie, ale jest sporo ukrytych drobiazgów, które spowodują nawał dodatkowej pracy
  5. 6. Klient chce wiedzieć czy jesteś elastyczny jeśli chodzi o pieniądze
  6. 5. Mówi ci, że za stronę będzie odpowiedzialny u swoich przełożonych
  7. 4. Chce wiedzieć, czy znasz się na Flashu
  8. 3. Chce, żeby jego strona była taka jak eBay (patrz fazę II wyżej)
  9. 2. Właściwie to sam mógłby zrobić stronę, ale nie ma czasu
  10. 1. Szuka nowego "webmastera"
  11. Dodatkowo, przed chwilą znalazłem piękny filmik obrazujący sytuacje znaną z webdeveloperki/webdesignu, ale w odniesieniu do innych zawodów:

Co nadmiar pracy potrafi zrobić z człowiekiem - PS2 na komputerze

Dodano: 23.08.2009

Zaczęło się od tego, że byłem zmęczony pracą. Postanowiłem usiąść sobie, zrelaksować się i poprojektować trochę designy na kartce papieru. Sięgnąłem po ołówek i odkryłem, że jest niezaostrzony. Wziąłem kolejny - to samo. Wyszło na to, że na 5 ołówków mam 5 albo złamanych, albo całkiem nowych. No tak nie może być! Zabrałem się do poszukiwań...

(...)

Billy Idol, składanka

Dodano: 24.07.2009

Jest to tak zwane cyberpunk music. Na początku trudno mi się do niej było przyzwyczaić, ale po jakimś czasie zaczęło mi całkiem przyjemnie grać w uszach ;)

Przy okazji polecam serwis Grooveshark, o którym chyba zresztą już było na Joggerze przy okazji wprowadzenia abonamentu na last.fm ;)