Google představil telefon Pixel 10a. S funkci Satelitní SOS, která vás spojí se záchrannými složkami i v místech bez signálu Wi-Fi nebo mobilní sítě. Cena telefonu je od 13 290 Kč.
Byl publikován přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Fedora 43 Asahi Remix s KDE Plasma už funguje na M3. Zatím ale bez GPU akcelerace. Vývojáře lze podpořit na Open Collective a GitHub Sponsors.
Red Hat představil nový nástroj Digital Sovereignty Readiness Assessment (GitHub), který organizacím umožní vyhodnotit jejich aktuální schopnosti v oblasti digitální suverenity a nastavit strategii pro nezávislé a bezpečné řízení IT prostředí.
BarraCUDA je neoficiální open-source CUDA kompilátor, ale pro grafické karty AMD (CUDA je proprietární technologie společnosti NVIDIA). BarraCUDA dokáže přeložit zdrojové *.cu soubory (prakticky C/C++) přímo do strojového kódu mikroarchitektury GFX11 a vytvořit tak ELF *.hsaco binární soubory, spustitelné na grafické kartě AMD. Zdrojový kód (převážně C99) je k dispozici na GitHubu, pod licencí Apache-2.0.
Podvodné reklamy na sociálních internetových platformách, jako je Facebook, Instagram nebo X, vytvořily loni v Česku jejich provozovatelům příjmy 139 milionů eur, tedy zhruba 3,4 miliardy korun. Proti roku 2022 je to nárůst o 51 procent. Vyplývá to z analýzy Juniper Research pro společnost Revolut. Podle výzkumu je v Česku zhruba jedna ze sedmi zobrazených reklam podvodná. Je to o 14,5 procenta více, než je evropský průměr, kde je podvodná každá desátá reklama.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.6 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.
Czkawka a Krokiet, grafické aplikace pro hledání duplicitních a zbytečných souborů, byly vydány ve verzi 11.0. Podrobný přehled novinek v příspěvku na Medium. Od verze 7.0 je vedle frontendu Czkawka postaveného nad frameworkem GTK 4 vyvíjen nový frontend Krokiet postavený nad frameworkem Slint. Frontend Czkawka je už pouze v udržovacím módu. Novinky jsou implementovány ve frontendu Krokiet.
Jiří Eischmann na svém blogu publikoval článek Úvod do MeshCore: "Doteď mě radioamatérské vysílání úplně míjelo. Když jsem se ale dozvěděl, že existují komunity, které svépomocí budují bezdrátové sítě, které jsou nezávislé na Internetu a do značné míry taky elektrické síti a přes které můžete komunikovat s lidmi i na druhé straně republiky, zaujalo mě to. Když o tom přede mnou pořád básnili kolegové v práci, rozhodl jsem se, že to zkusím taky.
… více »Byla vydána verze 0.5.20 open source správce počítačových her na Linuxu Lutris (Wikipedie). Přehled novinek v oznámení na GitHubu. Instalovat lze také z Flathubu.
Peter Steinberger, autor open source AI asistenta OpenClaw, nastupuje do OpenAI. OpenClaw bude převeden pod nadaci a zůstane otevřený a nezávislý.
getch()?
getch() je např. v ncurses.
getc() (viz. man 3 getc)
switch (getch()){
case 'a' : vypis();
break;
}tak ze v dose ked stlacim klaves a, tak sa mi tato funkcia vypis hned vyvola, bez toho aby som zadaval za 'a' este 'enter'
initscr(); nodelay(); getch();
switch (getch()){
case 'a' : vypis();
break;
}
initscr();
cbreak();
switch(getch())
{
case 'a': printf("hallo");
break;
}
#include <ncurses.h>
int main()
{
initscr();
cbreak ();
noecho ();
switch(getch())
{
case 'a': printfw("hallo");
refresh();
break;
}
endwin();
return 0;
}
/tmp/ccVbJu1B.o: In function `main': 1.c:(.text+0x573): undefined reference to `initscr' 1.c:(.text+0x578): undefined reference to `cbreak' 1.c:(.text+0x57d): undefined reference to `stdscr' 1.c:(.text+0x585): undefined reference to `wgetch' collect2: ld returned 1 exit status
1.) Skus okno obnovit pomocí refresh ();
2.) Po ukončení musíš zrušit ncurses endwin ();
Příklad:
#include <curses.h> /* stdio.h neni nutne je v curses.h */
#include <ctype.h>
#define COLOR2 1 /* barvicka 1. */
#define COLOR1 2 /* barvicka 2. */
int main () {
int c;
char *s;
initscr ();
cbreak ();
noecho (); /* vypnuti echa */
start_color (); /* chceme barvy */
keypad (stdscr, TRUE); /* chceme klavesy pod makry KEY_neco */
curs_set(0); /* at tam ta mrska neblika */
if (!has_colors ()) { /* umi terminal barvy ? */
endwin ();
fputs ("Hmm.. tady barvy nejdou !", stderr);
exit (1);
}
/* barva - popredi - pozadi */
init_pair (COLOR1, COLOR_RED, COLOR_BLUE); /* barvicka 1. */
init_pair (COLOR2, COLOR_YELLOW, COLOR_BLACK); /* a druha */
attron (COLOR_PAIR( COLOR1 )); /* pouzivat barvu 1. */
mvaddstr (2, 5, "Cervene na modrem");
attron (COLOR_PAIR( COLOR2 ));
mvaddstr (3, 5, "Zlute na cernem");
attron (A_BOLD); /* od ted vse BOLD */
mvaddstr (4, 5, "Zlute na cernem a tucne");
attroff (COLOR_PAIR( COLOR2 )); /* vypne barvu */
mvhline(LINES-2, 0, ACS_HLINE, COLS); /* nakresli caru */
mvaddstr (LINES-1, COLS-15, "F10 - konec");
mvaddstr (10, 5, "Jmeno klavesy:");
while ( (c=getch()) != KEY_F(10)) {
s = (char *) keyname(c); /* jmeno klavesy ? */
mvhline(10, 20, ' ', COLS); /* smaz */
if (s)
mvprintw (10, 20, "'%s'", s);
else
mvprintw (10, 20, "'%c'", (isprint(c) ? c : '.'));
}
erase (); /* smaz nase vytvory */
refresh ();
endwin (); /* konec curses */
exit (0); /* ....bye */
}
initscr();
atexit((void(*)(void))endwin);
cbreak();
refresh();
switch(getch())
{
case 'a':
printw("hallo");
sleep(1);
break;
}... nakonec je potřeba zavolat endwin(), jinak ti to nenavrátí terminál do původního stavu. Na psaní a kreslení je potřeba pak používat funkce z knihovny ncurses (např. printw() místo printf()).
int main(void){
int *p_pole = NULL;
initscr();
atexit((void(*)(void))endwin);
cbreak();
refresh();
while (1){
printf("\tmenu\n1. obrazok\n2. vypis\n3. vypocitaj\n4. nacitaj hodnoty\n5. usporiadaj\n6. koniec");
printf("\n\nzadajte svoju volbu > ");
switch (getch()){
case '1' : system("clear"); obrazok();
break;
case '2' : system("clear"); vypis();
break;
case '3' : system("clear"); vypocitaj();
break;
case '4' : system("clear"); nacitaj_hodnoty(&p_pole);
break;
case '5' : system("clear"); usporiadaj(p_pole);
break;
case '6' : return 0;
}
//system("clear");
}
endwin();
}
a po spusteni programu je cista obrazovka
po výpisu.
refresh();
a né printf
#include <stdio.h>
#include <termios.h>
int main (void) {
struct termios term;
tcgetattr(0, &term);
term.c_lflag &= ~ICANON;
tcsetattr(0, TCSANOW, &term);
setbuf(stdin, NULL);
printf("Press any key to continue...\n");
getc(stdin);
return 0;
}
// Přečti nastavení terminálu.
struct termios terminal_settings, original_terminal_settings;
if (tcgetattr(input_fd, &terminal_settings) != 0) {
perror("could not read terminal settings");
return false;
}
// Zapamatuj si je, aby je šlo obnovit na konci programu.
original_terminal_settings = new struct termios;
memcpy(
original_terminal_settings,
&terminal_settings,
sizeof(struct termios)
);
// Nová nastavení terminálu.
terminal_settings.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP
| INLCR | IGNCR | ICRNL | IXON);
terminal_settings.c_oflag &= ~OPOST;
terminal_settings.c_oflag |= ONLCR; // Překlad LF -> CRLF.
terminal_settings.c_lflag &= ~ECHO; // Nevypisovat stisknuté klávesy.
terminal_settings.c_lflag &= ~ECHONL; // Nevypisovat klávesu Enter.
terminal_settings.c_lflag &= ~ICANON; // Vypnout kanonický režim.
terminal_settings.c_lflag &= ~IEXTEN; // Vypnout rozšířené zpracování znaků.
terminal_settings.c_cflag &= ~PARENB; // Žádná parita.
terminal_settings.c_cflag &= ~CSIZE;
terminal_settings.c_cflag |= CS8; // Osmibitové znaky.
// Pošli změněná nastavení do terminálu.
if (tcsetattr(input_fd, TCSADRAIN, &terminal_settings) != 0) {
perror("could not change terminal settings");
return false;
}
Ale pokud budeš chtít kreslit menu, tak musíš ještě řídit pohyb kurzoru, barvy, atd., to znamená posílat správné řídící sekvence (jejich seznam najdeš například zde), a to bude taky slušné maso
Tiskni
Sdílej: