Sprawdzony przepis na synchronizację ulubionych między Windows/Linux

2026-10-24

Na Windows używam Chrome, który jest idealnie ułożony pod moje potrzeby. Loguję się i mam we właściwym miejscu właściwe ulubione.

Na Ubuntu Desktop domyślnie mogę zainstalować Chromium, ale… nie loguje się on na konto Google, więc import ulubionych mogę wykonać conajwyżej ręcznie.

W takim przypadku trzeba zainstalować Chrome ręcznie. Zadziałało takie polecenie

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb

Po zalogowaniu się (co jest wbudowanym procesem w Chrome), wszystko pojawiło się na miejscu

By Rafał Kraik in Linuxy

Sprawdzony przepis na przyśpieszenie sieci na Linux

2026-10-23

Czasami nowe rozwiązania kłócą się ze starymi aplikacjimi i przyśpieszenie pracy komputera można wykonać wyłączając zbędne opcje lub sterowniki. Oto kilka propozycji:

Wyłączenie automatycznej optymalizacji wielkości okienka w TCP/IP

sudo sysctl -w net.ipv4.tcp_window_scaling=1

Wyłączenie protokołu ip v6

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1

Wyłączenie oszczędzania energii (zwykle ta opcja pomaga najbardziej)

sudo nano /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
sudo systemctl restart NetworkManager
By Rafał Kraik in Linuxy

Sprawdzony przepis na skrót na pulpicie na Ubuntu

2026-10-23

Taka prosta czynność, jak utworzenie ikonki na pulpicie może wymagać trochę zachodu…

Najpierw tworzymy plik „desktop”

nano ~/.local/share/applications/onedrive-mount.desktop

Jego zawartość może wygladać tak:

[Desktop Entry]
Version=1.0
Type=Application
Name=OneDrive Mount
Comment=Mount OneDrive
Exec=/home/rafal/start-onedrive.sh
Icon=folder-remote
Terminal=false
Categories=Utility;Network;

Potem taki plik przenosimy/linkujemy lub kopiujemy na desktop

cp ~/.local/share/applications/onedrive-mount.desktop ~/Desktop

i zmieniamy uprawnienia:

chmod +x ~/Pulpit/onedrive-mount.desktop

 

By Rafał Kraik in Linuxy

Sprawdzony przepis na OneDrive na Ubuntu

2026-10-23

Instalacja rclone

sudo apt update
sudo apt install rclone

Konfiguracja rclone

Uruchamia coś w rodzaju kreatora do konfiguracji rclone

rclone config

Montowanie OneDrive

Synchronizuje w trybie ściągnięcia pliku dopiero, kiedy jest potrzebny. Pomija Personal Vault (inaczej na ekranie będą blędy – a po co?):

mkdir OneDrive
rclone mount onedrive: ~/OneDrive --vfs-cache-mode full --exclude="/Personal Vault/**"

Status

Czy rclone działa?

pgrep -l rclone

df tylko w wydaniu OneDrive

df -h | grep OneDrive

Co znajduje się w katalogu głównym OneDrive

clone lsd onedrive:

Wyłączenie synchronizacji

fusermount -u -z ~/OneDrive
By Rafał Kraik in Linuxy

Sprawdzony przepis na double-boot windows/linux

2026-10-23

Konfiguracja po stronie Windows

W czasie instalacji Linuxa będą wykonywane czynności na dysku, a to może spowodować, że Windows stwierdzi nieautoryzowane manipulacje na dysku i zablokuje dysk (trzeba będzie wprowadzić klucz bitlocker). Dlatego wcześniej go sobie wyświetl i udokumentuj (nie zapisuj kodu na dysku, bo jak dysk się zabokuje to do tego kodu się nie dostaniesz):

Get-BitLockerVolume -MountPoint "C:"

Nie jest złym pomysłem chwilowe zatrzymanie bitlockera, np tak:

Suspend-BitLocker -MountPoint "C:" -RebootCount 3

Zaleca się też wyłączenie hibernacji:

powercfg /hibernate off

I wyłączenie szybkiego uruchamiania:

Set-ItemProperty 
-Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power"
-Name "HiberbootEnabled"
-Value 0

Konfiguracja po stronie Linux

Po zakończeniu insalacji za dualboot odpowiada program grub. Konfigurację wykonuje się tak:

sudo vi /etc/default/grub

Tu można zmienić kilka ustawnień, np. rozmiar czcionki (zwykle domyślnie jest za mały) i domyślny czas wybrania OS przy uruchomieniu (-1 to brak automatycznego uruchomienia):

GRUB_TIMEOUT=60
GRUB_GFXMODE=800x600

Potem zmiany trzeba „zainstalować”:

sudo update-grub

I zrestartować komputer:

sudo reboot
By Rafał Kraik in Linuxy

MLFlow – wprowadzenie

2026-04-26

MLFlow to popularna biblioteka służąca do śledzenia wyników pracy funkcji. Oryginalnie została zaplanowana do śledzenia działania funkcji Machine Learning, stąd jej nazwa, ale z czasem została zaadoptowana do AI i generalnie może służyć do śledzenia czegoklowiek. MLFlow jest rekomendowany do używania w Databricks.

MLFlow może być zainstalowany lokalnie. Tutaj tworzymy środowisko wirtualne, aktywujemy je, instalujemy mlflow i przy okazji openai. Potem startujemy serwer mlflow:

python -m venv venv
venv/scripst/activate.ps1
pip install --upgrade mlflow openai>=1.0.0
mlflow server

Serwer po uruchomieniu nasłuchuje domyślnie na lokalnym komputerze, o czym informuje output tego polecenia:

INFO: Uvicorn running on http://127.0.0.1:5000 (Press CTRL+C to quit)

Od tej pory do serwera można się podłączyć z aplikacji i zacząć coś sobie logować. Zazwyczaj MLFlow służy do zbierania trace ze skomplikowanych aplikacji np. korzystających z OpenAI, stąd i ten przykład do tego nawiązuje:

Czytaj dalej »
By Rafał Kraik in Databricks

AI: Prompt Engineering to przeszłość. Pora na Context Engineeering

2026-04-19

Jak najczęściej spotykamy sie po raz pierwszy z AI? Chyba w ten sposób, że czy to z ciekawości czy z potrzeby napisaliśmy jakiś prompt. Nic więc dziwnego, że szybko zauważamy, że modyfikując prompt uzyskujemy różne odpowiedzi. Pogłębiając wiedzę o AI uczymy się więc, jak pisać dobre prompty, czyli poznajemy Prompt Engineering, tyle tylko, że …

aby odpowiedzieć na pytanie, trzeba coś wiedzieć, tymczasem AI wie tyle ile go nauczono. Można mu trochę pomóc promptem, ale jeśli AI czegoś nie wie, to się nie dowie, co najwyżej pohalucynuje, a to jest jeszcze gorsze niż brak odpowiedzi.

I tak dochodzimy do faktu, że w pewnym momencie nie ma już sensu prompt engineering. Zamist niego skupiamy się jednak na dostarczeniu do AI nowych danych, bo mając te nowe dane AI będzie mógł tworzyć nowe sensowne odpowiedzi. Praca nad zapewnieniem odpowiednich danych to Context Engineering.

Jedną z metod na dostarczenie do AI nowego, lepszego contextu jest Retrieval Augmented Generation (RAG).

Zacznijmy więc od Prompt Engineering.

  • pisząc prompt można używać różnych taktyk, np. „Few-Shot Prompting”, które polega na podaniu paru przykładów, wzorca, do którego LLM powinien się dopasować w swojej odpowiedzi. Można też opisać role LLM-a, np. „jesteś pomocnym asystentem, który…” – jest to tzw. „Persona Adoption”.
  • modele mogą rozumować lub nie. Non-reasoning model (np. GPT-4o lub Llama) odpowiada na pytania jak „kalkulator słów” – odpowiedź ma brzmieć sensownie, ale niekoniecznie będzie precyzyjna. To właśnie tu są zwracane najśmieszniejsze, logiczne i bezsensowne odpowiedzi. Reasoning models z kolei, budują swój własny tok myślowy i podążając tym tokiem, wykonują pewne zadania ustalając poprawną odpowiedź. Oczywiście takie rozumujące modele są lepsze, bo udzielając odpowiedzi ile to jest 2+2 nie posłużą się statystyką tylko wykonają obliczenia.

Kiedy już jednak Prompt Engineering nie daje rady, trzeba pomóc budować odpowiedni kontekst i dzieje się to przez RAG. RAG to ogólna nazwa na wzorzec projektowy, a sam wzorzec jest implementowany przez Retrieval Agents, czyli po prostu programy, które pobiorą odpowiednie dane i przygotuja je tak, aby LLM mógł z nich korzystać.

  • Retrieval – wyszukuje odpowiednie informacje do przedstawienia LLM
  • Augmentation – wybiera odpowiednie fragmenty tekstu i wbudowuje je do kontekstu na którym pracuje LLM
  • Generation – LLM buduje odpowiedź, tyle tylko że ta odpowiedź jest lepsza jakościowo, bo ma właściwe dane

Kontekst nie jest bez wad i problemów, a te najpopularniejsze to:

  • w kontekście mogą się znaleźć również dane nieprzydatne, a wręcz zatruwające odpowiedź (context poisoning)
  • duże konteksty mogą tracić część swojej zawartości (bo się nie mieszczą w kontekście), a nawet jeśli się mieszczą, to z bliżej jeszcze nieustalonych przyczyn LLM bardziej zwraca uwagę na początek i koniec kontekstu, jakby gubiąc informacje w środku (lost in the middle)

Definiując właściwy kontekst należy wziąć pod uwagę i odpowiednio skonfigurować:

  • instrukcje systemowe (system prompt – definicja roli, czego system nie może robić, w jakim formacie zwracać dane, dopuszczalne dane z jakich można korzystać, np. zezwolenie tylko na dostarczone przez RAG tzw. chunks)
  • historię konwersacji, która może urosnąć i trzeba wtedy tworzyc podsumowania, usuwać najstarsze wpisy z historii, albo decydować o tym co jest najważniejsze
  • pobrane specyficzne dane (RAG lub korzystanie z Unity Catalog i zarejestrowanych tam źródeł danych)
  • inne reguly, policy, user constraints

Z kontekstem jest jak z RAM w komputerach – dobrze by było mieć go maksymalnie dużo (może tylko pomijając proble lost-in-the-middle). Jednak duży kontekst to duży kosze. Każdy model ma własny context window limit (8K, 32K lub 128K). Kontekst składa się z input tokens (czyli tego co jest wysyłane do kontekstu) oraz output tokens (czyli tego, co model generuje). Aby jakoś zarządzać kosztem można: ładować dokumenty w trakcie jak czat się rozwija, nie na początku, korzystać z tool-i które umożliwiają pobieranie brakujących danych, budowanie rankingu przekazywanych do kontekstu dokumentów i przekazywanie tylko tych najważniejszych.

By Rafał Kraik in AI