Poslední příspěvky

Stran: [1] 2 3 ... 10
1
Vývoj / Re:Přechod z Javy na Rust. Ano či ne?
« Poslední příspěvek od novomente kdy Dnes v 08:47:40 »
Když vývojář dostane zadání, musí ho napřed analyzovat a vybrat pro něj vhodný jazyk, ve kterém ho je nejlépe zakódovat. Každý programovací jazyk má svá specifika (výhody i nevýhody), která se musí při oné volbě brát v úvahu.

Pokud se bavíme o komerčním vývoji, o firmách, tak tam je většinou rozhodnuto předem. Je tam obecně snaha omezovat tyhle „zoo“ programovacích jazyků a technologií a mít to jednotné, aby mohla fungovat zastupitelnost, aby jeden programátor mohl přecházet mezi různými projekty té firmy a nestávalo se ti, že máš několik volných programátorů v jazyce X, ale práci máš pro programátora v jazyce Y.

Vybírat si můžeš, pokud je to tvůj projekt nebo jsi šéf vývoje a máš za úkol stavět něco na zelené louce. I tam je ale dobré myslet na to, kde najdeš potřebné programátory a jaké budou mít požadavky ostatní projekty té firmy, abys to měl do budoucna pokud možno jednotné. Větší firmy si můžou dovolit větší pestrost (byť to není moc záměr, spíš důsledek jakési volnosti a experimentů), u menších je spíš snaha mít jeden hlavní jazyk. A i když je někde víc jazyků současně, tak typicky spíš z historických důvodů a postupně se přechází, nové projekty se začínají jen v tom aktuálním.

Co vývojář, to originální osobnost. Co zadání + vývojář, to originální výsledek zpracování toho zadání. Nikdy jsem nepracoval ve vývojářském týmu. A dotaz zní: Máte také podobnou zkušenost s originalitou každého vývojáře? Mohu veřejně říci, že zpracování zadání (vývoj, programování atd.) je velice osobní záležitost?

Každý má nějaký styl, co je mu nejbližší a přirozené, k čemu se na základě svých zkušeností dopracoval. Spíš než hodnotit, co je správně a odsuzovat, co je špatně, je užitečnější se zajímat, co k tomu dotyčného vedlo, na základě jakých zkušeností k tomu došel. Na druhou stranu, pokud spolu ti lidé mají pracovat v jednom týmu na jednom projektu, tak je dobré, aby si domluvili nějaký kompromis a společné konvence, které budou dodržovat – rozumný člověk si může zachovat svůj názor, ale zároveň si je vědom toho, že dělat to „o trochu horším“ způsobem, ale jednotně, je užitečnější, než když to budou dělat všichni „lépe“ ale každý jinak.

Celkem jsem to musel čtyřikrát přepisovat prakticky od nuly, neboť jsem narazil na okamžik, kdy už jsem se v kódu sám nevyznal. Četl jsem, že dobrou věcí v programování je určit si nějaký svůj "styl" a toho se pak držet.
Programování už není zábava pro nerdy. Dneska je to business. Takže:
- kolik bude stát programátora číst existující kód?
- kolik bude stát kód napsat?
- kolik bude stát přidání nové funkcionality?
- cenu snižuje znovupoužitelnost
- kdy a kde nastanou chyby a kolik nás to bude stát?

Proto se vymýšlí nové jazyky, jinak by nám ten Assembler bohatě stačil.


Co vývojář, to originální osobnost. Co zadání + vývojář, to originální výsledek zpracování toho zadání. Nikdy jsem nepracoval ve vývojářském týmu. A dotaz zní: Máte také podobnou zkušenost s originalitou každého vývojáře? Mohu veřejně říci, že zpracování zadání (vývoj, programování atd.) je velice osobní záležitost?
Ano, a je to špatné. Protože to jde proti výše uvedenému.

Třeba mě se stalo, že jsem předělal nějakou část kódu a pak jsem se zamyslel nad tím, kolik práce s adopcí těch změn bude mít kolega. A nakonec jsem to zahodil jako neefektivní. Přínos mých změn byl menší jak nutnost kolegu přimět ho adoptovat.

Mnohokrát vám děkuji za odpověď. Byla mi velkým přínosem.

nm
2
Hardware / Re:Jaké NVR + kamery, aby byla podpora 5+ roků?
« Poslední příspěvek od Zopper kdy Dnes v 07:49:23 »
celé to na mě působí, jako by všechny výrobky byly jen jinak pojmenovaný a zakrabičkovaný čínský krám, prodávaný různými výrobci pod různými názvy.
Ano. To samé webové kamery, kamery do auta, mikrovlnky, myčky, ledničky, ... - vevnitř je jedna z já nevím, tří, čtyř variant co vyrábí dvě firmy, a jen to je zabalené do krabice s logem. Což ale není až tak divné: Kolik že těch výrobců CPU nebo GPU vlastně máme? A i tak, nakonec to stejně všichni vyrábí u TSMC.

Jak to řeší firmy, nevím - možná tam, kde je požadavek na dlouhodobou podporu nedávají Uniarch za osm stovek, ale  Unify za osmnáct set a víc? A nebo dají tu kameru za osm stovek a počítají s tím, že za pět let to stejně nebude nikdo předělávat a čistit, ale prostě se vyhodí a koupí nové.
3
Hardware / Jaké NVR + kamery, aby byla podpora 5+ roků?
« Poslední příspěvek od Xjmeno363 kdy Dnes v 00:17:06 »
Ahoj, následující část je spíše k zamyšlení a je hooodně dlouhá a klidně jí přeskočte:

Spiše k zamyšlení – potřebuji u rodičů nainstalovat NVR. Šel jsem cestou NVR + kamery. Vzal jsem v Alze 3 NVR a asi 11 kamer různých výrobců.

a bohužel jsem se přesvědčil, že kompatibilita je tristní i pres deklarovanou NVIF kompatibilitu. NVR si kamery běžně neumějí sami najit a nespárují se. Je třeba použít počáteční inicializaci pres PC, nebo dokonce mobilní aplikace. Z kamer se dá získat obraz jen pres RTSP, v režimu ONVIF se kamery často připojí, ale neumožnují pokročilou konfiguraci i když by mely apod. NVR mají podivnou konfiguraci IP – proč tam prostě není nastavení statické IP, nebo DHCPs a schovává se to pod podivnými výrazy jako „přiřadit kameře protokol“???

Všimli jste si, že na kamerách ubylo resetovací tlačítko? – když jí nějaký jouda zamkne a vrátí do alzy, tak jediné řešení je psát si někam do číny s Uniarch, nebo evolveo apod. – za mě šílené. Jak se to bude řešit u 2-3 roky staré kamery?

Některé už ani nemají statickou IP a je vyžadována zapojit do sítě s DHCPs a apka na android pro prvotní konfiguraci. Samozřejmě plus vlastní PoE  switch nebo výrobcem nedodaný nap. adaptér….všechno mám, ale…to by jeden zvracel.

Navíc masivní retro-branding
když jsem instaloval HiLook, všiml jsem si, ze se v ovladačích vyskytovaly názvy souboru Dahua nebo Axis, …iGET. V driverech a dll knihovnách je zase plno čínských nazvu. Při skenovaní nmapem se kamery podepisuji jako nějaké čínske krámy Gancchuong Vision camera......
celé to na mě působí, jako by všechny výrobky byly jen jinak pojmenovaný a zakrabičkovaný čínský krám, prodávaný různými výrobci pod různými názvy. I např. proces aktivace aplikace pro android u axis, uniarch evolveo a hilook je téměř totožný včetně umístěni tlačítek, liší se jen grafika. Tak jak to je doopravdy? Kdo to tedy vlastně vyrábí?



--------------
K otázce z úvodu:
Jaké máte zkušenosti a jak vybíráte kamery + NVR. Aby šlo z NVR konfigurovat např. přepínání infra, nebo využívat detekci pohybu v kameře, nastavení expozice…. Jak řešíte podporu a nové apky pro nové androidy/ios v horizontu řekněme 5 let?

Přeci jen jedna věc je cena NVR a kamer, ale daleko větší položka je instalace na baráku a fakt nechci, abych to po 3 letech zahodil a osazoval nové…

Jak to řeší ostatní firmy, které instaluji zabezp. systémy? To opravdu nainstaluji NVR a k němu nějaké kamery a stačí, že "jede" obraz přes rtsp? A klient je s tím spokojený???


Nechápu to...mam 10 let starou zkušenost, když jsem dával kamery na svůj barák a prakticky nic se nezměnilo…




   
4
Bazar / Prodám knihy o programování
« Poslední příspěvek od ping kdy 03. 10. 2025, 21:45:19 »
Ahoj, nabízím knihy k prodeji:
  • Java Puzzlers - 200 Kč
  • Java Coding Guidelines - 250 Kč
  • 24 Deadly Sins of Software Security: Programming Flaws and How to Fix Them, 1. edice - 500 Kč
  • Writing Secure Code, 2. edice - 600 Kč
  • Code Complete, 2. edice - 600 Kč

Stav všech je jako nový, nejlépe osobní odběr - Praha.
5
Hardware / Re:Zapnutí úsporných režimů pro NVMe
« Poslední příspěvek od RDa kdy 03. 10. 2025, 21:03:29 »
Ale už se mi stalo, že jsem koupil vážně hřejivé SSD pro PCIe 5.0 (že sice nepotřebuji PCIe 5.0, ale myslel jsem si, že rychlosti budou lepší). No a to topilo i v idle jako **** a horký to bylo i s chladičem....tak letěl.

Pokud je chladič doplněk, aby se to lépe chladilo, tak super. Ostatně čipy jsou malé a teplo je šikovné rozvést.
Ale pokud je chladič takový rovnák na ohýbák, kdy se to bez něj samo na normální teploty neuchladí skoro ani v IDLE, tak je něco brutálně špatně.

Ve zkratce, pokud je to horké už v IDLE, měl bys uvažovat o výměně disku.

Taky takovych disku hromada pak umira. Mam nizsi desitky TB z techto modelu a doufam ze tam alespon NAND prezilo a upekl se tomu jenom radic (a to jsou "znackove" Crucial disky).

Nastesti uz existuje druha generace Gen5 radicu na mensim nm nodu, a v soucasnosti celkem vede WD SN8100 a dalsi znacky, ktere maj stejny radic (napr. Crucial T710).
6
Hardware / Re:Zapnutí úsporných režimů pro NVMe
« Poslední příspěvek od RDa kdy 03. 10. 2025, 20:56:45 »
nějaký board s intel n100, 
disk je 1e95:100b (nenašel jsem id na netu, ale SSSTC  SSSTC  XB2-311024 , možná odpovídá  CL.1 / CL.4 na webu).

SSSTC dela hlavne OEM disky, takze firmware se muze taky chovat podle specifickych prani zakaznika.

Resil jsem jeden uplne novej quirk abych rozjel jedno wtf frikulinske 867GiB SSSTC NVMe (ma to jine PID nez tvoje):

Kód: [Vybrat]
+       /*
+        * HMB (Host Memory Buffer) should not be used.
+        */
+       NVME_QUIRK_NO_HMB                       = (1 << 23),

        /*
+        * Some drives should not be configured with HMB even if they advertise the need.
+        */
+       if (dev->ctrl.quirks & NVME_QUIRK_NO_HMB) {
+               dev_warn(dev->ctrl.device,
+                       "host memory buffer usage is forbidden for this drive\n");
+               return 0;
+       }

+       { PCI_DEVICE(0x1e95, 0x1000),  /* 931GB Microsoft, SSSTC XA1-311024, Phison E19 */
+               .driver_data = NVME_QUIRK_NO_HMB, },
7
Vývoj / Re:Přechod z Javy na Rust. Ano či ne?
« Poslední příspěvek od Kit kdy 03. 10. 2025, 18:07:01 »
Obávám se, že když někdo neví, v jakém kódování má která data, tak ho nezachrání ani knihovna.

Tady taky narážíme na to, že vývoj softwaru není jen o technologiích, ale i o lidském chování. Pro spolupráci je kolikrát důležitější než nedělat chyby, nebýt kretén a uznat, že v programu chyba je a opravit ji.

Pokud by Pohoda to cizí písmenko zakódovala jako entitu, problém by nenastal.
8
Sítě / Re:Řešení malé LAN s IP kamerami
« Poslední příspěvek od darebacik kdy 03. 10. 2025, 17:16:48 »
OK, takze pojdem do VLANov
9
Vývoj / Re:Přechod z Javy na Rust. Ano či ne?
« Poslední příspěvek od Tomáš Crhonek kdy 03. 10. 2025, 16:53:03 »
Obávám se, že když někdo neví, v jakém kódování má která data, tak ho nezachrání ani knihovna.

Knihovny v jazycích, které jsem používal, používaly zásadně unicode, takže nepořádek ve stringu by musel být už před tím. Stejně je s podivem, že se dneska ještě používá ISO nebo starší kódování. Pokud je celý program v unicode, tak se tam špatný text v podstatě zadat ani nedá, to by to tam musel někdo špatně už napsat.
10
Vývoj / Re:Přechod z Javy na Rust. Ano či ne?
« Poslední příspěvek od Franta Kučera kdy 03. 10. 2025, 16:09:16 »
Nedávno jsem tady do nějaké diskuse napsal, že generování XML je někdy lepší si napsat sám, ručně, bez knihoven a hned se seběhli místní trollové, co že si to dovoluji si takovou věc psát sám… Přitom to generování XML je výrazně jednodušší než parsování (byť si nepíšeš vlastní parser asi zpracováváš SAX události nebo pracuješ nad DOMem nebo něco podobného). (jen dodávám, že cílem toho mého generátoru nebylo generování libovolného XML, ale určité podmnožiny, která je pro moje potřeby dostačující – důležité je, aby výstup bylo validní XML)

Kdysi jsem měl číst ceník v XML, který prodejce generoval tuším v Pohodě. V záhlaví sada Windows-1250, v obsahu francouzský parfém. Výsledkem nevalidní XML. Prodejce byl bohužel přesvědčen, že má vše správně. Lepení XML bohužel pokaždé nevyjde.

Obávám se, že když někdo neví, v jakém kódování má která data, tak ho nezachrání ani knihovna.

Viz např. v PHP:

Kód: [Vybrat]
<?php

$xw 
xmlwriter_open_memory();
xmlwriter_set_indent($xw1);
$res xmlwriter_set_indent_string($xw"\t");

xmlwriter_start_document($xw'1.0''UTF-8');

xmlwriter_start_element($xw'zkouška-kódování');

$text "čeština v UTF-8";
xmlwriter_start_element($xw'správně');
xmlwriter_text($xw$text);
xmlwriter_end_element($xw);

// tato data se načetla např. ze souboru nebo z databáze:
$text "čeština v ISO-8859-2";
$text iconv("UTF-8""ISO-8859-2"$text);
xmlwriter_start_element($xw'špatně');
xmlwriter_text($xw$text);
xmlwriter_end_element($xw);

xmlwriter_end_element($xw);

echo 
xmlwriter_output_memory($xw);

?>

Nebo v Javě:

Kód: [Vybrat]
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class BadEncodingXml {

    public static void main(String[] args) throws Exception {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document d = db.newDocument();

        Element root = d.createElement("zkouška-kódování");
        d.appendChild(root);

        {
            String text = "čeština v UTF-8";
            Element správně = d.createElement("správně");
            správně.appendChild(d.createTextNode(text));
            root.appendChild(správně);
        }

        {
            String text = "čeština v ISO-8859-2";
            text = new String(text.getBytes("ISO-8859-2"), "UTF-8");
            // Java tam aspoň dá: � takže XML je validní, byť data jsou chybná
            Element špatně = d.createElement("špatně");
            // případně: text = "\0";
            špatně.appendChild(d.createTextNode(text));
            root.appendChild(špatně);
        }
       
        TransformerFactory tf = TransformerFactory.newInstance();
        Transformer t = tf.newTransformer();
        t.transform(new DOMSource(d), new StreamResult(System.out));
    }
}


Chyba se dá udělat i při násobení dvou čísel, ale asi to neznamená, že přestaneme násobit, že?

Tady taky narážíme na to, že vývoj softwaru není jen o technologiích, ale i o lidském chování. Pro spolupráci je kolikrát důležitější než nedělat chyby, nebýt kretén a uznat, že v programu chyba je a opravit ji.
Stran: [1] 2 3 ... 10