diff --git a/.gitignore b/.gitignore index 24b1310..c947b0a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .DS_Store .jekyll-cache/ .sass-cache/ +_site/ .jekyll-metadata diff --git a/_includes/header.html b/_includes/header.html index 7f6b2f1..3f7607f 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -6,7 +6,7 @@ {% endif %} {% endfor %} RSS - CV + CV Git Cloud diff --git a/_site/404.html b/_site/404.html deleted file mode 100644 index f55f40d..0000000 --- a/_site/404.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - maggioni.xyz - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-

404 - page not found

- -

-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 gif of a dancing Rick Astley. -

- -

- Rick Astley gif -

- -

-Thanks to Giorgio Croci - for the gif!

- -
- - - - diff --git a/_site/LICENSE.md b/_site/LICENSE.md deleted file mode 100644 index 25e8989..0000000 --- a/_site/LICENSE.md +++ /dev/null @@ -1,7 +0,0 @@ -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. diff --git a/_site/README.md b/_site/README.md deleted file mode 100644 index b0f455e..0000000 --- a/_site/README.md +++ /dev/null @@ -1,11 +0,0 @@ - - -# 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. diff --git a/_site/android-icon-144x144.png b/_site/android-icon-144x144.png deleted file mode 100644 index 1be4298..0000000 Binary files a/_site/android-icon-144x144.png and /dev/null differ diff --git a/_site/android-icon-192x192.png b/_site/android-icon-192x192.png deleted file mode 100644 index 05d01d9..0000000 Binary files a/_site/android-icon-192x192.png and /dev/null differ diff --git a/_site/android-icon-36x36.png b/_site/android-icon-36x36.png deleted file mode 100644 index c03bc49..0000000 Binary files a/_site/android-icon-36x36.png and /dev/null differ diff --git a/_site/android-icon-48x48.png b/_site/android-icon-48x48.png deleted file mode 100644 index 5fc6e47..0000000 Binary files a/_site/android-icon-48x48.png and /dev/null differ diff --git a/_site/android-icon-72x72.png b/_site/android-icon-72x72.png deleted file mode 100644 index 328b438..0000000 Binary files a/_site/android-icon-72x72.png and /dev/null differ diff --git a/_site/android-icon-96x96.png b/_site/android-icon-96x96.png deleted file mode 100644 index b5a68b0..0000000 Binary files a/_site/android-icon-96x96.png and /dev/null differ diff --git a/_site/apple-icon-114x114.png b/_site/apple-icon-114x114.png deleted file mode 100644 index e5d98b1..0000000 Binary files a/_site/apple-icon-114x114.png and /dev/null differ diff --git a/_site/apple-icon-120x120.png b/_site/apple-icon-120x120.png deleted file mode 100644 index 36c6b09..0000000 Binary files a/_site/apple-icon-120x120.png and /dev/null differ diff --git a/_site/apple-icon-144x144.png b/_site/apple-icon-144x144.png deleted file mode 100644 index 1be4298..0000000 Binary files a/_site/apple-icon-144x144.png and /dev/null differ diff --git a/_site/apple-icon-152x152.png b/_site/apple-icon-152x152.png deleted file mode 100644 index 602c5e9..0000000 Binary files a/_site/apple-icon-152x152.png and /dev/null differ diff --git a/_site/apple-icon-180x180.png b/_site/apple-icon-180x180.png deleted file mode 100644 index 8e0afa8..0000000 Binary files a/_site/apple-icon-180x180.png and /dev/null differ diff --git a/_site/apple-icon-57x57.png b/_site/apple-icon-57x57.png deleted file mode 100644 index 0be6cb9..0000000 Binary files a/_site/apple-icon-57x57.png and /dev/null differ diff --git a/_site/apple-icon-60x60.png b/_site/apple-icon-60x60.png deleted file mode 100644 index ea4ef98..0000000 Binary files a/_site/apple-icon-60x60.png and /dev/null differ diff --git a/_site/apple-icon-72x72.png b/_site/apple-icon-72x72.png deleted file mode 100644 index 328b438..0000000 Binary files a/_site/apple-icon-72x72.png and /dev/null differ diff --git a/_site/apple-icon-76x76.png b/_site/apple-icon-76x76.png deleted file mode 100644 index 5b261b6..0000000 Binary files a/_site/apple-icon-76x76.png and /dev/null differ diff --git a/_site/apple-icon-precomposed.png b/_site/apple-icon-precomposed.png deleted file mode 100644 index 0c3ae03..0000000 Binary files a/_site/apple-icon-precomposed.png and /dev/null differ diff --git a/_site/apple-icon.png b/_site/apple-icon.png deleted file mode 100644 index 0c3ae03..0000000 Binary files a/_site/apple-icon.png and /dev/null differ diff --git a/_site/astley.gif b/_site/astley.gif deleted file mode 100644 index 3c60966..0000000 Binary files a/_site/astley.gif and /dev/null differ diff --git a/_site/blog/index.html b/_site/blog/index.html deleted file mode 100644 index b25bd95..0000000 --- a/_site/blog/index.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - Blog - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- -
-

Blog

-
- -
- - -
- -
- -
- - - - diff --git a/_site/browserconfig.xml b/_site/browserconfig.xml deleted file mode 100644 index c554148..0000000 --- a/_site/browserconfig.xml +++ /dev/null @@ -1,2 +0,0 @@ - -#ffffff \ No newline at end of file diff --git a/_site/css/main.css b/_site/css/main.css deleted file mode 100644 index f830b7b..0000000 --- a/_site/css/main.css +++ /dev/null @@ -1,250 +0,0 @@ -/* vim: set ts=2 sw=2 et tw=80: */ -/* 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 */ -html { font-weight: 200; font-size: 15px; line-height: 1.5; font-family: monospace; color: #222; background-color: #EEE; } - -/* Images */ -img { max-width: 100%; vertical-align: middle; } - -/* Lists */ -ul, ol { margin-left: 30px; } - -/* Disable margin for lists */ -li > ul, li > ol { margin-bottom: 0; } - -/* Headings */ -h2, h3, h4, h5, h6 { font-weight: 200; text-decoration: underline; } - -/* Links */ -a { color: #FF6000; text-decoration: none; font-weight: bold; } - -a:hover { text-decoration: underline; } - -/** Blockquotes */ -blockquote { color: #222; background: #EEE; border-left: 4px solid #FF6000; letter-spacing: -1px; font-style: italic; margin: 1rem 0; padding: 1em; } - -blockquote > :last-child { margin-bottom: 0; } - -/* do not put padding around the table with line numbers and the code */ -code table { margin: -8px -12px; } - -pre table.rouge-table td { padding: 0; } - -pre { padding: 8px 12px; overflow-x: auto; } - -pre > code { border: 0; padding-right: 0; padding-left: 0; } - -/* pull a nice monospace font from the internets, plus set font and background */ -pre, code { font-size: 0.95rem; background: #EEE; } - -/* Disable borders between line numbers and code when line numbers are shown */ -code .rouge-table, code .rouge-table td { border: 0; border-radius: 0; } - -code .rouge-table { border-spacing: 0; border-collapse: collapse; } - -/** Basic layout rules */ -/* Padding for the main content in the page */ -.container { padding: .4rem 2em; } - -/* Header sizes */ -/** General style for the content inside main */ -/* separate article metadata to the article itself with some space */ -article .post-header { margin-bottom: 3rem; } - -/* put some space at the end of each article and at the end of each section */ -main article, 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; } - -/* vim: set ts=2 sw=2 et tw=80: */ -body { background-color: #EEE; font-family: 'IBM Plex Mono', monospace; display: flex; min-height: 100vh; flex-direction: column; } - -main { flex: 1 0 auto; } - -.navbar-list .navbar-item { text-transform: uppercase; font-weight: 400; margin: 1em; } - -ul.navbar-list { margin-bottom: 2rem; } - -.header { border-bottom: 3px solid #FF6000; background: #222; color: #EEE; } - -.header .head.navbar { display: flex; } - -.header .head.navbar h1 { flex: 2; font-size: 1.5rem; display: inline; margin: 0; padding: 0; } - -.header .head.navbar h1 a { color: white; } - -.header .head.navbar .links { white-space: nowrap; text-align: right; } - -.header .head.navbar .links a { text-transform: uppercase; display: inline-block; padding: .25rem .5rem; } - -.header .head.navbar .links a:first-child { padding-left: 0; } - -.header .head.navbar .links a:last-child { padding-right: 0; } - -.homequote { display: flex; background: #222; color: #EEE; align-items: stretch; margin-bottom: 1rem; } - -.homequote figure { margin: 0; flex: 0; display: flex; align-items: center; min-width: 300px; background: black; } - -.homequote .quote { border-left: 3px dotted #FF6000; flex: 1; padding: 1rem 1.5rem; } - -@media (max-width: 700px) { .navbar-list .navbar-item { width: calc(100% - 2em); } } - -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 { padding: .5rem; display: flex; justify-content: space-between; border-top: 3px solid #FF6000; background: #222; color: #EEE; } - -footer .author { font-size: 1rem; text-align: right; } - -footer .icons { text-align: center; flex: 0; white-space: nowrap; } - -footer .icons .icon { display: inline-table; background: #EEE; color: #222; width: 2.5em; height: 2.5em; text-align: center; line-height: 2.5em; margin: .25em; cursor: pointer; } - -.container { padding-top: 1rem; padding-bottom: 1rem; } - -/* Utility class for centering block elements */ -.block-center { display: block; margin: auto; } - -/** Syntax highlighting styles */ -.highlight { background: #EEE; border: 3px solid #DDD; } - -.highlighter-rouge .highlight { background: #eef; } - -.highlight td.code > pre { background: #222; } - -.highlight pre.lineno { background: #111; text-align: right; } - -.highlight .c { color: #777; 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: #00a6d3; } - -.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: #0000d0; } - -.highlight .nv { color: #0BB; } - -.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: #f54; } - -.highlight .sc { color: #f54; } - -.highlight .sd { color: #f54; } - -.highlight .s2 { color: #f54; } - -.highlight .se { color: #f54; } - -.highlight .sh { color: #f54; } - -.highlight .si { color: #f54; } - -.highlight .sx { color: #f54; } - -.highlight .sr { color: #009926; } - -.highlight .s1 { color: #f54; } - -.highlight .ss { color: #990073; } - -.highlight .bp { color: #999; } - -.highlight .vc { color: #008080; } - -.highlight .vg { color: #008080; } - -.highlight .vi { color: #008080; } - -.highlight .il { color: #099; } - -/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/_site/css/main.css.map b/_site/css/main.css.map deleted file mode 100644 index 3eba992..0000000 --- a/_site/css/main.css.map +++ /dev/null @@ -1,18 +0,0 @@ -{ - "version": 3, - "file": "main.css", - "sources": [ - "main.scss", - "_sass/_base.scss", - "_sass/_layout.scss", - "_sass/_syntax-highlighting.scss" - ], - "sourcesContent": [ - "@charset \"utf-8\";\n\n// Our variables\n$base-font-family: monospace;\n$base-font-size: 15px;\n$base-font-weight: 200;\n$small-font-size: $base-font-size * 0.875;\n$base-line-height: 1.5;\n\n$spacing-unit: 30px;\n\n$nav-bg: #222;\n$nav-col: #EEE;\n$text-color: $nav-bg;\n$background-color: $nav-col;\n$brand-color: #FF6000;\n$border: 3px solid $brand-color;\n\n// Width of the content area\n$content-width: 800px;\n\n$on-palm: 600px;\n$on-laptop: 800px;\n\n// Use media queries like this:\n// @include media-query($on-palm) {\n// .wrapper {\n// padding-right: $spacing-unit / 2;\n// padding-left: $spacing-unit / 2;\n// }\n// }\n@mixin media-query($device) {\n @media screen and (max-width: $device) {\n @content;\n }\n}\n\n// Import partials from `sass_dir` (defaults to `_sass`)\n@import\n \"base\",\n \"layout\",\n \"syntax-highlighting\"\n;\n", - "/* vim: set ts=2 sw=2 et tw=80: */\n\n/* Reset some basic elements */\nbody, h1, h2, h3, h4, h5, h6,\np, blockquote, pre, hr,\ndl, dd, ol, ul, figure {\n margin: 0;\n padding: 0;\n}\n\n/* Basic styling */\nhtml {\n font-weight: $base-font-weight;\n font-size: $base-font-size;\n line-height: $base-line-height;\n font-family: $base-font-family;\n color: $text-color;\n background-color: $background-color;\n}\n\n/* Images */\nimg {\n max-width: 100%;\n vertical-align: middle;\n}\n\n/* Lists */\nul, ol {\n margin-left: $spacing-unit;\n}\n\n/* Disable margin for lists */\nli > ul, li > ol {\n margin-bottom: 0;\n}\n\n/* Headings */\nh2, h3, h4, h5, h6 {\n font-weight: $base-font-weight;\n text-decoration: underline;\n}\n\n/* Links */\na {\n color: $brand-color;\n text-decoration: none;\n font-weight: bold;\n\n &:visited {\n }\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n/**\n * Blockquotes\n */\nblockquote {\n color: $nav-bg;\n background: $nav-col;\n border-left: 4px solid $brand-color;\n letter-spacing: -1px;\n font-style: italic;\n margin: 1rem 0;\n padding: 1em;\n\n > :last-child {\n margin-bottom: 0;\n }\n}\n\n/* do not put padding around the table with line numbers and the code */\ncode table {\n margin: -8px -12px;\n}\n\npre table.rouge-table td {\n padding: 0;\n}\n\npre {\n padding: 8px 12px;\n overflow-x: auto;\n\n > code {\n border: 0;\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n/* pull a nice monospace font from the internets, plus set font and\n * background */\npre, code {\n font-size: 0.95rem;\n background: $nav-col;\n}\n\n/* Disable borders between line numbers and code when\n * line numbers are shown */\ncode .rouge-table, code .rouge-table td {\n border: 0;\n border-radius: 0;\n}\n\ncode .rouge-table {\n border-spacing: 0;\n border-collapse: collapse;\n}\n\n/**\n * Basic layout rules\n */\n\n/* Padding for the main content in the page */\n.container {\n padding: .4rem 2em;\n}\n\n/* Header sizes */\n\n/**\n * General style for the content inside main\n */\n\n/* separate article metadata to the article itself with some space */\narticle .post-header {\n margin-bottom: 3rem;\n}\n\n/* put some space at the end of each article and at the end of each section */\nmain article, main section {\n margin-bottom: 2rem;\n}\n\n/* justify text */\np {\n text-align: justify;\n}\n\n/* put a space between paragraphs and images */\np, figure {\n margin-top: 1.2rem;\n}\n\n/* the first paragraph has no space at the top (since that is provided\n * by either main or h? */\np:first-child {\n margin-top: 0;\n}\n\n/* make strongly emphasized elements REALLY STRONG */\nstrong {\n background: #FAA;\n}\n", - "/* vim: set ts=2 sw=2 et tw=80: */\nbody {\n background-color: $background-color;\n font-family: 'IBM Plex Mono', monospace;\n display: flex;\n min-height: 100vh;\n flex-direction: column;\n}\n\nmain {\n flex: 1 0 auto;\n}\n\n.navbar-list .navbar-item {\n text-transform: uppercase;\n font-weight: 400;\n margin: 1em;\n}\n\nul.navbar-list {\n margin-bottom: 2rem;\n}\n\n.header {\n border-bottom: $border;\n background: $nav-bg;\n color: $nav-col;\n\n .head.navbar {\n display: flex;\n\n h1 {\n flex: 2;\n font-size: 1.5rem;\n display: inline;\n margin: 0;\n padding: 0;\n\n a {\n color: white;\n }\n }\n\n .links {\n white-space: nowrap;\n text-align: right;\n\n a {\n text-transform: uppercase;\n display: inline-block;\n padding: .25rem .5rem;\n }\n\n a:first-child {\n padding-left: 0;\n }\n\n a:last-child {\n padding-right: 0;\n }\n }\n }\n}\n\n.homequote {\n display: flex;\n background: $nav-bg;\n color: $nav-col;\n align-items: stretch;\n margin-bottom: 1rem;\n\n figure {\n margin: 0;\n flex: 0;\n display: flex;\n align-items: center;\n min-width: 300px;\n background: black;\n }\n\n .quote {\n border-left: 3px dotted $brand-color;\n flex: 1;\n padding: 1rem 1.5rem;\n }\n}\n\n@media (max-width: 700px) {\n .navbar-list .navbar-item {\n width: calc(100% - 2em);\n }\n}\n\n\nul.post-list, ul.navbar-list {\n list-style-type: none;\n margin-left: 0;\n margin-right: 0;\n}\n\nul.post-list li {\n padding-top: 2rem;\n}\n\nul.post-list li:first-child {\n padding-top: 0;\n}\n\nfooter {\n padding: .5rem;\n display: flex;\n justify-content: space-between;\n border-top: $border;\n background: $nav-bg;\n color: $nav-col;\n\n .author {\n font-size: 1rem;\n text-align: right;\n }\n\n .icons {\n text-align: center;\n flex: 0;\n white-space: nowrap;\n\n .icon {\n display: inline-table;\n background: $nav-col;\n color: $nav-bg;\n width: 2.5em;\n height: 2.5em;\n text-align: center;\n line-height: 2.5em;\n margin: .25em;\n cursor: pointer;\n }\n }\n}\n\n.container {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n\n/* Utility class for centering block elements */\n.block-center {\n display: block;\n margin: auto;\n}\n", - "/**\n * Syntax highlighting styles\n */\n.highlight {\n background: #EEE;\n border: 3px solid #DDD;\n\n .highlighter-rouge & {\n background: #eef;\n }\n\n td.code > pre {\n background: #222;\n }\n\n pre.lineno {\n background: #111;\n text-align: right;\n }\n\n .c { color: #777; font-style: italic } // Comment\n .err { color: #a61717; background-color: #e3d2d2 } // Error\n .k { font-weight: bold } // Keyword\n .o { font-weight: bold } // Operator\n .cm { color: #998; font-style: italic } // Comment.Multiline\n .cp { color: #999; font-weight: bold } // Comment.Preproc\n .c1 { color: #998; font-style: italic } // Comment.Single\n .cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special\n .gd { color: #000; background-color: #fdd } // Generic.Deleted\n .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific\n .ge { font-style: italic } // Generic.Emph\n .gr { color: #a00 } // Generic.Error\n .gh { color: #999 } // Generic.Heading\n .gi { color: #000; background-color: #dfd } // Generic.Inserted\n .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific\n .go { color: #888 } // Generic.Output\n .gp { color: #555 } // Generic.Prompt\n .gs { font-weight: bold } // Generic.Strong\n .gu { color: #aaa } // Generic.Subheading\n .gt { color: #a00 } // Generic.Traceback\n .kc { font-weight: bold } // Keyword.Constant\n .kd { font-weight: bold } // Keyword.Declaration\n .kp { font-weight: bold } // Keyword.Pseudo\n .kr { font-weight: bold } // Keyword.Reserved\n .kt { color: #458; font-weight: bold } // Keyword.Type\n .m { color: #099 } // Literal.Number\n .s { color: #d14 } // Literal.String\n .na { color: #008080 } // Name.Attribute\n .nb { color: #00a6d3 } // Name.Builtin\n .nc { color: #458; font-weight: bold } // Name.Class\n .no { color: #008080 } // Name.Constant\n .ni { color: #800080 } // Name.Entity\n .ne { color: #900; font-weight: bold } // Name.Exception\n .nf { color: #900; font-weight: bold } // Name.Function\n .nn { color: #555 } // Name.Namespace\n .nt { color: #0000d0 } // Name.Tag\n .nv { color: #0BB } // Name.Variable\n .ow { font-weight: bold } // Operator.Word\n .w { color: #bbb } // Text.Whitespace\n .mf { color: #099 } // Literal.Number.Float\n .mh { color: #099 } // Literal.Number.Hex\n .mi { color: #099 } // Literal.Number.Integer\n .mo { color: #099 } // Literal.Number.Oct\n .sb { color: #f54 } // Literal.String.Backtick\n .sc { color: #f54 } // Literal.String.Char\n .sd { color: #f54 } // Literal.String.Doc\n .s2 { color: #f54 } // Literal.String.Double\n .se { color: #f54 } // Literal.String.Escape\n .sh { color: #f54 } // Literal.String.Heredoc\n .si { color: #f54 } // Literal.String.Interpol\n .sx { color: #f54 } // Literal.String.Other\n .sr { color: #009926 } // Literal.String.Regex\n .s1 { color: #f54 } // Literal.String.Single\n .ss { color: #990073 } // Literal.String.Symbol\n .bp { color: #999 } // Name.Builtin.Pseudo\n .vc { color: #008080 } // Name.Variable.Class\n .vg { color: #008080 } // Name.Variable.Global\n .vi { color: #008080 } // Name.Variable.Instance\n .il { color: #099 } // Literal.Number.Integer.Long\n}\n" - ], - "names": [], - "mappings": "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" -} \ No newline at end of file diff --git a/_site/favicon-16x16.png b/_site/favicon-16x16.png deleted file mode 100644 index bfe1050..0000000 Binary files a/_site/favicon-16x16.png and /dev/null differ diff --git a/_site/favicon-32x32.png b/_site/favicon-32x32.png deleted file mode 100644 index b3c05c1..0000000 Binary files a/_site/favicon-32x32.png and /dev/null differ diff --git a/_site/favicon-96x96.png b/_site/favicon-96x96.png deleted file mode 100644 index b5a68b0..0000000 Binary files a/_site/favicon-96x96.png and /dev/null differ diff --git a/_site/favicon.ico b/_site/favicon.ico deleted file mode 100644 index 05d2cff..0000000 Binary files a/_site/favicon.ico and /dev/null differ diff --git a/_site/feed.xml b/_site/feed.xml deleted file mode 100644 index 564f5da..0000000 --- a/_site/feed.xml +++ /dev/null @@ -1,341 +0,0 @@ - - - - maggioni.xyz - Eat polenta and do not counter-aim! - - https://maggioni.xyz/ - - Fri, 22 Jan 2021 18:48:15 +0100 - Fri, 22 Jan 2021 18:48:15 +0100 - Jekyll v4.2.0 - - - How to rickroll people that try to run "rm -rf" on your system - <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 forgot 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> -<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">alias rm</span><span class="o">=</span>/bin/rmAlias -<span class="nb">alias 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> - -<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> -<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="p">;</span> <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="p">;</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="p">;</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="p">;</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="p">;</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="p">;</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> - -<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> -<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="c"># chmod +x /bin/rmAlias</span></code></pre></figure> -</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> - - Thu, 28 Jul 2016 16:00:00 +0200 - https://maggioni.xyz/linux/2016/07/28/how-to-rickroll-people-launching-rm-rf-on-your-system.html - https://maggioni.xyz/linux/2016/07/28/how-to-rickroll-people-launching-rm-rf-on-your-system.html - - - linux - - - - - Installing Gentoo on a Lenovo ThinkPad X60s - <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: - - <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> - -<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> -<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> - -<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> - - Tue, 12 Jul 2016 13:00:00 +0200 - https://maggioni.xyz/linux/2016/07/12/installing-gentoo-on-a-thinkpad-x60s.html - https://maggioni.xyz/linux/2016/07/12/installing-gentoo-on-a-thinkpad-x60s.html - - - linux - - - - - Get a Bluetooth keyboard work with Arch 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> -<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><table class="rouge-table"><tbody><tr><td class="gutter gl"><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 -</pre></td></tr></tbody></table></code></pre></figure> -</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> -<figure class="highlight"><pre><code class="language-bash" data-lang="bash"><table class="rouge-table"><tbody><tr><td class="gutter gl"><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 -</pre></td></tr></tbody></table></code></pre></figure> -</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> - - Thu, 07 Jul 2016 14:49:18 +0200 - https://maggioni.xyz/linux/2016/07/07/get-a-bluetooth-keyboard-work-with-arch.html - https://maggioni.xyz/linux/2016/07/07/get-a-bluetooth-keyboard-work-with-arch.html - - - linux - - - - - diff --git a/_site/images/claudio.jpg b/_site/images/claudio.jpg deleted file mode 100644 index f6451b7..0000000 Binary files a/_site/images/claudio.jpg and /dev/null differ diff --git a/_site/images/screenfetch.jpg b/_site/images/screenfetch.jpg deleted file mode 100644 index 8a1d399..0000000 Binary files a/_site/images/screenfetch.jpg and /dev/null differ diff --git a/_site/images/spotify_rickastley.png b/_site/images/spotify_rickastley.png deleted file mode 100644 index 2f90870..0000000 Binary files a/_site/images/spotify_rickastley.png and /dev/null differ diff --git a/_site/images/thinkpad1.jpg b/_site/images/thinkpad1.jpg deleted file mode 100644 index 5ac28e1..0000000 Binary files a/_site/images/thinkpad1.jpg and /dev/null differ diff --git a/_site/images/thinkpad2.jpg b/_site/images/thinkpad2.jpg deleted file mode 100644 index 332d9ff..0000000 Binary files a/_site/images/thinkpad2.jpg and /dev/null differ diff --git a/_site/index.html b/_site/index.html deleted file mode 100644 index a5ce639..0000000 --- a/_site/index.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - maggioni.xyz - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- -
-

- I once read a Linus Torvalds quote comparing computer - science to physics, stating that

[...] in physics you're - supposed to figure - out how the world is made up, in computer science you create the - world.
-

Hello, my name is Claudio Maggioni, and I have been a passionate - "world builder" for 7 years.

Since when I began high school, I - meddled with software development, developing a creative mindset and an - interest in problem solving. Since then, I have always been at least in part a - self-taught student of computer science, satisfying my curiosity for topics - that were not covered in general school curriculum.

My expertise - includes web development, mobile application development of multiplatform - applications, a passion for functional programming, and DevOps skills for - Linux systems.

Reaching the end of my undergraduate studies in - computer science, I am currently seeking job opportunities to follow at the - end of my studies, eager to apply my skills in a corporate setting. -

-
-
-
-

Self-hosted services

-

Listed below are some websites served by this server:

- -
-
- - - -
- - - - diff --git a/_site/linux/2016/07/07/get-a-bluetooth-keyboard-work-with-arch.html b/_site/linux/2016/07/07/get-a-bluetooth-keyboard-work-with-arch.html deleted file mode 100644 index 9950a90..0000000 --- a/_site/linux/2016/07/07/get-a-bluetooth-keyboard-work-with-arch.html +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - - - - Get a Bluetooth keyboard work with Arch Linux - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- -
-

Get a Bluetooth keyboard work with Arch 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 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: -

- -

-

1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-
[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
-
-

- -

-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: -

- -

-

1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-
[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
-
-

- -

-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. -

- -

- Last thing: I discovered that my Bluetooth dongle is CSR 8510 A10 based so expect some ramblings about hid proxy. -

- -
- -
- -
- - - - diff --git a/_site/linux/2016/07/12/installing-gentoo-on-a-thinkpad-x60s.html b/_site/linux/2016/07/12/installing-gentoo-on-a-thinkpad-x60s.html deleted file mode 100644 index a05775f..0000000 --- a/_site/linux/2016/07/12/installing-gentoo-on-a-thinkpad-x60s.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - Installing Gentoo on a Lenovo ThinkPad X60s - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- -
-

Installing Gentoo on a Lenovo ThinkPad X60s

- -
- -
-

- Currently, my only laptop is a - IBM/Lenovo ThinkPad - 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!).
  • -
-

- -

- An image of the ThinkPad X60s -

- -

- Another image of the ThinkPad X60s -

- -

- This machine had an installation on Arch Linux, and I was using it - for school stuff. It runned smoothly KDE5, Atom (great - editor, I am 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 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 was not - resizable as it was JFS). After some research and a couple of seconds in - top I discovered that - PAE - 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 and not by tools like - - pacstrap. -

- -

- 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: -

- -

-

# make ARCH=i386 menuconfig
-# make ARCH=i386
-# make ARCH=i386 install
-

- -

- At the end, I made it! I only have a base install, but i can show you - screenfetch: -

- -

- The laptop running 'screenfetch' -

- -

- I have not installed Gentoo 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 rEFInd. Hope this rambling was, if not useful, at least - entertaining! -

- -
- -
- -
- - - - diff --git a/_site/linux/2016/07/28/how-to-rickroll-people-launching-rm-rf-on-your-system.html b/_site/linux/2016/07/28/how-to-rickroll-people-launching-rm-rf-on-your-system.html deleted file mode 100644 index e751911..0000000 --- a/_site/linux/2016/07/28/how-to-rickroll-people-launching-rm-rf-on-your-system.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - - - - - - - How to rickroll people that try to run "rm -rf" on your system - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
- -
-

How to rickroll people that try to run "rm -rf" on your system

- -
- -
- -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: -

- -

- My Spotify with a bunch of Rick Astley songs -

- -

- I like rickrolling people too, especially if they are 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 will 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 runned with - sudo. I am going to alias the rm command in - /etc/profile, /etc/bash.bashrc and in - /etc/zsh/zshrc (I am 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: -

- -

-

alias rm=/bin/rmAlias
-alias sudo='sudo ' # this enables aliases in sudo, see http://askubuntu.com/questions/22037/aliases-not-available-when-using-sudo
-

- -

- Since alias is not able to control the flags of the aliases (see - here, we are going to redirect each call of rm to - /bin/rmAlias, 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 - sudo. So, let's see the code I put in rmAlias: -

- -

-

#! /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 $?
-

- -

- 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. -

- -

- Let's give execution permissions to the script we have just created: -

- -

-

# chmod +x /bin/rmAlias
-

- -

- Restart your shell, and enjoy. If you want to test safely, I suggest trying - to run rm -rf with no folders or a nonexistant one, since this - script stops 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... -

- -
- -
- -
- - - - diff --git a/_site/manifest.json b/_site/manifest.json deleted file mode 100644 index 013d4a6..0000000 --- a/_site/manifest.json +++ /dev/null @@ -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" - } - ] -} \ No newline at end of file diff --git a/_site/ms-icon-144x144.png b/_site/ms-icon-144x144.png deleted file mode 100644 index 1be4298..0000000 Binary files a/_site/ms-icon-144x144.png and /dev/null differ diff --git a/_site/ms-icon-150x150.png b/_site/ms-icon-150x150.png deleted file mode 100644 index acb17d9..0000000 Binary files a/_site/ms-icon-150x150.png and /dev/null differ diff --git a/_site/ms-icon-310x310.png b/_site/ms-icon-310x310.png deleted file mode 100644 index 8623478..0000000 Binary files a/_site/ms-icon-310x310.png and /dev/null differ diff --git a/_site/ms-icon-70x70.png b/_site/ms-icon-70x70.png deleted file mode 100644 index dadf17b..0000000 Binary files a/_site/ms-icon-70x70.png and /dev/null differ diff --git a/cv.pdf b/cv.pdf new file mode 100644 index 0000000..d66bac4 Binary files /dev/null and b/cv.pdf differ