



<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archiwa porady &#8226; Z IT Wzięte</title>
	<atom:link href="https://zitwziete.org/tag/porady/feed/" rel="self" type="application/rss+xml" />
	<link>https://zitwziete.org/tag/porady/</link>
	<description></description>
	<lastBuildDate>Fri, 08 May 2026 12:27:35 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.3</generator>

<image>
	<url>https://zitwziete.org/wp-content/uploads/2021/10/cropped-logo1-bez-tla-biale-32x32.png</url>
	<title>Archiwa porady &#8226; Z IT Wzięte</title>
	<link>https://zitwziete.org/tag/porady/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Płatnik nie startuje po aktualizacji metryki? Fix z ZUS nie pomaga?</title>
		<link>https://zitwziete.org/platnik-nie-startuje-po-aktualizacji-metryki-fix-z-zus-nie-pomaga/</link>
					<comments>https://zitwziete.org/platnik-nie-startuje-po-aktualizacji-metryki-fix-z-zus-nie-pomaga/#respond</comments>
		
		<dc:creator><![CDATA[ZITWziete]]></dc:creator>
		<pubDate>Fri, 08 May 2026 12:27:33 +0000</pubDate>
				<category><![CDATA[Fixit]]></category>
		<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[Wtopy]]></category>
		<category><![CDATA[płatnik]]></category>
		<category><![CDATA[porady]]></category>
		<category><![CDATA[problem]]></category>
		<guid isPermaLink="false">https://zitwziete.org/?p=1500</guid>

					<description><![CDATA[<p>Maj 2026 — ZUS wdrożył metrykę 325 i znów zaczęło się piekło. Program Płatnik odmawia posłuszeństwa przy starcie, autoaktualizacja się wysypuje, a oficjalny P2StartFix nie zawsze ratuje sytuację. Jeśli trafiłeś tu w desperacji — dobrze trafiłeś. Poniżej konkretna instrukcja, co zrobić, gdy standardowe metody zawodzą.</p>
<p>Artykuł <a href="https://zitwziete.org/platnik-nie-startuje-po-aktualizacji-metryki-fix-z-zus-nie-pomaga/">Płatnik nie startuje po aktualizacji metryki? Fix z ZUS nie pomaga?</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Maj 2026 — ZUS wdrożył metrykę 325 i znów zaczęło się piekło. Program Płatnik odmawia posłuszeństwa przy starcie, autoaktualizacja się wysypuje, a oficjalny P2StartFix nie zawsze ratuje sytuację. Jeśli trafiłeś tu w desperacji — dobrze trafiłeś. Poniżej konkretna instrukcja, co zrobić, gdy standardowe metody zawodzą.</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Co się stało?</h2>



<p class="wp-block-paragraph">4 maja 2026 r. Zakład Ubezpieczeń Społecznych wdrożył metrykę 325 dla programu Płatnik w wersji 10.02.002. Miała być pobierana automatycznie przy starcie programu. W teorii — elegancko. W praktyce — od 5 maja użytkownicy masowo zgłaszali problemy z pobraniem pakietu aktualizacji. Program albo zawieszał się przy starcie, albo rzucał błędem połączenia, albo po prostu odmawiał dalszej pracy.</p>



<p class="wp-block-paragraph">ZUS szybko opublikował komunikat o „ograniczeniach w pobieraniu aktualizacji&#8221; i zaproponował rozwiązanie: plik&nbsp;<strong>P2StartFix2.exe</strong>, który miał naprawić sytuację.</p>



<h2 class="wp-block-heading">P2StartFix2 — oficjalny fix od ZUS</h2>



<p class="wp-block-paragraph">ZUS udostępnił narzędzie naprawcze P2StartFix2.exe. Instrukcja jest prosta:</p>



<ol class="wp-block-list">
<li>Pobierz plik P2StartFix2.exe ze strony ZUS (link poniżej).</li>



<li>Zamknij program Płatnik.</li>



<li>Uruchom P2StartFix2.exe <strong>jako administrator</strong>.</li>



<li>Potwierdź zgodę na wykonanie aktualizacji — kliknij OK.</li>



<li>Potwierdź zakończenie — ponownie OK.</li>



<li>Uruchom Płatnika i sprawdź, czy aktualizacja przechodzi.</li>
</ol>



<p class="wp-block-paragraph">Link do pobrania P2StartFix2 i pełnego instalatora Płatnika: <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;<strong><a href="https://www.zus.pl/firmy/program-platnik/pobierz">Pobierz program Płatnik 10.02.002 — oficjalna strona ZUS</a></strong></p>



<p class="wp-block-paragraph">U wielu osób to wystarczy. Ale nie u wszystkich.</p>



<h2 class="wp-block-heading">Gdy P2StartFix2 nie pomaga — ręczna aktualizacja metryki</h2>



<p class="wp-block-paragraph">Na forach i w grupach na Facebooku poświęconych Płatnikowi pojawiło się mnóstwo zgłoszeń, że P2StartFix2 nie rozwiązuje problemu. Na części komputerów fix przechodzi bez błędu, a Płatnik i tak nie rusza. Na innych wyskakuje komunikat o błędzie ładowania certyfikatu. Znam to z autopsji — obsługuję kilka firm i na dwóch stanowiskach fix po prostu nie zadziałał.</p>



<p class="wp-block-paragraph"><strong>Rozwiązanie: ręczne pobranie metryki i wgranie jej z dysku.</strong></p>



<h3 class="wp-block-heading">Krok po kroku:</h3>



<p class="wp-block-paragraph"><strong>1. Pobierz paczkę z metryką ze strony ZUS</strong></p>



<p class="wp-block-paragraph">Wejdź na stronę  serwera dystrybucyjnego ZUS: <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong><a href="https://pobierz.zus.pl/dystrybucja/slowniki/">https://pobierz.zus.pl/dystrybucja/slowniki/</a></strong></p>



<p class="wp-block-paragraph"><strong>2. Rozpakuj archiwum</strong></p>



<p class="wp-block-paragraph">Wypakuj pobrany plik ZIP do wybranego folderu — np.&nbsp;<code>C:\Temp\metryka</code>. Wewnątrz znajdziesz plik&nbsp;<strong>metryka.xml</strong>.</p>



<p class="wp-block-paragraph"><strong>3. Wgraj metrykę ręcznie w Płatniku</strong></p>



<ul class="wp-block-list">
<li>Uruchom Płatnik i zaloguj się.</li>



<li>Z górnego menu wybierz: <strong>Administracja → Aktualizuj komponenty programu — z dysku&#8230;</strong></li>



<li>Otworzy się okno „Aktualizacja programu i danych płatnika&#8221;.</li>



<li>Kliknij <strong>„Pobierz aktualizacje&#8221;</strong> (tak, ta nazwa jest myląca — chodzi o import z dysku).</li>



<li>Wskaż plik <strong>metryka.xml</strong> z folderu, do którego rozpakowałeś archiwum.</li>



<li>Poczekaj na zakończenie procesu.</li>
</ul>



<p class="wp-block-paragraph">Jeśli wszystko pójdzie dobrze, zobaczysz status&nbsp;<strong>„Zaktualizowano&#8221;</strong>. Gdyby dane były już aktualne, pojawi się status&nbsp;<strong>„Aktualne&#8221;</strong>.</p>



<p class="wp-block-paragraph"><strong>4. Konwersja bazy danych</strong></p>



<p class="wp-block-paragraph">Po wgraniu nowej metryki program może poprosić o konwersję bazy danych. To normalne — szczególnie po metryce z 24 kwietnia, która wprowadzała zmiany w formularzach ZUS DRA i ZUS RCA. Zaloguj się jako&nbsp;<strong>Administrator</strong>&nbsp;Płatnika (nie zwykły Użytkownik) i postępuj zgodnie z komunikatami.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;<strong>Zanim cokolwiek zrobisz — wykonaj kopię zapasową bazy danych!</strong>&nbsp;Zapisz też, gdzie ta baza leży na dysku i jakie jest hasło dostępu. Bez tego w razie problemów nie odtworzysz danych.</p>
</blockquote>



<h2 class="wp-block-heading">Dlaczego autoaktualizacja nie działa?</h2>



<p class="wp-block-paragraph">To pytanie wraca przy każdej nowej metryce. Problem polega na tym, że mechanizm autoaktualizacji Płatnika opiera się na komunikacji z serwerami ZUS, które przy masowym pobieraniu po prostu nie wytrzymują obciążenia. Dodatkowo metryka 325 była podpisana certyfikatem, który u części użytkowników powodował problemy weryfikacji — szczególnie w środowiskach korzystających z podpisu osobistego (e-dowód).</p>



<p class="wp-block-paragraph">ZUS sam przyznał, że metryka 325 miała rozwiązać problem użytkowników e-dowodu z pobieraniem danych. Paradoksalnie, jej wdrożenie wygenerowało nowe problemy.</p>



<h2 class="wp-block-heading">Uwaga na false-positive antywirusów</h2>



<p class="wp-block-paragraph">W paczce z metryką 325 plik&nbsp;<code>KOD_About.exe.zip</code>&nbsp;jest fałszywie wykrywany przez niektóre silniki antywirusowe. To znany problem — plik pochodzi z oficjalnego serwera ZUS i nie jest zagrożeniem. Jeśli Twój antywirus blokuje pobranie, tymczasowo dodaj wyjątek dla folderu, do którego pobierasz paczkę.</p>



<p class="wp-block-paragraph">PS. Niektórzy twierdzą ze cały ZUS to Malware <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<h2 class="wp-block-heading">Podsumowanie</h2>



<p class="wp-block-paragraph">Program Płatnik to narzędzie, z którego korzystają setki tysięcy firm w Polsce. Niestety, prawie każde wdrożenie nowej metryki kończy się falą problemów. Kluczowa lekcja jest taka:&nbsp;<strong>nie polegaj wyłącznie na autoaktualizacji</strong>. Trzymaj pod ręką link do strony ZUS z plikiem metryki i wiedz, jak wgrać ją ręcznie. To umiejętność, która będzie Ci służyć przy każdej kolejnej aktualizacji.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Przydatne linki:</strong></p>



<ul class="wp-block-list">
<li><a href="https://www.zus.pl/firmy/program-platnik/pobierz">Pobierz program Płatnik 10.02.002 — ZUS</a></li>



<li><a href="https://www.zus.pl/o-zus/komunikaty">Komunikaty techniczne ZUS</a></li>



<li><a href="https://www.zus.pl/pl/jak-zaktualizowac-slowniki-i-komponenty-w-programie-platnik">Instrukcja aktualizacji komponentów — ZUS</a></li>



<li><a href="https://forumplatnika.pl/">Forum użytkowników Płatnika</a></li>
</ul>



<p class="wp-block-paragraph"></p>
<p>Artykuł <a href="https://zitwziete.org/platnik-nie-startuje-po-aktualizacji-metryki-fix-z-zus-nie-pomaga/">Płatnik nie startuje po aktualizacji metryki? Fix z ZUS nie pomaga?</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://zitwziete.org/platnik-nie-startuje-po-aktualizacji-metryki-fix-z-zus-nie-pomaga/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Adobe Reader ma problem z podpisem Certum</title>
		<link>https://zitwziete.org/adobe-reader-ma-problem-z-podpisem-certum/</link>
					<comments>https://zitwziete.org/adobe-reader-ma-problem-z-podpisem-certum/#respond</comments>
		
		<dc:creator><![CDATA[ZITWziete]]></dc:creator>
		<pubDate>Mon, 27 Apr 2026 17:33:45 +0000</pubDate>
				<category><![CDATA[Fixit]]></category>
		<category><![CDATA[Poradniki]]></category>
		<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[certum]]></category>
		<category><![CDATA[moje 0.02 pln]]></category>
		<category><![CDATA[podpis]]></category>
		<category><![CDATA[porady]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[waidacja]]></category>
		<category><![CDATA[weryfikacja]]></category>
		<guid isPermaLink="false">https://zitwziete.org/?p=1490</guid>

					<description><![CDATA[<p>Otwierasz PDF podpisany kwalifikowanym certyfikatem Certum, a Adobe Reader pokazuje żółty trójkąt i komunikat „Poprawność podpisu nieznana" („Validity unknown")? Spokojnie — w 90% przypadków to nieaktualna lista zaufanych dostawców i fix zajmuje dwie minuty. Poniżej rozkładam temat na czynniki pierwsze, bo „problem z weryfikacją" może oznaczać 4–5 zupełnie różnych rzeczy, a leczenie każdego jest inne.</p>
<p>Artykuł <a href="https://zitwziete.org/adobe-reader-ma-problem-z-podpisem-certum/">Adobe Reader ma problem z podpisem Certum</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Otwierasz PDF podpisany kwalifikowanym certyfikatem Certum, a Adobe Reader pokazuje żółty trójkąt i komunikat „Poprawność podpisu nieznana&#8221; („Validity unknown&#8221;)?</strong>&nbsp;Spokojnie — w 90% przypadków to nieaktualna lista zaufanych dostawców i fix zajmuje dwie minuty. Poniżej rozkładam temat na czynniki pierwsze, bo „problem z weryfikacją&#8221; może oznaczać 4–5 zupełnie różnych rzeczy, a leczenie każdego jest inne.</p>



<h2 class="wp-block-heading" id="tldr">TL;DR — szybki fix w 2 minuty</h2>



<ol class="wp-block-list">
<li>W Adobe Readerze:&nbsp;<code>Edycja → Preferencje → Menedżer zaufania</code></li>



<li>Sekcja&nbsp;<strong>Adobe AATL</strong>&nbsp;→ kliknij&nbsp;<em>„Uaktualnij teraz&#8221;</em></li>



<li>Sekcja&nbsp;<strong>EUTL</strong>&nbsp;(European Union Trusted Lists) → też&nbsp;<em>„Uaktualnij teraz&#8221;</em></li>



<li>Zamknij Reader, otwórz PDF ponownie</li>
</ol>



<p class="wp-block-paragraph">Jeśli to nie pomogło — czytaj dalej, bo masz jedną z mniej oczywistych przyczyn.</p>



<h2 class="wp-block-heading" id="dlaczego">Dlaczego Adobe pokazuje „Validity unknown&#8221; przy Certumie</h2>



<p class="wp-block-paragraph">Adobe Reader nie ufa certyfikatowi „bo jest podpisany przez Certum&#8221; — Adobe ufa&nbsp;<strong>liście</strong>, na której Certum (i inne kwalifikowane CA) się znajduje. Te listy są dwie:</p>



<ul class="wp-block-list">
<li><strong>AATL (Adobe Approved Trust List)</strong>&nbsp;— własna lista Adobe, aktualizowana automatycznie mniej więcej co 14 dni. Certum jest na niej od kilku lat.</li>



<li><strong>EUTL (European Union Trusted Lists)</strong>&nbsp;— lista UE z dostawcami kwalifikowanymi z każdego państwa członkowskiego. Od 2016 roku to&nbsp;<em>właściwa</em>&nbsp;lista dla podpisów kwalifikowanych w UE — siedzą tam NCCert, KIR Szafir, EuroCert i Certum.</li>
</ul>



<p class="wp-block-paragraph">Jeśli któraś z list nigdy się u Ciebie nie zaktualizowała (świeża instalacja, długo wyłączony komputer, polityka firmowa blokująca aktualizacje) — Reader nie ma jak zweryfikować ścieżki zaufania i pokazuje „nieznana poprawność&#8221;. To&nbsp;<strong>nie</strong>&nbsp;znaczy, że podpis jest zły. To znaczy, że Twoja kopia Adobe nie wie, kim jest Certum.</p>



<h2 class="wp-block-heading" id="aatl-eutl">Fix #1 — aktualizacja AATL i EUTL</h2>



<p class="wp-block-paragraph">Klasyk i pierwsza rzecz do sprawdzenia. Krok po kroku:</p>



<ol class="wp-block-list">
<li>Otwórz Adobe Reader (DC lub Acrobat)</li>



<li><code>Edycja → Preferencje</code>&nbsp;(Mac:&nbsp;<code>Acrobat → Preferencje</code>)</li>



<li>Wybierz kategorię&nbsp;<strong>Menedżer zaufania</strong></li>



<li>Sekcja&nbsp;<em>Aktualizacje automatyczne dla certyfikatów zaufania zatwierdzonych przez Adobe (AATL)</em>&nbsp;→ przycisk&nbsp;<strong>„Uaktualnij teraz&#8221;</strong></li>



<li>Tuż obok jest druga sekcja&nbsp;<em>European Union Trusted Lists (EUTL)</em>&nbsp;→ też&nbsp;<strong>„Uaktualnij teraz&#8221;</strong></li>



<li>Upewnij się, że obie opcje&nbsp;<em>„Załaduj zaufane certyfikaty…&#8221;</em>&nbsp;są zaznaczone</li>



<li>OK, zamknij Reader, otwórz dokument ponownie</li>
</ol>



<p class="wp-block-paragraph">U 9 na 10 osób temat zamyka się w tym miejscu.</p>



<h2 class="wp-block-heading" id="addressbook">Fix #2 — uszkodzony trust store (addressbook.acrodata)</h2>



<p class="wp-block-paragraph">Znany bug Adobe: przy aktualizacji AATL/EUTL niektóre certyfikaty zawierające w danych binarnych sekwencję&nbsp;<code>FE FF</code>&nbsp;potrafią „spuchnąć&#8221; w lokalnym truststore i wszystkie podpisy oparte o nie nagle są&nbsp;<em>invalid</em>. Objawy: podpis jeszcze wczoraj się weryfikował, dziś już nie, a aktualizacja list nic nie daje.</p>



<p class="wp-block-paragraph">Lekarstwo — wykasowanie skorumpowanego pliku książki adresowej:</p>



<ol class="wp-block-list">
<li>Najpierw:&nbsp;<code>Pomoc → Sprawdź aktualizacje</code>&nbsp;i zaktualizuj Reader do najnowszej wersji</li>



<li>Zamknij Adobe Reader (sprawdź, czy nie wisi w tle — Task Manager / Activity Monitor)</li>



<li>Skasuj plik&nbsp;<code>addressbook.acrodata</code>:
<ul class="wp-block-list">
<li><strong>Windows:</strong>&nbsp;<code>%APPDATA%\Adobe\Acrobat\DC\Security\addressbook.acrodata</code><br>(czyli&nbsp;<code>C:\Users\&lt;TwojUser&gt;\AppData\Roaming\Adobe\Acrobat\DC\Security\</code>)</li>



<li><strong>macOS:</strong>&nbsp;<code>~/Library/Application Support/Adobe/Acrobat/DC/Security/addressbook.acrodata</code></li>
</ul>
</li>



<li>Uruchom Reader ponownie</li>



<li>Wróć do&nbsp;<code>Menedżer zaufania</code>&nbsp;i zrób&nbsp;<strong>świeży</strong>&nbsp;update AATL i EUTL</li>
</ol>



<p class="wp-block-paragraph">Plik&nbsp;<code>addressbook.acrodata</code>&nbsp;Adobe odbuduje sam przy starcie. Jeśli masz tam ręcznie zaimportowane certyfikaty (rzadkie, ale się zdarza w środowiskach korporacyjnych) — najpierw zrób kopię.</p>



<h2 class="wp-block-heading" id="timestamp">Fix #3 — brak znacznika czasu (TSA)</h2>



<p class="wp-block-paragraph">Kolejny scenariusz: dokument był podpisany rok temu, certyfikat już dawno wygasł, a Reader pokazuje, że „podpis był ważny w momencie weryfikacji&#8221; — co jest oczywistym fałszem, bo podpis był ważny w momencie&nbsp;<em>złożenia</em>, nie weryfikacji. Tu wchodzi&nbsp;<strong>znacznik czasu</strong>&nbsp;z kwalifikowanej TSA (Time Stamping Authority).</p>



<p class="wp-block-paragraph">Jeśli dokument&nbsp;<strong>ma</strong>&nbsp;osadzony qualified timestamp, ale Reader go nie używa — przełącz tryb weryfikacji:</p>



<ol class="wp-block-list">
<li><code>Preferencje → Podpisy → Weryfikacja → Więcej</code></li>



<li>W sekcji&nbsp;<em>Czas weryfikacji</em>&nbsp;wybierz:&nbsp;<strong>„Bezpieczny czas (znacznik czasowy)&#8221;</strong>&nbsp;zamiast „Bieżący czas&#8221;</li>



<li>OK, otwórz dokument ponownie</li>
</ol>



<p class="wp-block-paragraph">Jeśli dokument&nbsp;<strong>nie ma</strong>&nbsp;timestampu — to wina podpisującego, nie Twoja. Przy podpisach kwalifikowanych powinno się ZAWSZE używać TSA (Certum udostępnia&nbsp;<code>time.certum.pl</code>, KIR Szafir ma własną, EuroCert też). proCertum SmartSign domyślnie podpisuje z timestampem, ale w starszych wersjach trzeba to było zaznaczyć ręcznie w opcjach.</p>



<h2 class="wp-block-heading" id="cades-pades">Fix #4 — to nie jest PAdES, to CAdES</h2>



<p class="wp-block-paragraph">Tu zaczyna się ciekawie. W Polsce wciąż się zdarza, że ktoś podpisuje PDF narzędziem, które generuje&nbsp;<strong>osobny plik podpisu</strong>&nbsp;(typowo&nbsp;<code>.xades</code>&nbsp;lub&nbsp;<code>.cades</code>) zamiast osadzić podpis w samym PDF. Adobe Reader takiego podpisu nie zweryfikuje, bo nawet go nie widzi — w PDF-ie nie ma żadnego pola podpisu.</p>



<p class="wp-block-paragraph">Skróty:</p>



<ul class="wp-block-list">
<li><strong>PAdES</strong>&nbsp;(PDF Advanced Electronic Signatures) — podpis osadzony bezpośrednio w PDF.&nbsp;<em>Tylko ten</em>&nbsp;Adobe weryfikuje natywnie.</li>



<li><strong>CAdES</strong>&nbsp;(CMS Advanced Electronic Signatures) — podpis w osobnym pliku&nbsp;<code>.p7s</code>&nbsp;/&nbsp;<code>.cades</code>&nbsp;obok dokumentu, albo wbudowany w zewnętrzną kopertę.</li>



<li><strong>XAdES</strong>&nbsp;— wariant XML, też nie dla Adobe.</li>
</ul>



<p class="wp-block-paragraph">Jeśli dostałeś PDF + osobny&nbsp;<code>.xades</code>/<code>.cades</code>&nbsp;— weryfikujesz to&nbsp;<strong>podpisywarką</strong>&nbsp;(np. proCertum SmartSign, Szafir, mObywatel — w zależności od formatu), nie Adobe Readerem. proCertum SmartSign domyślnie podpisuje PDF-y w PAdES, ale przy starszych konfiguracjach trzeba to wymusić w ustawieniach formatu podpisu.</p>



<h2 class="wp-block-heading" id="modyfikacja">Fix #5 — dokument zmodyfikowany po podpisie</h2>



<p class="wp-block-paragraph">Komunikat:&nbsp;<em>„Podpis jest ważny, ale dokument został zmieniony po podpisaniu&#8221;</em>. Czasem to świadoma zmiana, ale częściej — zwykła nieuwaga:</p>



<ul class="wp-block-list">
<li>Ktoś otworzył podpisany formularz, wypełnił kolejne pole i zapisał — podpis nie zezwalał na takie zmiany przyrostowe</li>



<li>Ktoś przerzucił PDF przez konwerter online lub edytor i ten&nbsp;<em>przepisał</em>&nbsp;plik, niszcząc strukturę podpisu</li>



<li>PDF został „zoptymalizowany&#8221; jakimś narzędziem typu Smallpdf — i tyle</li>
</ul>



<p class="wp-block-paragraph">Lekarstwo: poproś nadawcę o oryginalną, niemodyfikowaną kopię. Tej zepsutej już nie naprawisz — to fundamentalna własność podpisu cyfrowego, a nie błąd.</p>



<h2 class="wp-block-heading" id="protected-mode">Fix #6 — Protected Mode blokuje OCSP/CRL</h2>



<p class="wp-block-paragraph">Adobe Reader w trybie chronionym (Protected Mode, domyślnie włączony na Windowsie) czasami nie może uderzyć na zewnętrzne serwery sprawdzające status certyfikatu (OCSP/CRL). Najczęściej widać to przy podpisywaniu, rzadziej przy weryfikacji — ale jeśli żaden poprzedni fix nie zadziałał, warto sprawdzić.</p>



<p class="wp-block-paragraph"><code>Preferencje → Zabezpieczenia (rozszerzone)</code>&nbsp;→ odznacz&nbsp;<em>„Włącz tryb chroniony przy uruchamianiu&#8221;</em>, restart Readera. Jeśli temat zniknie — wrzuć potem do białej listy serwery Certum (<code>*.certum.pl</code>,&nbsp;<code>*.certum.eu</code>) zamiast trzymać Protected Mode wyłączony na stałe.</p>



<h2 class="wp-block-heading" id="diagnostyka">Diagnostyka — jak ustalić, co konkretnie boli Readera</h2>



<p class="wp-block-paragraph">Zamiast strzelać, otwórz panel diagnostyczny:</p>



<ol class="wp-block-list">
<li>Lewy panel Reader → ikona&nbsp;<strong>panelu podpisów</strong>&nbsp;(pióro)</li>



<li>Rozwiń wpis podpisu</li>



<li><strong>Pokaż szczegóły zatwierdzenia</strong>&nbsp;(Show Signature Properties)</li>
</ol>



<p class="wp-block-paragraph">Reader pokaże dokładnie, gdzie ma problem — najczęściej zobaczysz jedno z:</p>



<ul class="wp-block-list">
<li><em>„The signer&#8217;s identity is unknown because it has not been included in your list of trusted certificates&#8221;</em>&nbsp;→ fix #1 (AATL/EUTL)</li>



<li><em>„The certificate chain could not be built&#8221;</em>&nbsp;→ fix #1 lub #2 (addressbook)</li>



<li><em>„Signature is valid, but the document has been altered or corrupted&#8221;</em>&nbsp;→ fix #5 (modyfikacja)</li>



<li><em>„Revocation status could not be determined&#8221;</em>&nbsp;→ fix #6 (Protected Mode / sieć)</li>



<li><em>„The signature includes an embedded timestamp but it could not be verified&#8221;</em>&nbsp;→ fix #3 (timestamp)</li>
</ul>



<h2 class="wp-block-heading" id="podsumowanie">Podsumowanie — w jakiej kolejności sprawdzać</h2>



<p class="wp-block-paragraph">Standardowy flow troubleshootingowy:</p>



<ol class="wp-block-list">
<li>Update AATL + EUTL (90% przypadków zamyka się tutaj)</li>



<li>Update samego Readera + skasowanie&nbsp;<code>addressbook.acrodata</code>&nbsp;+ ponowny update list</li>



<li>Sprawdzenie panelu szczegółów podpisu — co konkretnie zgłasza Reader</li>



<li>W zależności od komunikatu — timestamp, format podpisu, tryb chroniony, modyfikacja dokumentu</li>
</ol>



<p class="wp-block-paragraph">Większość zgłoszeń serwisowych w stylu „Adobe nie chce mi sprawdzić podpisu&#8221; rozwiązuje się na pierwszym kroku. Te bardziej upierdliwe — na drugim. Reszta to już konkretne, identyfikowalne problemy, a nie ogólne „nie działa&#8221;.</p>



<p class="wp-block-paragraph"></p>
<p>Artykuł <a href="https://zitwziete.org/adobe-reader-ma-problem-z-podpisem-certum/">Adobe Reader ma problem z podpisem Certum</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://zitwziete.org/adobe-reader-ma-problem-z-podpisem-certum/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Zabbix na LAN vs Zabbix Proxy &#8211; dwa modele, które warto znać</title>
		<link>https://zitwziete.org/zabbix-na-lan-vs-zabbix-proxy-dwa-modele-ktore-warto-znac/</link>
					<comments>https://zitwziete.org/zabbix-na-lan-vs-zabbix-proxy-dwa-modele-ktore-warto-znac/#respond</comments>
		
		<dc:creator><![CDATA[ZITWziete]]></dc:creator>
		<pubDate>Sun, 29 Mar 2026 12:39:47 +0000</pubDate>
				<category><![CDATA[Zabbix]]></category>
		<category><![CDATA[bezpieczeństwo]]></category>
		<category><![CDATA[moje 0.02 pln]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[porady]]></category>
		<category><![CDATA[zabbix]]></category>
		<guid isPermaLink="false">https://zitwziete.org/?p=1481</guid>

					<description><![CDATA[<p>Jak stawiać Zabbbixa u siebie w LAN, a jak np zainstalować go u klienta ? </p>
<p>Artykuł <a href="https://zitwziete.org/zabbix-na-lan-vs-zabbix-proxy-dwa-modele-ktore-warto-znac/">Zabbix na LAN vs Zabbix Proxy &#8211; dwa modele, które warto znać</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Zabbix jest elastyczny. Możesz go postawić na jednym serwerze i monitorować wszystko w jednej sieci. Możesz też rozciągnąć monitoring na dziesiątki lokalizacji, gdzie serwer Zabbix nigdy nie widzi sieci klienta bezpośrednio. W tym artykule porównuję dwa konkretne scenariusze wdrożenia: Zabbix działający lokalnie na LAN-ie oraz Zabbix z active proxy postawionym u klienta, gdzie to proxy inicjuje połączenie do serwera — a nie odwrotnie.</p>



<h2 class="wp-block-heading">Scenariusz 1: Zabbix na LAN — wszystko w jednej sieci</h2>



<p class="wp-block-paragraph">To najprostszy i najczęstszy model. Serwer Zabbix stoi w tej samej sieci co monitorowane hosty. Agenty na serwerach raportują bezpośrednio do serwera Zabbix, który zbiera dane, przetwarza triggery, wysyła alerty i wyświetla dashboardy.</p>



<h3 class="wp-block-heading">Jak to wygląda w praktyce</h3>



<pre class="wp-block-code"><code>&#91;Host 1] ──┐
&#91;Host 2] ──┤── LAN ──── &#91;Zabbix Server + Frontend + DB]
&#91;Host 3] ──┘</code></pre>



<p class="wp-block-paragraph">Serwer Zabbix odpytuje agentów (passive checks) lub agenty same wysyłają dane (active checks). Wszystko dzieje się w jednym segmencie sieci. Nie ma firewalli po drodze, nie ma NAT-u, nie ma opóźnień WAN.</p>



<h3 class="wp-block-heading">Konfiguracja</h3>



<p class="wp-block-paragraph">Minimalna. Instalujesz serwer Zabbix, stawiasz bazę (PostgreSQL lub MySQL), wdrażasz agentów na hostach. W&nbsp;<code>zabbix_agentd.conf</code>&nbsp;ustawiasz:</p>



<p class="wp-block-paragraph">ini</p>



<pre class="wp-block-code"><code>Server=192.168.1.10          # IP serwera Zabbix (passive checks)
ServerActive=192.168.1.10    # IP serwera Zabbix (active checks)
Hostname=web-server-01       # unikalna nazwa hosta</code></pre>



<p class="wp-block-paragraph">I gotowe. Agent raportuje, serwer zbiera. Żadnego proxy, żadnych tuneli, żadnych komplikacji.</p>



<h3 class="wp-block-heading">Zalety</h3>



<ul class="wp-block-list">
<li><strong>Prostota</strong>&nbsp;— jeden serwer, jedna baza, jedna instancja do zarządzania.</li>



<li><strong>Niskie opóźnienia</strong>&nbsp;— dane z agentów trafiają do serwera natychmiast, bo wszystko jest na LAN-ie.</li>



<li><strong>Passive i active checks bez ograniczeń</strong>&nbsp;— serwer ma bezpośredni dostęp do agentów, więc działają oba tryby. Możesz korzystać z remote commands do automatycznego restartowania usług.</li>



<li><strong>SNMP, IPMI, HTTP bez problemów</strong>&nbsp;— serwer odpytuje urządzenia sieciowe bezpośrednio, bez pośredników.</li>



<li><strong>Łatwy troubleshooting</strong>&nbsp;— jedna maszyna, jeden log, jedno miejsce do sprawdzenia.</li>
</ul>



<h3 class="wp-block-heading">Wady</h3>



<ul class="wp-block-list">
<li><strong>Skala ograniczona do jednej lokalizacji</strong>&nbsp;— jeśli masz drugi oddział albo sieć klienta, ten model nie wystarczy.</li>



<li><strong>Brak redundancji</strong>&nbsp;— padnie serwer Zabbix, padnie monitoring. W małych środowiskach to akceptowalne, w większych — nie.</li>



<li><strong>Brak separacji</strong>&nbsp;— serwer Zabbix widzi wszystko i ma dostęp do wszystkiego. W kontekście bezpieczeństwa i segmentacji sieci to niekoniecznie pożądane.</li>
</ul>



<h3 class="wp-block-heading">Kiedy stosować</h3>



<p class="wp-block-paragraph">Jedna firma, jedna serwerownia, jeden LAN. Monitorujesz swoje serwery, switche, NAS-y, UPS-y. Masz pełną kontrolę nad siecią. Nie musisz monitorować niczego zdalnie. To scenariusz dla 80% małych i średnich wdrożeń.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Scenariusz 2: Zabbix z active proxy u klienta</h2>



<p class="wp-block-paragraph">Tu zaczyna się ciekawiej. Masz centralny serwer Zabbix — np. w swoim DC albo na VPS-ie. Klient ma swoją sieć, za NAT-em, za firewallem, do której nie masz (i nie chcesz mieć) bezpośredniego dostępu. U klienta stawiasz Zabbix proxy w trybie&nbsp;<strong>active</strong>. To proxy inicjuje wszystkie połączenia do serwera — serwer nigdy nie łączy się do proxy. Serwer nawet nie musi znać IP proxy.</p>



<p class="wp-block-paragraph">W tym modelu Serwer zabixa sam nigdy nie komunikuje się z Proxy u klienta. To Proxy wysyła dane na ip serwera w świat (czśto na wysokim porcie), a jeśli np firewall na serwerze przyjmuje dane tylko z podanych ip  to <strong>to jest najbezpieczeniejsze co można wymyślić</strong> poza VPN . </p>



<h3 class="wp-block-heading">Jak to wygląda w praktyce</h3>



<pre class="wp-block-code"><code>Sieć klienta (za NAT/firewall):                    Twój DC:
┌──────────────────────────┐                ┌──────────────────┐
│ &#91;Host 1] ──┐             │                │                  │
│ &#91;Host 2] ──┤── LAN ── &#91;Zabbix Proxy] ──────────► &#91;Zabbix Server]  │
│ &#91;Host 3] ──┘   (active)  │   port 10051   │  + Frontend + DB │
│ &#91;Switch] ──┘             │                │                  │
└──────────────────────────┘                └──────────────────┘
         ← proxy inicjuje połączenie →
         ← serwer NIE łączy się do proxy →</code></pre>



<p class="wp-block-paragraph">Kluczowa sprawa:&nbsp;<strong>active proxy sam puka do serwera</strong>. Pobiera konfigurację (jakie hosty monitorować, jakie itemy zbierać) i odsyła zebrane dane. Serwer nie musi mieć routingu do sieci klienta. Firewall u klienta musi przepuścić tylko jeden port wychodzący (domyślnie 10051 TCP) do serwera Zabbix.</p>



<h3 class="wp-block-heading">Konfiguracja proxy</h3>



<p class="wp-block-paragraph">Na maszynie u klienta instalujesz Zabbix proxy. W&nbsp;<code>zabbix_proxy.conf</code>:</p>



<p class="wp-block-paragraph">ini</p>



<pre class="wp-block-code"><code>ProxyMode=0                          # 0 = active (domyślne)
Hostname=klient-abc-proxy            # musi się zgadzać z nazwą w frontendzie
Server=zabbix.twojafirma.pl:10051   # adres Twojego serwera Zabbix
DBName=/tmp/zabbix_proxy.db          # SQLite wystarczy dla małych wdrożeń
ConfigFrequency=120                  # co ile sekund pobierać konfigurację
DataSenderFrequency=5                # co ile sekund wysyłać dane
ProxyOfflineBuffer=72                # ile godzin trzymać dane przy braku łączności</code></pre>



<p class="wp-block-paragraph">Na frontendzie serwera Zabbix:&nbsp;<strong>Administration → Proxies → Create proxy</strong>&nbsp;— wpisujesz nazwę&nbsp;<code>klient-abc-proxy</code>, tryb Active. Nie musisz podawać żadnego IP proxy.</p>



<h3 class="wp-block-heading">Konfiguracja agentów u klienta</h3>



<p class="wp-block-paragraph">Agenty wskazują na lokalne IP proxy, nie na serwer Zabbix:</p>



<p class="wp-block-paragraph">ini</p>



<pre class="wp-block-code"><code>Server=192.168.10.50           # IP proxy w sieci klienta
ServerActive=192.168.10.50     # IP proxy w sieci klienta
Hostname=klient-abc-dc01       # unikalna nazwa hosta</code></pre>



<p class="wp-block-paragraph">Agent nie wie, że rozmawia z proxy a nie z serwerem — protokół jest identyczny.</p>



<h3 class="wp-block-heading">Przepływ danych</h3>



<ol class="wp-block-list">
<li><strong>Proxy → Serwer</strong>: Proxy łączy się z serwerem co&nbsp;<code>ConfigFrequency</code>&nbsp;sekund i pobiera konfigurację (lista hostów, itemów, triggerów do monitorowania).</li>



<li><strong>Agenty → Proxy</strong>: Agenty w sieci klienta raportują dane do proxy (LAN, bez wychodzenia na zewnątrz).</li>



<li><strong>Proxy → Serwer</strong>: Proxy buforuje dane lokalnie i wysyła je do serwera co&nbsp;<code>DataSenderFrequency</code>&nbsp;sekund.</li>



<li><strong>Serwer przetwarza</strong>: Triggery, eventy, alerty — to wszystko dzieje się na serwerze. Proxy jest tylko kolektorem danych.</li>
</ol>



<p class="wp-block-paragraph">Serwer&nbsp;<strong>nigdy nie inicjuje połączenia</strong>&nbsp;do proxy. Proxy puka do serwera. To fundamentalna różnica, która rozwiązuje problem NAT-u, firewalli i braku bezpośredniego dostępu do sieci klienta.</p>



<h3 class="wp-block-heading">Co się dzieje, gdy padnie łącze?</h3>



<p class="wp-block-paragraph">Proxy buforuje dane lokalnie. Parametr&nbsp;<code>ProxyOfflineBuffer</code>&nbsp;(domyślnie 1 godzina) określa, jak długo proxy trzyma dane, gdy nie może połączyć się z serwerem. Ustawiasz np. 72 godziny — i proxy przeżyje weekend bez łączności. Gdy połączenie wróci, proxy wyśle zaległe dane i serwer je przetworzy.</p>



<p class="wp-block-paragraph">W trybie&nbsp;<code>ProxyBufferMode=hybrid</code>&nbsp;(od Zabbix 7.0) proxy trzyma dane w pamięci dla szybkości, a gdy pamięć się zapełni — zrzuca na dysk. Najlepsze z obu światów.</p>



<h3 class="wp-block-heading">Zalety</h3>



<ul class="wp-block-list">
<li><strong>Firewall-friendly</strong>&nbsp;— jedyne wymaganie: port wychodzący z proxy do serwera. Żadnych portów przychodzących u klienta, żadnego VPN-a, żadnego otwierania dziur.</li>



<li><strong>Serwer nie ma dostępu do sieci klienta</strong>&nbsp;— i to jest feature, nie bug. Separacja jest pełna. Serwer nie może skanować sieci klienta, nie może łączyć się z hostami. Dane płyną tylko w jedną stronę: od proxy do serwera.</li>



<li><strong>Buforowanie offline</strong>&nbsp;— awaria łącza nie oznacza utraty danych. Proxy trzyma metryki lokalnie i dosyła je po przywróceniu połączenia.</li>



<li><strong>Skalowalność</strong>&nbsp;— jeden serwer Zabbix, dziesiątki proxy u różnych klientów. Każde proxy zbiera dane ze swojego segmentu, serwer centralizuje wszystko.</li>



<li><strong>Odciążenie serwera</strong>&nbsp;— proxy wykonuje preprocessing danych i skanowanie sieci (discovery) lokalnie. Serwer dostaje gotowe dane.</li>



<li><strong>Prosta konfiguracja sieciowa</strong>&nbsp;— nie musisz znać publicznego IP proxy, nie musisz konfigurować port forwarding u klienta. Proxy samo się łączy.</li>
</ul>



<h3 class="wp-block-heading">Wady</h3>



<ul class="wp-block-list">
<li><strong>Brak remote commands</strong>&nbsp;— serwer nie może wysłać komendy do hosta przez active proxy, bo nie ma do niego bezpośredniego połączenia. Od Zabbix 7.0 active agent potrafi odbierać remote commands, ale wymaga to dodatkowej konfiguracji.</li>



<li><strong>Opóźnienie w danych</strong>&nbsp;— dane nie trafiają na serwer natychmiastowo. Jest bufor, jest&nbsp;<code>DataSenderFrequency</code>. W praktyce opóźnienie to kilka sekund, ale nie jest zerowe.</li>



<li><strong>Opóźnienie w konfiguracji</strong>&nbsp;— po zmianie itemów na serwerze proxy musi pobrać nową konfigurację. Domyślnie&nbsp;<code>ConfigFrequency=3600</code>&nbsp;(1 godzina!). Warto zmniejszyć do 120-300 sekund. Można też wymusić ręcznie:&nbsp;<code>zabbix_proxy -R config_cache_reload</code>.</li>



<li><strong>Dodatkowy komponent</strong>&nbsp;— proxy to kolejna maszyna do utrzymania, kolejna baza danych, kolejny serwis do monitorowania (tak — monitoruj swoje proxy).</li>



<li><strong>Brak passive checks z serwera</strong>&nbsp;— serwer nie może odpytać agenta przez proxy w trybie active. Agenty muszą pracować w trybie active checks.</li>
</ul>



<h3 class="wp-block-heading">Kiedy stosować</h3>



<p class="wp-block-paragraph">Monitorujesz infrastrukturę klientów jako usługę (MSP/MSSP). Masz wiele oddziałów za NAT-em. Klient nie chce (słusznie) otwierać VPN-a do Twojego serwera. Potrzebujesz centralnego dashboardu dla wielu lokalizacji. Chcesz separacji — serwer nie powinien mieć dostępu do sieci klienta.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Porównanie: LAN vs Active Proxy</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Cecha</th><th>Zabbix na LAN</th><th>Zabbix + Active Proxy</th></tr></thead><tbody><tr><td>Złożoność wdrożenia</td><td>Niska</td><td>Średnia</td></tr><tr><td>Firewall/NAT</td><td>Nie przeszkadza</td><td>Rozwiązany — proxy łączy się na zewnątrz</td></tr><tr><td>Serwer ma dostęp do sieci klienta</td><td>Tak (pełny)</td><td>Nie (zero)</td></tr><tr><td>Kierunek połączenia</td><td>Serwer <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2194.png" alt="↔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Agent</td><td>Proxy → Serwer (jednokierunkowy)</td></tr><tr><td>Passive checks</td><td>Tak</td><td>Nie (tylko active)</td></tr><tr><td>Remote commands</td><td>Tak</td><td>Ograniczone</td></tr><tr><td>Buforowanie offline</td><td>Nie</td><td>Tak (do 72h+)</td></tr><tr><td>Skalowalność lokalizacji</td><td>Jedna</td><td>Wiele</td></tr><tr><td>Opóźnienie danych</td><td>Brak</td><td>Kilka sekund</td></tr><tr><td>Koszt</td><td>1 serwer</td><td>1 serwer + N proxy</td></tr><tr><td>Monitoring SNMP/IPMI</td><td>Bezpośredni z serwera</td><td>Przez proxy (lokalnie)</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Który model wybrać?</h2>



<p class="wp-block-paragraph">To nie jest kwestia „lepszy/gorszy&#8221;. To kwestia kontekstu.</p>



<p class="wp-block-paragraph">Jeśli monitorujesz&nbsp;<strong>swoją</strong>&nbsp;infrastrukturę, w&nbsp;<strong>jednej</strong>&nbsp;lokalizacji, na&nbsp;<strong>jednym</strong>&nbsp;LAN-ie — stawiasz serwer Zabbix i nie komplikujesz sobie życia. Proxy jest zbędne.</p>



<p class="wp-block-paragraph">Jeśli monitorujesz infrastrukturę&nbsp;<strong>klientów</strong>, zarządzasz&nbsp;<strong>wieloma lokalizacjami</strong>, albo potrzebujesz monitoringu&nbsp;<strong>bez VPN-a i bez otwierania portów u klienta</strong>&nbsp;— active proxy to jedyna sensowna droga. Proxy puka do Twojego serwera, wysyła dane, a serwer nigdy nie widzi sieci klienta. Bezpiecznie, skalowalne, firewall-friendly.</p>



<p class="wp-block-paragraph">W praktyce oba modele mogą współistnieć. Serwer Zabbix monitoruje lokalny LAN bezpośrednio, a jednocześnie odbiera dane z proxy rozsianych po lokalizacjach klientów. To nie jest albo-albo — to kwestia dopasowania architektury do potrzeb.</p>



<p class="wp-block-paragraph"></p>
<p>Artykuł <a href="https://zitwziete.org/zabbix-na-lan-vs-zabbix-proxy-dwa-modele-ktore-warto-znac/">Zabbix na LAN vs Zabbix Proxy &#8211; dwa modele, które warto znać</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://zitwziete.org/zabbix-na-lan-vs-zabbix-proxy-dwa-modele-ktore-warto-znac/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>QNAP – uprawnienia folderów zmieniają się same?</title>
		<link>https://zitwziete.org/qnap-i-uprawnienia-zmieniaja-sie-same/</link>
					<comments>https://zitwziete.org/qnap-i-uprawnienia-zmieniaja-sie-same/#respond</comments>
		
		<dc:creator><![CDATA[ZITWziete]]></dc:creator>
		<pubDate>Tue, 24 Mar 2026 21:50:45 +0000</pubDate>
				<category><![CDATA[Sprzęt]]></category>
		<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[moje 0.02 pln]]></category>
		<category><![CDATA[porady]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[qnap]]></category>
		<category><![CDATA[uprawnienia]]></category>
		<guid isPermaLink="false">https://zitwziete.org/?p=1452</guid>

					<description><![CDATA[<p>Ustawiasz uprawnienia na folderach QNAP, wszystko działa, a na drugi dzień znowu masz problem z dostępem? Użytkownicy nie mogą zapisywać plików do folderów, w których wczoraj jeszcze mogli? Klasyczny scenariusz – ustawiasz RW na Folder, wychodzisz, wracasz rano i uprawnienia wróciły do stanu wyjściowego.</p>
<p>Artykuł <a href="https://zitwziete.org/qnap-i-uprawnienia-zmieniaja-sie-same/">QNAP – uprawnienia folderów zmieniają się same?</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Ustawiasz uprawnienia na folderach QNAP, wszystko działa, a na drugi dzień znowu masz problem z dostępem? Użytkownicy nie mogą zapisywać plików do folderów, w których wczoraj jeszcze mogli? Klasyczny scenariusz – ustawiasz RW na Folder, wychodzisz, wracasz rano i uprawnienia wróciły do stanu wyjściowego.</p>



<p class="wp-block-paragraph">Zanim zaczniesz resetować NAS-a, przeinstalowywać firmware albo grzebać w ACL-ach – sprawdź crontab. Bardzo prawdopodobne, że winowajcą jest systemowe zadanie&nbsp;<code>ImR_all</code>, które co noc nadpisuje Twoje uprawnienia.</p>



<h2 class="wp-block-heading">Co to jest ImR_all i dlaczego psuje uprawnienia</h2>



<p class="wp-block-paragraph">W domyślnej konfiguracji QNAP w crontabie znajdziesz wpis:</p>



<pre class="wp-block-code"><code><strong>0 3 * * * /usr/local/sbin/ImR_all -soft /Qmultimedia</strong></code></pre>



<p class="wp-block-paragraph">To zadanie uruchamia się&nbsp;<strong>codziennie o 3:00 w nocy</strong>&nbsp;i wykonuje &#8222;miękki&#8221; reset indeksowania oraz uprawnień na folderze&nbsp;<code>/Qmultimedia</code>&nbsp;(alias do&nbsp;<code>/share/MD0_DATA/Multimedia</code>). Jest to element systemu Multimedia Console, który odpowiada za indeksowanie plików multimedialnych – zdjęć, filmów, muzyki.</p>



<p class="wp-block-paragraph">Problem polega na tym, że&nbsp;<code>ImR_all</code>&nbsp;potrafi&nbsp;<strong>nadpisać uprawnienia</strong>, które ręcznie ustawiłeś na folderach i podfolderach w obrębie Multimedia. Efekt – Twoje niestandardowe ACL-e i ustawienia dostępu wracają do stanu &#8222;domyślnego&#8221; każdej nocy.</p>



<h2 class="wp-block-heading">Objawy problemu</h2>



<p class="wp-block-paragraph">Jeśli widzisz którykolwiek z tych objawów, prawdopodobnie&nbsp;<code>ImR_all</code>&nbsp;jest winowajcą:</p>



<ul class="wp-block-list">
<li>Uprawnienia na folderze Multimedia resetują się po nocy</li>



<li>Użytkownicy tracą dostęp do podfolderów, który dzień wcześniej działał</li>



<li>Zmiana uprawnień w panelu QTS nie &#8222;trzyma się&#8221; dłużej niż kilka godzin</li>



<li>W File Station lub przez SMB nagle pojawia się &#8222;Access Denied&#8221; na folderach, które wcześniej były dostępne</li>



<li>Po ręcznym ustawieniu uprawnień przez SSH (<code>chmod</code>, <code>setfacl</code>) zmiany znikają następnego dnia</li>
</ul>



<h2 class="wp-block-heading">Rozwiązanie – wyłączenie ImR_all w crontabie</h2>



<p class="wp-block-paragraph">Rozwiązanie jest proste – trzeba zakomentować lub usunąć wpis&nbsp;<code>ImR_all</code>&nbsp;z crontaba. Wymaga to dostępu SSH do NAS-a.</p>



<h3 class="wp-block-heading">Krok 1: Włącz SSH na QNAP</h3>



<ol class="wp-block-list">
<li>Zaloguj się do panelu QTS jako administrator</li>



<li>Przejdź do <strong>Panel sterowania → Usługi sieciowe i plików → Telnet/SSH</strong></li>



<li>Zaznacz <strong>Zezwalaj na połączenie SSH</strong></li>



<li>Ustaw port (domyślnie 22, ale rozważ zmianę na niestandardowy, np. 2222, jeśli NAS jest dostępny z internetu)</li>



<li>Kliknij <strong>Zastosuj</strong></li>
</ol>



<h3 class="wp-block-heading">Krok 2: Połącz się z NAS przez SSH</h3>



<p class="wp-block-paragraph">Z komputera z Windows użyj PuTTY lub wbudowanego terminala:</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>ssh admin@ADRES_IP_QNAP</code></pre>



<p class="wp-block-paragraph">Na macOS / Linux po prostu otwórz terminal i wpisz powyższe polecenie. Zaloguj się danymi administratora QNAP.</p>



<h3 class="wp-block-heading">Krok 3: Zrób backup crontaba</h3>



<p class="wp-block-paragraph">Zanim cokolwiek zmienisz – kopia zapasowa:</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>cp /etc/config/crontab /etc/config/crontab.backup</code></pre>



<h3 class="wp-block-heading">Krok 4: Edytuj crontab</h3>



<p class="wp-block-paragraph">Otwórz plik crontaba w edytorze:</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>vi /etc/config/crontab</code></pre>



<p class="wp-block-paragraph">Znajdź linię:</p>



<pre class="wp-block-code"><code>0 3 * * * /usr/local/sbin/ImR_all -soft /Qmultimedia</code></pre>



<p class="wp-block-paragraph">Zakomentuj ją, dodając&nbsp;<code>#</code>&nbsp;na początku linii:</p>



<pre class="wp-block-code"><code>#0 3 * * * /usr/local/sbin/ImR_all -soft /Qmultimedia</code></pre>



<p class="wp-block-paragraph"><strong>Szybka ściągawka vi:</strong></p>



<ul class="wp-block-list">
<li>Naciśnij <code>i</code> żeby wejść w tryb edycji</li>



<li>Dodaj <code>#</code> na początku linii</li>



<li>Naciśnij <code>Esc</code></li>



<li>Wpisz <code>:wq</code> i naciśnij <code>Enter</code> żeby zapisać i wyjść</li>
</ul>



<h3 class="wp-block-heading">Krok 5: Załaduj nowy crontab i zrestartuj cron</h3>



<p class="wp-block-paragraph">To kluczowy krok – samo zapisanie pliku nie wystarczy. QNAP wymaga jawnego załadowania crontaba:</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>crontab /etc/config/crontab &amp;&amp; /etc/init.d/crond.sh restart</code></pre>



<h3 class="wp-block-heading">Krok 6: Zweryfikuj zmianę</h3>



<p class="wp-block-paragraph">Sprawdź, czy Twoja zmiana została zastosowana:</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>crontab -l | grep ImR_all</code></pre>



<p class="wp-block-paragraph">Jeśli wszystko poszło dobrze, powinieneś zobaczyć zakomentowaną linię z&nbsp;<code>#</code>&nbsp;na początku lub brak wyniku (jeśli usunąłeś linię zamiast komentować).</p>



<h2 class="wp-block-heading">Dlaczego zmiana w crontabie wymaga dodatkowego kroku</h2>



<p class="wp-block-paragraph">Na standardowym Linuxie edytujesz crontab poleceniem&nbsp;<code>crontab -e</code>&nbsp;i zmiany od razu działają. Na QNAP jest inaczej – system trzyma &#8222;źródło prawdy&#8221; w pliku&nbsp;<code>/etc/config/crontab</code>&nbsp;i trzeba je jawnie załadować poleceniem&nbsp;<code>crontab /etc/config/crontab</code>.</p>



<p class="wp-block-paragraph">Co więcej –&nbsp;<strong>nie używaj&nbsp;<code>crontab -e</code>&nbsp;na QNAP</strong>. Zmiany wprowadzone tą komendą są tymczasowe i znikną przy następnym restarcie lub aktualizacji systemu, bo QTS nadpisze je zawartością z&nbsp;<code>/etc/config/crontab</code>.</p>



<p class="wp-block-paragraph">Poprawna procedura to zawsze:</p>



<ol class="wp-block-list">
<li>Edytuj <code>/etc/config/crontab</code></li>



<li>Załaduj: <code>crontab /etc/config/crontab</code></li>



<li>Restart crona: <code>/etc/init.d/crond.sh restart</code></li>
</ol>



<h2 class="wp-block-heading">Czy wyłączenie ImR_all jest bezpieczne?</h2>



<p class="wp-block-paragraph">Tak, z jednym zastrzeżeniem.&nbsp;<code>ImR_all</code>&nbsp;odpowiada za odświeżanie indeksu multimediów. Jeśli korzystasz z wbudowanych aplikacji QNAP do przeglądania multimediów (Multimedia Station, Photo Station, Video Station), wyłączenie tego zadania sprawi, że nowo dodane pliki nie będą automatycznie indeksowane w nocy.</p>



<p class="wp-block-paragraph"><strong>Praktycznie nie ma to żadnego znaczenia</strong>, jeśli:</p>



<ul class="wp-block-list">
<li>Używasz Multimedia Console z włączonym automatycznym indeksowaniem (to osobny mechanizm)</li>



<li>Korzystasz z Plex, Jellyfin lub innego zewnętrznego serwera mediów (mają własne indeksowanie)</li>



<li>Nie korzystasz z wbudowanych aplikacji multimedialnych QNAP</li>



<li>Multimedia Console jest wyłączona</li>
</ul>



<p class="wp-block-paragraph">Nawet jeśli korzystasz z natywnych aplikacji QNAP – ręczne indeksowanie jest dostępne z poziomu Multimedia Console (przycisk &#8222;Reindex&#8221;).</p>



<h2 class="wp-block-heading">Dodatkowe porady – naprawianie uprawnień po szkodach</h2>



<p class="wp-block-paragraph">Jeśli&nbsp;<code>ImR_all</code>&nbsp;zdążył już namieszać w Twoich uprawnieniach, oto jak je naprawić.</p>



<h3 class="wp-block-heading">Sprawdzenie aktualnych uprawnień z SSH</h3>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>getfacl /share/MD0_DATA/Multimedia
ls -la /share/MD0_DATA/Multimedia/</code></pre>



<h3 class="wp-block-heading">Reset uprawnień na folderze Multimedia</h3>



<p class="wp-block-paragraph">Jeśli uprawnienia są kompletnie rozwalone, możesz je zresetować:</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code># Usuń wszystkie ACL
setfacl -R --remove-all /share/MD0_DATA/Multimedia/*

# Ustaw właściciela i grupę
chown -R admin:administrators /share/MD0_DATA/Multimedia

# Ustaw uprawnienia
chmod -R 770 /share/MD0_DATA/Multimedia</code></pre>



<p class="wp-block-paragraph">Następnie w panelu QTS przejdź do&nbsp;<strong>Prawa dostępu → Foldery współdzielone → Multimedia → Edytuj uprawnienia</strong>&nbsp;i ponownie ustaw dostęp dla użytkowników/grup. Zaznacz opcję&nbsp;<strong>&#8222;Zastosuj i zastąp wszystkie istniejące uprawnienia&#8221;</strong>.</p>



<h3 class="wp-block-heading">Użycie set_volume_mode</h3>



<p class="wp-block-paragraph">QNAP ma też wbudowane narzędzie do resetowania trybu uprawnień na wolumenie:</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>/sbin/set_volume_mode</code></pre>



<p class="wp-block-paragraph">Uruchom je bez parametrów, żeby zobaczyć dostępne opcje. Pozwala to przełączyć wolumin między trybem uprawnień Linuxowych a Windows ACL.</p>



<h2 class="wp-block-heading">Co jeszcze warto sprawdzić w crontabie</h2>



<p class="wp-block-paragraph">Skoro już jesteś w crontabie, rzuć okiem na inne wpisy, które mogą wpływać na działanie NAS-a. Domyślny crontab QNAP zawiera kilka ciekawych pozycji:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Wpis</th><th>Co robi</th></tr></thead><tbody><tr><td><code>/sbin/vs_refresh</code></td><td>Odświeża konfigurację Video Station</td></tr><tr><td><code>/sbin/clean_reset_pwd</code></td><td>Czyści tymczasowe hasła po resecie</td></tr><tr><td><code>/etc/init.d/nss2_dusg.sh</code></td><td>Przelicza użycie dysku (co 15 min)</td></tr><tr><td><code>/sbin/qfstrim</code></td><td>TRIM na SSD (ważne, nie wyłączaj)</td></tr><tr><td><code>/etc/init.d/idmap.sh dump</code></td><td>Dump mapowania ID (raz w tygodniu)</td></tr><tr><td><code>/sbin/notice_log_tool</code></td><td>Rotacja logów</td></tr><tr><td><code>/etc/init.d/storage_usage.sh</code></td><td>Statystyki użycia pamięci (co 10 min)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Nie wyłączaj tych zadań</strong>&nbsp;bez dobrego powodu – są potrzebne do prawidłowego działania systemu.</p>



<h2 class="wp-block-heading">Podsumowanie</h2>



<p class="wp-block-paragraph">Problem z samoczynnie zmieniającymi się uprawnieniami na QNAP to klasyczny przypadek &#8222;nic nie ruszałem, a samo się zepsuło&#8221;. W rzeczywistości QNAP co noc uruchamia zadanie&nbsp;<code>ImR_all</code>, które resetuje uprawnienia na folderze Multimedia.</p>



<p class="wp-block-paragraph">Rozwiązanie:</p>



<ol class="wp-block-list">
<li>Włącz SSH</li>



<li>Edytuj <code>/etc/config/crontab</code></li>



<li>Zakomentuj linię z <code>ImR_all</code></li>



<li>Załaduj crontab: <code>crontab /etc/config/crontab &amp;&amp; /etc/init.d/crond.sh restart</code></li>



<li>Gotowe – uprawnienia zostaną takie, jakie ustawisz</li>
</ol>
<p>Artykuł <a href="https://zitwziete.org/qnap-i-uprawnienia-zmieniaja-sie-same/">QNAP – uprawnienia folderów zmieniają się same?</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://zitwziete.org/qnap-i-uprawnienia-zmieniaja-sie-same/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Claude Code – 1 milion tokenów kontekstu i tryb głosowy</title>
		<link>https://zitwziete.org/claude-code-1-milion-tokenow-kontekstu-i-tryb-glosowy/</link>
					<comments>https://zitwziete.org/claude-code-1-milion-tokenow-kontekstu-i-tryb-glosowy/#respond</comments>
		
		<dc:creator><![CDATA[ZITWziete]]></dc:creator>
		<pubDate>Sun, 15 Mar 2026 19:15:40 +0000</pubDate>
				<category><![CDATA[AI Howto]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[claude]]></category>
		<category><![CDATA[moje 0.02 pln]]></category>
		<category><![CDATA[porady]]></category>
		<guid isPermaLink="false">https://zitwziete.org/?p=1001</guid>

					<description><![CDATA[<p>Claude Code właśnie dostał dwie funkcje, na które czekali chyba wszyscy użytkownicy: okno kontekstowe rozszerzone do&#160;1 miliona tokenów&#160;oraz natywny&#160;voice mode&#160;– tryb głosowy, w którym mówisz do terminala zamiast pisać. Brzmi jak rewolucja? Sprawdźmy. Problem: amnezja w połowie zadania Jeśli używałeś Claude Code na większym projekcie, znasz ten scenariusz. Ładujesz codebase, odpalasz łańcuch tool calli – [&#8230;]</p>
<p>Artykuł <a href="https://zitwziete.org/claude-code-1-milion-tokenow-kontekstu-i-tryb-glosowy/">Claude Code – 1 milion tokenów kontekstu i tryb głosowy</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Claude Code właśnie dostał dwie funkcje, na które czekali chyba wszyscy użytkownicy: okno kontekstowe rozszerzone do&nbsp;<strong>1 miliona tokenów</strong>&nbsp;oraz natywny&nbsp;<strong>voice mode</strong>&nbsp;– tryb głosowy, w którym mówisz do terminala zamiast pisać. Brzmi jak rewolucja? Sprawdźmy.</p>



<h2 class="wp-block-heading">Problem:  amnezja w połowie zadania</h2>



<p class="wp-block-paragraph">Jeśli używałeś Claude Code na większym projekcie, znasz ten scenariusz. Ładujesz codebase, odpalasz łańcuch tool calli – czytanie plików, analiza, edycja, testy. Claude radzi sobie świetnie. Aż nagle w terminalu pojawia się komunikat:</p>



<pre class="wp-block-code"><code>Claude is compacting the conversation...</code></pre>



<p class="wp-block-paragraph">I od tego momentu zaczyna się jazda. Claude &#8222;zapomina&#8221; decyzje architektoniczne podjęte 20 minut temu. Czyta te same pliki ponownie. Czasami wręcz sprzecza się sam ze sobą – implementacja z kroku 5 nie pasuje do tego, co zrobił w kroku 2, bo krok 2 wyleciał z kontekstu.</p>



<p class="wp-block-paragraph">To był prawdziwy ból dupy przy dłuższych sesjach. Przy oknie 200K tokenów użyteczna przestrzeń to jakieś 150K po odjęciu bufora na kompakcję. Dla małego projektu – ok. Dla repo z backendem, frontendem i testami? Za mało.</p>



<h2 class="wp-block-heading">Rozwiązanie: 1M tokenów kontekstu – bez dopłat</h2>



<p class="wp-block-paragraph">13 marca 2026 Anthropic ogłosił, że okno kontekstowe o wielkości <strong>1 miliona tokenów</strong> jest teraz ogólnie dostępne dla modeli <strong>Opus 4.6</strong> i <strong>Sonnet 4.6</strong>. Bez beta headerów, bez specjalnych flag, bez dopłat za długi kontekst.</p>



<p class="wp-block-paragraph">Najważniejsze fakty:</p>



<ul class="wp-block-list">
<li><strong>Standardowa cena</strong> – za 900K tokenów płacisz dokładnie tyle samo za token co za 9K. Opus 4.6: $5/$25 za milion tokenów (input/output). Sonnet 4.6: $3/$15.</li>



<li><strong>Pełne rate limity</strong> – długie requesty mają taki sam throughput jak krótkie. W becie było inaczej.</li>



<li><strong>600 plików multimedialnych per request</strong> – wcześniej limit wynosił 100 obrazów lub stron PDF. Teraz 6x więcej.</li>



<li><strong>Bez beta headera</strong> – jeśli wcześniej go używałeś, API go po prostu ignoruje. Nie musisz nic zmieniać w kodzie.</li>



<li><strong>Dostępne na Claude Platform, Azure Foundry i Google Cloud Vertex AI.</strong></li>



<li><strong>Claude Code na planach Max, Team i Enterprise</strong> – Opus 4.6 automatycznie dostaje 1M kontekstu. Bez konfiguracji.</li>
</ul>



<h2 class="wp-block-heading">Co to oznacza w praktyce?</h2>



<p class="wp-block-paragraph">Przy 200K tokenów użyteczna przestrzeń to ~150K. Przy 1M masz ~830K tokenów na faktyczną pracę. To wystarczy na tysiące plików źródłowych, pełne trace&#8217;y tool calli i długie sesje debugowania –&nbsp;<strong>bez kompakcji</strong>.</p>



<p class="wp-block-paragraph">Anthropic podaje konkretną liczbę: od wdrożenia 1M kontekstu zanotowano&nbsp;<strong>15% spadek zdarzeń kompakcji</strong>&nbsp;wśród użytkowników Claude Code. To nie benchmark – to pomiar z realnego użycia.</p>



<p class="wp-block-paragraph">Co się zmienia w codziennej pracy:</p>



<ul class="wp-block-list">
<li><strong>Cały codebase w jednej sesji</strong> – nie musisz już wybierać, które pliki załadować. Ładujesz wszystko.</li>



<li><strong>Łańcuchy tool calli bez utraty kontekstu</strong> – Claude przeszukuje logi, bazy danych, kod źródłowy, proponuje fix – i nie zapomina, co znalazł na początku.</li>



<li><strong>Dłuższe sesje bez restartu</strong> – wielogodzinne sesje agentowe, które wcześniej wymagały ręcznego <code>/compact</code>, teraz trzymają się kupy.</li>
</ul>



<p class="wp-block-paragraph">Ciekawy jest też benchmark. Na teście MRCR v2 (Multi-Round Coreference Resolution) w wariancie 1M tokenów Opus 4.6 osiąga&nbsp;<strong>76%</strong>, podczas gdy Sonnet 4.5 – tylko 18,5%. To jakościowa różnica w tym, ile kontekstu model faktycznie potrafi wykorzystać bez &#8222;context rot&#8221; – degradacji jakości przy dużych ilościach danych.</p>



<h2 class="wp-block-heading">Context awareness – Claude wie, ile mu zostało</h2>



<p class="wp-block-paragraph">Modele Opus 4.6 i Sonnet 4.6 mają wbudowaną&nbsp;<strong>świadomość kontekstu</strong>&nbsp;(context awareness). Po każdym tool callu Claude dostaje informację w stylu:</p>



<pre class="wp-block-code"><code>Token usage: 35000/1000000; 965000 remaining</code></pre>



<p class="wp-block-paragraph">Dzięki temu model sam wie, ile miejsca mu zostało i może planować pracę odpowiednio. Nie zgaduje – wie. To jak zegarek na egzaminie zamiast strzelania, ile czasu minęło.</p>



<h2 class="wp-block-heading">Jak włączyć 1M w Claude Code?</h2>



<p class="wp-block-paragraph">Jeśli jesteś na planie&nbsp;<strong>Max, Team lub Enterprise</strong>&nbsp;– nie musisz nic robić. Opus 4.6 automatycznie używa 1M kontekstu.</p>



<p class="wp-block-paragraph">Sprawdzenie aktualnego modelu:</p>



<pre class="wp-block-code"><code>/model</code></pre>



<p class="wp-block-paragraph">Jeśli chcesz wymusić 1M na konkretnym modelu (np. przez alias):</p>



<pre class="wp-block-code"><code>opus&#91;1m]
sonnet&#91;1m]</code></pre>



<p class="wp-block-paragraph">Jeśli z jakiegoś powodu&nbsp;<strong>nie chcesz</strong>&nbsp;1M kontekstu:</p>



<p class="wp-block-paragraph">bash</p>



<pre class="wp-block-code"><code>export CLAUDE_CODE_DISABLE_1M_CONTEXT=1</code></pre>



<p class="wp-block-paragraph">To usuwa warianty 1M z model pickera.</p>



<h2 class="wp-block-heading">Voice mode – koduj głosem (ale po angielsku)</h2>



<p class="wp-block-paragraph">3 marca 2026 Anthropic zaczął roll-out natywnego trybu głosowego w Claude Code. Na razie dostępny dla ~5% użytkowników, ale roll-out rozszerza się z każdym tygodniem.</p>



<h3 class="wp-block-heading">Jak to działa?</h3>



<pre class="wp-block-code"><code>/voice</code></pre>



<p class="wp-block-paragraph">Wpisujesz tę komendę w terminalu. Od teraz:</p>



<ol class="wp-block-list">
<li><strong>Przytrzymaj spację</strong> – mów</li>



<li><strong>Puść spację</strong> – transkrypcja leci do promptu</li>



<li>Claude wykonuje polecenie jak zwykle</li>
</ol>



<p class="wp-block-paragraph">Tryb push-to-talk. Proste. Możesz też miksować – napisać pół prompta na klawiaturze, a resztę powiedzieć głosem. Transkrypcja wchodzi w miejsce kursora.</p>



<h3 class="wp-block-heading">Kiedy to ma sens?</h3>



<ul class="wp-block-list">
<li><strong>Opisywanie bugów</strong> – mówienie &#8222;sprawdź dlaczego ten API call zwraca 500 w produkcji, podejrzewam że middleware autentykacji łapie wyjątek i zwraca pusty obiekt&#8221; jest 3x szybsze niż pisanie tego samego.</li>



<li><strong>Sesje refaktoringu</strong> – mówisz co chcesz, Claude pisze kod. Dwie z czterech faz pracy (myślenie → wyrażenie intencji → pisanie kodu → review) nie wymagają klawiatury.</li>



<li><strong>Przerwy od klawiatury</strong> – po 6 godzinach kodowania ręce potrzebują odpoczynku. Głos pozwala kontynuować bez przerwy w pracy.</li>
</ul>



<h3 class="wp-block-heading">Ograniczenie: tylko angielski</h3>



<p class="wp-block-paragraph">I tu jest haczyk.&nbsp;<strong>Voice mode działa na razie tylko po angielsku.</strong>&nbsp;Silnik STT (speech-to-text) domyślnie transkrybuje na angielski. Jeśli mówisz po polsku, transkrypcja albo się sypie, albo produkuje bezsensowny tekst angielski.</p>



<p class="wp-block-paragraph">Na GitHubie Claude Code jest już otwarty issue (#33170) z prośbą o dodanie konfiguracji języka – ustawienie&nbsp;<code>voiceLanguage</code>&nbsp;w settings.json. Na razie nie istnieje. Społeczność wnioskuje o coś w stylu:</p>



<p class="wp-block-paragraph">json</p>



<pre class="wp-block-code"><code>{
  "voiceEnabled": true,
  "voiceLanguage": &#91;"en", "pl"]
}</code></pre>



<p class="wp-block-paragraph">Ale oficjalnie – silnik pod spodem (prawdopodobnie Whisper) wspiera wiele języków. Problem w tym, że Claude Code po prostu nie daje opcji wyboru języka. Na razie jedyne obejście to zewnętrzne narzędzia do dyktowania (Wispr Flow, Superwhisper, AquaVoice), które transkrybują w dowolnym języku i wklejają tekst do terminala.</p>



<p class="wp-block-paragraph"><strong>Protip:</strong>&nbsp;Nawet po angielsku – precyzyjne nazwy plików, ścieżki i zmienne lepiej wpisywać ręcznie. Voice sprawdza się świetnie do wyrażania intencji (&#8222;refactor the auth middleware to use RBAC&#8221;), kiepsko do precyzyjnych identyfikatorów.</p>



<h2 class="wp-block-heading">Dla kogo to jest?</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Funkcja</th><th>Plan</th><th>Automatycznie?</th></tr></thead><tbody><tr><td>1M kontekst (Claude Code)</td><td>Max, Team, Enterprise</td><td>Tak</td></tr><tr><td>1M kontekst (API)</td><td>Tier 4+ lub custom rate limits</td><td>Tak (GA, bez headera)</td></tr><tr><td>Voice mode</td><td>Wszyscy z Claude Code</td><td>Roll-out (~5% → 100%)</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Podsumowanie</h2>



<p class="wp-block-paragraph">Dwie zmiany, które realnie wpływają na codzienną pracę z Claude Code:</p>



<p class="wp-block-paragraph"><strong>1M tokenów kontekstu</strong>&nbsp;– koniec z kompakcją w połowie zadania, koniec z &#8222;Claude zapomniał co robiliśmy&#8221;. Cały codebase, pełne trace&#8217;y, wielogodzinne sesje – w jednym oknie.</p>



<p class="wp-block-paragraph"><strong>Voice mode</strong>&nbsp;– szybsze wyrażanie intencji, mniej pisania, ale na razie tylko po angielsku. Jeśli pracujesz w angielskim środowisku – game changer. Jeśli chcesz mówić po polsku – poczekaj lub użyj zewnętrznego narzędzia do dyktowania.</p>



<p class="wp-block-paragraph">Czy Claude Code przestanie się gubić? Z 5x większym oknem kontekstowym – znacząco rzadziej. Nie jest to gwarancja (context rot istnieje nawet przy 1M tokenów), ale różnica między 200K a 1M jest jak różnica między kartką A4 a flipchartem. Więcej miejsca = mniej zgubionego kontekstu = lepsza praca.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Źródła</p>



<ul class="wp-block-list">
<li>Ogłoszenie 1M GA: <a href="https://claude.com/blog/1m-context-ga">claude.com/blog/1m-context-ga</a></li>



<li>Dokumentacja context windows: <a href="https://platform.claude.com/docs/en/build-with-claude/context-windows">platform.claude.com/docs/en/build-with-claude/context-windows</a></li>



<li>Claude Code docs – model config: <a href="https://code.claude.com/docs/en/model-config">code.claude.com/docs/en/model-config</a></li>



<li>Issue: voice language config: <a href="https://github.com/anthropics/claude-code/issues/33170">github.com/anthropics/claude-code/issues/33170</a></li>
</ul>



<p class="wp-block-paragraph"></p>
<p>Artykuł <a href="https://zitwziete.org/claude-code-1-milion-tokenow-kontekstu-i-tryb-glosowy/">Claude Code – 1 milion tokenów kontekstu i tryb głosowy</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://zitwziete.org/claude-code-1-milion-tokenow-kontekstu-i-tryb-glosowy/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ntfy – Darmowe powiadomienia push z serwera na telefon</title>
		<link>https://zitwziete.org/ntfy-darmowe-powiadomienia-push-z-serwera-na-telefon/</link>
					<comments>https://zitwziete.org/ntfy-darmowe-powiadomienia-push-z-serwera-na-telefon/#respond</comments>
		
		<dc:creator><![CDATA[ZITWziete]]></dc:creator>
		<pubDate>Sun, 25 Jan 2026 21:18:54 +0000</pubDate>
				<category><![CDATA[Poradniki]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Tutoriale]]></category>
		<category><![CDATA[moje 0.02 pln]]></category>
		<category><![CDATA[porady]]></category>
		<category><![CDATA[powiadomienia]]></category>
		<guid isPermaLink="false">https://zitwziete.org/?p=988</guid>

					<description><![CDATA[<p>Alerty ze serwera lub ze skryptów na smartfon bez żadnych kosztów i konfiguracji. Genialny patent.</p>
<p>Artykuł <a href="https://zitwziete.org/ntfy-darmowe-powiadomienia-push-z-serwera-na-telefon/">ntfy – Darmowe powiadomienia push z serwera na telefon</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Chcesz dostawać alerty z Zabbix prosto na telefon? Masz dość sprawdzania maili z monitoringu?</strong> ntfy.sh to darmowy serwis powiadomień push, który wysyła alerty z serwera Linux bezpośrednio na smartfon – bez rejestracji, bez konfiguracji SMTP, bez opłat za SMS.</p>



<p class="wp-block-paragraph"><strong>Powiadomienia push z serwera na telefon </strong>– zarówno przez integrację z Zabbix, jak i w własnych skryptach bash.</p>



<h2 class="wp-block-heading">Czym jest ntfy i jak działa?</h2>



<p class="wp-block-paragraph">ntfy (czytaj: &#8222;notify&#8221;) to <strong>darmowy serwis powiadomień push</strong> oparty o prosty protokół HTTP. Zamiast konfigurować serwer SMTP czy płacić za bramkę SMS, wysyłasz jedno żądanie curl:</p>



<pre class="wp-block-code"><code>curl -d "Backup zakończony" ntfy.sh/moj-serwer-xyz123</code></pre>



<p class="wp-block-paragraph"><strong>Jedna komenda = powiadomienie push na telefonie.</strong> Bez konta, bez tokena, bez konfiguracji serwera.</p>



<p class="wp-block-paragraph">Bajecznie proste do zastosowania praktycznie we wszytkim. </p>



<h3 class="wp-block-heading">Dlaczego ntfy zamiast powiadomień email czy SMS?</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Metoda</th><th>Opóźnienie</th><th>Koszt</th><th>Konfiguracja</th></tr></thead><tbody><tr><td>Email</td><td>1-15 minut</td><td>Darmowy</td><td>Wymaga SMTP</td></tr><tr><td>SMS (smsapi, twilio)</td><td>Sekundy</td><td>~0.07 PLN/sms</td><td>API + konto</td></tr><tr><td><strong>ntfy</strong></td><td><strong>Sekundy</strong></td><td><strong>Darmowy</strong></td><td><strong>Tylko curl</strong></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Dla administratora serwera Linux czy VPS to game changer – <strong>alerty ze serwera na smartfon</strong> bez żadnych kosztów i konfiguracji.</p>



<h3 class="wp-block-heading"></h3>



<h2 class="wp-block-heading">Konfiguracja aplikacji mobilnej</h2>



<ol class="wp-block-list">
<li>Pobierz aplikację <strong>ntfy</strong>:</li>
</ol>



<ul class="wp-block-list">
<li>Android: <a href="https://play.google.com/store/apps/details?id=io.heckel.ntfy">Google Play</a> lub F-Droid</li>



<li>iOS: <a href="https://apps.apple.com/app/ntfy/id1625396347">App Store</a></li>
</ul>



<ol class="wp-block-list">
<li>Kliknij <strong>+</strong> i wpisz nazwę tematu (np. <code>serwer-prod-x7k9m2</code>)</li>



<li>Gotowe – każdy POST na <code>ntfy.sh/serwer-prod-x7k9m2</code> ląduje na telefonie</li>
</ol>



<p class="wp-block-paragraph"><strong>Ważne:</strong> Używaj losowych nazw tematów! Tematy są publiczne – kto zna nazwę, może subskrybować.</p>



<h2 class="wp-block-heading">Integracja ntfy z Zabbix – powiadomienia push zamiast email</h2>



<p class="wp-block-paragraph">Standardowe <strong>powiadomienia Zabbix przez email</strong> są wolne i często ignorowane. SMS-y kosztują. ntfy daje <strong>natychmiastowe alerty na telefon za darmo</strong>.</p>



<h3 class="wp-block-heading">Krok 1: Skrypt alertów dla Zabbix</h3>



<p class="wp-block-paragraph">Sprawdź katalog alertscripts:</p>



<pre class="wp-block-code"><code>grep AlertScriptsPath /etc/zabbix/zabbix_server.conf
# Domyślnie: /usr/lib/zabbix/alertscripts</code></pre>



<p class="wp-block-paragraph">Utwórz plik <code>/usr/lib/zabbix/alertscripts/ntfy.sh</code>:</p>



<pre class="wp-block-code"><code>#!/bin/bash

# ========== KONFIGURACJA ==========
# Wpisz własną, unikalną nazwę tematu!
NTFY_TOPIC="zabbix-TWOJ-UNIKALNY-STRING"
# ==================================

TO="$1"
SUBJECT="$2"
MESSAGE="$3"

# Mapowanie severity Zabbix na priorytety ntfy
case "$SUBJECT" in
    *Disaster*|*DISASTER*)
        PRIORITY="urgent"
        TAGS="rotating_light,disaster"
        ;;
    *High*|*HIGH*)
        PRIORITY="high"
        TAGS="warning,high"
        ;;
    *Average*|*AVERAGE*)
        PRIORITY="default"
        TAGS="orange_circle,average"
        ;;
    *Warning*|*WARNING*)
        PRIORITY="low"
        TAGS="yellow_circle,warning"
        ;;
    *OK*|*Resolved*)
        PRIORITY="low"
        TAGS="white_check_mark,resolved"
        ;;
    *)
        PRIORITY="default"
        TAGS="bell"
        ;;
esac

# Wysłanie powiadomienia push
curl -s \
    -H "Title: ${SUBJECT}" \
    -H "Priority: ${PRIORITY}" \
    -H "Tags: ${TAGS}" \
    -d "${MESSAGE}" \
    "https://ntfy.sh/${NTFY_TOPIC}"

exit 0</code></pre>



<p class="wp-block-paragraph">Nadaj uprawnienia:</p>



<pre class="wp-block-code"><code>chmod +x /usr/lib/zabbix/alertscripts/ntfy.sh
chown zabbix:zabbix /usr/lib/zabbix/alertscripts/ntfy.sh</code></pre>



<p class="wp-block-paragraph">Test (jako user zabbix):</p>



<pre class="wp-block-code"><code>sudo -u zabbix /usr/lib/zabbix/alertscripts/ntfy.sh "" "&#91;HIGH] Test alert" "Testowe powiadomienie z Zabbix"</code></pre>



<h3 class="wp-block-heading">Krok 2: Media Type w Zabbix</h3>



<p class="wp-block-paragraph"><strong>Alerts → Media types → Create media type</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Parametr</th><th>Wartość</th></tr></thead><tbody><tr><td>Name</td><td><code>ntfy</code></td></tr><tr><td>Type</td><td><code>Script</code></td></tr><tr><td>Script name</td><td><code>ntfy.sh</code></td></tr><tr><td>Script parameters</td><td><code>{ALERT.SENDTO}</code></td></tr><tr><td></td><td><code>{ALERT.SUBJECT}</code></td></tr><tr><td></td><td><code>{ALERT.MESSAGE}</code></td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Krok 3: Trigger Action</h3>



<p class="wp-block-paragraph"><strong>Alerts → Actions → Trigger actions → Create action</strong></p>



<p class="wp-block-paragraph"><strong>Zakładka Action:</strong></p>



<ul class="wp-block-list">
<li>Name: <code>Powiadomienia push ntfy</code></li>



<li>Conditions: <code>Trigger severity >= Warning</code></li>
</ul>



<p class="wp-block-paragraph"><strong>Zakładka Operations:</strong></p>



<p class="wp-block-paragraph">Default subject:</p>



<pre class="wp-block-code"><code>&#91;{TRIGGER.SEVERITY}] {HOST.NAME}: {TRIGGER.NAME}</code></pre>



<p class="wp-block-paragraph">Default message:</p>



<pre class="wp-block-code"><code>Host: {HOST.NAME}
Problem: {TRIGGER.NAME}
Severity: {TRIGGER.SEVERITY}
Czas: {EVENT.DATE} {EVENT.TIME}</code></pre>



<p class="wp-block-paragraph">W sekcji Operations → Add:</p>



<ul class="wp-block-list">
<li>Send to users: wybierz użytkowników</li>



<li>Send only to: <code>ntfy</code></li>
</ul>



<p class="wp-block-paragraph"><strong>Zakładka Recovery operations</strong> – analogicznie dla powiadomień o rozwiązaniu problemu.</p>



<h3 class="wp-block-heading">Krok 4: Media dla użytkownika</h3>



<p class="wp-block-paragraph"><strong>Users → [Twój user] → Media → Add</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Pole</th><th>Wartość</th></tr></thead><tbody><tr><td>Type</td><td><code>ntfy</code></td></tr><tr><td>Send to</td><td><code>default</code></td></tr><tr><td>Enabled</td><td>✓</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Gotowe!</strong> Zabbix wykrywa problem → <strong>push notification leci na telefon</strong>.</p>



<h2 class="wp-block-heading">Powiadomienia push w skryptach Bash</h2>



<p class="wp-block-paragraph">ntfy idealnie nadaje się do <strong>alertów ze skryptów</strong> – backup, monitoring dysku, cronjob, deployment.</p>



<h3 class="wp-block-heading">Alert po zakończeniu backupu</h3>



<pre class="wp-block-code"><code>#!/bin/bash

NTFY_TOPIC="backup-serwer-abc123"

notify() {
    curl -s \
        -H "Title: $1" \
        -H "Priority: $2" \
        -H "Tags: $3" \
        -d "$4" \
        "https://ntfy.sh/${NTFY_TOPIC}"
}

notify "Backup started" "low" "arrow_forward" "Rozpoczynam backup na $(hostname)"

if tar -czf /backup/data-$(date +%Y%m%d).tar.gz /data 2&gt;/tmp/backup.err; then
    SIZE=$(ls -lh /backup/data-$(date +%Y%m%d).tar.gz | awk '{print $5}')
    notify "&#x2705; Backup OK" "default" "white_check_mark" "Rozmiar: ${SIZE}"
else
    notify "&#x274c; Backup FAILED" "urgent" "x" "Błąd: $(cat /tmp/backup.err)"
    exit 1
fi</code></pre>



<h3 class="wp-block-heading">Monitoring miejsca na dysku</h3>



<p class="wp-block-paragraph"><strong>Alert gdy dysk się zapełnia</strong> – klasyczny przypadek użycia dla administratora VPS:</p>



<pre class="wp-block-code"><code>#!/bin/bash
# Cron: */30 * * * * /usr/local/bin/disk-check.sh

NTFY_TOPIC="monitoring-xyz789"
THRESHOLD=85

df -h | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{print $5 " " $6}' | while read output; do
    usage=$(echo $output | awk '{print $1}' | sed 's/%//')
    partition=$(echo $output | awk '{print $2}')

    if &#91; $usage -ge $THRESHOLD ]; then
        curl -s \
            -H "Title: &#x26a0; Brak miejsca na dysku" \
            -H "Priority: high" \
            -H "Tags: warning,disk" \
            -d "Partycja $partition zapełniona w ${usage}% na $(hostname)" \
            "https://ntfy.sh/${NTFY_TOPIC}"
    fi
done</code></pre>



<h3 class="wp-block-heading">Alert o logowaniu SSH</h3>



<p class="wp-block-paragraph"><strong>Powiadomienie push gdy ktoś loguje się na serwer</strong> – przydatne do monitorowania bezpieczeństwa:</p>



<p class="wp-block-paragraph">Utwórz <code>/usr/local/bin/ssh-notify.sh</code>:</p>



<pre class="wp-block-code"><code>#!/bin/bash

&#91; "$PAM_TYPE" != "open_session" ] &amp;&amp; exit 0

curl -s \
    -H "Title: &#x1f510; SSH: ${PAM_USER}@$(hostname)" \
    -H "Priority: high" \
    -H "Tags: lock,ssh" \
    -d "User: ${PAM_USER}
Z adresu: ${PAM_RHOST}
Czas: $(date '+%Y-%m-%d %H:%M:%S')" \
    "https://ntfy.sh/ssh-TWOJ-TOPIC"

exit 0</code></pre>



<pre class="wp-block-code"><code>chmod +x /usr/local/bin/ssh-notify.sh</code></pre>



<p class="wp-block-paragraph">Dodaj na końcu <code>/etc/pam.d/sshd</code>:</p>



<pre class="wp-block-code"><code>session optional pam_exec.so /usr/local/bin/ssh-notify.sh</code></pre>



<h3 class="wp-block-heading">Uniwersalna funkcja do skryptów</h3>



<p class="wp-block-paragraph">Dodaj do <code>~/.bashrc</code> lub <code>/etc/profile.d/ntfy.sh</code>:</p>



<pre class="wp-block-code"><code>export NTFY_TOPIC="moj-serwer-default"

ntfy() {
    local msg="$1"
    local title="${2:-Alert}"
    local priority="${3:-default}"

    curl -s \
        -H "Title: ${title}" \
        -H "Priority: ${priority}" \
        -d "${msg}" \
        "https://ntfy.sh/${NTFY_TOPIC}"
}

ntfy-ok()    { ntfy "$1" "&#x2705; ${2:-OK}" "default"; }
ntfy-warn()  { ntfy "$1" "&#x26a0; ${2:-Warning}" "high"; }
ntfy-error() { ntfy "$1" "&#x274c; ${2:-Error}" "urgent"; }</code></pre>



<p class="wp-block-paragraph">Użycie:</p>



<pre class="wp-block-code"><code>ntfy "Zadanie zakończone" "Mój skrypt"
ntfy-ok "Deployment finished"
ntfy-error "Baza danych nie odpowiada" "DB Alert"</code></pre>



<h2 class="wp-block-heading">Priorytety powiadomień</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Priorytet</th><th>Header</th><th>Efekt na telefonie</th></tr></thead><tbody><tr><td>Minimalny</td><td><code>min</code></td><td>Ciche, bez wibracji</td></tr><tr><td>Niski</td><td><code>low</code></td><td>Bez dźwięku</td></tr><tr><td>Normalny</td><td><code>default</code></td><td>Standardowe powiadomienie</td></tr><tr><td>Wysoki</td><td><code>high</code></td><td>Dźwięk + wysoki priorytet</td></tr><tr><td>Pilny</td><td><code>urgent</code></td><td><strong>Przebija tryb &#8222;nie przeszkadzać&#8221;</strong></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Dla alertów Zabbix z severity Disaster używaj <code>urgent</code> – telefon zadzwoni nawet w nocy.</p>



<h2 class="wp-block-heading">Tagi i emoji</h2>



<p class="wp-block-paragraph">Tagi zamieniają się na emoji w powiadomieniu:</p>



<pre class="wp-block-code"><code>curl -H "Tags: warning,server,fire" -d "CPU 98%!" ntfy.sh/moj-topic</code></pre>



<p class="wp-block-paragraph">Przydatne tagi: <code>warning</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" />, <code>white_check_mark</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" />, <code>x</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" />, <code>rotating_light</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6a8.png" alt="🚨" class="wp-smiley" style="height: 1em; max-height: 1em;" />, <code>fire</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f525.png" alt="🔥" class="wp-smiley" style="height: 1em; max-height: 1em;" />, <code>computer</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4bb.png" alt="💻" class="wp-smiley" style="height: 1em; max-height: 1em;" />, <code>lock</code> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f512.png" alt="🔒" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<h2 class="wp-block-heading">Akcja po kliknięciu</h2>



<p class="wp-block-paragraph">Link otwierany po tapnięciu w powiadomienie:</p>



<pre class="wp-block-code"><code>curl \
    -H "Click: https://zabbix.firma.pl/tr_events.php?eventid=${EVENT_ID}" \
    -H "Title: Problem na serwerze" \
    -d "Kliknij aby otworzyć w Zabbix" \
    ntfy.sh/zabbix-alerts</code></pre>



<h2 class="wp-block-heading">Limity publicznego serwera ntfy.sh</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Parametr</th><th>Limit</th></tr></thead><tbody><tr><td>Wiadomości dziennie</td><td>250 per IP</td></tr><tr><td>Rozmiar załącznika</td><td>15 MB</td></tr><tr><td>Retencja</td><td>12 godzin</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Dla typowego <strong>monitoringu serwera VPS</strong> to więcej niż wystarczy.</p>



<h2 class="wp-block-heading">Podsumowanie</h2>



<p class="wp-block-paragraph">ntfy.sh to najprostszy sposób na <strong>powiadomienia push z serwera Linux na telefon</strong>:</p>



<ul class="wp-block-list">
<li><strong>Zero konfiguracji</strong> – tylko curl</li>



<li><strong>Natychmiastowe alerty</strong> – push w sekundę</li>



<li><strong>Integracja z Zabbix</strong> – 10 minut i działa</li>



<li><strong>Działa w skryptach bash</strong> – jedna linijka kodu</li>



<li><strong>Darmowy</strong> – bez rejestracji, bez limitu który boli</li>



<li>W dokumentacji znajdziecie wszysto. jak tego użyć <strong>od Basha aż do Powershell</strong></li>
</ul>



<p class="wp-block-paragraph">Koniec sprawdzania maili. Ustaw ntfy, telefon Cię powiadomi.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><strong>Linki:</strong></p>



<ul class="wp-block-list">
<li>Strona: <a href="https://ntfy.sh">ntfy.sh</a></li>



<li>Dokumentacja: <a href="https://docs.ntfy.sh">docs.ntfy.sh</a></li>



<li>GitHub: <a href="https://github.com/binwiederhier/ntfy">github.com/binwiederhier/ntfy</a></li>
</ul>



<p class="wp-block-paragraph"></p>
<p>Artykuł <a href="https://zitwziete.org/ntfy-darmowe-powiadomienia-push-z-serwera-na-telefon/">ntfy – Darmowe powiadomienia push z serwera na telefon</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://zitwziete.org/ntfy-darmowe-powiadomienia-push-z-serwera-na-telefon/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Magazyn wiadomości osiągnął maksymalny rozmiar Outlook 365</title>
		<link>https://zitwziete.org/magazyn-wiadomosci-osiagnal-maksymalny-rozmiar-outlook-365/</link>
					<comments>https://zitwziete.org/magazyn-wiadomosci-osiagnal-maksymalny-rozmiar-outlook-365/#respond</comments>
		
		<dc:creator><![CDATA[ZITWziete]]></dc:creator>
		<pubDate>Thu, 15 Jan 2026 21:25:17 +0000</pubDate>
				<category><![CDATA[Fixit]]></category>
		<category><![CDATA[Komputery]]></category>
		<category><![CDATA[moje 0.02 pln]]></category>
		<category><![CDATA[outlook]]></category>
		<category><![CDATA[porady]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[windows11]]></category>
		<guid isPermaLink="false">https://zitwziete.org/?p=978</guid>

					<description><![CDATA[<p>Rok 2026,  chmury, AI, Azure ... i Microsoft który nie potrafi zrobić porządku z outlookiem. Problem który thunderbirdy rozwiązały lata teamu dalej trawi outlooka ... problem rozmiaru pliku z danymi ... </p>
<p>Artykuł <a href="https://zitwziete.org/magazyn-wiadomosci-osiagnal-maksymalny-rozmiar-outlook-365/">Magazyn wiadomości osiągnął maksymalny rozmiar Outlook 365</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Rok 2026,  chmury, AI, Azure &#8230; i Microsoft który nie potrafi zrobić porządku z outlookiem. Problem który thunderbirdy rozwiązały lata teamu dalej trawi outlooka &#8230; problem rozmiaru pliku z danymi &#8230; </p>



<p class="wp-block-paragraph">Dostajemy komunikat iż &#8222;Magazyn wiadomości osiągnął maksymalny rozmiar Outlook 365&#8221;. i nie można nic zrobić, nic nie da sie usunąć ani nic, czyli kolejny odcinek serialu pod nazwą outlook problem . </p>



<p class="wp-block-paragraph">Teraz tak : </p>



<p class="wp-block-paragraph"><strong>Plik PST (Personal Storage Table)</strong>&nbsp;to lokalny plik przechowujacy kopie wiadomosci e-mail, kalendarza, kontaktow i innych elementow Outlooka. Uzywany jest glownie w konfiguracjach POP3 oraz do archiwizacji.</p>



<p class="wp-block-paragraph"><strong>Plik OST (Offline Storage Table)</strong>&nbsp;to lokalny plik cache dla kont Exchange i Microsoft 365. Pozwala na prace offline z pelnym dostepem do poczty, ktora synchronizuje sie z serwerem po polaczeniu z siecia.</p>



<p class="wp-block-paragraph">No i w nowym outlooku mają one ograniczenie do 50 GB . Tak &#8230;50GB nie 500 tylko 50 . Co nie jest mega limitem dla aktywnie działającego użytkownika&#8230; </p>



<p class="wp-block-paragraph">Mozna różne rzeczy tutaj robić ( usuną plik pobrać, pobrać na nowo rzeczy z imap, można zkompaktować folder) ale problem wróci&#8230;</p>



<p class="wp-block-paragraph">Najlepszym rozwiązaniem na szybko jest zmiana w rejestrze która zmienia ten limit .</p>



<p class="wp-block-paragraph">Uruchamiamy regedit </p>



<p class="wp-block-paragraph">Wchodzimy na <strong>HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\PST</strong></p>



<p class="wp-block-paragraph">I dodajemy 2 wartości DWORD : </p>



<ul class="wp-block-list">
<li>MaxLargeFileSize o wartosci 4294967295</li>



<li>WarnLargeFileSize o wartosci 4090445042</li>
</ul>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">&#8230;i w teorii mamy brz ograniczen (coś pod 4 PB) .</p>



<p class="wp-block-paragraph">Należy pamiętać o tym że im większy plik tym większa szansa na przypadkową awarie pliku . </p>



<p class="wp-block-paragraph">Zatem <strong>koniecznie po uruchomieniu</strong>, wyczyśmy śmieci , spamy  i skonfigurujmy konecznie archiwizacje. </p>



<p class="wp-block-paragraph"></p>
<p>Artykuł <a href="https://zitwziete.org/magazyn-wiadomosci-osiagnal-maksymalny-rozmiar-outlook-365/">Magazyn wiadomości osiągnął maksymalny rozmiar Outlook 365</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://zitwziete.org/magazyn-wiadomosci-osiagnal-maksymalny-rozmiar-outlook-365/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>QNAP WIN11 i Brak Dostępu</title>
		<link>https://zitwziete.org/qnap-win11-i-brak-dostepu/</link>
					<comments>https://zitwziete.org/qnap-win11-i-brak-dostepu/#respond</comments>
		
		<dc:creator><![CDATA[ZITWziete]]></dc:creator>
		<pubDate>Tue, 09 Dec 2025 13:46:46 +0000</pubDate>
				<category><![CDATA[Fixit]]></category>
		<category><![CDATA[Poradniki]]></category>
		<category><![CDATA[Sieci]]></category>
		<category><![CDATA[nas]]></category>
		<category><![CDATA[porady]]></category>
		<category><![CDATA[qnap]]></category>
		<category><![CDATA[win11]]></category>
		<guid isPermaLink="false">https://zitwziete.org/?p=968</guid>

					<description><![CDATA[<p>Kupiłeś sobie NAS-a. Podłączasz , konfigurujesz sobie folder udostępniony, taki "na szybko", żeby wrzucać tam filmy czy zdjęcia z wakacji. Ustawiasz dostęp dla gościa i .... nie gada...</p>
<p>Artykuł <a href="https://zitwziete.org/qnap-win11-i-brak-dostepu/">QNAP WIN11 i Brak Dostępu</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>Windows 11 strzelił focha na Twojego QNAP-a? Naprawiamy &#8222;Brak dostępu&#8221; do folderów bez hasła</strong></p>



<p class="wp-block-paragraph">Kupiłeś sobie NAS-a. Może to QNAP, może Synology, a może coś, co sam poskładałeś w piwnicy. Podłączasz kable, diody migają wesoło, czujesz się jak haker w &#8222;Matrixie&#8221;. Konfigurujesz sobie folder udostępniony, taki &#8222;na szybko&#8221;, żeby wrzucać tam filmy czy zdjęcia z wakacji. Ustawiasz dostęp dla gościa (Guest), bo po co Ci hasło w domu? Przecież pies Ci danych nie wykradnie.</p>



<p class="wp-block-paragraph">Siadasz do komputera z Windows 11, wchodzisz w otoczenie sieciowe, klikasz w ikonkę serwera i&#8230; ściana.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong><em>&#8222;System Windows nie może uzyskać dostępu do ..&#8221;</em></strong></p>



<p class="wp-block-paragraph">albo </p>



<p class="wp-block-paragraph"><strong><em>&#8222;Nie masz dostępu do tego folderu udostępnionego, ponieważ zasady zabezpieczeń organizacji uniemożliwiają  dostęp nieuwierzytelnionym gościom&#8230;. &#8221; </em></strong></p>
</blockquote>



<p class="wp-block-paragraph">Albo inny, równie pomocny komunikat o braku uprawnień, kontakcie z administratorem (czyli z Tobą, co jest podwójnie irytujące) i ogólnym smutku.</p>



<p class="wp-block-paragraph">Zanim zaczniesz restartować router, sprawdzać kable albo dzwonić na infolinię dostawcy internetu – stop. To nie awaria. To &#8222;troska&#8221; Microsoftu.</p>



<h2 class="wp-block-heading">Dlaczego Windows 11 nie lubi Twojego QNAP-a?</h2>



<p class="wp-block-paragraph">Microsoft w nowszych wersjach Windowsa (10 i 11) stwierdził, że wie lepiej, co jest dla nas bezpieczne. Uznali, że logowanie się do zasobów sieciowych bez hasła (czyli tzw.&nbsp;<strong>Insecure Guest Logons</strong>) to zło wcielone.</p>



<p class="wp-block-paragraph"> </p>



<h2 class="wp-block-heading">Co z tym zrobić ? </h2>



<p class="wp-block-paragraph">Można by grzebać w <em>Edytorze Lokalnych Zasad Grupy</em> (gpedit.msc), przeklikiwać się przez trzysta okienek i szukać odpowiedniej opcji ukrytej gdzieś między ustawieniami drukarki a tapetą pulpitu. Ale my szanujemy swój czas.</p>



<p class="wp-block-paragraph">Zrobimy to metodą &#8222;na hakera&#8221;, ale spokojnie – to tylko dwa polecenia.</p>



<p class="wp-block-paragraph">Będziemy potrzebować&nbsp;<strong>PowerShella</strong>. To to niebieskie okienko z literkami, którego zwykle się boisz. Nie bój się.</p>



<h3 class="wp-block-heading">Krok po kroku:</h3>



<ol start="1" class="wp-block-list">
<li>Kliknij prawym przyciskiem myszy na <strong>Menu Start</strong> (to logo Windowsa na pasku).</li>



<li>Wybierz <strong>Terminal (Administrator)</strong> lub <strong>PowerShell (Administrator)</strong>. Ważne, żeby było to &#8222;Administrator&#8221;, inaczej system Cię wyśmieje.</li>



<li>Pojawi się niebieskie (lub czarne) okno. Teraz zaczyna się magia.</li>
</ol>



<h3 class="wp-block-heading">Rozwiązanie problemu</h3>



<p class="wp-block-paragraph">Wpisz (lub skopiuj i wklej, bo po co się męczyć) poniższą komendę. </p>



<pre class="wp-block-code"><code><strong>Set-SmbClientConfiguration -EnableInsecureGuestLogons $true -Force</strong></code></pre>



<pre class="wp-block-code"><code>Kliknij <strong>Enter</strong>. Jeśli nic nie wybuchło i nie pojawił się czerwony tekst, to znaczy, że zadziałało.</code></pre>



<h3 class="wp-block-heading">Sprawdzamy, czy weszło</h3>



<p class="wp-block-paragraph">Dla pewności, że system zrozumiał aluzję, możesz wpisać drugą komendę, która pokaże aktualny stan tej blokady:</p>



<pre class="wp-block-code"><code><strong>Get-SmbClientConfiguration | Select-Object EnableInsecureGuestLogons</strong></code></pre>



<pre class="wp-block-code"><code>Jeśli w odpowiedzi zobaczysz: <code>EnableInsecureGuestLogons : True</code></code></pre>



<p class="wp-block-paragraph">&#8230;to jesteś w domu!</p>



<p class="wp-block-paragraph">Pamiętaj tylko, że Microsoft trochę racji ma – włączasz to na własną odpowiedzialność. W sieci domowej to luz, ale z laptopem w kawiarni na publicznym Wi-Fi? Cóż, tam raczej i tak nie łączysz się z QNAP-em sąsiada.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>
<p>Artykuł <a href="https://zitwziete.org/qnap-win11-i-brak-dostepu/">QNAP WIN11 i Brak Dostępu</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://zitwziete.org/qnap-win11-i-brak-dostepu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Programowanie z Claude Code:  Poradnik na start  krok po kroku</title>
		<link>https://zitwziete.org/programowanie-z-claude-code-poradnik-na-start-krok-po-kroku/</link>
					<comments>https://zitwziete.org/programowanie-z-claude-code-poradnik-na-start-krok-po-kroku/#respond</comments>
		
		<dc:creator><![CDATA[ZITWziete]]></dc:creator>
		<pubDate>Thu, 16 Oct 2025 19:56:45 +0000</pubDate>
				<category><![CDATA[AI Howto]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[porady]]></category>
		<guid isPermaLink="false">https://zitwziete.org/?p=942</guid>

					<description><![CDATA[<p>Nie, nie musisz kończyć pięcioletnich studiów informatycznych. Chodzi o to, by nauczyć się, jak rozmawiać z AI, aby pisało dla Ciebie kod</p>
<p>Artykuł <a href="https://zitwziete.org/programowanie-z-claude-code-poradnik-na-start-krok-po-kroku/">Programowanie z Claude Code:  Poradnik na start  krok po kroku</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Dzisiaj zajmiemy się tematem, który rewolucjonizuje świat tworzenia oprogramowania, a jednocześnie jest dostępny dla każdego – nawet jeśli dopiero zaczynasz swoją przygodę z kodem. Mowa o&nbsp;<strong>programowaniu z pomocą Claude AI</strong>.</p>



<p class="wp-block-paragraph">Nie, nie musisz kończyć pięcioletnich studiów informatycznych. Chodzi o to, by nauczyć się, jak rozmawiać z AI, aby pisało dla Ciebie kod. Pomyśl o Claude jak o niezwykle doświadczonym programiście, który siedzi obok Ciebie i jest gotów pomóc. Musisz tylko wiedzieć, jak go prosić. Zaczynajmy!</p>



<h3 class="wp-block-heading">Krok 1: Myśl jak szef projektu – dziel zadania na mniejsze części</h3>



<p class="wp-block-paragraph">Wyobraź sobie, że zlecasz komuś napisanie „programu do zarządzania firmą”. To gigantyczne zadanie! Efektem będzie chaos i mnóstwo poprawek. Z Claude jest identycznie. Zamiast jednego ogólnikowego polecenia,&nbsp;<strong>rozbij swoje zadanie programistyczne na logiczne, małe etapy</strong>.</p>



<p class="wp-block-paragraph"><strong>Przykład złego polecenia:</strong></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">„Napisz mi w Pythonie skrypt, który pobiera dane o pogodzie z internetu, analizuje je i wysyła mi powiadomienie na maila, jeśli będzie padać.”</p>
</blockquote>



<p class="wp-block-paragraph">To zbyt wiele na raz. Claude może pominąć ważne szczegóły, a kod może być trudny do zrozumienia i modyfikacji.</p>



<p class="wp-block-paragraph"><strong>Przykład dobrego podejścia (krok po kroku):</strong></p>



<ol start="1" class="wp-block-list">
<li><strong>Pierwsze polecenie:</strong> „Potrzebuję napisać skrypt w Pythonie. Zacznijmy od podstaw. Pomóż mi napisać funkcję, która połączy się z darmowym API pogodowym (np. Open-Meteo) i pobierze pogodę dla Warszawy.”</li>



<li><strong>Drugie polecenie:</strong> „Super, działa. Teraz zmodyfikujmy kod tak, aby z pobranych danych wyciągnąć tylko informację o przewidywanych opadach deszczu na jutro.”</li>



<li><strong>Trzecie polecenie:</strong> „OK. Teraz napisz osobną funkcję, która będzie sprawdzać, czy wartość opadów jest większa niż 0. Jeśli tak, funkcja powinna zwrócić <code>True</code>, a jeśli nie – <code>False</code>.”</li>



<li><strong>Czwarte polecenie:</strong> „Świetnie. Na koniec połączmy to wszystko i dodajmy wysyłkę prostego maila z informacją <code>Będzie padać!</code> jeśli poprzednia funkcja zwróci <code>True</code>.”</li>
</ol>



<p class="wp-block-paragraph"><strong>Dlaczego to jest lepsze?</strong>&nbsp;Masz pełną kontrolę nad każdym fragmentem kodu. Testujesz go krok po kroku. Jeśli coś nie działa, od razu wiesz, który element zawiódł. To profesjonalne podejście do tworzenia oprogramowania, które z pomocą AI staje się dziecinnie proste.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Krok 2: Dobierz odpowiednie narzędzie – wybierz właściwy model Claude</h3>



<p class="wp-block-paragraph">Claude to tak naprawdę rodzina modeli AI, każdy o innej specjalizacji. To jak skrzynka z narzędziami programisty – masz w niej precyzyjny śrubokręt i potężny młot. Musisz wiedzieć, kiedy którego użyć.</p>



<ul class="wp-block-list">
<li><strong>Claude Opus:</strong> To Twój „główny architekt”. Najpotężniejszy i najbardziej inteligentny model. Używaj go do:
<ul class="wp-block-list">
<li>Projektowania skomplikowanej logiki aplikacji.</li>



<li>Debugowania bardzo złożonych, wielowątkowych błędów.</li>



<li>Refaktoryzacji, czyli przepisywania starego, nieczytelnego kodu na nowoczesny i wydajny.</li>



<li>Tłumaczenia całych projektów z jednego języka programowania na inny.</li>
</ul>
</li>



<li><strong>Claude Sonnet:</strong> To Twój „solidny deweloper”. Idealny balans między inteligencją a szybkością. Najlepszy do codziennej pracy:
<ul class="wp-block-list">
<li>Pisania pojedynczych funkcji i krótkich skryptów.</li>



<li>Generowania testów jednostkowych do Twojego kodu.</li>



<li>Pisania dokumentacji i komentarzy (tzw. <code>docstrings</code>).</li>



<li>Tłumaczenia i wyjaśniania fragmentów kodu, których nie rozumiesz.</li>
</ul>
</li>



<li><strong>Claude Haiku:</strong> To Twój „błyskawiczny asystent”. Najszybszy model, idealny do małych, natychmiastowych zadań:
<ul class="wp-block-list">
<li>Szybkiego uzupełniania kodu (podobnie jak podpowiedzi w edytorze).</li>



<li>Sprawdzania poprawności składni.</li>



<li>Formatowania kodu, aby był bardziej czytelny.</li>



<li>Generowania prostych poleceń, np. dla terminala Linuxa.</li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph">Dobierając model do zadania, piszesz kod szybciej, taniej (w wersjach płatnych) i z lepszym rezultatem.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Krok 3: Unikaj bałaganu w „pamięci” AI – zarządzaj kontekstem</h3>



<p class="wp-block-paragraph">Każda rozmowa z Claude odbywa się w tzw.&nbsp;<strong>oknie kontekstowym</strong>. To jego pamięć operacyjna (RAM). Im dłuższa rozmowa i im więcej kodu wklejasz, tym bardziej ta pamięć się zapełnia. Po pewnym czasie Claude może zacząć „zapominać” definicje funkcji, które stworzyliście na samym początku. To prowadzi do błędów i frustracji.</p>



<p class="wp-block-paragraph">Dlatego w programowaniu z AI kluczowe jest utrzymywanie porządku.</p>



<p class="wp-block-paragraph"><strong>Jak „czyścić” lub „kompaktować” kontekst w kodowaniu?</strong></p>



<ol start="1" class="wp-block-list">
<li><strong>Zaczynaj nowy czat dla nowego zadania:</strong> Jeśli skończyłeś pracę nad jednym skryptem i zaczynasz drugi, po prostu otwórz nowe okno rozmowy. To najprostszy reset.</li>



<li><strong>Regularnie wklejaj cały kod:</strong> Gdy Twój skrypt ma już kilkadziesiąt lub kilkaset linii, a chcesz dodać nową funkcję, zrób tak:<ul><li><strong>Przykład polecenia:</strong> „OK, nasza współpraca idzie świetnie. Oto kompletna, aktualna wersja naszego skryptu w Pythonie:Python<code># (wklej tutaj cały, działający kod) </code>Teraz, bazując na powyższym kodzie, dodajmy nową funkcję, która będzie zapisywać wyniki do pliku <code>results.txt</code>.”</li></ul>Dzięki temu Claude ma przed oczami pełny, aktualny obraz projektu i nie będzie korzystał z przestarzałych fragmentów z początku rozmowy.</li>
</ol>



<p class="wp-block-paragraph"><strong>Dlaczego to jest tak ważne?</strong>&nbsp;W programowaniu każdy szczegół ma znaczenie – nazwa zmiennej, kolejność operacji. Utrzymując czysty kontekst, zapewniasz, że AI pracuje na właściwych danych, co drastycznie zmniejsza liczbę błędów.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Podsumowanie – Twoje 3 zasady kodowania z AI</h3>



<p class="wp-block-paragraph">Claude to potężny partner do kodowania, który może przyspieszyć Twoją pracę dziesięciokrotnie. Wystarczy, że będziesz pamiętać o tych zasadach:</p>



<ol start="1" class="wp-block-list">
<li><strong>Dziel zadania:</strong> Rozbijaj problemy programistyczne na małe, logiczne funkcje i moduły.</li>



<li><strong>Dobieraj model:</strong> Używaj Opusa do architektury, Sonneta do codziennego kodowania, a Haiku do szybkich poprawek.</li>



<li><strong>Odświeżaj kontekst:</strong> Regularnie wklejaj AI pełny, aktualny kod, nad którym pracujecie, aby uniknąć nieporozumień.</li>
</ol>



<p class="wp-block-paragraph">Traktuj Claude nie jako magiczną skrzynkę, ale jako narzędzie – Twojego osobistego co-pilota w świecie kodu. Powodzenia!</p>
<p>Artykuł <a href="https://zitwziete.org/programowanie-z-claude-code-poradnik-na-start-krok-po-kroku/">Programowanie z Claude Code:  Poradnik na start  krok po kroku</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://zitwziete.org/programowanie-z-claude-code-poradnik-na-start-krok-po-kroku/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Nowy Limit Claude -czas zacząć myśleć przy korzystaniu z claude code</title>
		<link>https://zitwziete.org/nowy-limit-claude-czas-zaczac-myslec-przy-korzystaniu-z-claude-code/</link>
					<comments>https://zitwziete.org/nowy-limit-claude-czas-zaczac-myslec-przy-korzystaniu-z-claude-code/#respond</comments>
		
		<dc:creator><![CDATA[ZITWziete]]></dc:creator>
		<pubDate>Sun, 12 Oct 2025 14:55:51 +0000</pubDate>
				<category><![CDATA[AI Howto]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[moje 0.02 pln]]></category>
		<category><![CDATA[porady]]></category>
		<guid isPermaLink="false">https://zitwziete.org/?p=938</guid>

					<description><![CDATA[<p>Stało się. Anthropic wprowadził limity użycia w płatnych planach Claude, nawet dla swojego topowego modelu Opus. Jeśli w połowie ważnego zadania zobaczyliście komunikat o "osiągnięciu limitu", to znak, że darmowa impreza AI dobiega końca.</p>
<p>Artykuł <a href="https://zitwziete.org/nowy-limit-claude-czas-zaczac-myslec-przy-korzystaniu-z-claude-code/">Nowy Limit Claude -czas zacząć myśleć przy korzystaniu z claude code</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading"></h3>



<p class="wp-block-paragraph">Stało się. Anthropic wprowadził limity użycia w płatnych planach Claude, nawet dla swojego topowego modelu Opus. Jeśli w połowie ważnego zadania zobaczyliście komunikat o &#8222;osiągnięciu limitu&#8221;, to znak, że darmowa impreza AI dobiega końca.</p>



<p class="wp-block-paragraph">Zamiast się irytować, potraktujmy to jako sygnał. Czas przestać używać AI jak magicznej zabawki, a zacząć jak profesjonalnego narzędzia, którego zasoby są ograniczone i cenne.</p>



<p class="wp-block-paragraph">Kluczem jest zrozumienie różnicy między modelami:</p>



<ul class="wp-block-list">
<li><strong>Opus (Architekt):</strong> Najlepszy, najdroższy i&#8230; najbardziej limitowany. Myśl o nim jak o doświadczonym senior deweloperze. Jego czas jest cenny.</li>



<li><strong>Sonnet (Wykonawca):</strong> Bardzo dobry, tańszy i z o wiele większym limitem. To Twój solidny mid-level deweloper, gotowy do wykonania konkretnych zadań.</li>
</ul>



<p class="wp-block-paragraph">A teraz najważniejsze: jak z nimi pracować, by wycisnąć maksimum?</p>



<p class="wp-block-paragraph"><strong>Nowa strategia pracy: Architekt (Opus) planuje, Wykonawca (Sonnet) koduje.</strong></p>



<p class="wp-block-paragraph">To proste i genialne. Zamiast marnować cenne &#8222;strzały&#8221; w Opusie na pisanie całego kodu, użyj go do tego, w czym jest najlepszy – do myślenia na wysokim poziomie.</p>



<p class="wp-block-paragraph"><strong>Krok 1: Użyj Opusa, by stworzył plan (jedno zapytanie).</strong>&nbsp;Potraktuj go jak architekta oprogramowania. Daj mu jedno, dobrze przemyślane zadanie, by stworzył szczegółowy plan działania.</p>



<p class="wp-block-paragraph"><em>Przykład promptu dla Opusa:</em>&nbsp;<code>"Jesteś senior tech leadem. Stwórz szczegółowy, krokowy plan implementacji nowej funkcji logowania w aplikacji React z użyciem TypeScript. Uwzględnij: strukturę komponentów (np. LoginForm, Input), zarządzanie stanem za pomocą Zustand, walidację formularza z React Hook Form oraz asynchroniczną obsługę zapytania do API. Podziel plan na numerowane, konkretne zadania do wykonania."</code></p>



<p class="wp-block-paragraph">Wynikiem będzie perfekcyjna &#8222;rozpiska&#8221; zadań. I zużyłeś na to tylko jedno cenne zapytanie do Opusa.</p>



<p class="wp-block-paragraph"><strong>Krok 2: Użyj Sonnet, by wykonał plan (wiele zapytań).</strong>&nbsp;Teraz zaczyna się praca właściwa. Bierzesz plan od Opusa i wrzucasz go Sonnetowi, krok po kroku. Masz tu duży limit, więc możesz pracować swobodnie.</p>



<p class="wp-block-paragraph"><em>Przykład promptu dla Sonnet:</em>&nbsp;<code>"Na podstawie kroku 1 z planu, napisz kod dla komponentu LoginForm.tsx, używając biblioteki styled-components."</code></p>



<p class="wp-block-paragraph">Następnie:&nbsp;<code>"OK, teraz na podstawie kroku 2, dodaj logikę zarządzania stanem z Zustand do tego komponentu."</code></p>



<p class="wp-block-paragraph">I tak dalej, aż wykonasz cały plan.</p>



<p class="wp-block-paragraph"><strong>Dlaczego to działa?</strong></p>



<ol start="1" class="wp-block-list">
<li><strong>Maksymalizujesz jakość:</strong> Najtrudniejszą, koncepcyjną pracę (architekturę) wykonuje najlepszy model.</li>



<li><strong>Oszczędzasz limity:</strong> Brudną, powtarzalną robotę (pisanie kodu według wytycznych) delegujesz do modelu z większym limitem.</li>



<li><strong>Pracujesz wydajniej:</strong> Zamiast chaotycznie zadawać pytania, masz jasną strukturę i porządek w projekcie.</li>
</ol>



<p class="wp-block-paragraph">Przestajemy być tylko &#8222;użytkownikami&#8221; AI. Stajemy się menedżerami, którzy przydzielają zadania odpowiednim modelom w zależności od ich siły i&#8230; kosztu.</p>
<p>Artykuł <a href="https://zitwziete.org/nowy-limit-claude-czas-zaczac-myslec-przy-korzystaniu-z-claude-code/">Nowy Limit Claude -czas zacząć myśleć przy korzystaniu z claude code</a> pochodzi z serwisu <a href="https://zitwziete.org">Z IT Wzięte</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://zitwziete.org/nowy-limit-claude-czas-zaczac-myslec-przy-korzystaniu-z-claude-code/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
