:]

Ciastka!

Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies. Możesz określić warunki przechowywania lub dostępu do plików cookies w Twojej przeglądarce.

Gorące dyskusje ostatnie 12h

  • avatar

    Pisałem sobie dzisiaj małego userscripta do Firefoksa. Jako storage'u użyłem IndexedDB, bo Web Storage się tutaj kompletnie nie nadawał. Kluczem w jednym ze store'ów była data. Standard na to pozwala, ale każde dodanie rekordu kończyło się niepowodzeniem ("Data provided to an operation does not meet requirements").
    Żeby sprawdzić kod na innych przeglądarkach utworzyłem na szybko snippet na jsbin, uruchomiłem, żeby sprawdzić i... brak błędu. Przypomniałem sobie, że userscripty są uruchamiane w sandboksie i pewnie w tym problem. Ale mam chwilę czasu.. to może...
    Zaciągnąłem źródła, ustawiłem symbol server Mozilli w Visual Studio, "attach to process" i możemy debuggować. Dotarłem do Key::EncodeJSValInternal i dalej zaczął się łańcuch zinline'owanych funkcji, których z włączonymi optymalizacjami nie da się sensownie debugować. No okej, Mozilla wypuszcza debug-buildy. Ściągam więc debug-build, uruchamiam i... nie odpalają się breakpointy. Nie załadowały się symbole. Bo ich nie ma - "jak ktoś chce to niech sobie skompiluje sam".
    No to buduję tego Firefoksa. Po 25 minutach (z wyłączonymi testami) dostaję debug build z wyłączonymi optymalizacjami. Odpalam jeszcze raz Visuala i przekopuję się dalej, po kilku minutach wszystko jasne.
    Funkcja, o której wspomniałem sprawdza czy podany klucz jest napisem, liczbą, tablicą albo datą. Robi to najpierw za pomocą JS_ObjectIsDate, a potem js_DateIsValid. Mój klucz przechodził pierwszy check, ale drugiego nie. Okazuje się, że gdy jesteśmy w sandboksie to wszystkie obiekty JavaScriptowe silnik wrapuje w ProxyObject. Ta pierwsza funkcja sprawdza typ przez ObjectClassIs, które robi na początku obj->is<ProxyObject>() i wyciąga owrapowany typ. Ta druga funkcja niestety tylko obj->is<DateObject>() i gdy jesteśmy w sandboksie zawsze dla ProxyObject będzie zwracać false.
    Wpadam na kanał programistów Mozilli, po krótkiej rozmowie z Borisem Zbarskim okazuje się z grubsza wiedzą o problemie (zgłoszony bug). Ale nie zanosi się chyba, żeby szybko to naprawili, bo trzeba przerobić prawie całe api od obiektów dat.
    No.. i zamiast napisać prosty userscript straciłem kilka godzin na debugowanie przeglądarki ;).
    #programowanie
    pokaż całość

    odpowiedzi (9)

  • avatar

    Skisłem dziś w pracy.
    Pracuję jako sprzedawca GSM, skup, sprzedaż itd.
    Klienci, którzy mi się trafili okazali się idealną definicją #januszebiznesu i to w 100%.

    Do rzeczy:
    Przychodzi do mnie dwójka - około 23 lat, góra 30. Zapytali, czemu Ace 4 mam tak tanio (549zł), potem coś popytali o galaxy S4 i poszli.

    Wrócili po jakimś czasie, po raz kolejny się przywitali, oficjalnie... kupili w punkcie obok galaxy young za 400zł (mimo, że u mnie był za 330zł).
    Zapytali się za ile mogą go u mnie sprzedać, powiedziałem, że skupię za 220zł... wyśmiali mnie i poszli.

    Wrócili po 10 minutach:
    - Dzień dobry, czy kupię u Pana pokrowiec na taki telefon? (i pokazuje tamten Young...)
    - Tak, gumowy na tył za 20zł.
    Kupili i sobie poszli.

    Wracają przed samym zamknięciem i to już mnie całkowicie rozwaliło:
    - Dobry wieczór, ile mogę dostać u Pana za używany galaxy young? Od nowości noszony w pokrowcu!

    #heheszki #truestory #coolstory #praca #gsm #fstabpraca #cebuladeals #bekazpodludzi
    pokaż całość

    odpowiedzi (8)

  • avatar

    Sessegnon, WBA 1 - 0 United #golgif #mecz

    GFY

    odpowiedzi (4)