Interests: programming, video games, anime, music composition

I used to be on kbin as [email protected] before it broke down.

  • 1 Post
  • 7 Comments
Joined 10 months ago
cake
Cake day: November 27th, 2023

help-circle
  • I wrote something like this before for academic researchers to load data sets on display walls by using their cellphones. I approached it by building a simple website. When the user logs in, they’d see a table of entries (from a directory listing on a shared file server that they could drop their data sets onto) and could click a button that made a form post to the server which caused it to run whichever programs were needed to load the data set they wanted (or run a couple of other handy commands – like turning the monitors on/off, etc).

    You can do something like that too in Python if you want:

    1. Learn how to start and stop programs from Python scripts. This can be done with the built-in subprocess library. If you know how to launch the programs you want from the command line, it shouldn’t be too hard to figure out how to do it from Python by reading the documentation. It will take some more effort to figure out how to interact with it (e.g. to stop it from user input) without blocking your script, but this can be done.
    2. Learn how to write a simple program that can respond to HTTP requests in Python. There are a number of libraries like tornado, flask, cherrypy, etc. that can do this. Pick one, read the documentation, and write a tiny page that allows you to submit a form and then trigger an action on the server in response to an HTTP POST. You should be able to interact with it by pointing the browser on your computer to localhost (possibly plus a port) or from on your LAN by putting the IP of your computer into the address bar.
    3. Figure out how you’re going to organize the entries you want to be able to load. You could just do something trivial like putting the files in known folders and running os.listdir, or something more involved like tracking the entries with a spreadsheet or database or JSON file that lets you associate custom metadata with each entry (like a custom name to show or an icon to display or when it was last launched, etc.)
    4. Generate a web page based on that data collection. I recommend using templating – e.g. with mustache, or jinja, etc. Basically you write some HTML-like text that lets you indicate places to fill in data from your program and it will do the conversion of symbols like < into &lt; that are needed for HTML output and also repeat patterns using entries from lists you provide to build the rows of tables and such for you.
    5. Set up some security (e.g. a simple log in system) and polish it up as much as you care to do.

    Good luck and have fun!


  • Aww, I’m not trying to stomp anyone. :(

    I was just curious if it was actually the full list and before I knew it I’d spent 45 minutes checking Pokemon names to figure out what was missing, so I figured I’d share the corrections.

    If Kolanaki got that close just from memory, that’s pretty impressive! I had to look it up!


  • e0qdk@reddthat.comtoMemes@sopuli.xyzIt's been so long
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    3 months ago
    • Electrode, Diglett, Nidoran♂, Mankey, Venusaur, Rattata, Fearow, Pidgey, Seaking, Jolteon, Dragonite, Gastly, Ponyta, Vaporeon, Poliwrath, Butterfree, Venomoth, Poliwag, Nidorino, Golduck, Ivysaur, Grimer, Victreebel, Moltres, Nidoking, Farfetch’d, Abra, Jigglypuff, Kingler, Rhyhorn, Clefable, Wigglytuff
    • Zubat, Primeape, Meowth, Onix, Geodude, Rapidash, Magneton, Snorlax, Gengar, Tangela, Goldeen, Spearow, Weezing, Seel, Gyarados, Slowbro, Kabuto, Persian, Paras, Horsea, Raticate, Magnemite, Kadabra, Weepinbell, Ditto, Cloyster, Caterpie, Sandshrew, Bulbasaur, Charmander, Golem, Pikachu
    • Alakazam, Doduo, Venonat, Machoke, Kangaskhan, Hypno, Electabuzz, Flareon, Blastoise, Poliwhirl, Oddish, Drowzee, Raichu, Nidoqueen, Bellsprout, Starmie, Metapod, Marowak, Kakuna, Clefairy, Dodrio, Seadra, Vileplume, Krabby, Lickitung, Tauros, Weedle, Nidoran♀, Machop, Shellder, Porygon, Hitmonchan
    • Articuno, Jynx, Nidorina, Beedrill, Haunter, Squirtle, Chansey, Parasect, Exeggcute, Muk, Dewgong, Pidgeotto, Lapras, Vulpix, Rhydon, Charizard, Machamp, Pinsir, Koffing, Dugtrio, Golbat, Staryu, Magikarp, Ninetales, Ekans, Omastar, Scyther, Tentacool, Dragonair, Magmar
    • Sandslash, Hitmonlee, Psyduck, Arcanine, Eevee, Exeggutor, Kabutops, Zapdos, Dratini, Growlithe, Mr. Mime, Cubone, Graveler, Voltorb, Gloom, Charmeleon, Wartortle, Mewtwo, Tentacruel, Aerodactyl, Omanyte, Slowpoke, Pidgeot, Arbok

    I noticed while making this list that Lickitung was incorrectly spelled “LIKITUNG” on the third day.

    Edit: Also, for Nidoran♂ vs Nidoran♀ you have to look at the picture to distinguish since they just say “Nidoran” but they do say it twice!


  • That’s pretty good! But… that’s only 147. :-)

    Nidoran♀, and Nidoran♂ are separate and you’re missing Nidorina, Nidoqueen, and also Rhydon.

    Some other corrections:

    • Pigeotto -> Pidgeotto
    • Ninetails -> Ninetales
    • Diglit -> Diglett
    • Primape -> Primeape
    • Duouo -> Doduo
    • Cloysyer -> Cloyster
    • Ghastly -> Gastly
    • Electrabuzz -> Electabuzz
    • Gyrados -> Gyarados
    • Omantyte -> Omanyte
    • Arodactyl -> Aerodactyl

    (Yes, I looked it up. No, I have no life. :p)

    Cheers!