<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body
style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">
<p>Hi Milan,</p>
<p>I hope you don't mind me forwarding your message to the Cuis mail
list.</p>
<p>Using the mail list is important. It lets others chime in, and it
also feeds an archive of discussion for others to learn form. It
is an important part of building culture and community. Please
keep the discussion in the mail list if at all possible.</p>
<p>I'll answer in the mail list.</p>
<p>Thanks,</p>
<div class="moz-forward-container"><br>
-------- Forwarded Message --------
<table cellpadding="0" cellspacing="0" border="0"
class="moz-email-headers-table">
<tbody>
<tr>
<th valign="BASELINE" align="RIGHT" nowrap="nowrap">Subject:
</th>
<td>Re: [Cuis-dev] Blueprint – May 2026 update</td>
</tr>
<tr>
<th valign="BASELINE" align="RIGHT" nowrap="nowrap">Date: </th>
<td>Wed, 3 Jun 2026 21:03:50 +0200</td>
</tr>
<tr>
<th valign="BASELINE" align="RIGHT" nowrap="nowrap">From: </th>
<td>Milan Lajtos <a class="moz-txt-link-rfc2396E" href="mailto:milan.lajtos@me.com"><milan.lajtos@me.com></a></td>
</tr>
<tr>
<th valign="BASELINE" align="RIGHT" nowrap="nowrap">To: </th>
<td>Juan Vuletich <a class="moz-txt-link-rfc2396E" href="mailto:juan@cuis.st"><juan@cuis.st></a></td>
</tr>
</tbody>
</table>
<br>
<br>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
Hello Juan,
<div><br>
</div>
<div>thank you for your kind words. Live demo is always the best
showcase of some work. Though I will do better job at narration
next time. Personal target = zero filler words. :)</div>
<div><br>
</div>
<div>One thing that really bugs me (and I can't seem to find a
definitive answer) is the `DisplayScreen hostOSScaleFactor`
usage. Since I am designing in Figma, all pixel-sized values
(extents, insets, stroke widths, corner radii, gaps, padding,
font size, line height, etc.) have to be scaled by that factor.
Example:</div>
<div><br>
</div>
<div>```smalltalk</div>
<div>
<div>initialize</div>
<div> | s |</div>
<div> super initialize.</div>
<div> s := DisplayScreen hostOSScaleFactor.</div>
<div> cellSize := 64 * s.</div>
<div> cornerRadius := 16 * s.</div>
<div> padding := 8 * s.</div>
<div> ...</div>
</div>
<div>```</div>
<div><br>
</div>
<div>This feels very, very wrong. I would expect `world scale` (or
some other approach) to do that automatically. Hm, I'll try
that.</div>
<div><br>
</div>
<div>—</div>
<div><br>
</div>
<div>Thank you for fixing the switched hyphen and dash!</div>
<div><br>
</div>
<div>—</div>
<div><br>
</div>
<div>Gradients and blend modes: I found that blend modes are
available only via BitBlt, not Vector Engine. Are gradients and
blend modes something you think would be useful?</div>
<div><br>
</div>
<div>—</div>
<div><br>
</div>
<div>I am not going to comment on rasterizer output as I haven't
understood the pre-filtering paper yet.</div>
<div><br>
</div>
<div>—</div>
<div><br>
</div>
<div>I think code for `spanBottom` has a bug:</div>
<div><br>
</div>
<div>```smalltalk</div>
<div>
<div>!VectorEnginePlugin methodsFor: 'accessing' stamp: 'jmv
3/10/2021 10:53:54'!</div>
<div>spanBottom</div>
<div><span class="Apple-tab-span" style="white-space:pre"> </span>self</div>
<div><span class="Apple-tab-span" style="white-space:pre"> </span>primitive:
'primSpanBottom'</div>
<div><span class="Apple-tab-span" style="white-space:pre"> </span>parameters:
#().</div>
<div><br>
</div>
<div><span class="Apple-tab-span" style="white-space:pre"> </span>^(spanBottom
+ auxStrokeWidthDilatedHalf) asInteger asOop: SmallInteger.! !</div>
</div>
<div>```</div>
<div><br>
</div>
<div>Compare that to `spanRight`:</div>
<div><br>
</div>
<div>```smalltalk</div>
<div>
<div>!VectorEnginePlugin methodsFor: 'accessing' stamp: 'jmv
4/6/2021 16:13:38'!</div>
<div>spanRight</div>
<div><span class="Apple-tab-span" style="white-space:pre"> </span>self</div>
<div><span class="Apple-tab-span" style="white-space:pre"> </span>primitive:
'primSpanRight'</div>
<div><span class="Apple-tab-span" style="white-space:pre"> </span>parameters:
#().</div>
<div><br>
</div>
<div><span class="Apple-tab-span" style="white-space:pre"> </span>"Make
room not just for updated mask, but also edges (hence, +1)"</div>
<div><span class="Apple-tab-span" style="white-space:pre"> </span>^(spanRight
+ auxStrokeWidthDilatedHalf + subPixelDelta) asInteger +1
asOop: SmallInteger.! !</div>
</div>
<div>```</div>
<div><br>
</div>
<div>Bottom edge (the anti-aliased pixels) of the Dock was being
cut off, and I traced it to that method. I can't really tell if
"+1" in `spanBottom` is intentional omission or not.</div>
<div><br>
</div>
<div>—</div>
<div><br>
</div>
<div>I think that is a lot of questions for today, thank you for
taking the interest.</div>
<div><br>
</div>
<div>—</div>
<div><br>
</div>
<div>The main contribution of Blueprint should be non-code in
nature. Rather, to show that software revolution is happening
(code agents) and Smalltalk is the ideal vehicle for it. I put
together this short guide – <a
href="https://gist.github.com/mlajtos/e6f86323507ed30877b35f9f1f64fb37"
moz-do-not-send="true" class="moz-txt-link-freetext">https://gist.github.com/mlajtos/e6f86323507ed30877b35f9f1f64fb37</a> –
to bootstrap the Claude Code – Cuis bridge, so anyone can
leverage this. (Please report any issues you have with it.) I
bet real Smalltalker can do wonders with it! Think cheap massive
refactorings, automatic Smalltalk to Slang translation,
recovering borked images, easy enriching Smalltalk class
environment – new data structures, algorithms, systems, etc.</div>
<div><br>
</div>
<div>For hot-air balloon sky is the limit. Smalltalk with code
agent is more akin to space-faring rocket. Please adjust your
ambitions. :)</div>
<div><br>
</div>
<div>
<div><br>
<blockquote type="cite">
<div>Dňa 1. 6. 2026 o 15:52, Juan Vuletich
<a class="moz-txt-link-rfc2396E" href="mailto:juan@cuis.st"><juan@cuis.st></a> napísal:</div>
<br class="Apple-interchange-newline">
<div>
<div>Hi Milan,<br>
<br>
Your demo is very good. There are a lot of good ideas
for improving the UI. A video as you did is a great way
to show an UI in action and explain the concepts.<br>
<br>
But in this video you also comment on things that are
missing, buggy or simply not well understood by you. I
was tempted to use Youtube comments. But I think Youtube
comments is not a good media for technical discussion,
and this mail list is so much better. So, please, email
here so we can start one or several email threads to
discuss those issues. When doing so, keep in mind
<a class="moz-txt-link-freetext" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/GettingHelpWithCuis.md">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/GettingHelpWithCuis.md</a>
.<br>
<br>
On another topic, it would be great to integrate some of
your ideas into the base Cuis system. I really don't
know if this would be possible, though. As you created
this using code agents, I don't know if the code can be
factored into different change sets for various
features, and if those change sets could be understood
by us in order to be reviewed for integration. I also
don't know if the code would follow our style, as
described in
<a class="moz-txt-link-freetext" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/AboutCuis.md#the-philosophy-behind-cuis">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev/blob/master/Documentation/AboutCuis.md#the-philosophy-behind-cuis</a>
.<br>
<br>
This is the first time we're facing this kind of issues.
I'm sure we'll learn a lot.<br>
<br>
Thanks,<br>
<br>
On 2026-05-31 10:47 AM, Milan Lajtos via Cuis-dev wrote:<br>
<blockquote type="cite">Hello World!<br>
<br>
For past 2 weeks I have been exploring how software
agents can be paired with Smalltalk. This demo video
is a result of my findings.<br>
<br>
TL;DW: Blueprint is a rework of Cuis desktop
experience and has been done purely by code agent
directed in natural language by me. No Smalltalk code
was written by hand. I am not stopping, I have too
much fun. :)<br>
<br>
If you have any questions, I am happy to answer them.<br>
</blockquote>
<br>
-- <br>
Juan Vuletich<br>
<a class="moz-txt-link-abbreviated" href="http://www.cuis.st">www.cuis.st</a><br>
github.com/jvuletich<br>
researchgate.net/profile/Juan-Vuletich<br>
independent.academia.edu/JuanVuletich<br>
patents.justia.com/inventor/juan-manuel-vuletich<br>
<br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</body>
</html>