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 - Marekuss

Stran: [1] 2 3
1
Nešlo by použiť OTP? https://ubuntu.com/tutorials/configure-ssh-2fa#1-overview
Bude to fungovat s ľubovolým autentifikatorom (Aegis/...)

2
Sítě / Re:Tip na externý Wi-Fi access-point na 80-100 m
« kdy: 18. 03. 2024, 12:42:52 »

Zaujímavé, budem uvažovať aj týmto smerom - díky a tip.

Momentálne je na dome osadená UniFi-AC-Mesh, a ako som písal, na tú vzdialenosť je signál v mobile dosť slabý - prakticky nepoužitelný, a to aj na čistý download (upload nieje prakticky potrebny).

Môžem prezistiť stav daného AC, prípadne odmerať silu signálu a podobne - ale podozrievam že ta UniFi je proste fyzicky vadná, lebo náhodne hapruje aj na nižšie vzdialenosti (20m a pod.)

3
Sítě / Re:Tip na externý Wi-Fi access-point na 80-100 m
« kdy: 16. 03. 2024, 17:38:45 »
Aha, to jsem špatně pochopil, myslel jsem, že mu jde o P2P. Pokud ne, tak tam může dát jako AP třeba Ubiquiti UAP-AC-M

Ide, ako bolo spomenuté o one-to-many, outdoor wifi access point. Vybral by som "nejaky", len ma troška tápi spolahlivosť a stromy....

zalezi, aka rychlost. ak je to na bezne surfovanie, tak by mohol stacit nejaky nanostation, alebo mikrotik. Ale tie stromy, tak radsej 2.4Ghz, to prelezie v pohode na 200m aj cez jednu stenu panelaku :)
Skusil by som ale zmenit polarizaciu. ist do horizontalnej. To by mohlo trocha pomoct.

Skor počúvanie online rozhlasu, pozretie domovej kamerky, youtube ... 2.4GHz určite, tu polarizáciu preskúmam, díky za tip

Tohle by mělo být hlavně o anténě. Podle plánku 60° sektor s co nejlepším ziskem a na připojeném zařízení tomu případně přidat na 30dBm. To by řešilo hlavně download, ale těch pár bajtů uploadu by snad taky prošlo. Chce to zkoušet, objednat to přes NET a když tak vrátit.

Pozriem na tie čo tu padli, asi obejdnám "zopár" typov z netu a proske vyskúšam
Díky
 

4
....

Záleží od pohľadu každého súdruha.
Tá doska má podporu ECC 8xSATA, M.2, funkčné drivre a UEFI, IPMI a (VGA optional).
Budem rád, ak mi doporučíte ARM dosku ktorá bude splnať menšiu energeticku naročnost, ECC, M.2 slot a minimalne 6x SATA za obdobnú cenu.

Oprava: 36W to žerie s 6x6TB HDD.

Nerád by som vyvolal flamewar, preto by som poprosil Admina/Martin Poljak na vytvorenie nového threadu -> Tip na low-power-consumption  6(8x) SATA, M2. ECC, IPMI

5
vypada to pekne na pohled, ale ten atom je dost bidny procak, co?!

Záleží od použitia (: mám 4C - na domáci NAS, nextcloud, zopár jailov/kontajnerov a HomeAssistant/Shinobi/2IP kamery, logserver to postačuje. Celá zostava vrátane diskov žere 40W.

6
Sítě / Tip na externý Wi-Fi access-point na 80-100 m
« kdy: 14. 03. 2024, 22:34:27 »
Zdravím.

Rád by som tip na externý POE access-point (Wifi). WiFi bude umiestnená na RD vo výčke cca 4-5m nad zemou. Vzdialenosť je 80-100m so šírkou 50m. Vo vzdialenosti 50m od RD su mladšie listnaté stromy, výška cca 8-10m - nie su nahusto posadené.

Cenová hladina: do +-200€

 Zatial je tam osadený outdoor TP-Link - po 3-4r začal haprovať (sila a kvalita signálu), občasné výpadky (aj v zimných mesiacoch), preto by som rád nejaký overený tip.

Díky

7
Hardware / Re:Výběr IP kamery pro RTSP stream
« kdy: 06. 12. 2023, 21:20:12 »
Ahoj, minimálne TAPO C100 a ďalšie podporujú RTSP - https://www.tp-link.com/en/support/faq/2680/
Funguje to obstojne, bez výpadkov, kvalita obrazu je obstojná. - sú u rodičov cez dva roky a bez výpadkov.

Jediné zverstvo je - že to treba nastaviť cez ich Android Appku (stačí raz), kamera je samozrejme vo vlastnej lanke (:

8
Ahoj,
Medzi Embedded vývojom a programovaním PLC, sú bohužial priepastné rozdiely - bolo by dobré si určit čo je pre teba príťažlivejšie.

Hmm, z ktorej strany začať. Ak by si programoval PLC, tak ŤA v prvom rade bude zaujímať ekosystém PLC (u nás drtivá vačšina Siemens), vstupno-výstupné karty a ich parametre a ProfiBus... takže HW máš zadefinovaný, PLC tiež - k tomu Ťa čaká ohromné množstvo dokumentácie, výkresov, noriem... a samozrejme, podstatné je, v akej firme, rozdiel je korporát alebo firma čo robí jedno-účelové stroje

Embedded je tiež široký pojem, môže to byť bavkanie sa s STM32 na jednokusovkách, prípadne v 10k seriach.. na obe ti je treba prax, jak okolo programovania, tak okolo HW, ale Embedded je rovnako aj veľké MPU (NXP i.MX, ...), kde 90% času je Yosto/Buildroot, u-boot a Linux.

Ak ti ide primárne o pomer prachy/výkon/znalosti , tak bež na webovky, prípadne ak je to dobrý korporát na PLC, tak skús to.Embedded HW vývoj je silno obmedzený na veľké mestá Praha/Plzen/Brno/Ostrava(?) ..

ale určo si rád prečítam ďalšie postrehy :)

9
Sítě / Re:Návrh domacej siete
« kdy: 26. 05. 2023, 11:18:44 »
Dát TV, mobily, smarthome, atd. do oddělených VLAN je sice nápad dobrej, ale v praxi dost z toho naráží na mDNS. Mikrotik to "neumí" forwardovat mezi VLANama, takže z mobilu neuděláte Miracast/AirPlay/Spotify Connect/..., nevytisknete si nic na tiskárně ani si nenastavíte např. Ikea Tradfri Gateway nebo HomeKit.

Skvely hint, ďakujem! Mikrotik túto funkctionalitu plánuje doplniť https://forum.mikrotik.com/viewtopic.php?t=174354#p992798.

Mikrotik RB2011 je celkem starý a pomalý, je možné, že narazíte na výkonnostní strop (zejména u pps). Na rychlou VPN a podobné náročnější věci zapomeňte. Stejný výkon procesoru má i switch Mikrotik CRS326-24G-2S+RM, kterým byste vyřešil vše v jednom včetně podpory VLAN. Cena je ale o pár stovek vyšší.

Ďakujem za tip, pár stoviek hore/dole nieje smerodatné. Príde mi to koncipované ako switch, kde síce to má aj routerOS, ale myslím si podla CPU, že router nebude primárna funkcionalita.

Vzhledem k tomu, jak byl formulován dotaz, pravdu má. Pokud by autorovi dotazu na správném návrhu sítě nezáleželo, neptal by se na to a použil by první router, který by mu padnul pod ruku v kombinaci s libovolným switchem. To ale dle všeho není ten případ, dokonce sám např. VLANy zmínil.
Otazka ale je, jestli je zmínil proto, ze vi, co to je, a nebo simomtom nekde precetl, a z toho jen ziskal pocit, ze je nutne potrebuje.

VLAN mám "nasadené" na OpenWRT skrz veci čo ste popísali - Kamery/GuestWifi/DMZ ...


...

Ďakujem za názor, ale myslím si, že ak sú dostupné prostriedky /napr VLAN/ ktoré môžu podporiť bezpečnosť, nieje dôvod ich nepoužiť.
Prosím Vás, môžete mi napísať nevýhody VLAN ktoré ste za roky praxe nazbieral?

10
Sítě / Re:Návrh domacej siete
« kdy: 20. 05. 2023, 21:50:50 »
Díky chalani za plodnú diskusiu.

Samozrejme sa nesnažím o kanón na vrabce, ale o niečo funkčné a trocha nadčasové

* Kotol považujem za vcelku kritickú súčasť domu a zvlášť ak je pripojená na internet, tam by mi VLAN dával logiku
* Moderné Smart TV sú bežne "vybavené" vlastným OS (Android?), popravde výrobca (ak ho) podporuje pár rokov a potom dovi, tiež by mi dávalo logiku niečo ako smart TV nepustiť do domácej siete
* K známym často chodia deti (pani je na dôchodku - bývala vychovatelka), všetky majú smartphony v rôznom stave rozkladu, Nové deti čo prídhádzaju občas na návštevu prvé čo si vypýtajú je heslo na wifi....  Guest wifi mi dáva tiež logiku


Rack je umiestnený v pivnici(sklepení)


Pre VLAN
    1)
        (1Gbit)
        * UPC (bridge)
        * Router: Ubiquiti EdgeRouter X (2000 Kč) (default/OpenWRT) / Mikrotik RouterBoard / TP-LINK
        * Switch: TP-LINK TL-SG116E/TP-Link TL-SG1016DE ( ~2500 kč)
        -----------------------
        4500 kč

    2)
        (1Gbit)
        * UPC (bridge)
        * Router: MikroTik RB4011iGS+RM (~4500 kč)
        * Switch: TP-LINK TL-SG116E/TP-Link TL-SG1016DE ( ~2500 kč)
        -----------------------
        7000 kč
   

Partial VLAN
        - Dom (Wifi)/PC pôjdu do switch-u (7x)
        - Kotol pôjde do router-u (1x)
        - SmartTV do router-u (2x)
        - Guest Wifi (??? 100mbit wifi AP) do router-u (1x)
        - Kamery/NVR do switch-u (5x) - druhý       
       
    4)
        (1Gbit)       
        * UPC (bridge)
        * Router: Mikrotik RB2011iL-IN (10p) (~2500 Kč)
        * Switch: 8P ( 600 kč) (LAN_NETWORK)
        * Switch: 8P ( 600 kč) (CAMERA_NVR)
        -----------------------
        3700 kč
       
 
Bez VLAN
    4)
        (1Gbit)
        * router: UPC
        * Switch: TP-LINK TL-SG116 ( ~ 1600Kč)
        -----------------------
        1600 kč
               

V prípade VLAN
    Segmentovanie:
        GUEST
        KOTOL
        LAN_NETWORK
        CAMERA_NVR
     
        --------
        GUEST -> WAN
        KOTOL -> WAN
        LAN_NETWORK -> WAN
        LAN_NETWORK -> KOTOL
        LAN_NETWORK -> CAMERA_NVR
       
       
V prípade 1), 2) zdá sa mi také čisté riešenie (pri prepočte na 5r dopredu) cena nieje taká zlá. Dá sa uvažovať o 3), malý diskomfort, treba trochu plánovania ale šlo by to. 4) Najekonomickejšie riešenie .. ale všetko je tak povediac na kope.

Pošlem mu návrh s cenovkou, +/- uvidím ako sa vyjadrí, možno skončime pri 4) :) (nepredpokladám, investicie sa nebojí)

Díky chalani!
       

11
Sítě / Návrh domacej siete
« kdy: 19. 05. 2023, 23:12:45 »
Známy ma požiadal o prediskutovanie návrhu siete do RD kde sa mi/nám jedná o výber vhodného HW (router/switch).
Preto by som rád s Vami predebatoval použitý HW a technológie - jedná sa o RD, dajme tomu nadčasový HW, rozpočet je voľný ale s "rozumom"

Momentálne:
* Je osadený 19" Rack
* Je natahaná LAN 6A na všetky relevantné miesta v dome
* Do domu vediet prípojka D600/U100Mb (UPC Broadband router)

Do siete budu pripojené:
* PC(2x) + Notebook(Wifi)
* Kotol(1x)
* Samsung TV(2x)
* Guest WAN

* Kamerový systém(4/6x) (predpokladám že kamery budú mať svoje NVR (hikvision?)

Do siete nieje planované:
* NAS alebo server

Rád by som nasmerovanie:
1) Použijem 16p managed switch 1/2.5Gbit a vhodne rozvrstvím sieť/VLAN + vhodný non-wifi router - nejaké tipy?
2) ?

Ďakujem ža každú radu, podnet.

12
Distribuce / Wayland/weston - RDP backend na Debian
« kdy: 28. 12. 2022, 22:23:25 »
Ahojte kolegovia,

Long story šort:
Mám server bez GPU kde mi beži Debian 11 s Wine a rád by som zobrazil grafický výstup z Wine cez klasický Windows 10 RDP client.
Internet ma doviedol k  https://manpages.ubuntu.com/manpages/focal/en/man1/weston.1.html a ešte bližšie ku https://manpages.ubuntu.com/manpages/focal/en/man7/weston-rdp.7.html.

Problém:
Spustím weston s RDP backendom z manpages (bez spusteného wine) a dostanem (bohužial) podobnú chybu (An internal error might occur) - ja používam Windows 10 RDP https://gitlab.freedesktop.org/wayland/weston/-/issues/452.

Underline:
S úspechom na rovnakom serveri (s Wine) som použil (x11vnc + XvFB)/(Xvnc) a Windows VNC klient pekne "prijíma" obraz, což je cajk.

Otázka:
Skúsili ste/viete o tom že by Wayland/Weston podporoval RDP a bolo toto riešenie funkčné? Ak by to malo byť polofunkčné riešenie, tao ostanem pri X11..

13
/dev/null / Re:Pravnické důsledky cenzury na českém webu
« kdy: 15. 03. 2022, 09:05:01 »
Mal som pocit ze root je forum/stranka zamerana na technicke problemy - ale vsimam si ze posledne dva-tri roky sa to tu profiluje na format diskuzii z idnes/facebooku a podobne.

...Ved tam tiez udajne sirili dezinformacie, ktore sa neskor ukazali ako pravdive. Takisto isli proti prudu. ...
Mozete dolozit link? Prosim link na dezinformaciu  a link na zdroj ktory potvrdil ze dezinformacia bola pravdiva

Neskor sa ukazalo, aspon v CR, ze opatrenia boli nezakonne a zrusene.
Mozete mi tak isto dodat zdroj?

Prisiel konflikt a zrazu prask, mame genialny dovod zrusit weby a zacat s "demokratickou" cenzurou.
Demokraticka cenzura neexistuje. Demokracia je vlada vacsiny... Cenzura je ucelne obmedzovanie informacii

Ja by som bol rad, keby sa z root-u stala technicky zamerana stranka....



14
Vývoj / Re:Rust - std::ANY alebo lepší návrh?
« kdy: 11. 01. 2022, 22:08:44 »
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

15
Vývoj / Re:Rust - serde/bincode serializacia/deserializacia dat
« kdy: 21. 12. 2021, 19:49:16 »
OP: Došel jsi prosímtě k něčemu? Zafungoval Ti ten "untagged"?

Zdar, ano, untagged je nakoniec uzitocne makro :)
Nakolko Rust len skumam, tak som sa nepustal do zbytocnych zlozitosti... vsak sa bude refaktorovat.

Je to +- ok, ked bude cas, tak dvojity matach() blok nahradim makrom, tak isto by slo nahradit aj "pub fn value(&self) -> MessageBodyType" ako makro.. mozno casom

Kód: [Vybrat]
use serde_repr::*;
use serde::{Deserialize, Serialize};

#[derive(Serialize_repr, Deserialize_repr, PartialEq, Debug)]
#[serde(untagged)]
#[repr(u8)]
pub enum MessageBodyType {
    Version = 11,
    BatteryHealth = 22,
}

#[derive(Serialize, Deserialize, PartialEq, Debug)]
pub enum MessageBody {
    Version(Version),
    BatteryHealth(BatteryHealth),
}

impl MessageBody {
    pub fn value(&self) -> MessageBodyType {
        match *self {
            MessageBody::Version(_) => MessageBodyType::Version,
            MessageBody::BatteryHealth(_) => MessageBodyType::BatteryHealth
        }
    }
}

#[derive(Serialize, Deserialize, PartialEq, Debug)]
#[repr(C)]
pub struct MessageHeader {
    message_type: MessageBodyType,  // 1
    _pad0: u8,                      // 1
    body_size: u16,                 // 2
    crc: u32,                       // 4
}

#[derive(Serialize, Deserialize, PartialEq, Debug)]
struct Message {
    header: MessageHeader,
    body: MessageBody,
}

impl Message {
    pub fn serialize_body(mb: MessageBody) -> Result<Vec<u8>, Error> {

        let mut body_vec: Vec<u8>;
        match &mb {
            MessageBody::Version(v) => {
                body_vec = bincode::serialize(&v)?;
            },
            MessageBody::BatteryHealth(h) => {
                body_vec = bincode::serialize(&h)?;
            }
        }

        let header : MessageHeader = MessageHeader {
            message_type: mb.value(),
            _pad0: HEADER_PAD,
            body_size: body_vec.len() as u32,
            crc: 0,
        };

        let mut header_vec = bincode::serialize(&header)?;
        header_vec.append(&mut body_vec);

        Ok(header_vec)
    }

    pub fn deserialize_body<'a>(bytes: &'a [u8]) -> Result<MessageBody, Error> {
        if bytes.len() < std::mem::size_of::<MessageHeader>(){
            return Err(());
        }

        let message_header_len = std::mem::size_of::<MessageHeader>();

        match header.message_type {
            MessageBodyType::Version => {
                let version: Version = bincode::deserialize(&bytes[message_header_len..bytes.len()])?;
                return Ok(MessageBody::Version(version));
            },   
            MessageBodyType::BatteryHealth => {
                let battery: BatteryHealth = bincode::deserialize(&bytes[message_header_len..bytes.len()])?;
                return Ok(MessageBody::BatteryHealth(battery));
            }
        }
    }
}

#[derive(Serialize, Deserialize, PartialEq, Debug)]
#[repr(C)]
pub struct Version {
    pub x1: u8,       // 1
    pub x2: u8,       // 1
    pub x3: u16,      // 2
}

#[derive(Serialize, Deserialize, PartialEq, Debug)]
#[repr(C)]
pub struct BatteryHealth {
    pub x1: u8,       // 1
    pub x2: u8,       // 1
    pub x3: u16,      // 2
}

fn main () -> Result<(), Box<(dyn std::error::Error + 'static)>> {
    let serialized_version: Vec<u8> = Message::serialize(MessageBody::Version(Version{x1: 3, x2: 6, x3: 0xFAFA})).unwrap();
    let serialized_battery: Vec<u8> = Message::serialize(MessageBody::BatteryHealth(BatteryHealth{x1: 10, x2: 20, x3: 0x0A0A})).unwrap();

    let deserialized_version: MessageBody = Message::deserialize(&serialized_version).unwrap();


  Ok(())
}

Stran: [1] 2 3