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.

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

x-csrc - 5.17 kB - 06/17/2020 at 22:12

Download

x-csrc - 1.15 kB - 06/08/2020 at 21:06

Download

View all 18 files

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

  • C64 style shell for UNIX

    lion mclionhead03/26/2021 at 00:16 0 comments

    Since using screen, the lion kingdom has flashed back to a time when cursoring to any part of the screen was the accepted way to repeat a command or copy a line of code in BASIC. When users could no longer cursor around the screen in DOS, lions found it crippling. UNIX brought back at least a command history in the 90's, but it still wasn't the same. Screen brought back most of the functionality of the original Commodore 64, allowing cursoring anywhere in the screen. Helas, it still requires copying & pasting to repeat a command. True C64 emulation would repeat a line of text just by hitting enter on it & show the output below the current cursor position.

    There is still somewhat of a desire to make an enhanced C64 shell, postfixing the UNIX prompt with "Ready.", executing commands by cursoring up & hitting enter, showing output wherever the cursor was, definitely using the original C64 font, maybe even wasting screen space on a border. It would default to 25 lines instead of 24, of course.  The optimum width for lions is 135 characters, though.

  • Start wpa_supplicant, then start dhclient

    lion mclionhead03/18/2021 at 06:51 0 comments

    There's no useful answer for this on the internet, so the lion kingdom finally wrote a python script to do the job.  The mane reason for doing it is when the systemd scripts don't work.

    #!/usr/bin/python
    
    
    # start up wpa_supplicant, wait for a connection, then start up dhclient
    
    
    import os
    import sys
    import subprocess
    
    
    p = subprocess.Popen(['wpa_supplicant', 
            '-iwlan0', 
            '-c/etc/wpa_supplicant/wpa_supplicant.conf'],
        stdout=subprocess.PIPE)
    
    
    while True:
        line = p.stdout.readline()
        print 'Got: ', line
        if "CTRL-EVENT-CONNECTED" in line:
            # start DHCP
            subprocess.call(['dhclient', '-v', 'wlan0'])
    
    
    

  • Non fungible tokens

    lion mclionhead03/11/2021 at 20:45 0 comments

    When this hit the news, lions thought how neat it would be to assign unique ownership to any arbitrary piece of data instead of that which is strictly a coin & to do it with no central authority.  Apparently, this utopia doesn't exist even though every crypto currency & token has been marketed as something which lacks a central authority.

    NFT's are currently all managed by 1 company, rarible.com.  They manage the NFT blockchain & charge fees to convert data into an NFT.  The ownership of every NFT is logged in the etherium blockchain & there's only 1 blockchain.  The logging of all tokens in a single authoritative blockchain is what establishes ownership.  If anyone could create a new authoritative blockchain, they could define any ownership of the tokens.

    The data types they support are currently just image & sound files.  More importantly, the NFT blockchain doesn't contain the full content.  It doesn't even contain a hash of the content, but contains metadata like a filename or a description.  It's all kind of a shell game.

    There's no out of box software for anyone to create their own NFT blockchain & sign their own arbitrary type of data.  There are guys who show how to do it with a bunch of tools on the goo tubes, but no turnkey NFT script.

    NFT's seemed a lot more practical to lions than cryptocurrencies.  It seemed like the natural evolution of cryptocurrencies was for everyone to create their own blockchain, leading to 10 billion different blockchains for new currencies with no monetary value.  An NFT in contrast, could always have some value in the form of the digital content that was originally made non fungible.

    The only piece of data so far which truly can be assigned ownership without a central authority is a public/private keypair.  No matter how hard anyone tries, they can never decrypt data encrypted by the public key unless they own the matching private key, thus ownership is possible without a central authority or a blockchain.  If public keys alone were artwork & animals enjoyed staring at 2048 random bits on their screens, ownership of artwork could be easily established without a central authority.

    It's not so easy to declare ownership by signing data with a private key.  Anyone else can sign the same data & declare ownership.  Only allowing the data to be viewed on a special player with a special public key has been tried before.  Even the encryption gootube uses has long been hacked.  A watermark can be taken out or 1 bit can be changed to change the owner of the watermark.

     An NFT scheme can't decide how much of a change to a piece of data constitutes a new unique piece of data.  Anyone can change 1 bit & declare ownership of the data with the changed bit.

    What makes NFT's possible may be a generational shift more than a technological capability.  Generation X would say no self proclaimed authority like rarible.com or the etherium blockchain can be absolute.  Millennials view any self proclaimed authority as absolute.

  • Server based 3rd party cookie

    lion mclionhead03/09/2021 at 20:03 0 comments

    Basically, a 3rd party cookie is a cookie from another website that your website is allowed to access.  Every time you go to a website, if it creates its own cookie to persistently store any data, every future website can look up all the cookies from the past websites to determine your browsing history.

    These were phased out & replaced with federated learning of cohorts, which is basically a server based 3rd party cookie where goog is the only server.  The browser sends its history to the goog & the goog returns advertisements based on the history that you sent, but individual websites besides the goog don't have access to the history data.  Only the goog does.  The other twist is that the goog doesn't store any ID which uniquely ties a user to each browser history.  

    This only works if the browser resends its entire history in every page load.  They could also try compressing the history locally on the browser, into some kind of hash value.  The hash value would contain enough for the server to match your history with similar histories.

    It's using the power of monopolies to create some sense of privacy.  There's no reason anyone can't create a server based 3rd party cookie.  Every website can send its location & some kind of ID that uniquely identifies the user to a common server.  The server can build up the history of the ID & return it to anyone who requests it.

  • Sutro bath VR

    lion mclionhead02/13/2021 at 20:45 0 comments

    VR's best use was always documenting historical places, but it was only really used for selling VR startups.  A key feature is being able to toggle between the historic view & the current view to see where objects were in the current context.  Sutro Baths would be a key destination.  

    There are some VR programs for viewing Pompeii.  

  • Script to reopen screen program windows & run programs

    lion mclionhead02/12/2021 at 01:37 0 comments

    Lions are now about as good at navigating with the screen program as they were in their 20's, but they have bigger dreams of automating the thing.  

    Lions have had manely success using pm-suspend to suspend the confuser, but it closes all the networking & ADB connections.  The way around it would be a single script that ran ssh & adb commands in multiple screen program windows.  Even better would be a script that created the screen program windows, labeling them as ADB or SSH.

    The screen program has a feature called "stuff"  which sends commands to any console in any screen program over a network.  It also has a way to remotely create new consoles.

  • Better youtube downloader

    lion mclionhead01/31/2021 at 06:43 0 comments

    Youtube downloaders were originally necessary when Firefox & Chrome couldn't play anything.  They got to the point where if you drop kicked the browser enough & ipccleaned after their incompetent ipc management, they could play audio, but now there are so many commercials & the audio is so bad, the browser player is unwatchable again.  

    Most of the original downloaders don't work anymore & new ones aren't being written anymore.  Lions believe most of the content is now being viewed on phones, where the 2 corporate app stores are simply banning anything that circumvents commercials. The lion kingdom currently uses an old version of Macx.  It's heavily crippled & can't download most of the current videos.  The latest versions don't support screen scaling.  MacOS disables VNC based on many conditions, so it requires easy access to the console.

    Making a better youtube downloader should involve just wiresharking Macx.  Theoretically, it uses ffmpeg to remux the streams.  The goo tubes have had a pretty stable API for the last few years.  Lions have lost their taste for GUI's so much, it would be a command line program.

    UPDATE:

    Gootube downloads are back, for the moment.

    After a bit of research, a lot more people have worked on youtube downloaders since 2018, when the browser player started becoming really unwatchable.  The task is not as easy as simply wireshark or chrome network analysis.  The lion kingdom managed to get youtube-dl to work.  It even has source code.

    https://ytdl-org.github.io/youtube-dl/download.html

    To list the available format codes:

    ./youtube-dl -F

    Note each format is either audio or video, but not both.  To download a specific format:

    ./youtube-dl -f <format code> --no-mtime

    It doesn't automatically multiplex the audio & video streams.  You have to specify an audio & video format in the -f argument to get it to create a single multiplexed movie.

    ./youtube-dl -f 137+251 --no-mtime

    Unfortunately, every movie has different format codes.  The mane task for lions was making a wrapper that selected formats based on the codec & resolution.

    With that, the lion kingdom finally has a better solution than MacX:

    https://cdn.hackaday.io/files/1380505906331200/tube.py

    It tries to select codecs based on the desired resolution & whether you want just audio.

    It downloads a playlist if the URL contains "&list=".  The mane problem with youtube-dl's default playlist function is it tries to download a fixed codec even if each movie in the playlist contains different codecs.  It really has to select different codecs for each member of a playlist.

    youtube-dl needs another hack to generate .mp4 files from OPUS & AVC1.  It tries to enforce standards compliance by only outputting .mkv's without indexes.

  • Full time virtual reality

    lion mclionhead01/28/2021 at 22:39 0 comments

    The only things missing from the virtual reality boom may have been an environment that was artistically worth living in all the time & which allowed continuing to be productive all the time.  Lions call it full time virtual reality.

    It could have also been a limitation of the polygon count, frame rate, or heavy goggles.  A compelling enough work of 3D art might have overcome the limitations.  Lions never found a VR app that was easy to navigate in & which visually transcended looking at a dumpy apartment.  

    When most animals think of a 3D environment that's more compelling than their dumpy apartment, they think of the Mediterranean villa in Star Wars episode II or the beauty & the beast castle.

    The virtual environments in movies have gotten a lot more ornate & baroque, through automated modeling.  None of that ornateness has made it into VR.  

    The other problem is the virtual environment can't become full time if it doesn't allow the same type of productivity as the real world.  The mane need is a representation of our real computer screen & user interface in the virtual environment.  Virtual representations of all our real tools could be the most important step, with the artwork being less critical.  Perhaps it could just render all our real furniture & tools in their real positions relative to our bodies, but surrounded by a different room.  The problem then becomes determining the position of our bodies in the real room.  Openpose can get most of the way there.

    The closest lions came to a compelling virtual environment was wearing the goggles while exercising.  Instead of showing a virtual representation of the exercise area in a better looking room, they showed a movie, but the pieces were there for a lion to not have to take the goggles off to be productive & better off.   Just getting to a point of showing a movie in a virtual screen, superimposed on the real location of the exercise mat in a more appealing room might be good enough.

    Existing VR exercise environments show a poorly rendered game rather than a movie or any kind of environment that looks better than reality.

    https://www.youtube.com/c/VRFitnessInsider/videos

    Has a quick rundown of the current state of what would be the closest to a productive VR replacement of reality.  None of the programs allow any kind of productivity besides the workout & the graphics are all terrible.

  • Virtual desktop for C64

    lion mclionhead12/31/2020 at 23:53 0 comments

    Lions absolutely won't waste any time on this, but if it was still 1985 & that was all there was, the lion kingdom would consider creating a virtual 640x400 or 1280x800 desktop for the C64, much like X windows of the last 30 years.  There were a lot of 80 column emulators that were barely legible.  Word processors of the late 80's used proportional fonts to fit more characters in.  Nothing tiled together full resolution screens to create a larger virtual screen that you could scroll around in.

    The C64 had a bitmap mode which burned 8000 bytes for the framebuffer + 1000 bytes for color information.  It could store 8 monochrome framebuffers in RAM, all sharing the same color buffer, leaving nothing for a program.   It could tile 4 framebuffers with enough left over for a program.  Bits could be memcopied to scroll sideways or it could switch banks to instantly switch the entire framebuffer.

    There was also a character mode which burned 1000 bytes per framebuffer + 1000 bytes for color information.  64 monochrome character screens could be tiled in all the RAM.  A more reasonable 16 character screens could be tiled in 16k of RAM to create a virtual 1280x800 desktop.

    The C64 couldn't wrap any unchanged programs in a tiled mode. There were window emulators which could multitask very simple BASIC programs in a single framebuffer, without any changes.  Any useful program would have to be rewritten from the ground up to use a tiled framebuffer.  

    There aren't many programs which could have used a virtual desktop for anything they didn't already do.  Most programs had scrollbars to scroll in the document.  It would manely be for running multiple programs simultaneously, but there wasn't enough RAM to really do that.  There were bank switchers which could run BASIC programs in a dedicated screen, simultaneously.

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