<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mihi/lib, branch main</title>
<subtitle>A self assessment tool for learning Latin. 
</subtitle>
<id>https://git.mssola.com/archived/mihi/atom?h=main</id>
<link rel='self' href='https://git.mssola.com/archived/mihi/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.mssola.com/archived/mihi/'/>
<updated>2026-01-29T21:50:09Z</updated>
<entry>
<title>words: allow the creation of indeclinable nouns</title>
<updated>2026-01-29T21:50:09Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-01-29T21:50:09Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/archived/mihi/commit/?id=11acc909f5c47bf669d1a992f11437018e467638'/>
<id>urn:sha1:11acc909f5c47bf669d1a992f11437018e467638</id>
<content type='text'>
Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>run: show the exercise's lessons at the end</title>
<updated>2026-01-29T21:37:03Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-01-29T21:37:03Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/archived/mihi/commit/?id=86095df8b219510bf5cfb9f5d672695bd8b889c6'/>
<id>urn:sha1:86095df8b219510bf5cfb9f5d672695bd8b889c6</id>
<content type='text'>
Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>exercises: simplify the kind</title>
<updated>2026-01-29T21:35:44Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-01-29T21:30:58Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/archived/mihi/commit/?id=b4cc152c778c9f21f1e0a151b9d29760fbbf1476'/>
<id>urn:sha1:b4cc152c778c9f21f1e0a151b9d29760fbbf1476</id>
<content type='text'>
As for now, all exercises I have follow the same pattern and there can
be multiple workflows that can fit to it. Yes, maybe in the future it
might be interesting to add other kinds of exercises, but for now I'm
good and we can keep things simple.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>Split lib.rs into multiple files</title>
<updated>2026-01-29T21:03:31Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-01-29T21:03:31Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/archived/mihi/commit/?id=ea33d92514c809a2efaa9940ce05a5765f3cb41c'/>
<id>urn:sha1:ea33d92514c809a2efaa9940ce05a5765f3cb41c</id>
<content type='text'>
Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>words: allow the creation of irregular words</title>
<updated>2026-01-29T21:03:10Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-01-29T21:03:10Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/archived/mihi/commit/?id=3980cc7c38f043c53c9811078101d7a78de3f8d1'/>
<id>urn:sha1:3980cc7c38f043c53c9811078101d7a78de3f8d1</id>
<content type='text'>
Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>init: remove database migration</title>
<updated>2026-01-29T06:34:52Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-01-29T06:34:52Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/archived/mihi/commit/?id=a9946caa0df69c7799e5909272968337453360e4'/>
<id>urn:sha1:a9946caa0df69c7799e5909272968337453360e4</id>
<content type='text'>
It never really quite worked, and it's honestly plain easier to move
in/out the backup file than trying to figure out fake migration paths.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>Ensure that the locative is singular-only unless defective</title>
<updated>2026-01-28T21:07:36Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-01-28T21:07:36Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/archived/mihi/commit/?id=4b97729533f744b92b3aa6ea85468a4c6fffd8f6'/>
<id>urn:sha1:4b97729533f744b92b3aa6ea85468a4c6fffd8f6</id>
<content type='text'>
The only case in which the locative form makes sense to be given is for
words which are actually defective and only have a plural
form (e.g. Athēnae). Other than that, it makes no sense to provide
solutions like 'domibus', which have never been attested and are weird
to think about.

As a corollary, the inflection tests have been expanded with the
examples on 'Athēnae' and 'domus', so we ensure the locative behaves as
expected.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>Move declension/conjugation IDs into enums</title>
<updated>2026-01-28T20:42:00Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-01-28T20:42:00Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/archived/mihi/commit/?id=765b569282c0494b2c7bac54d895a63b0577072a'/>
<id>urn:sha1:765b569282c0494b2c7bac54d895a63b0577072a</id>
<content type='text'>
There were quite a lot of hacks that came out of my laziness on refusing
to give inflections their own proper enums. This commit introduces this,
while also providing implementations for the traits involving SQL. This
way, moving data in and out from these enums feels more seamless.

One advantage from this move is that a lot of redundant checks are gone,
as the validation checks are performed when fetching the data. This is
one of those times in which type masturbation as encouraged by the Rust
programming language actually makes sense.

Last but not least, this conversion also allows us to perform a change
on the creation/edit of words, as suggestions can be done for
conjugations/declensions and their kinds.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>words: add the 'rel' subcommand</title>
<updated>2026-01-27T21:04:47Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-01-27T21:04:47Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/archived/mihi/commit/?id=3febb9da3e91dc11cd46f282d0edff2ea5890731'/>
<id>urn:sha1:3febb9da3e91dc11cd46f282d0edff2ea5890731</id>
<content type='text'>
This is a more general way to establish the relationship between two
words.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>words: delete all relationships on 'rm'</title>
<updated>2026-01-24T21:33:30Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-01-24T21:33:30Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/archived/mihi/commit/?id=108bc6f0446c351b421ba62367e0f4eaf6c62461'/>
<id>urn:sha1:108bc6f0446c351b421ba62367e0f4eaf6c62461</id>
<content type='text'>
When removing a word, all relationships with other words and tags should
also be cleared. Not that it would litter too much the
database (considering the DB is relatively small), but it doesn't take
too much effort to play nice here.

Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
</feed>
