I'm very familiar with the stack and the pain of trying to livestream video to a browser. If JPEG screenshots work for your clients, then I would just stick with that.
The problem with wolf, gstreamer, moonlight, $third party, is you need to be familiar with how the underlying stack handles backpressure and error propagation, or else things will just "not work" and you will have no idea why. I've worked on 3 projects in the last 3 years where I started with gstreamer, got up and running - and while things worked in the happy path, the unhappy path was incredibly brittle and painful to debug. All 3 times I opted to just use the lower level libraries myself.
Given all of OPs requirements, I think something like NVIDIA Video Codec SDK to a websocket to MediaSource Extensions.
However, given that even this post seems to be LLM generated, I don't think the author would care to learn about the actual internals. I don't think this is a solution that could be vibe coded.
This is where LLMs shine, where you need to dip your toes into really complex systems but basically just to do one thing with pretty straightforward requirements.
...and apparently waste 3 months doing it wrong thanks to it without doing anything as basic as "maybe fix your bitrate, it's far higher than any gameplay streaming site and that's for video game, stuff with more movement"
The peak of irony, because you know how these people arrived at their 40 Mbit bitrate H264 and their ineffective tinkering with the same in the first place is guaranteed to be some LLMs expert suggestions. As is often the case, because they had no understanding of the really complex system subject matter whatsoever, they were unable to guide the LLM and ended up with .. slop. Which then turned into a slop blog post.
God knows what process led them to do video streaming for showing their AI agent work in the first place. Some fool must have put "I want to see video of the agent working" in.. and well, the LLM obliged!
>As is often the case, because they had no understanding of the really complex system subject matter whatsoever
Something I want to harp on because people keep saying this:
Video streaming is not complicated. Every youtuber and twitch streamer and influencer can manage it. By this I mean the actual act of tweaking your encoding settings to get good quality for low bitrate.
In 3 months with an LLM, they learned less about video streaming than you can learn from a 12 year old's 10 minute youtube video about how to set up Hypercam2
Millions and millions of literal children figured this out.
Keep this in mind next time anyone says LLMs are good for learning new things!
Video Streaming has surprising little overlap with Video Codecs. Once you choose input/output options, then there's little to change about the codec. The vast majority of options available to ffmpeg aren't supported in the browser. Streamers don't have options for precisely the same reason OP doesn't have options - you are limited entirely into what the browser supports.
I've built the exact pipeline OP has done - Video, over TCP, over Websockets, precisely because I had to deliver video to through a corporate firewall. Wolf, Moonlight and maybe even gstreamer just shows they didn't even try to understand what they were doing, and just threw every buzzword into an LLM.
To give you some perspective 40Mbps is an incredible amount of bandwidth. Blu ray is 40mbps. This video, in 8K on Youtube is 20Mbps: https://www.youtube.com/watch?v=1La4QzGeaaQ
>But...Gotta have my vertically shot, short form, ad-laden, misinformation canon!
It's incredible that people will say this with a straight face, then export Instagram to the rest of the world and proceed to cry "Free Speech" when Meta bans come on the table.
It's incredibly hard for me to square if the concern is "ByteDance is the bigger threat to the US" or if the concern is "ByteDance is the bigger threat to my stock portfolio"
> incredible that people will say this with a straight face, then export Instagram to the rest of the world and proceed to cry "Free Speech" when Meta bans come on the table
This sounds like a straw man.
I worked on the TikTok ban bill. I'm also a huge sceptic of our own social media companies.
The difference is that ByteDance's product is not the same here as in the homeland. It's designed to be a misinformation canon only outside of China. Instagram is a misinformation canon everywhere. Did I say I thought Instagram shouldn't be burned to the ground just the same? No. But I'd rather start with foreign nationals if you really have to know. We're not getting rid of Instagram anytime soon, but one less platform is a win regardless.
Unironically - I agree. You should be outsourcing things that aren't your core competency. I think many people on this forum have a certain pride about doing this manually, but to me it wouldn't make sense in any other context.
Could you imagine accountants arguing that you shouldn't use a service like Paychex or Gusto and just run payroll manually? After all it's cheaper! Just spend a week tracking taxes, benefits and signing checks.
Self-hosting, to me, doesn't make sense unless you are 1.) doing something not offered by the cloud or a pathological use case 2.) or running a hobby project or 3.) you are in maintaince mode on the product. Otherwise your time is better spent on your core product - and if it isn't, you probably aren't busy enough. If the cost of your RDS cluster is so expensive relative to your traffic, you probably aren't charging enough or your business economics really don't make sense.
I've managed large database clusters (MySQL, Cassandra) on bare metal hardware in managed colo in the past. I'm well aware of the performance thats being left on the table and what the cost difference is. For the vast majority of businesses, optimizing for self hosting doesn't make sense, especially if you don't have PMF. For a company like 37signals, sure, product velocity probably is very high, and you have engineering cycles to spare. But if you aren't profitable, self hosting won't make you profitable, and your time is better spent elsewhere.
You can outsource everything, but outsourcing critical parts of the company may also put the existence of the company in the hand of a third-party. Is that an acceptable risk?
Control and risk management cost money, be that by self hosting or contracts. At some point it is cheaper to buy the competence and make it part of the company rather than outsource it.
I think you and I simply disagree about your database being a core/critical part of your stack. I believe RDS is good enough for most people, and the only advantage you would have in self hosting is shaving 33% off your instance bill. I'd probably go a step further and argue that Neon/CockroachDB Serverless is good enough for most people.
I'm totally with you on the core vs. context question, but you're missing the nuance here.
Postgres's operations is part of the core of the business. It's not a payroll management service where you should comparison shop once the contract comes up for renewal and haggle on price. Once Postgres is the database for your core systems of record, you are not switching away from it. The closest analog is how difficult it is/was for anybody who built a business on top of an Oracle database, to switch away from Oracle. But Postgres is free ^_^
The question at heart here is whether the host for Postgres is context or core. There are a lot of vendors for Postgres hosting: AWS RDS and CrunchyData and PlanetScale etc. And if you make a conscious choice to outsource this bit of context, you should be signing yearly-ish contracts with support agreements and re-evaluating every year and haggling on price. If your business works on top of a small database with not-intense access needs, and can handle downtime or maintenance windows sometimes, there's a really good argument for treating it that way.
But there's also an argument that your Postgres host is core to your business as well, because if your Postgres host screws up, your customers feel it, and it can affect your bottom line. If your Postgres host didn't react in time to your quick need for scaling, or tuning Postgres settings (that a Postgres host refuses to expose) could make a material impact on either customer experience or financial bottom-line, that is indeed core to your business. That simply isn't a factor when picking a payroll processor.
Ignoring the fact that the assumption that you will automatically have as good or better uptime than a cloud provider, I just feel like you just simply aren't being thoughtful enough with the comparison. Like in what world is payroll not as important as your DBMS - if you can't pay people you don't have a business!
If your payroll processor screws up and you can't pay your employees or contractors, that can also affect your bottom line. This isn't a hypothetical - this is a real thing that happened to companies that used Rippling.
If your payroll processor screws up and you end up owing tens of thousands to ex-employees because they didn't accrue vacation days correctly, that can squeeze your business. These are real things I've seen happen.
Despite these real issues that have jammed up businesses before rarely do people suggest moving payroll in-house. Many companies treat Payroll like cloud, with no need for multi-year contracts, Gusto lets you sign up monthly with a credit card and you can easily switch to rippling or paychex.
What I imagine is you are innately aware of how a DBMS can screw up, but not how complex payroll can get. So in your world view payroll is a solved problem to be outsourced, but DBMS is not.
To me, the question isn't whether or not my cloud provider is going to have perfect uptime. The assumption that you will achieve better uptime and operations than cloud is pure hubris; it's certainly possible, but there is nothing inherent about self-hosting that makes it more resilient. The question is your use case differentiated enough where something like RDS doesn't make sense. If it's not, your time is better spent focused on your business - not setting up dead man switches to ensure your database backup cron is running.
> Like in what world is payroll not as important as your DBMS - if you can't pay people you don't have a business!
Most employees, contractors, and vendors are surprisingly forgiving of one-time screw-ups. Hell, even the employees who are most likely to care the most about a safe, reliable paycheck - those who work for the US federal government - weren't paid during the recent shutdown, and not for the first time, and still there wasn't some massive wave of resignations across the civil service. If your payroll processor screws up that badly, you fire them and switch processors.
If your DBMS isn't working, your SaaS isn't working. Your SLA starts getting fucked and your largest customers are using that SLA as reason to stop payments. Your revenue is fucked.
Don't get me wrong, having working payroll is pretty important. But it's not actually critical the way the DBMS is, and if it was, then yeah you'd see more companies run it in-house.
>Most employees, contractors, and vendors are surprisingly forgiving of one-time screw-ups.
If you are a new business that isn't true. Your comparison to the US federal government is not apt at all - the USG is one of the longest running, stable organizations in the country, people will have plenty of patience for the USG, but they wont have it for your incorporated-last-month business.
Secondly I could make the same argument for AWS. AWS has plenty of downtime - way more than the USG has shutdowns, and there are never been a massive wave of customers off of AWS.
Finally, as a small business, if your payroll gets fucked, your largest assets will use that to walk out the door! The second you miss payroll is the second your employees start seeing the writing on the wall, its very hard to recover moral after that. Imagine being Uber and not paying drivers on time, they will simply drive more often with a competitor.
That said, I still see the parallels with the hypothetical "Accountant forums". The subject matter experts believe their shiny toy is the most critical to the business and the other parts aren't. Replace "US federal government" with "Amazon Web Services", and you will have your "Accountant forums" poster arguing why payroll should be done in house and SLA doesn't matter.
As I understand it, this is too brittle. I think this is trivially defeated if someone adds an append to your code:
func do_another_important_thing(key []byte) []byte {
newKey := append(key, 0x0, 0x1) // this might make a copy!
return newKey
}
key := make([]byte, 32)
defer scramble(&key)
do_another_important_thing(key)
// do all the secret stuff
Because of the copy that append might do, you now have 2 copies of the key in data, but you only scramble one. There are many functions that might make a copy of the data given that you don't manually manage memory in Go. And if you are writing an open source library that might have dozens of authors, it's better for the language to provide a guarantee, rather than hope that a developer that probably isn't born yet will remember not to call an "insecure" function.
It's not so much that it's a catch 22, its that there's no financial incentive for them. TVs are a low margin item already, and Samsung/LG get their margin by being brand names and advertising fancy features.
I doubt they would meaningfully save money over investing in DP, and the opportunity cost is greater for them to spend that money on the next "Frame" TV or whatever.
LG, Samsung and Sony are the only actual panel manufacturers and they probably bake those license fees into the panels they sell back to HDMI Forum.
May be, but by not solving the problem, they become part of the problem, even if they aren't part of HDMI cartel directly. So it's their fault too problems like above happen.
>If you choose lower-level languages like Rust, your team will spend weeks fighting the borrow checker, asynchronicity, and difficult syntax.
It's interesting the author decides to describe Rust in this way, but then spends the next 90% of the article lambasting the Go authors for having the restraint to not turn Go into Rust.
Arenas are simple to write, and if you need one, there are a lot of implementations available. If you want the language to give you complete flexibility on memory allocations then Go is the wrong language to use. Rust and Zig are right there, you pay upfront from that power with "difficult syntax".
Every once in a blue moon I'll meet someone who can trace the genesis of their career to neopets. I learned to code from neopets. It started from html, then I fell into a cheats crowd, where I learned Visual Basic (some of the best early cheats were in Visual Basic).
Then one day, a guy coded a program in Python. It was only one with a "modern" style (it used Window XP styles, while most VB6 programs looked like windows 98 programs), and it used threads so it could watch multiple stores instead of having to manage multiple processes.
I must have been 12-13, and I was completely floored with it. I was convinced everyone programming in VB6 was wrong and the future was Python. I eventually self taught myself Python just to write my own cheats, which I eventually sold to others for millions of neopoints. Then my account got frozen and I moved on to other games.
Similar story to me. I was big into games and game design as a kid and was already doing some light modding of games but only a little programming. I experimented with using a memory editor to cheat on the Flash games in 6th grade, which promptly led to my account being banned. I was devastated and wanted revenge and swore I would write my own, sophisticated autobuyer bot. By mid 7th grade, I finished my project. I wrote it in REALBasic (was on a Mac). I implemented a barebones HTTP socket and cookie jar on top of the raw TCP socket provided by the language and learned to do all of that by sniffing my own network traffic and reading parts of the RFCs. I wrote rudimentary String parsing functions to parse the HTML results since I don't know Regex, and I also defeated the shop CAPTCHAs using a novel approach I have never seen anyone else use to this day. My bot worked phenomenally.
Fast forward to college, I re-implemented my bot as a pet project to learn Python. This time it was much better and included automatic selling of loot, automatic auctioning with feedback based pricing algorithms, and multiple account coordination for using a command and control server. I'm pretty sure I was the most sophisticated botter on the platform at the time. I had a very roundabout way to convert the loot into USD and was making around 7-10$/day completely passively.
Out of college I interviewed at a malware reverse engineering company. When you pass the interviews, they ask you to give a presentation before you get your offer. I chose to do a presentation about the bot (it was interesting from a security perspective)... big mistake. The VP of engineering was suddenly "pulled in to something" and I went home without an offer.
I’m in my mid-30’s now. In high school I learned HTML because I really wanted to customize the styling of my Guild (I think that’s what it was called).
And then built a neopets fan site and forum which taught me basic business (trading links with other fan sites, hiring/managing forum moderators, and eventually sold the fan site during junior year).
The will to customize my MySpace profile was also a driver for learning HTML.
I sometimes think about this in the context of today’s highly controlled platforms that simply don’t make space for users to customize or do anything outside the platform directly.
> in the context of today’s highly controlled platforms that simply don’t make space for users to customize or do anything outside the platform directly
There is Roblox, which is popular with kids and lets them upload minigames written in Lua.
I followed this exact same path. Started with HTML for guilds, learning to slice PSDs and ended with learning VB6 to develop auto buyers / adopters :D Slopdog forums was my inspiration for using VB I think?
I hung out with the neopets kids in school who were doing html stuff. I never really got into neopets myself but some of them were really into geocities which I totally clicked with. Some of my friends were artsy so I made pages for webcomics and CYOA games (with hand drawn graphics to accompany). Those friends ended up getting careers in the arts while I ended up as a computer/electrical engineer.
I'll jump in too. Also started coding with HTML in Neopets and then joined the middle school's programming club! We were playing around with C++ and Visual Basic. Love seeing these updates!
This is exactly how I got my start. Neocodex was the forum where I learned how to program, and slicing up images in CS2 to show up on a Tripod site was how I learned web development.
this is how i got my start in programming, eventually leading to working in finance and now in gamedev for a AAA. many of the programmers i worked with as a teenager to build neopets automations are in similar places. i have so many stories and even met my ex wife of ten years through the community!
oh and i regret all the duping glitches i found and exposed and stuff im sorry
Real talk, call me "old" - but it's like "Oh we get to be put on some list?". TLDR: They ruined the fucking internet. The internet sucks now, all those great "magical" experiences - they fucked it up. For all of us. Everyone.
You know there is one way to say a big "fuck you" to all this shit? I mean at least an idea I had?
What if you had physical "RSA" keys, you were part of groups, had to join, etc. Something like this...whatever. And you know how you use the internet? You literally send use data encrypted blogs in blobs. Keys change, ciphers change. Think 56k internet, but not "slow" - just blobbed/packageized.
In theory, you can basically just wrap the whole internet like a privatized radio relay - just much much faster and, global. The internet becomes only a packet relayer. Custom cryptogrphically rotated black box to anyone except keys in theory. Try and surveil that fuck shit mother fuckers.
The internet could at least fucking exist in some form. You could even have this "public" type AI-VERFIER "resigned/hashed packet" that uses some open source community checker that can be this trust based "thing"...auditble that is basically saying there "there is no weird images, etc...or there is no whatever here" and this can be signed. ISP network layer would see something like:
[VERIFIED CHECK]
fsdf34234ASDFsdfDataBLOB
Or go "naked"
fuckyou_fsdf34234ASDFsdfDataBLOB
In theory, it would at least try and prevent the NSA/INSERT_GOV_TER_ORG_HERE from at least respectfully trying to decrypt the "risky" packets. Blah blah blah. You know, just being kind to everyone I guess. Thanks.
I don't know...just an idea.
EDIT: There are of course other solutions related to end devices and comprised devices. The "simple" solution is offline, air gapped stable enviroments that handle all your decrypted / encrypted devices.
There there are network things, etc. All details - blah blah. But I am just talking shit. Someone should build this.
Similar technologies have been built and reinvented over and over again.
There is a critical mass of users needed to make this "social network", and turns out (big surprise) most people don't want or care about this technology.
I know. A man can dream you know? No one cares about anything. Well maybe they do, they care about "stuff". Just give them stuff... #congratulations_you_just_reinvitedx1000_INSERT_GOOD_BAD_IDEA_HERE
But thanks for the reply. At least someone has a fucking heartbeat and is real. lol
Serious question though, from a purely data analytical question - are you an incredible programmer? Like legit. Please tell me you're a badass. You gotta be? Real talk, rate yourself. I demand it.
You could say the same about anything, but cheating in multiplayer ruins the experience for others. Cheating in single-player? Great, we call those mods, but in a multiplayer game I'm happy to think of OP as a piece of shit for not just cheating but writing the cheats for others.
Even if it's just indirect competition, by giving yourself an advantage compared to others you affect what others percieve as a healthy benchmark for performance.
"Just neopets" isn't an excuse, you could say the same for any online game.
Cheaters even wreck just the scoreboards for some games. You might think a fake score submissions is about the least damaging thing since it doesn't directly effect others gameplay at all, but it still ruins the experience and affects the community's ability to compare and share genuine runs.
Being banned eventually is hardly a punishment, doubly so if they ever sold-on their ill-gotten gains for real money.
There wasn't a hint of contrition in OP's post, and the downvotes I'm receiving suggests that the culture of entitlement is so great now that cheating in multiplayer isn't even seen as bad anymore.
I hope you share that same energy for people doing high frequency trading or writing advertisement engines. Cheating in neopets is probably at the lowest end of harm caused by cheating and also hurts neopets devs more than it hurts other players.
I think it's reading into a lot into OPs comment. A lot of people look somewhat fondly on dumb/slightly illegal things they did as a teen, even if they would never do such a thing as an adult (nor encourage it in current teens). The downvotes you are getting are likely due to guidelines violations (be kind, curious, not snarky, etc) not due to your actual viewpoint.
>And yet, from the App Store’s point of view, you can build a game with guns and cartoon violence and happily ship it to kids, while tracking your own body needs a 16+ “mature themes” label.
This really isn't an Apple problem, but an American culture problem. This is such a common trope in many forms of media:
* You can sell games with gratuitous amount of gore, but implied clothed intercourse gets you pulled from stores.
* You can get away with a lot of violence and possible sneak a PG-13 rating, but a single boob gets you rated R.
Well, no, because Apple categorizes all of these things separately. The world is not subject to MPAA notions about "Sex" or "Violence" -- rather, Apple splits those up into "does this app have any sex" or "does this app have any violence"
The author has a problem because what he is selling is an app to track sexual activity in explicit detail, which is a huge privacy invasion, and Apple's normal screens are rather good at noticing that
The author of this post is trying to sell an app that is not explicitly prohibited by Apple guidelines, but it is offensive to pretty much anyone who looks at it
> which is a huge privacy invasion, and Apple's normal screens are rather good at noticing that
Do you have any better evidence? Apple's App Store screens are notoriously useless; famously, Lastpass had to tell people to stop downloading their app from the App Store after Apple's "normal screen" replaced their app with a trojan horse: https://blog.lastpass.com/posts/warning-fraudulent-app-imper...
As I understand it, whatever it costs, is strictly less than the market dynamics of providing the ride today.
There is probably some market equilibrium where they could reasonably provide <5 minute pickups for waymo users that would both cover the cost of the automobile and still be less than the price of an uber today.
The problem with wolf, gstreamer, moonlight, $third party, is you need to be familiar with how the underlying stack handles backpressure and error propagation, or else things will just "not work" and you will have no idea why. I've worked on 3 projects in the last 3 years where I started with gstreamer, got up and running - and while things worked in the happy path, the unhappy path was incredibly brittle and painful to debug. All 3 times I opted to just use the lower level libraries myself.
Given all of OPs requirements, I think something like NVIDIA Video Codec SDK to a websocket to MediaSource Extensions.
However, given that even this post seems to be LLM generated, I don't think the author would care to learn about the actual internals. I don't think this is a solution that could be vibe coded.
reply