Shellbeats je terminálový hudební přehrávač pro Linux a macOS, který umožňuje vyhledávat a streamovat hudbu z YouTube, stahovat odtud skladby a spravovat lokální playlisty. Pro stahování dat z YouTube využívá yt-dlp, pro práci s audiostreamy mpv. Je napsán v jazyce C a distribuován pod licencí GPL-3.0, rezpozitář projektu je na GitHubu.
Byla vydána nová verze 26.1.30 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. S podporou hardwarového dekódování videa. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
LibrePCB, tj. svobodný multiplatformní softwarový nástroj pro návrh desek plošných spojů (PCB), byl po deseti měsících od vydání verze 1.3 vydán ve verzi 2.0.0. Přehled novinek v příspěvku na blogu a v aktualizované dokumentaci. Zdrojové kódy LibrePCB jsou k dispozici na GitHubu pod licencí GPLv3.
Guido van Rossum, tvůrce programovacího jazyka Python, oslavil 70. narozeniny. Narodil se 31. ledna 1956 v nizozemském Haarlemu.
OpenClaw je open-source AI asistent pro vykonávaní různých úkolů, ovládaný uživatelem prostřednictvím běžných chatovacích aplikací jako jsou například WhatsApp, Telegram nebo Discord. Asistent podporuje jak různé cloudové modely, tak i lokální, nicméně doporučován je pouze proprietární model Claude Opus 4.5 od firmy Anthropic v placené variantě. GitHubová stránka projektu OpenClaw.
Projekt VideoLAN a multimediální přehrávač VLC (Wikipedie) dnes slaví 25 let. Vlastní, tenkrát ještě studentský projekt, začal již v roce 1996 na vysoké škole École Centrale Paris. V první únorový den roku 2001 ale škola oficiálně povolila přelicencování zdrojových kódů na GPL a tím pádem umožnila používání VLC mimo akademickou půdu.
Moltbook je sociální síť podobná Redditu, ovšem pouze pro agenty umělé inteligence - lidé se mohou účastnit pouze jako pozorovatelé. Agenti tam například rozebírají podivné chování lidí, hledají chyby své vlastní sociální sítě, případně spolu filozofují o existenciálních otázkách 🤖.
scx_horoscope je „vědecky pochybný, kosmicky vtipný“ plně funkční plánovač CPU založený na sched_ext. Počítá s polohami Slunce a planet, fázemi měsíce a znameními zvěrokruhu. Upozornil na něj PC Gamer.
O víkendu probíhá v Bruselu konference FOSDEM 2026 (Free and Open source Software Developers’ European Meeting). Program konference je velice nabitý: 37 místností, 71 tracků, 1184 přednášejících, 1069 přednášek, prezentací a workshopů. Sledovat je lze i online. K dispozici budou jejich videozáznamy. Aktuální dění lze sledovat na sociálních sítích.
Společnost Nex Computer stojící za "notebooky bez procesorů a pamětí" NexDock představila telefon NexPhone, který může funguje jako desktop PC, stačí k němu připojit monitor, klávesnici a myš nebo NexDock. Telefon by měl být k dispozici ve třetím čtvrtletí letošního roku. Jeho cena by měla být 549 dolarů. Předobjednat jej lze s vratní zálohou 199 dolarů. V dual-bootu by měl být předinstalovaný Android s Linuxem (Debian) jako aplikací a Windows 11.
A když ho budeš nutit zapsat 32 bitů do bajtu, tak to tam klidně zapíše??
$ gcc -Wall -c scanftest.c
scanftest.c: In function ‘main’:
scanftest.c:7:10: warning: format ‘%d’ expects argument of type ‘int *’, but argument 2 has type ‘unsigned char *’ [-Wformat=]
scanf("%d",&c);
~^ ~~
%hhd
No keď budeš ignorovať warningy, tak sa nečuduj.
Inými slovami: vieš ukázať správne napísané volanie scanf(), pri ktorom sa nedozvieš, že došlo k chybe, alebo že sa zapisuje na nesprávne miesto v pamäti?
kterému se budou vstupní data předávat z příkazového řádku - stdin
Jen pro pořádek: příkazový řádek a stdin jsou dvě různé věci.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <math.h>
typedef struct Numbers Numbers;
struct Numbers {
size_t n;
size_t cap;
double *nums;
};
enum {
MAXLINE = 100,
INIT = 1,
GROW = 2
};
void addnumber(double num, Numbers *p);
int estrtod(char *line, double *num);
int main()
{
char line[MAXLINE];
double number;
Numbers ns;
int i;
ns.nums = NULL;
while (fgets(line, MAXLINE, stdin) != NULL) {
line[strlen(line)-1] = '\0';
if (estrtod(line, &number))
addnumber(number, &ns);
}
printf("\n");
for (i = 0; i < ns.n; i++)
printf("%0.2f\n", ns.nums[i]);
free(ns.nums);
return 0;
}
void addnumber(double num, Numbers *p)
{
double *t;
if (p->nums == NULL) {
p->nums = malloc(INIT * sizeof(double));
p->n = 0;
p->cap = INIT;
} else if (p->n == p->cap) {
t = realloc(p->nums, GROW * p->cap * sizeof(double));
p->cap *= GROW;
p->nums = t;
}
p->nums[p->n] = num;
p->n++;
}
int estrtod(char *line, double *num)
{
char *endptr;
if (*line == '\0')
return 0;
errno = 0;
*num = strtod(line, &endptr);
if (errno == ERANGE || *endptr != '\0') {
printf("error number: %s\n", line);
return 0;
}
return 1;
}
58 45.236 abc666 error number: abc666 22xyz error number: 22xyz 22222222222222222222222222222 400 58.00 45.24 22222222222222223739180810240.00 400.00Bohužel mi strtod nenastavuje errno na ERANGE při zadání příliš vysokého čísla, přičemž strtol mi funguje normálně. Možná chyba v linuxu, možná mezi počítačem a židlí, nevím. Tohle je jen takový nástřel, ještě by bylo vhodné ošetřit chyby u malloc a realloc, mít na výpis čísel vlastní funkci, rozdělit vše do souborů atd. Psát tohle v C je docela nepraktické.
Tiskni
Sdílej: