<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Vinc</title>
  <subtitle>News</subtitle>
  <id>https://vinc.cc/news</id>
  <link href="https://vinc.cc/news"/>
  <link href="https://vinc.cc/news/feed.xml" rel="self"/>
  <updated>2024-02-01T01:00:00+01:00</updated>
  <author>
    <name>Vincent Ollivier</name>
  </author>
  <entry>
    <title>Reviewing January 2024</title>
    <link rel="alternate" href="https://vinc.cc/news/2024/02/01/changelog/"/>
    <id>https://vinc.cc/news/2024/02/01/changelog/</id>
    <published>2024-02-01T01:00:00+01:00</published>
    <updated>2024-02-14T09:44:33+01:00</updated>
    <author>
      <name>Vincent Ollivier</name>
    </author>
    <content type="html">&lt;h1&gt;Reviewing January 2024&lt;/h1&gt;

&lt;p&gt;Most of my free time in January was spent on &lt;a href="http://moros.cc"&gt;MOROS&lt;/a&gt;, my hobby operating
system.&lt;/p&gt;

&lt;p&gt;First I explored the idea of printing its source code on archival paper which
gave me a second reason to refactor the code to fit the lines under 80 chars.
The first reason has always been that the VGA Text Mode is limited to 80x25 in
size, but I prefer to go up to 100 or even 120 chars on the host system.&lt;/p&gt;

&lt;p&gt;It took quite a bit of work because I didn&amp;#39;t like the result of simply running
&lt;code&gt;cargo fmt&lt;/code&gt;. When I was done I wrote a small script to download all the source
code inside the OS to &lt;code&gt;/src&lt;/code&gt; in case one want to read or edit it.&lt;/p&gt;

&lt;p&gt;After that I started a serie of small features to improve the system. The first
one was adding &lt;a href="https://github.com/vinc/moros/pull/566"&gt;ANSI OSC color palette support&lt;/a&gt; to the userspace like Linux
does to avoid calling a kernel function for that. And then I added a simple but
very usefull implementation of &lt;a href="https://github.com/vinc/moros/pull/570"&gt;hashbang support&lt;/a&gt; to run scripts in &lt;code&gt;/bin&lt;/code&gt;
as if they were binaries.&lt;/p&gt;

&lt;p&gt;The rest of the time was spent buying some devices to create a Zigbee network
to monitor the home. I want to see how much electricity the house is using in
real time and control the electric heaters to heat the house in a smarter way.&lt;/p&gt;

&lt;p&gt;I already have 1-wire temperature sensors everywhere but I added some devices
with a screen to measure and display the temperature and humidity in various
rooms.&lt;/p&gt;

&lt;p&gt;I bought a couple of old but inexpensive Lenovo ThinkCentre M83 SFF computers
instead of using yet another Raspberry Pi to install &lt;a href="https://www.home-assistant.io/"&gt;Home Assistant&lt;/a&gt; in a
virtual machine. I will also test &lt;a href="https://www.proxmox.com/en/"&gt;Proxmox&lt;/a&gt; as an hypervisor. And if all
goes well I will install it on the big Dell PowerEdge R710 servers in my
homelab rack instead of Ubuntu.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Reviewing December 2023</title>
    <link rel="alternate" href="https://vinc.cc/news/2024/01/01/changelog/"/>
    <id>https://vinc.cc/news/2024/01/01/changelog/</id>
    <published>2024-01-01T01:00:00+01:00</published>
    <updated>2024-01-04T16:17:36+01:00</updated>
    <author>
      <name>Vincent Ollivier</name>
    </author>
    <content type="html">&lt;h1&gt;Reviewing December 2023&lt;/h1&gt;

&lt;p&gt;I started December by participating in the &lt;a href="https://adventofcode.com/"&gt;Advent of Code&lt;/a&gt; for the first
week until I didn&amp;#39;t have enough time before breakfast to continue. I did the
&lt;a href="https://github.com/vinc/advent-of-code"&gt;challenges&lt;/a&gt; in Ruby first with a bit of code golfing to produce short
solutions and then I rewrote some of them in &lt;a href="https://github.com/vinc/moros/pull/556"&gt;MOROS Lisp&lt;/a&gt; to improve the
language like I did last year.&lt;/p&gt;

&lt;p&gt;It was fun. I customized my boot script to start directly into the
Lisp interpreter and removed the need to load the core library manually. This
allowed me to go straight to coding after turning on the computer.&lt;/p&gt;

&lt;p&gt;The language improved significantly with the addition of a &lt;code&gt;dict&lt;/code&gt; type to
complement &lt;code&gt;list&lt;/code&gt;, a &lt;code&gt;host&lt;/code&gt; function to resolve hostnames, escape sequences
like &lt;code&gt;\e&lt;/code&gt; to print ANSI colors easily, and more!&lt;/p&gt;

&lt;p&gt;Additionally, I implemented a &lt;code&gt;hash&lt;/code&gt; command to compute the SHA256 digest of a
file to make sure I can download and copy files without errors.&lt;/p&gt;

&lt;p&gt;At the beginning of the month I also started a new project called &lt;a href="https://github.com/vinc/nyx"&gt;Nyx&lt;/a&gt; to
have a &lt;a href="https://permacomputing.net/bedrock_platform/"&gt;bedrock platform&lt;/a&gt; to build MOROS. It&amp;#39;s currently based on Alpine
Linux and provides a minimalist text-based Linux host with the same look and
feel as MOROS.&lt;/p&gt;

&lt;p&gt;After that I updated this website and changed its theme from &lt;a href="https://github.com/morhetz/gruvbox"&gt;solarized&lt;/a&gt;
to &lt;a href="https://ethanschoonover.com/solarized/"&gt;gruvbox&lt;/a&gt; that I&amp;#39;ve been using everywhere since 2019. I really like the
result.&lt;/p&gt;

&lt;p&gt;The rest of the first 3 weeks was spent on polishing a release of
&lt;a href="https://vinc.cc/news/2023/12/22/moros-0-10-2-released/"&gt;MOROS 0.10.2&lt;/a&gt; in time for the winter solstice.&lt;/p&gt;

&lt;p&gt;In the last week I took a coding break to try to see what data I could salvage
from 22 hard drives of &lt;a href="https://vinc.cc/computers/"&gt;past computers&lt;/a&gt; from the last 30 years. The oldest
drives no longer work, but most from around the year 2000 are still
surprisingly in good condition, whereas many produced after that are either
dead or full of errors.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Releasing MOROS 0.10.2</title>
    <link rel="alternate" href="https://vinc.cc/news/2023/12/22/moros-0-10-2-released/"/>
    <id>https://vinc.cc/news/2023/12/22/moros-0-10-2-released/</id>
    <published>2023-12-22T01:00:00+01:00</published>
    <updated>2023-12-22T13:40:07+01:00</updated>
    <author>
      <name>Vincent Ollivier</name>
    </author>
    <content type="html">&lt;h1&gt;Releasing MOROS 0.10.2&lt;/h1&gt;

&lt;p&gt;&lt;img src="/images/moros-0-10-2.png" alt="MOROS 0.10.2" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://moros.cc"&gt;MOROS&lt;/a&gt; is a text-based hobby operating system targeting computers with a x86-64
architecture and a BIOS. It is inspired by Unix and ITS but is closer to a
modern DOS at the moment in term of features.&lt;/p&gt;

&lt;h2&gt;What&amp;#39;s new in MOROS 0.10.2?&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Added a process page table&lt;/li&gt;
&lt;li&gt;Added a userspace memory allocator&lt;/li&gt;
&lt;li&gt;Improved the lisp interpretor&lt;/li&gt;
&lt;li&gt;Improved the documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Read the full list of changes on the
&lt;a href="https://github.com/vinc/moros/blob/v0.10.2/CHANGELOG.md"&gt;CHANGELOG&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;How to run MOROS?&lt;/h2&gt;

&lt;p&gt;The binary can be booted from USB on a computer with a BIOS or from a virtual
machine with Bochs, QEMU, or VirtualBox. Here&amp;#39;s a quick way to do it with QEMU:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;qemu-system-x86_64 -m 32 -cpu max -nic model=rtl8139 -soundhw pcspk -hda moros-v0.10.2.bin
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Read more detailed instructions in the
&lt;a href="https://github.com/vinc/moros/blob/v0.10.2/README.md"&gt;README&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Reviewing November 2023</title>
    <link rel="alternate" href="https://vinc.cc/news/2023/12/01/changelog/"/>
    <id>https://vinc.cc/news/2023/12/01/changelog/</id>
    <published>2023-12-01T01:00:00+01:00</published>
    <updated>2024-01-04T16:17:36+01:00</updated>
    <author>
      <name>Vincent Ollivier</name>
    </author>
    <content type="html">&lt;h1&gt;Reviewing November 2023&lt;/h1&gt;

&lt;p&gt;In November I mostly used my spare time to work on my hobby operating system
&lt;a href="https://github.com/vinc/moros"&gt;MOROS&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I was finally able to merge a feature adding a dedicated &lt;a href="https://github.com/vinc/moros/pull/454"&gt;page table&lt;/a&gt; to
each process that I started a year ago. And from there I merged another even
older feature adding a &lt;a href="https://github.com/vinc/moros/pull/544"&gt;userspace allocator&lt;/a&gt; with two new &lt;code&gt;ALLOC&lt;/code&gt; and &lt;code&gt;FREE&lt;/code&gt;
syscalls. Next step was a little improvement to spawn a new process from
userspace which is the first step for a &lt;a href="https://github.com/vinc/moros/pull/548"&gt;userspace shell&lt;/a&gt;. I also started
working on adding an assembler to the system.&lt;/p&gt;

&lt;p&gt;In parallel to that system work I improved the documentation, I added
hexadecimal and binary numbers support to the Lisp interpreter, and I added a
&lt;code&gt;hash&lt;/code&gt; command to compute file digests with SHA256.&lt;/p&gt;

&lt;p&gt;I also added a Gruvbox light theme to &lt;a href="http://moros.cc"&gt;moros.cc&lt;/a&gt;, the website hosting the
documentation.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Reviewing October 2023</title>
    <link rel="alternate" href="https://vinc.cc/news/2023/11/01/changelog/"/>
    <id>https://vinc.cc/news/2023/11/01/changelog/</id>
    <published>2023-11-01T01:00:00+01:00</published>
    <updated>2024-01-04T16:17:36+01:00</updated>
    <author>
      <name>Vincent Ollivier</name>
    </author>
    <content type="html">&lt;h1&gt;Reviewing October 2023&lt;/h1&gt;

&lt;p&gt;This month I finished the prototype for &lt;a href="https://geonde.com"&gt;Geonde&lt;/a&gt;, an
environmental platform for green computing that I started last month.&lt;/p&gt;

&lt;p&gt;I also created a landing page for &lt;a href="https://cloudwaste.net"&gt;CloudWaste&lt;/a&gt;, an
idea for a related green computing project to help people
&lt;a href="https://stop.wasting.cloud"&gt;stop wasting cloud resources&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;And finally I worked on a &lt;a href="https://github.com/vinc/geodate/pull/62"&gt;fix&lt;/a&gt; for
dates before 1900-01-01 on my &lt;a href="https://github.com/vinc/geocal/pull/3"&gt;lunisolar calendar&lt;/a&gt;.
I also fixed the &lt;a href="https://geodate.org"&gt;Geodate&lt;/a&gt; website that couldn&amp;#39;t be built
from source anymore.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Reviewing September 2023</title>
    <link rel="alternate" href="https://vinc.cc/news/2023/10/01/changelog/"/>
    <id>https://vinc.cc/news/2023/10/01/changelog/</id>
    <published>2023-10-01T02:00:00+02:00</published>
    <updated>2024-01-04T16:17:36+01:00</updated>
    <author>
      <name>Vincent Ollivier</name>
    </author>
    <content type="html">&lt;h1&gt;Reviewing September 2023&lt;/h1&gt;

&lt;p&gt;This month I started working on &lt;a href="https://geonde.com"&gt;Geonde&lt;/a&gt;, an environmental
platform for green computing.&lt;/p&gt;

&lt;p&gt;I&amp;#39;ve been exploring recently what I could do to help make cloud computing more
sustainable and one interesting area is carbon aware software using data from
the &lt;a href="https://geonde.com/api/electricity/emissions?countries=ch,de,es,fr,ie,it,se,uk"&gt;electricity grid&lt;/a&gt;
and &lt;a href="https://geonde.com/api/weather/forecast/paris"&gt;weather forecasts&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The prototype is pretty basic for now but it is reusing things that I coded
almost a decade ago for an &lt;a href="https://github.com/vinc/forecastfor.me"&gt;abandoned project&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;During the launch of Geonde I had to update and rebuild some of my other apps
hosted on the same server in a hurry to avoid too much downtime. I took this
as an opportunity to add a dark mode to &lt;a href="https://news.vinc.cc"&gt;News Search&lt;/a&gt;
after I updated its version of Bootstrap. I use dark mode a lot at night and
I was really missing it on this app.&lt;/p&gt;

&lt;p&gt;And finally I released a new version of &lt;a href="http://moros.cc"&gt;MOROS&lt;/a&gt; on the day of
the autumnal equinox which was the object of my &lt;a href="/news/2023/09/23/moros-0-10-1-released/"&gt;previous post&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
</feed>
