2/17/13 UPDATE: Added the 0.4.1a patch link and info.


Today's featured Small Basic extension comes from Liam McSherry. Here is information about the extension in his words...

Extended Small Basic Library, or ESL, is a small but powerful extension for Microsoft Small Basic. Although it didn't get off to a great start, and I was unable to work on it after the initial release on the 6th of October 2012, it is back, and with a new thread.

ESL is comprised of 12 classes, each of which either expand and improve on the Small Basic standard library, or bring new features of their own into the mix. These include advanced features such as cryptography, tetration, and include useful features such as being able to use C# arrays as storage, which
are significantly faster than Small Basic arrays.

ESL is an open source project, and a link to the source code will be at the end of this post. ESL is currently in an "Alpha" state of development, and may be buggy. All bug reports are welcome, but please try not to continuously report the same bug.

ESL on GitHub: https://github.com/McSherry/ESL
ESL Download: https://munycdn.com/a/McSherry/ESL_0.4.1a.zip
ESL on Ohloh: https://www.ohloh.net/p/ESL
HTML ReadMe: http://mcsherry.github.com/ESL/

A basic "Getting Started" document for ESL is now available. It describes the classes within ESL, as well as providing a few code examples, and any relevant legal information.

Read "Getting Started with ESL": https://munycdn.com/a/McSherry/Getting Started with ESL.pdf


Please feel free to provide suggestions in this forum thread. Thanks for your time, and I hope this extension is useful for you.

If you'd like to contribute to ESL, please fork the GitHub repository, and then file a merge request with your changes. It would also be helpful if you used the Issue Tracker provided by GitHub.

Licencing and legal information is available in the README, as well as a list of credits for various components that make up parts of ESL.

Added features in the 0.3.0a update:

  • GZip Compression (untested)
  • RC2 Encryption
  • DES Encryption
  • AES Encryption
  • Fibonacci Number Generation (up to n=138)
  • The mathematical constant e
  • The mathematical constant Phi (a.k.a. the Golden Ratio)
  • Number concatenation (32-bit and 64-bit)
  • HMAC (Hash-based Message Authentication Code) variants of SHA hashes
  • CRC-32 (ANSI X3.66) and CRC-64 (ECMA-182) checksum generation
  • Hyperexponentation (tetration)
  • Further text manipulation (ToUpper, ToLower, Reverse, etc)
  • RIPEMD160 Hash function
  • More file-format definitions
  • Primality checking (whether a number is prime)
  • A new HTML Read-Me

Added features in the 0.4.0a update:

  • Encryption methods have been patched to fix "Bad Data." exceptions; output from encryption is Base64-only now.
  • ESLWeb has been renamed to ESLNetworking.
  • Added an internal IP Address check to ESLNetworking.
  • Added an external IP Address check to ESLNetworking, as well as a check for an Internet connection.
  • OctalFromInteger and OctalToInteger added to ESLMaths
  • ExtractRange and Remove added to ESLText
  • ESLCrypto renamed to ESLSecurity
  • Added a password crack-time estimator to ESLSecurity (crashes incurred from large crack times)
  • ESLStorage now allows for 64 arrays rather than 16.
  • File definitions for ESLFile.Identify() now use the external file ESLFormats.xml.
  • ESLCompute class added
  • ThreadedCall() method added to ESLCompute to allow multithreaded Small Basic programs.
  • The time of compilation has been added to the ESL class.
  • Support for XTEA encryption via an XTEA engine.

Updates in the 0.4.1a patch:

  • Patch for WMI queries bug (found by MartMen here)
  • ESLNetworking.Ping(), which allows developers to measure the amount of time it takes to get a response from a server, in milliseconds
  • Conversion to and from Ternary
  • Methods for mathematics using various radices (e.g. HexMultiply(), OctalDivide()).
  • Generating up to 64-character encryption keys from a password using PBKDF2.



Thanks to Liam and the community for all your hard work on this great extension!

Have you used it? What do you think?

   - Ninja Ed