Jeśli klikając na poniższy link

widzisz informację o błędzie, to najprawdopodobniej oznacza, że Twoja przeglądarka nie wspiera IDN. Oznacza to, że nie zobaczysz stron, które mają polskie (bądź inne narodowe) znaki w swojej nazwie.

Z IDN aktywnie mam do czynienia dopiero od kilku dni (rejestracja domen), ale już zetknąłem się z dwoma przypadkami, kiedy IDN w nowoczesnych aplikacjach nie było wspierane. Jednym z tych programów była przeglądarka www na Google Android (HTC Magic, Android 1.6), a druga to Google Analytics. W pierwszej nie można otworzyć strony, która zawiera znaki narodowe, a w drugiej nie można strony dopisać do monitorowanych stron. Jak na Google, firmy która dba o standardy to bardzo kiepski wynik.

Jeśli chcesz pomóc w szerzeniu standardów wśród producentów przeglądarek i wydaje Ci się, że Twoja przeglądarka powinna mieć wsparcie dla IDN napisz w komentarzu nazwę i wersję swojego oprogramowania. Jeśli zetknąłeś się z aplikacją, która uznaje polskie znaki w nazwach domen za niepoprawne, napisz co to za aplikacja i podaj do niej URL (jeśli jest to aplikacja webowa).

Używam Windows 7 od grudnia, od momentu upublicznienia wersji beta. Mam ten system zainstalowany w pracy i w domu i korzystam z niego na przemian z Windows Vista oraz Windows Server 2008 Ent x64.

Jest jednak coś co bardzo pozytywnie mnie zaskoczyło, co może nie wynika bezpośrednio z samego systemu operacyjnego, ale z tego w jaki sposób Microsoft pracuje nad nową wersją systemu.

Jak wiecie, każde okienko systemowe posiada w prawym górnym rogu link “Send Feedback“. Link ten otwiera nowe okienko, gdzie można napisać co nam się nie podoba albo co nie działa poprawnie.

Ja zgłosiłem 4 bugi. Jeden został już rozwiązany i poprawka wyjdzie wraz z RC, a trzy pozostałe są badane. Ale w jaki sposób to zostało zrobione odegrało niebagatelną rolę. Dostałem informacje o rozwiązaniu problemu, bądź prośby o udzielenie dodatkowych wyjaśnień przesłane bezpośrednio od programistów z grupy Windows. Mogłem wymienić opinie bezpośrednio z osobami odpowiedzialnymi za moduł, w którym wykryłem błąd.

A Wy, ile błędów znaleźliście w wersji beta?

Bug w Virtual Server 2005 R2

16 Kwiecień 2008

Pisałem o tym problemie dwa razy – najpierw prosząc o odzew od innych osób, które używają VS2005, a drugi raz opisując dokładnie problem.

Kilka tygodni temu dostałem potwierdzenie, że jest to defekt w kodzie serwera. Zespół VS przetestował to w swoim labie i odkryli, że problem dotyczy wszystkich kompilacji i wszystkich platform (x86, x64 i ia64). Kolejną nowością jest, że problem dotyczy sterowników dla tylko niektórych kontrolerów SCSI. Dla kontrolera Adaptec AIC-7870 PCI SCSI problemu nie zaobserwowano.

Problem nie jest poważny, powiedziałbym wręcz kosmetyczny. Dla kochających się w statystykach może być jednak ciężki do przełknięcia.

Przy okazji, uaktualnię inne notki dotyczące bugów, o których pisałem.

Pisałem kiedyś o błędzie, jaki znalazłem na VS2005. Problem dotyczy statystyk dla dysków wirtualnych w konfiguracji SCSI. Po kontakcie z grupą produktową poprosili mnie o wykonanie kilku testów.

Udało mi się zawęzić problem do dysków VHD działających pod SCSI z dodatkami do serwera wirtualnego 13.813 (wersja 13.814 oznacza, że zainstalowana jest poprawka opisana w KB943666)

Jeśli ktoś z Was ma zainstalowane dodatki w tej wersji i korzysta z dysków wirtualnych podłączonych jako SCSI, proszę sprawdzić jak zachowują się statystyki I/O dysków. Gdyby disk I/O read wyszedł ponad 17MB w takiej konfiguracji, bardzo proszę o kontakt.

Jestem na etapie konsultacji z grupą produktową VS2005 dość dziwnego zachowania VS dot. odczytu liczników I/O dla dysków wirtualnych. Jeden z liczników, konkretnie read, ma bardzo niską wartość niezależnie od wielkości odczytu z dysku wirtualnego. Wykonywałem wiele testów, gdzie wartości disk I/O written, network I/O odpowiednio wzrastały przy kopiowaniu dużych plików z i na maszynę wirtualną, a wartość read dla dysku pozostawała niezmieniona.

Oto przykład dla jednej z moich maszyn wirtualnych:

Jeśli ktoś spotkał się z podobnym zachowaniem, bardzo proszę o komentarz lub kontakt z informacjami dot. wersji i specyfikacji hosta i gościa.

W poszukiwaniu błędu

28 Listopad 2007

Pewnego chłodnego jesiennego dnia zdarzyło mi się doświadczyć bardzo niemiłej niespodzianki ze strony nowo zakupionego komputera. Był to świeży, jeszcze ciepły komputer Dell Optiplex 740, wprost z Limerick, na którym zainstalowałem Windows Server 2003 R2 EE z zamiarem wykorzystania pudełka jako hosta do wirtualnych maszyn działających na Virtual Server 2005 R2.

Instalacja systemu, konfiguracja, później instalacja VS przebiegły bez zakłóceń. Dopiero, gdy zacząłem instalować pierwszego gościa na serwerze wirtualnym, mój komputer znieruchomiał. Nie reagował na żadne klawisze, myszka zastygła bez ruchu tam gdzie ją zostawiłem, tzw. stan zamrożenia (freeze).

Powtórzyłem więc operację w celu otrzymania chociaż BSOD (Blue Screen Of Death, czyli po polsku niebieski ekran). Znów ta sama reakcja. Powtórzyłem próbę jeszcze kilka razy wciąż bez spodziewanego niebieskiego ekranu błędu. Zacząłem szukać po Intra- i Internecie materiałów na podstawie których mógłbym zlokalizować błąd. Niestety rozrzut tematyki był na tyle duży, że aż nieprzydatny.

Eliminując z łamigłówki poszczególne klocki układanki postanowiłem zainstalować gościa na Virtual PC 2007. Efekt był dokładnie ten sam – zamrożenie systemu. Wypadło jeszcze kilka innych czynników, łącznie ze sprzętem – klawiatura, myszka, inne urządzenia USB; wyeliminowanie systemu operacyjnego już nie było takie proste.

Zainstalowałem Windows Vista Enterprise i Virtual PC 2007. Za pierwszym razem efekt był podobny do tego otrzymanego na Windows Server 2003, ale już za drugim podejściem dostałem to, czego szukałem – BSOD.

Oto wycinek z windbg:

BugCheck 101, {61, 0, 8a4c7120, 1}
PEB is paged out (Peb.Ldr = 7ffd300c).  Type “.hh dbgerr001″ for details
PEB is paged out (Peb.Ldr = 7ffd300c).  Type “.hh dbgerr001″ for details
Probably caused by : ntkrpamp.exe ( nt!KeFlushProcessWriteBuffers+5f )
Followup: MachineOwner

Dalsza analiza z użyciem !analyze -v pokazała mi już nieco więcej szczegółów:

CLOCK_WATCHDOG_TIMEOUT (101)
An expected clock interrupt was not received on a secondary processor in an
MP system within the allocated interval. This indicates that the specified
processor is hung and not processing interrupts.
Arguments:
Arg1: 00000061, Clock interrupt time out interval in nominal clock ticks.
Arg2: 00000000, 0.
Arg3: 8a4c7120, The PRCB address of the hung processor.
Arg4: 00000001, 0.

I dalej:

PEB is paged out (Peb.Ldr = 7ffd300c).  Type “.hh dbgerr001″ for details
PEB is paged out (Peb.Ldr = 7ffd300c).  Type “.hh dbgerr001″ for details
DEFAULT_BUCKET_ID:  VISTA_DRIVER_FAULT
BUGCHECK_STR:  0×101
PROCESS_NAME:  SearchProtocolH
CURRENT_IRQL:  1c
LAST_CONTROL_TRANSFER:  from 81828448 to 818d85c9

STACK_TEXT:  
[cut] nt!KeBugCheckEx+0×1e
[cut] nt!KeUpdateRunTime+0xd4
[cut] nt!KeUpdateSystemTime+0xed
[cut] nt!KeFlushProcessWriteBuffers+0×5f
[cut] nt!KeSetPriorityAndQuantumProcess+0×6a
[cut] nt!PsSetProcessPriorityByClass+0×20
[cut] nt!NtSetInformationProcess+0×219
[cut] nt!KiFastCallEntry+0×12a
WARNING: Frame IP not in any known module. Following frames may be wrong. 
[cut]

STACK_COMMAND:  kb
FOLLOWUP_IP:
nt!KeFlushProcessWriteBuffers+5f
81811c63 8b08            mov     ecx,dword ptr [eax]
SYMBOL_STACK_INDEX:  3
SYMBOL_NAME:  nt!KeFlushProcessWriteBuffers+5f
FOLLOWUP_NAME:  MachineOwner
MODULE_NAME: nt
IMAGE_NAME:  ntkrpamp.exe
DEBUG_FLR_IMAGE_TIMESTAMP:  4549ae00
FAILURE_BUCKET_ID:  0×101_nt!KeFlushProcessWriteBuffers+5f

Pozwoliłem sobie powycinać co dłuższe kawałki z powyższego tesktu z windbg dla jasności obrazu.

Poszukałem co to takiego jest ten bugcheck 0×101: The specified processor is not processing interrupts. Typically, this occurs when the processor is nonresponsive or is deadlocked.

Procesor nie odpowiadał? Z uwagi na już drugi sprawdzany system operacyjny, wyglądało to dla mnie całkiem sprzętowo. Nie pierwszy i zapewne nie ostatni raz widziałem nowe komputery (serwery) z błędami sprzętowymi. Niestety nie miałem okazji sprawdzić tego zachownia na innych Optiplexach 740 z identyczną konfiguracją, ale postanowiłem szukać szczęścia na stronach pomocy technicznej Della, mojego poprzedniego pracodawcy.

Niespodziewanie okazało się, że istniała nowa wersja BIOSu, która uaktualniła wersję 1.1.8 do 1.2.2. Z samych cyferek widać, że to dość duży skok.

Zainstalowałem nową wersję BIOS’u i … jak ręką odjął. Na nowym komputerku już działają sobie dwie maszyny wirtualne radośnie komunikując się między sobą.

Nie po raz pierwszy byłem cierpliwy w poszukiwaniu błędu, choć tym razem moja cierpliwość była posunięta do granic. Niestety Dell nie precyzuje dokładnie w czym różniła się nowa wersja BIOS’u od pozostałych poza ulepszeniem kompatybilności z niektórymi urządzeniami USB i poprawnieniem zarządzania energią. Jeśli jednak to był problem z USB, to zastanawiające czemu błąd rodził się tylko podczas instalacji maszyn wirtualnych? Jeśli ktoś drążył ten temat głębiej, chętnie postiuduję materiał.

Błędy, błędy, błędy

25 Wrzesień 2007

Znowu o Excel 2007. Tym razem ze strony tych, którzy Excela już używają.

W komórce napisz poniższą formułę:

=850*77.1

(użyj przecinka lub kropki w zależności od Twoich ustawień regionalnych, Polska = przecinek, kraje anglosaskie kropka).

Jaki otrzymałeś rezultat? 100000? Jest to błąd Excela. Wartością oczekiwaną było 65535.

Inne: błąd w notatniku

Aktualizacja: 21/05/2008

Ten błąd został poprawniony w SP1 dla Office 2007

O tym jak bardzo należy uważać i dlaczego przed ostatecznym wypuszczeniem produktu do klienta trzeba wszystko sprawdzić 10 razy, przekonał się niecały miesiąc temu brytyjski oddział Microsoft.

Ich strona nie dość, że wyświetlała bardzo szczegółowe błędy serwera, łącznie z błędną składnią SQL, to w dodatku nie miała żadnej filtracji na parametrach przekazywanych w URL.

Na efekt nie trzeba było długo czekać. Haker o pseudonimie “rEmOtEr” zamienił stronę eventów brytyjskiego Microsoftu na taką, jaką uważał za stosowną. Prawdopodobnie nowa strona nie przypadła do gustu właścicielom serwisu, bo nie wisiała długo.

Szczegółowa lektura dostępna jest pod tym adresem.

Błędy, błędy i jeszcze raz błędy zaniechania, niedoszacowania i niedocenienia użytkowników Internetu powodują takie a nie inne efekty. SQL injection jest jedną z najpopularniejszych metod podmian stron (tzw. deface) i kradzieży danych. Jeśli w swoim procesie analizy zagrożeń serwisu www, który właśnie produkujesz, nie masz badania podatności na SQL injection, odwlecz premierę o tydzień albo dwa i przejrzyj dokładnie kod. Jeśli nie masz w ogóle podobnej analizy, zastanów się jeszcze raz nad sensem istnienia czegoś, co zostanie szybko zniszczone.

W procesie testowania serwisu ITCore.pl przypadło mi napisać scenariusz testowania dla wyszukiwarki jaka będzie zainstalowana na serwisie. Dość duży nacisk położyłem na wykorzystanie różnych potencjalnie niebezpiecznych z punktu widzenia serwisu akcji użytkownika, które mogłyby spowodować ciąg zdarzeń podobnych do tych, jakich doświadczył Microsoft UK.

Przykładowy scenariusz zakłada sprawdzenie wyników wyświetlania takiego zapytania:

‘ UNION SELECT name, type, id FROM sysobjects;–

Testy mam nadzieję zaczną się niedługo, będę miał okazję przekonać się samemu.

Mała niespodzianka: osoba, która jako pierwsza napisze w komentarzu do tego posta, jakiego wyniku nie chcielibyśmy zobaczyć po wykonaniu powyższego wyszukiwania na serwisie ITCore.pl oraz poda prosty kawałek kodu (VB, C#, SQL) pozwalający ustrzec się przed podobnymi sztuczkami użytkowników otrzyma ode mnie w prezencie nieużywaną, nieodpakowaną, świeżą i pachnącą grę na XBOX 360 pt. Forza Motorsport 2. Chętni?
Oczywiście liczą się tylko poprawne odpowiedzi.

Disclaimer: Konkurs organizowany jest przeze mnie, prywatną osobę i nie ma związku z Microsoft Polska sp. z o.o., Microsoft Ireland, Microsoft UK, XBOX czy serwisem ITCore.pl.

Ten, kto korzysta z facebook.com za serwerem cache (proxy), mógł sobie dzisiaj poczytać cudzą pocztę zupełnie za darmo i to nawet bez specjalnych dodatkowych zabiegów. Wystarczyło otworzyć pierwszą stronę by zamiast własnego adresu email spotkać adres kolegi/koleżanki z firmy. Ale nawet zalogowawszy się z własnym loginem i hasłem, otrzymywaliśmy cudze wiadomości i zupełnie obce profile.

Dzięki temu dowiedziałem się dzisiaj wielu ciekawych rzeczy o kolegach z UK czy nawet z Bliskiego Wschodu :) “Niestety” nie można było już zmieniać niektórych danych, cała zabawa była jakby mniej śmieszna… Za to wraz z kolejnymi odświeżeniami strony na ekranie można było poczytać emaile coraz to nowych osób.

Więcej szczegółow można przeczytać na TheRegister.co.uk: Facebook security glitch exposes user in-boxes.

Ciekawe, czy ma to związek z oskarżeniem Marka Zuckerberga, twórcy Facebook.com o kradzież pomysłu na stronę. Skojarzenie jakoś samo ciśnie się na język.

Apple łata Safari

14 Czerwiec 2007

W kilka dni po odkryciu poważnych dziur w bezpieczeństwie przeglądarki Safari 3.0 dla Windows, w wersji beta, Apple opublikował nową, podobno poprawioną wersję programu. Aktualizacja dostępna jest poprzez Apple Software Update albo ze strony Safari Download na Apple.com.

W międzyczasie firma z Cupertino w stanie Kalifornia informuje, że od momentu publikacji wersji beta zdążyło ją pobrać ponad 1 milion użytowników Windowsów! Oczywiście tą dziurawą wersję …

Analitycy wyprzedzają się w domysłach dlaczego Apple coraz bardziej wchodzi na rynek Windows ze swoimi aplikacjami. Stare przysłowie mawia, że skoro nie można wroga pokonać, to trzeba się z nim zaprzyjaźnić. I to chyba najbardziej pcha Jobsa na Windows – większy udział w rynku nie tylko na platformie sprzętowej (co powoli widać, szczególnie po porozumieniu z Intelem; iPod jak wiadomo dominuje w dziale odtwarzaczy MP3) ale i MacOS nie ma się znowu tak źle (Tiger’a używa 67% z 22 milionów użytkowników Maców, przynajmniej tak powiedział Jobs na WWDC), a teraz czas na przeglądarkę. Safari jest inne niż Firefox i IE. Działa na silniku KHTML (zapożyczonego z Konqueror’a), posiada własną metodę renderowania fontów (tak krytykowaną ostatnio przez wiele osób, podobnie tutaj) i podobno jest “ekstra szybki”. Większość z osób, które zainstalowały wersję beta nie zaobserwowały tego fenomenu…

Update

Test porównawczy Firefox, IE i Safari. Fajna lektura.