Wygenerowane przez Claude AI
- kopia całego katalogu projektu do nowego katalogu
- wykluczenie niektórych katalogów
- kopia bazy danych z uprawnieniami
Wygenerowane przez Claude AI
Wygenerowane przez Claude.ai
Tworzenie tabeli
CREATE TABLE users ( id serial primary key, name varchar(80), age int, -- how many years temp_hi int, -- high temperature prcp real, -- precipitation date date );
-- <komentarz>
DESC users – struktura tabeli users
\d+ users
Typy
int, smallint, real, double precision, char(N), varchar(N), date, time, timestamp, interval
Wstawianie danych – kopiowanie z pliku do tabeli
COPY users FROM '/home/joe/users.txt';
Poziom klienta – terminala psql
\l[+] - lista baz danych \dt[+] - lista tabel \dp - tabele, widoki, uprawnienia \du - użytkownicy / role
DESC users – struktura tabeli users
\d+ users
\dT[+] - schema \dO[+] - collations
help \?
\q - WYJŚCIE exit
select version(); PostgreSQL 13.20 (Debian 13.20-0+deb11u1) on x86_64-pc-linux-gnu, compiled by gcc
Zmiana nazwy usera – jako root
# usermod -l newuser olduser
# usermod -m -d /home/newuser newuser
Sprawdzenie
# cat /etc/passwd # ls -l /home
Jako użytkownik postgres (su – postgres)
# shell createuser --pwprompt username # pyta o hasło
Pliki konfiguracyjne
# ls /etc/postgresql/13/main/ conf.d environment pg_ctl.conf pg_hba.conf pg_ident.conf postgresql.conf start.conf
Restart serwera Postgresql
systemctl restart postgresql
apt install postgresql
var tc = new Intl.NumberFormat('pl-PL', { style: "currency", currency: "PLN" }).format(total_costs);
tc: 2 136 703,77 zł
var bilans = new Intl.NumberFormat('pl-PL').format(bilans);
bilans: 7 324 432,32
Uruchomienie w konsoli:
streamlit run --server.headless=true <app.py>
W projekcie Next.js prawidłowy plik .gitignore może wyglądać następująco:
Czytaj dalej nextjs – plik .gitignore
Aby zintegrować bazę danych MySQL z aplikacją Next.js, musisz wykonać kilka kroków. Next.js działa w środowisku Node.js, więc możesz użyć popularnych bibliotek, takich jak mysql2 lub ORM-ów typu `Prisma` czy TypeORM. Poniżej opisuję dwa podejścia: prostsze (z mysql2) i bardziej zaawansowane (z Prisma).
Apache2 nie obsługuje natywnie Node.js, więc musisz zainstalować środowisko uruchomieniowe dla Next.js:
Silnik WKHTMLTOPDF: https://wkhtmltopdf.org/downloads.html
Plugin CakePDF: https://github.com/FriendsOfCake/CakePdf
Instalacja pakietu pod konkretną wersję pythona:
Domyślna wersja:
# python -V
Python 3.13.0
SELECT "Nazwa Firmy", "Płeć", "Imię", "Nazwisko", "Stanowisko", "Tel", "Email", "Komórka" UNION SELECT c.name, CASE cc.is_man WHEN 2 THEN "K" WHEN 1 THEN 'M' ELSE '-' END, cc.firstname, cc.lastname, IFNULL(cc.stanowisko, "-"), IFNULL(cc.tel, "-"), IFNULL(cc.email,"-"), IFNULL(cc.kom,"-") FROM company_contacts cc INNER JOIN companies c ON c.id = cc.company_id ORDER BY cc.company_id, cc.lastname, cc.firstname LIMIT 20 INTO OUTFILE '/tmp/company_contacts.csv' CHARACTER SET CP1250 FIELDS ENCLOSED BY "" TERMINATED BY ';' ESCAPED BY '\\' LINES TERMINATED BY '\n' ;
$products_table = $this->fetchTable("Products");
CMD as administrator # ipconfig/displaydns - wyświetli wszystkie odwiedzane strony # ipconfig/flushdns - kasuje wpisy
Obiekt iterujemy jak tablicę
function delay(ms) { return new Promise(resolve => { setTimeout(resolve, ms); }); }
await delay(3000);
1. Excell zapisujemy w formacie .csv UTF-8
https://repo.anaconda.com/miniconda/ – repozytorium pakietów miniconda
Miniconda3-latest-Windows-x86_64.exe
Anaconda Prompt
> conda list
Konfiguracja:
// Tworzy nowe środowisko od_zera_do_ai > conda create --name <od_zera_do_ai> python=3.11
// aktywuje środowisko od_zera_do_ai > conda activate <od_zera_do_ai>
// sprawdzamy jakie mamy środowiska i które jest aktywne (*) > conda env list
// Instalujemy aplikację jupyterlab i pakiety > conda install jupyterlab > conda install matplotlib > conda install seaborn > conda install plotly
// pakiet date-a-scientist nie jest obsługiwany przez miniconda, // instalujemy z poziomu pythona > pip install date-a-scientist
Przejście do katalogu roboczego projektu:
> cd C:\Users\john\Desktop\od_zera_do_ai
// Uruchamia aplikację webową jupyter lab > jupyter lab Odpali: https://localhost:8888/lab
Przy wpisywaniu nazwy podczas wyszukiwania – opóźniamy wysłanie zapytania do momentu zakończenia wprowadzania tekstu – zwykle 400ms.
Definicja funkcji debounce w pliku – /js/common.js
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]') const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl)) function debounce(func, timeout = 400){ let timer; return (...args) => { clearTimeout(timer); timer = setTimeout(() => { func.apply(this, args); }, timeout); }; }
Użycie debounce w kodzie js
// Zmieniono domyślne opóźnienie 400 na 500ms const debounceName = debounce((str) => liveSearchCompanyByName(str), 500); $("#fullname").on('keyup', function(){ var name_str = $(this).val().trim(); var name_len = name_str.length; if( name_len >= 3 ) { debounceName(name_str); } else{ clearNameResults(); } });
Obsługa wyszukiwania / filtrowania (url.searchParams)
// Uruchomienie debouncera z timeoutem 600ms // Jeśli jest fraza ustaw searchParam, jeśli nie usuń const debounceNumber = debounce( (s_number) => { if(s_number) { url.searchParams.delete('page'); url.searchParams.set('s_number', s_number); } else { url.searchParams.delete('s_number'); } location.href = url.toString(); }, 600); // wpisywanie w pole wyszukiwania (s_number) $("#s_number").on('keyup', function(){ debounceNumber( $(this).val() ); });
Instrukcja instalacji https://mariadb.org
Mechanizm przeglądania w aplikacji plików graficznych i pdf
Exportuje dane z tabeli do pliku csv