piątek, 6 lutego 2009

Szef kuchni poleca ;)

Czołem programiści (także Ci co zaczynali od <br>'ki ;P ).
Nie wiem czy kogokolwiek to zainteresuje (może tylko osoby, które mnie znają i nie zraziły się do mnie, a wręcz przeciwnie), ale chciałem wymienić kilka "technologii"?, "frameworków"?, i tym podobnych (itp.) Które polecam do używania "prawdziwym profesjonalnym programistom" :P.

Może zaczniemy od systemu operacyjnego... no cóż niech będzie Vista jak już musicie to Ubuntu. Oba systemy są właściwie od razu skonfigurowane i nie wymagają wielkiego wysiłku przy konfiguracji i używaniu. Niektóre osoby narzekają na Vistę ale ja jednak mam poczucie, że jest to system bardziej przyjazny niż XP. Wprawdzie do niektórych rzeczy trzeba się przyzwyczaić ale w przypadku Linuxa jest to dużo bardziej wymagane. Z innej strony Windows jest jednak dużo popularniejszym systemem niż Linux a pewnie odbiorcą naszego oprogramowania będą w większości właśnie użytkownicy Windowsa (i pewnie coraz częściej Visty).

Z drugiej strony jest Ubuntu bazujące na Debianie co może niektórych do tego systemu przekonać, a innych zniechęcić. Dlaczego? Po prostu działa. Od początku wszystko jest skonfigurowane itd. Nie żebym się nie interesował tym co jest "pod maską" ale w pracy mam się skupić na produkcie, a nie na nieustannym dostosowywaniu narzędzi...

Pomijając Vistę skupiam się raczej na darmowym oprogramowaniu bo jest to wygodniejsze tak w pracy prywatnej jak i w firmie gdzie łatwiej uzyskać "pozwolenie" na na pracę na darmowym oprogramowaniu.

Podstawowym narzędziem programisty jest edytor tekstu (kodu). Przechodziłem przez różne IDE ostatecznie zatrzymując się na Komodo Edit. Wcześniej podobał mi się Eclipse z tymi wszystkimi dodatkami ale okazał się zbyt wolny i "zbugowany". Komodo doskonale radzi sobie z podpowiadaniem składni bez potrzeby długotrwałego skanowania kodu itp., jest stabilny, szybki i elastyczny.

Drugim najważniejszym narzędziem wg. mnie jest System Kontroli Wersji... tu mam problem z decyzją jest kilka systemów, które podobają mi się bardziej (np. Darcs czy Bazaar) ale ostatecznie Subversion jest dużo bardziej popularny i więcej programów (i programistów) potrafi się integrować. Do rozwiązywania konfliktów itp. polecam kdiff3.

Skoro już wiadomo czego używać do pisania dobrze było by wiedzieć w czym pisać. To oczywiście zależy od tego co piszemy ale jednak dla mnie (piszącego głównie aplikacje webowe ale nie tylko) najwygodniejszym językiem jest Python. Jest on niesamowicie uniwersalny, posiada łatwą i przejrzystą składnię i niesamowicie ułatwione testowani i dokumentowanie kodu.

Jeśli specjalizujemy się w aplikacjach webowych (ale nie tylko) i chcielibyśmy skorzystać z gotowych framworków to polecam Django (python) i jQuery (javascript). Oba są bardzo elastyczne a zarazem proste w użyciu. Pisząc w nich programy możemy się spodziewać efektów w przeciągu minut nie godzin czy dni.

Pora kończyć... nie mam wiele wolnego czasu (co widać po postach :P).

Pozdrawiam wszystkich czytających. Może komuś te informacje się na coś przydadzą.

poniedziałek, 1 grudnia 2008

poniedziałek, 24 listopada 2008

Leaving The Vault 87B

21 listopada 2008 roku opuściłem firmę Open-E. Chociaż formalnie jestem tam zatrudniony do końca miesiąca to w tej chwili przebywam już na urlopie.

Nie ma jednego powodu z, którego odchodzę. Na tę decyzję składa się wiele małych powodów. Najważniejszym z nich jest brak satysfakcji z wykonywanej pracy oraz poczucie braku jakichkolwiek sukcesów. Te dwa powody to oczywiście raczej konsekwencje różnych sytuacji i problemów niż problemy same w sobie. Jeżeli chodzi o poczucie braku sukcesów to mam tu na myśli dwie rzeczy. Po pierwsze - nie udało mi się w naszym dziale doprowadzić do sytuacji kiedy moi podwładni są chwaleni za swoją pracę przez innych pracowników i przełożonych w naszej firmie ze szczególnym zwróceniem uwagi na osoby bezpośrednio współpracujące z naszym działem. Po drugie - nie potrafiłem stworzyć warunków i klimatu do tego aby mogli się rozwijać, wykazywać inicjatywę, skuteczniej pracować i abyście czerpali radość z pracy.

Kończąc moją karierę kierownika w Open-E Poland chcę Wam moim podwładnym bardzo podziękować za współpracę. Każdy z was przyczynił się do zwiększenia mojej wiedzy z dziedziny zarządzania ludźmi. Chcę Was także przeprosić za zamieszanie jakie spowodowało moje odejście, a także za niespełnienie waszych często słusznych oczekiwań wobec kierownika. Bycie przełożonym - jeśli się do tego uczciwie podchodzi - to trudna i odpowiedzialna praca. Dziś mogę napisać, że nie czuję się do niej wystarczająco przygotowany.

Na samym końcu zostałem bardzo miło zaskoczony prezentem, który dostałem na pożegnanie czyli Falloutem 3. Jakby nie było jest to gra na, którą długo czekałem i fakt, że dostałem ją właśnie od was na pożegnanie nadaje jej dodatkowej wartości. Co do pierwszych wrażeń z gry... musicie poczekać na następnego posta ;).

czwartek, 21 czerwca 2007

Eclipse i Django

Chciałem tu wymienić pluginy do Eclipse, które są bardzo pomocne przy tworzeniu
aplikacji w Django. Do obsługi pythona istnieją dwa pluginy jeden z nich jest darmowy a drugi istnieje jako rozszerzenie pierwszego. Są to: PyDev i PyDev Extensions (za ten trzeba odrobinę zapłacić choć ułatwia pracę to jednak nie jest niezbędny). Oba pluginy w komplecie wspaniale obsługują auto uzupełnianie składni i dynamiczną analizę kodu. Jedyny mankament jaki zauważyłem to to, że podręczna dokumentacja uzupełnianej funkcji itp. Często nie mieści się w okienku.

Kolejnym Pluginem jest Aptana (dostępna także jako osobna aplikacja) jest ona niesamowicie pomocna przy tworzeniu html (xhtml), xml, css i javascript ma wbudowane auto uzupełnianie wszystkiego co się da i gdzie się da np. uzupełnia funkcje javascript z plików importowanych w nagłówku html.

Dwa kolejne sa przydatne jeśli korzystamy z systemu kontroli wersji Subversion i Trac'a lub innego systemu zarządzania zadaniami / błędami. Do obsługi Subversion służy Subclipse, a do zarządzania zadaniami z systemu Trac MyLyn(aka MyLar).

Co najlepsze Subclipse, MyLyn oraz PyDev posiadają dodatki (dostępne z tych samych repozytoriów), które integrują te pluginy ze sobą. MyLyn pozwala dzięki temu na zaawansowane zarządzanie repozytorium, przypisywanie kontekstu (zbioru plików z projektu) do zadań z Trac'a. Zarządzanie zadaniami na Trac'u bezpośrednio z Eclipse (razem filtrowaniem i innymi funkcjami dostępnymi w Trac'u). Tu mała uwaga: Aby MyLyn w pełni współpracował z Trac'em ten ostatni musi mieć zainstalowany plugin XML-RPC.

wtorek, 19 czerwca 2007

Kompilacja Pythona do exe

Ostatnio miałem potrzebę skompilować aplikację napisaną z użyciem wxWindows (wxPython) i Pythona do pliku exe. Jakkolwiek można się zastanawiać nad celowością takiego przedsięwzięcia to jednak chcę się podzielić moimi spostrzeżeniami. Otóż szukając programu, który mógłby skompilować kod pythona do pliku exe natrafiałem głównie na wzmianki o py2exe oraz o jakimś tajemniczym Gordon McMillan's Installer. Ostatni z tych programów miał się znajdować pod adresem http://www.mcmillan-inc.com/install1.html jak widać nie ma go tam ;). Użyłem więc py2exe ale szybko się rozczarowałem py2exe natworzył pełno różnych brzydkich plików zajmujących w sumie 17 MB. Dużo za dużo jak na moją prostą aplikację (SystemTray Notifier).
Co gorsza uruchamiając program otwiera konsolę tekstową (cmd.exe). Szukałem rozwiązania tego problemu i znalazłem informację o tym żeby nie używać w swojej aplikacji os.open()... no cóż ja nie używałem. Być może jest używany w którymś z modułów pythona ale przecież nie będę ich przerabiał. Zacząłem uparcie szukać Gordon McMillan's Installer bo podobno bardziej rozbudowany. Już miałem zrezygnować gdy trafiłem na stronę PyInstaller . Okazało się, że to właśnie ten tajemniczy Gordon McMillan's Installer a właściwie jego spadkobierca. Podstawowa obsługa programu jest banalnie prosta można używając parametrów w linii poleceń określić czy kompilować do pojedynczego pliku exe czy też tworzyć dodatkowe biblioteki, czy program ma się odpalać jako konsolowy czy też nie, a nawet dołączyć do pliku exe ikonki. Ach no i mój program skompilowany za pomocą PyInstaller zajmuje ostatecznie 6MB :).

Dla ciekawskich podaję jeszcze link do py2exe.