Jump to content

ZaKlaus

Uživatel
  • Příspěvků

    145
  • Registrován

  • Aktivní

  • Vítězných dnů

    5

Příspěvky posted by ZaKlaus

  1. Je fajn vidiet, ze sa kladie doraz na optimalizaciu, rozhodne v tom pokracuj.

     

    Co sa tyka komentarov, zvycajne zhrniem cely priebeh algoritmu v 2-8 vetach a dalej to neriesim. Preferujem vidiet API priamo, taktiez neuznavam komentovanie takmer kazdeho kroku (stare M2MP toto robilo, komentar skoro za kazdym riadkom, aj pri jasnych krokoch). Co sa tyka samotnej dokumentacie, mam zmiesane skusenosti, moze to byt dobra vec, ak maintainer nezabudne dokumentaciu aktualizovat (v opacnom pripade vznikne kolizia s realitou a robit s API, ktora nema jasne pouzitie, nikto veru nechce). Nepozeral som tvoj kod, cize ide len o hint.

     

    Suhlasim s konstantami na "magicke" hodnoty, ale len pri takych kde je nazov vseobecne znamy, napr. statisticke hodnoty by som nechal v povodnom stave. To ale aj zalezi na frekvencii pouzitia konstanty, ak sa casto opakuje, tak logicky si zavediem makro/konstatnu premennu.

  2.  

    ZaKlaus, nebolo by lepšie počítať znaky rovno vo while cykle? Myslím, že tu je zbytočné obsah stdinu ukladať do nejakej premennej, vzhľadom na to, že nás zaujíma iba počet znakov. Možno by si sa tak vyhol dynamickej alokácii a realokácii v každej iterácii.

     

    #include <stdio.h>
    
    int main(int argc, char *argv[])
    {
        unsigned int len = 0;
        while (getchar() != '\n')
            len++;
    
        printf("%u\n", len);
        return 0;
    }
    

     

    Hej, mas pravdu,

    DuFF++;

     

    EDIT:

    Ak by mu trebalo retazec, tak idealne by mohol realokovat po chunkoch kazdu X-tu iteraciu, pripadne to ulozit do zasobnika (ak ratame s limitom velkosti vstupu) a nasledne prekopirovat do dynamickeho pola.

  3. Hore mas uvedenu C++ verziu, dolozim C:

     

    
    #include <stdio.h>
    #include <string.h>
    
    int main(void) {
        
        // NOTE(ZaKlaus): Ziskaj retazec (volitelne si mozes spravit dynamicke pole.)
        char buf[128] = {0};
        fgets(buf, sizeof(buf), stdin);
        
        // NOTE(ZaKlaus): dlzka retazca - 1 (1 znak je whitespace)
        fprintf(stdout, "Pocet znakov: %lu\n", strlen(buf)-1); 
        
        return 0;
    }
    
    

     

    Tu je dalsia podoba tentokrat s dynamickym polom:

    
    #include <stdio.h>
    #include <string.h>
    
    int main(void) {
        
        // NOTE(ZaKlaus): Alternativna verzia (blizsia std::string)
        
        char *str = malloc(1);
        size_t len = 0;
        {
            char c;
            
            // NOTE(ZaKlaus): Citame znaky kym nedojdeme k whitespace
            while((c = getchar()) != '\n') {
                str = realloc(str, ++len);
                str[len-1] = c;
            }
            
            // NOTE(ZaKlaus): Retazec je potrebne ukoncit
            str[len] = '\0';
            
            // NOTE(ZaKlaus): Tentokrat sa sem whitespace nedostal, (pripadne vypis 'len-1', avsak chcel som zachovat strukturu prikladu)
            fprintf(stdout, "Pocet znakov: %lu\n", strlen(str));
        }
        free(str);
        
        return 0;
    }
    
    
  4. Pokúsil som sa emulovať situáciu a dospel som k tomu, že ten vhost s IP má byť označený ako default_server. (vo fielde `listen` dopíšeš default_server)

    Tým vlastne označíš daný vhost ako východzí. Avšak, tým pádom to vlastne nerieši aktuálny problém v prípade, že chceš do zložky localhost ísť iba cez IP, vzhľadom na to, že sa na danú adresu teraz dostaneš z akejkoľvek neregistrovanej adresy (napr. uwqsdljwqsdwqsd.ewwe.cz)

     

    Skúsim ešte niečo pohľadať, možno narazím na skutočné riešenie, avšak mám dojem, že tento malý problém sa dá taktiež riešiť už priamo vo webe napríklad (ak hostname <> IP -> gtfo)

     

    EDIT:

    tak nespecifikovanim default vhostu dosiahnem rovnaky vysledok a zaroven vyriesim aj spomenuty problem (kt. ale vytvara dalsi), kazdopadne mam zhodny config s tvojim a funguje to. Daleko sme nezasli.

     

    Example configu, kt. používam:

    Default -- kvazi tvoj admin.ewwe.cz
    
    server {
    	listen 80;
    	listen [::]:80;
    
    	root /var/www/html;
    
    	index index.html index.htm index.nginx-debian.html;
    
    	server_name madaraszd.net;
    
    	location / {
    		index index.php index.html index.htm;
    		try_files $uri $uri/ /index.php?$args;
    	}
    
    	location ~ \.php$ {
    		include snippets/fastcgi-php.conf;
    		fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    	}
    	location ~ /\.ht {
    		deny all;
    	}
    }
    
    vhost s pristupom cez IP:
    
    server {
    	listen 80 default_server;
    	listen [::]:80 default_server;
    	
    	server_name _;
    
    	root /var/www/fyz.madaraszd.net;
    
    
    	index index.html index.htm index.nginx-debian.html;
    
    	location / {
    		index index.php index.html index.htm;
    		try_files $uri $uri/ /index.php?$args;
    	}
    
    	location ~ \.php$ {
    		include snippets/fastcgi-php.conf;
    		fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    	}
    
    	location ~ /\.ht {
    		deny all;
    	}
    }
    
    
  5. Visual Studio 2015 s default projektom.

    1>------ Build started: Project: ConsoleApplication1, Configuration: Debug Any CPU ------
    1>  ConsoleApplication1 -> d:\Documents\Visual Studio 2015\Projects\ConsoleApplication1\bin\Debug\ConsoleApplication1.exe
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
    
    
  6. To bude z toho dovodu, ze pristupujes k samotnej strukture strom, pozor ale, nase pole sa vola *stromy*

     

    JcAPvjp.png

    To su dve odlisne veci.

     

    Mensia rada: Odporucam si nastudovat algoritmizaciu a nasledne C#, lebo skusenosti z Pawn ti velmi nepomozu. :)

  7. Nieco na sposob:

    struct strom
    {
        string nazov;
        int typ;
    };
    
    // .......
    
    strom[] stromy = new strom[]{
        new strom{ nazov = "Strom1", typ = 11},
        new strom{ nazov = "Strom2", typ = 12}
    };
    

    Nerobim v C#, cize experimentuj.

     

    Taktiez v tomto pripade vznika pole stromov na halde.

  8. Sice, napada ma, mal som podobny problem. GTA V mi isiel na 8 fps a Fallout 4 podobne. Formatoval som system a nahodil windows 10, problem uz nebol. Zrejme som mal nejakeho minera v PC, aj ked nic som nezaznamenal. Proste, vacsina hier mi isla na 8-12 fps kdezto normalne bezi nad 60. Jak som napisal, po formate uz problem nebol. Dodnes neviem o co islo, tiez neviem ci mas daco podobne.

     

    Kedy sa objavili priznaky? Co si naposledy instaloval?

×
×
  • Create New...