<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Technical-Debt on Sergio Comerón Blog</title>
		<link>https://sergiocomeron.com/blog/en/tags/technical-debt/</link>
		<description>Recent content in Technical-Debt on Sergio Comerón Blog</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
		
			<lastBuildDate>Sun, 07 Jun 2026 18:30:00 +0200</lastBuildDate>
		
			<atom:link href="https://sergiocomeron.com/blog/en/tags/technical-debt/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Technical debt, part 4: I thought I was done… and the last one still reloaded the whole page</title>
				<link>https://sergiocomeron.com/blog/en/posts/deuda-tecnica-mod-jitsi-4/</link>
				<pubDate>Sun, 07 Jun 2026 18:30:00 +0200</pubDate>
				<guid>https://sergiocomeron.com/blog/en/posts/deuda-tecnica-mod-jitsi-4/</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve caught the bug and I couldn&amp;rsquo;t stop. So, taking advantage of it being Sunday, I sat down to knock out another loose end of the plugin. And this came out.&lt;/p&gt;&#xA;&lt;p&gt;In &lt;a href=&#34;https://sergiocomeron.com/blog/en/posts/deuda-tecnica-mod-jitsi-3/&#34;&gt;part three&lt;/a&gt; I signed off saying the big refactor was &lt;em&gt;done&lt;/em&gt;: &lt;code&gt;external.php&lt;/code&gt;, &lt;code&gt;lib.php&lt;/code&gt;, the video call and &lt;code&gt;view.php&lt;/code&gt;. And it was… almost. Because while refactoring &lt;code&gt;view.php&lt;/code&gt; I left, on purpose, one loose end for later: the &lt;strong&gt;recordings table&lt;/strong&gt;. It was the last corner of the plugin still doing things like it&amp;rsquo;s 2015 —reloading the whole page every time you delete, hide or add a recording— with all the HTML of each row stitched by hand.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Technical debt, part 3: I refactored a 1,000-line view… and underneath was a query scanning the whole log table</title>
				<link>https://sergiocomeron.com/blog/en/posts/deuda-tecnica-mod-jitsi-3/</link>
				<pubDate>Sun, 07 Jun 2026 12:00:00 +0200</pubDate>
				<guid>https://sergiocomeron.com/blog/en/posts/deuda-tecnica-mod-jitsi-3/</guid>
				<description>&lt;p&gt;Third and final part of the technical-debt series on my Jitsi-for-Moodle plugin. In &lt;a href=&#34;https://sergiocomeron.com/blog/en/posts/deuda-tecnica-mod-jitsi/&#34;&gt;part 1&lt;/a&gt; I broke apart two &amp;ldquo;god files&amp;rdquo;; in &lt;a href=&#34;https://sergiocomeron.com/blog/en/posts/deuda-tecnica-mod-jitsi-2/&#34;&gt;part 2&lt;/a&gt; I took apart the 924-line video-call function. One monster remained: &lt;strong&gt;&lt;code&gt;view.php&lt;/code&gt;&lt;/strong&gt;, the page the student or teacher sees when entering the activity. 971 lines mixing everything.&lt;/p&gt;&#xA;&lt;p&gt;I refactored it with the usual recipe. But this time the refactor itself is the least of it —it&amp;rsquo;s the same pattern as the previous parts—. What was interesting was &lt;strong&gt;what showed up when I lifted the rugs&lt;/strong&gt;: a query scanning the whole site&amp;rsquo;s log table, a cache hiding it, an N+1, a bug that let you record and stream at once, and a couple of &amp;ldquo;time capsules&amp;rdquo; buried in the code.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Technical debt, part 2: &#34;moving wasn&#39;t improving&#34;, so this time I actually took it apart</title>
				<link>https://sergiocomeron.com/blog/en/posts/deuda-tecnica-mod-jitsi-2/</link>
				<pubDate>Sat, 06 Jun 2026 19:00:00 +0200</pubDate>
				<guid>https://sergiocomeron.com/blog/en/posts/deuda-tecnica-mod-jitsi-2/</guid>
				<description>&lt;p&gt;In &lt;a href=&#34;https://sergiocomeron.com/blog/en/posts/deuda-tecnica-mod-jitsi/&#34;&gt;part one&lt;/a&gt; I left you at the worst possible moment: with a lesson half-kept. The moral of that post was &lt;strong&gt;&amp;ldquo;moving isn&amp;rsquo;t improving&amp;rdquo;&lt;/strong&gt;, and I illustrated it with my worst piece of code —a nearly 924-line function that builds the video call— which I did exactly that to: I &lt;strong&gt;moved&lt;/strong&gt; it without touching the inside. It was still there, intact, spitting out HTML and some 600 lines of hand-concatenated JavaScript. Fixing it &amp;ldquo;later&amp;rdquo; was the promise.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Paying down the technical debt in my Moodle plugin: splitting two &#34;god files&#34;</title>
				<link>https://sergiocomeron.com/blog/en/posts/deuda-tecnica-mod-jitsi/</link>
				<pubDate>Fri, 05 Jun 2026 18:00:00 +0200</pubDate>
				<guid>https://sergiocomeron.com/blog/en/posts/deuda-tecnica-mod-jitsi/</guid>
				<description>&lt;p&gt;If you use &lt;strong&gt;mod_jitsi&lt;/strong&gt; and you&amp;rsquo;ve noticed it hasn&amp;rsquo;t shipped anything new lately, it&amp;rsquo;s not that I&amp;rsquo;ve shelved it — quite the opposite. These days I&amp;rsquo;m deep in the biggest technical-debt cleanup I&amp;rsquo;ve ever done on the plugin — the one that brings Jitsi video calls into Moodle — and that&amp;rsquo;s eating all the time that would normally go to new features. It&amp;rsquo;s all still on the &lt;code&gt;dev&lt;/code&gt; branch, unpublished: work in progress.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
