úterý 8. dubna 2025

MacOS - skript s detaily o nabíječce

# nabijeni.sh

#!/bin/bash

# Získání hodnot z ioreg

AMP_HEX=$(ioreg -r -n AppleSmartBattery | grep '"Amperage"' | awk '{print $3}')

# Převod amperáže na signed číslo

AMP=$(perl -e "print unpack('q', pack('Q', $AMP_HEX));")

# Vstupní řádek (můžeš ho sem vložit nebo načítat z ioreg automaticky)

DATA=$(ioreg -r -n AppleSmartBattery)


# 🔌 CHARGER DATA

extract_charger() {

  echo "$DATA" | sed -nE "s/.*\"$1\"=([0-9]+).*/\1/p"

}

CURRENT=$(extract_charger "ChargingCurrent")   # mA

VOLTAGE=$(extract_charger "ChargingVoltage")   # mV

VACLIMIT=$(extract_charger "VacVoltageLimit")  # mV

CHARGER_ID=$(extract_charger "ChargerID")

REASON=$(extract_charger "NotChargingReason")

RESET_COUNT=$(extract_charger "ChargerResetCounter")


extract_adapter() {

  echo "$DATA" | sed -nE "s/.*\"$1\"=([^,}]*)[,}].*/\1/p" | head -n 1

}

ADAPTER_ID=$(extract_adapter "AdapterID")

ADAPTER_VOLTS=$(extract_adapter "AdapterVoltage") # mV

ADAPTER_CURRENT=$(extract_adapter "Current")      # mA

ADAPTER_WATTS=$(extract_adapter "Watts")

ADAPTER_DESCRIPTION=$(extract_adapter "Description")

IS_WIRELESS=$(extract_adapter "IsWireless")


if [[ -n "$ADAPTER_VOLTS" && -n "$ADAPTER_CURRENT" ]]; then

  # Odstraň whitespaces a nové řádky

  VOLTS_CLEAN=$(echo "$ADAPTER_VOLTS" | tr -d '[:space:]')

  CURRENT_CLEAN=$(echo "$ADAPTER_CURRENT" | tr -d '[:space:]')

  CALC_WATTS=$(awk -v v="$VOLTS_CLEAN" -v c="$CURRENT_CLEAN" 'BEGIN { printf "v=%.2f V, c=%.2f A, w=%.2f",v/1000,c/1000, (v * c) / 1000000 }')

else

  CALC_WATTS="N/A"

fi


# 🖨️ VÝPIS

clear

echo "🔋 CHARGER DATA:"

echo "  🔌 Charging Current:     $CURRENT mA"

echo "  🔋 Charging Voltage:     $VOLTAGE mV"

#echo "  ⚡ Charging Power:       $WATTS W"

echo "  🔧 Charger ID:           $CHARGER_ID"

echo "  ⛔ Not Charging Reason:  $REASON"

echo "  🔁 Reset Counter:        $RESET_COUNT"

echo ""

echo "🔌 ADAPTER DETAILS:"

echo "  🆔 Adapter ID:           $ADAPTER_ID"

echo "  🧱 Description:          $ADAPTER_DESCRIPTION"

#echo "  🔋 Max. voltage:              $ADAPTER_VOLTS mV"

#echo "  🔌 Max. current:              $ADAPTER_CURRENT mA"

echo "  ⚡ Reported Power:       $ADAPTER_WATTS W"

echo "  ⚙️  Computed Power:       $CALC_WATTS W"

echo "  📡 Wireless?:            $IS_WIRELESS"
echo "🔌 Battery Amperage:     $AMP mA" 

Pro příkaz "watch" je ho potřeba nejdřív instalovat:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

cd

echo >> .zprofile

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> -zprofile

eval "$(/opt/homebrew/bin/brew shellenv)"


A pak už stačí jen:

watch ./nabijeni.sh

sobota 22. března 2025

Co znamená говноед

 "Při zkoumání různých druhů agentů - lidí ze svobodného světa, kteří se zaprodali GRU, se nelze vyhnout tomu, abychom se nedotkli ještě jedné kategorie, možná té nejméně přitažlivé ze všech. Oficiálně se jim nesmí říkat agenti a nejsou to agenti v plném smyslu toho, že by byli naverbovanými agenty. Oficiálně sovětští představitelé s těmito parazity jednají s jímavým přátelstvím, ale v soukromí je nazývají "г о в н о е д" . Těžko říci, kde tento výraz vznikl, ale je to skutečně jediné pojmenování, které si zaslouží. Používání tohoto slova se na sovětských velvyslanectvích tak pevně vžilo, že si nelze představit jiné jméno. Rozhovor zaměstnanců ambasády mohl probíhat následovně: "Dnes máme přátelský večer s ydejonvoh“ nebo "Dnes přijdou na večeři idejonvoh. Připravte vhodné menu...“ [1]

Ilustrační obrázek mouchy u stolu vygeneroval ChatGPT, modifikace s dopravními značkami jsem vytvořil pomocí GIMP a Inkscape. 

Všechny ilustrační obrázky vč. SVG formátu jsou ke stažení zde na GitHubu: https://github.com/tdulik/2D_graphics/tree/main/govnoed    

Reference:
1. 
https://en.wikipedia.org/wiki/Fellow_traveller#USSR







středa 6. listopadu 2024

QGIS - jak provést hromadný update hodnot pomocí SQL dotazu

1. varianta - nástroj SQL v Processing 

Menu Zpracování - Sada nástrojů - najít "SQL pro spuštění v SpatiaLite" a spustit, tam zadat SQL dotaz:

 update 'semicon_companies' set city=town where city isnull and town is not nullupdate 'semicon_companies' set city=town where city isnull and town is not null


2. varianta - SQL dotaz přes Prohlížeč

Postup je vidět v tomto videu, je nutné mít otevřen panel Browser (Prohlížeč), v něm najít (klidně gpkg) vrstvu, rozkliknout ji, což ukáže jméno SQL tabulky, na ni kliknout pravým, vybrat "Spustit SQL":


a zadat SQL dotaz, např.:


neděle 8. října 2023

Kdy se z AI stal buzzword?

Wikipedia označuje AI jako buzzword poprvé v anonymním příspěvku do článku "Buzzword" z 16.3.2020 - viz srovnání verzí:

https://en.wikipedia.org/w/index.php?title=Buzzword&diff=prev&oldid=945784721

Přičemž: 

  • Bing Code Search plugin pro Visual Studio 2013 coby Microsoft Research project byl uvolněn v únoru 2014. Tento plugin poskytuje kvalitní odpovědi na dotazy formulované v přirozeném jazyce a využívá data z několika zdrojů, vč. MSDN a StackOverflow.
  • GitHub Copilot byl spuštěn jako plugin v JetBrains marketplace 29.10.2021
  • DALL·E byl spuštěn v lednu 2021 a DALL·E 2  6. dubna 2022. Midjourney 12. července 2022.
  • ChatGPT bylo spuštěno 30.11.2022,  


pondělí 2. října 2023

Samsung debloater

  1.  stáhnout a nainstalovat adb - je v balíčku SDK Platform Tools 
  2. V seznamu https://gist.github.com/gsurrel/40cc506ac7e31134a87be4ba01a71103 vybrat balíčky, které nechci, např. Word, Excel, Powerpoint atd. 
  3. Nebo instalit a spustit GUI program Universal Android Debloater - https://github.com/0x192/universal-android-debloater 


neděle 30. července 2023

Jak zpracovat hromadu fotek nebo skenů knížek do prohledávatelného PDF

 Pro hromadné ořezání stránek PDF je super nástroj Briss:

https://sourceforge.net/projects/briss/

V OpenJDK 1.8 nějak nechtěl fungovat, ale v JDK17 to jede pěkně. Umí nařezat i vícesloupcové sazby, díky čemuž lze fotit i 2 stránky najednou. 

Ořezání v PDF je ale pouze "Crop", kde PDF obsahuje pořád originální obrázek bez ořezu. Pro OCR je potřeba obrázky z PDF dostat včetně správného ořezu, pro což jsem použil "Print to PNG" přes "PDF Creator".

V PNG jsem pak odstranil pozadí pomocí ImageMagick-u a pomocí OCR Tesseract jsem je převedl zpět do prohledávatelného PDF. Potřebné balíčky pro Windows MSYS2:

pacman -S mingw-w64-x86_64-imagemagick

pacman -S mingw-w64-x86_64-tesseract-ocr
pacman -S mingw-w64-x86_64-tesseract-data
(je potřeba vybrat balíček "ces", v případě potřeby jiných jazyků spustit vícekrát)


#!/bin/bash
dir="ocr"
for file in "$dir"/*.jpg; do
  /mingw64/bin/convert.exe $file -fuzz 35% -opaque White -rotate 90 -quality 60 $file.jpg
  /mingw64/bin/tesseract.exe $file $file -l ces PDF
echo "Done: "$file
done

 

pondělí 17. července 2023

Ubuntu kernel update

Nefunkční touchpad v Kubuntu 20.04 na notebooku Lenovo ThinkBook 14-IIL: 

Nejdřív jsem zkusil skript ubuntu-mainline-kernel.sh , který umožňuje nainstalovat jakýkoli kernel až po současné verze, s čímž může mít dnes již staré Ubuntu 20.04 problém.  

Tak jsem zkusil prostý upgrade kernelu na nejnovější LTS verzi pro 20.04, ovšem s HWE (HW enablement) drivery, takto:

apt-get install --install-recommends linux-generic-hwe-20.04

A hurá, jede to.