Close
0%
0%

Silly software wishlist

Motivation to do some software projects by writing them down.

Similar projects worth following
Most of these will never be done. Some have been done. The screenshot is RPN http://heroinewarrior.com/utils/rpn2.c a command line calculator which has proved essential, over the decades.

It might feel like every software project has to be bigger than the last software project, or they're not worth doing.  In reality, before Cinelerra, there were a lot of smaller software projects that just edited audio.  You get to a big software project by doing smaller ones that eventually have something in common & appear to be better served if they were all combined.  

We might be in a downward trend in the size of software projects people consider desirable, with mobile computing & retro computing, but the size required to get discovered is definitely growing.  20 years ago, a silly command line program on a personal web page that extracted emails from pine would have gotten thousands of downloads & been enough to start a foundation.  People used to read through freshmeat.net just to discover new software projects.  

Nowadays, you have to look like a corporation, employ every marketing gimmick in the latest developer conference to get discovered in an app store & forget about any personal web page getting discovered. No-one reads through an app store digest just to discover new software projects.




ATC to tablet: Something that automatically captures instructions from air traffic control on a tablet.  Lions will never have enough money to fly airplanes, but based on goo tube videos, it's manely an arcane task of constantly listening to the radio for your call sign & memorizing verbal instructions they give.  The more cryptic ones are the METAR readouts.  It gets real crazy during landings, when ATC blasts out thousands of things & the pilots are shown writing them down, all while the airplane heads towards the ground at 300mph.  

Ideally, ATC would fly planes directly instead of bothering with radio dialog, but lions are keenly aware the reason general aviation is 100 years behind modern quad copters in its level of automation is because of the number of ancient hand flown airplanes around, where the only means of remote control is relaying voice commands through a human.

Based on digital assistant valuations, it should be trivial for a computer to listen for your call sign, do something to get your attention, translate the spoken commands into drawings on a map.  Despite having no flying budget, such a thing could start life as a toy program that listened to internet streams of ATC.

GRAPHER: something that polls text files & constantly updates a simple line graph with the data in the file would be useful. Graphing serial port output in line graphs has been the #1 task for lions for 15 years, but copying from a text editor to star/open/libra office is extremely tedious. It needs a way for the user to specify a range of lines in the file to constantly graph, with text values, wildcards, & by pointing & clicking on the graph. The range needs to be relative to the start or the end of the file.

An X11 program in C would take only a few hours to write, but lions would rather spend forever contemplating using web browser javascript so someone else could use it.

Big Falcon Simulator, a very high fidelity simulation of a very large rocket, with the highest quality models & sounds possible. It would accurately simulate flights or have a racing mode with knockdowns.  Probably similar gameplay to Asphalt Extreme, but using flight controls.  Previous simulators have horrible graphics. They especially suffer in their renderings of fire.  This is the most ridiculous thing lions can imagine.

catnums.c

Cat files in numerical order

x-csrc - 1.67 kB - 06/14/2021 at 19:55

Download

segments2.c

Download segmented files with format code

x-csrc - 1.63 kB - 06/14/2021 at 19:55

Download

tube.py

Wrapper for youtube-dl

text/x-python - 6.50 kB - 02/28/2021 at 22:08

Download

x-csrc - 7.53 kB - 07/08/2020 at 19:08

Download

x-xz - 9.04 kB - 07/04/2020 at 22:35

Download

View all 20 files

  • Flatten the frame rate of a screencap

    lion mclionhead01/21/2022 at 05:09 0 comments

    Phones finally gained built in screen capturing, but they capture a variable frame rate.  There are various ways to deal with it in the vijeo editor.  The vijeo editor could just handle variable frame rates.  This would be lossless but a major rework.  Playing a file with variable frame rate would require more than adding 1 to the frame number, 23.97 times a second.  It would mean binary searching for a time stamp for every frame played back.  Most of the vijeo files lions deal with are constant frame rate.

    For a certain phone app which redraws at 7 to 8fps, there's

    ffmpeg -i screen-20220120-164225.mp4 -r 23.97 flat.mp4

    The output framerate has to be high enough to get smooth interpolation of the input fps.  Most howto's collect their adsense here & leave off with the crummy quality this produces.  The lion kingdom wanted to change that.

    ffmpeg -i screen-20220120-164225.mp4 -c:v h264 -qp 0 -r 23.97 flat.mp4

    This sets the output to lossless, -qp 0.  Lions have normally stopped seeing any significant losses at -qp 25.

  • Pause all virtual machines before sleep

    lion mclionhead11/14/2021 at 00:43 0 comments

    Sleep mode in Linux works about 90% of the time, but virtualbox is the 1 program which crashes every time.  The leading idea is putting all the virtual machines in pause before suspending the host.  There's no way to pause all the virtual machines with a wildcard, but 1 VM at a time can be paused with:

    VBoxManage controlvm 'The Grid' pause

    In theory, this has to go in /etc/pm/sleep.d/10_virtualbox

    #! /bin/sh
    
    
    case "${1}" in
            hibernate|suspend)
                VBoxManage controlvm 'The Grid' pause
                    ;;
            resume|thaw)
                VBoxManage controlvm 'The Grid' resume
                    ;;
    esac
    
    

    All those files are run before a sleep or wake.  In reality, there's no consistency in the naming of the operation, so they have a bunch of random names in the switch statement.  The Virtualbox screen greys out a nanosecond before sleep to show it's working.  A sleep statement would make it more obvious.  

  • Masquerating tethering as a phone app

    lion mclionhead11/13/2021 at 21:38 3 comments

    Phone plans for the last few years have had different data quotas for tethering & phone apps, but lions have always envisioned a phone app which forwarded packets from ADB or some proprietary USB protocol.  The confuser side relies on user space networking with the tun/tap driver.  The easy phone app tunnels the packets to a server on a wired network, but lions normally only need tethering because they don't have a server on a wired network.  

    The hard phone app strips all the headers from the packets & forwards the payloads using android networking calls.  Lions have been writing low level networking code for so long, it might not be as hard as it would have been 20 years ago.  Obviously, no app store would be allowed to distribute such a program & no-one among the current generation is interested in circumventing the system.

    The idea got a bit more motivation in the last 2 years because labor shortages have made Comca$t less reliable.  It's become more important to have redundant ISP's.

  • Vintage confuser game

    lion mclionhead11/06/2021 at 08:39 0 comments

    The lion kingdom found only 1 screencap of adventure construction set running on the C64.  Without deciphering the emulator keyboard & possibly getting the thrustmaster working with the emulator, screencaps were the easiest way to see it.  It's nowhere close to what the marketing suggested for all those years.  It doesn't access anywhere near the limits of the hardware.  They might have limited the room size to 8 sprites wide.  The author said EA renamed it to something other than his preference, but the name definitely conveyed more than it was capable of.

    The lion kingdom has no intention of writing a vintage confuser game, but ideas of how a dream game envisioned 40 years ago could have been written have continued to evolve.  Having lower standards is the key.

    The lion kingdom realized a general purpose game engine was key, before really knowing the concept of a game engine existed.  The vision was a simple game engine by today's standards which allowed a humanoid player to navigate an open 3D world & fight enemies.  Without even getting to the artwork & programming challenges, which were way above lion level, the mane difficulty was the RAM & floppy disks of the time couldn't store a big enough world or the animations required for fully articulated humanoid players.  That was why games were all 2D side scrollers with very constrained players.

    In hindsight, a very simple 2D tiled world with very few unique elements could have emulated the 3D world.  Zaxxon & Blue Max managed airborne & ground game play with only a 2D map with repeating elements.  The world could have been drawn as an isometric projection the way Zaxxon & Blue Max did it, but movement in all directions was essential to make it an open world.  That kind of movement required players to point in 8 directions.  An isometric projection of 8 player directions was quite hard, in those days.

    The player animations could have been compressed by compositing 2D body parts on the fly.  Body parts could have been rotated in 90 deg increments, flipped, & translated in 2D.  A gun just needed to rotate down & sideways while a separate leg bitmap could have translated walking positions.  A head bitmap could have just translations.  

    Overlaying multiple bitmaps on a single sprite or cluster of 4 sprites might have been fast enough to do in realtime, even if the result looked clunky.  The mane value was just being able to identify a favorite cartoon character.  

    Artwork for the player pointing up & down was always the stumbling block.  It was the hardest angle to convey movement in.  The players could have been limited to moving only up right, down left, left, & right.  That definitely constrains how many cartoon scenes could be envisioned in a game.

    Cartoons in those days relied heavily on diagonal characters.  Most scenes could be envisioned with flipping.

    4 diagonal movements with only sideways facing player graphics are doable, but shooting in all directions could have been difficult with only a side facing player.  Other games just allowed shooting in 1 direction.  It also improved gameplay to not have to precisely aim the gun.

    The lion kingdom didn't appreciate 8 Bit Guy's games more because the early ones always looked so bad & were so blocky.  His Planet X games were just simple text graphics with a static, 2D player character.

    Petscii robots was originally not impressive, but seeing it make progress on the C64 & then the Amiga showed just how much of the ideal game engine he got.

    It actually draws an animated humanoid facing 4 directions & navigating an isometric 2D world, something lions considered really hard 35 years ago & Adventure construction set never got close to.  The blocky motion would be an acceptable compromise for the lack of memory.  The player was just a single sprite overlaid...

    Read more »

  • Freecad 0.19 bugs

    lion mclionhead09/15/2021 at 04:22 0 comments

    0.19 was a big increase in bugs after 0.18.  The ages old shift + middle click bug which causes it to reposition instead of rotate is still there.

    The deal breaker is the placement no longer properly loading from a file.  It inverts the axis & angle when loading a file so the angle no longer is the output of the formula.  This causes it to either crash or recompute the wrong angle.

    Unfortunately 0.18 can't load anything saved in 0.19.  

  • 3D animated graphics in XTerm

    lion mclionhead08/25/2021 at 19:39 0 comments

    This is an utterly pointless extension of the lion kingdom's regis protocol note.

    https://hackaday.io/project/138050/log/157025-graphics-in-an-xterm

    The idea is a simple 3D animated demo with a cube bouncing around.  There's no double buffering, so it would be a real clunky blinking cube.

    Instead of recompiling xterm with the regis protocol, running xterm with the -ti vt340 flag, & not running screen, the same thing could be done more simply with a python library.  The only conceivable benefit to the regis protocol is displaying graphical data from a microcontroller without the hassle of making a new serial protocol with parser on the host side.  Having all the software self contained on the microcontroller would be a benefit.

    There was once a real need when trying to display 2D graphics from a lidar sensor.  Normally, when lions need to visualize data on a microcontroller, the data comes out faster than the serial port can go.  Maybe it could visualize an IMU.  Microcontrollers normally want to show a voltage graph over time.  

    The most obvious win would be a microcontroller oscilloscope over regis.  The lowly Rigol had only a 320x234 screen which could easily be drawn over serial port bandwidth.  The biggest challenge in a microcontroller oscilloscope is making the host software & serial protocol for drawing the waveform.

  • Fixing the thrustmaster

    lion mclionhead06/30/2021 at 19:35 0 comments

    Revisiting the lion kingdom's ancient, dusty, unused thrustmaster, the thought has returned of giving it a different brain.  It was $40 at the time.  Today, it's $65, massive inflation in 3 years.  Despite it being purely a currency collapse, having something worth a lot more doll hairs after 3 years makes it feel more valuable.  Its mane problem was not working with goog Earth flight simulator or anything else.

    Now that lions have implemented a HID driver for PIC & the price of joysticks is rising so fast, the idea of swapping the thrustmaster brain is a lot more tangible.  It's mane mode of operation for goog Earth would be as a keyboard.  It would require 14 digital & 5 analog pins.  A HID driver for ARM might be required.

    Despite the existence of a hardware hack, there is a way to translate HID reports to a virtual HID device in software.  Linux has the https://www.kernel.org/doc/html/latest/usb/gadget_hid.html HID gadget driver.  Win has the https://docs.microsoft.com/en-us/windows-hardware/drivers/hid/virtual-hid-framework--vhf-  Virtual HID framework.  That would require a lot of effort for Windows.  Lions would really want to use it for windows games.  

    There would be more hacking to get programs to ignore the real HID driver.  X11 has option lines which keep the device around but cause the X server to ignore it.  Windows has only the disable option in its control panel, which might prevent a virtual HID driver from using it.  Games also have options to select an HID device.  On the other paw, Windows flight simulator would probably work without any hacks.  A game which didn't work was Titanic honor & glory, but it has since been pulled.

    Another way is a USB host to device bridge.  That might be the best way, given the operating system variations.

    A 20 year old lion with no hardware experience would have focused entirely on a software solution.

  • Catting files in numerical order

    lion mclionhead06/14/2021 at 20:02 0 comments

    Continuing the theme of downloading segmented files

    https://hackaday.io/project/138050/log/178403-download-a-segmented-video-file

    The original segment downloader got updated to take a formatting code in the filename.  It replaces the formatting code with the number.

    https://cdn.hackaday.io/files/1380505906331200/segments2.c

    But once the segments are downloaded, you have to cat them into a single file.  The problem is numbered files get sorted with 1000 before 10.  This is a job for another program which takes another formatting code in the filename.  It cats all the files in a numerical range, replacing the formatting code with the number.

    https://cdn.hackaday.io/files/1380505906331200/catnums.c

  • Search function for hackaday logs

    lion mclionhead05/13/2021 at 23:28 0 comments

    This project is over 85 logs, so it's definitely time.  Even a search engine for all the projects of a single user would be an improvement.  Of course, a simple feature like searching now requires getting bought out by google, inventing a new programming language & it has to be based on neural networks instead of strstr.

    Alphabet corporation has a custom search engine service:

     https://programmablesearchengine.google.com

    This one searches all mclionhead projects. It doesn't work at all:

    https://cse.google.com/cse.js?cx=f89abf91874563cd5

    This one searches the logs in this project. It sort of gets close, but still is a piece of $4 trillion trash:

    https://cse.google.com/cse.js?cx=d6621edbd78f81ec1

    It might end up being a page on a local server which loads every single log page to search for the text, just as a lion would do.

  • Fast graphical text editor over ssh

    lion mclionhead04/09/2021 at 20:09 0 comments

    Lions have done a lot of text editing on remote consoles, manely using vi because running a graphical text editor over a network X11 connection is super slow.  There should be a way to have a persistent, graphical text editor server on the local screen.  Then a text editor client could be run remotely with a real fast shortcut like "e".  It would send the contents of the file to the server for editing.  The server would send incremental updates to the client only when the user saved the file.  This would use a lot less bandwidth than sending drawing commands to the server.

    There might be a way to do it with a plugin for sublime.  Writing a text editor from scratch is a big deal.  The most important aspect for lions is speed, which makes python, javascript impractical.

    Editing source code on a headless raspberry pi, with a graphical editor that runs as fast as if it was on the raspberry pi's HDMI port, would be a game changer.  Maybe there's a way such a text editor could communicate over a serial port as well as a network.  The terminal emulator would have to multiplex network packets with the console.  Multiplexing network packets with a console on a serial port could be a separate game changer.   The key is setting up the network connection quickly & automatically.

    Another key feature is not keeping any file handles open.  

View all 94 project logs

Enjoy this project?

Share

Discussions

Ken Yap wrote 05/07/2020 at 23:55 point

I'm using Free42, a program which is a reimplementation of the HP42S scientific calculator. It exists in both desktop and smartphone versions. Quite indispensable and small, just under 3MB on Linux.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates