Tumgik
#where my computer is better and i have my personal software
bangcakes · 1 year
Text
.
4 notes · View notes
sexhaver · 4 months
Text
there's this really cool phenomenon that happens sometimes with computer-illiterate people (especially on the internet) where they'll ask me/someone else with a CS degree how to do something relatively complicated/nonobvious, like commenting "how do i download this file" directly on a github repository, or bailey asking me to get her Skyrim installation with upwards of 50 mods that have not been updated in months to launch without throwing a fatal compatibility error, or someone at my old job asking why our proprietary software wouldn't launch after he updated a robot drive; and when the CS person in question starts explaining using basic industry-standard terms like "driver" and "command line" they get snappily told that not everyone knows fancy computer jargon like they do, so they slow down and define every single basic term as they encounter it, which takes forever (especially via text/over the internet) and inevitably results in the other person going "wow that sounds way too complicated for me", and eventually the CS person gets tired of having to explain networking troubleshooting procedures as if to a toddler, and they tell people to just google the terms they don't understand to find a better explanation online than whatever they (the CS person) would have written, at which point the computer-illiterate person goes "wow, this is why everyone thinks tech bros are so stuck up and elitist". yes i worked in tech support for a year and a half why do you ask
896 notes · View notes
falling-endlessly · 3 months
Text
Boomerang (part 3)
Vox x Female!Ex!Overlord!Reader
Summary: Your infuriating ex is planning something, and it's putting everyone on edge. But if he wants at the hotel, he'll have to go through you (and Alastor) first.
<— Part 2 Chapter Index Part 4 —>
—6 HOURS AGO—
"What," Valentino growled, claws creating cracks in the table from how hard he was gripping it. "The fuck did you just say?"
Velvette was no better. Her lip was pulled into a furious snarl, and for once her phone was nowhere to be seen. "Vox, are you out of your fucking mind?"
"Relax," Vox reclined in his chair, raising a brow at his murderous business partners. Velvette's eye twitched and the table creaked in protest under Valentino's fury. "I'm not actually going for redemption, damn, calm your tits people."
"What happened to keeping up an image for the brand?" Velvette banged a fist against her armrest, gritting her teeth. "The Morningstar bitch was literally humiliated on live television, and now you're going to personally advertise for her?!"
"The next extermination is coming sooner than ever, and people are getting desperate. This little publicity stunt can work in our favor," Vox crossed his claws under his chin, megawatt smile growing. "What's a little pity pitch going to hurt? Think about it, I can gather intel, fuck up Alastor's little project, and show Y/n where her allegiances should lie. Win-win-win," he chuckled ominously.
"Cut the shit, Vox," Valentino scoffed, leaning forward to sneer in his face. "It's obvious you're only going this far for that bitch. Can't keep a leash on your toys, hm?"
Vox grit his teeth, digging his claws into his thighs under the table. He knew this wasn't going to go over well, but to be talked down to by someone who was benefiting from him? "So what if I am?" He hid his rage with a large, mocking grin. "And by the way, where's Angel Dust? Haven't seen him around in a while."
Val's face twisted with rage. "You fucking—"
"Enough!" Velvette snapped, glaring at both of them. "I don't have time for this stupid shit. Get on with it or this meeting is over."
Vox's unhinged smile slowly relaxed into his charming PR one. "Of course, my apologies Velvette, Val. I can see why you're not...convinced yet. Let me fix that."
The projector on the wall suddenly sparked to life, displaying three pie charts and a legend with many colorful categories. He gestured to them from left to right. "This is a distribution of our profits from ten years ago, five years ago, and last year."
"We have eyes," Velvette droned boredly.
Vox's antennae sparked in irritation, but he continued regardless. "Y/n's helped develop countless programs and softwares, and with her expertise our earnings jumped thirty seven percent, especially during the collaboration between Voxtek and DeepSpace VR. Now, what happens now that she's taken her business elsewhere? Hell knows she has the computing power to run it without our servers—"
"So, we're supposed to just bend over backwards for a few bucks?" Valentino snarled, crossing his arms.
Vox's screen glitched as he struggled to keep his composure. Thirty seven percent was not just a few bucks. But he knew antagonizing Val right now was more trouble than it was worth. "Val," he chuckled, sauntering forward to rest a hand on the backrest of Valentino's chair, leaning into his space. "Since when have you said no to money?" His eye widened, rings spinning.
"Since it walked out on two legs and ignored us," Valentino snorted.
"Val, I need you to see the bigger picture!" He grasped both of Valentino's shoulders, moving behind him so he could speak enticingly into his ear. "This is an opportunity to keep our brand at the top, and get dirt on that radio bitch. The future is what matters, and we are going to be the ones pioneering it."
The projector flickered to one of the surveillance cameras pointed at an exterior angle of the hotel. Then, the image suddenly rippled to show an artificial video of the same property, but instead of the tacky hotel, there stood a modern building adorned with a bright, neon V logo.
Valentino's smile grew at his last sentence, and he turned in his seat, leaning his forehead to rest against Vox's screen. "I like your vision, Cariño," he purred, grinning wickedly to show off his golden tooth. "But, if your little money-making cocksleeve doesn't come back, well, don't say I didn't tell you so~" he said in a sing-song voice, long tongue coming up to lick languidly along the side of Vox's monitor.
Vox's grin froze on his face, screen glitching.
Valentino chuckled, pushing out of his seat before strutting away. "Oh, and Vox baby," he threw a saucy wink over his shoulder. "Come find me when you get lonely, yeah?"
The double doors slammed shut behind him, bathing the room in silence. Which Velvette quickly broke, of course.
"What the fuck, Vox?" She scrubbed a hand down her face. "All this for a profit we can afford to lose? Really?"
"Velvette," his smile twitched up to full, blinding attention again. "Have I ever let you down before? Everything is under control, trust me!"
"Uh huh," Velvette scowled, unconvinced. "You know, Alastor and Y/n are the only people you've ever really lost it for, and you're going to a place where there's both of them."
"What, you don't think I can handle myself?" His smile strained.
Velvette shook her head, standing up from her chair and approaching him. "You know, that PR shit might work on everyone else, but I can see through your bullshit, Vox," she gave him a hard stare. "Just don't fuck everything up, got it? Or I'll make you wish you didn't."
His fists clenched as she walked past him, smile dropping into a scowl as soon as she was out of view.
****
—PRESENT—
"Whatever you do, make sure he's at least ten floors away from me," you muttered to Vaggie, watching as Charlie gave the bane of your existence an awkward tour of the hotel.
The atmosphere was so tense and suffocating, it was starting to make you incredibly antsy. The others were no better. Angel was drumming his fingers anxiously on the bar counter, Niffty was curiously regarding the new "resident" and Husk was already chugging his second bottle of hard liquor. Holy hell, and you couldn't even forget about Alastor if you tried, the radio demon releasing a constant stream of static and looking about ready to sacrifice someone—preferably Vox—in an incredibly painful and sadistic ritual.
"I can't believe she's letting him stay," Angel hissed under his breath, rubbing his temples in exasperation. "Actually no, what am I saying? This is Charlie, of course she'd let him stay. God damnit."
A tap on your shoulder made you turn around, only to find your favorite stiff drink on the counter behind you. You nodded gratefully at Husk, taking the glass and throwing it back like water.
"At least the hotel's in one piece!" Niffty chirped, her one eye back to tracking any stray insects. "Less mess to clean up." Her knife gleamed as she stabbed a cockroach clean in half with a deranged giggle.
"This isn't going to end well," Vaggie scowled darkly. "He's going to try something, I fucking know it."
"Yeah, no shit," Angel groaned, Husk grunting in agreement.
"Or," Pentious chimed in, hair flaring thoughtfully. "He truly does want to redeem himself?"
There was a silence as everyone turned to look at him incredulously, before a unanimous, resounding "no," rang out.
****
"Anddd here's your room key," Charlie presented it to him with a flourish, beaming brightly. "We hope you enjoy your stay! Breakfast, lunch and dinner are served downstairs in the dinning room, or you can go out and get your own food! We'll get your survey ready for you tomorrow so that you can start building your schedule."
"Schedule?" He quirked a brow, taking the room key from her outstretched hand. "For what, exactly?"
"Oh! Um," Charlie laughed, rubbing the back of her neck. "We actually host group therapy activities and trust exercises with the other staff and residents! You'll fill out a short survey so that we can personalize—"
"O-kay, let me stop you there, sweetheart," he chuckled, grin widening condescendingly. "I think it's great what you're doing, really, I do. But I've already got a schedule, and a billion dollar company to run. I'm quite the busy man, you know?"
Charlie furrowed her brow. "But—"
"Seriously, my sales would fall and what would my clients say? Hm?" A crowd booing track played in the background as Vox shook his head like she was just some uneducated child. "So thanks, but no thanks." He shot her a wink, before the door slammed in her face.
Charlie blinked in shock, taking a few seconds to process that she'd been dismissed in her own hotel. Her shoulders slumped as she trudged away.
But that only lasted for a few steps, before she perked right back up. What was she thinking? Giving up so quickly on one of her clients?
Charlie grinned, smacking a fist into her palm. She'd just have to try harder.
Unbeknownst to her, a figure had been watching the entire exchange from the shadows. Your jaw clenched, claws digging into the drywall.
"Unbelievable," you shook your head in disdain.
****
As soon as the door shut, Vox deflated like a balloon.
"Fuckkk," he hissed under his breath, sliding down the door tiredly. "The hell am I doing?"
He allowed himself only a few minutes to wallow in self-pity, before he sighed, pushing off the floor and getting to work. In less than twenty minutes, he had the whole room wired to his needs, electronic Voxtek devices littering the previously empty spaces. Now he had a way to travel without leaving his room.
He was just about to dematerialize into one of his laptops when a familiar, chilling presence made him freeze.
"Why, you only just got here! Don't tell me you're leaving already," Alastor chuckled, tilting his head in mock concern.
The radio demon was leaning an elbow against his dresser, just casually invading his privacy. God, just his smug face made Vox want to kill him already.
"What's it to you, old timer?" Vox sneered, electricity sparking from his claws in agitation. "Unlike you, some of us actually have responsibilities. So if you don't mind—"
"Oh my, breaking your word to Y/n already!" Alastor shook his head with a grin, sound effects of a heckling crowd emanating from his microphone cane. "How very...disappointing. Truly, I'd expect better from you!"
Vox's eye widened, the swirling rings on full display as his teeth grinded in rage. "Y-y-y-you keep her fucking name out of your filthy, cannibalistic mouth! You hear me?" He glitched furiously, electricity sparking in glowing webs from his monitor.
"Aha! Someone's a little on edge," Alastor laughed in tandem with an artificial, mocking laugh track. "Really, that was too easy! You're losing your touch."
"Get the fuck out of my room!" Vox snapped.
"Gladly," the radio demon grinned menacingly, the corners of his mouth stretching to unnatural proportions. "But first, I came to deliver a little message."
Vox gritted his teeth, curling his fists by his sides. His electricity buzzed under his skin, ready to electrocute the fuck out of this crazy fucker if he needed to.
"If you and your merry band of idiots pull even the smallest stunt to sabotage the hotel," Alastor approached him, antlers growing as his eyes turned to radio dials. "I think you'll find out that absence did not make my heart grow fonder."
"What, don't tell me you actually care about this place," Vox grinned, baring his teeth. "The whole redemption thing doesn't really seem to be up your alley, no offense."
"Oh, of course not! Haha! Don't be ridiculous," Alastor chuckled like he'd said something hilarious, but it was overlayed with bursts of radio static. "But I'm afraid I've invested too much in this source of entertainment for you to ruin it with your cheap, unoriginal touch."
The message was clear: don't touch my things.
Vox curled his lip, unwilling to back down no matter how utterly disturbing Alastor's demon form was up close. It gave him chilling flashbacks of their last explosive disagreement. "Then stay away from Y/n," he spat.
Alastor's grin widened, eyes glowing an eerie green as he held out his hand. "Is that a deal?"
Vox grimaced, looking at Alastor's creepy, voodoo doll appearance. "Hell no, you creepy fucker."
Then, like whiplash, Alastor's demon form receded and the air became breathable again. "Well, glad we cleared that up, then!" He laughed exuberantly, twirling his cane. "Nice catching up, chum!"
The demon grinned as he disappeared into shadowy wisps of smoke, melding with the darkness against the walls.
Vox's jaw clenched, electric anger vibrating through him and rattling his teeth. "Fuck!" He kicked over the first thing he saw, which happened to be a wooden workbench. It took a few deep breaths for him to finally calm down and collect his thoughts.
When he was no longer at risk of causing a city-wide outage again (that had been fucking embarrassing), he made his way back to his laptop like he was originally planning to do, only to pause in shock when he saw the brand new device short circuiting, screen full of pixelated static.
An explosive rage convulsed in his chest, the lights in the hotel flickering ominously.
"You red bambi ass fucker!"
****
<—Part 2 Chapter Index Part 4 —>
Taglist: @pooplyface1423 @spookysisters @that-one-weeb-buts-its-the-main @neito327 @hxzbinwrites @coleisyn @bababahannah @yellowsubiesdance @dirk-strides @justaspectatorforfandomarts @harmoira @sunnyslug @gum-iie @lady-valtieri @mit-suri @whatelsecouldgowrong @sillysimplysilky @eternalera @aoiyx @hazellight11 @hopefully-not @tsuvvy @imcryinginemo @dinorawrss @rekoloid @ayesha-eroticax3 @sle3pyh3ad2 @l0verboyxoxo1111
894 notes · View notes
askablindperson · 2 months
Note
In what way does alt text serve as an accessibility tool for blind people? Do you use text to speech? I'm having trouble imagining that. I suppose I'm in general not understanding how a blind person might use Tumblr, but I'm particularly interested in the function of alt text.
In short, yes. We use text to speech (among other access technology like braille displays) very frequently to navigate online spaces. Text to speech software specifically designed for blind people are called screen readers, and when use on computers, they enable us to navigate the entire interface using the keyboard instead of the mouse And hear everything on screen, as long as those things are accessible. The same applies for touchscreens on smart phones and tablets, just instead of using keyboard commands, it alters the way touch affect the screen so we hear what we touch before anything actually gets activated. That part is hard to explain via text, but you should be able to find many videos online of blind people demonstrating how they use their phones.
As you may be able to guess, images are not exactly going to be accessible for text to speech software. Blindness screen readers are getting better and better at incorporating OCR (optical character recognition) software to help pick up text in images, and rudimentary AI driven Image descriptions, but they are still nowhere near enough for us to get an accurate understanding of what is in an image the majority of the time without a human made description.
Now I’m not exactly a programmer so the terminology I use might get kind of wonky here, but when you use the alt text feature, the text you write as an image description effectively gets sort of embedded onto the image itself. That way, when a screen reader lands on that image, Instead of having to employ artificial intelligences to make mediocre guesses, it will read out exactly the text you wrote in the alt text section.
Not only that, but the majority of blind people are not completely blind, and usually still have at least some amount of residual vision. So there are many blind people who may not have access to a screen reader, but who may struggle to visually interpret what is in an image without being able to click the alt text button and read a description. Plus, it benefits folks with visual processing disorders as well, where their visual acuity might be fine, but their brain’s ability to interpret what they are seeing is not. Being able to click the alt text icon in the corner of an image and read a text description Can help that person better interpret what they are seeing in the image, too.
Granted, in most cases, typing out an image description in the body of the post instead of in the alt text section often works just as well, so that is also an option. But there are many other posts in my image descriptions tag that go over the pros and cons of that, so I won’t digress into it here.
Utilizing alt text or any kind of image description on all of your social media posts that contain images is single-handedly one of the simplest and most effective things you can do to directly help blind people, even if you don’t know any blind people, and even if you think no blind people would be following you. There are more of us than you might think, and we have just as many varied interests and hobbies and beliefs as everyone else, so where there are people, there will also be blind people. We don’t only hang out in spaces to talk exclusively about blindness, we also hang out in fashion Facebook groups and tech subreddits and political Twitter hashtags and gaming related discord servers and on and on and on. Even if you don’t think a blind person would follow you, You can’t know that for sure, and adding image descriptions is one of the most effective ways to accommodate us even if you don’t know we’re there.
I hope this helps give you a clearer understanding of just how important alt text and image descriptions as a whole are for blind accessibility, and how we make use of those tools when they are available.
351 notes · View notes
thechekhov · 2 months
Text
I'm gonna delete that reblog because I don't want to start any witch-hunt type activities, nor do I want to harass others online.
However, I'm not gonna lie - I am still of the belief that the artist in question is implementing AI images in their art, and IF they are, I think it would be better to be forthright about it.
I'd love to be wrong, but there are things that seem fishy to me.
To reply to realistic concerns from @crustaceousfaggot
Tumblr media
I have also glanced through their blog and here is my takeaway:
I have no doubts that this individual DOES actually draw, but their style has evolved from mainly paintings of faces and portraits into machinery and landscapes in a very short amount of time.
I don't believe that this individual ONLY uses AI. It's possible they don't use text based AI software. My best guess is that they're popping an image into AI and asking it to complete/modify it.
There are images where it seems to me that the face or the hands of something has been painted over in a style that doesn't quite match the rest of the image.
Tumblr media Tumblr media
Again - I don't personally care about how another artist gets their kicks but I want people to be honest about labeling it.
Even if it's augmented with actual art. People deserve to know, in general, if something is drawn or computer generated, just like they deserve to know if an image has been altered and photo-shopped!
And I'd love to be wrong, but there are way too many AI-tells in the art in general for me to not be suspicious.
216 notes · View notes
eeldritchblast · 9 months
Text
Making Baldur’s Gate 3 GIFS Tutorial
Tumblr media
TOOLS USED:
Nvidia or alternate game video recording software
PotPlayer
GIMP (Optional)
Adobe Photoshop
PART 1: Recording
I personally use the Nvidia recording software that came with my computer to capture videos of the game, but there are plenty of video recording options out there. I know OBS Studio is a popular one, for example. Whatever your choice may be, here are three important tips for when capturing video:
Use the least amount of compression settings your recording software can output, and I recommend at least 30FPS, though 60 is better
Press F10 to hide the Baldur’s Gate 3 UI and capture the entire screen
Give about three seconds worth of video before and after the section you want to record, as safety buffers, if you can
PART 2: Frame Extraction
 Open the video you’ve recorded in PotPlayer in window mode (not full screen), and pause a little bit before where you want to start your GIF. Press Ctrl + G to open up the Consecutive Image Capturer window, and drag it to the side of the video player. These are the settings I recommend in general:
Tumblr media
HOWEVER, I suggest playing around with the “Every # frame” option to your own liking. I have a pretty high framerate for this video I’m using, so 5 is fit for me, but if you have a lower framerate, you may want a lower number, like 2.
With your settings in place, click “Start” and unpause the video. Pause the video again after you’ve captured all the frames you want, then click “Stop”. If you’re making a gifset, I recommend then storing each set of frames in a single folder at a time.
PART 3: Resizing
I personally use GIMP to resize/crop the images because I find it easier, then export the image as a PSD for the next steps in Photoshop. But you can use Photoshop for this step too, if you’re more comfortable with that.
The number of frames you can get away with in a single GIF for Tumblr depends on the aspect ratio you plan on saving it as—for example, 270x200 obviously can handle more frames than 540x300 while still fitting within Tumblr’s size limit.
PART 4: Sharpening
In Photoshop, use the Filter > Sharpen > Smart Sharpen tool on each layer. The settings are your choice, but I usually use 200 for the Amount and 0.5 for the Radius.
PART 5: Animation
If you don’t yet have the timeline set up in Photoshop, click on Windows > Timeline to bring it up. Then from the arrow, choose “Create Frame Animation” and click on the button to do so. This will insert the first frame into your timeline. Click on “Make Frames from Layers” in the timeline options menu to add them all.
Tumblr media
Click on frame 1, then hold down Shift and click on the last frame to select them all. Then click on the drop-down arrow from the last frame and set the delay between each frame changing. I usually use 0.1 seconds.
Change the “Once” option to “Forever” to make the GIF repeat itself ongoing.
PART 6: Editing/Colouring
Click on frame 1. Then click on the top layer, while still keeping frame 1 visible.
You can use a variety of tools in Photoshop to editing the colours, brightness, contrast, etc. of the gif. Make sure the filters are the top layers to apply them to all the frames. If you test out your gif and see that the filters are not applied to all the frames, toggle the visible option on them off and on again.
I’m not going to go into detail of how to edit your GIF here, because each one is different. But I will say the tools I most typically use are Brightness/Contrast and Curves.
PART 7: Export
Click on File > Save for Web. These are the settings I like to use:
Tumblr media
Congratulations, you’ve made a GIF!
143 notes · View notes
andmaybegayer · 2 months
Note
Hello it's me with another very naive computer question!
One of the really common complaints you see about modern software (from Adobe, Microsoft, etc.) is the move from the single-purchase model to a subscription-based model. While I understand that people are upset about paying more money over time, this also feels like the only viable option for shipping products that work with modern OSes, especially Windows (I don't have any experience with MacOS). Windows pretty regularly updates, and if you want your product to continue to work, you have to continue paying your engineers to maintain compatibility through time.
Obviously I understand that there are lots of FOSS options out there, but for the companies that are built on making money from these sorts of software products, I don't see another way. Am I way off the mark here?
This is a really good question. I don't have a great answer, but the model I have in my head is that "traditional software distribution" is partially an artifact of an era where companies were starting to use computers but internet use was still spotty so providing support for software was just a very different ballgame. A lot of what I'm saying here is not like. Fact as much as it is my understanding of The Software Business from the side of someone who is a little involved in that but mostly not in that.
(This is mostly about "business software", that is to say, accounting packages, creative suites, design packages, modelling tools, etc. This model does not explain like. Spotify. But that's much easier to explain.)
You're not wrong that the subscription model really make sense given modern software development, where patches come out continuously and you get upgraded to the latest version every time something changes, but there has been a significant change in how software is developed and sold that makes it noticeably different. I think that the cause of this is mostly because it's finally practical to do contract-style deals with hundreds of thousands of customers instead of doing one-off sales like we used to do.
In the Traditional model you charge a pretty sizeable upfront cost for a specific version of the software, you buy Windows XP or Jasc Paint Shop 7 or whatever and then you get That Version until we release The Next Version, plus a couple years of security and support. When the next version hits, we stop adding any new features to your version, and when that hits end of life, you maybe get offered a discount to buy licensing for the latest version, or you drop out of support.
Traditional software with robust support typically costs an awful lot, Photoshop CS2 was $600 new in 2005, or $150 to upgrade from CS, because you're paying for support and engineering time in advance. A current subscription for just Photoshop is $20/mo, and that's after twenty years of inflation. Photoshop is also cheap, a seat for something like SolidWorks 2003 could probably have run you $3000-4000 easy. I can't even give you a better guess there because SolidWorks still doesn't sell single commercial licenses online, you have to talk to their salespeople.
The interesting thing to me about Traditional pricing was that I think it was typically offered to medium to small businesses or individuals, because it's an easy way to sell to smaller customers, especially if it's the 90's and you're maybe selling your software through an intermediary reseller who works with local businesses or just a store shelf.
Independent software resellers were a big business back in the day, they served as a go-between for the software company and smaller businesses, they sold prepared packages in a few sizes and handled the personal relationship of phoning you up and saying "Hey there's a patch for your accounting software so that it doesn't crash when someone's surname is Zero, we'll send you a floppy disk in the mail with some instructions on how to install it." Versioned standard releases are a thing you can put in a box and give to resellers along with a spec sheet and sales talking points. This business still exists but it's much smaller than it once was, it's largely gone upmarket.
If you were bigger, say, if you were a publishing house that needed fifty seats of editing software you'd probably call the sales department of Jasc or whoever and get a volume deal along with a support contract.
Nowadays why would you bother going through resellers and making this whole complicated pricing model when you could just sell subscriptions with well-established e-commerce tools. You can make contract support deals with individuals at scale, all online, without hiring thousands of salespeople. You can even provide varying support levels at multiple cost brackets directly, so you don't need to cultivate a direct business relationship with all your customers in order to meet their needs. Your salespeople handle the really big megacorp and government deals and you let everyone else administer themselves.
It also makes development easier. You can also deploy patches over the net, you just do it in software. You can obsolete older versions faster, since you can make sure most people are using the latest version, and significantly cut down on engineering time spent backporting fixes to older versions. I think a lot of this is straightforwardly desirable on most software.
Now, there are still packages sold by the version, and there are even companies selling eternal licenses.
Fruity Loops Studio is still a "Buy once forever" type deal.
MatLab can be purchased as a subscription or as a perpetual one-version license.
Windows is still sold like this, but also direct to customer sales of Windows are minimal, Windows is primarily sold to OEM's who preinstall it on everything.
But it's a dying breed, your bigger customers are going to want current support and while there are industries where people want to hang around on older versions, for a lot of software your customer wants the latest thing with all the features and patches, and they'd rather hold on to their money until later using a subscription rather than spend it all upfront. Businesses love subscriptions, they make accounts books balance well, they're the opposite of debt.
Personal/private users who might just want the features of Photoshop CS2 and that's fine forever don't matter to you. They're not your major customers. This kind of person is not a person who your business cares to service, so you don't really care if you annoy them.
Even in the Open Source business world, subscriptions are how the money is made, just on support rather than for the software itself. You can jump through relatively few hoops to run Ubuntu Enterprise or SUSE Enterprise Linux on your own systems for free, but really there's not much benefit to that unless you pay for the dedicated support subscription.
In many ways I think a lot of things have changed in this way, I have a whole thing about the way medium-scale industrial manufacturing has changed in the past thirty years somewhere around here.
While there are valid reasons you might want to buy a single snapshot of some software and run that forever, the reality is that that's a pretty rare desire, or at least that desire is rarely backed by money. If you want to do that you either need access to the source code so that you can maintain it yourself, or you need to strike a deal with someone who will, or it needs to be software so limited that it (and the system it runs on!) never need updates. Very few useful programs are this simple. As a result subscription models make sense, but until recently you couldn't really sell a subscription to small businesses and individuals. Changes in e-commerce and banking have enabled such contracts to be made, and hey presto, it's subscription world.
47 notes · View notes
saw-x · 2 years
Text
Tumblr media
Hi so I’ve had a couple of anons asking me how I make my gifs (some specifically hsmtmts gifs lol) so I’ve decided to write up a tutorial of the basics of how I make my gifs. I’m going to try and make it as detailed and clear as possible - but I have been pretty busy with uni and stuff so if I miss anything or anything isn’t clear just lmk and I will do my best to clarify. I’m going to try and include any resources or other tutorials which may be useful as I go along. This is going to be quite long and detailed so tutorial follows under the cut. For some basic steps I know of good tutorials for - I will link tutorials rather than re-explaining :)
Before we begin with the tutorial part bear with me there are a couple of screencaps which I took out of sequence because I forgot to take them at the step I did it - and the final gif colouring result looks kind of different from the rest of the screencaps because when I was adding the gif to the gifset I was making it for I decided it needed to be brighter because the s3 scene was much brighter than the s2 gif I made for this tutorial (none of this really matters, just explaining the slight discrepancy in some of the caps).
1. SOFTWARE
To make all of my gifs I use Photoshop CS5 (this is the version I use). Any version of Photoshop should work with the methods in this tutorial and you can find a masterlist of cracked photoshops here
2. FINDING HQ VIDEO
When making gifs I always use 1080p video - but not all 1080p is created equally. Generally remux files and larger file sizes will produce better quality screencaps so this is what I search for when giffing. I know a lot of gifmakers who swear by using 4k, but personally I find 4k is more trouble than its worth in my opinion (screencaps always come out weird on my computer - like with a full on green tint, and they take forever to download). For HSMTMS in particular I like to use the release labelled 1080p SALT.
In terms of finding videos, this is a good guide on downloading.
3. SCREENCAPPING
I use mpv player to take screencaps for my gifs. This is a tutorial on how to use and install mpv. When taking your screencaps make sure you have continuous screencaps and no frames are skipped or duplicated. These missing/extra frames will make your gif look choppy and the animation won’t be smooth.
After finishing my screencaps I put them all in folders and move the folders to my desktop (but it can be anywhere you easily can access the folder) to import into Photoshop.
4. IMPORTING SCREENCAPS TO PHOTOSHOP
Open Photoshop. Open the Menu path "File > Scripts > Load Multiple DICOM files” and select the folder where the screencaps for your gif are. 
5. CROPPING AND RESIZING GIFS
Click the ‘Crop’ button on Photoshop (the little button shown in the screenshot below). Typically I like to use a preset so that all the gifs in the set I make are the same size. For this set I used the 4x5 crop preset because that is what I typically use.
Tumblr media
Position the crop where you want the gif (typically I like the character in the center).
Tumblr media
Then push enter (or the tick next to the crop buttons) to confirm your crop.
Use the keyboard shortcut Ctrl + Alt + I to resize your image. This will bring up a little pop up like this:
Tumblr media
Resize your gif accordingly based on the width. It is important to use the correct dimensions for the size of the gif you wish to make. These are summarized in the below image.
Tumblr media
When you change the width to the correct size (e.g. in this case 540px) the height will automatically change as well.
Tumblr media
Click Ok to resize.
6. ANIMATING YOUR GIF + SHARPENING
There are quite a lot of steps to turning your frames into a timeline animation. They are covered in detail in this amazing gif tutorial (which is the main one which helped me learn to gif).
It would be useful to have a read of how the process works, but to speed things up for myself I use a Photoshop action (shared here) I made that does all these steps for me plus my sharpening😊 (Here is a tutorial explaining how to create & install Photoshop actions)
I just highlight the word animate click the play sign and it does all the tedious steps in a couple of seconds. Note it is important to keep the reverse frames one unticked as shown in the screencap otherwise your gifs will move backwards
Tumblr media
After that runs through we have our gif in timeline mode sharpened and ready to colour :)
Tumblr media
7. BASIC COLOURING TECHNIQUE
My basic colouring process is very simple and honestly it may shock some people but I primarily colour my basic scene gifs using only the curves and vibrance adjustment layers. There a few reasons for this – 1) The curves tool is a powerful tool and you can do a lot with it 2) Less adjustment layers = better quality gifs 3) This works for me and it is what I find easy. Essentially, I like to keep things simple where ever possible.
First I add a curves layer by clicking on the highlighted adjustment layer
Tumblr media
This gives you a menu that looks like this:
Tumblr media
The great thing about Curves is that Photoshop will do a lot of the work for us if we use the eyedropper tools.
First I click the white eye dropper – then I pick a white point on the gif and see how it goes. This can take a few times to get right and often I will try a few times to see which I like best.
For this gif I selected the white light in the background but it looks a little green to me
Tumblr media
After I have selected my white point I will usually do the same thing except with picking a black point of the gifs. I don’t always pick a dark point it kind of depends on how much I like what Curves has done with the white point and if I think the gif needs more contrast.
For this gif I picked a black point of the area behind Ricky. This is what the gif looks like now with the dark point chosen:
Tumblr media
This looks a little better to me than just the white point – but the screencap still looks kind of yellowy and dark to me. So what I do now is I go into each colour channel for the curve and manually adjust it to my liking.
Since this gif is yellow I start in the blue channel and add more blue. I do this by changing the drop down menu on the curves screen from RGB to blue. This gives me something like this to work with:
Tumblr media
Essentially I adjust the amount of blue in the gif by sliding the white arrow down the bottom up or down to add more or less blue to the gif. For this gif I am going to slide white arrow at the bottom to the left to make the gif more blue (i.e. neutralise yellow). If I think I have added too much blue I slide it back to the right to add yellow back in.
This is what I adjusted it to and it already looks a lot better
Tumblr media
I am actually pretty happy with the overall colouring of this for the moment and I don’t think I need to go into the red and green curves. But I will briefly explain what they do/how they work by showing what some adjustments to these curves looks like.
Red curve – here is our starting point
Tumblr media
Dragging the curve to the left will introduce more red into the image
Tumblr media
Dragging it back to the right will take out red (the gif will become more cyan)
Tumblr media
Green curves: this is our starting point
Tumblr media
Dragging the green curve to the left will add more green to the image
Tumblr media
Dragging it to the right will take green out (adding pink/magenta)
Tumblr media
So after I am happy I have coloured the image in curves If I want the gif to be a little brighter I go back to the main RBG Curves screen and drag the white arrow a little up to the left to add some additional brightness
Tumblr media
After colouring with Curves I add in a Vibrance layer (highlighted adjustment layer)
Tumblr media
Typically I set the vibrance somewhere between 50 and 60.
Tumblr media
This is what the gif looks like now:
Tumblr media
At this point I also have another quick look at the gif and see if I think I need to go back into curves and tweak the colouring a bit and add a bit of extra brightness. When I add in the Vibrance I find it easier to see if there is any underylying colours I want to go back and neutralise/adjust in my curves layer again.
This is what I end up with after making my adjustments post vibrance layer:
Tumblr media
Another step I do sometimes is grabbing the black slider on curves and dragging it just a little bit to the right to add some depth and contrast to the gif. As s2 of hsmtmts is really dark I didn’t do it for this gif because I don’t think it needs it. But I will show an example of what this might look like:
Tumblr media
This is basically it for my basic colouring. Of course there are a lot of different steps to making my colourful gifsets, but this is just a basic tutorial for the way I gif standard scenes so I will move on to subtitling gifs.
8. CAPTIONS
My go to subtitle font is Arial Rounded MT Bold. I have Faux Italic and Faux Bold Selected for this. I like bigger font sizes because I have bad eyesight so usually I will opt between 20 – 24 pt font size
Tumblr media
I click the T button to add text then I type out my caption.
Tumblr media
Obviously we don’t want our text here so I align it to the bottom and centre of the gif I do this by first selecting the move tool then going ctrl + a (this selects our gif as the boundary for our alignment). You will know this is done based on the border that comes around the gif (also please ignore that drop shadow and outline settings have already been applied here lol – I added this in because I forgot to screen cap/ explain this part initially)
Tumblr media
Then I align my text using the following menu buttons:
Tumblr media
Next I Ctrl +D to remove the selection (you need to do this to be able to nudge your text up for the next step). This is the result of the alignment:
Tumblr media
Now I nudge the caption up by selecting the text layer and pushing ctrl + shift + up
This is the result:
Tumblr media
This looks ok, but I always add an outline and dropshadow to make the text more readable. To do this I go into the blending options for the text layer. You can do this by right clicking the layer and selecting blending options or by double clicking the layer (but not on the text).
First I add Stroke with these settings
Tumblr media
Then I add Drop Shadow with these settings:
Tumblr media
9. SAVING GIFS
To save your file use the keyboard shortcut Ctrl + Alt + Shift + S to open the save for web settings. You will get a screen like this. The settings shown in this screen are my typical save settings (except it should say ‘Forever’ on looping options)
Tumblr media
However, Tumblr’s gif limit is 10mb so the size of this gif is too big to upload (it is nearly 12 mb) so we have to go back in the timeline to shorten the gif a bit so we can upload it to tumblr.
I do this by dragging the red preview thingy (idk what else to call it) around till I find a point where I feel the gif has a natural end. Then I grab the timeline bar thingy (idk what it’s called but the silver gray bar at the end of the gif) to the red bar to shorten the gif.
Tumblr media Tumblr media
Now press Ctrl + Alt + Shift + S again to save your gif and make sure you set the Looping Option to ‘Forever’. Sometimes I have to shorten the gif a few times to get it under 10mb - but luckily I got it first go this time :)
Tumblr media
Now your gif is saved but there is still one step left to do. Photoshop has a glitch where it automatically sets gif speed to 0.7 after saving from the timeline function – we don’t want that! The gifs look very slow and are not very smooth.
So what we do is we open the gif that we just saved and this will open in the frame format. All we have to do is select all frames and set the gif speed to 0.5 – I also have this in my action so I go back to the actions and highlight the line that says ‘set frame speed’ and play the action through
Tumblr media
Then we just save the gif again as we just did 😊
This is the end result:
Tumblr media
and what the gif looks like without any colouring or text:
Tumblr media
One other helpful tip:
If you are giffing from the same scene you can do your colouring and text manually as per the tutorial on the first gif for the set and then drag what you did across to the second (after cropping, resizing and animating it). All you need to do is drag the colouring outside to a different window then highlight your adjustment layers + text and drag them to the new canvas off of the gif (If you drag it on top of the gif it will place it where you put it. Make sure to go off the canvas to so it will keep you positioning/alignment of the text you made 😊)
Tumblr media
Basically - you drag the text, curves, vibrance (and any other layers you need) to the gray area of your photoshop document and your colouring will be applied and your text will be placed in the same position as your source doc.
Ok so that is my super basic gif tutorial - if anyone has any questions feel free to ask!
1K notes · View notes
aspd-culture · 7 months
Note
why is different neurological stuff between alters impossible, but psychosomatic stuff isnt? /gen (this isnt a bad faith question, im just not educated in sciency stuff ,, i dropped out of hs,,,)
No worries! It's complex and I completely get wanting to learn more about it. I find the psychology and neurology of systems fascinating myself tbh.
So neurological disorders like ASPD, Autism, ADHD, OCD, etc (see also neurodivergencies) are, for lack of a better analogy, hardware-based. Your brain is physically or functionally different than a person without that disorder. The synapses do not fire in the same ways, or the centers do not interact and/or respond in the same ways as someone who doesn't have it.
Other mental health disorders/conditions like depression, some types of anxiety, etc. are software-based. They are maladaptive, but do not alter how your brain works. In the cases where they are caused by chemical differences, these are more hardware based, but generally these disorders are the ones where talk therapy alone can cause significant relief of symptoms, and are the disorders one could reasonably expect to completely recover from (in that after a long time - often many years - of treatment and learning coping strategies, the person would no longer meet the diagnostic criteria for the disorder/condition).
So if we think of alters like different users on the same computer, they may not all have access to the same software due to various permissions and such, and they may not all use software that is available to them (aka they may not have the same conditions or they may handle the symptoms of those conditions so well that they do not impair functioning, which means it wouldn't be diagnosable in that alter by themselves). However, every user on that computer is still bound to the hardware. No user on the computer could run programs that require different hardware than what the computer every user is doing has (aka no alter can make an autistic brain function like an allistic brain, nor make an antisocial brain function as a prosocial one, etc).
I hope that helps!/gen if I missed anything or you need clarification you are very much welcome to submit another ask, as always. For some reason my brain is convinced I missed a part of your question in there.
Plain text below the cut:
No worries! It's complex and I completely get wanting to learn more about it. I find the psychology and neurology of systems fascinating myself tbh.
So neurological disorders like ASPD, Autism, ADHD, OCD, etc (see also neurodivergencies) are, for lack of a better analogy, hardware-based. Your brain is physically or functionally different than a person without that disorder. The synapses do not fire in the same ways, or the centers do not interact and/or respond in the same ways as someone who doesn't have it.
Other mental health disorders/conditions like depression, some types of anxiety, etc. are software-based. They are maladaptive, but do not alter how your brain works. In the cases where they are caused by chemical differences, these are more hardware based, but generally these disorders are the ones where talk therapy alone can cause significant relief of symptoms, and are the disorders one could reasonably expect to completely recover from (in that after a long time - often many years - of treatment and learning coping strategies, the person would no longer meet the diagnostic criteria for the disorder/condition).
So if we think of alters like different users on the same computer, they may not all have access to the same software due to various permissions and such, and they may not all use software that is available to them (aka they may not have the same conditions or they may handle the symptoms of those conditions so well that they do not impair functioning, which means it wouldn't be diagnosable in that alter by themselves). However, every user on that computer is still bound to the hardware. No user on the computer could run programs that require different hardware than what the computer every user is doing has (aka no alter can make an autistic brain function like an allistic brain, nor make an antisocial brain function as a prosocial one, etc).
I hope that helps!/gen if I missed anything or you need clarification you are very much welcome to submit another ask, as always. For some reason my brain is convinced I missed a part of your question in there.
57 notes · View notes
thesapphireprincess · 9 months
Text
Software Engineer 👩🏾‍💻
I recently learned that you can become a Software engineer without a degree. I found a free Introduction to software engineering course on YouTube. It was created by a computer science professor and he goes over everything that a beginner needs to know and what is learned in a full semester. I also found these free Harvard courses and after you complete them you can purchase a verified certificate. The certificate will look so good an a resume and it will show that you know the material.
💌 Being a Software Engineer isn’t the only option for a high paying job without a degree. This is just the one I am choosing.
There are so many resources online but after this I will most likely enroll into a software engineering boot camp since this is what most people do. I found that there are a lot of software engineers who do not have a degree but are still making a ton of money because the work is so valuable. I learned that you can get almost any 6 figure high paying job without a degree except in the medical field. This job will not be replaced by AI which is a relief.
The starting salary for an entry level position is around 70-80k in the United States as of June 2023. Even 60k would be great but there are people making 100-250k a year as a software engineer. The people who work at the big companies make even more than that.
This is a great way to set up your financial future. Imagine being able to save $1000-$2000 a month. Imagine where you’ll be at in 10 years. You can even use this as a starting base to set your life up financially. You’ll be able to afford to live anywhere in the world especially if you get a remote job. Places like San Diego, New York, London or Hawaii. You can afford the cost of living. You can afford to live in any of the major cities and have a really comfortable life. You will have lots of money that you’ll be able to multiply. You’ll actually be able to save up for a house and have actual money to invest. So many opportunities will be available to you. You can live below your means in the best way possible.
Personally I’ve always wanted to live by the beach in a city. By this time next year I’ll be living in a new city with a great high paying job. My current job will look amazing on my resume because I work side by side with engineers and technicians on a daily basis at a reputable company so I can totally jazz up my resume to sound really good. Which totally counts as ✨experience✨. I’ve been working here for a couple of years now which will look even better because it shows longevity.
I definitely plan on moving to San Diego or Hawaii next year when my lease is up. I will update y’all in a week on my progress.
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
108 notes · View notes
art-res · 7 months
Note
I’m just getting into digital art and I’m not sure what to do re tablets. Can you use them with laptops? That’s the only kind of computer I have.. I heard Cintiq and Wacom are good brands? Sorry for this rambling question, and please ignore me if you have answered this before, thank you very much for such a helpful blog
Hey, no worries at all! Your question is a great one. I remember when I first started in the digital art world, and I had the same questions.
Yes you can absolutely use drawing tablets with laptops. That is how most of them work, all you need is a USB port to connect the tablet to your laptop, and you're good to go. Some newer tablets even offer Bluetooth connectivity, so you can go completely wireless if your laptop supports it.
Wacom is great! Cintiq is its more expensive line, where you can draw directly on the screen. I don't own one due to price, but I do use an iPad Air 4th generation and like it a lot. I have used Wacoms without screens and they are great, your hand eye coordination will get used to it. I've also used cheaper brands like xp-pen, and liked them a lot. Specifically, the Deco 03 (see my review here: Drawing Tablet Review: XP-PEN Deco 03) and the display screen artistul d12s (didn't review, got tired lol. It's good though!) . Honestly, for portability, I love to take my iPad on the go. But the tablets let you use more powerful drawing software and the ease of keyboard shortcuts, so honestly I'd try to test drive the products out.
Another thing I did when deciding which model to buy was exploring tons of reddit threads and asking around on art related chats lol.
Don't worry about rambling; we all start somewhere, and it's better to ask and get the info you need, as the options out there can be overwhelming.
Hope this helps!
Wrote a lil guide to  digital art that you might be interested in.
Recent Posts / More Useful Links
Art-Res Website / Personal Art Blog / Instagram / Facebook
42 notes · View notes
oliviabutsmart · 8 months
Text
Physics Friday #5: The Wonderful World of Programming Paradigms
Welcome to the first actual post on the dedicated blog! This will be continuing on from what I started over on my main account @oliviax727. But don't worry, I'll still repost this post over there.
Preamble: Wait! I thought this was Physics!
Education level: Primary School (Y5/6)
Topic: Computer Languages (Comp Sci)
So you may be thinking how this is relevant to physics, well it's not. But really, other adjacent fields: computer science, chemistry, science history, mathematics etc. Are really important to physics! The skills inform and help physicists make informed decisions on how to analyse theoretical frameworks, or to how physics can help inform other sciences.
I may do a bigger picture post relating to each science or the ways in which we marry different subjects to eachother, but what is important is that some knowledge of computer science is important when learning physics, or that you're bound to learn some CS along the way.
Also I can do what I want, bitch.
Introduction: What is a Programming Language?
You may have come across the term 'programming paradigm' - especially in computer science/software engineering classes. But what is a programming paradigm really?
Computers are very powerful things, and they can do quite a lot. Computers are also really dumb. They can't do anything unless if we tell them what to do.
So until our Sky-net machine overlords take control and start time-travelling to the past, we need to come up with ways to tell them how to do things.
Pure computer speak is in electrical signals corresponding to on and off. Whereas human speak is full of sounds and text.
It is possible for either one to understand the other (humans can pump electrical signals into a device and computers can language model). But we clearly need something better.
This is where a programming language comes in. It's basically a language that both the computer and the human understands. So we need a common language to talk to them.
It's like having two people. One speaks Mandarin, the other speaks English. So instead of making one person learn the other's language, we create a common language that the two of them can speak. This common language is a synthesis of both base languages.
But once we have an idea of how to communicate with the computer, we need to consider how we're going to talk to it:
How are we going to tell it to do things?
What are we going to ask it to do?
How will we organise and structure our common language?
This is where a programming paradigm comes in - a paradigm is a set of ideas surrounding how we should communicate with a device. It's really something that can truly only be understood by showing examples of paradigms.
Imperative vs. Declarative
The main two paradigms, or really categories of paradigms, are the imperative vs. declarative paradigm.
Imperative programming languages are quite simple: code is simply a set of instructions meant to tell the computer specifically what to do. It is about process, a series of steps the computer can follow to get some result.
Declarative programming languages are a bit more vapid: code is about getting what you want. It's less about how you get there and more about what you want at the end.
As you can see imperative programs tell the computer how to do something whereas declarative programs are about what you want out.
Here's an example of how an imperative language may find a specific name in a table of company data:
GET tableOfEmployees; GET nameToFind SET i = 0; WHILE i < tableOfEmployees.length: IF tableOfEmployees[i].firstName == nameToFind THEN: RETURN tableOfEmployees[i] AND i; ELSE: i = i + 1; RETURN "employee does not exist";
And here's that same attempt but in a declarative language:
FROM tableOfEmployees SELECT * WHERE firstName == INPUT(1);
Note that these languages aren't necessarily real languages, just based on real-life ones. Also please ignore the fact I used arrays of structures and databases in exactly the same way.
We can see the difference between the two paradigms a lot more clearly now. In the imperative paradigm, every step is laid out clear as day. "Add one to this number, check if this number is equal to that one".
Under the declarative paradigm, not only is the text shorter, we also put all of the instructions about how to do a task under the rug, we only care about what we want.
With all this, we can see an emerging spectrum of computer paradigms. From languages that are more computer-like, to languages that are more English-like. This is the programming languages' level:
Tumblr media
Lower level languages are more likely to be imperative, as the fundamental construction of the computer relies on a series of instructions to be executed in order.
The lowest level, the series of electrical signals and circuitry called microcode is purely imperative in a sense, as everything is an instruction. Nothing is abstracted and everything is reduced to it's individual components.
The highest level, is effectively English. It's nothing but "I want this", "I'd like that". All of the processes involved are abstracted in favour of just the goal. It is all declarative.
In the middle we have most programming languages, what's known as the "high level languages". They are the best balance of abstraction of reduction, based on what you need to use the language for.
It's important that we also notice that increasingly higher-level and increasingly more declarative the language gets, the more specific the purpose of the language becomes.
Microcode and machine code can be used for effectively any purpose, they are the jack-of-all trades. Whereas something like SQL is really good at databases, but I wouldn't use it for game design.
As long as a language is Turing-complete, it can do anything any computer can do, what's important is how easy it is to program the diverse range of use-cases. Assembly can do literally anything, but it's an effort to program. Python can do the same, but it's an effort to run.
Imperative Paradigms: From the Transistor to the Website
As mentioned previously, the imperative paradigm is less a stand-alone paradigm but a group of paradigms. Much like how the UK is a country, but is also a collection of countries.
There are many ways in order to design imperative languages, for example, a simple imperative language from the 80's may look a lot like assembly:
... ADD r1, 1011 JMZ F313, r1
The last statement JMZ, corresponds to a "Jump to the instruction located at A if the value located at B is equal to zero" what it's effectively saying is a "Repeat step 4" or "Go to question 5" type of thing.
Also known as goto statements, these things are incredibly practical for computers, because all it requires is moving some electrical signals around the Registers/RAM.
But what goto statement is used as in code, is really just a glorified "if x then y". Additionally, these statements get really irritating when you want to repeat or recurse over instructions multiple times.
The Structured Paradigm
Thus we introduce the structured paradigm, which simply allows for control structures. A control structure is something that, controls the flow of the programs' instructions.
Control structures come in many forms:
Conditionals (If X then do Y otherwise do Z)
Multi-selects (If X1 then do Y1, if X2 then do Y2 ...)
Post-checked loops (Do X until Y happens)
Pre-checked loops (While Y, do X)
Counted Loops (For i = A to B do X)
Mapped Loops (For each X in Y, do Z)
These control structures are extra useful, as they have the added benefit of not having to specify what line you have to jump to every time you update previous instructions. They may also include more "safe" structures like the counted or mapped loop, which only executes a set amount of time.
But we still have an issue: all our code is stuffed into one file and it's everywhere, we have no way to seperate instructions into their own little components that we might want to execute multiple times. Currently, out only solution is to either nest things in far too many statements or use goto statements.
The Procedural Paradigm
What helps is the use of a procedure. Procedures are little blocks of code that can be called as many times as needed. They can often take many other names: commands, functions, processes, branches, methods, routines, subroutines, etc.
Procedures help to organise code for both repeated use and also it makes it easier to read. We can set an operating standard of "one task per subroutine" to help compartmentalise code.
Object-Oriented Code
Most of these basic programming languages, especially the more basic ones, include the use of data structures. Blocks of information that holds multiple types of information:
STRUCT Person: Name: String Age: Integer Phone: String Gender: String IsAlive: Boolean
But these structures often feel a bit empty. After all, we may want to have a specific process associated uniquely with that person.
We want to compartmentalise certain procedures and intrinsically tie them to an associated structure, preventing their use from other areas of the code.
Like "ChangeGender" is something we might not want to apply to something that doesn't have a gender, like a table.
We may also want to have structures that are similar to 'Person' but have a few extra properties like "Adult" may have a bank account or something.
What we're thinking of doing is constructing an object, a collection of BOTH attributes (variables) AND methods (procedures) associated with the object. We can also create new objects which inherit the properties of others.
Object oriented programming has been the industry standard for decades now, and it's incredibly clear as to why - it's rather useful! But as time marches forward, we've seen the popularisation of a new paradigm worthy of rivaling this one ...
Declarative Paradigms: The World of Logic
Declarative languages certainly help abstract a lot of information, but that's not always the case, sometimes the most well known declarative languages are very similar feature-wise to imperative paradigms. It's just a slight difference in focus which is important.
Functional Programming Languages
Whereas the object oriented language treats everything, or most things, like objects. A functional language uses functions as it's fundamental building block.
Functional languages rely on the operation of, well, functions. But functions of a specific kind - pure functions. A pure function is simply something that doesn't affect other parts of the computer outside of specifically itself.
A pure function is effectively read-only in it's operation - strictly read-only. The most practical-for-common-use functional languages often allow for a mixture of pure and impure functions.
A functional language is declarative because of the nature of a function - the process of how things work are abstracted away for a simple input -> output model. And with functional purity, you don't have to worry about if what takes the input to the output also affects other things on the computer.
Functional languages have been around for quite a while, however they've been relegated to the world of academia. Languages like Haskell and Lisp are, like most declarative languages, very restrictive in their general application. However in recent years, the use of functional programming has come quite common.
I may make a more opinionated piece in the future on the merits of combining both functional and object-oriented languages, and also a seperate my opinions on a particular functional language Haskell - which I have some contentions with.
Facts and Logic
The logic paradigm is another special mention of declarative languages, they focus on setting a series of facts (i.e. true statements):
[Billy] is a [Person]
Rules (i.e. true statements with generality):
If [A] is [Person] then [A] has a [Brain]
And Queries:
Does [Billy] have a [Brain]?
Logical languages have a lot more of a specific purpose, meant for, well, deductive/abductive logical modelling.
We can also use what's known as Fuzzy logic which is even more higher-level, relying on logic that is inductive or probabilistic, i.e. conclusions don't necessarily follow from the statements.
Visual and Documentation Languages
At some point, we start getting so high level, that the very components of the language start turning into something else.
You may have used a visual language before, for example, Scratch. Scratch is a declarative language that abstracts away instructions in-favour of visual blocks that represent certain tasks a computer can carry out.
Documentation languages like HTML, Markdown, CSS, XML, YML, etc. Are languages that can barely even be considered programming languages. Instead, they are methods of editing documents and storing text-based data.
Languages that don't even compile (without any significant effort)
At some point, we reach a point where languages don't even compile necessarily.
A metalanguage, is a language that describes language. Like EBNF, which is meant to describe the syntaxing and lexical structures of lower-level languages. Metalanguages can actually compile, and are often used in code editors for grammar checking.
Pseudocode can often be described as either imperative or declarative, focused on emulating programs in words. What you saw in previous sections are pseudocode.
Diagrams fall in this category too, as they describe the operation of a computer program without actually being used to run a computer.
Eventually we reach the point where what were doing is effectively giving instructions or requesting things in English. For this, we require AI modelling for a computer to even begin to interpret what we want it to interpret.
Esoteric Paradigms
Some paradigms happen to not really fall in this range form low to high level. Because they either don't apply to digital computing or exist in the purely theoretical realm.
Languages at the boundaries of the scale can fall into these classes, as microcode isn't really a language if it's all physical. And pseudocode isn't really a language if it doesn't even compile.
There are also the real theoretical models like automata and Turing machine code, which corresponds to simplified, idealised, and hypothetical machines that operate in ways analogous to computers.
Shells and commands also exist in this weird zone. Languages like bash, zsh, or powershell which operate as a set of command instructions you feed the computer to do specific things. They exist in the region blurred between imperative and declarative at the dead centre of the scale. But often their purpose is more used as a means to control a computer's operating system than anything else.
Lastly, we have the languages which don't fit in our neat diagram because they don't use digital computers in a traditional manner. These languages often take hold of the frontiers of computation:
Parallel Computing
Analog Computing
Quantum Computing
Mechanical Computing
Conclusion
In summary, there's a lot of different ways you can talk to computers! A very diverse range of paradigms and levels that operate in their own unique ways. Of course, I only covered the main paradigms, the ones most programmers are experienced in. And I barely scratched the surface of even the most popular paradigms.
Regardless, this write-up was long as well. I really wish I could find a way to shorten these posts without removing information I want to include. I guess that just comes with time. This is the first computer science based topic. Of course, like any programmer, I have strong opinions over the benefits of certain paradigms and languages. So hopefully I didn't let opinions get in the way of explanations.
Feedback is absolutely appreciated! And please, if you like what you see, consider following either @oliviabutsmart or @oliviax727!
Next week, I'll finish off our three-part series on dark matter and dark energy with a discussion of what dark energy does, and what we think it is made of!
54 notes · View notes
aurosoulart · 10 months
Text
finally got around to recording and subtitling my performance at the Augmented World Expo 😤 it's 6 minutes long, but worth the watch if you wanna understand more about what I do!
this was part of a competition centered around using XR technology (virtual reality, augmented reality, spatial computing - whatever you want to call it) to fight climate change.
we were the only ones competing in the category of Replace - and I gave this performance showing how Figmin XR, a software that can create free-to-download digital objects (aka 'digital twins'), could be used to massively reduce material waste in the future.
AR glasses and haptic feedback technologies are still in their infancy, and they're not YET at the stage where they can be as ubiquitous as smartphones - but as someone lucky enough to work with them every day, let me tell you:
this stuff is powerful. being able to to see, hear, and FEEL digital objects in 3D space changes the wiring of your brain. it's truly indescribable unless you've experienced it yourself, but everything feels real, like it's there with you, especially if it's something you've brought into existence with your own two hands. I share my virtual inventory with my friends - we play with confetti together, paint together, make things together - all in-person, the entire process feeling so natural that we forget all of it is just made out of light.
this is the entirety of what Figmin's mission is about - empowering people to re-learn the joy of playing (which so many of us don't have the time or money for anymore!), while also reducing material waste in the process.
once this new form of 3D computing finally becomes accessible to the public (and it will - it's too magical to be forgotten), we could see a huge cultural shift of innovation similar to what happened with the rise of the internet and personal computers in the first place.
and, like the original PC, it's only going to get better once it does reach people. I'm not going to say that every person out there will use XR for good (we all know how corporate greed goes by now), but that doesn't mean it's inherently bad or scary.
all technology is still just a tool, and we can still use it to connect with one another, to learn, to create... and, hopefully, to change the world for the better.
Tumblr media Tumblr media
37 notes · View notes
yanderelmk · 1 year
Note
Can u do a yandere syntax x gender neutral readeeerrr? headcanons (and a lil oneshot maybe)
-🕶️ anon with cool glasses
Right off the bat, this man most likely would've relished the idea of turning you into a spider demon and basically taking you under his wing, even if you know not a thing about tech stuff
He will spend hours trying to throw tech-rizz at you, tech-related pick-up lines (You turn my software into hardware)
Highlights of lines he'd practice in a mirror for you: "Are you made of beryllium, gold, and titanium? 'Cause you're BeAuTiful!" "Hi. My name is Windows. Can I crash at your place?" "Are you Google Glass? 'Cause you augment my reality." "I always thought love was an abstract class until you made an instance of it." "Are you a computer keyboard? Because you're my type."
I just spent the past 15 minutes gathering those and wheezing because I just KNOW Syntax thinks he's like hottest thing on this side of Megapolis when he says these, he will lean up against the wall with a sly smile completely convinced he's swept you off your feet
Be careful though this guy could hack into any of your devices to check to see who you've been messaging, what your incognito tab history looks like, and how long you've stared at a person's profile and he will get thoroughly jealous, trying to figure out why you didn't respond to his message immediately
He texts either in the most abstract abbreviated way or like he's some mediaeval lord composing a sonnet to his intended while he's trying to ask you out (if he even goes that route instead of just nabbing you)
He is not a barbarian, he'll give you three days to make your choice to pick him. In his mind that's all the time you need. By his calculations you should have fallen for him by the third day, and if not...well, the queens venom makes her subjects loyal to her, there must be a way for him to tinker with it to add in a dash of loyalty to him
Actually- imagine you get a message on your computer and it's him saying he took the liberty of properly clearing out your device of any trackers, set up proper anti-virus, etc. Creepy, but hey at least your computer's protected
Speaking of protected he'd likely be the type of person to insist that he knows who you ought to hang around, "You deserve much better than...those of a lower IQ."
Obviously he thinks he's the highest caliber for you to be around, and will firmly drag you away from a social situation where he thinks you need his assistance (whether you asked for it or not)
Cannot express why, Syntax gives the vibes of someone who is...perhaps not 'snobbish' or 'uppity', I think the best word is 'persnickety'. Quite the fussypants when it comes to his own standards and how you deserve the same treatment. After all, you are his darling
59 notes · View notes
moose-mousse · 8 months
Text
So I made an app for PROTO. Written in Kotlin and runs on Android.
Next, I want to upgrade it with a controller mode. It should work so so I simply plug a wired xbox controller into my phone with a USB OTG adaptor… and bam, the phone does all the complex wireless communication and is a battery. Meaning that besides the controller, you only need the app and… any phone. Which anyone is rather likely to have Done.
Now THAT is convenient!
( Warning, the rest of the post turned into... a few rants. ) Why Android? Well I dislike Android less than IOS
So it is it better to be crawling in front of the alter of "We are making the apocalypse happen" Google than "5 Chinese child workers died while you read this" Apple?
Not much…
I really should which over to a better open source Linux distribution… But I do not have the willpower to research which one... So on Android I stay.
Kotlin is meant to be "Java, but better/more modern/More functional programming style" (Everyone realized a few years back that the 100% Object oriented programming paradigme is stupid as hell. And we already knew that about the functional programming paradigme. The best is a mix of everything, each used when it is the best option.) And for the most part, it succeeds. Java/Kotlin compiles its code down to "bytecode", which is essentially assembler but for the Java virtual machine. The virtual machine then runs the program. Like how javascript have the browser run it instead of compiling it to the specific machine your want it to run on… It makes them easy to port…
Except in the case of Kotlin on Android... there is not a snowflakes chance in hell that you can take your entire codebase and just run it on another linux distribution, Windows or IOS…
So... you do it for the performance right? The upside of compiling directly to the machine is that it does not waste power on middle management layers… This is why C and C++ are so fast!
Except… Android is… Clunky… It relies on design ideas that require EVERY SINGLE PROGRAM AND APP ON YOUR PHONE to behave nicely (Lots of "This system only works if every single app uses it sparingly and do not screw each-other over" paradigms .). And many distributions from Motorola like mine for example comes with software YOUR ARE NOT ALLOWED TO UNINSTALL... meaning that software on your phone is ALWAYS behaving badly. Because not a single person actually owns an Android phone. You own a brick of electronics that is worthless without its OS, and google does not sell that to you or even gift it to you. You are renting it for free, forever. Same with Motorola which added a few extra modifications onto Googles Android and then gave it to me.
That way, google does not have to give any rights to its costumers. So I cannot completely control what my phone does. Because it is not my phone. It is Googles phone.
That I am allowed to use. By the good graces of our corporate god emperors
"Moose stares blankly into space trying to stop being permanently angry at hoe everyone is choosing to run the world"
… Ok that turned dark… Anywho. TLDR There is a better option for 95% of apps (Which is "A GUI that interfaces with a database") "Just write a single HTML document with internal CSS and Javascript" Usually simpler, MUCH easier and smaller… And now your app works on any computer with a browser. Meaning all of them…
I made a GUI for my parents recently that works exactly like that. Soo this post:
It was frankly a mistake of me to learn Kotlin… Even more so since It is a… awful language… Clearly good ideas then ruined by marketing department people yelling "SUPPORT EVERYTHING! AND USE ALL THE BUZZWORD TECHNOLOGY! Like… If your language FORCES you to use exceptions for normal runtime behavior "Stares at CancellationException"... dear god that is horrible...
Made EVEN WORSE by being a really complicated way to re-invent the GOTO expression… You know... The thing every programmer is taught will eat your feet if you ever think about using it because it is SO dangerous, and SO bad form to use it? Yeah. It is that, hidden is a COMPLEATLY WRONG WAY to use exceptions…
goodie… I swear to Christ, every page or two of my Kotlin notes have me ranting how I learned how something works, and that it is terrible... Blaaa. But anyway now that I know it, I try to keep it fresh in my mind and use it from time to time. Might as well. It IS possible to run certain things more effective than a web page, and you can work much more directly with the file system. It is... hard-ish to get a webpage to "load" a file automatically... But believe me, it is good that this is the case.
Anywho. How does the app work and what is the next version going to do?
PROTO is meant to be a platform I test OTHER systems on, so he is optimized for simplicity. So how you control him is sending a HTTP 1.1 message of type Text/Plain… (This is a VERY fancy sounding way of saying "A string" in network speak). The string is 6 comma separated numbers. Linear movement XYZ and angular movement XYZ.
The app is simply 5 buttons that each sends a HTTP PUT request with fixed values. Specifically 0.5/-0.5 meter/second linear (Drive back or forward) 0.2/-0.2 radians/second angular (Turn right or turn left) Or all 0 for stop
(Yes, I just formatted normal text as code to make it more readable... I think I might be more infected by programming so much than I thought...)
Aaaaaanywho. That must be enough ranting. Time to make the app
29 notes · View notes
dragonmarquise · 8 months
Text
Time for more rambling about BRC!! This time about post game events, focused on the potential idea of Felix and Red as separate characters.
Putting this under a cut because of course my rambling got way longer than I intended, loool
At first after finishing the game, I liked the idea of what I'd call "Red Felix" (i.e. Felix and Red are the same person, which is probably what the game intended of course). I also like the idea that he manages to put the cyberhead helmet he had as Red back together, and wears that as his new mask while going around as a BRC writer from now on.
But! Honestly now I'm liking the idea of Red and Felix being two separate people (i.e. take the post game character select at face value) a lot more. So then, how I'm thinking it could work is this:
They both share some memories, but throughout the game there's parts that only Felix remembers and others than only Red remembers. Effectively it's to a point where they've become two different people.
Red would have been an exact copy of Felix, but I'm imagining like, whatever the Flesh Prince did to save Felix in that cyberhead didn't 100% get rid of the usual cyberhead systems. We see an error message (right before we start playing as Red) saying there's no AI to load. My perspective is that normally a person's mind is copied, maybe by interfacing/connecting the original head with the cyberhead or to a special computer. Then once the copy is ready, it's uploaded to their cyberhead (if it isn't already copied directly onto there) before it replaces their real head.
In this case there was no AI to load... but then Felix's mind is detected by whatever systems are left in the cyberhead, leading it to run a backup protocol that started trying to record/copy Felix! So there were some parts still at least partially recording/saving Felix's mind. But due to the situation (and probably some shoddy coding tbh) it didn't work as it normally would have. Hence the differences in memories, and also sometimes Red and Felix switching for complete control of the body for some memories.
You might say, c'mon, not even shoddy coding could do that!! And I say to you, my day job is as a software engineer/programmer, I have seen a ton of shoddy code doing some jank-ass stuff that it really shouldn't have until it did. I can assure you, I would not be surprised if something like this happens due to hastily-modified AI code. :P
Anyways, after the game, Felix gets Red-as-a-cyberhead fixed up, thinking he can just use it as a helmet from now on, like I mentioned with Red Felix above.
But surprise! Turns out Red survived, he's been hanging out in the pieces until they were brought back together!! "Hey Felix, man, it's great to finally meet you in person!! :D"
And they probably find Faux's body in a dumpster or something and it's like, "Well he's definitely not using it anymore so you can have it I guess."
Also Red jokes that if somehow Faux survived and decided to get his body back after all, he's gonna have to fight Red for it!! Felix politely asks him to not jinx it, considering everything they've all been through, lol
Also-also I admittedly just like, the idea of Felix and Red being different people, but also getting along well enough that they start seeing each other as brothers. Which I guess they are? Kinda? They are almost literally twins in terms of mind/memories, just with their own differences too.
Extra Silly and Not Based on Too Much Canon: I like the idea of Felix being the responsible brother and Red being the gremlin brother. Maybe that's just me. :P
Bonus: Whether Red Felix or Felix and Red, Felix lets DJ Cyber keep his old mask. We can say it's symbolic! Felix moving on from his past as a solo All City writer, to a better future with a whole All City crew of friends!
But also, I would like DJ Cyber to keep The Cool Mask because I think it looks better on him than it did on Felix, loool
24 notes · View notes