#automation peacock
Explore tagged Tumblr posts
Text
#mdzs#the untamed#mo dao zu shi#mdzs crack#mdzs meme#mdzs shitposting#apple memes 🍎#jin zixuan#nie huaisang#tbh i was gonna use wwx instead but#jzx isnt in enough things 🥺#more jzx content pls pls p l s#nhs birb expert#especially peacocks 😌✨🦚#also headcanon that jzx has an automated handle with a bunch of random numbers lmaooo
388 notes
·
View notes
Text
continued from x | @therebetterbepie
If Roy was being truthful, he had a git feeling something was different about Dean's visit to his workshop. Not only did the man ask if he could come over, but there was something in that stern expression that wasn't quite there when Roy showed him around. It was like his mind was busy with something else entirely during the entire stay. Not that it was new; Dean always looked like he was growing increasingly more concerned about his next hunt every time he had a set target.
Still, opting to show Dean around and impress as if he was a peacock showing around his most colorful feathers, he started to explain to him how he could automate the devil trap bullet process with his machinery and save Dean plenty of time. Out of all the reactions to his unfurling speech, that was something he had not expected one bit.
There was no denying Roy found himself increasingly closer to Dean the more time they spent together. He reached the point that he trusted him enough to bring him into Lian's life and be more concerned about antics that caused him any harm - accidental or otherwise. The man was ridiculously attractive, and he had a good, strong core beneath a roughly textured shell. While Roy was a smooth operator with women, he had less of an experience with men due to coming out later in life. Reading or clocking a man wasn't his strong suit, but it didn't mean he couldn't hope, right?
So when that kiss happened, it may have been a surprise, but it wasn't unwelcome one bit. It was too brief for Roy to lean into, but the momentary blissful daze it left him in behind was enough to make his core twist in the most pleasant way. He caught the man's wrist just as he moved to step back, speed quick enough to be nearly instinctive, then reached over to grab the back of Dean's neck with the other as he pulled him back in by the wrist.
"Fuck asking." In this scenario, anyway. He leaned in to meet him halfway, tilting his head and his breath hitching for just a moment before he kissed him again. It was firm, tender, and inviting; it made Roy's stomach flutter, and his knees grow weak. It was the feeling when tables turned and there was no going back, but man, was it making him excited.
#redbullseye#therebetterbepie#//ic#//(two idiots kissing in a workshop)#//(five feet not apart cause they are gay)
10 notes
·
View notes
Text
We need to have an honest conversation about automated censorship.
My son, who's ten, has wanted to share facts about the animal kingdom and made videos we shared on tiktok. Two of them have been censored and their appeal has been denied.
I'll share the videos.
First is a video about peacock feathers.
-This ban is fine right? We should have community guidelines that forbid the use of cock right? There is no way kids would need a way to access information about their body in a safe way, they should learn all that in school or ask a professional, they can all do that right? And besides birdnames are really pornographic in nature, that's hilarious, why would they name something big breasted tits and cock something? They obviously were horny and we can't have kids learn about things in nature that were discovered by horny people, right? /s
The second is a video about how female ostriches steal eggs from other nests.
-Robbery is a felony and kids should obviously be shielded from crime, punishable offenses is not something kids should see on the internet and it really is a good thing to censor something like that right? The language around crime should apply to humans and not nature, the ostrich isn't a thief and hasn't committed a crime. Why don't they call it something else, like some abstract detached science name so it's not confusing for kids? Besides there is no need for kids to know about crime, otherwise they'll just start committing them! Right? /s
The third video that was censored was a video we made from a tiktok template, you fill in the clips you want and the template adds the sound made from Dr. Dre's song, Still D.R.E. So thinking this would be acceptable we added the usual text and hashtags we've been using.
The fourth one was because using an animated sticker of a fox reading a book to cover my game of thrones t-shirt that read 'All men must die' which I thought was poor taste of me to show, I thought I would be facing the child more and the text wouldn't be as visible. Hence I self censored and with good reason, to hide something in poor taste that wasn't fitting for kids. However the fox in question (not available in the stickers catalog it seems so I replaced it for the next closest sticker) was over my chest. So the the red orange moving ears must have been automatically flag as nudity. So I tried changing my type of censorship and made it into white text on black background with the words 'reading is the best'. Same hashtags, hundreds of views immediately.
Reposting these banned videos on Instagram and no obvious censorship, our followers at least got to see it.
*we wrote peacock, the caption was altered without our consent
#censorship#tiktoks#tiktok#náttúruval#crowdfunding#card games#animals#nature#science#animal facts#card game design#gamefound#indie games#tiktok trend#instagram
6 notes
·
View notes
Note
how they show they love their s/o?
cuddles: this guy is like a peacock. he becomes the BIGGEST show off, going out of his way to try and impress his s/o
giggles: huge on physical touch and compliments. more often than not, she'll be wrapped around her partner's arm, showering them with praise
toothy: he shows affection by spending time with his partner. they don't have to be doing anything, they can just be in the same room while both of them do their own thing, but the important part is that they're together
petunia: she shows she cares by letting her s/o take care of things sometimes. she usually wants to be the one who takes care of everything so she Knows it's done to her standard, so for her to step back and let her partner do it instead is a huge show of trust for her
handy: 1000% an acts of service guy. he likes to do things for the few people he actually likes, and his lover is no exception
nutty: if he shares his candy with someone, they should feel like they just got proposed to, because that's pretty much what that is to him. he has to LOVE love someone to be willing to share.
sniffles: he shows affection by making things that will make his s/o's life easier, or at least they're meant to. do they really need all these different gadgets that automate the household chores? not really, but sniffles builds them anyway, in hopes that his love will have one less burden on their shoulders
pop: the concept food as a love language will never be portrayed better than it is by him. pop's s/o will never, EVER go hungry on his watch
flaky: they always feel like they're not doing enough to show it, but it's obvious in the way they're always finding books and newspapers articles and songs that remind them of their partner, and sending them to them straight away
mole: he's not much for the obvious shows of affection, but there's no doubt about his feelings when he reaches out to take his partner's hand
disco bear: goes for the classic grand gestures. roses and chocolates, big shopping sprees, all the bells and whistles
russell: he's another one who just wants to spend good quality time with his partner
lifty: king of "this made me think of you so i bought it for you". although, half the time "bought" usually actually means "stole", but yknow. same difference, right?
shifty: he wants nothing more than to show off his partner and let everyone know that this one is HIS!!! whenever they're in public together, he has an arm across their shoulder, or around their waist, or something. clingy little beast
mime: his partner will get more types of balloon creations than they could possibly imagine existing. his performances will also get decidedly more targeted
flippy: champion baker over here! his partner will never leave his house without at least one batch of cookies
lammy: she makes sure her partner is warm and cozy before anything else. there's a noticable increase in blankets in their house, all gifts from her
splendid: also a grand gestures guy, but in the form of like. he'll straight up write his and his partners names in the sky somehow.
splendont: shows he cares by being protective. his partner will always be safe under his watch, if he has anything to say about it
2 notes
·
View notes
Note
I just had a bit of a realization re: sapience and sentience.
Something with senti but not sapi is something that just feels and reacts, like most animals. Something sapi but not senti would be something like artificial intelligence, as it can feel neither emotions nor sensations (see: Lt. Cmdr Data from Star Trek).
It could have been interesting if the Peacock did something with making intelligent but unfeeling things (sapimonsters) instead of sentiment. Call that domain "Automation."
I mean Sapient does have Sentient within it but I get where you're going
9 notes
·
View notes
Text
Crack the Code: Falling Wedge Meets Genetic Algorithms in Forex How to Crack the Code: The Falling Wedge Meets Genetic Algorithms in Forex Imagine if every trade you made had the predictability of a nature documentary. You know, like how the lion always gets its lunch, or how migrating birds always find their way back home. That's what combining the falling wedge pattern with genetic algorithms can do for your Forex trading game—it makes the unpredictable a little less wild. Let’s dive deep into how you can use this unconventional pairing to give your trades that extra edge. Why Most Traders Overlook the Falling Wedge Most traders see the falling wedge pattern as just another technical figure in the big messy picture of Forex charts. And that’s a huge mistake. The falling wedge is like that weird-looking pair of socks you never wanted to wear—it’s a hidden gem that can actually make you look awesome (or in our case, make your account look fabulous). The key to using this pattern effectively lies in its predictability—it signifies a reversal or a trend continuation, which is basically the market’s way of giving you a heads-up. But here’s the kicker—not all falling wedges are created equal. The trick is in knowing which ones are going to pay off and which are about as useful as buying a lottery ticket. This is where genetic algorithms come in to help you cut through the noise and find the golden nuggets. The Trading Algorithm Inspired by Your DNA Alright, let’s break down genetic algorithms without sounding like a dull college lecture. Picture this: Genetic algorithms are like nature's way of selecting the best traits—like why a cheetah is super fast, or why peacocks have those dazzling feathers. They “evolve” over time, learning and adapting to find the best possible solution. In Forex, genetic algorithms act like a kind of AI assistant, evaluating all your trades, and then creating new ones based on the best of the bunch—like breeding the smartest and luckiest trades together to create a trading super baby. With a genetic algorithm, you can train your trading strategy to evolve and improve—no more buying at the top or selling at the bottom just because it seemed like a “good idea at the time.” Using genetic algorithms alongside the falling wedge pattern helps you automate the process of finding and fine-tuning these wedge opportunities—it’s like having a personal assistant that keeps improving with every move. Combining Falling Wedges with Genetic Algorithms Think of this combo as a finely crafted meal. Falling wedges are like the main course—you know what you’re getting, but to really make it amazing, you need that secret spice mix. Genetic algorithms are that spice mix. Let’s break down the recipe. - Step 1: Identify the Wedge Use your charting software to identify a falling wedge—the market’s signature hint that a reversal could be around the corner. You want to look for the price making lower highs and lower lows in a converging channel. The lines should look like they’re about to meet at a party they’re both late for. - Step 2: Train Your Algorithm Use historical data to feed your genetic algorithm. Tell it, “Here’s what a perfect falling wedge looks like,” and let it start digging for similar ones. Over time, the algorithm evolves and adapts, identifying wedges that even your eyeballs might miss. - Step 3: Validate and Execute No falling wedge is perfect, and this is where genetic algorithms help. The algorithm runs simulations, identifies patterns, and even tells you, “Hey, this wedge might be worth trading” or “Stay away”—kind of like that friend who always warns you when you're about to make a bad decision, like buying yet another gym membership. - Step 4: Manage the Risk Remember, trading is like crossing a busy road—look both ways! Use stop-loss and risk management techniques even if you’re using an advanced strategy. Just because you’ve got a clever algorithm on your side doesn’t mean you should ignore common sense. Set your risk levels and be prepared to walk away if the market decides to throw a tantrum. Uncovering Hidden Patterns with Advanced Algorithms Ever feel like you’re missing out because the market’s a little too smart for you? Yeah, we’ve all been there. But here’s a fun twist—the market isn’t as unpredictable as you think. The falling wedge is just one pattern, but genetic algorithms can find similar patterns in market conditions that may not even look like wedges at first glance. Genetic algorithms can actually help in forecasting and optimizing trades by simulating thousands of possible outcomes and selecting the most promising ones. According to a 2023 study by the Bank for International Settlements, algorithmic trading has helped increase the accuracy of trend predictions by over 30% in Forex. Imagine cutting down your mistakes by almost a third—that’s like dodging bad sitcoms by having a sixth sense for what’s going to flop. The Science Behind It Forex is essentially a big ol' mix of psychology, economics, and a little bit of chaos. Genetic algorithms thrive on chaos—they like taking chaos and finding structure in it. According to John Smith, a quantitative analyst at FXCentral, “The beauty of genetic algorithms in Forex trading is that they adapt to changing market conditions, creating an evolving trading edge.” Genetic algorithms aren’t static—they evolve with the market, just like you should as a trader. On the other hand, as per an interview with Maria Gonzalez, a senior trading coach, “Most retail traders ignore these kinds of tools because they seem too complicated. But once you understand how to apply them, it’s like having a crystal ball—just way less sparkly and much more effective.” Common Pitfalls and How to Avoid Them - Overcomplicating the Setup: The biggest mistake traders make when they start using genetic algorithms is overcomplicating their strategy. Don’t be that guy at a fancy dinner who orders the entire menu just because he can. Keep it simple—a wedge is a wedge. The magic is in the process, not in how complicated you can make it. - Ignoring Market Context: Wedges work best when there’s a context—usually in oversold conditions, or when a price reversal is overdue. Genetic algorithms need good input to output anything worthwhile—feed them junk data, and you'll get junk results, like trying to find an excellent movie recommendation but only browsing the B-list romcoms. - Lack of Emotional Control: Genetic algorithms are objective, but you might not be. Remember, it’s easy to let emotions cloud your decision-making. It’s like that time you decided to ask your crush out after chugging five espressos—your judgment was “compromised”. Genetic algorithms are great, but if you’re not managing your emotions, no algorithm can save you. The Forgotten Strategy That Outsmarted the Pros Did you know that there was a time when trading the falling wedge was seen as the ultimate pro move? But most traders have let it slide into obscurity—because, let’s face it, shiny new indicators come along and distract us all like crows chasing tinfoil. But the reality is, when combined with evolving technologies like genetic algorithms, these classic techniques can be supercharged. Think of your trading setup like a toolkit. The falling wedge might be the hammer—reliable, sturdy, and surprisingly versatile. The genetic algorithm, though, is your electric screwdriver—speeding things up and making the job far easier, and it’s even nice to have that ‘hum��� while you work. Together, they make an unstoppable combination. How to Take Action Combining the falling wedge pattern with genetic algorithms isn’t about just getting lucky. It’s about evolving your trading strategy in a smart, calculated way—sort of like Darwin’s evolution theory but with less jungle and more numbers. By automating your identification of wedge patterns and training a genetic algorithm, you can adapt your trading strategy in real time to match changing market conditions. To sum it up, here are your key takeaways: - The falling wedge is an underrated, powerful indicator that signals trend reversal or continuation. - Genetic algorithms can automate and improve your trading by evolving based on past performance. - Combining these two gives you an edge that even seasoned traders may overlook. If you want to learn more about the hidden strategies that the pros use, check out our Forex Education resources, or join the StarseedFX community for live trading insights, daily alerts, and a group of traders just like you who are looking to outsmart the market. And hey, if you’re ready to level up, why not grab a Free Trading Plan or use our Smart Trading Tool to make sure your trades are as sharp as they can be? Don’t let the market keep you guessing—get ahead, stay informed, and evolve your strategy today. —————– Image Credits: Cover image at the top is AI-generated Read the full article
0 notes
Text
Full Service Solutions with Jay Mustafa, Thirst Creative
Jay Mustafa, Managing Director at Thirst Creative, and Phil Gaskin, Business Development Channel Manager at XMPie, join Deborah Corn to discuss how Thirst Creative grew into a full-service print and creative solutions company, the adoption of XMPie to integrate and automate processes, why customer convenience is essential, and the importance of meeting client demands in a competitive market.
Mentioned in This Episode:
Jay Mustafa: https://linkedin.com/in/jay-mustafa-296b592b/
Thirst Creative: https://thirstcreative.co.uk/
Motor Village: https://thirstcreative.co.uk/works/motor-village/
Phil Gaskin: https://linkedin.com/in/philgaskin/
XMPie: https://xmpie.com/
Deborah Corn: https://www.linkedin.com/in/deborahcorn/
Print Media Centr: https://printmediacentr.com
Partner with Print Media Centr: https://printmediacentr.com/partnerships/
Subscribe to News From The Printerverse: https://printmediacentr.com/subscribe-2
Project Peacock: https://ProjectPeacock.TV
Girls Who Print: https://girlswhoprint.net
Listen Long and Prosper!
0 notes
Text
Google Slop: The Flood of AI-Generated Content Could Fuel Misinformation
The internet is increasingly filled with low-quality content. This ongoing debate has now shifted to Google Images, where troubling signs of what the future holds are emerging due to the surge of AI-generated content.
For example, if you search for “baby peacock” on Google Images, the first page of results is dominated by AI-generated images that bear little resemblance to how a real baby peacock looks. A recent Reddit thread has sparked widespread concern, with hundreds of users lamenting the unstoppable flood of low-quality, AI-generated content — referred to as “slop” — that is now overwhelming social media and platforms.
These fake images of baby peacocks have even been shared on Facebook, where many people seemingly believe what they see, leading to likes and shares of these cute but misleading images.
In this case, the worst outcome might be that someone holds onto a false idea of what a baby peacock looks like. But if this practice extends to more serious topics, the consequences become clear: rampant misinformation and high-quality content (surely there’s no shortage of professional photos of peacocks) will be buried beneath a flood of garbage posts.
Twitter Post
“This is starting to show up on YouTube too. Everything is becoming fake and low-quality,” said one Reddit user. “This kind of internet isn’t interesting. We’ll simply trust the internet less and spend less time on it. Let Google read itself now,” commented another.
Some users propose solutions, like going back to the days of blogging: “Create your own website! It’s time to take back ownership of your content and maybe even have a section for ‘interesting links/friends’ websites’ to share. It’s time for people to reclaim the internet, not corporations,” suggests another commenter.
AI-Generated Labels: An Internet for Bots
The “dead internet” theory is also gaining traction, fueled by these trends. This theory suggests that bots, automated programs, and AI will dominate the use of the internet, to the point where most web traffic will come from these agents instead of real people.
The result? Misinformation, poor-quality content, and spam, making the internet a more hostile, false-filled space that makes it harder for the average user to find what they are truly searching for.
Meanwhile, some people are profiting. As one user explained: “I was looking for a solution to a programming problem the other day and stumbled upon a YouTube video with an AI voiceover, stock footage, and AI-generated subtitles. The video’s script was also AI-written because it didn’t offer anything useful, just rambled for 10 minutes. I got curious and checked the channel. The guy had uploaded 2,000 videos with 1,000–10,000 views on average, all with the same garbage AI content. I think someone automated a bot to constantly upload content to YouTube, and the guy just earns passive income from ad revenue,” said @Competitive-Lack-660.
0 notes
Text
From Ancient Automata to Modern Machines: The Evolution of Robots
A robot is a machine, often programmable by a computer, capable of executing a complex series of actions automatically. While robots can be guided by external controls, many are designed with embedded systems. These machines can range from humanoid forms like Honda's ASIMO and TOSY's TOPIO to various specialized robots such as industrial, medical, and even microscopic nano robots. By mimicking lifelike appearances or automating tasks, robots can give the impression of intelligence or independent thought. The future promises a surge in autonomous technology, with home robotics and self-driving cars leading the charge.
Robotics: The Field of Innovation
The study and application of robots fall under the domain of robotics, which encompasses the design, construction, operation, and control of these machines. Robotics also involves sensory feedback and information processing, aiming to replace humans in hazardous environments or perform tasks with precision and efficiency. Inspired by nature, robotics has evolved into bio-inspired and soft robotics, reflecting a blend of mechanical and organic systems.
Historical Context
The concept of automation is not new. Ancient civilizations, including those in China, Greece, and Egypt, created early forms of automated devices. For instance, Archytas of Tarentum envisioned a steam-powered mechanical bird, while Hero of Alexandria developed various automated machines using air pressure and steam.
In the 11th century, Chinese inventor Su Song built a sophisticated water clock with mechanical figurines, showcasing early programmable mechanisms. The Samarangana Sutradhara, an 11th-century Sanskrit treatise, described elaborate mechanical contrivances, including dancing dolls and musical instruments.
Medieval Innovations
The 13th-century Muslim scientist Ismail al-Jazari advanced the field further with his inventions. Al-Jazari’s creations included automated peacocks powered by hydropower, automatic gates, and even a humanoid waitress capable of serving drinks. His innovations demonstrated a keen interest in practical applications and user comfort, distinguishing his work from earlier Greek designs.
Modern Robotics
The term "robot" originates from the Slavic word "robot-" meaning labor, first popularized in Karel Čapek’s 1920 play "R.U.R." The field gained significant momentum with the development of electronic autonomous robots in the mid-20th century. George Devol's 1954 Unimate, the first commercial digital and programmable robot, marked a turning point, finding application in automotive manufacturing.
Impact and Future
Robots have increasingly replaced humans in repetitive, dangerous, or highly specialized tasks. Their role in society has sparked debates on technological unemployment and ethical concerns, particularly in military applications. As robots continue to evolve, the line between artificial and human-like behavior blurs, raising questions about autonomy and future implications.
Summary
The term "robot" encompasses both physical machines and virtual software agents, though the latter are typically called bots. Essential characteristics of robots include electronic programming, data processing, and environmental interaction. As robotics advances, it increasingly intersects with fields like synthetic biology, blurring the boundaries between machines and living entities.
0 notes
Text
FATHER OF ROBOTICS
Al-Jazari's work and inventions. He built many automated mechanisms such as moving peacocks powered by hydropower, and the first automatic gates and doors. The impact Al-Jazari had on robotics has been described as : " revealing an interest in manipulating the environment for human comfort” and that its “ greatest contribution was the concept of practical application." One of his most elaborate robots was a musical robot band. It was a boat that floated on a lake and entertained guests with 4 robot musicians on board.
0 notes
Text
How I ditched streaming services and learned to love Linux: A step-by-step guide to building your very own personal media streaming server (V2.0: REVISED AND EXPANDED EDITION)
This is a revised, corrected and expanded version of my tutorial on setting up a personal media server that previously appeared on my old blog (donjuan-auxenfers). I expect that that post is still making the rounds (hopefully with my addendum on modifying group share permissions in Ubuntu to circumvent 0x8007003B "Unexpected Network Error" messages in Windows 10/11 when transferring files) but I have no way of checking. Anyway this new revised version of the tutorial corrects one or two small errors I discovered when rereading what I wrote, adds links to all products mentioned and is just more polished generally. I also expanded it a bit, pointing more adventurous users toward programs such as Sonarr/Radarr/Lidarr and Overseerr which can be used for automating user requests and media collection.
So then, what is this tutorial? This is a tutorial on how to build and set up your own personal media server using Ubuntu as an operating system and Plex (or Jellyfin) to not only manage your media, but to also stream that media to your devices both at home and abroad anywhere in the world where you have an internet connection. This is a tutorial about how building a personal media server and stuffing it full of films, television shows and music that you acquired through indiscriminate and voracious media piracy legal methods such as ripping your own physical media to disk, you’ll be free to completely ditch paid streaming services. No more will you have to pay for Disney+, Netflix, HBOMAX, Hulu, Amazon Prime, Peacock, CBS All Access, Paramount+, Crave or any other streaming service that is not named the Criterion Channel (which is actually good). If you want to watch your favourite films and television shows, you’ll have your own custom service that only features things that you want to see, and where you have control over your own files and how they’re delivered to you. And for music fans out there, both Jellyfin and Plex support music streaming, meaning you can even ditch music streaming services. Goodbye Spotify, Youtube Music, Tidal and Apple Music, welcome back unreasonably large MP3 (or FLAC) collections.
On the hardware front, I’m going to offer a few options catered towards various budgets and media library sizes. The cost of getting a media server up and running using this guide will cost you anywhere from $450 CAD/$325 USD at the entry level to $1500 CAD/$1100 USD at the high end. My own server was priced closer to the higher figure, with much of that cost being storage. If that seems excessive, consider for a moment, maybe you have a roommate, a close friend, or a family member who would be willing to chip in a few bucks towards your little project provided they get a share of the bounty. This is how my server was funded. It might also be worth thinking about cost over time, how much you spend yearly on subscriptions vs. a one time cost of setting up a server. Additionally there's just the joy of being able to scream "fuck you" at all those show cancelling, movie deleting, hedge fund vampire CEOs who run the studios through denying them your money. Drive a stake through David Zaslav's heart.
On the software side I will walk you step-by-step through installing Ubuntu as your server's operating system, configuring your storage as a RAIDz array with ZFS, sharing your zpool to Windows with Samba, running a remote connection between your server and your Windows PC, and then a little about started with Plex/Jellyfin. Every terminal command you will need to input will be provided, and I even share a custom #bash script that will make used vs. available drive space on your server display correctly in Windows.
If you have a different preferred flavour of Linux (Arch, Manjaro, Redhat, Fedora, Mint, OpenSUSE, CentOS, Slackware etc. et. al.) and are aching to tell me off for being basic and using Ubuntu, this tutorial is not for you. The sort of person with a preferred Linux distro is the sort of person who can do this sort of thing in their sleep. Also I don't care. This tutorial is intended for the average home computer user. This is also why we’re not using a more exotic home server solution like running everything through Docker Containers and managing it through a dashboard like Homarr or Heimdall. While such solutions are fantastic and can be very easy to maintain once you have it all set up, wrapping your brain around Docker is a whole thing in and of itself. If you do follow this tutorial and had fun putting everything together, then I would encourage you to return in a year’s time, do your research and set up everything with Docker Containers.
Lastly, this is a tutorial aimed at Windows users. Although I was a daily user of OS X for many years (roughly 2008-2023) and I've dabbled quite a bit with various Linux distributions (mostly Ubuntu and Manjaro), my primary OS these days is Windows 11. Many things in this tutorial will still be applicable to Mac users, but others (e.g. setting up shares) you will have to look up for yourself. I doubt it would be difficult to do so.
Nothing in this tutorial will require feats of computing expertise. All you will need is a basic computer literacy (i.e. an understanding of what a filesystem and directory are, and a degree of comfort in the settings menu) and a willingness to learn a thing or two. While this guide may look overwhelming at first glance, it is only because I want to be as thorough as possible. I want you to understand exactly what it is you're doing, I don't want you to just blindly follow steps. If you half-way know what you’re doing, you will be much better prepared if you ever need to troubleshoot.
Honestly, once you have all the hardware ready it shouldn't take more than an afternoon or two to get everything up and running.
(This tutorial is just shy of seven thousand words long so the rest is under the cut.)
Step One: Choosing Your Hardware
Linux is a light weight operating system, depending on the distribution there's close to no bloat. There are recent distributions available at this very moment that will run perfectly fine on a fourteen year old i3 with 4GB of RAM. Moreover, running Plex or Jellyfin isn’t resource intensive in 90% of use cases. All this is to say, we don’t require an expensive or powerful computer. This means that there are several options available: 1) use an old computer you already have sitting around but aren't using 2) buy a used workstation from eBay, or what I believe to be the best option, 3) order an N100 Mini-PC from AliExpress or Amazon.
Note: If you already have an old PC sitting around that you’ve decided to use, fantastic, move on to the next step.
When weighing your options, keep a few things in mind: the number of people you expect to be streaming simultaneously at any one time, the resolution and bitrate of your media library (4k video takes a lot more processing power than 1080p) and most importantly, how many of those clients are going to be transcoding at any one time. Transcoding is what happens when the playback device does not natively support direct playback of the source file. This can happen for a number of reasons, such as the playback device's native resolution being lower than the file's internal resolution, or because the source file was encoded in a video codec unsupported by the playback device.
Ideally we want any transcoding to be performed by hardware. This means we should be looking for a computer with an Intel processor with Quick Sync. Quick Sync is a dedicated core on the CPU die designed specifically for video encoding and decoding. This specialized hardware makes for highly efficient transcoding both in terms of processing overhead and power draw. Without these Quick Sync cores, transcoding must be brute forced through software. This takes up much more of a CPU’s processing power and requires much more energy. But not all Quick Sync cores are created equal and you need to keep this in mind if you've decided either to use an old computer or to shop for a used workstation on eBay
Any Intel processor from second generation Core (Sandy Bridge circa 2011) onward has Quick Sync cores. It's not until 6th gen (Skylake), however, that the cores support the H.265 HEVC codec. Intel’s 10th gen (Comet Lake) processors introduce support for 10bit HEVC and HDR tone mapping. And the recent 12th gen (Alder Lake) processors brought with them hardware AV1 decoding. As an example, while an 8th gen (Kaby Lake) i5-8500 will be able to hardware transcode a H.265 encoded file, it will fall back to software transcoding if given a 10bit H.265 file. If you’ve decided to use that old PC or to look on eBay for an old Dell Optiplex keep this in mind.
Note 1: The price of old workstations varies wildly and fluctuates frequently. If you get lucky and go shopping shortly after a workplace has liquidated a large number of their workstations you can find deals for as low as $100 on a barebones system, but generally an i5-8500 workstation with 16gb RAM will cost you somewhere in the area of $260 CAD/$200 USD.
Note 2: The AMD equivalent to Quick Sync is called Video Core Next, and while it's fine, it's not as efficient and not as mature a technology. It was only introduced with the first generation Ryzen CPUs and it only got decent with their newest CPUs, we want something cheap.
Alternatively you could forgo having to keep track of what generation of CPU is equipped with Quick Sync cores that feature support for which codecs, and just buy an N100 mini-PC. For around the same price or less of a used workstation you can pick up a mini-PC with an Intel N100 processor. The N100 is a four-core processor based on the 12th gen Alder Lake architecture and comes equipped with the latest revision of the Quick Sync cores. These little processors offer astounding hardware transcoding capabilities for their size and power draw. Otherwise they perform equivalent to an i5-6500, which isn't a terrible CPU. A friend of mine uses an N100 machine as a dedicated retro emulation gaming system and it does everything up to 6th generation consoles just fine. The N100 is also a remarkably efficient chip, it sips power. In fact, the difference between running one of these and an old workstation could work out to hundreds of dollars a year in energy bills depending on where you live.
You can find these Mini-PCs all over Amazon or for a little cheaper on AliExpress. They range in price from $170 CAD/$125 USD for a no name N100 with 8GB RAM to $280 CAD/$200 USD for a Beelink S12 Pro with 16GB RAM. The brand doesn't really matter, they're all coming from the same three factories in Shenzen, go for whichever one fits your budget or has features you want. 8GB RAM should be enough, Linux is lightweight and Plex only calls for 2GB RAM. 16GB RAM might result in a slightly snappier experience, especially with ZFS. A 256GB SSD is more than enough for what we need as a boot drive, but going for a bigger drive might allow you to get away with things like creating preview thumbnails for Plex, but it’s up to you and your budget.
The Mini-PC I wound up buying was a Firebat AK2 Plus with 8GB RAM and a 256GB SSD. It looks like this:
Note: Be forewarned that if you decide to order a Mini-PC from AliExpress, note the type of power adapter it ships with. The mini-PC I bought came with an EU power adapter and I had to supply my own North American power supply. Thankfully this is a minor issue as a barrel plug 30W/12V/2.5A power adapters are plentiful and can be had for $10.
Step Two: Choosing Your Storage
Storage is the most important part of our build. It is also the most expensive. Thankfully it’s also the most easily upgrade-able down the line.
For people with a smaller media collection (4TB to 8TB), a more limited budget, or who will only ever have two simultaneous streams running, I would say that the most economical course of action would be to buy a USB 3.0 8TB external HDD. Something like this one from Western Digital or this one from Seagate. One of these external drives will cost you in the area of $200 CAD/$140 USD. Down the line you could add a second external drive or replace it with a multi-drive RAIDz set up such as detailed below.
If a single external drive the path for you, move on to step three.
For people with larger media libraries (12TB+), who prefer media in 4k, or care who about data redundancy, the answer is a RAID array featuring multiple HDDs in an enclosure.
Note: If you are using an old PC or used workstatiom as your server and have the room for at least three 3.5" drives, and as many open SATA ports on your mother board you won't need an enclosure, just install the drives into the case. If your old computer is a laptop or doesn’t have room for more internal drives, then I would suggest an enclosure.
The minimum number of drives needed to run a RAIDz array is three, and seeing as RAIDz is what we will be using, you should be looking for an enclosure with three to five bays. I think that four disks makes for a good compromise for a home server. Regardless of whether you go for a three, four, or five bay enclosure, do be aware that in a RAIDz array the space equivalent of one of the drives will be dedicated to parity at a ratio expressed by the equation 1 − 1/n i.e. in a four bay enclosure equipped with four 12TB drives, if we configured our drives in a RAIDz1 array we would be left with a total of 36TB of usable space (48TB raw size). The reason for why we might sacrifice storage space in such a manner will be explained in the next section.
A four bay enclosure will cost somewhere in the area of $200 CDN/$140 USD. You don't need anything fancy, we don't need anything with hardware RAID controls (RAIDz is done entirely in software) or even USB-C. An enclosure with USB 3.0 will perform perfectly fine. Don’t worry too much about USB speed bottlenecks. A mechanical HDD will be limited by the speed of its mechanism long before before it will be limited by the speed of a USB connection. I've seen decent looking enclosures from TerraMaster, Yottamaster, Mediasonic and Sabrent.
When it comes to selecting the drives, as of this writing, the best value (dollar per gigabyte) are those in the range of 12TB to 20TB. I settled on 12TB drives myself. If 12TB to 20TB drives are out of your budget, go with what you can afford, or look into refurbished drives. I'm not sold on the idea of refurbished drives but many people swear by them.
When shopping for harddrives, search for drives designed specifically for NAS use. Drives designed for NAS use typically have better vibration dampening and are designed to be active 24/7. They will also often make use of CMR (conventional magnetic recording) as opposed to SMR (shingled magnetic recording). This nets them a sizable read/write performance bump over typical desktop drives. Seagate Ironwolf and Toshiba NAS are both well regarded brands when it comes to NAS drives. I would avoid Western Digital Red drives at this time. WD Reds were a go to recommendation up until earlier this year when it was revealed that they feature firmware that will throw up false SMART warnings telling you to replace the drive at the three year mark quite often when there is nothing at all wrong with that drive. It will likely even be good for another six, seven, or more years.
Step Three: Installing Linux
For this step you will need a USB thumbdrive of at least 6GB in capacity, an .ISO of Ubuntu, and a way to make that thumbdrive bootable media.
First download a copy of Ubuntu desktop (for best performance we could download the Server release, but for new Linux users I would recommend against the server release. The server release is strictly command line interface only, and having a GUI is very helpful for most people. Not many people are wholly comfortable doing everything through the command line, I'm certainly not one of them, and I grew up with DOS 6.0. 22.04.3 Jammy Jellyfish is the current Long Term Service release, this is the one to get.
Download the .ISO and then download and install balenaEtcher on your Windows PC. BalenaEtcher is an easy to use program for creating bootable media, you simply insert your thumbdrive, select the .ISO you just downloaded, and it will create a bootable installation media for you.
Once you've made a bootable media and you've got your Mini-PC (or you old PC/used workstation) in front of you, hook it directly into your router with an ethernet cable, and then plug in the HDD enclosure, a monitor, a mouse and a keyboard. Now turn that sucker on and hit whatever key gets you into the BIOS (typically ESC, DEL or F2). If you’re using a Mini-PC check to make sure that the P1 and P2 power limits are set correctly, my N100's P1 limit was set at 10W, a full 20W under the chip's power limit. Also make sure that the RAM is running at the advertised speed. My Mini-PC’s RAM was set at 2333Mhz out of the box when it should have been 3200Mhz. Once you’ve done that, key over to the boot order and place the USB drive first in the boot order. Then save the BIOS settings and restart.
After you restart you’ll be greeted by Ubuntu's installation screen. Installing Ubuntu is really straight forward, select the "minimal" installation option, as we won't need anything on this computer except for a browser (Ubuntu comes preinstalled with Firefox) and Plex Media Server/Jellyfin Media Server. Also remember to delete and reformat that Windows partition! We don't need it.
Step Four: Installing ZFS and Setting Up the RAIDz Array
Note: If you opted for just a single external HDD skip this step and move onto setting up a Samba share.
Once Ubuntu is installed it's time to configure our storage by installing ZFS to build our RAIDz array. ZFS is a "next-gen" file system that is both massively flexible and massively complex. It's capable of snapshot backup, self healing error correction, ZFS pools can be configured with drives operating in a supplemental manner alongside the storage vdev (e.g. fast cache, dedicated secondary intent log, hot swap spares etc.). It's also a file system very amenable to fine tuning. Block and sector size are adjustable to use case and you're afforded the option of different methods of inline compression. If you'd like a very detailed overview and explanation of its various features and tips on tuning a ZFS array check out these articles from Ars Technica. For now we're going to ignore all these features and keep it simple, we're going to pull our drives together into a single vdev running in RAIDz which will be the entirety of our zpool, no fancy cache drive or SLOG.
Open up the terminal and type the following commands:
sudo apt update
then
sudo apt install zfsutils-linux
This will install the ZFS utility. Verify that it's installed with the following command:
zfs --version
Now, it's time to check that the HDDs we have in the enclosure are healthy, running, and recognized. We also want to find out their device IDs and take note of them:
sudo fdisk -1
Note: You might be wondering why some of these commands require "sudo" in front of them while others don't. "Sudo" is short for "super user do”. When and where "sudo" is used has to do with the way permissions are set up in Linux. Only the "root" user has the access level to perform certain tasks in Linux. As a matter of security and safety regular user accounts are kept separate from the "root" user. It's not advised (or even possible) to boot into Linux as "root" with most modern distributions. Instead by using "sudo" our regular user account is temporarily given the power to do otherwise forbidden things. Don't worry about it too much at this stage, but if you want to know more check out this introduction.
If everything is working you should get a list of the various drives detected along with their device IDs which will look like this: /dev/sdc. You can also check the device IDs of the drives by opening the disk utility app. Jot these IDs down as we'll need them for our next step, creating our RAIDz array.
RAIDz is similar to RAID-5 in that instead of striping your data over multiple disks, exchanging redundancy for speed and available space (RAID-0), or mirroring your data writing by two copies of every piece (RAID-1), it instead writes parity blocks across the disks in addition to striping, this provides a balance of speed, redundancy and available space. If a single drive fails, the parity blocks on the working drives can be used to reconstruct the entire array as soon as a replacement drive is added.
Additionally, RAIDz improves over some of the common RAID-5 flaws. It's more resilient and capable of self healing, as it is capable of automatically checking for errors against a checksum. It's more forgiving in this way, and it's likely that you'll be able to detect when a drive is dying well before it fails. A RAIDz array can survive the loss of any one drive.
Note: While RAIDz is indeed resilient, if a second drive fails during the rebuild, you're fucked. Always keep backups of things you can't afford to lose. This tutorial, however, is not about proper data safety.
To create the pool, use the following command:
sudo zpool create "zpoolnamehere" raidz "device IDs of drives we're putting in the pool"
For example, let's creatively name our zpool "mypool". This poil will consist of four drives which have the device IDs: sdb, sdc, sdd, and sde. The resulting command will look like this:
sudo zpool create mypool raidz /dev/sdb /dev/sdc /dev/sdd /dev/sde
If as an example you bought five HDDs and decided you wanted more redundancy dedicating two drive to this purpose, we would modify the command to "raidz2" and the command would look something like the following:
sudo zpool create mypool raidz2 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
An array configured like this is known as RAIDz2 and is able to survive two disk failures.
Once the zpool has been created, we can check its status with the command:
zpool status
Or more concisely with:
zpool list
The nice thing about ZFS as a file system is that a pool is ready to go immediately after creation. If we were to set up a traditional RAID-5 array using mbam, we'd have to sit through a potentially hours long process of reformatting and partitioning the drives. Instead we're ready to go right out the gates.
The zpool should be automatically mounted to the filesystem after creation, check on that with the following:
df -hT | grep zfs
Note: If your computer ever loses power suddenly, say in event of a power outage, you may have to re-import your pool. In most cases, ZFS will automatically import and mount your pool, but if it doesn’t and you can't see your array, simply open the terminal and type sudo zpool import -a.
By default a zpool is mounted at /"zpoolname". The pool should be under our ownership but let's make sure with the following command:
sudo chown -R "yourlinuxusername" /"zpoolname"
Note: Changing file and folder ownership with "chown" and file and folder permissions with "chmod" are essential commands for much of the admin work in Linux, but we won't be dealing with them extensively in this guide. If you'd like a deeper tutorial and explanation you can check out these two guides: chown and chmod.
You can access the zpool file system through the GUI by opening the file manager (the Ubuntu default file manager is called Nautilus) and clicking on "Other Locations" on the sidebar, then entering the Ubuntu file system and looking for a folder with your pool's name. Bookmark the folder on the sidebar for easy access.
Your storage pool is now ready to go. Assuming that we already have some files on our Windows PC we want to copy to over, we're going to need to install and configure Samba to make the pool accessible in Windows.
Step Five: Setting Up Samba/Sharing
Samba is what's going to let us share the zpool with Windows and allow us to write to it from our Windows machine. First let's install Samba with the following commands:
sudo apt-get update
then
sudo apt-get install samba
Next create a password for Samba.
sudo smbpswd -a "yourlinuxusername"
It will then prompt you to create a password. Just reuse your Ubuntu user password for simplicity's sake.
Note: if you're using just a single external drive replace the zpool location in the following commands with wherever it is your external drive is mounted, for more information see this guide on mounting an external drive in Ubuntu.
After you've created a password we're going to create a shareable folder in our pool with this command
mkdir /"zpoolname"/"foldername"
Now we're going to open the smb.conf file and make that folder shareable. Enter the following command.
sudo nano /etc/samba/smb.conf
This will open the .conf file in nano, the terminal text editor program. Now at the end of smb.conf add the following entry:
["foldername"]
path = /"zpoolname"/"foldername"
available = yes
valid users = "yourlinuxusername"
read only = no
writable = yes
browseable = yes
guest ok = no
Ensure that there are no line breaks between the lines and that there's a space on both sides of the equals sign. Our next step is to allow Samba traffic through the firewall:
sudo ufw allow samba
Finally restart the Samba service:
sudo systemctl restart smbd
At this point we'll be able to access to the pool, browse its contents, and read and write to it from Windows. But there's one more thing left to do, Windows doesn't natively support the ZFS file systems and will read the used/available/total space in the pool incorrectly. Windows will read available space as total drive space, and all used space as null. This leads to Windows only displaying a dwindling amount of "available" space as the drives are filled. We can fix this! Functionally this doesn't actually matter, we can still write and read to and from the disk, it just makes it difficult to tell at a glance the proportion of used/available space, so this is an optional step but one I recommend (this step is also unnecessary if you're just using a single external drive). What we're going to do is write a little shell script in #bash. Open nano with the terminal with the command:
nano
Now insert the following code:
#!/bin/bash CUR_PATH=`pwd` ZFS_CHECK_OUTPUT=$(zfs get type $CUR_PATH 2>&1 > /dev/null) > /dev/null if [[ $ZFS_CHECK_OUTPUT == *not\ a\ ZFS* ]] then IS_ZFS=false else IS_ZFS=true fi if [[ $IS_ZFS = false ]] then df $CUR_PATH | tail -1 | awk '{print $2" "$4}' else USED=$((`zfs get -o value -Hp used $CUR_PATH` / 1024)) > /dev/null AVAIL=$((`zfs get -o value -Hp available $CUR_PATH` / 1024)) > /dev/null TOTAL=$(($USED+$AVAIL)) > /dev/null echo $TOTAL $AVAIL fi
Save the script as "dfree.sh" to /home/"yourlinuxusername" then change the ownership of the file to make it executable with this command:
sudo chmod 774 dfree.sh
Now open smb.conf with sudo again:
sudo nano /etc/samba/smb.conf
Now add this entry to the top of the configuration file to direct Samba to use the results of our script when Windows asks for a reading on the pool's used/available/total drive space:
[global]
dfree command = home/"yourlinuxusername"/dfree.sh
Save the changes to smb.conf and then restart Samba again with the terminal:
sudo systemctl restart smbd
Now there’s one more thing we need to do to fully set up the Samba share, and that’s to modify a hidden group permission. In the terminal window type the following command:
usermod -a -G sambashare “yourlinuxusername”
Then restart samba again:
sudo systemctl restart smbd
If we don’t do this last step, everything will appear to work fine, and you will even be able to see and map the drive from Windows and even begin transferring files, but you'd soon run into a lot of frustration. As every ten minutes or so a file would fail to transfer and you would get a window announcing “0x8007003B Unexpected Network Error”. This window would require your manual input to continue the transfer with the file next in the queue. And at the end it would reattempt to transfer whichever files failed the first time around. 99% of the time they’ll go through that second try, but this is still all a major pain in the ass. Especially if you’ve got a lot of data to transfer or you want to step away from the computer for a while.
It turns out samba can act a little weirdly with the higher read/write speeds of RAIDz arrays and transfers from Windows, and will intermittently crash and restart itself if this group option isn’t changed. Inputting the above command will prevent you from ever seeing that window.
The last thing we're going to do before switching over to our Windows PC is grab the IP address of our Linux machine. Enter the following command:
hostname -I
This will spit out this computer's IP address on the local network (it will look something like 192.168.0.x), write it down. It might be a good idea once you're done here to go into your router settings and reserving that IP for your Linux system in the DHCP settings. Check the manual for your specific model router on how to access its settings, typically it can be accessed by opening a browser and typing http:\\192.168.0.1 in the address bar, but your router may be different.
Okay we’re done with our Linux computer for now. Get on over to your Windows PC, open File Explorer, right click on Network and click "Map network drive". Select Z: as the drive letter (you don't want to map the network drive to a letter you could conceivably be using for other purposes) and enter the IP of your Linux machine and location of the share like so: \\"LINUXCOMPUTERLOCALIPADDRESSGOESHERE"\"zpoolnamegoeshere"\. Windows will then ask you for your username and password, enter the ones you set earlier in Samba and you're good. If you've done everything right it should look something like this:
You can now start moving media over from Windows to the share folder. It's a good idea to have a hard line running to all machines. Moving files over Wi-Fi is going to be tortuously slow, the only thing that’s going to make the transfer time tolerable (hours instead of days) is a solid wired connection between both machines and your router.
Step Six: Setting Up Remote Desktop Access to Your Server
After the server is up and going, you’ll want to be able to access it remotely from Windows. Barring serious maintenance/updates, this is how you'll access it most of the time. On your Linux system open the terminal and enter:
sudo apt install xrdp
Then:
sudo systemctl enable xrdp
Once it's finished installing, open “Settings” on the sidebar and turn off "automatic login" in the User category. Then log out of your account. Attempting to remotely connect to your Linux computer while you’re logged in will result in a black screen!
Now get back on your Windows PC, open search and look for "RDP". A program called "Remote Desktop Connection" should pop up, open this program as an administrator by right-clicking and selecting “run as an administrator”. You’ll be greeted with a window. In the field marked “Computer” type in the IP address of your Linux computer. Press connect and you'll be greeted with a new window and prompt asking for your username and password. Enter your Ubuntu username and password here.
If everything went right, you’ll be logged into your Linux computer. If the performance is sluggish, adjust the display options. Lowering the resolution and colour depth do a lot to make the interface feel snappier.
Remote access is how we're going to be using our Linux system from now, barring edge cases like needing to get into the BIOS or upgrading to a new version of Ubuntu. Everything else from performing maintenance like a monthly zpool scrub to checking zpool status and updating software can all be done remotely.
This is how my server lives its life now, happily humming and chirping away on the floor next to the couch in a corner of the living room.
Step Seven: Plex Media Server/Jellyfin
Okay we’ve got all the ground work finished and our server is almost up and running. We’ve got Ubuntu up and running, our storage array is primed, we’ve set up remote connections and sharing, and maybe we’ve moved over some of favourite movies and TV shows.
Now we need to decide on the media server software to use which will stream our media to us and organize our library. For most people I’d recommend Plex. It just works 99% of the time. That said, Jellyfin has a lot to recommend it by too, even if it is rougher around the edges. Some people run both simultaneously, it’s not that big of an extra strain. I do recommend doing a little bit of your own research into the features each platform offers, but as a quick run down, consider some of the following points:
Plex is closed source and is funded through PlexPass purchases while Jellyfin is open source and entirely user driven. This means a number of things: for one, Plex requires you to purchase a “PlexPass” (purchased as a one time lifetime fee $159.99 CDN/$120 USD or paid for on a monthly or yearly subscription basis) in order to access to certain features, like hardware transcoding (and we want hardware transcoding) or automated intro/credits detection and skipping. jellyfish features for free. On the other hand, Plex supports a lot more devices than Jellyfin and updates more frequently. That said Jellyfin's Android/iOS apps are completely free, while the Plex Android/iOS apps must be activated for a one time cost of $6 CDN/$5 USD. But that $6 fee gets you a mobile app that is much more functional and features a unified UI across Android and iOS platforms, the Plex mobile apps are simply a more polished experience. The Jellyfin apps are a bit of a mess and the iOS and Android versions are very different from each other.
Jellyfin’s actual media player itself is more fully featured than Plex's, but on the other hand Jellyfin's UI, library customization and automatic media tagging really pale in comparison to Plex. Streaming your music library is free through both Jellyfin and Plex, but Plex offers the PlexAmp app for dedicated music streaming which boasts a number of fantastic features, unfortunately some of those fantastic features require a PlexPass. If your internet is down, Jellyfin can still do local streaming, while Plex can fail to play files. Jellyfin has a slew of neat niche features like support for Comic Book libraries with the .cbz/.cbt file types, but then Plex offers some free ad-supported TV and films, they even have a free channel that plays nothing but Classic Doctor Who.
Ultimately it's up to you, I settled on Plex because although some features are pay-walled, it just works. It's more reliable and easier to use, and a one-time fee is much easier to swallow than a subscription. I do also need to mention that Jellyfin does take a little extra bit of tinkering to get going in Ubuntu, you’ll have to set up process permissions, so if you're more tolerant to tinkering, Jellyfin might be up your alley and I’ll trust that you can follow their installation and configuration guide. For everyone else, I recommend Plex.
So pick your poison: Plex or Jellyfin.
Note: The easiest way to download and install either of these packages in Ubuntu is through Snap Store.
After you've installed one (or both), opening either app will launch a browser window into the browser version of the app allowing you to set all the options server side.
The process of adding creating media libraries is essentially the same in both Plex and Jellyfin. You create a separate libraries for Television, Movies, and Music and add the folders which contain the respective types of media to their respective libraries. The only difficult or time consuming aspect is ensuring that your files and folders follow the appropriate naming conventions:
Plex naming guide for Movies
Plex naming guide for Television
Jellyfin follows the same naming rules but I find their media scanner to be a lot less accurate and forgiving than Plex. Once you've selected the folders to be scanned the service will scan your files, tagging everything and adding metadata. Although I find do find Plex more accurate, it can still erroneously tag some things and you might have to manually clean up some tags in a large library. (When I initially created my library it tagged the 1963-1989 Doctor Who as some Korean soap opera and I needed to manually select the correct match after which everything was tagged normally.) It can also be a bit testy with anime (especially OVAs) be sure to check TVDB to ensure that you have your files and folders structured and named correctly. If something is not showing up at all, double check the name.
Once that's done, organizing and customizing your library is easy. You can set up collections, grouping items together to fit a theme or collect together all the entries in a franchise. You can make playlists, and add custom artwork to entries. It's fun setting up collections with posters to match, there are even several websites dedicated to help you do this like PosterDB. As an example, below are two collections in my library, one collecting all the entries in a franchise, the other follows a theme.
My Star Trek collection, featuring all eleven television series, and thirteen films.
My Best of the Worst collection, featuring sixty-nine films previously showcased on RedLetterMedia’s Best of the Worst. They’re all absolutely terrible and I love them.
As for settings, ensure you've got Remote Access going, it should work automatically and be sure to set your upload speed after running a speed test. In the library settings set the database cache to 2000MB to ensure a snappier and more responsive browsing experience, and then check that playback quality is set to original/maximum. If you’re severely bandwidth limited on your upload and have remote users, you might want to limit the remote stream bitrate to something more reasonable, just as a note of comparison Netflix’s 1080p bitrate is approximately 5Mbps, although almost anyone watching through a chromium based browser is streaming at 720p and 3mbps. Other than that you should be good to go. For actually playing your files, there's a Plex app for just about every platform imaginable. I mostly watch television and films on my laptop using the Windows Plex app, but I also use the Android app which can broadcast to the chromecast connected to the TV. Both are fully functional and easy to navigate, and I can also attest to the OS X version being equally functional.
Part Eight: Finding Media
Now, this is not really a piracy tutorial, there are plenty of those out there. But if you’re unaware, BitTorrent is free and pretty easy to use, just pick a client (qBittorrent is the best) and go find some public trackers to peruse. Just know now that all the best trackers are private and invite only, and that they can be exceptionally difficult to get into. I’m already on a few, and even then, some of the best ones are wholly out of my reach.
If you decide to take the left hand path and turn to Usenet you’ll have to pay. First you’ll need to sign up with a provider like Newshosting or EasyNews for access to Usenet itself, and then to actually find anything you’re going to need to sign up with an indexer like NZBGeek or NZBFinder. There are dozens of indexers, and many people cross post between them, but for more obscure media it’s worth checking multiple. You’ll also need a binary downloader like SABnzbd. That caveat aside, Usenet is faster, bigger, older, less traceable than BitTorrent, and altogether slicker. I honestly prefer it, and I'm kicking myself for taking this long to start using it because I was scared off by the price. I’ve found so many things on Usenet that I had sought in vain elsewhere for years, like a 2010 Italian film about a massacre perpetrated by the SS that played the festival circuit but never received a home media release; some absolute hero uploaded a rip of a festival screener DVD to Usenet, that sort of thing. Anyway, figure out the rest of this shit on your own and remember to use protection, get yourself behind a VPN, use a SOCKS5 proxy with your BitTorrent client, etc.
On the legal side of things, if you’re around my age, you (or your family) probably have a big pile of DVDs and Blu-Rays sitting around unwatched and half forgotten. Why not do a bit of amateur media preservation, rip them and upload them to your server for easier access? (Your tools for this are going to be Handbrake to do the ripping and AnyDVD to break any encryption.) I went to the trouble of ripping all my SCTV DVDs (five box sets worth) because none of it is on streaming nor could it be found on any pirate source I tried. I’m glad I did, forty years on it’s still one of the funniest shows to ever be on TV.
Part Nine/Epilogue: Sonarr/Radarr/Lidarr and Overseerr
There are a lot of ways to automate your server for better functionality or to add features you and other users might find useful. Sonarr, Radarr, and Lidarr are a part of a suite of “Servarr” services (there’s also Readarr for books and Whisparr for adult content) that allow you to automate the collection of new episodes of TV shows (Sonarr), new movie releases (Radarr) and music releases (Lidarr). They hook in to your BitTorrent client or Usenet binary newsgroup downloader and crawl your preferred Torrent trackers and Usenet indexers, alerting you to new releases and automatically grabbing them. You can also use these services to manually search for new media, and even replace/upgrade your existing media with better quality uploads. They’re really a little tricky to set up on a bare metal Ubuntu install (ideally you should be running them in Docker Containers), and I won’t be providing a step by step on installing and running them, I’m simply making you aware of their existence.
The other bit of kit I want to make you aware of is Overseerr which is a program that scans your Plex media library and will serve recommendations based on what you like. It also allows you and your users to request specific media. It can even be integrated with Sonarr/Radarr/Lidarr so that fulfilling those requests is fully automated.
And you're done. It really wasn't all that hard. Enjoy your media. Enjoy the control you have over that media. And be safe in the knowledge that no hedgefund CEO motherfucker who hates the movies but who is somehow in control of a major studio will be able to disappear anything in your library as a tax write-off.
1K notes
·
View notes
Text
candace marie hughes deliveries to candace marie hughes united states of america candace marie hughes deliveries to candace marie hughes deliveries to candace marie hughes federal notes u. s. a. deliveries to candace marie hughes voice auto voice google voiced google automation automated voices must return to candace marie hughes. on. must remove gorillas, apes, silver back gorillos, silver back gorillas, chimpanzees, chimps, spider monkeys, monkeys, bears, peacocks, tigers, cheetahs, snakes, anacondas, zebras, lions, alligators, crocodiles, lizzards, lizards, ants, deer, antelopes, moose, waters of animals as creatures, kangaroos, giraffes, and all zooed animals as candace marie hughes and must return all to candace in candace marie hughes. on. paid. must remove covers and coverings and covered. on. paid.
0 notes
Text
Vintage Botanical Drawing of a Peacock Digital Wall Art - Instant Download Digital Art File
This digital art file features an old portrait of a peacock adorned with a magnificent botanical drawing. With its high quality resolution, this wall art will appear as a true work of art, adding a stylish touch to your home decor.
As a digital download, this art file allows for a quick and easy way to add a wonderful piece of art to your home. Upon purchasing the file, you can immediately print it out in high quality or have it printed online.
This wall art makes a perfect gift option for nature and animal lovers. Additionally, it can be used as a chic decorative element in your home office, living room, bedroom, hallway, or any other space.
Tags: peacock art, botanical drawing, old portrait, digital download, wall art, home decor, instant download, high resolution, nature lover gift, animal lover gift.
Artwork that has a border will print as shown. No matting is shown in the frame.
Our digitally remastered 𝐏𝐑𝐈𝐍𝐓𝐀𝐁𝐋𝐄 𝐀𝐑𝐓 will reflect the charm and authenticity of the original artwork, with characteristic imperfections remaining visible.
To print your digital art files, we recommend using a professional printing service.
After purchase, you can access your downloads by visiting your Etsy Profile > Purchases and Reviews
If you purchased as a 'guest', you will receive an automated email from Etsy containing your download links. Please check your spam/junk folders, or if using Gmail the social/promotions tabs.
This is not a physical item. Nothing is shipped or emailed.
DOWNLOAD DETAILS
1 PDF file - 1 JPG file 300 DPI, RGB color mode
Available in various sizes:
18x26" / 46X66 cm 24x36" / 60x90 cm 27x40"/ 70x100 cm 11x17"/ 28x44 cm 16x24" / 40x60 cm
Note: This is an instant download file and no physical product will be shipped.
For My Other Designs; https://www.etsy.com/shop/ArtPrintsAI
#peacock#peacockart#peacockdecor#peacockfeather#peacockillustration#peacockpainting#peacockposter#peacockprint#peacockwallart#peacockdesign#colorfulpeacock#vintagepeacock#peacockhomedecor
0 notes
Text
Creating a Simple Discord Bot Using JavaScript and Serverless | by Ashley Peacock | Feb, 2023
Build and deploy a Discord bot Photo by Alexander Shatov on Unsplash I am part of a Discord server with a group of friends, it’s nothing fancy, we mostly just talk about video games. However, we wanted some information to be more readily available for use during discussions, as well as some simple automations. A friend created their own Discord bot on their Raspberry Pi, which works really well,…
View On WordPress
0 notes
Note
Congrats on almost 700!
I have a prompt for Rowaelin:
"I waited for you at the train station but you never came."
"I know, I am two years too late, but I am here to stay if you let me."
Train Trouble
Aelin Galathynius x Rowan Whitethorn - Answered Prompt
"I waited for you at the train station but you never came." / "I know, I am two years too late, but I am here to stay if you let me." But make it fun
I'm sure this was meant to be angst, but I pulled it in another direction.
Masterlist | Read on Ao3
1785 words
*******
“May I have your attention please,” the automated voice called out again, “the ten-fifteen train with service to Terrasen has been delayed until further notice. We are sorry for the inconvenience.”
Three simultaneous groans for annoyance rose from Aelin, Elide, and Lysandra as they listened to the delay announcement for the third time. It was already four in the afternoon and their train was apparently delayed for reasons undisclosed.
“I am so sick of this,” Lysandra moaned, “I don’t want to spend my whole day in a train station.
Elide glanced sidelong at Lysandra and pointed out, “You would’ve spent the day on the train anyway.”
“Yes, but on the train, I have pretty views and food service. Here, I have stinky garbage cans.”
Aelin rolled her eyes. They’d had this same back-and-forth for hours now. She took a sip from her water bottle and looked around the station. A decent amount of people were milling about, enough to feel busy but still with plenty of open seating.
“Let’s play a game.” She suggested.
Lysandra raised a brow but Elide nodded.
“Yes. let’s play a game,” Elide agreed, “anything to keep me from dying of boredom.”
They tried playing I-Spy but after all three of them picked ‘train’ they quit. Then they tried 20 Questions, and that was fine until Elide was thinking of ‘a memory’ and Aelin had to stop Lysandra from mauling the shorter woman.
“I give up.” Lysandra moaned. They’d heard the delay announcement two more times during their games. “I’m going to find us food.���
“And coffee!” Aelin added, suddenly desperate from some caffeine.
Lysandra hummed in agreement. “Good thinking. Do you want to stay here with the bags, and Elide, I’ll need help carrying drinks.”
“Perfect,” Elide stretched as she stood from her seat, “I can’t sit here any longer.”
Aelin waved them off as she resituated herself to better see all their luggage. She didn’t mind having to wait for the train—that’s a lie, she definitely hated it—but she didn’t hate sitting in the station. Aelin loved to people-watch. Sometimes she liked making up backstories for all the people that crossed her path.
One lady, who wore head-to-toe monochrome blue, was a Ms. Peacock impersonator. Another woman, probably in her late seventies, and a young man who was a third her age and definitely her lover, were a jet-setting, sugar mama/sugar baby couple who spent their weekends at extravagant chateaus.
A man with silver hair and a large tattoo covering his arm was—very attractive.
Aelin didn’t even try to make up a story about him because she was too focused on the way his tattoo rippled with his muscles as he hoisted his bag over his shoulder, and the way he caught her eye as he passed by and winked.
By the time Lysandra and Elide got back, their arms full with snacks, coffees, and a book held under Lysandra’s arm, Aelin had gone back to people watching.
She helped Elide with the coffees as Lysandra tossed the book into Alein’s lap.
“I love you so much.” Aelin gushed as she settled in with her drink and book.
“You’re welcome, babes.” Lysandra cooed from her seat.
Elide snorted and watched Aelin inhale her coffee, “I think she was talking to her Latte.”
Lysandra rolled her eyes as Aelin grinned.
“Anything good happen while we were gone?” Elide asked.
Aelin thought briefly about the man who walked by her and stifled a grin. “Nothing exciting.”
After letting out a long-suffering sigh, Lysandra leaned forward as a grin spread across her face. “I know what’ll make this delay less boring.”
“A nap?” Elide muttered.
Aelin laughed but Lysandra shushed her, “No, El, a scene.”
“A scene?” Aelin raised a single brow at her friend.
“Yeah, why not?” She gestured at Aelin, “cause a scene; we’re no longer bored and you get a funny story out of it. Why not?”
“Oh, and you’re assuming I’m the one who’s going to do it?” Aelin asked incredulously.
Elide leaned forward in her chair, “Ae, out of the three of us, you’re the one who would absolutely cause a scene.”
“Should I be offended?”
Both brunettes laughed and Alein couldn’t help but grin. She was so bored and she kind of liked the thrill of it.
“Okay, fine. As long it doesn’t end with me getting dragged out of here in handcuffs.” Aelin downed the rest of the coffee and felt herself getting hyped up. “What do you suggest I do?”
***
Rowan was minding his own business when a blonde woman stormed up to him.
He’d gotten to the station just in time to hear his train had been delayed, so he got some food before going to find a seat to wait. When he walking towards his area, he passed by one of the most beautiful women he’d ever seen. Her blonde hair was pulled up in a bun and he noticed it that when it caught the light it shimmered like gold. And when they locked eyes, and he saw her’s were a stunning mix of blue and gold, he couldn’t help himself as he winked at her.
He figured it was one of those things where you see a person in passing and then you’re gone. They were at a train station after all. But when she stormed up to him just as he was about to open his book, he was confused at the anger and hurt expression on her face.
He really didn’t think a wink would’ve caused her to feel that upset.
She stalked up to him, barely leaving a foot of distance when she announced sorrowfully, “I waited for you at the train station but you never came."
She said it loud enough that people around them glanced over. As they took in the scene they saw a woman who was clearly distressed, exclaiming her feelings to a man who was blank-face and speechless while she was on the verge of tears.
Rowan had no idea who this woman was or what she was talking about. But the people around them—who were now giving him disapproving glares at his apparent impassiveness—didn’t know that.
He blinked and opened his mouth to say something when he looked closer at the woman’s face. Her tears were real but her mouth was pressed into a firm line that the people around them might see as fraying composure but Rowan watched the side of her mouth quirk and he knew she was forcing back a smile.
Confused as to why she’d be smiling if she thought he was an old lover who’d abandoned her, he quickly glanced around.
Rowan saw two women seated further away, each with a hand over their mouths to obviously keep from laughing, as one of them held up her phone to seemingly record whatever was happening.
Whatever this was—a prank, and joke, a misunderstanding—was not real.
In a split-second decision, Rowan thought about how bored he was and how this was a splash of excitement in an otherwise monotonous day.
He contained a smirk as he replayed what she’d said, I waited for you at the train station but you never came.
With one last glance at the girl holding the camera, Rowan stood up and said in his most remorseful voice, “I know, I am two years too late, but I am here to stay if you let me."
It took everything in him not to laugh as the woman’s eyes widened in surprise—and delight—as she realized he was playing along.
He could hear the people around them mutter and the two women sputter at the unexpected turn of events.
But despite the thrill of duping the people around him, for some reason, Rowan couldn't take his eyes off the woman in front of him.
Rowan saw the moment she reigned in her surprise and fully embraced the scorned-lover persona.
“Stay?” she asked incredulously, “You think I’ll have you stay after you deserted me?”
Her voice was louder now and Rowan used every ounce of focus to stay in character. Whatever she was doing with this whole thing was the most exciting part of his day.
“I think there’s a reason you came here today,” he stepped closer to her and lightly held her shoulders. He watched her dip her head almost imperceptibly in a nod before he pulled her closed and said passionately, “I think you still love me.”
Rowan wasn’t sure what motivated her to rest her hands on his chest but he wasn’t complaining.
He felt her grip his shirt as he kept talking, “Because I still love you.”
She gasped and her teary mask dropped to reveal a bright grin a mere second before she used her grip on his shirt to pull him down into a searing kiss.
Rowan responded instantly by wrapping his arms around her and lifting her into the air so her feet kicked up. When he set her down he heard the light sounds of people cheering for them.
It took longer than Rowan would admit to pull himself away from the mystery woman. When he did, her eyes were still closed. He unwound his arms from her and gently squeezed her waist. At the touch, her eyes flew open and she looked at him with excitement.
Quietly, so the people around couldn’t hear, she murmured, “That was fun,” Rowan barked a laugh and she grinned at him before saying “let’s go, they all think we're reunited loves, we can’t disappoint them now.”
Rowan laughed again before picking up his bag and nodding for her to lead the way. She grabbed his free hand in hers and winked over her shoulder as she pulled him through the terminal.
As they walked by the two women he’d noticed earlier, Rowan saw one—the taller one who’d been filming—was slack-jawed with her eyebrows nearly to her hairline while the shorter one was bent over cackling.
Rowan, still hand-in-hand with the mystery woman, watched with a large smile as she winked at the first girl and high-fived the second.
She pulled Rwan around a corner and leaned back against a wall before smirking up at him.
He leaned an arm on the wall above her head and asked, “After that, do I get the reward of knowing your name?”
She snickered, “Aelin.”
“Aelin,” he rolled her name across his tongue and liked the way she smiled at it.
“And do I get yours?” Aelin asked, batting her still-wet eyelashes at him.
Smirking, he leaned down to press hip lips next to her ear and enjoyed the way she shivered.
“Rowan.”
*****
Taglist:
@acourtofsnakes @allthebooksunderthemoon @astra-ad-mare @becarefuloflove @bisexual-genderfluid-loki @booklover41802 @charlizeed @cookiemonsterwholovesbooks @danibutterr @doubt-less @emily-gsh @enormousbooklover @foughtconquered @fromthelibraryofemilyj @hakunamatatazz @i-have-but-one-brain-cell @in-love-with-caramel-macchiato @jorjy-jo @lemonade-coolattas @mariamuses @mayhemories @midsizewitch @miserablesmusings @morganofthewildfire @nehemikkele @rowaelinismyotp @rowansfirebringer @sayosdreams @sheharahu @sleeping-and-books @stardelia @story-scribbler @superspiritfestival @surielandiareendgame @swankii-art-teacher @tomtenadia @westofmoon @whimsicallyreading @ladygabrielli1997 @moodymelanist @realbookloverproblems @gracie-rosee @julemmaes @yesdreamblog @the-regal-warrior @rowanaelinn @thestoriesyoutell @autumnbabylon
#rowaelin#aelin#rowan#aelin and rowan#rowan and aelin#rowaelin fluff#rowaelin fic#rowaelin fanfiction#aelin galathynius x rowan whitethorn#aelin x rowan#rowan x aelin#answered prompt#throne of glass#tog#aelin galathynius#rowan whitethorn#elide lochan#lysandra
198 notes
·
View notes