Mimic projects
SEO
Značky: Všechny, C#, Tutorial, App, Game, Test, Hack, C++/cli, C++, Java, Xna, C++/qt, Lib

[ 8.12.2013 ]Generátor životopisu 2

Informace:
- První verze této aplikace byla C#, ale bohužel na systémech jako linux apod. nefungovala, takže jsem to celé přepsal do javy
- Veškeré možnosti nastavení životopisu jsou totožné jako měla předchozí verze v C#, jen jsem něco opravil nebo vylepšil (to se mi ve verzi v C# už dělat nechtělo)
- Něco jsem kompletně přepsal. Jako třeba správu jazykové podpory, kde si každý může přidat nebo upravit jazyk který chce
- Co se týká vstupů, tak se prakticky nic neošetřuje (vše je ve formě textu), takže je možné si vstupy částečně přizpůsobit podle sebe
- Všechny vstupy stejně jako u předchozí verze podporují html tagy

Použité prog. jazyky: Java

Stažení verze: 1.3

Značky: java, app

Changelog

1.3
- výstupní soubor je v HTML5
- všechny kolonky podporují HTML tagy
- možnost exportu/importu celého nastavení do šifrováného souboru
- vytváření náhledu bez nutnosti uložení
- předvyplněné kolonky, které vám usnadňují rychlejší tvorbu (je možné je editovat v jazykovém souboru)
- možnost přidat vlastní fotku
- program je kompletně v CZ případně EN
- profil se při uložení aktualizuje na verzi programu (není možné ho poté otevřít ve starší verzi)
- více jazyčná podpora (otevřete .jar třeba v raru a do adresáře languages přidejte další jazyky)
- možnost přidat datum vytvoření na konec stránky životopisu, případně skrýt určité prvky
- možnost zobrazit nebo skrýt rámeček okna (dvoj-klik na panel s menu)
- detekce změny informací profilu, která má vliv na obsah souboru s profilem
- okno aplikace má možnost změny velikosti (předchozí verze neměla)

Obrázky:

[ 6.5.2013 ]File Updater

Informace:
- Tato knihovna obsahuje 3 třídy. Třída FileHasher, která vytváří hashe ze souborů, třída FileHasherExporter, která vytváří výstupní soubor s hashem (formát XML, textový soubor a zabezpečený soubor), který poté využívá druhá třída FileUpdater
- Třída FileUpdater aktualizuje lokální soubory podle aktualizačního souboru ze vzdáleného serveru

Použité prog. jazyky: C# (.net 4.0)

Stažení verze: 1.2 + doc

Značky: c#, lib

Vlastnosti pro třídu - FileHasher

- umožňuje vytvářet hashe ve formátech md5, sha1, sha256, sha384, sha512 a ripemd160
- možnost vytvoření jak jednoho souboru, tak i více nebo rovnou celého adresáře i s podadresáři

Vlastnosti pro třídu - FileHasherExporter

- podporuje export do souboru XML (výchozí) a textový soubor (Simple)
- podporuje také export do bezpečného souboru (Secured), kde není možné jednoduše zjistit název (cesty k souborům) a hashe

Vlastnosti pro třídu - FileUpdater

- celá aktualizace souborů se provádí asynchronně přes jiné vlákno
- celý proces je řízen událostmi
- kontroluje existenci souborů i jejich hashe
- automaticky při nějaké neshodě stahuje soubor ze serveru na kterém je umístěn (stahování probíhá po jednom souboru)
- možnost stahovat soubory do vlastního adresáře
- podpora událostí pro Cross-Thread z jiného vlákna (třeba ve formuláři)

Obrázky:

[ 27.4.2013 ]PluginLoader (správa vlastních pluginů)

Informace:
- Umožňuje snadné vytváření, načítání a používání vlastních pluginů v aplikaci
- Možnost volání funkcí, vlastností, událostí, zdrojů z pluginu
- Má široké použití (lokalizace, čistě pro zdroje (obrázky, zvuky..), vlastní formuláře, úprava UI atd.

Použité prog. jazyky: C# (.net 4.5)

Stažení verze: 1.1 + doc

Značky: c#, lib

Vlastnosti

- velice snadná práce s pluginy
- umí načítat nebo odebírat pluginy za chodu aplikace
- systém příkazů (je možnost ovládat plugin pomocí vlastním příkazů)
- podpora formulářů a kontrolních prvků (GUI)
- podpora jednoho i více zdrojů (resources), kde je možné načítat cokoli (texty, obrázky, hudbu...)
- identifikace pluginu pomocí unikátního GUID, takže název pluginu není důležitý
- možnost načtení jednoho pluginu nebo rovnou celého adresáře s pluginy

Jak si vytvořit vlastní plugin

- pro vytvoření vlastního pluginu je důležité postupovat těmito kroky

1) Aplikace která bude používat pluginy a i samotné pluginy musí obsahovat referenci na PluginLoader
2) Plugin musí být umístěn ve jmeném prostoru mimic.Plugin
3) Hlavní třída v pluginu se musí jmenovat Plugin a musí dědit od PluginBase
4) Přepsat implementaci na vlastnost Guid (vytvořit vlastní guid pro plugin)

[kód] Minimální nastavení

using mimic.PluginLoader;

namespace mimic.Plugin
{
    public class Plugin : PluginBase
    {
        public override string Guid
        {
            get { return "VlastniGuid"; }
        }
    }
}

[kód] Běžné nastavení

using mimic.PluginLoader;
using System;

namespace mimic.Plugin
{
    public class Plugin : PluginBase
    {
        public override string Guid
        {
            get { return "VlastniGuid"; }
        }

        public override string Author
        {
            get { return "mimic"; }
        }

        public override string Description
        {
            get { return "Základní informace"; }
        }

        public override Version Version
        {
            get { return new Version(1, 1, 0); }
        }
    }
}

[kód] Ukázka zachycení příkazů v pluginu

using mimic.PluginLoader;
using System.Windows.Forms;

namespace mimic.Plugin
{
    public class Plugin : PluginBase
    {
        private Form form;

        public override string Guid
        {
            get { return "Commands"; }
        }

        // ve formuláři se musí předat instance
        public override void ParentForm(Form form)
        {
            this.form = form;
        }

        protected override void CommandReceiver(string command)
        {
            switch (command)
            {
                // ukončí furmulář
                case "close":
                    if (form != null)
                        form.Close();
                    break;

                // odebere tento plugin
                case "unload":
                    PluginLoader.PluginLoader.Unload(Guid);
                    break;
            }
        }
    }
}

[kód] Kreslení na formulář přes plugin

using mimic.PluginLoader;
using System;
using System.Drawing;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace mimic.Plugin
{
    public class Plugin : PluginBase
    {
        private Random r = new Random();
        private Form form;

        public override string Guid
        {
            get { return "WindowColorChaos"; }
        }

        public Plugin()
        {
            // při odebrání pluginu je nutné odebrat i události na formulář a
            // nastavít původní barvu formuláře
            OnDeactivated += () =>
            {
                if (form != null)
                {
                    form.Paint -= Paint;
                    form.BackColor = Color.FromKnownColor(KnownColor.Control);
                    form.Invalidate();
                }
            };
        }

        // ve formuláři se musí předat instance
        public override void ParentForm(Form form)
        {
            if (form != null)
            {
                this.form = form;
                // přidá se funkce do události pro vykreslení na formulář
                this.form.Paint += Paint;
                // automaticky bude překreslovat formulář každých 500ms
                PeriodicRepaint(500);
            }
        }

        // je voláno událostí pro vykreslení na formulář
        private void Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            // vygeneruje náhodnou barvu na pozadí formuláře
            g.Clear(Color.FromArgb(r.Next(0, 255), r.Next(0, 255), r.Next(0, 255)));
        }

        private async void PeriodicRepaint(int delay)
        {
            // dokud formulář bude existovat a plugin bude načten
            while (!form.IsDisposed && IsActivated)
            {
                form.Invalidate();
                await Task.Delay(delay);
            }
        }
    }
}

[kód] Pár ukázek použití knihovny PluginLoader

// bude automaticky každou 1s kontrolovat adresář "libs" jestli se nějaký
// plugin přidal nebo odebral
PluginLoader.AutoDetect(true, "libs");

// načte jeden plugin
PluginLoader.Load("C:\\Plugin.dll");

// načte všechny pluginy v adresáři "libs"
PluginLoader.LoadPlugins("libs");

// odebere načtený plugin podle jeho GUID
PluginLoader.Unload("GuidPluginu");

// odebere všechny načtené pluginy
PluginLoader.UnloadPlugins();

// odešle všem pluginům příkaz "close" (co se má stát je na každém pluginu)
PluginLoader.SendCommand("close");

// získá plugin podle jeho GUID
IPlugin myPlugin = PluginLoader.Get("GuidPluginu");
// zavolá funkci "Vypis" s parametrem "Ahoj světe", která je umístěná v pluginu
myPlugin.Func("Vypis", "Ahoj světe");
// nastaví vlastnost "Cislo" na hodnotu 100 (vlastnost je typu INT), která je opět
// umístěná v pluginu
myPlugin.Property("Cislo", 100);
// získá hodnotu z vlastnosti "Cislo"
int cislo = myPlugin.Property<int>("Cislo");
// získá hodnotu z "TEXT" ze zdroje v Properties
string text1 = myPlugin.Res().GetString("TEXT");
// získá hodnotu z "TEXT" z vlastního zdroje
string text2 = myPlugin.Res("MyResource").GetString("TEXT");
// předá formulář do pluginu
myPlugin.ParentForm(this);
// odešle příkaz pouze tomuto pluginu
myPlugin.SendCommand("show");

[ 23.4.2013 ]C# Tutoriál 45 - Zamykání vláken

Informace:
- Co je zamykání vláken a jak se používá
- Použití modifikátoru volatile a klíčového slova lock
- Ukázka tříd Monitor a Interlocked

Použité prog. jazyky: C#

Značky: c#, tutorial

Videa:

[ 20.4.2013 ]Mushrooms Shifter

Informace:
- Kreslení houbiček
- Okno aplikace má reprezentovat skříň s poličkama, kde na každé je stack 5-ti houbiček

Použité prog. jazyky: C# (.net 4.0)

Stažení verze: 1.0

Značky: c#, app, test

Ovládání

- pomocí myši se pohybuje s houbičkama
- při držení klávesy ctrl lze s houbičkou pohybovat i mimo její poličku
- klávesa R vrátí všechny houbičky na původní místo

Obrázky:

Videa:

[ 20.4.2013 ]Pyramid Draw

Informace:
- Kreslení pyramidy dle zadané velikosti základny
- Možnost změnit barvy a export do .png

Použité prog. jazyky: C# (.net 4.0)

Stažení verze: 1.0

Značky: c#, app, test

Obrázky:

[ 20.4.2013 ]Fifteen Lite

Informace:
- Jedná se o známou hru Fifteen (patnáctka), kde musíte poskládat čísla od mejmenšího po největší
- Odhlehčená verze, kde neplatí pravidlo, že posunout lze pouze sousedící číslo, ale jakékoliv číslo ve sloupci nebo řádku od bílého bodu
- Měří vám čas a počet tahů

Použité prog. jazyky: C# (.net 4.5)

Stažení verze: 1.0

Značky: c#, game

Obrázky:

Videa:

[ 20.4.2013 ]Generátor životopisu

Informace:
- Potřeboval jsem si udělat životopis a tak vznikl nápad na tuhle aplikaci
- Aplikace je jednoduchá na ovládání a samotnou správu životopisu (CV), více info níže v changelogu

Použité prog. jazyky: C# (.net 4.5)

Stažení verze: 1.3.1

Značky: c#, app

Klávesové zkratky

- ctrl + N = Nový (new)
- ctrl + B = Vytvořit (build)
- ctrl + P = Náhled (preview)
- ctrl + E = Exportovat (export)
- ctrl + I = Importovat (import)
- ctrl + T = Info (todo)
- ctrl + Q = Ukončit (quit)

Changelog

1.3.1
- opraveno pár chyb související s pádem aplikace
- opraven formát titulu za jménem
- přidána EN lokalizace

1.3
- přidány kolonky pro vyplnění datumu narození a věku
- přidána možnost zobrazit nebo skrýt praxe
- přizpůsoben vzhled okna
- přidána možnost poznámky k řidičáku
- změněny klávesové zkratky pro vytvoření HTML, informace a ukončení
- opraveno pár popisků (v CZ jazyce)
- přidána nová záložka pro poznámky k životopisu
- přidána SK lokalizace

1.2
- všechny víceřádkové kolonky detekují klávesu enter jako nový řádek
- přidána ochrana proti otevření novějšího nastavení starší aplikací
- přidána nová záložka pro kurzy a školení
- možnost přidat datum vytvoření na konec životopisu
- do menu přidána položka Info, kde naleznete autory překladů a něco o aplikaci
- přidán easter-egg, takže hledejte
- opraveno pár vstupních kolonek
- do menu přidány klávesové zkratky
- upravená adresářová struktůra
- přidána možnost posouvat prvky (školy, praxe, dovednosti apod.) a lehce upraven vzhled

1.1
- přidána více jazyčná podpora (obsahuje zatím pouze CZ jazyk)
- lehce upraveno UI
- přidána zpětná kompatabilita se starší verzí (hlavně pro nastavení profilu)
- přidáno více telefonních předvoleb (kódů oblasti)
- při uložení nastavení se nyní ukládá i aktuální jazyk, takže při importu se změní jazyk podle nastavení
- přidána informace o verzi
- při najetí myši na jazyk v menu se zobrazí jeho autor a verze překladu

1.0
- program je kompletně v CZ
- možnost přidat vlastní fotku
- předvyplněné kolonky, které vám usnadňují rychlejší tvorbu
- vytváření náhledu
- možnost exportovat celé nastavení do šifrováného souboru (lze i importovat)
- všechny kolonky podporují HTML tagy
- výstupní soubor je v HTML5

Obrázky:

[ 20.4.2013 ]C# Tutoriál 44 - Vlákna

Informace:
- Základní práce s vlákny (třída Thread)

Použité prog. jazyky: C#

Značky: c#, tutorial

Videa:

[ 16.4.2013 ]C# Tutoriál 43 - Přetěžování operátorů

Informace:
- Jak přetěžovat operátory a hlavní rozdíl mezi implicit a explicit

Použité prog. jazyky: C#

Značky: c#, tutorial

Videa:

[ 16.4.2013 ]C# Tutoriál 42 - Skákání pomocí Goto a operand @

Informace:
- Klíčové slovo goto pro skákání v kódu na větší vzdálenosti a operand @

Použité prog. jazyky: C#

Značky: c#, tutorial

Videa:

[ 16.4.2013 ]C# Tutoriál 41 - Pokročilé použití událostí a jejich ošetření

Informace:
- Jak vytvořit vlastní tělo události pro přidání a odebrání funkce (delegáta)
- Způsoby ošetření události, pokud nebude obsahovat žádného delegáta

Použité prog. jazyky: C#

Značky: c#, tutorial

Videa:

[ 16.4.2013 ]C# Tutoriál 40 - Delegáti přes Action a Func

Informace:
- Jak používat třídy Action a Func místo klasických delegátů

Použité prog. jazyky: C#

Značky: c#, tutorial

Videa:

[ 16.4.2013 ]C# Tutoriál 39 - Nastavení generického typu

Informace:
- Jak se nastavuje generický typ při dědičnosti nebo u funkcí tak, aby bylo možné vynutit podmínku, kde generický typ musí být třeba třída, struktůra nebo jiný objekt

Použité prog. jazyky: C#

Značky: c#, tutorial

Videa:

[ 16.4.2013 ]C# Tutoriál 38 - Klíčová slova checked, unchecked a var

Informace:
- Co jsou a jak fungují klíčová slova checked, unchecked a var

Použité prog. jazyky: C#

Značky: c#, tutorial

Videa:

[ 10.4.2013 ]Ranks Generator (generátor ranků na fórum)

Informace:
- Tuto aplikaci jsem dělal proto, protože na bývalém fóru jsem chtěl pěkný rank ikonky a aby jich bylo hodně (rychle se měnily podle počtu příspěvků)
- Dělat stovky ikon se mi opravdu nechtělo, tak jsem si na to udělal jednoduchou, ale plnohodnotnou aplikaci

Použité prog. jazyky: C# (.net 4.0)

Stažení verze: 1.0 - Ranks

Značky: c#, app

Vlastnosti

- lze vygenerovat maximálně 600 ikon (0-600%)
- ikonky jsou barevně nastavitelné (pozadí, text, přechod, obvod)
- možnost vytvořit speciální ikonky s vlastním textem
- při generování se ukazuje průchod i náhled aktuální ikonky
- náhled ikonky před vygenerováním se aktualizuje průběžně podle změn

Obrázky:

[ 10.4.2013 ]Easy Net Compiler

Informace:
- Jak už název napovídá, tak mi šlo hlavně o to, udělat jednoduchý kompilátor pro testování kódu
- Není proc praktické kvůli prkotině spouštět celé prostředí (např. Visual Studio)

Použité prog. jazyky: C# (.net 4.0)

Stažení verze: 1.0

Značky: c#, app

Obrázky:

[ 10.4.2013 ]Page Assistant

Informace:
- Je to vlastně takový mini-server pro zobrazení jednoduchých stránek v HTML

Použité prog. jazyky: C# (.net 4.0)

Stažení verze: 1.0

Značky: c#, app

Funkce

- port lze přenastavit buď přes menu nebo kliknutím na port
- program nevytváří žádné HTML soubory, vše je uloženo binárně, takže název souboru je jen název bez přípony
- stránky lze přidávat i odebírat pravým kliknutím na panel záložek u stránek
- pokuď se má odeslat požadavek ve form třeba přes POST, tak se volá pouze název stránky jako třeba /nazev_stranky
- klíčová slova začínající APP_ nebo FCE_ jsou systémové funkce a jejich tělo se měnit nedá
- globální styl (css) se aplikuje na všechny stránky
- přes menu jde zapnout logger pro debug (skryje se obrázek pozadí)

Obrázky:

[ 10.4.2013 ]Weather (počasí 2)

Informace:
- Moje druhá aplikace na počasí (dá se říct, že to je druhý díl aplikace Počasí)
- Obsahuje prakticky všechno co předchozí aplikace + něco navíc
- Úplně jsem odebral GUI a přidál vlákna, takže se už nestane, že by aplikace na chvíli zamrzla
- Po spuštění se zobrazí ikona v Tray baru a ovládání je v záložce Info

Použité prog. jazyky: C# (.net 4.0)

Stažení verze: 2.0

Značky: c#, app

Obrázky:

[ 10.4.2013 ]CPU Bench (test výkonu CPU)

Informace:
- Jedná se o takový pokus, kde jsem se pokoušel vytvořit nějakou aplikaci, která by otestovala výkon CPU v podobně hodnocení
- Aplikace používá moje staré API, takže všechno včetně tlačítek, progressBaru jsem dělal já. A vzhled okna jsem kreslil v malování
- Funguje na principu cyklu s určitým výpočtem, který z části zatíží CPU a podle toho se vypočte průměrný výpočetní čas

Použité prog. jazyky: C# (.net 4.0)

Stažení verze: 1.0

Značky: c#, app

Obrázky:

[ 7.4.2013 ]Timer (časovač pro vypnutí PC)

Informace:
- Zkoušel jsem si vytvořit aplikaci, která by mi sama po určité době vypnula PC
- Nejsem si teď ani jistej, jestli fungujou všechny akce.. Na 99% by měla fungovat hibernace a tušim, že i odhlášení. Ostatní se mi moc testovat nechtělo

Použité prog. jazyky: C++/CLI (.net 4.0)

Stažení verze: 1.0

Značky: c++/cli, app

Obrázky:

[ 7.4.2013 ]Char Array Creator

Informace:
- Kdysi jsem používal cykly a sleep, pro výpis textu do konzole po znacích, ale pokud text byl přiliš dlouhý, tak to byla celkem otrava přepisovat do pole znaků, takže jsem si udělal takovýto program
- Neptejte se mě, proč jsem nepoužil string nebo char*, prostě jsem to pootřeboval takto

Použité prog. jazyky: C# (.net 4.0)

Stažení verze: 1.0

Značky: c#, app

Vlastnosti

- ihned přepisuje vstup na pole znaků
- lze si vybrat šablonu pro jaký jazyk to má být určeno (C, C++, C#, Java, PHP)
- lze si nastavit maximální počet znaků na řádek ve formátu pole znaků
- možnost nastavení velikosti textu, šířky tabulátoru a zalomení textu
- výsledek si lze prohlédnou v ukázce, kde jde nastavit i rychlost vypisování a ukazuje se čas, za jak dlouho se celý text vypíše

Obrázky:

[ 7.4.2013 ]Crad Creator (generátor vizitky)

Informace:
- Chtěl jsem si vytvořít nějakou aplikaci, která by dokázala podle vstupních údajů vygenerovat vizitku (obrázek o určitých rozměrech)

Použité prog. jazyky: C++/Qt

Stažení verze: 1.0

Značky: c++/qt, app

Vlastnosti

- jákákoliv změna se v náhledu ihned ukáže
- obsahuje všechny základní údaje
- je kompletně upravitelná (vlastní font, barva, pozadí, obrázek..)
- je možné kreslit na vizitku pomocí myši (dvoj-klik maže)
- výstup je ve formátu .png

Pozor!

- je to statická kompilace společně s komprimací, takže kdyby to někomu házelo vir, tak je to v pořádku

Obrázky:

[ 7.4.2013 ]Lizard

Informace:
- Asi můj nejlepší had, kterýho jsem zatím udělal
- Jen to celé má jednu nevýhodu.. vše vykresluje CPU, takže na vyšší obtížnosti nebo levelu to může být trochu pomalejší
- Je to starší hra a je to taky první aplikace, kde se mi podařilo ztratit zdrojový kód, takže jediný co mi zbylo je binárka (asi na památku)

Použité prog. jazyky: C++/Qt

Stažení verze: 1.0

Značky: c++/qt, game

Pozor!

- je to statická kompilace společně s komprimací, takže kdyby to někomu házelo vir, tak je to v pořádku

Obrázky:

[ 7.4.2013 ]Hasher

Informace:
- Umí hashovat text do md4, md5 a sha1

Použité prog. jazyky: C++/Qt

Stažení verze: 1.0

Značky: c++/qt, app

Obrázky:

[ 7.4.2013 ]Creeper Eater

Informace:
- Jde o mini-hru. Je to klasický had, kde hada reprezentuje Creeper z minecraftu a jako jídlo je Notch (hlavní vývojář minecraftu)
- Přikládám pouze video. Vzhledem k tomu, že to je pouze alpha verze a nehodlám to už ani nijak vylepšovat, tak download nebude

Použité prog. jazyky: C# (.net 4.0), XNA

Značky: c#, xna, game

Videa:

[ 7.4.2013 ]Converter (převody jednotek délky)

Informace:
- Převádí jednotky délky mezi sebou
- Podporuje až 34 jednotek

Použité prog. jazyky: Java

Stažení verze: 1.0

Značky: java, app

Obrázky:

[ 7.4.2013 ]Kostky

Informace:
- Celkem stará hra, kterou jsem dělal z nudy. Hraje se proti počitači, kde oba hráči házejí kostkama a podle toho co hráči hoděj se rozhodne

Použité prog. jazyky: C++

Stažení verze: 1.0

Značky: c++, game

Obrázky:

[ 7.4.2013 ]Restaurant (seminárka)

Informace:
- Kdysi jsme měli ve škole takový zadání, že máme obsluhovat stoly v restauraci. Každý stůl může mít svého číšníka, ale není to podmínka. Na každém stole jsou nějaký objednávky apod.
- Původní app měla být v konzoli, ale předělal jsem to do GUI
- Umí vyexportovat restauraci do souboru

Použité prog. jazyky: C++/CLI (.net 4.0)

Stažení verze: 1.0

Značky: c++/cli, app

Obrázky:

[ 7.4.2013 ]Matrix (generátor matice)

Informace:
- Moje první aplikace v C++/CLI
- Její funkcionalita je taková, že generuje matici o určitých rozměrech a rozmezí čísel

Použité prog. jazyky: C++/CLI (.net 4.0)

Stažení verze: 1.0

Značky: c++/cli, app, test

Obrázky:

Stránky: 0, 1, 2