Skip to content

Commit 0810bba

Browse files
committed
Deploying to gh-pages from @ endbasic/homepage@98e8a64 🚀
1 parent 4f5a8bf commit 0810bba

15 files changed

+873
-494
lines changed

about.html

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<meta property="og:url" content="https://www.endbasic.dev/about.html">
1616
<meta property="og:type" content="website">
1717
<link rel=canonical href=https://www.endbasic.dev/about.html>
18-
<link rel=stylesheet href=/sass/main.min.adfe6f3ad71fc16cd2476831566b541c30aa85cf03be3ea468aeb09ad0490b8f.css>
18+
<link rel=stylesheet href=/sass/main.min.559528fcad240edfd079af5db93c86ace4bdf0df172b9542c5b91822d3221244.css>
1919
<link rel=stylesheet href=/css/chroma.css>
2020
</head>
2121
<body>
@@ -30,14 +30,10 @@
3030
</li><li class=nav-item>
3131
<a class=nav-link href=/download.html>Download</a>
3232
</li><li class=nav-item>
33-
<a class=nav-link href=/media.html>Media</a>
34-
</li><li class=nav-item>
35-
<a class=nav-link href=/service.html>Cloud service</a>
33+
<a class=nav-link href=/docs.html>Documentation</a>
3634
</li><li class=nav-item>
3735
<a class=nav-link href=/community.html>Community</a>
3836
</li><li class=nav-item>
39-
<a class=nav-link href=/help.html>Help</a>
40-
</li><li class=nav-item>
4137
<a class=nav-link href=https://jmmv.dev/tags/endbasic/ target=_new>Blog</a>
4238
</li>
4339
</ul>
@@ -56,13 +52,13 @@ <h1 id=retro>Motivation</h1>
5652
<p>If we look back to the 1980s, computing was much more approachable and discoverable&mdash;even if it did not <em>look</em> like so. I have pretty fond memories of my <a href=https://en.wikipedia.org/wiki/Amstrad_CPC>Amstrad CPC 6128</a> and its <a href=https://en.wikipedia.org/wiki/Locomotive_BASIC>Locomotive BASIC 1.1</a> interface. The experience offered by that computer was common back in the day but unique for today&rsquo;s standards: the computer booted and was ready to accept commands in a couple of seconds; the computer was resilient to mistakes thanks to the system being stored in ROM; and you could control the full computer from the built-in language. Changing colors, drawing figures, playing sounds&mldr; were all at your fingertips. And once you learned a few commands on the command line, stitching them together to form full-fledged programs was a breeze.</p>
5753
<p>With the move to a PC and MS-DOS a few years later, the essence of this experience was already lost: booting was slower; the computer could be &ldquo;damaged&rdquo; by modifying the wrong files; and the command line&rsquo;s interface didn&rsquo;t match the language of the programs you wrote. Sure, you could write batch programs, but that language was very limiting. That said, MS-DOS was still reasonably simple and shipped with the QBASIC integrated environment, which gave you all you needed to develop programs quickly.</p>
5854
<p>Fast-forward to 2021. For most, computers have become content consumption devices. But the possibility of excitement is still there. I set up a Raspberry Pi that booted directly into DOSBox with <a href=https://winworldpc.com/product/quickbasic/45>QuickBASIC 4.5</a> and I could witness how my kids showed a different kind of interest in the machine than they had had before just with games. I only had to type a bunch of <code>PRINT</code> and <code>COLOR</code> commands to make them want to try stuff on their own. So I thought&mldr; this is cool, but it&rsquo;s awkward to be confined to such an old environment. How hard would it be to bring such an experience to the modern era? Hence <em>&ldquo;E. and D.&rsquo;s BASIC&rdquo;</em> was born. Or, simply put, EndBASIC.</p>
55+
<figure>
56+
<iframe title=vimeo-player src="https://player.vimeo.com/video/641791002?h=bab5562902" width=640 height=360 style=max-width:100% frameborder=0 allowfullscreen></iframe>
57+
<figcaption><p><a href=https://media.handmade-seattle.com/endbasic/>EndBASIC demo for Handmade Seattle 2021</a><br>This 5-minute long video covers the motivation for the project and showcases graphics support, hardware manipulation and the cloud to build a retro-looking pong clone.</p></figcaption>
58+
</figure>
5959
<p>EndBASIC is a modern take at implementing an integrated environment that offers instant gratification to the user/learner/programmer. The environment and the language are intentionally modeled after the experience that computers offered back in the 1980s&mdash;but don&rsquo;t assume that those interfaces were too limiting: <em>simplicity is powerful</em>. EndBASIC is modern because the environment targets the web for ease of access, allows interacting with the Raspberry Pi as a learning device, and integrates with a cloud service for fun file sharing. Furthermore, EndBASIC is fully written in Rust, so whenever you are ready to make the leap into a &ldquo;real language&rdquo;, you can poke into its internals and tweak it to your own needs.</p>
6060
<p>With that, I hope you enjoy EndBASIC as much as I have enjoyed creating it. I do not expect you to write shiny new programs in a language that is considered a dead end by most. No. My hope is that you use EndBASIC to learn or teach the <em>foundations</em> of programming and computing in an environment that is fun to interact with and that is tolerant of mistakes. Because, if you truly master the foundations, the specifics of the language or the operating system won&rsquo;t matter as much.</p>
6161
<p>Thank you for reading!</p>
62-
<figure>
63-
<img src=/images/repl-demo.gif>
64-
<figcaption>EndBASIC 0.4.0 showing its interactive editor, the built-in tour, and the built-in "guess the number" game. Video recorded on 2020-12-25.</figcaption>
65-
</figure>
6662
<h1 id=basic>BASIC interpreter</h1>
6763
<p>EndBASIC is an interpreter for a BASIC-like language and 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.</p>
6864
<div class=highlight><pre tabindex=0 class=chroma><code class=language-basic data-lang=basic><span class=kr>INPUT</span><span class=w> </span><span class=s2>&#34;Did you ever experience BASIC (true/false)&#34;</span><span class=p>;</span><span class=w> </span><span class=vg>answer</span><span class=o>?</span>
@@ -188,8 +184,10 @@ <h1 id=modern>Open and embeddable</h1>
188184
</footer>
189185
<script>const SITE_ID='6a633c2c-7fda-11ec-86e4-1cfd087199c2'</script>
190186
<script type=module>
191-
import { RequestsClient } from "\/js\/main.7975929169334b3e2b345683c7408972fc347690ecd5851fbdb3255e30999670.js";
187+
import { addAnchorsToHeaders, RequestsClient } from "\/js\/main.b2165fe5f7efc012c3b988f4edfa3c4a940b338c442744e1e9ef8b8386f10d05.js";
192188
new RequestsClient(SITE_ID).saveRequest();
189+
190+
addAnchorsToHeaders();
193191
</script>
194192
<noscript>
195193
<img src="https://hugo-dynamic.endbasic.dev/api/sites/6a633c2c-7fda-11ec-86e4-1cfd087199c2/pages/aHR0cHM6Ly93d3cuZW5kYmFzaWMuZGV2L2Fib3V0Lmh0bWw=/stamp.gif" style=display:none>

community.html

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,18 @@
1010
The community is just getting started though, so we&amp;rsquo;d really love it if you joined.
1111
Chat on Discord
1212
Join the mailing list
13-
Project details GitHub project: endbasic/endbasic Report an issue Send feedback ">
13+
Project details GitHub project: endbasic/endbasic Report an issue Send feedback Support If you encounter any issue, please file a bug report or contact me via email or Twitter.">
1414
<meta property="og:description" content="Discussion channels EndBASIC is an open source project and we&amp;rsquo;d love to have you follow along its development, help with new features, or even just hear from your feedback!
1515
The community is just getting started though, so we&amp;rsquo;d really love it if you joined.
1616
Chat on Discord
1717
Join the mailing list
18-
Project details GitHub project: endbasic/endbasic Report an issue Send feedback ">
18+
Project details GitHub project: endbasic/endbasic Report an issue Send feedback Support If you encounter any issue, please file a bug report or contact me via email or Twitter.">
1919
<meta name=author content="Julio Merino">
2020
<meta name=generator content="Hugo 0.92.1">
2121
<meta property="og:url" content="https://www.endbasic.dev/community.html">
2222
<meta property="og:type" content="website">
2323
<link rel=canonical href=https://www.endbasic.dev/community.html>
24-
<link rel=stylesheet href=/sass/main.min.adfe6f3ad71fc16cd2476831566b541c30aa85cf03be3ea468aeb09ad0490b8f.css>
24+
<link rel=stylesheet href=/sass/main.min.559528fcad240edfd079af5db93c86ace4bdf0df172b9542c5b91822d3221244.css>
2525
<link rel=stylesheet href=/css/chroma.css>
2626
</head>
2727
<body>
@@ -36,14 +36,10 @@
3636
</li><li class=nav-item>
3737
<a class=nav-link href=/download.html>Download</a>
3838
</li><li class=nav-item>
39-
<a class=nav-link href=/media.html>Media</a>
40-
</li><li class=nav-item>
41-
<a class=nav-link href=/service.html>Cloud service</a>
39+
<a class=nav-link href=/docs.html>Documentation</a>
4240
</li><li class="nav-item active">
4341
<a class=nav-link href=/community.html>Community</a>
4442
</li><li class=nav-item>
45-
<a class=nav-link href=/help.html>Help</a>
46-
</li><li class=nav-item>
4743
<a class=nav-link href=https://jmmv.dev/tags/endbasic/ target=_new>Blog</a>
4844
</li>
4945
</ul>
@@ -66,6 +62,8 @@ <h1 id=project-details>Project details</h1>
6662
<li><a href=https://github.com/endbasic/endbasic/issues>Report an issue</a></li>
6763
<li><a href=mailto:[email protected]>Send feedback</a></li>
6864
</ul>
65+
<h1 id=support>Support</h1>
66+
<p>If you encounter any issue, please <a href=https://github.com/endbasic/endbasic/issues/new>file a bug report</a> or contact me via <a href=mailto:[email protected]>email</a> or <a href=https://twitter.com/jmmv/>Twitter</a>.</p>
6967
</article>
7068
<footer class="container py-5">
7169
<div class=row>
@@ -77,8 +75,10 @@ <h1 id=project-details>Project details</h1>
7775
</footer>
7876
<script>const SITE_ID='6a633c2c-7fda-11ec-86e4-1cfd087199c2'</script>
7977
<script type=module>
80-
import { RequestsClient } from "\/js\/main.7975929169334b3e2b345683c7408972fc347690ecd5851fbdb3255e30999670.js";
78+
import { addAnchorsToHeaders, RequestsClient } from "\/js\/main.b2165fe5f7efc012c3b988f4edfa3c4a940b338c442744e1e9ef8b8386f10d05.js";
8179
new RequestsClient(SITE_ID).saveRequest();
80+
81+
addAnchorsToHeaders();
8282
</script>
8383
<noscript>
8484
<img src=https://hugo-dynamic.endbasic.dev/api/sites/6a633c2c-7fda-11ec-86e4-1cfd087199c2/pages/aHR0cHM6Ly93d3cuZW5kYmFzaWMuZGV2L2NvbW11bml0eS5odG1s/stamp.gif style=display:none>

css/README

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
* chroma.css is built with "hugo gen chromastyles --style=borland >chroma.css".
1+
* chroma.css is built with "hugo gen chromastyles --style=fruity >chroma.css".

css/chroma.css

Lines changed: 62 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,85 @@
1-
/* Background */ .chroma { background-color: #ffffff }
1+
/* Background */ .bg { color: #ffffff; background-color: #111111 }
2+
/* PreWrapper */ .chroma { color: #ffffff; background-color: #111111; }
23
/* Other */ .chroma .x { }
3-
/* Error */ .chroma .err { color: #a61717; background-color: #e3d2d2 }
4+
/* Error */ .chroma .err { }
5+
/* CodeLine */ .chroma .cl { }
46
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
5-
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
6-
/* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc }
7-
/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
8-
/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
9-
/* Keyword */ .chroma .k { color: #000080; font-weight: bold }
10-
/* KeywordConstant */ .chroma .kc { color: #000080; font-weight: bold }
11-
/* KeywordDeclaration */ .chroma .kd { color: #000080; font-weight: bold }
12-
/* KeywordNamespace */ .chroma .kn { color: #000080; font-weight: bold }
13-
/* KeywordPseudo */ .chroma .kp { color: #000080; font-weight: bold }
14-
/* KeywordReserved */ .chroma .kr { color: #000080; font-weight: bold }
15-
/* KeywordType */ .chroma .kt { color: #000080; font-weight: bold }
7+
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
8+
/* LineHighlight */ .chroma .hl { background-color: #ffffcc }
9+
/* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
10+
/* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
11+
/* Line */ .chroma .line { display: flex; }
12+
/* Keyword */ .chroma .k { color: #fb660a; font-weight: bold }
13+
/* KeywordConstant */ .chroma .kc { color: #fb660a; font-weight: bold }
14+
/* KeywordDeclaration */ .chroma .kd { color: #fb660a; font-weight: bold }
15+
/* KeywordNamespace */ .chroma .kn { color: #fb660a; font-weight: bold }
16+
/* KeywordPseudo */ .chroma .kp { color: #fb660a }
17+
/* KeywordReserved */ .chroma .kr { color: #fb660a; font-weight: bold }
18+
/* KeywordType */ .chroma .kt { color: #cdcaa9; font-weight: bold }
1619
/* Name */ .chroma .n { }
17-
/* NameAttribute */ .chroma .na { color: #ff0000 }
20+
/* NameAttribute */ .chroma .na { color: #ff0086; font-weight: bold }
1821
/* NameBuiltin */ .chroma .nb { }
1922
/* NameBuiltinPseudo */ .chroma .bp { }
2023
/* NameClass */ .chroma .nc { }
21-
/* NameConstant */ .chroma .no { }
24+
/* NameConstant */ .chroma .no { color: #0086d2 }
2225
/* NameDecorator */ .chroma .nd { }
2326
/* NameEntity */ .chroma .ni { }
2427
/* NameException */ .chroma .ne { }
25-
/* NameFunction */ .chroma .nf { }
28+
/* NameFunction */ .chroma .nf { color: #ff0086; font-weight: bold }
2629
/* NameFunctionMagic */ .chroma .fm { }
2730
/* NameLabel */ .chroma .nl { }
2831
/* NameNamespace */ .chroma .nn { }
2932
/* NameOther */ .chroma .nx { }
3033
/* NameProperty */ .chroma .py { }
31-
/* NameTag */ .chroma .nt { color: #000080; font-weight: bold }
32-
/* NameVariable */ .chroma .nv { }
34+
/* NameTag */ .chroma .nt { color: #fb660a; font-weight: bold }
35+
/* NameVariable */ .chroma .nv { color: #fb660a }
3336
/* NameVariableClass */ .chroma .vc { }
3437
/* NameVariableGlobal */ .chroma .vg { }
3538
/* NameVariableInstance */ .chroma .vi { }
3639
/* NameVariableMagic */ .chroma .vm { }
3740
/* Literal */ .chroma .l { }
3841
/* LiteralDate */ .chroma .ld { }
39-
/* LiteralString */ .chroma .s { color: #0000ff }
40-
/* LiteralStringAffix */ .chroma .sa { color: #0000ff }
41-
/* LiteralStringBacktick */ .chroma .sb { color: #0000ff }
42-
/* LiteralStringChar */ .chroma .sc { color: #800080 }
43-
/* LiteralStringDelimiter */ .chroma .dl { color: #0000ff }
44-
/* LiteralStringDoc */ .chroma .sd { color: #0000ff }
45-
/* LiteralStringDouble */ .chroma .s2 { color: #0000ff }
46-
/* LiteralStringEscape */ .chroma .se { color: #0000ff }
47-
/* LiteralStringHeredoc */ .chroma .sh { color: #0000ff }
48-
/* LiteralStringInterpol */ .chroma .si { color: #0000ff }
49-
/* LiteralStringOther */ .chroma .sx { color: #0000ff }
50-
/* LiteralStringRegex */ .chroma .sr { color: #0000ff }
51-
/* LiteralStringSingle */ .chroma .s1 { color: #0000ff }
52-
/* LiteralStringSymbol */ .chroma .ss { color: #0000ff }
53-
/* LiteralNumber */ .chroma .m { color: #0000ff }
54-
/* LiteralNumberBin */ .chroma .mb { color: #0000ff }
55-
/* LiteralNumberFloat */ .chroma .mf { color: #0000ff }
56-
/* LiteralNumberHex */ .chroma .mh { color: #0000ff }
57-
/* LiteralNumberInteger */ .chroma .mi { color: #0000ff }
58-
/* LiteralNumberIntegerLong */ .chroma .il { color: #0000ff }
59-
/* LiteralNumberOct */ .chroma .mo { color: #0000ff }
42+
/* LiteralString */ .chroma .s { color: #0086d2 }
43+
/* LiteralStringAffix */ .chroma .sa { color: #0086d2 }
44+
/* LiteralStringBacktick */ .chroma .sb { color: #0086d2 }
45+
/* LiteralStringChar */ .chroma .sc { color: #0086d2 }
46+
/* LiteralStringDelimiter */ .chroma .dl { color: #0086d2 }
47+
/* LiteralStringDoc */ .chroma .sd { color: #0086d2 }
48+
/* LiteralStringDouble */ .chroma .s2 { color: #0086d2 }
49+
/* LiteralStringEscape */ .chroma .se { color: #0086d2 }
50+
/* LiteralStringHeredoc */ .chroma .sh { color: #0086d2 }
51+
/* LiteralStringInterpol */ .chroma .si { color: #0086d2 }
52+
/* LiteralStringOther */ .chroma .sx { color: #0086d2 }
53+
/* LiteralStringRegex */ .chroma .sr { color: #0086d2 }
54+
/* LiteralStringSingle */ .chroma .s1 { color: #0086d2 }
55+
/* LiteralStringSymbol */ .chroma .ss { color: #0086d2 }
56+
/* LiteralNumber */ .chroma .m { color: #0086f7; font-weight: bold }
57+
/* LiteralNumberBin */ .chroma .mb { color: #0086f7; font-weight: bold }
58+
/* LiteralNumberFloat */ .chroma .mf { color: #0086f7; font-weight: bold }
59+
/* LiteralNumberHex */ .chroma .mh { color: #0086f7; font-weight: bold }
60+
/* LiteralNumberInteger */ .chroma .mi { color: #0086f7; font-weight: bold }
61+
/* LiteralNumberIntegerLong */ .chroma .il { color: #0086f7; font-weight: bold }
62+
/* LiteralNumberOct */ .chroma .mo { color: #0086f7; font-weight: bold }
6063
/* Operator */ .chroma .o { }
61-
/* OperatorWord */ .chroma .ow { font-weight: bold }
64+
/* OperatorWord */ .chroma .ow { }
6265
/* Punctuation */ .chroma .p { }
63-
/* Comment */ .chroma .c { color: #008800; font-style: italic }
64-
/* CommentHashbang */ .chroma .ch { color: #008800; font-style: italic }
65-
/* CommentMultiline */ .chroma .cm { color: #008800; font-style: italic }
66-
/* CommentSingle */ .chroma .c1 { color: #008800; font-style: italic }
67-
/* CommentSpecial */ .chroma .cs { color: #008800; font-weight: bold }
68-
/* CommentPreproc */ .chroma .cp { color: #008080 }
69-
/* CommentPreprocFile */ .chroma .cpf { color: #008080 }
66+
/* Comment */ .chroma .c { color: #008800; background-color: #0f140f; font-style: italic }
67+
/* CommentHashbang */ .chroma .ch { color: #008800; background-color: #0f140f; font-style: italic }
68+
/* CommentMultiline */ .chroma .cm { color: #008800; background-color: #0f140f; font-style: italic }
69+
/* CommentSingle */ .chroma .c1 { color: #008800; background-color: #0f140f; font-style: italic }
70+
/* CommentSpecial */ .chroma .cs { color: #008800; background-color: #0f140f; font-style: italic }
71+
/* CommentPreproc */ .chroma .cp { color: #ff0007; background-color: #0f140f; font-weight: bold; font-style: italic }
72+
/* CommentPreprocFile */ .chroma .cpf { color: #ff0007; background-color: #0f140f; font-weight: bold; font-style: italic }
7073
/* Generic */ .chroma .g { }
71-
/* GenericDeleted */ .chroma .gd { color: #000000; background-color: #ffdddd }
72-
/* GenericEmph */ .chroma .ge { font-style: italic }
73-
/* GenericError */ .chroma .gr { color: #aa0000 }
74-
/* GenericHeading */ .chroma .gh { color: #999999 }
75-
/* GenericInserted */ .chroma .gi { color: #000000; background-color: #ddffdd }
76-
/* GenericOutput */ .chroma .go { color: #888888 }
77-
/* GenericPrompt */ .chroma .gp { color: #555555 }
78-
/* GenericStrong */ .chroma .gs { font-weight: bold }
79-
/* GenericSubheading */ .chroma .gu { color: #aaaaaa }
80-
/* GenericTraceback */ .chroma .gt { color: #aa0000 }
81-
/* GenericUnderline */ .chroma .gl { text-decoration: underline }
82-
/* TextWhitespace */ .chroma .w { color: #bbbbbb }
74+
/* GenericDeleted */ .chroma .gd { }
75+
/* GenericEmph */ .chroma .ge { }
76+
/* GenericError */ .chroma .gr { }
77+
/* GenericHeading */ .chroma .gh { font-weight: bold }
78+
/* GenericInserted */ .chroma .gi { }
79+
/* GenericOutput */ .chroma .go { color: #444444; background-color: #222222 }
80+
/* GenericPrompt */ .chroma .gp { }
81+
/* GenericStrong */ .chroma .gs { }
82+
/* GenericSubheading */ .chroma .gu { font-weight: bold }
83+
/* GenericTraceback */ .chroma .gt { }
84+
/* GenericUnderline */ .chroma .gl { }
85+
/* TextWhitespace */ .chroma .w { color: #888888 }

0 commit comments

Comments
 (0)