English
24mar/12

Zakup nowego iPada w dniu premiery…

W Ameryce przed premierą nowych produktów od Apple już na parę dni przed tworzą się kolejki. Czy w Polsce jest podobnie? Czy da się kupić nowego iPada bez problemu w dniu premiery?

Premiera nowego iPada w Polsce miała miejsce 23 marca (choć tylko w Warszawie można było go nabyć po północy). Tego dnia też udałem się do salonu iSpot w centrum Wrocławia, około godziny 11:00. W sklepie nie było nikogo oprócz trzech sprzedawców, z dostępnością wybranego modelu również nie było problemu. Przez cały zakup, który trwał prawie 15 minut (faktura VAT), nikt inny nawet nie wszedł do salonu.

Reasumując - póki co w Polsce nie ma potrzeby rozbijania namiotów na tydzień przed by nabyć produkty Apple.

PS. Tego dnia iPad dostępny był też w innej dużej sieci sklepów z elektroniką "nie dla idiotów".

5mar/12

PHP – unset_all();

Aby usunąć wszystkie zdefiniowane w PHP zmienne możemy skorzystać z poniższego kodu:

foreach (get_defined_vars() as $var => $varval) { eval("unset(\$$var);"); }; unset($var); unset($varval);

Uwaga, ten kod usuwa wszystkie zmienne z aktualnego zakresu {...}, czyli aby odnieść pożądany efekt należy go wywołać na poziomie skryptu, a nie w funkcji (dlatego też nie stworzyłem faktycznej funkcji o nazwie unset_all();).

Sprawdzić czy działa możemy w taki oto sposób:

print_r( get_defined_vars() );
10lut/12

Publiczny adres IP przy użyciu ping

Istnieje co najmniej kilka sposobów na wykrycie publicznego, zewnętrznego adresu IP. Można wykorzystać serwis typu whatismyip.com, można sczytać tę informację z panelu konfiguracyjnego routera (jeśli mamy do niego dostęp), ale można też wykorzystać do tego polecenie ping. Ta metoda jest najszybsza (średnio 25-75ms) i najbardziej uniwersalna (działa zarówno w Linuxie jak i Windowsie).

Aby to uczynić musimy wyświetlić fragment trasy pakietu i odczytać odpowiednie wartości (adres IP w czerwonej ramce).

W systemie Windows:

ping -r 1 onet.pl -n 1

W systemie Linuxowym (testowano na Debianie):

ping -n -R -c 1 onet.pl

Stworzyłem też skrypt w PHP parsujący wyniki tych poleceń i wyświetlający sam adres IP. Kod źródłowy poniżej:

14sty/12

ZTE ZXV10 W300 – reconnect ADSL (HTTP request)

Ten modem oferowany kiedyś przez TPSA ma jedną dziwną cechę - z oprogramowania wycięto opcję reconnectu ADSL. Wciąż jednak istnieją metody wywołania ponownego połączenia (na przykład by zmienić adres IP).

Aby do zrobić trzeba przesłać do routera dwa żądania POST (disconnect i connect):

POST /Forms/status_deviceinfo_1 HTTP/1.1
Host: 192.168.1.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Connection: close
Referer: http://192.168.1.1/status/status_deviceinfo.htm
Authorization: Basic ***************
Content-Type: application/x-www-form-urlencoded
Content-Length: 62

DvInfo_PVC=PVC0&PPPoEConn=Disconnect&PVC_or_Renew_or_Release=0

i by ponownie połączyć:

POST /Forms/status_deviceinfo_1 HTTP/1.1
Host: 192.168.1.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Connection: close
Referer: http://192.168.1.1/status/status_deviceinfo.htm
Authorization: Basic ***************
Content-Type: application/x-www-form-urlencoded
Content-Length: 59

DvInfo_PVC=PVC0&PPPoEConn=Connect&PVC_or_Renew_or_Release=0

Legenda:
192.168.1.1 - adres routera
*************** - nasze zaszyfrowane hasło do routera (więcej tutaj)
W php: base64_encode("user:pass")

Zdaję sobie sprawę z tego, że ten wpis jest w pewien sposób zaawansowany i nieprzydatny dla "zwykłych" użytkowników Internetu, ale są pewnie i tacy, którzy szukają informacji o tym co wysłać do modemu (jak było w moim przypadku).

31gru/11

Najlepsze z 2011 roku

Tradycyjnie przedstawiam najlepsze, według mnie, filmy, gry, książki, seriale i najważniejsze wydarzenia 2011 roku.

Filmy

Najlepszym filmem jaki widziałem w 2011 roku był "Drive" (nie mylić z "Drive Angry"). Na Drive poszedłem do kina zupełnie przypadkowo, nie mając zielonego pojęcia o czym jest ten film (raz na parę lat zdarza się mi taka spontaniczna wizyta w kinie). Spodziewałem się jakiegoś zabijacza czasu w stylu "Fast & Furious", ale już pierwsza scena nietypowo przedstawionej ucieczki przed policją dała nadzieję na coś lepszego i nie zawiodłem się. Akcja filmu jest dość powolna, rozkręca się dopiero w połowie. Obraz zaskakuje też rzucającą się w oczy małą ilość dialogów. Film powinien spodobać się fanom Breaking Bad (z tym serialem mi się skojarzył), tym bardziej, że zrobił go samozwańczy "największy fan" tego serialu. Wyróżnienie wędruje dla "Source Code", za dość oryginalny pomysł i dobrą realizację.

Gry

Jeszcze nigdy chyba nie miałem tak prostego zadania jak w tym roku. Zdecydowanie najlepszą grą 2011 roku jest "Deus Ex: Human Revolution". Nie tylko tego roku, ale już dzisiaj jak dla mnie to pierwsza trójka gier wszech czasów (obok oryginalnego Deus Ex). Zdaję sobie sprawę, że to gra nie dla każdego, nie dla "graczy niedzielnych". Cała masa hardcore'owych rozwiązań jak chociażby wpisywanie kodów do drzwi "z ręki" musi być nie do ugryzienia dla większości graczy. Ale to właśnie takie elementy dają poczucie niesamowitej swobody (możesz znaleźć gdzieś kod do drzwi albo wpisywać po kolei 0001, 0002...). W tej części udało się przywrócić wszystko to co najlepsze z oryginału i dodać do tego całą masę usprawnień w tym nowy, świetny cover system (chyba najlepszy w historii gier). Wielkie brawa dla Eidos Montreal, zmierzyli się z legendą gry kultowej i nie zawiedli!

2gru/11

Delphi XE2 i SQLite 3.7.9 (najnowszy)

Przedstawiam sposób jak korzystać z najnowszego SQLite 3.7.9 z listopada 2011 w Delphi XE2.

Na początek potrzebujemy bibliotekę sqlite3.dll ("DLL for the SQLite library version 3.7.9") oraz plik interfejsu do DLLa dla Delphi (moja lekko zmodyfikowana wersja oparta o tę autorstwa Tima Andersona).

Na potrzeby przykładu utworzyłem bazę z jedną tabelką item składającą się z dwóch kolumn: id_item i name.

Kod otwierający plik z bazą danych wygląda tak (nazwa pliku to plik.sqlite):

var DBName: string;
    DBHandle: pointer;  
    fn: UTF8String;
...
begin
  DBName := 'plik.sqlite'; //to moze byc oczywiscie gdzie indziej
  fn := UTF8Encode(DBName);

  if sqlite3_open(PAnsiChar(fn), DBHandle) <> 0 then begin
      ShowMessage('Nie udalo sie otworzyc bazy danych: '+DBName);
      exit;
  end;

end;

Dodanie elementu (operacja INSERT) wygląda tak (musimy mieć już otwarte połączenie z DB i zapisane w zmiennej o nazwie DBhandle):

11lis/112

FIFA 12 – uciekający zawodnicy

Dzisiaj będzie bardziej "rozrywkowo". Post dotyczy gry FIFA 12. Gram w trybie kariery, pierwszy sezon MU, pierwsze zimowe okienko transferowe, a tu z nienacka taka wiadomość od Rooney'a: "...although the timing is bad I need a change of scenery. I'd like to move immediately". Dzień wcześniej status zawodnika to "very happy", jest liderem strzelców w lidze, ma wysoką średnią ocen.

Gdy pojawi się taka wiadomość nic nie da się już zrobić (!). Zawodnik odejdzie. Jeśli nie Ty, Zarząd sprzeda go za Ciebie i to pewnie na parę godzin przed końcem okienka transferowego. To oczywiście niedorzeczne. Uważam to za poważny BUG w grze. Jak zatrzymać uciekających zawodników w FIFA 12? Odpowiedź poniżej.

24paź/11

Jak kupować muzykę MP3 z Amazon w Polsce?

Amazon sprzedaje pliki MP3 od dawna, ale w Polsce "oczywiście" oficjalnie tego nie czyni (za co podziękować można zapewne ZAiKS i ZPAV). Gdy spróbujemy to zrobić Amazon sprawdza IP i wyświetla komunikat, że nie przyjmie twoich pieniędzy za legalną muzykę, bo jesteś z Polski. Dyskryminacja...

Zanim przejdziemy do rzeczy, ustalimy coś innego - jak będziemy płacić. Do wyboru są:
- Karta płatnicza
- Kupno Gift Cards (na Allegro wystarczy wpisać "amazon gift card")
Polecam założenie wirtualnej Karty Internetowej WBK (kartainternetowa.pl), to taka wirtualna karta płatnicza, którą można doładować szybkim przelewem przed płatnością odpowiednią kwotą, dzięki czemu nawet gdyby ktoś nam ukradł dane nie stracimy więcej niż kwotę, którą doładowaliśmy na tą kartę (co prawda doładowanie kosztuje 1 zł, no ale to cena bezpieczeństwa). Piszę o tym, gdyż używać będziemy obcych serwerów.

Ja kupowałem muzykę z Amazon.co.uk (za dwie całe płyty zapłaciłem 10 funtów - 55 zł). Aby to uczynić musimy znaleźć sobie proxy z UK, albo kupić usługę VPN z adresem IP z UK (bezpieczniejsza metoda). Tu można znaleźć proxy. Nie będę tutaj opisywał jak skonfigurować proxy, bo to można znaleźć w google (podobnie z VPN).

13paź/11

Przerwa wakacyjna

Jak widać, nie za wiele tu ostatnio napisałem. Nazwijmy to (zasłużoną) przerwą wakacyjną. Od teraz postaram się tworzyć więcej :)

PEACE

Zakres tematyczny: Ogłoszenia Brak komentarzy
21sie/112

Sterowniki USB MIDI do CASIO LK-200s Windows 7 (x64)

Jak to zwykle bywa z 64-bitowymi systemami Windows, starszych sterowników oficjalnie brak. Na szczęście grupie paru osób udało się przerobić sterowniki od ROLANDa, tak aby działały z keyboardami CASIO.

Posiadam model LK-200s i te poniższe sterowniki współpracują z nimi tak jak należy. Najprawdopodobniej działają też z innymi modelami gdyż na stronie firmy są tylko jedne sterowniki USB MIDI (tylko 32-bitowe), więc można chyba założyć, że są one do większej ilości modeli (to i jeszcze plik ze sterownikiem ma w nazwie model WK-110 ;) ).

Link: CASIO LK-200s Windows 7 x64 USB MIDI

Przy instalacji oczywiście pojawia się komunikat, że to niepodpisane sterowniki itp. należy zignorować wszelkie ostrzeżenia.

PS. W pliku ! README !.txt jest napisane, aby zmienić Hardware ID w pliku .INF. Ja tego nie uczyniłem, a keyboard działa prawidłowo (może dla mojego modelu nie trzeba).