... is interesting. But since it returns the match in a submatch I would say the \K approach is better:
(?:not_this.*?)*\Kbut_this
Because usually when you try hard to accomplish something with a regex, you do not have the luxury to say "And then please disregard the match and look at the submatch instead".
That doesn't work. `(?:"Tarzan".*?)*\KTarzan` should behave identically without `\K`, and it will match `"Tarzan" "Tarzan"` because the ungreedy quantifier ? still allows backtracking (it just changes the search order). You want the possessive quantifier + instead; `not_this|(but_this)` is equivalent because regexp engines will not look back into once matched string.
Unfortunately, this will only install the core library without the demo spreadsheet files. Even if you were to add the extras modifier "[demo]", it would only install additional dependencies and not the actual demo code. To use the demo you'll need to clone and follow instructions in my other comment.
Once you can do `pyenv versions`, you should see `system` is your only python.
You can run `pyenv install 3.9` to get the latest.
Now that you're running the latest 3.9, the goal is to install each of the dependencies of this project, one by one.
Step one: try to run the project. It will fail with an error.
Step two: install the library that it says is missing.
Step three: Go to step one.
I've followed this algorithm so many times that I can't count anymore how often it's saved me. Forget poetry, and forget a requirements.txt file. This is the only way I do it on my local laptop. (And I usually use the regular system python, but, yours seems to be in a suspect state.)
If after all of this you still get errors, then I'm truly sorry; god be with you, you're not alone, but I'm not sure anyone can help. It's definitely not the fault of this project that pillow can't be installed. :)
That's very strange. The core library uses pure python and demo uses pyqt5, pandas, matplotlib and pillow. I wasn't aware that any of those projects (or sub projects) depend on Rust. I'm running on Linux / Ubuntu 20.04 with Python 3.8. How about you?
(The pip command I just gave should only install the core library and so only depends on base python).
Yes you're right! There was something wrong with poetry build system. When I initialised the poetry project roughly a year ago it placed an unpinned dependency (for the build part) for cryptography which recently switched to rust. I'm not sure why poetry hadn't vendorized that package or, at least, pinned the version. In any case, I updated the repo's pyproject.toml to use poetry's new build settings. Then, to check the install works in docker I switched to python's base images and did the following:
Note that I had to force cppy to install using pip. At some point I'll refresh the poetry lock file to fix these glitches that seem to appear as an untouched project ages.
The contract was already under protest, this decision just means another piggy will get to belly up to the trough. The main value of the JEDI contract was the validation of MS as a cloud provider- contrast that with Oracle, who was dismissed as an over-expensive joke.
The future of the JEDI cloud program was thrown into doubt earlier this year when Pentagon officials said they may scrap the contract if the U.S. Court of Federal Claims declined to dismiss Amazon’s claims that political interference from former President Donald Trump cost the company the lucrative cloud deal. In April, Judge Patricia Campbell-Smith rejected requests by the government and Microsoft to dismiss part of Amazon’s lawsuit, allowing the litigation to continue.
I prefer containers over pyenv and poetry. This way not only python version and dependencies are "in one place" but also all other stuff that comes along with a new project. The OS, the database etc.
The one thing I dislike about Python projects is that Python plasters the compile cache files all over the place. Is there a reason to change that? Currently I use the -B flag for all my scripts. But that makes it slow. I wish Python would have an option to perform like PHP and keep cached compilations in memory instead on disk. Or at least somewhere in /tmp/.
Pip is fine, it depends on your goals. I've found requirements.txt less enjoyable to maintain for several reasons – you need to separate dev, test dependencies on your own time, there's no notion of a lockfile for transitive dependencies (`pip freeze` notably doesn't separate actual dependencies from transitive dependencies). pip is also darn slow at installing dependencies once you hit a certain scale, and poetry outperforms it pretty substantially.
Poetry does I expect a package manager to do, and does it well, especially when working with a team of developers on an application versus individually. There's not a compelling reason for me to use pip directly as a less functional alternative.
Bit rot, "it works on my machine"-style issues, cache misses on dependency installation (which can really bloat deploy times in deploy pipelines by busting Docker caches across machines, too). Can be a security issue if a vulnerable library version is pushed and one installs it as a consequence of having non-locked dependencies, especially in python where package install scripts have a lot of power.
Lock files help solve for these. You can build software without solving them, but it makes my life easier.
All of this. Plus picking up a legacy project from someone with a giant requirements file and then trying to pick through and work out what we actually want locked and what's been installed by something deep in a dependency tree is a nightmare. Even if you don't use poetry for your own sake, use it for everyone else's.
Good question! From a template repo commit at work[1]:
Advantages:
- Separates development and production dependencies.
- The dependency version is specified separately from the lock file. In
practice this means that the version in pyproject.toml generally only
needs to be set to anything other than asterisk if and when it becomes
necessary to use a specific version range.
- The lock file includes SHA-256 checksums by default, and these are
checked during installation.
Disadvantages:
- More complex configuration than Pip.
- Python package managers come and go, and this one is likely going to
suffer the same fate eventually.
- Introduces poetry.toml simply to specify that the virtualenv should be
in the project directory. The default is to put virtualenvs in
~/.poetry, which is a non-standard location and therefore might
interfere with typical IDE setups, mounting the virtualenv in containers
or VMs, and the like.
> The dependency version is specified separately from the lock file.
That. The simple fact that a Pip file mixes both the packages you want and the dependencies required by this package, is a valid reason to switch to Poetry IMO.
Yeah, I don't think I've created a single venv in the last 2 years. I don't need them for basic stuff (e.g. a quick script) and for anything more I'd rather have a container so I can deal with all dependencies in one place and use it elsewhere quicker if I need to.
The link describes the attack vector. pipenv locks the dependencies using hash. if you company has my-company-py-lib then pip could install public library that pretends to be internal.
A Docker container starts in two seconds or so. And gives me everything I need. So no need to dabble with a VM.
There is not much overhead in running a project in a container. The project has a setup file that turns a fresh Debian 10 into whatever environment it needs. And thats it. Run that setup script in your Dockerfile to create a container and you are all set. Want to run the project in a VM or on bare metal? Just install Debian 10, run the setup script and you all set.
> Also at what point do people just realize that all of this overhead is a gigantic waste of time and just use a better language?
Probably some time shortly after your developer time costs less than your cloud compute time. Until you hit that point (if ever) there are few options as cost-effective as Python.
In any language ever if you use non-vendored shared libs you will hit this problem. Certainly not specific to Python, in fact the reason package managers on *nix are necessary (and not just a nice to have) is because of this.
Yeah to be honest if you need containers to make a project reproducible this is just a sign of failure. You're basically saying you need to encapsulate the entire system for your code to run correctly.
Loads of tools have external dependencies that are hard dependencies. And library search paths is my machine vary from those on prod... I could go on, but I'm not sure I understand why using a container to manage all that is a failure?
There are plenty of reasons why you might want to containerize a project. If you have a lot of system dependencies, for example, you might want to consider including a Dockerfile in your project to make it portable.
However what makes Python a failure is that people feel they need this to dependably run a python program which only has pure-python dependencies.
Compare this to a language like Rust, or the NPM ecosystem. In those cases, the tools have managed to dependably encapsulate projects such that you only need the package manager to make a project fully repeatable.
With either of those ecosystems, there's basically one system dependency, and you can find any repository online and dependably do `git clone ...` then `cargo build` etc. to make it work. With Python, you effectively have to reproduce the original developer's system, and that is a failure.
Huh? Either something is really weird about your env or we have different ideas about what counts as a pure Python package.
Because if you don’t rely on Python packages with extensions that farm out to external libs it’s as easy as git clone, pyenv virtualenv, pip install -r, and python -m build.
The think that makes this worse than other ecosystems is:
1. virtualenv shouldn't be necessary. This is more or less the same concept as containerization. This is only needed because python has a fractured ecosystem, and setting up your environment for one project can break another.
2. you also have to know which environment encapsulation and package management solution the library author is using - this is not standardized
1. Virtualenv is essentially the same as node_modules, yet everyone rants and raves and loves that. And the kind of breakage you're talking about is astronomically rare in my experience.
2. No you don't - what makes you say that?
virtualenv is so much less user friendly than npm. Like why do I have to run a `source` command to make virtualenv work? I don't use either often, but I can remember how to use npm if I haven't used it in like 6 months, but I have to look up the right commands virtualenv if I haven't used it for like 2 weeks.
1) I've been focused on building it and hadn't thought much about open source or what that would look like until recently. I'd like to understand how similar projects that went open source did it and what the challenges were etc.
2) Definitely agree, I created it but haven't posted, today is probably a good day for that! I will make a post shortly! https://twitter.com/sqwokapp
How hard would it be to write a centralized 1-to-many message pipe that replicates Twitters core functionality?
How hard would it be to run such a thing? The moral and legal needs to censor content would probably be a bigger task then the technical implementation?
Is it really "millions of active users"? (I don't doubt it's possible, but the incentives are very much aligned with "let's count this bot activity as a real user." It doesn't even need to be malicious -- I fell into that trap myself.)
EDIT: Odd, I'd like to report a bug in that site. https://imgur.com/EsGyvnT It doesn't seem to load. Or rather, I saw it briefly flash the statistics, once, before it went back to loading. The 0.3 seconds I saw the stats looked impressive though. :)
The only thing in dev console is a warning that seems unrelated: "<ApolloProvider>.provide() is deprecated. Use the 'apolloProvider' option instead with the provider object directly."
Ah, the root cause is that the graphql fetch takes ~32sec: https://imgur.com/q769ozR So, never mind! Just a bit slow.
---
Anyway, it claims 400,000 active users in the last month. What counts as an active Mastodon user? It also claims 400 million Mastodon posts (total?) which I suppose are tweets.
Interesting... Twitter has about ~17M tweets per day, iirc. If this growth is legit – a big if – then Mastodon may be gaining more momentum than it seemed.
Does it matter whether the aggregate Mastodon user count ever catches up to Twitter? Is Twitter today actually better for its users than the Twitter of yesteryear that only had ~17 million tweets per day?
I have met many people on the fediverse, and at least two friends of mine have moved thousands of miles due to relationships and opportunities that likely would not have occured if the fediverse (Mastodon, Pleroma, etc) and its variety of platforms and userbase did not congregate in this manner.
One friend even bummed a plane ride on a tiny general aviation plane by serendipitous happenstance through the fediverse to make the multi-state move out of an abusive living situation.
Unbounded growth is not always good, and many fediverse instances have limited or closed new account registrations to ensure their community doesn't become the next Voat, FreeSpeechExtremist (which I was banned from for fairly benign speech) or /r/TheDonald.
Growth Hacking is a thing. Whether that counts as real growth or not I don’t know. But metrics can become suspect when they become a target.
There are quite a number of people using Mastodon and it is quite nice but it does feel a bit echoey all the same. At the same time there is a lot of garbage on twitter that you really couldn’t call “active users” and keep a straight face. As usual e truth is usually somewhere in the middle ...
> It's easy to set up your presence and start small, e.g. with a web app which syncs your Mastodon and Twitter accounts. https://moa.party/
True, but some of the more avidly pro-Mastodon and anti-Twitter regulars take it upon themselves to be gatekeepers (some nice, some nasty) if you try the dual-platform method. Just noting this for the sake of those who haven't yet done so. Feel free to give it a go, but don't be surprised if you get smacked in the face fairly early in the experience.
I for one would love for there to be a decentralized system that by design makes it impossible to censor any content, and if the content would be stored in a decentralized, encrypted manner it would also be impossible to legally enforce it as it would not even easily be known where it would be stored at all.
Think of perhaps a network that retrieves its content viā an union-routing-esque mechanism where information is published that cannot feasibly be altered any more once put there whose origins and locations would be computationally infeasible to trace and as it's stored in an encrypted fashion the parts of the network that do store it do not even know what they are storing.
Sounds like an interesting thing; let's see whether there's some interesting content on it amidst all the child porn.
And sure enough, I already found a website that says: “Please note that the Freenet network (much like Tor) attracts pedophiles and a large amount of sites contain child pornography. Some sites jokingly add a disclaimer saying This site does not contain child pornography. click here to continue.”
Mhmm, hence why the Freenet proposition is a hard sell. The average person doesn't want to devote half their computer's storage space to storing encrypted data they have no insight into, especially when that data could be considered illicit in some jurisdictions when decrypted.
I suppose the problem of such ideas is that it will generally be filled with content that is illegal in at least some jurisdictions and will only be used by those that need it to evade the law and the amount of content that isn't legal on it will be minimal.
So the end result is that all one finds on it is child pornography, controversial opinions, leaks of government data, and the lot.
I suppose my ideal wish was a platform such as twitter that intermixes legal and illegal content.
That is what stopped me, but it is also a check on society. If something else ends up on freenet that is not cp, it is an indicator of something having gone terribly wrong.
I didn't realize it then, but if Hunter Bidens data had been put there they would have been basically impossible to censor and it might have swayed the election.
While those do exist (and plenty of them), many people avoid them precisely because content moderation isn't possible or regularly done in those communities. From people who prefer not to sift through egregious amounts of bigotry/spam, to people who are at very real risk of having their physical safety or livelihoods damaged by online abuse (e.g. children), there are plenty of reasons to avoid those communities--reasons why those platforms are often ghost towns or toxic echo chambers.
Like, this isn't a "think of the children" argument that those communities shouldn't be allowed to exist. Of course they should. But don't be surprised when people prefer more centralized and "censored" (policed/moderated) communities. For the vast majority of people, that is a feature, not a bug--and they tend to realize that and boomerang back to Twitter etc. when they try out decentralized/anticensorship-oriented alternatives.
In the recent past, I've seen Twitter harshly ban account I randomly make. Sometimes its weeks before they ask for a phone number and if you don't have a real number (iirc they check against VoIP) they won't unrestrict you. If you have the same IP as other account I think they also might auto restrict you.
They banned my account for unnamed terms of use violations after my first post saying “well, I finally made a Twitter account.” Their support replied with “queries will not be responded to.” It was for the best
When they locked my freshly created account and didn't let me use it unless I gave them my phone number I mailed them and told them I would not do so for privacy reasons. My account was unlocked the next day.
Several years ago I tried to make a Twitter account. It got banned before I posted anything. I hadn't even subscribed to any users. I was going through the settings, and then \bam\, banned for being a bot, or some such nonsense. Nothing of value was lost.
Yeah, I had to get a separate number just to please twitter's automation.
Their approach is somewhat understandable - stopping bots is a hard problem, phone number in theory represents a material cost and a hurdle to someone who wants to rapidly register thousands of new accounts.
This is brought up every time this subject is discussed. Is a burner phone a normal thing that regular people have?
But no, I don't have a burner phone. I'm not going to buy a phone and a SIM just as some kind of non-solution to tech companies having a hard-on for invading peoples privacy.
Many alternatives exist but none reach critical mass because twitter has buy in from the major media outlets and the journalists they employ. Unlike other social networks that grew spontaneously, Twitter was effectively crowned.
Every twitter clone that tries to compete without first having the approval of the major media outlets will either be publicly ignored, belittled, or outright attacked.
Really, it's just that social networks work by having a lot of people, and lots of people are on Twitter because other people are on Twitter (I think there's an audience thing as well).
Though, to your point, I think Twitter has outsized influence for the same reason Google Reader did: loud nerds and journalists were always using it. Though now the politicians using it probably count for a lot too
I don’t think it’s a conspiracy theory to acknowledge that the exposure twitter got from media outlets universally promoting their twitter handles next to their core brands had a significant impact on twitters early growth, as well as a reinforcing effect to this day. Not every small social network gets that type of treatment.
Facebook did not grow this way, even though their relationship with the media is nearly indistinguishable from twitter’s today.
> Really, it's just that social networks work by having a lot of people, and lots of people are on Twitter because other people are on Twitter (I think there's an audience thing as well).
The network effect is real, but it is not the only effect. Twitter and other tech giants now think that their role is to protect the world from information they deem wrong. As well, prominent people in media and politics are urging them to take on that role more expansively. Naturally, therefore, they will oppose competitors whose distinguishing feature is to have less or no censorship.
The media establishment does not look kindly upon those who seek to deconstruct it.
> The network effect is real, but it is not the only effect. Twitter and other tech giants now think that their role is to protect the world from information they deem wrong
Do you have any examples of anything "they" "deemed wrong" which wasn't factually wrong? And not "alternative facts" bullshit, regular, proven facts.
If you care about the truth, it's your responsibility to find it, not to demand that I feed it to you. You are on the Internet, after all, and since DNS has yet to be censored, you can still seek alternative sources.
Now, you place the burden of proof on me, assuming that Twitter is in the right by censoring information and demanding that I prove that their censorship is wrong. But why don't you place the burden of proof on Twitter? Why do you apologize for censorship?
In your other comments, you say that "Only China can stop China," and you say that the U.S. mustn't respond to cyber attacks by China, Russia, and Iran, or those nations might escalate, so we must look the other way when these nations infiltrate and attack us.
When it comes to publishing, it doesn't matter where you publish, only that you can put your words out there. If someone has a web browser they can read what you say. The only thing that suffers is engagement, which you'll have a hard time getting regardless what website you use to publish if you're just starting out. But engagement is either meaningful or noise, and meaningful engagement comes from thoughtful words, not the size of the website.
So don't worry about critical mass. Pick where you want to publish based on what is important to you.
I almost exclusively use FOSS, federated networks to publish my thoughts, the only exception being this site. I engage here pretty often because I like the quality of the discussion and the rule of only contributing if you have something constructive to contribute, but ideally this website wouldn't be a silo.
I made no judgments on the value or importance of critical mass.
Critical mass seems important for exposure and personally I don’t think exposure is important unless you are seeking to maximize something that comes from exposure, usually it’s profit.
My comment was mainly to bring attention to what I consider the primary causal factor behind twitter’s critical mass.
Twitter got popular because early adopters used it, then celebrities, then Oprah and then media journalists and then Arab Spring and then news journalists and then early adopters left.
Do you have more information and / or evidence of this? I was an early Twitter user (2008) and I don’t recall things playing out this way. I’m not suggesting you’re wrong, and it’s entirely possible I was (am?) being naive about how things played out and would love to learn more.
My recollection matches yours. Twitter didn’t have an incumbent to overcome (insofar it was, and largely continues to be, complimentary to the other social networks). The early days of Twitter were a wasteland as far as old media engagement is concerned. It was dominated by TechCrunch, Scoble, etc.
And then in 2008 it ramped up for a multitude of reasons. A politician nobody had heard of somehow managed to mobilise a lot of support via a tech platform many hadn’t heard of, and get to a point where it looked like he had a legitimate shot at becoming US President. By early 2009 it was popular enough that Facebook updated their timeline to try and combat it, everyone was talking about their growth, and Ashton Kutcher was goading CNN into a competition to be the first account on the platform to have 1M followers (he was the first btw).
Old media was late to the game here and had to play catch up to stay relevant. I suspect that was also the tipping point though which changed journalism forever into this clickbait and eyeball driven economy. If anything Twitter inadvertently controlled old media, not the other way.
Can you name some alternatives? I am not aware of any.
Please note that I explicitly said "centralized". Because decentralized solutions like Mastodon have not resulted in viable alternatives for the average user so far.
ActivityPub and the Fediverse of which Mastodon is part have absolutely resulted in viable alternatives. I use the network for probably 90% of my online social interaction. It is far superior to any alternative I've found so far, mainly because I can publish freely, cannot be banned from the network, nobody has to have an account to see what I say, and it is actually a network, not a website calling itself a network. I can think of no way to reach millions of people that is less restrictive than this network.
Parler is a no go for me partly because I don't like ideological monoculture, but mainly because users have to have an account to even see what you say. IMO this makes it worse than Twitter, you shouldn't publish your thoughts somewhere with conditions on who can see what you say.
I've never used Minds and dabbled with Gab when it first came online only to find that it is as noisy and worthless a place to engage as Twitter is, possibly moreso.
Username in status url and “embedibility” are good features to have but i don’t think they are causal in determining whether or not an twitter clone reaches critical mass. Maybe they are though. You should build an alternative!
> Every twitter clone that tries to compete without first having the approval of the major media outlets will either be publicly ignored, belittled, or outright attacked.
Yes they are wrong. There’s no evidence that either of those platforms are dominated by fascists. The claim is as frivolous as the claim that HN is dominated by fascists.
RSS with comments can work. Mastodon, Pleroma, misskey, gnusocial all do it. They have the added benefit that a user cannot be censored from the network entirely, only from servers by their admins, and blocked by users.
You can't even get people to write their stories on their blogs and then link to Twitter, instead somebody created a twitter bot that will do that, but it has to be summoned in the comments.
You can go back and read tech media from the time about all the engineering challenges they ran into and the regular downtimes from trying to scale the thing to a tiny fraction of its current volume.
That’s because they wrote it all in ruby, which don’t get me wrong is a fine language but did have scaling issues back in the day. As it happens this was a growth experience for ruby too.
However limited their technology choice might have been from a performance standpoint it did give them the adapatability and flexibility to provide the fun and entertaining product that got them off the ground in the first place.
It did inevitably lead to the growing pains we discuss but I doubt anybody expected it to get as big as it did.
WRT the original comment here ... the main limiting factor nowadays is just getting people to use it. The network effect. Mastodon is a thing, and people do use it but it’s a minnow relatively speaking.
The next big challenge I think will be some kind of decentralised twitter based on some kind of blockchain (by which I mean progressive content hashing and consensus) and I don’t mean federated, like mastodon. The mastodon name is ridiculous too .. I’m not going to go into why but if you know you know, and stupid as it is it does matter.
"instead of" is an odd question to me. My family doesn't eat bread unless we are at a restaurant. We don't think of it as something that needs replaced, because it just is something we are not in the habit of eating.
So when you ask what do we eat instead, the answer is "Everything else."
Well, since then I got married and moved several states away. I haven't found a group of people to play with, or a park with a volleyball net yet. Life kinda got in the way of that.
It is worth it to be pain free.
I was pretty close to being pain free, but upping it would be harder due to work schedule and geographic distance. I had to travel 30-60 minutes just to be able to play, so it was easier on the weekends rather than the work days.
I suppose that could be euphemistic. Excuse my previous terminology. You do not want to decompress your vertebrae, stretch the quadratus lumborum or the erector spinae to release tightness in the back. You are better off focusing on a bottom up approach with calves, hamstrings, glutes, and rarely directly stretch the areas around the spine.
He means going to a chiro that puts a strap to your head and starts pulling short and hard.
Your spine should decompress slowly with exercises if you want to keep things safe.
Go to your doctor and ask for a physio consult at a therapist near you if you really need to know a specific place of your lower back pain.
The exercises are common for the whole lower back, you can find some when googling with "mobility exercises lower back".
Success solving your problems.
BTW upper back problems can also be solved with the right exercises, upper back problems also often can cause intestine and other problems like stomach, kidney and liver.
Nerves have 2 main functions, steering all parts of your body and feedback to the brain.