Acrobat Reader is one of the more poorly engineered programs I’ve used. And it recently asked me to sign in an account and give Adobe money to open a PDF??
Unfortunately I need to sign PDFs often (using an image of my physical signature or a digital certificate), and I haven’t used that didn’t suck more than Adobe in this. I haven’t tried Okular for this and Evince seemingly didn’t support this - but Preview (although an extremely great document reader in most regards) didn’t let me select an image of my signature, but asked me to either sign on the trackpad with my finger (how do you make that not look like you had nerve damage?) or show a picture of my signature to the webcam of my Mac so it would do extraction on it (which didn’t work at all after 20 minutes of attempting, but also why can’t I just select a photo??). Finally I figured out pdfjs in Firefox recently shipped image-based signing (still waiting on certs)
Of course, I could have edited the PDF in a better editor (GIMP even!), but.. why is such seemingly simple and common PDF work a horror show?
If you want to add signatures, the best option is to use a PDF viewer that supports that directly (FoxIt Reader, for one). That saves the original PDF plus an annotation for the signature.
Second best is print using "Save as PDF". That saves the PDF as processed through the browser's PDF engine (PDFium, in the case of Chrome or Edge).
Worst choice is usually print using "Microsoft Print To PDF". That saves the PDF processed into a more generic way. Often the original text characters are replaced by drawings, and the final file size can be 10x what you expect.
I can’t find the measurement methodology for Brightedge’s whitepaper, which concerns me because the margin for error seems huge, but Cloudflare’s numbers do make sense.
Both are however in line with my personal experience and observations regarding how people around me are using the web now.
I find myself using web crawling in LLMs a lot more, and search a lot less. My reasoning follows, and I think most people would agree.
- When I’m looking for some relatively obscure information which I’m not sure where to find or which would require hours of research for me to find, I use ChatGPT (usually o3 with deep research) and refer to citations for more information regarding a topic. This saves me hours of investigating, which I usually don’t have for something that’s just a curiosity. A friend also used deep research to find papers highly relevant to a topic he was working on for his med PhD in minutes, claiming that just searching through PubMed to find such papers would take him days - and probably less successfully.
- When I’m looking for something specific in regards to a topic I’m relatively familiar with, I use search (usually Kagi, unless at work where it is banned!) to quickly find reference material.
- LLMs (and engines like Kagi) let you skip through the SEO spam you’d usually skip through when using Google, as well as letting you search more easily (due to better natural language understanding than classical query engines). The quality of search results had been diminishing for years (geeks4geeks ranks higher than SO on Google), so it’s not surprising people turn to tools which produce better results. It’s like being shocked that people are driding cars instead of riding donkeys.
A particular example is that I looked up a DTC that my car was throwing. I googled it first, and got a results page consisting of forums that said nothing, paywalled generated sites that also didn’t provide any info, scammy Scribd clones hosting diagnostic manuals for the wrong car model and ad-ridden garbage sites that just claimed “oh it could be anything, just take it to a mechanic”. ChatGPT gave me an exact (and correct) answer in seconds.
This is an expected result of what we have done to the web, and it should surprise nobody. I’m only sad that genuine, small online communities are dying in favour of walled gardens, but that’s an entirely separate discussion.
Still, it’s highly location-dependent, and mileage varies drastically between countries.
I’m an SWE with a background in maths and CS in Croatia, and my annual comp is less than what you claim here. Not drastically, but comparing my comp to the rest of the EU it’s disappointing, although I am very well paid compared to my fellow citizens. My SRE/devops friends are in a similar situation.
I am always surprised to see such a lack of understanding of economic differences between countries. Looking through Indeed, a McDonald’s manager in the US makes noticeably more than anyone in software in southeast Europe.
Being able to stay compliant and protect revenue is worth far more than quibbling over which cloud costs a little less or much a monthly salary for an employee is in various countries.
The real ratio to look at is cloud spend vs. the revenue.
For me, switching from AWS to European providers wasn’t just about saving on cloud bills (though that was a nice bonus). It was about reducing risk and enabling revenue. Relying on U.S. hyperscalers in Europe is becoming too risky — what happens if Safe Harbor doesn’t get renewed? Or if Schrems III (or whatever comes next) finally forces regulators to act?
If you want to win big enterprise and governmental deals, Then you got to do whatever it takes and being compliant and in charge is a huge part of that.
I am not surprised. A lot of people conflate GDPR with the well-intentioned but misdirected cookie directive.
A lot of people blame the EU for “forcing cookie banners onto the web”, while the GDPR solely demands that you ask for consent before storing data that’s outside of your core functional needs to operate the app/website.
The UX of those dialogs is largely a dark pattern because the law did not demand implementation details, yet people blame GDPR because businesses designed them to be a nightmare to use. Yet people applaud for App Tracking Transparency dialogs.
> The UX of those dialogs is largely a dark pattern because the law did not demand implementation details, yet people blame GDPR because businesses designed them to be a nightmare to use. Yet people applaud for App Tracking Transparency dialogs.
True, it does not mandate specific implementation details but in Recital 32 of the GDPR [1], it demands "request[s] must be clear, concise and not unnecessarily disruptive to the use of the service [...]" which is mostly not given with dark pattern implementations.
> The UX of those dialogs is largely a dark pattern because the law did not demand implementation details, yet people blame GDPR because businesses designed them to be a nightmare to use.
IMO the law was clear enough as highlighted in the sibling comment. It is poor enforcement that's been a major issue. If a company registered in country A flouts GPDR, even in country B, there's nothing country B can do, other than delegate to country A's data protection / privacy authority. If country A then drags their feet and takes no action, we arrive at the current situation.
Your solution is not an exact solution to the knapsack problem, but a (relatively well known) greedy heuristic approach towards the problem. It is a good approach towards a solution, but the knapsack problem isn’t as trivial as it seems.
For a counterexample, imagine you have a ton of items that have a weight of 10^-20 and value of 1, and a single item that has the weight of whatever is the capacity of the knapsack (so it’s only thing that fits if it’s inserted to the knapsack) and the value of +infinity.
All items have their cost ≈ 0, so whether you fit all of the “light but valueless” items or the single “heavy but extremely valuable” item depends on how you sort when costs are equal.
An improved heuristic would take the value into account more than just having it as a factor, but it’s not easy to design.
I would recommend finding an open course on algorithm design and analysis and going through the lessons while trying to extrapolate approaches to problems instead of just solutions to them.
> Your solution is not an exact solution to the knapsack problem, but a (relatively well known) greedy heuristic approach towards the problem.
can point me to where to find more about this.
> For a counterexample, imagine you have a ton of items that have a weight of 10^-20 and value of 1, and a single item that has the weight of whatever is the capacity of the knapsack (so it’s only thing that fits if it’s inserted to the knapsack) and the value of +infinity.
that is rather an extreme example. i do not see the how it affects the validity of the solution in most cases.
> I would recommend finding an open course on algorithm design and analysis and going through the lessons while trying to extrapolate approaches to problems instead of just solutions to them.
implementing solutions is the concrete result of extrapolating approaches and choosing the best one to implement. and that is the pragmatic approach.
Sorry, I’m not too familiar with English-language literature on algorithm design. I just remember this from my uni course on it :)
I believe we used Introduction to Algorithms by Cormen et al. as the basis, so it should be covered in depth there - but I’m not too sure.
> that is rather an extreme example. i do not see the how it affects the validity of the solution in most cases.
This is a fair point, but also a distinguishing factor between a heuristic and exact approach to algorithm solutions to problems. Algorithmic solutions usually have theorem proof-level rigor for exactness. Also, I just used the easiest counterexample to come up with :)
I’m currently in the middle of my month-long stay in a new and unfamiliar city - and it’s been a challenge to meet new people, especially given how unapproachable we’ve all become in the past few years. Just last night, I was wishing for something like this to exist / looking to build something like it. Seems even more interesting given it’s not local, but a location-focused, less professionally oriented service would also be cool.
Kudos for building this! I’ve just signed up and seems amazing. Hope it delivers upon that expectation.
> especially given how unapproachable we’ve all become in the past few years
Is that... something that happened? Could you elaborate? Anecdotally that was limited to like 2021 if I could even say that, but I would imagine you do feel that in some genuine way and it must vary by region and demographic.
Many posts on HN and other sites discuss the struggles people have meeting new people outside of school or work. People don't want to talk to strangers in bars, cafes or gyms. Everyone wears headphones and looks at their phone on buses and trains and waiting in lines, and socially it's increasingly considered rude, weird or scary to start a conversation with a stranger in these places.
Even going to meetups or social gatherings rarely leads to lasting relationships for most people. On rare occasion people will be genuinely passionate about a hobby and reach enough repeated interactions through that hobby to form adult friendships with peers, but most often people will be too busy with other things in their life and never progress beyond acquaintance seen a few times a year.
> The majority of gen Z people don't feel comfortable asking/being asked out in person because app-based dating is all they've ever known
I didn't really see an indication of that in the article you linked, although it's perhaps plausible. One thing that did stand out to me was the below quote:
> “The divide seems partly generational. In my informal survey process (texting people and bringing up this topic at parties), I found that millennials were more excited about meeting in person. Claire (a pseudonym) said she asked a guy out about a month ago and that it felt “great”. It was a delight to go on a date and not be surprised by what somebody looks like or how it feels to physically be in their presence,” she says. She added that she “will never go back to the apps, no matter how this shakes out”. Christianna, 29, said she’s met the last three people she’s dated in person: one at a house party, another at a concert and another at a queer line dancing event. Several men in their 30s said they barely use the apps and primarily meet people in person."
None of the other things you mention are news to me, unfortunately; anecdotally I do think it's true that many people are lacking in close friends, and for that reason I try my best to be approachable and a friend to a small number of people, but fwiw I'm not Gen Z or in the U.S (Canadian, as negligible as that may be) and don't necessarily feel like the fact people have less close friends compared to some arbitrary historical point necessarily means people have broadly or suddenly become less approachable; I do feel for those who struggle to meet people.
> Even going to meetups or social gatherings rarely leads to lasting relationships for most people. On rare occasion people will be genuinely passionate about a hobby and reach enough repeated interactions through that hobby to form adult friendships with peers, but most often people will be too busy with other things in their life and never progress beyond acquaintance seen a few times a year.
I feel like this can be somewhat true and not true depending on many factors, but generally I do think it's rare that something will lead to long-term interpersonal intimacy, but that embracing that rarity is a good idea rather than not, it means you need to set real time and energy aside to build it up or establish circumstances where eventually you'll hit it off with someone, as an incidental event of you already being somewhere (not being too eager and dropping the hobby when it's either working out or not).
My impression is that in these cases where things haven't worked out longer than a couple months, potential prospects and prospectors are equally likely to not be prepared for what will be required of them in turning a burgeoning friendship into a deeper one, and don't necessarily appreciate the contrast between the effort required back in their hometown or back at their high school, and now out in their new city in their busy life, especially if they struggle to discover with whom they might have chemistry or have little to no ability to carry a conversation (which could very-well be impacted by the earlier Gen Z things you mention). This is a years long project, and it's just pretty hard, because you need to develop trust, have chemistry, be able to navigate and contribute to a conversation, and simultaneously not be too wanting.
Aside from that, imo these struggles are true of previous generations too, but the circumstances were a bit different, such as older millennials, and basically anyone who's bothered to care about expanding their social circle as an adult. Many haven't even given it a passing thought, or they've intentionally isolated themselves in the deep suburbs, or accepted too early that friends just stop being around eventually; any that have left their home town for a different or greater urban area would have had to figure it out at some point, it just might not necessarily have been as common, and they may not have had the same type of horrific manipulation of their attention on a moment-to-moment basis (as you mentioned). None of my older relatives have made new friends as adults on their own that I can think of, they just weren't in a position to need to or accidentally had kids early on and devoted their attention to that. The constraints are a bit different in terms of degree and kind now.
This is what IntelliJ does for Java. A problem is reported whenever you have a function that throws exceptions and isn’t caught in a caller anywhere in the project, and you can jump to implementation or calls easily.
However, exceptions that a function can throw are part of the function signature in Java unless they extend RuntimeException (and in that case your program won’t compile if you throw an exception without adding it to the signature). While the circumstances in Java make it much easier for IDEs to report uncaught exceptions, it’s a solvable problem for non-runtime exceptions using static analysis.
On the other hand, returning standardised Ok/Err-wrapped values seems like a simpler approach, both in terms of tooling support and developer convenience.
I think once Java has finished up exception switch-case it will be a model followed by other languages. Being able to catch exceptions at both, method and transaction boundaries will be a boon for readable control-flow.
Unfortunately I need to sign PDFs often (using an image of my physical signature or a digital certificate), and I haven’t used that didn’t suck more than Adobe in this. I haven’t tried Okular for this and Evince seemingly didn’t support this - but Preview (although an extremely great document reader in most regards) didn’t let me select an image of my signature, but asked me to either sign on the trackpad with my finger (how do you make that not look like you had nerve damage?) or show a picture of my signature to the webcam of my Mac so it would do extraction on it (which didn’t work at all after 20 minutes of attempting, but also why can’t I just select a photo??). Finally I figured out pdfjs in Firefox recently shipped image-based signing (still waiting on certs)
Of course, I could have edited the PDF in a better editor (GIMP even!), but.. why is such seemingly simple and common PDF work a horror show?