Společnost PINE64 stojící za telefony PinePhone nebo notebooky Pinebook publikovala na svém blogu srpnový souhrn novinek. Kvůli nedostatečnému zájmu byla ukončena výroba telefonů PinePhone Pro.
Po pěti měsících vývoje byla vydána nová verze 0.15.1 programovacího jazyka Zig (GitHub, Wikipedie). Verze 0.15.0 byla přeskočena. Přispělo 162 vývojářů. Přehled novinek v poznámkách k vydání.
Před sedmi lety společnost Valve představila fork projektu Wine s názvem Proton umožňující v Linuxu přímo ze Steamu hrát počítačové hry do té doby běžící pouze ve Windows. Aktuální přehled podporovaných her na stránkách ProtonDB
Společnost DuckDuckGo rozšířila svůj AI chat Duck.ai o GPT-5 mini (𝕏). Duck.ai umožňuje anonymní přístup bez vytváření účtů k několika modelům umělé inteligence. Aktuálně k GPT-4o mini, GPT-5 mini, Llama 4 Scout, Claude Haiku 3.5 a Mistral Small 3.
Marek Tóth v příspěvku DOM-based Extension Clickjacking: Data ve správcích hesel v ohrožení na svém blogu popsal novou clickjacking techniku s několika variantami útoků a otestoval ji proti 11 správcům hesel. Výsledkem bylo nalezení několika 0-day zranitelností, které mohly ovlivnit uložená data desítek milionů uživatelů. Jedno kliknutí kdekoliv na webové stránce kontrolované útočníkem umožňovalo ukrást uživatelská data ze
… více »Na dnešní akci Made by Google 2025 (YouTube) byly představeny telefony Pixel 10 s novým čipem Google Tensor G5 a novými AI funkcemi, hodinky Pixel Watch 4 a sluchátka Pixel Buds 2a.
The Document Foundation oznámila vydání nové major verze 25.8 svobodného kancelářského balíku LibreOffice. Podrobný přehled nových vlastností i s náhledy v poznámkách k vydání (cs) a také na Youtube a PeerTube.
Zeek (Wikipedie), původně Bro, byl vydán v nové major verzi 8.0.0. Jedná se o open source platformu pro analýzu síťového provozu. Vyzkoušet lze online.
Byl vydán Mozilla Firefox 142.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 142 je již k dispozici také na Flathubu a Snapcraftu.
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