Meta představila prototyp náramku, který snímá elektrickou aktivity svalů (povrchová elektromyografie, EMG) a umožňuje jemnými gesty ruky a prstů ovládat počítač nebo různá zařízení. Získané datové sady emg2qwerty a emg2pose jsou open source.
Byla vydána (𝕏) nová verze 25.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 25.7 je Visionary Viper. Přehled novinek v příspěvku na fóru.
Před 40 lety, 23. července 1985, společnost Commodore představila první počítač Amiga. Jednalo se o počítač "Amiga od Commodore", jenž byl později pojmenován Amiga 1000. Mělo se jednat o přímou konkurenci počítače Apple Macintosh uvedeného na trh v lednu 1984.
T‑Mobile USA ve spolupráci se Starlinkem spustil službu T-Satellite. Uživatelé služby mohou v odlehlých oblastech bez mobilního signálu aktuálně využívat satelitní síť s více než 650 satelity pro posílání a příjem zpráv, sdílení polohy, posílání zpráv na 911 a příjem upozornění, posílání obrázků a krátkých hlasových zpráv pomocí aplikace Zprávy Google. V plánu jsou také satelitní data.
Společnost Proxmox Server Solutions stojící za virtualizační platformou Proxmox Virtual Environment věnovala 10 000 eur nadaci The Perl and Raku Foundation (TPRF).
Byla vydána nová verze 2.4.65 svobodného multiplatformního webového serveru Apache (httpd). Řešena je bezpečnostní chyba CVE-2025-54090.
Společnost Proton AG stojící za Proton Mailem a dalšími službami přidala do svého portfolia AI asistenta Lumo.
Amazon koupil společnost Bee zaměřenou na nositelnou osobní AI aktuálně nabízející náramek Pioneer (YouTube) s mikrofony zaznamenávající vše kolem [𝕏, LinkedIn].
Společnost Teufel nedávno představila svůj první open source Bluetooth reproduktor MYND.
Byla vydána verze 4.2 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Využíván je Free Pascal Compiler (FPC) 3.2.2.
#! /bin/zsh # some initialization var_load=0.00 var_eth0_rx_new=0.00 var_eth0_tx_new=0.00 var_eth0_rx_old=0.00 var_eth0_tx_old=0.00 var_eth0_rx_cur=0.00 var_eth0_tx_cur=0.00 var_temp1=0.0 var_temp2=0.0 var_temp3=0.0 while :; do var_time=$(date "+%H:%M") var_date=$(date "+%a %d.%m.%Y") var_load=$(cat /proc/loadavg | cut -d " " -f 1) var_volume=$(amixer -c 0 get "Master" | grep "Front Left:" | sed 's/[ \t]\+/ /g' | cut -d " " -f 6) var_volume=${var_volume//[\[\]%]/} var_muted=$(amixer -c 0 get "Master" | grep "Front Left:" | sed 's/[ \t]\+/ /g' | cut -d " " -f 8) var_muted=${var_muted//[\[\]]/} var_usedmem=$(free -m | grep "buffers/cache:" | sed 's/[ \t]\+/ /g' | cut -d ' ' -f 3) var_eth0_rx_new=$(sudo ifconfig eth0 | grep bytes | sed 's/[a-zA-Z \t:()]\+/ /g' | cut -d ' ' -f 2) var_eth0_tx_new=$(sudo ifconfig eth0 | grep bytes | sed 's/[a-zA-Z \t:()]\+/ /g' | cut -d ' ' -f 4) var_eth0_rx_cur=$(($var_eth0_rx_new - $var_eth0_rx_old)) var_eth0_tx_cur=$(($var_eth0_tx_new - $var_eth0_tx_old)) var_temp2=$(sensors "it8720-isa-0228" | grep temp2 | sed 's/[a-zA-Z:()=,°+ \t]\+/ /g' | cut -d ' ' -f 3) var_temp3=$(sensors "it8720-isa-0228" | grep temp3 | sed 's/[a-zA-Z:()=,°+ \t]\+/ /g' | cut -d ' ' -f 3) var_temp1=$(sensors "it8720-isa-0228" | grep temp1 | sed 's/[a-zA-Z:()=,°+ \t]\+/ /g' | cut -d ' ' -f 3) var_temp2=$(printf %d $var_temp2) var_temp3=$(printf %d $var_temp3) var_temp1=$(printf %d $var_temp1) if [[ "$var_muted" == "on" ]]; then var_repro_clr="#85a229" else var_repro_clr="#b95929" fi two_lvl_color() { value=$1 fst_lvl=$2 sec_lvl=$3 color="#85a229" if [[ $value -ge $fst_lvl ]]; then color="#b9a229" if [[ $value -ge $sec_lvl ]]; then color="#b95929" fi fi echo $color } convert_network_units() { value=0.00 value=$1 image=$2 units=" Bps" color="#85a229" if [[ $value -ge 999.00 ]]; then value=$(($value / 1024.00)) units="kiBps" if [[ $value -ge 999.00 ]]; then value=$(($value / 1024.00)) units="MiBps" color="#b9a229" if [[ $value -ge 999.00 ]]; then value=$(($value / 1024.00)) units="GiBps" color="#b95929" fi fi fi displayed_value=$(printf %.1f $value) echo "^fg($color)^i(/home/asfethan/.local/share/dzen2/images/$image)^r(3x0)^fg(#e5e5e5)${(l:5:: :)displayed_value}^r(3x0)^fg(#c5c5c5)$units" } echo -n "^bg(#85a229)^r(2x0)^bg(#313433)^r(10x0)" echo -n "^bg(#313433)^r(1x0)^bg(#313433)^r(5x0)^fg($(two_lvl_color $var_temp2 49 54))^i(/home/asfethan/.local/share/dzen2/images/temp-simple.xbm)^r(3x0)^fg(#e5e5e5)${(l:3:: :)var_temp2}^r(5x0)" echo -n "^bg(#313433)^r(1x0)^bg(#313433)^r(5x0)^fg($(two_lvl_color $var_temp3 49 54))^i(/home/asfethan/.local/share/dzen2/images/temp-simple.xbm)^r(3x0)^fg(#e5e5e5)${(l:3:: :)var_temp3}^r(5x0)" echo -n "^bg(#313433)^r(1x0)^bg(#313433)^r(5x0)^fg($(two_lvl_color $var_temp1 45 50))^i(/home/asfethan/.local/share/dzen2/images/temp-simple.xbm)^r(3x0)^fg(#e5e5e5)${(l:3:: :)var_temp1}^r(5x0)" echo -n "^bg(#313433)^r(1x0)^bg(#313433)^r(5x0)^fg($(two_lvl_color $var_load 1.00 2.00))^i(/home/asfethan/.local/share/dzen2/images/loadavg.xbm)^r(3x0)^fg(#e5e5e5)${(l:5:: :)var_load}^r(5x0)" echo -n "^bg(#313433)^r(1x0)^bg(#313433)^r(5x0)^fg($(two_lvl_color $var_usedmem 1500 3000))^i(/home/asfethan/.local/share/dzen2/images/ram.xbm)^r(3x0)^fg(#e5e5e5)${(l:4:: :)var_usedmem}^r(3x0)^fg(#c5c5c5)MB^r(5x0)" echo -n "^bg(#313433)^r(1x0)^bg(#313433)^r(5x0)^fg($var_repro_clr)^i(/home/asfethan/.local/share/dzen2/images/repro.xbm)^r(5x0)^fg(#e5e5e5)${(l:3:: :)var_volume}^r(3x0)^fg(#c5c5c5)%^r(8x0)" echo -n "^bg(#85a229)^r(1x0)^bg(#aac442)^r(5x0)^fg(#313433)$var_time^r(5x0)^bg(#85a229)^r(1x0)" echo -n "^bg(#313433)^r(0x0)^bg(#85a229)^r(8x0)^fg(#212423)$var_date^r(8x0)" echo -n "^bg(#aac442)^r(2x0)^bg(#313433)^r(15x0)^fg(#e5e5e5)eth0^r(5x0)" echo -n "^bg(#313433)^r(1x0)^bg(#313433)^r(5x0)$(convert_network_units $var_eth0_rx_cur "down_small.xbm")^r(5x0)" echo -n "^bg(#313433)^r(1x0)^bg(#313433)^r(5x0)$(convert_network_units $var_eth0_tx_cur "up_small.xbm")^r(15x0)" echo -n "^bg(#85a229)^r(2x0)" echo -ne "\n" var_eth0_rx_old=$(sudo ifconfig eth0 | grep bytes | sed 's/[a-zA-Z \t:()]\+/ /g' | cut -d ' ' -f 2) var_eth0_tx_old=$(sudo ifconfig eth0 | grep bytes | sed 's/[a-zA-Z \t:()]\+/ /g' | cut -d ' ' -f 4) sleep 1 done
two_lvl_color()
ktorá pre správnu funkčnosť potrebuje tri parametre. Prvým je získaná aktuálna hodnota, druhým je pevná hodnota ktorá ak je menšia ako hodnota z prvého parametru, funkcia vráti ako výstup hodnotu žltej farby. Pre tretí parameter platí to čo pre druhý, ale funkcia vráti červenú farbu.convert_network_units()
má iba dva parametre. Prvým je získaná aktuálna hodnota, druhým je cesta k ikonke popisujúcej získanú hodnotu. Funkcia zobrazí získanú hodnotu v čo najvhodnejšom formáte (po konverzií jednotiek) a zároveň ofarbí ikonku ako som už popísal vyššie.^r() ^fg() ^bg() ^i()
- formátovacie konštrukcie dze2, kompletný zoznam je možné nájsť tu: http://dzen.geekmode.org/dwiki/doku.php?id=dzen:command-and-option-list sysinfo-dzen2 | dzen2 -x '907' -y '0' -w '773' -h '20' -bg '#4d4d4d' -fg '#e5e5e5' -ta 'r' -fn '-*-terminus-medium-r-*-*-12-*-*-*-*-*-*-*' -e 'button2=exit:13' &
Tiskni
Sdílej: