-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfeed.xml
More file actions
51 lines (51 loc) · 21.8 KB
/
feed.xml
File metadata and controls
51 lines (51 loc) · 21.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>EndBASIC</title><link>https://www.endbasic.dev/</link><description>Recent content on EndBASIC</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Fri, 11 Jul 2025 07:20:00 -0700</lastBuildDate><atom:link href="https://www.endbasic.dev/feed.xml" rel="self" type="application/rss+xml"/><item><title>EndBOX DIY kit now available</title><link>https://www.endbasic.dev/2025/07/endbox-diy-kit.html</link><pubDate>Fri, 11 Jul 2025 07:20:00 -0700</pubDate><guid>https://www.endbasic.dev/2025/07/endbox-diy-kit.html</guid><description><figure>
<img src="https://www.endbasic.dev/images/2025-07-11-endbox-diy-kit.jpg" width="100%" />
<figcaption>Components to build the EndBOX I and the assembled EndBOX I Micro.</figcaption>
</figure>
<p>About a month ago, I officially <a href="https://www.endbasic.dev/2025/06/unveiling-the-endbox.html">unveiled the EndBOX</a>: a retro-style micro-computer designed to run the EndBOX OS. And what is the EndBOX OS, you ask? It&rsquo;s a small NetBSD system engineered to launch you into an EndBASIC interpreter as fast as possible.</p>
<p>Today, I&rsquo;m excited to announce the DIY guide to build your very own EndBOX and the first official disk images of the EndBOX OS!</p></description><enclosure url="https://www.endbasic.dev/images/2025-07-11-endbox-diy-kit.jpg" length="600000" type="image/jpeg"/></item><item><title>Weekly progress reports</title><link>https://www.endbasic.dev/2025/06/weekly-progress-reports.html</link><pubDate>Sun, 22 Jun 2025 13:45:00 -0700</pubDate><guid>https://www.endbasic.dev/2025/06/weekly-progress-reports.html</guid><description><p>Hello EndBASIC followers, and a warm welcome to everyone who joined us after the EndBOX unveiling!</p>
<p>A big part of <a href="https://www.endbasic.dev/2025/06/unveiling-the-endbox.html">the previous announcement</a>, which might have seemed premature since the EndBOX isn&rsquo;t actually available yet, was to gauge interest in the project and determine whether building the EndBOX for public use is worthwhile. The response so far has been mixed: there has been significant news coverage, which tells me people are curious and excited to explore it, but conversions haven&rsquo;t quite matched that enthusiasm enough to justify actually building the box&hellip; yet.</p>
<p>So, let&rsquo;s spice things up a little by launching the first perk promised in the <a href="https://buymeacoffee.com/jmmv">Buy Me A Coffee</a> sponsorship tiers:</p>
<blockquote>
<p><a href="https://buymeacoffee.com/jmmv/posts"><strong>Weekly progress reports</strong></a>&mdash;exclusive to supporters!</p></blockquote></description></item><item><title>Unveiling the EndBOX</title><link>https://www.endbasic.dev/2025/06/unveiling-the-endbox.html</link><pubDate>Fri, 06 Jun 2025 10:00:00 -0700</pubDate><guid>https://www.endbasic.dev/2025/06/unveiling-the-endbox.html</guid><description><figure>
<video width="100%" controls autoplay muted>
<source src="https://www.endbasic.dev/images/2025-06-06-endbox-boot.mp4" type="video/mp4" />
</video>
</figure>
<p>Remember when turning a computer on meant instantly jumping into code? No bloat, no distractions&mdash;just you and a prompt? That&rsquo;s the experience I&rsquo;ve been working to bring back with the EndBOX: a small, resilient, nostalgia-packed, all-screen computer that boots straight into the retro-inspired EndBASIC environment you already know.</p>
<p>And today, six months after its inception, I&rsquo;m excited to formally show you the first working prototypes&mdash;though they are still rough and need refinement. Let&rsquo;s dive into the goals for the EndBOX and what it could become with your help.</p></description><enclosure url="https://www.endbasic.dev/images/2025-06-06-endbox-pair.jpg" length="608958" type="image/jpeg"/></item><item><title>New online projects gallery</title><link>https://www.endbasic.dev/2025/05/new-gallery.html</link><pubDate>Sun, 04 May 2025 07:00:00 -0700</pubDate><guid>https://www.endbasic.dev/2025/05/new-gallery.html</guid><description><p>Back in 2021, the distinguishing feature of the then-current <a href="https://www.endbasic.dev/2021/07/endbasic-0.7.html">EndBASIC 0.7</a> release was that it was &ldquo;cloud-ready&rdquo;: I created a file-sharing service and integrated it with EndBASIC so that you all had a mechanism to publish your creations with others.</p>
<p>It then took the arrival of <a href="https://www.endbasic.dev/2022/06/endbasic-0.9.html">EndBASIC 0.9</a>, which wasn&rsquo;t released until a year later, to have the ability to automatically launch shared projects via an specially-crafted URL. But even with that feature, projects written and shared from within EndBASIC were stuck in a pretty obscure garden. Nobody was able to discover them unless they signed up for an EndBASIC account and used the command line interface to inspect the cloud, or unless you explicitly shared those URLs somehow. A&hellip; very tall order.</p>
<p>The situation changes today as I have modified <a href="https://www.endbasic.dev/gallery.html">the Gallery section of the EndBASIC website</a> to display a dynamic view of projects. Visit it now to have some fun or read on for more details on how this unfolded!</p></description></item><item><title>EndBASIC 0.11: Functions, LCDs, and bytecode</title><link>https://www.endbasic.dev/2024/07/endbasic-0.11.html</link><pubDate>Fri, 19 Jul 2024 18:30:00 -0700</pubDate><guid>https://www.endbasic.dev/2024/07/endbasic-0.11.html</guid><description><p>After a year-and-a-half long hiatus, I am pleased to announce that EndBASIC 0.11.0 is now available! 🥳</p>
<p>This release marks a significant milestone because it addresses <strong><em>the</em></strong> top feature request from you all, namely the ability to define custom functions and subroutines. But it also includes other goodies such as support for an LCD console, a shiny new disassembler, and a faster execution engine.</p></description></item><item><title>New blog and a call for beta-testing</title><link>https://www.endbasic.dev/2024/07/new-blog.html</link><pubDate>Fri, 05 Jul 2024 12:35:00 -0700</pubDate><guid>https://www.endbasic.dev/2024/07/new-blog.html</guid><description><p>Dear EndBASIC enthusiasts!</p>
<p>In preparation for the imminent 0.11 release, which needs some beta-testing right now, I have created a brand-new &ldquo;blog&rdquo; section in the EndBASIC website.</p></description></item><item><title>Porting the EndBASIC console to an LCD</title><link>https://www.endbasic.dev/2024/04/endbasic-st7735s.html</link><pubDate>Fri, 26 Apr 2024 13:30:00 -0700</pubDate><guid>https://www.endbasic.dev/2024/04/endbasic-st7735s.html</guid><description><p>Hello again Blog System/5 and sorry for the radio silence for the last couple of months. I had been writing too much in here and neglecting my side projects so I <em>needed</em> to get back to them. And now that I&rsquo;ve made significant progress on cool new features for <a href="https://www.endbasic.dev/">EndBASIC</a>, it&rsquo;s time to write about them a little!</p>
<p>One of the defining characteristics of EndBASIC is its hybrid console: what looks like a simple text terminal at first glance can actually render overlapping graphics and text <em>at the same time</em>. This is a feature that I believe is critical to simplify learning and it first appeared with <a href="https://www.endbasic.dev/2021/11/endbasic-0.8.html">the 0.8 release</a> back in 2021.</p></description><enclosure url="https://www.endbasic.dev/images/2024-04-26-endbasic-st7735s-editor.jpg" length="0" type="image/jpeg"/></item><item><title>BASIC parsing difficulties in EndBASIC</title><link>https://www.endbasic.dev/2023/01/endbasic-parsing-difficulties.html</link><pubDate>Fri, 13 Jan 2023 06:00:00 -0700</pubDate><guid>https://www.endbasic.dev/2023/01/endbasic-parsing-difficulties.html</guid><description>The original BASIC parser in EndBASIC 0.1 was very rudimentary and it stayed pretty much unmodified until the 0.10 release last month. This release brought major changes to the parser to support new features, but it wasn&rsquo;t easy to implement them. In this post, I want to look into various difficulties that arose implementing certain BASIC constructs in EndBASIC. Overcoming these difficulties was difficult, but it was also fascinating because it gave me a glimpse of the design choices that the original BASIC designers must have faced. Capturing these ah-ha moments in a post is also tricky, but I&rsquo;ll try anyway.</description></item><item><title>EndBASIC 0.10: Core language, evolved</title><link>https://www.endbasic.dev/2022/12/endbasic-0.10.html</link><pubDate>Tue, 27 Dec 2022 16:30:00 +0100</pubDate><guid>https://www.endbasic.dev/2022/12/endbasic-0.10.html</guid><description><p>After three months of early-morning hacking, I&rsquo;m pleased to announce that EndBASIC 0.10 is now available&mdash;right on time for some holiday-time experimentation!</p>
<p>This release marks a <em>huge</em> milestone because it makes the language usable for real-world development.</p>
<p>You see, when I started this project over two years ago, I wrote a rudimentary interpreter for something that resembled BASIC and then launched EndBASIC 0.1. Since then, I have been piling onto those insufficient foundations by adding flashy features such as <a href="https://www.endbasic.dev/2020/11/endbasic-0.3.html">a web interface</a>, <a href="https://www.endbasic.dev/2021/07/endbasic-0.7.html">a cloud file sharing service</a>, and <a href="https://www.endbasic.dev/2021/11/endbasic-0.8.html">a hybrid text/graphics console</a>. These features have been well-received in every demo I&rsquo;ve given but&hellip; the feedback that always came back was the same: &ldquo;<em>Give me some sort of functions or subroutines!</em>&rdquo;, or &ldquo;<em>This is no BASIC without <code>GOTO</code>!</em>&rdquo;.</p>
<p>And these criticisms were right. Trying to write any sort of non-trivial program in EndBASIC was a daunting and frustrating experience. I had tried to simplify coding to the foundations of structured programming, but without a way to perform unstructured jumps (aka go-tos) or define custom functions&hellip; it was impossible to factor out common code, which is a need for the vast majority of programs that exceed a screenful of text. There were also usability deficits such as the lack of line numbers in error messages, which made it incredibly difficult to debug any failing program.</p>
<p>The situation had to change, and change it has in EndBASIC 0.10.</p></description></item><item><title>From AST to bytecode execution in EndBASIC</title><link>https://www.endbasic.dev/2022/11/endbasic-bytecode.html</link><pubDate>Tue, 22 Nov 2022 06:50:00 -0700</pubDate><guid>https://www.endbasic.dev/2022/11/endbasic-bytecode.html</guid><description><p>Since its inception two years ago, the EndBASIC interpreter has been using an AST-based execution
engine. And during all this time, people have mocked the language for not allowing <code>10 GOTO 10</code>.
Well, fear not: the upcoming 0.10 release has full support for <code>GOTO</code> and <code>GOSUB</code>, features that
were made possible by moving to a bytecode-based interpreter. Let&rsquo;s take a peek at what the
problems were and how I addressed them.</p></description></item><item><title>EndBASIC 0.9: Run shared demos easily</title><link>https://www.endbasic.dev/2022/06/endbasic-0.9.html</link><pubDate>Sun, 05 Jun 2022 17:20:00 -0700</pubDate><guid>https://www.endbasic.dev/2022/06/endbasic-0.9.html</guid><description><p>It is with great pleasure that I announce the release of EndBASIC 0.9.0 😎️.</p>
<p>The major feature in this new release is the ability to <strong>launch publicly-shared files via a click of a URL</strong> without having to create an account first. Here, try running my <a href="https://repl.endbasic.dev/?run=jmmv/bounce.bas"><code>jmmv/bounce.bas</code></a> or <a href="https://repl.endbasic.dev/?run=jmmv/paint.bas"><code>jmmv/paint.bas</code></a> demos in your browser, now!</p></description></item><item><title>EndBASIC 0.8: Now, with graphics!</title><link>https://www.endbasic.dev/2021/11/endbasic-0.8.html</link><pubDate>Thu, 11 Nov 2021 09:45:00 -0800</pubDate><guid>https://www.endbasic.dev/2021/11/endbasic-0.8.html</guid><description><p>Graphics support has finally landed in EndBASIC and, with that, the 0.8 release is finally here.</p>
<p>This release marks a huge milestone in the development of EndBASIC. Supporting graphics is something I&rsquo;ve had in mind since the very beginning but had been procrastinating on until a couple of months ago. I feared everything that would be involved in delivering this feature, and to be fair, I was right: getting the desktop console to work on all platforms, and especially getting it to work in CI for automated testing, was tedious. But it&rsquo;s done now.</p></description></item><item><title>EndBASIC 0.7: Hello, cloud!</title><link>https://www.endbasic.dev/2021/07/endbasic-0.7.html</link><pubDate>Sat, 03 Jul 2021 16:45:00 -0700</pubDate><guid>https://www.endbasic.dev/2021/07/endbasic-0.7.html</guid><description><p>Several months have passed since the last EndBASIC release and, since then, you might have seen me talk nonstop about an &ldquo;EndBASIC service&rdquo; in social media&hellip; which has sounded like vaporware. That changes today.</p>
<p>After about four months of work, I am ecstatic to announce that EndBASIC 0.7 is here. And these haven&rsquo;t been four months of idle time. No, no, no. It has taken four months of my scarce free time to deliver this because 0.7 is a humongous release on various fronts.</p></description></item><item><title>EndBASIC 0.6 release announcement</title><link>https://www.endbasic.dev/2021/02/endbasic-0.6.html</link><pubDate>Fri, 19 Feb 2021 06:30:00 -0800</pubDate><guid>https://www.endbasic.dev/2021/02/endbasic-0.6.html</guid><description><p>After a very active month of development since the <a href="https://www.endbasic.dev/2021/01/endbasic-0.5.html">0.5 announcement</a>, it is time to welcome EndBASIC 0.6!</p>
<p>This new 0.6 release is super-exciting for three reasons:</p>
<ul>
<li>preliminary GPIO support in the standard library specifically tailored to the Raspberry Pi;</li>
<li>multidimensional array support in the language; and</li>
<li>availability of binary releases for the most common platforms.</li>
</ul>
<p>You can dive right in by:</p>
<ul>
<li>visiting <a href="https://repl.endbasic.dev/">https://repl.endbasic.dev/</a> for an interactive session,</li>
<li>reading more about the project at <a href="https://www.endbasic.dev/">https://www.endbasic.dev/</a>, or</li>
<li>downloading and installing any of the new <a href="https://github.com/endbasic/endbasic/releases/tag/endbasic-0.6.0">prebuilt binaries</a>.</li>
</ul>
<p>But stick around and continue reading if you are interested in many more details about these major changes 😉</p></description></item><item><title>Embedding EndBASIC into a (Rust) program</title><link>https://www.endbasic.dev/2021/01/embedding-endbasic.html</link><pubDate>Tue, 26 Jan 2021 07:20:00 -0800</pubDate><guid>https://www.endbasic.dev/2021/01/embedding-endbasic.html</guid><description>One thing that bothers me quite a lot about various language implementations is that the core of their interpreter isn&rsquo;t clearly separate from their standard library. This makes it hard to embed those interpreters into other programs because it&rsquo;s not obvious how to limit their side-effects and because the interpreter dependency can be heavy. In this post, we will see how EndBASIC&rsquo;s design tries hard to keep the core as small as possible, and we will see some examples on how to use EndBASIC from Rust and vice versa.</description></item><item><title>EndBASIC 0.5 release announcement</title><link>https://www.endbasic.dev/2021/01/endbasic-0.5.html</link><pubDate>Sun, 24 Jan 2021 08:00:00 -0800</pubDate><guid>https://www.endbasic.dev/2021/01/endbasic-0.5.html</guid><description>A month has passed since the 0.4.0 announcement so it is about time to say hello to yet another EndBASIC release because 0.5.0 is here! So, what&rsquo;s new? Not much&hellip; unless you look under the covers, in which case a <em>ton</em> has changed. About 30% of the codebase has been affected in one way or another to improve general quality, so read on to see how.</description></item><item><title>EndBASIC 0.4 release announcement</title><link>https://www.endbasic.dev/2020/12/endbasic-0.4.html</link><pubDate>Fri, 25 Dec 2020 19:30:00 -0800</pubDate><guid>https://www.endbasic.dev/2020/12/endbasic-0.4.html</guid><description><p>About a month ago and after a long hiatus, I <a href="https://www.endbasic.dev/2020/11/endbasic-0.3.html">published EndBASIC 0.3</a> and the adrenaline rush that came with it got my wheels spinning again full-steam ahead. So here I am today, ready to announce the 0.4 release. But&hellip; &ldquo;what could have possibly changed in just a month of someone&rsquo;s free time&rdquo;, you wonder? Enough, actually!</p>
<p>EndBASIC 0.4 is the release that fulfills my original goal of being able to run a &ldquo;guess the number&rdquo; game. The &ldquo;only&rdquo; change needed after 0.3 to make this possible was the addition of random numbers, but these in turn required adding function calls to back <code>RND()</code> and also supporting floating point numbers because that&rsquo;s what this function is supposed to return.</p></description></item><item><title>EndBASIC 0.3 is here</title><link>https://www.endbasic.dev/2020/11/endbasic-0.3.html</link><pubDate>Sun, 29 Nov 2020 12:30:00 -0800</pubDate><guid>https://www.endbasic.dev/2020/11/endbasic-0.3.html</guid><description><p>After a 6-month long hiatus caused by me <a href="https://jmmv.dev/2020/10/bye-google-hi-microsoft.html">hunting and changing jobs and cities</a>, I am pleased to announce the release of EndBASIC 0.3! The Thanksgiving break has been as fruitful as I had hoped 😁</p>
<p>There are two major changes in this release.</p>
<ol>
<li>
<p>The first is the official debut of the <strong>web-based interface</strong>. I <a href="https://www.endbasic.dev/2020/05/bridging-the-web-gap-endbasic.html">introduced this months ago</a> and have had it running on a &ldquo;push on green&rdquo; model, which means that the web deployment of EndBASIC is always tracking Git <code>HEAD</code>. This has made formal releases irrelevant which is, in part, why 0.3 is so far behind 0.2. But&hellip; I do believe in formal releases so I&rsquo;m hoping to put some effort and make the web UI track releases instead and then use the &ldquo;push on green&rdquo; flow only for a preview site.</p></description></item><item><title>Bridging the web gap in EndBASIC</title><link>https://www.endbasic.dev/2020/05/bridging-the-web-gap-endbasic.html</link><pubDate>Sat, 30 May 2020 08:50:00 -0400</pubDate><guid>https://www.endbasic.dev/2020/05/bridging-the-web-gap-endbasic.html</guid><description><p>After a ton of work, a lot of which was unexpected, I am ecstatic to announce that EndBASIC is now a reality on the web! The whole language interpreter can now run as a fully client-side web app on a computer, on a tablet&hellip; and even on a phone. Yes: the whole thing, which is written in Rust (94%), works in a modern browser with just a tiny bit of JavaScript glue (1%).</p></description></item><item><title>EndBASIC 0.2.0 is here</title><link>https://www.endbasic.dev/2020/05/endbasic-0.2.0.html</link><pubDate>Thu, 07 May 2020 06:30:00 -0400</pubDate><guid>https://www.endbasic.dev/2020/05/endbasic-0.2.0.html</guid><description><p>A couple of weeks ago, I <a href="https://www.endbasic.dev/2020/04/hello-endbasic.html">announced EndBASIC</a>: a simple BASIC language interpreter written in Rust with a goal to provide an environment for teaching my kids how to code. That first release provided what-I-think-is a robust interpreter, but that was about it: the language features were still minimal and the interactive features were non-existent.</p>
<p>Well, <a href="https://github.com/endbasic/endbasic/releases/tag/endbasic-0.2.0">EndBASIC 0.2.0</a> is here and things are changing! It&rsquo;s still far from the vision I want to reach, but it&rsquo;s slowly moving towards that direction. I&rsquo;m a bit less satisfied about the robustness of these new features compared to those in the core language, but that&rsquo;s OK: they will have to change significantly or maybe even be dropped entirely, so no harm done.</p></description></item><item><title>Hello, EndBASIC!</title><link>https://www.endbasic.dev/2020/04/hello-endbasic.html</link><pubDate>Wed, 22 Apr 2020 09:00:00 -0400</pubDate><guid>https://www.endbasic.dev/2020/04/hello-endbasic.html</guid><description>Introducing EndBASIC, a new interpreter for a BASIC-like language that is inspired by Amstrad&rsquo;s Locomotive BASIC 1.1 and Microsoft&rsquo;s QuickBASIC 4.5. Like the former, EndBASIC intends to provide an interactive environment that seamlessly merges coding with immediate visual feedback. Like the latter, EndBASIC offers higher-level programming constructs and strong typing. The main idea behind EndBASIC is to provide a playground for learning the foundations of programming in a simplified environment.</description></item></channel></rss>