Design (GitHub) je 2D CAD pro GNOME. Instalovat lze i z Flathubu. Běží také ve webovém prohlížeči.
Příspěvek na blogu herního enginu Godot představuje aplikaci Xogot přinášející Godot na iPad a iPhone. Instalovat lze z App Storu. Za Xogotem stojí Miguel de Icaza (GitHub) a společnost Xibbon.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za březen (YouTube).
ESP-IDF (Espressif IoT Development Framework), tj. oficiální vývojový framework pro vývoj aplikací na mikrokontrolérech řady ESP32, byl vydán v nové verzi 6.0. Detaily na portálu pro vývojáře.
DeepMind (Alphabet) představila novou verzi svého multimodálního modelu, Gemma 4. Modely jsou volně k dispozici (Ollama, Hugging Face a další) ve velikostech 5-31 miliard parametrů, s kontextovým oknem 128k až 256k a v dense i MoE variantách. Modely zvládají text, obrázky a u menších verzí i audio. Modely jsou optimalizované pro běh na desktopových GPU i mobilních zařízeních, váhy všech těchto modelů jsou uvolněny pod licencí Apache 2.0. Návod na spuštění je už i na Unsloth.
Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 3. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).
Průkopnická firma FingerWorks kolem roku 2000 vyvinula vícedotykové trackpady s gesty a klávesnice jako TouchStream LP. V roce 2005 ji koupil Apple, výrobu těchto produktů ukončil a dotykové technologie využil při vývoji iPhone. Multiplatformní projekt Apple Magic TouchstreamLP nyní implementuje funkcionalitu TouchStream LP na současném Apple Magic Trackpad, resp. jejich dvojici. Diskuze k vydání probíhá na Redditu.
Byla vydána nová verze 10.3 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu bezpečnostních oprav, vylepšení funkcí a oprav chyb.
Cloudflare představil open source redakční systém EmDash. Jedná se o moderní náhradu WordPressu, která řeší bezpečnost pluginů. Administrátorské rozhraní lze vyzkoušet na EmDash Playground.
Bratislava OpenCamp 2026 zverejnil program a spustil registráciu. Štvrtý ročník komunitnej konferencie o otvorených technológiách prinesie 19 prednášok na rôzne technologické témy. Konferencia sa uskutoční v sobotu 25. apríla 2026 v priestoroch FIIT STU v Bratislave.
1.3.2014 1000 1.6.2014 1500 1.9.2014 2100což je datum a stav vodoměru v daný den. Chci z toho dostat toto:
1.3.2014-1.6.2014 500 1.6.2014-1.9.2014 600tedy kolik se spotřebovalo vody vždy mezi jednotlivými zápisy. Prosím o radu na elegantní řešení v PostgreSQL. Díky.
Řešení dotazu:
SELECT s1.datum AS od, s2.datum AS do, s2.stav - s1.stav AS rozdil FROM spotreba_vody s1 CROSS JOIN spotreba_vody s2 WHERE s1.datum < s2.datumNa PostgreSQL netestovano, ale melo by to fungovat. Ma to jednu odlisnost, vraci to i rozdil mezi 1.3. a 1.9.
SELECT x.od, x.do, s2.stav - s1.stav AS rozdil
FROM
(
SELECT
x1.datum AS od
, (SELECT MIN(x2.datum) FROM spotreba_vody x2 WHERE x2.datum > x1.datum) AS do
FROM spotreba_vody x1
) x
JOIN spotreba_vody s1 ON s1.datum = x.od
JOIN spotreba_vody s2 ON s2.datum = x.do
Tohle vrati jen ty dva zaznamy, ale opet nevim, jestli funguje i na postgresu..
Máte dvě možnosti. První méně efektivní se self joinem a druhý lepší s window funkcemi.
select A.dt ,min(B.dt) ,min(B.val order by B.dt)-A.val from T as A join T as B on A.dt<B.dt group by A.*
select A.dt ,max(A.dt) over( order by A.dt rows between current row and 1 following) ,max(A.val) over( order by A.dt rows between current row and 1 following)-A.val from A
Psáno bez jakékoliv kontroly, takže tam budou asi nějaké chybky. Ale jako nápověda je to dostatečné. BTW: Co když není datum unikátní?
select * from ( select voda.datum as zacatek ,max(voda.datum) over( order by voda.datum rows between current row and 1 following) as konec ,max(voda.stav) over( order by voda.datum rows between current row and 1 following)-voda.stav as spotreba from myschema.voda ) foo where zacatek != konec;Nejedinečné datum s různými stavy vodoměru je blbost, tak přidán constraint (ve skutečnosti je to timestamp, ne datum). K dokonalosti ještě chybí ošetřit přetočení či výměnu vodoměru, ale to teď řešit nebudu.
postgres=> select *
from (select mereno, hodnota - lag(hodnota) over (order by mereno) as spotreba
from odecet order by 1) s
where spotreba is not null;
mereno | spotreba
------------+----------
2014-01-06 | 500
2014-01-09 | 600
(2 rows)
Kartézákům se pokud možno vyhýbejte - pro větší data to může být docela pomalé, a navíc zápis s window funckcemi je výrazně čitelnější.
Tiskni
Sdílej: