PGQueuer is a lightweight job queue for Python, built entirely on PostgreSQL. It uses SKIP LOCKED for efficient and safe job processing, with a minimalist design that keeps things simple and performant.
If you’re already using Postgres and want a Python-native way to manage background jobs without adding extra infrastructure, PGQueuer might be worth a look: GitHub - https://github.com/janbjorge/pgqueuer
I actually did try emailing Tim Cook a few months ago, but I got bounce backs. I tried tim@apple.com and timcook@apple.com but the mailer daemons said the addresses weren't registered. It sounds like a crazy thing to do, but I remembered how Steve Jobs would reply to users' emails and read an article where Tim said he set aside time to read users' emails.[0]
This is true not just for analytics but pretty much all features.
Imagine you are a great speaker and instructor and have an audience. Right now you GIFT it to YouTube, Twitter, etc. and they monetize it for you, give you a tiny percentage, and even constantly direct your audience to competitors and other distractions. In fact YouTube even sells an option to advertise your videos on your competitor’s videos!
I say — opt out. Run your own everything! Your own community software (instead of Discord). Your own videoconferencing, livestreaming, chats, presentations, gated content, accept payments with crypto in addition to PaymentRequest. It’s hard to build an open-source alternative that is good enough (no, Mastodon and Bluesky aren’t — yet).
Which is why (shameless plug warning) I spent 12 years and $1 million dollars with my team to build it. https://github.com/Qbix/Platform
Use it — as 1 of hundreds of features, you can have your own analytics on your own database on your own community site. The other features are here: https://qbix.com/features.pdf
PS: Don’t get me wrong. Keep using YouTube to host your content, etc. But relegate it to hosting short form teasers and highlights and testimonials all of which link to your site. People can discover you on the big sites but if they are serious about your long-form content and community they should buy a membership on YOUR site and have a direct relationship — then deplatforming or coersion will be the last of your worries.
Security is not all or nothing.
There are many applications where adding a small bit of friction in the form of compute will stop 99.9% of abusive traffic.
Visual captchas are a plague on the internet, but so is Blockchain mania.
I added FriendlyCaptcha to some of my sites, and stopped 100% of abusive traffic. Open source, user friendly, accessible to people with disabilities.
As Taleb said on Balaji Srinivasan's comment on Fed not communicating about the rate increases earlier. If crypto people feel that the losses are because of Fed's actions, then they should also agree that the profits are because of Fed'a actions.
That was so good I transcribed/transliterated it for my team:
Elon Musk’s Five Steps to Optimize:
- Question the Requirements
- Delete Parts or Processes
- Simplify
- Accelerate
- Automate
Quotes:
You want everyone to be a chief engineer. So, “everyone is a chief engineer” means that people need to understand the system at a high level to know when they are making a bad optimization. Like when we put immense effort into reducing engine mass but hardly any effort into reducing propellant residuals.
All designs are wrong, it’s just a matter of how wrong.
Transcript of Five Steps description:
What I’m trying to have us all implement rigorously is the five step process.
First, make your requirements less dumb. Your requirements are definitely dumb. It does not matter who gave them to you. It’s particularly dangerous if a smart person gave you the requirements because you might not question them enough.
Then, try very hard to delete a part or process. This is actually very important. If you’re not occasionally adding things back in, you’re not deleting enough. The bias tends to be very strongly towards “Let’s add this part or process step in case we need it.” But you can basically make “in case” arguments for so many things. And for a rocket that’s trying to achieve, trying to be the first fully reusable rocket…you have to run at tight margins because if you don’t run tight margins you get nothing to orbit.
Whatever requirement or constraint you have must come with a name, not a department. Because you can’t ask the department, you have to ask a person. And that person who it putting forward the requirement or constraint must take responsibility for that requirement. Otherwise you can have a requirement that basically an intern two years ago randomly came up with off the cuff and they aren’t even at the company any more . . . these things are way more silly than you’d think.
If you’re not adding things back in at least ten percent of the time you’re clearly not deleting enough.
Only at the third step you simplify or optimize. The third step, not the first step. The reason it’s the third step is because its very common, its possibly the most common error of a smart engineer is to optimize something that should not exist. And you say why would people do that? Well, everyone’s been trained in high school and college that you’ve got to answer the question, convergent logic. So you can’t tell a professor “your question is dumb.” You will get a bad grade. You have to answer the question. So everyones basically without knowing it they’ve got a mental straightjacket on. They will work on optimizing the thing that should simply not exist.
Finally you get to step four which is accelerate cycle time. You are moving too slowly, go faster. But don’t go faster until you’ve worked on the other three things first. If you’re digging your grave, don’t dig it faster, stop digging your grave.
There are a large number of effective tactics available, but really you have to pick and choose them based on the niche/budget/funnel position/search intent/search features of a particular query/ect.
Some common example tactics include:
Broken Backlink Building:
Create high quality page, then look for pages that have historically served the same searcher intent and attracted backlinks but are now no longer available and reach out to sites that linked to that and offer them the newer resource to fix their broken link.
Skyscraper technique:
Make a list of similar pages that serve same search intent as a term or topic you are going after, sorted by relevance and links earned. Make a significantly better page, then reach out to webmasters linking to the other resource and suggest your better/more-up-to-date/relevant to readers link as an alternative.
Social Proof Pitch:
Before promoting your content to Journo's and Bloggers, try to get it to the top of a subreddit or the reddit homepage or otherwise demonstrate its popularity on other social networks. Then when you pitch it you can point to it likely being a useful resource. Also works if the thing you got to do well socially is a stub of a story and you offer to write in-depth about it or about an important part of a larger story as a guest post.
Citable elements:
Make otherwise hard-to-link-to pages like landing pages easier to link to by adding relevant citable elements (charts, graphs, facts & figures) that bloggers and journo's may wish to reference.
Unlinked Brand Mentions:
Set up alerts for any time your brand is mentioned. If you see one that isn't a link but a link would be relevant in the context of the article, ask the author to make the mention a link.
HARO / SourceBottle / Reporter Connection:
Make yourself available as a subject matter expert to reporters, and when giving expert quotes, reference deeper explanations in articles already present on your site.
Reverse Guest Post:
Pay or entice industry authority/influencer to write something on your site to attract additional eyeballs to your other content.
Topical Interviews / Industry Round-ups / Guest Speaking ( podcasts, video, conferences):
Go places where relevant audiences already exist and get them interested in hearing more from you.
Get Friendly with Pirates:
Use copyscape or reverse image search to find people who are using your content or images without proper attribution. Instead of sending take-down requests, ask that they credit, with a link the source and or do a cross domain rel canonical to the original content.
And so on, and so forth. Good Search marketers have a wide variety of tactics at their disposal. Great search marketers will only apply the relevant ones rather than trying to offer clients one-size-fits all strategies.
Edit: A lot of these are much easier with the help of some tools like ahrefs, semrush, pitchbox/buzzstream, hunter.io and the like.
As far as a technical book, Data Intensive Applications by Martin Kleppman. This book covers distributed systems as well as databases, data-warehousing, and data-processing.
A lot of tools and patterns you don't see in school that describe how most of the "magic" behind high-powered software we use is implemented.
The blocking thing you can do in two ways. First, put your blocking stuff in another thread and do it there, and when it's done call back into the main thread to tear down the alert.
The other way, to play nice with the event loop, is to do something like:
makemydialog()
Tk.update_idletasks() # process events so that the dialog shows up
do_my_stuff
teardown
If within do_my_stuff you can periodically call update() to process events, it'll give the appearance of being more responsive.
After you get a bit more experience with doing some GUI stuff, and if you want to have a more long-running GUI, it will become more natural to think of initiating everything in response to event handlers, as opposed to the batch model of running your program linearly from top to bottom.
A next generation internal / corporate portal. Everyplace I have worked at had either a really bad implementation of an internal portal or had a bunch of wiki pages clubbed together. It was incredibly difficult to get even basic info, such as where is the conference room, who works in the security team, what is the expense policy, so on a so forth. In my current multi billion dollar company, when I am meeting with someone new, I have to actually go to LinkedIn to understand what they do in the company and in what is their focus area.
If you’re already using Postgres and want a Python-native way to manage background jobs without adding extra infrastructure, PGQueuer might be worth a look: GitHub - https://github.com/janbjorge/pgqueuer