jekyll build from Action e9bb986110
This commit is contained in:
parent
769e4394f9
commit
2ab0da8276
@ -1,12 +1,12 @@
|
||||
<!doctype html>
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose
|
||||
Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
-->
|
||||
<html lang="en" class="no-js">
|
||||
--><html lang="en" class="no-js">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- begin _includes/seo.html --><title>First blog post - Şahin Akkaya’s Personal Page</title>
|
||||
@ -116,13 +116,17 @@
|
||||
/home/sahin/
|
||||
|
||||
</a>
|
||||
<ul class="visible-links"><li class="masthead__menu-item">
|
||||
<ul class="visible-links">
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/">Home</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/about/">About</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/contact/">Contact</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<button class="search__toggle" type="button">
|
||||
<span class="visually-hidden">Toggle search</span>
|
||||
@ -185,7 +189,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/sahinakkayadev" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
<li><a href="https://github.com/sahinakkaya" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
|
||||
|
||||
|
||||
@ -333,7 +337,7 @@ So here I am and welcome to my first blog. Having a personal space on the Intern
|
||||
<p>There are several reasons for starting my own site and blogging, but I can list the most important ones as follows:</p>
|
||||
|
||||
<h3 id="giving-back-to-community">Giving back to community</h3>
|
||||
<p>I use the software developed and brought by the community every day. The moment I power on my computer I start using Free Software. It really amazes me to see the work produced by people who do not know each other at all. For example, I did not even write a single line of code for this site. If Free Software didn’t exist, I’d either have to spend money and use a platform that I have limited control over, or waste my time and build a site with a possibly worse design than this one<a href="##" title="swh" class="cd"><sup class="ab">*</sup></a>. In return for this, I want to give back to the community. For me, the way to give back to the community so far has been to share the projects I’ve done and archive the things I learn every day in a repository called <a href="https://github.com/Asocia/til">TIL</a><a href="##" title="Today I Learned" class="cd"><sup class="ab">*</sup></a>. But some of the til’s I’ve written recently are getting lengthy and I think they deserve their own posts. So instead of writing long til’s, I will blog what I learned here.</p>
|
||||
<p>I use the software developed and brought by the community every day. The moment I power on my computer I start using Free Software. It really amazes me to see the work produced by people who do not know each other at all. For example, I did not even write a single line of code for this site. If Free Software didn’t exist, I’d either have to spend money and use a platform that I have limited control over, or waste my time and build a site with a possibly worse design than this one<a href="##" title="swh" class="cd"><sup class="ab">*</sup></a>. In return for this, I want to give back to the community. For me, the way to give back to the community so far has been to share the projects I’ve done and archive the things I learn every day in a repository called <a href="https://github.com/sahinakkaya/til">TIL</a><a href="##" title="Today I Learned" class="cd"><sup class="ab">*</sup></a>. But some of the til’s I’ve written recently are getting lengthy and I think they deserve their own posts. So instead of writing long til’s, I will blog what I learned here.</p>
|
||||
|
||||
<h3 id="archiving-the-memories">Archiving the memories</h3>
|
||||
<p>I like to go over what I have done in the past once in a while. Blogging is perfect way to do this. I still read my diaries that I wrote in the past and they are fun. But I promise I will keep these posts more formal than my diaries<a href="##" title="swh" class="cd"><sup class="ab">*</sup></a>.</p>
|
||||
@ -365,16 +369,7 @@ So here I am and welcome to my first blog. Having a personal space on the Intern
|
||||
|
||||
</footer>
|
||||
|
||||
<section class="page__share">
|
||||
|
||||
|
||||
<a href="https://twitter.com/intent/tweet?text=First+blog+post%20https%3A%2F%2Fsahinakkaya.dev%2F2021%2F12%2F24%2Ffirst-blog-post.html" class="btn btn--twitter" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Twitter"><i class="fab fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
|
||||
|
||||
<a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fsahinakkaya.dev%2F2021%2F12%2F24%2Ffirst-blog-post.html" class="btn btn--facebook" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Facebook"><i class="fab fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
|
||||
|
||||
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fsahinakkaya.dev%2F2021%2F12%2F24%2Ffirst-blog-post.html" class="btn btn--linkedin" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on LinkedIn"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<nav class="pagination">
|
||||
@ -440,7 +435,7 @@ So here I am and welcome to my first blog. Having a personal space on the Intern
|
||||
|
||||
|
||||
<p class="archive__item-excerpt" itemprop="description">trap them and kill them!
|
||||
</p>
|
||||
There is a beautiful command in Linux called trap which traps signals and let you run specific commands when they invoked. There is ...</p>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
@ -596,13 +591,15 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
|
||||
|
||||
<div class="search-content">
|
||||
<div class="search-content__inner-wrap"><form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<div class="search-content__inner-wrap">
|
||||
<form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<label class="sr-only" for="search">
|
||||
Enter your search term...
|
||||
</label>
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term..." />
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term...">
|
||||
</form>
|
||||
<div id="results" class="results"></div></div>
|
||||
<div id="results" class="results"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -624,7 +621,7 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">
|
||||
Check out the <a href="https://github.com/Asocia/sahinakkayadotdev">code</a> of this site.
|
||||
</div>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<!doctype html>
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose
|
||||
Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
-->
|
||||
<html lang="en" class="no-js">
|
||||
--><html lang="en" class="no-js">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- begin _includes/seo.html --><title>Stop cat-pipe’ing, You Are Doing It Wrong! - Şahin Akkaya’s Personal Page</title>
|
||||
@ -116,13 +116,17 @@
|
||||
/home/sahin/
|
||||
|
||||
</a>
|
||||
<ul class="visible-links"><li class="masthead__menu-item">
|
||||
<ul class="visible-links">
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/">Home</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/about/">About</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/contact/">Contact</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<button class="search__toggle" type="button">
|
||||
<span class="visually-hidden">Toggle search</span>
|
||||
@ -185,7 +189,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/sahinakkayadev" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
<li><a href="https://github.com/sahinakkaya" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
|
||||
|
||||
|
||||
@ -374,7 +378,8 @@ util.lua: highlight<span class="o">(</span>group, properties<span class="o">)
|
||||
<p>Isn’t this neat? You might say that <em>“This is cheating! You are using a wild card, of course it will be easier.”</em> Well, yes. Technically I could use the same wild card in the first command like <code class="language-plaintext highlighter-rouge">cat * | grep light</code> but:</p>
|
||||
<ul>
|
||||
<li>I figured that out only after using wild card in the second command. So I think it is does not feel natural.</li>
|
||||
<li>It is still not giving the same output. Try and see the difference! <a href="##" title="You will not be able to see which file contains which line. 'cat' will just concatenate all the input.">*</a></li>
|
||||
<li>It is still not giving the same output. Try and see the difference! <a href="##" title="You will not be able to see which file contains which line. 'cat' will just concatenate all the input.">*</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
@ -392,16 +397,7 @@ util.lua: highlight<span class="o">(</span>group, properties<span class="o">)
|
||||
|
||||
</footer>
|
||||
|
||||
<section class="page__share">
|
||||
|
||||
|
||||
<a href="https://twitter.com/intent/tweet?text=Stop+cat-pipe%27ing%2C+You+Are+Doing+It+Wrong%21%20https%3A%2F%2Fsahinakkaya.dev%2F2022%2F01%2F01%2Fstop-cat-pipeing.html" class="btn btn--twitter" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Twitter"><i class="fab fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
|
||||
|
||||
<a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fsahinakkaya.dev%2F2022%2F01%2F01%2Fstop-cat-pipeing.html" class="btn btn--facebook" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Facebook"><i class="fab fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
|
||||
|
||||
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fsahinakkaya.dev%2F2022%2F01%2F01%2Fstop-cat-pipeing.html" class="btn btn--linkedin" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on LinkedIn"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<nav class="pagination">
|
||||
@ -468,7 +464,7 @@ util.lua: highlight<span class="o">(</span>group, properties<span class="o">)
|
||||
|
||||
|
||||
<p class="archive__item-excerpt" itemprop="description">trap them and kill them!
|
||||
</p>
|
||||
There is a beautiful command in Linux called trap which traps signals and let you run specific commands when they invoked. There is ...</p>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
@ -624,13 +620,15 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
|
||||
|
||||
<div class="search-content">
|
||||
<div class="search-content__inner-wrap"><form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<div class="search-content__inner-wrap">
|
||||
<form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<label class="sr-only" for="search">
|
||||
Enter your search term...
|
||||
</label>
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term..." />
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term...">
|
||||
</form>
|
||||
<div id="results" class="results"></div></div>
|
||||
<div id="results" class="results"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -652,7 +650,7 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">
|
||||
Check out the <a href="https://github.com/Asocia/sahinakkayadotdev">code</a> of this site.
|
||||
</div>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<!doctype html>
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose
|
||||
Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
-->
|
||||
<html lang="en" class="no-js">
|
||||
--><html lang="en" class="no-js">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- begin _includes/seo.html --><title>Automatically Build and Deploy Your Site using GitHub Actions and Webhooks - Şahin Akkaya’s Personal Page</title>
|
||||
@ -116,13 +116,17 @@
|
||||
/home/sahin/
|
||||
|
||||
</a>
|
||||
<ul class="visible-links"><li class="masthead__menu-item">
|
||||
<ul class="visible-links">
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/">Home</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/about/">About</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/contact/">Contact</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<button class="search__toggle" type="button">
|
||||
<span class="visually-hidden">Toggle search</span>
|
||||
@ -185,7 +189,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/sahinakkayadev" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
<li><a href="https://github.com/sahinakkaya" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
|
||||
|
||||
|
||||
@ -335,7 +339,7 @@
|
||||
|
||||
<h2 id="defining-the-problem-and-solution">Defining the problem and solution</h2>
|
||||
<p>As I said, my example will be automating the deployment of this site. Here is the normal workflow of me doing it manually:
|
||||
<img src="/assets/images/gh-actions-and-webhooks/workflow.png" alt="My workflow" /></p>
|
||||
<img src="/assets/images/gh-actions-and-webhooks/workflow.png" alt="My workflow"></p>
|
||||
|
||||
<p>As you can see, the only place where my work is really required is writing the post. Other two steps can be automated. We will use GitHub Actions to generate the site content and Webhooks to let our server know about the new content so it can pull the changes. Let’s get started.</p>
|
||||
|
||||
@ -372,7 +376,7 @@
|
||||
<span class="na">restore-keys</span><span class="pi">:</span> <span class="pi">|</span>
|
||||
<span class="s">${{ runner.os }}-gems-</span>
|
||||
</code></pre></div></div>
|
||||
<p>We are done with the Actions part. You can see the final code <a href="https://github.com/Asocia/sahinakkayadotdev/blob/main/.github/workflows/jekyll.yml">here</a>. When you are also done with the code, just push it to trigger the action.</p>
|
||||
<p>We are done with the Actions part. You can see the final code <a href="https://github.com/sahinakkaya/sahinakkayadotdev/blob/main/.github/workflows/jekyll.yml">here</a>. When you are also done with the code, just push it to trigger the action.</p>
|
||||
|
||||
<h3 id="setting-up-the-webhook-and-related-endpoint">Setting up the Webhook and related endpoint</h3>
|
||||
<p>Now that we set up our Action to build the site, we need to let our server know about the changes so that it can pull the changes.</p>
|
||||
@ -380,7 +384,7 @@
|
||||
<h4 id="creating-a-webhook-from-github">Creating a Webhook from GitHub</h4>
|
||||
|
||||
<p>To add a Webhook, open your repository in browser and navigate to <em>‘Settings > Webhooks’</em> and click <em>‘Add Webhook’</em>. Fill in the form with appropriate values. Here is an example:
|
||||
<img src="/assets/images/gh-actions-and-webhooks/add-webhook.png" alt="Webhook form example" /></p>
|
||||
<img src="/assets/images/gh-actions-and-webhooks/add-webhook.png" alt="Webhook form example"></p>
|
||||
|
||||
<p>This is all you have to do from GitHub. Now, whenever there is a <em><code class="language-plaintext highlighter-rouge">push</code></em> event to your repository, GitHub will send a POST request to your <em>payload url</em> with the details.</p>
|
||||
|
||||
@ -491,7 +495,8 @@ WantedBy=multi-user.target
|
||||
<li>Every GitHub Action produces a log that you can examine. Check them to see if anything is odd.</li>
|
||||
<li>In the <em>Webhooks</em> tab, there is a sub-tab called <em>Recent Deliveries</em>. You can take a look at there to see the results of the requests from your hooks.</li>
|
||||
<li>You can always test your code locally with <code class="language-plaintext highlighter-rouge">curl</code>:
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>❯ curl -i -X POST -H 'Content-Type: application/json' -d '{"foo": "bar", "bar": "baz"}' https://yourdomain.com/postreceive/
|
||||
<div class="language-plaintext highlighter-rouge">
|
||||
<div class="highlight"><pre class="highlight"><code>❯ curl -i -X POST -H 'Content-Type: application/json' -d '{"foo": "bar", "bar": "baz"}' https://yourdomain.com/postreceive/
|
||||
</code></pre></div> </div>
|
||||
</li>
|
||||
</ul>
|
||||
@ -514,16 +519,7 @@ WantedBy=multi-user.target
|
||||
|
||||
</footer>
|
||||
|
||||
<section class="page__share">
|
||||
|
||||
|
||||
<a href="https://twitter.com/intent/tweet?text=Automatically+Build+and+Deploy+Your+Site+using+GitHub+Actions+and+Webhooks%20https%3A%2F%2Fsahinakkaya.dev%2F2022%2F01%2F04%2Fbuild-and-deploy-automatically.html" class="btn btn--twitter" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Twitter"><i class="fab fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
|
||||
|
||||
<a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fsahinakkaya.dev%2F2022%2F01%2F04%2Fbuild-and-deploy-automatically.html" class="btn btn--facebook" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Facebook"><i class="fab fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
|
||||
|
||||
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fsahinakkaya.dev%2F2022%2F01%2F04%2Fbuild-and-deploy-automatically.html" class="btn btn--linkedin" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on LinkedIn"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<nav class="pagination">
|
||||
@ -590,7 +586,7 @@ WantedBy=multi-user.target
|
||||
|
||||
|
||||
<p class="archive__item-excerpt" itemprop="description">trap them and kill them!
|
||||
</p>
|
||||
There is a beautiful command in Linux called trap which traps signals and let you run specific commands when they invoked. There is ...</p>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
@ -746,13 +742,15 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
|
||||
|
||||
<div class="search-content">
|
||||
<div class="search-content__inner-wrap"><form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<div class="search-content__inner-wrap">
|
||||
<form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<label class="sr-only" for="search">
|
||||
Enter your search term...
|
||||
</label>
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term..." />
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term...">
|
||||
</form>
|
||||
<div id="results" class="results"></div></div>
|
||||
<div id="results" class="results"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -774,7 +772,7 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">
|
||||
Check out the <a href="https://github.com/Asocia/sahinakkayadotdev">code</a> of this site.
|
||||
</div>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<!doctype html>
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose
|
||||
Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
-->
|
||||
<html lang="en" class="no-js">
|
||||
--><html lang="en" class="no-js">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- begin _includes/seo.html --><title>Using ffmpeg for Simple Video Editing - Şahin Akkaya’s Personal Page</title>
|
||||
@ -116,13 +116,17 @@
|
||||
/home/sahin/
|
||||
|
||||
</a>
|
||||
<ul class="visible-links"><li class="masthead__menu-item">
|
||||
<ul class="visible-links">
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/">Home</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/about/">About</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/contact/">Contact</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<button class="search__toggle" type="button">
|
||||
<span class="visually-hidden">Toggle search</span>
|
||||
@ -185,7 +189,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/sahinakkayadev" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
<li><a href="https://github.com/sahinakkaya" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
|
||||
|
||||
|
||||
@ -353,16 +357,7 @@ ffmpeg <span class="nt">-f</span> concat <span class="nt">-i</span> mylist.txt <
|
||||
|
||||
</footer>
|
||||
|
||||
<section class="page__share">
|
||||
|
||||
|
||||
<a href="https://twitter.com/intent/tweet?text=Using+ffmpeg+for+Simple+Video+Editing%20https%3A%2F%2Fsahinakkaya.dev%2F2022%2F01%2F21%2Fffmpeg-to-rescue.html" class="btn btn--twitter" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Twitter"><i class="fab fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
|
||||
|
||||
<a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fsahinakkaya.dev%2F2022%2F01%2F21%2Fffmpeg-to-rescue.html" class="btn btn--facebook" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Facebook"><i class="fab fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
|
||||
|
||||
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fsahinakkaya.dev%2F2022%2F01%2F21%2Fffmpeg-to-rescue.html" class="btn btn--linkedin" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on LinkedIn"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<nav class="pagination">
|
||||
@ -429,7 +424,7 @@ ffmpeg <span class="nt">-f</span> concat <span class="nt">-i</span> mylist.txt <
|
||||
|
||||
|
||||
<p class="archive__item-excerpt" itemprop="description">trap them and kill them!
|
||||
</p>
|
||||
There is a beautiful command in Linux called trap which traps signals and let you run specific commands when they invoked. There is ...</p>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
@ -585,13 +580,15 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
|
||||
|
||||
<div class="search-content">
|
||||
<div class="search-content__inner-wrap"><form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<div class="search-content__inner-wrap">
|
||||
<form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<label class="sr-only" for="search">
|
||||
Enter your search term...
|
||||
</label>
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term..." />
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term...">
|
||||
</form>
|
||||
<div id="results" class="results"></div></div>
|
||||
<div id="results" class="results"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -613,7 +610,7 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">
|
||||
Check out the <a href="https://github.com/Asocia/sahinakkayadotdev">code</a> of this site.
|
||||
</div>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<!doctype html>
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose
|
||||
Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
-->
|
||||
<html lang="en" class="no-js">
|
||||
--><html lang="en" class="no-js">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- begin _includes/seo.html --><title>SSH into Machine That Is Behind a Private Network - Şahin Akkaya’s Personal Page</title>
|
||||
@ -116,13 +116,17 @@
|
||||
/home/sahin/
|
||||
|
||||
</a>
|
||||
<ul class="visible-links"><li class="masthead__menu-item">
|
||||
<ul class="visible-links">
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/">Home</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/about/">About</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/contact/">Contact</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<button class="search__toggle" type="button">
|
||||
<span class="visually-hidden">Toggle search</span>
|
||||
@ -185,7 +189,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/sahinakkayadev" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
<li><a href="https://github.com/sahinakkaya" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
|
||||
|
||||
|
||||
@ -326,7 +330,8 @@
|
||||
<p>There are tools like <a href="https://www.ngrok.com">ngrok</a>, <a href="localtunnel.me">localtunnel</a> which exposes your localhost to the internet and gives you a URL to access it but I did not want to use them.</p>
|
||||
<ul>
|
||||
<li>I did not want to use <code class="language-plaintext highlighter-rouge">ngrok</code> because it is not open source and it might have security issues. They are also charging you.</li>
|
||||
<li><code class="language-plaintext highlighter-rouge">localtunnel</code> seemed perfect. The code of both client and server is open. That is great news! But it did not last long because it is just forwarding http/https traffic :(</li>
|
||||
<li>
|
||||
<code class="language-plaintext highlighter-rouge">localtunnel</code> seemed perfect. The code of both client and server is open. That is great news! But it did not last long because it is just forwarding http/https traffic :(</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@ -339,7 +344,7 @@ ssh <span class="nt">-R</span> 7777:localhost:22 remote-user@remote.host
|
||||
</code></pre></div></div>
|
||||
<p>This command forwards all the incoming connections to port 7777 of remote machine to port 22 of our current machine. In order for this to work, you need to make sure <code class="language-plaintext highlighter-rouge">GatewayPorts</code> is set to <code class="language-plaintext highlighter-rouge">yes</code> in the remote server ssh configuration. It also assumes our current machine accepts ssh connections via port 22.</p>
|
||||
|
||||
<hr />
|
||||
<hr>
|
||||
<p>Now, go to any machine and connect to the remote server first. When we are connected, we will create another ssh connection to port 7777 to connect our home computer.</p>
|
||||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># another local machine (my laptop)</span>
|
||||
ssh remote-user@remote.host
|
||||
@ -372,16 +377,7 @@ ssh <span class="nt">-p</span> 7777 homeuser@localhost
|
||||
|
||||
</footer>
|
||||
|
||||
<section class="page__share">
|
||||
|
||||
|
||||
<a href="https://twitter.com/intent/tweet?text=SSH+into+Machine+That+Is+Behind+a+Private+Network%20https%3A%2F%2Fsahinakkaya.dev%2F2022%2F02%2F26%2Fssh-into-machine-that-is-behind-private-network.html" class="btn btn--twitter" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Twitter"><i class="fab fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
|
||||
|
||||
<a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fsahinakkaya.dev%2F2022%2F02%2F26%2Fssh-into-machine-that-is-behind-private-network.html" class="btn btn--facebook" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Facebook"><i class="fab fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
|
||||
|
||||
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fsahinakkaya.dev%2F2022%2F02%2F26%2Fssh-into-machine-that-is-behind-private-network.html" class="btn btn--linkedin" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on LinkedIn"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<nav class="pagination">
|
||||
@ -448,7 +444,7 @@ ssh <span class="nt">-p</span> 7777 homeuser@localhost
|
||||
|
||||
|
||||
<p class="archive__item-excerpt" itemprop="description">trap them and kill them!
|
||||
</p>
|
||||
There is a beautiful command in Linux called trap which traps signals and let you run specific commands when they invoked. There is ...</p>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
@ -604,13 +600,15 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
|
||||
|
||||
<div class="search-content">
|
||||
<div class="search-content__inner-wrap"><form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<div class="search-content__inner-wrap">
|
||||
<form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<label class="sr-only" for="search">
|
||||
Enter your search term...
|
||||
</label>
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term..." />
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term...">
|
||||
</form>
|
||||
<div id="results" class="results"></div></div>
|
||||
<div id="results" class="results"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -632,7 +630,7 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">
|
||||
Check out the <a href="https://github.com/Asocia/sahinakkayadotdev">code</a> of this site.
|
||||
</div>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<!doctype html>
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose
|
||||
Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
-->
|
||||
<html lang="en" class="no-js">
|
||||
--><html lang="en" class="no-js">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- begin _includes/seo.html --><title>Creating a Useless User - Şahin Akkaya’s Personal Page</title>
|
||||
@ -116,13 +116,17 @@
|
||||
/home/sahin/
|
||||
|
||||
</a>
|
||||
<ul class="visible-links"><li class="masthead__menu-item">
|
||||
<ul class="visible-links">
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/">Home</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/about/">About</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/contact/">Contact</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<button class="search__toggle" type="button">
|
||||
<span class="visually-hidden">Toggle search</span>
|
||||
@ -185,7 +189,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/sahinakkayadev" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
<li><a href="https://github.com/sahinakkaya" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
|
||||
|
||||
|
||||
@ -333,7 +337,8 @@ uselessuser@remote.host<span class="se">\'</span>s password:
|
||||
</code></pre></div></div>
|
||||
<p>The <code class="language-plaintext highlighter-rouge">-N</code> option is the most important one here. From the documentation:</p>
|
||||
<blockquote>
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> -N Do not execute a remote command. This is useful
|
||||
<div class="language-plaintext highlighter-rouge">
|
||||
<div class="highlight"><pre class="highlight"><code> -N Do not execute a remote command. This is useful
|
||||
for just forwarding ports. Refer to the description
|
||||
of SessionType in ssh_config(5) for details.
|
||||
</code></pre></div> </div>
|
||||
@ -362,16 +367,7 @@ uselessuser@remote.host<span class="se">\'</span>s password:
|
||||
|
||||
</footer>
|
||||
|
||||
<section class="page__share">
|
||||
|
||||
|
||||
<a href="https://twitter.com/intent/tweet?text=Creating+a+%2AUseless%2A+User%20https%3A%2F%2Fsahinakkaya.dev%2F2022%2F02%2F27%2Fcreating-a-useless-user.html" class="btn btn--twitter" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Twitter"><i class="fab fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
|
||||
|
||||
<a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fsahinakkaya.dev%2F2022%2F02%2F27%2Fcreating-a-useless-user.html" class="btn btn--facebook" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Facebook"><i class="fab fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
|
||||
|
||||
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fsahinakkaya.dev%2F2022%2F02%2F27%2Fcreating-a-useless-user.html" class="btn btn--linkedin" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on LinkedIn"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<nav class="pagination">
|
||||
@ -438,7 +434,7 @@ uselessuser@remote.host<span class="se">\'</span>s password:
|
||||
|
||||
|
||||
<p class="archive__item-excerpt" itemprop="description">trap them and kill them!
|
||||
</p>
|
||||
There is a beautiful command in Linux called trap which traps signals and let you run specific commands when they invoked. There is ...</p>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
@ -594,13 +590,15 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
|
||||
|
||||
<div class="search-content">
|
||||
<div class="search-content__inner-wrap"><form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<div class="search-content__inner-wrap">
|
||||
<form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<label class="sr-only" for="search">
|
||||
Enter your search term...
|
||||
</label>
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term..." />
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term...">
|
||||
</form>
|
||||
<div id="results" class="results"></div></div>
|
||||
<div id="results" class="results"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -622,7 +620,7 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">
|
||||
Check out the <a href="https://github.com/Asocia/sahinakkayadotdev">code</a> of this site.
|
||||
</div>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<!doctype html>
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose
|
||||
Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
-->
|
||||
<html lang="en" class="no-js">
|
||||
--><html lang="en" class="no-js">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- begin _includes/seo.html --><title>Never Get Trapped in Grub Rescue Again! - Şahin Akkaya’s Personal Page</title>
|
||||
@ -116,13 +116,17 @@
|
||||
/home/sahin/
|
||||
|
||||
</a>
|
||||
<ul class="visible-links"><li class="masthead__menu-item">
|
||||
<ul class="visible-links">
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/">Home</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/about/">About</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/contact/">Contact</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<button class="search__toggle" type="button">
|
||||
<span class="visually-hidden">Toggle search</span>
|
||||
@ -185,7 +189,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/sahinakkayadev" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
<li><a href="https://github.com/sahinakkaya" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
|
||||
|
||||
|
||||
@ -318,7 +322,7 @@
|
||||
|
||||
<p>I go into the live environment and run some random commands that I found on the internet and hope for the best.</p>
|
||||
|
||||
<p><img src="/assets/images/grub-rescue/random-bullshit.jpg" alt="me trying to fix grub" /></p>
|
||||
<p><img src="/assets/images/grub-rescue/random-bullshit.jpg" alt="me trying to fix grub"></p>
|
||||
|
||||
<p>What a nice way to shoot myself in the foot! But this time is different. This time, I f*cked up so much that even the random commands on the internet could not help me. I was on my own and I needed to figure out what is wrong with my system. Let me tell you what I did:</p>
|
||||
|
||||
@ -329,7 +333,7 @@
|
||||
|
||||
<p>Yes, it just screams <strong><em>“Do not do it!”</em></strong> but come on. I will not try to shrink the partition I am using (<code class="language-plaintext highlighter-rouge">sdb3</code>). So it should not be a problem. I ignored the message and shrink it anyway. No problem. Installed and tested the new OS a little bit. Time to reboot and hope for the best. And of course it did not boot. What would I even expecting?</p>
|
||||
|
||||
<p><img src="/assets/images/grub-rescue/cj.png" alt="ah sh*t here we go again" /></p>
|
||||
<p><img src="/assets/images/grub-rescue/cj.png" alt="ah sh*t here we go again"></p>
|
||||
|
||||
<p>As always, I booted into a live environment and run <code class="language-plaintext highlighter-rouge">boot-repair</code> command. It was always working but this time… Even after finishing the operation successfully I could not boot into neither Arch nor Ubuntu (the two systems I had previously).</p>
|
||||
|
||||
@ -342,7 +346,8 @@
|
||||
<p>While installing the new system, I saw a partition <strong>labelled</strong> <em>“Microsoft Basic Data”</em>. I deleted it thinking it is not required because I don’t use W*ndows. It turns out, it was my <em>boot</em> partition for Arch, just labelled incorrectly… Big lolz :D But we will see this is not even important because I had to rewrite my boot partition anyway.</p>
|
||||
</li>
|
||||
<li>My Arch was installed in <code class="language-plaintext highlighter-rouge">sdb3</code>. When I created a new partition and installed the new system, <code class="language-plaintext highlighter-rouge">sdb3</code> was shifted to <code class="language-plaintext highlighter-rouge">sdb5</code> even though I did not ask for it. But the grub configuration to boot my system was still pointing to <code class="language-plaintext highlighter-rouge">sdb3</code>. That was the reason why Arch does not boot. It was trying to boot from <code class="language-plaintext highlighter-rouge">sdb3</code>. So I had to recreate grub configuration and reinstall grub to fix it. I run the following commands that I found <a href="https://www.jeremymorgan.com/tutorials/linux/how-to-reinstall-boot-loader-arch-linux/">here</a> in a live Arch environment:
|
||||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">mkdir</span> /mnt/arch
|
||||
<div class="language-bash highlighter-rouge">
|
||||
<div class="highlight"><pre class="highlight"><code><span class="nb">mkdir</span> /mnt/arch
|
||||
mount <span class="nt">-t</span> auto /dev/sdb5 /mnt/arch
|
||||
arch-chroot /mnt/arch
|
||||
mount <span class="nt">-t</span> auto /dev/sdb4 /boot/efi
|
||||
@ -358,19 +363,21 @@ grub-install <span class="nt">--efi-directory</span><span class="o">=</span>/boo
|
||||
<li>
|
||||
<p>Ubuntu was not still booting properly. I checked the logs with <code class="language-plaintext highlighter-rouge">journalctl -xb</code> and saw something related with <code class="language-plaintext highlighter-rouge">sdb</code>. Ubuntu was installed in <code class="language-plaintext highlighter-rouge">sda2</code>, why <code class="language-plaintext highlighter-rouge">sdb</code> should be a problem? Then I remembered something. Back in times when I was using Ubuntu, I was using <code class="language-plaintext highlighter-rouge">sdb1</code> as a secondary storage. So I had a configuration where it automatically mounts <code class="language-plaintext highlighter-rouge">sdb1</code> on startup. Since I messed with <code class="language-plaintext highlighter-rouge">sdb1</code> , it was failing to mount it. I opened <code class="language-plaintext highlighter-rouge">/etc/fstab</code>, and deleted the related line. Bingo! It started booting properly.</p>
|
||||
|
||||
<p><img src="/assets/images/grub-rescue/hackerman.jpg" alt="i am something of a hackerman myself" /></p>
|
||||
<p><img src="/assets/images/grub-rescue/hackerman.jpg" alt="i am something of a hackerman myself"></p>
|
||||
</li>
|
||||
<li>
|
||||
<p>I started feeling like Hackerman, and I said to myself <em>“You know what, Imma fix everything.”</em> I had a very sh*tty grub menu with useless grub entries from old systems that I don’t use anymore. The UEFI also had the same problem. It had ridiculous amount of boot entries that most of them are just trash.</p>
|
||||
|
||||
<p><img src="/assets/images/grub-rescue/shitty-uefi.jpg" alt="the pictures i took while trying to figure out which boot options are useless" /></p>
|
||||
<p><img src="/assets/images/grub-rescue/shitty-uefi.jpg" alt="the pictures i took while trying to figure out which boot options are useless"></p>
|
||||
|
||||
<p>These are the pictures I took for reference while trying to figure out which boot options are useless. Sorry for the bad quality. I didn’t think I would use them in a blog post.</p>
|
||||
|
||||
<ul>
|
||||
<li>While trying to fix the previous problems, I’ve spent enough time in the <code class="language-plaintext highlighter-rouge">/boot/efi</code> directory that make me understand where these grub entries are coming from. There were a lot of files belong to old systems. I simply deleted them and updated grub. All of the bad entries were gone. I want to draw your attention here: <em>I did not search for how to delete the unused grub entries. I just knew deleting their directories from <code class="language-plaintext highlighter-rouge">/boot/efi</code> will do the job. I am doing this sh*t! (Another hackerman moment :D )</em></li>
|
||||
<li>While trying to fix the previous problems, I’ve spent enough time in the <code class="language-plaintext highlighter-rouge">/boot/efi</code> directory that make me understand where these grub entries are coming from. There were a lot of files belong to old systems. I simply deleted them and updated grub. All of the bad entries were gone. I want to draw your attention here: <em>I did not search for how to delete the unused grub entries. I just knew deleting their directories from <code class="language-plaintext highlighter-rouge">/boot/efi</code> will do the job. I am doing this sh*t! (Another hackerman moment :D )</em>
|
||||
</li>
|
||||
<li>In order to delete useless boot options from UEFI menu, I used <code class="language-plaintext highlighter-rouge">efibootmgr</code>. I searched for it on the internet, of course!
|
||||
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>efibootmgr <span class="nt">-v</span> <span class="c"># Check which entries you want to delete, say it is 0003.</span>
|
||||
<div class="language-bash highlighter-rouge">
|
||||
<div class="highlight"><pre class="highlight"><code>efibootmgr <span class="nt">-v</span> <span class="c"># Check which entries you want to delete, say it is 0003.</span>
|
||||
<span class="nb">sudo </span>efibootmgr <span class="nt">-b</span> 0003 <span class="nt">-B</span> <span class="c"># This will delete third boot option. </span>
|
||||
</code></pre></div> </div>
|
||||
</li>
|
||||
@ -380,7 +387,7 @@ grub-install <span class="nt">--efi-directory</span><span class="o">=</span>/boo
|
||||
|
||||
<p>And finally! I know everything about how all these work. Another shady part of Linux is clear for me. Now:</p>
|
||||
|
||||
<p><img src="/assets/images/grub-rescue/quote.jpg" alt="Give me a ruined computer and an Arch ISO, and I shall fix it for you." /></p>
|
||||
<p><img src="/assets/images/grub-rescue/quote.jpg" alt="Give me a ruined computer and an Arch ISO, and I shall fix it for you."></p>
|
||||
|
||||
|
||||
</section>
|
||||
@ -397,16 +404,7 @@ grub-install <span class="nt">--efi-directory</span><span class="o">=</span>/boo
|
||||
|
||||
</footer>
|
||||
|
||||
<section class="page__share">
|
||||
|
||||
|
||||
<a href="https://twitter.com/intent/tweet?text=Never+Get+Trapped+in+Grub+Rescue+Again%21%20https%3A%2F%2Fsahinakkaya.dev%2F2022%2F03%2F03%2Fnever-get-trapped-in-grub-rescue-again.html" class="btn btn--twitter" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Twitter"><i class="fab fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
|
||||
|
||||
<a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fsahinakkaya.dev%2F2022%2F03%2F03%2Fnever-get-trapped-in-grub-rescue-again.html" class="btn btn--facebook" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Facebook"><i class="fab fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
|
||||
|
||||
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fsahinakkaya.dev%2F2022%2F03%2F03%2Fnever-get-trapped-in-grub-rescue-again.html" class="btn btn--linkedin" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on LinkedIn"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<nav class="pagination">
|
||||
@ -473,7 +471,7 @@ grub-install <span class="nt">--efi-directory</span><span class="o">=</span>/boo
|
||||
|
||||
|
||||
<p class="archive__item-excerpt" itemprop="description">trap them and kill them!
|
||||
</p>
|
||||
There is a beautiful command in Linux called trap which traps signals and let you run specific commands when they invoked. There is ...</p>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
@ -629,13 +627,15 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
|
||||
|
||||
<div class="search-content">
|
||||
<div class="search-content__inner-wrap"><form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<div class="search-content__inner-wrap">
|
||||
<form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<label class="sr-only" for="search">
|
||||
Enter your search term...
|
||||
</label>
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term..." />
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term...">
|
||||
</form>
|
||||
<div id="results" class="results"></div></div>
|
||||
<div id="results" class="results"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -657,7 +657,7 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">
|
||||
Check out the <a href="https://github.com/Asocia/sahinakkayadotdev">code</a> of this site.
|
||||
</div>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<!doctype html>
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose
|
||||
Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
-->
|
||||
<html lang="en" class="no-js">
|
||||
--><html lang="en" class="no-js">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- begin _includes/seo.html --><title>Confession Time - Şahin Akkaya’s Personal Page</title>
|
||||
@ -118,13 +118,17 @@
|
||||
/home/sahin/
|
||||
|
||||
</a>
|
||||
<ul class="visible-links"><li class="masthead__menu-item">
|
||||
<ul class="visible-links">
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/">Home</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/about/">About</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/contact/">Contact</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<button class="search__toggle" type="button">
|
||||
<span class="visually-hidden">Toggle search</span>
|
||||
@ -187,7 +191,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/sahinakkayadev" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
<li><a href="https://github.com/sahinakkaya" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
|
||||
|
||||
|
||||
@ -355,16 +359,7 @@
|
||||
|
||||
</footer>
|
||||
|
||||
<section class="page__share">
|
||||
|
||||
|
||||
<a href="https://twitter.com/intent/tweet?text=Confession+Time%20https%3A%2F%2Fsahinakkaya.dev%2F2022%2F04%2F08%2Fconfession-time.html" class="btn btn--twitter" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Twitter"><i class="fab fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
|
||||
|
||||
<a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fsahinakkaya.dev%2F2022%2F04%2F08%2Fconfession-time.html" class="btn btn--facebook" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Facebook"><i class="fab fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
|
||||
|
||||
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fsahinakkaya.dev%2F2022%2F04%2F08%2Fconfession-time.html" class="btn btn--linkedin" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on LinkedIn"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<nav class="pagination">
|
||||
@ -431,7 +426,7 @@
|
||||
|
||||
|
||||
<p class="archive__item-excerpt" itemprop="description">trap them and kill them!
|
||||
</p>
|
||||
There is a beautiful command in Linux called trap which traps signals and let you run specific commands when they invoked. There is ...</p>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
@ -586,13 +581,15 @@ that they are making Github Copilot available for everyone. Previously, it was i
|
||||
|
||||
|
||||
<div class="search-content">
|
||||
<div class="search-content__inner-wrap"><form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<div class="search-content__inner-wrap">
|
||||
<form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<label class="sr-only" for="search">
|
||||
Enter your search term...
|
||||
</label>
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term..." />
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term...">
|
||||
</form>
|
||||
<div id="results" class="results"></div></div>
|
||||
<div id="results" class="results"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -614,7 +611,7 @@ that they are making Github Copilot available for everyone. Previously, it was i
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">
|
||||
Check out the <a href="https://github.com/Asocia/sahinakkayadotdev">code</a> of this site.
|
||||
</div>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<!doctype html>
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose
|
||||
Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
-->
|
||||
<html lang="en" class="no-js">
|
||||
--><html lang="en" class="no-js">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- begin _includes/seo.html --><title>Rant: Stop whatever you are doing and learn how licenses work - Şahin Akkaya’s Personal Page</title>
|
||||
@ -116,13 +116,17 @@
|
||||
/home/sahin/
|
||||
|
||||
</a>
|
||||
<ul class="visible-links"><li class="masthead__menu-item">
|
||||
<ul class="visible-links">
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/">Home</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/about/">About</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/contact/">Contact</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<button class="search__toggle" type="button">
|
||||
<span class="visually-hidden">Toggle search</span>
|
||||
@ -185,7 +189,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/sahinakkayadev" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
<li><a href="https://github.com/sahinakkaya" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
|
||||
|
||||
|
||||
@ -361,16 +365,7 @@ problem. That is your problem not understanding how licenses work. Stop complain
|
||||
|
||||
</footer>
|
||||
|
||||
<section class="page__share">
|
||||
|
||||
|
||||
<a href="https://twitter.com/intent/tweet?text=Rant%3A+Stop+whatever+you+are+doing+and+learn+how+licenses+work%20https%3A%2F%2Fsahinakkaya.dev%2F2022%2F06%2F22%2Frant-on-peoples-reaction-to-copilot.html" class="btn btn--twitter" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Twitter"><i class="fab fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
|
||||
|
||||
<a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fsahinakkaya.dev%2F2022%2F06%2F22%2Frant-on-peoples-reaction-to-copilot.html" class="btn btn--facebook" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Facebook"><i class="fab fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
|
||||
|
||||
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fsahinakkaya.dev%2F2022%2F06%2F22%2Frant-on-peoples-reaction-to-copilot.html" class="btn btn--linkedin" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on LinkedIn"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<nav class="pagination">
|
||||
@ -437,7 +432,7 @@ problem. That is your problem not understanding how licenses work. Stop complain
|
||||
|
||||
|
||||
<p class="archive__item-excerpt" itemprop="description">trap them and kill them!
|
||||
</p>
|
||||
There is a beautiful command in Linux called trap which traps signals and let you run specific commands when they invoked. There is ...</p>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
@ -592,13 +587,15 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
|
||||
|
||||
<div class="search-content">
|
||||
<div class="search-content__inner-wrap"><form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<div class="search-content__inner-wrap">
|
||||
<form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<label class="sr-only" for="search">
|
||||
Enter your search term...
|
||||
</label>
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term..." />
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term...">
|
||||
</form>
|
||||
<div id="results" class="results"></div></div>
|
||||
<div id="results" class="results"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -620,7 +617,7 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">
|
||||
Check out the <a href="https://github.com/Asocia/sahinakkayadotdev">code</a> of this site.
|
||||
</div>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<!doctype html>
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose
|
||||
Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
-->
|
||||
<html lang="en" class="no-js">
|
||||
--><html lang="en" class="no-js">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- begin _includes/seo.html --><title>Recap of 2022 - Şahin Akkaya’s Personal Page</title>
|
||||
@ -116,13 +116,17 @@
|
||||
/home/sahin/
|
||||
|
||||
</a>
|
||||
<ul class="visible-links"><li class="masthead__menu-item">
|
||||
<ul class="visible-links">
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/">Home</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/about/">About</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/contact/">Contact</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<button class="search__toggle" type="button">
|
||||
<span class="visually-hidden">Toggle search</span>
|
||||
@ -185,7 +189,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/sahinakkayadev" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
<li><a href="https://github.com/sahinakkaya" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
|
||||
|
||||
|
||||
@ -322,11 +326,11 @@
|
||||
|
||||
<p>I am living with my parents for the past 6 months, I break up with my girlfriend, I left the place I was working. Man, this could be the worst year of my life!</p>
|
||||
|
||||
<p><img src="/assets/images/recap-2022/jackie-chan-wtf.jpg" alt="Jackie Chan WTF meme" /></p>
|
||||
<p><img src="/assets/images/recap-2022/jackie-chan-wtf.jpg" alt="Jackie Chan WTF meme"></p>
|
||||
|
||||
<p>You know what? I am not gonna give up. <em>“… It ain’t about how hard you get hit. It’s about how hard you get hit and keep moving forward. How much you can take, and keep moving forward…”</em> No, seriously things really will be different for me in 2023 I can feel it. I learn from my mistakes, they are making me even more perfect :D I love myself, I got this.</p>
|
||||
|
||||
<p><img src="/assets/images/recap-2022/i-got-this.jpg" alt="Disaster girl saying "I got this"" /></p>
|
||||
<p><img src="/assets/images/recap-2022/i-got-this.jpg" alt='Disaster girl saying "I got this"'></p>
|
||||
|
||||
|
||||
</section>
|
||||
@ -343,16 +347,7 @@
|
||||
|
||||
</footer>
|
||||
|
||||
<section class="page__share">
|
||||
|
||||
|
||||
<a href="https://twitter.com/intent/tweet?text=Recap+of+2022%20https%3A%2F%2Fsahinakkaya.dev%2F2022%2F12%2F29%2Frecap-of-2022.html" class="btn btn--twitter" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Twitter"><i class="fab fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
|
||||
|
||||
<a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fsahinakkaya.dev%2F2022%2F12%2F29%2Frecap-of-2022.html" class="btn btn--facebook" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Facebook"><i class="fab fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
|
||||
|
||||
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fsahinakkaya.dev%2F2022%2F12%2F29%2Frecap-of-2022.html" class="btn btn--linkedin" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on LinkedIn"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<nav class="pagination">
|
||||
@ -419,7 +414,7 @@
|
||||
|
||||
|
||||
<p class="archive__item-excerpt" itemprop="description">trap them and kill them!
|
||||
</p>
|
||||
There is a beautiful command in Linux called trap which traps signals and let you run specific commands when they invoked. There is ...</p>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
@ -574,13 +569,15 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
|
||||
|
||||
<div class="search-content">
|
||||
<div class="search-content__inner-wrap"><form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<div class="search-content__inner-wrap">
|
||||
<form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<label class="sr-only" for="search">
|
||||
Enter your search term...
|
||||
</label>
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term..." />
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term...">
|
||||
</form>
|
||||
<div id="results" class="results"></div></div>
|
||||
<div id="results" class="results"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -602,7 +599,7 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">
|
||||
Check out the <a href="https://github.com/Asocia/sahinakkayadotdev">code</a> of this site.
|
||||
</div>
|
||||
|
@ -1,16 +1,16 @@
|
||||
<!doctype html>
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose
|
||||
Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
-->
|
||||
<html lang="en" class="no-js">
|
||||
--><html lang="en" class="no-js">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- begin _includes/seo.html --><title>Hot-Reload Long Running Shell Scripts (feat. trap / kill) - Şahin Akkaya’s Personal Page</title>
|
||||
<meta name="description" content="trap them and kill them!">
|
||||
<meta name="description" content="trap them and kill them! There is a beautiful command in Linux called trap which traps signals and let you run specific commands when they invoked. There is also good ol’ kill command which not only kills processes but allows you to specify a signal to send. By combining these two, you can run specific functions from your scripts any time!">
|
||||
|
||||
|
||||
<meta name="author" content="Şahin Akkaya">
|
||||
@ -26,7 +26,7 @@
|
||||
<meta property="og:url" content="https://sahinakkaya.dev/2023/01/15/hot-reloading-with-trap-and-kill.html">
|
||||
|
||||
|
||||
<meta property="og:description" content="trap them and kill them!">
|
||||
<meta property="og:description" content="trap them and kill them! There is a beautiful command in Linux called trap which traps signals and let you run specific commands when they invoked. There is also good ol’ kill command which not only kills processes but allows you to specify a signal to send. By combining these two, you can run specific functions from your scripts any time!">
|
||||
|
||||
|
||||
|
||||
@ -116,13 +116,17 @@
|
||||
/home/sahin/
|
||||
|
||||
</a>
|
||||
<ul class="visible-links"><li class="masthead__menu-item">
|
||||
<ul class="visible-links">
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/">Home</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/about/">About</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/contact/">Contact</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<button class="search__toggle" type="button">
|
||||
<span class="visually-hidden">Toggle search</span>
|
||||
@ -185,7 +189,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/sahinakkayadev" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
<li><a href="https://github.com/sahinakkaya" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
|
||||
|
||||
|
||||
@ -272,7 +276,7 @@
|
||||
|
||||
<article class="page" itemscope itemtype="https://schema.org/CreativeWork">
|
||||
<meta itemprop="headline" content="Hot-Reload Long Running Shell Scripts (feat. trap / kill)">
|
||||
<meta itemprop="description" content="trap them and kill them!">
|
||||
<meta itemprop="description" content="trap them and kill them!There is a beautiful command in Linux called trap which traps signals and let you run specific commands when they invoked. There is also good ol’ kill command which not only kills processes but allows you to specify a signal to send. By combining these two, you can run specific functions from your scripts any time!">
|
||||
<meta itemprop="datePublished" content="2023-01-15T21:48:08+00:00">
|
||||
|
||||
|
||||
@ -314,8 +318,8 @@
|
||||
|
||||
<section class="page__content" itemprop="text">
|
||||
|
||||
<h2 id="trap-them-and-kill-them"><code class="language-plaintext highlighter-rouge">trap</code> them and <code class="language-plaintext highlighter-rouge">kill</code> them!</h2>
|
||||
|
||||
<h2 id="trap-them-and-kill-them">
|
||||
<code class="language-plaintext highlighter-rouge">trap</code> them and <code class="language-plaintext highlighter-rouge">kill</code> them!</h2>
|
||||
<p>There is a beautiful command in Linux called <a href="https://man7.org/linux/man-pages/man1/trap.1p.html"><code class="language-plaintext highlighter-rouge">trap</code></a> which <em>trap</em>s signals and let you run specific commands when they invoked. There is also good ol’ <a href="https://man7.org/linux/man-pages/man1/kill.1.html"><code class="language-plaintext highlighter-rouge">kill</code></a> command which not only kills processes but allows you to specify a signal to send. By combining these two, you can run specific functions from your scripts any time!</p>
|
||||
|
||||
<h3 id="basic-example">Basic Example</h3>
|
||||
@ -528,10 +532,10 @@ killing 3124876
|
||||
<p>I think I am started to getting obsessed with <code class="language-plaintext highlighter-rouge">trap</code> command because it has such a good name and purpose. FOSS people are really on another level when it comes to naming. Here is another good one:</p>
|
||||
|
||||
<blockquote>
|
||||
<p>- How can you see the contents of a file? <br />
|
||||
+ You <em><code class="language-plaintext highlighter-rouge">cat</code></em> it. <br />
|
||||
- What if you want to see them in reverse order? <br />
|
||||
+ You <em><code class="language-plaintext highlighter-rouge">tac</code></em> it. <br /></p>
|
||||
<p>- How can you see the contents of a file? <br>
|
||||
+ You <em><code class="language-plaintext highlighter-rouge">cat</code></em> it. <br>
|
||||
- What if you want to see them in reverse order? <br>
|
||||
+ You <em><code class="language-plaintext highlighter-rouge">tac</code></em> it. <br></p>
|
||||
</blockquote>
|
||||
|
||||
<p>No, it is not just a joke. Try it… Man I love Gnoo slash Linux.</p>
|
||||
@ -553,16 +557,7 @@ killing 3124876
|
||||
|
||||
</footer>
|
||||
|
||||
<section class="page__share">
|
||||
|
||||
|
||||
<a href="https://twitter.com/intent/tweet?text=Hot-Reload+Long+Running+Shell+Scripts+%28feat.+trap+%2F+kill%29%20https%3A%2F%2Fsahinakkaya.dev%2F2023%2F01%2F15%2Fhot-reloading-with-trap-and-kill.html" class="btn btn--twitter" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Twitter"><i class="fab fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
|
||||
|
||||
<a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fsahinakkaya.dev%2F2023%2F01%2F15%2Fhot-reloading-with-trap-and-kill.html" class="btn btn--facebook" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on Facebook"><i class="fab fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
|
||||
|
||||
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fsahinakkaya.dev%2F2023%2F01%2F15%2Fhot-reloading-with-trap-and-kill.html" class="btn btn--linkedin" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="Share on LinkedIn"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<nav class="pagination">
|
||||
@ -783,13 +778,15 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
|
||||
|
||||
<div class="search-content">
|
||||
<div class="search-content__inner-wrap"><form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<div class="search-content__inner-wrap">
|
||||
<form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<label class="sr-only" for="search">
|
||||
Enter your search term...
|
||||
</label>
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term..." />
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term...">
|
||||
</form>
|
||||
<div id="results" class="results"></div></div>
|
||||
<div id="results" class="results"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -811,7 +808,7 @@ Last week, I received an email from Let’s Encrypt reminding me to renew my cer
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">
|
||||
Check out the <a href="https://github.com/Asocia/sahinakkayadotdev">code</a> of this site.
|
||||
</div>
|
||||
|
28
404.html
28
404.html
@ -1,12 +1,12 @@
|
||||
<!doctype html>
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose
|
||||
Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
-->
|
||||
<html lang="en" class="no-js">
|
||||
--><html lang="en" class="no-js">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- begin _includes/seo.html --><title>Şahin Akkaya's Personal Page</title>
|
||||
@ -112,13 +112,17 @@
|
||||
/home/sahin/
|
||||
|
||||
</a>
|
||||
<ul class="visible-links"><li class="masthead__menu-item">
|
||||
<ul class="visible-links">
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/">Home</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/about/">About</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/contact/">Contact</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<button class="search__toggle" type="button">
|
||||
<span class="visually-hidden">Toggle search</span>
|
||||
@ -162,13 +166,15 @@
|
||||
|
||||
|
||||
<div class="search-content">
|
||||
<div class="search-content__inner-wrap"><form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<div class="search-content__inner-wrap">
|
||||
<form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<label class="sr-only" for="search">
|
||||
Enter your search term...
|
||||
</label>
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term..." />
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term...">
|
||||
</form>
|
||||
<div id="results" class="results"></div></div>
|
||||
<div id="results" class="results"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -190,7 +196,7 @@
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">
|
||||
Check out the <a href="https://github.com/Asocia/sahinakkayadotdev">code</a> of this site.
|
||||
</div>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<!doctype html>
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose
|
||||
Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
-->
|
||||
<html lang="en" class="no-js">
|
||||
--><html lang="en" class="no-js">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- begin _includes/seo.html --><title>About - Şahin Akkaya’s Personal Page</title>
|
||||
@ -112,13 +112,17 @@
|
||||
/home/sahin/
|
||||
|
||||
</a>
|
||||
<ul class="visible-links"><li class="masthead__menu-item">
|
||||
<ul class="visible-links">
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/">Home</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/about/">About</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/contact/">Contact</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<button class="search__toggle" type="button">
|
||||
<span class="visually-hidden">Toggle search</span>
|
||||
@ -181,7 +185,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/sahinakkayadev" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
<li><a href="https://github.com/sahinakkaya" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
|
||||
|
||||
|
||||
@ -293,11 +297,11 @@ I never stop. I will do my best to make things better and I love doing
|
||||
it so far.</p>
|
||||
|
||||
<blockquote>
|
||||
<p>Roses are red <br />
|
||||
Violets are blue <br />
|
||||
There will be always <br />
|
||||
A better tool for you <br />
|
||||
<br />
|
||||
<p>Roses are red <br>
|
||||
Violets are blue <br>
|
||||
There will be always <br>
|
||||
A better tool for you <br>
|
||||
<br>
|
||||
<cite>Şahin Akkaya</cite></p>
|
||||
</blockquote>
|
||||
|
||||
@ -341,13 +345,15 @@ me.</li>
|
||||
|
||||
|
||||
<div class="search-content">
|
||||
<div class="search-content__inner-wrap"><form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<div class="search-content__inner-wrap">
|
||||
<form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<label class="sr-only" for="search">
|
||||
Enter your search term...
|
||||
</label>
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term..." />
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term...">
|
||||
</form>
|
||||
<div id="results" class="results"></div></div>
|
||||
<div id="results" class="results"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -369,7 +375,7 @@ me.</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">
|
||||
Check out the <a href="https://github.com/Asocia/sahinakkayadotdev">code</a> of this site.
|
||||
</div>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<!doctype html>
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose
|
||||
Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
-->
|
||||
<html lang="en" class="no-js">
|
||||
--><html lang="en" class="no-js">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- begin _includes/seo.html --><title>Contact - Şahin Akkaya’s Personal Page</title>
|
||||
@ -112,13 +112,17 @@
|
||||
/home/sahin/
|
||||
|
||||
</a>
|
||||
<ul class="visible-links"><li class="masthead__menu-item">
|
||||
<ul class="visible-links">
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/">Home</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/about/">About</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/contact/">Contact</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<button class="search__toggle" type="button">
|
||||
<span class="visually-hidden">Toggle search</span>
|
||||
@ -181,7 +185,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/sahinakkayadev" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
<li><a href="https://github.com/sahinakkaya" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
|
||||
|
||||
|
||||
@ -288,9 +292,12 @@
|
||||
<p>You can contact me via:</p>
|
||||
|
||||
<ul>
|
||||
<li>Telegram: <a href="https://t.me/sahinakkaya">@sahinakkaya</a></li>
|
||||
<li>Matrix: <a href="https://matrix.to/#/@sahinakkaya:matrix.org">sahinakkaya:matrix.org</a></li>
|
||||
<li>E-mail: <a href="mailto:sahin@sahinakkaya.dev">sahin@sahinakkaya.dev</a></li>
|
||||
<li>Telegram: <a href="https://t.me/sahinakkaya">@sahinakkaya</a>
|
||||
</li>
|
||||
<li>Matrix: <a href="https://matrix.to/#/@sahinakkaya:matrix.org">sahinakkaya:matrix.org</a>
|
||||
</li>
|
||||
<li>E-mail: <a href="mailto:sahin@sahinakkaya.dev">sahin@sahinakkaya.dev</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>And <a href="/assets/docs/public.pgp">here</a> is my public GPG key if you need.</p>
|
||||
@ -324,13 +331,15 @@
|
||||
|
||||
|
||||
<div class="search-content">
|
||||
<div class="search-content__inner-wrap"><form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<div class="search-content__inner-wrap">
|
||||
<form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<label class="sr-only" for="search">
|
||||
Enter your search term...
|
||||
</label>
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term..." />
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term...">
|
||||
</form>
|
||||
<div id="results" class="results"></div></div>
|
||||
<div id="results" class="results"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -352,7 +361,7 @@
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">
|
||||
Check out the <a href="https://github.com/Asocia/sahinakkayadotdev">code</a> of this site.
|
||||
</div>
|
||||
|
7
feed.xml
7
feed.xml
@ -1,5 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.2.1">Jekyll</generator><link href="https://sahinakkaya.dev/feed.xml" rel="self" type="application/atom+xml" /><link href="https://sahinakkaya.dev/" rel="alternate" type="text/html" /><updated>2023-01-16T10:27:37+00:00</updated><id>https://sahinakkaya.dev/feed.xml</id><title type="html">Şahin Akkaya’s Personal Page</title><subtitle>Şahin Akkaya's personal blog - a perfectionist who likes to tinker everything until it is just right. Get ready to find some sweet tips that will boost your productivity and make you fall in love with your computer.</subtitle><author><name>Şahin Akkaya</name></author><entry><title type="html">Hot-Reload Long Running Shell Scripts (feat. trap / kill)</title><link href="https://sahinakkaya.dev/2023/01/15/hot-reloading-with-trap-and-kill.html" rel="alternate" type="text/html" title="Hot-Reload Long Running Shell Scripts (feat. trap / kill)" /><published>2023-01-15T21:48:08+00:00</published><updated>2023-01-15T21:48:08+00:00</updated><id>https://sahinakkaya.dev/2023/01/15/hot-reloading-with-trap-and-kill</id><content type="html" xml:base="https://sahinakkaya.dev/2023/01/15/hot-reloading-with-trap-and-kill.html"><h2 id="trap-them-and-kill-them"><code class="language-plaintext highlighter-rouge">trap</code> them and <code class="language-plaintext highlighter-rouge">kill</code> them!</h2>
|
||||
|
||||
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.2.1">Jekyll</generator><link href="https://sahinakkaya.dev/feed.xml" rel="self" type="application/atom+xml" /><link href="https://sahinakkaya.dev/" rel="alternate" type="text/html" /><updated>2023-01-16T10:51:45+00:00</updated><id>https://sahinakkaya.dev/feed.xml</id><title type="html">Şahin Akkaya’s Personal Page</title><subtitle>Şahin Akkaya's personal blog - a perfectionist who likes to tinker everything until it is just right. Get ready to find some sweet tips that will boost your productivity and make you fall in love with your computer.</subtitle><author><name>Şahin Akkaya</name></author><entry><title type="html">Hot-Reload Long Running Shell Scripts (feat. trap / kill)</title><link href="https://sahinakkaya.dev/2023/01/15/hot-reloading-with-trap-and-kill.html" rel="alternate" type="text/html" title="Hot-Reload Long Running Shell Scripts (feat. trap / kill)" /><published>2023-01-15T21:48:08+00:00</published><updated>2023-01-15T21:48:08+00:00</updated><id>https://sahinakkaya.dev/2023/01/15/hot-reloading-with-trap-and-kill</id><content type="html" xml:base="https://sahinakkaya.dev/2023/01/15/hot-reloading-with-trap-and-kill.html"><h2 id="trap-them-and-kill-them"><code class="language-plaintext highlighter-rouge">trap</code> them and <code class="language-plaintext highlighter-rouge">kill</code> them!</h2>
|
||||
<p>There is a beautiful command in Linux called <a href="https://man7.org/linux/man-pages/man1/trap.1p.html"><code class="language-plaintext highlighter-rouge">trap</code></a> which <em>trap</em>s signals and let you run specific commands when they invoked. There is also good ol’ <a href="https://man7.org/linux/man-pages/man1/kill.1.html"><code class="language-plaintext highlighter-rouge">kill</code></a> command which not only kills processes but allows you to specify a signal to send. By combining these two, you can run specific functions from your scripts any time!</p>
|
||||
|
||||
<h3 id="basic-example">Basic Example</h3>
|
||||
@ -220,7 +219,7 @@ killing 3124876
|
||||
|
||||
<p>No, it is not just a joke. Try it… Man I love Gnoo slash Linux.</p>
|
||||
|
||||
<p>Anyway, I hope now you know how to <code class="language-plaintext highlighter-rouge">trap</code> and <code class="language-plaintext highlighter-rouge">kill</code>. Next week I will explain how to <code class="language-plaintext highlighter-rouge">unzip; strip; touch; finger; grep; mount; fsck; more; yes; fsck; fsck; umount; clean; sleep</code> <nobr>( ͡° ͜ʖ ͡°)</nobr>. <sup><a href="##" title="jk :D">*</a></sup></p></content><author><name>Şahin Akkaya</name></author><category term="trap" /><category term="kill" /><category term="linux" /><summary type="html">trap them and kill them!</summary></entry><entry><title type="html">Recap of 2022</title><link href="https://sahinakkaya.dev/2022/12/29/recap-of-2022.html" rel="alternate" type="text/html" title="Recap of 2022" /><published>2022-12-29T20:22:08+00:00</published><updated>2022-12-29T20:22:08+00:00</updated><id>https://sahinakkaya.dev/2022/12/29/recap-of-2022</id><content type="html" xml:base="https://sahinakkaya.dev/2022/12/29/recap-of-2022.html"><p>It’s been a while… It has been so long that I forgot how I was writing my blogs back then. My life didn’t change that much. Actually, it is getting worse.</p>
|
||||
<p>Anyway, I hope now you know how to <code class="language-plaintext highlighter-rouge">trap</code> and <code class="language-plaintext highlighter-rouge">kill</code>. Next week I will explain how to <code class="language-plaintext highlighter-rouge">unzip; strip; touch; finger; grep; mount; fsck; more; yes; fsck; fsck; umount; clean; sleep</code> <nobr>( ͡° ͜ʖ ͡°)</nobr>. <sup><a href="##" title="jk :D">*</a></sup></p></content><author><name>Şahin Akkaya</name></author><category term="trap" /><category term="kill" /><category term="linux" /><summary type="html">trap them and kill them! There is a beautiful command in Linux called trap which traps signals and let you run specific commands when they invoked. There is also good ol’ kill command which not only kills processes but allows you to specify a signal to send. By combining these two, you can run specific functions from your scripts any time!</summary></entry><entry><title type="html">Recap of 2022</title><link href="https://sahinakkaya.dev/2022/12/29/recap-of-2022.html" rel="alternate" type="text/html" title="Recap of 2022" /><published>2022-12-29T20:22:08+00:00</published><updated>2022-12-29T20:22:08+00:00</updated><id>https://sahinakkaya.dev/2022/12/29/recap-of-2022</id><content type="html" xml:base="https://sahinakkaya.dev/2022/12/29/recap-of-2022.html"><p>It’s been a while… It has been so long that I forgot how I was writing my blogs back then. My life didn’t change that much. Actually, it is getting worse.</p>
|
||||
|
||||
<p>The biggest problem of my life is the graduation project. Oh, God it is making me sick! I simply don’t have any interest for the subject I am supposed to work on. One part of me saying that “come on, you came this far. You are nearly finished. One last push!” and other part of me saying “oh no, don’t do it. You have never done something you don’t like in your entire life. F*ck it!”. So I am wasting my time each term with the dilemma I just described. I really don’t know what to do. This thing is f’ed up.</p>
|
||||
|
||||
@ -499,7 +498,7 @@ ffmpeg <span class="nt">-f</span> concat <span class=&q
|
||||
<span class="na">restore-keys</span><span class="pi">:</span> <span class="pi">|</span>
|
||||
<span class="s">${{ runner.os }}-gems-</span>
|
||||
</code></pre></div></div>
|
||||
<p>We are done with the Actions part. You can see the final code <a href="https://github.com/Asocia/sahinakkayadotdev/blob/main/.github/workflows/jekyll.yml">here</a>. When you are also done with the code, just push it to trigger the action.</p>
|
||||
<p>We are done with the Actions part. You can see the final code <a href="https://github.com/sahinakkaya/sahinakkayadotdev/blob/main/.github/workflows/jekyll.yml">here</a>. When you are also done with the code, just push it to trigger the action.</p>
|
||||
|
||||
<h3 id="setting-up-the-webhook-and-related-endpoint">Setting up the Webhook and related endpoint</h3>
|
||||
<p>Now that we set up our Action to build the site, we need to let our server know about the changes so that it can pull the changes.</p>
|
||||
|
32
index.html
32
index.html
@ -1,12 +1,12 @@
|
||||
<!doctype html>
|
||||
<!DOCTYPE html>
|
||||
<!--
|
||||
Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose
|
||||
Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
|
||||
Free for personal and commercial use under the MIT license
|
||||
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
|
||||
-->
|
||||
<html lang="en" class="no-js">
|
||||
--><html lang="en" class="no-js">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!-- begin _includes/seo.html --><title>Şahin Akkaya's Personal Page</title>
|
||||
@ -112,13 +112,17 @@
|
||||
/home/sahin/
|
||||
|
||||
</a>
|
||||
<ul class="visible-links"><li class="masthead__menu-item">
|
||||
<ul class="visible-links">
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/">Home</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/about/">About</a>
|
||||
</li><li class="masthead__menu-item">
|
||||
</li>
|
||||
<li class="masthead__menu-item">
|
||||
<a href="/contact/">Contact</a>
|
||||
</li></ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<button class="search__toggle" type="button">
|
||||
<span class="visually-hidden">Toggle search</span>
|
||||
@ -181,7 +185,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/sahinakkayadev" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
<li><a href="https://github.com/sahinakkaya" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">sahinakkayadev</span></a></li>
|
||||
|
||||
|
||||
|
||||
@ -322,7 +326,7 @@
|
||||
|
||||
|
||||
<p class="archive__item-excerpt" itemprop="description">trap them and kill them!
|
||||
</p>
|
||||
There is a beautiful command in Linux called trap which traps signals and let you run specific commands when they invoked. There is ...</p>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
@ -807,13 +811,15 @@ I’m sure that you run a command something like above at least once if you are
|
||||
|
||||
|
||||
<div class="search-content">
|
||||
<div class="search-content__inner-wrap"><form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<div class="search-content__inner-wrap">
|
||||
<form class="search-content__form" onkeydown="return event.key != 'Enter';">
|
||||
<label class="sr-only" for="search">
|
||||
Enter your search term...
|
||||
</label>
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term..." />
|
||||
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="Enter your search term...">
|
||||
</form>
|
||||
<div id="results" class="results"></div></div>
|
||||
<div id="results" class="results"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -835,7 +841,7 @@ I’m sure that you run a command something like above at least once if you are
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">© 2023 Şahin Akkaya's Personal Page. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
||||
<div class="page__footer-copyright">
|
||||
Check out the <a href="https://github.com/Asocia/sahinakkayadotdev">code</a> of this site.
|
||||
</div>
|
||||
|
@ -55,6 +55,6 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://sahinakkaya.dev/assets/docs/resume.pdf</loc>
|
||||
<lastmod>2023-01-16T10:27:31+00:00</lastmod>
|
||||
<lastmod>2023-01-16T10:51:37+00:00</lastmod>
|
||||
</url>
|
||||
</urlset>
|
||||
|
Loading…
Reference in New Issue
Block a user