Thursday, 24 December 2009

Przeniesienie zainstalowanego systemu Windows Vista / 7 na nowy dysk

Stanąłem przed problemem wymiany dysku w laptopie na nowy większy. Problem polegał na tym, że ani nie chciałem reinstalować wszystkiego od początku ani użyć jakiegoś komercyjnego rozwiązania w stylu Norton Ghost itp.

Przyjrzałem się wbudowanemu w Vistę narzędziu do backupu systemu "Centrum kopii zapasowych i przywracania" jednak najciekawsza opcja tego narzędzia "Windows Complete Backup and Restore" nie pozwala w trybie kreatora na wykonanie tego backupu na udostępniony w sieci zasób lub dysk a jedynie na lokalne dyski lub nagrywarkę.

Przyjrzałem się więc jeszcze bliżej tym razem opcjom linii poleceń tego narzędzia "wbadmin" i okazało się, że jednak można :-)

Przykładowe odpalenie kompletnego backupu laptopa z zapisem na zasób w sieci:
wbadmin start backup -allCritical -backupTarget:\\server\share -include:C: -vssFull -user:server\username -password:pass

Procedura odtworzenia wyglada trochę inaczej bo należy:

1. Zbotować komputer z krążka Windows Vista CD

2. Wybrać opcję "napraw komputer"

3. Po uruchomieniu kreatora pomimo iż w menu jest opcja odtworzenia kompletnego backupu to nie pozwala ona na odtworzenie go z sieci więc wybieramy "wiersz polecenia"

4. Potrzebujemy sieci więc czas by ją wystartować zatem wpisujemy polecenie startnet.cmd - to włączy nam sieć pod warunkiem iż mamy w sieci serwer dhcp - jeśli nie mamy to dodatkowo można skonfigurować tcpip przy użyciu polecenia netsh

5. Tu możemy zamapować dysk sieciowy z którego chcemy odczytać backup:
net use i: \\server\share /USER:server\username
choć jest to zbędne bo i tak wskazujemy bezpośrednio zasób sieciowy

6. sprawdzamy co mamy do odtworzenia:
wbadmin GET VERSIONS -backupTarget:\\server\share

7. Zapisujemy sobie identyfikator naszego backupu np. 12/23/2009-06:58

8. Uruchamiamy odtwarzanie pełnego backupu:
wbadmin START SYSRECOVERY -backupTarget:\\server\share -version:12/23/2009-06:58 -recreateDisks

9. Potwierdzamy wykonanie polecenia "t" i czekamy na zakończenie operacji...

10. Profilaktycznie na koniec restartujemy ponownie komputer także z krążka Windows VISTA CD i wykonujemy
chkdsk /r

11. Notujemy ewentualne problemy z plikami a gdyby jakieś wystąpiły zawsze można dodatkowo te pliki podkopiować tak z oryginalnego dysku lub też z podmontowanego obrazu naszego backupu - jest on bowiem w formacie VHD (całkiem analogicznym jak obraz wirtualnego systemu dla Virtual PC) i można go sobie podmontować poleceniem "vhdmount" które jest dostępne po zainstalowaniu pakietu "Microsoft Virtual Server" (niestety nie ma go w pakiecie "Microsoft Virtual PC")

Procedura backupu 146GB trwała około 7 godzin a odtwarzanie połowę krócej tak więc nocka jest najlepszym mozliwym momentem na jej wykonanie - my śpimy a pecet pracuje... ;-)

Sunday, 29 November 2009

Poiplaza full country POI download spider

Siadłem dziś rano do kompa odrobinę "poandrzejkowy" chcąc zaktualizować sobie poi'e z PoiPlaza i z wrodzonego mi twórczego lenistwa postanowiłem że nie będę jak ten ostatni osioł klikać link po linku ściągając po kolei te poi'e. Napisałem więc kawałek kodu w php który buszuje trochę po PoiPlaza i podaje to prawie gotowe jak na tacy :lol:

Jeśli ktoś chce to sobie odpalić na windzie z linii poleceń to można np. tak:

c:\PHP>php-cgi.exe poiplaza.php >poiplaza.htm

później otworzyć gotowe poiplaza.htm w przeglądarce albo też wystawić sobie na stronkę pod apacza czy iis'a ten skrypt poiplaza.php i kliknąć przeglądarą ;-)

W aktualnym kodzie zasysam Polskę i poi'e dla iGo8 niemniej dwoma kliknięciami można zmienić na dowolny inny kraj czy inną wersję poi na inna nawigację.

Poniższy kod jest trochę zniekształcony przez koloryzator składni i zacytowałem go tutaj wyłacznie poglądowo dlatego też działający kod trzeba pobrać z mojego chomika: http://chomikuj.pl/saphireee/nawigacja/programiki/poiplaza.zip
<?php
// (c)2009 Bartek 'saphire' Siebab
//
// remember: increasese enough php execution time in php.ini
// this script lasts loooongggg... 
// becouse plenty pages has to be opened and parsed...
//
  $country=32; // 32=Poland - get this from url of choosen country 
  $target='[iI][gG][oO]8';//igo8 partly regexp

  $download='http://www.poiplaza.com/';
  $url='http://poiplaza.com/index.php';

  $countryurl=$url . '?p=dc&c=' . $country;
  $poipageurl=$countryurl . '&lpg=&d=&pg=';

  $crlf=chr(13).chr(10);  

// now lets do this  
  $countrybody=http_parse_message(http_get($countryurl))->body; 
  
  preg_match('/ \d*[ ]*[\/][ ]*\d* [ ]*/',$countrybody,$matches );
  $pages=explode("/",str_replace(' ','',str_replace(' ','',$matches[0])));
  $minpage = $pages[0];
  $maxpage = $pages[1];
  
  $n=0;
  for ($pg=$minpage; $pg<=$maxpage;$pg++) {
    $poipagebody=http_parse_message(http_get($poipageurl . $pg))->body;
    preg_match_all('/\<a href\=\"\?p\=sdb&d\=\d*\&lstpg\=ds\&lsts\=\_LSTS\_\"\>.*\<\/a\>/',$poipagebody,$matches );

    $i=0;
    foreach ($matches[0] as $key => $value) {
      preg_match_all('/\d*/',$value,$poiurl);
      
      $poiid = $poiurl[0][18]; // in 18th field is poi id
      $poiadr = $url . '?p=download&d=' . $poiid . '&lstpg2=sdb&lstpg=ds&lsts=_LSTS_';
      
      $n++; // lets create table with poiid and poiurl
      $poi[$n][0] = $poiid;
      $poi[$n][1] = $poiadr; 
      //print $poi[$n][0] . ' # ' . $poi[$n][1] . ' <br> ';
      
      $i++;      
    } // end of foreach loop
  } // end of for loop 

// now clear some useless variables
unset($poiid);
unset($poiadr);
unset($countrybody);
unset($poipagebody);
unset($matches);

// *************************************************************************
print $crlf;
print '<html><title>Poiplaza full country POI download spider (c)2009 Bartek \'saphire\' Siebab</title><body>'.$crlf;
print '<b>Poiplaza full country POI download spider (c)2009 Bartek \'saphire\' Siebab</b><br><br>' . $crlf;
print 'Country id: ' . $country . ' found '.$n.' POI\'s<br><br>'. $crlf;

  // now lets loop and open every poi page
  for ($pg=1; $pg<=$n;$pg++) {
    //print $poi[$pg][1];
    $poipagebody=http_parse_message(http_get($poi[$pg][1]))->body;
    $linkregexp='/download\/zipfiles\/\d*\/.*' . $target . '[.][zZ][iI][pP]/';
    preg_match($linkregexp,$poipagebody,$matches);
    $poireadyurls[$pg]=$matches[0];
  } // end of for loop

  // now lets make a plain text show
  print 'Ready copy & paste box:<br><br><code>'.$crlf;
  for ($pg=1; $pg<=$n;$pg++) {    
    print($download . $poireadyurls[$pg] . '<br>'. $crlf);
  } // end of for loop
  print '</code><br><br>'.$crlf;

  // now lets make a href show
  print 'Clickable url\'s box:<br><br>'.$crlf;
  for ($pg=1; $pg<=$n;$pg++) {    
    print('<a href="'.$download . $poireadyurls[$pg] .'">'.$download . $poireadyurls[$pg].'</a><br>'. $crlf);
  } // end of for loop
  print '<br>'.$crlf;
  
print '</body></html>'.$crlf;
// again clear some variables
unset($poipagebody);
unset($matches);
unset($poireadyurls)
?>

Wednesday, 26 August 2009

Nietypowa rocznica

Dokładnie dzisiaj mija równo 3 lata odkąd ujeżdżam moje Mitsubishi Carisma 1.8 GDI LX Automatic W tym czasie z różnymi przygodami auto przejechało 45 tyś. km spaliło 4600 l paliwa więc średnio roczne spalanie to 10l/100km co jak dla mnie jest wynikiem całkiem satysfakcjonującym uwzględniając wygodę jazdy automatem i w dodatku z klimatyzacją. Oby tak dalej!

Saturday, 8 August 2009

Opowieści motocyklowe...

Jakiś czas temu (lat kilkanaście) buszując w piwnicy ś.p. Babci dokopałem się do pewnych bardzo interesujących pozostałości dawnego motocykla mojego ś.p. Taty - pomarańczowo-czarno-biała SHL Gazela z silnikiem M17 Wiatr 175ccm.

Wtedy jeszcze nie miałem pomysłu co z tym zrobić jednak ostatnio coraz bardziej chodził mi po głowie plan odbudowy tego motocykla. Niestety z informacji uzyskanych od kuzyna wynika że kilka lat temu gdy sprzątał tą piwnicę to już tych gratów tam nie było. Szkoda.

O ile sobie moja Mama przypomina rok produkcji to chyba tuż przed moim urodzeniem ~ 1969-1970 więc teraz to był by już zabytek niemal 40'to letni. Wygrzebałem w starym albumie fotkę (niestety czarno białą) z czasów dzieciństwa na tej Gazeli i chyba mnie wciągnęło...

http://shl_gazela.republika.pl/
http://www.polskiemotocykle.mik.pl/m17-zaw.html

Tuesday, 28 July 2009

Kurs Administracja Serwerem PostgreSQL

Ostatnio miałem okazję uczestniczyć w kolejnym szkoleniu - tym razem z administracji serwerem bazodanowym PostgreSQL ;-)

Saturday, 4 July 2009

Podsumowanie po wakacjach...

Właśnie wróciliśmy z wakacyjnych wojaży. Objechałem Węgry, Bałkany (Bośnię, Chorwację, Czarnogórę, Słowenię) i kawałek Italii (Triest, Wenecja). Odrobina statystyki:
- trasa                     3741 km
- paliwo 271 l
- średni koszt paliwa 1218 zł
- średnia cena paliwa 4,49 zł/l
- średnie spalanie 7,25 l/100km
- średni koszt 1 km 0,33 zł/km

Na Chorwacji w Cavtat mieliśmy wynajęte bardzo fajne apartamenty Apartments Pave

Niektóre fotki i filmiki z tych wakacji już zostały wystawione w mojej galerii:
Piramidy w Visoko w Bośni ominęliśmy z braku czasu, jaskiń w Postojnej na Słowenii także nie zaliczyliśmy (i tak kiedyś już tam byliśmy) a na TopGear'ową najlepszą trasę Europy - z Davos przez Bormio i dalej przełęczą 80ciu zakrętów przez Stevio Pass jeszcze przyjdzie czas w kolejnym wypadzie może tylko alpejskim :-)

Saturday, 20 June 2009

Wakacje czas zacząć...

Właśnie wyruszyłem na wakacje (już od pół godzinki śmigam sobie autkiem).

Plan dojazdu na miejsce jak na mapce. Powrotnie będzie trasa dookoła Chorwacji bo zapewne po drodze zaczepię o Wenecję, Plitvice, Postojną i oby udało się zaliczyć także TopGear'ową najlepszą trasę Europy - z Davos przez Bormio i dalej przełęczą 80ciu zakrętów przez Stevio Pass :-)

Plan na pierwszy dzień podróży to dojazd i nocleg w okolicach Sarajeva gdzies około godziny 18tej - może w Visoko to przy okazji zobaczył bym niedawno tam odkryte piramidy.

Drugiego dnia zapewne szybki rekonesans na "Piramidę Słońca", później do Sarajeva zobaczyć co się zmieniło od czasów Olimpiady Zimowej '84 i jak to teraz wygląda po bałkańskich wojnach (zaraz po ich zakończeniu wyglądało tragicznie). Później do Mostaru i także małe zwiedzanko i zakończenie w Cavtat nieopodal Dubrownika.

Monday, 1 June 2009

Najkrótsza choć nie najszybsza ale najciekawsza trasa z Przemyśla do Cavtat na Chorwacji

Najkrótsza choć nie najszybsza ale najciekawsza trasa z Przemyśla do Cavtat na Chorwacji pięknymi kanionami rzeki Neretwy w Bośni: Przemyśl - Barwinek - Miszkolc - Budapeszt - Osijek - Zenica - Sarajevo - Mostar - Dubrovnik

UWAGA: objazd nową autostradą M0 wokół Budapesztu od wschodu i południa zjazd za Gödöllő (brak jej jeszcze na mapach bo została oddana do użytku we wrześniu 2008r) oraz nową A5 w pobliżu Osijeka (także jeszcze brak na mapach bo została oddana do użytku w kwietniu 2009r) między Beli Manastir - Osijek - Dakovo - Slavonski Brod

W rzeczywistości czas przejazdu o kilka godzin krótszy ze względu na braki w mapach i nie uwzględnione nowe autostrady (M0 Węgry i A5 Chorwacja).

Link do mapki tej trasy na Google Maps


Pokaż Przemyśl - Cavtat na większej mapie

Tuesday, 10 March 2009

Gdzieś między muszką a szczerbinką w Battlefield2

Po zakończeniu sezonu wyścigowego dla odmiany dałem się namówić kolegom na wspólne postrzelanie. Wirtualne oczywiście, w Battlefield2 z dodatkiem Jednostki Specjalne jest dość sympatyczną grą. Jeśli America's Army jest klasykiem to BF2 raczej luźnym wstępem do trudniejszych gier wojennych. Tak czy siak miło jest dla odmiany postrzelać. Pewną niedogodnością są gracze grający nie fair z różnymi wspomagaczami w postaci cheat'ów czy botów (np. AIMBOT) bowiem normalny człowiek nie ma z nimi praktycznie żadnych szans co prawda nad tym wszystkim czuwa Punkbuster oraz dodatkowe oprogramowanie na serwerach jednak w kościach czuję że nie wszystko jest wykrywalne, a szkoda. Od czasu do czasu po solidnej "pracy" w działaniach wojennych gracz jest nagradzany różnymi odznaczeniami i awansami co można sprawdzić w statystykach z gier lub na stronach gdzie one są publikowane: BF2 saphireee stats

Do tego posta potrzebowałem jakiejś fajnej grafiki z logo BF2 więc znalazłem fajną stronkę gdzie jest tego sporo:
http://bf2.free-gfx.com a na bazie tych grafik powstało kilka fajnych tapet i takie małe logo:

Friday, 20 February 2009

Filmy HD na YouTube

Trochę ostatnio pogrzebałem w YouTube poszukując sposobów na wystawienie filmu w jakości HD tak by nie został zdewastowany konwersją po ich stronie do niskiej jakości i znalazłem pewien nowiutki dokument opisujący format pliku video w jakim jaki powinien być przesyłany materiał: Getting Started: Optimizing your video uploads

Ponadto do uploadu należy używać narzędzia "bulk transfer" czyli "Google Gears" albowiem potrafi wznawiać przerywane transfery szczególnie przy dużych plikach.

Dodatkowo do url'a aktywującego oglądanie filmiku można zmodyfikować pewne parametry ustalające jakość, rozmiar i proporcje odtwarzanego materiału:

< object width="640" height="385" >
< param name="movie" value="http://www.youtube.com/v/qaeNclGhAZ8&hl=pl&fs=1&rel=0" >< /param >
< param name="allowFullScreen" value="true" >< /param >< param name="allowscriptaccess" value="always" >< /param >
< embed src="http://www.youtube.com/v/qaeNclGhAZ8&hl=pl&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385" >< /embed >
< /object >


Znalazłem także informacje iż można dodawać dodatkowe parametry do url'a:
- obowiązujące dla starych formatów 4:3 konkretnie: &fmt=18
- obowiązujące tylko dla formatów 16:9 HD konkretnie: &fmt=22
Więcej na ten temat np. tutaj: Youtube HD Update - Large High-Definition Video Player Layout

Przykładowo dla tego filmiku: http://www.youtube.com/watch?v=88d9y_10ohg&fmt=22 może się pojawiać przy starcie odtwarzania mała ikonka [HQ] lub [HD] w prawym dolnym roku filmiku wskazująca że film jest w wysokiej jakości - służy do przełączenia odtwarzania w tryb niskiej/wysokiej jakości. Czasem także pod filmem pojawia się link "obejrzyj w standardowej/wysokiej rozdzielczości".

Podsumowując: jeśli chcesz mieć na YouTube film w jakości HD to musi on być w rozdzielczości 1280x720 zakodowany kodekiem video h264 (lub x264) z bitrate minimum 2Mbit/s oraz kodekiem audio AC3 z bitrate minimum 192kbit/s. Ponadto początkowe sekwencje filmu muszą być zmienne tak by mechanizmy YouTube nie wykonały konwersji do niskiej rozdzielczości. Okazuje się, że gdy w filmie na początku są statyczne mało zmienne sceny to YouTube konwertuje film do SD. Jeśli początek filmu ma dużą zmienność obrazów to po spełnieniu powyższych warunków co do rozdzielczości i kodeków film będzie zachowany na YouTube w jakości HQ i HD

Podany jak wyżej kod (po usunięciu celowych spacji z tagów html) generuje następujące okno odtwarzacza:

Friday, 16 January 2009

Projekt ESKS

Od 2006r intensywnie pracowałem wspólnie z kilkoma kolegami nad nowym dużym projektem informatycznym dla Służby Celnej RP. System "ESKS - Ewidencja Spraw Karnych Skarbowych" początkowo mały i działający w obrębie Izby Celnej w Przemyślu z czasem rozrósł się bardzo i okazał się na tyle przydatny że ostatecznie został dofinansowany ze środków Funduszy Unijnych (zakup odpowiedniego sprzętu IT). Na początku stycznia 2009r system Zarządzeniem Ministra Finansów został uruchomiony i wdrożony w całej Polsce. Jako współautora systemu tym bardziej cieszy mnie powodzenie tego projektu systemu informatycznego. System został opracowany w oparciu o Open Source - PostgreSQL, OpenRPT oraz inne komponenty np. PostgresDAC, EMS SQLManager itp.

Dodatkowe informacje:
Projekt ESKS - IC Przemyśl
Gazeta Prawna - artykuł 1
Gazeta Prawna - artykuł 2

Wystartował sezon - wirtualnej ligi wyścigowej Formuła 1

Skończył się prawdziwy sezon wyścigów F1 w którym Robert Kubica zajął IV miejsce pomimo iż zdobył tyle samo punktów co Raikonen (zdecydowała ilość zwycięstw).

Przerwa zimowa trwa 5 miesięcy stąd pomysł by jeździć w wirtualnej lidze na symulatorze rFactor.

Kupiłem zatem kierownicę Logitech Driving Force GT i ruszyłem trenować na torze. Próbny przed-sezon zimowy wystartował i liga f1simpl ruszyła.



UPDATE1: Po długiej i obfitej w argumenty dyskusji z Supportem Logitech na temat pełnej obsługi wszystkich przycisków na kierownicy Logitech Driving Force GT przez sterowniki dla Windows otrzymałem ostatecznie informację że ten problem zostanie przekazany/eskalowany (oby do realizacji) do inżynierów/programistów i jest nadzieja że dorobią ich działanie na tym kółku pod Windows. :-)

UPDATE2: Ostatecznie pełne wsparcie dla wszystkich dodatkowych przycisków na tej kierownicy jest w sterownikach Logitech Profiler od wersji 5.04 - Brawo Support Logitech'a :-)

PODSUMOWANIE: Na zakończenie sezonu testowego w klasyfikacji końcowej uzyskałem 5-te miejsce. Sezon był fajny i wiele się nauczyłem szczególnie w kwestii prowadzenia wirtualnego bolidu F1. Wraz z zakończeniem sezonu testowego postanowiłem zakończyć starty i zmienić ligę na inną, być może tym razem pomyślę nad jazdą w rajdach.