27. února 2015

Relokace do USA

Je to již druhý měsíc co žiji v zahraničí a tak je nejvyšší čas napsat něco o tom jak probíhala samotná relokace, víza.

1. června 2011

Jak O2 nefunguje zahraniční konektivita

Při pokusu otevřít stránky apple.com ve večerních hodinách přes síť Telefonica O2 končím na nemožnosti spojit se se serverem.

$ ping -c 10 e3191.c.akamaiedge.net
PING e3191.c.akamaiedge.net (2.21.13.15): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
64 bytes from 2.21.13.15: icmp_seq=2 ttl=54 time=185.296 ms
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
Request timeout for icmp_seq 5
Request timeout for icmp_seq 6
Request timeout for icmp_seq 7
Request timeout for icmp_seq 8

--- e3191.c.akamaiedge.net ping statistics ---
10 packets transmitted, 1 packets received, 90.0% packet loss
round-trip min/avg/max/stddev = 185.296/185.296/185.296/0.000 ms


Čas změnit lokál, tedy internet providera. BTW, ve stejném čase při pokusu otevřít inkriminované stránky přes 3G od Vodafone vše v pohodě - tedy nebude to chyba na straně poskytovatele obsahu, ale ISP. Že by souvislost se spuštěním VDSL?

26. dubna 2010

Jak databázi nepřidávat práci

Procházel jsem log soubor databáze a díval jsem se na dlouho trvající SQL dotazy. Několik jsem jich našel a většinou se shodovaly v jedné drobnosti – přidávaly databázi zbytečnou práci:


....
t.datum + '30 days'::interval > now()
....


O co v tomto případě jde? Dejme sloupec datum typu TIMESTAMP, od informace uložené v tomto sloupci odečítáme interval 30 dnů. Tím jsme znemožnili využít index nad sloupcem datum a také pro každý řádek znovu vyhodnocujeme výraz now().


Jednoduchou změnou lze dotaz znatelně zrychlit a navíc mu umožníme použít index nad sloupcem datum:

...
t.datum > 'now'::timestamp - '30 days'::interval
...


Také 'now'::timestamp - '30 days'::interval je vyhodnoceno pouze jednou, není třeba znovu počítat pro každé porovnání.

21. ledna 2010

Záhadné ClassCastException

Až Vám bude java poskytovat podobně záhadné výjimky, zkontrolujte, že nemáte některé třídy natažené 2x (například 2x natažená knihovna, jednou v Aplikačním serveru, podruhé ve spouštěné aplikaci):


java.lang.ClassCastException: org.medoro.util.scheduler.ProcessScheduler cannot be cast to org.medoro.util.scheduler.ProcessScheduler
at org.medoro.util.scheduler.LeskJob.getScheduler(LeskJob.java:59)
at org.medoro.util.scheduler.LeskJob.contextInitialized(LeskJob.java:90)
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:645)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:189)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:978)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:586)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:349)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55)
at org.eclipse.jetty.deploy.ContextDeployer.deploy(ContextDeployer.java:341)
at org.eclipse.jetty.deploy.ContextDeployer.access$000(ContextDeployer.java:66)
at org.eclipse.jetty.deploy.ContextDeployer$ScannerListener.fileAdded(ContextDeployer.java:88)
at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:412)
at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:326)
at org.eclipse.jetty.util.Scanner.scan(Scanner.java:282)
at org.eclipse.jetty.util.Scanner$1.run(Scanner.java:234)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)

16. října 2009

Změna tapety na ploše



Inspirováno článkem na LinuxExpress.cz.

KFingerManager and KDMFprintPlugin in KDE svn

Since Wed, 14 Oct 2009 17:40:51 +0800 is source code of KFingerManager and KDMFprintPlugin part of KDE SVN.

I am sick because of this commit was not done by me (I dont backup .ssh from my work laptop and I must change ssh key). My thanks to 潘卫平(Peter Pan) for this commit.