SketchForge 3D (GitHub, reddit) je open source 3D editor / CAD běžící ve webovém prohlížeči bez nutnosti účtu nebo cloudového úložiště. Inspirovaný byl Tinkercadem. Doporučena je lokální instalace.
Byla vydána nová verze 11.9 webového prohlížeče Midori (Wikipedie, GitHub). S novým centrem ovládání, pokročilejším blokováním reklam, optimalizací výkonu…
Na Crowd Supply běží kampaň na podporu open source čtečky elektronických knih Open Book Touch. Postavena je na ESP32-S3. Má 4,26palcový dotykový e-papírový displej s rozlišením 480×800 pixelů, podsvícení, slot na microSD kartu. Cena je 149 dolarů a poštovné 12 dolarů. Dodání je plánováno na duben 2027.
Na Humble Bundle běží akce Linux: All the Things by O'Reilly a Picos, HATs, and More by Raspberry Pi Press. Elektronické knihy lze koupit se slevou a současně podpořit organizace Code for America a Raspberry Pi Foundation.
FreeCAD (Wikipedie), tj. svobodný multiplatformní parametrický 3D CAD, má nový vtipný a současně užitečný doplněk Banana For Scale (GitHub). Aktuálně umožňuje do výkresu vložit banán nebo plechovku pro porovnání a určení měřítka.
Blender Studio nedávno oznámilo plán vytvořit svůj první otevřený (open source) celovečerní film. Film by se měl jmenovat Overgrown (YouTube). Film vznikne, pokud se zajistí financování. Prvním krokem je získat 7 000 předplatitelů Blender Studia. Cena je od 11,50 eur měsíčně. Aktuálně počet předplatitelů je 5 289. Předplatné pokryje 20 % nákladů. Zbytek, 80 % nákladů, má být financován externími producenty nebo distributory.
Byl vydán Debian 13.6, tj. šestá opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.15, tj. poslední patnáctá opravná verze Debianu 12 s kódovým názvem Bookworm, k dispozici je LTS. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
V jádře Linux byla nalezena a v upstreamu již byla opravena kritická zranitelnost GhostLock aneb CVE-2026-43499. Lokálnímu uživateli umožňuje získat práva roota a také obejít kontejnerovou izolaci. Zranitelnost existovala v Linuxu 15 let, tj. od roku 2011, od Linuxu verze 2.6.39.
Evropská komise předběžně shledala, že návykový design aplikací Instagram a Facebook od americké společnosti Meta porušuje unijní nařízení o digitálních službách (DSA). Návykový design zahrnuje například takzvané nekonečné posouvání, automatické přehrávání videí, tzv. push notifikace, kdy aplikace uživatele vybízí k návratu do jejího prostředí, či vysoce personalizovaný algoritmus, který rychle pozná, co uživatele baví a snaží
… více »Byla vydána verze 1.97.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Ahoj vespolek, jsem zacatecnik v cecku a snazim se psat trochu chytrejsi programy. Prave u jednoho jsem se sekl a nemuzu prijit na to, v ktere casti kodu je chyba
. Pri kompilaci to nevipise nic, ani varovani, bohuzel behem spusteni to spande a vypise Neoprávněný přístup do paměti (SIGSEGV) .. pouzivam Archlinux, prejel jsem to i debuggerem a ten mi vypise, ze se jedna o chybu
Program received signal SIGSEGV, Segmentation fault.
0x00000000004005d5 in serazeni ()
... zkousel jsem to znovu prepsat, jestli jsem neudelal nejaku hrubku, ale nic, bohuzel nevim.. jsem zacatecnik, tak to prosim berte na vedomi... kod je prilozeny v souboru. Dekuji vsem za napady, pripominky, dotazy a kritiku.
j=3; nebo tot nééé r[2]=58;, a pak se zamyslet na tím, že číslování polí je od 0 po N-1 a s větším index-em se dostanete mimo alokovaný rozsah.
To kopirovani jsem prepsal na :
k=r[j];
r[j]=r[j+1];
r[j+1]=k;
U toho noveho zpusobu (nevim jak se tomu rika v cecku, v matice je to myslim mnozina vsech cisel R) je to efektivnejsi, dekuji moc za navrh.
Ohledne toho enteru, napsal jsem tam printf("\n"); nebo jste myslel neco jineho? Kazdopadne dekuji za pripominky a jsem Vam velmi vdecny, jsem o neco chytrejsi.
To printf("\n"); je v pořádku, jen trochu pomalé, v tomhle případě by úplně stačilo putchar('\n');.
Ještě jednu radu, já začínám tím že si napíšu
#include <stdio.h>
int main(void)
{
return 0;
}
a pak teprve do téhle kostry začnu psát, nebo spíš doplňovat program
i tebe se chci zeptat, jelikoz v tom mas praxi a si dobry, mival jsi podobne problemy jako ja? jen aby me to psychicky rozladilo /povzbudilo
A protožemain()nepřebírá žádné vstupní hodnoty, je vhodné to zdůraznit:int main(void), protože když tam nedáš nic, překladač automaticky předpokládá že tam má být nějakýint.
Vy nějaký takový znáte? Obávám se, že si to spíš pletete s tím, že ve starších dialektech C se při neuvedení návratového typu implicitně předpokládal int.
řádek 41: Když už máš funkci main() nadeklarovanou jako int, tak musíš také nějaký int vracet, takže tam připiš return 0;. A protože main() nepřebírá žádné vstupní hodnoty, je vhodné to zdůraznit: int main(void), protože když tam nedáš nic, překladač automaticky předpokládá že tam má být nějaký int.Tohle se dělo u návratových typů. Pokud neuvedete
void jako parametr, překladač předpokládá, že o parametrech té funkce nic neví a tedy mohou být jakékoliv. Což je u main, když ty parametry nepoužijete, vlastně pravda.
serazeni.c skompiluj ako:
gcc -Wall -g -o atest serazeni.ckde
atest bude tvoj spustitelny program. ten mozes spustit zapomoci gdb debuggeru, napriklad:
mato@foxi:(~/lair/abc)$ gdb ./atest
GNU gdb 6.1.1 [FreeBSD]
(gdb) run
Starting program: /home/mato/lair/abc/atest
Program received signal SIGBUS, Bus error.
0x0000000000400665 in serazeni (r=0x7fffffffeaf0, i=2) at abc.c:20
20 if(r[j]>r[j+1]){
(gdb)
a vidis, kde nastal problem (najskor pretecenie pola).
no, smyslem toho programu bylo porovnavat hodnoty a prehazovat je s vedlejsim (levym) prvkem v poli do te doby, dokud to nebude serazene od nejmensiho po nejvetsi... bohuzel jsem se opet zasekl a ten cyklus (upravil jsem to)
for(g=0;r[g]<r[++g];){
if(g==i){
complete=1;
break;
}
}
udela nekonecnou smycku (zajimave je, ze je vytezovano jen 1 jadro ze 4... a to jadro druhe... :D
jinak zatim dekuji za ten debugging... a kdyz jsme u te syntaxe a smyslu, jelikoz jsem zacatecnik, tak se jenom zeptam.. na psani uspesnych a funkcnich programu porebuji praxi (psat a psat) nebo na to existuje nejaka publikace? dekuji Vam.
ak som teda spravne pochopil ten program sa snazi robit bubblesort (bublinkove triedenie)? zotriedenie pola vyriesia 2 jednoduche cykly:
int a,b,temp;
for (a =0 ; a < MAX; a++) {
for (b =0 ; b < MAX-1; b++) {
if (pole[b] > pole[b+1]) { /* swap n+1 with n */
temp = pole[b];
pole[b] = pole[b+1];
pole[b+1] = temp;
}
}
}
(kde MAX je zadefinovany ako dlzka pola).
ja mam velmi daleko od dobreho programatora; ale i ten sebalepsi programator pise _obcas programy s bugmi.
kazdy zacinal na zelenej luke, zaciatky su tazke (pre niekoho viac, pre niekoho menej).treba sa naucit rozmyslat v danom jazyku - to chce cas. comu nerozumies mozes preskocit a vratit sa neskor.
drz sa tych knih co mas, tie su naozaj dobre.
#include <stdio.h>
void serazeni(int r[], int i)
{
int j, k, g;
for(j = 0;; j++) {
for(g = 0; r[g] < r[g+1]; g++) {
if(g == i-1)
return;
}
if(j == i)
j = 0;
if(r[j] > r[j+1]) {
k = r[j];
r[j] = r[j+1];
r[j+1] = k;
}
}
}
int main()
{
int i, size;
int r[] = {542, 12, 58, 10, 7};
size = sizeof(r)/sizeof(int);
serazeni(r, size);
for(i = 0; i < size; i++) {
printf("%d, ", r[i]);
}
printf("\n");
return 0;
}
Ušetřím si tak jeden cyklus a kód je o dost čitelnější. Tvůj algoritmus se zasekne v nekonečné smyčce kvůli téhle části:
if(j==i){
j=0;
}
else {
Tedy Pokud jsi prošel celé, pole vrať se na začátek, v jiném případě proveď porovnání. Neporovná se ti první a druhý (či lépe nultý a první) prvek v poli a algoritmus tak nikdy nedoběhne.
)
int pole[10]; sizeof(pole);V tomhle případě sizeof() vrátí 40 (na 64 bitové architektuře 80) protože máme pole o 10 prvcích, každý 4 byty (8 bytů) velký.
int pole[10]; sizeof(pole)/sizeof(int);Vrátí počet prvků v poli děleno velikostí jednoho prvku - význam je předpokládám jasný.
int pole[10]; sizeof(pole)/sizeof(pole[0]);čili velikost celého pole děleno velikostí prvního prvku v poli.
na 64 bitové architektuře 80
Jak na které. Třeba u gcc na x86_64 je to 40.
long, kde u LLP64 a LP64 (Windows a Linux) tento rozdíl je.
Tiskni
Sdílej: