#bits & bytes
Explore tagged Tumblr posts
Text
Gorillaz Themed ID Pack
[PT: Gorillaz Themed ID Pack].
[ID: A purple thin line divider shaded at the bottom. End ID].
Names
[PT: Names].
Ace, Axel, Banshee, Blaze, Blitz, Bones, Brick, Byte, Cipher, Colt, Dash, Decker, Diesel, Drift, Duke, Echo, Ember, Fang, Finley, Flux, Ghost, Glitch, Grit, Haze, Hunter, Jet, Jinx, Juno, Knox, Lazer, Mojo, Neo, Nero, Nyx, Pulse, Quake, Raze, Rex, Riff, Riot, Rocco, Ryder, Shade, Shift, Skye, Slade, Slick, Sly, Spike, Steezy, Storm, Tonic, Trace, Trip, Twitch, Vandal, Venom, Vex, Volt, Vox, Zeke, Zen, Zephyr
Pronouns
[PT: Pronouns].
Amp / Amps / Amps [Amplifier]; Ba / Bass / Bass'; Bea / Beat / Beats; Bit / Byte / Bits; Bu / Buz / Buzz; Ec / Echo / Echos; Groo / Groove / Grooves; Jam / Jams / Jams; Riff / Riffs / Riffs; Ro / Rock / Rocks; Sy / Syn / Synth; Tu / Tune / Tunes; Vi / Vibe / Vibes; Vo / Voca / Vocas [Vocals];
Titles
[PT: Titles].
The Audio Alchemist, The Beat Dealer, The Dystopian Dreamer, The Echo in the Machine, The Glitch in the System, The Pixelated Punk, The Rebel Beatmaker, The Rhythm Renegade, The Sonic Trickster, The Urban Phantom, The Virtual Rebel, The Voice of the Streets, [Pronoun] Who Echoes in the Underground, [Pronoun] Who Surfs the Digital Waves
[ID: A purple thin line divider shaded at the bottom, end ID].
Requested by anon!
Also tagging: @pronoun-arc @id-pack-archive
#gorillaz#id pack#npts#npt pack#npt#npt list#names pronouns titles#name suggestions#pronoun suggestions#title suggestions#- 📞
10 notes
·
View notes
Text
WarioWare: Double Up!
One day, Wario discovers that there’s a popular new video game company called Hotcake Studios- so popular, in fact, that WarioWare Inc. is losing business to them! Even worse, when he gets his hands on one of their games he discovers that it has the same microgame formula as his games, and that the company is owned by none other than his Treasure Hunting rival Captain Syrup. And then to make matters even worse, when he goes to confront her about so obviously muscling in on his business, she reveals that she’s also got her own development team of colorful characters…and each one is a clear direct counterpart to one of the WarioWare Crew. Or in Wario’s words, “You’re not just bootlegging my games, you’re bootlegging my flunkies, too!”
After the whole thing nearly comes to blows, the two strike a deal; each company will make a game, both with the same set of themes(and with each set of counterparts working on the same theme. So for example, Ashley and whoever her counterpart is both make Fantasy-themed microgames), price, and release date, and at the end of the year they’ll see which game sold more copies. Loser has to become a subsidiary of the winner.
I’m not sure how exactly that would translate into a gameplay gimmick (I’m a story guy not a gameplay guy), but as far as story mode goes each level’s story would involve the WarioWare Host getting into some sort of competition with their Hotcake counterpart, some friendlier than others.
The actual counterparts are:
Wario: Captain Syrup, obviously
Mona: Vanessa, that one singer who had a rivalry with her in Touched
Jimmy T: Jenny K, a semi-famous breakdancer
Dribble and Spitz: A Wolf and Bird racecar-driving duo named Howler and Chirpz
Kat and Ana: A pair of Ninji Twins named Shuri and Ken
Orbulon: Tatanga, because why not
9-Volt: A fourth-grade gamer girl named M-Byte
18-Volt: M-Byte’s older brother G-Byte
5-Volt: M-Byte and G-Byte’s dad, K-Byte
13-Amp: A friend of M and G named 64-Bit
Fronk: a Wanderin’ Goom, just named Goom
Dr. Crygor: Rival inventor Professor Boreal
Penny: Boreal’s niece, Hailey
Mike: A singing Piranha Plant named Polly
Doris 1: A robot butler named Vincent
Ashley and Red: A bubbly Magical Girl named Sora and her shapeshifting rabbit friend Violet
Young Cricket: Goombario, who’s recently become a student of The Master
Master Mantis: The Master, from Paper Mario
Lulu: Leo, that one ninja kid with animal-based powers that Kat and Ana fought in their level of Get It Together
The eventual end result is a draw. Both games somehow sold an exactly equal number of units. While this news initially shocks and infuriates Wario and Syrup, they take it as a sign that this whole argument just isn't worth their time and resolve to just more-or-less ignore each-others gaming ventures. Meanwhile, most of their employees have actually made friends with each-other, not really caring about the competition or their bosses' bad history to begin with.
#warioware#wario land#game idea#ocs#warioware ocs#wario#captain syrup#mona warioware#vanessa warioware#jimmy t#jenny k#dribble and spitz#howler and chirpz#kat and ana#shuri and ken#ninji#orbulon#tatanga#9 volt#m byte#18 volt#g byte#5 volt#k byte#13 amp#64 bit#fronk#wanderin' goom#dr crygor#professor boreal
53 notes
·
View notes
Text
Perfection, My Only Direction
Pairing: Peter Parker/Tony Stark Rating: Explicit Notes: I couldn’t leave this verse alone after I wrote ‘The Way You Hold Me’, so here we are! I love dabbling with Peter’s perspective & enjoyed every second of this little beauty. Word Count: ~5.3k Warnings: general career unrest, sexy times Summary:
Three years into their marriage, Peter finds himself unhappy with his career. Like the good husband he is, Tony anticipates his needs and things get fluffy.
Or - the one where Peter is anxious and Tony is the best security blanket out there.
Read it here on AO3
----
“You’ve got to keep quiet, Pete.”
Biting hard on his bottom lip, Peter gripped his office chair a little tighter – Tony’s thrusts were pushing him closer to the desk with every grind of his hips. Despite the office upgrade with the promotion he recently received, Peter knew the walls were still paper thin. The delicious sounds of their coupling were unmistakable – anyone walking by or seeking him out would know exactly what was going on if he couldn’t keep a lid on it.
With that in mind, Peter reached back to grip Tony’s flexing hip with clenching fingers in hopes that the diversion of stimulus would keep the moans from falling from his lips. It didn’t matter, though – Tony knew all the spots and angles to drive him crazy and went out of his way to do exactly that in every moment like this; even when the risk of being found out was higher than most other times. Or maybe because of it.
The professional in him tried desperately to keep a firm line between business and pleasure – his reputation relied on his impeccable mind and the manners in which he treated both the people around him with and the information he presented. He wanted to keep things separate, he really did – yet, Tony posed a weakness within him – despite the resolve, Peter couldn’t ever say no (hell, he didn’t want to).
And that’s how he found himself with his suit pants around his ankles and Tony balls deep within him, his husband’s hands still partially covered in oil and grease from his morning hours spent in the shop. They were supposed to be twenty minutes into a nice lunch at one of the small restaurants on campus – every other day, Tony took a longer break to catch Peter during a time when he actually had seconds and brain bytes to give. Eight times out of ten, they sat across from each other to pick at and share whatever food they ordered. The rest of their lunch time attempts ended exactly like this – wrapped up in each other in one of the worst possible places for it.
A dead-on strike to his prostate brought Peter out of his lust-induced thoughts, the right-here, right-now of the moment crashing down upon him. The feeling of it punched an unavoidable shout of Tony’s name from deep within. “Fuck, I can’t keep quiet when you’re fucking me like this,” Peter groaned, his teeth digging into the flesh of his lip almost enough to break through.
His stomach tightened with Tony’s next thrust, his words obviously amping up Tony’s desire – his own grip on control slipped with every slick sound of flesh meeting flesh. “You can’t just say stuff like that,” Tony got out through a harshly panted breath. “You drive me insane.” He punctuated his words with hard shoves of his hips, the space between them narrowing down even more as Tony’s pace got faster, the length of his strokes shortening in exchange for maximizing flesh against flesh.
By now, there was no mistaking what was happening behind the closed door of his office. His chair clunked against the front of his desk with every thrust and when the furniture wasn’t causing the ruckus, Tony’s muttered curses and Peter’s answering groans were pretty telling. Peter didn’t have the thought power or give a shit to care much, though – not when he was barreling headfirst towards a most exquisite orgasm.
The hands on his hips dug in tightly the closer Tony got, his grease stained fingers leaving behind both grime and bruises – the combination of sight and scent one of Peter’s favorite things. Each clench and tightening of Tony’s fingers brought Peter a step closer to the edge, and when sharp teeth dug into his shoulder to stop noises that couldn’t be ignored, he finally allowed himself to let go. A heart-throbbing release smacked him over the head, the feeling of it blinding him for several long minutes.
Soft lips on his neck kept him grounded through the coming down process, Tony’s stubble and its slight tickle reminding Peter exactly where he was and who was wrapped tightly around him. Coming back to it, Peter took in the chaos of his desk, his most recent papers strewn across it, his pens scattered carelessly upon the floor from the clever sweep of Tony’s hand. He let the aftereffects of physical greatness stick around instead of letting any sort of anxiety overtake him. The shamble around him would need to be set to right, but the moment was consumed by them, by their connection – the chaos of it be damned.
After more than ten years of aggressive academic pursuit, Peter found himself at the tail end of the bell curve, his excitement for the work not nearly as prominent as it was at the beginning of his career. Though cheesy, Peter’s thoughts were consumed with all things Tony. The romance between them hadn’t dwindled as the years together went by. Instead, they seemed to grow closer as time went on – Tony cared so selflessly about him and simply enjoyed everything about his person; quirks and all.
And when he thought about Tony, Peter couldn’t deny how all-consuming his passion and knowledge were. Aside from being unfairly good at taking care of him, Tony had a way about him – his thoughts and ideas were manifested so interestingly – so much so that Peter couldn’t get enough of the puzzle he presented. Where some of his previous relationships lacked in excitement and unpredictability, things with Tony were ever changing and constantly entertaining. When he thought about the likelihood of that shifting, Peter couldn’t imagine it. Not when a single day with Tony ever felt the same. Tony kept himself on his toes, there wasn’t a single doubt that he’d continue to do so with Peter, too.
With the new position within his department, hours were getting longer and the demands upon his time didn’t seem as worth it as they did before. He worked for years to sit in the desk he now occupied, and yet – things just weren’t what he thought they might be. The exploration of information he assumed he would embark upon was riddled with administrative bull shit and irritating bureaucracy that drifted so far from his interests. The shining light at the end of the tunnel didn’t gleam as bright as he imagined it would.
Unwillingly to admit to himself how much he truly didn’t want to continue on in his position, Peter forced himself to continue giving it his all. Despite hating more than most hours of his day, he moved forward. How did one come to terms with years of work panning out in such an unsatisfying way? And after he let himself admit that he was unhappy, what happened next? He thought briefly about bringing it up with Tony but didn’t want to burden him with such indecision. The man already ran his own business that demanded so much time and effort from him – how could Peter add another set of problems to his pile?
The freedom in which he allowed himself to behave recklessly in his workplace showed him how conflicted he really was – the lack of give a damn would’ve brought an uneasy feeling to his stomach in his earlier years. Yet, caring about it seemed like more work than it was worth – his job kind of felt like that, too.
Sighing, Peter leaned into his now cleaned up desk, the papers and such put to right before Tony kissed him goodbye and left with a self-satisfied smirk. The high of being with his striking husband lasted a couple of hours, pulling him through the bulk of his meetings. He even managed to pay attention to some of the things being passed back and forth between stuffy colleagues and university behemoths. Tony’s influence always played a big part in the calm demeanor he portrayed and seemed to be doing it even more so since his shift into the new, more important role.
When the end of the day finally came, Peter rushed from his office, the movement of his feet faster than he ever remembered from times before. Exiting the building, he found that he could finally breath – the weight of his responsibilities shrugged from his shoulders and unable to pull him down any longer. Long strides got him to his car, his bag hitting the passenger seat as he settled behind the wheel. A couple of routine clicks had his phone connected to the car’s Bluetooth and Tony’s number dialed. Their new house was a bit farther from the university than the previous apartment, so Peter spent the commute with Tony in his ear more often times than not.
An all too familiar voice sounded across the line after a couple of rings, the warm timbre of it sending a shiver down Peter’s spine.
“Hey, Petey,” Tony answered, his tone soft, filled to the brim with affection.
“Hey, yourself,” Peter replied through a long exhale, another heavy mass falling off of him now that the connection was sparked again. “I’m so ready to be home. Spinelli talked for ages about a new form of midterm that immediately got voted down by the board. I wasn’t aware you could waste minutes of life like that.”
His last statement dragged a chuckle from Tony’s chest – a steady warmth wrapped around him as the sound settled across the cell connection. “The last dinner party we went to, he dissected the merits of the use of an old-fashioned inkwell pen – I’m not surprised.”
Just like that, the ease in which conversation flowed between them erased all of his tension, the tightness of his muscles and nerves seeping from him bit by bit. By the time he walked through the front door, he felt loose and relaxed, Peter more than ready for whatever the night (or Tony) would throw their way.
Despite the respite of that night, however, Peter found his interest in his job dwindling even more as the weeks passed. The bright luster of the academic world seemed to dull the further he delved into it. Getting his doctorate felt like a dream while in the trenches of a dissertation and TAing a handful of classes. At the time, he felt refreshed and eager to finally get what he worked so hard for – access to the bigger world of knowledge and understanding. The novelty of it left so many things to be desired.
And now – he found that he didn’t desire them anymore. Regardless of the fact that he spent his entire adult life navigating the world in the classrooms of first Cornell and then NYU, his soul craved something more. Until meeting Tony, Peter hadn’t looked much farther than the safety of a classroom – and boy did he want to. The few times throughout their marriage that Peter could get away, Tony swept him off to places he didn’t think to even want to travel to. They played tourist in London and drank way too much at an all-inclusive resort in the Bahamas.
He couldn’t decide what created the wanderlust, whether it was strictly Tony’s influence, but Peter felt a deep desire to experience anything and everything the world had to offer. Many years were spent acquiring knowledge and learning about so many different things. Yet, the times he felt like he was learning the most took place outside the walls of his lecture hall. Perhaps he craved a different style of learning – or maybe he just wanted to see the world and experience everything he possibly could with his best friend.
Whatever the reason, Peter felt himself drifting further away from the familiar – his eyes set more firmly on anything else, something outside of the small little world he looked to have outgrown. Some parts of him already accepted the inevitable – despite the big promotion he just received, he wouldn’t be staying in the field for much longer. The other pieces of him, though – they struggled with letting go of the years of hard work.
Stepping away from the profession wouldn’t giving up that work – rationally, he understood that. The mere idea of being anywhere else made his heart beat a little faster for so many different reasons. One of his biggest struggles came from the fact that he hadn’t told Tony anything about the thoughts rampaging through his head.
Despite that, Peter knew that Tony could feel that something was up. In the grand scheme of things, their collective time together was relatively minimal – three years didn’t a lifetime make. The one thing that was continuously nursed between them, however, was their familiarity with each other. Many couples claimed to be best friends, to know each other like the back of their own hands – yet most fell short. Peter felt like they could claim, with some intense certainty, that their grasp on that concept was tighter than most.
One thing Peter noticed the longer he lived and loved Tony was the fact that there were very few people who actually knew him. Happy, his right-hand man, knew a few more pieces than the rest of the world, but Peter – he got the backstage access to everything that Tony was, wished he could be, and most assuredly wasn’t. Though Peter functioned very similarly, he didn’t struggle with giving up small parts of himself the same way that Tony did. Which – in the grand scheme of things – made their closeness worth even more than imaginable. Tony didn’t mind the curtain being pulled back entirely where Peter was concerned.
Which is why, after several weeks of struggling silently, Peter finally decided it was about time to finally let Tony in on his worries and next steps – the support he knew he’d receive felt necessary now. And that wasn’t to say it wasn’t integral to his existence before; Tony stood beside him and rooted for him in his silently contemplative way. Just being there meant more than Peter wanted to honestly claim.
Now, though – now, he understood how much he needed Tony to not only support him but keep him standing on his feet until he found the next thing – or ran back to whatever university that would take him screaming with both distaste and the comforting feeling of unchanging security. For his sanity’s sake, Peter hoped the next step wouldn’t take him careening down the same useless path, but one never really knew.
Later that evening, Peter got home to a completely lit up house, the entire front entryway almost blinding in how bright it actually was. Squinting against the shine for just a second, Peter felt his eyebrows stay drawn up, a look of confusion slipping across his face. Peter usually beat Tony home on Friday nights, especially those that he decided to dip out of his office a little earlier than actually expected. He quickly shouldered his backpack, the thought of seeing Tony making him feel giddy for the first time since he left the house.
Stepping into the house, Peter let a soft smile slip across his lips. Not only was Tony home, his husband went to the trouble of baking his favorite cookies, if the smell of fresh snickerdoodles was to be believed. His nose practically dragged him into the kitchen, Peter’s lack of lunch making itself known now that the tantalizing scent of cinnamon and sugar sat deliciously in the air.
“It smells amazing in here,” Peter said in the way of greeting, his feet carrying him further in the kitchen as he spoke. Sidling up to Tony, Peter pressed a quick kiss to his cheek, the hand not settling on his husband’s hip stretching out to grab two of the still oven-warm cookies off of the cooling rack. “Tastes good, too.” He wiggled his eyebrows, the first of the cookies demolished in a couple of big bites.
Peter forced himself to slow down on the second one by dividing his attention between the scrumptious cinnamon-sugar on his fingers and the delectable man standing in front of him. When he found his hands empty again, Peter finally took notice of the grains of sugar he left behind on Tony’s skin as he kissed and nipped at all of the supple spots he couldn’t keep himself away from.
“Mm, hello to you, too,” Tony mumbled after a while, the moments of silently sucking up the touch and affection gone now. “I thought you could use a little pick me up. I know you had that meeting you hate today.” He felt blindly for Peter’s hand on his hip, their fingers tangling when Tony managed to grasp it with his own. “And the taste of cinnamon off your lips, well…”
Without much warning, Tony turned in Peter’s arms, his butter-greasy hands settling on the nape of a long neck. Their lips met without prompting, the stubble of Tony’s salt and pepper goatee never failing to tickle Peter with every pass and caress. His own hands wandered until they were digging ever so slightly under the hem of Tony’s black denims, the tightness affording him the smallest bit of warm skin against the pads of his fingertips.
They enjoyed the softness of their reunion until the loud blaring of the oven pulled them apart, a soft groan left Peter’s lips when Tony took a step back, the space between them becoming too much with every second. “It’s the last batch,” Tony stated like he knew and understood the dilemma happening within the confines of his mind. “Go get changed. I know we talked about going out tonight, but I think thai food and Netflix might be our best bet.”
Recognizing the gesture for what it was, Peter nodded at him gratefully, his eyes linger on the reassuring expression on Tony’s face. Tony’s eerie ability to anticipate his needs never stopped throwing him off in the best way.
Tired fingers worked at the buttons of his shirt as he walked back towards their bedroom, the garment hitting the floor the first step into their sanctuary. His shoes, socks, pants, and boxer-briefs followed, Peter baring himself completely by the time he walked into their en suite. The big glass shower had been one of the main selling points of the house – thinking about how many times they’d enjoyed the space pulling a huge grin to his face. The walls and door steamed up when he cranked on the water – despite the burning sear, Peter loved to step into a scalding hot shower.
The floating thoughts in his head drifted away under the warm water. Peter took his time soaping up with Tony’s soap, and then later with the fancy tea tree shampoo that overtook his ordinary drug store variety 2-in-1 a long time ago. The tingle on his scalp let a little more of the stress roll off of him – he appreciated the tactile burn of the oil in his pores and the depth of his stomach.
With Tony on the brain, Peter dried himself off and tucked into a plain t-shirt and the softest pair of flannel pajama bottoms, his favorite red and blue color pattern slotting in that final bit of decompression he needed to face the rest of the evening. He slipped into his favorite Ugg slippers and wandered back into the living room – which was dimly lit, the main light completely off with only a few candles scattered around to provide that ambient light. His lips tugged up at the corners, a soft and deliciously warm feeling settling over him at the gesture.
Hands on his hips distracted him from his reverie, the earthy smell of grease that Tony couldn’t quite escape flooding his nose pleasantly. “Feeling romantic?” Peter questioned. One of his hands reached behind him, Peter’s fingers digging into the thickness of Tony’s hair. He gripped the graying locks lightly, the softness there adding to the warmth in his chest.
“Always am when you’re around,” Tony mumbled into the angle created by Peter’s neck and shoulder, his nose pressing into the skin there to take a long, deep breath. Tony’s hands tightened around him for a second, the squeeze something Peter usually only experienced in the heated moments of their burning passion. Yet, he felt no twitch of arousal, just a gentle hum of appreciation for the soft touches and intimate details.
The TV was already on and resting on the Netflix wait screen, the square labelled “Petey” glowing in anticipation of being chosen and artfully navigated when they sat down to enjoy whatever bull shit Peter decided for the evening. His favorite wine was uncorked and left to breathe on the coffee table, his favorite set of glasses waiting to be used. He loved every small thought put into the set up and must’ve said so out loud if the grin on Tony’s face was anything to go by.
They were now facing each other, Peter’s hands wrapped tightly around Tony’s neck and his husband’s own settled lightly on his lower back. “You’ve been stressed, baby. Let me take care of you.” Tony used a finger to tilt his chin up, each word punctuated with barely there kisses to his lips.
Peter let a genuine smile slip across his lips, the muscles of his face already a little sore from the now apparent lack of use. It never crossed his mind that something as simple as a smile could retreat without his notice. Blinking, Peter took in Tony’s face, the expression on it affectionate and the slightest bit relieved.
“There it is. I haven’t seen that grin in months.”
Then – Tony pressed a heated kiss against his lips, the hands-on Peter’s hips gripping him tightly. A flash of heat sparked between them; the intimacy of the moment not lost on either of them. Just as Peter took a step closer, the annoying buzz of their doorbell cut him short. Groaning slightly, Tony shot him a frustrating wink as he stepped away, his hands in the air in a silent surrender. “We’ll finish that later,” Tony promised, his eyes shining brightly.
An hour later found them snuggled together on the couch, the remnants of their thai food on the coffee table in front of them. The slight flicker of the candlelight keeping the room nicely shadowed, like the world revolved only around their small little living room – like the two of them were the only ones to ever inhabit it. For the first time in what felt like months, Peter found himself completely calm, his brain and anxieties included.
“I didn’t know how much I needed this until right this second,” Peter remarked softly, the thought of disrupting the peace of the room with the loud pitch of his voice almost devastating. He ran his hand through Tony’s graying locks, his husband moving into the touch with every slight movement. “How do you always know?” It took Tony a few minutes to reply, the man stuck between leaning into Peter’s clever hands and thinking thoughtfully – the slight crease between his eyebrows the only sign of the latter. Like so many, Peter appreciated this part of Tony, the reverence and thoughtfulness that he brought to their relationship. Words meant something to him and each one played its own role in their conversations. Tony didn’t sling them around carelessly like so many others before him.
Peter let him shift when he felt the slight pressure of Tony’s arm against his side. His husband propped himself up on an elbow, the two of them more equally footed now. “I know you, Pete. I know that you love me and that hasn’t been lacking. But you get home and look so gloomy – like the realization of how shitty the world can be is finally flashing right before your eyes. Don’t get me wrong – “ Tony shifted again, his voice breaking ever so slightly as he wrapped a hand around Peter’s shoulders. “Everyone has to experience the reality of that eventually – I just hoped you’d be spared it.”
His fingers brushed against what bare skin of Peter’s arm they could reach, the rough pads still something that brought him so much comfort. “I’ve been waiting to see if you’d eventually tell me about it – like you always do with everything else. When you didn’t, I thought a little nudge couldn’t hurt.” Tony paused then, his lips pressing against Peter’s forehead. “I just want you to be happy, Pete. That’s all that matters to me.”
Like the words were the opening of a floodgate, Peter found tears streaming down his face. Tucking his forehead against Tony’s neck, Peter let them fall, each second of frustration and distaste culminating into this one, very important moment. Tony held him through it all, his thumb moving to occasionally swipe the tears from Peter’s cheeks, the touch always soft, always soothing.
“I hate my job,” Peter mumbled after a while, his voice thick with tears yet to be cried and slightly muffled from his position against Tony’s skin. “I thought the world of academics would look so much better from the desk I’m sitting behind, but it just fucking sucks, instead. I spent all of that time working towards the ultimate trap. I know it’s there, waiting for me, and I don’t want to fall into it.”
“It’s frustrating when expectations don’t meet up with reality. Why do you think I run my own business?” Tony asked, his hand slipping to cup Peter’s cheek. “Sometimes, you have to take a step back to really see what you want, Petey.”
They fell into a comfortable silence after that, Tony never ceasing the loving strokes of his hand across Peter’s skin. His fingers eventually lulled Peter to sleep, the heaviness of the weight he carried over the last few weeks finally dropping to the floor completely to be dealt with later.
The very next morning, Peter woke up to a hand flung possessively over his hip, Tony’s grip on him tight even in the groggy, sleep-addled mornings. Smiling to himself, Peter gave the strong forearm a squeeze before he got himself out of bed and into his usual morning routine. By the time he showered, shaved, and got into his penguin suit for the day, Tony was just rolling over to slap off his own alarm, a warm and happy look on his face. “I won’t miss the grumpiness, but I might miss the suits,” Tony said, his eyes following Peter’s movement from one side of the room to the other. “You look damn good in a tie, husband.”
Making sure the bulk of today’s tie (a black, maroon, and silver combo) pressed against Tony’s chest, Peter leaned down to give Tony a chaste kiss, the man’s lips a little sticky still from sleep. “They’re not going anywhere.” Peter shot him a wink, his hands moving to straighten the length of his jacket. “We won’t have to worry about making them dirty, either.”
Peter left the room to the sound of Tony’s laugh, the sound deep and resounding – the echo of it settling within his chest and keeping him company all the way through his traffic-riddled drive to work.
Several hours later, Peter walked out of his boss’s office, a soft smile on his face. He humbly discussed how much he appreciated the trust and confidence in him, but in the long run, didn’t see himself sitting behind that particular desk. And despite all of the worry and anxiety, Dr. Loughman came off understanding, the knowing look in his eye a lot like Tony’s the night before.
“Some people are born for different types of academic pursuits, Peter. You’ll find yours.”
With those words echoing in his ears, Peter promised to finish off the semester both in his current position and in the lecture hall before moving on to whatever venture came his way next. The thought should have scared him – hell, it did for months before. Yet, knowing how much better he felt having said the words and that, at the end of the day, Tony would still be there to stand against – Peter knew he was doing the right thing, both for himself and the life he planned to live with Tony by his side.
Unlike most days (except Friday), Peter got home before Tony. He quickly got his suit hung up and his comfy clothes on before making his way into the kitchen to start the famous Stark family sauce – Maria made sure he knew how to make it before she let him marry into the family. The memory made him smile and carried him through the couple of difficult parts of the process, almost like Maria was there, guiding him herself.
“It smells like my mother is here,” Tony said in the way of greeting a little while later. His eyes were wide, each cheek spattered with a slight pink from the cold of the day and the happiness he seemed to radiate wherever he went. Peter felt Tony press against his back before he could turn, the older man’s hands boxing him in against the kitchen counter.
“Hey, Pete. You’re looking much better today,” Tony whispered against the shell of his ear, the stubble above his lip pulling a shudder from Peter as he pressed back into the touch.
“I’m feeling better.”
Fiddling with the dials, Peter turned off the burner on the stove and turned in Tony’s arms, their lips sealing together seamlessly. “I gave my notice today. I’m going to finish out the semester and then decide what the hell comes next.”
Tony sucked in a long breath, his hands coming up to frame Peter’s cheeks. “And that’s what you want? That’s going to make you happy?”
The question brought a smile to his face – despite knowing just how much Peter meant it, Tony still felt the need to ask, to make sure. There weren’t many people in his life that Peter could say actually cared about his happiness, and none with the same capacity for it like Tony. Peter tightened his grip then, his hands squeezing Tony’s hips. “It’s what I want. Our life together is too good to stand around and be miserable in my own pursuits.”
“Good, then you’ll be open to new opportunities. I’ve been thinking about adding a research division to Stark Automotive. Want to see what I’m working on?”
Grinning, Peter started to steer Tony back towards their bedroom, the need for little space between them bigger than any sort of hunger for food or further conversation. The simple fact that Tony welcomed him into his life all of those years ago was enough. Yet, Tony had to take it one step further – though he never thought much about working with his husband, Peter found he liked the idea of joining Tony in that aspect of his life, too.
As he looked at the situation now, Peter wanted to shake himself – how could he let the anxiety eat at him the way he did when the most perfect support system stood by his side? Kissing Tony soundly as they collapsed onto the bed, Peter knew one thing for sure – as long as Tony was near, Peter could take on just about anything.
Especially the tricky clasp of Tony’s belt buckle.
#starker#goindownshipping#bobbie writes#my stuff#peter parker/tony stark#fluffy fluffiness#perfection - my only direction
51 notes
·
View notes
Text
Direct RAM Access
All programs operate on RAM regardless of its programming language, operating system or hardware, be it a smartphone, cloud, desktop, laptop or a machine as tiny as Arduino.
Nowadays, RAM is used as a synonym for main computer memory. In reality, it is an abbreviation for "Random-Access Memory". Here, random means not as in something random; the last thing you expect from a RAM is randomness. The connection between words "random" and "access" with the hyphen means any data in memory is accessed arbitrarily by the programs.
In this context, the opposite of random is sequential, which means the memory is accessed one-by-one as we can still see in SQL result-sets. In old times, memory hardware like "tape" was sequential; to access an arbitrary location, all previous locations on the band should be visited. The access types of memory hardware may seem outdated today as tapes are obsoleted as storage devices; almost all memory are "random" for the last 20 years.
Memory types like hard disks and CD/DVDs are randomly-accessed, but one thing separates RAM from the former is the fixed access time for each location. For disks, a device called "head" should be rotated so that access times may vary depending on the location. Nowadays, hard disks are rapidly replaced by SSDs (Solid State Drive) that can store as much data as disks and provide fixed access time as RAMs.
From now on, let's assume a RAM is a sea of bytes that is addressed by a number which is represented by the data type int.
In C, you can directly access RAM via its address. Let's start with an example:
#include <stdio.h> int main(int argc, char* argv[]) { char* p = 0; printf("%c\n", *p); return 0; }
Here, we start introducing the infamous "pointers" in C. Pointers are used like "references" in modern languages, but they really are memory addresses in C.
The term "char" (character) in the variable definition is the main mental block for understanding pointers while learning C. In reality, any type of variable definition with an asterisk (*) is always an int. The preceding type specifier is used to represent data in that address later.
The variable p is assigned the address 0, or in other words, the location of the very first byte in memory to p.
char *p = 0;
Here, *p represents the data in address p as char. We'll try to write it on the standard out (stdout) with printf():
printf("%c\n", *p);
When you run this program in a PC, it crashes with the following message:
Segmentation fault (core dumped)
In Windows, it pops a message box that says "Access Violation". This fault is similar to NullPointerException, NullReferenceException etc. in modern languages.
The above program crashes because the ability to reach an address doesn't mean the memory location it refers really exists. Because modern operating systems like Linux, Windows run many programs (or processes as they are called in that context) simultaneously, they should manage precious RAM resources carefully by a mechanism called "virtual memory" that often abbreviated as VM.
Modern systems would block writing to address 0 because it almost always means a programming fault like the exceptions mentioned above. But C is also used for embedded programming, which means writing programs for very tiny CPUs which helps electronic controller hardware. Those machines have constrained hardware resources so they may not have the luxury for controlling memory access. In this instance, reading the memory at 0 or an arbitrary location may not crash.
Now let's try to assign an arbitrary address to the p:
char *p = 5500;
The compiler would give a warning for that number.
warning: initialization makes pointer from integer without a cast
This error won't halt the compilation process. But as a wise programmer, we should not accumulate warnings. Thanks to "casting", it is possible to convince the compiler that we know what we are doing with a cast:
char *p = (char *)5500;
When you run the program, the result is again the segmentation fault. As you can see, C makes it possible to shoot yourself in the foot. But you are still lucky if you shoot yourself in the foot because at least you can go to a hospital. However, if that kind of error results in reading or writing from a legal memory, then your data integrity breaks and god knows where this error pops in the future.
Playing with Valid Memory Locations
Enough of crashes. Let's use some valid memory addresses, starting with the following example program:
#include <stdio.h> int main(int argc, char* argv[]) { char c = 'A'; printf("%u\n", &c); return 0; }
Here we define a variable of 1 byte (or 1 ASCII character) as c. It represents a location in RAM which stores a byte of data. The & operator takes the address of a variable, so the output is something like this:
1868946151
Let's play a little bit more and add any variable we've encountered throughout our little program:
printf("argc %u\n", &argc); printf("argv %u\n", &argv); printf("c %u\n", &c); printf("main %u\n", main);
It outputs something like this:
argc 1527215996 argv 1527215984 c 1527216007 main 448100010
As you can see, our main function's assembly code is located somewhere in our RAM.
Now let's play with them via a pointer:
char c = 'A'; char* p = &c; printf("c %c\n", c); printf("*p %c\n", *p); *p = 'B'; printf("c %c\n", c);
Here we define a pointer p and assign it to the address of c. So p becomes a reference to the c. The output is:
c A *p A c B
Now let's do something dangerous:
char* p = main; printf("%c\n", *p); *p = 'A';
This program has the ability to read and print the first character of the main() function but crashes when trying to write into it. Modern CPUs can distinguish between code and data and prevents overwriting the code.
U Segmentation fault (core dumped)
If you try the example above, you probably get warnings but, it doesn't stop compiling anyway.
To get even more dangerous, we will use a technique called the "pointer arithmetic".
char c1 = 'A'; char c2 = 'B'; char *p = &c1; printf("C1 %u %c\n", &c1, c1); printf("C2 %u %c\n", &c2, c2); p++; *p = 'Z'; printf("C2 %u %c\n", &c2, c2);
When you run this program, the output will be:
C1 69358686 A C2 69358687 B C2 69358687 Z
As you can see, the value of c2 is changed magically by a series of manipulations.
char *p = &c1;
We first assign pointer p to the address of c1.
p++; *p = 'Z'; printf("C2 %u %c\n", &c2, c2);
Remember, a pointer is actually an int that represents a memory address. Since it is an int, it is perfectly legal to increment it. By that, we can magically change the value of c2 without mentioning it.
Control is costly. Programs written in C are very fast because allowing direct manipulation of RAM avoids that cost.
Other Languages' Perspective on Accessing RAM
Most modern languages other than C and C++ prevent direct access to RAM. Instead, they control accessing it through carefully defined interfaces called "references". First, there is no notion of taking the address of a variable for basic types like char, int, double etc.
Second, object instances are stored in a variable of reference type. The reference is an opaque type; you can't take the address of it. They are used as-is. Of course, you can change the object which the reference points to, but you can't make it pointing an invalid arbitrary address like 5500 as we have given above.
Of course, object instances do live somewhere in RAM and in the 1990s references may leak that info when you convert them into a string. Today garbage collectors (GC) may move objects around the RAM for efficiency and heap defragmentation, so that info should contain something more independent than a mere memory address.
The following Java program creates two instances of class Object and converts them into a string:
public class Xyz { public static void main(String[] args) { Object o1 = new Object(); Object o2 = new Object(); System.out.println("O1 " + o1); System.out.println("O2 " + o2); } }
The outputs are some random hash values that uniquely identify the instance that is managed by the GC. As you can see, the hexadecimal numbers are unrelated.
O1 java.lang.Object@3af49f1c O2 java.lang.Object@19469ea2
One of the main design principles of modern languages is preventing pointer errors as you can see in the preceding paragraphs. As we said before, direct RAM manipulation is what makes C programming language very fast. However, most modern software doesn't need to be fast as much. Correctness is more valued since programmers are forced to deploy programs fast in this Internet era.
Zero, Null, Nil, Undefined
References can have a special value called null or nil or undefined when they do not point to any object instance. Let's make them fail by abusing them:
String s = null; System.out.println("Length " + s.length());
The result is the Java-style "Segmentation Fault".
Exception in thread "main" java.lang.NullPointerException at Xyz.main(Xyz.java:6)
Let me stress again. In a modern programing language, the reference may be null or something real, not in-between like in C/C++.
Some more modern languages like Kotlin (a Java dialect) go even further and prevent null value assignment if you don't specifically mark the reference with a question mark:
val String s = null; // Incorrect, don't compile var String? s = null; // Correct ```` ## Leaky Abstraction Operating Systems like Linux and Windows provide C APIs for their services. A modern programming language runtime should call that APIs at some point to do meaningful things like I/O and creating windows. Each of those languages provides some means of accessing C libraries and interacting with C so you can taste the pleasure of direct memory manipulation. For example, C# programming language and its associated runtime .NET provides "Interop" library to interface with the operating system. Interop library contains a big class called Marshal, which has many dirty and dangerous static methods against all OOP principles. For example, the following methods are available to read and write a byte to/from the RAM directly:
public static byte ReadByte(IntPtr ptr); public static void WriteByte(IntPtr ptr, byte val);
IntPtr type represents a C pointer. These methods are ready to throw an "AccessViolationException" when you do the same experiments as in the above paragraphs. But when you access some valid C memory by some means outside the scope of this topic, you can use them conveniently. Read/Write methods have other variants which allow accessing different basic types like int and blocks of byte arrays at once. Now, as always, let's do some naughty things:
using System; using System.Runtime.InteropServices;
namespace savas { class Program { static void Main(string[] args) { byte b = 33; GCHandle h = GCHandle.Alloc(b, GCHandleType.Pinned); IntPtr p = h.AddrOfPinnedObject(); byte b2 = Marshal.ReadByte(p); Console.WriteLine("b2 = " + b2);
} }
} ```
After defining the variable b, we "pinned" it so the GC won't move its place in memory. Then we get its address via AddrOfPinnedObject() method just like the & operator in C, read its value and print it. The output is "b2 = 33" as expected.
But if you call Marshal.WriteByte() to manipulate p, it doesn't write into b because once you pin the object, the connection between b and p is lost. This allows C# to stay pure because the Marshal class' memory methods are designed to manipulate buffers provided by the C libraries, not the other way around.
Python programming language has been written in C. At the same time, it provides a C interface that allows built-in classes and libraries be written in C. If that kind of classes supports a "buffer protocol", its raw bytes can be manipulated by memoryview class of Python. By default, Python's standard byte and bytearray objects support that protocol.
Without memoryview, Python-way of manipulating buffers is inefficient since any operation on arrays and slices requires creating a copy of the object. Using memoryview allows C-style direct control of memory in a controlled way; "best of both worlds" in certain scenarios.
1 note
·
View note
Text
Version 422
youtube
windows
zip
exe
macOS
app
linux
tar.gz
🎉🎉 It was hydrus's birthday this week! 🎉🎉
I had a great week. I mostly fixed bugs and improved quality of life.
tags
It looks like when I optimised tag autocomplete around v419, I accidentally broke the advanced 'character:*'-style lookups (which you can enable under tags->manage tag display and search. I regret this is not the first time these clever queries have been broken by accident. I have fixed them this week and added several sets of unit tests to ensure I do not repeat this mistake.
These expansive searches should also work faster, cancel faster, and there are a few new neat cache optimisations to check when an expensive search's results for 'char' or 'character:' can quickly provide results for a later 'character:samus'. Overall, these queries should be a bit better all around. Let me know if you have any more trouble.
The single-tag right-click menu now always shows sibling and parent data, and for all services. Each service stacks siblings/parents into tall submenus, but the tall menu feels better to me than nested, so we'll see how that works out IRL. You can click any sibling or parent to copy to clipboard, so I have retired the 'copy' menu's older and simpler 'siblings' submenu.
misc
Some websites have a 'redirect' optimisation where if a gallery page has only one file, it moves you straight to the post page for that file. This has been a problem for hydrus for some time, and particularly affected users who were doing md5: queries on certain sites, but I believe the downloader engine can now handle it correctly, forwarding the redirect URL to the file queue. This is working on some slightly shakey tech that I want to improve more in future, but let me know how you get on with it.
The UPnPc executables (miniupnp, here https://miniupnp.tuxfamily.org/) are no longer bundled in the 'bin' directory. These files were a common cause of anti-virus false positives every few months, and are only used by a few advanced users to set up servers and hit network->data->manage upnp, so I have decided that new users will have to install it themselves going forward. Trying to perform a UPnP operation when the exe cannot be found now gives a popup message talking about the situation and pointing to the new readme in the bin directory.
After working with a user, it seems that some clients may not have certain indices that speed up sibling and parent lookups. I am not totally sure if this was due to hard drive damage or broken update logic, but the database now looks for and heals this problem on every boot.
parsing (advanced)
String converters can now encode or decode by 'unicode escape characters' ('\u0394'-to-'Δ') and 'html entities' ('&'-to-'&'). Also, when you tell a json formula to fetch 'json' rather than 'string', it no longer escapes unicode.
The hydrus downloader system no longer needs the borked 'bytes' decode for a 'file hash' content parser! These content parsers now have a 'hex'/'base64' dropdown in their UI, and you just deliver that string. This ugly situation was a legacy artifact of python2, now finally cleared up. Existing string converters now treat 'hex' or 'base64' decode steps as a no-op, and existing 'file hash' content parsers should update correctly to 'hex' or 'base64' based on what their string converters were doing previously. The help is updated to reflect this. hex/base64 encodes are still in as they are used for file lookup script hash initialisation, but they will likely get similar treatment in future.
birthday
🎉🎉🎉🎉🎉
On December 14th, 2011, the first non-experimental beta of hydrus was released. This week marks nine years. It has been a lot of work and a lot of fun.
Looking back on 2020, we converted a regularly buggy and crashy new Qt build to something much faster and nicer than we ever had with wx. Along with that came mpv and smooth video and finally audio playing out of the client. The PTR grew to a billion mappings(!), and with that came many rounds of database optimisation, speeding up many complicated tag and file searches. You can now save and load those searches, and most recently, search predicates are now editable in-place. Siblings and parents were updated to completely undoable virtual systems, resulting in much faster boot time and thumbnail load and greatly improved tag relationship logic. Subscriptions were broken into smaller objects, meaning they load and edit much faster, and several CPU-heavy routines no longer interrupt or judder browsing. And the Client API expanded to allow browsing applications and easier login solutions for difficult sites.
There are still a couple thousand things I would like to do, so I hope to keep going into 2021. I deeply appreciate the feedback, help, and support over the years. Thank you!
If you would like to further support my work and are in a position to do so, my simple no-reward Patreon is here: https://www.patreon.com/hydrus_dev
full list
advanced tags:
fixed the search code for various 'total' autocomplete searches like '*' and 'namespace:*', which were broken around v419's optimised regular tag lookups. these search types also have a round of their own search optimisations and improved cancel latency. I am sorry for the trouble here
expanded the database autocomplete fetch unit tests to handle these total lookups so I do not accidentally kill them due to typo/ignorance again
updated the autocomplete result cache object to consult a search's advanced search options (as under _tags->manage tag display and search_) to test whether a search cache for 'char' or 'character:' is able to serve results for a later 'character:samus' input
optimised file and tag search code for cases where someone might somehow sneak an unoptimised raw '*:subtag' or 'namespace:*' search text in
updated and expanded the autocomplete result cache unit tests to handle the new tested options and the various 'total' tests, so they aren't disabled by accident again
cancelling a autocomplete query with a gigantic number of results should now cancel much quicker when you have a lot of siblings
the single-tag right-click menu now shows siblings and parents info for every service, and will work on taglists in the 'all known tags' domain. clicking on any item will copy it to clipboard. this might result in megatall submenus, but we'll see. tall seems easier to use than nested per-service for now
the more primitive 'siblings' submenu on the taglist 'copy' right-click menu is now removed
right-click should no longer raise an error on esoteric taglists (such as tag filters and namespace colours). you might get some funky copy strings, which is sort of fun too
the copy string for the special namespace predicate ('namespace:*anything*') is now 'namespace:*', making it easier to copy/paste this across pages
.
misc:
the thumbnail right-click 'copy/open known urls by url class' commands now exclude those urls that match a more specific url class (e.g. /post/123456 vs /post/123456/image.jpg)
miniupnpc is no longer bundled in the official builds. this executable is only used by a few advanced users and was a regular cause of anti-virus false positives, so I have decided new users will have to install it manually going forward.
the client now looks for miniupnpc in more places, including the system path. when missing, its error popups have better explanation, pointing users to a new readme in the bin directory
UPnP errors now have more explanation for 'No IGD UPnP Device' errortext
the database's boot-repair function now ensures indices are created for: non-sha256 hashes, sibling and parent lookups, storage tag cache, and display tag cache. some users may be missing indices here for unknown update logic or hard drive damage reasons, and this should speed them right back up. the boot-repair function now broadcasts 'checking database for faults' to the splash, which you will see if it needs some time to work
the duplicates page once again correctly updates the potential pairs count in the 'filter' tab when potential search finishes or filtering finishes
added the --boot_debug launch switch, which for now prints additional splash screen texts to the log
the global pixmaps object is no longer initialised in client model boot, but now on first request
fixed type of --db_synchronous_override launch parameter, which was throwing type errors
updated the client file readwrite lock logic and brushed up its unit tests
improved the error when the client database is asked for the id of an invalid tag that collapses to zero characters
the qss stylesheet directory is now mapped to the static dir in a way that will follow static directory redirects
.
downloaders and parsing (advanced):
started on better network redirection tech. if a post or gallery URL is 3XX redirected, hydrus now recognises this, and if the redirected url is the same type and parseable, the new url and parser are swapped in. if a gallery url is redirected to a non-gallery url, it will create a new file import object for that URL and say so in its gallery log note. this tentatively solves the 'booru redirects one-file gallery pages to post url' problem, but the whole thing is held together by prayer. I now have a plan to rejigger my pipelines to deal with this situation better, ultimately I will likely expose and log all redirects so we can always see better what is going on behind the scenes
added 'unicode escape characters' and 'html entities' string converter encode/decode types. the former does '\u0394'-to-'Δ', and the latter does '&'-to-'&'
improved my string converter unit tests and added the above to them
in the parsing system, decoding from 'hex' or 'base64' is no longer needed for a 'file hash' content type. these string conversions are now no-ops and can be deleted. they converted to a non-string type, an artifact of the old way python 2 used to handle unicode, and were a sore thumb for a long time in the python 3 parsing system. 'file hash' content types now have a 'hex'/'base64' dropdown, and do decoding to raw bytes at a layer above string parsing. on update, existing file hash content parsers will default to hex and attempt to figure out if they were a base64 (however if the hex fails, base64 will be attempted as well anyway, so it is not critically important here if this update detection is imperfect). the 'hex' and 'base64' _encode_ types remain as they are still used in file lookup script hash initialisation, but they will likely be replaced similarly in future. hex or base64 conversion will return in a purely string-based form as technically needed in future
updated the make-a-downloader help and some screenshots regarding the new hash decoding
when the json parsing formula is told to get the 'json' of a parsed node, this no longer encodes unicode with escape characters (\u0394 etc...)
duplicating or importing nested gallery url generators now refreshes all internal reference ids, which should reduce the liklihood of accidentally linking with related but differently named existing GUGs
importing GUGs or NGUGs through Lain easy import does the same, ensuring the new objects 'seem' fresh to a client and should not incorrectly link up with renamed versions of related NGUGs or GUGs
added unit tests for hex and base64 string converter encoding
next week
Last week of the year. I could not find time to do the network updates I wanted to this week, so that would be nice. Otherwise I will try and clean and fix little things before my week off over Christmas. The 'big thing to work on next' poll will go up next week with the 423 release posts.
1 note
·
View note
Text
top 10 free python programming books pdf online download
link :https://t.co/4a4yPuVZuI?amp=1
python download python dictionary python for loop python snake python tutorial python list python range python coding python programming python array python append python argparse python assert python absolute value python append to list python add to list python anaconda a python keyword a python snake a python keyword quizlet a python interpreter is a python code a python spirit a python eating a human a python ate the president's neighbor python break python basics python bytes to string python boolean python block comment python black python beautifulsoup python built in functions b python regex b python datetime b python to dictionary b python string prefix b' python remove b' python to json b python print b python time python class python certification python compiler python command line arguments python check if file exists python csv python comment c python interface c python extension c python api c python tutor c python.h c python ipc c python download c python difference python datetime python documentation python defaultdict python delete file python data types python decorator d python format d python regex d python meaning d python string formatting d python adalah d python float d python 2 d python date format python enumerate python else if python enum python exit python exception python editor python elif python environment variables e python numpy e python for everyone 3rd edition e python import e python int e python variable e python float python e constant python e-10 python format python function python flask python format string python filter python f string python for beginners f python print f python meaning f python string format f python float f python decimal f python datetime python global python global variables python gui python glob python generator python get current directory python getattr python get current time g python string format g python sleep g python regex g python print g python 3 g python dictionary g python set g python random python hello world python heapq python hash python histogram python http server python hashmap python heap python http request h python string python.h not found python.h' file not found python.h c++ python.h windows python.h download python.h ubuntu python.h not found mac python if python ide python install python input python interview questions python interpreter python isinstance python int to string in python in python 3 in python string in python meaning in python is the exponentiation operator in python list in python what is the result of 2 5 in python what does mean python json python join python join list python jobs python json parser python join list to string python json to dict python json pretty print python j complex python j is not defined python l after number python j imaginary jdoodle python python j-link python j+=1 python j_security_check python kwargs python keyerror python keywords python keyboard python keyword arguments python kafka python keyboard input python kwargs example k python regex python k means python k means clustering python k means example python k nearest neighbor python k fold cross validation python k medoids python k means clustering code python lambda python list comprehension python logging python language python list append python list methods python logo l python number l python array python l-bfgs-b python l.append python l system python l strip python l 1 python map python main python multiprocessing python modules python modulo python max python main function python multithreading m python datetime m python time python m flag python m option python m pip install python m pip python m venv python m http server python not equal python null python not python numpy python namedtuple python next python new line python nan n python 3 n python meaning n python print n python string n python example in python what is the input() feature best described as n python not working in python what is a database cursor most like python online python open python or python open file python online compiler python operator python os python ordereddict no python interpreter configured for the project no python interpreter configured for the module no python at no python 3.8 installation was detected no python frame no python documentation found for no python application found no python at '/usr/bin python.exe' python print python pandas python projects python print format python pickle python pass python print without newline p python re p python datetime p python string while loop in python python p value python p value from z score python p value calculation python p.map python queue python queue example python quit python qt python quiz python questions python quicksort python quantile qpython 3l q python download qpython apk qpython 3l download for pc q python 3 apk qpython ol q python 3 download for pc q python 3 download python random python regex python requests python read file python round python replace python re r python string r python sql r python package r python print r python reticulate r python format r python meaning r python integration python string python set python sort python split python sleep python substring python string replace s python 3 s python string s python regex s python meaning s python format s python sql s python string replacement s python case sensitive python try except python tuple python time python ternary python threading python tutor python throw exception t python 3 t python print .t python numpy t python regex python to_csv t python scipy t python path t python function python unittest python uuid python user input python uppercase python unzip python update python unique python urllib u python string u' python remove u' python json u python3 u python decode u' python unicode u python regex u' python 2 python version python virtualenv python venv python virtual environment python vs java python visualizer python version command python variables vpython download vpython tutorial vpython examples vpython documentation vpython colors vpython vector vpython arrow vpython glowscript python while loop python write to file python with python wait python with open python web scraping python write to text file python write to csv w+ python file w+ python open w+ python write w+ python open file w3 python w pythonie python w vs wb python w r a python xml python xor python xrange python xml parser python xlrd python xml to dict python xlsxwriter python xgboost x python string x-python 2 python.3 x python decode x python 3 x python byte x python remove python x range python yield python yaml python youtube python yaml parser python yield vs return python yfinance python yaml module python yaml load python y axis range python y/n prompt python y limit python y m d python y axis log python y axis label python y axis ticks python y label python zip python zipfile python zip function python zfill python zip two lists python zlib python zeros python zip lists z python regex z python datetime z python strftime python z score python z test python z transform python z score to p value python z table python 0x python 02d python 0 index python 0 is false python 0.2f python 02x python 0 pad number python 0b 0 python meaning 0 python array 0 python list 0 python string 0 python numpy 0 python matrix 0 python index 0 python float python 101 python 1 line if python 1d array python 1 line for loop python 101 pdf python 1.0 python 10 to the power python 101 youtube 1 python path osprey florida 1 python meaning 1 python regex 1 python not found 1 python slicing 1 python 1 cat 1 python list 1 python 3 python 2.7 python 2d array python 2 vs 3 python 2.7 download python 2d list python 2.7 end of life python 2to3 python 2 download 2 python meaning 2 pythons fighting 2 pythons collapse ceiling 2 python versions on windows 2 pythons fall through ceiling 2 python versions on mac 2 pythons australia 2 python list python 3.8 python 3.7 python 3.6 python 3 download python 3.9 python 3.7 download python 3 math module python 3 print 3 python libraries 3 python ide python3 online 3 python functions 3 python matrix 3 python tkinter 3 python dictionary 3 python time python 4.0 python 4 release date python 4k python 4 everyone python 44 mag python 4 loop python 474p remote start instructions python 460hp 4 python colt 4 python automl library python 4 missile python 4 download python 4 roadmap python 4 hours python 5706p python 5e python 50 ft water changer python 5105p python 5305p python 5000 python 5706p manual python 5760p 5 python data types 5 python projects for beginners 5 python libraries 5 python projects 5 python ide with icons 5 python program with output 5 python programs 5 python keywords python 64 bit python 64 bit windows python 64 bit download python 64 bit vs 32 bit python 64 bit integer python 64 bit float python 6 decimal places python 660xp 6 python projects for beginners 6 python holster 6 python modules 6 python 357 python 6 missile python 6 malware encryption python 6 hours python 7zip python 7145p python 7754p python 7756p python 7145p manual python 7145p remote start python 7756p manual python 7154p programming 7 python tricks python3 7 tensorflow python 7 days ago python 7 segment display python 7-zip python2 7 python3 7 ssl certificate_verify_failed python3 7 install pip ubuntu python 8 bit integer python 881xp python 8601 python 80 character limit python 8 ball python 871xp python 837 parser python 8.0.20 8 python iteration skills 8 python street dakabin python3 8 tensorflow python 8 puzzle python 8 download python 8 queens python 95 confidence interval python 95 percentile python 990 python 991 python 99 bottles of beer python 90th percentile python 98-381 python 9mm python 9//2 python 9 to 09 python 3 9 python 9 subplots pythonrdd 9 at rdd at pythonrdd.scala python 9 line neural network python 2.9 killed 9 python

#pythonprogramming #pythoncode #pythonlearning #pythons #pythona #pythonadvanceprojects #pythonarms #pythonautomation #pythonanchietae #apython #apythonisforever #apythonpc #apythonskin #apythons #pythonbrasil #bpython #bpythons #bpython8 #bpythonshed #pythoncodesnippets #pythoncowboy #pythoncurtus #cpython #cpythonian #cpythons #cpython3 #pythondjango #pythondev #pythondevelopers #pythondatascience #pythone #pythonexhaust #pythoneğitimi #pythoneggs #pythonessgrp #epython #epythonguru #pythonflask #pythonfordatascience #pythonforbeginners #pythonforkids #pythonfloripa #fpython #fpythons #fpythondeveloper #pythongui #pythongreen #pythongame #pythongang #pythong #gpython #pythonhub #pythonhackers #pythonhacking #pythonhd #hpythonn #hpythonn✔️ #hpython #pythonista #pythoninterview #pythoninterviewquestion #pythoninternship #ipython #ipythonnotebook #ipython_notebook #ipythonblocks #ipythondeveloper #pythonjobs #pythonjokes #pythonjobsupport #pythonjackets #jpython #jpythonreptiles #pythonkivy #pythonkeeper #pythonkz #pythonkodlama #pythonkeywords #pythonlanguage #pythonlipkit #lpython #lpythonlaque #lpythonbags #lpythonbag #lpythonprint #pythonmemes #pythonmolurusbivittatus #pythonmorphs #mpython #mpythonprogramming #mpythonrefftw #mpythontotherescue #mpython09 #pythonnalchik #pythonnotlari #pythonnails #pythonnetworking #pythonnation #pythonopencv #pythonoop #pythononline #pythononlinecourse #pythonprogrammers #ppython #ppythonwallet #ppython😘😘 #ppython3 #pythonquiz #pythonquestions #pythonquizzes #pythonquestion #pythonquizapp #qpython3 #qpython #qpythonconsole #pythonregiusmorphs #rpython #rpythonstudio #rpythonsql #pythonshawl #spython #spythoniade #spythonred #spythonredbackpack #spythonblack #pythontutorial #pythontricks #pythontips #pythontraining #pythontattoo #tpythoncreationz #tpython #pythonukraine #pythonusa #pythonuser #pythonuz #pythonurbex #üpython #upython #upythontf #pythonvl #pythonvert #pythonvertarboricole #pythonvsjava #pythonvideo #vpython #vpythonart #vpythony #pythonworld #pythonwebdevelopment #pythonweb #pythonworkshop #pythonx #pythonxmen #pythonxlanayrct #pythonxmathindo #pythonxmath #xpython #xpython2 #xpythonx #xpythonwarriorx #xpythonshq #pythonyazılım #pythonyellow #pythonyacht #pythony #pythonyerevan #ypython #ypythonproject #pythonz #pythonzena #pythonzucht #pythonzen #pythonzbasketball #python0 #python001 #python079 #python0007 #python08 #python101 #python1 #python1k #python1krc #python129 #1python #python2 #python2020 #python2018 #python2019 #python27 #2python #2pythons #2pythonsescapedfromthezoo #2pythons1gardensnake #2pythons👀 #python357 #python357magnum #python38 #python36 #3pythons #3pythonsinatree #python4kdtiys #python4 #python4climate #python4you #python4life #4python #4pythons #python50 #python5 #python500 #python500contest #python5k #5pythons #5pythonsnow #5pythonprojects #python6 #python6s #python69 #python609 #python6ft #6python #6pythonmassage #python7 #python734 #python72 #python777 #python79 #python8 #python823 #python8s #python823it #python800cc #8python #python99 #python9 #python90 #python90s #python9798
1 note
·
View note
Text
UIUCTF 2020: Nookstop 2.0
This is a very un-hacking solution: we basically just guess the flag!
We start with this page, which looks a lot like Nookstop 1.0. Just as before, we run
document.cookie="secret_backend_service=true";
to enable the "secret backend service" (as clued by the Japanese text in the source code of the page). Reloading the page gives a link to the real challenge, which is running Emscripten.
Grabbing your banking information...... Your routing number is: 0x9a0 2464 Your account number has been successfully transmitted using the latest XOR encryption, and is not shown here for security reasons. Please stand by while the ABD decrypts it....... Calling decrypt function.... wkwcwg{c3oo33os[Byte 7F here] Uh-oh! There's been an error!
One approach would be to dump out the WebAssembly file, as easily found by looking at the page's network requests; then it can be reversed with the help of tools like wasm or wabt. Unfortunately, Emscripten adds a bunch of external code that is hard to reason about within the context of just the .wasm file, and so these decompilers produce output that is next-to-useless. Let's skip the reversing.
The text above hints that there's some kind of XOR going on, and we have a corrupted key: "wkwcwg{c3oo33os\x7f". This corrupted key looks awfully similar to "uiuctf{", in the start. Let's XOR the two together and see what the difference is.
>>> os = "wkwcwg{c3oo33os\x7f" >>> bs = "uiuctf{" >>> print( [ord(os[i])^ord(bs[i]) for i in range(len(bs))] ) [2, 2, 2, 0, 3, 1, 0]
Aha, so all of the XORs are off by a number from 0 to 3 -- that is, just the bottom two bits are wrong. Let's dump out all the candiate characters in the flag:
>>> for b in os: ... print( chr(ord(b) ^ 0) + chr(ord(b) ^ 1) + chr(ord(b) ^ 2) + chr(ord(b) ^ 3) ) ... wvut kjih wvut cba` wvut gfed {zyx cba` <-- Start of flag content 3210 onml onml 3210 3210 onml srqp <-- End of flag content ~}|
The first 7 characters are the uiuctf{, and the last is the final }, so we need to guess the remaining 8. We figure that it will be English leetspeak, so take the letter options, and convert the numbers 3210 into the letters eszilo. Then search for an answer in a regex-based dictionary. Nutrimatic helpfully ranks by frequency as an English word, and the results give one big answer: "billions". Given that we're hacking a bank, this makes perfect sense.
Convert back to leetspeak to get the flag uiuctf{b1ll10ns}.
1 note
·
View note
Text
Rolling Custom Cryptographic Systems: Part 1
Cryptography- it's always the hot debate topic regarding computers, with society trying to perserve it and ensure ciphers are extremely hard to crack, to aid in the preservation of privacy (thus ensuring free speech). Governments often oppose cryptographic ciphers because of their difficulty to crack, making investigations and research on other people harder.
However, there's no denying that such systems seem very arcane and tough to understand, and this series of posts intends to shed some light on how cryptographers implement systems that are extremely hard to crack.
This post series exists to help educate people on the importance of cryptographic research and how it corresponds to your privacy online, and how you can better protect yourself in a high risk environment. I would like to give credit where it's due, as I learned most of this content from "Applied Cryptography" by Bruce Schneier.
Like a Lightswitch: Boolean Logic
So let's quickly cram an intro to computer science class into a couple paragraphs to preface this all... Boolean Logic is just a fancy term for the ability to do math with nothing more than true or false statements and a few special operations. This is achieved through the use of the binary number system, which behaves very much like the decimal system in the sense that it has a "place" for digits of a certain value. However, instead of having a 1s, 10s, 100s, etc. place, the binary system has a 1s, 2s, 4s, 8s, etc place. A binary digit is called a bit and a number that is 8 binary digits long is called a byte.
Like normal math, we can do addition, subtraction, etc to the binary numbers... But we can do more than that since binary 0 is "False" anything other than 0 is "True". We can use AND, OR, XOR, NAND, and NOT operations on our numbers now. AND, OR & NOT are all pretty self explanatory in how they work (they take inputs and you perform said operations on them). NAND stands for NOT AND, so you basically perform AND and then invert the output value. XOR will only output true if only one input is true.
Cryptography Basics
So what is cryptography? In the most perfect sense, a cryptographic function is an algorithm that can only be reversed using one method, and is impossible to recover the original contents using any other method. However this is often not the case, and this is why security experts say nothing is 100% secure, because there will always be unknown holes in your cryptographic functions and systems.
When cryptographic functions work through taking a message and a single "key", performing a series Boolean operations and mathematical operations to use the same key to encrypt and decrypt the message, it is called a symmetric encryption algorithm. Some of the leading symmetric algorithms (in terms of security) are AES-256, CHACHA20 and SALSA20.
If there's 2 keys, one for decryption (called a private key) and one for encryption (called a public key), it is called an asymmetric encryption algorithm. Some of the leading asymmetric algorithms are RSA and EC-Diffie Hellman.
Finally a hashing algorithm is one that takes a message as input, performs a series of operations on it, and outputs a bunch of garbled information- but if you input the same message again, you will get the same output. This is common for storing passwords and login information. Common hashing algorithms are SHA256 and SHA512.
Keys require random numbers to be created, and often times cryptographic systems rely on programs to generate random numbers for keys. The ongoing problem is that computers are incapable of being random, so there is ongoing research to produce Cryptographically Secure Pseudo-Random Number Generator software (CSPRNG). Alternatively, some people opt for Hardware-based Random Number Generators (HRNG) for producing their crypto keys.
Planning our Cryptosystem
Let's say Bob and Alice want to email each other, but they fear Eve- our eavesdropper- might be listening in. How can we securely share secret cryptographic keys in such a manner that it's impossible for Eve to get them?
Using Multiple Systems
Using some code, it's entirely possible to stitch together multiple algorithms. So it's possible that we could send EC-Diffie Hellman encrypted messages, but encrypt our public and private keys with AES-512 encryption and a personal password. So it's not theoretically possible for "Eve" to intercept the encryption and decryption keys without having to trick Bob and Alice.
To do this, we need to understand what EC-Diffie Hellman keys go where. The public key encrypts the message, while the private key decrypts the message. So for this to work, Bob would need to have Alice's public key and his private key encrypted with AES-512, while Alice would need Bob's public key and her private key encrypted also with AES-512.
To simplify this... 1) Bob and Alice generate public and private keypairs 2) Bob and Alice swap public keys. 3) Bob encrypts Alice's public key and his private key. 4) Alice encrypts Bob's public key and her private key. 5) When they wish to email, they unlock their keys. 6) After unlocking their keys, they encrypt their messages. 7) To decrypt the message, Bob or Alice unlocks their keys. 8) They then use their private key to decrypt the message.
This seems rather complex, although most of the process is automated and running behind the scenes. Software like this would manifest itself as a "keychain" or "keyring" in major programs.
The Plan
The first step, which will be shared in the next post, will be to implement a CSPRNG and a hashing algorithm so we can generate keys.
The second step will be to implement a EC-Diffie Hellman cryptographic function, using hashing algorithm and CSPRNG to aid in the generation of keys.
The third step will be to implement AES-512, which will complete the cryptosystem, and allow for encryption of the keys.
The last milestone of this project will be to provide a simple and clean interface so an end-user can encrypt their emails.
References
Schneier, B. (2015). Applied cryptography: Protocols, algorithms, and source code in C. Indianapolis, IN: Wiley.
1 note
·
View note
Text
This Single Photo Is Hacking Everyone’s WhatsApp, Telegram Accounts
This Single Photo Is Hacking Everyone’s WhatsApp, Telegram Accounts
One of the most worrying leaks arising from the recent WikiLeaks publication is the possibility that government organizations can compromise WhatsApp, Telegram, and other end-to-end encrypted chat applications. While this has yet to be proven, many end-users are concerned about WhatsApp and Telegram end-to-end encryption to guarantee user privacy. This encryption is designed to ensure that only…
View On WordPress
#applied science#artificial intelligence#bits & bytes#computer#craft#electronics#hack#hardware#high tech#implement#latest technology#learn#machine#Mobile#nano technology#process#Science#skill#softwares#tech#tech gadget#tech news#tech read#tech reviews#tech updates#technic#technology#telegram#tips & tricks#whatsapp
0 notes
Text
What's wrong with Arduino and why I hate it
This is a typical presentation on what's wrong with Arduino: https://www.youtube.com/watch?v=K88pgWhEb1M
Let's start from the begining — the ATmega328 chip. Looking at the pinout you will see, that there is no completely usable port. If you want to use asynchronous driver (occupying PD), you have to use crystal oscilator (PC, and is also incomplete lacking PC7) etc. The best you can do is to divide your IO into two nibbles and use lower nibble of PB and PC port and is also vise (but not necessary) exclude PB0 line, because is wired to the opposite side ot the DIL package. Reading (in C) means something like ((PORTC & 0x0F)<<4)+((PORTB>>1)&0x0F) and writing PORTB=((0x0F & data)<<1); PORTC=((0xF0 & data)>>4);. Simple and easy. And, of course, you can also use PB5 line if you want.
Doing the same thing in Arduino leads to bitwise access to every pin using for() cycle, but switching pins between input and output means bitwise operations too, on top of that, there lurks the bug he was unable to fix. You have to set IOs to input before switching on the EEPROMs output. Yes, this means another cycle, he tried to be wise and use the cycle used for reading (which is impossible), but failed, because he set OE before reading from the EEPROM, which is correct, but reading EEPROM in this pseudowise implementation leads to setting OE before switching IOs to input, which is completely incorrect and terrifying more than terrorist or Walter's farts and, of course, could cause the damage to the microcotroller, eeprom, or both of them and is also the cause of improper reading. Thing broke as soon as he tried to switch from writing to reading. He is reading some bits in the same moment as others are shorted to ground or Vcc. As soon as the first byte is read, all the IOs are set to inputs and could not cause more problems, so the first byte must be improperly read. And on top of that all lays misconceptual dealing with strobe signal, which affects address lines but not OE signal and causes the OE is swirling between Hi and Lo state in the rythm of overwriting previous address data inside shift registers and causes more shortages when IOs are set as output on the MCU side.
To complete the whole horrorshow, data are read from EEPROM to RAM (inside small MCU), then reformated to a complicated in memory stored string and then send through asynchronous serial line. The MCU's async driver transmits from one byte memory, so the whole string is processed byte after byte. There is no need to store data inside MCU's RAM, if you are not using Arduino. Arduino is not equipped with correct async support, there is no function to convert byte to asciihex and Arduinists are too lazy to write it on their own, so they are using a huge amount of system resources instead of doing things simple and correct way. And this is the thing I most hate on Arduino. It is depicted as an educational project which main goal is to teach how to code on small MCU's, but in fact, it is teaching how to do it a wicked way. Failing at the most important goal means failing completely. Nothing wrong about that, the only way not to fail is do nothing. but what drives me crazy is the fundamental belief that everything is correct and it is me who cannot understand. The only way how to make things better is understanding where they failed, not the fundamental blindness.
1 note
·
View note
Text
C/C++ Macro & Bit Operations
Setting a bit Use the bitwise OR operator (|) to set a bit. number |= 1 << x; That will set bit x.
Clearing a bit Use the bitwise AND operator (&) to clear a bit. number &= ~(1 << x); That will clear bit x. You must invert the bit string with the bitwise NOT operator (~), then AND it.
Toggling a bit The XOR operator (^) can be used to toggle a bit. number ^= 1 << x; That will toggle bit x.
Checking a bit You didn’t ask for this but I might as well add it. To check a bit, AND it with the bit you want to check: bit = number & (1 << x); That will put the value of bit x into the variable bit.
#define bitset(byte,nbit) ((byte) |= (1<<(nbit))) #define bitclear(byte,nbit) ((byte) &= ~(1<<(nbit))) #define bitflip(byte,nbit) ((byte) ^= (1<<(nbit))) #define bitcheck(byte,nbit) ((byte) & (1<<(nbit)))
2 notes
·
View notes
Text
Lander: BASIC Tenliners Contest 2019 entry

Use the joystick controller to land your LEM (lunar excursion module) on a moon. Land on one of the green landing pads. The trigger fires the main thrusters, pushing the ship upward against the moon’s gravity. Left/right stick movement fires the side thrusters for horizontal movement.
A control panel shows your vertical speed (indicated by ↓), horizontal speed (→), strength of gravity on the moon (G), and amount of fuel (F). To land safely, you must touch down on a landing area with a vertical speed of 10 or less, and horizontal speed of 5 or less. Flying off the sides or the top of the screen is deadly. Running out of fuel is not recommended.
Each moon is a little different, with gravity ranging from light (G5 in the control panel) to heavy (G20.) Moons usually have one or two landing pads. (Rarely, you will come across a moon that has none! In this case you will die. I’m sorry. Space exploration is dangerous.)
The first Lunar Lander that I was exposed to was Atari’s vector arcade version, which seemed amazing — and impossibly difficult. Later, my dad bought the Adventure International version of Lunar Lander for his Atari 800. (It was one of the few pieces of Atari software that he didn’t pirate.) In that version, the LEM doesn’t rotate. Instead, side thrusters push the ship horizontally while it remains in a vertical position. I did the same in my version.
(That’s where I learned the word “hybrid.” The stats on the back of the box said “Language: Hybrid.” I wondered if that was some programming language I hasn’t heard of; dad explained that the word meant “a combination of two things.” In this case, BASIC and assembly language.)
Benj Edwards wrote a great history of Lunar Lander games that is worth reading.
I’ve wanted to program a Lunar Lander-type game since I was a teen. I’m pretty sure I tried it using shape tables on my Apple IIc in AppleSoft BASIC, and experimented with it in Atari BASIC at some point, but I never could get the movement with respect to thrust and gravity right. I didn’t have the math concepts. But in the past few weeks, with my buddy helping with the math for Bouncy; and reading Bruce Artwick’s book Microcomputer Displays, Graphics and Animation, I now know jussssst enough math to be dangerous with Atari graphics. So I was finally able to create a version of Lunar Lander, and in 10 lines of Turbo-BASIC XL.
For the contest, my program fits in the 120-characters-per-line category. In terms of cramming stuff into 10 lines, it’s some of my best work and I learned a lot. Several times I thought the program has to be done, there was absolutely no more room to squeeze in another feature. Then I’d find a way to do something in fewer bytes, making room for a tiny improvement elsewhere.
My favorite was replacing for-next loops to move or generate data with the MOVE statement, with copies memory around RAM. For instance, I needed to zero out Player (sprite) data. Normally I’d do that with FOR I=P+512 TO P+896:POKE I,0:NEXT I. But — MOVE DPEEK(88),P+512,384 does the same thing with fewer bytes (and much faster.) But I needed to copy from an area of RAM that is all zeros. Where would I find such a place? A newly blank screen is filled with zeros. At another point, I needed a mess of random-looking data for the ship explosion. I started with a FOR-NEXT loop writing RANDom numbers, but ended up moving random bits of data from the Atari ROM into sprite memory. Again, it was much faster and took of less precious program space. I’m not implying at all that I invented this technique, but I figured it out on my own and it was satisfying.
Here’s the commented code:
'LANDER by Kevin Savetz 'March 22 2019 GRAPHICS 23:'GR. 7, no text window. 159x92 'normally y=95 for full GR.7 screen, we lose a little because text line at top DIM F0$(16),F1$(10) F0$="\00\00\00\00\3C\42\42\3C\42\7E\5A\81":'LEM graphic with blank spaces around 'to make erasing old LEM easy as it moves vertically 'F1$ is workspace for the P1 thrust flame FUEL=150:'starting fuel A=PEEK(106)-20:'set aside RAM for players POKE 54279,A:'PMBASE P=A*256:'top of P/M memory POKE 559,46:'Double line resolution P/M characters VX=-5+RAND(11):'Initial X speed POKE 53277,2:'turn on players (not missiles) M=DPEEK(88):'top of screen RAM MOVE M,P+512,384:'zero Player data, copying 0s from the fresh blank screen POKE 704,88:'PCOLR0. I like purple. 'custom display list D=DPEEK(741):'location of display list POKE D+4,66:'top line is Graphics 0 text line (mode 2) -MOVE D+102,D+99,3:'shorten the display list so screen's not too tall POKE 752,1:'hide cursor 'draw terrain & stars/ground texture COLOR 1 PLOT 0,90-RAND(60):'start drawing terrain on left edge LPP=1:'first segment can't be landing pad FOR I=10 TO 150 STEP 10 Z=M+40+RAND(3500):'pick a location for star/ground texture POKE Z,PEEK(Z)!3:'draw it IF (LPP OR (RAND(5) OR LP=2)):'draw craggy rock if we just drew a landing pad 'or if we've already drawn 2. Otherwise, maybe draw a pad II=RAND(40)+52:'rock height COLOR 1:'color of rock LPP=0:'remember that last thing drawn isn't a pad ELSE COLOR 2:'color of pads LP=LP+1:'count number of landing pads LPP=1:'remember last thing drawn is a pad ENDIF DRAWTO I,II:'draw the rock/pad NEXT I COLOR 1 DRAWTO 159,60 PAINT 159,92 DT=.05:'Time increment. Lower numbers make the game slower X=50+RAND(125):'Initial X Y=520:'Initial Y G=RAND(15)+5:'Strength of gravity VY=1+RAND(10):'Initital Y speed DO:'main loop POKE 53278,0:'Clear PM collisions X=X+VX*DT:'change LEM's X POKE P+Y+264,0:'clear side thrust Y=Y+VY*DT:'change LEM's Y VY=VY+G*DT:'new Y speed POKE 53248,X:'HPOSP0 position LEM at new X MOVE ADR(F0$),P+Y,16:'draw LEM at new vertical position 'clean up from last move... -MOVE M,P+Y+136,12:'copy 0s from top corner of screen to erase flame (if any) SOUND:'stop thrust sound if any 'thrust. Player 1 is the bottom thrust flame IF FUEL AND STRIG(0)=0:'if trigger and have fuel VY=VY-2:'decrease vertical speed MOVE ADR(F1$),P+Y+136,10:'place flame 8 lines below P0 SOUND 0,50+Y,8,8:'I KNOW, there's no sound in space POKE 53249,X:'P1 X position POKE 705,50+RAND(11):'flame color FOR Z=3 TO 8 POKE ADR(F1$)+Z,RAND(16)*4:'rows of random flame, but only 4 bytes 'in the middle so it isn't too wide 00111100 NEXT Z FUEL=FUEL-1:'reduce fuel ELSE:'if no trigger, check for left/right thrust. Player 2 is the side thrust flame S=STICK(0) Z=(S=7)-(S=11):'get joystick left-right status IF Z AND FUEL AND NOT FIRE:'if joystick and have fuel and LEM isn't thrusting up POKE P+Y+264,3:'put P2 flame at correct vertical position relative to LEM POKE 53250,X-3+(4*Z):'side flame on left or right of LEM POKE 706,50+RAND(11):'P2 color VX=VX-Z:'change X speed SOUND 0,50,8,8:'noise FUEL=FUEL-1 ENDIF ENDIF POKE 87,0:'get ready to print in text window 'If LEM goes off screen or hits terrain or hits landing pad too fast IF X<40 OR X>205 OR Y<510 OR PEEK(53252)&1 OR (PEEK(53252)&2 AND (VY>10 OR ABS(VX)>5)) FOR Z=1 TO 250:'explosion SOUND 0,50+RAND(30),6,8:'in space no one can hear you scream MOVE 59740+RAND(500),P+Y+4,12:'copy random data from ROM to P1 POKE 704,50+RAND(21):'P1 color NEXT Z RUN:'restart ENDIF 'show speed, gravity, and fuel POS. 14,0:?"\1B\1D";INT(VY);" \1B\1F";INT(VX); ?" \C7";G;" \C6";FUEL;" " IF(PEEK(53252)&2):'touched landing pad, make happy music & restart SOUND 0,121,10,10:PAUSE 80 SOUND 1,81,10,10:PAUSE 80 SOUND 2,60,10,10:PAUSE 150 RUN ENDIF LOOP
12 notes
·
View notes
Text
Good Trouble 1x11 “Less Than” Review
There’s choppy waters on Episode 11 of Good Trouble and it seems like ships might be sinking — even Stef and Lena. With only a couple episodes left, this show is really amping up the drama. If you aren’t caught up, you’ll definitely want to get on that.
Stef and Lena, the moms of the Fosters clan played by Teri Polo and Sherri Saum, make their second cameo of the season accompanying Callie, Mariana and Jamie to Judge Wilson’s home. Though it appears at first that the Judge was simply being polite by inviting his clerk’s family over, it soon becomes apparent that he’s trying to teach his delinquent son a lesson.
If you don’t recall, Wilson’s son was charged for assaulting a police officer and placed on house arrest. He and Callie have had a few awkward encounters, one which ended in him apologizing for her having to work for his father.
Though Callie tries to be polite and keep her chatty sister away from him, he soon reveals that his charges have been dropped. Callie is appalled by this, especially since she knows Jamal Thompson, the center of the case she’s currently clerking, did not have receive the same fate due to his skin color.
Meanwhile, Malika and Callie become annoyed when black jurors are continually questioned and dismissed off the case. And as if things couldn’t get any worse, a video of Jamal speaking poorly of black women leaks, causing many to question their continuation of protesting against the court on his behalf.
Malika struggles with her stance, knowing that she must continue to defend the lives of those who succumb to race-based police violence, but also questioning whether or not a black man would do the same for her. She recalls her own boyfriend Isaac, and how the first night they met, he was swiping left on black women on a dating app while instead going for white, blonde-haired women.
Alice, meanwhile, is also struggling to keep her blooming relationship going. Joey accepts that she isn’t out to her family yet, but what she has trouble accepting is the fact that Alice’s ex, Sumi, is still hung up on her. When Sumi shows up unannounced at the loft offering to make dinner for the three of them plus Sumi’s fiance Meera, things get awkward quick. Sumi’s relentless sucking up to Alice catches the attention of not only Meera, but Joey as well, who is uncomfortable to say the least. Unfortunately, when she expresses her concerns to Alice, it becomes clear that Alice may have been lying about being over her ex after all.
Back at Judge Wilson’s house, tensions between Stef and Lena rise as they talk to the judge and his wife. Callie and Mariana, concerned about their mothers’ relationship, jump at the first opportunity to leave and force their parents to sit down and talk things out as soon as they get back to the Coterie.
It turns out that during Lena’s campaign for State Assembly, Stef said something in an interview that didn’t align with her wife’s views, and Lena didn’t stand up for her. This has caused a communicative disconnect between the two. Thankfully for them (and for us), they are able to talk it out, avoiding what could’ve been possibly the worst breakup in television history.
Speaking of breakups, though, there’s Malika and Isaac. Due to differing views about Jamal Thompson’s comments and Malika’s unwillingness to let her guard down, the pair have broken it off. This doesn’t mean of course that they won’t get back together (and I’m so hoping they do), but the stress of this case seems to be too much for Malika to juggle with a romantic relationship right now. Luckily, they’ve been straight out of a romantic comedy from the beginning, and romantic comedies always end with huge romantic gestures and professions of love. So should we really be worried? Probably not.
At Speckulate, Mariana is attempting to put together an anonymous list of women and men to show the wage gap at the company on paper. However, she runs into a lack of support when she brings up adding race indicators to the list. Mariana is only one of two women of color at the company, so it’s unfortunately unsurprising when the other members of the Byte Club want to tackle general women’s equality first. Mariana knows she can’t back down in the fight for intersectional feminism though, so with the aid of some statistics, she’s able to convince the other women to side with her on the issue. Unfortunately, it then comes to her attention that by marking herself as Latina, she’ll be getting rid of her anonymity completely. Thankfully, Raj agrees to mark himself as Indian, outing himself amongst his white coworkers as well.
And in a giant win for Mariana, the CEO of the company personally asks her to meet with him about developing her app. Her hard work is finally paying off! However, something tells me that when this not-so-anonymous list goes public, that might hinder her success a bit.
And across town at the firm, Callie has an outburst. When the judge won’t take away defender’s abilities to question and dismiss black jurors, Callie calls him out and throws his son’s privilege back in his face. Although Callie is later pleased to see that Judge Wilson has hired a new liberal clerk, the woman who she suspected was being harassed by a Judge who had assaulted Rebecca, that joy quickly fades though when the Judge delivers her some devastating news: she’s being replaced. YIKES.
Last episode was hyper-focused on relationships and didn’t cover the work lives of our beloved characters at all. So, I was ecstatic to see the focus shift back to Callie and Mariana’s professional endeavors, and for some waves to be made in the workplace. Similar to the pilot though, one sister’s risk-taking worked in her favor, while it definitely did not for the other.
Callie’s been getting braver and braver in the firm, choosing to speak up against Judge Wilson instead of keeping her mouth shut even though she knows he’s conservative-leaning. This is partly, of course, due to the fact that the Judge himself encouraged her to do so. However, she definitely took it a bit too far by bringing up his son — a subject she knows is touchy for him. Although I’m sad to see that Callie got dismissed from the Jamal case, I’m glad that she spoke her mind and I’m hoping that his new liberal clerk won’t back down from doing the same.
Meanwhile, Mariana was able to score a meeting with the CEO of the company. This development has been a long time coming, and it’s super satisfying to see her get a win over her misogynistic, white male coworker. Raj all the while is being a stellar ally to Mariana’s Byte Club and even seems willing to face repercussions if it means some positive change is made. Even though he messed up by trying to kiss Mariana a few episodes back, I can’t help but to love these two together, even if it’s just as friends.
This episode also did an amazing job at bringing up the issue of internal struggles within the black community. Malika wants to feel supported by the group she’s trying to support, and even though she knows that black men are so often victims of police violence, she finds that black men often don’t show up to support black women and even prefer white women over them romantically in some cases. This show is always shedding light on social issues we don’t often talk about, and I’m so thankful for the scene in which Malika shut Davia and their other roommate down for telling her to stop protesting. Malika is tired of having to explain black issues to white people at the drop of a hat, as she should be, and I’m so here for her reclaiming her identity as a black woman and refusing to let non-black people tell her who she should be or how she should feel.
The representation on Good Trouble is always amazing, but the writing really stuck out to me this episode. The dialogue within these important conversations blew me away. Important issues are being discussed without seeming super staged, and that’s so critical. These are normal conversations and normal problems that we face in our everyday lives. So, they should sound normal when being discussed — not like PSAs.
I’m just so thankful for this show and all that it is. It’s truly better than I could’ve ever imagined, and with a season two in the works, I can’t wait to see how this season ends and what comes next. Cierra Ramirez who plays Mariana recently teased that this season will end on a cliffhanger, and with the drama that’s been building up throughout these first 11 episodes, I don’t think any of us are ready.
Good Trouble airs Tuesdays on Freeform at 8/7c.
Jessica’s episode rating: 🐝🐝🐝🐝
8 notes
·
View notes
Text
Alpha juno editor windows

ALPHA JUNO EDITOR WINDOWS GENERATOR
ALPHA JUNO EDITOR WINDOWS SOFTWARE
ALPHA JUNO EDITOR WINDOWS PLUS
Sound Modify Knob x 5 Display 18 characters 1 line + 20 characters 2 lines custom LCD (with backlit) External Storage Device USB Memory (supports USB 2.0 Hi-Speed Flash Memory) Connectors Output Jacks (L/MONO, R): 1/4 inch phone type Mic Input Reverb: 8 types SMF/Audio File Player Sectioin File Format Standard MIDI File: format-0/1Īudio File: WAV, AIFF, MP3 Others Rhythm Pattern Preset: 24 groups x 6 Arpeggiator Preset: 128 Chord Memory Preset: 17 Controllers D Beam Controller Performances: 64 User Memory Patches: 128įavorites: 100 Effects Multi-Effects: 3 systems, 79 types Wave Memory 64 M bytes (16-bit linear equivalent) Preset Memory Patches: 1082 + 256 (GM2)
ALPHA JUNO EDITOR WINDOWS GENERATOR
Sound Generator Section Maximum Polyphony 128 voices Parts 16 parts You can also connect MP3 players directly to the JUNO-Di through its external input. Impress your audiences with full-band performances from a single keyboard! Additionally, the Center Cancel feature lets you sing along karaoke-style with audio files in the Song Player for a complete entertainment experience. You can play MP3, WAV, AIFF, and SMF files, and control them from the dedicated buttons on the front panel. With its USB MEMORY port and Song Player function, the JUNO-Di enables direct playback and control of backing tracks from a USB key. Sing along with your performances and transform your voice in colorful and creative ways, from silky smooth to sci-fi robotic. A dedicated reverb is assigned to the input, so you can add lush ambience to your voice without taking away from the main onboard effects. More than meets the eye, the JUNO-Di lets you plug a microphone into its external input and process your voice through the built-in vocoder. A battery-life indicator on the front panel ensures that you won’t lose power unexpectedly. When used in conjunction with a battery-powered amp such as Roland’s famous CUBE Street or MOBILE CUBE, the JUNO-Di can be played and heard anywhere. The battery compatibility lets you play for up to five hours without plugging in (uses Ni-MH AA-size rechargeable batteries). It’s strong yet amazingly lightweight (only 5.2kg) making it easy to lift and carry. It’s a great tool for practice and performance. And don’t forget the onboard rhythm patterns, which can be easily adjusted on the fly with a dedicated tempo control. If you want to create layers or splits, dedicated buttons and the large LCD make the process fast and friendly. You can even assign your most-used sounds to the Favorite buttons for instant access. If you want a piano, for example, just press the Piano button. But fear not - the JUNO-Di simplifies the process of finding sounds with its dedicated category buttons. With so many sounds onboard, it could be a daunting task to find what you need.
ALPHA JUNO EDITOR WINDOWS SOFTWARE
A software editor is also provided if you prefer more advanced editing via PC. The sound-bank is so diverse, it can compliment any style of music! And if you want to customize the sounds, the dedicated “Sound Modify” knobs on the front panel let you instantly cater each sound to your specifications, even while you’re playing.
ALPHA JUNO EDITOR WINDOWS PLUS
At the heart of this exciting new synth is a top-of-the-line voice engine that delivers world-class sounds - including grand and electric pianos, lush strings, beautiful guitars, powerful brass, percussion, plus banks of exotic instruments, modern synth sounds, and much more.

0 notes
Text
A bookish bound man obsessed for knowledge crafts long poem
This hunger artist cannot read volumes of printed material fast enough to satiate an immense appetite and unquenchable thirst to acquire learning from the millenniums gushing fount of cumulative chance revelations, (or deliberate intent to validate a premise vis a vis via private investigative research), thus unwittingly setting alight an intense inquisitiveness sans this curious George primate experiencing the equivalent of mental non fallacious
figurative enthusiasm analogous to:
patriotism, phototropism, priapism...), whose every waking hour, (when not tending toward the basic needs for survival as a seeming foreigner - journey ying in this helter skelter, madcap, slaphappy, whirled wide web) expended to enrich the yawping immeasurable volume mine fist size housed cerebellum buzzfeeds
shrouded within skull and cross bones, a vast scope of innumerable chunks of fascinating, fortifying, and fulfilling various subject matters,
that when pursued
to an approximate logical conclusion yields abundant esoteric information.
These sundry shiny, salutary
nuggets of wisdom send a surge
within this once
a pawn a time white knight (holed up in his rook re:)
of orgasmic sensations
coursing throughout each
neuron and axon of this gourmand
famished for (imagine if you will)
overflowing platters full of
juicy, fruity, and bounty tea full volumes
of incredible edible raw bits
(toothsome incredible mental edibles satiating faux lower
and upper indentured craving most satisfactorily) with byte size tidbits
of savory, tasty, ultimately vaunted
mouthwatering hors d'oeuvres teasing me
to such fancy feast ohm my dog amp pulley serving one godaddy
gloriously heightening inexplicable
joie de vivre keen longing making
tongue lick lips in anticipation
to partake from Smörgåsbord
of expansive culinary cuisines.
Though nada lick of evidence concluded that hair color plays a role, (especially plait tin ham), I chose an arbitrary hue (without arbitration, deliberation, or genuflection) hair raising experiment to be illegally blonde - courtesy
of hydrogen peroxide
as a last ditch effort to increase
the rate my noggin can absorb
page after page of sought after
printed information, less
to impress anybody, but more so
to satisfy an incessantly voracious
yen to understand, which
(as a minor side effect) possibly
increases the weight of thine
sixty plus shades of gray cerebral matter.
Thee correlation asper whether
a lighter tinted non natural tone
of genetically decreed follicles
(sprouting within Ziegfeld Follies
like tender brownian growth -
thread wide spindles in the case of myself),
I certainly experienced, invited,
and measured quantifiable uptick
in incidents involving being queried
as a smart schnorrer in a city
where the streets have no names)
adorning straggly strands
striving superiorly regaling
this Tess T uber ville wondrous tourist
with crackling, popping, and snapping
electrical charges, which (as a side note) allowed, enabled and provided
a pronounced ability, whereby
contents of pages got vacuumed
within a blink of an eye to imbibe
(without any adverse reaction
of heady inebriation not jeopardizing
body, mind or spirit of Brexit ting
away courtesy Yankee doo dill ling
confounding basic auburn zillions
of tough proteins called keratin.
0 notes
Photo

Founding a Tech Start-Up in New York Thinking about starting a tech company in New York City? Hear from our panel of start-up founders on the special joys—and challenges—of launching here in NYC.
#applied science#artificial intelligence#bits & bytes#computer#craft#electronics#hardware#high tech#implement#latest technology#learn#machine#Mobile#nano technology#process#Science#skill#softwares#tech#tech gadget#tech news#tech read#tech reviews#tech updates#technic#technology#tips & tricks
0 notes