Compare commits

...

45 commits

Author SHA1 Message Date
52dda1a7f2 updated cv 2024-02-24 20:57:18 +01:00
eabc5ba217 small fixes 2024-01-10 14:31:30 +01:00
3fcebe8bad update cv 2024-01-08 15:01:56 +01:00
Claudio Maggioni
af3f7d5250 fixed header link 2024-01-08 14:58:09 +01:00
4f1d0c8f2a Updated photo and cv 2024-01-08 14:55:28 +01:00
3293cd49e5 new colors 2024-01-08 12:04:54 +01:00
Claudio Maggioni
3c7af26650 Hit it son 2023-01-04 00:05:15 +01:00
Claudio Maggioni
53647566bc ROR baby 2023-01-03 23:47:03 +01:00
Claudio Maggioni
e0b1a91024 Updated CV 2022-12-20 13:27:42 +01:00
Claudio Maggioni (maggicl)
4b1fa03b8a Fixed HTML markup errors 2021-02-03 13:17:30 +01:00
Claudio Maggioni (maggicl)
6bcd6b927b Fixed beautifier 2021-02-03 13:09:30 +01:00
Claudio Maggioni (maggicl)
489c0f488f Code cleanup and made external assets self-hosted 2021-02-03 13:03:48 +01:00
Claudio Maggioni (maggicl)
673bb136ea Added DrBf and adjusted layout at high resolutions 2021-02-03 11:27:35 +01:00
Claudio Maggioni (maggicl)
84a5fa1a33 Added vimtok 2021-02-02 15:48:52 +01:00
Claudio Maggioni (maggicl)
785df83e39 Fixed portfolio ordering 2021-02-02 10:09:20 +01:00
Claudio Maggioni (maggicl)
948d1ae931 Smarthut, Arrowcounter, and Scuolatest are done 2021-01-30 13:51:49 +01:00
Claudio Maggioni (maggicl)
4f70864203 Smarthut and Scuolatest pages almost complete 2021-01-29 14:27:49 +01:00
Claudio Maggioni (maggicl)
4e46051e19 Started work on portfolio 2021-01-26 23:11:24 +01:00
Claudio Maggioni (maggicl)
0f0300a23a fixed mobile pt.2 2021-01-26 22:09:05 +01:00
Claudio Maggioni
5be82c6fb2 Fixed mobile 2021-01-26 21:58:21 +01:00
Claudio Maggioni (maggicl)
4f15e02965 Added CV and removed compiled site from repo 2021-01-26 21:46:43 +01:00
Claudio Maggioni (maggicl)
4a509ba6f0 Home page done + color change 2021-01-22 18:49:05 +01:00
Claudio Maggioni (maggicl)
6371d64e64 New light monospace theme 2021-01-20 15:27:52 +01:00
Claudio Maggioni (maggicl)
5ae11fd831 Removed download and ci, updated bottom links 2020-08-12 20:31:37 +02:00
Claudio Maggioni
d38fab3a22 Added links for vimtok and rvl 2019-12-31 10:53:35 +01:00
ServerServeIonicNonServe
4a25160c9a Merge branch 'master' of git.maggioni.xyz:maggicl/maggioni.xyz 2019-12-22 11:52:42 +00:00
ServerServeIonicNonServe
b1483fc339 Committing for move to hetzner 2019-12-22 11:52:06 +00:00
c8bb7168ba Updated README and license 2018-12-27 13:03:35 +01:00
ServerServeIonicNonServe
73a5ec2c37 Added theshell.ch to selfhosted 2018-11-14 20:23:19 +00:00
Claudio Maggioni
9f43036e11 Fixed home link to absolute 2018-10-29 11:15:52 +01:00
Claudio Maggioni
16f24469a9 Made menu links absolute in order to make them work in the 404 page 2018-10-29 11:12:30 +01:00
Claudio Maggioni
3d0cda5a1f Other edits for 404 2018-10-24 22:41:08 +02:00
Claudio Maggioni
6e15f2e684 Edits for 404 2018-10-24 22:36:54 +02:00
Claudio Maggioni
a057dafb56 Merge branch 'master' of ssh://maggioni.xyz:2222/praticamentetilde/maggioni.xyz 2018-10-24 21:57:29 +02:00
Claudio Maggioni
52cf6abdfa Local images and saner container 2018-10-24 21:57:19 +02:00
ServerServeIonicNonServe
8558e881dc Merge branch 'master' of ssh://maggioni.xyz:2222/praticamentetilde/maggioni.xyz 2018-10-24 15:44:29 +00:00
Claudio Maggioni
b413388506 Fixed links 2018-10-24 17:44:02 +02:00
Claudio Maggioni
701e5fb72c Fixed links 2018-10-24 17:40:30 +02:00
Claudio Maggioni
97858dd3b2 Gentoo post to HTML 2018-10-24 17:21:07 +02:00
Claudio Maggioni
c04a7848b9 COnverted astleyrm to HTML 2018-10-24 13:53:55 +02:00
Claudio Maggioni
48f648cae3 Edited site title 2018-10-23 17:26:41 +02:00
Claudio Maggioni
8f0c71f664 Converted 404 to html 2018-10-23 17:17:23 +02:00
Claudio Maggioni
79f78a4a7d Converted post on bluetooth keyboard to HTML 2018-10-23 17:06:34 +02:00
Claudio Maggioni
1002fb23a6 Removed some useless stuff 2018-10-23 16:48:50 +02:00
Claudio Maggioni
1f26ff08c2 Update for SA1 homework 2018-10-23 16:38:45 +02:00
131 changed files with 17225 additions and 2745 deletions

6
.gitignore vendored Normal file
View file

@ -0,0 +1,6 @@
.DS_Store
.jekyll-cache/
.sass-cache/
_site/
.jekyll-metadata
node_modules/

25
404.html Normal file
View file

@ -0,0 +1,25 @@
---
layout: main
permalink: /404.html
---
<h1>404 - page not found</h1>
<p>
If you didn't come on purpose I apologise, but the page you are searching
doesn't exist. If you came on purpose enjoy this minimal <code>gif</code> of a
dancing Rick Astley.
</p>
<p>
<img
class="block-center"
src="{{ '/astley.gif' | prepend:site.baseurl | prepend:site.url }}"
alt="Rick Astley gif"
/>
</p>
<p>
Thanks to <a href="https://github.com/Giorgio-Croci">Giorgio Croci </a> for
the <code>gif</code>!
</p>

22
404.md
View file

@ -1,22 +0,0 @@
---
layout: main
permalink: /404.html
---
# 404 - page not found
If you didn't come on purpose I apologise, but the page you are searching doesn't exist.
But, if you came on purpose, enjoy a flat Rick Astley gif dancing.
![Rick gif](/astley.gif)
<style>
img{
display: inline-block
}
main{
text-align: center
}
</style>
Thanks [Giorgio Croci!](https://github.com/Giorgio-Croci)

7
LICENSE.md Normal file
View file

@ -0,0 +1,7 @@
Copyright 2018 Claudio Maggioni
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

11
README.md Normal file
View file

@ -0,0 +1,11 @@
<!-- vim: set et sw=2 ts=2 tw=80 : -->
# maggioni.xyz
Jekyll source of website https://maggioni.xyz.
## Licensing
Content of articles is licensed under
[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/). HTML code is
licensed under the MIT license.

View file

@ -1,3 +1,4 @@
# vim: set ts=2 sw=2 et tw=80:
# Welcome to Jekyll! # Welcome to Jekyll!
# #
# This config file is meant for settings that affect your whole blog, values # This config file is meant for settings that affect your whole blog, values
@ -6,15 +7,23 @@
# 'jekyll serve'. If you change this file, please restart the server process. # 'jekyll serve'. If you change this file, please restart the server process.
# Site settings # Site settings
title: Ramblings of an archer archer title: maggioni.xyz
#email: maggioniclaudio1999[at]gmail.com email: contact@maggioni.xyz
description: > # this means to ignore newlines until "baseurl:" description: # this means to ignore newlines until "baseurl:"
Things which an Arch Linux user that also owns an recurve bow can write.
baseurl: "" # the subpath of your site, e.g. /blog baseurl: "" # the subpath of your site, e.g. /blog
url: "http://praticamentetilde.github.io" # the base hostname & protocol for your site url: "https://maggioni.xyz" # the base hostname & protocol for your site
github_username: praticamentetilde github_username: maggicl
future: true future: true
# Build settings # Build settings
markdown: kramdown markdown: kramdown
exclude:
- hooks/
- node_modules/
- package.json
- package-lock.json
- .gitignore
collections: collections:
- slides portfolio:
output: true
gems:
- jekyll-tidy

View file

@ -1,22 +0,0 @@
<div id="disqus_thread"></div>
<script>
/**
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables
*/
/*
var disqus_config = function () {
this.page.url = PAGE_URL; // Replace PAGE_URL with your page's canonical URL variable
this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
};
*/
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = '//ramblingsofanarcherarcher.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>

View file

@ -1,7 +1,35 @@
<footer class="site-footer"> <footer class="site-footer">
<div class="container">
<div class="icons"> <div class="icons">
<a class="icon" href="https://github.com/praticamentetilde"><i class="fa fa-github"></i></a> <a target="_blank" class="icon" href="https://tea.maggioni.xyz/maggicl">
<a class="icon" href="https://www.reddit.com/user/praticamentetilde"><i class="fa fa-reddit"></i></a> <i class="fab fa-git"></i
></a>
<a target="_blank" class="icon" href="https://github.com/maggicl">
<i class="fab fa-github"></i
></a>
<a target="_blank" class="icon" href="https://gitlab.com/maggicl">
<i class="fab fa-gitlab"></i
></a>
<a
target="_blank"
class="icon"
href="https://www.linkedin.com/in/claudio-maggioni/"
>
<i class="fab fa-linkedin"></i
></a>
</div> </div>
<h6 class="author">Claudio Maggioni 2016</h6> <div class="author">
Last updated on {{ site.time | date: '%Y-%m-%d' }}<br />
Content under
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
CC BY-NC-SA 4.0</a
>
</div>
</div>
</footer> </footer>
<script src="https://unpkg.com/konami@1.6.3/konami.js"></script>
<script>
const easterEgg = new Konami(() => window.location.href =
"https://www.youtube.com/watch?v=uUTDCOBI1ZI");
</script>
{% comment %} vim: set ts=2 sw=2 et tw=80: {% endcomment %}

View file

@ -1,33 +1,52 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>{% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %}</title> <title>
<meta name="description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}"> {% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape
}}{% endif %}
</title>
<meta
name="description"
content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}"
/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css"> <link
<link rel="stylesheet" href="{{ "/css/main.css" | prepend: site.baseurl }}"> rel="stylesheet"
<link href='https://fonts.googleapis.com/css?family=Hammersmith+One' rel='stylesheet' type='text/css'> href="/css/bombardier.css?v={{ site.time | date: '%s' }}"
<link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}"> />
<link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}"> <link
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"> rel="stylesheet"
<script src="https://rawgit.com/snaptortoise/konami-js/master/konami.js"></script> href="/css/font-awesome.css?v={{ site.time | date: '%s' }}"
<!-- Favicon --> />
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png"> <link rel="stylesheet" href="/css/main.css?v={{ site.time | date: '%s' }}" />
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png"> <link
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png"> rel="canonical"
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png"> href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}"
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png"> />
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png"> <link rel="alternate" type="application/rss+xml" title="{{ site.title }}"
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png"> href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png"> <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png" />
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png"> <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png" />
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png"> <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png" />
<link rel="manifest" href="/manifest.json"> <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png" />
<meta name="msapplication-TileColor" content="#ffffff"> <link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png" />
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png"> <link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png" />
<link
rel="icon"
type="image/png"
sizes="192x192"
href="/android-icon-192x192.png"
/>
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="manifest" href="/manifest.json" />
<meta name="msapplication-TileColor" content="#ffffff" />
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png" />
</head> </head>

View file

@ -1,17 +1,9 @@
<nav class="navbar"> <div class="links">
<div class="container"> {% for my_page in site.pages %} {% if my_page.title %}
<ul class="navbar-list"> <a href="{{ my_page.url }}">{{ my_page.title }}</a>
<li class="navbar-item"> {% endif %} {% endfor %}
<a href="/">home</a> <a href="/cv.pdf?v={{ site.time | date: '%s' }}">CV</a>
</li> <a href="https://git.maggioni.xyz">Git</a>
{% for my_page in site.pages %} <a href="https://cloud.maggioni.xyz">Cloud</a>
{% if my_page.title %} </div>
<li class="navbar-item"> {% comment %} vim: set ts=2 sw=2 et tw=80: {% endcomment %}
<a href="{{ my_page.url | prepend: site.baseurl }}">{{ my_page.title }}</a>
</li>
{% endif %}
{% endfor %}
{% include links.html %}
</ul>
</div>
</nav>

View file

@ -1 +0,0 @@
<a href="https://github.com/{{ include.username }}"><span class="icon icon--github">{% include icon-github.svg %}</span><span class="username">{{ include.username }}</span></a>

View file

@ -1 +0,0 @@
<svg viewBox="0 0 16 16"><path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>

Before

Width:  |  Height:  |  Size: 926 B

View file

@ -1,3 +0,0 @@
<a href="https://linkedin.com/in/{{ include.username }}">
<span><i class="fa fa-linkedin"></i> {{ include.name }}</span>
</a>

View file

@ -1,6 +0,0 @@
<li class="navbar-item">
<a href="http://www.burarco.it">My archery club</a>
</li>
<li class="navbar-item">
<a href="{{ "/feed.xml" | prepend: site.baseurl }}">RSS</a>
</li>

View file

@ -1,21 +1,16 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html lang="en">
{% include head.html %} {% include head.html %}
<body> <body>
<header class="header"> <header class="header">
<section class="head"> <nav class="head navbar container">
<h2 class="title">{{ site.title }}</h2> <h1 class="title container"><a href="/">{{ site.title }}</a></h1>
<p>{{ site.description }}</p> {% include header.html %}
</section> </nav>
{% include header.html %} </header>
</header> <main class="container">{{ content }}</main>
<main class="container"> {% include footer.html %}
{{ content }} </body>
</main>
{% include footer.html %}
<script>
var easter_egg = new Konami();
easter_egg.load("https://www.youtube.com/watch?v=URTcCh6QVwM");
</script>
</body>
</html> </html>
{% comment %} vim: set ts=2 sw=2 et tw=80: {% endcomment %}

View file

@ -1,14 +1,11 @@
--- ---
layout: main layout: main
--- ---
<article class="post">
<article class="post">
<header class="post-header"> <header class="post-header">
<h2 class="post-title">{{ page.title }}</h2> <h2 class="post-title">{{ page.title }}</h2>
</header> </header>
<div class="post-content"> <div class="post-content">{{ content }}</div>
{{ content }}
</div>
</article> </article>

44
_layouts/portfolio.html Normal file
View file

@ -0,0 +1,44 @@
---
layout: main
---
<div class="portfolio">
<section class="port-elem">
<div class="side">
<div class="date">{{ page.date-start }} ⭢ {{ page.date-end }}</div>
<div class="category {{ page.category }}">
{% case page.category %} {% when 'usi' %}University project {% when
'high-school' %}High school project {% when 'internship' %}Internship {%
when 'personal' %}Personal project {% endcase %}
</div>
<div class="languages">{{ page.languages }}</div>
<div class="authors">
<h4>Authors:</h4>
<ul>
<li>Claudio Maggioni</li>
{% for author in page.authors %}
<li>{{ author }}</li>
{% endfor %}
</ul>
</div>
<div class="repo">
<a target="_blank" href="{{ page.repo-url }}">
<i class="fab fa-{{ page.repo-type }}"></i> {{ page.title }}</a
>
</div>
</div>
<div class="description">
<div class="images">
{% for img in page.images %}
<a target="_blank" href="/images/portfolio/{{ img }}">
<img src="/images/portfolio/{{ img }}"
/></a>
{% endfor %}
</div>
<h2>{{ page.title }}</h2>
<h3>{{ page.description }}</h3>
{{ content }}
</div>
</section>
</div>

View file

@ -1,16 +1,21 @@
--- ---
layout: main layout: main
--- ---
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
<header class="post-header"> <header class="post-header">
<h2 class="post-title" itemprop="name headline">{{ page.title }}</h2> <h2 class="post-title" itemprop="name headline">{{ page.title }}</h2>
<p class="post-meta"><time datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">{{ page.date | date: "%b %-d, %Y" }}</time>{% if page.author %} • <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">{{ page.author }}</span></span>{% endif %}</p> <h4 class="post-meta">
<time
datetime="{{ page.date | date_to_xmlschema }}"
itemprop="datePublished"
>{{ page.date | date: "%b %-d, %Y" }}</time
>{% if page.author %} •
<span itemprop="author" itemscope itemtype="http://schema.org/Person"
><span itemprop="name">{{ page.author }}</span></span
>{% endif %}
</h4>
</header> </header>
<div class="post-content" itemprop="articleBody"> <div class="post-content" itemprop="articleBody">{{ content }}</div>
{{ content }}
</div>
</article> </article>
{% include disqus.html %}

View file

@ -0,0 +1,28 @@
---
layout: portfolio
title: Arrowcounter
date-start: 2018-07
date-end: now
category: personal
languages: Python (Django)
images:
- arrowcounter/home.png
- arrowcounter/counts.png
- arrowcounter/counter.png
- arrowcounter/stats.png
description: Simple AJAX counter with some backend storage and statistics, intended to count the number of arrows shot in an archery training session.
repo-type: git
repo-url: https://tea.maggioni.xyz/maggicl/arrowcounter
---
This website is a counter web application I developed in my spare time using the
python framework Django. The application is intended to be used as a counter for
arrows shot in an archery training session.
The application features a counter interface with multi-increment counter
buttons, a basic trend analyzer that measures the difference between the total
number of arrows shot and a yearly goal, CSV export capabilities,
and a statistics page.
The frontend was built with plain HTML/CSS/Javascript, aside the use of the
Charts.js api and Materialize as a CSS library.

29
_portfolio/drbf.md Normal file
View file

@ -0,0 +1,29 @@
---
layout: portfolio
title: Dr Brainf-ck
date-start: 2018-11
date-end: 2018-12
category: usi
languages: Racket
authors:
- Tommaso Rodolfo Masera
images:
- drbf/gui.png
- drbf/doc.png
- drbf/gui_diagram.png
description: Brainf-ck interpreter with integrated editor and stepper
repo-type: gitlab
repo-url: https://gitlab.com/maggicl/DrBrainf-ck
---
This application was built as the final project of _Programming Fundamentals 1_
class in USI. This was a pair project done with my colleague Tommaso Rodolfo
Masera.
This is a fully operational [Brainf-ck](https://en.wikipedia.org/wiki/Brainfuck)
interpreter, complete with a GUI editor interface and some debugging tools, such
as a memory tape inspector and a stepper.
The application was built using Racket, a Scheme dialect in the Lisp family of
programming languages. The interpreter portion of the program is fully
functional and lacks explicit mutability of variables.

26
_portfolio/scuolatest.md Normal file
View file

@ -0,0 +1,26 @@
---
layout: portfolio
title: Scuolatest
date-start: 2017-09
date-end: 2017-12
category: high-school
languages: PHP (Symfony 3) + HTML/CSS/JS
images:
- scuolatest/benvenuto.png
- scuolatest/test-list.jpg
- scuolatest/test-matematica.png
- scuolatest/esito-matematica.png
- scuolatest/stats-matematica.png
authors:
- Davide Fiori
- Giorgio Croci
repo-type: gitlab
repo-url: https://gitlab.com/staccastacca/scuolatest
description: Self assessment quiz platform with integrated statistical review.
---
This project is a self-assessment tool intended for middle school students that wished to enroll in my high school. The website could be used by students (to take the test) and teachers (to review aggregated results in the tests, in order to tailor their curriculum.
The project was developed using Symfony 3, JQuery and ChartJS. The CSS library used is Materialize.
Credits to Davide Fiori and Giorgio Croci which helped me in building this application.

31
_portfolio/smarthut.md Normal file
View file

@ -0,0 +1,31 @@
---
layout: portfolio
title: Smarthut
date-start: 2020-03
date-end: 2020-06
category: usi
languages: Spring + ReactJS
authors:
- Andrea Brites Marto
- Matteo Omenetti
- Jacob Salvi
- Tommaso Rodolfo Masera
- Nicola Brunner
- Filippo Cesana
- Christian Capeáns Pérez
images:
- smarthut/home-frontend.png
- smarthut/devices.png
- smarthut/scenes.png
- smarthut/automations.png
- smarthut/swagger.png
description: Smart home manager for (mocked) smart devices, complete with user-definable rooms, presets, and events.
repo-type: git
repo-url: https://tea.maggioni.xyz/smarthut
---
This is a 3 month software engineering project part of the second year of USI's curriculum. As a team leader, I had to manage a team of 8 people to develop Smarthut, a full-stack Spring + ReactJS web application that manages smart devices.
Smarthut is able to direcly control (mocked) smart devices, but it can also group devices in rooms, configure and apply pre-made settings to a group of devices, and trigger user-defined actions based on a user-defined condition on pre-selected devices.
Smarthut's backend is a Spring REST application, complete with JWT sessions, CRUD APIs for the different types of device, and a WebSocket API that propagates device status updates. The frontend is a ReactJS application with Redux storage to handle active and passive device updates.

38
_portfolio/vimtok.md Normal file
View file

@ -0,0 +1,38 @@
---
layout: portfolio
title: Vimtok
date-start: 2019-11
date-end: 2019-12
category: usi
languages: ExpressJS (Node.js) + JS
authors:
- Mejrima Smajilbasic
- Renato Iannace
- Matteo Omenetti
images:
- vimtok/home.png
- vimtok/gallery.png
- vimtok/post.png
- vimtok/user.png
description: Video snippet sharing social media website prototype
repo-type: github
repo-url: https://github.com/Carrisiland/vimtok
---
This website is a 4-week project for the _Software Atelier 3_ class in USI. This
was a group project of 4 people, in which I took turn at being the team leader.
The function of this website is to allow sharing parts of videos already
uploaded on _Youtube_ or _Vimeo_ without _freebooting_ the original content
creator. The user can specify a video link and a start-end time, and publish a
post on the platform. The post will appear as an either _Youtube_ or _Vimeo_
embedded video player looping automatically in the specified interval. Users can
also like and comment on posts, create playlists/albums of posts, and follow other
users and get notified of their uploads.
The website also features a special GIF generation feature implemented through
`youtube-dl` and `ffmpeg`.
The website is currently online [here](https://vimtok.maggioni.xyz), but signup
and creation of anonymous posts are disabled due to the unmoderated nature of
the website.

View file

@ -0,0 +1,78 @@
---
layout: post
title: "Get a Bluetooth keyboard work with Arch Linux"
date: 2016-07-07 14:49:18 +0200
categories: linux
---
<p>
I've recently got a Rapoo E6100. This is a minimal and space saving Bluetooth
3.0 keyboard. If you pair it with Windows 10, it will remain paired after
reboot, giving the possibility to use it since the login screen. After
installing the Bluetooth stack on my Arch via the <code>bluez</code> and
<code>bluez-utils</code> packages I thought the pairing process would be as
simple as Windows if I used the KDE GUI menus for Bluetooth management. That's
not true. The keyboard, once paired, will reconnect automatically just after
<code>plasmashell</code> loaded, leaving me without keyboard during the SDDM
login screen and, of course, during a non-graphical session.
</p>
<p>
As usual, i've searched help in the ArchWiki, founding
<a href="https://wiki.archlinux.org/index.php/Bluetooth_keyboard">this</a>
article. With that, i've succesfully reconnected my Bluetooth keyboard using
the <code>bluetoothctl</code> utility. The next step was configuring the
service for auto connection during boot. I've created the
<code>btkbd.conf</code> and the <code>btkbd.service</code> files, enabling the
last one with systemd. Let's give a look to the service file:
</p>
<p>
{% highlight bash linenos %} [Unit] Description=systemd Unit to automatically
start a Bluetooth keyboard
Documentation=https://wiki.archlinux.org/index.php/Bluetooth_Keyboard
Requires=dbus-org.bluez.service After=dbus-org.bluez.service
ConditionPathExists=/etc/btkbd.conf ConditionPathExists=/usr/bin/hcitool
ConditionPathExists=/usr/bin/hciconfig [Service] Type=oneshot
EnvironmentFile=/etc/btkbd.conf ExecStart=/usr/bin/hciconfig ${HCIDEVICE} up #
ignore errors on connect, spurious problems with bt? # so start next command
with - ExecStart=-/usr/bin/hcitool cc ${BTKBDMAC} [Install]
WantedBy=multi-user.target {% endhighlight %}
</p>
<p>
Line 13 enables the Bluetooth dongle, and line 16 connects it to the keyboard
we gave the mac address in <code>/etc/btkbd.conf</code>. This should work
flawlessly, right? Of course it doesn't. The service starts before the
<code>dbus-org.bluez.service</code> is loaded and fails. However, if the
service is started manually after login the Bluetooth keyboard works. After
hours of trying figuring out what was wrong I've almost asked for a return on
Amazon! The last attempt I made was with sddm disabled and involved built from
scratch service:
</p>
<p>
{% highlight bash linenos %} [Unit] Description=systemd Unit to automatically
start a Bluetooth keyboard [Service] Type=oneshot ExecStart=/bin/hciconfig
hci0 up ExecStart=/bin/hcitool cc 00:11:22:33:44:55 [Install]
WantedBy=bluetooth.target {% endhighlight %}
</p>
<p>
This incredibly worked. I think the problem was that
<code>multi-user.target</code> that needs to be reached earlier than
<code>bluetooth.target</code>. I got rid of all the tidiness of the ArchWiki
solution just to be sure that was not the problem, but I think you can use all
of that just correcting <code>WantedBy=</code>. Currently I haven't an
ArchWiki account nor a forum one, but as soon as I'll register I'll correct
the article.
</p>
<p>
Last thing: I discovered that my Bluetooth dongle is CSR 8510 A10 based so
expect some ramblings about
<a
href="http://www.0xf8.org/2014/02/the-crux-of-finding-a-hid-proxy-capable-usb-bluetooth-adapter/"
>hid proxy</a
>.
</p>

View file

@ -1,51 +0,0 @@
---
layout: post
title: "Get a Bluetooth keyboard work with Arch Linux"
date: 2016-07-07 14:49:18 +0200
categories: linux
---
I've recently got a Rapoo E6100. This is a minimal and space saving Bluetooth 3.0 keyboard. If you pair it with Windows 10, it will remain paired after reboot, giving the possibility to use it since the login screen. After installing the Bluetooth stack on my Arch via the `bluez` and `bluez-utils` packages I thought the pairing process would be as simple as Windows if I used the KDE GUI menus for Bluetooth management. That's not true. The keyboard, once paired, will reconnect automatically just after `plasmashell` loaded, leaving me without keyboard during the SDDM login screen and, of course, during a non-graphical session.
As usual, i've searched help in the ArchWiki, founding [this](https://wiki.archlinux.org/index.php/Bluetooth_keyboard) article. With that, i've succesfully reconnected my Bluetooth keyboard using the `bluetoothctl` utility. The next step was configuring the service for auto connection during boot. I've created the `btkbd.conf` and the `btkbd.service` files, enabling the last one with systemd. Let's give a look to the service file:
{% highlight bash linenos %}
[Unit]
Description=systemd Unit to automatically start a Bluetooth keyboard
Documentation=https://wiki.archlinux.org/index.php/Bluetooth_Keyboard
Requires=dbus-org.bluez.service
After=dbus-org.bluez.service
ConditionPathExists=/etc/btkbd.conf
ConditionPathExists=/usr/bin/hcitool
ConditionPathExists=/usr/bin/hciconfig
[Service]
Type=oneshot
EnvironmentFile=/etc/btkbd.conf
ExecStart=/usr/bin/hciconfig ${HCIDEVICE} up
# ignore errors on connect, spurious problems with bt?
# so start next command with -
ExecStart=-/usr/bin/hcitool cc ${BTKBDMAC}
[Install]
WantedBy=multi-user.target
{% endhighlight %}
Line 13 enables the Bluetooth dongle, and line 16 connects it to the keyboard we gave the mac address in `/etc/btkbd.conf`. This should work flawlessly, right? Of course it doesn't. The service starts before the `dbus-org.bluez.service` is loaded and fails. However, if the service is started manually after login the Bluetooth keyboard works. After hours of trying figuring out what was wrong I've almost asked for a return on Amazon! The last attempt I made was with sddm disabled and involved built from scratch service:
{% highlight bash linenos %}
[Unit]
Description=systemd Unit to automatically start a Bluetooth keyboard
[Service]
Type=oneshot
ExecStart=/bin/hciconfig hci0 up
ExecStart=/bin/hcitool cc 00:11:22:33:44:55
[Install]
WantedBy=bluetooth.target
{% endhighlight %}
This incredibly worked. I think the problem was that `multi-user.target` that needs to be reached earlier than `bluetooth.target`. I got rid of all the tidiness of the ArchWiki solution just to be sure that was not the problem, but I think you can use all of that just correcting `WantedBy=`. Currently I haven't an ArchWiki account nor a forum one, but as soon as I'll register I'll correct the article.
Let me know in the comments if this solution is well made or if it's just a bodge.
Last thing: I discovered that my Bluetooth dongle is CSR 8510 A10 based so expect some ramblings about [hid proxy](http://www.0xf8.org/2014/02/the-crux-of-finding-a-hid-proxy-capable-usb-bluetooth-adapter/).

View file

@ -0,0 +1,104 @@
---
layout: post
title: "Installing Gentoo on a Lenovo ThinkPad X60s"
date: 2016-07-12 13:00:00 +0200
categories: linux
---
<p>
Currently, my only laptop is a
<a href="http://www.thinkwiki.org/wiki/Category:X60s"
>IBM/Lenovo ThinkPad X60s</a
>, a top line <em>ultrabook</em> from 2006 that features:
</p>
<ul>
<li>An Intel Core Duo L2400 dual core 32 bit CPU, clocked at 1.66 Ghz;</li>
<li>2GB of RAM;</li>
<li>60GB of SATA1 hard drive;</li>
<li>
Wifi, Bluetooth, trackpoint mouse only, 56k modem, and a decent set of I/0
ports (including a CardBus slot!).
</li>
</ul>
<p>
<img src="/images/thinkpad1.jpg" alt="An image of the ThinkPad X60s" />
</p>
<p>
<img src="/images/thinkpad2.jpg" alt="Another image of the ThinkPad X60s" />
</p>
<p>
This machine had an installation on <em>Arch Linux</em>, and I was using it
for school stuff. It runned smoothly <em>KDE5</em>, <em>Atom</em> (great
editor, I am using it to write this article), and it was usable even with
<em>PhpStorm</em>. Pretty impressive for such an old thing, right?
</p>
<p>
Since now I don't need this laptop every day I decided to give a try at
Gentoo, another rolling relase, DIY install distro. This was both a test of my
skills, my patience and the performances of the machine. For those of you that
don't know, Gentoo hasn't binary packages: imagine using Arch with just a
developer mantained AUR.
</p>
<p>
I followed the
<a href="https://wiki.gentoo.org/wiki/Handbook:Main_Page">
installation guide</a
>
without any problem until I had to <em>emerge</em> and install 309 packets
from my <code>@world</code> set: it took 15 hours! The compilation of
<code>cmake</code> crashed because of memory starvation, and so I had to use a
spare USB stick as swap (the root file system was not resizable as it was
JFS). After some research and a couple of seconds in <code>top</code> I
discovered that
<a href="https://en.wikipedia.org/wiki/Physical_Address_Extension">PAE</a>
was not implemented in the install disk kernel. <strong>TIP:</strong> if you
want to use a nicer install enviroment, use the <em>Arch</em> ISO. With
<em>Gentoo</em>, the initialisation of the file system is made with a
<a href="https://wiki.gentoo.org/wiki/Stage_tarball#Stage_3"
><em>stage 3 tarball</em></a
>
and not by tools like
<a
href="https://wiki.archlinux.org/index.php/beginners'_guide#Install_the_base_packages"
>
<code>pacstrap</code></a
>.
</p>
<p>
I had another problem with <code>make menuconfig</code>, the tool used to
specify what features add or remove in your compiled from source Linux kernel.
The <code>ncurses</code> menu showed me 64bit options, even if the install
disk and the CPU were both 32 bit. If you have this issue too, you can set the
<code>ARCH</code> variable by your own:
</p>
<p>
{% highlight bash %}
make ARCH=i386 menuconfig
make ARCH=i386
make ARCH=i386 install
{% endhighlight %}
</p>
<p>
At the end, I made it! I only have a base install, but i can show you
<code>screenfetch</code>:
</p>
<p>
<img src="/images/screenfetch.jpg" alt="The laptop running 'screenfetch'" />
</p>
<p>
I have not installed <em>Gentoo</em> in dual boot because I did not figure out
how to switch my bluetooth dongle in HID mode yet, so I can't select the OS
with <code>rEFInd</code>. Hope this rambling was, if not useful, at least
entertaining!
</p>

View file

@ -1,37 +0,0 @@
---
layout: post
title: "Installing Gentoo on a Lenovo ThinkPad X60s"
date: 2016-07-12 13:00:00 +0200
categories: linux
---
My only laptop is a [IBM/Lenovo ThinkPad X60s](http://www.thinkwiki.org/wiki/Category:X60s), a top line "ultrabook" from 2006 that features:
* An Intel Core Duo L2400 dual core 32 bit CPU, clocked at 1.66 Ghz;
* 2GB of RAM;
* 60GB of SATA1 hard drive;
* Wifi, Bluetooth, trackpoint mouse only, 56k modem, and a decent set of I/0 ports (including a CardBus slot!).
![Think1](https://dl.dropboxusercontent.com/s/vkm6phz5yb2k4oq/IMG_20160712_143708.jpg?dl=0)
![Think2](https://dl.dropboxusercontent.com/s/wfjj1wih90lrzax/IMG_20160712_143618.jpg?dl=0)
This machine had an installation on Arch Linux, and I was using it for school stuff. It runned smoothly KDE5, Atom (great editor, I'm using it to write this article), and it was usable even with Phpstorm. Pretty impressive for such an old thing, right?
Since now I don't need this laptop every day I decided to give a try at Gentoo, another rolling relase, DIY install distro. This was both a test of my skills, my patience and the performances of the machine. For those of you that don't know, Gentoo hasn't binary packages: imagine using Arch with just a developer mantained AUR.
I followed the [installation guide](https://wiki.gentoo.org/wiki/Handbook:Main_Page) without any problem until I had to emerge and install 309 packets from my `@world` set: it took 15 hours! The compilation of `cmake` crashed because of memory starvation, and so I had to use a spare USB stick as swap (the root file system wasn't resizable as it was JFS). After some research and a couple of seconds in `top` I discovered that [PAE](https://en.wikipedia.org/wiki/Physical_Address_Extension) was not implemented in the install disk kernel. TIP: if you want to use a nicer install enviroment, use the Arch ISO. With gentoo, the initialisation of the file system is made with a [stage 3 tarball](https://wiki.gentoo.org/wiki/Stage_tarball#Stage_3) and not by tools like [pacstrap](https://wiki.archlinux.org/index.php/beginners'_guide#Install_the_base_packages).
I had another problem with `make menuconfig`, the tool used to specify what features add or remove in your compiled from source Linux kernel. The ncurses menu showed me 64bit options, even if the install disk and the CPU were both 32 bit. If you have this issue too, you can set the `ARCH` variable by your own:
{% highlight bash %}
# make ARCH=i386 menuconfig
# make ARCH=i386
# make ARCH=i386 install
{% endhighlight %}
At the end, I made it! I only have a base install, but i can show you `screenfetch`:
![Screenfetch](https://dl.dropboxusercontent.com/s/fbysnd58sj4g3kl/IMG_20160711_162733.jpg?dl=0)
I've not installed Gentoo in dual boot because I didn't figured out how to switch my bluetooth dongle in HID mode yet, so I can't select the OS with `rEFInd`. Hope this rambling was, if not useful, at least entertaining!

View file

@ -0,0 +1,133 @@
---
layout: post
title: 'How to rickroll people that try to run "rm -rf" on your system'
date: 2016-07-28 16:00:00 +0200
categories: linux
---
<strong>
WARNING: The method showed here could not prevent the actual execution of "rm
-rf" if the "UNIX vandal" is clever enough. Proceed at your own risk, and make
backups!
</strong>
<p>
I like Rick Astley late 80's songs, and you can see them here in my Spotify:
</p>
<p>
<img
src="/images/spotify_rickastley.png"
alt="My Spotify with a bunch of Rick Astley songs"
/>
</p>
<p>
I like rickrolling people too, especially if they are trying to delete my
entire
<code>/home</code> directory or, even worse, <code>/</code>. Since I learned
how to use the <code>alias</code> built-in, I wanted a way to prevent that
random people tinkering with my laptop (that I may forget to lock) could
delete potentially important stuff, just for fun or boredom.
</p>
<p>
The method that I will show will lock any <code>rm</code> command runned in
both recursive and force mode, so <code>rm -rf</code>,
<code>rm -f -r</code> and <code>rm -r --force</code> are all blocked, even if
they are runned with <code>sudo</code>. I am going to alias the rm command in
<code>/etc/profile</code>, <code>/etc/bash.bashrc</code> and in
<code>/etc/zsh/zshrc</code> (I am a zsh user) so that the rickroll will be
possible from all users, even root and the ones with a brand new
<code>.bashrc</code> or <code>.zshrc</code>. Here is the code I appended to
those files:
</p>
<p>
{% highlight bash %}
alias rm=/bin/rmAlias
# this enables aliases in sudo, see http://askubuntu.com/q/22037/
alias sudo='sudo '
{% endhighlight %}
</p>
<p>
Since <code>alias</code> is not able to control the flags of the aliases (see
<a
href="http://apple.stackexchange.com/questions/50963/how-do-i-add-a-flag-to-an-alias"
>here</a
>, we are going to redirect each call of <code>rm</code> to
<code>/bin/rmAlias</code>, that would run the command if it is safe. I did not
use a function because it is a bit tricky to make that work with
<code>sudo</code>. So, let's see the code I put in <code>rmAlias</code>:
</p>
<p>
{% highlight bash %}
#!/bin/bash
# Rickroll whoever tries to desert this system, even root.
# To achieve this, set the appropriate aliases in /etc/profile and others.
# Video played when rickrolling: it's just Never Gonna Give You Up on my system,
# but be free to customize this!
ROLLVIDEO=/opt/anti-rm/serious-video.mkv
rickroll() {
echo "Never gonna desert this system..."
xdg-open $ROLLVIDEO 2>&1 & exit 0
}
while getopts ":rf-" opt; do
# Prevent '--force' to be detected as -r and -f
if [ "$opt" = "-" ]; then
OPTIND=$OPTIND+1
continue
fi
if [ "$opt" = "r" ] || [ "$opt" = "f" ]; then
if [ "$tmp" = "" ]; then
tmp=$opt
continue
elif [ "$tmp" != "$opt" ]; then
rickroll
fi
fi
done
for var in "$@" do
if [[ "$var" = "--force" && "$tmp" = "r" ]]; then
rickroll
fi
done
# If it's safe, just run rm
/bin/rm "$@"
exit $?
{% endhighlight %}
</p>
<p>
It may look messy to a <em>UNIX</em> guy more experienced than me, but it
works. The <code>getopts</code> built-in sees if both the <code>-r</code> and
the <code>-f</code> flags are used and, if so, it starts
<code>rickroll()</code>, which opens with <code>xdg-open</code> that amazing
clip from <em>RickAstleyVEVO</em>. From line 30 and below, the script checks
if the <code>--force</code> flag is used instead of <code>-f</code>.
</p>
<p>Let's give execution permissions to the script we have just created:</p>
<p>{% highlight bash %}chmod +x /bin/rmAlias{% endhighlight %}</p>
<p>
Restart your shell, and enjoy. If you want to test safely, I suggest trying to
run <code>rm -rf</code> with no folders or a nonexistant one, since this
script stops even these commands.
</p>
<p>
If you want even more security, you can rename this script to
<code>/bin/rm</code> and move the original one in some other place, getting
rid of all the aliases. I prefer the solution above because it's tidier: you
haven't to move anything. In fact, this could be just an AUR package...
</p>

View file

@ -1,77 +0,0 @@
---
layout: post
title: "How to rickroll people that try to run \"rm -rf\" on your system"
date: 2016-07-28 16:00:00 +0200
categories: linux
---
**WARNING: The method showed here could not prevent the actual execution of "rm -rf" if the "UNIX vandal" is clever enough. Proceed at your own risk, and make backups!**
I like Rick Astley late 80's songs, and you can see them here in my Spotify:
![dQw4w9WgXcQ](https://dl.dropboxusercontent.com/s/t9vywa4yjotxv0o/Screenshot_20160728_154506.png?dl=0)
I like rickrolling people myself too, especially if they're trying to delete my entire `/home` directory or, even worse, `/`. Since I learned how to use the `alias` built-in, I wanted a way to prevent that random people tinkering with my laptop (that I may forgot to lock) could delete potentially important stuff, just for fun or boredom.
The method that I'll show will lock any `rm` command runned in both recursive and force mode, so `rm -rf`, `rm -f -r` and `rm -r --force` are all blocked, even if they are launched by `sudo`. I'm going to alias the rm command in `/etc/profile` `/etc/bash.bashrc` and in `/etc/zsh/zshrc` (I'm a zsh user) so that the rickroll will be possible from all users, even root and the ones with a brand new `bashrc` or `zshrc`. Here is the code I appended to those files:
{% highlight bash %}
alias rm=/bin/rmAlias
alias sudo='sudo ' # this enables aliases in sudo, see http://askubuntu.com/questions/22037/aliases-not-available-when-using-sudo
{% endhighlight %}
Since `alias` is not able to control the flags of the aliases (see [here](http://apple.stackexchange.com/questions/50963/how-do-i-add-a-flag-to-an-alias)), we're going to redirect each call of `rm` to `/bin/rmAlias`, that would run the command if it's safe. I didn't use a function because it's a bit tricky to make that work with `sudo`. So, let's see the code I put in `rmAlias`:
{% highlight bash %}
#! /bin/bash
# Rickroll whoever tries to desert this system, even root.
# To achieve this, set the appropriate aliases even in /etc/profile and similars.
# Video played when rickrolling
ROLLVIDEO=/opt/anti-rm/serious-video.mkv # it's just Never Gonna Give You Up on my system, but be free to customize this!
rickroll(){
echo "Never gonna desert this system..."
xdg-open $ROLLVIDEO 2>&1 &
exit 0
}
while getopts ":rf-" opt; do
# Prevent '--force' to be detected as -r and -f
if [ "$opt" = "-" ]; then
OPTIND=$OPTIND+1
continue
fi
if [ "$opt" = "r" ] || [ "$opt" = "f" ]; then
if [ "$tmp" = "" ]; then
tmp=$opt
continue
elif [ "$tmp" != "$opt" ]; then
rickroll
fi
fi
done
for var in "$@"
do
if [[ "$var" = "--force" && "$tmp" = "r" ]]; then
rickroll
fi
done
# If it's safe, just run rm
/bin/rm "$@"
exit $?
{% endhighlight %}
It may look messy to a UNIX guy more experienced than me, but it works. The `getopts` built-in sees if both the `-r` and the `-f` flags are used and, if so, it starts `rickroll()`, which opens with `xdg-open` that amazing clip from RickAstleyVEVO. From line 30 and below, the script checks if the `--force` flag is used instead of `-f`.
Give execute permissions to the script we've just created:
{% highlight bash %}
# chmod +x /bin/rmAlias
{% endhighlight %}
Restart your shell, and enjoy. If you want to test safely, I suggest trying to run `rm -rf` with no folders or one nonexistant, since this script stop even these commands.
If you want even more security, you can rename this script to `/bin/rm` and move the original one in some other place, getting rid of all the aliases. I prefer the solution above because it's tidier: you haven't to move anything. In fact, this could be just an AUR package...

View file

@ -1,25 +0,0 @@
---
layout: post
title: "My archery setup!"
date: 2016-08-15 12:00:00 +0200
categories: archery
---
Hey there! This is my first post about archery, so I thought that I could have done a tour of my setup. As I wrote in the about page, I'm a Olmpic recurve archer based in Italy. I do this for almost five years! If you don't understand everything I say, you can check out the youtube channel [Nusensei](https://www.youtube.com/user/NUSensei/). It's a very good source, especially for beginners.
![Bow1](https://dl.dropboxusercontent.com/s/efmap2qqvz6yapn/IMG_20160809_164942.jpg?dl=0)
Ok, the setup. I own a *Fiberbow 5.99* LH (yes, I'm left handed) as my `riser`, the *central* part of the bow. It's made by carbon fiber so it's very lightweight. And is not painted too: It looks kinda cool. Many experienced archers could complain saying that carbon fiber bends and this is a bad thing. Instead, I think this gives you a nice feedback when you release. Also I tried to raise a friend's *Hoyt Prodigy XT*, and there's no way I'm going to lift such a weight on a regular base. Both the risers mentioned are high-range ones: I got mine 50% off because it wasn't the latest model and it had some minor ahestetic flaws. Also, this isn't my first one. In fact, I used to shoot with an Orange SF Premium: great bow for beginners!
As limbs, I use a pair of *EXE College* rated at 34 pounds. Since I'm quite tall (limbs and riser toghether make a 70" tall bow), my draw length is around 29.5" and my draw weight is around 38 pounds.
The sight is a *Shibuya Dual Click*. You can check out [this](https://www.youtube.com/watch?v=_ZvAnyxazpY) review by Nusensei (by the way, I knew his channel from this very video).
As stabilizers, I use a set of *Fiberbow S.3* ones with yellow dampeners (for those who know the difference between the colours).
As plunger button, I use a *EXE* one. It's a middle range one, but it seems very well built and it works fine! Also, I'm not going to spend 90€ for a `Cartel` one.
My current arrows are a set of *Easton X7 Eclipse* spined at 2213. These are winter alluminium arrows, but since they are cheaper than carbon ones, I bought these as a total replacement of my *VAP V6* 600. Those, due to form flaws, were 2 inches too short. Oh, and I always used *Spin Wings* and *Elivanes*, a stiffer plastic italian replacement.
Here's an image of the complete bow at the archery range:
![Bow2](https://dl.dropboxusercontent.com/s/ril7kk9zd0l4vrf/IMG_20160809_175554.jpg?dl=0)

View file

@ -1,11 +0,0 @@
---
layout: post
title: "Just a quick post. BAM!, my first web app (still in development) is on Github!"
date: 2016-08-31 12:00:00 +0200
categories: programming
---
As you can read from the title, I'm publishing the uncompleted code of my first webapp. I'm working on this since 3 weeks, and I'm proud of what I've done so far.
If you want to check out the repository, click [here](https://github.com/praticamentetilde/BAM).
Maybe I can use Materialize css also for this jekyll site, or maybe this is another thing I say but I'm not going to do. Who knows.

View file

@ -1,7 +0,0 @@
---
layout: post
title: "Css updated!"
date: 2016-09-13 21:30:00 +0200
categories: update
---
As you can see, now the css is decent! Now I'm using [Skeleton](http://getskeleton.com) and a couple of custom sass lines that you can check out on Github. Currently, I'm a bit busy with BAM! so I'm not sure I'll find the time for this. Anyway, enjoy the new look!

View file

@ -1,204 +1,185 @@
/** /* vim: set ts=2 sw=2 et tw=80: */
* Reset some basic elements
*/ /* Reset some basic elements */
body, h1, h2, h3, h4, h5, h6, body,
p, blockquote, pre, hr, h1,
dl, dd, ol, ul, figure { h2,
margin: 0; h3,
padding: 0; h4,
h5,
h6,
p,
blockquote,
pre,
hr,
dl,
dd,
ol,
ul,
figure {
margin: 0;
padding: 0;
} }
/* Basic styling */
html {
/** font-weight: $base-font-weight;
* Basic styling font-size: $base-font-size;
*/ line-height: $base-line-height;
body { font-family: $base-font-family;
font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family; color: $text-color;
color: $text-color; background-color: $background-color;
background-color: $background-color;
-webkit-text-size-adjust: 100%;
-webkit-font-feature-settings: "kern" 1;
-moz-font-feature-settings: "kern" 1;
-o-font-feature-settings: "kern" 1;
font-feature-settings: "kern" 1;
font-kerning: normal;
} }
/* Images */
/**
* Set `margin-bottom` to maintain vertical rhythm
*/
h1, h2, h3, h4, h5, h6,
p, blockquote, pre,
ul, ol, dl, figure,
%vertical-rhythm {
margin-bottom: $spacing-unit / 2;
}
/**
* Images
*/
img { img {
max-width: 100%; max-width: 100%;
vertical-align: middle; vertical-align: middle;
} }
/* Lists */
ul,
/** ol {
* Figures margin-left: $spacing-unit;
*/
figure > img {
display: block;
} }
figcaption { /* Disable margin for lists */
font-size: $small-font-size; li > ul,
li > ol {
margin-bottom: 0;
} }
/* Headings */
h2,
/** h3,
* Lists h4,
*/ h5,
ul, ol { h6 {
margin-left: $spacing-unit; font-weight: $base-font-weight;
text-decoration: underline;
} }
li { /* Links */
> ul,
> ol {
margin-bottom: 0;
}
}
/**
* Headings
*/
h1, h2, h3, h4, h5, h6 {
font-weight: $base-font-weight;
}
/**
* Links
*/
a { a {
color: $brand-color; color: $brand-color;
text-decoration: none; background: $background-color;
text-decoration: none;
font-weight: bold;
&:visited { &:visited {
color: darken($brand-color, 15%); }
}
&:hover { &:hover {
color: $text-color; text-decoration: underline;
text-decoration: underline; }
}
} }
/** /**
* Blockquotes * Blockquotes
*/ */
blockquote { blockquote {
color: $grey-color; color: white;
border-left: 4px solid $grey-color-light; background: $top-col;
padding-left: $spacing-unit / 2; border-left: 4px solid $brand-color;
font-size: 18px; letter-spacing: -1px;
letter-spacing: -1px; font-style: italic;
font-style: italic; margin: 1rem 0;
padding: 1em;
> :last-child { > :last-child {
margin-bottom: 0; margin-bottom: 0;
} }
} }
/* do not put padding around the table with line numbers and the code */
code table {
/** margin: -8px -12px;
* Code formatting
*/
pre,
code {
font-size: 15px;
/*border: 1px solid $grey-color-light;*/
border-radius: 3px;
background: rgb(66,66,66);
} }
code { pre table.rouge-table td {
padding: 1px 5px; padding: 0;
} }
pre { pre {
padding: 8px 12px; padding: 8px 12px;
overflow-x: auto; overflow-x: auto;
> code { > code {
border: 0; border: 0;
padding-right: 0; padding-right: 0;
padding-left: 0; padding-left: 0;
} }
} }
/* pull a nice monospace font from the internets, plus set font and
* background */
pre,
code {
font-size: 0.95rem;
background: $background-color;
}
a code {
background: $background-color;
}
/** /* Disable borders between line numbers and code when
* Wrapper * line numbers are shown */
*/ code .rouge-table,
.wrapper { code .rouge-table td {
max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2)); border: 0;
max-width: calc(#{$content-width} - (#{$spacing-unit} * 2)); border-radius: 0;
margin-right: auto; }
margin-left: auto;
padding-right: $spacing-unit;
padding-left: $spacing-unit;
@extend %clearfix;
@include media-query($on-laptop) { code .rouge-table {
max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit})); border-spacing: 0;
max-width: calc(#{$content-width} - (#{$spacing-unit})); border-collapse: collapse;
padding-right: $spacing-unit / 2;
padding-left: $spacing-unit / 2;
}
} }
/** /**
* Clearfix * Basic layout rules
*/ */
%clearfix {
&:after { /* Padding for the main content in the page */
content: ""; .container {
display: table; padding: 0.4rem 2em;
clear: both;
}
} }
/* Header sizes */
/** /**
* Icons * General style for the content inside main
*/ */
.icon {
> svg { /* separate article metadata to the article itself with some space */
display: inline-block; article .post-header {
width: 16px; margin-bottom: 3rem;
height: 16px; }
vertical-align: middle;
/* put some space at the end of each article and at the end of each section */
path { main article,
fill: $grey-color; main section {
} margin-bottom: 2rem;
} }
/* justify text */
p {
text-align: justify;
}
/* put a space between paragraphs and images */
p,
figure {
margin-top: 1.2rem;
}
/* the first paragraph has no space at the top (since that is provided
* by either main or h? */
p:first-child {
margin-top: 0;
}
/* make strongly emphasized elements REALLY STRONG */
strong {
background: #faa;
} }

View file

@ -1,105 +1,325 @@
$header-border: 1px solid #eee; /* vim: set ts=2 sw=2 et tw=80: */
body {
body{ background-color: $background-color;
background-color: #333; font-family: "Radio Canada", sans-serif;
font-family: 'Hammersmith One', sans-serif; display: flex;
color: white; min-height: 100vh;
display: flex; flex-direction: column;
min-height: 100vh;
flex-direction: column;
} }
main { main {
flex: 1 0 auto; flex: 1 0 auto;
} }
.navbar-list .navbar-item{ .navbar-list .navbar-item {
text-transform: uppercase; text-transform: uppercase;
font-weight: 400; font-weight: 400;
display: inline-block; margin: 1em;
margin: 1em;
} }
ul.navbar-list{ ul.navbar-list {
border-top: $header-border; margin-bottom: 2rem;
border-bottom: $header-border;
margin-bottom: 2rem;
} }
.header { .header {
padding-top: 6rem; background: $top-col;
text-align: center; color: $top-col;
}
@media (min-width: 700px){ .head.navbar {
.header { display: flex;
padding-top: 14rem;
@include media-query($on-palm) {
flex-direction: column;
align-items: center;
} }
} h1 {
flex: 2;
font-size: 1.5rem;
display: inline;
margin: 0;
padding: 0;
.head{ a {
padding: 0 1rem 6rem 1rem; background: $top-col;
} color: white;
}
@media (max-width: 700px){
.navbar-list .navbar-item {
width: calc(100% - 2em);
} }
.links {
white-space: nowrap;
text-align: right;
a {
text-transform: uppercase;
display: inline-block;
padding: 0.25rem 0.5rem;
background: $top-col;
color: white;
}
a:first-child {
padding-left: 0;
}
a:last-child {
padding-right: 0;
}
}
}
} }
.navbar-item a{ .homequote {
color: $brand-color; display: flex;
color: $text-color;
align-items: stretch;
margin-bottom: 1rem;
figure {
margin: 0;
flex: 0;
background-image: url(/images/claudio.jpg);
background-size: cover;
background-position: center;
}
figure .blur {
width: 100%;
height: 100%;
backdrop-filter: blur(10px) contrast(0.7) brightness(1.3);
display: flex;
align-items: center;
justify-content: center;
min-width: 300px;
}
.quote {
flex: 1;
padding: 1rem 1.5rem;
}
} }
ul.post-list, ul.navbar-list{ @include media-query($on-laptop) {
list-style-type: none; .homequote {
margin-left: 0; flex-direction: column;
margin-right: 0;
figure img {
filter: none;
object-fit: cover;
height: 300px;
width: 300px;
object-position: center top;
}
}
} }
.header, footer{ .portfolio {
background-color: rgba(0,0,0,0.25); position: relative;
padding-top: 2rem;
.line {
position: absolute;
top: 0;
bottom: 0;
left: 1rem;
border: 3px solid #aaa;
z-index: 100;
}
.line-end,
.line-end-bottom {
position: absolute;
left: 0.675rem;
width: 1rem;
height: 1rem;
border-radius: 1rem;
background: #aaa;
z-index: 200;
}
.line-end {
top: 0;
}
.line-end-bottom {
bottom: 0;
}
.port-elem {
display: flex;
width: 100%;
.side > *,
.description {
padding: 0.5rem;
z-index: 200;
}
.side {
width: 12rem;
min-width: 12rem;
display: flex;
flex-grow: 0;
flex-direction: column;
align-items: stretch;
text-align: right;
.date {
background: $top-col;
color: white;
}
.category,
.authors,
.repo,
.languages {
background: white;
border: 3px solid #7cafe4;
border-top: 0px;
}
.authors {
text-align: left;
ul {
margin: 0 0 0 1rem;
list-style-type: square;
font-size: 0.8em;
}
}
}
.description {
border: $border;
flex-grow: 1;
background: $background-color;
.images {
background: $brand-color;
padding: 0.5rem;
margin: -0.5rem -0.5rem 0.5rem -0.5rem;
text-align: center;
a {
background: none;
}
img {
width: 175px;
margin: 0.25rem;
}
}
}
}
} }
footer{ @include media-query($on-laptop) {
padding-top: 1rem; .portfolio {
}
footer .author{
text-align: center;
text-transform: uppercase;
}
.container{
padding-top: 1rem;
padding-bottom: 1rem; padding-bottom: 1rem;
}
.port-elem {
flex-direction: column;
.icons{ .side {
text-align: center; width: 100%;
} text-align: center;
a.icon{ .authors {
display: inline-table; text-align: center;
background-color: rgba(255,255,255,0.5);
border-radius: 1.75em;
width: 3.5em;
height: 3.5em;
text-align: center;
line-height: 3.5em;
margin: .5em;
color: white;
cursor: pointer;
&:hover { ul {
text-decoration: none; list-style-type: none;
}
}
}
} }
}
} }
a.icon i.fa{ @media (max-width: 700px) {
font-size: 2em; .navbar-list .navbar-item {
display: table-cell; width: calc(100% - 2em);
vertical-align: middle; }
}
ul.post-list,
ul.navbar-list {
list-style-type: none;
margin-left: 0;
margin-right: 0;
}
ul.post-list li {
padding-top: 2rem;
}
ul.post-list li:first-child {
padding-top: 0;
}
footer {
justify-content: space-between;
background: $brand-color;
.container {
display: flex;
.author {
flex: 1;
font-size: 1rem;
text-align: right;
background: $brand-color;
color: white;
a {
background: $brand-color;
color: white;
}
}
@include media-query($on-palm) {
flex-direction: column;
align-items: center;
.author {
text-align: center;
}
}
.icons {
text-align: center;
flex: 0;
white-space: nowrap;
.icon {
display: inline-table;
color: $brand-color;
background: white;
width: 2.5em;
height: 2.5em;
text-align: center;
line-height: 2.5em;
margin: 0.25em;
cursor: pointer;
}
}
}
}
.container {
padding-top: 1rem;
padding-bottom: 1rem;
max-width: min(1280px, 100%);
margin: 0 auto;
}
@media screen and (max-width: 1280px) {
main.container {
margin: 0 0;
}
}
/* Utility class for centering block elements */
.block-center {
display: block;
margin: auto;
} }

View file

@ -2,78 +2,212 @@
* Syntax highlighting styles * Syntax highlighting styles
*/ */
.highlight { .highlight {
background: #fff; background: #eee;
@extend %vertical-rhythm; border: 3px solid #ddd;
.highlighter-rouge & { .highlighter-rouge & {
background: #eef; background: #eef;
} }
td.code > pre{ td.code > pre {
background: #323232; background: #222;
} }
pre.lineno{ pre.lineno {
background: #212121; background: #111;
} text-align: right;
}
.c { color: #998; font-style: italic } // Comment .c {
.err { color: #a61717; background-color: #e3d2d2 } // Error color: #777;
.k { font-weight: bold } // Keyword font-style: italic;
.o { font-weight: bold } // Operator } // Comment
.cm { color: #998; font-style: italic } // Comment.Multiline .err {
.cp { color: #999; font-weight: bold } // Comment.Preproc color: #a61717;
.c1 { color: #998; font-style: italic } // Comment.Single background-color: #e3d2d2;
.cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special } // Error
.gd { color: #000; background-color: #fdd } // Generic.Deleted .k {
.gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific font-weight: bold;
.ge { font-style: italic } // Generic.Emph } // Keyword
.gr { color: #a00 } // Generic.Error .o {
.gh { color: #999 } // Generic.Heading font-weight: bold;
.gi { color: #000; background-color: #dfd } // Generic.Inserted } // Operator
.gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific .cm {
.go { color: #888 } // Generic.Output color: #998;
.gp { color: #555 } // Generic.Prompt font-style: italic;
.gs { font-weight: bold } // Generic.Strong } // Comment.Multiline
.gu { color: #aaa } // Generic.Subheading .cp {
.gt { color: #a00 } // Generic.Traceback color: #999;
.kc { font-weight: bold } // Keyword.Constant font-weight: bold;
.kd { font-weight: bold } // Keyword.Declaration } // Comment.Preproc
.kp { font-weight: bold } // Keyword.Pseudo .c1 {
.kr { font-weight: bold } // Keyword.Reserved color: #998;
.kt { color: #458; font-weight: bold } // Keyword.Type font-style: italic;
.m { color: #099 } // Literal.Number } // Comment.Single
.s { color: #d14 } // Literal.String .cs {
.na { color: #008080 } // Name.Attribute color: #999;
.nb { color: #0086B3 } // Name.Builtin font-weight: bold;
.nc { color: #458; font-weight: bold } // Name.Class font-style: italic;
.no { color: #008080 } // Name.Constant } // Comment.Special
.ni { color: #800080 } // Name.Entity .gd {
.ne { color: #900; font-weight: bold } // Name.Exception color: #000;
.nf { color: #900; font-weight: bold } // Name.Function background-color: #fdd;
.nn { color: #555 } // Name.Namespace } // Generic.Deleted
.nt { color: #000080 } // Name.Tag .gd .x {
.nv { color: #008080 } // Name.Variable color: #000;
.ow { font-weight: bold } // Operator.Word background-color: #faa;
.w { color: #bbb } // Text.Whitespace } // Generic.Deleted.Specific
.mf { color: #099 } // Literal.Number.Float .ge {
.mh { color: #099 } // Literal.Number.Hex font-style: italic;
.mi { color: #099 } // Literal.Number.Integer } // Generic.Emph
.mo { color: #099 } // Literal.Number.Oct .gr {
.sb { color: #d14 } // Literal.String.Backtick color: #a00;
.sc { color: #d14 } // Literal.String.Char } // Generic.Error
.sd { color: #d14 } // Literal.String.Doc .gh {
.s2 { color: #d14 } // Literal.String.Double color: #999;
.se { color: #d14 } // Literal.String.Escape } // Generic.Heading
.sh { color: #d14 } // Literal.String.Heredoc .gi {
.si { color: #d14 } // Literal.String.Interpol color: #000;
.sx { color: #d14 } // Literal.String.Other background-color: #dfd;
.sr { color: #009926 } // Literal.String.Regex } // Generic.Inserted
.s1 { color: #d14 } // Literal.String.Single .gi .x {
.ss { color: #990073 } // Literal.String.Symbol color: #000;
.bp { color: #999 } // Name.Builtin.Pseudo background-color: #afa;
.vc { color: #008080 } // Name.Variable.Class } // Generic.Inserted.Specific
.vg { color: #008080 } // Name.Variable.Global .go {
.vi { color: #008080 } // Name.Variable.Instance color: #888;
.il { color: #099 } // Literal.Number.Integer.Long } // Generic.Output
.gp {
color: #555;
} // Generic.Prompt
.gs {
font-weight: bold;
} // Generic.Strong
.gu {
color: #aaa;
} // Generic.Subheading
.gt {
color: #a00;
} // Generic.Traceback
.kc {
font-weight: bold;
} // Keyword.Constant
.kd {
font-weight: bold;
} // Keyword.Declaration
.kp {
font-weight: bold;
} // Keyword.Pseudo
.kr {
font-weight: bold;
} // Keyword.Reserved
.kt {
color: #458;
font-weight: bold;
} // Keyword.Type
.m {
color: #099;
} // Literal.Number
.s {
color: #d14;
} // Literal.String
.na {
color: #008080;
} // Name.Attribute
.nb {
color: #00a6d3;
} // Name.Builtin
.nc {
color: #458;
font-weight: bold;
} // Name.Class
.no {
color: #008080;
} // Name.Constant
.ni {
color: #800080;
} // Name.Entity
.ne {
color: #900;
font-weight: bold;
} // Name.Exception
.nf {
color: #900;
font-weight: bold;
} // Name.Function
.nn {
color: #555;
} // Name.Namespace
.nt {
color: #0000d0;
} // Name.Tag
.nv {
color: #0bb;
} // Name.Variable
.ow {
font-weight: bold;
} // Operator.Word
.w {
color: #bbb;
} // Text.Whitespace
.mf {
color: #099;
} // Literal.Number.Float
.mh {
color: #099;
} // Literal.Number.Hex
.mi {
color: #099;
} // Literal.Number.Integer
.mo {
color: #099;
} // Literal.Number.Oct
.sb {
color: #f54;
} // Literal.String.Backtick
.sc {
color: #f54;
} // Literal.String.Char
.sd {
color: #f54;
} // Literal.String.Doc
.s2 {
color: #f54;
} // Literal.String.Double
.se {
color: #f54;
} // Literal.String.Escape
.sh {
color: #f54;
} // Literal.String.Heredoc
.si {
color: #f54;
} // Literal.String.Interpol
.sx {
color: #f54;
} // Literal.String.Other
.sr {
color: #009926;
} // Literal.String.Regex
.s1 {
color: #f54;
} // Literal.String.Single
.ss {
color: #990073;
} // Literal.String.Symbol
.bp {
color: #999;
} // Name.Builtin.Pseudo
.vc {
color: #008080;
} // Name.Variable.Class
.vg {
color: #008080;
} // Name.Variable.Global
.vi {
color: #008080;
} // Name.Variable.Instance
.il {
color: #099;
} // Literal.Number.Integer.Long
} }

View file

@ -1,111 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Ramblings of an archer archer</title>
<meta name="description" content="Things which an Arch Linux user that also owns an recurve bow can write.
">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css">
<link rel="stylesheet" href="/css/main.css">
<link href='https://fonts.googleapis.com/css?family=Hammersmith+One' rel='stylesheet' type='text/css'>
<link rel="canonical" href="http://praticamentetilde.github.io/404.html">
<link rel="alternate" type="application/rss+xml" title="Ramblings of an archer archer" href="http://praticamentetilde.github.io/feed.xml">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<script src="https://rawgit.com/snaptortoise/konami-js/master/konami.js"></script>
<!-- Favicon -->
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
</head>
<body>
<header class="header">
<section class="head">
<h2 class="title">Ramblings of an archer archer</h2>
<p>Things which an Arch Linux user that also owns an recurve bow can write.
</p>
</section>
<nav class="navbar">
<div class="container">
<ul class="navbar-list">
<li class="navbar-item">
<a href="/">home</a>
</li>
<li class="navbar-item">
<a href="/about/">About</a>
</li>
<li class="navbar-item">
<a href="http://www.burarco.it">My archery club</a>
</li>
<li class="navbar-item">
<a href="/feed.xml">RSS</a>
</li>
</ul>
</div>
</nav>
</header>
<main class="container">
<h1 id="page-not-found">404 - page not found</h1>
<p>If you didnt come on purpose I apologise, but the page you are searching doesnt exist.
But, if you came on purpose, enjoy a flat Rick Astley gif dancing.</p>
<p><img src="/astley.gif" alt="Rick gif" /></p>
<style>
img{
display: inline-block
}
main{
text-align: center
}
</style>
<p>Thanks <a href="https://github.com/Giorgio-Croci">Giorgio Croci!</a></p>
</main>
<footer class="site-footer">
<div class="icons">
<a class="icon" href="https://github.com/praticamentetilde"><i class="fa fa-github"></i></a>
<a class="icon" href="https://www.reddit.com/user/praticamentetilde"><i class="fa fa-reddit"></i></a>
</div>
<h6 class="author">Claudio Maggioni 2016</h6>
</footer>
<script>
var easter_egg = new Konami();
easter_egg.load("https://www.youtube.com/watch?v=URTcCh6QVwM");
</script>
</body>
</html>

View file

@ -1,110 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>About</title>
<meta name="description" content="Things which an Arch Linux user that also owns an recurve bow can write.
">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css">
<link rel="stylesheet" href="/css/main.css">
<link href='https://fonts.googleapis.com/css?family=Hammersmith+One' rel='stylesheet' type='text/css'>
<link rel="canonical" href="http://praticamentetilde.github.io/about/">
<link rel="alternate" type="application/rss+xml" title="Ramblings of an archer archer" href="http://praticamentetilde.github.io/feed.xml">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<script src="https://rawgit.com/snaptortoise/konami-js/master/konami.js"></script>
<!-- Favicon -->
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
</head>
<body>
<header class="header">
<section class="head">
<h2 class="title">Ramblings of an archer archer</h2>
<p>Things which an Arch Linux user that also owns an recurve bow can write.
</p>
</section>
<nav class="navbar">
<div class="container">
<ul class="navbar-list">
<li class="navbar-item">
<a href="/">home</a>
</li>
<li class="navbar-item">
<a href="/about/">About</a>
</li>
<li class="navbar-item">
<a href="http://www.burarco.it">My archery club</a>
</li>
<li class="navbar-item">
<a href="/feed.xml">RSS</a>
</li>
</ul>
</div>
</nav>
</header>
<main class="container">
<article class="post">
<header class="post-header">
<h2 class="post-title">About</h2>
</header>
<div class="post-content">
<p>My name is Claudio Maggioni and I am both an Arch Linux user and an <a href="http://www.fitarco-italia.org/arcieri/situazione.php?Codice=91647">recurve archer</a>. I define myself an “archer archer”. This site will collect my own occasional thoughts about the two worlds, hoping someone will found them useful.</p>
<p>If you are curious about the code i produce my personal Github account is <a href="https://github.com/praticamentetilde/">here</a>. This particular site is made with jekyll and hosted by Github pages, as you can see.</p>
<p>PRO tip: try performing a Konami code in the home page (for phones slide up, slide up, slide down, slide down, slide left, slide right, slide left, slide right, tap, tap; made with <a href="https://github.com/snaptortoise/konami-js">this</a>)…</p>
</div>
</article>
</main>
<footer class="site-footer">
<div class="icons">
<a class="icon" href="https://github.com/praticamentetilde"><i class="fa fa-github"></i></a>
<a class="icon" href="https://www.reddit.com/user/praticamentetilde"><i class="fa fa-reddit"></i></a>
</div>
<h6 class="author">Claudio Maggioni 2016</h6>
</footer>
<script>
var easter_egg = new Konami();
easter_egg.load("https://www.youtube.com/watch?v=URTcCh6QVwM");
</script>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

View file

@ -1,147 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>My archery setup!</title>
<meta name="description" content="Hey there! This is my first post about archery, so I thought that I could have done a tour of my setup. As I wrote in the about page, Im a Olmpic recurve ar...">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css">
<link rel="stylesheet" href="/css/main.css">
<link href='https://fonts.googleapis.com/css?family=Hammersmith+One' rel='stylesheet' type='text/css'>
<link rel="canonical" href="http://praticamentetilde.github.io/archery/2016/08/15/my-archery-setup.html">
<link rel="alternate" type="application/rss+xml" title="Ramblings of an archer archer" href="http://praticamentetilde.github.io/feed.xml">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<script src="https://rawgit.com/snaptortoise/konami-js/master/konami.js"></script>
<!-- Favicon -->
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
</head>
<body>
<header class="header">
<section class="head">
<h2 class="title">Ramblings of an archer archer</h2>
<p>Things which an Arch Linux user that also owns an recurve bow can write.
</p>
</section>
<nav class="navbar">
<div class="container">
<ul class="navbar-list">
<li class="navbar-item">
<a href="/">home</a>
</li>
<li class="navbar-item">
<a href="/about/">About</a>
</li>
<li class="navbar-item">
<a href="http://www.burarco.it">My archery club</a>
</li>
<li class="navbar-item">
<a href="/feed.xml">RSS</a>
</li>
</ul>
</div>
</nav>
</header>
<main class="container">
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
<header class="post-header">
<h2 class="post-title" itemprop="name headline">My archery setup!</h2>
<p class="post-meta"><time datetime="2016-08-15T12:00:00+02:00" itemprop="datePublished">Aug 15, 2016</time></p>
</header>
<div class="post-content" itemprop="articleBody">
<p>Hey there! This is my first post about archery, so I thought that I could have done a tour of my setup. As I wrote in the about page, Im a Olmpic recurve archer based in Italy. I do this for almost five years! If you dont understand everything I say, you can check out the youtube channel <a href="https://www.youtube.com/user/NUSensei/">Nusensei</a>. Its a very good source, especially for beginners.</p>
<p><img src="https://dl.dropboxusercontent.com/s/efmap2qqvz6yapn/IMG_20160809_164942.jpg?dl=0" alt="Bow1" /></p>
<p>Ok, the setup. I own a <em>Fiberbow 5.99</em> LH (yes, Im left handed) as my <code class="highlighter-rouge">riser</code>, the <em>central</em> part of the bow. Its made by carbon fiber so its very lightweight. And is not painted too: It looks kinda cool. Many experienced archers could complain saying that carbon fiber bends and this is a bad thing. Instead, I think this gives you a nice feedback when you release. Also I tried to raise a friends <em>Hoyt Prodigy XT</em>, and theres no way Im going to lift such a weight on a regular base. Both the risers mentioned are high-range ones: I got mine 50% off because it wasnt the latest model and it had some minor ahestetic flaws. Also, this isnt my first one. In fact, I used to shoot with an Orange SF Premium: great bow for beginners!</p>
<p>As limbs, I use a pair of <em>EXE College</em> rated at 34 pounds. Since Im quite tall (limbs and riser toghether make a 70” tall bow), my draw length is around 29.5” and my draw weight is around 38 pounds.</p>
<p>The sight is a <em>Shibuya Dual Click</em>. You can check out <a href="https://www.youtube.com/watch?v=_ZvAnyxazpY">this</a> review by Nusensei (by the way, I knew his channel from this very video).</p>
<p>As stabilizers, I use a set of <em>Fiberbow S.3</em> ones with yellow dampeners (for those who know the difference between the colours).</p>
<p>As plunger button, I use a <em>EXE</em> one. Its a middle range one, but it seems very well built and it works fine! Also, Im not going to spend 90€ for a <code class="highlighter-rouge">Cartel</code> one.</p>
<p>My current arrows are a set of <em>Easton X7 Eclipse</em> spined at 2213. These are winter alluminium arrows, but since they are cheaper than carbon ones, I bought these as a total replacement of my <em>VAP V6</em> 600. Those, due to form flaws, were 2 inches too short. Oh, and I always used <em>Spin Wings</em> and <em>Elivanes</em>, a stiffer plastic italian replacement.</p>
<p>Heres an image of the complete bow at the archery range:</p>
<p><img src="https://dl.dropboxusercontent.com/s/ril7kk9zd0l4vrf/IMG_20160809_175554.jpg?dl=0" alt="Bow2" /></p>
</div>
</article>
<div id="disqus_thread"></div>
<script>
/**
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables
*/
/*
var disqus_config = function () {
this.page.url = PAGE_URL; // Replace PAGE_URL with your page's canonical URL variable
this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
};
*/
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = '//ramblingsofanarcherarcher.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
</main>
<footer class="site-footer">
<div class="icons">
<a class="icon" href="https://github.com/praticamentetilde"><i class="fa fa-github"></i></a>
<a class="icon" href="https://www.reddit.com/user/praticamentetilde"><i class="fa fa-reddit"></i></a>
</div>
<h6 class="author">Claudio Maggioni 2016</h6>
</footer>
<script>
var easter_egg = new Konami();
easter_egg.load("https://www.youtube.com/watch?v=URTcCh6QVwM");
</script>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 950 KiB

View file

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>

View file

@ -1,369 +0,0 @@
/**
* Reset some basic elements
*/
body, h1, h2, h3, h4, h5, h6,
p, blockquote, pre, hr,
dl, dd, ol, ul, figure {
margin: 0;
padding: 0; }
/**
* Basic styling
*/
body {
font: 200 16px/1.5 "Hammersmith One", "Helvetica Neue", Helvetica, Arial, sans-serif;
color: #888;
background-color: #090909;
-webkit-text-size-adjust: 100%;
-webkit-font-feature-settings: "kern" 1;
-moz-font-feature-settings: "kern" 1;
-o-font-feature-settings: "kern" 1;
font-feature-settings: "kern" 1;
font-kerning: normal; }
/**
* Set `margin-bottom` to maintain vertical rhythm
*/
h1, h2, h3, h4, h5, h6,
p, blockquote, pre,
ul, ol, dl, figure,
.highlight {
margin-bottom: 15px; }
/**
* Images
*/
img {
max-width: 100%;
vertical-align: middle; }
/**
* Figures
*/
figure > img {
display: block; }
figcaption {
font-size: 14px; }
/**
* Lists
*/
ul, ol {
margin-left: 30px; }
li > ul,
li > ol {
margin-bottom: 0; }
/**
* Headings
*/
h1, h2, h3, h4, h5, h6 {
font-weight: 200; }
/**
* Links
*/
a {
color: #e82;
text-decoration: none; }
a:visited {
color: #b6620e; }
a:hover {
color: #888;
text-decoration: underline; }
/**
* Blockquotes
*/
blockquote {
color: #828282;
border-left: 4px solid #e8e8e8;
padding-left: 15px;
font-size: 18px;
letter-spacing: -1px;
font-style: italic; }
blockquote > :last-child {
margin-bottom: 0; }
/**
* Code formatting
*/
pre,
code {
font-size: 15px;
/*border: 1px solid $grey-color-light;*/
border-radius: 3px;
background: #424242; }
code {
padding: 1px 5px; }
pre {
padding: 8px 12px;
overflow-x: auto; }
pre > code {
border: 0;
padding-right: 0;
padding-left: 0; }
/**
* Wrapper
*/
.wrapper {
max-width: -webkit-calc(800px - (30px * 2));
max-width: calc(800px - (30px * 2));
margin-right: auto;
margin-left: auto;
padding-right: 30px;
padding-left: 30px; }
@media screen and (max-width: 800px) {
.wrapper {
max-width: -webkit-calc(800px - (30px));
max-width: calc(800px - (30px));
padding-right: 15px;
padding-left: 15px; } }
/**
* Clearfix
*/
.wrapper:after {
content: "";
display: table;
clear: both; }
/**
* Icons
*/
.icon > svg {
display: inline-block;
width: 16px;
height: 16px;
vertical-align: middle; }
.icon > svg path {
fill: #828282; }
body {
background-color: #333;
font-family: 'Hammersmith One', sans-serif;
color: white;
display: flex;
min-height: 100vh;
flex-direction: column; }
main {
flex: 1 0 auto; }
.navbar-list .navbar-item {
text-transform: uppercase;
font-weight: 400;
display: inline-block;
margin: 1em; }
ul.navbar-list {
border-top: 1px solid #eee;
border-bottom: 1px solid #eee;
margin-bottom: 2rem; }
.header {
padding-top: 6rem;
text-align: center; }
@media (min-width: 700px) {
.header {
padding-top: 14rem; } }
.head {
padding: 0 1rem 6rem 1rem; }
@media (max-width: 700px) {
.navbar-list .navbar-item {
width: calc(100% - 2em); } }
.navbar-item a {
color: #e82; }
ul.post-list, ul.navbar-list {
list-style-type: none;
margin-left: 0;
margin-right: 0; }
.header, footer {
background-color: rgba(0, 0, 0, 0.25); }
footer {
padding-top: 1rem; }
footer .author {
text-align: center;
text-transform: uppercase; }
.container {
padding-top: 1rem;
padding-bottom: 1rem; }
.icons {
text-align: center; }
a.icon {
display: inline-table;
background-color: rgba(255, 255, 255, 0.5);
border-radius: 1.75em;
width: 3.5em;
height: 3.5em;
text-align: center;
line-height: 3.5em;
margin: .5em;
color: white;
cursor: pointer; }
a.icon:hover {
text-decoration: none; }
a.icon i.fa {
font-size: 2em;
display: table-cell;
vertical-align: middle; }
/**
* Syntax highlighting styles
*/
.highlight {
background: #fff; }
.highlighter-rouge .highlight {
background: #eef; }
.highlight td.code > pre {
background: #323232; }
.highlight pre.lineno {
background: #212121; }
.highlight .c {
color: #998;
font-style: italic; }
.highlight .err {
color: #a61717;
background-color: #e3d2d2; }
.highlight .k {
font-weight: bold; }
.highlight .o {
font-weight: bold; }
.highlight .cm {
color: #998;
font-style: italic; }
.highlight .cp {
color: #999;
font-weight: bold; }
.highlight .c1 {
color: #998;
font-style: italic; }
.highlight .cs {
color: #999;
font-weight: bold;
font-style: italic; }
.highlight .gd {
color: #000;
background-color: #fdd; }
.highlight .gd .x {
color: #000;
background-color: #faa; }
.highlight .ge {
font-style: italic; }
.highlight .gr {
color: #a00; }
.highlight .gh {
color: #999; }
.highlight .gi {
color: #000;
background-color: #dfd; }
.highlight .gi .x {
color: #000;
background-color: #afa; }
.highlight .go {
color: #888; }
.highlight .gp {
color: #555; }
.highlight .gs {
font-weight: bold; }
.highlight .gu {
color: #aaa; }
.highlight .gt {
color: #a00; }
.highlight .kc {
font-weight: bold; }
.highlight .kd {
font-weight: bold; }
.highlight .kp {
font-weight: bold; }
.highlight .kr {
font-weight: bold; }
.highlight .kt {
color: #458;
font-weight: bold; }
.highlight .m {
color: #099; }
.highlight .s {
color: #d14; }
.highlight .na {
color: #008080; }
.highlight .nb {
color: #0086B3; }
.highlight .nc {
color: #458;
font-weight: bold; }
.highlight .no {
color: #008080; }
.highlight .ni {
color: #800080; }
.highlight .ne {
color: #900;
font-weight: bold; }
.highlight .nf {
color: #900;
font-weight: bold; }
.highlight .nn {
color: #555; }
.highlight .nt {
color: #000080; }
.highlight .nv {
color: #008080; }
.highlight .ow {
font-weight: bold; }
.highlight .w {
color: #bbb; }
.highlight .mf {
color: #099; }
.highlight .mh {
color: #099; }
.highlight .mi {
color: #099; }
.highlight .mo {
color: #099; }
.highlight .sb {
color: #d14; }
.highlight .sc {
color: #d14; }
.highlight .sd {
color: #d14; }
.highlight .s2 {
color: #d14; }
.highlight .se {
color: #d14; }
.highlight .sh {
color: #d14; }
.highlight .si {
color: #d14; }
.highlight .sx {
color: #d14; }
.highlight .sr {
color: #009926; }
.highlight .s1 {
color: #d14; }
.highlight .ss {
color: #990073; }
.highlight .bp {
color: #999; }
.highlight .vc {
color: #008080; }
.highlight .vg {
color: #008080; }
.highlight .vi {
color: #008080; }
.highlight .il {
color: #099; }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 962 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -1,275 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Ramblings of an archer archer</title>
<description>Things which an Arch Linux user that also owns an recurve bow can write.
</description>
<link>http://praticamentetilde.github.io/</link>
<atom:link href="http://praticamentetilde.github.io/feed.xml" rel="self" type="application/rss+xml"/>
<pubDate>Mon, 26 Sep 2016 22:08:15 +0200</pubDate>
<lastBuildDate>Mon, 26 Sep 2016 22:08:15 +0200</lastBuildDate>
<generator>Jekyll v3.2.1</generator>
<item>
<title>Css updated!</title>
<description>&lt;p&gt;As you can see, now the css is decent! Now Im using &lt;a href=&quot;http://getskeleton.com&quot;&gt;Skeleton&lt;/a&gt; and a couple of custom sass lines that you can check out on Github. Currently, Im a bit busy with BAM! so Im not sure Ill find the time for this. Anyway, enjoy the new look!&lt;/p&gt;
</description>
<pubDate>Tue, 13 Sep 2016 21:30:00 +0200</pubDate>
<link>http://praticamentetilde.github.io/update/2016/09/13/css-update.html</link>
<guid isPermaLink="true">http://praticamentetilde.github.io/update/2016/09/13/css-update.html</guid>
<category>update</category>
</item>
<item>
<title>Just a quick post. BAM!, my first web app (still in development) is on Github!</title>
<description>&lt;p&gt;As you can read from the title, Im publishing the uncompleted code of my first webapp. Im working on this since 3 weeks, and Im proud of what Ive done so far.&lt;/p&gt;
&lt;p&gt;If you want to check out the repository, click &lt;a href=&quot;https://github.com/praticamentetilde/BAM&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Maybe I can use Materialize css also for this jekyll site, or maybe this is another thing I say but Im not going to do. Who knows.&lt;/p&gt;
</description>
<pubDate>Wed, 31 Aug 2016 12:00:00 +0200</pubDate>
<link>http://praticamentetilde.github.io/programming/2016/08/31/bam-on-github.html</link>
<guid isPermaLink="true">http://praticamentetilde.github.io/programming/2016/08/31/bam-on-github.html</guid>
<category>programming</category>
</item>
<item>
<title>My archery setup!</title>
<description>&lt;p&gt;Hey there! This is my first post about archery, so I thought that I could have done a tour of my setup. As I wrote in the about page, Im a Olmpic recurve archer based in Italy. I do this for almost five years! If you dont understand everything I say, you can check out the youtube channel &lt;a href=&quot;https://www.youtube.com/user/NUSensei/&quot;&gt;Nusensei&lt;/a&gt;. Its a very good source, especially for beginners.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dl.dropboxusercontent.com/s/efmap2qqvz6yapn/IMG_20160809_164942.jpg?dl=0&quot; alt=&quot;Bow1&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Ok, the setup. I own a &lt;em&gt;Fiberbow 5.99&lt;/em&gt; LH (yes, Im left handed) as my &lt;code class=&quot;highlighter-rouge&quot;&gt;riser&lt;/code&gt;, the &lt;em&gt;central&lt;/em&gt; part of the bow. Its made by carbon fiber so its very lightweight. And is not painted too: It looks kinda cool. Many experienced archers could complain saying that carbon fiber bends and this is a bad thing. Instead, I think this gives you a nice feedback when you release. Also I tried to raise a friends &lt;em&gt;Hoyt Prodigy XT&lt;/em&gt;, and theres no way Im going to lift such a weight on a regular base. Both the risers mentioned are high-range ones: I got mine 50% off because it wasnt the latest model and it had some minor ahestetic flaws. Also, this isnt my first one. In fact, I used to shoot with an Orange SF Premium: great bow for beginners!&lt;/p&gt;
&lt;p&gt;As limbs, I use a pair of &lt;em&gt;EXE College&lt;/em&gt; rated at 34 pounds. Since Im quite tall (limbs and riser toghether make a 70” tall bow), my draw length is around 29.5” and my draw weight is around 38 pounds.&lt;/p&gt;
&lt;p&gt;The sight is a &lt;em&gt;Shibuya Dual Click&lt;/em&gt;. You can check out &lt;a href=&quot;https://www.youtube.com/watch?v=_ZvAnyxazpY&quot;&gt;this&lt;/a&gt; review by Nusensei (by the way, I knew his channel from this very video).&lt;/p&gt;
&lt;p&gt;As stabilizers, I use a set of &lt;em&gt;Fiberbow S.3&lt;/em&gt; ones with yellow dampeners (for those who know the difference between the colours).&lt;/p&gt;
&lt;p&gt;As plunger button, I use a &lt;em&gt;EXE&lt;/em&gt; one. Its a middle range one, but it seems very well built and it works fine! Also, Im not going to spend 90€ for a &lt;code class=&quot;highlighter-rouge&quot;&gt;Cartel&lt;/code&gt; one.&lt;/p&gt;
&lt;p&gt;My current arrows are a set of &lt;em&gt;Easton X7 Eclipse&lt;/em&gt; spined at 2213. These are winter alluminium arrows, but since they are cheaper than carbon ones, I bought these as a total replacement of my &lt;em&gt;VAP V6&lt;/em&gt; 600. Those, due to form flaws, were 2 inches too short. Oh, and I always used &lt;em&gt;Spin Wings&lt;/em&gt; and &lt;em&gt;Elivanes&lt;/em&gt;, a stiffer plastic italian replacement.&lt;/p&gt;
&lt;p&gt;Heres an image of the complete bow at the archery range:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dl.dropboxusercontent.com/s/ril7kk9zd0l4vrf/IMG_20160809_175554.jpg?dl=0&quot; alt=&quot;Bow2&quot; /&gt;&lt;/p&gt;
</description>
<pubDate>Mon, 15 Aug 2016 12:00:00 +0200</pubDate>
<link>http://praticamentetilde.github.io/archery/2016/08/15/my-archery-setup.html</link>
<guid isPermaLink="true">http://praticamentetilde.github.io/archery/2016/08/15/my-archery-setup.html</guid>
<category>archery</category>
</item>
<item>
<title>How to rickroll people that try to run &quot;rm -rf&quot; on your system</title>
<description>&lt;p&gt;&lt;strong&gt;WARNING: The method showed here could not prevent the actual execution of “rm -rf” if the “UNIX vandal” is clever enough. Proceed at your own risk, and make backups!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I like Rick Astley late 80s songs, and you can see them here in my Spotify:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dl.dropboxusercontent.com/s/t9vywa4yjotxv0o/Screenshot_20160728_154506.png?dl=0&quot; alt=&quot;dQw4w9WgXcQ&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I like rickrolling people myself too, especially if theyre trying to delete my entire &lt;code class=&quot;highlighter-rouge&quot;&gt;/home&lt;/code&gt; directory or, even worse, &lt;code class=&quot;highlighter-rouge&quot;&gt;/&lt;/code&gt;. Since I learned how to use the &lt;code class=&quot;highlighter-rouge&quot;&gt;alias&lt;/code&gt; built-in, I wanted a way to prevent that random people tinkering with my laptop (that I may forgot to lock) could delete potentially important stuff, just for fun or boredom.&lt;/p&gt;
&lt;p&gt;The method that Ill show will lock any &lt;code class=&quot;highlighter-rouge&quot;&gt;rm&lt;/code&gt; command runned in both recursive and force mode, so &lt;code class=&quot;highlighter-rouge&quot;&gt;rm -rf&lt;/code&gt;, &lt;code class=&quot;highlighter-rouge&quot;&gt;rm -f -r&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;rm -r --force&lt;/code&gt; are all blocked, even if they are launched by &lt;code class=&quot;highlighter-rouge&quot;&gt;sudo&lt;/code&gt;. Im going to alias the rm command in &lt;code class=&quot;highlighter-rouge&quot;&gt;/etc/profile&lt;/code&gt; &lt;code class=&quot;highlighter-rouge&quot;&gt;/etc/bash.bashrc&lt;/code&gt; and in &lt;code class=&quot;highlighter-rouge&quot;&gt;/etc/zsh/zshrc&lt;/code&gt; (Im a zsh user) so that the rickroll will be possible from all users, even root and the ones with a brand new &lt;code class=&quot;highlighter-rouge&quot;&gt;bashrc&lt;/code&gt; or &lt;code class=&quot;highlighter-rouge&quot;&gt;zshrc&lt;/code&gt;. Here is the code I appended to those files:&lt;/p&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;nb&quot;&gt;alias &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;rm&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/bin/rmAlias
&lt;span class=&quot;nb&quot;&gt;alias &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;sudo&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;'sudo '&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;# this enables aliases in sudo, see http://askubuntu.com/questions/22037/aliases-not-available-when-using-sudo&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;Since &lt;code class=&quot;highlighter-rouge&quot;&gt;alias&lt;/code&gt; is not able to control the flags of the aliases (see &lt;a href=&quot;http://apple.stackexchange.com/questions/50963/how-do-i-add-a-flag-to-an-alias&quot;&gt;here&lt;/a&gt;), were going to redirect each call of &lt;code class=&quot;highlighter-rouge&quot;&gt;rm&lt;/code&gt; to &lt;code class=&quot;highlighter-rouge&quot;&gt;/bin/rmAlias&lt;/code&gt;, that would run the command if its safe. I didnt use a function because its a bit tricky to make that work with &lt;code class=&quot;highlighter-rouge&quot;&gt;sudo&lt;/code&gt;. So, lets see the code I put in &lt;code class=&quot;highlighter-rouge&quot;&gt;rmAlias&lt;/code&gt;:&lt;/p&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;#! /bin/bash&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# Rickroll whoever tries to desert this system, even root.&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# To achieve this, set the appropriate aliases even in /etc/profile and similars.&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# Video played when rickrolling&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;ROLLVIDEO&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/opt/anti-rm/serious-video.mkv &lt;span class=&quot;c&quot;&gt;# it's just Never Gonna Give You Up on my system, but be free to customize this!&lt;/span&gt;
rickroll&lt;span class=&quot;o&quot;&gt;(){&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Never gonna desert this system...&quot;&lt;/span&gt;
xdg-open &lt;span class=&quot;nv&quot;&gt;$ROLLVIDEO&lt;/span&gt; 2&amp;gt;&amp;amp;1 &amp;amp;
&lt;span class=&quot;nb&quot;&gt;exit &lt;/span&gt;0
&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;while &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;getopts&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;:rf-&quot;&lt;/span&gt; opt; &lt;span class=&quot;k&quot;&gt;do&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# Prevent '--force' to be detected as -r and -f&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$opt&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;-&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;; &lt;span class=&quot;k&quot;&gt;then
&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;OPTIND&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$OPTIND&lt;/span&gt;+1
&lt;span class=&quot;k&quot;&gt;continue
fi
if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$opt&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;r&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$opt&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;f&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;; &lt;span class=&quot;k&quot;&gt;then
if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$tmp&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;; &lt;span class=&quot;k&quot;&gt;then
&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;tmp&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$opt&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;continue
elif&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$tmp&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; !&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$opt&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;; &lt;span class=&quot;k&quot;&gt;then
&lt;/span&gt;rickroll
&lt;span class=&quot;k&quot;&gt;fi
fi
done
for &lt;/span&gt;var &lt;span class=&quot;k&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$@&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;do
if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[[&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$var&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;--force&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$tmp&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;r&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]]&lt;/span&gt;; &lt;span class=&quot;k&quot;&gt;then
&lt;/span&gt;rickroll
&lt;span class=&quot;k&quot;&gt;fi
done&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# If it's safe, just run rm&lt;/span&gt;
/bin/rm &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$@&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$?&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;It may look messy to a UNIX guy more experienced than me, but it works. The &lt;code class=&quot;highlighter-rouge&quot;&gt;getopts&lt;/code&gt; built-in sees if both the &lt;code class=&quot;highlighter-rouge&quot;&gt;-r&lt;/code&gt; and the &lt;code class=&quot;highlighter-rouge&quot;&gt;-f&lt;/code&gt; flags are used and, if so, it starts &lt;code class=&quot;highlighter-rouge&quot;&gt;rickroll()&lt;/code&gt;, which opens with &lt;code class=&quot;highlighter-rouge&quot;&gt;xdg-open&lt;/code&gt; that amazing clip from RickAstleyVEVO. From line 30 and below, the script checks if the &lt;code class=&quot;highlighter-rouge&quot;&gt;--force&lt;/code&gt; flag is used instead of &lt;code class=&quot;highlighter-rouge&quot;&gt;-f&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Give execute permissions to the script weve just created:&lt;/p&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# chmod +x /bin/rmAlias&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;Restart your shell, and enjoy. If you want to test safely, I suggest trying to run &lt;code class=&quot;highlighter-rouge&quot;&gt;rm -rf&lt;/code&gt; with no folders or one nonexistant, since this script stop even these commands.&lt;/p&gt;
&lt;p&gt;If you want even more security, you can rename this script to &lt;code class=&quot;highlighter-rouge&quot;&gt;/bin/rm&lt;/code&gt; and move the original one in some other place, getting rid of all the aliases. I prefer the solution above because its tidier: you havent to move anything. In fact, this could be just an AUR package…&lt;/p&gt;
</description>
<pubDate>Thu, 28 Jul 2016 16:00:00 +0200</pubDate>
<link>http://praticamentetilde.github.io/linux/2016/07/28/how-to-rickroll-people-launching-rm-rf-on-your-system.html</link>
<guid isPermaLink="true">http://praticamentetilde.github.io/linux/2016/07/28/how-to-rickroll-people-launching-rm-rf-on-your-system.html</guid>
<category>linux</category>
</item>
<item>
<title>Installing Gentoo on a Lenovo ThinkPad X60s</title>
<description>&lt;p&gt;My only laptop is a &lt;a href=&quot;http://www.thinkwiki.org/wiki/Category:X60s&quot;&gt;IBM/Lenovo ThinkPad X60s&lt;/a&gt;, a top line “ultrabook” from 2006 that features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An Intel Core Duo L2400 dual core 32 bit CPU, clocked at 1.66 Ghz;&lt;/li&gt;
&lt;li&gt;2GB of RAM;&lt;/li&gt;
&lt;li&gt;60GB of SATA1 hard drive;&lt;/li&gt;
&lt;li&gt;Wifi, Bluetooth, trackpoint mouse only, 56k modem, and a decent set of I/0 ports (including a CardBus slot!).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://dl.dropboxusercontent.com/s/vkm6phz5yb2k4oq/IMG_20160712_143708.jpg?dl=0&quot; alt=&quot;Think1&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dl.dropboxusercontent.com/s/wfjj1wih90lrzax/IMG_20160712_143618.jpg?dl=0&quot; alt=&quot;Think2&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This machine had an installation on Arch Linux, and I was using it for school stuff. It runned smoothly KDE5, Atom (great editor, Im using it to write this article), and it was usable even with Phpstorm. Pretty impressive for such an old thing, right?&lt;/p&gt;
&lt;p&gt;Since now I dont need this laptop every day I decided to give a try at Gentoo, another rolling relase, DIY install distro. This was both a test of my skills, my patience and the performances of the machine. For those of you that dont know, Gentoo hasnt binary packages: imagine using Arch with just a developer mantained AUR.&lt;/p&gt;
&lt;p&gt;I followed the &lt;a href=&quot;https://wiki.gentoo.org/wiki/Handbook:Main_Page&quot;&gt;installation guide&lt;/a&gt; without any problem until I had to emerge and install 309 packets from my &lt;code class=&quot;highlighter-rouge&quot;&gt;@world&lt;/code&gt; set: it took 15 hours! The compilation of &lt;code class=&quot;highlighter-rouge&quot;&gt;cmake&lt;/code&gt; crashed because of memory starvation, and so I had to use a spare USB stick as swap (the root file system wasnt resizable as it was JFS). After some research and a couple of seconds in &lt;code class=&quot;highlighter-rouge&quot;&gt;top&lt;/code&gt; I discovered that &lt;a href=&quot;https://en.wikipedia.org/wiki/Physical_Address_Extension&quot;&gt;PAE&lt;/a&gt; was not implemented in the install disk kernel. TIP: if you want to use a nicer install enviroment, use the Arch ISO. With gentoo, the initialisation of the file system is made with a &lt;a href=&quot;https://wiki.gentoo.org/wiki/Stage_tarball#Stage_3&quot;&gt;stage 3 tarball&lt;/a&gt; and not by tools like &lt;a href=&quot;https://wiki.archlinux.org/index.php/beginners'_guide#Install_the_base_packages&quot;&gt;pacstrap&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I had another problem with &lt;code class=&quot;highlighter-rouge&quot;&gt;make menuconfig&lt;/code&gt;, the tool used to specify what features add or remove in your compiled from source Linux kernel. The ncurses menu showed me 64bit options, even if the install disk and the CPU were both 32 bit. If you have this issue too, you can set the &lt;code class=&quot;highlighter-rouge&quot;&gt;ARCH&lt;/code&gt; variable by your own:&lt;/p&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;# make ARCH=i386 menuconfig&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# make ARCH=i386&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# make ARCH=i386 install&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;At the end, I made it! I only have a base install, but i can show you &lt;code class=&quot;highlighter-rouge&quot;&gt;screenfetch&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dl.dropboxusercontent.com/s/fbysnd58sj4g3kl/IMG_20160711_162733.jpg?dl=0&quot; alt=&quot;Screenfetch&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Ive not installed Gentoo in dual boot because I didnt figured out how to switch my bluetooth dongle in HID mode yet, so I cant select the OS with &lt;code class=&quot;highlighter-rouge&quot;&gt;rEFInd&lt;/code&gt;. Hope this rambling was, if not useful, at least entertaining!&lt;/p&gt;
</description>
<pubDate>Tue, 12 Jul 2016 13:00:00 +0200</pubDate>
<link>http://praticamentetilde.github.io/linux/2016/07/12/installing-gentoo-on-a-thinkpad-x60s.html</link>
<guid isPermaLink="true">http://praticamentetilde.github.io/linux/2016/07/12/installing-gentoo-on-a-thinkpad-x60s.html</guid>
<category>linux</category>
</item>
<item>
<title>Get a Bluetooth keyboard work with Arch Linux</title>
<description>&lt;p&gt;Ive recently got a Rapoo E6100. This is a minimal and space saving Bluetooth 3.0 keyboard. If you pair it with Windows 10, it will remain paired after reboot, giving the possibility to use it since the login screen. After installing the Bluetooth stack on my Arch via the &lt;code class=&quot;highlighter-rouge&quot;&gt;bluez&lt;/code&gt; and &lt;code class=&quot;highlighter-rouge&quot;&gt;bluez-utils&lt;/code&gt; packages I thought the pairing process would be as simple as Windows if I used the KDE GUI menus for Bluetooth management. Thats not true. The keyboard, once paired, will reconnect automatically just after &lt;code class=&quot;highlighter-rouge&quot;&gt;plasmashell&lt;/code&gt; loaded, leaving me without keyboard during the SDDM login screen and, of course, during a non-graphical session.&lt;/p&gt;
&lt;p&gt;As usual, ive searched help in the ArchWiki, founding &lt;a href=&quot;https://wiki.archlinux.org/index.php/Bluetooth_keyboard&quot;&gt;this&lt;/a&gt; article. With that, ive succesfully reconnected my Bluetooth keyboard using the &lt;code class=&quot;highlighter-rouge&quot;&gt;bluetoothctl&lt;/code&gt; utility. The next step was configuring the service for auto connection during boot. Ive created the &lt;code class=&quot;highlighter-rouge&quot;&gt;btkbd.conf&lt;/code&gt; and the &lt;code class=&quot;highlighter-rouge&quot;&gt;btkbd.service&lt;/code&gt; files, enabling the last one with systemd. Lets give a look to the service file:&lt;/p&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;table style=&quot;border-spacing: 0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter gl&quot; style=&quot;text-align: right&quot;&gt;&lt;pre class=&quot;lineno&quot;&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;Unit]
&lt;span class=&quot;nv&quot;&gt;Description&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;systemd Unit to automatically start a Bluetooth keyboard
&lt;span class=&quot;nv&quot;&gt;Documentation&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;https://wiki.archlinux.org/index.php/Bluetooth_Keyboard
&lt;span class=&quot;nv&quot;&gt;Requires&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;dbus-org.bluez.service
&lt;span class=&quot;nv&quot;&gt;After&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;dbus-org.bluez.service
&lt;span class=&quot;nv&quot;&gt;ConditionPathExists&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/etc/btkbd.conf
&lt;span class=&quot;nv&quot;&gt;ConditionPathExists&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/usr/bin/hcitool
&lt;span class=&quot;nv&quot;&gt;ConditionPathExists&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/usr/bin/hciconfig
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;Service]
&lt;span class=&quot;nv&quot;&gt;Type&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;oneshot
&lt;span class=&quot;nv&quot;&gt;EnvironmentFile&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/etc/btkbd.conf
&lt;span class=&quot;nv&quot;&gt;ExecStart&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/usr/bin/hciconfig &lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;HCIDEVICE&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt; up
&lt;span class=&quot;c&quot;&gt;# ignore errors on connect, spurious problems with bt?&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# so start next command with -&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;ExecStart&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;-/usr/bin/hcitool cc &lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;BTKBDMAC&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;Install]
&lt;span class=&quot;nv&quot;&gt;WantedBy&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;multi-user.target&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;Line 13 enables the Bluetooth dongle, and line 16 connects it to the keyboard we gave the mac address in &lt;code class=&quot;highlighter-rouge&quot;&gt;/etc/btkbd.conf&lt;/code&gt;. This should work flawlessly, right? Of course it doesnt. The service starts before the &lt;code class=&quot;highlighter-rouge&quot;&gt;dbus-org.bluez.service&lt;/code&gt; is loaded and fails. However, if the service is started manually after login the Bluetooth keyboard works. After hours of trying figuring out what was wrong Ive almost asked for a return on Amazon! The last attempt I made was with sddm disabled and involved built from scratch service:&lt;/p&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;table style=&quot;border-spacing: 0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter gl&quot; style=&quot;text-align: right&quot;&gt;&lt;pre class=&quot;lineno&quot;&gt;1
2
3
4
5
6
7
8
9
10&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;Unit]
&lt;span class=&quot;nv&quot;&gt;Description&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;systemd Unit to automatically start a Bluetooth keyboard
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;Service]
&lt;span class=&quot;nv&quot;&gt;Type&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;oneshot
&lt;span class=&quot;nv&quot;&gt;ExecStart&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/bin/hciconfig hci0 up
&lt;span class=&quot;nv&quot;&gt;ExecStart&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/bin/hcitool cc 00:11:22:33:44:55
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;Install]
&lt;span class=&quot;nv&quot;&gt;WantedBy&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;bluetooth.target&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;This incredibly worked. I think the problem was that &lt;code class=&quot;highlighter-rouge&quot;&gt;multi-user.target&lt;/code&gt; that needs to be reached earlier than &lt;code class=&quot;highlighter-rouge&quot;&gt;bluetooth.target&lt;/code&gt;. I got rid of all the tidiness of the ArchWiki solution just to be sure that was not the problem, but I think you can use all of that just correcting &lt;code class=&quot;highlighter-rouge&quot;&gt;WantedBy=&lt;/code&gt;. Currently I havent an ArchWiki account nor a forum one, but as soon as Ill register Ill correct the article.&lt;/p&gt;
&lt;p&gt;Let me know in the comments if this solution is well made or if its just a bodge.
Last thing: I discovered that my Bluetooth dongle is CSR 8510 A10 based so expect some ramblings about &lt;a href=&quot;http://www.0xf8.org/2014/02/the-crux-of-finding-a-hid-proxy-capable-usb-bluetooth-adapter/&quot;&gt;hid proxy&lt;/a&gt;.&lt;/p&gt;
</description>
<pubDate>Thu, 07 Jul 2016 14:49:18 +0200</pubDate>
<link>http://praticamentetilde.github.io/linux/2016/07/07/get-a-bluetooth-keyboard-work-with-arch.html</link>
<guid isPermaLink="true">http://praticamentetilde.github.io/linux/2016/07/07/get-a-bluetooth-keyboard-work-with-arch.html</guid>
<category>linux</category>
</item>
</channel>
</rss>

View file

@ -1,141 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Ramblings of an archer archer</title>
<meta name="description" content="Things which an Arch Linux user that also owns an recurve bow can write.
">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css">
<link rel="stylesheet" href="/css/main.css">
<link href='https://fonts.googleapis.com/css?family=Hammersmith+One' rel='stylesheet' type='text/css'>
<link rel="canonical" href="http://praticamentetilde.github.io/">
<link rel="alternate" type="application/rss+xml" title="Ramblings of an archer archer" href="http://praticamentetilde.github.io/feed.xml">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<script src="https://rawgit.com/snaptortoise/konami-js/master/konami.js"></script>
<!-- Favicon -->
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
</head>
<body>
<header class="header">
<section class="head">
<h2 class="title">Ramblings of an archer archer</h2>
<p>Things which an Arch Linux user that also owns an recurve bow can write.
</p>
</section>
<nav class="navbar">
<div class="container">
<ul class="navbar-list">
<li class="navbar-item">
<a href="/">home</a>
</li>
<li class="navbar-item">
<a href="/about/">About</a>
</li>
<li class="navbar-item">
<a href="http://www.burarco.it">My archery club</a>
</li>
<li class="navbar-item">
<a href="/feed.xml">RSS</a>
</li>
</ul>
</div>
</nav>
</header>
<main class="container">
<div class="home">
<ul class="post-list">
<li>
<span class="post-meta">Sep 13, 2016</span>
<h5>
<a class="post-link" href="/update/2016/09/13/css-update.html">Css updated!</a>
</h5>
</li>
<li>
<span class="post-meta">Aug 31, 2016</span>
<h5>
<a class="post-link" href="/programming/2016/08/31/bam-on-github.html">Just a quick post. BAM!, my first web app (still in development) is on Github!</a>
</h5>
</li>
<li>
<span class="post-meta">Aug 15, 2016</span>
<h5>
<a class="post-link" href="/archery/2016/08/15/my-archery-setup.html">My archery setup!</a>
</h5>
</li>
<li>
<span class="post-meta">Jul 28, 2016</span>
<h5>
<a class="post-link" href="/linux/2016/07/28/how-to-rickroll-people-launching-rm-rf-on-your-system.html">How to rickroll people that try to run "rm -rf" on your system</a>
</h5>
</li>
<li>
<span class="post-meta">Jul 12, 2016</span>
<h5>
<a class="post-link" href="/linux/2016/07/12/installing-gentoo-on-a-thinkpad-x60s.html">Installing Gentoo on a Lenovo ThinkPad X60s</a>
</h5>
</li>
<li>
<span class="post-meta">Jul 7, 2016</span>
<h5>
<a class="post-link" href="/linux/2016/07/07/get-a-bluetooth-keyboard-work-with-arch.html">Get a Bluetooth keyboard work with Arch Linux</a>
</h5>
</li>
</ul>
</div>
</main>
<footer class="site-footer">
<div class="icons">
<a class="icon" href="https://github.com/praticamentetilde"><i class="fa fa-github"></i></a>
<a class="icon" href="https://www.reddit.com/user/praticamentetilde"><i class="fa fa-reddit"></i></a>
</div>
<h6 class="author">Claudio Maggioni 2016</h6>
</footer>
<script>
var easter_egg = new Konami();
easter_egg.load("https://www.youtube.com/watch?v=URTcCh6QVwM");
</script>
</body>
</html>

View file

@ -1,198 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Get a Bluetooth keyboard work with Arch Linux</title>
<meta name="description" content="Ive recently got a Rapoo E6100. This is a minimal and space saving Bluetooth 3.0 keyboard. If you pair it with Windows 10, it will remain paired after reboo...">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css">
<link rel="stylesheet" href="/css/main.css">
<link href='https://fonts.googleapis.com/css?family=Hammersmith+One' rel='stylesheet' type='text/css'>
<link rel="canonical" href="http://praticamentetilde.github.io/linux/2016/07/07/get-a-bluetooth-keyboard-work-with-arch.html">
<link rel="alternate" type="application/rss+xml" title="Ramblings of an archer archer" href="http://praticamentetilde.github.io/feed.xml">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<script src="https://rawgit.com/snaptortoise/konami-js/master/konami.js"></script>
<!-- Favicon -->
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
</head>
<body>
<header class="header">
<section class="head">
<h2 class="title">Ramblings of an archer archer</h2>
<p>Things which an Arch Linux user that also owns an recurve bow can write.
</p>
</section>
<nav class="navbar">
<div class="container">
<ul class="navbar-list">
<li class="navbar-item">
<a href="/">home</a>
</li>
<li class="navbar-item">
<a href="/about/">About</a>
</li>
<li class="navbar-item">
<a href="http://www.burarco.it">My archery club</a>
</li>
<li class="navbar-item">
<a href="/feed.xml">RSS</a>
</li>
</ul>
</div>
</nav>
</header>
<main class="container">
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
<header class="post-header">
<h2 class="post-title" itemprop="name headline">Get a Bluetooth keyboard work with Arch Linux</h2>
<p class="post-meta"><time datetime="2016-07-07T14:49:18+02:00" itemprop="datePublished">Jul 7, 2016</time></p>
</header>
<div class="post-content" itemprop="articleBody">
<p>Ive recently got a Rapoo E6100. This is a minimal and space saving Bluetooth 3.0 keyboard. If you pair it with Windows 10, it will remain paired after reboot, giving the possibility to use it since the login screen. After installing the Bluetooth stack on my Arch via the <code class="highlighter-rouge">bluez</code> and <code class="highlighter-rouge">bluez-utils</code> packages I thought the pairing process would be as simple as Windows if I used the KDE GUI menus for Bluetooth management. Thats not true. The keyboard, once paired, will reconnect automatically just after <code class="highlighter-rouge">plasmashell</code> loaded, leaving me without keyboard during the SDDM login screen and, of course, during a non-graphical session.</p>
<p>As usual, ive searched help in the ArchWiki, founding <a href="https://wiki.archlinux.org/index.php/Bluetooth_keyboard">this</a> article. With that, ive succesfully reconnected my Bluetooth keyboard using the <code class="highlighter-rouge">bluetoothctl</code> utility. The next step was configuring the service for auto connection during boot. Ive created the <code class="highlighter-rouge">btkbd.conf</code> and the <code class="highlighter-rouge">btkbd.service</code> files, enabling the last one with systemd. Lets give a look to the service file:</p>
<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19</pre></td><td class="code"><pre><span class="o">[</span>Unit]
<span class="nv">Description</span><span class="o">=</span>systemd Unit to automatically start a Bluetooth keyboard
<span class="nv">Documentation</span><span class="o">=</span>https://wiki.archlinux.org/index.php/Bluetooth_Keyboard
<span class="nv">Requires</span><span class="o">=</span>dbus-org.bluez.service
<span class="nv">After</span><span class="o">=</span>dbus-org.bluez.service
<span class="nv">ConditionPathExists</span><span class="o">=</span>/etc/btkbd.conf
<span class="nv">ConditionPathExists</span><span class="o">=</span>/usr/bin/hcitool
<span class="nv">ConditionPathExists</span><span class="o">=</span>/usr/bin/hciconfig
<span class="o">[</span>Service]
<span class="nv">Type</span><span class="o">=</span>oneshot
<span class="nv">EnvironmentFile</span><span class="o">=</span>/etc/btkbd.conf
<span class="nv">ExecStart</span><span class="o">=</span>/usr/bin/hciconfig <span class="k">${</span><span class="nv">HCIDEVICE</span><span class="k">}</span> up
<span class="c"># ignore errors on connect, spurious problems with bt?</span>
<span class="c"># so start next command with -</span>
<span class="nv">ExecStart</span><span class="o">=</span>-/usr/bin/hcitool cc <span class="k">${</span><span class="nv">BTKBDMAC</span><span class="k">}</span>
<span class="o">[</span>Install]
<span class="nv">WantedBy</span><span class="o">=</span>multi-user.target<span class="w">
</span></pre></td></tr></tbody></table></code></pre></figure>
<p>Line 13 enables the Bluetooth dongle, and line 16 connects it to the keyboard we gave the mac address in <code class="highlighter-rouge">/etc/btkbd.conf</code>. This should work flawlessly, right? Of course it doesnt. The service starts before the <code class="highlighter-rouge">dbus-org.bluez.service</code> is loaded and fails. However, if the service is started manually after login the Bluetooth keyboard works. After hours of trying figuring out what was wrong Ive almost asked for a return on Amazon! The last attempt I made was with sddm disabled and involved built from scratch service:</p>
<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1
2
3
4
5
6
7
8
9
10</pre></td><td class="code"><pre><span class="o">[</span>Unit]
<span class="nv">Description</span><span class="o">=</span>systemd Unit to automatically start a Bluetooth keyboard
<span class="o">[</span>Service]
<span class="nv">Type</span><span class="o">=</span>oneshot
<span class="nv">ExecStart</span><span class="o">=</span>/bin/hciconfig hci0 up
<span class="nv">ExecStart</span><span class="o">=</span>/bin/hcitool cc 00:11:22:33:44:55
<span class="o">[</span>Install]
<span class="nv">WantedBy</span><span class="o">=</span>bluetooth.target<span class="w">
</span></pre></td></tr></tbody></table></code></pre></figure>
<p>This incredibly worked. I think the problem was that <code class="highlighter-rouge">multi-user.target</code> that needs to be reached earlier than <code class="highlighter-rouge">bluetooth.target</code>. I got rid of all the tidiness of the ArchWiki solution just to be sure that was not the problem, but I think you can use all of that just correcting <code class="highlighter-rouge">WantedBy=</code>. Currently I havent an ArchWiki account nor a forum one, but as soon as Ill register Ill correct the article.</p>
<p>Let me know in the comments if this solution is well made or if its just a bodge.
Last thing: I discovered that my Bluetooth dongle is CSR 8510 A10 based so expect some ramblings about <a href="http://www.0xf8.org/2014/02/the-crux-of-finding-a-hid-proxy-capable-usb-bluetooth-adapter/">hid proxy</a>.</p>
</div>
</article>
<div id="disqus_thread"></div>
<script>
/**
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables
*/
/*
var disqus_config = function () {
this.page.url = PAGE_URL; // Replace PAGE_URL with your page's canonical URL variable
this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
};
*/
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = '//ramblingsofanarcherarcher.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
</main>
<footer class="site-footer">
<div class="icons">
<a class="icon" href="https://github.com/praticamentetilde"><i class="fa fa-github"></i></a>
<a class="icon" href="https://www.reddit.com/user/praticamentetilde"><i class="fa fa-reddit"></i></a>
</div>
<h6 class="author">Claudio Maggioni 2016</h6>
</footer>
<script>
var easter_egg = new Konami();
easter_egg.load("https://www.youtube.com/watch?v=URTcCh6QVwM");
</script>
</body>
</html>

View file

@ -1,158 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Installing Gentoo on a Lenovo ThinkPad X60s</title>
<meta name="description" content="My only laptop is a IBM/Lenovo ThinkPad X60s, a top line “ultrabook” from 2006 that features:">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css">
<link rel="stylesheet" href="/css/main.css">
<link href='https://fonts.googleapis.com/css?family=Hammersmith+One' rel='stylesheet' type='text/css'>
<link rel="canonical" href="http://praticamentetilde.github.io/linux/2016/07/12/installing-gentoo-on-a-thinkpad-x60s.html">
<link rel="alternate" type="application/rss+xml" title="Ramblings of an archer archer" href="http://praticamentetilde.github.io/feed.xml">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<script src="https://rawgit.com/snaptortoise/konami-js/master/konami.js"></script>
<!-- Favicon -->
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
</head>
<body>
<header class="header">
<section class="head">
<h2 class="title">Ramblings of an archer archer</h2>
<p>Things which an Arch Linux user that also owns an recurve bow can write.
</p>
</section>
<nav class="navbar">
<div class="container">
<ul class="navbar-list">
<li class="navbar-item">
<a href="/">home</a>
</li>
<li class="navbar-item">
<a href="/about/">About</a>
</li>
<li class="navbar-item">
<a href="http://www.burarco.it">My archery club</a>
</li>
<li class="navbar-item">
<a href="/feed.xml">RSS</a>
</li>
</ul>
</div>
</nav>
</header>
<main class="container">
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
<header class="post-header">
<h2 class="post-title" itemprop="name headline">Installing Gentoo on a Lenovo ThinkPad X60s</h2>
<p class="post-meta"><time datetime="2016-07-12T13:00:00+02:00" itemprop="datePublished">Jul 12, 2016</time></p>
</header>
<div class="post-content" itemprop="articleBody">
<p>My only laptop is a <a href="http://www.thinkwiki.org/wiki/Category:X60s">IBM/Lenovo ThinkPad X60s</a>, a top line “ultrabook” from 2006 that features:</p>
<ul>
<li>An Intel Core Duo L2400 dual core 32 bit CPU, clocked at 1.66 Ghz;</li>
<li>2GB of RAM;</li>
<li>60GB of SATA1 hard drive;</li>
<li>Wifi, Bluetooth, trackpoint mouse only, 56k modem, and a decent set of I/0 ports (including a CardBus slot!).</li>
</ul>
<p><img src="https://dl.dropboxusercontent.com/s/vkm6phz5yb2k4oq/IMG_20160712_143708.jpg?dl=0" alt="Think1" /></p>
<p><img src="https://dl.dropboxusercontent.com/s/wfjj1wih90lrzax/IMG_20160712_143618.jpg?dl=0" alt="Think2" /></p>
<p>This machine had an installation on Arch Linux, and I was using it for school stuff. It runned smoothly KDE5, Atom (great editor, Im using it to write this article), and it was usable even with Phpstorm. Pretty impressive for such an old thing, right?</p>
<p>Since now I dont need this laptop every day I decided to give a try at Gentoo, another rolling relase, DIY install distro. This was both a test of my skills, my patience and the performances of the machine. For those of you that dont know, Gentoo hasnt binary packages: imagine using Arch with just a developer mantained AUR.</p>
<p>I followed the <a href="https://wiki.gentoo.org/wiki/Handbook:Main_Page">installation guide</a> without any problem until I had to emerge and install 309 packets from my <code class="highlighter-rouge">@world</code> set: it took 15 hours! The compilation of <code class="highlighter-rouge">cmake</code> crashed because of memory starvation, and so I had to use a spare USB stick as swap (the root file system wasnt resizable as it was JFS). After some research and a couple of seconds in <code class="highlighter-rouge">top</code> I discovered that <a href="https://en.wikipedia.org/wiki/Physical_Address_Extension">PAE</a> was not implemented in the install disk kernel. TIP: if you want to use a nicer install enviroment, use the Arch ISO. With gentoo, the initialisation of the file system is made with a <a href="https://wiki.gentoo.org/wiki/Stage_tarball#Stage_3">stage 3 tarball</a> and not by tools like <a href="https://wiki.archlinux.org/index.php/beginners'_guide#Install_the_base_packages">pacstrap</a>.</p>
<p>I had another problem with <code class="highlighter-rouge">make menuconfig</code>, the tool used to specify what features add or remove in your compiled from source Linux kernel. The ncurses menu showed me 64bit options, even if the install disk and the CPU were both 32 bit. If you have this issue too, you can set the <code class="highlighter-rouge">ARCH</code> variable by your own:</p>
<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c"># make ARCH=i386 menuconfig</span>
<span class="c"># make ARCH=i386</span>
<span class="c"># make ARCH=i386 install</span></code></pre></figure>
<p>At the end, I made it! I only have a base install, but i can show you <code class="highlighter-rouge">screenfetch</code>:</p>
<p><img src="https://dl.dropboxusercontent.com/s/fbysnd58sj4g3kl/IMG_20160711_162733.jpg?dl=0" alt="Screenfetch" /></p>
<p>Ive not installed Gentoo in dual boot because I didnt figured out how to switch my bluetooth dongle in HID mode yet, so I cant select the OS with <code class="highlighter-rouge">rEFInd</code>. Hope this rambling was, if not useful, at least entertaining!</p>
</div>
</article>
<div id="disqus_thread"></div>
<script>
/**
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables
*/
/*
var disqus_config = function () {
this.page.url = PAGE_URL; // Replace PAGE_URL with your page's canonical URL variable
this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
};
*/
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = '//ramblingsofanarcherarcher.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
</main>
<footer class="site-footer">
<div class="icons">
<a class="icon" href="https://github.com/praticamentetilde"><i class="fa fa-github"></i></a>
<a class="icon" href="https://www.reddit.com/user/praticamentetilde"><i class="fa fa-reddit"></i></a>
</div>
<h6 class="author">Claudio Maggioni 2016</h6>
</footer>
<script>
var easter_egg = new Konami();
easter_egg.load("https://www.youtube.com/watch?v=URTcCh6QVwM");
</script>
</body>
</html>

View file

@ -1,192 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>How to rickroll people that try to run &quot;rm -rf&quot; on your system</title>
<meta name="description" content="WARNING: The method showed here could not prevent the actual execution of “rm -rf” if the “UNIX vandal” is clever enough. Proceed at your own risk, and make ...">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css">
<link rel="stylesheet" href="/css/main.css">
<link href='https://fonts.googleapis.com/css?family=Hammersmith+One' rel='stylesheet' type='text/css'>
<link rel="canonical" href="http://praticamentetilde.github.io/linux/2016/07/28/how-to-rickroll-people-launching-rm-rf-on-your-system.html">
<link rel="alternate" type="application/rss+xml" title="Ramblings of an archer archer" href="http://praticamentetilde.github.io/feed.xml">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<script src="https://rawgit.com/snaptortoise/konami-js/master/konami.js"></script>
<!-- Favicon -->
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
</head>
<body>
<header class="header">
<section class="head">
<h2 class="title">Ramblings of an archer archer</h2>
<p>Things which an Arch Linux user that also owns an recurve bow can write.
</p>
</section>
<nav class="navbar">
<div class="container">
<ul class="navbar-list">
<li class="navbar-item">
<a href="/">home</a>
</li>
<li class="navbar-item">
<a href="/about/">About</a>
</li>
<li class="navbar-item">
<a href="http://www.burarco.it">My archery club</a>
</li>
<li class="navbar-item">
<a href="/feed.xml">RSS</a>
</li>
</ul>
</div>
</nav>
</header>
<main class="container">
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
<header class="post-header">
<h2 class="post-title" itemprop="name headline">How to rickroll people that try to run "rm -rf" on your system</h2>
<p class="post-meta"><time datetime="2016-07-28T16:00:00+02:00" itemprop="datePublished">Jul 28, 2016</time></p>
</header>
<div class="post-content" itemprop="articleBody">
<p><strong>WARNING: The method showed here could not prevent the actual execution of “rm -rf” if the “UNIX vandal” is clever enough. Proceed at your own risk, and make backups!</strong></p>
<p>I like Rick Astley late 80s songs, and you can see them here in my Spotify:</p>
<p><img src="https://dl.dropboxusercontent.com/s/t9vywa4yjotxv0o/Screenshot_20160728_154506.png?dl=0" alt="dQw4w9WgXcQ" /></p>
<p>I like rickrolling people myself too, especially if theyre trying to delete my entire <code class="highlighter-rouge">/home</code> directory or, even worse, <code class="highlighter-rouge">/</code>. Since I learned how to use the <code class="highlighter-rouge">alias</code> built-in, I wanted a way to prevent that random people tinkering with my laptop (that I may forgot to lock) could delete potentially important stuff, just for fun or boredom.</p>
<p>The method that Ill show will lock any <code class="highlighter-rouge">rm</code> command runned in both recursive and force mode, so <code class="highlighter-rouge">rm -rf</code>, <code class="highlighter-rouge">rm -f -r</code> and <code class="highlighter-rouge">rm -r --force</code> are all blocked, even if they are launched by <code class="highlighter-rouge">sudo</code>. Im going to alias the rm command in <code class="highlighter-rouge">/etc/profile</code> <code class="highlighter-rouge">/etc/bash.bashrc</code> and in <code class="highlighter-rouge">/etc/zsh/zshrc</code> (Im a zsh user) so that the rickroll will be possible from all users, even root and the ones with a brand new <code class="highlighter-rouge">bashrc</code> or <code class="highlighter-rouge">zshrc</code>. Here is the code I appended to those files:</p>
<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">alias </span><span class="nv">rm</span><span class="o">=</span>/bin/rmAlias
<span class="nb">alias </span><span class="nv">sudo</span><span class="o">=</span><span class="s1">'sudo '</span> <span class="c"># this enables aliases in sudo, see http://askubuntu.com/questions/22037/aliases-not-available-when-using-sudo</span></code></pre></figure>
<p>Since <code class="highlighter-rouge">alias</code> is not able to control the flags of the aliases (see <a href="http://apple.stackexchange.com/questions/50963/how-do-i-add-a-flag-to-an-alias">here</a>), were going to redirect each call of <code class="highlighter-rouge">rm</code> to <code class="highlighter-rouge">/bin/rmAlias</code>, that would run the command if its safe. I didnt use a function because its a bit tricky to make that work with <code class="highlighter-rouge">sudo</code>. So, lets see the code I put in <code class="highlighter-rouge">rmAlias</code>:</p>
<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c">#! /bin/bash</span>
<span class="c"># Rickroll whoever tries to desert this system, even root.</span>
<span class="c"># To achieve this, set the appropriate aliases even in /etc/profile and similars.</span>
<span class="c"># Video played when rickrolling</span>
<span class="nv">ROLLVIDEO</span><span class="o">=</span>/opt/anti-rm/serious-video.mkv <span class="c"># it's just Never Gonna Give You Up on my system, but be free to customize this!</span>
rickroll<span class="o">(){</span>
<span class="nb">echo</span> <span class="s2">"Never gonna desert this system..."</span>
xdg-open <span class="nv">$ROLLVIDEO</span> 2&gt;&amp;1 &amp;
<span class="nb">exit </span>0
<span class="o">}</span>
<span class="k">while </span><span class="nb">getopts</span> <span class="s2">":rf-"</span> opt; <span class="k">do</span>
<span class="c"># Prevent '--force' to be detected as -r and -f</span>
<span class="k">if</span> <span class="o">[</span> <span class="s2">"</span><span class="nv">$opt</span><span class="s2">"</span> <span class="o">=</span> <span class="s2">"-"</span> <span class="o">]</span>; <span class="k">then
</span><span class="nv">OPTIND</span><span class="o">=</span><span class="nv">$OPTIND</span>+1
<span class="k">continue
fi
if</span> <span class="o">[</span> <span class="s2">"</span><span class="nv">$opt</span><span class="s2">"</span> <span class="o">=</span> <span class="s2">"r"</span> <span class="o">]</span> <span class="o">||</span> <span class="o">[</span> <span class="s2">"</span><span class="nv">$opt</span><span class="s2">"</span> <span class="o">=</span> <span class="s2">"f"</span> <span class="o">]</span>; <span class="k">then
if</span> <span class="o">[</span> <span class="s2">"</span><span class="nv">$tmp</span><span class="s2">"</span> <span class="o">=</span> <span class="s2">""</span> <span class="o">]</span>; <span class="k">then
</span><span class="nv">tmp</span><span class="o">=</span><span class="nv">$opt</span>
<span class="k">continue
elif</span> <span class="o">[</span> <span class="s2">"</span><span class="nv">$tmp</span><span class="s2">"</span> !<span class="o">=</span> <span class="s2">"</span><span class="nv">$opt</span><span class="s2">"</span> <span class="o">]</span>; <span class="k">then
</span>rickroll
<span class="k">fi
fi
done
for </span>var <span class="k">in</span> <span class="s2">"</span><span class="nv">$@</span><span class="s2">"</span>
<span class="k">do
if</span> <span class="o">[[</span> <span class="s2">"</span><span class="nv">$var</span><span class="s2">"</span> <span class="o">=</span> <span class="s2">"--force"</span> <span class="o">&amp;&amp;</span> <span class="s2">"</span><span class="nv">$tmp</span><span class="s2">"</span> <span class="o">=</span> <span class="s2">"r"</span> <span class="o">]]</span>; <span class="k">then
</span>rickroll
<span class="k">fi
done</span>
<span class="c"># If it's safe, just run rm</span>
/bin/rm <span class="s2">"</span><span class="nv">$@</span><span class="s2">"</span>
<span class="nb">exit</span> <span class="nv">$?</span></code></pre></figure>
<p>It may look messy to a UNIX guy more experienced than me, but it works. The <code class="highlighter-rouge">getopts</code> built-in sees if both the <code class="highlighter-rouge">-r</code> and the <code class="highlighter-rouge">-f</code> flags are used and, if so, it starts <code class="highlighter-rouge">rickroll()</code>, which opens with <code class="highlighter-rouge">xdg-open</code> that amazing clip from RickAstleyVEVO. From line 30 and below, the script checks if the <code class="highlighter-rouge">--force</code> flag is used instead of <code class="highlighter-rouge">-f</code>.</p>
<p>Give execute permissions to the script weve just created:</p>
<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c"># chmod +x /bin/rmAlias</span></code></pre></figure>
<p>Restart your shell, and enjoy. If you want to test safely, I suggest trying to run <code class="highlighter-rouge">rm -rf</code> with no folders or one nonexistant, since this script stop even these commands.</p>
<p>If you want even more security, you can rename this script to <code class="highlighter-rouge">/bin/rm</code> and move the original one in some other place, getting rid of all the aliases. I prefer the solution above because its tidier: you havent to move anything. In fact, this could be just an AUR package…</p>
</div>
</article>
<div id="disqus_thread"></div>
<script>
/**
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables
*/
/*
var disqus_config = function () {
this.page.url = PAGE_URL; // Replace PAGE_URL with your page's canonical URL variable
this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
};
*/
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = '//ramblingsofanarcherarcher.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
</main>
<footer class="site-footer">
<div class="icons">
<a class="icon" href="https://github.com/praticamentetilde"><i class="fa fa-github"></i></a>
<a class="icon" href="https://www.reddit.com/user/praticamentetilde"><i class="fa fa-reddit"></i></a>
</div>
<h6 class="author">Claudio Maggioni 2016</h6>
</footer>
<script>
var easter_egg = new Konami();
easter_egg.load("https://www.youtube.com/watch?v=URTcCh6QVwM");
</script>
</body>
</html>

View file

@ -1,41 +0,0 @@
{
"name": "App",
"icons": [
{
"src": "\/android-icon-36x36.png",
"sizes": "36x36",
"type": "image\/png",
"density": "0.75"
},
{
"src": "\/android-icon-48x48.png",
"sizes": "48x48",
"type": "image\/png",
"density": "1.0"
},
{
"src": "\/android-icon-72x72.png",
"sizes": "72x72",
"type": "image\/png",
"density": "1.5"
},
{
"src": "\/android-icon-96x96.png",
"sizes": "96x96",
"type": "image\/png",
"density": "2.0"
},
{
"src": "\/android-icon-144x144.png",
"sizes": "144x144",
"type": "image\/png",
"density": "3.0"
},
{
"src": "\/android-icon-192x192.png",
"sizes": "192x192",
"type": "image\/png",
"density": "4.0"
}
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -1,133 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Just a quick post. BAM!, my first web app (still in development) is on Github!</title>
<meta name="description" content="As you can read from the title, Im publishing the uncompleted code of my first webapp. Im working on this since 3 weeks, and Im proud of what Ive done so...">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css">
<link rel="stylesheet" href="/css/main.css">
<link href='https://fonts.googleapis.com/css?family=Hammersmith+One' rel='stylesheet' type='text/css'>
<link rel="canonical" href="http://praticamentetilde.github.io/programming/2016/08/31/bam-on-github.html">
<link rel="alternate" type="application/rss+xml" title="Ramblings of an archer archer" href="http://praticamentetilde.github.io/feed.xml">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<script src="https://rawgit.com/snaptortoise/konami-js/master/konami.js"></script>
<!-- Favicon -->
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
</head>
<body>
<header class="header">
<section class="head">
<h2 class="title">Ramblings of an archer archer</h2>
<p>Things which an Arch Linux user that also owns an recurve bow can write.
</p>
</section>
<nav class="navbar">
<div class="container">
<ul class="navbar-list">
<li class="navbar-item">
<a href="/">home</a>
</li>
<li class="navbar-item">
<a href="/about/">About</a>
</li>
<li class="navbar-item">
<a href="http://www.burarco.it">My archery club</a>
</li>
<li class="navbar-item">
<a href="/feed.xml">RSS</a>
</li>
</ul>
</div>
</nav>
</header>
<main class="container">
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
<header class="post-header">
<h2 class="post-title" itemprop="name headline">Just a quick post. BAM!, my first web app (still in development) is on Github!</h2>
<p class="post-meta"><time datetime="2016-08-31T12:00:00+02:00" itemprop="datePublished">Aug 31, 2016</time></p>
</header>
<div class="post-content" itemprop="articleBody">
<p>As you can read from the title, Im publishing the uncompleted code of my first webapp. Im working on this since 3 weeks, and Im proud of what Ive done so far.</p>
<p>If you want to check out the repository, click <a href="https://github.com/praticamentetilde/BAM">here</a>.</p>
<p>Maybe I can use Materialize css also for this jekyll site, or maybe this is another thing I say but Im not going to do. Who knows.</p>
</div>
</article>
<div id="disqus_thread"></div>
<script>
/**
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables
*/
/*
var disqus_config = function () {
this.page.url = PAGE_URL; // Replace PAGE_URL with your page's canonical URL variable
this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
};
*/
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = '//ramblingsofanarcherarcher.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
</main>
<footer class="site-footer">
<div class="icons">
<a class="icon" href="https://github.com/praticamentetilde"><i class="fa fa-github"></i></a>
<a class="icon" href="https://www.reddit.com/user/praticamentetilde"><i class="fa fa-reddit"></i></a>
</div>
<h6 class="author">Claudio Maggioni 2016</h6>
</footer>
<script>
var easter_egg = new Konami();
easter_egg.load("https://www.youtube.com/watch?v=URTcCh6QVwM");
</script>
</body>
</html>

View file

@ -1,129 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Css updated!</title>
<meta name="description" content="As you can see, now the css is decent! Now Im using Skeleton and a couple of custom sass lines that you can check out on Github. Currently, Im a bit busy w...">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css">
<link rel="stylesheet" href="/css/main.css">
<link href='https://fonts.googleapis.com/css?family=Hammersmith+One' rel='stylesheet' type='text/css'>
<link rel="canonical" href="http://praticamentetilde.github.io/update/2016/09/13/css-update.html">
<link rel="alternate" type="application/rss+xml" title="Ramblings of an archer archer" href="http://praticamentetilde.github.io/feed.xml">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<script src="https://rawgit.com/snaptortoise/konami-js/master/konami.js"></script>
<!-- Favicon -->
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
</head>
<body>
<header class="header">
<section class="head">
<h2 class="title">Ramblings of an archer archer</h2>
<p>Things which an Arch Linux user that also owns an recurve bow can write.
</p>
</section>
<nav class="navbar">
<div class="container">
<ul class="navbar-list">
<li class="navbar-item">
<a href="/">home</a>
</li>
<li class="navbar-item">
<a href="/about/">About</a>
</li>
<li class="navbar-item">
<a href="http://www.burarco.it">My archery club</a>
</li>
<li class="navbar-item">
<a href="/feed.xml">RSS</a>
</li>
</ul>
</div>
</nav>
</header>
<main class="container">
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
<header class="post-header">
<h2 class="post-title" itemprop="name headline">Css updated!</h2>
<p class="post-meta"><time datetime="2016-09-13T21:30:00+02:00" itemprop="datePublished">Sep 13, 2016</time></p>
</header>
<div class="post-content" itemprop="articleBody">
<p>As you can see, now the css is decent! Now Im using <a href="http://getskeleton.com">Skeleton</a> and a couple of custom sass lines that you can check out on Github. Currently, Im a bit busy with BAM! so Im not sure Ill find the time for this. Anyway, enjoy the new look!</p>
</div>
</article>
<div id="disqus_thread"></div>
<script>
/**
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables
*/
/*
var disqus_config = function () {
this.page.url = PAGE_URL; // Replace PAGE_URL with your page's canonical URL variable
this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
};
*/
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = '//ramblingsofanarcherarcher.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
</main>
<footer class="site-footer">
<div class="icons">
<a class="icon" href="https://github.com/praticamentetilde"><i class="fa fa-github"></i></a>
<a class="icon" href="https://www.reddit.com/user/praticamentetilde"><i class="fa fa-reddit"></i></a>
</div>
<h6 class="author">Claudio Maggioni 2016</h6>
</footer>
<script>
var easter_egg = new Konami();
easter_egg.load("https://www.youtube.com/watch?v=URTcCh6QVwM");
</script>
</body>
</html>

23
blog.html Normal file
View file

@ -0,0 +1,23 @@
---
layout: page
title: Blog
permalink: /blog/
---
<div class="home">
<p style="margin-top: -2rem; margin-bottom: 2rem">
<a href="/feed.xml">RSS feed</a>
</p>
<ul class="post-list">
{% for post in site.posts %}
<li>
<span class="post-meta"> {{ post.date | date: "%b %-d, %Y" }}</span>
<h4>
<a class="post-link" href="{{ post.url | prepend: site.baseurl }}">
{{ post.title }}</a
>
</h4>
</li>
{% endfor %}
</ul>
</div>

View file

@ -1,11 +0,0 @@
---
layout: page
title: About
permalink: /about/
---
My name is Claudio Maggioni and I am both an Arch Linux user and an [recurve archer](http://www.fitarco-italia.org/arcieri/situazione.php?Codice=91647). I define myself an "archer archer". This site will collect my own occasional thoughts about the two worlds, hoping someone will found them useful.
If you are curious about the code i produce my personal Github account is [here](https://github.com/praticamentetilde/). This particular site is made with jekyll and hosted by Github pages, as you can see.
PRO tip: try performing a Konami code in the home page (for phones slide up, slide up, slide down, slide down, slide left, slide right, slide left, slide right, tap, tap; made with [this](https://github.com/snaptortoise/konami-js))...

8
css/bombardier.css Normal file
View file

@ -0,0 +1,8 @@
/* vim: set ts=2 sw=2 et tw=80: */
@font-face {
font-family: "Radio Canada";
font-style: regular;
font-weight: 400;
src: url(/webfonts/RadioCanada-VariableFont_wdth,wght.ttf) format("truetype");
}

6143
css/font-awesome.css vendored Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,34 +1,29 @@
--- ---
# Only the main Sass file needs front matter (the dashes are enough)
--- ---
@charset "utf-8"; @charset "utf-8";
// Our variables // Our variables
$base-font-family: "Hammersmith One","Helvetica Neue", Helvetica, Arial, sans-serif; $base-font-family: monospace;
$base-font-size: 16px; $base-font-size: 17px;
$base-font-weight: 200; $base-font-weight: 200;
$small-font-size: $base-font-size * 0.875; $small-font-size: $base-font-size * 0.875;
$base-line-height: 1.5; $base-line-height: 1.5;
$spacing-unit: 30px; $spacing-unit: 30px;
$text-color: #888; $text-color: #222;
$background-color: #090909; $background-color: #fafafa;
$brand-color: #e82;
$grey-color: #828282; $top-col: #018e71;
$grey-color-light: lighten($grey-color, 40%); $brand-color: #4f47cc;
$grey-color-dark: darken($grey-color, 25%); $border: 3px solid $brand-color;
// Width of the content area // Width of the content area
$content-width: 800px; $content-width: 800px;
$on-palm: 600px; $on-palm: 600px;
$on-laptop: 800px; $on-laptop: 800px;
$slideshow-height: 70vh;
// Use media queries like this: // Use media queries like this:
// @include media-query($on-palm) { // @include media-query($on-palm) {
@ -38,16 +33,10 @@ $slideshow-height: 70vh;
// } // }
// } // }
@mixin media-query($device) { @mixin media-query($device) {
@media screen and (max-width: $device) { @media screen and (max-width: $device) {
@content; @content;
} }
} }
// Import partials from `sass_dir` (defaults to `_sass`) // Import partials from `sass_dir` (defaults to `_sass`)
@import @import "base", "layout", "syntax-highlighting";
"base",
"layout",
"syntax-highlighting"
;

BIN
cv.pdf Normal file

Binary file not shown.

9
hooks/pre-commit Executable file
View file

@ -0,0 +1,9 @@
#!/bin/sh
files="`git diff --staged --name-only --diff-filter=ACMR | tr \"\\n\" \" \"`"
for f in $files; do
$(npm bin)/prettier --write "$f"
git add -f "$f"
done

BIN
images/claudio.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 772 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Some files were not shown because too many files have changed in this diff Show more