Nabídka

Zobrazit příspěvky

Zde lze prohlédnout všech příspěvky uživatele. Jsou zde vidět pouze příspěvky z oblastí, do kterých máte přístup.

Nabídka Zobrazit příspěvky

Příspěvky - Sam

#1
Citace od: LacconePanda kdy 23. 08. 2026, 20:20:38
Kdybych si chtěl sestavit desktop (tedy si vybrat konkrétní samostatný CPU), jakou byste doporučili platformu a chipset?  Škrtám i slabounké procesory typu N100 nebo embedded amd, ale to je asi druhořadá podmínka, když chci volný soket)Nutná podmínka je že použiju stávající DDR5 SO-DIMM 4800,5600MT ramky co mám ( při současných cenách nechci kupovat další ramky, a hádám, že desktopové DIMM jsou ještě dražší.) Výhledově bych tam chtěl dát GPU, není nutné žádné monstrum. Nejde mi ani o úsporu místa.

-existuje 4soketová SO-DIMM deska pro ?
-existuje arm9 s použitím SO-DIMM? (i DIMM vůbec?)

Není to aktuální, spíš teoretické... Pokud je to nereálné, klidně to napište (a důvod: provozní vlastnosti SO-DIMM, prakticky nesehnatelné....)

Existuje redukce SO-DIMM na normalni DDR5 https://tinyurl.com/24x8q4t4 ( nezkouseno, principialne by melo fungovat )
#2
Jo jeste jsem narazil na projekt jednoho manika co si hodne hraje se shadery a protoze se mi nektere efekty hodne libily, tak jsem postval AI na to aby z toho udelala singlepage html/javascript page.

<!DOCTYPE html>
<html lang="cs">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Rocaille 2 - WebGL Shader</title>
    <style>
        * { box-sizing: border-box; margin: 0; padding: 0; }
        body { overflow: hidden; background: #000; font-family: system-ui, sans-serif; color: #eee; }
        canvas { display: block; width: 100vw; height: 100vh; }
        #ui {
            position: absolute;
            top: 15px;
            right: 15px;
            background: rgba(15, 15, 20, 0.85);
            backdrop-filter: blur(8px);
            padding: 16px;
            border-radius: 10px;
            border: 1px solid rgba(255, 255, 255, 0.1);
            display: grid;
            grid-template-columns: 100px 120px 45px;
            gap: 10px 12px;
            align-items: center;
            font-size: 13px;
            max-height: 90vh;
            overflow-y: auto;
            box-shadow: 0 4px 20px rgba(0,0,0,0.5);
        }
        #ui label { font-weight: 500; }
        #ui input[type=range] { accent-color: #007acc; cursor: pointer; }
        #ui span { font-family: monospace; text-align: right; opacity: 0.8; }
    </style>
</head>
<body>
    <canvas id="glcanvas"></canvas>
    <div id="ui"></div>

    <script>
        const vsSource = `#version 300 es
        in vec2 a_position;
        void main() {
            gl_Position = vec4(a_position, 0.0, 1.0);
        }`;

        const fsSource = `#version 300 es
        precision highp float;

        uniform vec2 u_resolution;
        uniform float u_time;
        uniform float u_brightness;
        uniform float u_scale;
        uniform float u_steps;
        uniform float u_offset;
        uniform float u_color;
        uniform vec3 u_rgb;
        uniform float u_turb_max;
        uniform float u_turb_speed;

        out vec4 fragColor;

        void main() {
            vec3 col = vec3(0.0);
            vec2 p = (2.0 * gl_FragCoord.xy - u_resolution.xy) / u_resolution.y / u_scale;

            for (float i = 0.0; i < u_steps; i += 1.0) {
                vec2 wave = p;
                for (float j = 1.0; j < u_turb_max; j += 1.0) {
                    wave += sin(wave.yx * j + u_offset * i + u_turb_speed * u_time) / j;
                }
                col += (cos(u_color * i + u_rgb) + 1.0) / length(wave);
            }

            col = 1.0 - exp(-u_brightness * col * col);
            fragColor = vec4(col, 1.0);
        }`;

        const params = [
            { id: 'u_brightness', label: 'Brightness', val: 0.028, min: 0.001, max: 0.1, step: 0.001 },
            { id: 'u_scale', label: 'Scale', val: 0.3, min: 0.05, max: 1.0, step: 0.01 },
            { id: 'u_steps', label: 'Steps', val: 10, min: 1, max: 20, step: 1 },
            { id: 'u_offset', label: 'Offset', val: 1.0, min: 0.0, max: 2.0, step: 0.05 },
            { id: 'u_color', label: 'Color Shift', val: 1.0, min: 0.0, max: 2.0, step: 0.05 },
            { id: 'u_rgb_r', label: 'RGB Phase R', val: 0.0, min: -1.0, max: 3.0, step: 0.1 },
            { id: 'u_rgb_g', label: 'RGB Phase G', val: 1.0, min: -1.0, max: 3.0, step: 0.1 },
            { id: 'u_rgb_b', label: 'RGB Phase B', val: 2.0, min: -1.0, max: 3.0, step: 0.1 },
            { id: 'u_turb_max', label: 'Turb Max', val: 9.0, min: 4.5, max: 13.5, step: 0.5 },
            { id: 'u_turb_speed', label: 'Turb Speed', val: 1.0, min: 0.0, max: 3.0, step: 0.05 }
        ];

        const state = {};
        const uiContainer = document.getElementById('ui');

        params.forEach(p => {
            state[p.id] = p.val;

            const label = document.createElement('label');
            label.textContent = p.label;

            const input = document.createElement('input');
            input.type = 'range';
            input.min = p.min;
            input.max = p.max;
            input.step = p.step;
            input.value = p.val;

            const valDisplay = document.createElement('span');
            valDisplay.textContent = p.val;

            input.addEventListener('input', (e) => {
                const num = parseFloat(e.target.value);
                state[p.id] = num;
                valDisplay.textContent = num;
            });

            uiContainer.appendChild(label);
            uiContainer.appendChild(input);
            uiContainer.appendChild(valDisplay);
        });

        const canvas = document.getElementById('glcanvas');
        const gl = canvas.getContext('webgl2');

        if (!gl) {
            alert('WebGL 2 není ve vašem prohlížeči podporován.');
        }

        function createShader(gl, type, source) {
            const shader = gl.createShader(type);
            gl.shaderSource(shader, source);
            gl.compileShader(shader);
            if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
                console.error(gl.getShaderInfoLog(shader));
                gl.deleteShader(shader);
                return null;
            }
            return shader;
        }

        const program = gl.createProgram();
        gl.attachShader(program, createShader(gl, gl.VERTEX_SHADER, vsSource));
        gl.attachShader(program, createShader(gl, gl.FRAGMENT_SHADER, fsSource));
        gl.linkProgram(program);

        const positionLoc = gl.getAttribLocation(program, 'a_position');
        const buffer = gl.createBuffer();
        gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
        gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
            -1, -1,  1, -1, -1,  1,
            -1,  1,  1, -1,  1,  1,
        ]), gl.STATIC_DRAW);

        const uniforms = {
            u_resolution: gl.getUniformLocation(program, 'u_resolution'),
            u_time: gl.getUniformLocation(program, 'u_time'),
            u_brightness: gl.getUniformLocation(program, 'u_brightness'),
            u_scale: gl.getUniformLocation(program, 'u_scale'),
            u_steps: gl.getUniformLocation(program, 'u_steps'),
            u_offset: gl.getUniformLocation(program, 'u_offset'),
            u_color: gl.getUniformLocation(program, 'u_color'),
            u_rgb: gl.getUniformLocation(program, 'u_rgb'),
            u_turb_max: gl.getUniformLocation(program, 'u_turb_max'),
            u_turb_speed: gl.getUniformLocation(program, 'u_turb_speed'),
        };

        function resize() {
            canvas.width = window.innerWidth;
            canvas.height = window.innerHeight;
            gl.viewport(0, 0, canvas.width, canvas.height);
        }
        window.addEventListener('resize', resize);
        resize();

        function render(time) {
            time *= 0.001;

            gl.useProgram(program);
            gl.enableVertexAttribArray(positionLoc);
            gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
            gl.vertexAttribPointer(positionLoc, 2, gl.FLOAT, false, 0, 0);

            gl.uniform2f(uniforms.u_resolution, canvas.width, canvas.height);
            gl.uniform1f(uniforms.u_time, time);
            gl.uniform1f(uniforms.u_brightness, state.u_brightness);
            gl.uniform1f(uniforms.u_scale, state.u_scale);
            gl.uniform1f(uniforms.u_steps, state.u_steps);
            gl.uniform1f(uniforms.u_offset, state.u_offset);
            gl.uniform1f(uniforms.u_color, state.u_color);
            gl.uniform3f(uniforms.u_rgb, state.u_rgb_r, state.u_rgb_g, state.u_rgb_b);
            gl.uniform1f(uniforms.u_turb_max, state.u_turb_max);
            gl.uniform1f(uniforms.u_turb_speed, state.u_turb_speed);

            gl.drawArrays(gl.TRIANGLES, 0, 6);
            requestAnimationFrame(render);
        }

        requestAnimationFrame(render);
    </script>
</body>
</html>
#3
Citace od: Petr Hložek kdy 10. 09. 2026, 16:59:36
Dokončit asi žádný protože software asi není hotový nikdy, ale udělal jsem si svůj terminál, který používám každý den:

https://calmbit.cz/shellboard

Pak udělal velký upgrade nějakých webů, zase začal pracovat na projektu, který je na světě 19 let - https://github.com/ok2cqr/cqrlog pomocí AI jsem udělal flatpak build, kompilaci pro macos a další.

Mám nápady i na další projekty, ale málo energie :-).

Pekne ;-) ja nedavno objevil wez-term a pouzivam ho k plne spokojenosti, to tve dilo vyzkousim diky !
#4
Odjezdy busu pro zenu & decka. Neustale se ptali "kdy jede dalsi bus" a "jak je tam (pocasi)". Byla to takova klasicka AI ping-pong ( spatne pouzil API URL ) takze jsem je musel rucne dohledat a opravit mu zadani, ale stranku pak vygeneroval vicemene bez porblemu. Za 2-3 hodiny hotovo a stary tablet dostal uzitecnou ulohu.

https://imgur.com/a/WNi6FGs
#5
Server / Re:Hledám zálohovací prostor
28. 07. 2026, 21:11:11
Citace od: a6b kdy 28. 07. 2026, 19:56:34
a k tomu se tu snad diskutovalo, ze jde o 1 TB :-) to bych unesl i na disketach 🥸

Sorry ja musel, pan je zrejme silak.
678 169 disket x 20g = 13 563 380 approx 13,56 tuny

#6
Server / Re:Hledám zálohovací prostor
27. 07. 2026, 20:29:09
Google neni jen google drive, takze Google Cloud Storage ale musis si to trochu nastudovat ale neni to moc slozite.

Plati se zone/dual-zone/multi-zone podle typu zalohy. Pouzivam pres 5let a v pohode. Jde to namountovat pres fuse do stroje a dalsi vychytavky. Hledej kdyztak Google Cloud Storage pricing.

Zone / Varsava priklad cen
Standard storage                Nearline storage                 Coldline storage                Archive storage
$0.023 / 1 gibibyte month   $0.013 / 1 gibibyte month   $0.006 / 1 gibibyte month   $0.0025 / 1 gibibyte month
#7
Jsem v oboru pomerne dlouho, od dob kdy internet byl v plenkach. A zacinam si myslet, ze byt offline je spis vyhra nez-li prohra ;-). Ona je ta otazka co kdo pod tim "offline" mysli. Jsou tu preperi kteri jdou az ad absurdum ale i jejich pristup k ziovtu chapu, tezko na cvicisti lehko na bojisti. Zrusil jsem vetsinu socek, zamerne kupuji spotrebice "bez pripojeni" protoze to stejne u 99% nedava smysl. A pokud bude nas svet opravdu "offline" bude to jiny ficak. Cetl jsem o borci co si udelal kufrikovou wikipedii offline ale takovy magor zase nejsem. Jsem pragmatik, co dokaze prezit bez netu imho myslim docela dobre. 
#8
Vývoj / Re:Je jazyk C skutočne ťažký?
03. 06. 2025, 12:21:47
Je a neni. Imho pokud vezmes jazyk jako takovy ( bez knihoven ) tak te mohou potrapit v podstate jenom ukazatele. Opet zalezi na tom jestli clovek neco nekdy delal napriklad v asembleru, protoze pak je to chapani veci mnohem jednodussi. To co cinni psani programu v C "slozitym" je "tvoje odpovednost za vse" typicky alokace/dealokace pameti, aligment atd. C je krasny a mocny jazyk, imho nepravem opomijeny v dnesni dobe.
#9
Server / Re:MySQL: read once
03. 05. 2025, 11:06:22
V podstate jak zminil nekdo prede mnou potrebujes frontu. Napriklad Oracle ma implementaci oracle advanced queuing jiz skoro pres 20let ( pouzivame to v nasem reseni ). Hledej DBMS_AQ a DBMS_AQ_ADM ( pisu z hlavy ) pro inspiraci. Nevim jestli nekdo pro mysql neudelal nejaky podobny plugin. Samozrejme si muzes naprogramovat neco podobneho ( for update & skip locekd & nowait & limit ) ovsem transakce nebude read only.
https://dba.stackexchange.com/questions/98311/best-way-to-implement-concurrent-table-based-queue

#10
Citace od: Ħαℓ₸℮ℵ ␏⫢ ⦚ kdy 22. 02. 2025, 19:49:13
Šárko, řekl bych, že RAID nikdy nebyl určen k výkonnostnímu přínosu (ano, mirror, 2x zvýšil čtení, v době ploten to dávalo smysl, ale to je asi tak jediná věc)

přeji šťastný rozjezd na fóru . Na prvotinu zajímavý dotaz.

Bud nerozumim tve myslence a nebo jsi napsal hrozny blud.

https://wintelguy.com/raidperf.pl
#11
Citace od: LivingLegend kdy 23. 08. 2024, 09:46:20
Bydlím v bytě, satáně se narodilo v covidové době . Uznávám, že dokud to nechodilo, bylo to těžší (mimina nějak postrádají vypínací tlačítka). Ale manžělka se snažíla být pořád někdě mimo (procházky, plavání, cvičení atp). Když začalo lézt a pak chodit, manželka byla s dítětem idálně pořád někde někde mimo, nebo šly do jiných místností, než kde pracuji. Snažily se mě nerušit, a obě se (vlastně tak nějak samy od sebe) naučily, že když mám sluchátka, nemají mě vůbec rušit, a když je nemám, tak se zeptají, jestli mohou rušit. A to většinou s informací typu ,,Máš jídlo na stole", ,,Chceš kafe?" atd. Jak malá vobluda vyrostla a začlenila se do kolektivu, začala nosit  domu různé nemoci, a tak začalo občasné nechození do institucí. Takže jsme ideálně oba na HO a pracujeme. Vobluda ví, že pokud má někdo sluchátka, nemá ho rušit, a hraje si sama, nebo jí pustím něco na koukání, ale to vydží tak deset minut.

Chápu, mám jen jedno dítě, ale je pravděpodobné, že s více satany by to bylo asi náročnější. Ale jak to tu čtu, tak to skoro vypadá, že když máš dítě, tak se na HO nedá pracovat.

Teď mám pozici, že mě nikdo do kanceláře nenutí, ale stejně tam chodím dobrovolně. Za prvé je to malá procházka, a za druhé člověk v kanceláři občas podchytí nějaké nesmysly, které by na něj šly a nemusely, protože je utne hned v začátku.

Mam stesti, zena pracuje noHO. Deti uz jsou velke takze chodi do skoly, kdyz prijdou tak chapou ze pracuji, takze nerusi.
V tvem pripade asi pomuze jen rozmluva, cedulka na dvere + klic do zamku.
#12
Myslim si ze v pohode. V podstate jsem bez dluhu ( jediny byl hypo ). Diverzifikovano. No a ruzny pitomce s vybornymi produkty jako zivotni pojisteni, terminovane vklady apod. posilam stredem. Jo a za chvili poslu stredem jednu nejmenovanou banku z ktere se stala "dotacni & zelena agitka".
#14
Primarne uz 20+ let vi(m) a posledni dobou na nektere veci vs code.  Kdysi multi-edit a buhvi co jeste, pamet uz ridne.
#15
Pretaktovano na 2.8GHz, stabilni, bezi mi to tu 12dni, v podstate skoro v plne zatezi ( chce to aktivni vetrak + origo zdroj ).
Mam tam pimoroni nvme base + 0.5TB NVME SSD z ktereho to bootuji a bezi to fajn.


bigsam@rpi5:~ $ vcgencmd measure_clock arm
frequency(0)=2800043776
bigsam@rpi5:~ $ uptime
18:38:29 up 12 days, 20:56,  3 users,  load average: 3.69, 3.31, 3.26
bigsam@rpi5:~ $ uname -a
Linux rpi5 6.6.20+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.20-1+rpt1 (2024-03-07) aarch64 GNU/Linux
bigsam@rpi5:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 12 (bookworm)
Release:        12
Codename:       bookworm
bigsam@rpi5:~ $


Jinak mam jeste RPi4 bootovane z iSCSI lunu z NASu a tam je take debian 12,a bezi to jako fik.

bigsam@rpi4:~ $ uptime
18:45:33 up 46 days, 18:06,  6 users,  load average: 0.09, 0.09, 0.09