Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Tolik rozruchu
jen v Lopuchu

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Archiv klubu JavaScript [ŽP: neomezená] (kategorie Programování) moderuje Šéf Lopuchu.
- http://al3x.3web.cz/js/ - najdete zde zaklady javascriptu je tam i docela dobre vysvetleny cookies
- specifikace ECMAScriptu - standard založený na JavaScriptu a JScriptu.
Download Opera
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
   
[ 150 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
al3x 12.4.2005 13:33  142
Sakra. Kdyz si ctu, co vsechno jsem tam ja prehlid.. Proste jsem to bral jako "tady je nejaky prirazovani" a podrobneji jsem to nezkoumal. Mno nic.
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 12.4.2005 13:18  141
Trofozoit: Na prvni pohled tam nevidim nic az tak straslivyho, byt osobne bych nektere veci psal jinak.
Predevsim je JS sice velmi tolerantni, co do typu promennych, presto ja osobne (cili neni to nic jineho nez nejaky osobni pocit) nerad menim jedne promenne typ v prubehu programu. Takze jak do ni jednou priradim cislo, uz do ni priste nedavam string, to radsi vymyslim jinou promennou. Timto narazim na takove veci jako var delka = document.getElementById("delka").value; delka = parseInt(delka); Bud bych tam vytvoril dve promenne, nebo bych zrovna tohle asi spojil do jednoho volani.
Volani Math.pow s takovymito hodnotami asi skutecne bude zpomalovat, mozna bych skutecne zvazil toho Avogadra tam normalne vypsat. Navic ale jeste jedna vec - vsimni si, ze tam nasobis tim Avogadrem Math.pow(10,-9), to uz je uplne zbytecne - kdyz oboje vyhodis a jedno z toho nahradis Math.pow(10,12)*6.022, tak si usetris jedno nasobeni a jedno volani Math.pow().
Jako drsna finta mi prisla ta sekvence vezmi vysledek - udelej z nej String - zjisti jeho delku - nebylo by jednodussi spocitat neco jako desitkovej logaritmus? :-) Uz jenom proto, ze kdyz pocitas mez, tak je vysledek String, takze se to zase musi prevadet zpatky na cislo.
Tak asi tak nejak. :-)
al3x 12.4.2005 13:12  140
Ja myslim, ze je to v klidu.
trofozoit Trofozoit DNA, DNA - come out and play 12.4.2005 12:39  139
Napsala jsem kdysi takový jednoduchý skriptík na přepočítání něčeho co často používám, a pamatuju si, že když ho při jedné příležitosti viděl někdo kdo tomu rozumí, tak se nad ním dost ušklíbl.
Já nejsem programátor a ten skript funguje dobře, takže mi to bylo docela jedno, nicméně nejspíš na něj budu někde odkazovat, tak bych ráda věděla, jestli tam není nějaká fakt ošklivá lamařina za kterou by se mi někdo vysmál. Jako jenom fakt očividný věci, co vás napadnou když se na to kouknete.

function PocetKopii() {

var hmotnost = document.getElementById("hmotnost").value; //načteni, parsování, nahrazení desetinné čárky
hmotnost = parseFloat(hmotnost.replace(",","."));
var delka = document.getElementById("delka").value;
delka = parseInt(delka);
if (isNaN(hmotnost)|| isNaN(delka) || delka == 0) {alert("Špatně zadané")} //kontrola správnosti zadání
else {
var Avg = 6.022*Math.pow(10,23);
var vysledek = ((hmotnost*Math.pow(10,-9))/(delka*660))*Avg; // výpočet
vysledek = Math.round(vysledek); // zaokrouhlení
vysledek = vysledek.toString(); // převedení na 10^x-tou
var rad = vysledek.length;
mez = vysledek/Math.pow(10,rad-2);
alert("Výsledek je " + Math.round(mez)/10 + " x 10 na " + (rad-1) + " kopií\/\u03bcl");}

}

Slouží to na velmi primitivní úkol, spočítat běžnou chemickou rovnice (n=m/Mr; n*N=počet částic - tady jen zkompikovaná tím, že Mr se počítá z počtu bází DNA Mr=bp *660 a zadáním hmotnosti v nanogramech místo normálníc gramů), ovšem protože pracuje s velkými čísly (Avogadrova konstanta je 10 na 23) a předpokládá zadání v daleko vyšších jednotkách než mám k dispozici, což činí tu věc moc zdlouhavou a v Excelu, kde se to běžně počítá mi to přišlo dost jednorázový a taky docela omezený, tak jsem to udělala jako webovou "aplikaci".

Takže jádrem je vlastně tahle rovnice, pak bylo potřeba nahradit u nás používanou desetinou čárku tečkou, udělat kontrolu zadání, a poslední část (co zabrala nejvíc práce ;) nahradit výsledný výpočet např. 35321589756.256849 zaokrouhleně jedno desetinné místo a řád "3.5 krát 10^8".

Vím, že tam občas mám možná zbytečně Math.pow funkce, což možná počítání zpomaluje, ale napsat tam 23 nul mi přijde daleko nepřehlednější a stejně je to tak malý, že IMHO na tom až tak nesejde, a asi jsou některý kroky moc rozepsaný, ale jednak se v tom pak líp vyznám a jednak to slučování je někdy problém (pro mě).
badguy 14.1.2005 15:42  138
Kdokoliv: paráda, funguje to perfektně, díky moc :-)
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 14.1.2005 15:23  137
"0000011".substr(5, 2). A pokud by to vratilo nahodou "01", tak potom "0000011".substr(6, 2), ale to mi prijde min pravdepodobny. Jo a v tomhle specialnim pripade by asi melo stacit i "0000011".substr(5).
badguy 14.1.2005 15:14  136
Kdokoliv: mohl bys mi prosím napsat přesnou syntaxi výrazu, pokud bych chtěl například z řetězce 0000011 dostat 11?
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 14.1.2005 15:05  135
No takze odpoved viz klub Software, pokud je neco nejasneho, tak pokracujici debata radeji tady. :-)
badguy 14.1.2005 15:03  134
Myslíte, že by šlo sesmolit výraz v Java Scriptu, který mi vybere část řetězce, třeba poslední tři znaky nebo tak?
al3x 4.1.2005 19:44  133
TVX: Ano, tak nejak. Pokud je to rozhrani JS, tak je dulezity, aby ta neznama adresa nebyla nikde patrna a ani z niceho vyvoditelna. Proto ta jednostranna (!) sifra. Neco jako hesla v /etc/passwd, ktera se kvuli pouziti brutalforce nakonec stejne musela vyhodit.
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 4.1.2005 14:31  132
Dik vsem, nemelo by jit o nic co by melo bejt superzabezpeceny ale jak koukam, standardni zpusob pousteni nekoho nekam na principu ze vlastne zna nebo ziska nejakou adresu zustava porad ten nejlepsi. Jenom je to mirne obaleny nejakym rozhranim.
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 25.12.2004 04:23  131
AL3X: Jo takhle, no to by mozna skutecne slo.
al3x 25.12.2004 01:21  130
Videl jsem pokus o zabezpeceni heslem.
Spocivalo to v kombinaci jednosmerne sifry (nevim jestli to byla md5) a presmerovani na soubor, ktery mel stejne jmeno jako to heslo.

Takze heslo bylo treba "abdeef", prohnalo se to nejakym hashovanim, vylezl z toho nejaky desetimistny string, kdyz se shodoval s desetimistnym stringem v tom scriptu natvrdo zarvanym, tak se to presmerovalo na "abdeef.html".
Vyhoda je v tom, ze i pri znamosti toho desetimistnyho stringu a desifrovani hrubou silu muze dotycny najit odpovidajici heslo (treba "aaavvv"), ale presmeruje ho to na neexistujici stranku - vysledek error 404.
Kdyz se ale dotycny preklepne, tak to se stringem asi matchovat nebude a script muze jen zahlasit chybu a nabidnout zadani hesla znovu.
Funguje to (na JS reseni) celkem uspokojive, jen se nesmi nikdo dostat k historii nebo zkouset brutalforce moc dlouho.

Presto bych na takovy veci pouzival _vzdy_ server-side scripty.
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 24.12.2004 21:35  129
tvx: Pomoci (jenom) JS zadnou autentifikaci neudelas. A to ani s pouzitim md5ky. Tu JS mimochodem sam neumi, ale je na to napsana nejaka knihovna (jestli se tomu tak da rikat), pouziva ji treba nyx.
Ale stejne - tak budes mit script, co od uzivatele nacte nejake heslo, prozene to s md5kou a porovna s necim - a co dal? Vzdyt si ten script muze kazdej precist a zjistit, co se bude dit, kdyz porovnani uspeje.
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 24.12.2004 19:38  128
overeni pomoci heala v JSNapada vas nekoho jak pomoci JS udelat nejakej pristup chranenej heslem?
me moc nenapada jak jednoduse zajistit aby heslo proti nemuz se bude overovat nebylo primo ve skriptu ale ani kdyz ho ulozim jinam tak nevim jak zajistit aby se k nemu nedalo dostat. napada me leda pouzivat hash MD5. umi javascript md5 nebo jinaj hash?

[ 150 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt