RVS_Spinner
fastapi-azure-auth
Our great sponsors
RVS_Spinner | fastapi-azure-auth | |
---|---|---|
7 | 17 | |
20 | 388 | |
- | 3.4% | |
2.6 | 7.8 | |
4 months ago | 26 days ago | |
Swift | Python | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
RVS_Spinner
-
The Dilemma of Icons
I learned the hard way, that iconic UI is probably not the best way to go.
But designers pretty much insist on it, these days, and fun, ensues (and sometimes, FukN sues).
I have found the best UI, is UI that gets out of the way, and doesn't call attention to itself. There's a reason that waitstaff usually wear black.
An example: I designed this really clever Swift UI widget (not SwiftUI)[0].
I keep trying to use it in my projects, and keep removing it, because it's too "in your face."
[0] https://github.com/RiftValleySoftware/RVS_Spinner
-
How to Write a Great Readme
I generally have a “What Problem Does This Solve?” section in my READMEs.
https://github.com/LittleGreenViper/LGV_TZ_Lookup#what-probl...
https://github.com/LittleGreenViper/LGV_MeetingServer#what-p...
https://github.com/RiftValleySoftware/RVS_Spinner#what-probl...
https://github.com/RiftValleySoftware/RVS_BlueThoth#what-pro...
https://github.com/RiftValleySoftware/RVS_PersistentPrefs#wh...
etc.
-
Ask HN: How to get developers and UI designers to work well together
I have had quite a bit of experience with this.
I'm primarily a native Apple application developer, but have done some backend stuff, as well. I have designed numerous Web sites, but I am not a particularly skilled Web designer.
I was, in the days of yore, an artist. I have also taken numerous design and usability course, from the likes of NNG (Nielsen-Norman Group).
I have designed a bunch of fancy widgets[0 - 4]. I actually use very few of them, because they are too intrusive.
I am in the "refining UX" stage of an iOS app that I've been developing for the last year and a half, or so. I'm working with designers and testers, to clean up the information architecture, interaction, usability, aesthetic design, and accessibility.
For me, the most valuable technique, has been rapid, high-quality prototyping. I have been abusing Apple's TestFlight[5] beta release system, and have been using it to make regular (usually, a couple a day) releases to the rest of the team, who are mostly non-tech people. I've made over 600 releases. The first release was made less than a month after first code submission.
The way I use it, is that I run what I call "constant beta." The app is always at "ship" Quality, even if incomplete. This means that the code people get, is fully operational, for the currently developed feature set.
This has the advantage of constant vetting by Apple. They don't test TestFlight to the same level as the App Store, but they look for things like unsupported API usage, code signing issues, and obvious quality issues (like crashes). In at least one case, their testing found a crash that I missed.
Once the first release for a version has been vetted (takes a day or so), subsequent build releases, within that version are approved almost immediately, so I get quick turnaround.
If the testers encounter crashes, I get a fairly useless report. If I use a Ouija board, I can often figure out the general part of the application affected.
With this workflow, we can have a highly iterative process, with aesthetics, usability, and general UX, being tested, almost from the start.
I'm pretty good at interpreting designs. I can accept Figma, Photoshop, Sketch, Illustrator, Napkin Sketch, or Hand-Wavy Verbal Description, and turn it into UX. I usually have something for the designers to try out, within minutes.
Most of the actual code assets are generated via Illustrator, and I will often redesign raster art, into vector.
The designers and non-tech stakeholders seem to like it.
WFM. YMMV.
[0] https://github.com/RiftValleySoftware/RVS_Spinner
[1] https://github.com/RiftValleySoftware/RVS_MaskButton
[2] https://github.com/RiftValleySoftware/RVS_Checkbox
[3] https://github.com/RiftValleySoftware/RVS_RetroLEDDisplay
[4] https://github.com/RiftValleySoftware/RVS_AutofillTextField
[5] https://developer.apple.com/testflight/
-
Most of my work is of extremely high Quality. It's designed for serious developers (like me), that are interested in bottom-to-top native development. It's actually surprising how few people do that.
He's talking about this spinner apparently https://github.com/RiftValleySoftware/RVS_Spinner
- Tips for Making a Popular Open-Source Project in 2021 [Ultimate Guide]
-
Software Development Waste
I've become unenamored of the "Measured Human" lifestyle.
This is where everything we do is metered, and our lives become "data-driven."
It does bring results, but I feel there are significant costs; usually difficult to measure.
One of the things that I will do, as I write software, is evaluate the code I'm working on, for reusability.
Often, to make something reusable, I need to avoid optimizing it for a specific application, and "generalize" it.
Most of my little SPM modules were developed this way. If I think it deserves it, I'll stop work on my principal project, and break out the subsystem into its own project and repo. Once I have it standalone, tested, and ready, I will re-integrate it, as an external SPM module.
In more than one instance, I have removed the code from the principal project, because it was not something that would contribute to the main goal.
But I now have this neat little SPM module, ready to be used in other projects. Here's an example of a project that never made it into any of final results, but I think is pretty neat[0].
Some of my modules are basically my "baseline." These are used in everything I do.
Many would consider my workstyle "wasteful," but it works for me.
[0] https://github.com/RiftValleySoftware/RVS_Spinner
-
The True Meaning of Technical Debt
It's an interesting article, and I appreciate the readability (good formatting, images, etc.).
Personally, I am absolutely against any kind of debt. It has served me well, but has also given me a personally humble lifestyle. I also worked for a 100-year-old Japanese corporation that was (and still is) ferociously debt-averse. Personally, I feel that my debt-aversion has been a great asset. I'm not so sure that debt-aversion was as good for the corporation I worked for.
But then, "good" is relative. They are 100 years old. That's pretty badass. They got to be 100 by being risk-averse, and building on a robust foundation. But they are also relatively small. Their aversion to debt meant that competitors passed them by, in Ferraris, while they were chugging along in their trusty Volvo.
Often passing flaming, expensive wrecks...
But I digress. It also made it a huge pain to develop software for these folks. I feel as if there was so much design (that yellow curve), that the software suitability suffered.
I consider tech debt to be anything that we say "We'll deal with that down the road." It's really that simple. It may be high issue counts, inflexible design, usability issues, resource usage, cost to maintain, etc.
The word "debt" has a lot of shame attached to it. When I first got married, we needed to use a significant portion of our wedding presents to pay off the credit card debt that I brought into the relationship. That was something that caused me great shame, and was a principal motivator for my "live humble and debt-free" philosophy, thereafter. I have never carried a balance on credit cards, since. So I have a ridiculously high credit score, but I probably would have a hard time actually borrowing money (so I'm told. I haven't actually tried -the mortgage for my house, and leasing cars has never been an issue).
"Tech debt," as the author states, is also often assumed to be the result of "poor code." There's a lot of really badly-written code out there, but much of it is relatively debt-free, due to being tested, encapsulated, and well-maintained. It wasn't allowed past the velvet rope, until it had cleaned up its act.
I've also shitcanned dependencies that had well-written code, unit tests, eye-candy Web sites, and great presentation, but suffered serious bugs.
Usability and localization are the things that have resulted in a couple of bent-nose guys telling me how it would be a shame if anything would happen to my kneecaps. Usability, in particular, is a killer. I have designed, implemented, then removed, some pretty fancy widgets, because they proved to be nice on paper, but unsuitable to my needs in practice. An example is my RVS_Spinner widget[0]. My RVS_Checkbox widget[1], on the other hand, has proven to be marvelously useful.
When it comes to usability, in my experience, there's absolutely no substitute for actually putting the code out there, and letting people play with it. Early beta-testing is crucial, and I have found that it's also important that the code be full ship-quality; not lash-up-test quality. That's because, if Management likes the demo, it becomes ship code; whether or not I want it to be so. It also means that, if rejected, I toss out ship-quality code. Sometimes, I may keep the code, and polish it up for future use (that's one reason that I have so many small module packages out there).
Localization and security, in my experience, are things that are easy to manage, if baked in from the start, and a fang-toothed nightmare, if added after the fact. So not dealing with those from the start, is an example of "I'll deal with that down the road," that I can live to regret.
Since leaving my last employer, I have been experimenting with what I term "ultra-agile" development techniques. I despise tech debt, so I am trying to figure out how to get "the best of both worlds." The results, so far, have been promising, but my scale is, by necessity, fairly small.
But that's just my experience. YMMV.
[0] https://github.com/RiftValleySoftware/RVS_Spinner
[1] https://github.com/RiftValleySoftware/RVS_Checkbox
fastapi-azure-auth
-
FastUI: Build Better UIs Faster
I'm under the impression that you work for a company that sells services related to FastAPI? https://github.com/Intility/fastapi-azure-auth
I maintain an open source library in my spare time for free, that you are welcome to ignore if you find better alternatives.
- Implement AzureAD in 10 minutes with FastAPI-Azure-Auth - full tutorial in the documentation
-
FastAPI Azure Auth đź”’ Now supports B2C (as well as single- and multi-tenant applications)
The documentation has a full tutorial in “Tiangolo-style”, which means it guided through setting up a project from scratch, and how to configure Azure appregs from scratch.
-
Ask HN: Good Python projects to read for modern Python?
I think, in general, most FastAPI and Pydantic related libraries are heavily typed, use poetry, GitHub pipelines, black, isort, flake8 etc. so if you want to look at the ecosystem around a package I’ll recommend a few here, that has a smaller scope than the huge libraries Pydantic/FastAPI are. All packages listed below has all these things.
FastAPI-Azure-Auth [0] is a library to do authentication and authorization through Azure AD using tokens.
ASGI—Correlation-ID[1] is a package that utilizes contextvars to store information through the asyncio stack, in order to attach correlation/request ID to every log message from a request. Available for Django in [2].
Pydantic-factories [3] is an awesome library to mock data for your pydantic models.
[0] https://github.com/Intility/fastapi-azure-auth
-
OAuth2 authorization with other flows beyond password.
If you want to use an external auth provider, I have written a library called FastAPI-Azure-Auth for authentication and authorization using Azure AD (which is free for something like 10.000 users). The tutorial should get you up and running quickly. Please note that this library is only intended to use for APIs (such as I sing a SPA frontend), so if you use jinja templates or render HTML from FastAPI this might not be the solution for you.
-
FastAPI Azure AD Authentication đź”’ Now supports both single- and multi-tenants applications
Hi! I’m the author of FastAPI-Azure-Auth, a package to handle Azure AD authentication and authorization for your FastAPI APIs. It’s a heavily tested package, supports trio, and the documentation has a full tutorial on how to set up both Azure and FastAPI from scratch.
-
Tips for Making a Popular Open-Source Project in 2021 [Ultimate Guide]
I agree with you. Most my packages are around ~100 stars, and I'm met with a lot of respect and appreciatio.n[1][2]
My library for Correlation-IDs in Django[3] got implemented by AWX, which also was a nice experience![4] I maintain a lot of small packages, and maybe it is the Django/FastAPI community, but "you'll get a load of entitled users" is straight up not true in my experience.
[1] https://github.com/Intility/fastapi-azure-auth/issues/24
-
Show HN: Implement Azure AD auth for your FastAPI
The documentation[1] contains a full tutorial on how to configure Azure AD and FastAPI for both single- and multi-tenant applications. It includes examples on how to lock down your APIs to certain scopes, tenants, roles etc.
[1] https://intility.github.io/fastapi-azure-auth/)
- Azure AD authentication for FastAPI đź”’ Now supports both single- and multi-tenants. Documentation includes a full tutorial on how to set it up from scratch
- Azure AD authentication đź”’ Now supports both single- and multi-tenants, and has a full setup tutorial for both FastAPI and Azure.
What are some alternatives?
asgi-correlation-id - Request ID propagation for ASGI apps
full-stack-fastapi-template - Full stack, modern web application template. Using FastAPI, React, SQLModel, PostgreSQL, Docker, GitHub Actions, automatic HTTPS and more.
newscatcher - Programmatically collect normalized news from (almost) any website.
azure-functions-python-samples - Azure Functions Python Sample Codes. NOTE: The project, hosted in a repository, is no longer actively maintained by its creators or contributors. There won't be any further updates, bug fixes, or support from the original developers in the project.
pygooglenews - If Google News had a Python library
best-of-web-python - 🏆 A ranked list of awesome python libraries for web development. Updated weekly.
tech-debt - Technical debt happens when low code quality slows new developments : you have to pay time interests. TechDebt allows you to quantify and track your technical debt.
uvicorn-gunicorn-fastapi-docker - Docker image with Uvicorn managed by Gunicorn for high-performance FastAPI web applications in Python with performance auto-tuning.
RVS_RetroLEDDisplay - A UIKit Digital Display Module, Crafted to Look Like an Old-Fashioned “Vacuum Fluorescent” Display.
revenut-web - SaaS metrics in a nutshell
Installation - The premier source of truth powering network automation. Open source under Apache 2. Public demo: https://demo.netbox.dev