Jeździsz samochodem? Włącz myślenie!

22
lis/09
2

Droga ekspres

To, co mnie najbardziej denerwuje u ludzi to bezmyślność. Niestety w ciągu ostatniego weekendu miałem okazję doświadczyć jej wielokrotnie na trasie Lublin-Warszawa, dlatego pomyślałem, że chociaż może świata nie zmienie ;), to może przynajmniej wszyscy, którzy tu czasem zaglądają wezmą sobie do serca moją prośbę:

JAK JEDZIECIE SAMOCHODEM, MYSLCIE O INNYCH KIEROWCACH!

Co dokładnie mam na myśli?
1.) Dlaczego może 1% samochodów zjeżdza na bok(wykorzystując przeznaczony do tego pas!) ustępując miejsca komuś, kto jedzie dużo szybciej? Pozostali prują ostro trzymając się środka jezdni i plamą na honorze dla nich jest zrobienie komuś miejsca. Wystarczyłoby od czasu do czasu(nie mówię, że często, zacznijmy od np. raz na tydzień) spojrzeć w lusterko! Potem wygrać ze swoim chorym "cooo, mnie wyprzedzaaa?" i proszę - o jedną niebezpieczną sytuację na drodze mniej. Bo ten z tyłu i tak Cię wciągnie i tak. I teraz najważniejsze: to wcale nie wstyd! Wręcz przeciwnie, obciach jest dopiero wtedy, jak jedziesz jak najgorszy buras środkiem.

2.) Zadanie z gwiazdką - wymaga dobrego opanowania punktu pierwszego ;)
Jedziesz swoim pasem. Na Twoim pasie samochody z przodu i z tyłu oddalone od Ciebie o kilkaset metrów. Z przeciwka jadą: TIR, osobówka, osobówka, osobówka, TIR, TIR, osobówka, autokar, ... Jest dość duża szansa, że osobówka naprzeciwko chce wyprzedzić TIRa lub autokar. I tutaj uwaga: zjedźmy na prawo! Zróbmy miejsce tym którzy jadą w drugą stronę, niech wciągną spokojnie tego zawalidrogę przed sobą(który, oczywiście, ciśnie możliwie blisko lewej krawedzi pasa - chociaż trzeba przyznać że często kierowcy TIRów, jak tylko mogą, to zjeżdzają).
Boli? Na pewno nie, a może nawet należysz do 112% katolików w naszym kraju i pójdziesz do Nieba za dobry uczynek? ;-)))

3.) Punkt 3 jest dedykowany zachowaniom na rondach w Warszawie. Ja wiem, że to jest mega fajne, jechać pasem "jadącym na wprost", w ostatniej chwili cyknąć kierunkowskaz i się wbić komuś przed nosem na rondo. Wiem też, że jeśli tak robisz, to na pewno Ci się spieszy. Ale spieszy się wszystkim, którzy stoją grzecznie na pasie "jadącym w lewo/prawo" i czekają na wjazd na rondo. Przez takich cwaniaków, którzy się wbijają bez kolejki, oni muszą poczekać dłużej, bo rond z gumy to jeszcze w Polsce nie mamy. Poza tym czasem się zapala czerwone i wtedy naprawdę warto czekać :)
Druga sprawa - jak już jesteś chamem-fanatykiem i nie potrafisz zrezygnować z takiego zachowania, to miej jaja i przynajmniej włącz ten migacz 100m wcześniej. Może człowiek za Tobą, który jedzie właśnie 80km/h, będzie bluzgał trochę mniej. W szczególności, jeśli na rondzie(nie z gumy, jak wspomniałem) zabraknie dla Ciebie miejsca i nagle znienacka się zatrzymasz na swoim pasie, to Twój bagażnik nie stanie się garażem.

 

Teoretycznie piszę o rzeczach oczywistych. Jednak w rzeczywistości jest naprawdę marnie. Co z tego, że wybudujemy w Polsce w 2060 roku drogi szybkiego ruchu jak ta z obrazka przy tytule tego posta, skoro i tak każdy z naszych "mega-hiper-wypas-GDZIE_SIE_PCHASZ-nie_ustapie" kierowców będzie czuł, że jego fura właśnie przeżywa drugą młodość i 90km/h to lewy pas i żaden inny. Prawą stroną pojadą TIRy i dziękuję.

Ludzie! Myślmy o sobie (przynajmniej) na drogach. Bo zły stan dróg to nie wszystko.



Office 2010 Beta i Office Web Applications Beta dostępne!

17
lis/09
0

Office 2010 w wersji beta może być już pobrany przez subskrybentów MSDN! Szumu koło "premiery" jest dużo mniej, niż przy okazji wypuszczenia Visual Studio i Team Foundation Servera, a myślę, że produkt równie ważny. Co ciekawe, dostępne sa dwie wersje: x64 i x86 pakietu.
Dodatkowo pojawiło się Office Web Applications Beta, szczegóły dostępne są tutaj: http://www.microsoft.com/video/en/us/details/ebf079e6-6972-43dc-9781-14c013c38e82
Poniżej bezpośredni link do Office w MSDN:

https://msdn.microsoft.com/en-us/subscriptions/securedownloads/default.aspx?pv=1:383



Dostęp do TFS przez SVN? SVNBridge i przybij żółwika! :-)

14
lis/09
1

conflict

Jeśli używasz na codzień Team Foundation Servera, ale na przynajmniej jeden z poniższych punktów odpowiadasz kiwając ze zrozumieniem głową, to z pewnością dalsza część wpisu może Ci się wydać interesująca:)

 





a) Pracowałam/Pracowałem z CVS/SVN. Lubię klienta, np. Tortoise'a, z którym się dotychczas łączyłem(-am) z repozytorium i na razie chcę przy nim zostać!

b) W naszym zespole mamy osoby niekorzystające z Visual Studio, ale chcące mieć możliwość pracy z repozytorium kodu.

c) Zastanawiam się, czy zawsze muszę odpalać Visual Studio, żeby zrobić Check Ina?

Niedawno dowiedziałem się o ciekawym projekcie, pozwalającym na dostęp do repozytorium Team Foundation Servera, za pośrednictwem klienta SVNowego. Mam tu na myśli projekt SVNBridge, rozwijany na licencji Microsoft Public License. Najnowszą wersję, wraz z kodem źródłowym możemy znaleźć na Codeplexie, pod adresem http://svnbridge.codeplex.com/.
Pomysł jest zasadniczo prosty: komendy SVN są tłumaczone na polecenia TFSowe i vice versa, dzięki czemu komunikacja może mieć miejsce. Naturalnie oba repozytoria rządzą się swoimi prawami, więc nie wszystko, co lubimy w TFS lub SVN będzie tutaj bezproblemowo działało. Ale generalnie komunikacja jest możliwa.

Instalacja

Opcje instalacji mam dwie: albo odpalamy sobie plik exe(np. u siebie na maszynie developerskiej), który nasłuchuje na podanym przez nas porcie i stanowi proxy w komunikacji z TFS, albo możemy postawić proxy w postaci aplikacji w IIS. Poniżej zaprezentowałem na kilku screenach tą drugą opcję, czyli hostowanie w IIS. Odpalenie SVN Bridge jest na maxa proste. Aha, pokazuję już na przykładzie TFS 2010 beta2 - więc od razu potwierdzam, że działa, choć nie do końca kompletnie :(

1.) Z codeplexa ściągnąłem paczkę SvnBridge-Server.zip. Na serwerze, na którym mam TFS, rozpakowałem pliki do katalogu C:\inetpub\wwwroot\SvnBridge\ i w pliku web.config zmieniłem wskazanie "TfsUrl" na "http://localhost:8080/tfs" (w katalogu wirtualnym tfs stoi u mnie tfs 2010).

2.) Dodałem aplikację do IIS, jako katalog wirtualny(żeby nie rezerwować oddzielnego portu). Aha, pula, w kontekście której odpalamy powinna mieć ustawiony pipeline w trybie Integrated(w przypadku IIS 7 naturalnie)

3.) Zrobiłem tortoisowy check out z adresu http://tfsserver:8080/SVNBridge/[SciezkaDoProjektu]

Tym sposobem pobrałem kod z TFS za pośrednictwem klienta SVN. Naturalnie mógłbym zrobić checkin(commit) i co ciekawe, mógłbym na końcu komentarza dodać linijkę
work items: 1,2,3

i podobno(nie przetestowałem tego jeszcze) mój check in zostałby skojarzony z work itemami 1, 2 i 3

Problemy

Niestety, nie mam chwilowo dostępnego TFS 2008, żeby sprawdzić, czy tam też występuje ten problem, ale przy TFS 2010 Beta 2 nie jestem w stanie uruchomić Repo Browsera! :( Tzn. pyta się ze 200 razy o login i hasło, żeby w końcu powiedzieć, że e-eee, nie jedziemy... Ale na liście funkcjonalności wsparcie dla repo browsera widnieje, więc jest szansa, że z TFS 2008 będzie śmigać.

Podsumowując - SVNBridge to bardzo fajny projekt, ratujący w przypadku wystąpienia sytuacji a, b i c(i nie tylko) ze wstępu do tego posta. Polecam!



Reczne tworzenie hierarchii branchów w TFS 2010

01
lis/09
0

No tak... od jakiegoś tygodnia jedziemy produkcyjnie na TFS 2010 Beta 2. Zostaliśmy do tego trochę zmuszeni problemem z dotychczasowym TFS 2008 po marnej migracji domen(to grubszy temat, w każdym razie większość zespołu przestała np. widzieć swoje Work Itemy, a żeby komuś dać prawo korzystania z Source Controla, musiałem rzeźbić w bazie danych TFSowej. Polecam taką rozrywkę ;) )., więc stwierdziłem, że warto spróbować już z dyszką, skoro MS jakośtam zachęca i sam korzysta w dogfoodzie ;).

Postawienie TFS 2010 nie polegało jednak u nas na wykorzystaniu opcji Upgrade, bo jak napisałem - z obecnym 2008 mamy problem, więc nie chciałem tego problemu przenieść do nowszej wersji. Straciliśmy wprawdzie ciągłość historii w Source Controlu, ale w razie czego stary server jest nadal aktywny(i na pewno nie pozbędziemy się za szybko przynajmniej baz danych z niego). Dodatkowo, żeby oczywiście było przyjemniej: zero Work Itemów, customizacje, i inne sprawy które wprowadziliśmy poszły sobie biegać, ale mimo wszystko woleliśmy mieć środowisko, w którym da się normalnie pracować.

Ale do rzeczy

Jednym z wyzwań, przed którym stanęliśmy, było odtworzenie hierarchii branchów - pewnie dałoby się jakoś mergować innymi narzędziami, ale zdecydowanie lepiej mieć odpowiednio odtworzoną hierarchię i tylko wybrać do którego brancha chcemy wmergować innego.
Jak zobaczyłem opcję "Convert to branch", to zrobiło mi się nieźle ;) Ale jak zobaczyłem okienko dialogowe pozwalające na konwersję, to generalnie cały entuzjazm poszedł w p... ole :) Generalnie, z tego co zdążyłem wyczytać, nowy TFS inaczej traktuje(i wyraźnie rozróżnia) foldery i branche - np. stworzenie brancha z folderu spowoduje jego automatyczną konwersję również na brancha.

Więc nie miałem możliwości z poziomu GUI wskazania, że TEEEEN branch został utworzony z TEEEEGO i od tej chwili żyją długo i szczęśliwie. A skoro tak, to "welcome to SQL Management Studio" ;-)
Poniżej wypisałem listę rzeczy, które trzeba zrobić/zmienić/obadać albo do których wypada z grzeczności zajrzeć, żeby banglało(uwaga - jest to tutorial mojego autorstwa i ponieważ sam skończyłem walki 2 dni temu, nie mogę wziąć odpowiedzialności za skutki uboczne, chociaż sam ich nie doświadczyłem):

1.) Najpierw w interfejsie konwertujemy ręcznie katalogi nadrzędny i podrzędny na branche(nic wielkiego tam się nie uzupełnia poza właścicielem brancha, ale jest to pole tylko i wyłącznie informacyjne)

2.) W bazie zaczynamy od tabelki tbl_Branch - znajdujemy na liście najpierw parenta, spisujemy sobie jego BranchItemId i konwertujemy, najlepiej mega tajnym narzędziem systemowym calc, na zapis HEX.
3.) Następnie dla rekordu reprezentującego brancha, którego chcemy dopiąć puszczamy update, wpisując w kolumnę BranchParent szesnastkowy zapis z pkt1.
4.) W tabeli tbl_MergeHistory umieścimy dwa rekordy:

insert into tbl_MergeHistory values (@branchId, 18, 18, @parentBranchId, 17, 17, 0,0,0,0)

insert into tbl_MergeHistory values (@parentBranchId, 17, 17, @branchId, 18, 18, 0,0,1,0)

Wartości 17 i 18 są przykładowe(prawdopodobnie to numery changesetów). Nie wiem jakie znaczenie ma wstawienie tam randomowo-kosmosowych wartości, lepiej chyba żeby się parami zgadzały ;)

5.) W tabeli tbl_Version zmieniamy Command na wartość 68(trochę magic number, nie potrafię powiedzieć dlaczego akurat 68 ;) domyślny wpis to 5).
6.) Trzymamy kciuki, żeby w Visual Studio w okienku "Merge..." w liście pojawił się odpowiedni branch, z którym będziemy się mogli zmergować :-)