Menu

Is xbasic still alive?

2019-05-28
2019-06-06
  • Yet Another Troll

    Hi, I just discovered X11 BASIC for Android a little over a month ago, and so far I love it. However, the lack of activity here is a little concerning. Is xbasic dead or on hiatus? RFO BASIC! also appears to be moribund since being removed from the Play Store. I may have questions about possible cross-platform issues that might crop up, such as whether an xbasic program written to use sparse files on Linux will work correctly when run on an Android device with an SD card formatted for FAT32. Thanks!

     
  • Markus Hoffmann

    Markus Hoffmann - 2019-05-29

    Hi Troll, X11-Basic is aliive, but the discussions take place more on github and gitlab.

    Android Version: https://gitlab.com/kollo/X11-Basic
    Example Programs: https://gitlab.com/kollo/X11-Basic_examples
    Main Repository: https://gitlab.com/kollo/X11Basic

    And on github:
    https://github.com/kollokollo/X11Basic

    See you there...

     
    • Yet Another Troll

      OK, I'm a st00pid bridge and cave troll, but I can't find the discussions on either gitlab or github. I see only bug and issue tracking and source code and binary file control. Thanks for your help!

       
      • Markus Hoffmann

        Markus Hoffmann - 2019-06-04

        Yes, the Issue trackers are mainly there for bug tracking and new feature requests. But what do you want to discuss about else?

         
        • Yet Another Troll

          Tips and tricks, best practices, how to make sure programs and data files are smoothly portable between platforms and file systems, and such. For example, how to be certain a binary data file written by a Windows machine will be readable on an Android or RaspPi. Is that what the MK and CV functions are for?

           
          • Markus Hoffmann

            Markus Hoffmann - 2019-06-04

            OK, so i suggest that this forum here (on sourceforge) may fit best.

             
  • Markus Hoffmann

    Markus Hoffmann - 2019-05-29

    I think, sparse files are not supported by the F32 file system, but I may be wrong.

     
    • Yet Another Troll

      I am not allowed to find out thanks to Nannydroid 4.4 updates and above,

      https://crittermap.zendesk.com/hc/en-us/articles/215564783-Samsung-Devices-External-Storage-locked-after-4-4-updates-?mobile_site=true

      It appears only certain built-in programs like Camera and My Files may write to external storage now without rooting the device, which I am reluctant to try. Opening a file on the MicroSD card for Input and reading data seems OK, just not Append, Output, or Unknown/Update. I can try an OTG stick, but that's a little scary for me. One wrong twitch of my Tolkien cave troll paws and I'm left with a mangled MicroUSB port on my phone that won't accept a charging cable.

       
  • Markus Hoffmann

    Markus Hoffmann - 2019-05-29

    If you wonder, what happened to X11-Basic on the G Play store: G has removed it. Why? I think, just because they could. No other reason appeared to me. So I decided to send following message to all users:

    Google has banned the X11-Basic App from its play store because it
    doesn't comply with their new rules anymore.

    So I cannot support Google Play store anymore, I am very sorry. If you
    want to continue using one of my apps, I can recommend to use the
    F-droid play store and install them from there. Or you can directly
    download the .apk file from here:

    https://f-droid.org/de/packages/de.hoffmannsgimmickstaupunkt/
    (Dew Point)

    or

    https://f-droid.org/de/packages/net.sourceforge.x11basic/
    (X11-Basic)

    and install it manually. Your .bas programs will not be erased when
    uninstalling and reinstalling X11-Basic and can still be used. However
    you will need to eventually recompile .b files from the .bas files.

    I am sorry for your inconvinience.

    best regards
    Markus

     
  • Yet Another Troll

    Thanks. I don't mind if 'sparse' files are filled in with clusters full of NULs, so long as the program doesn't fail mysteriously and skipped over sectors aren't filled with whatever random garbage happens to be sitting in some OS buffer somewhere. Write once, test everywhere?

     

    Last edit: Yet Another Troll 2019-05-29
  • Markus Hoffmann

    Markus Hoffmann - 2019-06-04

    Has it failed?

     
    • Yet Another Troll

      Not so far. The data read and write correctly, but walking through the entire sparse file with BGET is much slower than expected, even if I don't use SEEK to skip around, but I'm using a 16-64 byte buffer because of my record sizes . I guess Android expects sequential reads with a more reasonable buffer size like 512 or 4096 bytes.

       
  • Markus Hoffmann

    Markus Hoffmann - 2019-06-06

    Yes, reading 4096 bytes at once could speed it up much.

     
    • Yet Another Troll

      I might still need to maintain a bit vector index, a sort of file allocation table, if the data file ends up being extremely sparse for some data sets and a 4KB buffer doesn't fix everything. Or augment the data records and use a linked list of records in the data file, which could slow down the insertion of new records. Or just accept that walking the data file could be slow if keys in the trie index file are ridiculously long and dissimilar to each other, causing the data file to be ridiculously sparse.

       
  • Markus Hoffmann

    Markus Hoffmann - 2019-06-06

    Hm, maybe I do not quite understand what the problem is. Android does support sparse files, but not on FAT32. Also Android file system operations use an O/I cache for read operations and if set so also for write operations. I am not sure if this works with an external SD-Card, but in principle one need not think about that when writing a program, because the operating system will take care of this. The INPUT and LINEINPUT commands in X11-Basic do use the buffered file interface, so an additional 4k Buffer or so is already in use when reading lines or charackters.

    Operations are notorically slow when:
    1. Writing to the hole of a sparese file (because the file will get fragmented and new sectors need to be allocated).
    2. Writing small amount of data (<4k).
    3. using the FLUSH command.
    4. SEEKing bejond of the file end (because in this case the file will get extendet, if the file system does not support sparse files).

    Read operations however should be fast in any cases. Maybe reading only single bytes would be slow but all other operations will be internally speed up by the file systems cache.

     

Anonymous
Anonymous

Add attachments
Cancel





Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.