Byl odhalen supply chain attack na Notepad++: útočníci kompromitovali hosting Notepad++ a vybrané dotazy na aktualizace přesměrovávali na servery pod jejich kontrolou. Doporučuje se stáhnout instalátor a přeinstalovat.
Francouzská veřejná správa má v rámci vládní iniciativy LaSuite Numérique ('Digitální sada') v plánu od roku 2027 přestat používat Microsoft Teams a Zoom a přejít na videokonferenční platformu Visio, hostovanou na vlastním hardwaru. Konkrétně se jedná o instance iniciativou vyvíjeného open-source nástroje LaSuite Meet, jehož centrální komponentou je LiveKit. Visio nebude dostupné pro veřejnost, nicméně LaSuite Meet je k dispozici pod licencí MIT.
Eben Upton oznámil další zdražení počítačů Raspberry Pi: 2GB verze o 10 dolarů, 4GB verze o 15 dolarů, 8GB verze o 30 dolarů a 16GB verze o 60 dolarů. Kvůli růstu cen pamětí. Po dvou měsících od předchozího zdražení.
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 🤖.
Mam jednoduchy program viz. nize. Ovsem problem je, kdyz se snazim prijmout znak pomoci preruseni generovaneho pri zaplneni prijimaciho bufferu (prijaty znak).
Kdyz nadefinuji makro SIGNAL(SIG_UART_RECV), pri prijeti znaku vsechno zatuhne- respektive cip nejevi znamky prace. Pritom by mel znak prijmout, ulozit a opet se vratit k posledni operaci, nemylim-li se?
Cip je ATtiny2313.
#include < avr/io.h>
#include < stdlib.h>
#include < util/delay.h>
#include < avr/interrupt.h>
#include < avr/pgmspace.h>
#define F_CPU 8000000
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#define DATA_1 PB0 //1. pin s prevodnikem
#define DATA_2 PB1
#define CLK PB7
#define CS PB6
#define U_REF 5000
#define AD_const (U_REF/256)
typedef unsigned char uc8;
typedef unsigned int ui16;
void usart_transmit(uc8 data);
void usart_transmit_string(const char *s);
void zmerit_u(void);
uc8 newline='\n', c;
void zmerit_u(void)
{
uc8 i, bity, hodnota1, hodnota2, buffer[10];
sbi(PORTB,CS);
_delay_ms(20);
cbi(PORTB,CS);
for(i=0,hodnota1=0, hodnota2=0, bity=128;i<8;i++)
{
if(bit_is_set(PINB,DATA_1))
hodnota1+=bity;
if(bit_is_set(PINB,DATA_2))
hodnota2+=bity;
bity>>=1;
sbi(PORTB,CLK);
cbi(PORTB,CLK);
}
usart_transmit(newline);
usart_transmit_string(itoa((hodnota1*AD_const), buffer, 10));
usart_transmit(newline);
usart_transmit_string(itoa((hodnota2*AD_const), buffer, 10));
}
void usart_transmit(uc8 data)
{
while(!(UCSRA & (1<< UDRE))); //pockame na vyprazdneni vysilaciho bufferu
UDR=data;
}
void usart_transmit_string(const char *s)
{
register uc8 ch;
while(ch=*s++)
{
usart_transmit(ch);
}
}
uc8 usart_receive()
{
while(!(UCSRA&(1<< RXC)));
return UDR;
}
SIGNAL(SIG_UART_RECV)
{
c=usart_receive();
}
void main (void)
{
/*nastavime vstupne vystupni porty*/
sbi(DDRB,CLK); /*enable port 9 for output*/
sbi(DDRB,CS);
sbi(DDRB,PD2);
cbi(DDRB,DATA_1);
cbi(DDRB,DATA_2);
UBRRH=0;
UBRRL=51;
UCSRB=(1<< TXEN)|(1<< RXEN)|(1<< RXCIE);
// UCSRC=(1<< USBS)|(3<< UCSZ0);
sei();
usart_transmit_string("#Starting Ronjamon..\n");
while(1)
{
if(c=='z') zmerit_u();
else if(c=='h') usart_transmit_string("Ronjamon, sith@wifistar.net\n");
cbi(PORTB,PD2);
_delay_ms(1000);
sbi(PORTB,PD2);
_delay_ms(1000);
}
}
SIGNAL (SIG_UART_RECV) { // USART RX interrupt
unsigned char c;
c = UDR;
usart_receive();
}
No, asi je uz pozde na odpoved, ale presto: neni blbost jeste testovat bit UDRE, kdyz jsme v preruseni? Pokud preruseni nastalo, tak je jasne, ze ceka v UDR dalsi byte prijaty z UARTu...
Tiskni
Sdílej: