Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal

TetraSource

Members
  • Content Count

    6
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by TetraSource

  1. Hello everybody!

    I just finished the work on Moon, a library for Lua 5.3 that provides a class system along with the corresponding functions inspired by the one of Python. It supports multiple inheritance by using a MRO, operator overloading, properties and metaclasses. However, it is rather optimized on flexibility than performance since creating a lightweight class system ought not to be troublesome in Lua.

    I recommend just using it when you already know what OOP means in general but not necessarily in Python. I included an introduction of the concepts that are not present in the most common OO languages in the documentation.

    You can download it from github or pastebin (id: RgzJxwVF). If you encounter bugs, please report them on github. The documentation is on github as well. I hope it is able to clear all your questions. An example can also be found on pastebin (id: sxrQPdjL).

    If you like Python you might also be interested in this post.

  2. 2018-09-25_21_29_06.thumb.png.27c41df96c9871c9ffe1e0ac6cfaf080.png

    I just finished the first version of bundle - a rc application which virtually merges multiple filesystems into a bigger one. You can use it whenever a RAID full of tier 3 HDD isn't enough for your needs. On the picture above, for example, you can see 10 RAIDs with 30 tier 3 HDDs which yield a virtual HDD that can store over 200MB of data. You can also use filesystems of different size and create files bigger than any of the used filesystems since bundle is capable of storing a file on multiple HDDs.

    If you encounter any bug, please report it on my github repository. Also check out the wiki page.

    How to use it

    First of all you can download it from pastebin (id: TmeSNidd) or my github repository and install the file in the directory for rc script (/etc/rc.d/bundle.lua). Before using it you should configure the constants at the top of the script in accordance with their descriptions. Otherwise Bundle might work incorrectly. Then you need to add some filesystems by executing

    rc bundle add [address]

    in the shell. Please replace [address] by the address of the desired filesystem. Doing so wipes the added filesystem. However, Bundle never incorporates filesystems automatically. Next you should allow bundle to run in background by executing

    rc bundle enable

    Just reboot the computer and it should be listed by

    df

    2018-09-25_21_29_44.thumb.png.9bb42bcf97449b009b26deea5b8f5e2d.png

    Note that the label of the first added filesystem and the filesystem provided by Bundle are always equal since that's the way how bundle stores it. You can also view the added filesystems by executing

    rc bundle list

    You can also remove added filesystems by

    rc bundle remove [forcefully]

    Currently, this just removes the last added filesystem, however. If the removal causes the lose of data this fails except you set [forcefully].

    Usage notes

    • Don't install the OS on a Bundle filesystem since Bundle requires some functions of OpenOS.
    • Bundle uses a virtual copy of the file structure. On the one hand this makes "hardware" operations faster, on the other hand it might lead to errors when running out of memory.
    • Bundle works with Lua 5.2 as well as Lua 5.3.

    Known bugs

    • Seek operations that set the current position to a value that is bigger than the size of the file cause the file the become bigger than its actual physical size. This is also the case on filesystem components of Open Computers but with bundle it might cause internal errors.

    That is it for now, have fun using Bundle.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.