<?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>CSSoft CMS</title>
        <atom:link href="https://blog.napraw.to/rss/" rel="self" type="application/rss+xml" />
        <link>https://blog.napraw.to/</link>
        <description>CSSoft CMS</description>
        <lastBuildDate>Thu, 02 Oct 2014 20:06:22 +0000</lastBuildDate>
        <language>pl-PL</language>
        <sy:updatePeriod>daily</sy:updatePeriod>
        <sy:updateFrequency>1</sy:updateFrequency>
        <generator>http://cssoft.pl</generator>

                        <item>
                    <title>Wkhtmltopdf table td background color</title>
                    <link>https://blog.napraw.to/post/wkhtmltopdf-table-td-background-color</link>
                    <comments>https://blog.napraw.to/post/wkhtmltopdf-table-td-background-color#comments</comments>
                    <pubDate>2026-05-13 15:03:36</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>PHP</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/wkhtmltopdf-table-td-background-color</guid>
                    <description>&lt;p&gt;Przede wszystki kolorujemy kom&amp;oacute;rki TD a nie wiersze TR&lt;/p&gt;
&lt;pre&gt;thead th,
thead td {
    background-color: #a9d388 !important;
}&lt;/pre&gt;
&lt;p&gt;trzeba też dodać border-collapse dla tabeli&lt;/p&gt;
&lt;pre&gt;table {
    border-collapse: collapse;
}&lt;/pre&gt;
&lt;p&gt;po tych zmianach działa&lt;/p&gt;</description>
                    <content:encoded>&lt;p&gt;Przede wszystki kolorujemy kom&amp;oacute;rki TD a nie wiersze TR&lt;/p&gt;
&lt;pre&gt;thead th,
thead td {
    background-color: #a9d388 !important;
}&lt;/pre&gt;
&lt;p&gt;trzeba też dodać border-collapse dla tabeli&lt;/p&gt;
&lt;pre&gt;table {
    border-collapse: collapse;
}&lt;/pre&gt;
&lt;p&gt;po tych zmianach działa&lt;/p&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>Błąd 403 - CyberFolks</title>
                    <link>https://blog.napraw.to/post/blad-403-cyberfolks</link>
                    <comments>https://blog.napraw.to/post/blad-403-cyberfolks#comments</comments>
                    <pubDate>2026-04-25 21:43:12</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>Hosting</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/blad-403-cyberfolks</guid>
                    <description>&lt;pre&gt;cd domains/nazwadomeny/public_html&lt;/pre&gt;
&lt;pre&gt;find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;&lt;/pre&gt;</description>
                    <content:encoded>&lt;pre&gt;cd domains/nazwadomeny/public_html&lt;/pre&gt;
&lt;pre&gt;find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;&lt;/pre&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>Generowanie pliku .ppk z klucza id_rsa</title>
                    <link>https://blog.napraw.to/post/generowanie-pliku-_ppk-z-klucza-id_rsa</link>
                    <comments>https://blog.napraw.to/post/generowanie-pliku-_ppk-z-klucza-id_rsa#comments</comments>
                    <pubDate>2026-04-23 13:19:40</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>Linux</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/generowanie-pliku-_ppk-z-klucza-id_rsa</guid>
                    <description>&lt;pre&gt;sudo aptitude update
sudo aptitude install putty-tools&lt;/pre&gt;
&lt;pre&gt;puttygen ~/.ssh/id_rsa -o key.ppk&lt;/pre&gt;</description>
                    <content:encoded>&lt;pre&gt;sudo aptitude update
sudo aptitude install putty-tools&lt;/pre&gt;
&lt;pre&gt;puttygen ~/.ssh/id_rsa -o key.ppk&lt;/pre&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>SSH i FTP - Keep alive</title>
                    <link>https://blog.napraw.to/post/ssh-i-ftp-keep-alive</link>
                    <comments>https://blog.napraw.to/post/ssh-i-ftp-keep-alive#comments</comments>
                    <pubDate>2025-10-06 11:32:36</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>Linux</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/ssh-i-ftp-keep-alive</guid>
                    <description>&lt;p&gt;U niekt&amp;oacute;rych dostawc&amp;oacute;w internetu połączenia FTP i SSH są zrywane po kilku minutach bezczynności.&lt;/p&gt;
&lt;p&gt;Można to naprawić poprzez:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. SSH&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;cd ~
vim .ssh/config&lt;/pre&gt;
&lt;pre&gt;Host *
ServerAliveInterval 180&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;2. FTP - Filezilla&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Edit -&amp;gt; Settings -&amp;gt; Connection -&amp;gt; FTP&lt;/p&gt;
&lt;p&gt;[x] Send FTP keep-alive commands&lt;/p&gt;</description>
                    <content:encoded>&lt;p&gt;U niekt&amp;oacute;rych dostawc&amp;oacute;w internetu połączenia FTP i SSH są zrywane po kilku minutach bezczynności.&lt;/p&gt;
&lt;p&gt;Można to naprawić poprzez:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. SSH&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;cd ~
vim .ssh/config&lt;/pre&gt;
&lt;pre&gt;Host *
ServerAliveInterval 180&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;2. FTP - Filezilla&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Edit -&amp;gt; Settings -&amp;gt; Connection -&amp;gt; FTP&lt;/p&gt;
&lt;p&gt;[x] Send FTP keep-alive commands&lt;/p&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>Thunderbird - Wyłączenie grupowania po wątkach</title>
                    <link>https://blog.napraw.to/post/thunderbird-wylaczenie-grupowania-po-watkach</link>
                    <comments>https://blog.napraw.to/post/thunderbird-wylaczenie-grupowania-po-watkach#comments</comments>
                    <pubDate>2025-09-22 13:47:46</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>Linux</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/thunderbird-wylaczenie-grupowania-po-watkach</guid>
                    <description>&lt;p&gt;Edit -&amp;gt; Settings -&amp;gt; Appearance -&amp;gt; Sorting and Threading -&amp;gt; Default Threading -&amp;gt; Unthreaded&lt;/p&gt;
&lt;p&gt;Źr&amp;oacute;dło: ChatPGT&lt;/p&gt;
&lt;p data-start=&quot;0&quot; data-end=&quot;99&quot;&gt;&lt;strong data-start=&quot;10&quot; data-end=&quot;42&quot;&gt;Thunderbird 140 (English UI)&lt;/strong&gt; da się to wyklikać globalnie w jednym miejscu. Zr&amp;oacute;b tak:&lt;/p&gt;
&lt;h3 data-start=&quot;101&quot; data-end=&quot;158&quot;&gt;Wyłączanie wątk&amp;oacute;w globalnie (dla wszystkich folder&amp;oacute;w)&lt;/h3&gt;
&lt;ol data-start=&quot;159&quot; data-end=&quot;616&quot;&gt;
&lt;li data-start=&quot;159&quot; data-end=&quot;240&quot;&gt;
&lt;p data-start=&quot;162&quot; data-end=&quot;240&quot;&gt;Otw&amp;oacute;rz Thunderbirda i kliknij &lt;strong data-start=&quot;192&quot; data-end=&quot;216&quot;&gt;☰ (Application menu)&lt;/strong&gt; w prawym g&amp;oacute;rnym rogu.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start=&quot;241&quot; data-end=&quot;284&quot;&gt;
&lt;p data-start=&quot;244&quot; data-end=&quot;284&quot;&gt;Wejdź w &lt;strong data-start=&quot;252&quot; data-end=&quot;264&quot;&gt;Settings&lt;/strong&gt; &amp;rarr; &lt;strong data-start=&quot;267&quot; data-end=&quot;281&quot;&gt;Appearance&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start=&quot;285&quot; data-end=&quot;367&quot;&gt;
&lt;p data-start=&quot;288&quot; data-end=&quot;367&quot;&gt;W sekcji &lt;strong data-start=&quot;297&quot; data-end=&quot;341&quot;&gt;Select default threading for new folders&lt;/strong&gt; wybierz &lt;strong data-start=&quot;350&quot; data-end=&quot;364&quot;&gt;Unthreaded&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start=&quot;368&quot; data-end=&quot;616&quot;&gt;
&lt;p data-start=&quot;371&quot; data-end=&quot;616&quot;&gt;Przewiń niżej do &lt;strong data-start=&quot;388&quot; data-end=&quot;431&quot;&gt;Select folders to apply new settings to&lt;/strong&gt; i kliknij &lt;strong data-start=&quot;442&quot; data-end=&quot;466&quot;&gt;All existing folders&lt;/strong&gt; &amp;rarr; potwierdź.&lt;br data-start=&quot;479&quot; data-end=&quot;482&quot; /&gt;&lt;em data-start=&quot;485&quot; data-end=&quot;578&quot;&gt;To ustawi &amp;bdquo;Unthreaded&amp;rdquo; jako domyślne i zastosuje to do wszystkich dotychczasowych folder&amp;oacute;w.&lt;/em&gt; &lt;span class=&quot;&quot; data-state=&quot;closed&quot;&gt;&lt;span class=&quot;ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]&quot; data-testid=&quot;webpage-citation-pill&quot;&gt;&lt;a class=&quot;flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!&quot; href=&quot;https://support.mozilla.org/en-US/kb/appearance-panel-layout-message-list-card-view-tab&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span class=&quot;relative start-0 bottom-0 flex h-full w-full items-center&quot;&gt;&lt;span class=&quot;flex h-4 w-full items-center justify-between overflow-hidden&quot;&gt;&lt;span class=&quot;max-w-[15ch] grow truncate overflow-hidden text-center&quot;&gt;Mozilla Support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-start=&quot;618&quot; data-end=&quot;673&quot;&gt;(Opcjonalnie) Dla pojedynczego folderu &amp;bdquo;tu i teraz&amp;rdquo;&lt;/h3&gt;
&lt;ol data-start=&quot;674&quot; data-end=&quot;946&quot;&gt;
&lt;li data-start=&quot;674&quot; data-end=&quot;720&quot;&gt;
&lt;p data-start=&quot;677&quot; data-end=&quot;720&quot;&gt;Wejdź do konkretnego folderu (np. Inbox).&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start=&quot;721&quot; data-end=&quot;946&quot;&gt;
&lt;p data-start=&quot;724&quot; data-end=&quot;946&quot;&gt;Wciśnij &lt;strong data-start=&quot;732&quot; data-end=&quot;739&quot;&gt;Alt&lt;/strong&gt; (pojawi się klasyczne menu) &amp;rarr; &lt;strong data-start=&quot;770&quot; data-end=&quot;778&quot;&gt;View&lt;/strong&gt; &amp;rarr; &lt;strong data-start=&quot;781&quot; data-end=&quot;792&quot;&gt;Sort by&lt;/strong&gt; &amp;rarr; &lt;strong data-start=&quot;795&quot; data-end=&quot;809&quot;&gt;Unthreaded&lt;/strong&gt;.&lt;br data-start=&quot;810&quot; data-end=&quot;813&quot; /&gt;&lt;em data-start=&quot;816&quot; data-end=&quot;908&quot;&gt;To działa tylko dla bieżącego folderu &amp;mdash; globalne ustawienie z kroku wyżej załatwia całość.&lt;/em&gt; &lt;span class=&quot;&quot; data-state=&quot;closed&quot;&gt;&lt;span class=&quot;ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]&quot; data-testid=&quot;webpage-citation-pill&quot;&gt;&lt;a class=&quot;flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!&quot; href=&quot;https://support.mozilla.org/en-US/kb/message-threading-thunderbird?utm_source=chatgpt.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span class=&quot;relative start-0 bottom-0 flex h-full w-full items-center&quot;&gt;&lt;span class=&quot;flex h-4 w-full items-center justify-between overflow-hidden&quot;&gt;&lt;span class=&quot;max-w-[15ch] grow truncate overflow-hidden text-center&quot;&gt;Mozilla Support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-start=&quot;948&quot; data-end=&quot;1214&quot;&gt;Jeśli chcesz, przy okazji w &lt;strong data-start=&quot;976&quot; data-end=&quot;990&quot;&gt;Appearance&lt;/strong&gt; możesz też ustawić domyślne sortowanie (np. &lt;strong data-start=&quot;1035&quot; data-end=&quot;1063&quot;&gt;Default Sort field: Date&lt;/strong&gt; i &lt;strong data-start=&quot;1066&quot; data-end=&quot;1080&quot;&gt;Descending&lt;/strong&gt;) i r&amp;oacute;wnież zastosować to do wszystkich folder&amp;oacute;w tym samym przyciskiem &lt;strong data-start=&quot;1151&quot; data-end=&quot;1175&quot;&gt;All existing folders&lt;/strong&gt;.&lt;/p&gt;</description>
                    <content:encoded>&lt;p&gt;Edit -&amp;gt; Settings -&amp;gt; Appearance -&amp;gt; Sorting and Threading -&amp;gt; Default Threading -&amp;gt; Unthreaded&lt;/p&gt;
&lt;p&gt;Źr&amp;oacute;dło: ChatPGT&lt;/p&gt;
&lt;p data-start=&quot;0&quot; data-end=&quot;99&quot;&gt;&lt;strong data-start=&quot;10&quot; data-end=&quot;42&quot;&gt;Thunderbird 140 (English UI)&lt;/strong&gt; da się to wyklikać globalnie w jednym miejscu. Zr&amp;oacute;b tak:&lt;/p&gt;
&lt;h3 data-start=&quot;101&quot; data-end=&quot;158&quot;&gt;Wyłączanie wątk&amp;oacute;w globalnie (dla wszystkich folder&amp;oacute;w)&lt;/h3&gt;
&lt;ol data-start=&quot;159&quot; data-end=&quot;616&quot;&gt;
&lt;li data-start=&quot;159&quot; data-end=&quot;240&quot;&gt;
&lt;p data-start=&quot;162&quot; data-end=&quot;240&quot;&gt;Otw&amp;oacute;rz Thunderbirda i kliknij &lt;strong data-start=&quot;192&quot; data-end=&quot;216&quot;&gt;☰ (Application menu)&lt;/strong&gt; w prawym g&amp;oacute;rnym rogu.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start=&quot;241&quot; data-end=&quot;284&quot;&gt;
&lt;p data-start=&quot;244&quot; data-end=&quot;284&quot;&gt;Wejdź w &lt;strong data-start=&quot;252&quot; data-end=&quot;264&quot;&gt;Settings&lt;/strong&gt; &amp;rarr; &lt;strong data-start=&quot;267&quot; data-end=&quot;281&quot;&gt;Appearance&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start=&quot;285&quot; data-end=&quot;367&quot;&gt;
&lt;p data-start=&quot;288&quot; data-end=&quot;367&quot;&gt;W sekcji &lt;strong data-start=&quot;297&quot; data-end=&quot;341&quot;&gt;Select default threading for new folders&lt;/strong&gt; wybierz &lt;strong data-start=&quot;350&quot; data-end=&quot;364&quot;&gt;Unthreaded&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start=&quot;368&quot; data-end=&quot;616&quot;&gt;
&lt;p data-start=&quot;371&quot; data-end=&quot;616&quot;&gt;Przewiń niżej do &lt;strong data-start=&quot;388&quot; data-end=&quot;431&quot;&gt;Select folders to apply new settings to&lt;/strong&gt; i kliknij &lt;strong data-start=&quot;442&quot; data-end=&quot;466&quot;&gt;All existing folders&lt;/strong&gt; &amp;rarr; potwierdź.&lt;br data-start=&quot;479&quot; data-end=&quot;482&quot; /&gt;&lt;em data-start=&quot;485&quot; data-end=&quot;578&quot;&gt;To ustawi &amp;bdquo;Unthreaded&amp;rdquo; jako domyślne i zastosuje to do wszystkich dotychczasowych folder&amp;oacute;w.&lt;/em&gt; &lt;span class=&quot;&quot; data-state=&quot;closed&quot;&gt;&lt;span class=&quot;ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]&quot; data-testid=&quot;webpage-citation-pill&quot;&gt;&lt;a class=&quot;flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!&quot; href=&quot;https://support.mozilla.org/en-US/kb/appearance-panel-layout-message-list-card-view-tab&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span class=&quot;relative start-0 bottom-0 flex h-full w-full items-center&quot;&gt;&lt;span class=&quot;flex h-4 w-full items-center justify-between overflow-hidden&quot;&gt;&lt;span class=&quot;max-w-[15ch] grow truncate overflow-hidden text-center&quot;&gt;Mozilla Support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-start=&quot;618&quot; data-end=&quot;673&quot;&gt;(Opcjonalnie) Dla pojedynczego folderu &amp;bdquo;tu i teraz&amp;rdquo;&lt;/h3&gt;
&lt;ol data-start=&quot;674&quot; data-end=&quot;946&quot;&gt;
&lt;li data-start=&quot;674&quot; data-end=&quot;720&quot;&gt;
&lt;p data-start=&quot;677&quot; data-end=&quot;720&quot;&gt;Wejdź do konkretnego folderu (np. Inbox).&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start=&quot;721&quot; data-end=&quot;946&quot;&gt;
&lt;p data-start=&quot;724&quot; data-end=&quot;946&quot;&gt;Wciśnij &lt;strong data-start=&quot;732&quot; data-end=&quot;739&quot;&gt;Alt&lt;/strong&gt; (pojawi się klasyczne menu) &amp;rarr; &lt;strong data-start=&quot;770&quot; data-end=&quot;778&quot;&gt;View&lt;/strong&gt; &amp;rarr; &lt;strong data-start=&quot;781&quot; data-end=&quot;792&quot;&gt;Sort by&lt;/strong&gt; &amp;rarr; &lt;strong data-start=&quot;795&quot; data-end=&quot;809&quot;&gt;Unthreaded&lt;/strong&gt;.&lt;br data-start=&quot;810&quot; data-end=&quot;813&quot; /&gt;&lt;em data-start=&quot;816&quot; data-end=&quot;908&quot;&gt;To działa tylko dla bieżącego folderu &amp;mdash; globalne ustawienie z kroku wyżej załatwia całość.&lt;/em&gt; &lt;span class=&quot;&quot; data-state=&quot;closed&quot;&gt;&lt;span class=&quot;ms-1 inline-flex max-w-full items-center relative top-[-0.094rem] animate-[show_150ms_ease-in]&quot; data-testid=&quot;webpage-citation-pill&quot;&gt;&lt;a class=&quot;flex h-4.5 overflow-hidden rounded-xl px-2 text-[9px] font-medium transition-colors duration-150 ease-in-out text-token-text-secondary! bg-[#F4F4F4]! dark:bg-[#303030]!&quot; href=&quot;https://support.mozilla.org/en-US/kb/message-threading-thunderbird?utm_source=chatgpt.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span class=&quot;relative start-0 bottom-0 flex h-full w-full items-center&quot;&gt;&lt;span class=&quot;flex h-4 w-full items-center justify-between overflow-hidden&quot;&gt;&lt;span class=&quot;max-w-[15ch] grow truncate overflow-hidden text-center&quot;&gt;Mozilla Support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-start=&quot;948&quot; data-end=&quot;1214&quot;&gt;Jeśli chcesz, przy okazji w &lt;strong data-start=&quot;976&quot; data-end=&quot;990&quot;&gt;Appearance&lt;/strong&gt; możesz też ustawić domyślne sortowanie (np. &lt;strong data-start=&quot;1035&quot; data-end=&quot;1063&quot;&gt;Default Sort field: Date&lt;/strong&gt; i &lt;strong data-start=&quot;1066&quot; data-end=&quot;1080&quot;&gt;Descending&lt;/strong&gt;) i r&amp;oacute;wnież zastosować to do wszystkich folder&amp;oacute;w tym samym przyciskiem &lt;strong data-start=&quot;1151&quot; data-end=&quot;1175&quot;&gt;All existing folders&lt;/strong&gt;.&lt;/p&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>Ubuntu 24 - Folder right-click New file</title>
                    <link>https://blog.napraw.to/post/ubuntu-24-folder-right-click-new-file</link>
                    <comments>https://blog.napraw.to/post/ubuntu-24-folder-right-click-new-file#comments</comments>
                    <pubDate>2025-09-15 11:46:54</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>Linux</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/ubuntu-24-folder-right-click-new-file</guid>
                    <description>&lt;p&gt;Po otwarciu dowolnej folderu i kliknięciu prawym klawiszem myszy nie ma opcji &quot;Nowy dokument&quot;.&lt;/p&gt;
&lt;p&gt;cd vim ~/Templates&lt;/p&gt;
&lt;p&gt;touch new_file.txt&lt;/p&gt;</description>
                    <content:encoded>&lt;p&gt;Po otwarciu dowolnej folderu i kliknięciu prawym klawiszem myszy nie ma opcji &quot;Nowy dokument&quot;.&lt;/p&gt;
&lt;p&gt;cd vim ~/Templates&lt;/p&gt;
&lt;p&gt;touch new_file.txt&lt;/p&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>Forticlient VPN - Ubuntu 24</title>
                    <link>https://blog.napraw.to/post/forticlient-vpn-ubuntu-24</link>
                    <comments>https://blog.napraw.to/post/forticlient-vpn-ubuntu-24#comments</comments>
                    <pubDate>2025-09-15 01:34:16</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>Linux</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/forticlient-vpn-ubuntu-24</guid>
                    <description>&lt;p&gt;&lt;a href=&quot;https://www.fortinet.com/support/product-downloads#vpn&quot;&gt;https://www.fortinet.com/support/product-downloads#vpn&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://links.fortinet.com/forticlient/deb/vpnagent&quot;&gt;https://links.fortinet.com/forticlient/deb/vpnagent&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://filestore.fortinet.com/forticlient/downloads/forticlient_vpn_7.4.3.1736_amd64.deb&quot;&gt;https://filestore.fortinet.com/forticlient/downloads/forticlient_vpn_7.4.3.1736_amd64.deb&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;sudo dpkg -i&amp;nbsp;forticlient_vpn_7.4.3.1736_amd64.deb&lt;/p&gt;</description>
                    <content:encoded>&lt;p&gt;&lt;a href=&quot;https://www.fortinet.com/support/product-downloads#vpn&quot;&gt;https://www.fortinet.com/support/product-downloads#vpn&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://links.fortinet.com/forticlient/deb/vpnagent&quot;&gt;https://links.fortinet.com/forticlient/deb/vpnagent&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://filestore.fortinet.com/forticlient/downloads/forticlient_vpn_7.4.3.1736_amd64.deb&quot;&gt;https://filestore.fortinet.com/forticlient/downloads/forticlient_vpn_7.4.3.1736_amd64.deb&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;sudo dpkg -i&amp;nbsp;forticlient_vpn_7.4.3.1736_amd64.deb&lt;/p&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>GIT - usuwanie dużych plików w repo (bitbucket.org)</title>
                    <link>https://blog.napraw.to/post/git-usuwanie-duzych-plikow-w-repo-bitbucket_org</link>
                    <comments>https://blog.napraw.to/post/git-usuwanie-duzych-plikow-w-repo-bitbucket_org#comments</comments>
                    <pubDate>2025-06-04 00:00:00</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>GIT</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/git-usuwanie-duzych-plikow-w-repo-bitbucket_org</guid>
                    <description>&lt;p&gt;Darmowe konto na bitbucket.org ma ograniczenie do 1GB:&lt;/p&gt;
&lt;p&gt;Your workspace has exceeded the 1 GB limit and has been placed in read-only mode. Learn more about upgrading your plan and checking storage usage. &amp;mdash; Learn more&lt;/p&gt;
&lt;p&gt;Na stronie&amp;nbsp;&lt;a href=&quot;https://bitbucket.org/[nazwa_workspace]/workspace/repositories/&quot;&gt;https://bitbucket.org/[nazwa_workspace]/workspace/repositories/&lt;/a&gt;&amp;nbsp;można sprawdzić kt&amp;oacute;re repo zajmuje najwięcej miejsca.&lt;/p&gt;
&lt;p&gt;Aby usunąć duże pliki w wybranym repozytorium należy:&lt;/p&gt;
&lt;p&gt;1. Wyszukać duże pliki w historii:&lt;/p&gt;
&lt;pre&gt;git rev-list --objects --all \
| git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' \
| grep '^blob' \
| sort -k3 -n -r \
| head -20 \
| awk '{print $3/1024/1024 &quot; MB\t&quot; $4}'&lt;/pre&gt;
&lt;p&gt;Ten skrypt:&lt;br /&gt;- przeszukuje całą historię (--all)&lt;br /&gt;- pokazuje tylko bloby (czyli treść plik&amp;oacute;w)&lt;br /&gt;- sortuje według rozmiaru&lt;br /&gt;- wyświetla 20 największych plik&amp;oacute;w wraz z rozmiarem&lt;/p&gt;
&lt;p&gt;2. Usunąć wybrany plik z historii&lt;/p&gt;
&lt;pre&gt;git filter-branch --force --index-filter &quot;git rm --cached --ignore-unmatch duzy_plik.zip&quot; --prune-empty --tag-name-filter cat -- --all&lt;/pre&gt;
&lt;p&gt;3.&amp;nbsp;Wyczyścić śmieci i zmniejszyć rozmiar repozytorium:&lt;/p&gt;
&lt;pre&gt;rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now --aggressive&lt;/pre&gt;
&lt;p&gt;4.&amp;nbsp;Wypchnąć zmiany do Bitbucket (&lt;strong&gt;UWAGA!!!&lt;/strong&gt;: to nadpisuje historię):&lt;/p&gt;
&lt;pre&gt;git push --force --all
git push --force --tags&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Uwaga!!!&lt;/strong&gt;:&lt;br /&gt;To usuwa plik z każdego commita w całym repo.&lt;br /&gt;Jeśli ktoś inny korzysta z repozytorium, musi ponownie je sklonować, bo historia została zmieniona.&lt;br /&gt;Lepiej zrobić backup repo przed tą operacją.&lt;/p&gt;
&lt;p&gt;Źr&amp;oacute;dło:&amp;nbsp;&lt;a href=&quot;https://chatgpt.com/&quot;&gt;https://chatgpt.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
                    <content:encoded>&lt;p&gt;Darmowe konto na bitbucket.org ma ograniczenie do 1GB:&lt;/p&gt;
&lt;p&gt;Your workspace has exceeded the 1 GB limit and has been placed in read-only mode. Learn more about upgrading your plan and checking storage usage. &amp;mdash; Learn more&lt;/p&gt;
&lt;p&gt;Na stronie&amp;nbsp;&lt;a href=&quot;https://bitbucket.org/[nazwa_workspace]/workspace/repositories/&quot;&gt;https://bitbucket.org/[nazwa_workspace]/workspace/repositories/&lt;/a&gt;&amp;nbsp;można sprawdzić kt&amp;oacute;re repo zajmuje najwięcej miejsca.&lt;/p&gt;
&lt;p&gt;Aby usunąć duże pliki w wybranym repozytorium należy:&lt;/p&gt;
&lt;p&gt;1. Wyszukać duże pliki w historii:&lt;/p&gt;
&lt;pre&gt;git rev-list --objects --all \
| git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' \
| grep '^blob' \
| sort -k3 -n -r \
| head -20 \
| awk '{print $3/1024/1024 &quot; MB\t&quot; $4}'&lt;/pre&gt;
&lt;p&gt;Ten skrypt:&lt;br /&gt;- przeszukuje całą historię (--all)&lt;br /&gt;- pokazuje tylko bloby (czyli treść plik&amp;oacute;w)&lt;br /&gt;- sortuje według rozmiaru&lt;br /&gt;- wyświetla 20 największych plik&amp;oacute;w wraz z rozmiarem&lt;/p&gt;
&lt;p&gt;2. Usunąć wybrany plik z historii&lt;/p&gt;
&lt;pre&gt;git filter-branch --force --index-filter &quot;git rm --cached --ignore-unmatch duzy_plik.zip&quot; --prune-empty --tag-name-filter cat -- --all&lt;/pre&gt;
&lt;p&gt;3.&amp;nbsp;Wyczyścić śmieci i zmniejszyć rozmiar repozytorium:&lt;/p&gt;
&lt;pre&gt;rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now --aggressive&lt;/pre&gt;
&lt;p&gt;4.&amp;nbsp;Wypchnąć zmiany do Bitbucket (&lt;strong&gt;UWAGA!!!&lt;/strong&gt;: to nadpisuje historię):&lt;/p&gt;
&lt;pre&gt;git push --force --all
git push --force --tags&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Uwaga!!!&lt;/strong&gt;:&lt;br /&gt;To usuwa plik z każdego commita w całym repo.&lt;br /&gt;Jeśli ktoś inny korzysta z repozytorium, musi ponownie je sklonować, bo historia została zmieniona.&lt;br /&gt;Lepiej zrobić backup repo przed tą operacją.&lt;/p&gt;
&lt;p&gt;Źr&amp;oacute;dło:&amp;nbsp;&lt;a href=&quot;https://chatgpt.com/&quot;&gt;https://chatgpt.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>Codeigniter 3 - Połączenie z bazą Firebird</title>
                    <link>https://blog.napraw.to/post/codeigniter-3-polaczenie-z-baza-firebird</link>
                    <comments>https://blog.napraw.to/post/codeigniter-3-polaczenie-z-baza-firebird#comments</comments>
                    <pubDate>2025-02-26 22:44:55</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>Codeigniter</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/codeigniter-3-polaczenie-z-baza-firebird</guid>
                    <description>&lt;pre&gt;$db['default'] = array(
	'dsn'	=&amp;gt; '',
	'hostname' =&amp;gt; 'firebird:dbname=C:\\path\\to\\databases\\db_name.FDB',
	'username' =&amp;gt; 'SYSDBA',
	'password' =&amp;gt; 'masterkey',
	'database' =&amp;gt; 'db_name.FDB',
	'port' =&amp;gt; 3050,
	'dbdriver' =&amp;gt; 'pdo',
	'dbprefix' =&amp;gt; '',
	'pconnect' =&amp;gt; FALSE,
	'db_debug' =&amp;gt; (ENVIRONMENT !== 'production'),
	'cache_on' =&amp;gt; FALSE,
	'cachedir' =&amp;gt; '',
	'char_set' =&amp;gt; 'utf8',
	'dbcollat' =&amp;gt; 'utf8_general_ci',
	'swap_pre' =&amp;gt; '',
	'encrypt' =&amp;gt; FALSE,
	'compress' =&amp;gt; FALSE,
	'stricton' =&amp;gt; FALSE,
	'failover' =&amp;gt; array(),
	'save_queries' =&amp;gt; TRUE
);
&lt;/pre&gt;</description>
                    <content:encoded>&lt;pre&gt;$db['default'] = array(
	'dsn'	=&amp;gt; '',
	'hostname' =&amp;gt; 'firebird:dbname=C:\\path\\to\\databases\\db_name.FDB',
	'username' =&amp;gt; 'SYSDBA',
	'password' =&amp;gt; 'masterkey',
	'database' =&amp;gt; 'db_name.FDB',
	'port' =&amp;gt; 3050,
	'dbdriver' =&amp;gt; 'pdo',
	'dbprefix' =&amp;gt; '',
	'pconnect' =&amp;gt; FALSE,
	'db_debug' =&amp;gt; (ENVIRONMENT !== 'production'),
	'cache_on' =&amp;gt; FALSE,
	'cachedir' =&amp;gt; '',
	'char_set' =&amp;gt; 'utf8',
	'dbcollat' =&amp;gt; 'utf8_general_ci',
	'swap_pre' =&amp;gt; '',
	'encrypt' =&amp;gt; FALSE,
	'compress' =&amp;gt; FALSE,
	'stricton' =&amp;gt; FALSE,
	'failover' =&amp;gt; array(),
	'save_queries' =&amp;gt; TRUE
);
&lt;/pre&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>Imagick - Batch resize JPG do 50%</title>
                    <link>https://blog.napraw.to/post/imagick-batch-resize-jpg-do-50</link>
                    <comments>https://blog.napraw.to/post/imagick-batch-resize-jpg-do-50#comments</comments>
                    <pubDate>2025-02-16 22:34:58</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>Linux</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/imagick-batch-resize-jpg-do-50</guid>
                    <description>&lt;pre&gt;for f in `find . -name &quot;*.jpg&quot;`; do convert $f -resize 50% $f; done&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;font-family: monospace;&quot;&gt;&lt;span style=&quot;color: #000000; background-color: #ffffff;&quot;&gt;Źr&amp;oacute;dło: &lt;a href=&quot;https://stackoverflow.com/questions/10802606/how-to-batch-resize-images-in-ubuntu-recursively-within-the-terminal&quot;&gt;https://stackoverflow.com/questions/10802606/how-to-batch-resize-images-in-ubuntu-recursively-within-the-terminal&lt;/a&gt; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
                    <content:encoded>&lt;pre&gt;for f in `find . -name &quot;*.jpg&quot;`; do convert $f -resize 50% $f; done&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;font-family: monospace;&quot;&gt;&lt;span style=&quot;color: #000000; background-color: #ffffff;&quot;&gt;Źr&amp;oacute;dło: &lt;a href=&quot;https://stackoverflow.com/questions/10802606/how-to-batch-resize-images-in-ubuntu-recursively-within-the-terminal&quot;&gt;https://stackoverflow.com/questions/10802606/how-to-batch-resize-images-in-ubuntu-recursively-within-the-terminal&lt;/a&gt; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>Codeigniter 3 - Kodowanie emotikonek w bazie</title>
                    <link>https://blog.napraw.to/post/codeigniter-3-kodowanie-emotikonek-w-bazie</link>
                    <comments>https://blog.napraw.to/post/codeigniter-3-kodowanie-emotikonek-w-bazie#comments</comments>
                    <pubDate>2025-01-24 23:33:47</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>Codeigniter</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/codeigniter-3-kodowanie-emotikonek-w-bazie</guid>
                    <description>&lt;p&gt;Przy domyślnej konfiguracji emotikony zapisują się jako ???? w bazie danych.&lt;/p&gt;
&lt;p&gt;Aby uzyskać poprawne kodowanie należy:&lt;/p&gt;
&lt;p&gt;1. Zmienić kodowanie w bazie danych:&lt;/p&gt;
&lt;pre&gt;ALTER DATABASE baza_danych CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE moja_tabela CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;/pre&gt;
&lt;p&gt;2. Zmienić kodowanie w konfiguracji połączenia z bazą danych.&lt;/p&gt;
&lt;pre&gt;application/config/database.php&lt;/pre&gt;
&lt;pre&gt;$db['default'] = array(
...
'char_set' =&amp;gt; 'utf8mb4',
'dbcollat' =&amp;gt; 'utf8mb4_unicode_ci',

...
);&lt;/pre&gt;</description>
                    <content:encoded>&lt;p&gt;Przy domyślnej konfiguracji emotikony zapisują się jako ???? w bazie danych.&lt;/p&gt;
&lt;p&gt;Aby uzyskać poprawne kodowanie należy:&lt;/p&gt;
&lt;p&gt;1. Zmienić kodowanie w bazie danych:&lt;/p&gt;
&lt;pre&gt;ALTER DATABASE baza_danych CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE moja_tabela CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;/pre&gt;
&lt;p&gt;2. Zmienić kodowanie w konfiguracji połączenia z bazą danych.&lt;/p&gt;
&lt;pre&gt;application/config/database.php&lt;/pre&gt;
&lt;pre&gt;$db['default'] = array(
...
'char_set' =&amp;gt; 'utf8mb4',
'dbcollat' =&amp;gt; 'utf8mb4_unicode_ci',

...
);&lt;/pre&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>Mikrotik - RouterOS 7.17 - Missing wifi</title>
                    <link>https://blog.napraw.to/post/mikrotik-routeros-7_17-missing-wifi</link>
                    <comments>https://blog.napraw.to/post/mikrotik-routeros-7_17-missing-wifi#comments</comments>
                    <pubDate>2025-01-23 14:53:21</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>MikroTik</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/mikrotik-routeros-7_17-missing-wifi</guid>
                    <description>&lt;p&gt;Po aktualizacji Router OS brakuje interfejsu wifi.&lt;/p&gt;
&lt;p&gt;Aby go uruchomić należy doinstalować paczkę:&lt;/p&gt;
&lt;p&gt;wireless-7.17-mipsbe.npk - w moim przypadku&lt;/p&gt;
&lt;p&gt;Znajduje się ona w Extra packages:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://mikrotik.com/download&quot;&gt;https://mikrotik.com/download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://download.mikrotik.com/routeros/7.17/all_packages-mipsbe-7.17.zip&quot;&gt;https://download.mikrotik.com/routeros/7.17/all_packages-mipsbe-7.17.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;</description>
                    <content:encoded>&lt;p&gt;Po aktualizacji Router OS brakuje interfejsu wifi.&lt;/p&gt;
&lt;p&gt;Aby go uruchomić należy doinstalować paczkę:&lt;/p&gt;
&lt;p&gt;wireless-7.17-mipsbe.npk - w moim przypadku&lt;/p&gt;
&lt;p&gt;Znajduje się ona w Extra packages:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://mikrotik.com/download&quot;&gt;https://mikrotik.com/download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://download.mikrotik.com/routeros/7.17/all_packages-mipsbe-7.17.zip&quot;&gt;https://download.mikrotik.com/routeros/7.17/all_packages-mipsbe-7.17.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;!-- pagebreak --&gt;&lt;/p&gt;
&lt;p&gt;Po instalacji (wrzucenie pliku .npk do Files i restarcie routera) interfejs pokazał się od razu na liście tylko trzeba było go aktywować.&lt;/p&gt;
&lt;p&gt;Potem wystarczyło dokończyć konfigurację:&lt;/p&gt;
&lt;p&gt;Wireless -&amp;gt; [zakładka] Security Profiles -&amp;gt; [+]&lt;/p&gt;
&lt;p&gt;[zakładka] General:&lt;/p&gt;
&lt;p&gt;Name: wifi_pass_profile&lt;/p&gt;
&lt;p&gt;Mode: dynamic keys&lt;/p&gt;
&lt;p&gt;Authentication Types: WPA2 PSK&lt;/p&gt;
&lt;p&gt;WPA2 Pre-Shared Key: [Twoje hasło]&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;[zakładka] WiFi Interfaces -&amp;gt; wlan1&lt;/p&gt;
&lt;p&gt;[zakładka] Wireless&lt;/p&gt;
&lt;p&gt;Mode: ap bridge&lt;/p&gt;
&lt;p&gt;SSID: [nazwa Twojej sieci]&lt;/p&gt;
&lt;p&gt;Security profile: wifi_pass_profile&lt;/p&gt;
&lt;p&gt;Country: poland&lt;/p&gt;
&lt;p&gt;[OK]&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Źr&amp;oacute;dło:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://help.mikrotik.com/docs/spaces/ROS/pages/328151/First+Time+Configuration&quot;&gt;https://help.mikrotik.com/docs/spaces/ROS/pages/328151/First+Time+Configuration&lt;/a&gt;&lt;/p&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>CyberFolks - Error 403</title>
                    <link>https://blog.napraw.to/post/cyberfolks-error-403</link>
                    <comments>https://blog.napraw.to/post/cyberfolks-error-403#comments</comments>
                    <pubDate>2024-10-10 19:36:28</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>Hosting</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/cyberfolks-error-403</guid>
                    <description>&lt;p&gt;Jeśli na kt&amp;oacute;rejś stronie hostowanej w CyberFolks.pl wyskoczy Error 403 to jest to kwestia uprawnień do plik&amp;oacute;w.&lt;/p&gt;
&lt;p&gt;Wystarczy wykonać w katalogu z plikami strony polecenia:&lt;/p&gt;
&lt;pre&gt;find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;&lt;/pre&gt;</description>
                    <content:encoded>&lt;p&gt;Jeśli na kt&amp;oacute;rejś stronie hostowanej w CyberFolks.pl wyskoczy Error 403 to jest to kwestia uprawnień do plik&amp;oacute;w.&lt;/p&gt;
&lt;p&gt;Wystarczy wykonać w katalogu z plikami strony polecenia:&lt;/p&gt;
&lt;pre&gt;find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;&lt;/pre&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>Usuwanie pierwszej linii z długiego pliki</title>
                    <link>https://blog.napraw.to/post/usuwanie-pierwszej-linii-z-dlugiego-pliki</link>
                    <comments>https://blog.napraw.to/post/usuwanie-pierwszej-linii-z-dlugiego-pliki#comments</comments>
                    <pubDate>2024-10-09 10:47:27</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>Linux</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/usuwanie-pierwszej-linii-z-dlugiego-pliki</guid>
                    <description>&lt;pre&gt;tail -n +2 source_file.txt &amp;gt; destination_file.txt&lt;/pre&gt;
&lt;p&gt;Przydatne przy odtwarzaniu bazy danych gdzie mysqldump dodaje na początku zabezpieczenie:&lt;/p&gt;
&lt;pre&gt;/*!999999\- enable the sandbox mode */&lt;/pre&gt;
&lt;p&gt;Źr&amp;oacute;dło: &lt;a href=&quot;https://stackoverflow.com/questions/339483/how-can-i-remove-the-first-line-of-a-text-file-using-bash-sed-script&quot;&gt;https://stackoverflow.com/questions/339483/how-can-i-remove-the-first-line-of-a-text-file-using-bash-sed-script&lt;/a&gt;&lt;/p&gt;</description>
                    <content:encoded>&lt;pre&gt;tail -n +2 source_file.txt &amp;gt; destination_file.txt&lt;/pre&gt;
&lt;p&gt;Przydatne przy odtwarzaniu bazy danych gdzie mysqldump dodaje na początku zabezpieczenie:&lt;/p&gt;
&lt;pre&gt;/*!999999\- enable the sandbox mode */&lt;/pre&gt;
&lt;p&gt;Źr&amp;oacute;dło: &lt;a href=&quot;https://stackoverflow.com/questions/339483/how-can-i-remove-the-first-line-of-a-text-file-using-bash-sed-script&quot;&gt;https://stackoverflow.com/questions/339483/how-can-i-remove-the-first-line-of-a-text-file-using-bash-sed-script&lt;/a&gt;&lt;/p&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>Zenbox - Zamawianie konta o określonej nazwie</title>
                    <link>https://blog.napraw.to/post/zenbox-zamawianie-konta-o-okreslonej-nazwie</link>
                    <comments>https://blog.napraw.to/post/zenbox-zamawianie-konta-o-okreslonej-nazwie#comments</comments>
                    <pubDate>2024-09-18 14:59:25</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>Hosting</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/zenbox-zamawianie-konta-o-okreslonej-nazwie</guid>
                    <description>&lt;p&gt;Trzeba do nich napisać na &lt;a href=&quot;mailto:kontakt@zenbox.pl&quot;&gt;kontakt@zenbox.pl&lt;/a&gt; przez zam&amp;oacute;wieniem konta:&lt;/p&gt;
&lt;p&gt;W dniu 18.09.2024 o 12:53, Konrad Matus | Zenbox.pl pisze:&lt;br /&gt;&amp;gt; przed rejestracją hostingu należy do nas napisać, że chce Pan własną nazwę użytkownika hostingu. Następnie po odpowiedzi od mnicha kt&amp;oacute;ry podejmie zgłoszenie będzie m&amp;oacute;gł Pan przejść do zamawiania usługi. Osoba, kt&amp;oacute;ra będzie odpowiadała za akceptację zam&amp;oacute;wień zostanie powiadomiona o tej sytuacji.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
                    <content:encoded>&lt;p&gt;Trzeba do nich napisać na &lt;a href=&quot;mailto:kontakt@zenbox.pl&quot;&gt;kontakt@zenbox.pl&lt;/a&gt; przez zam&amp;oacute;wieniem konta:&lt;/p&gt;
&lt;p&gt;W dniu 18.09.2024 o 12:53, Konrad Matus | Zenbox.pl pisze:&lt;br /&gt;&amp;gt; przed rejestracją hostingu należy do nas napisać, że chce Pan własną nazwę użytkownika hostingu. Następnie po odpowiedzi od mnicha kt&amp;oacute;ry podejmie zgłoszenie będzie m&amp;oacute;gł Pan przejść do zamawiania usługi. Osoba, kt&amp;oacute;ra będzie odpowiadała za akceptację zam&amp;oacute;wień zostanie powiadomiona o tej sytuacji.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>Imagick->readImage error</title>
                    <link>https://blog.napraw.to/post/imagick-readimage-error</link>
                    <comments>https://blog.napraw.to/post/imagick-readimage-error#comments</comments>
                    <pubDate>2024-08-28 11:15:03</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>PHP</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/imagick-readimage-error</guid>
                    <description>&lt;p&gt;Poniższy skrypt:&lt;/p&gt;
&lt;pre&gt;$imagick = new Imagick();
$imagick-&amp;gt;setResolution(150, 150);
$imagick-&amp;gt;readImage($source_file . '[0]');
$imagick-&amp;gt;writeImages($result_file, false);&lt;/pre&gt;
&lt;p&gt;Wywala błąd:&lt;/p&gt;
&lt;pre&gt;Fatal error: Uncaught ImagickException: FailedToExecuteCommand `'gs' -sstdout=%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 '-sDEVICE=pngalpha' -dTextAlphaBits=4 -dGraphicsAlphaBits=4 '-r150x150' -dPrinted=false -dFirstPage=1 -dLastPage=1 '-sOutputFile=/tmp/magick-pyOYVsKi7i7SAXNMW5EtwPaRASHaOYu5%d' '-f/tmp/magick-cz6OETDf_gRuXDy_HbCTsBN12F0rxl6A' '-f/tmp/magick-i9pxxZG7729nyd99OG23sqQCQHf9iMH6'' (32512) @ error/ghostscript-private.h/ExecuteGhostscriptCommand/74&lt;/pre&gt;
&lt;p&gt;Rozwiązanie:&lt;/p&gt;
&lt;p&gt;doinstalować ghostscript&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Źr&amp;oacute;dło: &lt;a href=&quot;https://stackoverflow.com/questions/24298815/php-uncaught-exception-imagickexception-with-message-failedtoexecutecommand&quot;&gt;https://stackoverflow.com/questions/24298815/php-uncaught-exception-imagickexception-with-message-failedtoexecutecommand&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Zenbox zgłoszenie &lt;strong&gt;[#DOPK-2931-RYJH]&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;</description>
                    <content:encoded>&lt;p&gt;Poniższy skrypt:&lt;/p&gt;
&lt;pre&gt;$imagick = new Imagick();
$imagick-&amp;gt;setResolution(150, 150);
$imagick-&amp;gt;readImage($source_file . '[0]');
$imagick-&amp;gt;writeImages($result_file, false);&lt;/pre&gt;
&lt;p&gt;Wywala błąd:&lt;/p&gt;
&lt;pre&gt;Fatal error: Uncaught ImagickException: FailedToExecuteCommand `'gs' -sstdout=%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 '-sDEVICE=pngalpha' -dTextAlphaBits=4 -dGraphicsAlphaBits=4 '-r150x150' -dPrinted=false -dFirstPage=1 -dLastPage=1 '-sOutputFile=/tmp/magick-pyOYVsKi7i7SAXNMW5EtwPaRASHaOYu5%d' '-f/tmp/magick-cz6OETDf_gRuXDy_HbCTsBN12F0rxl6A' '-f/tmp/magick-i9pxxZG7729nyd99OG23sqQCQHf9iMH6'' (32512) @ error/ghostscript-private.h/ExecuteGhostscriptCommand/74&lt;/pre&gt;
&lt;p&gt;Rozwiązanie:&lt;/p&gt;
&lt;p&gt;doinstalować ghostscript&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Źr&amp;oacute;dło: &lt;a href=&quot;https://stackoverflow.com/questions/24298815/php-uncaught-exception-imagickexception-with-message-failedtoexecutecommand&quot;&gt;https://stackoverflow.com/questions/24298815/php-uncaught-exception-imagickexception-with-message-failedtoexecutecommand&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Zenbox zgłoszenie &lt;strong&gt;[#DOPK-2931-RYJH]&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>CI3 - Where (OR AND)</title>
                    <link>https://blog.napraw.to/post/ci3-where-or-and</link>
                    <comments>https://blog.napraw.to/post/ci3-where-or-and#comments</comments>
                    <pubDate>2024-08-22 11:37:32</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>Codeigniter</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/ci3-where-or-and</guid>
                    <description>&lt;pre&gt;$this-&amp;gt;db-&amp;gt;group_start();
$this-&amp;gt;db-&amp;gt;where('contracts_id_client_purchaser', $id_client);
$this-&amp;gt;db-&amp;gt;or_where('contracts_id_client_supplier', $id_client);
$this-&amp;gt;db-&amp;gt;group_end();
$this-&amp;gt;db-&amp;gt;where('contracts_active', 1);
$this-&amp;gt;db-&amp;gt;order_by('id_contracts', 'desc');
$query = $this-&amp;gt;db-&amp;gt;get('contracts');&lt;/pre&gt;</description>
                    <content:encoded>&lt;pre&gt;$this-&amp;gt;db-&amp;gt;group_start();
$this-&amp;gt;db-&amp;gt;where('contracts_id_client_purchaser', $id_client);
$this-&amp;gt;db-&amp;gt;or_where('contracts_id_client_supplier', $id_client);
$this-&amp;gt;db-&amp;gt;group_end();
$this-&amp;gt;db-&amp;gt;where('contracts_active', 1);
$this-&amp;gt;db-&amp;gt;order_by('id_contracts', 'desc');
$query = $this-&amp;gt;db-&amp;gt;get('contracts');&lt;/pre&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>Codeigniter 4 - Nowy kontroler - Klienci (clients)</title>
                    <link>https://blog.napraw.to/post/codeigniter-4-nowy-kontroler-klienci-clients</link>
                    <comments>https://blog.napraw.to/post/codeigniter-4-nowy-kontroler-klienci-clients#comments</comments>
                    <pubDate>2024-04-22 08:12:10</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>Codeigniter 4</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/codeigniter-4-nowy-kontroler-klienci-clients</guid>
                    <description>&lt;pre&gt;php spark make:migration Clients&lt;/pre&gt;
&lt;pre&gt;vim app/Database/2024-01-01-000000_Clients.php&lt;/pre&gt;
&lt;pre&gt;php spark migrate&lt;/pre&gt;
&lt;pre&gt;php spark make:model Clients_model&lt;/pre&gt;
&lt;pre&gt;php spark make:controller Clients&lt;/pre&gt;
&lt;p&gt;Źr&amp;oacute;dło: &lt;a href=&quot;https://medium.com/@choirulihwan/how-to-create-crud-operation-with-codeigniter-4-and-react-js-fb54d28c923c&quot;&gt;https://medium.com/@choirulihwan/how-to-create-crud-operation-with-codeigniter-4-and-react-js-fb54d28c923c&lt;/a&gt;&lt;/p&gt;</description>
                    <content:encoded>&lt;pre&gt;php spark make:migration Clients&lt;/pre&gt;
&lt;pre&gt;vim app/Database/2024-01-01-000000_Clients.php&lt;/pre&gt;
&lt;pre&gt;php spark migrate&lt;/pre&gt;
&lt;pre&gt;php spark make:model Clients_model&lt;/pre&gt;
&lt;pre&gt;php spark make:controller Clients&lt;/pre&gt;
&lt;p&gt;Źr&amp;oacute;dło: &lt;a href=&quot;https://medium.com/@choirulihwan/how-to-create-crud-operation-with-codeigniter-4-and-react-js-fb54d28c923c&quot;&gt;https://medium.com/@choirulihwan/how-to-create-crud-operation-with-codeigniter-4-and-react-js-fb54d28c923c&lt;/a&gt;&lt;/p&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>Laravel 10 - CRUD example</title>
                    <link>https://blog.napraw.to/post/laravel-10-crud-example</link>
                    <comments>https://blog.napraw.to/post/laravel-10-crud-example#comments</comments>
                    <pubDate>2024-04-21 11:33:13</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>Laravel</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/laravel-10-crud-example</guid>
                    <description>&lt;p&gt;&lt;strong&gt;1. Stw&amp;oacute;rz model&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;php artisan make:model Company -m&lt;/pre&gt;
&lt;p&gt;wynik&lt;/p&gt;
&lt;pre&gt;INFO Model [app/Models/Company.php] created successfully.
INFO Migration [database/migrations/2024_04_21_085712_create_companies_table.php] created successfully.&lt;/pre&gt;
&lt;p&gt;</description>
                    <content:encoded>&lt;p&gt;&lt;strong&gt;1. Stw&amp;oacute;rz model&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;php artisan make:model Company -m&lt;/pre&gt;
&lt;p&gt;wynik&lt;/p&gt;
&lt;pre&gt;INFO Model [app/Models/Company.php] created successfully.
INFO Migration [database/migrations/2024_04_21_085712_create_companies_table.php] created successfully.&lt;/pre&gt;
&lt;p&gt;&lt;!-- pagebreak --&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Aktualizuj strukturę tabeli&lt;/strong&gt; w pliku &lt;strong&gt;database/migrations/2024_04_21_085712_create_companies_table.php&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;public function up()
{
    Schema::create('companies', function (Blueprint $table) {
        $table-&amp;gt;id();
        $table-&amp;gt;string('name');
        $table-&amp;gt;string('email');
        $table-&amp;gt;string('address');
        $table-&amp;gt;timestamps();
    });
}&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;3. Aktualizuj pola &lt;/strong&gt;w&lt;strong&gt; app/Models/Company.php&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;...

class Company extends Model
{
    use HasFactory;

    protected $fillable = ['name', 'email', 'address'];
}&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;4. Uruchom migrację&lt;/strong&gt; aby stworzyć tabelę w bazie:&lt;/p&gt;
&lt;pre&gt;php artisan migrate&lt;/pre&gt;
&lt;p&gt;wynik&lt;/p&gt;
&lt;pre&gt;INFO  Preparing database.  

Creating migration table ............................................................................................................... 28ms DONE

INFO  Running migrations.  

2024_04_21_085712_create_companies_table ............................................................................................... 23ms DONE&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;5. Stw&amp;oacute;rz kontroler&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;php artisan make:controller CompanyController&lt;/pre&gt;
&lt;p&gt;wynik&lt;/p&gt;
&lt;pre&gt;INFO Controller [app/Http/Controllers/CompanyController.php] created successfully.&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;6. Dodaj wymagane funkcje&lt;/strong&gt; w kontrolerze &lt;strong&gt;app/Http/controllers/CompanyController.php&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;namespace App\Http\Controllers;

use App\Models\Company;
use Illuminate\Http\Request;

class CompanyController extends Controller {

    public function index() {
        $companies = Company::orderBy('id', 'desc')-&amp;gt;paginate(5);
        return view('companies.index', compact('companies'));
    }

    public function create() {
        return view('companies.create');
    }

    public function store(Request $request) {
        $request-&amp;gt;validate([
            'name' =&amp;gt; 'required',
            'email' =&amp;gt; 'required',
            'address' =&amp;gt; 'required',
        ]);

        Company::create($request-&amp;gt;post());

        return redirect()-&amp;gt;route('companies.index')-&amp;gt;with('success', 'Company has been created successfully.');
    }

    public function show(Company $company) {
        return view('companies.show', compact('company'));
    }

    public function edit(Company $company) {
        return view('companies.edit', compact('company'));
    }

    public function update(Request $request, Company $company) {
        $request-&amp;gt;validate([
            'name' =&amp;gt; 'required',
            'email' =&amp;gt; 'required',
            'address' =&amp;gt; 'required',
        ]);

        $company-&amp;gt;fill($request-&amp;gt;post())-&amp;gt;save();

        return redirect()-&amp;gt;route('companies.index')-&amp;gt;with('success', 'Company Has Been updated successfully');
    }

    public function destroy(Company $company) {
        $company-&amp;gt;delete();
        return redirect()-&amp;gt;route('companies.index')-&amp;gt;with('success', 'Company has been deleted successfully');
    }

}&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;7. Dodaj trasy&lt;/strong&gt; w &lt;strong&gt;routes/web.php&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;Route::resource('companies', CompanyController::class);&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;8. Dodaj widoki&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;resources/views/companies/index.blade.php
resources/views/companies/create.blade.php
resources/views/companies/edit.blade.php
resources/views/companies/show.blade.php&lt;/pre&gt;
&lt;p&gt;Źr&amp;oacute;dło: &lt;a href=&quot;https://techvblogs.com/blog/laravel-10-crud-example-tutorial-for-beginners&quot;&gt;https://techvblogs.com/blog/laravel-10-crud-example-tutorial-for-beginners&lt;/a&gt;&lt;/p&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                            <item>
                    <title>Laravel 11 - Disable session storage in database</title>
                    <link>https://blog.napraw.to/post/laravel-11-disable-session-storage-in-database</link>
                    <comments>https://blog.napraw.to/post/laravel-11-disable-session-storage-in-database#comments</comments>
                    <pubDate>2024-04-20 00:34:31</pubDate>
                    <dc:creator>Bartłomiej Gałęzia</dc:creator>
                    <category>Laravel</category>                    

                    <guid isPermaLink="false">https://blog.napraw.to/post/laravel-11-disable-session-storage-in-database</guid>
                    <description>&lt;p&gt;Od razu po ściągnięciu nowego Laravela nie da się uruchomić strony bo system nie znajduje tabeli sessions w bazie.&lt;/p&gt;
&lt;pre&gt;SQLSTATE[42S02]: Base table or view not found: 1146 Table 'sessions' doesn't exist&lt;/pre&gt;
&lt;p&gt;Można:&lt;/p&gt;
&lt;p&gt;1. Wykonać migracje i utworzyć tabelę z sesjami&lt;/p&gt;
&lt;p&gt;2. Wyłączyć zapisywanie sesji w bazie:&lt;/p&gt;
&lt;pre&gt;vim .env&lt;/pre&gt;
&lt;pre&gt;SESSION_DRIVER=database -&amp;gt; SESSION_DRIVER=file&lt;/pre&gt;
&lt;p&gt;Źr&amp;oacute;dło: &lt;a href=&quot;https://arjunamrutiya.medium.com/a-comprehensive-guide-to-laravel-sessions-understanding-and-utilizing-session-methods-a454ae9c55e4&quot;&gt;https://arjunamrutiya.medium.com/a-comprehensive-guide-to-laravel-sessions-understanding-and-utilizing-session-methods-a454ae9c55e4&lt;/a&gt;&lt;/p&gt;</description>
                    <content:encoded>&lt;p&gt;Od razu po ściągnięciu nowego Laravela nie da się uruchomić strony bo system nie znajduje tabeli sessions w bazie.&lt;/p&gt;
&lt;pre&gt;SQLSTATE[42S02]: Base table or view not found: 1146 Table 'sessions' doesn't exist&lt;/pre&gt;
&lt;p&gt;Można:&lt;/p&gt;
&lt;p&gt;1. Wykonać migracje i utworzyć tabelę z sesjami&lt;/p&gt;
&lt;p&gt;2. Wyłączyć zapisywanie sesji w bazie:&lt;/p&gt;
&lt;pre&gt;vim .env&lt;/pre&gt;
&lt;pre&gt;SESSION_DRIVER=database -&amp;gt; SESSION_DRIVER=file&lt;/pre&gt;
&lt;p&gt;Źr&amp;oacute;dło: &lt;a href=&quot;https://arjunamrutiya.medium.com/a-comprehensive-guide-to-laravel-sessions-understanding-and-utilizing-session-methods-a454ae9c55e4&quot;&gt;https://arjunamrutiya.medium.com/a-comprehensive-guide-to-laravel-sessions-understanding-and-utilizing-session-methods-a454ae9c55e4&lt;/a&gt;&lt;/p&gt;</content:encoded>                    
                    <slash:comments>0</slash:comments>
                </item>
                   
    </channel>
</rss>
