This commit is contained in:
Akko
2022-05-17 22:10:00 +02:00
parent 9caaf30f7a
commit b60509f1bf
17 changed files with 458 additions and 249 deletions

View File

@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- 2022-03-21 Mon 19:57 -->
<!-- 2022-04-18 Mon 14:07 -->
<meta charset="utf-8" />
<meta name="viewport" content="width=100%, initial-scale=0.7" />
<title>About</title>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- 2022-03-21 Mon 21:17 -->
<!-- 2022-04-18 Mon 14:07 -->
<meta charset="utf-8" />
<meta name="viewport" content="width=100%, initial-scale=0.7" />
<title>Blogroll</title>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- 2022-03-21 Mon 20:31 -->
<!-- 2022-04-18 Mon 14:07 -->
<meta charset="utf-8" />
<meta name="viewport" content="width=100%, initial-scale=0.7" />
<title>Experiments</title>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- 2022-03-23 Wed 22:21 -->
<!-- 2022-04-18 Mon 14:07 -->
<meta charset="utf-8" />
<meta name="viewport" content="width=100%, initial-scale=0.7" />
<title>Index</title>
@@ -203,7 +203,7 @@
</div>
<div id="content" class="content">
<p>
Welcome to my website! I&rsquo;m <a href="./about.html">Akko</a>. I&rsquo;m currently a computer science student and freelance software developer. I blog about Emacs, Buddhism and meditation, otaku stuff, and other things that interest me. You can view the full list of pages on this website on my <a href="./sitemap.html">sitemap</a>.
Welcome to my website! I&rsquo;m <a href="./about.html">Akko</a>. I&rsquo;m currently a computer science student and freelance software developer. I blog about Emacs, Buddhism and meditation, otaku stuff, and other things that interest me. You can view the full list of pages on this website on the <a href="./sitemap.html">sitemap</a>.
</p>
</div>
<div id="postamble" class="status">

233
html/posts/blog-tech.html Normal file
View File

@@ -0,0 +1,233 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- 2022-04-18 Mon 14:18 -->
<meta charset="utf-8" />
<meta name="viewport" content="width=100%, initial-scale=0.7" />
<title>How this blog is built</title>
<meta name="generator" content="Org Mode" />
<style>
#content { max-width: 60em; margin: auto; }
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #e6e6e6;
border-radius: 3px;
background-color: #f2f2f2;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: auto;
}
pre.src:before {
display: none;
position: absolute;
top: -8px;
right: 12px;
padding: 3px;
color: #555;
background-color: #f2f2f299;
}
pre.src:hover:before { display: inline; margin-top: 14px;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-authinfo::before { content: 'Authinfo'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
</style>
<link rel="stylesheet" href="/static/style.css" type="text/css"/>
</head>
<body>
<div id="preamble" class="status">
<div id="header">
<a class="navbar-link" href="/">Home</a>
<a class="navbar-link" href="/about.html"></a>
<a class="navbar-link" href="/sitemap.html">Sitemap</a>
<a class="navbar-link" href="/blogroll.html">Blogroll</a>
</div>
</div>
<div id="content" class="content">
<div id="outline-container-org798cb72" class="outline-2">
<h2 id="org798cb72">Blog Tech</h2>
<div class="outline-text-2" id="text-org798cb72">
</div>
<div id="outline-container-orgbdfb339" class="outline-3">
<h3 id="orgbdfb339">chuu</h3>
<div class="outline-text-3" id="text-orgbdfb339">
<p>
<i>last modified: 2022-04-18</i>
</p>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<div id="footer">
<hr>
If you have any comments about this page, you can email me at: <br>
<b>akko [shift-2] nakadashi -dot- lol</b><br>
And I may include them on the website!<br>
<br>
All code on this website is licensed <b>GPLv3</b> unless otherwise indicated. <br>
Blog proudly built using <a href="/posts/elog-1-blog.html">org-mode</a>!
</div>
</div>
</body>
</html>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- 2022-03-21 Mon 22:28 -->
<!-- 2022-04-18 Mon 14:18 -->
<meta charset="utf-8" />
<meta name="viewport" content="width=100%, initial-scale=0.7" />
<title>Framework Laptop Review</title>
@@ -203,13 +203,13 @@
</div>
<div id="content" class="content">
<div id="outline-container-orgd06c8c3" class="outline-2">
<h2 id="orgd06c8c3">My Experience with the Framework Laptop</h2>
<div class="outline-text-2" id="text-orgd06c8c3">
<div id="outline-container-org8d4f2ce" class="outline-2">
<h2 id="org8d4f2ce">My Experience with the Framework Laptop</h2>
<div class="outline-text-2" id="text-org8d4f2ce">
</div>
<div id="outline-container-orge056d5c" class="outline-3">
<h3 id="orge056d5c">Ordering</h3>
<div class="outline-text-3" id="text-orge056d5c">
<div id="outline-container-org58d7a32" class="outline-3">
<h3 id="org58d7a32">Ordering</h3>
<div class="outline-text-3" id="text-org58d7a32">
<p>
I&rsquo;d been eyeing the <a href="https:frame.work">Framework laptop</a> since somewhere in October 2021, but the EU release got delayed and they were very hesitant to give time estimates. I only managed to get my hands on it in late February, and I ended up having to have it delivered to France. I understand the difficulty of setting up logistics especially these days, but I broke my previous laptop and being stuck in limbo like this was not fun.
</p>
@@ -221,13 +221,13 @@ I asked their customer service to make a small change to the delivery address, b
</div>
</div>
<div id="outline-container-org624a9f5" class="outline-3">
<h3 id="org624a9f5">Set-up</h3>
<div class="outline-text-3" id="text-org624a9f5">
<div id="outline-container-orgb4016c4" class="outline-3">
<h3 id="orgb4016c4">Set-up</h3>
<div class="outline-text-3" id="text-orgb4016c4">
</div>
<div id="outline-container-orgebbeaa3" class="outline-4">
<h4 id="orgebbeaa3">Hardware</h4>
<div class="outline-text-4" id="text-orgebbeaa3">
<div id="outline-container-org81ac9af" class="outline-4">
<h4 id="org81ac9af">Hardware</h4>
<div class="outline-text-4" id="text-org81ac9af">
<p>
I got the DIY edition with the (lowest-end) i5-1135G7 CPU, 2x16GB RAM. I brought my own 1TB SSD. The higher spec CPUs didn&rsquo;t seem worth the money to me. The RAM is probably overkill.
</p>
@@ -255,9 +255,9 @@ The more you look at it, the nicer it gets!
</div>
</div>
<div id="outline-container-orge919784" class="outline-4">
<h4 id="orge919784">Software</h4>
<div class="outline-text-4" id="text-orge919784">
<div id="outline-container-org382a0b2" class="outline-4">
<h4 id="org382a0b2">Software</h4>
<div class="outline-text-4" id="text-org382a0b2">
<p>
I installed Gentoo GNU+Linux on the laptop, just like I have on my desktop. I used an Ubuntu live CD as the install medium together with the Gentoo stage3 tarball, and it worked well. I didn&rsquo;t really have to jump through any laptop-specific hoops, it was a very nice experience. I did use the dist-kernel rather than configuring my own.
</p>
@@ -267,9 +267,9 @@ The laptop held up well during compiling. It&rsquo;s not as fast as a desktop of
</p>
</div>
<div id="outline-container-org0090b99" class="outline-5">
<h5 id="org0090b99">Display scaling</h5>
<div class="outline-text-5" id="text-org0090b99">
<div id="outline-container-orgaad58af" class="outline-5">
<h5 id="orgaad58af">Display scaling</h5>
<div class="outline-text-5" id="text-orgaad58af">
<p>
Simply setting <code>Xft.dpi: 192</code> in .Xresources was enough for the vast majority of applications to use 2x scaling, which looks very good on this display. This is on X11 obviously; I don&rsquo;t use Wayland.
</p>
@@ -279,67 +279,52 @@ The odd application requires its own scaling setting. Rofi requires setting <cod
</p>
</div>
</div>
<div id="outline-container-orgd56fddc" class="outline-5">
<h5 id="orgd56fddc">Display manager</h5>
<div class="outline-text-5" id="text-orgd56fddc">
<div id="outline-container-orgd8031ca" class="outline-5">
<h5 id="orgd8031ca">Display manager</h5>
<div class="outline-text-5" id="text-orgd8031ca">
<p>
I used SDDM which works very well. I wanted to go for something a bit fancier looking, and this delivers. I don&rsquo;t usually use things in the whole QT ecosystem, so it&rsquo;s refreshing.
</p>
</div>
</div>
<div id="outline-container-orgd350c5d" class="outline-5">
<h5 id="orgd350c5d">Hibernate/suspend-to-disk</h5>
<div class="outline-text-5" id="text-orgd350c5d">
<div id="outline-container-org69b4f04" class="outline-5">
<h5 id="org69b4f04">Hibernate/suspend-to-disk</h5>
<div class="outline-text-5" id="text-org69b4f04">
<p>
This required setting up a swap file and setting a kernel command line parameter to refer to it, but it was easy to do. It works well. I&rsquo;ve observed the laptop auto-hibernating when the battery runs out, but it doesn&rsquo;t do this reliably, so I should probably configure it myself.
</p>
</div>
</div>
<div id="outline-container-org9345999" class="outline-5">
<h5 id="org9345999"><a href="http://guake-project.org/">Guake</a>-like transient terminal</h5>
<div class="outline-text-5" id="text-org9345999">
<div id="outline-container-org04382ed" class="outline-5">
<h5 id="org04382ed"><a href="http://guake-project.org/">Guake</a>-like transient terminal</h5>
<div class="outline-text-5" id="text-org04382ed">
<p>
Using some <code>fish</code> scripts, <code>bspwm</code>, <code>picom</code> and <code>xst</code> I rigged up a transient, transparent terminal to use for quick shell jobs. I used the scripts and config file in <a href="#org53f9855">Appendix A</a> to do this. The implementation is a bit hacky, and it&rsquo;s not impossible to break, but it serves my purposes well (and more important, it was fun to make)!
Using some <code>fish</code> scripts, <code>bspwm</code>, <code>picom</code> and <code>xst</code> I rigged up a transient, transparent terminal to use for quick shell jobs. I used the scripts and config file in <a href="#orge8dc8af">Appendix A</a> to do this. The implementation is a bit hacky, and it&rsquo;s not impossible to break, but it serves my purposes well (and more important, it was fun to make)!
</p>
</div>
</div>
<div id="outline-container-orga6cbd4d" class="outline-5">
<h5 id="orga6cbd4d">Wallpaper-setting script</h5>
<div class="outline-text-5" id="text-orga6cbd4d">
<div id="outline-container-org5c2a1d6" class="outline-5">
<h5 id="org5c2a1d6">Wallpaper-setting script</h5>
<div class="outline-text-5" id="text-org5c2a1d6">
<p>
I wrote a script to set a random wallpaper.
</p>
<div class="org-src-container">
<pre class="src src-python"><span class="org-comment-delimiter">#</span><span class="org-comment">!/usr/bin/env python3</span>
<span class="org-keyword">import</span> os
<span class="org-keyword">from</span> random <span class="org-keyword">import</span> choice
<span class="org-variable-name">pape_path</span> = os.path.expandvars(<span class="org-string">"$HOME/Pictures/Wallpapers"</span>)
<span class="org-keyword">def</span> <span class="org-function-name">set_wallpaper</span>():
<span class="org-variable-name">files</span> = os.popen(f<span class="org-string">"ls </span>{pape_path}<span class="org-string">"</span>).read().split(<span class="org-string">'\n'</span>)
<span class="org-variable-name">pape</span> = choice(files)
<span class="org-variable-name">pp</span> = os.path.join(pape_path, pape)
os.popen(f<span class="org-string">"hsetroot -full </span>{pp}<span class="org-string">"</span>)
os.popen(f<span class="org-string">"echo </span>{pp}<span class="org-string"> &gt; /tmp/wallpaper"</span>)
<span class="org-keyword">if</span> <span class="org-builtin">__name__</span> == <span class="org-string">"__main__"</span>:
set_wallpaper()
<pre class="src src-python">
</pre>
</div>
</div>
</div>
<div id="outline-container-org51e6729" class="outline-5">
<h5 id="org51e6729">Lockscreen</h5>
<div class="outline-text-5" id="text-org51e6729">
<div id="outline-container-org573ac77" class="outline-5">
<h5 id="org573ac77">Lockscreen</h5>
<div class="outline-text-5" id="text-org573ac77">
<p>
I hacked together some <a href="#org5d50302">pretty crappy code</a> to lock the screen using <code>i3lock</code>, with my wallpaper composed with a little lock icon as the background. Very overengineered.
I hacked together some <a href="#org5ec4854">pretty crappy code</a> to lock the screen using <code>i3lock</code>, with my wallpaper composed with a little lock icon as the background. Very overengineered.
</p>
<p width="60%" class="center">
@@ -353,34 +338,34 @@ Is there a better lockscreen out there that will let me set my own image as the
</div>
</div>
<div id="outline-container-org6eaec95" class="outline-5">
<h5 id="org6eaec95">TODO</h5>
<div class="outline-text-5" id="text-org6eaec95">
<div id="outline-container-org132c50e" class="outline-5">
<h5 id="org132c50e">TODO</h5>
<div class="outline-text-5" id="text-org132c50e">
</div>
<ul class="org-ul">
<li><a id="orgadc33d6"></a>Battery level notifications<br></li>
<li><a id="orgd732f57"></a>sleep-then-hibernate<br></li>
<li><a id="org0e93573"></a>Battery tuning<br></li>
<li><a id="orgd4adb46"></a>Battery level notifications<br></li>
<li><a id="org87ecca7"></a>sleep-then-hibernate<br></li>
<li><a id="orga95bf6d"></a>Battery tuning<br></li>
</ul>
</div>
</div>
</div>
<div id="outline-container-orge4f28ea" class="outline-3">
<h3 id="orge4f28ea">Impressions</h3>
<div class="outline-text-3" id="text-orge4f28ea">
<div id="outline-container-org95be02b" class="outline-3">
<h3 id="org95be02b">Impressions</h3>
<div class="outline-text-3" id="text-org95be02b">
</div>
<div id="outline-container-orga3b9087" class="outline-5">
<h5 id="orga3b9087">Build Quality</h5>
<div class="outline-text-5" id="text-orga3b9087">
<div id="outline-container-orgbf8fdf0" class="outline-5">
<h5 id="orgbf8fdf0">Build Quality</h5>
<div class="outline-text-5" id="text-orgbf8fdf0">
<p>
The laptop is made of aluminium and feels solid but light. The screen does seem pretty flimsy, though. I probably wouldn&rsquo;t want to drop this thing. It looks sleek and elegant, but pretty muted.
</p>
</div>
</div>
<div id="outline-container-org08d78a9" class="outline-5">
<h5 id="org08d78a9">Screen</h5>
<div class="outline-text-5" id="text-org08d78a9">
<div id="outline-container-org45b10f4" class="outline-5">
<h5 id="org45b10f4">Screen</h5>
<div class="outline-text-5" id="text-org45b10f4">
<p>
This is my first time ever using a high-DPI screen, and I&rsquo;m very impressed by it. Text looks unbelievably crisp and pleasant to read. I was somewhat worried about the linux high DPI situation, but I am having no issues whatsoever.
</p>
@@ -395,27 +380,27 @@ The brightness goes up quite high, but colours feel somewhat washed out at high
</div>
</div>
<div id="outline-container-org2c92f32" class="outline-5">
<h5 id="org2c92f32">Keyboard</h5>
<div class="outline-text-5" id="text-org2c92f32">
<div id="outline-container-orgc794a76" class="outline-5">
<h5 id="orgc794a76">Keyboard</h5>
<div class="outline-text-5" id="text-orgc794a76">
<p>
Framework seems to advertise their keyboard as having particularly deep travel, but it mostly just feels like any chiclet keyboard to me. Not a bad chiclet keyboard, but not that great, either. The layout is fine, but it makes me miss the thinkpad.
</p>
</div>
</div>
<div id="outline-container-orgb34d3a9" class="outline-5">
<h5 id="orgb34d3a9">Touchpad</h5>
<div class="outline-text-5" id="text-orgb34d3a9">
<div id="outline-container-org6fa74ab" class="outline-5">
<h5 id="org6fa74ab">Touchpad</h5>
<div class="outline-text-5" id="text-org6fa74ab">
<p>
I&rsquo;ve never had a decent touchpad before, so I was pleasantly surprised. I expected to miss the trackpoint on the thinkpad a lot, but this is fine, though it&rsquo;s still a step down. Pinch to zoom doesn&rsquo;t work very well, but I don&rsquo;t use that functionality a lot. I miss having dedicated mouse buttons; the clicking functionality on this touchpad works fine for me, but it&rsquo;s hard not to mess up left/middle/right click. That&rsquo;s a good incentive for me to practice relying on the mouse less, though. There&rsquo;s plenty of <a href="https://linuxtouchpad.org/">work being done</a> on the Linux touchpad experience software-side, too. It&rsquo;s a nice time to be a linux laptop user!
</p>
</div>
</div>
<div id="outline-container-org0815a7f" class="outline-5">
<h5 id="org0815a7f">Battery</h5>
<div class="outline-text-5" id="text-org0815a7f">
<div id="outline-container-orgde7f208" class="outline-5">
<h5 id="orgde7f208">Battery</h5>
<div class="outline-text-5" id="text-orgde7f208">
<p>
With the disclaimer that I haven&rsquo;t tested very intensely and I haven&rsquo;t tuned power settings very much. <br>
I seem to get about 6.5 hours of real-world use time when using Emacs and doing light web browsing. I don&rsquo;t have a good benchmark for more intensive tasks, but compiling does hit the battery pretty hard. All in all I&rsquo;m very happy with it, getting decent battery life on Linux is hard. It might be worth eventually buying a power bank for it though, for travel~
@@ -423,18 +408,18 @@ I seem to get about 6.5 hours of real-world use time when using Emacs and doing
</div>
</div>
<div id="outline-container-org9b0b9cb" class="outline-5">
<h5 id="org9b0b9cb">Expansion cards/ports</h5>
<div class="outline-text-5" id="text-org9b0b9cb">
<div id="outline-container-org86285de" class="outline-5">
<h5 id="org86285de">Expansion cards/ports</h5>
<div class="outline-text-5" id="text-org86285de">
<p>
The little expansion cards are one of Framework&rsquo;s big marketing things. I think they&rsquo;re pretty neat, though I don&rsquo;t always quite understand the way people talk about them, as &ldquo;dongle killers&rdquo;. I would find hotswapping these about equally obnoxious as carrying dongles. The idea of aftermarket expansion cards is interesting, though - these are low level, high bandwidth ports, with I think similar capabilities to the ExpressCard ports on old business laptops, but more modern with a USB-C port. I&rsquo;m looking forward to the USB4 era!
</p>
</div>
</div>
<div id="outline-container-org860fe14" class="outline-5">
<h5 id="org860fe14">Performance</h5>
<div class="outline-text-5" id="text-org860fe14">
<div id="outline-container-org0309d8d" class="outline-5">
<h5 id="org0309d8d">Performance</h5>
<div class="outline-text-5" id="text-org0309d8d">
<p>
So far I haven&rsquo;t felt limited by performance at all, the experience has been really snappy. I haven&rsquo;t thrown particularly difficult things at it, though, but that&rsquo;s fine - most of what I do on a laptop is reading, web browsing, and text editing. I played some Factorio on it and that seemed fine, but using the touchpad felt limiting so I didn&rsquo;t play very much.
</p>
@@ -442,9 +427,9 @@ So far I haven&rsquo;t felt limited by performance at all, the experience has be
</div>
</div>
<div id="outline-container-orgd823508" class="outline-3">
<h3 id="orgd823508">Closing words</h3>
<div class="outline-text-3" id="text-orgd823508">
<div id="outline-container-orgef70972" class="outline-3">
<h3 id="orgef70972">Closing words</h3>
<div class="outline-text-3" id="text-orgef70972">
<p>
Getting this laptop set up has been really fun! It&rsquo;s a good opportunity to take stock of where we&rsquo;re at. On the hardware side, I am very impressed that it&rsquo;s now possible to make a laptop that&rsquo;s this user-servicable, this well-specced and still not <i>that</i> expensive. It&rsquo;s a reminder of how much better things could be.
</p>
@@ -462,28 +447,28 @@ Personally, I&rsquo;m getting a rare chance to critically examine all the little
<div id="outline-container-org53f9855" class="outline-2">
<h2 id="org53f9855">Appendix A: Transient Terminal Sources</h2>
<div class="outline-text-2" id="text-org53f9855">
<div id="outline-container-orge8dc8af" class="outline-2">
<h2 id="orge8dc8af">Appendix A: Transient Terminal Sources</h2>
<div class="outline-text-2" id="text-orge8dc8af">
<p>
<code>togglescratch</code>
</p>
<div class="org-src-container">
<pre class="src src-fish"><span class="org-comment-delimiter">#</span><span class="org-comment">!/usr/bin/env fish</span>
<pre class="src src-fish">#!/usr/bin/env fish
<span class="org-keyword">if</span> <span class="org-keyword">test</span> ! -e /tmp/scratch_id
<span class="org-builtin">exec</span> xst -e makescratch
<span class="org-keyword">end</span>
if test ! -e /tmp/scratch_id
exec xst -e makescratch
end
<span class="org-keyword">set</span> <span class="org-variable-name">nid</span> (<span class="org-builtin">cat</span> /tmp/scratch_id)
set nid (cat /tmp/scratch_id)
<span class="org-keyword">if</span> <span class="org-keyword">test</span> -e /tmp/scratch_on
<span class="org-builtin">rm</span> /tmp/scratch_on
<span class="org-builtin">bspc</span> node <span class="org-string">$</span><span class="org-variable-name">nid</span> --to-desktop z
<span class="org-keyword">else</span>
<span class="org-builtin">touch</span> /tmp/scratch_on
<span class="org-builtin">bspc</span> node <span class="org-string">$</span><span class="org-variable-name">nid</span> --to-desktop focused --focus --state fullscreen --flag private=on
<span class="org-keyword">end</span>
if test -e /tmp/scratch_on
rm /tmp/scratch_on
bspc node $nid --to-desktop z
else
touch /tmp/scratch_on
bspc node $nid --to-desktop focused --focus --state fullscreen --flag private=on
end
</pre>
</div>
@@ -491,14 +476,14 @@ Personally, I&rsquo;m getting a rare chance to critically examine all the little
<code>makescratch</code>
</p>
<div class="org-src-container">
<pre class="src src-fish"><span class="org-comment-delimiter">#</span><span class="org-comment">!/bin/fish</span>
<span class="org-keyword">set</span> <span class="org-variable-name">nid</span> (<span class="org-builtin">xdo</span> id)
<span class="org-builtin">echo</span> <span class="org-string">$</span><span class="org-variable-name">nid</span><span class="org-negation-char"> &gt; /tmp/scratch_id</span>
<span class="org-negation-char">bspc</span> node <span class="org-string">$</span><span class="org-variable-name">nid</span> --state fullscreen --flag private=on --to-desktop focused
<span class="org-builtin">touch</span> /tmp/scratch_on
<span class="org-keyword">set</span> <span class="org-variable-name">decid</span> (<span class="org-builtin">printf</span> <span class="org-string">'%d'</span> <span class="org-string">$</span><span class="org-variable-name">nid</span>)
<span class="org-builtin">xdotool</span> set_window --name <span class="org-string">"scratchterminal"</span> <span class="org-string">$</span><span class="org-variable-name">decid</span>
<span class="org-builtin">exec</span> <span class="org-string">"$HOME/Scripts/cleanscratch"</span>
<pre class="src src-fish">#!/bin/fish
set nid (xdo id)
echo $nid &gt; /tmp/scratch_id
bspc node $nid --state fullscreen --flag private=on --to-desktop focused
touch /tmp/scratch_on
set decid (printf '%d' $nid)
xdotool set_window --name "scratchterminal" $decid
exec "$HOME/Scripts/cleanscratch"
</pre>
</div>
@@ -506,11 +491,11 @@ Personally, I&rsquo;m getting a rare chance to critically examine all the little
<code>cleanscratch</code>
</p>
<div class="org-src-container">
<pre class="src src-fish"><span class="org-comment-delimiter">#</span><span class="org-comment">!/usr/bin/env fish</span>
<pre class="src src-fish">#!/usr/bin/env fish
<span class="org-string">$</span><span class="org-variable-name">SHELL</span>
<span class="org-builtin">rm</span> /tmp/scratch_id
<span class="org-builtin">rm</span> /tmp/scratch_on
$SHELL
rm /tmp/scratch_id
rm /tmp/scratch_on
</pre>
</div>
@@ -518,20 +503,14 @@ Personally, I&rsquo;m getting a rare chance to critically examine all the little
<code>picom.conf</code>
</p>
<pre class="example">
fading = true;
#no-fading-openclose = true;
fade-delta = 5;
vsync = true;
backend="glx";
opacity-rule=["90:name = 'scratchterminal'"];
#opacity-rule=["90:class_g = 'xst-256color'"];
</pre>
</div>
</div>
<div id="outline-container-org5d50302" class="outline-2">
<h2 id="org5d50302">Appendix B: lock.py</h2>
<div class="outline-text-2" id="text-org5d50302">
<div id="outline-container-org5ec4854" class="outline-2">
<h2 id="org5ec4854">Appendix B: lock.py</h2>
<div class="outline-text-2" id="text-org5ec4854">
<div class="org-src-container">
<pre class="src src-python"><span class="org-comment-delimiter">#</span><span class="org-comment">!/usr/bin/python3</span>
<span class="org-keyword">import</span> os

View File

@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- 2022-03-23 Wed 22:21 -->
<!-- 2022-04-18 Mon 14:18 -->
<meta charset="utf-8" />
<meta name="viewport" content="width=100%, initial-scale=0.7" />
<title>Sitemap for project pages</title>
@@ -203,17 +203,15 @@
</div>
<div id="content" class="content">
<ul class="org-ul">
<li><a href="todo.html">TODO</a></li>
<li><a href="experiments.html">Experiments</a></li>
<li><a href="blogroll.html">Blogroll</a></li>
<li><a href="todo.html">TODO</a></li>
<li><a href="snippets.html">Snippets</a></li>
<li><a href="about.html">About</a></li>
<li><a href="index.html">Index</a></li>
<li><a href="snippets.html">Snippets</a></li>
<li>Posts
<ul class="org-ul">
<li><a href="posts/test.html">chuu</a></li>
<li><a href="posts/elog-1-blog.html">Emacs Log 1: This Blog</a></li>
<li><a href="posts/resources.html">Resources</a></li>
<li><a href="posts/blog-tech.html">How this blog is built</a></li>
<li><a href="posts/framework.html">Framework Laptop Review</a></li>
</ul></li>
</ul>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- 2022-04-18 Mon 12:54 -->
<!-- 2022-04-18 Mon 14:07 -->
<meta charset="utf-8" />
<meta name="viewport" content="width=100%, initial-scale=0.7" />
<title>Snippets</title>
@@ -203,13 +203,13 @@
</div>
<div id="content" class="content">
<div id="outline-container-orge59ef26" class="outline-2">
<h2 id="orge59ef26">X11</h2>
<div class="outline-text-2" id="text-orge59ef26">
<div id="outline-container-orgb361ca7" class="outline-2">
<h2 id="orgb361ca7">X11</h2>
<div class="outline-text-2" id="text-orgb361ca7">
</div>
<div id="outline-container-orgb476ad2" class="outline-3">
<h3 id="orgb476ad2">Reset xrandr</h3>
<div class="outline-text-3" id="text-orgb476ad2">
<div id="outline-container-orgab11f4b" class="outline-3">
<h3 id="orgab11f4b">Reset xrandr</h3>
<div class="outline-text-3" id="text-orgab11f4b">
<div class="org-src-container">
<pre class="src src-bash">xrandr -s <span class="org-highlight-numbers-number">0</span>
</pre>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- 2022-03-21 Mon 19:57 -->
<!-- 2022-04-18 Mon 14:18 -->
<meta charset="utf-8" />
<meta name="viewport" content="width=100%, initial-scale=0.7" />
<title>TODO</title>
@@ -203,8 +203,20 @@
</div>
<div id="content" class="content">
<div id="outline-container-orgedfa30c" class="outline-2">
<h2 id="orgedfa30c">literate dotfiles?</h2>
<div id="outline-container-org950f9ea" class="outline-2">
<h2 id="org950f9ea">literate dotfiles?</h2>
</div>
<div id="outline-container-orgfc4cc79" class="outline-2">
<h2 id="orgfc4cc79">How this blog was built</h2>
</div>
<div id="outline-container-orga0413e8" class="outline-2">
<h2 id="orga0413e8">project graveyard</h2>
</div>
<div id="outline-container-orge649f37" class="outline-2">
<h2 id="orge649f37">food thing</h2>
</div>
<div id="outline-container-orga421952" class="outline-2">
<h2 id="orga421952">fix picom.conf</h2>
</div>
</div>
<div id="postamble" class="status">

9
org/posts/blog-tech.org Normal file
View File

@@ -0,0 +1,9 @@
#+TITLE: How this blog is built
#+MACRO: modified 2022-04-18
#+DATE: <2022-04-18 Mon 14:04>
* Blog Tech
** chuu
/last modified: {{{modified}}}/

View File

@@ -1,91 +0,0 @@
#+TITLE: Emacs Log 1: This Blog
#+DATE: <2022-03-18 Fri>
* Emacs Log 1: This Blog
_/*WARNING:*/_ This blog post is still under construction!
This blog is built on top of =org-mode=!
* Appendix A: config.el snippet
#+BEGIN_SRC emacs-lisp
(require 'ox-publish)
;; Get project settings
(defun akko/blog-spec ()
"Return project settings for use with `org-publish-project-alist'."
(let* ((get-util (lambda (x)
(with-temp-buffer
(insert-file-contents (concat "~/Blog/util/"
x))
(buffer-string))))
(html-head (funcall get-util "head.html"))
(html-preamble (funcall get-util "preamble.html"))
(html-postamble (funcall get-util "postamble.html")))
`(
("pages"
:base-directory "~/Blog/org"
:base-extension "org"
:recursive t
:publishing-directory "~/Blog/html"
:publishing-function org-html-publish-to-html
:html-doctype "html5"
:html-html5-fancy t
:html-viewport ((width "100%")
(initial-scale "0.7")
(minimum-scale "")
(maximum-scale "")
(user-scalable ""))
:language "en"
:section-numbers nil
:with-toc nil
:with-date nil
:with-title nil
:with-author nil
:auto-sitemap t
:sitemap-sort-files anti-chronologically
:sitemap-format-entry
(lambda (entry style project)
(cond ((not (directory-name-p entry))
(format
"[[file:%s][%s]]\n"
entry
(org-publish-find-title entry project)))
((eq style 'tree)
(capitalize (file-name-nondirectory (directory-file-name entry))))
(t entry)))
:headline-levels 4
:html-head ,html-head
:html-preamble ,html-preamble
:html-postamble ,html-postamble)
("static"
:base-directory "~/Blog/static"
:base-extension "css\\|txt\\|jpg\\|gif\\|png"
:recursive t
:publishing-directory "~/Blog/html/static"
:publishing-function org-publish-attachment)
("blog" :components ("pages" "static")))))
(setq org-publish-project-alist (akko/blog-spec))
(defun akko/publish-blog ()
(interactive)
(setq org-publish-project-alist (akko/blog-spec))
(org-publish-all))
(defun akko/force-publish-blog ()
(interactive)
(setq org-publish-project-alist (akko/blog-spec))
(org-publish-remove-all-timestamps)
(org-publish-all))
#+END_SRC

View File

@@ -1,6 +1,6 @@
#+TITLE: Framework Laptop Review
#+DATE: <2022-03-17 Thu>
#+MACRO: modified 2022-03-21
#+MACRO: modified 2022-05-17
* My Experience with the Framework Laptop
** Ordering

81
org/posts/grocery-log.org Normal file
View File

@@ -0,0 +1,81 @@
#+TITLE: ssdfsdfs
#+MACRO: modified 2022-04-27
#+DATE: <2022-04-27 Wed 14:46>
* 09->26
** Other
| Item | Amount | Price | Category | Times | Total |
|------------------+----------+-------+------------+-------+------------|
| Toilet paper | 24 rolls | 7.39 | Other | 2 | 14.78 |
| Mayonaise | 650mL | 1.52 | Other | 1 | 1.52 |
| Curry paste | 1 jar | 2.45 | Other | 4 | 9.8 |
| Baguette | 1 | 1.29 | Bread | 6 | 7.74 |
| Hamburger buns | 4 | 1.69 | Bread | 1 | 1.69 |
| Spelt bread | 500g | 2.55 | Bread | 1 | 2.55 |
| Raisin bread | 500g | 1.99 | Bread | 1 | 1.99 |
| Croissant | 2 | 0.70 | Bread | 1 | 0.7 |
| Milk | 1L | 1.99 | Dairy | 4 | 7.96 |
| Camembert | 120g | 2.09 | Dairy | 2.5 | 5.23 |
| Creme Fraiche | 200g | 1.19 | Dairy | 1 | 1.19 |
| Goat cheese | 125g | 1.94 | Dairy | 1 | 1.94 |
| Butter | 250g | 2.99 | Dairy | 1 | 2.99 |
| Teabags | 1 | 1.99 | Drinks | 4 | 7.96 |
| Grapefruit juice | 1L | 1.65 | Drinks | 3 | 4.95 |
| Strawberries | 250g | 3.49 | Fruit | 1 | 3.49 |
| Blueberries | 125g | 2.29 | Fruit | 5 | 11.45 |
| Avocado | 2 | 2.79 | Fruit | 3 | 8.37 |
| Cranberries | 250g | 2.99 | Fruit | 2 | 5.98 |
| Mango | 1 | 1.79 | Fruit | 1 | 1.79 |
| Blackberries | 125g | 3.49 | Fruit | 1 | 3.49 |
| Carpaccio | 123g | 3.89 | Meat | 1 | 3.89 |
| Minced meat | 300g | 3.19 | Meat | 2.3 | 7.34 |
| Chicken | 275g | 3.99 | Meat | 3.2 | 12.77 |
| Hamburgers | 220g | 2.91 | Meat | 3 | 8.73 |
| Raw ham | 100g | 3.46 | Meat | 1.8 | 6.23 |
| Beef chipolata | 250g | 3.39 | Meat | 1 | 3.39 |
| Salami | 110g | 1.88 | Meat | 2 | 3.76 |
| Tuna | 120g | 2.42 | Meat | 1 | 2.42 |
| Montaignan Syrah | 750mL | 5.99 | Psych | 1 | 5.99 |
| Monster | 500mL | 1.39 | Psych | 1 | 1.39 |
| Merlot | 750mL | 4.99 | Psych | 1 | 4.99 |
| Beer | 1 bottle | 2.40 | Psych | 4 | 9.6 |
| Energy Drink | 250mL | 2.08 | Psych | 1 | 2.08 |
| Pinot Noir | 750mL | 6.99 | Psych | 3 | 20.97 |
| Cake | 450g | 2.05 | Sweets | 1 | 2.05 |
| Ben & Jerry's | 465mL | 5.39 | Sweets | 1.2 | 6.47 |
| Pudding cakes | 300g | 1.99 | Sweets | 1 | 1.99 |
| Eierkoeken | 200g | 1.73 | Sweets | 1 | 1.73 |
| Sugar donut | 1 | 0.51 | Sweets | 1 | 0.51 |
| Tomatoes | 5 | 2.89 | Vegetables | 1.3 | 3.76 |
| Rice | 1kg | 1.90 | Vegetables | 2 | 3.8 |
| Iceberg lettuce | 1 | 1.39 | Vegetables | 1 | 1.39 |
| Carrots | 1 bag | 0.99 | Vegetables | 1 | 0.99 |
| Pasta salad | 350g | 3.75 | Vegetables | 2 | 7.5 |
| Mushrooms | 200g | 1.99 | Vegetables | 1 | 1.99 |
| French fries | 750g | 1.12 | Vegetables | 1 | 1.12 |
| Haricots | 400g | 2.09 | Vegetables | 1 | 2.09 |
| Curry package | 1 | 4.99 | Vegetables | 1 | 4.99 |
|------------------+----------+-------+------------+-------+------------|
| Other: | | | | | 26.10 EUR |
| Bread: | | | | | 14.67 EUR |
| Dairy: | | | | | 19.31 EUR |
| Drinks: | | | | | 12.91 EUR |
| Fruit: | | | | | 34.57 EUR |
| Meat: | | | | | 48.53 EUR |
| Psych: | | | | | 45.02 EUR |
| Sweets: | | | | | 12.75 EUR |
| Vegetables: | | | | | 22.64 EUR |
|------------------+----------+-------+------------+-------+------------|
| Total: | | | | | 241.49 EUR |
#+TBLFM: $6=round($3 * $5, 2)
#+TBLFM: @>$>=EUR round(vsum(@2$6..@-10$6), 2)
#+TBLFM: @>>$>='(format "%0.2f EUR" (apply #'+ (cl-mapcar (lambda (num sw) (if (eq sw 'Vegetables) num 0)) '(@2$6..@-10$6) '(@2$4..@-10$4))));L
#+TBLFM: @>>>$>='(format "%0.2f EUR" (apply #'+ (cl-mapcar (lambda (num sw) (if (eq sw 'Sweets) num 0)) '(@2$6..@-10$6) '(@2$4..@-10$4))));L
#+TBLFM: @>>>>$>='(format "%0.2f EUR" (apply #'+ (cl-mapcar (lambda (num sw) (if (eq sw 'Psych) num 0)) '(@2$6..@-10$6) '(@2$4..@-10$4))));L
#+TBLFM: @>>>>>$>='(format "%0.2f EUR" (apply #'+ (cl-mapcar (lambda (num sw) (if (eq sw 'Meat) num 0)) '(@2$6..@-10$6) '(@2$4..@-10$4))));L
#+TBLFM: @>>>>>>$>='(format "%0.2f EUR" (apply #'+ (cl-mapcar (lambda (num sw) (if (eq sw 'Fruit) num 0)) '(@2$6..@-10$6) '(@2$4..@-10$4))));L
#+TBLFM: @>>>>>>>$>='(format "%0.2f EUR" (apply #'+ (cl-mapcar (lambda (num sw) (if (eq sw 'Drinks) num 0)) '(@2$6..@-10$6) '(@2$4..@-10$4))));L
#+TBLFM: @>>>>>>>>$>='(format "%0.2f EUR" (apply #'+ (cl-mapcar (lambda (num sw) (if (eq sw 'Dairy) num 0)) '(@2$6..@-10$6) '(@2$4..@-10$4))));L
#+TBLFM: @>>>>>>>>>$>='(format "%0.2f EUR" (apply #'+ (cl-mapcar (lambda (num sw) (if (eq sw 'Bread) num 0)) '(@2$6..@-10$6) '(@2$4..@-10$4))));L
#+TBLFM: @>>>>>>>>>>$>='(format "%0.2f EUR" (apply #'+ (cl-mapcar (lambda (num sw) (if (eq sw 'Other) num 0)) '(@2$6..@-10$6) '(@2$4..@-10$4))));L
/last modified: {{{modified}}}/

View File

@@ -1,4 +0,0 @@
#+TITLE: Resources
#+DATE:<2022-03-18 Fri>
#chuu

View File

@@ -1,7 +0,0 @@
#+TITLE: eheheawawawawa
#+MACRO: modified 2022-03-21
#+DATE: <2022-03-21 Mon 21:33>
* eheheawawawawa
/last modified: {{{modified}}}/

View File

@@ -7,7 +7,5 @@
- [[file:index.org][Index]]
- [[file:snippets.org][Snippets]]
- Posts
- [[file:posts/test.org][eheheawawawawa]]
- [[file:posts/elog-1-blog.org][Emacs Log 1: This Blog]]
- [[file:posts/resources.org][Resources]]
- [[file:posts/blog-tech.org][How this blog is built]]
- [[file:posts/framework.org][Framework Laptop Review]]

View File

@@ -4,3 +4,4 @@
* How this blog was built
* project graveyard
* food thing
* fix picom.conf