31 grudnia 2011

Ogon programisty

Co niektórzy blogerzy na koniec roku publikują podsumowania dotyczące poczytności swojego bloga. Ten wpis nie będzie o tym, gdyż takiego podsumowania nie chcę mi się po prostu robić :P

Zdecydowałem się jednak coś napisać, gdyż podobno istnieją jakieś pogańskie przesądy jakoby to co się zrobi ostatniego dnia roku, często będzie miało też miejsce w roku kolejnym...

Innym często praktykowanym zwyczajem jest tworzenie sobie listy celów do osiągnięcia na następne 12 miesięcy. Zdarzało mi się takie listy tworzyć, jednakże zazwyczaj dotyczyły one raczej sfer osobistych.

Na 2012 rok moje cele te programistyczne jak i osobiste definiują się trochę inaczej... przede wszystkim, chcę zadbać o ...

Niedokończone sprawy...


Bloga prowadzę od jakiegoś czasu, ale jakoś nie widać tutaj zbyt wielu efektów, moich programistycznych prac, w postaci postów o tychże właśnie projektach. To jest wręcz dziwne, gdyż każdy kto mnie lepiej zna, wie że w ciągu roku średnio mam kilkanaście różnych pomysłów na różne projekty i projekciki...

Większość z nich nigdy jednak nie wchodzi w fazę końcową. Brakuje mi cierpliwości i determinacji, by do końca skupić uwagę właśnie na tym danym projekcie. Zanim dokończę jeden, już nowy pomysł wydaje mi się dużo ciekawszy.

Konsekwencją tego wszystkiego jest to, że obecnie chcąc wziąć się za wykańczanie tychże projektów, trudno jest nawet ocenić za co się zabrać.

Życzenia...

W tym nowym nadchodzącym roku, chciałbym więc życzyć Ci przede wszystkim determinacji a także jasności umysłu, która powinna pomóc w podejmowaniu decyzji oraz - cytując moją najdroższą żonę -  "aby ten ogon niedokończonych spraw nie ciągnął się tak za Tobą, bo to czasami przeszkadza w przekroczeniu kolejnych progów na Twojej drodze."

25 listopada 2011

Dlaczego warto zostać programistą?


Początkowo ten artykuł miał być czymś w rodzaju listy, która miała przedstawiać atuty tego zawodu względem innych. Od jakiegoś czasu, gdy przyszło mi coś do głowy, starałem się notować sobie "plusy pracy w tym zawodzie".

Lista ta nie zawierała kilkudziesięciu pozycji, raczej kilka-kilkanaście. Podczas przygotowywania tej notki, czytając te punkty nie czułem jednak by to one przekonały mnie niegdyś do ukierunkowania swojej przyszłości.

Teraz wiem, że sprzyjające okoliczności przyczyniły się do tego, że obecnie typowy przedstawiciel tego zawodu nie za bardzo musi się obawiać o pracę. Jeżeli mamy szczęście, nasz pracodawca również może być informatykiem lub ściślej - programistą. To ważne, bo gdy tak się dzieje, on rozumie nasze potrzeby. Często więc np. zdaje on sobie sprawę, że jego pracownicy pracują najwydajniej o różnych porach dnia, tak więc nie zawsze musimy stawiać się w biurze punkt dziewiąta ;) Zdarza się też nie rzadko, że ów pracodawca w pełni jest w stanie zrozumieć, że np. pewne czynności możemy danego dnia zrobić zdalnie, z domu.

Kiedyś było inaczej, programistów postrzegano nierzadko jako wynaturzonych dziwaków. Społeczeństwo jeszcze 20-30 lat temu nie rozumiało, jak można całymi dniami siedzieć przed monitorem a to wszystko tylko po to by stukać w plastikową klawiaturę drukując na ekranie znaczki, które tworzyły jakiś "nudny kod"... W dzisiejszych czasach chyba każdemu z nas zdarzyło się choć raz zatracić w komputerowym/wirtualny/internetowym świecie. To co osiągnęła ludzkość w dziedzinie informatyki jest efektem pracy ale i przede wszystkim wizji osób, które uwierzyły, że to będzie możliwe, już dekady temu.

Obecnie programista postrzegany jest zgoła odmiennie. Nierzadko postrzegany jest on już jako ktoś szczególny. Filmów, gdzie programista jest głównym bohaterem też powstało ostatnio nie mało: Matrix (I, II, III), Kod Dostępu, The Social Network, Szklana Pułapka 4, Tron - Legacy. Gdyby wliczać filmy o tematyce około komputerowej, to lista jeszcze bardziej by się wydłużyła m.in. o Eagle Eye, Wroga publicznego, I Robot, Transformers (I, II, III), itd. Z resztą po co wymieniać? Istnieje cały spis owych filmów na Wikipedii(List_of_films_about_computers).

Komputery stały się popularne. Widzimy, że odgrywają one ogromną role w naszym życiu. Zaskakujące jest to, że to co jeszcze do nie dawna było dla nas gadżeciarskim Science Fiction, obecnie często przybiera realną formę. Wydawanie komend głosowych komputerowi w naturalnym języku, jeszcze 5 lat temu było zupełnie nieprawdopodobne, dzisiaj produkt to oferujący, jako swoją główną zaletę podaje właśnie to. Oglądając nie jeden nowoczesny film podziwialiśmy, samosterujące się auta. A prawda jest też taka, że one już jeżdżą po niektórych ulicach USA (jeszcze w fazie testów, co nie zmienia faktu, że już jeżdżą!)

Co to ma do programowania? A to, że bez programistów żaden z tych tworów by nie powstał. Co ciekawe, ludzie zaczynają nawet sami to rozumieć, jaka ważna jest ich rola, oraz to, że maczaliśmy palce w aucie którym dojeżdżasz do pracy, urządzeniu z pomocą którego kupujesz bilet autobusowy, w Twoim telefonie, nowej plaźmie ze ściany, robocie kuchennym, budziku, radiu, odtwarzaczu muzyki a nawet w Twojej szczoteczce do zębów. To są tylko urządzenia w których "żyją" programy napisane przez programistów. A gdyby zastanowić się co nie powstałoby, gdyby nie została oprogramowana ta czy inna taśma produkcyjna, to wychodzi na to, że w domu nie mielibyśmy prawie niczego :)

Czy zatem programistą warto zostać dlatego, że być może będzie miało się okazje oprogramowywać ekspres do kawy? Nie, a przynajmniej mną nigdy to nie kierowało ;)

Od małego dziecka lubiłem komputery, jednak pierwszy swój program napisałem dopiero w pierwszej klasie liceum. I wiecie co wtedy poczułem? Moc!

Okazało się, że oto odkryła się przede mną możliwość wymyślania rzeczy,  szczegółowego projektowania a następnie ostatecznego ich tworzenia! Jeżeli kiedyś bawiłeś się Lego, to na pewna znasz tu uczucie satysfakcji, gdy kończyłeś budować swoją wymyślną konstrukcję! Była stworzona przez Ciebie klocek po klocku, dzięki czemu była wyrazem Twojej twórczości i oryginalności, była niepowtarzalna i wyjątkowa.... chyba, że....zabrakło Ci kilku klocków.

Chyba każdy, kto bawił się Lego nie zbudował choć jednej wymarzonej konstrukcji, dlatego że liczba jego klocków była ograniczona. A co gdyby mieć klocków więcej lub nawet nieograniczoną ilość?

Jeżeli choć odrobinę się wczułeś, to być może zrozumiałeś to, jak może czuć się programista każdego dnia. On do dyspozycji ma wszystkie klocki w nieograniczonej ilości! On nie ma też problemów, że jakiegoś klocka w ogóle nie posiada. Języki programowania są tak skonstruowane, że brakujące "klocki" zawsze można stworzyć z już istniejących.

Gdy uczyłem się programowania z początku uczyłem się reguł jak "dopasowywać klocki do siebie". Dość szybko przyszła pora na poznanie tajników programowania obiektowego. I to było dla mnie kolejne wielkie wydarzenie. Zrozumiałem, ze od tej pory wszelkie odzwierciedlanie tego co chciałbym stworzyć będzie dla mnie łatwiejsze! Wiecie jakie było moje pierwsze wrażenie gdy poznałem zasadę i cele klas? "Dajcie mi trochę czasu, a napiszę wam drugiego Matrixa!" :)

Teraz wiem, że najpewniej sam mógłbym nie wyrobić się w odpowiedniej liczbie osobogodzin, by skończyć go przed śmiercią ;) Jednak wiem, że na pewno nie byłem sam z myślą, że praktycznie cały świat dałoby się odwzorować wirtualnie. Ktoś przecież musiał wpaść na ten koncept Matrixa!

Szybki komputer, dwa monitory, stały dostęp do internetu, nie rzadko jakiś fajny pakiet socjalny i nie najgorsza pensja...to są tylko przykłady atutów, które mogłyby przekonać nie jedną osobę, że warto wyuczyć się na programistę. Jednakże istnieje nie mały procent osób, które postanowiły kształcić się w tym kierunku nie myśląc o tym... one po prostu kiedyś zaczęły programować i zdały sobie sprawę, że odtąd mogą tworzyć niemalże wszystko, co tylko będą w stanie wystarczająco dokładnie opisać!

22 listopada 2011

Jak przyśpieszyć git'a?

Na pewno sposobów jest wiele, jednak jednym z nich jest regularne odpalanie git gc (garbage collector).

Pamięć jednak jest zawodna, dlatego najlepszym pomysłem jest zautomatyzowanie procesu i ustawienie cyklicznego wywoływania procesu.

Do tego wystarczy pojedynczy wiersz w cronie. Jednakże jeżeli na co dzień uzywamy wielu repozytoriów, tych wpisów musiałoby być w cronie więcej.

By zachować w nim porządek chciałbym zaproponować inne podejście:

Tworzymy sobie plik ~/.gitrepos, do którego wpisujemy ścieżki projektów, które chcemy "utrzymać w czystości"


/media/truecrypt1/workspace/current/project_A/
/media/truecrypt1/workspace/current/project_B/
/media/truecrypt1/workspace/old/project_C/
/media/truecrypt1/workspace/another/project_D/

Potem już tylko crontab -e i wklejamy:

30 2 * * * cat ~/.gitrepos | xargs -I {} git --work-tree={} --git-dir={}.git gc

Taki wpis, codziennie w nocy o 2:30 będzie odpalał git gc dla każdego repozytorium z zapisanych katalogów. Użycie --work-tree oraz --git-dir jest konieczne, dlatego że domyślnie polecenie z crona jest odpalane w katalogu domowym.

PS. jeżeli nie lubisz/nie chcesz używać crona  w tradycyjny/trudniejszy sposób, zainstaluj sobie nakładkę graficzną gnome-schedule (sudo apt-get install gnome-schedule)

12 września 2011

Krzysiek się żeni!

Uwaga... niniejszy tekst jest przeznaczony tylko dla osób ze "skrzywieniem" okołoinformatyczny!

Stało się!


Wszelkie programistki powinny przestać mieć złudzenia! Kolejny dobrze wypozycjonowany programista przestał bowiem być publicznie dostępny. Otóż na mocy pewnej umowy, Krzysztof mniej lub bardziej znany jako noisy, został objęty własnościową licencją "Marriage 2.0/Good".


Jak dowiedziały się media, podobno już od kwietnia ów koder przestrzegał postanowień cywilnej wersji licencji "Marriage 1.0". RoadMap noisy'ego podobno jednak od początku przewidywał organizację okolicznościowej imprezy integracyjnej dopiero z okazji migracji na drugą wersję licencji. Główna różnica pomiędzy wspomnianymi licencjami polega na tym, że ver. 2 uniemożliwia jakiekolwiek migrację, innymi słowy jest wieczysta. Programiści chcący przejść na wersję drugą licencji przepisywani są do projektu w której Project Managerem jest programista-guru o pseudonimie Good. Samo podpisywanie stosownych dokumentów musi mieć miejsce w jednej z jego kwater (noisy i jego wybranka wybrali tą o współrzędnych 51.10251, 17.085993). Podczas uroczystości migracji do licencji "Marriage 2.0" na Krzysztofie i jego wybrance - Magdalenie zostały przeprowadzone kroki dość tajemniczego algorytmu. W kluczowym momencie podali sobie dłonie, po czym z pomocą klucza szyfrującego w formacie STUŁA, został pomiędzy nimi nawiązany specjalny szyfrowany tunel komunikacyjny w protokole na owej specjalnej licencji. Od tej pory newralgiczne dla ich systemów decyzje muszą przejść proces podwójnej autoryzacji.

Zostały im także wręczone specjalne, podpisane cyfrowo nadajniki GPS wykonane z cennego kruszcu, które są teraz przez nich noszone na serdecznym palcu prawej ręki.



Należy pamiętać, że tego rodzaju nadajnik wręczony programiście jest jednocześnie certyfikatem świadczącym o jego wysokich kwalifikacjach interpersonalnych.

Cała procedura przebiegła dość sprawnie. Dość ciekawym wydarzeniem był natomiast pewien kwiatkowo-płatkowy atak DDoS jaki miał miejsce zaraz po wyjściu Magdaleny i Krzysztofa z kwatery Good'a. Jak się jednak okazało, jest to typowe w takich okolicznościach.


A co się działo później? Późniejsza impreza integracyjna była dość zaskakująca dla osób mających w pamięci stereotyp informatyka jako samotnego osobnika w okularkach ubranego we flanelową koszulę. Okazało się bowiem, że każdy programista, koder czy inny pracownik IT przyszedł w towarzystwie osoby płci przeciwnej!

Ale to nie koniec!... pomimo, że na sali był komputer klasy PC, to jednak nikt nie rwał się tego dnia do programowania(sic!). Cała sala zgodnie pozwoliła użyć tego sprzętu jako panelu konfiguracyjnego, na potrzeby administratora sali o pseudonimie DJ Locky, dzięki czemu wszyscy mogli bawić się przy świetnej muzyce.

Impreza przebiegła dość sprawnie. Pomimo częstego ładowania trunków do buforów gardłowych, nie wystąpił żaden StackOverflowException ;)


Kolejne wieczory po tej imprezie, Krzysztof i Magdalena spędzają już w swoim wspólnym gniazdku w Oławie. Krzysztof bowiem jakiś czas temu przeprowadził się z Wrocławia do ich wspólnego "M". Co prawda teraz musi wstawać trochę wcześniej, by dojechać do pracy... no ale cóż... nikt mu nie obiecywał, że będzie ze wszystkim łatwo :)

PS.
Krzysiek wraz Magdaleną postanowili stworzyć swoją stronę ślubną - szumni.pl. Podobno gościom bardzo się przydała i spodobała :)

12 lipca 2011

Pocztówka z wakacji

Owszem, ktoś pojechał na wakacje, ale tym razem nie byłem to ja. Na wakacje pojechała sobie Opera Mini razem z portalem nk.pl, na skutek kampanii którą razem z moim kolegą Sławkiem Sochajem i ekipą nk.pl przygotowaliśmy dla Was!

Postanowiliśmy przypomnieć naszym użytkownikom, że z Opery Mini można korzystać wszędzie korzystając praktycznie z każdego telefonu! W okresie wakacyjnym nie ma więc potrzeby rozstawać się z największym portalem społecznościowym o polskich korzeniach :)

Jeżeli jeszcze nie miałeś okazji korzystać z Opery Mini, masz teraz szansę wypróbować ją, bez konieczności instalacji korzystając ze strony http://nk.pl/nawakacjach.

Sprawdź jak działa, pobaw się nią i zobacz jaką daję to frajdę!

1 lipca 2011

Google+

Zamiast czytania, proponuję dziś obejrzeć filmik:



Chce ktoś zaproszenie? :)

(Chętni mogą podesłać swój e-mail na adres noisy.pl@gmail.com)

5 czerwca 2011

Optymalizacja czasu budowania projektu.



Planowałem na ten temat napisać spory artykuł. Od dłuższego czasu wszakże zbieram informacje, którymi chciałbym się z wami podzielić. Temat optymalizacji czasu budowania projektu jest naprawdę szeroki ;)

Postanowiłem przeprowadzić pewne badania, które pozwolą mi określić jak wygląda "typowe" środowisko programistyczne. W tym celu bardzo prosiłbym Cię mój czytelniku o wypełnienie tej krótkiej ankiety.

22 marca 2011

Być częścią sukcesu? Opera Mobile 11 dla Androida!

Podobno każdy programista oprócz zdolności koderskich powinien także posiadać trochę zdolności marketingowych, by ostatecznie, to co zostało przez niego stworzone, mogło "zostać docenione przez lud".

Zatem... ten post to nie jest jakaś cicha autopromocja, to nie jest nawet kryptoreklama, to jest moje jawne szkolenie się w tej dziedzinie i jawna głośna reklama tego, w czego produkcji maczałem palce :)

Dlatego niniejszym chciałbym Wam przedstawić produkt nad którym pracował zespół, którego mam przyjemność być członkiem, produkt, który zostawia konkurencje daleko w tyle, produkt który sprawia, że używanie Internetu w urządzeniach mobilnych staje się czystą przyjemnością, produkt dla najdynamiczniej rozwijającego się systemu dla urządzeń mobilnych - Androida, produkt o nazwie:

Opera Mobile 11


Czy spodziewany przeze mnie sukces naprawdę okażę się sukcesem? To okazuje się dosłownie teraz, gdy stworzony przez nas program trafia w ręce milionów użytkowników. O 5:00 naszego czasu, drugiego dnia wiosny Opera Mobile 11 trafiła do Android Market.

Jeżeli chodzi o mnie to pierwszy raz mam okazję pracować w zespole wypuszczającym produkt na tak szeroki rynek globalny. Dotychczas były to mniejsze projekty, przeznaczone głównie dla danego kraju czy też konkretnego operatora komórkowego.

Dosyć jednak o mnie! Dzisiaj bohaterem jest cudowna, niesamowita i pachnąca świeżością Opera Mobile 11 :)


Chciałbym jednak podkreślić, że dzisiaj Opera wydała nowe wersje produktów Mini i Mobile na niemalże wszystkie mobilne platformy! Ten wpis jednak poświęcę specjalnie Operze Mobile dla Androida, która jest w pełni funkcjonalną przeglądarką na urządzenia mobilne.

a co w niej mamy najlepszego?

17 marca 2011

Show git branches by date

Zapragnąłem mieć taką funkcjonalność, git jednak takiej nie dostarcza.

Poszukałem i okazało się, że ponownie commandlinefu proponuje całkiem niezłe rozwiązanie, dające w efekcie:


12 marca 2011

"Kazdy kiedyś zaczynał" - symulator losowania lotto

Pierwszy wpis z serii "każdy kiedyś zaczynał" o której pisałem ostatnio, zostanie poświęcony na omówienie krótkiego programiku, który miał symulować maszynę losującą Dużego Lotka. Postaram się w nim wytknąć SOBIE wszystkie błędy jakie popełniłem w niedzielę, 15 lutego 2004 roku o godzinie 15:16, uznając ten program za skończony (data ostatniej modyfikacji pliku ;) )

Kod źródłowy owego programu przedstawia się jak niżej. Chciałbym zaznaczyć, że jest to oryginalny kod, niemodyfikowany na potrzeby tego wpisu.

#include<iostream.h>
#include<conio.h>
#include<stdlib.h>

int i,j,tab[6],k=0,il;
void main()
{
clrscr();
cout<<"To jest program nasladujacy losowania Duzego Lotka.\n";
cout<<"Jaka liczbe losowan wykonac: ";
cin>>il;
randomize();
do{
i=0;
do{
tab[i]=random(50);j=0;
  while(j!=i||tab[i]==0)
  {if(tab[i]==tab[j]||tab[i]==0)
       {i--;j=i-1;}
       j++;
  }
  i++;
  }
while(i!=6);
i=0;
cout<<" Losowanie nr "<<k+1<<":";
do{
cout<<"\t\b\b"<<tab[i]<<",";
  i++;
  }
while (i!=6);
cout<<endl;
k++;}
while (k!=il);
getch();
}

Jeżeli chciałbyś nauczyć się czegoś z tego wpisu, to prosiłbym Cię teraz, byś przed przeczytaniem dalszej części posta zastanowił się chwilę i sam się postarał wyłapać wszystkie błędy merytoryczne, składniowe i logiczne.

2 marca 2011

"Każdy kiedyś zaczynał" - czyli jak nie programować w C++

Nikt nie urodził się programistą. Każdy z nas stawiał kiedyś swoje pierwsze kroki w dziedzinie programowania. Każdy kiedyś zmagał się z dziwaczną wówczas dla niego składnią i jeszcze dziwniejszymi nazwami funkcji. Jednak niektórzy z nas pomimo licznych niepowodzeń przebrnęli przez ten najśmieszniejszy etap swojego programistycznego rozwoju. A komedia to była iście w stylu Monty Pythona... czasami nie wiadomo było czy się śmiać, czy płakać.

Programować chciałem zawsze... lecz ubzdurałem sobie, że to jakaś czarna magia, która jest nie do ogarnięcia. Jestem zawodowym programistą, więc chyba coś tam w końcu opanowałem. Jednak gdy teraz patrzę na to co pisałem 7 lat temu, pewien jestem, że jednak jakaś magia mi wówczas pomagała, bo spoglądam na swój kod i zadaje sobie pytanie: "jak kod wyglądający w ten sposób mógł w ogóle się uruchamiać"?

Wszystkie moje pierwsze programy były dla mnie bardzo cenne. Pamiętam, jak kiedyś w pewnym momencie podjąłem decyzję, by postarać się zachować wszystkie listingi na zawsze, by później móc się z nich śmiać... i oto chciałbym ogłosić, że nadeszły czasy w których chętnie pośmieję się z nich razem z wami :)


Lata 2003 i 2004 były to dla mnie czasy spędzone z kompilatorem firmy Borland w wersji 3.1. Sam kompilator pochodził z 1992 roku, więc z czasów wręcz zamierzchłych, jednak taki kompilator dostałem od swojego nauczyciela, na takim się uczyłem (aż się łezka w oku kręci...).

Kodów źródłowych z tamtych czasów pozostało mi kilkadziesiąt, z czego co najmniej kilkanaście potrafię teraz odczytać i zinterpretować to, co przecież kiedyś wydawało się dla mnie "takie jasne"... :)

W najbliższym czasie, okresowo będę starał się publikować omówienia owych tych "moich starych dziejów", analizując swoje ówczesne programy, zastanawiając się dlaczego wówczas właśnie tak a nie inaczej to napisałem. Sądzę, że z takiego omówienia mogą skorzystać wszystkie osoby, które same mają nadal styczność z początkującymi adeptami sztuki programowania.


Jednocześnie chciałbym was już teraz zachęcić do subskrypcji kanału RSS, gdyż gwarantuje Wam, że wówczas nie minie Was doskonała okazja by podbudować mniemanie o swoich programistycznych zdolnościach patrząc m.in. na taki kod:

19 lutego 2011

Masowe przetwarzanie dużej liczby zdjęć

Dzisiaj w trochę innej niż zazwyczaj formie. Mam nadzieję, że komuś się to przyda ;)




Na tę okazję posprzątałem swój pulpit, więc doceńcie mój gest :P

29 stycznia 2011

O internecie, ADHD i głowie pełnej pomysłów

Jeżeli by opierać się na badaniach o których w swoim wystąpieniu wspomina Sir Ken Robinson, można by mu przyznać rację, że w dzisiejszych czasach zadziwiająca liczba osób może u siebie stwierdzić występowanie kilku objawów ADHD, które zazwyczaj zaliczają się do trzech grup: nadmierna impulsywność, nadmierna ruchliwość i zaburzenia uwagi.

Ale co to wszystko ma wspólnego z Internetem?

15 stycznia 2011

Łatwiejsze głosowanie na artykuł w serwisie develway z poziomu własnej strony

Jakiś czas temu wysłałem propozycję wprowadzenia drobnej funkcjonalności w serwisie develway. Całość została nawet skomentowana na oficjalnym blogu ich serwisu, tutaj.

Obiecali zrobić, tak też zrobili. Efekty ich pracy można teraz podziwiać w kąciku dla właścicieli stron a także od dzisiaj również na podstronach tego bloga (stwierdziłem, że nie chcę zanieczyszczać głównej strony, więc będąc na stronie głównej by zobaczyć efekt, musisz kliknąć na "czytaj więcej" troszkę niżej ;) )

Pomyślałem, że skoro blogger.com jest tak popularnym serwisem, to opiszę jak w szybki sposób wdrożyć ową ikonkę właśnie do jego systemu zarządzania treścią.

"Lustrzane odbicie" polecenia git add -p, czyli co mi pomogło po pewnym code review.

Skończyłem w pracy robić pewne duże zadanie. Zrobiłem commita i pusha do odpowiedniego brancha do naszego gitowego repozytorium . Potem przyszła pora na code review. Kolega z zespołu zauważył parę miejsc, w których należało by jeszcze coś dodać/zmienić/usunąć. Informacje o tych poprawkach wysłał mi na e-mail.

dostałem mniej więcej taką listę:

1. W przypadku dwóch statycznych pól klasy zastosowałeś przedrostek m_, zamiast s_. Dostosować do reszty.
2. Lepiej było by, aby funkcja Foo zwracała nie tylko informacje o błędzie, lecz najlepiej jeszcze określała typ błędu.
3. Niepotrzebne podwójne wywołanie funkcji inicjalizującej  w linii 250 i 253.
4. itd.
5. itd.
..
18. itd

Rzeczy do poprawki były dość proste, lecz było ich jednak dość dużo. Wprowadziłem połowę i stwierdziłem, że sprawdzę, czy przypadkiem niczego w między czasie nie popsułem. Kompilacja przebiegła ok, instalacja - ok, uruchomienie - ok, nagle crash.

No i teraz pytanie, która z moich zmian spowodowała błąd? Dlatego, że w ówczesnym czasie debugowanie w naszym projekcie było bardzo kłopotliwe a wręcz wówczas niemożliwe stwierdziłem, że najszybciej będzie usunąć zmiany i zacząć je wprowadzać po kolei, stopniowo, za każdym razem upewniając się, że wszystko jest w porządku.

Jednak tych zmian było na tyle dużo, w tylu miejscach, że stwierdziłem, że wolałbym uniknąć usuwania tych zmian ręcznie, bądź wprowadzania ich od nowa. No i wybrnąłem z tej sytuacji, gdyż całą procedurę wykonałem praktycznie nie dotykając kodu za pośrednictwem mojego IDE. W tym wszystkim pomógł mi oczywiście GIT :)

9 stycznia 2011

SexyBookmarks i inne zmiany na blogu

Bardzo wiele wejść na bloga odnotowuje z zewnętrznych serwisów. Prym wśród nich wiodą develway.pl oraz dotnetomaniak.pl (kolejność przypadkowa).

Postanowiłem, więc bardziej "otworzyć" się na te serwisy, a przy okazji jeszcze na parę innych. A to wszystko za pomocą tak zwanych...

Sexy Bookmarks