Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Idris

Stran: 1 ... 37 38 [39] 40 41 ... 153
571
Vývoj / Re:Rust - std::ANY alebo lepší návrh?
« kdy: 15. 01. 2022, 10:50:10 »
Ahojte Kolegovia, ozivujem temu, nakolko pribudli skusenosti ohladom Rustu, tak davam na zretel lepsi navrh :)
za pozornost stoji "create_table" v "impl Database" (1)
pripadne "pub fn push<T: CreateTable + ToDatabase>(&mut self, data: &T) " v (2)

Samozrejme je mozne nahradit Vec -> HashSet - to je kazdeho volba :)
Kód: [Vybrat]
/* temp */
/* use MYSQL::Connection; */
pub struct Connection {}
impl Connection {
    pub fn execute(/* ... */){/* ... */}
}

pub enum DatabaseMembers {
    X,
    Y,
    Z
}

// Various Structs
pub struct X {
    pub name: String
}

pub struct Y {
    pub text: String
}

pub struct Z {
    pub value: u64
}

/* Traits */

pub trait CreateTable {
    fn create_table(c: &Connection) -> Result<(), Error>;
    fn table_type() -> DatabaseMembers;
}

pub trait FromDatabase : Sized {
    fn get(c: &Connection) -> Result<Self, Error>;
}

pub trait ToDatabase {
    fn push(c: &Connection, data: &Self) -> Result<(), Error>;
}

/* Trait implementation */

/* Impl for X */
impl CreateTable for X {
    fn table_type() -> DatabaseMembers{
        DatabaseMembers::X;
    }

    fn create_table(c: &Connection) -> Result<(), Error>{
        let query =
        "CREATE TABLE IF NOT EXISTS X (
            id      INTEGER PRIMARY KEY,
            text    TEXT NOT NULL,
        );";

        Ok(())
    }
}

impl ToDatabase for X {
    fn push(c: &Connection, data: &Self) -> Result<(), PError> {
        let query =
        "INSERT INTO ...
        (name, ...)
        VALUES
        (?1, ...)
        ";
    }
}

impl FromDatabase for X {
    fn get(c: &Connection, id: usize) -> Result<Self, Error>{
        let query =
        "SELECT *
        FROM ...
        WHERE ... id=?1
        ";
        /* ... */
        Ok(X{ /*... */})
    }
}
/* Impl for Y */
impl CreateTable for Y {
    fn table_type() -> DatabaseMembers{
        DatabaseMembers::Y;
    }

    fn create_table(c: &Connection) -> Result<(), Error>{
        let query =
        "CREATE TABLE IF NOT EXISTS Y (
            id      INTEGER PRIMARY KEY,
            text    TEXT NOT NULL,
        );";

        Ok(())
    }
}

impl ToDatabase for Y {
    fn push(c: &Connection, data: &Self) -> Result<(), PError> {
        let query =
        "INSERT INTO ...
        (name, ...)
        VALUES
        (?1, ...)
        ";
    }
}

impl FromDatabase for Y {
    fn get(c: &Connection, id: usize) -> Result<Self, Error>{
        let query =
        "SELECT *
        FROM ...
        WHERE ... id=?1
        ";
        /* ... */
        Ok(Y{ /*... */})
    }
}

/* Impl for Z */
/* ... */

pub struct Database {
    c: Connection,
    initialized_tables: Vec<DatabaseTables>,
}

impl Database {
    pub fn open_temporary() -> Database {
        let mut db = Database {
            c: Connection::open_in_memory(),
        }
        /* ... */
        Ok(db)
    }

    /* (1) - Explicitne vytvorim tabulku ...*/
    pub fn create_table<T: CreateTable>(&mut self) -> Result<(), PError> {
        if !self.initialized_tables.contains(&T::table_type()) {
            let dbtable = T::create_table(&self.conn)?;
            self.initialized_tables.push(dbtable);
        }   

        Ok(())
    }

    pub fn push<T: CreateTable + ToDatabase>(&mut self, data: &T) {
        /* (2) - alebo implicitne vytvorim tabulku */
        if !self.initialized_tables.contains(&T::table_type()) {
            T::create_table(&self.conn)?;
            self.initialized_tables.push(&T::table_type());
        }
        ToDatabase::push(&self.conn, data)
    }

    pub fn get<T: FromDatabase>(&self, id: usize) -> Result<T, PError>{
        FromDatabase::get(&self.conn, uid)
    }

}

fn main() {

    let mut db: Database = Database::open_temporary();

    /* (1) - explicitne vytvorim tabulku pre X */
    db.create_table::<X>();
    let x = X {name: String::from("Ahoj")};
    db.push(&x);

    // (2) - implicitne vytvorim tabulku pre Y */
    let y = Y {text: String::from("Ahoj")};
    db.push(&y);
}

Pekny vecer
U těch selectů by bylo hezké mít je typově bezpečné (native queries), Rust je jedním z mála jazyků, kde to jde přirozeně.

572
Vývoj / Re:Typový system versus unittesty
« kdy: 15. 01. 2022, 10:47:21 »
Zjistil jsem, že Julia má (nevím, od které verze) něco jako závislostní součtový typ (píšu “něco jako”, protože to zřejmě není zamýšlená vlastnost jejího typového systému). Dávám to sem jen jako doplňující poznámku související s tématem tohoto starého vlákna, kdyby si někdo (BoneFlute :) ) chtěl hrát se závislostními typy a nechce se mu otravovat s haskelloidními jazyky — Julia je přece jenom stravitelnější.
Díky.
Malé doplnění: Je to za cenu typové nestability (ale výsledek se dá typově stabilizovat za běhu).

573
Studium a uplatnění / Re:Lhaní recruiterů
« kdy: 11. 01. 2022, 09:24:05 »
Pod neschopným managmentem nemáte šanci si vydělat slušnější peníze, nic se nenaučíte, a ještě to oser.
Svatá pravda.

574
Studium a uplatnění / Re:Lhaní recruiterů
« kdy: 10. 01. 2022, 18:13:00 »
Idris: To rovnou přeskoč, DevSec je propadliště dějin, modernější je DevSecOps. :-)
Než se rozhoupu, přijde nějaký další DevCrap :/

575
Studium a uplatnění / Re:Lhaní recruiterů
« kdy: 10. 01. 2022, 16:44:56 »
Devops, to je snad tak rok 2019, ne? Kdo dneska nejde SRE a Dataops, jako by nebyl.

Priznavam, ze s job description dnes uz tak ctu prvni a posledni odstavec, tak netusim, co se za novy zkratky vyskytuje mezi nima.

Mna najviac irituje snaha sklbit 2-3 pracovne pozicie do jednej a tvarit sa, ze to je normalka. Nie, nie je, viem to pretoze som v kontakte s vyvojarmi v USA a viem ako to tam vyzera. Odkedy softverovy vyvojar ma riesit deployment, kontajnerizaciu, nasadzovanie na servery a pod. Soft. vyvojar vyvyja, dostane zadanie resp. sa podiela na zbierani poziadavkov a na zaklade toho vymysli rieseni na urovni kodu. Urcite nie je praca softveroveho vyvojara vo vytvarani komplet rieseni pre celofiremny kubernetes environment, nastavovanie opennebuly a podobne veci ktore viac spadaju do devops a sysadmin prace. Samozrejme, 3x peniaze za to nedostanem  :)
Tak to sa hlboko ospravedlnujem. Musim updatovat moj list s buzzwordmi, zjavne som out, uncool, boomer, grandpa...  :)
Sakra, pro mě je devops žhavá novinka :)

576
Studium a uplatnění / Re:Lhaní recruiterů
« kdy: 09. 01. 2022, 20:11:44 »
[Osobně mi přijde, že na těch kurzech je tak leda naučí copy & paste z StackOverflow, co neví najdou na netu a zkopírují, aniž by věděl co daný kus kódu dělá.
Kdyby po nich něco chtěli, tak jim tam nikdo neleze.

577
Studium a uplatnění / Re:Lhaní recruiterů
« kdy: 09. 01. 2022, 19:32:33 »
To, že to hromada lidí zkouší bez zkušeností nebo bez většího prechozího kontaktu s IT je správně.  V IT chybí šikovný lidi.
A taky v IT chybí lidi, co se vyznají ještě v něčem jiném než IT.

578
Studium a uplatnění / Re:Lhaní recruiterů
« kdy: 09. 01. 2022, 18:20:54 »
2) Kontrakt pro start-up... Vlastně ano, nakonec to dle všeho vzala čerstvá absoloventka peďáku obor učitelství pro první stupeň s nějakým IT rychlokurzem od Czechitas.
mám několik zkušeností z praxe s lidmi z podobných kurzů... Katastrofa, lidi naprosto nic neumí, nic nechápou.
Protože jim chybí praxe. A ta přijde jen s prací. Na začátku to tak má každý, je jedno, po jakém kurzu.
Vím, že následující názor by byl dnešní většinovou společností považován za staromodní, ale já věřím, že každý má svojí profesi a té by se měl držet. Ty dnešní maistreamové kecy, že každý může být čímkoli, stačí chtít a když ho to přestane bavit, tak začne dělat zase něco úplně jiného... Když se jedná o alespoň trochu příbuzné obory, tak nic proti, ale představa, že teď bude někdo chvíli programovat, až ho to přestane bavit tak se rekvalifikuje na lékaře, potom uvidí dokument o Černobylu, tak se přihlásí na operátora reaktoru a nakonec začne létat jako pilot letadla, protože má chuť cestovat...
Než jsem vydělal první korunu jako programátor, tak jsem se tomu oboru třeba 10 let alespoň nějak okrajově věnoval, ať už ve škole nebo volném čase a myslím, že to tak má většina.
Jenže někdo si nechá nabulíkovat, že stačí udělat nějaké kurzy v rozsahu desítek možná nižších stovek hodin a bez jakéhokoli předchozího backgroundu se tomu může plnohodnotně věnovat. Koneckonců je to práce v teple a prý dobře platí, tak proč ne.
Může být, ale jak člověk pozná, co je “jeho profese”, aniž by si vyzkoušel aspoň to, co ho nejvíc baví?

579
Studium a uplatnění / Re:Lhaní recruiterů
« kdy: 09. 01. 2022, 15:59:09 »
2) Kontrakt pro start-up... Vlastně ano, nakonec to dle všeho vzala čerstvá absoloventka peďáku obor učitelství pro první stupeň s nějakým IT rychlokurzem od Czechitas.
mám několik zkušeností z praxe s lidmi z podobných kurzů... Katastrofa, lidi naprosto nic neumí, nic nechápou.
Protože jim chybí praxe. A ta přijde jen s prací. Na začátku to tak má každý, je jedno, po jakém kurzu.

580
Studium a uplatnění / Re:vykazovanie práce
« kdy: 08. 01. 2022, 23:51:36 »
Zaujímalo by ma, ako to máte v práci vy?
U nás se čas nevykazuje, Jira slouží na sledování stavu ticketů a jejich provázání s Gitem a dalšími nástroji. Časové odhady mají u nás granularitu půl dne a nikdo to moc neřeší, beztak se většinou čeká na zákazníky, než se vyžvejknou se specifikací, testy apod.

581
Vývoj / Re:Typový system versus unittesty
« kdy: 08. 01. 2022, 00:56:57 »
Zjistil jsem, že Julia má (nevím, od které verze) něco jako závislostní součtový typ (píšu “něco jako”, protože to zřejmě není zamýšlená vlastnost jejího typového systému). Dávám to sem jen jako doplňující poznámku související s tématem tohoto starého vlákna, kdyby si někdo (BoneFlute :) ) chtěl hrát se závislostními typy a nechce se mu otravovat s haskelloidními jazyky — Julia je přece jenom stravitelnější.
Díky.
Není zač. Jsem si hrál s typem Vect n a (haskelloidní zápis) a funguje to podobně jako třeba v Agdě. Ještě zkusím rovnostní typy :)

582
Vývoj / Re:Typový system versus unittesty
« kdy: 08. 01. 2022, 00:12:24 »
Zjistil jsem, že Julia má (nevím, od které verze) něco jako závislostní součtový typ (píšu “něco jako”, protože to zřejmě není zamýšlená vlastnost jejího typového systému). Dávám to sem jen jako doplňující poznámku související s tématem tohoto starého vlákna, kdyby si někdo (BoneFlute :) ) chtěl hrát se závislostními typy a nechce se mu otravovat s haskelloidními jazyky — Julia je přece jenom stravitelnější.
Zavislostni typy jsou dnes mainstream
  ;D

583
Vývoj / Re:Typový system versus unittesty
« kdy: 07. 01. 2022, 23:36:39 »
Zjistil jsem, že Julia má (nevím, od které verze) něco jako závislostní součtový typ (píšu “něco jako”, protože to zřejmě není zamýšlená vlastnost jejího typového systému). Dávám to sem jen jako doplňující poznámku související s tématem tohoto starého vlákna, kdyby si někdo (BoneFlute :) ) chtěl hrát se závislostními typy a nechce se mu otravovat s haskelloidními jazyky — Julia je přece jenom stravitelnější.

584
Vývoj / Re:Chování seznamu v Pythonu
« kdy: 05. 01. 2022, 18:09:17 »
Děkuji Ink a uetoyo za relevantní odpovědi.
našel jsem stránku kde je to srozumitelně vysvětleno:
https://medium.com/@meghamohan/mutable-and-immutable-side-of-python-c2145cf72747

Není zač. V tomto videu Chris Lattner vysvětluje rozdíl mezi Pythonem a Swiftem.
Zmiňuje tam právě i tento problém. A ano, toto chování je často hodně problematické.

https://www.youtube.com/watch?v=UTFFR61xVbs&ab_channel=LexClips

(třetí minuta)
Swift je divnej :)

Škoda že zařízli ten projekt Swift/TensorFlow a celý ten ekosystém kolem https://github.com/apple/swift/blob/main/docs/DifferentiableProgramming.md. Já ho aktivně používat nemůžu, ale jazyk je to pěkný. Ale snad nás od Pythonu zachrání Julia :)
Julia a Rust…

585
Vývoj / Re:Chování seznamu v Pythonu
« kdy: 05. 01. 2022, 17:38:36 »
Děkuji Ink a uetoyo za relevantní odpovědi.
našel jsem stránku kde je to srozumitelně vysvětleno:
https://medium.com/@meghamohan/mutable-and-immutable-side-of-python-c2145cf72747

Není zač. V tomto videu Chris Lattner vysvětluje rozdíl mezi Pythonem a Swiftem.
Zmiňuje tam právě i tento problém. A ano, toto chování je často hodně problematické.

https://www.youtube.com/watch?v=UTFFR61xVbs&ab_channel=LexClips

(třetí minuta)
Swift je divnej :)

Stran: 1 ... 37 38 [39] 40 41 ... 153