#with another one of my python files
Explore tagged Tumblr posts
hungarianmudkip69 · 9 months ago
Text
im gonna mcfucking lose it
1 note · View note
pforestsims · 5 days ago
Text
🔊 The Sims 2 sound effects - instances list (WIP)
Download txt file (BOX)
Below you'll find a list of The Sims 2 Base game sound resources that I've identified so far, along their instance number - this is for people who'd like to export particular sound, or replace it with something else.
My first attempt at replacing game sound resource with MP3 failed (older sound defaults: less dog barking in hood view and no bed woohoo music were made with resources found in the game files).
I used wrong export settings back then, now I tried MP3 32000 Hz /48kbs and it seems to work fine.
Worth noting - sound duration has to be the same as cutscene (or longer). If it's too short, it gets stretched and becomes too slow.
-----------------------
ALL sound resources extracted with SimPe get .MP3 extension, even if it's in fact an .xa file. Most audio players can't open .xa files and will throw an error.
XA format files can be converted to .WAV with Xantippe app. You need to change .mp3 extension to .xa before you open it - if xantippe throws an error that means the file is actually an mp3 or spx.
'Voice' files are almost exclusively spx format, more about that here, post by lingeringwillx @ MTS2 - they created python script to decode it, post includes instructions on how to tell if a resource is .xa or something else.
Lazyduchess has shared a re-encoded version of TS2 spx voice resources, these are mostly mp3 and can be played in any app. (Patreon DL link).
--------------------------
How to search for the sound in the game files:
Open TSData folder [The Sims 2 / base game Folder]/TSData/Res/Sound
Open one of these three sound packages in SimPe: Sfx1, Sfx2, Misc. Browse "mp3 or xa Sound File"
open "filter resources" tab on the right, paste Instance number (the last one in a row) and click 'set'
if nothing shows up, drop another sound package into SimPe (Sfx1, Sfx2, Misc) until you see the sound on the resource list.
Instance number is the LAST in a row
[ ? ] - [Instance(high)] - [Group] - [Instance]
example: 2026960B-7F75E59D-0B8AB3CD-FF05C5C6
instance = FF05C5C6
----------------------------------------------------------------
Cinematics / Events
(I've only specified if a file is MP3 in a few cases, but there could be more of those. Some sounds have a few versions so I can't guarantee these are actually used in the game)
0C6E3A70-0B8AB3CD-FF45ABBA lost Weight
2026960B-91CC2AC3-0B8AB3CD-FF081A6A giving birth
2026960B-8BB1E2CE-0B8AB3CD-FF2B96EE UFO abduction (an MP3 file)
2026960B-7F75E59D-0B8AB3CD-FF05C5C6 UFO - Sim returns (an MP3 file)
2026960B-8A0F83A5-0B8AB3CD-FFFA7AB9 alien birth
56A9AC78-6B8AB3D7-FFD763E1 plumbing malfunction
A60A0E48-AB8AB3D2-FF660BBF burglar theme
05EA3037-AB8AB3D2-FF838B86 developed a crush
00EC7172-AB8AB3D2-FFB15612 feLL IN LOVE
2026960B-ECDE4BA5-0B8AB3CD-FFF34D2B failed engagement
6F564CA3-AB8AB3D2-FF9F10A7 caught Cheating
2026960B-A1842B83-0B8AB3CD-FF509848 bed woohoo (an MP3 file) this one is used in the game
2026960B-2AA91173-0B8AB3CD-FF0C1673 hottub woohoo (an MP3 file)
2026960B-673DF43D-0B8AB3CD-FFCDA5F8 hottub woohoo, same as above, but louder (an MP3 file) Possibly used in the game but I'm not sure
E3017DDD-0B8AB3CD-FFDE90FB fireworks 1
1D29A473-0B8AB3CD-FF4A709D fireworks 2
4E7A4676-AB8AB3D2-FFDF28E2 Got promoted
2935C11F-AB8AB3D2-FF6777E4 social workers arrive
412D2401-AB8AB3D2-FF9EFAEC death
2026960B-5DE2C0D0-0B8AB3CD-FFABCEC1 ghosts? (creepy ambient)
C49567B9-ADA1F468-FFC79BDF quiet bells, mysterious ambient
9B817E4F-AB8AB3D2-FFC7516B bling !
50C4F377-0B8AB3CD-FFFA3E65 doorbell
5D87D5AE-0B8AB3CD-FFF6A793 nice Doorbell
Nature
2026960B-8E6F500E-0B8AB3CD-FFE90CD9 big fire
2026960B-B91CBC2E-0B8AB3CD-FFC106A2 thunder
2026960B-75C4A7CB-0B8AB3CD-FF441EAE Flies
2026960B-1DDBF5CB-0B8AB3CD-FF69A5A0 slow cicadas
2026960B-1098D312-0B8AB3CD-FF653C56 cicadas
2026960B-3E358AB1-0B8AB3CD-FFD3391C crickets less loud
2026960B-3376AC68-0B8AB3CD-FFDFA0EA crickets / jungle
660B32B0-4CC9E945-FF001DF3 single Cricket
A4890932-4C3E66EE-FFBFF835 single Loud Cricket
14E06D63-4CC9E945-FFAB8C2B very quiet Bird
05E7CF3B-2C3E53D9-FFDD6645 quiet bird 1
36DF6C79-4CC9E945-FF5558D6 quiet bird 2
4C7EC562-2C3E53D9-FFF0046A birds 1
4E1730EB-2C3F70D5-FFF352E8 birds 2
64ADEDB6-2C3E53D9-FF06AFCE single Bird 1
860EE7CD-AC4C568B-FF7A9383 single bird 2
A5961275-6E0A5058-FFDADC9C weird owl or something
C45E6713-2C3F70D8-FF6E98CC Owl hooting
ABC18F4D-4C3F70DE-FF223DA3 single Bird 3
ACA90A53-2C3F70D5-FF11F737 single chirpy Bird
DE814E15-6E0A5058-FFBBEC05 Crow
5A0AAD22-AC4C5684-FFCC9AC5 frogs
electronics /water / machines
49F28038-0B8AB3CD-FF5B3156 blender
E2B508B7-0B8AB3CD-FFC67282 jazuzzi hum
2026960B-7BDA5F0B-0B8AB3CD-FF6CC7D9 jacuzzi Hum 2
2026960B-FA6CA340-0B8AB3CD-FF2B2732 machine 1
2026960B-79FDA8C9-0B8AB3CD-FF39184F quiet car engine
2026960B-A5CCBC84-0B8AB3CD-FF67AFB1 hum
2026960B-51F6E7DF-0B8AB3CD-FFC77487 quiet hum
2026960B-0ACED28F-0B8AB3CD-FF21A07D tub water splash
2026960B-078DF456-0B8AB3CD-FF2D398B tub splash 2
2026960B-EF594603-0B8AB3CD-FF7BF68C machine 2
2026960B-6056339D-0B8AB3CD-FF8DED15 machine 3
2026960B-8FD1A3D8-0B8AB3CD-FFF6B07A water 2
2026960B-F8828DBC-0B8AB3CD-FF4BC580 machine 4
2026960B-53751DDD-0B8AB3CD-FFDDF748 water gurgle
2026960B-F5732187-0B8AB3CD-FF4FF045 jet
2026960B-42A7FD9F-0B8AB3CD-FFF6A592 quiet car engine
2026960B-62B6A707-0B8AB3CD-FF3592EC car 1
2026960B-78C55345-0B8AB3CD-FF205208 car fade off
2026960B-DAFBA3F9-0B8AB3CD-FFEA9191 jet fade off
2026960B-82F59CEF-0B8AB3CD-FF184230 light trafic
2026960B-BE0D9651-0B8AB3CD-FF62BECD shower or rain
2026960B-8FB6BA36-0B8AB3CD-FF14DBC6 light Traffic
2026960B-D4473A8C-0B8AB3CD-FF240C5E car 2
2026960B-D231F6E9-0B8AB3CD-FFF5F774 car 3
2026960B-A49FFBC2-0B8AB3CD-FF434DCC another car
2026960B-0164A643-0B8AB3CD-FF74F7C7 noise or shower
2026960B-193EDDA2-0B8AB3CD-FF010DB5 car 4
2026960B-8B2844F8-0B8AB3CD-FFE3B6EB car/ bus
2026960B-D7D2EA5F-0B8AB3CD-FF02932F cheap car or something
65 notes · View notes
kitkatt0430 · 2 months ago
Text
Welp, I've been using external methods of auto-backing up my tumblr but it seems like it doesn't do static pages, only posts.
So I guess I'll have some manual backing up to do later
Still, it's better than nothing and I'm using the official tumblr backup process for my smaller blogs so hopefully that'll net the static pages and direct messages too. But. My main - starstruckpurpledragon - 'backed up' officially but was undownloadable; either it failed or it'd download a broken, unusable, 'empty' zip. So *shrugs* I'm sure I'm not the only one who is trying to back up everything at once. Wouldn't be shocked if the rest of the backups are borked too when I try to download their zips.
There are two diff ways I've been externally backing up my tumblr.
TumblThree - This one is relatively straight forward in that you can download it and start backing up immediately. It's not pretty, but it gets the job done. Does not get static pages or your direct message conversations, but your posts, gifs, jpegs, etc are all there. You can back up more than just your own blog(s) if you want to as well.
That said, it dumps all your posts into one of three text files which makes them hard to find. That's why I say it's 'not pretty'. It does have a lot of options in there that are useful for tweaking your download experience and it's not bad for if you're unfamiliar with command line solutions and don't have an interest in learning them. (Which is fair, command line can be annoying if you're not used to it.) There are options for converting the output into nicer html files for each post but I haven't tried them and I suspect they require command line anyway.
I got my blogs backed up using this method as of yesterday but wasn't thrilled with the output. Decided that hey, I'm a software engineer, command line doesn't scare me, I'll try this back up thing another way. Leading to today's successful adventures with:
TumblrUtils - This one does take more work to set up but once it's working it'll back up all your posts in pretty html files by default. It does take some additional doing for video/audio but so does TumblThree so I'll probably look into it more later.
First, you have to download and install python. I promise, the code snake isn't dangerous, it's an incredibly useful scripting language. If you have an interest in learning computer languages, it's not a bad one to know. Installing python should go pretty fast and when it's completed, you'll now be able to run python scripts from the command line/terminal.
Next, you'll want to actually download the TumblrUtils zip file and unzip that somewhere. I stuck mine on an external drive, but basically put it where you've got space and can access it easily.
You'll want to open up the tumblr_backup.py file with a text editor and find line 105, which should look like: ''' API_KEY = '' '''
So here's the hard part. Getting a key to stick in there. Go to the tumblr apps page to 'register' an application - which is the fancy way of saying request an API. Hit the register an application button and, oh joy. A form. With required fields. *sigh* All the url fields can be the same url. It just needs to be a valid one. Ostensibly something that interfaces with tumblr fairly nicely. I have an old wordpress blog, so I used it. The rest of the fields should be pretty self explanatory. Only fill in the required ones. It should be approved instantly if everything is filled in right.
And maybe I'll start figuring out wordpress integration if tumblr doesn't die this year, that'd be interesting. *shrug* I've got too many projects to start a new one now, but I like learning things for the sake of learning them sometimes. So it's on my maybe to do list now.
Anywho, all goes well, you should now have an 'OAuth Consumer Key' which is the API key you want. Copy that, put in between the empty single quotes in the python script, and hit save.
Command line time!
It's fairly simple to do. Open your command line (or terminal), navigate to where the script lives, and then run: ''' tumblr_backup.py <blog_name_here> '''
You can also include options before the blog name but after the script filename if you want to get fancy about things. But just let it sit there running until it backs the whole blog up. It can also handle multiple blogs at once if you want. Big blogs will take hours, small blogs will take a few minutes. Which is about on par with TumblThree too, tbh.
The final result is pretty. Individual html files for every post (backdated to the original post date) and anything you reblogged, theme information, a shiny index file organizing everything. It's really quite nice to dig through. Much like TumbleThree, it does not seem to grab direct message conversations or static pages (non-posts) but again it's better than nothing.
And you can back up other blogs too, so if there are fandom blogs you follow and don't want to lose or friends whose blogs you'd like to hang on to for your own re-reading purposes, that's doable with either of these backup options.
I've backed up basically everything all over again today using this method (my main is still backing up, slow going) and it does appear to take less memory than official backups do. So that's a plus.
Anyway, this was me tossing my hat into the 'how to back up your tumblr' ring. Hope it's useful. :D
40 notes · View notes
youtopialanding · 23 days ago
Text
Youtopia
Chapter 1 : Never trust technology
Tumblr media
3928 words. TW : light body horror
Acid rain poured over the wasteland that had once been the megalopolis of Los Angeles. The ruins of an ancient civilization were still apparent, the steel of wrecked cars on an abandoned road rusty enough that some of them were destroyed by the aggressive water. The vague growl of disintegrating iron floated in the air, the only sound accompanying the torrential rain that contaminated the few remaining lakes on this desolate ground. Steps suddenly appeared in the distance, proving that someone was still alive in this apocalypse. A large shape walked among the wrecked cars, pulling a damaged cart with one of its wheels threatening to give way. Tall, wearing a black suit that covered both his hands and his entire head, Jolly paced around the scrap metal searching for new pieces to bring back to the general headquarters.
“M.I.N.D., can you analyze this one?” he asked out loud.
A light clinking started, the same sound you hear when computing hardware connects together. The tall man waited patiently until the sound finally stopped.
“There is a MacBook in the trunk, a model from 2026,” replied a robotic voice that seemed to come from his helmet. “I can’t detect anything else, and I can’t tell if it’s in good condition.” “Could be useful. Even if some people hate Apple components.”
Jolly wiped the acid rain from his integrated glasses, and looked in his cart to pull out a crowbar. After a few seconds of effort, the trunk’s lock gave way allowing him to rummage through the contents. A backpack full of holes, a worn blanket, a can of oil…and at the bottom, a laptop pouch which certainly hid the jackpot. The Swedish man smiled ; it was a good find, for once.
“Acidic levels exceed the limit, the air is too toxic and my battery is running low. We should return to headquarters before we encounter any bad surprises,” warned the AI. “I also detected some prowlers less than a mile away.” “I take it all,” Jolly said. “We’ll check the content and its condition at home. Ask Folio and Ruffilo to join me at the meeting point, and signal the position of these prowlers.” “Got it, boss.”
“FUCK !”
The swear word bounced off the cave’s rough walls, then vanished into a dark corridor. This one was very sudden.
“Language, boss.” “Oh, shut up !”
Frustration accumulated on Noah’s shoulders. He was lying on his back, under a huge desk with a gigantic computer on it. His head was lost among large black cables, all of them linking many - maybe too many - screens hung on the cave’s walls. No neons here ; the only available light came from the screens themselves, which projected a pale and flickering glow. The entire scene looked like a film noir.
Our man was in that uncomfortable position, because half of the screens suddenly turned off, as if fried by lightning. Another swear word escaped, and he finally gave up. Some cables still crackled, and he had no other choice but to cut them and hope they wouldn't electrocute him.
“Everything is lost,” he said while standing up, a handful of black threads in his gloved hand. “M.I.N.D., please check that nothing else is corrupted.” “On it, boss !”
The computer’s main screen, on which some Python code was running, suddenly changed and displayed a series of folders. Working by itself, the machine searched through the files at an amazing speed. Noah’s face was marked by fatigue; dark circles had grown under his bloodshot eyes, his hands were shaking as if he were under immense stress. His long body, once well-maintained, was now missing a good part of his muscles and he looked diminished with his back bent over like an old man. Numerous scars adorned his bare arms, some newer than others, some tattoos even disappeared under old wounds. In one word, the poor lad had known better days.
“Corruption detected in the system, but I managed to recover the second-to-last save,” the robotic voice finally claimed. “I’m restoring it right now.” “Better than nothing,” Noah whispered, although he didn’t look relieved at all. “High cortisol levels and blood pressure. You should rest.” “Leave me the fuck alone! I don’t have time for this!”
The irritation made him irrational. Raging against the entire world, Noah put his hand over his right arm and pulled abruptly, ripping off what seemed to be a piece of black plastic. Where the thing was plugged in was now a simple metallic circle, tightly secured to his flesh. Looking up close, it vaguely resembled a catheter one could find in hospitals back then, and there was no doubt that it served the same purpose. That was what guaranteed their survival : a permanent connection with M.I.N.D. who offered constant protection in this hostile world. But although he pulled that away, Noah couldn’t sever the ties with the AI. Not anymore.
“I was programmed to look after your health before everything else, boss. If you take off the device, I can’t fulfill my mission in its entirety,” the AI explained in a terribly neutral tone. “If you wanna piss me off every five minutes about my health, you can get fucked, I’m not putting back that fucking chip!” “Noah, don’t be childish.”
Suddenly, the feminine voice became more human, more…palpable. Using his real name instead of “boss” was unusual for her, and it totally threw him off. That change alone was enough for him to stop what he was doing and stare at the main computer screen. He came closer, slowly, put his hands down on the desk as a woman’s face appeared in front of him. His heart missed a beat.
She was here, M.I.N.D., staring back at him with a soft but accusing glance, her cartoony anime-like features moving with a surprising fluidity. Her brunette hair gently floated around her face as if it were underwater, and her dark eyes looked too real to be true. A smile strained her lips, on the verge of the uncanny valley, but soon came back to normal and opened.
“There, I like it better like that,” she said. “If you overwork yourself and die in the process, your mission will not be fulfilled.” “Yes, but…”Noah tried, but she cut him off. “The others can’t win without the both of us. It would take them years. You and I, we’re made to do great things. I’m your shield against her, remember ? And you’re my vessel. If one of us disappears, the entire operation is compromised.” “And you’re telling me that because…?” “You, humans, have a fragile carnal envelope. You have to take care of it. If you forget to take care of it for too long, you may die. The smallest mistake could be fatal.”
M.I.N.D. was right, obviously. Noah knew that deep down, he couldn’t last very long in a fight in his current condition. The stress kept him awake and he did overwork himself. However, this behavior didn’t make him win enough time to justify its existence. He should calm down.
A sigh, and suddenly he looked diminished again. These past couple of years felt like he aged ten years, and the more time passed, the less he felt even human. His eyes searched on the floor to find M.I.N.D.’s chip, which he fixed back where it belonged and winced when the device connected again. It wasn’t pleasant at all.
“Will you give me a sleeping pill?” he mumbled.
The AI’s avatar disappeared from the screen and the Python code appeared again. It was obviously running it in the background, like a deciphering algorithm.
“Of course, boss.” she said, taking back her usual robotic voice. “I’ll still be restoring the system while you rest your body.” “Jolly will surely fix you. If I’m not awake by then, leave the total access to your parameters to him. Except…” “Except the “core” folder, of course. On it, boss. Good night and sweet dreams.”
Jolly’s patience started to grow thin. His eyes swept over the plains, looked at his stats displayed on his right forearm, then looked at the landscape again. He had given the signal a while ago and hoped that his two acolytes would soon be by his side. With a deep sigh, the tall man kicked a stone that rolled further away. He was lucky in his misfortune : the acid rain calmed down a bit, and some radioactive rays of sunshine pierced through the dark clouds.
“How much time again ?” he grumbled out loud. “Folio seems close,” M.I.N.D. replied. “But I’ve lost contact with Ruffilo. He doesn’t reply to my requests, but I still have access to his vitals.” “His suit’s battery must be running low, like all of ours. We should think about taking a walkie-talkie like the old days, if we can find some.” “You wanna replace me, boss ?” “Of course not! Just…ah, nevermind.”
A dark silhouette finally appeared, struggling to pull a cart that looked maybe three times as full as Jolly’s. The man raised an eyebrow ; Folio had totally let go of the salvage, and he doubted that all his findings were very useful. Not even mentioning that his tarpaulin was gone, and the metal on top of all these things was significantly damaged by the rain.
“Folio, seriously?” Jolly sighed. “What? I need a lot of scrap steel to fix the ventilation !” the youngest justified. “And you think that your rusty stuff will be helpful?”
Nick shrugged, and crossed his arms over his chest out of defiance. As the youngest and the last addition to their team, he was always hot-headed and didn’t really like to follow orders. It was a real miracle that nothing happened to him, apart from a few scratches here and there. Not to mention the chip he too had on his arm, the only body modification they all consented to make. Noah was the only one who went further than that, but he had a very good reason to give up a part of his humanity behind.
“We should go home, shouldn’t we ?” The rain is starting to pour again,” Folio said, staring at his suit’s screen. “Five more minutes,” Jolly replied. “I’m sure he’ll join us soon.” “Maybe he’s already home ?” “He’s got orders, as we all do. He wouldn’t do anything against this order. It would be too dangerous, and he knows that.”
The oldest of them all started to be very concerned about Ruffilo’s absence, and his lack of patience began to show through jerky gestures. He checked his oxygen levels again, the time on his screen, and finally let out a swear word.
“C’mon, we have to find him”, he ordered in a serious tone. “Eh…don’t you want me to stay here and watch our stuff?” Nick tried. “If something happened to him, it means that the entire zone is way too dangerous to stay alone. You’re coming with me, that’s an order!” “Yeah, yeah…no need for high horses here.”
The young man kicked a stone to show his frustration, but complied and abandoned his findings to follow his elder. Jolly’s attitude proved how stressed he was, probably more troubled by their friend’s absence than he let on. Under his helmet, his face turned pale and his jaw was clenched, his dark blue eyes underlined by dark circles couldn’t stop sweeping over the plains in fear of a bad surprise. For that matter, he reached behind him and grabbed his assault rifle, checked the ammo and kept it in hand. Folio mimicked him ; if the eldest stayed alert that way, it meant that danger was upon them.
Seconds dragged as they walked through the ruins, the rain pouring more than ever with a concerning intensity. Fortunately for them, the wind was weak; a storm right now would be the worst timing ever. Each quiver was a potential threat, be one of the creatures that lived in this apocalyptic landscape or those who didn’t have their best interests in mind. More than ever, it was the silence, slightly broken by the moving metal under the acid, that was the creepiest.
“We should have found him already, shouldn’t we…?” Nick murmured, unable to stay silent as the stress was too high. “Shh,” was Jolly’s only response.
He thought the same thing, but hoped not to draw attention. The two of them could take on many opponents if they had the element of surprise ; it could save their lives. So they had to stay silent.
Too many minutes passed until they finally heard a growl not so far away. Jolly immediately turned towards the noise, wondering if he wasn’t heading straight into danger. But if danger there was, the hope to find their last teammate was also high ; the risk was calculated, and necessary. He adjusted his grasp on his weapon and walked closer and closer, until he froze. A piercing, inhuman scream, followed by a cry of pain, made his skin crawl.
“Fuck,” he cursed before immediately taking off running.
It was Nicholas’s voice, mixed with one of these prowlers’ shrieks. Fortunately, a few seconds were enough for them to find him, and what they saw froze them in terror.
A dark shadow thrashed on the ground, struggling to escape half a dozen of these humanoid creatures. Their skins were peeling off under the acid rain, their eyeless faces were cut in half by a big grinning mouth filled with sharp teeth. Their bestial growls were frightening, so horrifying that Folio stood completely paralyzed.
It wasn’t the case for Jolly. He raised his weapon in a flash and shot, exploding one of these monsters’ skull. A second bullet reached the throat of another one, and almost beheaded it. Unfortunately, the four remaining creatures were immediately drawn to this new threat. They turned toward him, abandoning the poor soul still writhing on the ground.
“Folio, move your fucking ass !” Jolly shouted, and finally his friend snapped out of his lethargy.
He drew his weapon too, hands shaking, and fired at one of the targets. His bullet flew past its ear, provoking a threatening shriek while turning its face towards him. Sheer panic blurred his vision, his breath grew short, and his focus dropped to near zero. He fired again; the bullet struck the creature’s shoulder, but it didn’t seem to care. It was still moving far too fast in his direction.
“No, no, no…” he moaned, emptying his ammo at the creature,half his shots didn’t even graze its deformed body. The rest of them landed somewhere in its stomach, but it didn’t seem to care.
He was about to die, right here and now. Die because he was too stupid to aim, too scared to save his friends. How could he think he’d be useful outside ? Despite the training, now that he was in the field, he realized that it was completely different and was losing his composure. The creature was now almost upon him. In a few seconds, it would pull his head off and devour what’s left of him. He stepped back, stumbled over a rock, and fell hard. Raising his arms to shield himself, he knew it was useless.
BANG.
The gunshot was so violent that Nick’s ears were ringing. His suit was now splattered with his enemy’s brain matter, from head to torso. What remained of the creature’s body slumped onto his legs, twitching slightly. He glanced over it, eager to see who had just saved his life, and saw a frail silhouette who was clearly struggling to stay upright. The barrel of its rifle was still pointing on him, held one-handed and pressed against the figure’s abdomen for support.
“Up !” this savior ordered in a hoarse voice, which he finally recognized as Ruffilo’s.
Ashamed of what he had just done, giving in to sheer panic instead of fighting properly, Folio immediately obeyed and pushed the body away with disgust. He realized that Jolly had already taken care of the rest of the creatures, and his cheeks turned red. Under his helmet, no one could see it. Good for him. 
“Erm… thanks…” he whispered. “Humpf,” Nicholas mumbled.
He was still struggling to stand up. When he could finally look at him more closely, Nick understood that his elder’s suit was in critical condition. His shoulder was exposed, marked with an impressive and bloody bite. The skin around the main bruise should normally be intact, but instead it was already melting due to the ever-present acid rain. His left hand was unprotected as well, and the plates on his back were misplaced. His clothes underneath wouldn’t hold up to the weather for long.
“M.I.N.D., can you analyze his vitals ?” Jolly asked. “It seems my sensors are damaged,” the AI replied. “Your suit’s battery is almost out. Energy-saving mode activated.”
The eldest cursed under his breath. Of course, they couldn’t rely on this bloody AI… but she had already warned them multiple times prior to that encounter, they could only blame themselves.
“We have to go back home,” he declared, and gave a piece of cloth to his friend. “Put your hand in that thing, it will limit the damage…” “Should we go back and pick up our stuff, or…?” Folio asked in a feeble voice. “No, they stay where they are. His condition is critical, and he’s been bitten. There’s no time to waste. We’ll go back for them later.”
“Boss, the team is back. They need you.”
Noah awoke from a deep sleep, his chalky face still weary from the past few days. How much time had he slept? Five minutes? Two hours? Nothing that could fix his problems, though, but he didn’t have a choice. If M.I.N.D. decided to wake him up after all her efforts to force him to rest, the situation must be urgent. He left his makeshift bed, stretched, and joined the cave’s main room. 
The three men had taken off their suits and showed obvious signs of conflict. Folio was hanging their equipment on the wall, Ruffilo was sitting half-naked on the central steel-made table and Jolly was searching frantically in what they called the “nurse’s desk”. It was a simple chest with many drawers, in which one could find everything they needed to treat a wound, cure a disease or, in this case, an infection. Noah came closer to the light, frowning, and Jolly jumped in surprise when he saw him.
“Noah!” he shouted suddenly. “M.I.N.D. told us not to bother you…” “She woke me up,” the man replied. “Can you report what happened?” “Ruffilo was late to the meeting point, so we tried to find him. He came upon a group of prowlers and was badly injured. His suit is half destroyed, and he’s been bitten…and also injured by the acid rain.” “Shit. Do we still have any antidote left ?” “That’s what I’m looking for, and…AHA !”
Jolly pulled out a very small vial of dark liquid, smirking. The prowlers’ bite was highly infectious, and if they didn’t want Nicholas to turn into one of them, they had to act swiftly. Noah sighed in relief, came closer to the injured man, and patted his thigh.
“You’re always looking for trouble, aren’t you?” he teased to ease the mood. “You should know me by now,” the other replied in a whisper.
Speaking was still painful, his body seemed too busy fighting the spreading infection and easing the pain in his shoulder and hand. The shoulder, by the way, had turned a nasty purple, another sign that the wound was far from being benign. 
Jolly approached with a syringe. He made sure that no air bubble would risk killing their friend, and stabbed it just below the wound. With a bit of luck, the antidote’s effect would take only a few minutes to be felt. For the rest… Nicholas would certainly suffer for a while.
“You seem troubled, Nick.”
Noah had enough of the headquarters, and immediately suggested going back outside to bring back their findings. M.I.N.D. wasn’t very cooperative at first, but she had to comply. Nick couldn’t just go back alone, Jolly was their best medic and had to monitor Nicholas’s health, and they desperately needed new components.
“No, well…yeah…I mean…what makes you think…?” the youngest stuttered, avoiding his friend’s glance. “You’ve been silent since we left the HQ. It’s unusual, coming from you.” “Oh, erm…well…”
Folio didn’t know what to reply. How could he possibly share his shame with the only one in their team who seemed perfectly unable to feel fear ? How could he share how useless he felt, that he may have compromised their mission and could have simply died because he was too stupid to fight ? He should have stayed hidden underground like a rat, instead of following them on this crazy journey. He thought he’d become a hero from the shadows, but in the end…he was just a burden for them.
“I screwed up,” he whispered, lowering his head. “Screwed up?” Noah repeated. “Earlier, I…I panicked. It almost cost my life, and…if Nicholas hadn't been there, I’d be dead by now.”
Silence. All one could hear was the sound of their steps in the apocalyptic desert. The rain stopped but the sky was still dark, and they weren’t safe from another shower. Suddenly, the older man stopped. He looked away in the distance, thinking.
“It’s perfectly normal to screw up sometimes,” he simply said. “But I shouldn’t have…I mean, I trained ! I should have known how to fight too. Jolly did everything, as usual.” “You remind me of myself a few years ago. Believe me, what you did today was nothing compared to the mess I’ve done in the past.”
Folio took off his helmet and glanced at his friend, wondering what the hell he was talking about, but Noah remained silent. He was lost in his thoughts, certainly thinking about that time he endangered many lives. Since he joined these rebels hoping to give sense to his life, the youngest of them all didn’t really bother to learn about the others’ past. Or yes, he did ; he tried to ask around, but nobody dared to speak and share their stories. So he learned not to ask again, but his curiosity was still high.
“Nicholas saved my life when we were kids,” Noah said while checking the inside of the carts they finally reached. “He often put himself in danger to save my ass. He hated me on principle, because I was an arrogant little brat…but he stayed with me, taught me everything he knew and followed me when I decided to launch this mission.”
That was the very first time Noah consented to delve a bit into his memories, and Folio felt honored. He stared at him with big glowing eyes, hung on every word, and finally understood that he wanted to reassure him.
“So…you don’t think he’s angry at me ?” Nick asked hopefully. “And…and Jolly neither ? He’s fought them all alone, and…”
“Jolly is a soldier before anything else,” the eldest interrupted. “He keeps a cool head in every circumstance, and never lets his emotions win. It’s normal not to measure up to him", he’s got way more experience than you do. And…if he were angry at you, you’d definitely know. He’s rather direct.”
Deep down, Noah’s mission was a success : Folio felt confident again, and understood that a simple mistake wouldn’t kill them on the spot. He just had to make sure he wouldn’t repeat the same mistake in a more delicate situation, that’s all. He smiled, happy about this news. He then grabbed his cart, threw his helmet in it and headed back to the headquarters.
“Oh, by the way…I thought you and Ruffilo were the best of friends in the world since forever,” he said and Noah laughed. “Naaaah…our story is rather spectacular, and there was a long time during which we would have killed each other if it weren’t for the greater good. But now, nothing and no one can tear us apart. Just like with Jolly, and you. You’re in the team now. It’s us four against the world.”
15 notes · View notes
mltshphq · 5 months ago
Text
BRB... just upgrading Python
CW: nerdy, technical details.
Originally, MLTSHP (well, MLKSHK back then) was developed for Python 2. That was fine for 2010, but 15 years later, and Python 2 is now pretty ancient and unsupported. January 1st, 2020 was the official sunset for Python 2, and 5 years later, we’re still running things with it. It’s served us well, but we have to transition to Python 3.
Well, I bit the bullet and started working on that in earnest in 2023. The end of that work resulted in a working version of MLTSHP on Python 3. So, just ship it, right? Well, the upgrade process basically required upgrading all Python dependencies as well. And some (flyingcow, torndb, in particular) were never really official, public packages, so those had to be adopted into MLTSHP and upgraded as well. With all those changes, it required some special handling. Namely, setting up an additional web server that could be tested against the production database (unit tests can only go so far).
Here’s what that change comprised: 148 files changed, 1923 insertions, 1725 deletions. Most of those changes were part of the first commit for this branch, made on July 9, 2023 (118 files changed).
But by the end of that July, I took a break from this task - I could tell it wasn’t something I could tackle in my spare time at that time.
Time passes…
Fast forward to late 2024, and I take some time to revisit the Python 3 release work. Making a production web server for the new Python 3 instance was another big update, since I wanted the Docker container OS to be on the latest LTS edition of Ubuntu. For 2023, that was 20.04, but in 2025, it’s 24.04. I also wanted others to be able to test the server, which means the CDN layer would have to be updated to direct traffic to the test server (without affecting general traffic); I went with a client-side cookie that could target the Python 3 canary instance.
In addition to these upgrades, there were others to consider — MySQL, for one. We’ve been running MySQL 5, but version 9 is out. We settled on version 8 for now, but could also upgrade to 8.4… 8.0 is just the version you get for Ubuntu 24.04. RabbitMQ was another server component that was getting behind (3.5.7), so upgrading it to 3.12.1 (latest version for Ubuntu 24.04) seemed proper.
One more thing - our datacenter. We’ve been using Linode’s Fremont region since 2017. It’s been fine, but there are some emerging Linode features that I’ve been wanting. VPC support, for one. And object storage (basically the same as Amazon’s S3, but local, so no egress cost to-from Linode servers). Both were unavailable to Fremont, so I decided to go with their Chicago region for the upgrade.
Now we’re talking… this is now not just a “push a button” release, but a full-fleged, build everything up and tear everything down kind of release that might actually have some downtime (while trying to keep it short)!
I built a release plan document and worked through it. The key to the smooth upgrade I want was to make the cutover as seamless as possible. Picture it: once everything is set up for the new service in Chicago - new database host, new web servers and all, what do we need to do to make the switch almost instant? It’s Fastly, our CDN service.
All traffic to our service runs through Fastly. A request to the site comes in, Fastly routes it to the appropriate host, which in turns speaks to the appropriate database. So, to transition from one datacenter to the other, we need to basically change the hosts Fastly speaks to. Those hosts will already be set to talk to the new database. But that’s a key wrinkle - the new database…
The new database needs the data from the old database. And to make for a seamless transition, it needs to be up to the second in step with the old database. To do that, we have take a copy of the production data and get it up and running on the new database. Then, we need to have some process that will copy any new data to it since the last sync. This sounded a lot like replication to me, but the more I looked at doing it that way, I wasn’t confident I could set that up without bringing the production server down. That’s because any replica needs to start in a synchronized state. You can’t really achieve that with a live database. So, instead, I created my own sync process that would copy new data on a periodic basis as it came in.
Beyond this, we need a proper replication going in the new datacenter. In case the database server goes away unexpectedly, a replica of it allows for faster recovery and some peace of mind. Logical backups can be made from the replica and stored in Linode’s object storage if something really disastrous happens (like tables getting deleted by some intruder or a bad data migration).
I wanted better monitoring, too. We’ve been using Linode’s Longview service and that’s okay and free, but it doesn’t act on anything that might be going wrong. I decided to license M/Monit for this. M/Monit is so lightweight and nice, along with Monit running on each server to keep track of each service needed to operate stuff. Monit can be given instructions on how to self-heal certain things, but also provides alerts if something needs manual attention.
And finally, Linode’s Chicago region supports a proper VPC setup, which allows for all the connectivity between our servers to be totally private to their own subnet. It also means that I was able to set up an additional small Linode instance to serve as a bastion host - a server that can be used for a secure connection to reach the other servers on the private subnet. This is a lot more secure than before… we’ve never had a breach (at least, not to my knowledge), and this makes that even less likely going forward. Remote access via SSH is now unavailable without using the bastion server, so we don’t have to expose our servers to potential future ssh vulnerabilities.
So, to summarize: the MLTSHP Python 3 upgrade grew from a code release to a full stack upgrade, involving touching just about every layer of the backend of MLTSHP.
Here’s a before / after picture of some of the bigger software updates applied (apologies for using images for these tables, but Tumblr doesn’t do tables):
Tumblr media
And a summary of infrastructure updates:
Tumblr media
I’m pretty happy with how this has turned out. And I learned a lot. I’m a full-stack developer, so I’m familiar with a lot of devops concepts, but actually doing that role is newish to me. I got to learn how to set up a proper secure subnet for our set of hosts, making them more secure than before. I learned more about Fastly configuration, about WireGuard, about MySQL replication, and about deploying a large update to a live site with little to no downtime. A lot of that is due to meticulous release planning and careful execution. The secret for that is to think through each and every step - no matter how small. Document it, and consider the side effects of each. And with each step that could affect the public service, consider the rollback process, just in case it’s needed.
At this time, the server migration is complete and things are running smoothly. Hopefully we won’t need to do everything at once again, but we have a recipe if it comes to that.
15 notes · View notes
dead-lights · 5 months ago
Text
blender tool: batch thumbnail renderer
i did a blender/python thing! i've seen some people posting about the hassle of taking thumbnails for pose packs and thought I'd put this up - I wrote a simple script a while back to take thumbnails for my blender pose library (those are up to 256x256 pixels, much bigger than the thumbs exported from S4S) but I imagine it would work for posemakers as well.
what this does: it automates the pose/render/save cycle. add your character to the scene, set up your camera, add your poses to a collection, and hit the button - it will put the character in each pose, render, save, and then move on to the next so you don't have to do it manually. this is especially useful for things like emotions packs where the camera does not need to be adjusted between poses.
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
what this doesn't do: you still have to position the camera and configure render settings, import your model, and add your poses to the scene. the camera does not move between renders, so if some poses are out of frame or otherwise don't work with the camera settings, you have to fix that manually.
i got kinda anxious about posting this and let it sit in my drafts for way too long - I used generic blender rather than sims-specific tutorials and worry I did things inefficiently or improperly, but it works for me, I use it often, and it saves me a lot of time, so I'll put it up. I welcome any criticism or advice people have for me.
i've uploaded a sample scene I used to get those renders of L, as well as the script itself in case you want to import it into your own scenes instead. the sample camera is set to produce 500x500 pixel thumbnails with an orthographic camera, rendered with Cycles, but you can set up the camera/renderer however you'd like.
download sample scene (includes script & instructions)
download script only
download instructions only (just a .txt file with everything below, but without pictures)
i'm going to work with the sample scene for these instructions, but this should work in any scene with a character mesh, an active camera, and a pose collection.
import your model. you need the mesh. this does not have to be in its own collection, as long as it isn't in the poses collection. set your active camera up to have the render settings/framing/zoom that you want. this will be used for every single thumbnail and cannot be adjusted in between renders.
Tumblr media
2. you need the rigs from the poses. for .blend poses exported from S4S, drag them into the scene, open "Object" and then select rig.
Tumblr media Tumblr media
make sure the rigs are going into your 'poses' collection - the collection doesn't have to be called 'poses' but it does need to contain ONLY pose rigs. name them whatever you'd like the thumbnails to be saved as.
Tumblr media
3. head over to the scripting tab. if the script "export_thumbs.py" isn't open, hit the folder button to find it.
Tumblr media
4. in the outliner, click on both the pose collection and the character mesh (note - NOT the character rig, you want the one with the inverted triangle and the wrench). you should see both icons selected.
Tumblr media
5. hit the "run script" button at the top of the scripting tab.
Tumblr media
at this point, if all went correctly, blender should appear to freeze (because it's doing stuff!) but you will notice a folder called "renders" appear in the directory with this blender file. Inside the renders folder, there will be another folder with the name of whatever character mesh you used - this allows you to run the script with multiple character meshes without overwriting files, as long as the meshes have different names. one by one, your thumbnails should show up here.
once the script has gone through every pose, blender will become usable again, and you should have a directory full of thumbnails. hooray!
Tumblr media
note: every pose in a collection will render with the same camera settings. if you need to change the camera, for example because you have both standing and sitting poses, you can divide the poses into different collections. you have to run this script for each collection of poses you want to render - it will not automatically go through every collection in your outliner - so this gives you the opportunity to adjust the camera between batches. because thumbnails are named after the pose names, overwriting shouldn't be an issue.
please let me know if you have any problems with this! It's possible the scene may cause issues in older versions of blender - it was saved with 4.1 - but if it doesn't work, the script itself works with versions at least as old as 3.3.
17 notes · View notes
iheartchv · 1 year ago
Note
could i ask for a matchup? also i hope your having a nice day/night/afternoon!! also, please excuse any bad grammar, english is not my first language.
im Cuban Puerto Rican, i speak both my mother tongue and English. kinda trying to get myself to learn German though. im a bit of an ambivert, i mostly enjoy spending time with those i know well.
im 5’2, i have a huge scar in my left leg due to an accident i had when i was younger. i have brown, nearly black eyes and i use glasses. i have a mole near my collarbone and another one just above. my hair is brown and medium sized with some side-tails.
currently studying with a forensic sciences major, a bit of a nerd.. i enjoy drawing, reading Sci-Fi and spending time with my pet snakes. (their ball pythons, they are super adorable…) i absolutely love heavy metal bands like Rammstein, korn, Slipknot, i listen to Type O Negative, Slaughter to Prevail from time to time aswell alongside jazz. i dress in a bit of a grunge way, it varies since i enjoy fashion a lot.
i enjoy watching true crimes series (Forensic Files being an all time favorite), watching Caso Cerrado, and documentaries regarding military history. i love the rainy weather and from time to time going to the beach. truly calming, really.
anyways, i really hope you are having a pleasant time, again. also i absolutely love your writing style!!
🤔I'll match you with...
Simon "Ghost" Riley 💀
Tumblr media Tumblr media Tumblr media
I think Ghost would be your match
For this scenario, lets just say that Ghost was to keep an eye on you for a mission
You had shown potential that anyone working for the law would want you to work with them
You have an internship working for the police in your area, getting some practice for the field
You weren't bad, quite good actually
And because you were so good, you would also become a threat to any criminal facing charges for murder, etc.
One of such being Makarov and the Konni group
TF 141 got word that Makarov killed their spy that was sending feedback and intel
You were unfortunately the one looking over the said body of 141's spy; the FBI and CIA wanted to know exactly who done it
As Ghost continued to have constant vigil over you in the shadows, he didn't like the idea of seeing you make your way home alone
He finally decided to start blending in with people, and sometimes walking your way
It's just for the mission, he'd tell himself
🖤
At first, seeing his appearance was a little scary, intimidating
But you didn't sense no ill will coming from him, at least not toward you
You initiated conversations with him, and little by little he was talking more than just a word or a sentence
Over time he got to know you pretty well, as much as you allowed
He noticed how open you were to him, letting him know that you trusted him
You were just full of surprises;
One thing after another he learned so much about you besides what was in your personal records
He started to see you as you, not just another nameless target to protect
🖤
Even after the mission is complete, he comes back to see you...
Maybe stay for a while...
I can totally see you and Ghost going to the beach during times when there's no one around
Just you two
And rainy days?
He'd be all for it
A hot cup of tea and being with you is one of those perfect moments he feels at peace
Tumblr media
56 notes · View notes
cyberstudious · 10 months ago
Text
Tumblr media
Tools of the Trade for Learning Cybersecurity
I created this post for the Studyblr Masterpost Jam, check out the tag for more cool masterposts from folks in the studyblr community!
Cybersecurity professionals use a lot of different tools to get the job done. There are plenty of fancy and expensive tools that enterprise security teams use, but luckily there are also lots of brilliant people writing free and open-source software. In this post, I'm going to list some popular free tools that you can download right now to practice and learn with.
In my opinion, one of the most important tools you can learn how to use is a virtual machine. If you're not already familiar with Linux, this is a great way to learn. VMs are helpful for separating all your security tools from your everyday OS, isolating potentially malicious files, and just generally experimenting. You'll need to use something like VirtualBox or VMWare Workstation (Workstation Pro is now free for personal use, but they make you jump through hoops to download it).
Below is a list of some popular cybersecurity-focused Linux distributions that come with lots of tools pre-installed:
Kali is a popular distro that comes loaded with tools for penetration testing
REMnux is a distro built for malware analysis
honorable mention for FLARE-VM, which is not a VM on its own, but a set of scripts for setting up a malware analysis workstation & installing tools on a Windows VM.
SANS maintains several different distros that are used in their courses. You'll need to create an account to download them, but they're all free:
Slingshot is built for penetration testing
SIFT Workstation is a distro that comes with lots of tools for digital forensics
These distros can be kind of overwhelming if you don't know how to use most of the pre-installed software yet, so just starting with a regular Linux distribution and installing tools as you want to learn them is another good choice for learning.
Free Software
Wireshark: sniff packets and explore network protocols
Ghidra and the free version of IDA Pro are the top picks for reverse engineering
for digital forensics, check out Eric Zimmerman's tools - there are many different ones for exploring & analyzing different forensic artifacts
pwntools is a super useful Python library for solving binary exploitation CTF challenges
CyberChef is a tool that makes it easy to manipulate data - encryption & decryption, encoding & decoding, formatting, conversions… CyberChef gives you a lot to work with (and there's a web version - no installation required!).
Burp Suite is a handy tool for web security testing that has a free community edition
Metasploit is a popular penetration testing framework, check out Metasploitable if you want a target to practice with
SANS also has a list of free tools that's worth checking out.
Programming Languages
Knowing how to write code isn't a hard requirement for learning cybersecurity, but it's incredibly useful. Any programming language will do, especially since learning one will make it easy to pick up others, but these are some common ones that security folks use:
Python is quick to write, easy to learn, and since it's so popular, there are lots of helpful libraries out there.
PowerShell is useful for automating things in the Windows world. It's built on .NET, so you can practically dip into writing C# if you need a bit more power.
Go is a relatively new language, but it's popular and there are some security tools written in it.
Rust is another new-ish language that's designed for memory safety and it has a wonderful community. There's a bit of a steep learning curve, but learning Rust makes you understand how memory bugs work and I think that's neat.
If you want to get into reverse engineering or malware analysis, you'll want to have a good grasp of C and C++.
Other Tools for Cybersecurity
There are lots of things you'll need that aren't specific to cybersecurity, like:
a good system for taking notes, whether that's pen & paper or software-based. I recommend using something that lets you work in plain text or close to it.
general command line familiarity + basic knowledge of CLI text editors (nano is great, but what if you have to work with a system that only has vi?)
familiarity with git and docker will be helpful
There are countless scripts and programs out there, but the most important thing is understanding what your tools do and how they work. There is no magic "hack this system" or "solve this forensics case" button. Tools are great for speeding up the process, but you have to know what the process is. Definitely take some time to learn how to use them, but don't base your entire understanding of security on code that someone else wrote. That's how you end up as a "script kiddie", and your skills and knowledge will be limited.
Feel free to send me an ask if you have questions about any specific tool or something you found that I haven't listed. I have approximate knowledge of many things, and if I don't have an answer I can at least help point you in the right direction.
22 notes · View notes
lucywritesagain · 10 months ago
Text
I wouldn't say no
꒰ა ˚₊ ✧・┈﹕Loki masterlist ꒰ ᐢ。- ༝ -。ᐢ ꒱ Navigation ﹕┈・𐑺 ‧₊˚໒꒱
Please note that this story is a repost from my old blog @lucywrites02.
Summary: Loki pays you a visit, saying that Bubbles- his cat- may be allergic to Thor. Is Loki serious or is it another excuse to hang out with you?
Word count: 0.7k
Tumblr media
“You again?”
That was the way you greeted Loki as you walked into your office- a few folders under your arm and a box of medical gloves in the other. Your white coat flew behind you with every step like a cape, making you feel like in a movie. In all those years working as a vet it had never gotten bored.
“It’s nice to see you, too.” The trickster replied with a playful smile.
“What seems to be the problem, buddy?” You leaned over the table and gently patted your little friend’s head who purred in approval. “Why did your dad bring you here this time?”
“I think he’s allergic to Thor.” Loki said.
“Ha, that’s a good one!” You giggled, but stopped when you noticed their dead serious expression. “That’s a joke, right? Tell me you’re joking.”
“Why would I?” The god put his hands in the pockets of his dark blue jeans- something they didn’t wear often. “I noticed that Bubbles acts differently every time my brother visits.”
You weren't sure if it was a prank or if Loki really thought his cat could be allergic to his brother. The first time you met the god they barged into your office right before closing because the cat he just adopted was sleeping too much and refused to leave until you explained to him how the cat's body worked in great detail. You found it sweet how much Loki cared about that little creature and how eager they were to learn more. And what better way to learn than to take your information from the professionals? The second time they visited was to give Bubbles his vaccines and make a file for him. One time Loki ran into your office while you were in the middle of examining Clair- a beautiful ball python who has been your patient since the day she hatched- just to tell you that Bubbles made a chirping noise while watching birds and if it was normal for a cat to do this.
“Different? How?” You straighten your back, giving all your attention to the trickster.
“He’s really affectionate with Thor and he always hated people”
“Let me get this clear-” you had to hold your laugh for Loki’s sake. You were a professional after all and Loki- although a friend- was still your client. “You think Bubbles is sick because he likes Thor?”
“Obviously.”
“Alright.” You sighed and put on a new pair of gloves. You pretended to examine your little friend, feeling Loki’s eyes on you. Thankfully Bubbles was a very brave patient and you never had much problems with him. He even let you touch his belly. That’s why instead of looking for the cause of the cat’s ‘unusual behaviour’ you just tickled him here and there- which he really liked.
“If you wanted to ask me out you could have just said so. Or you could always just call me.” You have my number.” You broke the silence while still giving all of your attention to Bubbles, who happily flipped on his back, demanding belly scratches.
“I’m not- that’s not-” The god of mischief stuttered, suddenly taking an interest in that one picture of your dog on the wall. You have figured out his little plan and that was just embarrassing to him.
“I wouldn’t say no.” You smiled, looking directly at Loki who was still refusing to meet your eyes.
“Pardon?” The god asked, surprised.
“If you asked me out I wouldn’t say no.” You left Loki speechless. Their heart was beating like crazy and his mind was completely empty. “You know how much I love it when you and Bubbles pay me a visit every 2 hours, but I have other patients waiting for me so….”
“Oh yes, that’s-” The god took his cat into his arms and awkwardly stood in the middle of the room, thinking about their next move. “So if I asked whether you had time for dinner tonight you wouldn’t say no?” The god of mischief asked, still unsure of your answer.
“Only if you pay.”
“I guess it’s a date then.” Loki opened the door to finally exit your office. Their heart was still beating fast and almost stopped when you said-
“I guess it is.”
34 notes · View notes
hydrossity-zone · 3 months ago
Text
idk if people actually care about this but Im thinking about making another model ripping tutorial . problem is. which one.
caveats:
Forces is technically a Hedgehog Engine 2 game, however it works drastically different from Frontiers/Shadow Generations, and the way it processes normal maps are different as well. Otherwise, pretty easy
the Storybook games use the exact same stuff between them and you only need one tool (and the SEGA NinjaNext blender plugin) to get everything from them and I think thats beautiful
Most of the reverse engineering done for Hedgehog Engine games was done for Generations and works perfectly for other games as well, however despite this Ive never seen a proper tutorial (written or otherwise) for how to do it even though its the most common and super easy??
Heroes and Shadow05 are the only two games in the entire franchise that use RenderWare which is fascinating to me as it was a super common and in fact the most commonly used game engine and 3d API in that era. Most of the tools used for it are meant for the ps2 GTA trilogy games and modding scene which is funny to me
for original Riders Im gonna be honest this is difficult to do but I Want people to know how to do it especially since I had next to zero guidance on how to do it myself and want to help people avoid the same grief. You will need to know how to use python and command line for this but I promise once thats out of the way its smooth sailing. Dont jump in blind. the same general process works for both the Gamecube and the PC version. also the Riders rips on the-models-resource are in desperate need of replacement theyre soooo baaadddddd
all the main sonic mobile games use Unity. its super easy. the models are in fbx format in the game files. wonderful
note this isnt necessarily what I'll do first, just to see what people want the most.
no Frontiers tutorial bc its pretty much the exact same as my Shadow Generations tutorial with the same tools and everything. no Zero Gravity tutorial either bc all the game files are packed in cvm files which require python, command line, and a hex editor to extract from which is. painful. once I rip from sadx and sa2b I'll also propose a tutorial for them I just wanna do it myself first before I tell other people how to do it lol
7 notes · View notes
krinsbez · 6 months ago
Text
Help Me Pick My Next TTRPG Thing, Part II: 12/29/24 Edition
Ok, folks, y'all picked something based on existing media. This does not narrow it down as much as you might think. Behold, a not complete list of potential options:
The Goon
-Hellboy
-Terminator
-Blade Runner
-Avatar: The Last Airbender/Legend of Korra
-Alien
-Army of Darkness
-The Dark Crystal
-Labyrinth
-Mistborn
-The Dying Earth by Jack Vance (I have stuff from two different games based on this, and am slowly accumulating more stuff)
-Lankhmar (that is to say Fafhrd and the Gray Mouser by Fritz Leiber, another one I have two different versions of that I am accumulating)
-Conan
-Dune
-Transformers
-GI Joe
-Power Rangers
-My Little Pony
-Atomic Robo-Lyonesse by Jack Vance
-Jack Vance's Gaean Reach
-Amber by Roger Zelazny
-The Dresden Files
-Monty Python
-Buffy the Vampire Slayer
-Mouse Guard
-Flash Gordon
-Blacksad
-The Witcher
-Zorro
-The works of M. R. James
-Rivers of London (which I left off my previous list of Continues, bah)
-The Sixth Gun
-The Expanse
-Tales From The Loop
-Pacific Rim
-Highlander
-Escape From New York
-Kong: Skull Island
-Rambo-The Crow
-Judge Dredd (I actually have two of these, and a quasi-version)
-DIE
-CHEW
-The Few and Accursed
-Artesia
-StarGate
-FarScape
-Jirel of Joiry
-Winter of the World by Michael Scott Rohan
-Rikkety Stitch and the Gelatinous Goo
-Deryni
-The Sovereign Stone
-Planet of the Apes
-Tenchi Muyo
-Ghostbusters
I am pretty sure I am missing some. Note that these aren't all complete games. I also have, like a bunch of Oz/Wonderland/King Arthur/etc./etc. stuff, and a bunch of quasi-versions of various stuff.
Anyways. Obviously, picking from this is tricky. In order to get myself a shortlist, I am gonna ask you guys to help me again.
Should my next thing be Pulp or not?
14 notes · View notes
seagull-support · 8 months ago
Text
Freedom Through Code
People always tout the career-related benefits of learning to code, but something I've noticed in my years writing it is that there's a sense of freedom that comes with it. I can just like, do things that I want or need to do. Learning some basic Python opened up so many doors for me, if I wanted to know something or if I wanted to do something I could just do it myself. Some examples:
Need to rename a ton of files (like removing something that a converter added to the file name)? Just use a for loop!
Need to convert a list of text from one format to another? (like point form list to a CSV that excel can use) Just use string.split and some slicing to rejoin everything.
Writing a math proof and need to come up with a counterexample for something? Just brute-force it if the case is based on integers. (very helpful for modular arithmetic problems)
Need to do a task that's actually like 9 really different steps? You can usually just write a program to do it in 15 minutes.
Doing a really complicated math problem and want to be able to check you punched a number in? Desmos works great, but if you need to use custom functions that aren't supported, just write it all up in Python. You might run into some small floating point weirdness, but it'll be minor enough to ignore.
There are a TON of tools online that you can make yourself in the Python shell faster than you could google and find them. Even if you never want to touch the computer science space with a 10 foot pole, learning major skills like this grants you a unique kind of freedom that you can only achieve by turning an arcane space into one that's just foggy.
9 notes · View notes
nocturne-of-illusions · 3 months ago
Note
Maybe I’m just stupid but I downloaded Python, I downloaded the whole tumblr backup thing & extracted the files but when I opened the folder it wasn’t a system it was just a lot of other folders with like reblog on it? I tried to follow the instructions on the site but wtf does “pip-tumblr-download” mean? And then I gotta make a tumblr “app”? Sorry for bugging you w this
no worries! i've hit the same exact learning curve for this tool LMAO, so while my explanations may be more based on my own understanding of how function A leads to action B rather than real knowledge of how these things Work, I'll help where i can!
as far as i understand, pip is simply a way to install scripts through python rather than through manually downloading and installing something. it's done through the command line, so when it says "pip install tumblr-backup", that means to copy-paste that command into a command line window, press enter, and watch as python installs it directly from github. you shouldn't need to keep the file you downloaded; that's for manual installs.
HOWEVER! if you want to do things like saving audio/video, exif tagging, saving notes, filtering, or all of the above, you can look in the section about "optional dependencies" on the github. it lists the different pip install commands you can use for each of those, or an option to install all of them at once!
by doing it using pip, you don't have to manually tell the command line "hey, go to this folder where this script is. now run this script using these options. some of these require another script, and those are located in this other place." instead, it just goes "oh you're asking for the tumblr-backup script? i know where that is! i'll run it for you using the options you've requested! oh you're asking for this option that requires a separate script? i know where that is too!"
as for the app and oauth key, you can follow this tutorial in a doc posted on this post a while back! the actual contents of the application don't matter much; you just need the oauth consumer key provided once you've finished filling out the app information. you'll then go back to your command line and copy-paste in "tumblr-backup --set-api-key API_KEY" where API_KEY is that oauth key you got from the app page.
then you're ready to start backing up! your command line will be "tumblr-backup [options] blog-name", where blog-name is the name of the blog like it says on the tin, and the [options] are the ones listed on the github.
for example, the command i use for this blog is "tumblr-backup -i --tag-index --save-video --save-audio --skip-dns-check --no-reblog nocturne-of-illusions"... "-i" is incremental backups, the whole "i have 100 new posts, just add those to the old backup" function. "--tag-index" creates an index page with all of your tags, for easy sorting! "--save-video", "--save-audio", and "--no-reblog" are what they say they are.
⚠️ (possibly) important! there are two current main issues w backups, but the one that affected me (and therefore i know how to get around) is a dns issue. for any of multiple reasons, your backup might suddenly stall. it might not give a reason, or it might say your internet disconnected. if this happens, try adding "--skip-dns-check" to your options; if the dns check is your issue, this should theoretically solve it.
if you DO have an issue with a first backup, whether it's an error or it stalls, try closing the command window, reopening it, copy-pasting your backup command, and adding "--continue" to your list of options. it'll pick up where it left off. if it gives you any messages, follow the instructions; "--continue" doesn't work well with some commands, like "-i", so you'll want to just remove the offending option until that first backup is done. then you can remove "--continue" and add the other one back on!
there are many cool options to choose from (that i'm gonna go back through now that i have a better idea of what i'm doing ksjdkfjn), so be sure to go through to see if any of them seem useful to you!
2 notes · View notes
tofueggnoodles · 1 year ago
Text
My Drama CD translation workflow
The first Drama CD I ever translated is One-Day Store Manager. That was in July 2022, nearly two years ago. Until recently, the workflow was simple, at least on the surface. I listened and either typed out the first thing that came to mind or looked up what I heard in jisho. If the sentence was long and complicated, I would listen to it at half-speed a few times, transcribed it into romaji and tried to figure out the translation as I stared at the transcription. Obviously, it was a slow and painstaking process.
During the past few years, rapid progress has been made in the fields of machine transcription and translation. Even back in 2022, I had the nagging feeling that things could be sped up.
Last April, I finally did it. After scouring the world wide web, I cobbled up some python scripts to do a couple of things.
1. Automatic transcriptions from mp3 files. Yep. This removes the major pain in the neck. However, as they say in computer science, garbage in garbage out (GIGO). The quality of the transcription depends on the audio quality of the mp3 file, of course. The amount of corrections I have to make is correlated to the bitrate. If the quality is good, I only have to correct about five percent of the transcription.
2. Automatic translation. Not so great, but it takes away the hassle of translating simple sentences and stock expressions. It is equivalent to copying and pasting into Google Translate site, but in bulk. Again, the GIGO principle applies. Hence the importance of making sure the Japanese text makes sense in the first place.
I will use a short scene from Kyouka Suigetsu to demonstrate the advantages and the pitfalls of automation in Japanese to English translation.
The speech to text output is a chunk of text, sans punctuation and indication of who is speaking. The script is particularly bad at transcribing our guy’s names. Hakkai is either eight floor, destruction, eight times or Bajie. (The last is not technically wrong, though.)
Here is how the translation looks like. Of course, it is also a chunk of text.
Here is the edited transcription. I corrected the obvious mistakes and indicated who is speaking at the beginning of their lines.
Again, GIGO. The output of machine translation this time is much better. It is not perfect, but I find it so much easier to re-translate with the Japanese text just below each line.
Still, the fact that even the automatic translation from the automatic transcription makes more sense than a translation made by a human being nearly twenty years ago is a testament to how far the transcription and translation technologies have come. The fears expressed by some professional translators are far from unfounded.
The day Google Translate matches a human translation more than ninety-five percent of the time is the day yet another job becomes obsolete thanks to AI. (Yes, I’m quite pessimistic about this. Why are we letting AI do all the fun stuff [art, writing, translation] and none of the soul-crushing or dangerous jobs?)
Advertisement: I made a wordpress blog for putting my BL Drama CD translations. If you happen to be a BL Drama CD fan, you can compare my manual translation to the one using this semi-automated workflow (ongoing, first disc completed).
8 notes · View notes
moose-mousse · 1 year ago
Text
I work for insane people
So… I started work a few months ago and...
I keep being impressed with corporations lowering my expectations.
Like. EVERY time I think "Surely, this is as incompetent as it gets".
The boss is nice, the workers are nice, every PERSON is great so far. But the firm is just… fucked in ways that makes it hard to not scream with laughter.
It is like working in the ministry of silly walks by Monty Python. Insane things are happening, and everyone just acts like it is normal.
A dude was stating to someone else near me, that despite the costumers saying they did not want it, his code that crashed the application once a day, was NECESSARY, because writing code without memory leaks in C is basically impossible. Like… I just have all these small moments of insanity. Completely disconnected from each-other
My boss showing me and the other 3 new hires the coffee room, where a big screen proudly shows that not a single software product have 100% code coverage… as in, not a single person in this entire building filled with software people knows how code coverage works. He then points out an empty bowl, and declares "Twice a week, there is a fruit event". By which he means, fresh fruit is provided, and people can just grab some…. just said by a alien who is pretending to be human. Badly.
He then explained that the 2 coffee machines in here makes bad coffee. He then takes us to the copy room, showing us that THIS is where the GOOD coffee machine is. Which only takes coffee beans from a SPECIFIC vendor (Is… is the coffee machine… sponsored????)
He briefly pets the Foosball table (Again, in the copy room), which is jammed up against the wall so you can only reach the controls on one side ( Because, again, it is a copy room, and there is not enough space for it ) and he exclaims "Ahhhh… Not enough people are using this"
Suggesting, that he is trying to promote the little known sport "Single-player Foosball">
I start setting up my work PC and... Whenever any of the developers in this place wants to install things on their PC's, including compilers and testing frameworks, they have to either use the "SOFTWARE CENTER" program, which installs it FOR you… or in 10% of the cases, fails, without giving you any context for why it did that, and no tools for fixing it. Is it missing a dependency? Not working with the OS? Who knows!
Some programs cannot be installed like this though, because the SOFTWARE CENTER is not updated a lot. And when you want to install something the normal way… You get a popup, where you must provide a written explanation for why you need to have temporary admin rights to your own dang PC … you then submit that, and your screen will then be watched remotely by a worker from India, for a varied amount of time you are not told…
Or at least it says so. Maybe the Indian dude watching me is just an empty threat. Who knows. But they get to see me running absolutely… BONKERS .bat files
Like, I CHECKED them, and a good 80% of them calls a Power-Shell script in the folder above it, called "YES_OR_NO.ps1" which opens a windows 95 window informing you that DURING INSTALLATION YOU MAY NOT USE THE KEYBOARD OR MOUSE, AS IT MAY DISTURB THE SCRIPT THAT WILL INSTALL THE PROGRAM. A normal installation wizard then runs, except the developers are not trusted to click the buttons, and instead the script does it for you by moving and clicking the mouse.
All of this is documented. In markdown like reasonable people? Of course not! It is in ENHANCED markdown. Which is markdown in the same way javascript is java.
ENHANCED markdown requires browser and visual studio code extensions to be read. Completely missing the point of markdown being readable both raw and encoded… And sometimes word documents And sometimes power-point presentations left next to another bat file… this one calling the .exe file… right next to it…. I later found out is because the idea USED to be that all documentation MUST be made with Microsoft office tools.
I had to read the code of conduct today. And it was actually very well written.
I then watched a interactive animation telling me about the code of conduct… which it not only got a fact wrong about, it also broke it once.
I repeat. The introductory course in the code of conduct… broke the code of conduct'
After I watched that, and read the safety material…. which literally just said "Wear safety boots in the production floor"… I was then show the testing room.
I was lead to a different building, saying hello to the Vice CEO who was walking the other way, we walk into the production floor, ignored the fact that none of us have safety boots on, and walks into a room, with a 3*2 meter wide machine, several meters tall.
We edge around it, quietly hoping no one turns it on, since we would get slammed by it if they did, and walk down some stairs into the basement. Casually walk over a small river in the floor from a pipe that is leaking… what I really hope is water, and over to a shelf rack FILLED with the most MacGyver shit you ever did see.
Including, but not limited to, the 3D printed plastic block, with a piston that repeatedly smacking half a aluminum nameplate over the device it is testing. You see, it is a capacitance button, and it is testing it by simulating a human finger pressing it many thousands of times, a saws off antenna which is the end of a cable that is attached to it via a nice thick bolt, so it can send fake signals into it.
And of course the 24 volt, 5 amp system that is turning a circuit board on and off again, until it will crack.
We walk back out, remembering to step over the small river, which never even got a comment, and walk back to my department It is SO great. It is like working in the ministry of silly walks by Monty Python Like… Do I think I can bring value to this company? Like, making it better and more efficient? Yes. It would be hard not to!
And his is the largest pump manufacturer in the world! A super serious company with 4 billion dollars of revenue a year. And it is just… a NUTHOUSE
Like… NEVER believe the myth that corporations are competent.
12 notes · View notes
esoxy · 2 years ago
Text
So let's get into the nitty-gritty technical details behind my latest project, the National Blue Trail round-trip search application available here:
This project has been fun with me learning a lot about plenty of technologies, including QGis, PostGIS, pgRouting, GTFS files, OpenLayers, OpenTripPlanner and Vita.
So let's start!
In most of my previous GIS projects I have always used custom made tools written in ruby or Javascript and never really tried any of the "proper" GIS tools, so it was a good opportunity for me to learn a bit of QGIS. I hoped I could do most of the work there, but soon realized it's not fully up to the job, so I had to extend the bits to other tools at the end. For most purposes I used QGis to import data from various sources, and export the results to PostGIS, then do the calculations in PostGIS, re-import the results from there and save them into GeoJSON. For this workflow QGIS was pretty okay to use. I also managed to use it for some minor editing as well.
I did really hope I could avoid PostGIS, and do all of the calculation inside QGIS, but its routing engine is both slow, and simply not designed for multiple uses. For example after importing the map of Hungary and trying to find a single route between two points it took around 10-15 minutes just to build the routing map, then a couple seconds to calculate the actual route. There is no way to save the routing map (at least I didn't find any that did not involve coding in Python), so if you want to calculate the routes again you had to wait the 10-15 minute of tree building once more. Since I had to calculate around 20.000 of routes at least, I quickly realized this will simply never work out.
I did find the QNEAT3 plugin which did allow one to do a N-M search of routes between two set of points, but it was both too slow and very disk space intense. It also calculated many more routes than needed, as you couldn't add a filter. In the end it took 23 hours for it to calculate the routes AND it created a temporary file of more than 300Gb in the process. After realizing I made a mistake in the input files I quickly realized I won't wait this time again and started looking at PostGIS + pgRouting instead.
Before we move over to them two very important lessons I learned in QGIS:
There is no auto-save. If you forget to save and then 2 hours later QGIS crashes for no reason then you have to restart your work
Any layer that is in editing mode is not getting saved when you press the save button. So even if you don't forget to save by pressing CTRL/CMD+S every 5 seconds like every sane person who used Adobe products ever in their lifetimes does, you will still lose your work two hours later when QGIS finally crashes if you did not exit the editing mode for all of the layers
----
So let's move on to PostGIS.
It's been a while since I last used PostGIS - it was around 11 years ago for a web based object tracking project - but it was fairly easy to get it going. Importing data from QGIS (more specifically pushing data from QGIS to PostGIS) was pretty convenient, so I could fill up the tables with the relevant points and lines quite easily. The only hard part was getting pgRouting working, mostly because there aren't any good tutorials on how to import OpenStreetMap data into it. I did find a blog post that used a freeware (not open source) tool to do this, and another project that seems dead (last update was 2 years ago) but at least it was open source, and actually worked well. You can find the scripts I used on the GitHub page's README.
Using pgRouting was okay - documentation is a bit hard to read as it's more of a specification, but I did find the relevant examples useful. It also supports both A* search (which is much quicker than plain Dijsktra on a 2D map) and searching between N*M points with a filter applied, so I hoped it will be quicker than QGIS, but I never expected how quick it was - it only took 5 seconds to calculate the same results it took QGIS 23 hours and 300GB of disk space! Next time I have a GIS project I'm fairly certain I will not shy away from using PostGIS for calculations.
There were a couple of hard parts though, most notably:
ST_Collect will nicely merge multiple lines into one single large line, but the direction of that line looked a bit random, so I had to add some extra code to fix it later.
ST_Split was similarly quite okay to use (although it took me a while to realize I needed to use ST_Snap with proper settings for it to work), but yet again the ordering of the segments were off a slight bit, but I was too lazy to fix it with code - I just updated the wrong values by hand.
----
The next project I had never used in the past was OpenTripPlanner. I did have a public transport project a couple years ago but back then tools like this and the required public databases were very hard to come by, so I opted into using Google's APIs (with a hard limit to make sure this will never be more expensive than the free tier Google gives you each month), but I have again been blown away how good tooling has become since then. GTFS files are readily available for a lot of sources (although not all - MAV, the Hungarian Railways has it for example behind a registration paywall, and although English bus companies are required to publish this by law - and do it nicely, Scottish ones don't always do it, and even if they do finding them is not always easy. Looks to be something I should push within my party of choice as my foray into politics)
There are a couple of caveats with OpenTripPlanner, the main one being it does require a lot of RAM. Getting the Hungarian map, and the timetables from both Volánbusz (the state operated coach company) and BKK (the public transport company of Budapest) required around 13GB of RAM - and by default docker was only given 8, so it did crash at first with me not realizing why.
The interface of OpenTripPlanner is also a bit too simple, and it was fairly hard for me to stop it from giving me trips that only involve walking - I deliberately wanted it to only search between bus stops involving actual bus travel as the walking part I had already done using PostGIS. I did however check if I could have used OpenTripPlanner for that part as well, and while it did work somewhat it didn't really give optimal results for my use case, so I was relieved the time I spend in QGIS - PostGIS was not in vain.
The API of OpenTripPlanner was pretty neat though, it did mimic Google's route searching API as much as possible which I used in the past so parsing the results was quite easy.
----
Once we had all of the data ready, the final bit was converting it to something I can use in JavaScript. For this I used my trusted scripting language I use for such occasion for almost 20 years now: ruby. The only interesting part here was the use of Encoded Polylines (which is Google's standard of sending LineString information over inside JSON files), but yet again I did find enough tools to handle this pretty obscure format.
----
Final part was the display. While I usually used Leaflet in the past I really wanted to try OpenLayers, I had another project I had not yet finished where Leaflet was simply too slow for the data, and I had a very quick look at OpenLayers and saw it could display it with an acceptable performance, so I believed it might be a good opportunity for me to learn it. It was pretty okay, although I do believe transparent layers seem to be pretty slow under it without WebGL rendering, and I could not get WebGL working as it is still only available as a preview with no documentation (and the interface has changed completely in the last 2 months since I last looked at it). In any case OpenLayers was still a good choice - it had built in support for Encoded Polylines, GPX Export, Feature selection by hovering, and a nice styling API. It also required me to use Vita for building the application, which was a nice addition to my pretty lacking knowledge of JavaScript frameworks.
----
All in all this was a fun project, I definitely learned a lot I can use in the future. Seeing how well OpenTripPlanner is, and not just for public transport but also walking and cycling, did give me a couple new ideas I could not envision in the past because I could only do it with Google's Routing API which would have been prohibitively expensive. Now I just need to start lobbying for the Bus Services Act 2017 or something similar to be implemented in Scotland as well
21 notes · View notes