pátek 23. dubna 2004

Čtení na víkend

Dnes jsem vybral několik článků, z nichž některé jsou staršího data, ale to jim nic neubírá na jejich kvalitě. Doufám, že se Vám budou líbit a zpříjemní Vám slunečný víkend.

čtvrtek 22. dubna 2004

Hádanka o dvou matematicích

Potkaji se dva znamí matematici, neb jsou to staří přátelé, zapředou řeč o životě. Netrvá dlouho a jeden se druhého ptá

  • Q:na co neseš tolik dárků?
  • A: a druhý opdoví ..ale moje tři děti mají dneska narozeniny
  • Q: první opáčí ..a kolik jim je let?
  • A: a druhý opdoví ..součin jejich věků je 36
  • Q: první se zamyslí a odpoví ..to mi nestačí
  • A: druhý ..součet jejich věků je stejný jako počet oken tohoto domu
  • Q: první se zamyslí a odpoví ..to mi nestačí
  • A: druhý ..ta nejmaldší je Evička
  • Q: první se zamyslí a odpoví aha jejich věk je ....

středa 21. dubna 2004

Topfive software, webové aplikace

Pišme o software 1/3, další originální abych tak řekl yuhůůovská myšlenka. Netvořím přímo web, ale pro jeho odnož jménem webové aplikace. Pokud pominu Javu, která jakožto serverová část je trochu mimo téma, zůstane mi tvorba prezentační vrstvy kde se vyřádím na XML, XSLT, CSS, HTML, JavaScriptu. Na nástroje které používám, nemám nijak přemrštěné nároky a stačí mi několik málo funkcí.

Eclipse
Na Eclipsu je nejbáječnější paleta všech možných plug-inu pomocí kterých můžu psát takřka ve všem a zároveň být v jednom prostředí a využívat všech jeho výhod. Z těch nejvíce oblíbených plug-inu bych zmínil XML editor XMLBuddy.
CookTop
Tento program používám pro rychlou a čistou práci s XSL šablonami, XML, HTML a JavaScriptem. Jak jsem psal výše, nemám nijak speciální nároky takže mi stačí validace, zvýraznění syntaxe a dobře vyřešený systém najdi a nahraď. Jak jej teď procházím, tak musím konstatovat, že toho umí opravdu dost. Tvorba DTD, XSLT transformace, předefinované šablony pro XSL,XML,HTML,CSS, JavaScript atd.
Mozilla
Mozillu používám především při ladění JavaScriptu a jako referenční prohlížeč, ve kterém testuji DOM a CSS. Pro Mozillu platí to samé co pro Eclipse - spousta udělátek co ulehčí život např. Javascript console a debugger, DOM inspector, Cookie manager atd.
Total Comander
Možna to někomu přijde zcestné uvádět souborový manažer, ale při práci na velkých projektech si bez něj neumím představit efektivitu. Kopírování, náhledy, přesuny, mazání, hledání, porovnání podle obsahu, archivace aneb práce nad soubory všeho druhu. Bez tohoto programu se cítím tak nějak bezmocný. Pro linux se mi osvědčil Krusader
Quanta Plus
Pokud doma používám Linux, pak pro mě funkci CookTopu plní Quanta Plus. Velice silný nástroj, který přidává několik maličkostí jako správu projektů atd.

Většina nástrojů, které používám je z rodiny open-soruce, samozřejmě kromě komerčního Total Commandera.

Související články

úterý 20. dubna 2004

Expirace HTTP Session

Tomáš Zvěřina nastiňuje způsob jak uživatele upozornit na ukončení sezení(session timeout). V příkladu je použit klietský skript, který pět minut před vypršením platnosti session zobrazí uživateli výstrahu.

Po pravdě řečeno na tomhle řešení se mi moc nelíbí několik maličkostí, ovšem nikoliv z hlediska funkčnosti, ale spíše z pohledu uživatele. Minimálně mě napadá jak se uživatel zachová, když se mu zobrazí hláška Za pět minut budete odlogován? Nebude se náhodou snažit přihlásit v operačním systému?

Já osobně se dívám na problém vypršení platnosti tak, aby byl vždy pro uživatele transparentní. Líbí se mi přístup kdy je při vypršení platnosti vrácena stránka s informací o ukončení sezení. Nejedná se samozřejmě o klasickou 500, ale o stránku s navigací, která uživatele navede do vstupního bodu aplikace či aplikací. Pokud máte čas a chuť podělte se o názor v diskuzi, velice by mě zajímalo jak tuto problematiku řešíte.

pondělí 19. dubna 2004

Porovnávání řetězců v Jave

Mnoho nováčku, kteří přejdou na jazyk Java, má trochu problém pochopit význam operátoru porovnání ==. Drobné zmatení je způsobeno faktem, že v Jave existují objekty a primitivní datové typy. Význam == je jiný pro primitivní datové typy, kdy se porovnává jejich hodnota a jiný jiný pro objekty kdy se porovnávají jejich odkazy nikoliv hodnota! Objekty většinou poskytují metodu equals, která slouží k porovnání s jiným objektem. Zvažte následující příkládky, pro primitivní datové typy a objekty.

      
    int foo = 1;
    int hoo = 1;
    System.out.println(foo == hoo); //true - rovno
 
      
    Integer foo = new Integer(1);
    Integer hoo = new Integer(1);
    System.out.println(foo == hoo); 
    //false - nerovné (porovnáváme dva různé objekty)
    System.out.println(foo.equals(hoo));
    //true - rovno(porovnáváme hodnoty)
 

Datový typ String je zvláštním případem, kdy výše uvedené řádky tak docela neplatí.

 
    String foo = "nazdarbazar";
    String hoo = "nazdarbazar";
    System.out.println(foo == hoo);//true!
    System.out.println(hoo == ("nazdar"+"bazar"));//true!
 

Pokud jste překvapeni a nechcete se pouštět do čtení Java Language Specifiacation, kde je to pěkně vysvětleno v 3.10.5 String Literals, pak mohu doporučit článek (Not So) Stupid Questions:String Equality, kde je tato problematika velice pěkně vysvětlena.