<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on Dr. Óscar Nájera</title><link>https://oscarnajera.com/post/</link><description>Recent content in Posts on Dr. Óscar Nájera</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 26 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://oscarnajera.com/post/index.xml" rel="self" type="application/rss+xml"/><item><title>E-ballot for Toastmasters speech contests</title><link>https://oscarnajera.com/2026/06/e-ballot-for-toastmasters-speech-contests/</link><pubDate>Fri, 26 Jun 2026 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2026/06/e-ballot-for-toastmasters-speech-contests/</guid><description>&lt;p&gt;I spent the last few months building and field-testing a digital ballot
system for Toastmasters speech contests, and I&amp;rsquo;m ready to talk about it in
public.&lt;/p&gt;

&lt;h2 id="the-problem"&gt;
 &lt;a class="" href="#the-problem"&gt;
 The problem
 &lt;i class="fa fa-chain" aria-hidden="true"&gt;&lt;/i&gt;
 &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Paper judging doesn&amp;rsquo;t scale. A judge fills out a ranking, a ballot counter
collects it — breaking the judge&amp;rsquo;s anonymity in the process — and the counting
team retreats to a private room to tally by hand. At small events this is a
minor inconvenience. At the joint Area contest I organized this year, expecting
a maximum of 66 contestants spread across twelve back-to-back contests hosted in
a single 10-hour venue window, manual tallying becomes the bottleneck of the
event.&lt;/p&gt;</description></item><item><title>What motivated the recent publishing spree?</title><link>https://oscarnajera.com/2025/05/what-motivated-the-recent-publishing-spree/</link><pubDate>Mon, 05 May 2025 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2025/05/what-motivated-the-recent-publishing-spree/</guid><description>&lt;p&gt;I admire people that write blog posts. Taking the time to put something out
there. I want to be like them and share too. This website receives occasional
attention, when I really want to say something. Many times, I really want and
still fail to do it. It piles on the backlog. This time I had a challenge: 8
posts within a month! About twice a week: challenging but feasible. But as
reality would have it, even with some planning I still cram everything to the
last moment. There something creative and motivating about pressure and
deadlines.&lt;/p&gt;</description></item><item><title>Working for robots</title><link>https://oscarnajera.com/2025/05/working-for-robots/</link><pubDate>Mon, 05 May 2025 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2025/05/working-for-robots/</guid><description>&lt;p&gt;I self-host some of my git repositories to keep sovereignty and independence
from large Internet corporations. Public facing repositories are for everybody,
and today that means for robots. Robots are the main consumers of my work. With
the &lt;code&gt;AI-hype&lt;/code&gt;, I wanted to have a look at what are those AI companies collecting
from my work. It is worse than everything, it is idiotically everything. They
can&amp;rsquo;t recognize, that they are parsing git repositories and use the appropriate
way of downloading them.&lt;/p&gt;</description></item><item><title>A minimalist Re-frame for ParenScript</title><link>https://oscarnajera.com/2025/05/a-minimalist-re-frame-for-parenscript/</link><pubDate>Sun, 04 May 2025 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2025/05/a-minimalist-re-frame-for-parenscript/</guid><description>&lt;p&gt;After &lt;a
 href="https://oscarnajera.com/2025/05/giving-parenscript-another-chance/"
 
 
 &gt;giving ParenScript another chance&lt;/a
&gt;
 I became hopeful of the possibilities
for front-end development in &lt;code&gt;Common Lisp&lt;/code&gt;. It is not the language it is the
tooling, but Lisp is a language that lets you develop your tooling faster. Could
I close the gap to the &lt;code&gt;ClojureScript+Reagent+Re-frame&lt;/code&gt; ecosystem? Well,
optimization is my favorite procrastination, so I might as well give it a try.&lt;/p&gt;</description></item><item><title>Giving ParenScript another chance</title><link>https://oscarnajera.com/2025/05/giving-parenscript-another-chance/</link><pubDate>Sat, 03 May 2025 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2025/05/giving-parenscript-another-chance/</guid><description>&lt;p&gt;I like programming in &lt;code&gt;Common Lisp&lt;/code&gt;. The interactive development style is a nice
experience. No matter how painful it is to have moving pieces all the time, the
programming loop is much nicer. I know that programming is getting old-fashioned
with all the AI assisting tools, so I try to enjoy it while it lasts.&lt;/p&gt;</description></item><item><title>Render checkmk's views on Emacs</title><link>https://oscarnajera.com/2025/05/render-checkmks-views-on-emacs/</link><pubDate>Sat, 03 May 2025 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2025/05/render-checkmks-views-on-emacs/</guid><description>&lt;p&gt;As demonstrated in a &lt;a
 href="https://oscarnajera.com/2025/05/query-checkmks-livestatus-with-emacs/"
 
 
 &gt;previous post&lt;/a
&gt;
, you can query &lt;code&gt;checkmk&lt;/code&gt; from &lt;code&gt;Emacs&lt;/code&gt;&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;.
Which turns it into an interface for your data. The next step is to create some
basic views of &lt;code&gt;checkmk&lt;/code&gt; to skip using its Web UI.&lt;/p&gt;
&lt;p&gt;Most of &lt;code&gt;checkmk&lt;/code&gt;&amp;rsquo;s data is tabular, most of its Web UI shows tables. With
&lt;code&gt;Emacs-29&lt;/code&gt; the traditional and limited &lt;code&gt;tabulated-list-mode&lt;/code&gt; gained an
alternative: the &lt;a
 href="https://www.gnu.org/software/emacs/manual/html_mono/vtable.html"
 
 
 target="_blank" rel="noopener"
 
 &gt;vtable&lt;/a
&gt;
 (variable pitch tables). It is way more flexible and
useful. Instead of being a major mode for a single table in the entire buffer, a
&lt;code&gt;vtable&lt;/code&gt; can show up anywhere in your buffer and you can even have many on the
same buffer.&lt;/p&gt;</description></item><item><title>Query checkmk's livestatus with Emacs</title><link>https://oscarnajera.com/2025/05/query-checkmks-livestatus-with-emacs/</link><pubDate>Fri, 02 May 2025 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2025/05/query-checkmks-livestatus-with-emacs/</guid><description>&lt;p&gt;&lt;code&gt;Checkmk&lt;/code&gt;&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; is an IT monitoring software. I used to work for them some time ago
and I still use it in my personal live. It provides a Web User Interface(UI)
with dashboards to see the status of your monitored system. The way that UI
queries they monitoring software is via the &lt;a
 href="https://docs.checkmk.com/latest/en/livestatus.html"
 
 
 target="_blank" rel="noopener"
 
 &gt;livestatus&lt;/a
&gt;
.&lt;/p&gt;</description></item><item><title>Tracking your packages with org-mode</title><link>https://oscarnajera.com/2025/05/tracking-your-packages-with-org-mode/</link><pubDate>Fri, 02 May 2025 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2025/05/tracking-your-packages-with-org-mode/</guid><description>&lt;p&gt;&lt;code&gt;Emacs&lt;/code&gt; is more than my favorite text editor, it is building material. As such,
I use it for everything I can, it&amp;rsquo;s amazing how it always steps up to the
challenge!&lt;/p&gt;
&lt;p&gt;The internet revived the postal service instead of killing it. Today, I receive
more packages than ever before. Tracking where they are doesn&amp;rsquo;t however fit my
workflow. It requires me to open websites, input the tracking id, or at least
search for the email with the link. Thus I wondered: Is there a better way to do
this in Emacs?&lt;/p&gt;</description></item><item><title>Shavian: The better English script</title><link>https://oscarnajera.com/2025/05/shavian-the-better-english-script/</link><pubDate>Thu, 01 May 2025 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2025/05/shavian-the-better-english-script/</guid><description>&lt;p&gt;English has the worst spelling I know of. It is inconsistent all the way. When
someone mispronounces a word, you might think they are avid readers, because it
might be the case they learned about the word while reading.&lt;/p&gt;
&lt;p&gt;If you listen to a word in English there is no guarantee you&amp;rsquo;ll be able to spell
it. That is certainly why English speaking countries have spelling contests, it
is not easy. Neither is it clear after you see a word, whether you&amp;rsquo;ll be able to
pronounce it.&lt;/p&gt;</description></item><item><title>Killing the Bitcoin Lightning experiment</title><link>https://oscarnajera.com/2025/01/killing-the-bitcoin-lightning-experiment/</link><pubDate>Fri, 17 Jan 2025 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2025/01/killing-the-bitcoin-lightning-experiment/</guid><description>&lt;p&gt;A while ago, I got all excited around the idea of &lt;a
 href="https://oscarnajera.com/2023/03/bitcoin-is-art/"
 
 
 &gt;Bitcoin as art&lt;/a
&gt;
. It was such a
satisfying perspective that I decided to embrace it and implement a tipping
service on the Bitcoin Testnet for this website. A fun experiment, a way to
learn something and tinker around with the technology. The best part was: it
somehow didn&amp;rsquo;t require any maintenance. It would work without further tinkering.&lt;/p&gt;</description></item><item><title>The Law by Frédéric Bastiat</title><link>https://oscarnajera.com/2023/12/bastiat-the-law/</link><pubDate>Fri, 22 Dec 2023 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2023/12/bastiat-the-law/</guid><description>&lt;p&gt;There is nothing like the filter of time. When a book from 1850 receives praise,
you know its insight is timeless and its quality undeniable. This essay
discusses what the law should be and shows the tragedy of what it has become.
The content still relevant today, reminds us of how the more things change, the
more they stay the same.&lt;/p&gt;</description></item><item><title>Upgrading this blog again</title><link>https://oscarnajera.com/2023/11/upgrading-this-blog-again/</link><pubDate>Wed, 01 Nov 2023 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2023/11/upgrading-this-blog-again/</guid><description>&lt;p&gt;Web development is the skill that irritates me the most. It has improved over
the years. The tools available today are far superior. But, I only glimpse at
better web design skills. I often times struggle to understand why some websites
look the way they do. Even with full access to their source code, replicating
them isn&amp;rsquo;t always evident. There are &lt;code&gt;HTML&lt;/code&gt; &amp;amp; &lt;code&gt;CSS&lt;/code&gt; tricks I refuse to practice
in the aim of simplifying what I imitate. That means some layouts don&amp;rsquo;t look
exactly the same.&lt;/p&gt;</description></item><item><title>Setup up a Bitcoin Lightning point of sale in Common Lisp</title><link>https://oscarnajera.com/2023/03/setup-up-a-bitcoin-lightning-point-of-sale-in-common-lisp/</link><pubDate>Thu, 30 Mar 2023 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2023/03/setup-up-a-bitcoin-lightning-point-of-sale-in-common-lisp/</guid><description>&lt;p&gt;Because I can, I recently added support for testnet Bitcoin Lightning payments
into this website. The beauty of Freedom and privacy respecting software is
that you can do anything you want with it. There are many ways to do it. You can
always use a service, provider for that, but the beauty of Bitcoin, the reason
it is valuable, is that you can do it yourself.&lt;/p&gt;</description></item><item><title>Bitcoin is art</title><link>https://oscarnajera.com/2023/03/bitcoin-is-art/</link><pubDate>Fri, 24 Mar 2023 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2023/03/bitcoin-is-art/</guid><description>&lt;p&gt;Bitcoin is this strange thing I don&amp;rsquo;t fully understand. Going down the rabbit
hole, as it is commonly known, I generally feel disappointed. Every &lt;em&gt;bitcoiner&lt;/em&gt;
I meet is a fanatic insisting that I &lt;strong&gt;buy bitcoin&lt;/strong&gt; instead of a supportive
mentor. The best buys of my life took place under guidance not pressure, thus
I&amp;rsquo;m always reluctant to listen. Why are they constantly trying to sell it to
you?&lt;/p&gt;</description></item><item><title>Why colorize terminal output when you can colorize on the reader?</title><link>https://oscarnajera.com/2022/11/why-colorize-terminal-output-when-you-can-colorize-on-the-reader/</link><pubDate>Tue, 29 Nov 2022 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2022/11/why-colorize-terminal-output-when-you-can-colorize-on-the-reader/</guid><description>&lt;p&gt;Colorful text is a must, because we are visual creatures. We process shapes and
colors way better than symbols. Confronted to a screen full of text, it is hard
to make sense of it, without meaningful coloring. I even find &lt;em&gt;pure&lt;/em&gt; text
repulsive, I don&amp;rsquo;t want to look. Command like tools like &lt;code&gt;ls&lt;/code&gt;, &lt;code&gt;grep&lt;/code&gt;, &lt;code&gt;git&lt;/code&gt;
offer colorized output, in fact I&amp;rsquo;m only able to find them useful, when their
output is colorful. Color demands attention and focuses it too.&lt;/p&gt;</description></item><item><title>Preventing the collapse of civilization</title><link>https://oscarnajera.com/2022/08/preventing-the-collapse-of-civilization/</link><pubDate>Fri, 19 Aug 2022 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2022/08/preventing-the-collapse-of-civilization/</guid><description>&lt;p&gt;I stumbled upon this talk by Jonathan Blow on YouTube and I must share it.
Civilizations flourish thanks to the technologies they invent. Yet those same
technological achievements get lost because the same civilizations that created
them fail or at least they fail to propagate them to the future. We open
ourselves to those same vulnerabilities over and over again.&lt;/p&gt;</description></item><item><title>Elliptic Curve Digital Signature Algorithm - Bitcoin &amp; Haskell</title><link>https://oscarnajera.com/2021/08/elliptic-curve-digital-signature-algorithm-bitcoin-haskell/</link><pubDate>Wed, 04 Aug 2021 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2021/08/elliptic-curve-digital-signature-algorithm-bitcoin-haskell/</guid><description>&lt;p&gt;The previous posts covered mathematical curiosities. Now we can leave that
realm, find an application and turn them into tools to work with elliptic curve
cryptography. That means finding and choosing which particular values of the
parameters bring us into a curve we can use for cryptography.&lt;/p&gt;</description></item><item><title>Elliptic Curves on Finite Fields - Bitcoin &amp; Haskell</title><link>https://oscarnajera.com/2021/07/elliptic-curves-on-finite-fields-bitcoin-haskell/</link><pubDate>Tue, 13 Jul 2021 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2021/07/elliptic-curves-on-finite-fields-bitcoin-haskell/</guid><description>&lt;p&gt;When merging the last two posts, I immediately run into serious difficulties.
Haskell&amp;rsquo;s type system just made my work harder(well my ignorance did). Until I
could come up with a solution, I could not appreciate how the strictness of the
type system actually gives flexibility.&lt;/p&gt;</description></item><item><title>Elliptic Curves - Bitcoin &amp; Haskell</title><link>https://oscarnajera.com/2021/05/elliptic-curves-bitcoin-haskell/</link><pubDate>Sun, 02 May 2021 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2021/05/elliptic-curves-bitcoin-haskell/</guid><description>&lt;p&gt;In this series of posts I&amp;rsquo;m solving the exercises of Programming Bitcoin&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;
in Haskell, I&amp;rsquo;m learning Bitcoin and Haskell in one go.&lt;/p&gt;
&lt;p&gt;To describe a point in the elliptic curve, we need four data points. \((x, y)\)
are the coordinates themselves, additionally we need the constants \((a, b)\)
that define the elliptic curve given by the equation \(y^2 = x^3 + ax +b\).
Finally, there is the special case of the point at infinity, which does not
really fit in the previous constrain. In other languages I would just describe
with an invalid or null value, in Python for example I would use the &lt;code&gt;None&lt;/code&gt;
value in both \((x, y)\) coordinates, yet in Haskell it can be beautifully
defined as an element of the type. That is certainly a killer feature of the
language, and I expect to be using it more often.&lt;/p&gt;</description></item><item><title>Finite Fields - Bitcoin &amp; Haskell</title><link>https://oscarnajera.com/2021/04/finite-fields-bitcoin-haskell/</link><pubDate>Sat, 17 Apr 2021 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2021/04/finite-fields-bitcoin-haskell/</guid><description>&lt;p&gt;Bitcoin&amp;rsquo;s price has gone crazy up, and now I&amp;rsquo;m really responsible for learning
it. I found the book Programming Bitcoin&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; by Jimmy Song, it looks good
enough to give it a try. It uses Python to teach, which is uninteresting and I
end up only skimming over it, which leads to low retention. Learning
necessitates inefficiencies, trial and error, solving problems and sharing. Thus
to learn I need to throw an extra challenge. I&amp;rsquo;m going to learn another
programming language(Haskell) to solve the book&amp;rsquo;s problems.&lt;/p&gt;</description></item><item><title>Why swim in a river at 0°C?</title><link>https://oscarnajera.com/2021/01/why-swim-in-a-river-at-0c/</link><pubDate>Sat, 09 Jan 2021 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2021/01/why-swim-in-a-river-at-0c/</guid><description>&lt;p&gt;There are plenty of reasons: Get out of your comfort zone, build character, discover your limits. There are plenty of justifications: Simply crazy, settling a bet, religious penitence/purification.&lt;/p&gt;
&lt;p&gt;All those might apply, however for me it is a CELEBRATION. A celebration of how well I&amp;rsquo;m doing nowadays. I was born in a big city, I grew up surrounded by the grayness of concrete. The river in my city was so polluted that its smell alone would keep you away. Going into nature implied a family trip, implied planning, implied getting everyone to agree and then traveling far away until we could reach a clean river, a waterfall or a lake. Only then could I jump into those clean, refreshing and relaxing waters. In those day it didn&amp;rsquo;t matter how cold they were.&lt;/p&gt;</description></item><item><title>Getting started with bitcoin</title><link>https://oscarnajera.com/2020/12/getting-started-with-bitcoin/</link><pubDate>Wed, 16 Dec 2020 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2020/12/getting-started-with-bitcoin/</guid><description>&lt;p&gt;Bitcoin is all over the news, this time with big investors pouring money
into it, a global pandemic that put the economy on hold, and governments
printing money like crazy. Price raises, it is a bubble again.&lt;/p&gt;
&lt;p&gt;Maybe it is responsible this time to at least try to learn about Bitcoin
without rushing to get it like everybody else seems to be doing again. The
only way to learn about it, benefit from it and clear the doubts from the
healthy skepticism is to test the technology by yourself. This is my
experience setting up a node.&lt;/p&gt;</description></item><item><title>Guile macros - avoiding code duplication when interfacing to notmuch</title><link>https://oscarnajera.com/2020/12/guile-macros-avoiding-code-duplication-when-interfacing-to-notmuch/</link><pubDate>Fri, 04 Dec 2020 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2020/12/guile-macros-avoiding-code-duplication-when-interfacing-to-notmuch/</guid><description>&lt;p&gt;When working on the interface to notmuch I stumbled upon the case where
iterating over messages and iterating over filenames produced the same code
structure only changing the functions being used. I hate to see code
duplication and thus I went out exploring for solutions available in Guile
to solve this issue.&lt;/p&gt;</description></item><item><title>Managing my email with Guile - interfacing to notmuch's C library</title><link>https://oscarnajera.com/2020/12/managing-my-email-with-guile-interfacing-to-notmuchs-c-library/</link><pubDate>Thu, 03 Dec 2020 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2020/12/managing-my-email-with-guile-interfacing-to-notmuchs-c-library/</guid><description>&lt;p&gt;Manually creating the bindings for a sizable C program is a lot of work,
also it is not very rewarding. I&amp;rsquo;m lazy and don&amp;rsquo;t want to do that. I looked
around for what other options I have and I was surprised about the
solution.&lt;/p&gt;</description></item><item><title>Guile's Foreign Function Interface - linking to notmuch</title><link>https://oscarnajera.com/2020/12/guiles-foreign-function-interface-linking-to-notmuch/</link><pubDate>Wed, 02 Dec 2020 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2020/12/guiles-foreign-function-interface-linking-to-notmuch/</guid><description>&lt;p&gt;On the previous post I covered how I can call external programs as new
processes and interact with their inputs or outputs. Here I will use
directly the foreign libraries written in C using &lt;a
 href="https://www.gnu.org/software/guile/manual/html_node/Foreign-Function-Interface.html"
 
 
 target="_blank" rel="noopener"
 
 &gt;Guile&amp;rsquo;s foreign function
interface&lt;/a
&gt;
.&lt;/p&gt;
&lt;p&gt;In this series of posts I record how to use Guile as a scripting language
and solve various tasks related to email work.&lt;/p&gt;</description></item><item><title>Managing my email with Guile - A shell script alternative</title><link>https://oscarnajera.com/2020/12/managing-my-email-with-guile-a-shell-script-alternative/</link><pubDate>Tue, 01 Dec 2020 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2020/12/managing-my-email-with-guile-a-shell-script-alternative/</guid><description>&lt;p&gt;Most of the pre-processing work of my emails was already solved with a
combination of a bash script, which uses the &lt;a
 href="https://notmuchmail.org/manpages/"
 
 
 target="_blank" rel="noopener"
 
 &gt;notmuch cli&lt;/a
&gt;
 and the python
package &lt;a
 href="https://github.com/afewmail/afew"
 
 
 target="_blank" rel="noopener"
 
 &gt;afew&lt;/a
&gt;
. However, I&amp;rsquo;m learning Guile and I need a real task to solve
to practice the language.&lt;/p&gt;</description></item><item><title>Attachment files in plain text accounting</title><link>https://oscarnajera.com/2020/11/attachment-files-in-plain-text-accounting/</link><pubDate>Fri, 13 Nov 2020 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2020/11/attachment-files-in-plain-text-accounting/</guid><description>&lt;p&gt;I have been using &lt;a
 href="https://www.ledger-cli.org"
 
 
 target="_blank" rel="noopener"
 
 &gt;ledger&lt;/a
&gt;
 to keep track of my expenses. It is simple, it
doesn&amp;rsquo;t interfere with my workflow, and I can edit data with my favorite
text editor Emacs, because ledger only deals with plain text files. I love
this workflow.&lt;/p&gt;</description></item><item><title>Fun with Rofi and Guile - A minimal habit tracker</title><link>https://oscarnajera.com/2020/10/fun-with-rofi-and-guile-a-minimal-habit-tracker/</link><pubDate>Thu, 15 Oct 2020 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2020/10/fun-with-rofi-and-guile-a-minimal-habit-tracker/</guid><description>&lt;p&gt;In my personal project to learn LISP, I decided to try &lt;a
 href="https://www.gnu.org/software/guile/"
 
 
 target="_blank" rel="noopener"
 
 &gt;GNU Guile&lt;/a
&gt;
. It is a
Scheme implementation and it is the official extension language of the &lt;a
 href="http://gnu.org/"
 
 
 target="_blank" rel="noopener"
 
 &gt;GNU
project&lt;/a
&gt;
. To learn, my first step is to actually use it, and my first
minimal toy project, will be a Habit tracker. There are plenty habit
trackers around, to make another one, yet this is just mine, done for my
personal joy of implementing it in a language I&amp;rsquo;m trying to learn.&lt;/p&gt;</description></item><item><title>How To Escape Poverty? - Is Your Thinking Keeping You Poor?</title><link>https://oscarnajera.com/2020/04/how-to-escape-poverty-is-your-thinking-keeping-you-poor/</link><pubDate>Sun, 19 Apr 2020 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2020/04/how-to-escape-poverty-is-your-thinking-keeping-you-poor/</guid><description>&lt;p&gt;I stumbled upon this talk by Douglas Kruger on YouTube. I decided to take
notes and write my own summary to deepen the learning experience. It
provides me with a reference for later times. Douglas Kruger mentions 8
points, I reorganized them into 5 themes.&lt;/p&gt;</description></item><item><title>Nerd Humor: English - The torture of the conqueror</title><link>https://oscarnajera.com/2019/11/nerd-humor-english-the-torture-of-the-conqueror/</link><pubDate>Fri, 29 Nov 2019 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2019/11/nerd-humor-english-the-torture-of-the-conqueror/</guid><description>&lt;p&gt;On November 16&lt;sup&gt;th&lt;/sup&gt; 2019, I held a short humorous speech at the &lt;a
 href="https://web.archive.org/web/20191128232347/https://www.toastmasters-bayern.org/en/wordstock-festival/"
 
 
 target="_blank" rel="noopener"
 
 &gt;Wordstock
festival&lt;/a
&gt;
 in Nuremberg-Germany. I never imagined getting this far, and now I
only see it as the beginning. In humor and comedy, I have always been on
the spectator side. However, this year I chose to develop myself in public
speaking and it indeed has been a long way. It all started as a personal
challenge. I began by signing up in my public speaking club &lt;a
 href="https://isar-speak.com/"
 
 
 target="_blank" rel="noopener"
 
 &gt;Isar-Speak&lt;/a
&gt;
.&lt;/p&gt;</description></item><item><title>Me as of today</title><link>https://oscarnajera.com/2019/08/me-as-of-today/</link><pubDate>Sat, 03 Aug 2019 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2019/08/me-as-of-today/</guid><description>&lt;p&gt;Hello everyone, I&amp;rsquo;m starting a new section of my life and I want to engage
on new projects. But before jumping into anything new, I want to review
where I stand and what I can tell you about myself.&lt;/p&gt;</description></item><item><title>My talk at the 18. Augsburger Linux-Infotag 2019</title><link>https://oscarnajera.com/2019/07/my-talk-at-the-18.-augsburger-linux-infotag-2019/</link><pubDate>Sun, 07 Jul 2019 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2019/07/my-talk-at-the-18.-augsburger-linux-infotag-2019/</guid><description>&lt;p&gt;I have always been a Free Software fan and I&amp;rsquo;m always happy to participate
in events where I meet like minded people. Linux days are a great
opportunity for this. They are super fun and still hold the free software
spirit about sharing your knowledge and learning from others. They are also
organized by volunteers, which deepens the nice feeling of community. I
found one of these events. The &lt;a
 href="https://www.luga.de/Aktionen/LIT-2019/"
 
 
 target="_blank" rel="noopener"
 
 &gt;18. Augsburger Linux-Infotag 2019&lt;/a
&gt;
 would take
place in the neighboring city of &lt;a
 href="https://en.wikipedia.org/wiki/Augsburg"
 
 
 target="_blank" rel="noopener"
 
 &gt;Augsburg in Germany&lt;/a
&gt;
. Since I was going
participate the company I work with proposed me if I could give a talk
about our product. Without giving much thought to it I just agreed. Dare
first to do the things then figure out the way.&lt;/p&gt;</description></item><item><title>Bornhack 2018</title><link>https://oscarnajera.com/2018/08/bornhack-2018/</link><pubDate>Sun, 26 Aug 2018 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2018/08/bornhack-2018/</guid><description>&lt;p&gt;How do you take your summer holidays? Some seek rest by laying down the sun
like an iguana warming up their blood. Just doing nothing to compensate for
the hard work over the year. I&amp;rsquo;m not against that, I do it too. But I found
a new alternative, you can go out and learn something new. Only a year ago
I discovered hacker camps, an outdoor tent camp event for hackers and
makers.&lt;/p&gt;</description></item><item><title>Forgetting - Our filter for the irrelevant</title><link>https://oscarnajera.com/2018/07/forgetting-our-filter-for-the-irrelevant/</link><pubDate>Tue, 31 Jul 2018 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2018/07/forgetting-our-filter-for-the-irrelevant/</guid><description>&lt;p&gt;I just stumbled upon this article: &lt;a
 href="https://www.quantamagazine.org/to-remember-the-brain-must-actively-forget-20180724/"
 
 
 target="_blank" rel="noopener"
 
 &gt;To Remember, the Brain Must Actively
Forget | Quanta Magazine&lt;/a
&gt;
, and it served me as quite a confirmation bias. I
always reflected why it is so hard to learn something, or remember
something. Consider, what a great super power it would be to remember it
all. The true new point of view for me here is the merit of forgetting.&lt;/p&gt;</description></item><item><title>It's not about having a backup, but being sure the backup works</title><link>https://oscarnajera.com/2018/06/its-not-about-having-a-backup-but-being-sure-the-backup-works/</link><pubDate>Tue, 05 Jun 2018 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2018/06/its-not-about-having-a-backup-but-being-sure-the-backup-works/</guid><description>&lt;p&gt;Since I discovered &lt;a
 href="https://www.borgbackup.org/"
 
 
 target="_blank" rel="noopener"
 
 &gt;BorgBackup&lt;/a
&gt;
 (short: Borg) I have felt way more confident
about my backups. Borg gives you a space efficient storage of backups, data
is saved encrypted, and you get good versioning of backups. I solved all my
previous inconveniences when just using rsync. I lacked the way to keep
track and order different versions. Compression and encryption as a great
plus even when I just keep my backups locally.&lt;/p&gt;</description></item><item><title>Participating to my first hackathon</title><link>https://oscarnajera.com/2018/05/participating-to-my-first-hackathon/</link><pubDate>Thu, 17 May 2018 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2018/05/participating-to-my-first-hackathon/</guid><description>&lt;p&gt;I&amp;rsquo;m currently looking for my next life project and to figure it out I
trying a lot of stuff. To that goal I&amp;rsquo;m getting involved in as many things
as possible. Last week, I went to the &lt;a
 href="https://www.innolabs.io/hackathonBerlin.html"
 
 
 target="_blank" rel="noopener"
 
 &gt;Innolabs healthcare hackathon in
Berlin&lt;/a
&gt;
. It was quite an awesome event and I learned a lot from it. I never
really worked on the health sector before, thus it was a nice introductory
experience.&lt;/p&gt;</description></item><item><title>Org-CV an Org export backend for CV</title><link>https://oscarnajera.com/2018/05/org-cv-an-org-export-backend-for-cv/</link><pubDate>Sun, 06 May 2018 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2018/05/org-cv-an-org-export-backend-for-cv/</guid><description>&lt;p&gt;I&amp;rsquo;m again in this time of my life where I&amp;rsquo;m looking for a new long term
project to work on. Because optimization is my favorite way of
procrastination, instead of just making a Curriculum Vitae (CV) for job
applications, I decided that I need to implement an org-mode export
backend. This backend will let me keep my CV in &lt;code&gt;org-mode&lt;/code&gt; and then export
it to \(\LaTeX\) or markdown for my website. This exporter now lives in
gitlab as &lt;a
 href="https://gitlab.com/Titan-C/org-cv"
 
 
 target="_blank" rel="noopener"
 
 &gt;org-cv&lt;/a
&gt;
 and the documentation is &lt;a
 href="https://titan-c.gitlab.io/org-cv/"
 
 
 target="_blank" rel="noopener"
 
 &gt;here&lt;/a
&gt;
.&lt;/p&gt;</description></item><item><title>A year on my cloud</title><link>https://oscarnajera.com/2018/05/a-year-on-my-cloud/</link><pubDate>Fri, 04 May 2018 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2018/05/a-year-on-my-cloud/</guid><description>&lt;p&gt;It has been a very complicated year regarding my cloud services. I started
completely unaware of the difficulties, and it has been a fun and painful
ride. The fact that there are projects aiming to provide personally
controlled cloud services is great. The fact that there is people being
paid for doing this kind of work for companies means that it ain&amp;rsquo;t that
simple to manage.&lt;/p&gt;</description></item><item><title>Visualizing a Bethe lattice</title><link>https://oscarnajera.com/2018/01/visualizing-a-bethe-lattice/</link><pubDate>Thu, 11 Jan 2018 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2018/01/visualizing-a-bethe-lattice/</guid><description>&lt;p&gt;During my PhD I always wanted to have an interactive way of plotting a nice
looking &lt;a
 href="https://en.wikipedia.org/wiki/Bethe_lattice"
 
 
 target="_blank" rel="noopener"
 
 &gt;Bethe Lattice&lt;/a
&gt;
 and particular to my work a Dimer Bethe
lattice. Because this visualization wasn&amp;rsquo;t an essential part of my research
I never investigated into it. It is enough to draw them on paper for any
practical purpose. I was then confronted with my PhD oral presentation,
great opportunity to procrastinate and get the nice unessential plots
done. They didn&amp;rsquo;t end in the final version of the presentation(again is not
the fundamental part of my work), but I wanted to share them anyway.&lt;/p&gt;</description></item><item><title>Git diff images and pdfs</title><link>https://oscarnajera.com/2017/11/git-diff-images-and-pdfs/</link><pubDate>Mon, 13 Nov 2017 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2017/11/git-diff-images-and-pdfs/</guid><description>&lt;p&gt;Git is a fantastic tool to version control code. And the advantages of
version controlling my work are so evident that I want to version control
everything else I do besides code. Most of my work consists of editing text
files, and I have even forced my workflow into text files just to be able
to version control more of it. Thus, I keep track of my source code,
org-mode notes and then some \(\LaTeX\) files.&lt;/p&gt;</description></item><item><title>Moving to Hugo and GitLab pages</title><link>https://oscarnajera.com/2017/11/moving-to-hugo-and-gitlab-pages/</link><pubDate>Wed, 01 Nov 2017 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2017/11/moving-to-hugo-and-gitlab-pages/</guid><description>&lt;p&gt;I&amp;rsquo;m guilty of having this online blog and not writing on it. I confess that
working on its looks and internals is way more fun for me than actually writing
some words in plain English for everyone to read. That however misses the point,
because it is the blog post that justify the blog, not its internals.&lt;/p&gt;</description></item><item><title>American Physical Society March Meeting 2017</title><link>https://oscarnajera.com/2017/03/american-physical-society-march-meeting-2017/</link><pubDate>Mon, 20 Mar 2017 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2017/03/american-physical-society-march-meeting-2017/</guid><description>&lt;p&gt;This March I had the opportunity to go to the American Physical Society
March Meeting in New Orleans. Since everyone gets a time slot for a talk, I
got my chance too. It was scheduled too early and I didn&amp;rsquo;t enjoy a big
audience which lowered my stress levels. It was the first day so that I
could enjoy the rest of my time talking with other people instead of
stressing about my talk.&lt;/p&gt;</description></item><item><title>The right dictionary</title><link>https://oscarnajera.com/2017/01/the-right-dictionary/</link><pubDate>Sun, 15 Jan 2017 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2017/01/the-right-dictionary/</guid><description>&lt;p&gt;I just found a post on
using
&lt;a
 href="http://mbork.pl/2017-01-14_I%27m_now_using_the_right_dictionary"
 
 
 target="_blank" rel="noopener"
 
 &gt;the right dictionary&lt;/a
&gt;
 and
I immediately had to review its
reference:
&lt;a
 href="http://jsomers.net/blog/dictionary"
 
 title="You’re probably using the wrong dictionary"
 
 
 target="_blank" rel="noopener"
 
 &gt;You’re probably using the wrong dictionary by James Somers&lt;/a
&gt;
. I
don&amp;rsquo;t regret it. The core message is that we shall not only use
dictionaries to find the meaning of words we don&amp;rsquo;t know, but to use
them to enrich our prose. I never considered there would be such a
dictionary that allows for such kind task. &lt;a
 href="http://jsomers.net/blog/dictionary"
 
 title="You’re probably using the wrong dictionary"
 
 
 target="_blank" rel="noopener"
 
 &gt;James&lt;/a
&gt;
 presents
the Webster&amp;rsquo;s Revised Unabridged Dictionary, unfortunately that link
is broken. Nevertheless he provides a link to download
the &lt;a
 href="https://s3.amazonaws.com/jsomers/dictionary.zip"
 
 
 target="_blank" rel="noopener"
 
 &gt;dictionary&lt;/a
&gt;
, it a standard format for dictionaries.&lt;/p&gt;</description></item><item><title>EuroScipy 2016</title><link>https://oscarnajera.com/2016/08/euroscipy-2016/</link><pubDate>Tue, 30 Aug 2016 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2016/08/euroscipy-2016/</guid><description>&lt;p&gt;Sphinx-Gallery is an amazing project, and I got to talk about it in the
EuroScipy 2016. Which is great for the experience&lt;/p&gt;
&lt;p&gt;Here I embed the presentation for convenience.&lt;/p&gt;
&lt;div style="padding-bottom: 80%;position:relative;"&gt;
&lt;iframe src="https://titan-c.github.io/sphinx-gallery-slides/" width="100%" height="100%" style="position:absolute;"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;You can find the full screen version of the presentation at:&lt;/p&gt;</description></item><item><title>Choosing a text editor to match my workflow</title><link>https://oscarnajera.com/2015/12/choosing-a-text-editor-to-match-my-workflow/</link><pubDate>Sun, 06 Dec 2015 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2015/12/choosing-a-text-editor-to-match-my-workflow/</guid><description>&lt;p&gt;TL;DR Emacs is the way to go&lt;/p&gt;
&lt;p&gt;Optimization is my way of procrastination. This time it is about
getting a decent text editor. I am at the point where it is just
annoying that all my text is getting scattered between different
editors and that many times I have to open my same files under
different editors to get what I need done.&lt;/p&gt;</description></item><item><title>Using Cython in real case example</title><link>https://oscarnajera.com/2015/04/using-cython-in-real-case-example/</link><pubDate>Tue, 07 Apr 2015 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2015/04/using-cython-in-real-case-example/</guid><description>&lt;p&gt;&lt;code&gt;Python&lt;/code&gt; has become my preferred language when it comes to programing. It is so
simple to import from its vast library of packages and then build upon them to
get things working. Yet, at some point, when all the design phase is over, and
the software has to perform it is so slow.&lt;/p&gt;</description></item><item><title>Using a Framework for web development</title><link>https://oscarnajera.com/2015/02/using-a-framework-for-web-development/</link><pubDate>Sun, 15 Feb 2015 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2015/02/using-a-framework-for-web-development/</guid><description>&lt;p&gt;This comes after an old idea, that has been bugging me in the last years: &amp;ldquo;I
can&amp;rsquo;t do everything myself anymore, there is just no time for such thing&amp;rdquo;.
I&amp;rsquo;m not a specialist in everything, I chose to focus long ago in physics.
Thus, for all those web development things I can&amp;rsquo;t do them on my own anymore. I
have to use framework and templates.&lt;/p&gt;</description></item><item><title>Website redo and blog migration</title><link>https://oscarnajera.com/2014/10/website-redo-and-blog-migration/</link><pubDate>Sun, 12 Oct 2014 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2014/10/website-redo-and-blog-migration/</guid><description>&lt;p&gt;Today my website experienced a complete redo with a new design. The previous
presentation was established to mimic my blogger site. That required a great
amount of effort because I like simple things and to simplify the blogger theme
was quite challenging, I not always get CSS do what I want. Also the web
site could be seen in web browser but gave already problems in mobile phone
browsers, and doing the translation of the blogger site version for mobiles was
an unwanted challenge.&lt;/p&gt;</description></item><item><title>Third Post</title><link>https://oscarnajera.com/2013/09/third-post/</link><pubDate>Tue, 10 Sep 2013 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2013/09/third-post/</guid><description>&lt;p&gt;I&amp;rsquo;ll aim at not counting mi posts for future releases of content. But for now, since this look more like biographical notes of my life I can&amp;rsquo;t find better titles for the posts. It&amp;rsquo;s also because I&amp;rsquo;m not packing just one subject but some history of my live in the last time.&lt;/p&gt;</description></item><item><title>Second Post</title><link>https://oscarnajera.com/2013/08/second-post/</link><pubDate>Thu, 01 Aug 2013 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2013/08/second-post/</guid><description>&lt;p&gt;On my first post after blog opening, I offered to write as often as possible to record my learning and share ut. Unfortunately, even for me, it has not happened. This is the second post. That does not mean, I spend my time without getting new knowledge. It means instead that I still need to practice about this blogging task and discipline myself to it. Certainly the lack of monetary income hinders me from publishing. Hope to change this, and that it doesn&amp;rsquo;t take other many months for the third post.&lt;/p&gt;</description></item><item><title>Start now</title><link>https://oscarnajera.com/2012/10/start-now/</link><pubDate>Sat, 13 Oct 2012 00:00:00 +0000</pubDate><guid>https://oscarnajera.com/2012/10/start-now/</guid><description>&lt;p&gt;This is the first of many posts to come. I don&amp;rsquo;t now how often I will publish new information, but I make a try to write about things I have done and learned of often as possible.&lt;/p&gt;
&lt;p&gt;Right now this is just a test, on how blogger works. I will try to merge the design with my website for an unified look. I&amp;rsquo;m not a designer so my website is ugly, but with time, effort and helping comments I will make it good looking.&lt;/p&gt;</description></item></channel></rss>