Pouze tento týden sleva až 80 % na e-learning týkající se Pythonu. Zároveň využij akce až 80 % zdarma při nákupu kreditů. Více informací:
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í.

Soutěž: Machr na algoritmy - rychlost internetu

Soutěž již skončila

Zadání

Vítám Vás u další minisoutěže Machr, tentokrát na Algoritmy. Minule jsme měřili rychlost disku, tentokrát zkusíme něco podobného. Vašim úkolem bude naprogramovat aplikaci, která změří rychlost vašeho připojení k internetu. Měřit budeme upload a download, volitelně můžete měřit i odezvu. Abychom si upřesnili pojmy, tak download znamená rychlost, jakou můžete soubory reálně stahovat a upload je rychlost jakou reálně soubory nahráváte na internet. Odezva pak znamená, jak dlouho trvá, než nějaký server odpoví (latence sítě).

Aplikace by měla měřit nějaké rozumné hodnoty. Neměli byste mi vypsat vyšší než je teoretická hodnota udávaná poskytovatelem. Pokud aplikace bude provádět úlohu delší dobu, měla by ukázat progressbar (aby uživatel věděl, že se něco děje) a nezamrzat u toho.

Nesmíte využít žádné knihovny třetích stran. Nesmíte ani využít jiných služeb, které budou měřit za Vás. Abychom machrovi vrátili jednu z jeho edukativních vlastností tentokrát můžete použít pouze Javu. Algoritmus je všude stejný, takže by neměl být problém se naučit nový jazyk. Navíc Java má velmi podobnou syntaxi většině ostatních jazyků a znalost Javy se v životě hodí.
Řešení odevzdávejte formulářem níže.

Výhra

Vítěz dostane placku Machr, pár samolepek a ocenění do portfolia.

Výhra

Výsledky

Jméno bodů Řešení ( Stáhnout vše )
Petr Štechmüller 90 Stáhnout řešení
Ondřej Štorc 85 Stáhnout řešení
Neaktivní uživatel 70 Stáhnout řešení
Jan Poláček 70 Stáhnout řešení
Matěj Kripner 65 Stáhnout řešení
brambora 60 Stáhnout řešení
Štefan Pružinský 60 Stáhnout řešení
Aktivity
Avatar
Michal Žůrek - misaz:20.6.2015 10:06

V této soutěži si naprogramujeme aplikaci, která změří rychlost aktuálního síťového připojení k internetu.

Soutěž končí 29.6.2015 16:00:00, tak se nezapomeň zapojit! :-)

 
Odpovědět
20.6.2015 10:06
Avatar
Neaktivní uživatel:21.6.2015 13:14

Zadanie fajn, len mám menší a problém s tým, kam uplodovať testovacie súbory, na ktorých budem merať rýchlosť uploadu.

Nahoru Odpovědět
21.6.2015 13:14
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Michal Žůrek - misaz:21.6.2015 13:17

pokud tu možnost nemáš, tak to neměř.

 
Nahoru Odpovědět
21.6.2015 13:17
Avatar
Odpovídá na Neaktivní uživatel
Michal Žůrek - misaz:21.6.2015 13:18

jinak můžeš využít nějakých freehostingů a tak.

 
Nahoru Odpovědět
21.6.2015 13:18
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Ondřej Štorc:21.6.2015 16:52

Sice vím že píšeš že nesmíme použít žádný knihovny třetích stran, ale i tak se zeptám můžu použít knihovnu <a href="https:/­/commons.apache­.org/proper/com­mons-net/">Apache Commons Net</a> na nahrávání souborů na internet?

Nahoru Odpovědět
21.6.2015 16:52
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Odpovídá na Ondřej Štorc
Neaktivní uživatel:21.6.2015 16:58

Třída URLConnection pro to jde použít taky :)

Nahoru Odpovědět
21.6.2015 16:58
Neaktivní uživatelský účet
Avatar
Odpovídá na Ondřej Štorc
Michal Žůrek - misaz:21.6.2015 17:53

ne, zakázané jsou všechny externí knihovny, bez výjimek.

 
Nahoru Odpovědět
21.6.2015 17:53
Avatar
Matěj Kripner:22.6.2015 16:51

Tak první poznatek: lze odeslat řešení i bez přiložení souboru a po odeslání už to nejde zrušit :D

 
Nahoru Odpovědět
22.6.2015 16:51
Avatar
Odpovídá na Matěj Kripner
Michal Žůrek - misaz:22.6.2015 16:55

nahraj aktualizované řešení s přiloženým zipem.

 
Nahoru Odpovědět
22.6.2015 16:55
Avatar
Odpovídá na Michal Žůrek - misaz
Matěj Kripner:22.6.2015 17:13

OK, ale musím ho nejdřív vytvořit. Dej mi chvilku.

 
Nahoru Odpovědět
22.6.2015 17:13
Avatar
Ondřej Štorc
Tvůrce
Avatar
Ondřej Štorc:22.6.2015 19:02

Tak sem se taky pokusil něco vytvořit, i když si nedávám moc šancí když soutěží i Matěj Kripner... :D

Nahoru Odpovědět
22.6.2015 19:02
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Odpovídá na Michal Žůrek - misaz
Matěj Kripner:27.6.2015 17:15

Ping ale použít můžeme, že?

 
Nahoru Odpovědět
27.6.2015 17:15
Avatar
Štefan Pružinský:29.6.2015 16:20

Tak v prvom rade ďakujem Bohu, a potom aj môjmu tabletu (programovanie na tablete z Windows 8 je celkom super :) ), že sa mi to podarilo zrealizovať. Bohužiaľ som tomu nestihol dať GUI :( , avšak dúfam, že relevantnosť výsledkov to nahradí... :)
Michal Žůrek - misaz
Benchmarky sú síce pekné, nabudúce by sa hodila zmena. Je to predsa Machr na Algoritmy :` :D

Editováno 29.6.2015 16:21
Nahoru Odpovědět
29.6.2015 16:20
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
Odpovídá na Štefan Pružinský
Michal Žůrek - misaz:29.6.2015 16:21

ono je to ale v podstatě něco jiného. :) Nicméně příště bude (minimálně ode mně) změna.

 
Nahoru Odpovědět
29.6.2015 16:21
Avatar
Odpovídá na Michal Žůrek - misaz
Štefan Pružinský:29.6.2015 17:54

Ak sa môžem opýtať, kedy bude vyhodnotenie?

Nahoru Odpovědět
29.6.2015 17:54
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
Odpovídá na Štefan Pružinský
Michal Žůrek - misaz:29.6.2015 17:59

teď jsem se dostal k tvému programu. :) Zase ti vychází zajímavá čísla. :D Ačkoliv tě moc neznám, už jsem pochopil že si věčný optimista. :D 21,5 Pb/s (petabit/sekunda) fakt nestahuju. :D Prozkoumám tvůj algoritmus, kde se stala chyba. :)

 
Nahoru Odpovědět
29.6.2015 17:59
Avatar
Odpovídá na Michal Žůrek - misaz
Štefan Pružinský:29.6.2015 18:21

Klasika :( . Mne doma všetko beží ukážkovo, a porote aplikácia nefunguje... ;( :D .
Bol by som rád, ak by si mi povedal, kde nastala chyba... :D

Nahoru Odpovědět
29.6.2015 18:21
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
Odpovídá na Štefan Pružinský
Michal Žůrek - misaz:29.6.2015 18:30

no ani doma ti to neběží dobře, ale protože máš asi pomalejší internet než já, tak ti tam vyšli jen o trochu menší kraviny. Chyběli ti tam 2 písmena. :P V hodnocení se dovíš jaká a kde.

 
Nahoru Odpovědět
29.6.2015 18:30
Avatar
Michal Žůrek - misaz:29.6.2015 18:57

Díky všem za účast, zde jsou výsledky:

Matěj Kripner - 65 bodů
Tvůj program má pěkné GUI, u stahování mi došlo k chybě a odezva je moc velká. Kód je pěkný, komentovaný, rozdělený do tříd, takže aspoň to.

Ondřej Štorc - 85 bodů
Pěkné, ne moc přesné a chybí ti tam nějaká blbůmvzdronost. V popisu mě program vyzívá, ať zadám číslo od 1 do deseti. Když zadám 1000000 tak to moc dlouho trvá a když zadám -5, tak se to zasekne v nekonečné smyčce (na pingu). Kód je stručný a komentovaný. Možná by nebylo špatné rozdělit kód do více tříd, proč jedna třída měří tři různé věci?

Petr Štechmüller - 90 bodů
GUI je hezké, test trvá docela dost dlouho. Výsledek je pěkně zobrazený a je přesný. Graf je super, akorát moc neukazuje rychlost stahování, nýbrž porovnává výsledky mezi jednotlivými měřeními. Takže u jednoho měření je celkem zbytečný, jinak je to perfektní.

Neaktivní uživatel - 70 bodů
GUI je celkem fajn, akorát je třeba si pohlídat vytékání hodnot. Všechny rychlosti mi to vypsalo <rychlost> K… Prostě jsi to nemusel zkracovat. Ping, což je jediné, u čeho jsem viděl jednotku, ti funguje dobře. Máš výstižně pojmenované proměnné, ale hodí se i komentář do záhlaví, aby někdo, kdo to chce třeba nasadit ve své aplikaci, věděl, co která metoda dělá.

Jan Poláček - 70 bodů
Na první pokus dobrý, download se měří celkem přesně, upload zase naopak úplně blbě (ale to může být dané serverem) a ping je taky celkem přesný. Příkazy parsuješ ify, objektově se to řeší polymorfismem, pokud ti nevadí PHP, tak se můžeš podívat zde:http://www.itnetwork.cz/…tovy-wysiwym . V Javě se komentáře and metodou zapisují speciální syntaxí (viz, předgenerovaný komentář u třídy Command). Díky toho ti IDE napoví, co metoda dělá, když ji budeš v kódu používat. Doplňuje to právě podle toho komentáře, ale když ten komentář máš v jiném formátu, nefunguje to.

brambora - 60 bodů
Tvoje řešení se mi sice zobrazilo, ale nefungovali žádné tlačítka, takže nemůžu moc hodnotit. Kód není špatný, místy až moc zanořený a chybí mu komentáře. GUI je zajímavé, ale pokud jsi měl v plánu vypisovat výsledek do textového políčka, tak postrádalo smysl. To jsi to rovnou mohl vypsat do konzole.

Štefan Pružinský - 60 bodů
Tvůj program mě (zase) dostal. :D Opět jsme se dostali na zajímavá čísla, rychlost stahování mi to vypsalo 21474836 Mb/s, což je samozřejmě blbost (21,4 petabitů za sekundu, to snad nemají ani datacentra). Koukl jsem se tedy do tvého programu, kterému by neuškodil komentář, ale vyznal jsem se v tom celkem dobře. Tvůj magický výpočet vzniká na řádcích 54 a 96 v souboru Tests.java.

float speed = ((float)size / 1024f) / ((endTime - startTime) / 1000);

A zde je kámen úrazu. Podívejme se na datové typy proměnných Size, endTime a startTime jsou celá čísla. Size si správně, byť zbytečně, přetypováváš na float, zde to ještě funguje. Jenže v té druhé části „zlomku“ máš endTime – startTime, což vyjde jako celé číslo a dělíš celým číselm. Celočíselné dělení znamená celočíselný výsledek. Např pokud se to stáhne za 700ms, dostaneš 700 / 1000 což není 0.7, jak bys čekal, ale 0, protože (celočíselně dělení znamená) 1000 se do 700 vleze přesně 0×. Obecně stačí přetypovat jeden parametr dělení na float, takže stačilo udělat to, cos udělal v první části, že za 1000 dáš písmeno f. To samozřejmě udělá i upload, který funguje stejně, ale tím, že trvá více než 1000 ms, tak tam vyjde celé číslo a pak už se sice nedělí nulou, ale vyjde tam jen o trochu menší blbost. Když jsem si to opravil, vycházeli sice dost malá čísla, ale odpovídalo to tomu serveru. Ping ti funguje dobře.

Placku tedy získává Petr Štechmüller. Gratuluji :)

Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět
29.6.2015 18:57
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Ondřej Štorc:29.6.2015 19:00

Ach jo, takový blbosti... No každopádně gratuluji vítězovi :)

Nahoru Odpovědět
29.6.2015 19:00
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Odpovídá na Ondřej Štorc
Michal Žůrek - misaz:29.6.2015 19:01

U tebe jsem hodně zvažoval placku, ale nakonec jsem se rozhodl jen pro jednu.

 
Nahoru Odpovědět
29.6.2015 19:01
Avatar
Petr Štechmüller
Překladatel
Avatar
Petr Štechmüller:29.6.2015 19:12

Děkují za udělení placky, vůbec jsem to nečekal :)

Test trvá dlouho, protože to stahuje velký objem dat (+-50MB) aby byl výsledek co nejpřesnější. Program jsem tvořil o zkouškové období na koleji, kde máme hodně rychlý net (+-100Mbit/sec) takže mi ta doba tak nepřišla. Lepší řešení by bylo postupně stahovat větší a větší soubory na základě nějakých výpočtů (odezva, doba předchozího stahování...)

Nahoru Odpovědět
29.6.2015 19:12
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Odpovídá na Michal Žůrek - misaz
Štefan Pružinský:29.6.2015 19:18

Čo už... :( Ale, za ten krátky čas, ktorý som na to mal, som nič lepšie vyplodiť nedokázal... Snáď nabudúce. :)

Nahoru Odpovědět
29.6.2015 19:18
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
Odpovídá na Michal Žůrek - misaz
Štefan Pružinský:29.6.2015 19:22

Ja som na to mal len jeden neskorý večer (22:00 - 00:00 => 2 hod.) a jedno poludnie. :)

Nahoru Odpovědět
29.6.2015 19:22
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
Odpovídá na Michal Žůrek - misaz
Matěj Kripner:29.6.2015 19:26

Taky gratuluju vítězovi :) Každopádně co myslíš tím, že odezva je moc velká? Využívám klasický ping a zobrazuju jeho výsledek. Nevíš co to bylo za chybu u toho stahování?

 
Nahoru Odpovědět
29.6.2015 19:26
Avatar
Štefan Pružinský:29.6.2015 19:40

Zabudol som ešte zablahoželať víťazovi. :) Petr Štechmüller Blahoželám k víťazstvu. :)

Nahoru Odpovědět
29.6.2015 19:40
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
Odpovídá na Michal Žůrek - misaz
Matěj Kripner:29.6.2015 20:19

Jinak ještě Michal Žůrek - misaz, fakt bych ocenil podrobnější kritiku. Co si mám odnést z toho když řekneš "Byla tam nějaká chyba při stahování a kód celkem pěkný". Jak mě to má posunout dopředu (kvůli čemuž tu mimo jiné tu soutěže jsou)?

Zkusím to předvést na kódu od Ondřej Štorc:

Kód
Obecně
Asi největší chyba je umístění de facto celého kódu do jedné třídy. Je to opak OOP - vytvoříš hromadu globálních proměnných a pod ně celý kód aplikace rozdělený do funkcí. Zkus funkčnost rozdělit podle dat, jak říká OOP.
Pokud vyvíjíš aplikaci z výukových důvodů, nekopíruj kód z jiných zdrojů. Např. metoda downloadFile(Strin­g, String) je prakticky nezměněná kopie z http://www.codejava.net/…-an-http-url. A pokud nechceš, aby to někdo zjistil, sjednoť si formátování.
Konkrétní chyby
Řádek 48 (třída jasná) - zde to nevadí, ale je dobré, pokud odchytíš InterruptedEx­ception, s ní něco dělat (třeba rethrow nebo vlákno znovu přerušit) a ne jen vypsat do konzole a pokračovat v běhu.
Chyby v konvencích
V dokumentačních komentech se mezi popis člena třídy a tagů (např. param) dává odřádkování. Zároveň pokud v popisu píšeš větu, je dobré zakončit ji tečkou.
Názvy metod se zásadně píší s malých písmenem na začátku.
Za try by měla být mezera. Někde to máš správně, někde ne. Doporučuju používat chytré IDE, které na jedno zmáčknutí klávesy celý kód naformátují (např. IntelliJ).

Aplikace
Spustil jsem to dvakrát a dvakrát to skončilo výjimkou
Drobnost - nevypisoval bych ty hodnoty na cca 15 desetinných míst, to uživatel nevyužije.

Takže Michal Žůrek - misaz mohl bys prosím provést podobnou analýzu mého kódu? Protože jinak mám myslím právo cítit nespravedlnost.

Editováno 29.6.2015 20:23
 
Nahoru Odpovědět
29.6.2015 20:19
Avatar
Odpovídá na Ondřej Štorc
Matěj Kripner:29.6.2015 20:37

A ještě jedna věc: na řádku 44 čekáš na ukončení vlákna pro měření dost nešikovně. V podstatě po skončení měření se vždy musí počkat do těch 5 vteřin. Úplně by stačilo napsat

gettingSpeed.join();

(+ odchytávat výjimku).
Hodně štěstí :)

Editováno 29.6.2015 20:37
 
Nahoru Odpovědět
29.6.2015 20:37
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na Matěj Kripner
Ondřej Štorc:29.6.2015 20:37

Díky, aspoň se poučím pro příště :)

Nahoru Odpovědět
29.6.2015 20:37
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Odpovídá na Matěj Kripner
Michal Žůrek - misaz:29.6.2015 20:50

vypsalo mi to průměrnou odezvu 159ms, což je moc, ping na google je okolo 4ms a na normální server 20ms (hry okolo 25ms). Mimo to ten tvůj ping je nějaký moc konstantní. Asi na 5 pokusů mi to pořád píše přesně 159. U download speed to prostě červeně napsalo An error occur!

Kód jsem nestudoval detailně, moc tu o něj nejde. Obecně však platilo že většina ze soutěžících měla hodně věcí v jedné třídě a celkově ten soubor byl moc dlouhý, ale nepřijde mi to tak podstatné. Většinou jsem hodnotil podle toho, jestli vůbec lze třeba podle nějakých názvů pochopit o co go a to všichni zvládli celkem dobře.

Nevím jaké chyby bych měl v tvém kódu hledat. Máš ho celkem dokonalý.

Hodnocení jsem psal zhruba 3 hodiny, kdybych měl u každého provádět detailní analýzu kódu, tak na tom strávím dalších 8.

 
Nahoru Odpovědět
29.6.2015 20:50
Avatar
Odpovídá na Michal Žůrek - misaz
Matěj Kripner:29.6.2015 21:01

Jak jsem říkal, ping to dává přesně takový, jako windows. Koukni se do kódu, opravdu to nějak neupravuju. Větou "o kód tu moc nejde" jsi zničil všechny moje programátorské ideály. Prostě mi přijde nefér, že řekneš "tvůj kód je celkem dokonalý", a pak mi dáš o 20 bodů míň, než např. Ondřej Štorc (promiň, že si tě furt beru jako příklad), kterému aplikace na mém PC vypisuje při každém spuštění chybu.
Stále nerozumím, kde jsem o těch 20 bodů přišel. Existuje pro to důvod? Díky.

 
Nahoru Odpovědět
29.6.2015 21:01
Avatar
Odpovídá na Matěj Kripner
Michal Žůrek - misaz:29.6.2015 21:13

Na mém počítači jeho aplikace fungovala. Ty jsi mi v podstatě ukázal jen odezvu. Download ti nefungoval a Upload jsi neměl (ale to se toleruje). V podstatě jsem nemohl tedy nějak objektivně zhodnotit, jestli jsi vybral vhodný server pro stahování (pro ping asi ne) a tak. Za to je -25b. +5 je pak za dokonalý kód, ale v podstatě na bodování zde (v tomto machrovi) neexistuje přesná tabulka.

Editováno 29.6.2015 21:15
 
Nahoru Odpovědět
29.6.2015 21:13
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na Matěj Kripner
Ondřej Štorc:29.6.2015 21:16

Já jinak s tou chybou, je to (nejspíš) způsobeno tím hostingem kam nahrávám ten soubor pro měření upload (občas mi to i blbne, když nahrávám nějaký php soubory)...

Nahoru Odpovědět
29.6.2015 21:16
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Odpovídá na Michal Žůrek - misaz
Matěj Kripner:29.6.2015 21:31

Nevím, čím to může být. Na mém počítači zase moje aplikace fungovala perfektně. Jako server pro ping jsem vybral google.cz (ano, to je chyba - mělo to být google.com, ale stejně je to poměrně spolehlivý server). Funkčnost přeci můžeš zhodnotit z kódu. Ale přiznávám, že za kód jsem očekával víc bodů. Teď už mě ani neudivuje, že věci jako

if((size/10)==bytes || (size/9)==bytes || (size/8)==bytes || (size/7)==bytes || (size/6)==bytes || (size/5)==bytes || (size/4)==bytes || (size/3)==bytes || (size/2)==bytes || (size/1)==bytes)

jsou přede mnou.

 
Nahoru Odpovědět
29.6.2015 21:31
Avatar
Odpovídá na Matěj Kripner
Michal Žůrek - misaz:29.6.2015 21:46

pak ten tvůj ping taky nechápu. Windows mi na google.cz vrací okolo 2ms. Tvůj program momentálně 158.

 
Nahoru Odpovědět
29.6.2015 21:46
Avatar
Jan Poláček
Tvůrce
Avatar
Odpovídá na Matěj Kripner
Jan Poláček:29.6.2015 21:52

Co máš proti mý spešl podmínce? :D A proč to celý tolik hrotit, pro mě je to spíš o tom, vytvořit +- funkční věc, o což jsem se snažil a nejde ani tak o soutěž, jako spíš o získaní nových poznatků a dovedností, znalostí a hlavně si to zkusit.

Nahoru Odpovědět
29.6.2015 21:52
Instrukce na adrese 0x77104f29 odkazovala na adresu paměti 0x00000014. S pamětí nelze provést operaci: written.
Avatar
Odpovídá na Jan Poláček
Michal Žůrek - misaz:29.6.2015 21:54

ta za a), ale i tak by sis tu spešl podmínku mohl odpustit. Lze to napsat i bez ní.

 
Nahoru Odpovědět
29.6.2015 21:54
Avatar
Jan Poláček
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Jan Poláček:29.6.2015 22:01

Radši jsem měl mlčet :` Poradíš pro příště?

Nahoru Odpovědět
29.6.2015 22:01
Instrukce na adrese 0x77104f29 odkazovala na adresu paměti 0x00000014. S pamětí nelze provést operaci: written.
Avatar
Odpovídá na Michal Žůrek - misaz
Matěj Kripner:29.6.2015 22:04

Záhada. Dám vědět jestli to vyřeším. Naše diskuze se myslím ubírá špatným směrem. Už vím, za co jsem ztratil 25 bodů, ale 100-25+5 = 80. Chápu, že to trochu moc hrotím, ale v téhle situaci (nevysvětlení chyb) jsem už potřetí za sebou (fakt). To už pakt člověka trochu štve. Každopádně díky, že se o to dál zajímáš.

 
Nahoru Odpovědět
29.6.2015 22:04
Avatar
brambora
Člen
Avatar
Odpovídá na Michal Žůrek - misaz
brambora:29.6.2015 22:11
Kód jsem nestudoval detailně, moc tu o něj nejde.

Kdyz tu o kod nejde, tak priste by soutez mohla byt jako Machr na Funkcni aplikaci, a ne Machr na Algoritmy...

 
Nahoru Odpovědět
29.6.2015 22:11
Avatar
Odpovídá na brambora
Michal Žůrek - misaz:30.6.2015 6:28

algoritmus není o kódu. Někdo to vymyslel líp, někdo hůř.

 
Nahoru Odpovědět
30.6.2015 6:28
Avatar
brambora
Člen
Avatar
Odpovídá na Michal Žůrek - misaz
brambora:30.6.2015 8:46

Kdyby jsme se ridily dle definice, tak pro tuto soutez by stacil pouze pseodokod, ale rypat nebudu, nemam to za potrebi.
Jen me lehce vytocil tvuj vyrok o tom, ze o kod tu nejde. Take se mi zdalo, ze podle tveho hodnoceni jsi daval vetsi vahu vysledne aplikaci jako takove pred samotnou implementaci, a to mi prijde docela zcestne, kdyz jsme na socialni siti pro programatory. To jsem si mohl nechat zhodnotit program "laikem".

Abych tu jen nekydal spinu, tak samozrejme si tveho hodnoceni vazim, sice neni dokonale, ale lepsi jak dratem do oka.
Pro priste vim, ze:

  • je vhodne aplikaci pred publikaci vyzkouset na nekolika pocitacech, kdyz to funguje u mne, nemusi to fungovat u ostatnich (zvlast v Jave, tohle neni poprve :D )
  • neresit nechut vymysleni spravneho navrhu zanorovanim anonymnich trid/funkci
 
Nahoru Odpovědět
30.6.2015 8:46
Avatar
Odpovídá na brambora
Neaktivní uživatel:30.6.2015 9:11

Tu ti kód málokto dokáže oceniť, aj keď v tomto machrovi by sa mal hodnotiť IBA samotný algoritmus merania, pretože v zadaní nie je konkretizované, čo sa bude hodnotiť a za čo bude koľko bodov. Čítať kód bude každý z nás celý život, preto si myslím, že zrovna medzi programátormi na programátorskej sociálnej sieti by sa mala hodnotiť aj kvalita kódu a aj jeho efektvita, nielen výsledná funkčnosť aplikácie, o ktorú v tomto machrovi predsa vôbec nejde.

Nahoru Odpovědět
30.6.2015 9:11
Neaktivní uživatelský účet
Avatar
Odpovídá na brambora
Michal Žůrek - misaz:30.6.2015 9:45

kdyby šlo o kód, je to machr na Javu. Algoritmus se dá zapsat libovolně a nemusí být ani kódem. V podstatě i recept v kuchařce (častý příklad výkladu algoritmu na naší škole) je algoritmus. Algoritmus se dá reprezentovat třeba diagramem.

 
Nahoru Odpovědět
30.6.2015 9:45
Avatar
Odpovídá na Michal Žůrek - misaz
Neaktivní uživatel:30.6.2015 9:58

V tom prídpade by ná výhru v tomto machrovi malo stačiť napísať napríklad slovný opis algoritmu, bez implementácie.

Nahoru Odpovědět
30.6.2015 9:58
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Michal Žůrek - misaz:30.6.2015 9:59

Podmínkou v tomto machrovi byla Java, takže asi by to nestačilo.

 
Nahoru Odpovědět
30.6.2015 9:59
Avatar
Odpovídá na Michal Žůrek - misaz
Matěj Kripner:30.6.2015 11:15

Čili první výrok, že algoritmus se dá zapsat libovolně, zde neplatí. Pokud už je to omezené na Javu, určitě bych já netoleroval kód bez základních pravidel OOP. To je můj názor, zřejmě sis ty priority stanovil jinak.
Každopádně pokud někdo prostě stáhne soubor a měří potřebný čas, nenazval bych to algoritmem vhodným pro soutěž.

 
Nahoru Odpovědět
30.6.2015 11:15
Avatar
Odpovídá na Matěj Kripner
Michal Žůrek - misaz:30.6.2015 15:42

a přesto někdo naměřil 21 Pb/s nebo mu to vypsalo chybu (když už to teda něco vypsalo).

 
Nahoru Odpovědět
30.6.2015 15:42
Avatar
Odpovídá na Michal Žůrek - misaz
Štefan Pružinský:30.6.2015 16:05

A ten dotyčný aj napriek tomu nedokáže pochopiť ako k tomu došlo... :D Veď keď niečo delím 0, tak by mi mal vyskočiť Cannot divide by 0, alebo niečo podobné... A nie také obrovské číslo... o_O (Aj keď x / 0.x = x * x :` ). Ta Java je nejaká podivná...
Inak, dnes do som to skúšal na školských počítačoch (už opravené)...je tam veľmi rýchli internet, a aj napriek tomu ide všetko parádne... :)

Nahoru Odpovědět
30.6.2015 16:05
Najefektívnejším spôsobom debuggingu je modlitba. :)
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 51 zpráv z 51.