BAM: New Font-Weight setting for IDE
#1
https://basicanywheremachine-news.blogsp...r-ide.html
Reply
#2
@CharlieJV I have to admit I've been so busy I haven't had a chance to look at your BAM stuff, but wow! You are doing a great job so far.

I just got a second to check the IDE Config mentioned in the change. Nice work!

The font weight option is very nice.

Take it easy.
grymmjack (gj!)
GitHubYouTube | Soundcloud | 16colo.rs
Reply
#3
(07-25-2023, 02:04 PM)grymmjack Wrote: @CharlieJV I have to admit I've been so busy I haven't had a chance to look at your BAM stuff, but wow! You are doing a great job so far.

I just got a second to check the IDE Config mentioned in the change. Nice work!

The font weight option is very nice.

Take it easy.

Man, there aren't enough hours in a day and days in a lifetime.

Anybody who has a few seconds to quickly give BAM a gander, and then takes a minute to throw some nice words my way, that's a big deal.  Thanks!

I'm pretty happy with how both BAM and QBJS are progressing as both standalone products and great little QB64/QB64pe sidekicks.

To me, QBJS is the cat's meow re QB64/QB64PE compatibility and javascript intertwingling.  A programmer's power delight.

BAM is about:
  • supporting everything (eventually, in a light/agile way) in the software development life-cycle (requirements management, source code repository, program promotion levels, task management, change management, issue/bug management, distributed testing, deployment, yadda yadda...): QB64/QB64PE sidekick in that sense
  • Programming learning tool/environment
  • Componentization learning environment (BASIC too, but particularly via TiddlyWiki goodies)
  • Giving new lease on life to BASIC programs from the 70's and 80's, being able to run them and deploy them to the web (for running online or downloading and running offline) without too much, if any, futzing about.

Something like that.
Reply
#4
CharlieJV Wrote:Man, there aren't enough hours in a day and days in a lifetime.

No doubt!

So a few comments / questions on things:
- TiddlyWiki - is this your project too?
- I love the dot graph for the dependency tree - that is fantastic. @RhoSigma we should consider something like this for QB64 as a tool. It's super helpful. Granted, not everyone (ab?)uses $INCLUDE like that, but...
- Does TiddlyWiki allow embedding of BAM?
- I tried TiddlyWiki and with the drop down selectors, it was interesting but kind of foreign to me. Have you thought about maybe an easier UI approach than a <SELECT> ?

Ideas for you:
- I find it strange that there doesn't exist a Scratch->BASIC conversion anywhere. Since you have an evolutionary approach in mind, one thing that could really grease the wheels on learning would be to create a scratch to BASIC conversion. I mention this because your dot graph and learning approach, and recently seeing @RokCoder awesome scratch ports (had no idea it could do that stuff!).
- If learning is the key, one feature that could be awesome is some way to share the output as a GIF, with animations (or webp animation) - wherein the kids could share it on their social posts, etc. since GIF/webp is universal.

Thanks for doing the great work you're doing man. Keep it up.

<3
grymmjack (gj!)
GitHubYouTube | Soundcloud | 16colo.rs
Reply
#5
(07-27-2023, 02:26 PM)grymmjack Wrote:
CharlieJV Wrote:Man, there aren't enough hours in a day and days in a lifetime.

No doubt!

So a few comments / questions on things:
- TiddlyWiki - is this your project too?
- I love the dot graph for the dependency tree - that is fantastic. @RhoSigma we should consider something like this for QB64 as a tool. It's super helpful. Granted, not everyone (ab?)uses $INCLUDE like that, but...
- Does TiddlyWiki allow embedding of BAM?
- I tried TiddlyWiki and with the drop down selectors, it was interesting but kind of foreign to me. Have you thought about maybe an easier UI approach than a <SELECT> ?

[...]

<3

Quick partial reply as I start my lunch break, and gather myself for a pre-lunch bit o' cardio...

Oh no, TiddlyWiki is not my baby, that is Jeremy Ruston's beautiful brain-child.

The dependency tree and BAM's "include" mechanism are still works in progress that have been gathering dust, as everything is a shiny object grabbing my attention.  I look forward to getting back into that, refining both "include" and the dependency tree to catch recursion issues.

BAM is a TiddlyWiki instance made to not look like a TiddlyWiki instance.  Anybody can take the "tiddlers" (i.e. wiki pages) in BAM and drag them into any other TiddlyWiki instance to turn that TiddlyWiki into a BASIC Anywhere Machine.  (Well, I'm a few versions of TiddlyWiki behind with BAM; I don't like the new versions much, and I only ever upgrade anything when it hurts too much not to.  But anything BAM should work in any new version of TiddlyWiki just fine because of backwards compatibility.)

When exporting a BAM program, there are many options, one of them being the ability to export a JSON package with just the necessaries to run the program in any TiddlyWiki instance.  Drag and drop that JSON export package into any TiddlyWiki instance, and a .bas tiddler will have a "RUN" button on it to launch the program.

I'm not quite sure what you are asking about the SelectWidget in TiddlyWiki.  As far as drop-down boxes go, the implementation is pretty easy:

Code: (Select All)
<$select tiddler='Some Tiddler' tooltip='Choose a title'>
  <option>A Tale of Two Cities</option>
  <option>A New Kind of Science</option>
  <option>The Dice Man</option>
</$select>

The code above sets up a drop-down list, with the items.  When a selection is made, the value is put in the tiddler called "Some Tiddler".  Since no tiddler field is specified, the selected value will go in the tiddler field called "text".

Implementation-wise, that seems pretty simple to me.  The syntax is generally very HTML-like.

As far as user-interface, a drop-down list is pretty easy to use, and wonderfully does not take much screen real-estate.

I'm probably on a wild tangent there: you'll have to clear up for me what you're thinking.
Reply
#6
(07-27-2023, 02:26 PM)grymmjack Wrote:
CharlieJV Wrote:Man, there aren't enough hours in a day and days in a lifetime.

[...]

Ideas for you:
- I find it strange that there doesn't exist a Scratch->BASIC conversion anywhere. Since you have an evolutionary approach in mind, one thing that could really grease the wheels on learning would be to create a scratch to BASIC conversion. I mention this because your dot graph and learning approach, and recently seeing @RokCoder awesome scratch ports (had no idea it could do that stuff!).
- If learning is the key, one feature that could be awesome is some way to share the output as a GIF, with animations (or webp animation) - wherein the kids could share it on their social posts, etc. since GIF/webp is universal.

Thanks for doing the great work you're doing man. Keep it up.

<3

Reply part deux:

I'm a Blockly fan.  Never played with Scratch, but it seems like the same thing but better for younger folk.

Regardless, if I were to setup some kind of Scratch/Blockly to BASIC tool, I'd be building that into those tools, because I think building that into BAM would be the wrong place.   Regardless, that would be some project, and I can't fit that into this lifetime.

The GIF thing has me thinking, because I've seen somebody do that over in the Talk TiddlyWiki forums, but pretty sure that is with software on their device, not with TiddlyWiki proper.  I must investigate.

Cheers !
Reply
#7
Aha! I did some research on TiddlyWiki.

So, and forgive me if I have this wrong, it sounds like TiddlyWiki is very similar to the spec for a Web Component?

If so, that's pretty forward thinking stuff.

I don't quite grok why you want to do what you're doing specifically in TiddlyWiki - besides (and no judgment or tone here) that you just want to, and want to do it because you love TiddlyWiki?

The Tiddler word is a bit odd; at first I thought a Tiddler was a person, but it's not, it's a thing in a tiddlywiki?

I love the idea of collecting, tagging, and referencing everything i'm learning into one huge brain, but in the past something like a wiki was a bit too much (this says more about me and my laziness than the solutions), but a mind map is just right. It's lightweight, and simple, lives in a file, can link to stuff, etc.

I have been fond of the idea of trying to use Obsidian and markdown for everything, but again, I'm lazy. I did go through the motions of setting everything up in Obsidian, getting the apps going on all my devices, etc. Then just lost interest.

I tried TreePad before this, and that was excellent but again, it was just too much work and I'm WAY too lazy lol. Even OneNote is too heavy handed for me. For some reason, it's not like it's difficult, I just get this meh feeling when I'm using it.

I also tried vim wiki and even orgmode but meh. It isn't sticking.

The closest I can get to a consistent sticky approach is this:
- XMind Mind Map (default and extremely fast for me to capture, refine, and plan from)
- .todo files and Todo+ extension in vscode (using Task Paper approach).
- Microsoft To Do app (I don't know why, but I like this one - simple, stays out of the way , etc.)
- Notability on the iPad with Apple Pencil
- mermaid and dot graphviz stuff to complement.

This mess is less heavy handed to me than a "all in one thing" because I can freely choose which way to approach whatever I'm doing.

If I want to gather, assimilate, explore boundaries of knowledge, it's XMind because I'm FAST with it.  This is an old video XMind is MUCH better UX now. If I want to take what I have gathered, and refine it, I can do that in XMind, too. I also have living documents this way. It's not as intuitive as a all-in-one because I can't really search across my mindmaps easily, but I have directories on my file system, file names, etc. That works good enough.

If I want to minimize the cognitive load and stay in the zone (same context as when I'm doing some coding or something in vscode), .todo file, or .md file works great.

Notability is my garbage collector, where I literally write things down with my apple pencil onto separate notes. App is a game changer, honestly, and because my learning style is aural it really helps me remember, retain, and review to reinforce for later. Since the way I write, I hear the thing in my head, and my fingers move to write the words. The translation is like a compiler. Source = english, vision, hearing, binary = hands -> virtual ink in the note. Weird metaphor!

Last is the mermaid and graphviz (diagrams as code) approach, which I really really love to use as a draft -> final approach for a design of a thing. VSCode also has the benefit of having previews built in for mermaid, graphviz, etc. So I can see on the left side the source, and the right the render (same with MD which is native).

I get to pick which way I want to 'work/think/act' vs stuck in one app. I'm not saying that that's wrong if it's working for ya. Just saying it's really difficult for me to commit to anything where I can't totally procrastinate, be lazy, and distracted while I multitask and chase internet squirrels.

I admire your stick-to-it-ive-ness for your project, and being all-inclusive in the Tiddler format.

If I am grokking this, you're building BAM as a Tiddler, right?

Thanks, great talk I am learning a lot through your sharing and updates, please keep it up Smile
grymmjack (gj!)
GitHubYouTube | Soundcloud | 16colo.rs
Reply
#8
(07-28-2023, 03:48 PM)grymmjack Wrote: Aha! I did some research on TiddlyWiki.

So, and forgive me if I have this wrong, it sounds like TiddlyWiki is very similar to the spec for a Web Component?

If so, that's pretty forward thinking stuff.

I don't quite grok why you want to do what you're doing specifically in TiddlyWiki - besides (and no judgment or tone here) that you just want to, and want to do it because you love TiddlyWiki?

The Tiddler word is a bit odd; at first I thought a Tiddler was a person, but it's not, it's a thing in a tiddlywiki?

[...]

"Web component" doesn't resonate with me.

"Single Page Web Application" and "quine" resonate with me better.  (Me, I call TiddlyWiki a "hyperlinked solutions' platform".)

Many folk like using TiddlyWiki as second brain, for note-taking, GTD, Zettelkasten, etc. (whatever one may use a personal wiki for, and even as a wiki for teams, but I do not like it at all for collaborative work.)

Me, I have two uses for TiddlyWiki:
  • intertwingularity slicing and dicing
  • a platform for creating single-page web applications

Whatever anybody uses it for, I know of nothing else that can handle transclusion like TiddlyWiki.  For a small critter, it is a beast, a real champ, at the job of handling componentization and transclusion.

Why would I use TiddlyWiki as the platform for BAM?  Aside from Rapid Application Development, there is nothing out there that can let me build BAM in the way I want it to work: a single-HTML-page application that works offline as well as online, that will work in any standards-compliant web browser 15 years from now, and has everything needed (including software development process support) in one file (it is a bit like a "bottle garden", or a virtual machine of the fantasy kind.)

If somebody wants to try and emulate what I'm doing with TiddlyWiki without TiddlyWiki: good luck.  I'll run circles around you and the team of people trying to help you with your project that tries to build an equal to BAM.

Jeremy Ruston is from the UK.  In the UK, a tiddler is a small fish.  The word "tiddler" encapsulates the philosophy of "wiki pages" in TiddlyWiki: they normally ought to be small.  Then the small tiddlers come together via transclusion in whatever views are needed.

"Tiddler" is a reminder of the philosophy: keep it small.  Thus reusable.  And the payback is huge.
Reply
#9
(07-28-2023, 03:48 PM)grymmjack Wrote: [...]

If I am grokking this, you're building BAM as a Tiddler, right?

Now that we know a tiddler is just a small wiki page ...

BAM is just a TiddlyWiki instance.  (TiddlyWiki being a quine, i.e. a single file that, once loaded in a web browser, can output itself to a file via browser download mechanism, either replacing the original file or saved as a new file depending on how you handle the "save as" prompt by your browser when downloading.  TiddlyWiki having all of the HTML+CSS+javascript to make it work as a single-page-web-application wiki.)

What makes the TiddlyWiki instance a BASIC Anywhere Machine is the swath of tiddlers (i.e. the small, but some big, wiki pages) that make that TiddlyWiki instance look nothing like an au-natural TiddlyWiki instance, and provides everything needed to create and manage (a little bit like a source code repository) BASIC programs and do al of the things that support, in a light/agile way, software development process things.

Everything you see and do in BAM, that is all TiddlyWiki goodness (TW "markdown text", TW-scripting, TW-widgets, TW-QL (filtering/query language), HTML, and CSS.)  Nothing javascript.

All of that said, the interpreter is javascript (wwwBASIC), all shoved into a tiddler.  The tiddlywiki goodness dynamically puts together all that is needed for a BASIC program to run, or be exported, on the push of a button: the javascript, HTML, and the BASIC program are all mashed together into a string and fed as the source into an iframe.
Reply




Users browsing this thread: 5 Guest(s)