29/07/2011

Londyn - kosze na śmieci

Home

Z ciekawostek. W Londynie jest bardzo mało koszy. W gruncie rzeczy jeśli mamy do wyrzucenia jakiś papierek, niedopałek papierosa itp. do mamy dwa wyjścia: schować do kieszeni lub wyrzucić na ulicę. Wiele osób, a w szczególności palacze wybierają drugą opcję. Służby sprzątające są jednak bardzo sprawne dlatego miasto nie jest zaśmiecone.

Ciekawe jest natomiast dlaczego tych koszy jest tak mało. Kolega stwierdził, że to pozostałość po czasach kiedy aktywna była Irlandzka Armia Republikańska. Kosz na śmieci to doskonałe miejsce na podłożenie bomby i dlatego usunięto je z ulic tylko, że potem "zapomniano" je przywrócić.

Linki do poprzednich postów z serii na temat życia w Londynie:

27/07/2011

IntelliTrace - Reaktywacja

Home

Już kawał czasu temu w artykule Używanie IntelliTrace poza Visual Studio 2010! opisałem w jaki sposób uruchomić narzędzie IntelliTrace poza środowiskiem Visual Studio 2010. Przedstawiona przeze mnie metoda miała jednak wadę. Log z nagranym przebiegiem wykonania programu zawierał "tylko" informację o wywołaniach metod czyli drzewo wywołań, a brakowało w nim informacji o zdarzeniach diagnostycznych czyli ważnych punkty w historii wykonania programu np.: wykonanie zapytania do bazy danych.

Ostatnio udało mi się znaleźć ostatni element układanki. Otóż aby log IntelliTrace zawierał wszystkie niezbędne informacje wystarczy wykonać, oprócz opisanych już przeze mnie rzeczy, jeszcze jeden krok czyli zmodyfikować plik CollectionPlan.xml z planem działania/konfiguracją narzędzia. Znajdujemy w nim linię:
...
<DiagnosticEventInstrumentation enabled="false">
...
i zamieniamy na:
...
<DiagnosticEventInstrumentation enabled="true">
...

22/07/2011

Londyn - przechodzenia przez ulicę

Home

W Polsce od maleńkiego uczono mnie, że przez ulicę należy przechodzić na pasach i kiedy pali się zielone światło. Swego czego przekonałem się również ile wynosi mandat za przechodzenie na czerwonym świetle:) Kiedy wyjeżdżam za granicę z założenia stosuję te same zasady, choćby dlatego, żeby nie płacić potencjalnie wyższych mandatów niż w Polsce.

W Londynie (nie wiem czy jest tak w całym Zjednoczonym Królestwie), co mnie bardzo zaskoczyło, sprawa ma się zupełnie inaczej. Zdecydowana większość osób przechodzi na czerwonym świetle i jest to właściwie zasadą. Początkowo miałem jednak pewne skrupuły. O tym, że jest to "dozwolone" przekonałem sie kiedy zobaczyłem, że policja nie reaguje na ten niecny proceder nawet jeśli przechodzi się na czerwonym świetle tuż koło właśnie ruszającego radiowozu!

Z czego wynika to przyzwolenie na łamanie prawa? Od kolegi dowiedziałem się, że wbrew pozorom wszystko dzieje się w majestacie prawa. Z ciekawości poszukałem informacji na ten temat i wygląda na to, że kolega miał rację. Otóż przepisy dotyczące przechodzenia przez jezdnię sformułowano przy użyciu wyrażeń "should/should not" albo "do/do not" (rada/zalecenie), a nie "must/must not" (zakaz/nakraz). Innymi słowy napisano, że "nie powinno" się przechodzić na czerwonym świetle zamiast, że "jest zabronione/nie wolno" przechodzić na czerwonym świetle.

Takie podejście do przechodzenia przez ulicę z pewnością przyspiesza poruszanie się po Londynie. Trzeba jednak pamiętać, że robimy to na swoją odpowiedzialność. Jeśli zostaniemy potrąceni przez samochód to będzie to nasza wina.

Linki do poprzednich postów z serii na temat życia w Londynie:

19/07/2011

See[Mike]Code

Home

Dzisiaj rozmawiając z kolegami zeszliśmy na temat rekrutacji programistów. Między innymi rozmawialiśmy o narzędziach wspomagających ten proces takich jak Codility. Rozmowa ta przypomniała mi, że swego czasu natknąłem się ba bardzo proste ale pomysłowe narzędzie pozwalające na żywo, zdalnie sprawdzić jak potencjalny kandydat radzi sobie z programowaniem. Miałem trudności z przypomnieniem sobie adresu strony dlatego ku pamięci publikuję ten post. Przy okazji sądzę, że narzędzie to może przydać się innym. Mianowicie chodzi o See[Mike]Code.

Zasada działania jest bardzo prosta. Wchodzimy na stronę See[Mike]Code, klikamy przycisk New Interview Site i otrzymujemy dwa adresy. Jeden wysyłamy do kandydata, a drugi zachowujemy dla siebie. O wyznaczonej porze prosimy aby kandydat uruchomił przeglądarkę i wszedł na podany adres. Jego oczom ukarze się taki widok:



Kiedy wejdziemy pod drugi adres wyświetlona zostanie dość podobna strona. Teraz prosimy kandydata aby wykonał jakieś proste zadanie programistyczne np.: słynne FizzBuzz, a jego poczynania możemy obserwować na ekranie naszego komputera. See[Mike]Code nie udostępnia takich dobrodziejstw jak IntelliSense ale w przypadku prostych zadań, takich jak wspomniane FizzBuzz, nie jest to konieczne.

Jestem przekonany, że na polskim rynku nie mamy sytuacji, w której jak to napisał Jeff Atwood na swoim blogu:

Like me, the author is having trouble with the fact that 199 out of 200 applicants for every programming job can't write code at all. I repeat: they can't write any code whatsoever.

Sądzę jednak, że dobrze mieć w swoim repertuarze takie narzędzie.

13/07/2011

Londyn - pogotowie

Home

Dzisiaj idąc do pracy byłem świadkiem jak pogotowie udzielało pomocy kobiecie, która zasłabła na moście London Bridge. Co w tym takiego ciekawego, ze postanowiłem o tym napisać? Moją uwagę zwrócił środek transportu jakim przyjechał ratownik czyli rower. Słyszałem o tym ale po raz pierwszy widziałem.

Temat podrążyłem trochę bardziej i dowiedziałem się, że w Londynie pogotowie posługuje się oczywiście samochodami ale również motocyklami (motorcycle responders) i rowerami (cycle responders). Dwa ostatnie środki transportu używane są w najbardziej ruchliwych/zakorkowanych dzielnicach tak aby nawet w godzinach szczytu dotrzeć do poszkodowanego w jak najkrótszym czasie. Za takim rowerowym pogotowiem wysyłany jest również ambulans. Jeśli jednak okaże się, ze poszkodowany nie musi zostać przetransportowany do szpitala to ratownik może odwołać wyjazd. Dzięki takiemu podejściu, od momentu wprowadzenia pogotowania rowerowego (10 lat temu) ambulanse musiały wyjechać o 20 tysięcy razy mniej, co przekłada się przecież na konkretne pieniądze. Inny niespotykany w Polsce "wynalazek" to Ambulance community responder czyli jednoosobowe pogotowie samochodowe, w którym pracują ochotnicy. Ich celem jest dotarcie do pacjenta i utrzymanie go przy życiu, aż do przybycia ambulansu, których liczba jest ograniczona.

O Brytyjskiej służbie zdrowia słyszałem dwie opinie, ze jest zła albo, że jest bardzo zła. Mam nadzieję, ze nie będę miał okazji tego zweryfikować ale przynajmniej pogotowie wygląda tutaj na dobrze zorganizowane i sprawnie działające.

Linki do poprzednich postów z serii na temat życia w Londynie:

10/07/2011

Londyn - ceny jedzenia

Home

Dzisiaj wrócę do tego jak żyje się w Londynie, a konkretniej do cen artykułów spożywczych i innych. Trochę zakupów już zrobiłem i na podstawie paragonów sporządziłem listę wybranych produktów wraz z cenami w supermarketach (Tesco, Lidl, Sainsbury's). Lista ta znajduje się na końcu postu. Oczywiście nie jest kompletna ale pi razy oko pozwala zorientować się w poziomie cen. Po miesiącu pobytu sporządzę natomiast podsumowanie ile przez ten czas kosztowało mnie jedzenie.

Czy jest drogo? Trochę na pewno ale ogólnie możemy być dumni bo ceny w Polsce z pewnością osiągnęły Europejski albo prawie Europejski poziom. Szkoda, że to samo nie dotyczy pensji :) Dodam jeszcze, że dość powszechne są promocje rodzaju kup 3 paczki wędliny, a zapłać za dwie co przy większych zakupach pozwala znacząco obniżyć ich koszt.

Sporo droższe jest na pewno żywienie się na mieście np.: za kebab zapłaciłem 5£, za narodowe danie Brytyjczyków czyli Fish&Chips 10£, a za świeżo zrobioną kanapkę z szynką (takie 2 trójkąty) 3.5£. Duży kubełek ryżu z kurczakiem curry lub zestaw obiadowy Sushi w sieciówce Wasabi (bardzo polecam) to koszt odpowiednio ok. 5£ i ok. 6,5£. Są to ceny z centrum Londynu, więc z pewnością trochę zawyżone ale tak czy inaczej jest drożej niż w Polsce. Jeśli chodzi o bardzo ważną rzecz czyli cenę piwa to 1 pinta (~568 ml) w pubie kosztuje ok. 3,5£. Do tematu piwa i pubów wrócę jeszcze później.
  • Coca cola 2L 1,5£ - 1,89£
  • Woda mineralna 2L 0,45£
  • Piwo 0,81£-1,1£
  • Sok pomarańczowy 1 L 1,19£ - 1,56£
  • 1 kg jabłek 1,5£
  • 1 kg pomidorów 1,99£
  • 1 kg cebuli1,2 £
  • 1 banan 0,18£
  • Mała puszka pomidorów 0,41£
  • Słoik ogórków konserwowych 0,99£
  • Mały słoik oliwek 0,59£
  • Paczka Spaghetti 0,79£
  • 0,5 kg soli 0,15£
  • 50g pieprzu 0,55£
  • 0,5 kg wołowego mięsa mielonego 2,69£
  • 4 steki wieprzowe (nie pamiętam wagi, tak na 2 obiady) 3,29£
  • Chleb pełnoziarnisty 1,25 £
  • Zupka w proszku 0,19£
  • Czteropak jogurtów Activia 1,66£
  • masło 1,6£
  • 1 Kg paczka frytek McCane 1,86£
  • Paczka wędliny 140g 1,15£
  • 15 jajek 1,25£
  • 1 kg proszku do prania Persil
  • batonik Snicker 0,50£ - 0,60£


Linki do poprzednich postów z serii na temat życia w Londynie:

07/07/2011

Bug w Visual Studio

Home

Niedawno spotkałem się z zabawnym bugiem w Visual Studio. Zauważyłem go w VS 2005, ale udało mi się go odtworzyć w VS 2010, zresztą nie jest to trudne. Poniżej bardzo prosty kawałek kodu, który pozwoli wyjaśnić o co chodzi:
public class Fun
{
  private string s = null;

  public void Test(string s)
  {
    Test2();
  }


  public void Test2()
  {
    Console.WriteLine(s);
  }
}
...
new Fun().Test("Ala ma kota");
Stawiamy pułapkę na początku metody Test oraz Test2 i uruchamiamy program. Po zatrzymaniu programu na pierwszej pułapce sprawdzamy wartość parametru s oraz prywatnej składowej klasy o tej samej nazwie. Otrzymamy taki wynik:



Powtarzając tą samą operację po zatrzymaniu programu na drugiej pułapce otrzyma natomiast taki wynik:



W "magiczny" sposób składowa prywatna, która powinna mieć wartość null przyjęła nagle wartość "Ala ma kota". Analogicznie parametr s przyjął wartość null zamiast "Ala ma kota". Na tym nie koniec. Poniższy obrazek pokazuje jak środowisko VS raportuje NullReferenceException i równocześnie pokazuje, że podejrzana referencja nie jest pusta.



Oczywiście nie ma w tym żadnej magii. Moim zdaniem to ewidentny bug w Visual Studio, spowodowany tym, że środowisko nie uwzględnia zasięgu obowiązywania składowych klas czy też parametrów metod. Z drugiej strony nazywanie w taki sam sposób zmiennych lokalnych, parametrów czy składowych klas, których zasięgi leksykalne pokrywają się, nie jest dobrym pomysłem bo prowadzi do bałaganu i pomyłek. W każdym razie wbrew pozorom w szale debugowania łatwo się na to złapać.

06/07/2011

Londyn - początek

Home

Życie podąża różnymi ścieżkami, a mnie ostatnio przywiało do Londynu. Zawsze lubiłem czytać o życiu i pracy w innych krajach dlatego postanowiłem, że korzystając z okazji będę dzielił się swoimi wrażeniami na blogu.

Zacznę od tego, że jestem w podróży służbowej, a więc jestem w tej komfortowej sytuacji, że przyjechałem na gotowe. Z tego powodu nie mogę jednak opisać z autopsji jak wygląda szukanie pracy czy mieszkania w Londynie. Skupię się, więc na innych rzeczach: ile kosztuje mnie życie z wyłączeniem kosztów około mieszkaniowych, jak wyglądają dojazdy do pracy, czy miasto mi się podoba itd. Tym samym mocno odbiegnę od zwyczajnej tematyki bloga ale mam nadzieję, że się spodoba. Posty na ten temat chciałbym publikować co kilka dni ale będzie to raczej zlepek luźno powiązanych z sobą wpisów niż z góry zaplanowana seria.

Na początek kilka zdań o tym jak idzie mi dogadywanie się z autochtonami. Wyjeżdżając do Londynu miałem z jednej strony wiele powodów sądzić, że nie będę miał z tym większych problemów ale miałem również trochę obaw. Jeśli ktoś chciałby porównać swój poziom znajomości angielskiego z moim to uczę się go od czasów podstawówki przy czym intensywną naukę zacząłem tak naprawdę w liceum. Mam też zdany egzamin CAE. Do tej pory angielskiego używałem głównie do czytania dokumentacji technicznej, książek, forów czy blogów. Rzadziej pisałem po angielsku, a już bardzo rzadko miałem okazję rozmawiać po angielsku, w szczególności na tematy inne niż techniczne.

Przechodząc do setna to po tych kilku dniach pobytu muszę powiedzieć, że jest dobrze. W przeważającej liczbie przypadków nie mam żadnych albo prawie żadnych problemów z porozumiewaniem się po angielsku. Równocześnie zdarzyło się jednak, że w czasie rozmowy, pomimo poproszenia o powtórzenie, z powodu akcentu nie byłem w stanie wyłowić z wypowiedzi bardzo wielu słów i mogłem zrozumieć tylko ogólny sens wypowiedzi. Mam jednak nadzieję, że to tylko kwestia czasu i osłuchania. Muszę również przyznać, że jestem mile zaskoczony ponieważ większość do tej pory spotkanych przeze mnie osób nie mówi z bardzo silnym akcentem, który utrudniałby zrozumienie.

Jeśli chodzi o mówienie to otrzymałem nawet komplement od rodowitego Anglika, że mój angielski jest bardzo dobry :) Co prawda moim zdaniem rozmawiając z rzeczonym Anglikiem popełniłem sporo błędów gramatycznych i czasem brakowało mi słów ale to pokazuje, że najważniejsze to żeby się nie bać i mówić, mówić i jeszcze raz mówić. Dla mieszkańców danego kraju, w tym przypadku dla Brytyjczyków, najważniejsze jest przecież to, że mówi się w ich języku, a więc nie powinniśmy być dla siebie zbyt surowi. To przypomina mi anegdotę jaką opowiedział mi kolega z Polski. Otóż kiedy ubiegał się o pracę to odbył rozmowę z headhunter'em, który stwierdził, że z tym jego angielskim to mogło by być dużo lepiej, że popełnia błędy itd. Pomimo sceptycyzmu headhunter'a odbył rozmowę z Anglikami, a oni nie mieli zastrzeżeń i go zatrudnili. Dodam jeszcze, że jego angielski jest moim zdaniem lepszy od mojego.

Na koniec osobom, które wyjeżdżają za granicę i podobnie jak ja rzadko rozmawiają po angielsku polecam przed samym wyjazdem wykupić kilka godzin konwersacji z lektorem aby się rozgadać. Ja tak zrobiłem i sądzę, że pomogło.