Jump to content

mimic

Uživatel
  • Příspěvků

    814
  • Registrován

  • Aktivní

  • Vítězných dnů

    4

mimic last won the day on 9. Duben 2017

mimic had the most liked content!

Reputace

27 Dwaine

Kontaktní údaje

  • Web
    http://ophite.cz
  • Skype
    mimic1337

Návštěvníci

1848 profile views
  1. Já vim, jsem si toho taky všiml, ale nemám právo to upravit, takže klidně tu tečku odeber
  2. Ahoj, koukám, že tu vznikla nová sekce, tak přidám moji serií tutoriálů na C#. Série obsahuje 45 dílů. Současně již nepokračuje, protože není nálada ani čas. Takže doufám, že to někomu pomůže aspoň do začátků a nedělal jsem to zbytečně. Takže ať se líbí Kompletní série je zde: (jednotlivé díly potom na pravé straně) https://www.youtube.com/watch?v=k2KqJEP05Z4&list=PL8428DD4872FA7FB3&index=1 Případné dotazy, cokoliv, kolem videí, C# můžete psát sem. Určitě se najdou tací, kteří dokáží zodpovědět dotazy ohledně tohodle téma
  3. Jsem asi špatně napsal, destruktor by se měl vždy zavolat při zavolání delete, spíš jde o to, že při složitější implementaci je možné udělat virtuální destruktor a potom při vytvoření implementace nemusí být zcela jasné a může se i stát, že se nezavolá ten destruktor z implementace, ale z rozhraní. Je to sice vic specifická záležitost, ale v C++ je to možný... ale pokud by se to stalo, tak to je většinou chyba samotné implementace, né jazyku, ale v jazycích, které mají vlastní GC, bych tomu neveřil, tam se ani nedoporučuje používat destruktor Jasně, pokud se bavíme o OOP jako takovým tak máš pravdu, ale vzhledem k tomu, že je to spíš víc o C++ kde to OOP je trosku jiný a jinak se k nemu pristupuje, tak proto jsem i psal, ze je lepsi tenhle topic udelat jako OOP pro C++, aby ostatni vedeli jakou ma syntax v tomhle jazyku... idealni navod na OOP by byl v jave, ktera ho striktne dodrzuje uz od sameho pocatku, ale to uz jsem psal Tak, mám chvíli čas, tak jsem se rozhodl dodělat ten zbytek 8) v tom zdrojáku pod "this" ti chybí návratové typy u 2 metod v deklaraci třídy 9) možná by bylo dobré zmínit, proč preferuješ a co to znamená to "m_" u instančních proměnych, ono je to dost různý, posledni dobou (pár let) spíš "frčí" samotné podtržítko v případě privátních členů. Jinak opět zmíním, že to jde napsat i tímto stylem (to neber jako opravu, jen bych to zahrnul i do ukázky, protože jak jsem řekl, tak ukazovat OOP na C++ je trošku jiný než v jiných jazykách, kde je striktně daný zápis) Web(int traffic, string url, string owner) : traffic(traffic), owner(owner), url(url) // vubec nevadi, ze nazev člena s parametrem je stejny, C++ si s tim poradi i bez "this" {} 10) Nechybi ti tady neco? print pawnocz.getUrl() + " má " + pawnocz.getTraffic() + " návštěvnost."; /* pawno.cz má 50 návštěvnost */ 11) U toho slova "static" mě zajímá, jak bylo myšleno tohle.. "Jediné plus je mají přístup k třídním proměnným a volat třídní metody", protože to není pravda, cokoliv je deklarovaný jako static, tak je úplně oddělený on instance třídy, tzn. jak metod, tak proměnných Ten zbytek je relativně ok, jen bych asi zmínil věci ohledně polymorfismu, že tenhle řekneme zpusob vývoje větsinou pracuje s rozhraním a ne s abstraktnima tridama. V C++ jelikoz neni klicove slovo abstract nebo interface, tak se to zajistuje tak, ze jakmile ma trida aspon jednu metodu abstraktni (metoda = 0), tak se automaticky prevadi na abstraktni tridu. V pripade rozhrani je to tak, ze trida musi mit pouze public metody a vsechny abstraktni. Coz je neco, s cim tento tutorial nepocita a je to tez soucast OOP A potom klicove slovo static je dobre pouzivat minimalne. Je dobre na metody napr. pro utilit tridy a tak, ale co se tyce statickych clenu tridy, tak opravdu zvazit, zda je nutne to delat jako staticky. Pri nevhodnem pouziti je to vic problemu nez uzitku a o bezpecnosti kodu ani nemluvim V poslední řadě tady přikládám teda ukázku k předchozímu bodu 6. kde je mozne pristupovat k privatnim clenum (pouze C++), v jinych jazykach to mozne neni #include <iostream> // pro cout class B; // deklarace tridy pro pouziti ve tride A class A { private: int valueFromA; public: A(int value) : valueFromA(value) {} void run(B ; // operace se tridou B ve tride A }; class B { friend class A; // umozni pristupovat tride A k privatnim clenum private: int valueFromB; public: B(int value) : valueFromB(value) {} }; void A::run (B { valueFromA = b.valueFromB; // b.valueFromB je private std::cout << valueFromA; // vypise 20 } int main() { A a(10); B b(20); a.run(; // vypise 20 return 0; }
  4. Jako jo no, teď dělám třeba video o 4:30min a trvá to zhruba 24h a přitom CPU je na 25% a žere 6-8gb ram, což mě trosku zarazilo kor je to x64 aplikace... kdyby to využilo všechny zdroje, tak to je tak 3x rychlejší Ono se dost těžko hledá obrázek, který je jednak pěkný a je jakoby na stranu, že je tam místo na ten kruh... ale plánoval jsem, že bych pár skladeb od ACDC nechal tenhle a potom změníl jinak nightcore tvoří asi 90% toho co mám, takže po ACDC jich je asi 8 a potom už jen nightcore ^.^ Jo to máš pravdu, ale teď s tím už nic neudělám, trvá to fakt dlouho to rendrovat znovu jen kvůli obrázku, takže to udělám jak jsem napsal předtím.. od ACDC jich mám 5, potom bude změna obrázku
  5. Ano, celé je to dělané v After Effects Přidal jsem druhé video, v 19:00 se zveřejní
  6. Určitě je to + pro lidi, kteří začínají v C++ a je to i přehledné Ale mnohem efektivnější by to bylo ukázat třeba v C# nebo Javě, ve kterým (a to hlavně v Javě) je všechno objekt a striktně se řídí OOP. Myslim si, že některý lidi to může rozhodit, protože syntax je v C++ jiná a to hlavně v pohledu interface, který se řeší úplně jinak, než v jiných jazykách. Ale to neber jako kritiku, spíše takový hint a možná, by to bylo dobré napsat i do titulku A teď nějaké mé postřehy, co jsem v rychlosti zahlédl. 1) jako přiklad uvádíš třídu Osoba, což proti tomu nic nemám, spíš mě vyděsily ty datové typy proměnných (sice to s OOP nemá nic společného, ale když už, tak ať to dává aspoň smysl) enum Gender : unsigned { MALE, FEMALE } class Osoba { private: // i když je private vychozí modifikátor, je dobré ho uvádět taky string name; unsigned age; // nevidim duvod pouzivat 4byte int, kdyz vek muzu ulozit do 1byte Genre gender; // pokud bude bool, tak false bude jako co? muz? O_o } 2) init konstruktoru bez parametru je lepší zapisovat jako Web() : traffic(50) {} 3) vytvoření instance Web se dělá 2 způsoby, né vždy je nutné alokovat třídu, pokud to není vyložené nutné, tak proč to dělat, potom je potřeba řešit uvolnění (většinou přes destruktor) a ještě tam máš chybu // tohle tvoje prece nemuže fungovat Web pawnocz = new Web(); /* alokace objektu Webu s názvem pawnocz */ // správně (nova instance "new" vraci pointer na alokovanou oblast v pameti) Web* pawnocz = new Web(); pawnocz->IncreaseTraffic(); // volani // nebo bez alokace a pristupovat přes "tecku" Web pawnocz; pawnocz.IncreaseTraffic(); // volani 4) tohle tvoje tvrzení "a to zbytečně vytváření setterů a getterů. Vytvoříme-li setter a getter pro privátní proměnnou, rovnou ji můžeme nechat zviditelnit celou." není pravda... Dost záleží na úhlu pohledu, díky tomu, že existuje getter/setter, tak je možné provést více operací než jen to volání/zápis... např. volat různé události, překreslení, nastavit další hodnoty, které uzce souvisí s nastavovanou apod. Vždy je dobré používat getter/setter i přesto, že jen nastavuji/ziskavaji hodnotu 5) co se týče destruktoru, tak je dobre se na ni nikdy nespolehat, vzdy je lepsi varianta udelat metodu, ktera vsechno uvolni a tu volat v destruktoru a idealne i na miste, kde uz s objektem nechce programator dale pracovat 6) a tohle tvrzení "Private je přístupná POUZE a JEN POUZE v dané třídě" také není pravda co se C++ týče... v C++ existují tzv. spřátelené třídy, ve kterých je možné volat i privátní fieldy mezi sebou. 7) v tom jednom příkladu nemáš konstruktor a destruktor public U toho tého "this" jsem skončil, moc dlouhý )
  7. Určitě to půjde v podobném duchu, taky jsem několik dní poctivě vybíral, jsem poměrně náročnej v tomhle Současně se mi rendruje druhé, takže někdy večer bude. Je to další výborný song, který se hodně lidem vryl do paměti.
  8. Ono jak u čeho, některý songy maji volnější licenci, takže ti to nechají, ale můžou se tam přidat automaticky např. reklamy. U této skladby to tak je
  9. Ahoj všem, Úvod: Už jednou jsem chtěl udělat takový hudební mix, ve kterém budou oblíbené songy (třeba do mobilu/auta apod.), kterých je spousta na youtube. Takže jsem udělal 3 videa, kde v každém bylo 10 skladeb. Bohužel youtube mi třeba jednu skladbu zablokoval a celé video následně na to ztratilo zvuk Proto jsem se rozhodl, že to udělám jinak a udělám album vyloženě na youtube a budu uploadovat skladby po jedné. Hledal jsem inspiraci a nemůžu si pomoct a libí se mi jak to má NCS, takže jsem se pokusil to trošku napodobit a "vylepšit", což nevím jak se mi podařilo, ale líbí se mi to taky Oblíbených skladeb mám hodně (přes 100). Pokusím se je postupně vytvářet (jedno video na mém PC mi zabere ~17h s tím, že nemám možnost to dělat nonstop). Budu nebo pokusím se sem vkládat nová videa a rád bych vás požádal o zhodnocení, co je dobrý, co ne a jak se vám to libí Jinak veškerá videa (hudbu) poslouchám hlavně v autě, takže se nejedná o "ukolébavky" Pokud o to bude velký zájem, tak se můžu pokusit to nahrávat nějak v pravidelných intervalech. Hudební videa (seznam - https://www.youtube.com/watch?v=cWFBtyIu5bY&list=PLPdb5aZu5fvND9FhrMMVnnNOKyxqWqnSB): 12.04.2017 (20:00) - https://www.youtube.com/watch?v=Up8lwcKm7Hk 11.04.2017 - https://www.youtube.com/watch?v=1vIXjVF1H9I 08.04.2017 - https://www.youtube.com/watch?v=cWFBtyIu5bY 07.04.2017 - https://www.youtube.com/watch?v=OTK1FdX-R7k
  10. 10h mají všechny songy co mám, ale to je docela dost pro render videa Proto jsem to rozdělil na části. Případně potom muzu spojit všechny videa do jednoho velkýho, to by už mělo byt mnohem rychlejší než rendrovat 10h video. A na Youtube to dávám do vlastní kategorie, která bude přehrávat všechny najednou, takže je to na každým Ale pokud ti jde o to, že by si měl 10h video s jedním songem, tak není problém a můžu udělat Přidán Volume #2 Přidán Volume #3 a #4
  11. vladasavel: Tohle mi moc neříká, ale zkusím nějaký ukázky/hudbu najít na tohle téma a pokud se bude líbit, tak zařadim do mého alba woody12: Jasně, však nikoho nenutím to sledovat;) Vím, že mixů je hafo, jen jsem zatoužil mít vlastní mix, kterej bude odrážet můj styl hudby a třeba se najdou tací, kteří mají stejný vkus.
  12. Ahoj, nedávno jsem se nasral, že poslouchám furt jednu a tu stejnou kolekci hudby (už pár let), tak jsem se rozhodl, ze podniknu menší výpravu do hloubi Youtube kanálů, abych našel svatý hudební grál pro mé uši. Trvalo mi to asi týden a dal jsem dokupy nějakou sadu, kterou aktuálně poslouchám v autě a v mobilu. Zároveň jsem oprášil moje velmi staré skilly v tvorbě videa a pokusil se vytvořit po velmi dlouhé době "pozadí" hudby. Preci jenom mít na pozadí jeden wallpaper a mít puštěnou hudbu umí každej trouba, že. Proto jsem touto cestou jít nechtěl. Můj plán je takový, že budu vydávat videa po deseti skladbách (čas jednoho videa 30-60 min, dle délky skladeb). Zatím mám v plánu udělat 16.částí. Protože nemám přimo preferovaný žánr, tak se bude vždy jednat o mix např. elektriky, dance, pop, jazz, rock, punk, rap, atd... Prostě hudby, která se libí mě i světu (má většinou dobré hodnocení). U každého videa uvedu samozřejmě názvy songů a časy. V každém případě jsem dnes hodil na YT první část této epické hudební série, takže pokud se Vám to líbí, tak like/sdílení. Komentáře můžete psát sem i přímo k videu. Videa budu přikládat vždy do prvního příspěvku (tohoto). jinak přeji příjemný poslech. Případně můžete zde hlasovat, jakej song se vám nejvíce libí. ;-) Volume #1: https://www.youtube.com/watch?v=KyBr-AkGd_0 Volume #2: https://www.youtube.com/watch?v=z7oVvwak3Qo Volume #3: https://www.youtube.com/watch?v=TMyZBtXn49E Volume #4: https://www.youtube.com/watch?v=wMGJwPpmrDc Volume #5: - ? -
  13. Tak stačí, když jí odebere z aplikací, který se spouští po spuštění PC. Jinak pokud se již spustí, tak je to težší, musí mít po ruce nějakej externí nástroj na zabíjení procesů a musí najít onen proces a zabít ho dřív nez ztratí kontrolu nad klávesnicí, myší a potom pamětí.. Je to TimeBattle ;-) Ona samotná app má trochu jiný chování, když jí pustí uživatel a administrátor.. co se týče úprav v registrech.. při adminu mění i informace i systému a hlavně se tyhle všechny změny dotknou všech uživatelů. Jaj.. myslim, že jsem to trochu přehnal... jsem si zkusil vygenerovat UML diagram a má rozměry 36691x5828 a skoro 10mb :-D Pokud je někdo zvědavej tak: http://uloz.to/xa2Xqkny/classdiagram1-png (je to jen knihovna) Celá app včetně ty libky mi trvala asi 2-3 týdny večerního času...
  14. Otestovat antivirem jsem to nezkoušel, ale vzhledem k tomu, že to je celý obfuskovaný, tak to hodí nějaký warningy: https://www.virustotal.com/cs/file/0069d74b824ee22f39cac8c7063bce35c907468ab4c01b84f9fb7bc2d5085f9f/analysis/ Zkoušel jsem ještě čistou knihovnu a tam je 1 hrozba z 57, konkrétně "Mal/MSIL-BM" což je paradoxně warning na C# api :-D To samí jsem zkoušel s čistou binárkou a tam je dokonce o 1 hrozbu víc než ve finální verzi.. nechápu jak to vyhodnocuje, ale v zásadě tam jsou samí MSIL warningy, což je v pohodě.. akorát nechápu, jak se tam dostal "Trojan.Win32.Qudamah.Gen.18" O_o Jinak ano, většinou všechno co napíšeš v .NET je bez detekce viru, to by se ani M$ nelíbilo, kdyby jim jejich API detekovaly antiviráky.. já tam v podstatě dělám jen volání metod a nějakou logiku, aby to bylo detekovaný, tak to musí najít přímo kus zdrojáku, kterej je v AV databázi... takže pokud stejný chování napíšeš v C# tak to nemusí být detekovaný jako kdyby si ho napsal třeba v C++
  15. Om3n Antivirák neřešim, je to psaný v C#, takže nedetekovatelný.. bylo do detekovaný jen případě, že jsem používal rootkit z c++ jako embeded source, ale ten tady není ĐaVe Jo, to se mi kdysi dávno taky stalo, potřeboval jsem něco otestovat a z nějakýho důvodu si mě smazal z kontaktu :-D A přitom to bylo poměrně neškodný, teda.. vlastně to byl trojan, takže se místama divil, že PC dělá něco jinýho než obvykle eXpresS<-Unnamed Vážně? :-D Jak jsem říkal, pokud by byl zájem, tak můžu poskytnou statickou libku, co obsahuje všechny tyhle "featury". PS: Zapoměl jsem doplnit, že si ještě app vytvoří svojí kopii pečlivě ukrytou a pozměněnou a automaticky se spouští po startu s rychlejší odezvou než poprvé. Celkem pěkná vlastnost je, že na žádnou funkci není potřeba lokální administrátor! A dokonce ta kopie nejde smazat ani samotným administrátorem! :-D
×
×
  • Create New...