If I may, I would also like to add a few usecases!
In my career
I consider myself very lucky I had always the opportunity to use thinBasic even to aid my daily work and important tasks at the jobs.
At my first job, we designed a robot to be used as a "virtual hostess".
1. Product visualization for TV screening
Before the robot was finished, we needed to explain/show, what to expect from the final project. A visualization of the model with some fly-by animations and/or "photos" compositing the robot model to real environment were needed to be provided in very swift fashion as new demands/customer presentations appeared.
- The script:
- Quick manual composition of the lit model to existing scene from photo, involving matching lightin
- Render of animation for TV in given resolution and framerate
- Modules used:
- TBGL - as I had export of the robot model from CAD software, I converted it to M15 via OBJ2M15 tool. Ability to load textures and models, and do a basic light setup allowed to setup simple previz
2. Expert system to guard the data
For each event, the robot had to be filled with new data to provide relevant information. As the behaviour and presentation was data-driven, it was critical to keep the input data correct. In order to guard that, I designed an expert system, which evaluated the correctness and gave human readable feedback.
- The script:
- did not ask user for any input at all, looked in specific dir
- evaluated both formal quality of the input media (count, resolution, format)
- evaluated the completeness of the data set (is providing map with just 1 marker a good use of the map module? ...)
- Modules used:
- UI - provided a nice touch interface, which could be used directly on the robot's touch screen
- FILE - allowed the data manipulation and handling
In my next jobs, my occupation revolves around design, development and maintenance of test automation framework for desktop apps.
3. System monitoring and warning
Providing an automation platform to a larger, even corporate environment means responsibility to hundreds of users across the globe. How do you know the system is performing well? How is it loaded? Is everything online?
thinBASIC allowed to add a different, simpler perspective on the data already covered by standard tools such as Kibana, Nagios, Grafana...
- The script:
- had many iterations and shapes, but always offered visual representation of the system
- thanks to nice multimedia package thinBasic offers I was able to deliver visual and audio warnings
- one script per system, producing easy to read visual info with relevant information presented via status or charts
- Modules used:
- UI - the Canvas interface is used to produce reusable graphics tiles, displayed then as part of larger HTML displayed on office TV
- CURL - allows sending REST API calls and retrieve results
- cJSON - allows processing the response from services easily, without need for low level string parsing
- INI - introduced as script config before APPCONFIG was developed
- early versions also played some wild melodies either from youtube videos or using MIDI commands
4. Resource guarding and releasing
Virtual machine provisioning at large scale brings the necessity to cleanup the resources after some time based on different conditions.
- The script:
- communicated with relevant backends to monitor their load and release unnecessary resources
- Modules used:
- CURL - allows sending REST API calls and retrieve results
- cJSON - allows processing the response from services easily, without need for low level string parsing
- INI - introduced as script config before APPCONFIG was developed
5. Log processing, issue analysis - you name it!
On daily basis I create auxiliary scripts to allow me to easily parse logs from services, search for problems and interesting corelations. Just CORE, CONSOLE, and FILE - but a looot of value!
For more complex tasks I often switch from CONSOLE to UI dialogs, because it does not take much effort to put an UI together. I completely switched from DT module to cDateTime class in Core.
In hobby use
1. Tools for photography
I do take photos daily and as the volumes are high, I create auxiliary scripts to help make the common tasks easy - copying the files from card to a specific file structure? Picking the best photo of the day? thinBasic has me covered
I usually use the combination of Console, UI, TBGL, GDIp and of course FILE or even INI module.2. Reverse engineering and game modifications
I did not contact the authors of the games, so I should not say this too loud, but... I use thinBASIC often for data analysis of games I bought and investigating how they work. Usually, I couple it with even some basic MOD tools, allowing to insert textures, models to the games. Besides the obvious FILE, CONSOLE module I would like to mention I love using DIM .. AT to move quickly in data memory to discover interesting bits and patterns, overlay file format headers and so on.
3. Game prototyping
I will probably not find the time and courage to become a full blown game developer, but I continuously work on various graphic demos and game prototypes, for fun. Or... for wedding!
For my wedding I coded a game in 7 days, using of course TBGL, TBDI. Designed to use 2 XBOX controllers, it was an opportunity to spend some time with friends, trying to do the best time for the lap
I also like a lot the extra functionality in MATH module, especially for graphic demos.
Highlights
There are parts of thinBASIC I use a lot on daily basis, that includes:
- Clipboard_getText - all my work tools use this heavily. Why use UI, or input, if I can consume clipboard immediately
- PARSE, GRAB$ - my friends in many text processing tasks
- DIM ... AT - already mentioned, super useful for cases when I need to look at data in different data perspectives - as text, as numbers, ...
My most beloved friends from latest version are:
- CAPPCONFIG - great alternative to INI files I used for years
- CJSON - greatly increased the amount of times I could use thinBASIC in pro-use
- CURL - I especially love its preview ability
- cAppLog - allowed me to leave custom logging UDT
...last but not least, I would like to highlight lesser known ability to design UI in thinAIR using Tools / User Tools / Resource Editor and its easy loading using #resource. Finalizing this and documenting properly will probably invite more people to UI usage.
Bookmarks