czwartek, styczeń 26, 2012

Nie tylko IE6 powinno pójść do piachu, każdy Internet Explorer powinien!!!!

Nienawidzę tych pacanów z Microsoftu!!!!

Tak spraprali kod IE, że nawet ich własne hacki w nim nie zawsze działają.

Jest sobie warunkowy tag:

<!--[if gte IE 9 ]>
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<![endif]-->
Który wg. fałszywej teorii głoszonej przez tych cholernych kłamców z Microsoftu powinien powodować, że IE9 i wyższe zinterpretują tag w środku........
a dupa, jak przeglądarka uzna, że ona będzie pracowała w IE 9 Compact View bo ma taki kaprys to olewa te tagi, bo przecież jej nie obowiązują.....
Kretynka "myśli", że jest IE7.

To cholerstwo kłamie też w User-Agent, np. te dwa User-Agent niżej są z odpowiednio IE10 i IE9:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; MS-RTC LM 8)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; MS-RTC LM 8)

A w każdym twierdzi, że jest MSIE 7.0.... jedynie po numerku Trident'a można zgadywać co to do cholery jest.




Podobne postybeta
Czy ustalanie pozycji w Androidzie może kosztować?
Jak "okradłem" Google Readera ;-)
Pokręcony IE
Naprawdę nienawidzę...
Magia CallBacka w JavaScript :-) - czyli jak przekazać dodatkowy parametr

poniedziałek, styczeń 09, 2012

Tramwaj uczy i wychowuje ;-)

Wracając dziś tramwajem zobaczyłem w tramwajowym TV informację, że tramwaj potrzebuje 20 metrów by wyhamować z prędkości 30 km/h...
Od razu się zacząłem zastanawiać czy to prawda ;-)
Wzór który to opisuje będzie mniej więcej taki:
m*g*f*l = m*V^2/2

Gdzie mg to siła nacisku, f to współczynnik tarcia kół o szyny (w poślizgu), l to droga (=20 m), razem lewa strona to "siła tarcia" razy przesunięcie, czyli energia która pójdzie w trakcie hamowania na gwizd i ciepło. Prawa strona to energia kinetyczna.
Wyszło mi więc, że:
f = V^2/(2*g*l)

Gdzie g to przyciąganie ziemskie, które dla mnie zawsze jest 9.81 m/s^2 (tak mi utkwiło we łbie i siedzi)... to daje:
f = 8.33^2/(2*9.81*20)=0.177

Sprawdziłem w Internecie i rzeczywiście tarcie stali o stal w poślizgu to coś między 0.15 a 0.25.
Znaczy, nie kłamali ;-)

Jak sobie to podstawiłem do wzoru coby sprawdzić ile musiałby hamować "mój" wymarzony pociąg, który byłby mnie w stanie do Krakowa przywieźć w mniej niż 15 minut (jadąc po drodze 800 km/h) to okazało się, że byłoby to 14.22 km ;-)
Co stanowi pewien problem, bo ja zakładałem, że hamowałby w ciągu 1 minut na odcinku 6-7 km ;-) co oznacza, że tak naprawdę "mój" pociąg musiałby mieć jakieś aktywne hamowanie, nie wiem spadochrony, czy silniki odrzutowe które odpalałyby w przeciwnym kierunku ;-)
No chyba, że byłby magnetyczny....

No i po co oni takie rzeczy piszą w tramwajach? ;-)


[Go to original post on Google+]




Podobne postybeta
A gdyby tak...
Metoda na idiotę, czyli sposób pokonywania autostrady we mgle
Autostrada dowiezie mnie do domu dopiero za 2 lata.... part 2
Co ssie w G1?
Sprawdzanie zdjęcia ;-)

niedziela, styczeń 08, 2012

Trick w Java'ie ;-) czyli double brace initialization

Na HackeNews pojawił się "news" o ukrytych ficzerach Java'y, który prowadzi do StackOverflow (http://stackoverflow.com/questions/15496/hidden-features-of-java).
Najbardziej mi się poodoba Double Brace Initialization ;-)
Najpierw nie rozumiałem o co chodzi, ale jak spojrzałem dokładniej na kod to jest to banalnie proste i genialne ;-)
Np. gdy chcemy stworzyć statyczną listę z 2 wartościami, to zwykle robi się to tak (pomińmy to co trzeba zrobić w większości przypadków czyli użycie niemodyfikowalnej listy):

public final static List<String> YES_NO = new ArrayList<String>();
static {
YES_NO.add("Yes");
YES_NO.add("No");
}


Z użyciem double brace initlialization będzie:

public final static List<String> YES_NO = new ArrayList<String>() {{
add("Yes");
add("No");
}}

;-)
A co robi ten kod? ;-)
Po prostu deklarujemy tam klasę anonimową i dodajemy jej sekcję, która będzie wywoływana w trakcie konstrukcji instancji :-) [jeszcze przed konstruktorem domyślnym :-)]
Człowieka gdy na to patrzy czaruje to {{ i }}, ale tak naprawdę ten kod można zobaczyć tak:

public final static List<String> YES_NO = new ArrayList<String>() {
{
add("Yes");
add("No");
}
}

I wtedy nagle staje się czytelniejszy :-)

Chytre to :-)



Podobne postybeta
Giń konstruktorze! Giń! ;-)
Modale dobre - confirm dla Androida :-)
Klasa statyczna - ki diabeł?;-)
AST w akcji - zamieniamy źrodło w Java'ie w "rysunek" ;-)
Podobne posty i zachwyty nad nimi... ;-) i trochę o Java 7

środa, styczeń 04, 2012

Wyłudzacze ;-)

Android Market, Kindle Store i masa innych on-linowych miejsc kusi człowieka do wydawania niewielkich kwot, a to 0.99 USD, a to 3.99 USD.
Tanio to człowiek klika... tylko problem jak za często ;-)
Przydałoby się narzędzie, które siedziałoby w przeglądarce i zliczało ile w taki sposób wydaliśmy ;-)
Pokazałoby mi, że w ciągu ostatnich tygodni na 4 książki w Kindle Store, które kupowałem w ramach różnych promocji wydałem 25 PLN, a w Android Market 12.4 PLN.... Niby to nie jest dużo, ale jak człowiek się zapomni to łatwo dojść do 100 PLN czy nawet więcej w miesiącu na "dobra elektroniczne", które w wielu przypadkach nie są do czegokolwiek potrzebne....

Teraz "tylko" trzeba wymyślić jak to śledzić ;-)


[Go to original post on Google+]




Podobne postybeta
eBook - jak na razie się nie opłaca
Szaleństwo zakupów w Android Market ;-)
Potęga ebooka ;-)
Niezdecydowany Amazon ;-)
Wehikuł Czasu

niedziela, styczeń 01, 2012

A gdyby tak...

Straszliwie nie chce mi się jechać do Krakowa.....
Nie mogłoby być tramwaju, który by mnie tam w 15 minut zawiózł? ;-)

Jakby się zastanowić to by mógł być ;-) może nie tramwaj, a pociąg.
Odległość autostradą to 150 km, znaczy, załóżmy, że dałoby się zbudować taką linię kolejową. Wtedy puszczając na niej pociągi jadące z prędkością 300 km na godzinę przy jeździe bez przystanków można zredukować podróż do 30 minut.... nadal nie 15 minut...
Ale są pociągi, którym udało się osiągnąć 500 km/h... czyli znaczy, że jeszcze miejsce jest... najszybciej poruszający się pojazd na lądzie miał prędkość ponad 1000 km/h ;-)
Czyli mamy jeszcze trochę zapasu ;-) Przy powiedzmy 800 km/h to by było 11 minut i 15 sekund podróży, ale raczej nikt nie startuje od 0 do 800 km/h w nieskończenie małym czasie, stąd zakładając przyśpieszanie i hamowanie trwające 1 minutę (czyli potrzeba by było 0.4 g, co by pewnie znaczyło że byłyby tylko miejsca siedzące i to ustawione zawsze plecami do kierunku przyśpieszenia) to mamy 12 minut i ciut ponad 15 sekund...
Znaczy da się!

Teraz mi tylko proszę takie coś zbudować ;-)


[Go to original post on Google+]




Podobne postybeta
Tramwaj uczy i wychowuje ;-)
O! Pociąg ;-)
Przyśpieszanie backtrackingu
Tarcza
Myślenie = Szybka jazda

sobota, grudzień 31, 2011

Koszmarek - Small Basic ;-)

Nie wiedziałem, że Microsoft ma "zabawkowe" IDE inne niż VisualStudio ;-) [tak, nie lubię VisualStudio ;-)]
Dostępna jest tutaj http://goo.gl/omUB

Można sobie pisać w prostym Basicu, nie jest to powalający język, ale wydaje się być dość prosty :-)
Z tego co rozumiem pomyślany jest jako zabawka dla dzieci :-)

Nie jest to demon prędkości ;-)
Mój testowy programik, którym katuję wszystkie języki (całkowanie numeryczne od -10 do 10 funkcji e(-x2) wygląda tak:



time1 = Clock.ElapsedMilliseconds
N=300
For i=0 To N
sum = 0.0
count = 10000
For a=0 To count
x = a/count*20.0-10.0
sum=sum+Math.Power(2.718,-x*x)*(20.0/count)
EndFor
EndFor
time2 = Clock.ElapsedMilliseconds
TextWindow.WriteLine((time2-time1)/N)

i na moim laptopie potrzebuje ponad 37 ms na 1 pełne wykonanie pętli po a :-)
C++ (też MS) chyba zszedł poniżej 1 ms ;-) JavaScript w FF potrzebuje mniej niż 1.5 ms, a w Chrome około 1.7 ms.
Czyli Small Basic wolny jest :-)




Podobne postybeta
Całkujący Dart ;-)
Plus dla Scala, minus dla Groovy ;-)
C# i Java okazały się szybsza od Pythona :-) [było Java okazała się szybsza od C# i Pythona]
Poskramianie Darta ;-)
A JavaScript i tak szybszy ;-)

czwartek, grudzień 29, 2011

Browser2Browser, czyli prześlij stronę z przeglądarki do przeglądarki ;-)

Po jakichś 2 dniach walki udało mi się w końcu przenieść moją wtyczkę Chrome2Chrome (http://goo.gl/KyMl6) z Chrome do Firefoksa ;-)
Wersja dla Firefoksa zowie się Browser2Browser i jak na razie można ją pobrać z mojego serwera :-) spod tego adresu http://goo.gl/HGjYV :-)
Testowałem z Firefoksem 10.0 na Windows 7 i Firefoksem 8.0 na Ubuntu.
Działa :-)
O co w ogóle chodzi? Tu jest stary filmik pokazujący Chrome2Chrome w działaniu Chrome2Chrome demo :-)
Browser2Browser działa tak samo, z tym, że tutaj można przesyłać stronę także z i do Firefoksa :-)

Konfiguracja polega na wprowadzeniu nazwy konta w Google (może być GMAIL, może być też Google Apps, byle w domenie dostępne było Google Docs), hasła i wymyśleniu nazwy komputera. Robimy "set computer name" i już :-)
To samo robimy na innym komputerze/innej przeglądarce z Chrome2Chrome lub Browser2Browser (tutaj innej nazwy komputera używamy ;-)) i już :-)
Od teraz powinno się dać wysyłać strony przez wybranie nazwy komputera z selektora po Send To :-)

[minus pisania na Google+, nie mogę obrazków wklejać, minus mojej przenoszarki do Bloggera jest też taki, że nie umiem zbytnio wkleić tam filmiku ;-)]

Nie wiem czy ktoś tego będzie poza mną używał, ale i tak jestem zadowolony :-)




Podobne postybeta
Głupi JetPack...
Chrome2Chrome - kto chce potestować? ;-)
Koszmarek - Small Basic ;-)
Naprawdę uwielbiam...
Jak oszczędzić na biletach w krakowskim MPK? ;-)

Naprawdę uwielbiam...

Naprawdę uwielbiam gdy przeglądarka, biblioteka, czy ogólnie jakieś oprogramowanie uważa, że wie lepiej czego mi trzeba...
Teraz mam tak, że Firefox wie lepiej ode mnie w jakim kodowaniu chcę wysłać coś przez XMLHttpRequest.
Ja mu każe po prostu by był to text/plain, a on dodaje charset=UTF-8... To próbuję go na siłę przekonać, że jednak powinno to być charset=ISO-8859-1, ale on wie lepiej.
Już nawet hacka używam z dopisaniem do tego co wstawiam do xhr.send(body) [czyli do body ;-)] właściwości body.xmlEncoding, ale to też ignoruje.
Chrome jest tu o wiele lepszy. Robi to co mu się każe.
Ale z głupim Firefoksem tak dobrze być nie może.... pewnie będę musiał teraz update dokumentów zaimplementować tak by działało z resumable upload.... a to są 2 requesty w miejsce jednego...
A wszystko przez to, że soft uważa, że wie lepiej.....


[Go to original post on Google+]




Podobne postybeta
BLIP API rozrabia, czyli czemu Blipuś był zszedł ;-)

Wiedza magiczna
Cytat ;-)
Pokręcony IE

środa, grudzień 28, 2011

Jak oszczędzić na biletach w krakowskim MPK? ;-)

Jeśli dobrze rozumiem kawałek z regulaminu zakupów biletów okresowych MPK w Krakowie:
Cena biletu okresowego nabywanego na okres dłuższy niż 1 miesiąc jest równa wielokrotności ceny biletu podstawowego miesięcznego z rabatem 1% za każdy następny miesiąc w zaokrągleniu do 10 gr (cena z końcówką 5 gr i poniżej zaokrąglana jest w dół, a cena z końcówką powyżej 5 gr zaokrąglana jest w górę).
Dostępny tutaj http://goo.gl/6x0es ;-)

To jeśli kupi się bilet na ponad 100 miesięcy to cena kolejnych ponad 100 miesięcy powinna być już równa 0 PLN :-)

Idziemy więc do okienka z odliczoną kwotą 4746.80 PLN (niech będzie 4747 PLN) i prosimy o bilet sieciowy na 1000 miesięcy :-)
Przez kolejne ponad 83 lata mamy spokój z kupowaniem biletów ;-)

Zainwestowawszy 7675.8 PLN możemy kupić bilet na 1000 miesięcy, który będzie sieciowy i na okaziciela... wtedy może warto kupić nawet taki na 10000 miesięcy... wtedy nasz potomek czy potomka musiałaby kupić kolejny bilet w okolicach kwietnia 2845 roku... zapewne wtedy można by na takiej sieciówce jeździć też metrem, albo publicznymi teleportami ;-)

Choć jak spojrzeć na ten punkt, który zacytowałem to możliwe, że wystarczyłoby kupić bilet na jakieś 200 miesięcy (ponad 16 lat) by dostać go za 0 złotych ;-)
W końcu nie ma mowy o tym, że ten rabat ogranicza się po 100 miesiącach ;-)

No chyba, że źle go zrozumiałem....

Btw. dobrze by było w końcu kupić sobie bilet miesięczny ;-)


[Go to original post on Google+]




Podobne postybeta
Kupić bilet czy nie kupić? Oto jest pytanie....
Zlikwidowali mi tramwaj :-(
Lubię tramwaje :-)
O szukaniu dziury w całym [układzie ;-)]
Myjnia

Głupi JetPack...

OK, może nie głupi, ale wkurzający ;-)
JetPack to nowe SDK dla Firefoksa, które pozwala na pisanie "lekkich" rozszerzeń. Jest bardzo podobne do modelu, który dostępny jest w Chrome.
Problem tylko w tym słowie podobne....

Próbuję przenieść Chrome2Chrome do Firefoksa, gdzie zwać by się miało Browser2Browser ;-)
Robię to głównie dla siebie, bo akurat Chrome2Chrome czasem używam (dla przypomnienia to wtyczka do Chrome, która pozwala na przerzucanie stron między różnymi instancjami Chrome), a że w pracowym laptopie mam tylko 4GB RAM (OK, w prywatnym też ;-)), a muszę tam jeszcze różny dziwny soft odpalać to Chrome zaczął mi przeszkadzać i rozważam tam powrót do Firefoksa.... ale na razie nie jest to pełny powrót z braku Chrome2Chrome [i BTR, ale to inna piosenka].
No to próbuję przenieść wtyczkę do JetPacka..... ale są problemy ;-)
Np. komunikacja między elementami rozszerzenia. W Chrome wszystkie elementy rozszerzenia maja dostęp do wspólnej kolejki komunikatów co powoduje, że mogą się między sobą komunikować. Do tego wszystkie elementy mają dostęp do localStorage.... w JetPacku dla Firefoksa tak fajnie nie jest.
Po pierwsze jak na razie nie znalazłem mechanizmu do swobodnej wymiany komunikatów.... tzn. mogę z panelu wysłać message do głównego skryptu, ale w drugą stronę jest to chyba niemożliwe...
Po drugie nie mogę korzystać z localStorage, bo jedne elementy go widzą, a inne nie....
Po trzecie dokumentacja od Mozilla'i jest gorsza niż ta od Google. Próbowałem np. używać self.postMessage(message) z pliku HTML używanego w panelu i co? I się nie da, jakiś dziwny wyjątek leci, okazuje się, że można tego używać, ale tylko w taki sposób, że kod to robiący będzie w skrypcie podpiętym do panelu... nie wydaje mi się jednak by to gdzieś było opisane...

Jest też plus, czyli narzędzie on-line do tworzenia dodatków. To jest fajne...

Nie mogli "ukraść" od Google ich modelu? Co by im to szkodziło?

Btw. utwierdzam się, że coraz bliżej mi mistrzostwa w tym co robię najlepiej ;-) czyli w narzekaniu ;p


[Go to original post on Google+]




Podobne postybeta

Chrome OS, Chrome2Chrome i w ogóle Chrome ;-)
Prezentacja Chrome/Chrome OS
Tak sobie, XMLHttpRequest mnie nie lubi ;-)
Python for Android vs. AppInventor - 2:0 ;-)