Friday, December 30, 2022

🪲 GETMOUSE: fixed mouse left-button locking issue

wwwBASIC behaviour: when left-mouse button is pressed and held, and mouse pointer leaves the window of the running program, wwwBASIC considers the mouse button still pressed and does not check state of mouse button when mouse hovers back over the program.


The version of wwwBASIC embedded in BASIC Anywhere Machine has been modified so that:

BAM's behaviour: when left-mouse button is pressed and held, and mouse pointer leaves the window of the running program, BAM considers the mouse button no longer pressed and BAM does check state of mouse button when mouse hovers back over the program


Bug Demonstration



Thursday, December 29, 2022

🆕 _WINDOWWIDTH and _WINDOWHEIGHT

_WINDOWWIDTH

Description:

The _WINDOWWIDTH function returns the pixel width of the current browser window.

Syntax

_WINDOWWIDTH

 

_WINDOWHEIGHT

Description:

The _WINDOWHEIGHT function returns the pixel width of the current browser window.

Syntax

_WINDOWHEIGHT

Saturday, December 24, 2022

❇ Powerwash

 When the "Powerwash!" button is pressed, it will now open the "BAM User" dialog for you to set the BAM User to your name or nickname.

Saturday, December 17, 2022

🆕 Directory of Sample Programs

BASIC Anywhere Machine - Sample Programs

Over the last year, I've "published" many BASIC Anywhere Machine Programs, and I've shared these programs via individual links.

(Aside: "publishing" a program involves exporting it from BASIC Anywhere Machine as a small HTML file that contains the program and the BASIC interpreter, putting this HTML file on a website, and sharing the link for people to run the program in their web browsers.)

To make it easier to share all of these programs, I created a FeatherWiki instance (an extremely light and agile wiki that is perfect for the job) to present all of these programs (and related source code) embedded in their respective wiki pages.


Aside:

I love both TiddlyWiki and FeatherWiki.

To me, TiddlyWiki is all about taming intertwingularity by facilitating componentization (and single source information) and by facilitating the creation of unlimited structured information views.  TiddlyWiki sets the standard for the power of transclusion, and for the power of querying what you put in it.

To me, FeatherWiki is the one I turn to when I want quick to open and quick to edit, when I want to create a small website, and when I am dealing with information that does not involve intertwingularity.  Markdown editing (as found in TiddlyWiki and other products out there) is a cognitive pain in the caboose, which I will only put up with if there is more gain than pain.  (i.e. I'll put up with some cognitive load if overall cognitive load is diminished.)  FeatherWiki's WYSIWYG interface is extremely helpful in regards to reducing cognitive load.


Sunday, December 11, 2022

🪲 FIXED: Running the BASIC Anywhere Machine IDE on mobile devices: Issue with BAM menu bar not showing.

The problem has only been verified and the fix has only been tested on

  • the Android version of Firefox running on my Chromebook

Problem Description


The BAM menu was seemingly not showing at all, however it was showing in certain circumstances.  Come to discover, the CSS "vh" unit measure for setting the height of items does not work when a mobile device's browser top/bottom menu pops up.  The device's browser menu, when showing, pushes web page content up/down (depending on menu location).

So a mobile device's menu bar, if appearing at the bottom of the display, pushes BAM's display up causing BAM's menu to disappear.

The Solution


A search of the web lead to the CSS3 100vh  not constant in mobile browser discussion on stackoverflow and this wonderfully simple solution by Patryk Janik.


Thank-you to Ronald (waspentalive) Hudson for reporting the problem, and thank-you to Patryk Janik for posting a solution for the problem.

Thursday, December 8, 2022

❇ File Open window: Consistency tweaks

The File Open window has two "views": 

  • the default alphabetical list of programs
  • the "Recently Changed" view (i.e. programs grouped by date edited

The two views weren't showing the same information.

The alphabetical list showed "(edited, unsaved)" next to programs in development mode, and would show a "BAM" tag for programs that are core BASIC Anywhere Machine programs.

The "Recently Changed" view showed "prod" or "dev" for each program, depending on each program's promotion level.

Now, both views show "prod" or "dev" for each program, and both views show the "BAM" tag for programs that are core BASIC Anywhere Machine programs.

Also, the "Recently Changed" view was limiting the number of programs to a maximum of 200.  Now, there is no maximum.  All programs will be displayed.

Two screenshots below:






Tuesday, December 6, 2022

🎉 New version of BASIC Anywhere Machine

These are very quickly cobbled release notes, to be followed over the next few weeks with videos to present the various new and changed functionality.

Give it a spin

Programming Reference

Project website

Cheers !

Rough and tumble release notes

  • "Creation and modification" information block.
    • Change creator and modifier to the current BAM User
      • Shows at the top of the following editors: "File Properties", Idea, Requirement, Change Request, Issue, Task
  • BAM User setting
    • Any program or SDLC (software development life-cycle) item created in BAM will get the BAM User setting as the creator signature ; any modification will get the BAM User setting as the modifier signature.
  • Export Your Content feature replaced with a "Payload Exports" section and an "Adjacent Drag and Drop" menu item for BAM to BAM drag and drop of various groupings of items, including
    • Payload of Core BAM Components, for dragging a newer version of BAM Components in one BAM instance to an older BAM instance
    • Payload of all non-core BAM Artefacts, for dragging all of one's "stuff" from one BASIC Anywhere Machine instance to another (likely from an older BASIC Anywhere Machine instance that is incompatible with components from the latest BASIC Anywhere Machine release
    • Subset groupings of none-core BAM Artefacts
      • Payload of all preferences and settings (if you've organised your projects as different and independent BASIC Anywhere Machine instances, this lets you copy your preferences and settings from one BAM instance to another
      • Payload of all programs, in separate payloads for each BAM User found in the programs' creator and modifier fields
      • Payload of all SDLC (Software Development Life-Cycle) items, in separate payloads for each BAM User found in the items' creator and modifier fields
  • At the top of the Tools menu, added a grouping of "programming" tools: "Code Snippets", and "Lookups."
  • The menus will become vertically scrolling when they are too tall for the display device.
  • Fixed an issue causing the editor to become increasingly "choppy" (slow to use) as programs get bigger.
  • BASIC Anywhere Machine version-numbering system:
    • was TiddlyWiki version number followed by date of last edit of anything in a BASIC Anywhere Machine instance
    • will be TiddlyWiki version number followed by a manually selected date related to the release of the BASIC Anywhere instance.
  • Project Export ("Project" menu, "Export" menu item)
    • The related window underwent a big redesign and was that work was unannounced in the previous release of BAM  So just mentioning now.
  • Added a "Open the BAM IDE" button in the TiddlyWiki sidebar so that, should a user exit the BAM IDE and enter the TiddlyWiki interface, the user can quickly reenter the BAM IDE via this convenient button.

Monday, December 5, 2022

🚧 In the works: bug fix to resolve issue causing editor to become slow as program gets larger

This is a problem related to how the TiddlyWiki refresh mechanism works.

All visible content gets refreshed with every keystroke.

Normally, that is not an issue as long as "Tiddlers" (what wiki pages are called in TiddlyWiki) remain small.

But a BASIC program can easily become hundreds of lines long, and for every keystroke while editing that program, all visible content gets refreshed, including reloading the entire program in the editor.

The fix involves adjusting a TiddlyWiki configuration setting to "throttle" the refresh mechanism.  However, throttling will only happen on a case by case basis for tiddlers that have a flag set for throttling.

In a near-future version of BASIC Anywhere Machine, every new program will automatically get that throttling flag.

However, programs created in a previously created version of BASIC Anywhere Machine will need to have that throttling flag manually set via the "File" and "Properties" window.  (This setting will only be really important for programs beyond two or three hundreds lines.)

🚧 In the works: feature to copy preferences and settings from one BAM instance to another

 


📚 FUNCTION (and SUB): variable arguments, by default, are "passed by reference"

Preamble A primer on "call-by-reference" vs "call-by-value" BAM HOWTO (BTW:  "call-by-reference" aka "pas...