I use Infuse on the Apple TV and it’s great. I’m not sure how the free version of it compares, but they have a lifetime license for it that I believe is about $100. Definitely worth it if you have a large variety of media and frequently watch on the Apple TV specifically.
HN user
clepto
I see a lot of people mentioning Pydantic here, but you should take a look into TypedDict. It provides a type structure ontop of a plain dictionary, and sounds like exactly what you’d want, and is a built-in that you don’t need a dependency for.
Mypy for example can also see the types of the dictionary are supposed to be when you use it just like a normal dictionary.
I once had a VPN utility that HAD to be closed with a Keyboard Interrupt in order for it to shut-off properly, so my systemd setup for it didn’t work. I ended up making bash aliases for tmux commands to run it and send the keyboard interrupt signal into it to stop it. I’m sure there was a way to do this with systemd, but tmux was easy, if a bit jank.
One problem I have with switching exclusively to Yubikeys(or similar) entirely with no other 2FA option, is the lack of support in embedded browsers.
I’m not entirely sure what the support for this is like on Windows or some Linux systems, but for example on MacOS, if an application authenticates with SSO or something in an embedded browser window(one example would be like Cisco AnyConnect, but there are plenty of others. zScaler did recently update their MacOS client to authenticate inside a real full browser though so that’s nice), most every application I’ve come across uses the stripped down version of WebKit in these that doesn’t support FIDO2 or security keys at all, so I’m forced to use some other option like an authenticator app.
This is perhaps less of a problem depending on what types of auth your IDP supports, but for example with Microsoft it’s either Phone Call or SMS, their Authenticator app, or FIDO2.
I’m arguing there’s not a benefit, it’s just the service I have to use for reasons outside of my control.
Throughout my company’s pursuit of moving everything under the sun into AWS I have done my best to keep everything able to be migrated, we have some systems which are just, simply going to have to be completely rebuilt if we ever needed to move them off of AWS, because there is not a single component of the system that doesn’t rely on some kind of vendor lock-in system AWS provides.
I aim to keep everything I’m working on using the simplest services possible, essentially treating AWS like it’s Digital Ocean or Linode with a stupidly complex control panel. This way if we need to migrate, as long as someone can hand me a Linux VM and maybe an S3 interface we can do it.
I really just have trouble believing that everyone using Kubernetes and a bunch of infrastructure as code is truly benefiting from it. Linux sysadmin isn’t hard. Get a big server with an AMD Epyc or two and a bunch of RAM, put it in a datacenter colo, and maybe do that twice for redundancy and I almost guarantee you it can take you at least close to 9 figures revenue.
If at that point it’s not enough, congratulations you have the money to figure it out. If it’s not enough to get you to that point, perhaps you need to re-think your engineering philosophy(for example, stop putting 100 data constraints per endpoint in your python API when you have zero Postgres utilization beyond basic tables and indexes).
If you still really genuinely can’t make that setup work, then congratulations you are in the 10%(maybe) of companies that actually need everything k8s or “cloud native” solutions offer.
I would like to note that given these opinions, I do realize there are problems that need the flexibility of a platform like AWS, one that comes to mind is video game servers needing to serve very close to a high number of geographic areas for latency concerns.
Are smaller plugins like this potentially an easy place for first time contributors to work in?
My Rust skills are certainly very lacking but if there is some big list of arbitrary flake8 plugins that there is a desire to have ported, that sounds like it could be a relatively easy place to get one’s feet wet.
I maintain a few open source libraries and we have recently switched to Ruff from Flake8 exclusively because of the lack of pyproject.toml support.
These are relatively speaking small codebases, and the speed improvements really don’t make a difference for us, but with trying to get our own projects in line with current standards flake8’s refusal to support it was the final nail in the coffin.
I think the point was reasonable when pyproject.toml first came about and parsing it was a bit more of a Wild West, I can certainly understand the unwillingness to try and support it then. Now with Python itself having toml support in the standard library, and every other major tool standardizing on it, not to mention TOML being the de-facto config file for Rust projects. It just seems like a bizarre hill to die on to me now.
It’s not as if the work hasn’t been done, there are forks of flake8 with pyproject.toml support, but as far I’m aware multiple PRs with support for it have been denied.
They tried to setup a meeting to go over it but no one was able to join because Teams was broken
I used to be really involved in RuneScape private server development in the early to mid 2010’s. It is to this day some of the most enjoyable programming I’ve done. The challenge presented by reverse engineering an obfuscated client and building a server framework off of that works almost like a puzzle game.
There were a lot of really talented developers in the space, but unfortunately the predatory donation systems and toxic culture between different servers/projects generally caused the good developers to move away from the community(or be just outright banned from community forums for no sane reason). It’s really nice to see a project in this space building a strong community with good open source culture.
I didn’t see on the website anywhere, but I’m curious if Jagex has given them any kind of permission for distributing the copyrighted assets/client? They may not care since it is focused on very old versions that Jagex themselves don’t even have or intend to profit from ever, but it would be cool to see them actually endorse a community project like this.
I work on a Python game engine called Arcade[1] and other projects within it's Github organization such as pytiled-parser. We also help to drive continued development and improvement within Pyglet[2]. Recently, my efforts have been focused on creating a version which can be run in web browsers by using Pyodide and WebGL[3], though that is still fairly early stages.
Arcade's primary focus is on being an educational tool for beginner programmers, so my hope is that with browser compatibility we can lower the barrier to entry further and make it more accessible and easy to get started with. In a similar vein to the goals of browser compatibility, we've recently enabled full compatibility with Raspberry Pi through the use of OpenGL ES(and this was largely only possible thanks to the huge amount of work that everyone involved in the Mesa project puts in)
I'm not the original author of Arcade, but I am a current maintainer and put a substantial amount of time into it and it's community.
[1] https://github.com/pythonarcade/arcade [2] - https://github.com/pyglet/pyglet [3] - https://github.com/pythonarcade/arcade-web
Sorry for a late reply, I am generally using ARM based images and I have run into VERY few things that availability was a problem for. I’ve never seen anything based on Debian or Alpine not have ARM variants. The only base image I’ve really ever run into problems with was Cent, and I only had like one thing that used it which I switched over to Debian and it’s not caused any problem for me.
I can definitely see mileage varying depending on the specific things you need to run, but I wasn’t ever really concerned with it because I usually have enough control over the images I use that I can switch something to a different base if need be.
I used a Framework for a while, and I’d definitely give it my vote for the best Linux laptop I’ve used(Also PopOS has the best out of the box support for most laptops in my experience).
This being said, I traded my framework out for an M1 MacBook Pro, and just use OS X now. The reality is my OS X environment is functionally identical to Linux(and this includes very heavy use of Docker, I don’t know what anyone complaining about Docker on M1 are on about) and from a hardware perspective the M1/2 MacBooks just absolutely stomp every competitor for me, this is especially true if you care about battery life.
Disclaimer: I do not daily drive a laptop, and exclusively use a laptop when traveling or otherwise am incapable of using my desktop
As someone who maintains Postgres 9.2, 9.4, and 9.6 databases. No, they do not.
(It is not my will that these databases aren’t on newer versions, I would very much like them to be)
A little over 2 years I came into a very similar situation, however in my situation we had none of the original developers working on it anymore.
At least from a technical perspective, the key to making this manageable is not a re-write, that’s probably the worst approach especially if you have little to no buy-in from above. From a business perspective, a re-write provides little to no benefit and will only be a large cost and time sink, so you will never get buy-in on that anyways.
The key here is slow, progressive improvement. For example, get it in source control, that’s a relatively simple task and provides an endless amount of benefit. The next step which is a bit more complicated, is get a way to run this in a local development environment.
Getting a local environment for this type of situation can certainly be tough, and you have to be prepared to accept what may be considered a “non-optimal” solution for it. Does your code have a bunch of hard coded credentials and URLs that you would accidentally hit 3rd party services or databases from local and cause problems? The answer to that is NOT to try and extract all those things, because that will take a ton of time and you have no test environment. Instead cut the container off from all internet access and add-in a proxy container to it and give it a container it can proxy through for outbound, then you can explicitly control what it can reach and what it can’t, now you can progressively fix the hard coded problems.
Basically the key is to accept that shooting for “ideal” here is a mistake, and you have to sneak the small progressive improvements alongside meeting the business goals that have been set for the team.
In my experience, if you can sneak some simpler but very impactful changes in, then demonstrate how those help deliver on things, it will be easier to get buy in. If you can point to be being able to deliver a feature weeks ahead of previous estimates and attribute it to say having a sane deployment strategy, or a local dev environment, the advantages become clearer from a business perspective. If you say “we need time to fix this” but have no data or concrete examples of how this helps the business, you won’t get buy in.
I made the comment that some of our web portals could run off of a raspberry pi perfectly fine, and I wasn’t necessarily suggesting we go do that, but merely trying to get the point across that we don’t need 700 interweaved AWS systems to do what a single host with Apache + Postgres has been doing fine for years.
I work at a VOIP services provider and we operate multiple brands which are companies we’ve acquired over several years. One thing that has rang true of every company we’ve acquired is that there is typically barely even a way to run one piece locally, let alone the whole thing.
Some of these when I took over there wasn’t even version control, and they were being developed by FTPing files to production server or even editing them live with vim or something. Certainly no reproducible containerization or even VMs to speak of.
I agree completely with you about having a solid development environment. I’ve spent the better part of a year creating such a thing for some of the brands, and it has increased our time to ship features and fixes probably ten fold.
Well I guess I’m not saying it doesn’t ever have a place, it’s nice to have a universal means of communication, but for regular ongoing communication within a given subset of people it is certainly not a great experience.
I can’t imagine actually using SMS, iMessage or not. It’s just an inferior experience to basically any other chat solution.
The only thing I actually use SMS for are things that make me do MFA with it, and even that is a worse experience than the alternatives(I’m not saying you shouldn’t have MFA, just that SMS is inferior to most other approaches).
I as well am very surprised by how many people seem to have had issues with it.
I have used Manjaro and Pop OS on it, and encountered basically 0 issues on either one. The only issue with Pop OS is Gnome’s support for fractional scaling is pretty terrible(at least at the time I tried it).
I use Cinnamon on Manjaro and pretty much everything works flawlessly. The only thing I had any issue with was the fingerprint scanner, though I mostly just gave up on it at the first sign of issue as it wasn’t a feature I really cared about having.
I haven’t had any issues with battery life, and I just carry an Anker portable battery with it so it’s not really a concern anyways, and having that gets me charging for laptop, phone, or anything else that can use USB C power.
Even still, I’ve observed as high as like 8 hours of battery life while being actively used and that’s more than enough for me.
Might be worth noting I don’t primarily use a laptop though. It’s almost exclusively for when I’m out somewhere and an issue comes up or something.
There wasn’t really an aversion to or direct decision to not use Django, it just kind of naturally evolved. We were experimenting with FastAPI in some mock APIs used for test suites and some different projects and decided to incorporate it into a larger project.
The pulling in of other tools happened naturally over time. Perhaps we reinvented the wheel and Django may have saved some time or effort, but ultimately in the end we gained a very deep knowledge of the system we have and the things that make it work, and how those individual pieces might be usable in other projects/scenarios.
A large driver was honestly just that we had no organizational experience in Django, and so there was no one that even would have looked at it and said “Hey we’re just recreating what Django already does”.
At least for my team we went with FastAPI because we have other tools for everything else, and FastAPI is incredibly simple for new members to pick up. We tend to say that we made a “FastAPI application” but in reality FastAPI is only powering the REST interface for interacting with the platform.
We use SQLAlchemy for database interaction, a lot of direct usage of Pydantic, Celery with RabbitMQ/Redis for task processing. FastAPI provides a really lightweight interface to gluing pieces like this together.
I have not used Facebook, Instagram, Twitter, Snapchat, etc etc for the last 10+ years. There wasn’t really an event or a moment where I said “I’m quitting social media”, rather I just sort of faded out of it.
I do browse Reddit and occasionally comment on something, or here on HN, so I still see things like Twitter posts frequently and keep up with things through some of those channels.
When I say I don’t use social media, I mean it directed more towards the kind of posting what I made for dinner so my friends can comment on it use case. I think our society is heavily focused on social media and it’s become an integral part of staying informed and up to date.
For that reason, I do check on certain people’s Twitter from time to time, or look at some replies to a tweet that was linked to from an article or something, what’s troublesome to me is that I can’t do almost any of this without signing up. I have more of a problem with it in regards to Twitter, as that has seemingly become the nearly exclusive place for a lot of prominent figures(including elected officials, high profile CEOs, etc) to give updates. Creating this walled garden feels like an attempt to limit access to information that is intended to be publicly available, and at this point my unwillingness to create an account is stemming more from my disdain for this practice than my desire to “quit social media”.
Might be worth noting, I forgot about this when making my original comment, I wasn't able to get my USB drive for it to boot without disabling secure boot, but secure boot isn't something I care about so it wasn't a problem for me. I've heard it works but I can't comment on the specifics of it.
I just got one of these last weekend(I ordered it in early August) and so far it’s really great. The modular I/O and general mission of the company was what initially sold me on it, but now actually being hands on with it, I definitely feel secure in my decision to get one. I can’t overstate how good these modular ports are.
I also really like that you can bring your own hardware in a lot of cases. For example I had an extra M.2 SSD laying around, so I ordered mine without one and installed it. You can also do this with the RAM, and even the wifi card.
The only thing I’ve disliked about it so far is the arrow keys on the keyboard. Having full size keys for left and right but split keys for up and down feels weird, I would have preferred all full size arrow keys and a small right shift(because let’s be honest, when was the last time you used the right shift key?).
For anyone curious about Linux on it, I’m running Arch and had basically 0 problems specific to the device. It’s my understanding there were some incompatibilities with certain kernel versions before so maybe some of these problems exist in distros like Debian with an older kernel, but I have had no issues.
All in all, it’s just an exciting project and nice to see innovation in the space that isn’t just rounded corners or a sleeker edge or something where they take modularity or performance away for the sake of aesthetics.