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

  • Music notation capture

    lion mclionhead12/24/2022 at 19:46 0 comments

    The lion kingdom once got good at entering music in Finale by playing the chords while never understanding how the rest of the world mastered dragging & dropping notes with a mouse.  There were still problems, not to mention it was expensive.  The pirated version had a crummy workaround which involved a firewall.  Playback didn't work.

    The general idea is to expand on that with a simpler program just focused on capturing notation from played chords.  It would just capture whole notes for the current point in time.  The pitch bender would advance up or down an 8va.  The right pedal would advance a note.  The left pedal would delete the note on the left.

  • Sleep enhancing sound system

    lion mclionhead11/26/2022 at 09:35 0 comments

    This video implanted the idea of an ASMR generator.  Lions worked in offices with white noise generators for years.  They sounded like air conditioning even though the air was off.  There are already ASMR generators.  The mane one the goog is hitting is https://asmrion.com/ but it's junk.  It doesn't really have the relaxing sounds shown by the icons.  The icons have nothing to do with the sounds.

    https://asoftmurmur.com/ is another ASMR web app

    https://github.com/guzhiling/ASMR is some kind of incomplete program.

    https://mynoise.net/NoiseMachines/custom.php?l=30303030303030303030&m=SLEEPINGDRAGON0~SLEEPINGDRAGON1~SLEEPINGDRAGON2~SWEEP4~SWEEP5~ISABELLEKNIGHT6~PEBBLEBEACH6~ISABELLEKNIGHT7~SWEEP7~FOREST9&d=0&title=Asmr%20Lullaby Is some kind of general purpose synthesizer with ASMR samples.

    All the sounds are poor quality samples with lots of ambient noise rather than synthetic.  What lions envision is something purely synthetic, to achieve the maximum possible effect.  The mane sounds which work are spray painting, nail filing, female whispering.  There's not much which can be done with the human voice but synthetic machines should be doable.  The sounds would have to be randomized.

    Another need is masking the noise of the 3D printer.  That's a job for white noise.

    There is a hardware part to this.  There would be speakers next to the bed & some brain dead user interface on a retired phone.  The large speakers are supposed to be consumed as they get smashed.  There are various parts from bluetooth speakers & the speakers in the monitor which never get used.

  • CFD on a GPU

    lion mclionhead10/11/2022 at 09:33 0 comments

    A tried & true task lions have never done, but which could aid many ideas like pterodactyl models, monocopter gliders, fan enclosures.  Note to try to get started before GPU's are millions of doll hairs.

  • Hack truckcam to show a stereo pair on VR goggles

    lion mclionhead09/09/2022 at 07:18 0 comments

    It would allow video from behind the lion.  It would capture the goggle straps, but it's better than nothing.

  • 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.

    Suspend with a virtual machine running, resume with the virtual machine running, & your VDI image is gone for good.

     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 hibernate 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.  


    Helas, if the virtual machine isn't running, the script fails & the hibernate command aborts.  Another problem is new lines have to be added for every single virtual machine.

    There's

    VBoxManage list runningvms

    to show all the running & paused virtual machines.

    VBoxManage list vms

    to show all the virtual machines. 

    #!/usr/bin/python
    
    # pause the virtual machines
    
    import os
    import sys
    import subprocess
    
    command = sys.argv[1]
    
    text = subprocess.check_output(['VBoxManage', 'list', 'runningvms'])
    lines = text.split('\n')
    for i in range(len(lines)):
        words = lines[i].split(" {")
        if len(words[0]) > 0:
    # strip the "
            name = ""
            for c in words[0]:
                if c != '\"':
                    name += c
            print("'" + command + "'ing " + name)
            subprocess.call(['VBoxManage', 'controlvm', name, command])
    
    
    

    It needs an increasingly sophisticated python script to handle all the corner cases.

  • 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 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.  

    The next bug has always been around.  Switch between multiple projects & the model tree always rewinds to the top.

    Then, changing projects requires closing & reopening the clipping plane window.

  • 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.

View all 98 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