tag:blogger.com,1999:blog-152916892024-03-07T04:15:37.489+00:00Benvenuto straniero - Ceci ce un blog!Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.comBlogger503125tag:blogger.com,1999:blog-15291689.post-43999221042523096342023-11-28T06:01:00.002+00:002023-11-28T06:06:39.904+00:00xfce4-screenshooter keyboard shortcut<pre>
sh -c 'xfce4-screenshooter --fullscreen --save "$HOME/Pictures/Screenshots/Screenshot_$(date +%Y-%m-%d_%H:%M:%S).png"'
sh -c 'xfce4-screenshooter --window --save "$HOME/Pictures/Screenshots/Screenshot_$(date +%Y-%m-%d_%H:%M:%S).png"'Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-63224125304014350732023-11-27T21:33:00.001+00:002023-11-27T22:02:11.879+00:00Parallel compression using Pigz<pre>
#no compression
tar --use-compress-program="pigz -k -0 " -cf dir.tar.gz dir
#best compression
tar --use-compress-program="pigz -k -11 " -cf dir.tar.gz dir
#uncompress
unpigz dir.tar.gz
</pre>Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-65940610945987012812023-10-18T19:48:00.008+01:002023-10-25T00:51:12.963+01:00Debian 12 - sudo vim /etc/apt/sources.list <div style="font-family: ui-monospace;">
<pre>deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware
deb-src http://security.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware
deb http://deb.debian.org/debian/ bookworm-backports main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm-backports main contrib non-free non-free-firmware
</pre>
</div>
Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-58743363237423674772023-06-20T12:16:00.011+01:002023-06-20T12:20:27.142+01:00Javascript async defer<p style="background-color: white; break-before: avoid; color: #313130; font-size: 16px; margin: 0px 0px 12px; padding: 0px;"><span style="font-family: helvetica;">Both <code style="background: var(--prismBlockBg); border-radius: 2px; color: var(--foregroundAlt); padding: 2px 4px;">async</code> and <code style="background: var(--prismBlockBg); border-radius: 2px; color: var(--foregroundAlt); padding: 2px 4px;">defer</code> have one common thing: downloading of such scripts doesn’t block page rendering. So the user can read page content and get acquainted with the page immediately.</span></p><p style="background-color: white; color: #313130; font-size: 16px; margin: 0px 0px 12px; padding: 0px;"><span style="font-family: helvetica;">But there are also essential differences between them:</span></p><table style="background-color: white; border-collapse: collapse; color: #313130; font-size: 15px; margin: 30px 0px; width: 800px;"><thead><tr style="border-bottom: 1px solid var(--borderPrimary);"><th style="border-bottom: 3px solid var(--borderPrimary); margin: 0px; padding: 2px 1em 2px 5px; text-align: left; vertical-align: bottom;"></th><th style="border-bottom: 3px solid var(--borderPrimary); margin: 0px; padding: 2px 1em 2px 5px; text-align: left; vertical-align: bottom;"><span style="font-family: helvetica;">Order</span></th><th style="border-bottom: 3px solid var(--borderPrimary); margin: 0px; padding: 2px 1em 2px 5px; text-align: left; vertical-align: bottom;"><code style="background: var(--prismBlockBg); border-radius: 2px; color: var(--foregroundAlt); font-weight: inherit; padding: 2px 4px;"><span style="font-family: helvetica;">DOMContentLoaded</span></code></th></tr></thead><tbody style="border: 0px;"><tr style="border-bottom: 1px solid var(--borderPrimary);"><td style="margin: 0px; padding: 2px 1em 2px 5px;"><code style="background: var(--prismBlockBg); border-radius: 2px; color: var(--foregroundAlt); font-weight: inherit; padding: 2px 4px;"><span style="font-family: helvetica;">async</span></code></td><td style="margin: 0px; padding: 2px 1em 2px 5px;"><span style="font-family: helvetica;"><em>Load-first order</em>. <br />Their document order doesn’t matter which loads first runs first</span></td><td style="margin: 0px; padding: 2px 1em 2px 5px;"><span style="font-family: helvetica;">Irrelevant.<br />May load and execute while the document has not yet been fully downloaded.<br />That happens if scripts are small or cached, and the document is long enough.</span></td></tr><tr style="background: var(--backgroundAlt); border-bottom: 1px solid var(--borderPrimary);"><td style="margin: 0px; padding: 2px 1em 2px 5px;"><code style="background: var(--prismBlockBg); border-radius: 2px; color: var(--foregroundAlt); font-weight: inherit; padding: 2px 4px;"><span style="font-family: helvetica;">defer</span></code></td><td style="margin: 0px; padding: 2px 1em 2px 5px;"><span style="font-family: helvetica;"><em>Document order</em> (as they go in the document).</span></td><td style="margin: 0px; padding: 2px 1em 2px 5px;"><span style="font-family: helvetica;">Execute after the document is loaded and parsed (they wait if needed), right before <code style="background: var(--prismBlockBg); border-radius: 2px; color: var(--foregroundAlt); font-weight: inherit; padding: 2px 4px;">DOMContentLoaded</code>.</span></td></tr></tbody></table><p style="background-color: white; color: #313130; font-size: 16px; margin: 0px 0px 12px; padding: 0px;"><span style="font-family: helvetica;">In practice, <code style="background: var(--prismBlockBg); border-radius: 2px; color: var(--foregroundAlt); padding: 2px 4px;">defer</code> is used for scripts that need the whole DOM and/or their relative execution order is important.</span></p><p style="background-color: white; color: #313130; font-size: 16px; margin: 0px 0px 12px; padding: 0px;"><span style="font-family: helvetica;">And <code style="background: var(--prismBlockBg); border-radius: 2px; color: var(--foregroundAlt); padding: 2px 4px;">async</code> is used for independent scripts, like counters or ads. And their relative execution order does not matter.</span></p><div class="important important_warn" style="background-color: white; border-radius: 6px; border: 3px solid var(--borderImportant); color: #313130; font-size: 16px; margin: 16px 0px;"><div class="important__header" style="border: none; margin: 0px; padding: 24px 24px 0px;"><span class="important__type" style="font-family: helvetica; font-weight: 700;">Page without scripts should be usable</span></div><div class="important__content" style="margin: 12px 24px 24px;"><p style="margin: 0px 0px 12px; padding: 0px;"><span style="font-family: helvetica;">Please note: if you’re using <code style="background: var(--prismBlockBg); border-radius: 2px; color: var(--foregroundAlt); padding: 2px 4px;">defer</code> or <code style="background: var(--prismBlockBg); border-radius: 2px; color: var(--foregroundAlt); padding: 2px 4px;">async</code>, then user will see the page <em>before</em> the script loads.</span></p><p style="margin: 0px 0px 12px; padding: 0px;"><span style="font-family: helvetica;">In such case, some graphical components are probably not initialized yet.</span></p><p style="margin: 0px 0px 12px; padding: 0px;"><span style="font-family: helvetica;">Don’t forget to put “loading” indication and disable buttons that aren’t functional yet. Let the user clearly see what he can do on the page, and what’s still getting ready.</span></p></div></div>Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-20236654934057692502023-01-10T00:11:00.003+00:002023-01-10T00:11:37.199+00:00https://garden.bradwoods.io/notes/css/3dhttps://garden.bradwoods.io/notes/css/3dDaniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-59634250864601717272022-10-13T18:04:00.005+01:002022-10-13T18:09:16.764+01:00How to use `not` condition in the gitlab api issue query<div class="answercell post-layout--right">
<div class="s-prose js-post-body" itemprop="text">
<p>From <a href="https://docs.gitlab.com/ee/api/issues.html#list-issues" rel="noreferrer">Gitlab issues api documentation</a>, <code>not</code> is of type <code>Hash</code>. It's a special type documented <a href="https://docs.gitlab.com/ee/api/#hash" rel="noreferrer">here</a></p>
<p>For example to exclude the labels <code>Category:DAST</code> and <code>devops::secure</code>, and to exclude the milestone <code>13.11</code>, you would use the following parameters:</p>
<pre class="lang-py s-code-block"><code class="hljs language-python"><span class="hljs-keyword">not</span>[labels]=Category:DAST,devops::secure
<span class="hljs-keyword">not</span>[milestone]=<span class="hljs-number">13.11</span>
</code></pre>
<p>api example: <a href="https://gitlab.com/api/v4/issues?scope=all&state=opened&assignee_username=derekferguson&not%5Blabels%5D=Category:DAST,devops::secure&not%5Bmilestone%5D=13.11" rel="noreferrer">https://gitlab.com/api/v4/issues?scope=all&state=opened&assignee_username=derekferguson&not[labels]=Category:DAST,devops::secure&not[milestone]=13.11</a></p>
<p>Using gitlab python module, you would need to pass some extra parameters by adding more keyword arguments:</p>
<pre class="lang-py s-code-block"><code class="hljs language-python"><span class="hljs-keyword">import</span> gitlab
gl = gitlab.Gitlab(<span class="hljs-string">'https://gitlab.com'</span>)
extra_params = {
<span class="hljs-string">'not[labels]'</span>: <span class="hljs-string">"Category:DAST,devops::secure"</span>,
<span class="hljs-string">"not[milestone]"</span>: <span class="hljs-string">"13.11"</span>
}
issues = gl.issues.<span class="hljs-built_in">list</span>(<span class="hljs-built_in">all</span>=<span class="hljs-literal">True</span>, scope=<span class="hljs-string">'all'</span>, state=<span class="hljs-string">'opened'</span>,
assignee_username=<span class="hljs-string">'derekferguson'</span>, **extra_params)
<span class="hljs-keyword">for</span> issue <span class="hljs-keyword">in</span> issues:
<span class="hljs-built_in">print</span>(issue.title)
</code></pre>
</div>
</div>Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-16109624021057089142022-09-21T00:16:00.001+01:002022-09-21T00:16:14.748+01:00Debian 11 - sudo subl /etc/apt/sources.list <pre>
deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free
deb http://deb.debian.org/debian bullseye-backports main contrib non-free
deb-src http://deb.debian.org/debian bullseye-backports main contrib non-free
</pre>Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-78040145830930283652022-07-22T02:33:00.001+01:002022-07-22T02:33:39.852+01:00The evolution of PHP: from PHP 5.6 to PHP 8.2<iframe width="560" height="315" src="https://www.youtube.com/embed/x9bSUo6TGgY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-72870573511022985422022-06-12T02:13:00.003+01:002022-06-12T02:33:32.730+01:00Ubuntu Minimal 22.04 LTS (TODO)<pre>
Install Ubuntu Server (minimized)
</pre>
<pre>
sudo apt purge -y snapd
sudo apt purge -y apparmor
</pre>
<pre>
sudo apt update;
sudo apt install xubuntu-core^;
</pre>
<pre>
sudo apt purge -y snapd
sudo apt purge -y gnome-software-plugin-snap
sudo apt purge -y apparmor
sudo apt purge -y cups*
</pre>
<pre>
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
<pre>Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-5106051404075284282022-06-11T23:06:00.004+01:002022-06-12T02:46:58.156+01:00Ubuntu remove snapsudo apt remove --purge -y snapd gnome-software-plugin-snapDaniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-44304708188578027402022-02-07T03:05:00.002+00:002022-02-07T03:05:24.341+00:00How to find total filesize grouped by extension<pre>
find . -name '*' -type f -printf '%b.%f\0' | awk -F . -v RS='\0' '{if (NF==2) $(NF+1)=" "; s[$NF] += $1; n[$NF]++} END {for (e in s) printf "%15d %6d %s\n", s[e]*512, n[e], e}' | sort -rn | numfmt --to=iec-i --suffix=B
</pre>Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-42895275246390553742022-02-07T02:56:00.005+00:002022-02-07T02:56:51.479+00:00How can I recursively delete all files of a specific extension in the current directory?<pre>
You don't even need to use rm in this case if you are afraid. Use find:
find . -name "*.bak" -type f -delete
But use it with precaution. Run first:
find . -name "*.bak" -type f
to see exactly which files you will remove.
</pre>
Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-45155204484457418062022-02-06T23:46:00.000+00:002022-02-06T23:46:02.071+00:00Unzip All Files In A Directory<pre>This works in bash, according to this link:
unzip \*.zip
or
Just put in some quotes to escape the wildcard:
unzip "*.zip"
</pre>Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-31753295311457182832022-02-03T17:29:00.005+00:002022-02-03T17:29:49.503+00:00sudo apt install usb-creator-gtk<blockquote>sudo apt install usb-creator-gtk</blockquote>Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-40771902164151760122022-01-22T00:38:00.003+00:002022-01-22T00:38:29.295+00:00Ubuntu – Increase number of old kernels to keep on autoremove<p><span style="background-color: white; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px;">So I looked into the script a little bit and some minor changes was enough to get what you want.</span></p><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;">First create a backup of: <code style="box-sizing: border-box; color: #e83e8c; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 14px; word-break: break-word;">/etc/kernel/postinst.d/apt-auto-removal</code>:</p><pre style="background: rgb(238, 238, 238); box-sizing: border-box; color: #212529; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 14px; line-height: 1.6; margin-bottom: 1rem; margin-top: 0px; max-width: 100%; overflow: auto; padding: 0px;"><code class="hljs language-cpp" style="background: rgb(30, 30, 30); box-sizing: border-box; color: gainsboro; display: block; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: inherit; overflow-x: auto; padding: 1em; word-break: normal;">sudo cp /etc/kernel/postinst.d/apt-<span class="hljs-keyword" style="box-sizing: border-box; color: #569cd6;">auto</span>-removal{,.bk}
</code></pre><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;">Then find this line:</p><pre style="background: rgb(238, 238, 238); box-sizing: border-box; color: #212529; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 14px; line-height: 1.6; margin-bottom: 1rem; margin-top: 0px; max-width: 100%; overflow: auto; padding: 0px;"><code class="hljs language-ini" style="background: rgb(30, 30, 30); box-sizing: border-box; color: gainsboro; display: block; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: inherit; overflow-x: auto; padding: 1em; word-break: normal;"><span class="hljs-attr" style="box-sizing: border-box; color: #9cdcfe;">previous_version</span>=<span class="hljs-string" style="box-sizing: border-box; color: #d69d85;">"$(echo "</span><span class="hljs-variable" style="box-sizing: border-box; color: #bd63c5;">$debverlist</span><span class="hljs-string" style="box-sizing: border-box; color: #d69d85;">" | sed -n 2p)"</span>
</code></pre><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;">and change it to:</p><pre style="background: rgb(238, 238, 238); box-sizing: border-box; color: #212529; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 14px; line-height: 1.6; margin-bottom: 1rem; margin-top: 0px; max-width: 100%; overflow: auto; padding: 0px;"><code class="hljs language-ini" style="background: rgb(30, 30, 30); box-sizing: border-box; color: gainsboro; display: block; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: inherit; overflow-x: auto; padding: 1em; word-break: normal;"><span class="hljs-attr" style="box-sizing: border-box; color: #9cdcfe;">previous_version</span>=<span class="hljs-string" style="box-sizing: border-box; color: #d69d85;">"$(echo "</span><span class="hljs-variable" style="box-sizing: border-box; color: #bd63c5;">$debverlist</span><span class="hljs-string" style="box-sizing: border-box; color: #d69d85;">" | sed -n 2,4p)"</span>
</code></pre><ul style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; list-style-image: initial; list-style-position: initial; margin: 0px 0px 1rem 1em;"><li style="box-sizing: border-box;">Now it should keep 3 old kernel + Running + Newly installed one</li><li style="box-sizing: border-box;">Of course you have to run it once manually or install a new kernel to make it take effect.</li></ul>Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-79024568918136751842022-01-13T02:05:00.005+00:002022-01-13T02:05:35.868+00:00If you're getting Youtube ads... Here's are custom rules that actually work.<p><span style="background-color: white;"> <span style="font-family: "Noto Sans", Arial, sans-serif; font-size: 14px;">Right click UBO icon --> Settings --> My Filters ---> Copy & Paste</span></span></p><p><span style="background-color: white; font-family: "Noto Sans", Arial, sans-serif; font-size: 14px;">For starters you can try only:</span></p><pre class="_3GnarIQX9tD_qsgXkfSDz1" style="border: 0px; display: grid; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.4; margin-bottom: 4px; margin-top: 4px; max-width: 100%; overflow: auto; padding: 8px; vertical-align: baseline;"><code class="_34q3PgLsx9zIU5BiSOjFoM" style="border: 0px; font-family: "Noto Mono", Menlo, Monaco, Consolas, monospace; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; line-height: 20px; margin: 0px; max-width: 100%; overflow: auto; padding: 0px; vertical-align: baseline;"><span style="background-color: white;">||youtube.com^$csp=worker-src 'none'
</span></code><div style="font-family: inherit; font-size: 14px;"><span style="background-color: white;"><br /></span></div><div><span style="font-family: Times New Roman;"><span style="font-size: 14px;"><a href="https://www.reddit.com/r/uBlockOrigin/comments/s2j3qw/if_youre_getting_youtube_ads_heres_are_custom/">https://www.reddit.com/r/uBlockOrigin/comments/s2j3qw/if_youre_getting_youtube_ads_heres_are_custom/</a></span></span></div></pre>Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-10240275618062150482021-12-16T22:31:00.001+00:002021-12-16T22:31:26.585+00:00Max disk cache size in google chrome<p> Google chrome stores cache size as a signed integer, so the maximum size is 2147483647 bytes or just under 2gb.</p><p><br /></p><p>reset;</p><p>/usr/bin/google-chrome %U --disk-cache-dir='/tmp/google-chrome/' --disk-cache-size=2147483647</p>Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-73421435846136343812021-10-14T19:00:00.002+01:002021-10-14T19:00:26.687+01:00Sublime - delete all lines containing specific value.*(text in question).*Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-38817049185029382562021-01-31T00:03:00.005+00:002021-01-31T00:03:44.283+00:00Remove everything after first space occurs<p> In regular expression mode, search for:</p><p><br /></p><p>\t.*</p><p><br /></p><p>And replace with</p><p><br /></p><p>Nothing</p>Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-24281916839687048242021-01-05T14:50:00.003+00:002021-01-05T14:50:51.520+00:00Can I make git diff ignore permission changes<p> <span style="background-color: #e4e6e8; color: #242729; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-size: 13px; white-space: pre-wrap;">git diff -G.</span></p>Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-42871665659405193902020-12-05T07:46:00.001+00:002020-12-05T07:46:04.799+00:00How Quantum Computers Break Encryption | Shor's Algorithm Explained<div style="text-align: center;"><iframe frameborder="0" height="270" src="https://www.youtube.com/embed/lvTqbM5Dq4Q" width="480"></iframe></div>Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-76379073030644417532020-12-05T07:09:00.000+00:002020-12-05T07:09:27.812+00:00Quadratic Funding: Why it Better Funds Public Goods During COVID-19<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/dZS1PuoghwY" width="320" youtube-src-id="dZS1PuoghwY"></iframe></div><br /><p><br /></p>Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-71710609944918894762020-08-01T20:40:00.001+01:002020-08-01T20:40:09.113+01:00Test write speed<div>reset;sudo dd if=/dev/zero of=/tmp/t.img bs=4G count=1 oflag=dsync</div><div><br /></div>Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-57483245328354919802020-06-28T13:46:00.001+01:002020-06-28T13:46:47.478+01:00Le Grand Rendez-Vous: The official film<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/7nFTMtX5n_A" width="320" youtube-src-id="7nFTMtX5n_A"></iframe></div>Daniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0tag:blogger.com,1999:blog-15291689.post-29737656467049589542020-06-23T17:16:00.000+01:002020-06-23T17:16:30.239+01:00Sort and remove duplicates but leave onecat -n request.txt | sort -uk2 | sort -nk1 | cut -f2- > request2.txtDaniel Abranteshttp://www.blogger.com/profile/01324203779812055808noreply@blogger.com0