IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
David Jančík
Vlastník
Avatar
David Jančík:4.3.2013 20:32

Desktop Launcher je unikátní launcher, který si můžete nastavit libovolně dle svého a zobrazí se pod pravým tlačítkem myši na ploše.

Přikládám screenshot a ptám se, zda by si u vás našel využití? :)

Odpovědět
4.3.2013 20:32
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Luboš Běhounek Satik:4.3.2013 20:36

Já mám všechny často používané programy v dolní liště vedle startu, tu lištu mám roztaženou na dva řádky, i když teď zrovna mám obsazený jen jeden řádek, takže já bych to asi nevyužil :)

Nahoru Odpovědět
4.3.2013 20:36
https://www.facebook.com/peasantsandcastles/
Avatar
Vojtěch Pospíchal:4.3.2013 20:36

Tak já bych využití rozhodně našel :D Vypadá to docela užitečně. Co přesně se skrývá pod ikonkou chromu?

 
Nahoru Odpovědět
4.3.2013 20:36
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Vojtěch Pospíchal
David Jančík:4.3.2013 20:39

Když klepnu na ikonku chromu, spustí se mi chrome :) Si nadefinuješ jak to má vypadat. Naházíš si tam co chceš, jaký chceš ikonky, jaký chceš názvy...

Nahoru Odpovědět
4.3.2013 20:39
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Odpovídá na David Jančík
Vojtěch Pospíchal:4.3.2013 20:43

Tak to je rozhodně užitečný :D. Každopádně já bych spíž ocenil aby to umělo takové věci jako otevřít nějaký předem nadefinovaný seznam stránek. Kupříkladu kliknu na chrome a vyjede mi seznam skupin stránek které bych si chtěl otevřít. Třeba pracovní kdy by se mi otevřel google, gmail atd...

 
Nahoru Odpovědět
4.3.2013 20:43
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Vojtěch Pospíchal
David Jančík:4.3.2013 20:52

Sme zkoušel, to nejde, funguje to jenom s *.exe. To já neovlivním bez většího zásahu do systému. Ovšem můžeš si udělat jednoduchej baťák (ten by mohl fungobat) nebo si ho pak přehodíš do exe a ten ti bude spouštět ty stránky. To už je jednoduché.

Nahoru Odpovědět
4.3.2013 20:52
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Odpovídá na David Jančík
Luboš Běhounek Satik:4.3.2013 21:06

přes argumenty spustit v chrome víc stránek najednou nejde?

Nahoru Odpovědět
4.3.2013 21:06
https://www.facebook.com/peasantsandcastles/
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Luboš Běhounek Satik
David Jančík:4.3.2013 21:10

Jo takhle to myslíš. To by mohlo jít... zkusím

Edit: jop jde to: C:\Program Files (x86)\Google\Chrome\Application\chrome.exe devbook.cz google.com

Editováno 4.3.2013 21:14
Nahoru Odpovědět
4.3.2013 21:10
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Odpovídá na David Jančík
Vojtěch Pospíchal:4.3.2013 21:43

Přesně takhle jsem to myslel výborně!

 
Nahoru Odpovědět
4.3.2013 21:43
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Jančík
Kit:5.3.2013 9:01

Pěkný. Zhruba tak mi to funguje na mém desktopu už mnoho let. Je fajn, že se to dostalo už i do Windows.

Nahoru Odpovědět
5.3.2013 9:01
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Neaktivní uživatel:5.3.2013 9:33

jj.. taky sem už slyšel, že se na linux konečně dostavaji hry.. :D

Nahoru Odpovědět
5.3.2013 9:33
Neaktivní uživatelský účet
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Kit
David Jančík:5.3.2013 9:44

Šak právě od tebe jsem to obkoukal :D Se mi hrozně líbí plocha bez ikonek.

Nahoru Odpovědět
5.3.2013 9:44
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Kit:5.3.2013 9:46

Dobrý vtip. Těch pár desítek her mi bohatě stačí.

Také jsem slyšel, že na Windows už konečně funguje multiuser. Je to pravda? :)

Nahoru Odpovědět
5.3.2013 9:46
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Jančík
Kit:5.3.2013 10:02

Vždycky mě zvedne ze židle, když nějaká "skvělá aplikace" má vytapetovány všechny okraje pracovní plochy ikonami. Děsně mě to ruší. Asi proto nesnáším IDE. Bývají děsně přeplácané a na samotnou práci zbývá jen minimální prostor uprostřed.

Nahoru Odpovědět
5.3.2013 10:02
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:5.3.2013 10:04

Většinou ty panely s ikonkama můžeš schovat/přesu­nout/zmenšit :)

Nahoru Odpovědět
5.3.2013 10:04
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:5.3.2013 10:12

Jenže pak se to IDE stává nepoužitelným, resp. se z toho stane obyčejný editor. Raději zůstávám u svého oblíbeného Vimu a jeho přetížených a překrytých maker.

Nahoru Odpovědět
5.3.2013 10:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:5.3.2013 10:37

Nemusíš schovávat všechny panely, ale jen ty, které nepoužíváš nebo používáš málo.

A dnešní monitory jsou tak velké, že většinou máš (co se týče do šířky) v editovacím okně stejně vedle kódu tolik místa, že tam klidně nějaké panely být můžou a stále je tam rezerva, např u mě ve Visual Studiu můžu na řádek bez zalamování napsat klidně 180 znaků i víc, ale pak už se ten kód stává hůř čitelný, tak se snažím to nacpat do 80, případně cca 60 znaků na řádek.

Nahoru Odpovědět
5.3.2013 10:37
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:5.3.2013 10:44

Už jsem psal, že stejně nemá význam psát delší řádky než 80 znaků, protože pak se s tím špatně pracuje. Raději si zvětším písmo - většinou mám nastaveno 15px.

Ještě jsem prostě nepřišel na to, v čem je IDE výhodnější.

Nahoru Odpovědět
5.3.2013 10:44
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:5.3.2013 11:13

Právě proto netuším, jak se ti můžou panely plést, když je můžeš (alespoň v rozumných programech) nastrkat do stran, kde máš místa spoustu, protože i 80 znaků textu zabere jen asi půl obrazovky na šířku.

Pokud i ten editor má nějakou formu Intellisense, tak sílu IDE většinou pocítíš až při debugování - breakpointy, krokování kódu, sledování obsahu proměnných, úprava kódu za běhu, atd.

Nahoru Odpovědět
5.3.2013 11:13
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:5.3.2013 11:25

Mně se ty panely nepletou. Jen mě ty ikony na nich rozptylují. Prostě ruší mé kruhy :)

Debugování nedělám, takže zbývající funkce nepotřebuji.

Nahoru Odpovědět
5.3.2013 11:25
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:5.3.2013 11:48

Aha, tak to pak jo, mě to tam nijak neruší :)

99% programátorů debugování používá, takže IDE je asi pro těch 99% zbylých programátorů :)

Nahoru Odpovědět
5.3.2013 11:48
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:5.3.2013 12:00

Asi patřím mezi to 1 % programátorů, kteří místo pracného debugování raději pohodlně testují :)

Nahoru Odpovědět
5.3.2013 12:00
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:5.3.2013 12:16

Evidentně vidíš pod pojmem debugování něco jiného než já, jinak by jsi nemohl napsat, že debugování je pracné a testování pohodlné :)

Testy píšeš vždy, i když je testovaný kód správný, což mi přijde jako zbytečná práce navíc.

Debugování provádíš až ve chvíli, kdy narazíš někde na chybu - třeba nějaká funkce vrací něco jiného než by měla - tak ji jen prokrokuješ příkaz po příkazu a najdeš místo, kde je chyba :)

Myslím, že je evidentní, která metoda je pohodlnější a stojí méně práce :)

Samozřejmě jsou situace nebo části programu, kde je důležité, aby nebyla žádná chyba, tam používání testů schvaluji.

Editováno 5.3.2013 12:17
Nahoru Odpovědět
5.3.2013 12:16
https://www.facebook.com/peasantsandcastles/
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Luboš Běhounek Satik
David Hartinger:5.3.2013 12:49

To je debata mezi dvěma extrémy :) Když uděláš v metodě chybu, může se to projevit úplně jinde, od toho jsou testy, chyba se ti vždy neprojeví jen na té části, kterou teď zrovna píšeš a testuješ. Test uděláš jednou a pokud si něco rozbiješ, přijde ti na to starý test, co jsi dělal předtím.

Teoreticky bys opravdu při dobrém pokrytí testy a dekompozici na jednoduché metody debugování nepotřeboval, prakticky to bude ale vypadat trochu jinak a nahlížení do obsahu proměnných se hodí, stejně tak i krokování.

Nahoru Odpovědět
5.3.2013 12:49
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:5.3.2013 13:25

Kde bereš jistotu, že je testovaný kód správný a správný zůstane i po provedení zdánlivě nepodstatných změn? Nezapomeň, že nejprve se píší testy. V tu chvíli netušíš, jestli bude testovaný kód správný, protože ještě žádný neexistuje.

Krokování funkcí je prakticky zbytečné, pokud dodržuješ jejich délku do 15 řádek.

Testování je poměrně zábavná činnost, při které produkční kód vzniká jaksi mimochodem. Výsledný kód bývá zpravidla i kratší a přehlednější.

Nahoru Odpovědět
5.3.2013 13:25
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:5.3.2013 13:36

Zase více kódu (testy), větší šance udělat chybu, to se pak musí špatně hledat, když uděláš třeba chybu v testu a honíš neviditelnýho draka, ne? :)

Nahoru Odpovědět
5.3.2013 13:36
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:5.3.2013 13:36

Testováním se nedá dělat veškerý kód, to je jasné. Integrační testy jsou také potřebné. Test samozřejmě může nahlížet do obsahu proměnných a testovat, zda je v nich správná hodnota, ale zpravidla to není nutné. Kvůli tomu se dělají mocky, aby se nasimulovaly všechny možné stavy. Do kódu se dále dávají asserty, které jsou během testování zapnuté, v produkci jsou však vypnuté kvůli výkonu. Přepínání se děje zcela automaticky.

Nahoru Odpovědět
5.3.2013 13:36
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:5.3.2013 13:40

Bylo prokázáno, že při TDD je zpravidla provedeno méně úhozů na klávesnici, než při debugování. Navíc po testování ti zbudou stále použitelné testy, po debugování jen výsledný kód a nic víc.

Nahoru Odpovědět
5.3.2013 13:40
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:5.3.2013 13:49

"Bylo prokázáno" - nějaký odkaz?

Nahoru Odpovědět
5.3.2013 13:49
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:5.3.2013 14:05

Že bych zkusil Googla? Nebo si snad myslíš, že si pamatuji, na které stránce jsem to před mnoha lety četl?

Testy se dají psát dobře i špatně. Fakt si myslíš, že když napíšeš kód a pak ho debuguješ, strávíš na tom méně času než v TDD?

Jde také o to, že TDD tě donutí psát programy přísně objektově, protože když je objektově neuděláš, stane se z testování debugování. Pokud jsi zvyklý psát metody na 1000 řádek, tak ti TDD nepomůže, ale naopak bude jen zdržovat. Jenže pokud děláš TDD, tak ani tak dlouhou metodu nenapíšeš.

Nahoru Odpovědět
5.3.2013 14:05
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:5.3.2013 14:36

Bylo prokázáno, že při TDD je zpravidla prováděno více úhozů.

Ano, myslím, pokud to není nějaký kód, kde je cílem nulová chybovost.

Psát metody na 1000 řádek zvyklý nejsem, v takovém špagetovém kódu bych se nevyznal, mám rád přehlednost (I když to tak občas v mém kódu nevypadá, hlavně po různých úpravách :) ).

Nahoru Odpovědět
5.3.2013 14:36
https://www.facebook.com/peasantsandcastles/
Avatar
Odpovídá na Luboš Běhounek Satik
Drahomír Hanák:5.3.2013 15:10

Podle mě jsi moc nepochopil ten princip testování. Nejde o to testovat funkčnost, která právě teď funguje, ale funkčnost, která by někdy fungovat nemusela (tj. většinou celý kód krom pár věcí - samozřejmě, jak už bylo řečeno, nejde testovat všechno). Kód, kde je cílem nulová chybovost, je alespoň pro mě (a klienty) každý. Nulové chybovosti nedosáhnu nikdy, ale testování mi k tomu pomůže. Krom toho mi testování pomohlo psát lepší kód. Nutí člověka zamyslet se nad tím, co dělá.

Celkem bych i věřil tomu, že když testuješ, napíšeš méně kódu, protože když netestuješ, máš mnohem větší pravděpodobnost chyb. Celkem mě taky zaráží, že to v C# není běžné. Myslel jsem, že právě v C# se už testování bere jako samozřejmost.

Ale teď k tématu :) David Jančík plánuješ zveřejnit zdrojový kód?

 
Nahoru Odpovědět
5.3.2013 15:10
Avatar
Odpovídá na Drahomír Hanák
Luboš Běhounek Satik:5.3.2013 15:33

Já chápu, jak TDD funguje, ale nemyslím si, že se hodí vždycky, je to jen jeden z možných postupů a rozhodně není ten jediný správný, podobně jako není jediné správné objektové programování, prostě jsou situace, kdy se hodí jeden postup a situace, kdy se hodí jiný postup.

Dalším problémem je to, jak to ve většině firem funguje - tam si o těchto věcech, které vás učí ve škole, můžete často nechat jen zdát.
TDD jsem zatím nepotkal nikde (a sám programovat přes TDD je asi nesmysl), návrh aplikace většinou není moc detailní a požadavky na (i docela velké) změny přicházejí často.
Přepisovat kvůli nějaké větší změně půlku testů by mě asi moc nebavilo.
Navíc nikdy nevíte, jaké spolupracovníky do týmu dostanete, občas člověk nestačí zírat, čeho jsou někteří "programátoři" schopní :)

Samozřejmě každý se snaží mít počet chyb minimální, také občas nějaký test napíšu, ale jen pro nějaká kritická místa, kde je větší pravděpodobnost, že jsem nějakou chybu udělal.

Může to výborně fungovat, pokud máte pevné a neměnné zadání (nebo jen opravdu malé změny) a pokud váš tým včetně vedení je na TDD připravený, ale v praxi to tu zatím moc nefunguje.

Nahoru Odpovědět
5.3.2013 15:33
https://www.facebook.com/peasantsandcastles/
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Drahomír Hanák
David Jančík:5.3.2013 15:51

Jop, když je zájem, přidám ho :) Jen musím udělat ještě nějaké úpravy, trochu to zjednodušit a popsat. Je to tam samá rekurze :D Ale celkem jsem si to tam zjednodušil. Když hledám cestu k danému prvku:

DesktopLauncher
    - Menu1
         - SubMenu1
                - SubSubmenu1 -> chci cestu sem
         - SubMenu2
    - Menu2

Tak jdu jako v rodokmenu, od potomka až po všechny známé předky. A abych nemusel data dávat do nějakého Listu, tak využívám rekurze:

private string GetParrentText(MenuItemExtended menu)
{
        string prefix = "";
        if (menu.Parrent != null)
                prefix += GetParrentText(menu.Parrent);

        if (menu.Parrent == null)
                prefix = "DesktopLauncher." + prefix;
        else
                prefix += menu.Text.RemoveInvalidCharacters() + ".";

        return prefix;
}

To si myslím, že sem celkem vyšéfil. Teď mám jiné povinnosti, ale myslím, že v pátek bych to mohl vypustit :)

Nahoru Odpovědět
5.3.2013 15:51
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:5.3.2013 16:07

V TDD programuji hlavně pro sebe. Je s tím o hodně větší sranda než s nějakým laděním. Netvrdím, že je to jediný správný postup, ale pokud ho pochopíš jako cestu nikoli nutnost, je to přínosem hlavně pro programátora.

Není dobré, pokud někdo píše testy a někdo jiný píše kód. Měl by to dělat jeden programátor nebo v týmu by se v této roli měli střídat. Také je nesmysl dělat hned na začátku komplexní testy. Musí se vyvíjet souběžně s kódem. Jinak to brzy začneš považovat za zdržující zlo.

Při větší změně zadání se přepisuje jen jedna metoda, maximálně jedna třída, takže přepisuješ jen jednu sadu testů.

TDD funguje výborně právě pro měnící se zadání, pro velmi časté změny. Vedení by mělo podporovat vývoj touto technikou, ale dá se to provozovat i vedení navzdory, protože dobře prováděné TDD zvyšuje produktivitu.

Nahoru Odpovědět
5.3.2013 16:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Jančík
Kit:5.3.2013 16:13

Rekurze je v pořádku. Tuhle jsem dělal reflexi na rodiče třídy a první verzi jsem měl také rekurzí. Teprve při refaktoringu jsem z toho udělal cyklus, protože to vypadalo o něco lépe.

Nahoru Odpovědět
5.3.2013 16:13
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Kit
David Jančík:5.3.2013 16:20

A jak si to procházel tím cyklem? Já to potřebuju poskládat od předu do zadu (tedy od rodiče po potomky) a začínám u potomka a pokaždé znám jen odkaz na rodiče.

Nahoru Odpovědět
5.3.2013 16:20
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Jančík
Kit:5.3.2013 16:31

Mám to takhle:

static Object[] getAncestors(Class<?> c) {
    List<Class> seznam = new ArrayList<Class>();
    if (c != null) {
        Class<?> ancestor = c.getSuperclass();
        while (ancestor != null) {
            seznam.add(ancestor);
            ancestor = ancestor.getSuperclass();
        }
    }
    return seznam.toArray();
}

Neměl by být problém před returnem obrátit pořadí

Collections.reverse(seznam);
Nahoru Odpovědět
5.3.2013 16:31
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Jančík
Kit:6.3.2013 8:57

Zjistil jsem, že ta vnější podmínka je zbytečná. Můžeš ji klidně vyhodit.

Nahoru Odpovědět
6.3.2013 8:57
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 39 zpráv z 39.