Obrovská poptávka po plynových turbínách zapříčinila, že datová centra začala používat v generátorech dodávajících energii pro provoz AI staré dobré proudové letecké motory, konvertované na plyn. Jejich výhodou je, že jsou menší, lehčí a lépe udržovatelné než jejich průmyslové protějšky. Proto jsou ideální pro dočasné nebo mobilní použití.
Typst byl vydán ve verzi 0.14. Jedná se o rozšiřitelný značkovací jazyk a překladač pro vytváření dokumentů včetně odborných textů s matematickými vzorci, diagramy či bibliografií.
Specialisté společnosti ESET zaznamenali útočnou kampaň, která cílí na uživatele a uživatelky v Česku a na Slovensku. Útočníci po telefonu zmanipulují oběť ke stažení falešné aplikace údajně od České národní banky (ČNB) nebo Národní banky Slovenska (NBS), přiložení platební karty k telefonu a zadání PINu. Malware poté v reálném čase přenese data z karty útočníkovi, který je bezkontaktně zneužije u bankomatu nebo na platebním terminálu.
V Ubuntu 25.10 byl balíček základních nástrojů gnu-coreutils nahrazen balíčkem rust-coreutils se základními nástroji přepsanými do Rustu. Ukázalo se, že nový "date" znefunkčnil automatickou aktualizaci. Pro obnovu je nutno balíček rust-coreutils manuálně aktualizovat.
VST 3 je nově pod licencí MIT. S verzí 3.8.0 proběhlo přelicencování zdrojových kódů z licencí "Proprietary Steinberg VST3 License" a "General Public License (GPL) Version 3". VST (Virtual Studio Technology, Wikipedie) je softwarové rozhraní pro komunikaci mezi hostitelským programem a zásuvnými moduly (pluginy), kde tyto moduly slouží ke generování a úpravě digitálního audio signálu.
Open source 3D herní a simulační engine Open 3D Engine (O3DE) byl vydán v nové verzi 25.10. Podrobný přehled novinek v poznámkách k vydání.
V Londýně probíhá dvoudenní Ubuntu Summit 25.10. Na programu je řada zajímavých přednášek. Zhlédnout je lze také na YouTube (23. 10. a 24. 10.).
Gemini CLI umožňuje používání AI Gemini přímo v terminálu. Vydána byla verze 0.10.0.
Konference OpenAlt 2025 proběhne již příští víkend 1. a 2. listopadu v Brně. Nabídne přibližně 80 přednášek a workshopů rozdělených do 7 tematických tracků. Program se může ještě mírně měnit až do samotné konference, a to s ohledem na opožděné úpravy abstraktů i případné podzimní virózy. Díky partnerům je vstup na konferenci zdarma. Registrace není nutná. Vyplnění formuláře však pomůže s lepším plánováním dalších ročníků konference.
Samsung představil headset Galaxy XR se 4K Micro-OLED displeji, procesorem Snapdragon XR2+ Gen 2, 16 GB RAM, 256 GB úložištěm, operačním systémem Android XR a Gemini AI.
Jen tak, před nedávnem, z dlouhé chvíle vzniklo toliko kódu…
#include "iostream"
using namespace std;
class CsSuccesor
{
public:
CsSuccesor();
CsSuccesor(CsSuccesor &that);
~CsSuccesor();
CsSuccesor& Succesor(CsSuccesor &that);
friend ostream& operator <<(ostream &stream, CsSuccesor succesor);
CsSuccesor& operator =(CsSuccesor &that);
CsSuccesor& operator +(CsSuccesor &that);
CsSuccesor& operator -(CsSuccesor &that);
unsigned long long int ToInteger();
private:
CsSuccesor *m_pSucc;
};
CsSuccesor::CsSuccesor()
{
m_pSucc = NULL;
}
CsSuccesor::CsSuccesor(CsSuccesor &that)
{
m_pSucc = NULL;
if (that.m_pSucc != NULL)
{
m_pSucc = new CsSuccesor(*(that.m_pSucc));
}
}
CsSuccesor::~CsSuccesor()
{
if (m_pSucc != NULL)
{
delete m_pSucc;
m_pSucc = NULL;
}
}
CsSuccesor& CsSuccesor::Succesor(CsSuccesor &that)
{
m_pSucc = new CsSuccesor();
if (that.m_pSucc != NULL)
{
m_pSucc->Succesor(*(that.m_pSucc));
}
return *this;
}
ostream& operator <<(ostream &stream, CsSuccesor succesor)
{
if (succesor.m_pSucc)
{
stream << "Succ(" << *(succesor.m_pSucc) << ")";
}
else
{
stream << "Zero";
}
return stream;
}
CsSuccesor& CsSuccesor::operator =(CsSuccesor &that)
{
if (this != &that)
{
if (m_pSucc != NULL)
{
delete m_pSucc;
m_pSucc = NULL;
}
if (that.m_pSucc)
{
m_pSucc = new CsSuccesor(*that.m_pSucc);
}
}
return *this;
}
CsSuccesor& CsSuccesor::operator +(CsSuccesor& that)
{
CsSuccesor* out = new CsSuccesor();
if (m_pSucc != NULL)
{
out->m_pSucc = new CsSuccesor(*m_pSucc + that);
}
else
{
if (that.m_pSucc != NULL)
{
out = new CsSuccesor(that);
}
}
return *out;
}
CsSuccesor& CsSuccesor::operator -(CsSuccesor& that)
{
CsSuccesor* out = new CsSuccesor(*this);
if (that.m_pSucc != NULL)
{
if (m_pSucc != NULL)
{
delete out;
out = new CsSuccesor(*m_pSucc - *that.m_pSucc);
}
}
return *out;
}
unsigned long long int CsSuccesor::ToInteger()
{
return (m_pSucc != NULL ? m_pSucc->ToInteger() + 1 : 0);
}
int main()
{
CsSuccesor succ1;
cout << succ1 << '\n' << succ1.ToInteger() << '\n';
CsSuccesor succ2(succ1);
cout << succ2 << '\n' << succ2.ToInteger() << '\n';
CsSuccesor succ3(succ1.Succesor(succ2));
cout << succ3 << '\n' << succ3.ToInteger() << '\n';
CsSuccesor succ4 = succ3;
cout << succ4 << '\n' << succ4.ToInteger() << '\n';
CsSuccesor succ5 = succ3 + succ4;
cout << succ5 << '\n' << succ5.ToInteger() << '\n';
CsSuccesor succ6 = succ5 - succ3;
cout << succ6 << '\n' << succ6.ToInteger() << '\n';
return 0;
}
…netvrdím, že ve všech rysech je to dokonalé, ale zábavné a hravé.
Tiskni
Sdílej:
void do(int A[], int s) {
int i, j, k, l;
k = size / 2;
while (k > 0) {
for (i = k; i < s; i++) {
j = i;
l = A[i];
while ((j >= k) && (A[j-k] > l)) {
A[j] = A[j - k];
j = j - k;
}
A[j] = l;
}
if (k == 2)
k = 1;
else
k = (int) (k / 2.2);
}
}
Eliminace poznámek a (tím blbým způsobem jsou i vhodné názvy proměnných formou poznámek a přesto znám programátory, kteří používají jména jako: xx, yy, xxx, yyy, xxxx, yyyy) substituce názvů proměnných jejich stručnějším ekvivalentem, zde imho naprosto znečitelnila tento (jinak profláklý) kus kódu.
Ono to zcela jistě bylo myšleno jako ironie, ale někdo by se té citace mohl chytnout.
(Přebráno s mírnou úpravou z wikipedie.)
void do(int A[], int s)
{
int i, j, k, l;
k = size / 2;
while (k > 0)
{
for (i = k; i < s; i++)
{
j = i;
l = A[i];
while ((j >= k) && (A[j-k] > l))
{
A[j] = A[j - k];
j = j - k;
}
A[j] = l;
}
if (k == 2) k = 1; else k = (int) (k / 2.2);
}
}
#!/bin/bash echo "Nejaky text" echo "Nejaky text" echo "Nejaky text" echo "Nejaky text" echo "Nejaky text" echo "Nejaky text"
CsSuccesor& CsSuccesor::operator -(CsSuccesor& that)
{
CsSuccesor* out = new CsSuccesor(*this);
if (that.m_pSucc != NULL)
{
if (m_pSucc != NULL)
{
delete out;
out = new CsSuccesor(*m_pSucc - *that.m_pSucc);
}
}
return *out;
}
tak se mi udelalo nevolno a ted jdu uz radsi spat... jen tak na okraj - pan je Javista ???
Nechybi, ta je tam implicitni - po urcite dobe bude prislusny proces automaticky ukoncen operacnim systemem.Alebo ujom z elektrarni
Elektrikari su naj hackeri
Vypnu a je to...