koolba44mortusdux•10mincomingpain•14mjleyank•5mcwillu•6mslindsey•27mPet_Ant•9mbestouff•2mingve1h 16mbob1029•4mandrethegiant•11m_boffin_•2mburkaman•4mwrs•19mmarginalia_nu•10msvat•21m|\-One thing I wish someone would write is something like the browser's developer tools ("inspect elements") for PDF — it would be great to be able to "view source" a PDF's content streams (the BT … ET operators that enclose text, each Tj operator for setting down text in the currently chosen font, etc), to see how every “pixel” of the PDF is being specified/generated. I know this goes against the current trend / state-of-the-art of using vision models to basically “see” the PDF like a human and “read” the text, but it would be really nice to be able to actually understand what a PDF file contains. There are a few tools that allow inspecting a PDF's contents ( https://news.ycombinator.com/item?id=41379101 ) but they stop at the level of the PDF's objects, so entire content streams are single objects. For example, to use one of the PDFs mentioned in this post, the file https://bfi.uchicago.edu/wp-content/uploads/2022/06/BFI_WP_2022-68-1.pdf has, corresponding to page number 6 (PDF page 8), a content stream that starts like (some newlines added by me): 0 g 0 G 0 g 0 G BT /F19 10.9091 Tf 88.936 709.041 Td [(Subsequen)28(t)-374(to)-373(the)-373(p)-28(erio)-28(d)-373(analyzed)-373(in)-374(our)-373(study)83(,)-383(Bridge's)-373(paren)27(t)-373(compan)28(y)-373(Ne)-1(wGlob)-27(e)-374(reduced)]TJ -16.936 -21.922 Td [(the)-438(n)28(um)28(b)-28(er)-437(of)-438(priv)56(ate)-438(sc)28(ho)-28(ols)-438(op)-27(erated)-438(b)28(y)-438(Bridge)-437(from)-438(405)-437(to)-438(112,)-464(and)-437(launc)28(hed)-438(a)-437(new)-438(mo)-28(del)]TJ 0 -21.923 Td and it would be really cool to be able to see the above “source” and the rendered PDF side-by-side, hover over one to see the corresponding region of the other, etc, the way we can do for a HTML page. dleeftink•6mwhenc•15mxnx32mbinarymax•0mmarginalia_nu•19msimonw•21mbartread38mj4531mlayer8•0mrad_gruchalski45megnehots•11m |\-I don't think so, pdf.js is able to render a pdf content. Which is different from extracting "text". Text in PDF can be encoded in many ways, in an actual image, in shapes (think, segments, quadratic bezier curves...), or in an XML format (really easy to process). PDF viewers are able to render text, like a printer would work, processing command to show pixels on the screen at the end. But often, paragraph, text layout, columns, tables are lost in the process. Even though, you see them, so close yet so far. That is why AI is quite strong at this task. zzleeper•29mhardasspunk1h 35mAtlasBarfed•4mphilipwhiuk33mwpollock•1mcogman10•23melric•24mNeywiny38mcogman10•19mjmsflknr1h 46mjasonthorsness•21mpwthornton•9mmattmerr30mgscott•11mbitfilped•11mbarbazoo36mlwo32k•1mrntn2h 0mDragonStrength•2mneilv•4mrussdill•15mgraemep•18m_ache_•27mgethly•29merikerikson39mjdnddnbe•14mr14c•3merikerikson•8mhomeonthemtn41mAlotOfReading31malistairSH•0mhennell44mlo_zamoyski•18m| \-What it shows is managerial insecurity. Despite the obsession with monitoring "productivity", managers really haven't the faintest idea of what they're doing. A healthy relationship is one in which managers don't monitor and don't micromanage and don't rely on Jira or commit logs to lazily monitor employees. A manager isn't there to lord over employees. He is there to support employees and help them do their jobs. But to do that, you need to know what they're doing. Talk to them. Listen. Hold 1-on-1s on a regular basis. Assume they're doing their jobs instead of defaulting to a defensive and adversarial posture. If you treat employees like adversaries, they'll behave like adversaries. Grant them reasonable trust and they will take initiative and view the relationship as one that is cooperative. They will be less likely to want to risk losing the reasonable trust they have been gratuitously given; if you default to suspicion, then employees have little to lose. You already think poorly of them, so who cares. If someone is genuinely slacking or not well-suited, that will come out sooner or later. 1-on-1s, individually and taken in aggregate, will give the manager an idea of what is really happening, especially if the manager is competent and knowledgeable of the domain, which he should be. 360 EOY reviews can also help here, not as an adversarial tactic, but as a way to share feedback. A competent manager can read the tea leaves. deepsun•5mjawns1h 3malistairSH•3mJoeAltmaier1h 23mizacus40mvineyardmike•17m \-Nobody wants to work anymore /s People can be paid better, given better hours, more flexibility, more responsibilities, less responsibilities, better benefits, etc. If lots of people don’t want to do a job, and that job has trouble keeping quality employees, it’s the job that’s broken, not the people. Plenty of people were treated great when WFH, but it’s not a universal truth that everyone was. jbegley2h 3mnickledave1h 1m|\-the tl;dr: > The NSF’s investments have shaped some of the most transformative technologies of our time—from GPS to the internet—and supported vital research in the social and behavioral sciences that helps the nation understand itself and evaluate its progress toward its democratic ideals. So in 2024, I was honored to be appointed to the National Science Board, which is charged under 42 U.S. Code § 1863 with establishing the policies of the Foundation and providing oversight of its mission. > But the meaning of oversight changed with the arrival of DOGE. That historical tension—between the promise of scientific freedom and the peril of political control—may now be resurfacing in troubling ways. Last month, when a National Science Board statement was released on occasion of the April 2025 resignation of Trump-appointed NSF Director Sethuraman Panchanathan, it was done so without the participation or notice of all members of the Board. > Last week, as the Board held its 494th meeting, I listened to NSF staff say that DOGE had by fiat the authority to give thumbs up or down to grant applications which had been systematically vetted by layers of subject matter experts. > Our closed-to-the-public deliberations were observed by Zachary Terrell from the DOGE team. Through his Zoom screen, Terrell showed more interest in his water bottle and his cuticles than in the discussion. According to Nature Terrell, listed as a "consultant" in the NSF directory, had accessed the NSF awards system to block the dispersal of approved grants. The message I received was that the National Science Board had a role to play in name only. I can't sum up everything that's wrong with this moment better than that. This is not some necessary pain that comes with shaking up the system. This is a hostile takeover of the federal government by embarrassingly ignorant goons who think they know everything, just because they can vibe code an almost functional app. This is what happens when you have VCs huffing their own farts in their Signal echo chamber: https://www.semafor.com/article/04/27/2025/the-group-chats-that-changed-america . Congratulations, you buffoons, you have demonstrated there are scaling laws for footguns. blackhaj7•7mOnawa1h 19mlynndotpy•7mjsbg•25mfzeroracer•3mmeesles•18mrussdill•19mjsbg•17mitsoktocry33mvoxl•25ms1artibartfast•1mrobinsoncrusue34mconn10mfan•11mijk•17mrobinsoncrusue•6mconn10mfan•2mrealo•24maaronbaugher•26mneaden•8mdaltont•0mijk•15mGuinansEyebrows•26mjjtheblunt41mThe5thElephant40mjjtheblunt36mjpeloquin•14mduxup•16mwhatshisface•18mhowmayiannoyyou1h 22mconn10mfan•9mrussdill•16mwat10000•25mamanaplanacanal1h 30mWillPostForFood37mallturtles•27mToucanLoucan•28mapercu•23mthrowaway575256mpbhjpbhj50mmystraline•10mthrowaway575249mXplan33mgrafmax•13mFridayoLeary•13mthrowaway5752•16m| |\-You don't describe this like a person that possesses any domain expertise in the subject. It wasn't a mechanism called the Chevron deference, it was law, as determined by the Supreme Court in "Chevron U.S.A., Inc. v. Natural Resources Defense Council". The deference was on the part of the courts deferring to executive regulators when there was ambiguity, since the regulators were experts in a given field and the courts were generally legal experts. Not Congress. That was overturned in Loper Bright Enterprises v. Raimondo. "non-elected, life-long positioned government employees" so, you mean, federal employees. Nothing about it is "life-long", you made that up. They could quit, change jobs, or be fired. And "criminals" is false. It applied to civil statutes, not criminal ones. It goes on. HelloMcFly•19mAftHurrahWinch•21mapercu•24mjslaby•7mOnawa•25mvessenes1h 41mpbhjpbhj41mvessenes•3mgaloisscobi1h 24mvessenes•7mOnawa1h 11mwsintra20221h 3mlayer8•20msepositus1h 28mneomantra•16mJumpCrisscross1h 30mkmeisthax•20mbad_haircut721h 30mrtkwe38mwat10000•28mgilleain•21mSideburnsOfDoom1h 21mAStonesThrow1h 4m \-> America's success as a scientific powerhouse If you really think about it, America's "success as a scientific powerhouse" owes a significant debt to foreigners: scholars from abroad and workers on H1-B visas. It has been a well-known fact for decades that white native-born Americans are at a real disadvantage in academia, tech fields, and any sort of research positions, because for whatever reason, the foreigners coming in on H1-B can run circles around them in terms of productivity, innovation, and even sheer numbers. Perhaps this isn't the sort of "stealin' our jerbs" people first think of, rather than picking strawberries and selling oranges off the 405, but it's a real phenomenon. This is a very prominent reason for skepticism about DEI from the Right, because the outsized influence of foreigners on academia, and by extension STEM and other sciences, has been steadily growing and growing and inflamed by DEI hiring practices in the industries. Essentially, thousands of foreign nationals have been immigrating to the USA to be educated at our best schools, and then exert two-way influence over culture and commerce. Is that a sustainable practice? Is America enough of a "melting pot" that we can withstand that sort of outsized foreign influence within our borders? Furthermore, America was first in line to embrace Eastern-bloc Jews, from the outbreak of WWI through the end of WWII. Those German and Soviet Jews from the diaspora gained significant prestige, not merely from sympathy or pity, and they now have outsized influence in many Western industries, including Hollywood, finance, manufacturing, and psychology. These are markedly distinct career paths from the ones taken by homegrown Jews, such as the Hasidic ones and other Orthodox communities from New York. ben_w•22mwqtz3h 8mzphds•12mi_love_retros•16mjunikaefer•16malphazard1h 17mdisambiguation•6mtoast0•7mStopDisinfo910•21mmotorest•26mbaketnk•17mfads_go40malphazard•16mmnky9800n45mvideogreg93•19mcj2h 15mwatwut1h 26mpydry1h 12mpm90•10mjon-wood1h 38mCGMthrowaway1h 15mpm90•11mhobs2h 12meloisius2h 0mkentrado1h 48mtoast0•4mbestwillcui3h 20mandrethegiant•9mtdthree•5mclamlady57mph4evers•13meochaid1h 15mbestwillcui•25mpxndxx2h 9mtdthree2h 3mhaswell1h 17mbestwillcui50mCherub0774•14mbananapub2h 15mbestwillcui1h 56mnotachatbot1231h 34mbestwillcui•20mfernvenue3h 27mbongodongobob1h 0msgjohnson52mbigyabai39mthot_experiment•28mbigyabai•25maltairprime•15msgjohnson33mthomasfedb•18mxnyanta•24mbradford1h 5mnumpad0•23msgjohnson54msarahdellysse•1mbradford•16mlp0_on_fire•29mDemiurge1h 18mdehrmann1h 4mflmontpetit43mcarlwgeorge•14mgpi3h 57mpsadauskas1h 15m|\-I think of AI like a Junior Engineer. If I understand the problem well enough, and have a really good description of what I want, like I'm explaining it to a junior engineer, then they do an OK job at it. At my last job, we had a coding "challenge" as part of the interview process, and there was a really good readme that described the problem, the task, and the goal, which we gave the candidate at the start of the session. I copy/pasted that readme into copilot, and it did as good a job as any candidate we'd ever interviewed, and it only took a few minutes. But whenever there are any unknowns or vagaries in the task, or I'm exploring a new concept, I find the AIs to be more of a hindrance. They can sometimes get something working, but not very well, or the code they generate is misleading or takes me down a blind path. The thing for me, though, is I find writing a task for a junior engineer to understand to be harder than just doing the task myself. That's not the point of that exercise, though, since my goal is to onboard and teach the engineer how to do it, so they can accomplish it with less hand-holding in the future, and eventually become a productive member of the team. That temporary increase in my work is worth it for the future. With the AI, though, its not going to learn to be better, I'm not teaching it anything. Every time I want to leverage it, I have to go through the harder tasks of clearly defining the problem and the goal for it. kyleee•22mphillipcarter2h 49mrvz1h 54mphillipcarter•28mmarcosdumay2h 16mphillipcarter•25mrealbenpope3h 2mninetyninenine2h 41mSketchySeaBeast2h 36mninetyninenine•8mechelon2h 53mbayindirh2h 47mninetyninenine2h 38mbayindirh2h 32mninetyninenine•10mrbanffy4h 35mdelichon3h 48mRetric3h 38msquidbeak3h 11msoco2h 49mtim333•20msoco•8mhello_computer3h 17mRetric2h 32mhello_computer2h 24mRetric2h 17mhello_computer2h 10mRetric1h 59mhello_computer•15mmc323h 52mhello_computer3h 10mtrealira1h 26mhello_computer•27mtrealira•11mst_goliath4h 48mnmz•1mlowbloodsugar•22mteddyh4h 7mperlgeek2h 52mmjevans2h 42msillystuff•4mmmsc4h 11mimmibis3h 1m3036e41h 40mimmibis45m3036e4•18mWowfunhappy2h 50mkevin_thibedeau2h 33mim3w1l•29mgenewitch•2mTrasmatta4h 12mimmibis2h 57m| \-A mailing list is just a kind of public group chat. You're probably in many public group chats, including this one right now. Mailing lists, IRC, traditional web forums, Discord, WhatsApp are all implementations of the same basic concept. Like any implementation, it comes with certain affordances which differ from other implementations. Messages feel "heavy" for several reasons: sending one involves a lot of clicks (or keypresses); if you send a very high number you may be banned from your email provider, and unable to communicate with anyone. Messages often arrive instantly, but can be delayed up to hours or days, so conversation round-trips are kept to a minimum. Messages are all the same - there are no "lite messages" such as emoji reactions - so any message must contain enough content to justify being a full-fledged message, or it won't be sent at all. (Sometimes an "emoji reaction" is felt to be enough content to justify a full-fledged message, which is sent.) Being off the web increases the barrier to entry, reducing the eternal september effect (ironically, Usenet is one of the least eternal-september-ish of the public discussion boards currently in existence). Overall, the feel of the system tends to somewhat discourage quantity and encourage per-message quality. WesolyKubeczek•19mRMPR4h 25mdooglius4h 9mJdeBP4h 3mngangaga3h 51m1vuio0pswjnm7•23mUI_at_80x24•25mnine_k•10mentropie3h 2mnoosphr2h 38mjstanley59mfnordpiglet•5mhunvreus4h 54mo_m•0mpacmanche46mhunvreus•25mrevskill•25mturrini5h 46mabetaha•13mredleader55•17mjoaohaas39mBeFlatXIII•16marmchairhacker3h 9mknowitnone•28mcaseyy3h 21mabdullahkhalids•6mdahart1h 43m||\-The dumbest and most obvious of realizations finally dawned on me after trying to build a software startup that was based on quality differentiation. We were sure that a better product would win people over and lead to viral success. It didn’t. Things grew, but so slowly that we ran out of money after a few years before reaching break even. What I realized is that lower costs, and therefore lower quality, are a competitive advantage in a competitive market. Duh. I’m sure I knew and said that in college and for years before my own startup attempt, but this time I really felt it in my bones. It suddenly made me realize exactly why everything in the market is mediocre, and why high quality things always get worse when they get more popular. Pressure to reduce costs grows with the scale of a product. Duh. People want cheap, so if you sell something people want, someone will make it for less by cutting “costs” (quality). Duh. What companies do is pay the minimum they need in order to stay alive & profitable. I don’t mean it never happens, sometimes people get excited and spend for short bursts, young companies often try to make high quality stuff, but eventually there will be an inevitable slide toward minimal spending. There’s probably another name for this, it’s not quite the Market for Lemons idea. I don’t think this leads to market collapse, I think it just leads to stable mediocrity everywhere, and that’s what we have. naasking•11m|||\-> What I realized is that lower costs, and therefore lower quality, This implication is the big question mark. It's often true but it's not at all clear that it's necessarily true. Choosing better languages, frameworks, tools and so on can all help with lowering costs without necessarily lowering quality. I don't think we're anywhere near the bottom of the cost barrel either. I think the problem is focusing on improving the quality of the end products directly when the quality of the end product for a given cost is downstream of the quality of our tools. We need much better tools. For instance, why are our languages still obsessed with manipulating pointers and references as a primary mode of operation, just so we can program yet another linked list? Why can't you declare something as a "Set with O(1) insert" and the language or its runtime chooses an implementation? Why isn't direct relational programming more common? I'm not talking programming in verbose SQL, but something more modern with type inference and proper composition, more like LINQ, eg. why can't I do: let usEmployees = from x in Employees where x.Country == "US"; func byFemale(Query<Employees> q) => from x in q where x.Sex == "Female"; let femaleUsEmployees = byFemale(usEmployees); These abstract over implementation details that we're constantly fiddling with in our end programs, often for little real benefit. Studies have repeatedly shown that humans can write less than 20 lines of correct code per day, so each of those lines should be as expressive and powerful as possible to drive down costs without sacrificing quality. rom1638442mAtlasBarfed•18mMulticomp•6m|| \-Here in Atlanta Georgia, we have a ToyoTechs business. They perform maintenance on only Toyota-family automobiles. They have 2 locations, one for large trucks, one for cars, hybrids, and SUV-looking cars. Both are always filled up with customers. Some of whom drive hundreds of miles out of state to bring their vehicles exclusively there, whether the beater is a customized off-roader or a simple econobox with sentimental value. Why? Because they are on a different incentive structure: non-comissioned payments for employees. They buy OEM parts, give a good warranty, charge fair prices, and they are always busy. If this computer fad goes away, I'm going to open my own Toyota-only auto shop, trying to emulate them. They have 30 years of lead time on my hypothetical business, but the point stands: when people discover that high quality in this market, they stick to it closely. mjr002h 13m||\-> the market sells as if all goods were high-quality The phrase "high-quality" is doing work here. The implication I'm reading is that poor performance = low quality. However, the applications people are mentioning in this comment section as low performance (Teams, Slack, Jira, etc) all have competitors with much better performance. But if I ask a person to pick between Slack and, say, a a fast IRC client like Weechat... what do you think the average person is going to consider low-quality? It's the one with a terminal-style UI, no video chat, no webhook integrations, and no custom avatars or emojis. Performance is a feature like everything else. Sometimes, it's a really important feature; the dominance of Internet Explorer was destroyed by Chrome largely because it was so much faster than IE when it was released, and Python devs are quickly migrating to uv/ruff due to the performance improvement. But when you start getting into the territory of "it takes Slack 5 seconds to start up instead of 10ms", you're getting into the realm where very few people care. homebrewer•1mdgb231h 52mmjr001h 29m|| \-> You are comparing applications with wildly different features and UI. That's neither an argument for nor against performance as an important quality metric. I never said performance wasn't an important quality metric, just that it's not the only quality metric. If a slow program has the features I need and a fast program doesn't, the slow program is going to be "higher quality" in my mind. > How fast you can compile, start and execute some particular code matters. The experience of using a program that performs well if you use it daily matters. Like any other feature, whether or not performance is important depends on the user and context. Chrome being faster than IE8 at general browsing (rendering pages, opening tabs) was very noticeable. uv/ruff being faster than pip/poetry is important because of how the tools integrate into performance-sensitive development workflows. Does Slack taking 5-10 seconds to load on startup matter? -- to me not really, because I have it come up on boot and forget about it until my next system update forced reboot. Do I use LibreOffice or Word and Excel, even though LibreOffice is faster? -- I use Word/Excel because I've run into annoying compatibility issues enough times with LO to not bother. LibreOffice could reduce their startup and file load times to 10 picoseconds and I would still use MS Office, because I just want my damn documents to keep the same formatting my colleagues using MS Office set on their Windows computers. Now of course I would love the best of all worlds; programs to be fast and have all the functionality I want! In reality, though, companies can't afford to build every feature, performance included, and need to pick and choose what's important. Retric•17mmjr00•12mRetric•1mdavidw2h 20mgraemep1h 41mHideousKojima•15mtitzer4h 12mAtlasBarfed•12m_aavaa_4h 1mGigachad3h 43mbjourne•13mmaccard3h 1m| |\-Slack, teams, vs code, miro, excel, rider/intellij, outlook, photoshop/affinity are all applications I use every day that take 20+ seconds to launch. My corporate VPN app takes 30 seconds to go from a blank screen to deciding if it’s going to prompt me for credentials or remember my login, every morning. This is on an i9 with 64GB ram, and 1GN fiber. On the website front - Facebook, twitter, Airbnb, Reddit, most news sites, all take 10+ seconds to load or be functional, and their core functionality has regressed significantly in the last decade. I’m not talking about features that I prefer, but as an example if you load two links in Reddit in two different tabs my experience has been that it’s 50/50 if they’ll actually both load or if one gets stuck either way skeletons. crubier•0mmjburgess3h 39msgarland2h 43mLocalPCGuy•10mfreddie_mercury4h 16mngangaga4h 9mleonheld4h 0mngangaga3h 56mrescbr•18mkunley4h 11mjsheard4h 9mngangaga4h 7mrescbr3h 29mngangaga3h 23mrescbr•27mbrodo7h 15mizacus2h 36mmariusor1h 58mizacus36mmariusor•8mconartist63h 49mizacus2h 30mAjedi321h 25mizacus38mAjedi32•21mpjc505h 31mjeroenhd2h 19m |\-This permission has been a security issue since its introduction. Random apps have been caught iterating over used media to extract geolocation history based on EXIF information and other such metadata (for no good reason, data collection for data traders), so Google did the right thing and made file access permission-first. Almost no apps need this permission, so being skeptical makes a lot of sense. File managers and other such apps are routinely permitted to use this permission, so it's not like Google is locking out utility apps or anything. The current state of Google Play is the result of years of Google being too permissive by default and trying to patch things later while desperately trying to remain backwards compatible. Give advertisers a finger and they take the whole hand. Your average Android phone's internal storage used to be full of dotfiles, hidden directories, not-so-hidden directories, all full of identifiers and cross-identifiers to break the cross-app tracking boundary enforced by the normal API. As far as I know, Google has made an API available for picking a directory to sync with. I'm not sure why NextCloud needs to see every file on my SD card when it can ask for folders to sync into and can use a normal file picker to upload new files without going through a file manager, but there's probably a feature somewhere hidden in their app that necessitates this permission. The policy itself makes a lot of sense and I'd argue is beneficial for Google Play's user base. NextCloud's problem seems to be that Google isn't letting a human with common sense review their upload. Because of Google being Google, outcry is the only way to get attention from an actual human being when it comes to app stores (Apple has had very similar issues, though they claim their reviews are all done by humans). EDIT: NextCloud states "SAF cannot be used, as it is for sharing/exposing our files to other apps, so the reviewer clearly misunderstood our app workflow." as a reason for not being able to use the better APIs, but I'm not sure if that's true. SAF has a dedicated API for maintaining access to a folder ( https://developer.android.com/training/data-storage/shared/documents-files#perform-operations ). I think NextCloud misinterpreted Google here. supermatt•7mkukkamario•18mizacus2h 34mZak•12mllm_nerd4h 32mGTP4h 1mllm_nerd3h 57mtecleandor2h 53mdeng2h 38mtecleandor1h 45mnolist_policy1h 6mtecleandor•21m || | \-Yeah, I'm not saying that you're in the wrong, I'm saying that they might want to access further than the new `ACTION_OPEN_DOCUMENT_TREE` API call allows. For example, the Downloads folder (you can only open individual files with ACTION_OPEN_DOCUMENT, not the whole folder). And that can be reached with the `MANAGE_EXTERNAL_STORAGE` (all files) API. Is that OK? Well, it's not intrinsically bad, but it clashes with Google's Android hardening directives. Not very familiar with the NextCloud client, as I haven't used it much, but in the case of Syncthing (and this is totally guessing from what I remember from reading the forums back when the Android 11 upgrade happened): I don't think they don't want to put the work to switch to the new API, I think they want to access places they won't be able to access with the new API, so that's why they won't change the calls. izacus2h 42mtecleandor1h 41mizacus34mtecleandor•7m || \-Yeah, yeah, I know. I'm not saying that it's good or bad, I just say that some people like to sync/backup/copy their apps data (that sometimes it's located on private directories, or in the Downloads folder...), and they were able to do it before. And that the new API has less permissions than the one that Google wants them to use. Google Play, or at least that's what they say in their docs, might allow the use of the MANAGE_EXTERNAL_STORAGE "all files" API call "...if your app includes a use case similar to any of the following: File managers, Backup and restore apps, [...] Document management apps ..." [0][1]. And the Nextcloud app sounds very similar to that. Of course, it's all "Subject to Google Play review and approval.", but why they used to grant that permission to Nextcloud with no problem and revoked it suddenly... I have no idea. --- 0: https://developer.android.com/training/data-storage/manage-all-files#all-files-access-google-play 1: https://support.google.com/googleplay/android-developer/answer/10467955#zippy=%2Cpermitted-uses-of-the-all-files-access-permission pjc504h 5mllm_nerd4h 0mpjc503h 43mllm_nerd3h 39mwinkeltripel3h 22mthreeseed3h 8mlenkite50mZak•3mtarruda5h 17mmatheusmoreira1h 1mnolist_policy51mmatheusmoreira48mnolist_policy•6mmatheusmoreira•3mamanchanda7h 36mjordanmorgan10•4mdudeinjapan•10m|\-At TableCheck (Japan's answer to Resy, Tock, Sevenrooms, etc.) our first 100 customers were definitely the hardest. It took us nearly two years, and many times I came close to giving up. Even though we had built a solid MVP, in Japan's risk-averse culture, no restaurant wanted to be the first to use our product. The question was always "Who else is using it?"--basically a deadlock. After a lot of cold-calling, we found a 120-year old sukiyaki and shabu-shabu restaurant chain. They told us they always survived by adopting the latest technology, and were willing to try our product. Most of their staff were elderly women in kimonos, many of whom had not touched an iPad before. We were worried they would struggle, but after a few training sessions they got the hang of it--soon they were greeting and seating customers with no problem. 12 years on, we are at 13,000 restaurants on our platform and adding a few hundred more each month! njjv•13mkureikain•16mednite2h 7md0liver1h 53mednite•10md0liver1h 59mednite1h 41mjderick•21mnicooo3h 14mconductr3h 10mgardnr3h 4mpc862h 25mconductr•2mcriddell4h 32mmixmastamyk•0mpiker5h 59mquibono4h 31mpiker4h 23mquibono4h 13mpiker4h 5mmixmastamyk•26mrwieruch6h 34mrobertlagrant4h 48mnani8ot•9mvanschelven6h 49msebstefan4h 41mdelfinom1h 4msebstefan•6mgingerBill7h 42mknowitnone•16mjmull3h 34mgingerBill3h 29mnasretdinov•4myusina5h 52m|\-As long as programmers view a program as a mechanism that manipulates bytes in flat memory, we will be stuck in a world where this kind of topic seems like a success. In that world, an object puts some structure above those memory bytes and obviously an allocator sounds like a great feature. But you'll always have those bytes in the back of your mind and will never be able to abstract things without the bytes in memory leaking through your abstractions. The author even gives an example for a pretty simple scenario in which this is painful, and that's SOA. As long as your data abstraction is fundamentally still a glorified blob of raw bytes in memory, you'll be stuck there. Instead, data needs to be viewed more abstractly. Yes, it will eventually manifest in memory as bytes in some memory cell, but how that's layouted and moved around is not the concern of you as the programmer that's a user of data types. Looking at some object attributes foo.a or foo.b is just that - the abstract access of some data. Whether a and b are adjacent in memory should be insubstantial or are even on the same machine or are even backed by data cells in some physical memory bank. Yes, in some very specific (!) cases, optimizing for speed makes it necessary to care about locality, but for those cases, the language or library need to provide mechanisms to specify those requirements and then they will layout things accordingly. But it's not helpful if we all keep writing in some kind of glorified assembly language. It's 2025 and "data type" needs to mean something more abstract than "those bytes in this order layed out in memory like this", unless we are writing hand-optimized assembly code which most of us never do. jandrewrogers•7mgingerBill5h 47myusina5h 34myusina5h 32mgingerBill5h 24myusina4h 54mgingerBill4h 4mAnimalMuppet2h 18mgingerBill1h 49mfinnh•24mmrkeen6h 53mmelodyogonna•14m