Excel konwersja wartości elementów elektronicznych z BOM na notację naukową.

Generując BOM ze schematu do arkusza kalkulacyjnego Excel lub pliku CSV w kolumnie „wartość” dostajemy przeważnie wartości elementów według branżowej konwencji, czyli z użyciem symboli przedrostków SI, używaniem przedrostków bądź innych liter zamiast separatora dziesiętnego, oraz dodatkowych liter jako na przykład jednostek. Na domiar złego, w tej samej kolumnie mamy często wymieszane wartości elementów pasywnych (Omy, Henry, Farady) z MPN innych podzespołów. Przykładowo:

100n
1u
BAT64-05
120R
15k
39k2
47R
15uH
220p
2u2

Nie muszę chyba dodawać, że Excel całkowicie nie radzi sobie z sortowaniem wartości w takiej kolumnie.

Oto formuła, która dokona konwersji na notację naukową. W przypadku błędu, wstawi pusty ciąg znaków, dzięki czemu sortowanie nie będzie zakłócone. Zakładam, że dane znajdują się w kolumnie A od komórki A1 – zmiany wymaga tylko jedno miejsce w formule.

Formuła dla Excela w j. Polskim:

=JEŻELI.BŁĄD(LET(
tekst;USUŃ.ZBĘDNE.ODSTĘPY(A1);
poz;MIN(
JEŻELI.BŁĄD(ZNAJDŹ("p";tekst);1E+99);
JEŻELI.BŁĄD(ZNAJDŹ("n";tekst);1E+99);
JEŻELI.BŁĄD(ZNAJDŹ("u";tekst);1E+99);
JEŻELI.BŁĄD(ZNAJDŹ("µ";tekst);1E+99);
JEŻELI.BŁĄD(ZNAJDŹ("m";tekst);1E+99);
JEŻELI.BŁĄD(ZNAJDŹ("R";tekst);1E+99);
JEŻELI.BŁĄD(ZNAJDŹ("Ω";tekst);1E+99);
JEŻELI.BŁĄD(ZNAJDŹ("k";tekst);1E+99);
JEŻELI.BŁĄD(ZNAJDŹ("M";tekst);1E+99);
JEŻELI.BŁĄD(ZNAJDŹ("G";tekst);1E+99)
);
JEŻELI(LUB(tekst="";poz>DŁ(tekst));"";LET(
prefiks;FRAGMENT.TEKSTU(tekst;poz;1);
czescLewa;LEWY(tekst;poz-1);
ogon;FRAGMENT.TEKSTU(tekst;poz+1;DŁ(tekst));
dlOgonu;DŁ(ogon);
ileCyfr;JEŻELI(dlOgonu=0;0;
JEŻELI.BŁĄD(
PODAJ.POZYCJĘ(
FAŁSZ;
JEŻELI.BŁĄD(
CZY.LICZBA(--FRAGMENT.TEKSTU(ogon;SEKWENCJA(dlOgonu);1));
FAŁSZ
);
0
)-1;
dlOgonu
));
koncowka;JEŻELI(ileCyfr<dlOgonu;PRAWY(ogon;dlOgonu-ileCyfr);"");
lewaPoprawna;ORAZ(
czescLewa<>"";
SUMA(--JEŻELI.BŁĄD(
CZY.LICZBA(--FRAGMENT.TEKSTU(czescLewa;SEKWENCJA(DŁ(czescLewa));1));
FAŁSZ
))=DŁ(czescLewa)
);
koncowkaPoprawna;JEŻELI(koncowka="";PRAWDA;
SUMA(--JEŻELI.BŁĄD(
CZY.LICZBA(--FRAGMENT.TEKSTU(koncowka;SEKWENCJA(DŁ(koncowka));1));
FAŁSZ
))=0
);
mantysa;czescLewa&JEŻELI(ileCyfr>0;","&LEWY(ogon;ileCyfr);"");
wykladnik;JEŻELI(prefiks="p";"-12";
JEŻELI(prefiks="n";"-9";
JEŻELI(LUB(prefiks="u";prefiks="µ");"-6";
JEŻELI(prefiks="m";"-3";
JEŻELI(LUB(prefiks="R";prefiks="Ω");"0";
JEŻELI(prefiks="k";"3";
JEŻELI(prefiks="M";"6";
JEŻELI(prefiks="G";"9";""))))))));
JEŻELI(ORAZ(lewaPoprawna;koncowkaPoprawna;wykladnik<>"");
mantysa&"e"&wykladnik;
"")
)));
"")

Formuła dla Excela w j. Angielskim (nie testowana):

```excel
=IFERROR(LET(
text,TRIM(D2),
pos,MIN(
IFERROR(FIND("p",text),1E+99),
IFERROR(FIND("n",text),1E+99),
IFERROR(FIND("u",text),1E+99),
IFERROR(FIND("µ",text),1E+99),
IFERROR(FIND("m",text),1E+99),
IFERROR(FIND("R",text),1E+99),
IFERROR(FIND("Ω",text),1E+99),
IFERROR(FIND("k",text),1E+99),
IFERROR(FIND("M",text),1E+99),
IFERROR(FIND("G",text),1E+99)
),
IF(OR(text="",pos>LEN(text)),"",LET(
prefix,MID(text,pos,1),
leftPart,LEFT(text,pos-1),
tail,MID(text,pos+1,LEN(text)),
tailLen,LEN(tail),
digitCount,IF(tailLen=0,0,
IFERROR(
MATCH(
FALSE,
IFERROR(
ISNUMBER(--MID(tail,SEQUENCE(tailLen),1)),
FALSE
),
0
)-1,
tailLen
)),
ending,IF(digitCount<tailLen,RIGHT(tail,tailLen-digitCount),""),
leftValid,AND(
leftPart<>"",
SUM(--IFERROR(
ISNUMBER(--MID(leftPart,SEQUENCE(LEN(leftPart)),1)),
FALSE
))=LEN(leftPart)
),
endingValid,IF(ending="",TRUE,
SUM(--IFERROR(
ISNUMBER(--MID(ending,SEQUENCE(LEN(ending)),1)),
FALSE
))=0
),
mantissa,leftPart&IF(digitCount>0,"."&LEFT(tail,digitCount),""),
exponent,IF(prefix="p","-12",
IF(prefix="n","-9",
IF(OR(prefix="u",prefix="µ"),"-6",
IF(prefix="m","-3",
IF(OR(prefix="R",prefix="Ω"),"0",
IF(prefix="k","3",
IF(prefix="M","6",
IF(prefix="G","9","")))))))),
IF(AND(leftValid,endingValid,exponent<>""),
mantissa&"e"&exponent,
"")
))),
"")
```

Wynik dla wcześniej pokazanych przykładowych danych:

100e-9
1e-6

120e0
15e3
39.2e3
47e0
15e-6
220e-12
2.2e-6

Mam nadzieję, że będzie przydatna

LG TV webOS Dev Manager – ponowna instalacja

Na TV ustaw prawidłowo datę i godzinę (ważne dla certyfikatów), wyłącz w routerze firewall dla TV, uruchom Developer mode, włącz Key Server, zweryfikuj IP i Passphrase, clear cach data.

webOS Dev Manager: https://github.com/webosbrew/dev-manager-desktop

Jeżeli zawiesza się na instalacji homebrew lub innego pakietu, w zakładce „Terminal” wywołaj:

curl -L https://raw.githubusercontent.com/webosbrew/webos-homebrew-channel/main/tools/install.sh | sh -

Powinno zainstalować homebrew.

Porównanie metod kompresji plików

Obiekt testowy: folder z zawartością 910MB,  mieszana zawartość, 814 plików, 42 foldery. Dane nie były dobierane z myślą o faworyzowaniu którejkolwiek metody kompresji – akurat takie szykowałem do archiwizacji.

Sufiksem _slow oznaczone zostały te metody kompresji, które trwały zauważalnie dłużej od pozostałych.

Do kompresji użyłem programu 7-Zip w wersji 24.07 (x64).

Jak widać, domyślna metoda kompresji zip – deflate – sprawdza się najgorzej. Zdecydowanie lepiej wypada kompresja 7zip zarówno w domyślnym, jak i zwiększonym rozmiarze słownika. Zwiększenie rozmiarów słownika zwiększa zużycie zasobów komputera i wydłuża czas kompresji.

 

Automatyka domowa zapis czynności

  1. Zainstaluj Raspbiana na raspberry PI. Uaktywnij SSH dodając plik /boot/ssh.
  2. Przy użyciu raspi-config wyłącz manager okien, aktywuj I2C i 1-Wire.
  3. Zainstaluj Domoticz:
    curl -sSL install.domoticz.com | sudo bash
  4. Zainstaluj serwer MQTT – mosquitto
  5. Skonfiguruj urządzenia na ESP8266/ESP32 z zainstalowanym oprogramowaniem Tasmota.
  6. Skonfiiguruj domoticz.

Linux – komendy

Pomoc:
Potrzebujesz dokładnego opisu polecenia? wpisz więc coś takiego: man
hasło. Spowoduje to wyświetlenie jeśli to możliwe, podręcznika do „hasła”.

Oznaczenia:
Polecenia zakończone jednym lub dwoma wykrzyknikami wymagają wysokich
uprawnień (nawet root’a), czasem nawet fizycznego dostępu do komputera.
Mogą więc być niepraktyczne przy zdalnej pracy za pomocą telnet lub ssh.

arch – wyświetla informacje na temat budowy komputera na którym pracujesz
awk – interpreter skryptowego języka programowania
bzip2 (*.bz2) – wysokowydajny kompresor
cal – ustawienia daty cat – przekierowuje strumień danych (np. sklejanie plików cat plik1 plik2 >plik12
cd – zmiana katalogu (bez parametru: przejście do katalogu użytkownika)
chown! – ustawianie właściciela pliku
chmod – ustawianie praw dostępu do pliku tzw. atrybuty
clear – czyści okno terminalu
cmp – porównuje pliki
copy – kopiuje pliki i katalogi
cp – kopiuje pliki
cut –
date – wyświetla lub zmienia datę
dd – konwertuje i kopiuje pliki
diff – porównuje zawartość plików, np. kodu źródłowego programu
du – oblicza zajętość na dysku
df – informuje o wolnych blokach na dysku
dircmp – porównuje katalogi
dmesg!! – podaje wszystkie komunikaty wyświetlane przy uruchamianiu systemu
echo –
egrep – odmiana polecenia grep
elm – program pocztowy
exit – wylogowanie z konsoli
fdisk!! – zarządzanie partycjami dysku
fetchmail! – zarządzanie zewnętrzną pocztą
file – testowanie pliku
find – wyszukiwanie pliku, katalogu
finger! – wyszukuje informacje o użytkowniku
fsconf!! – program do zmian ustawień systemu plików
fsck!! – naprawa systemu plików
ftp – prosty klient ftp
gcc – kompilator języka c
gnus – przeglądarka news
grep – wyszukiwanie linii spełniających wyrażenia
gzip (*.gz) – kompresor
gzip -9v *    kompresja z maksymalną skutecznością poszczegolne pliki w katalogu, zastępując stare.
head – wyświetlanie początkowej części pliku
hello – wysylanie krótkiego tekstu na ekran adresata
host – podaje informacje o 'sieciowych’ danych dotyczączych komputera
hostname! – wyświetlanie lub zmiana nazwy komputera
hwconfig –
ipcalc – program umożliwiający operacje na adresach ip
irc – klient irc
joe – edytor tekstów
join – specjalne sklejanie plików
kernelversion – podaje informacje o wersji używanego kernela
kill – zabijanie procesów
pc – kopiuje plik
ps – zarządzanie procesami
less – przeglądarka tekstów, obustronne przewijanie
lftp – dobry klient ftp
lilo!! – boot manager (Linux Loader)
links – przeglądarka www, świetna obsługa tabel
ln! – tworzy dowiązania symboliczne tzw. linki
loadkeys – ładuje nową mapę klawiatury, np. polską
locate – odpowiednik polecenia where
logout – wylogowanie z konsoli
ls – wyświetla zawartość katalogu
lynx – przeglądarka www
make!! – kompilacja jądra
man – wyświetla podręcznik do programu podanego jako parametr
mesg – włącza i wyłącza reagowanie na wywoływania
mc – menedżer plików: midnight commander
mkdir – tworzy nowy katalog
mkfs!! – formatowanie systemu plików
more – przeglądarka tekstów, przewijanie w dół
mush – program pocztowy
mutt – rozbudowany program pocztowy i news
more – program do wyświetlania pliku na ekranie
mount!! – podłącza (montuje) systemy plików / napędy
mv – zmienia nazwe/przenosi plik
newgrp! – zmiana grupy aktualnego użytkownika
pack – prosty kompresor
passwd! – ustawianie hasła
paste – łączy wiersze pliku
pico – dość przyjazny edytor tekstowy
pine – wygodny program pocztowy
ping – wysyła pakiety testowe
procmail – narzędzie zarządzające pocztą
ps – wyświetla informacje o procesach
pwd – wyświetla ścieżkę bieżącego katalogu
quota – sprawdza/ustawia ograniczenie wielkości konta
rm – usuwa pliki
rmdir – usuwa pusty katalog
rpm!! – instaluje pakiety rpm
scp – kopiowanie zdalne plików szyfrowane
screen – otwiera nowe okna konsoli podczas pracy zdalnej
sed – edytor strumieniowy, umożliwia w zaawansowaną podmianę ciągu
setenv! – ustawia zmienna lokalna/globalna
setterm – ustawienia konsoli
sort – sortuje linie w pliku
split – tworzy jeden lub wiecej plikow z pliku wejsciowego
ssh – bezpieczny telnet tzw. secure shell
startx!! – uruchamia x-window
su!! – umożliwia prace z uprawnieniami roota
slrn – dobry klient news i pocztowy
tail – wyświetlanie końcowej części pliku
talk – wywołuje adresata na wspólną pogawędkę w czasie rzeczywistym
tar – archiwizer plików, poprawia skuteczność kompresji kompresora jak:
gzip, bzip2
np.1: tar -cz ./katalog/ >archiwum.tar.gz
np.2: tar –use-compress-program=bzip2 -c ./katalog/ >archiwum.tar.bz2
telnet – klient telnet
tin – klient poczty i news
top – wyswietla obciazenie procesora przez poszczegolne procesy
touch – uaktualnia datę pliku
tr –
umount!! – odłącza systemy plików / napędy
uniq –
unpack – rozpakowuje pliki spakowane poprzez 'pack’
unzip – rozpakowuje pliki .zip
np.: unzip -o -u plik.zip    rozpakuje do bierzącego katalogu, bez potwierdzania nadpisze stare
uptime – mowi jak dlugo jest uruchomiony komputer
w – wyświetla „kto co robi”
wc – raportuje ilość linii, słów, znaków w wyspecyfikowanych plikach
wget – ściągacz plików, obsluga ftp, http
np.: wget -r -l1 -A gif,jpg http://programy.com/lista.html
where – podaje ścieżke poszukiwanego programu
whereis – inna nazwa polecenia where
which – podaje sciezke do szukanego programu
who – informuje o zalogowanych użytkownikach
whodo – co kto robi
write – wysyłanie jednorazowo wiele linii tekstu na ekran adresata
vi – skomplikowany edytor tekstowy, dostępny w każdej odmianie unixów