Why is it sad? Every time I see a piece of software that provides a lot of value and it’s not focused on money-making (ublock for example) it gives me a warm feeling.
Because there is something ironic about people (in general, including those here) dreaming about well paying jobs, but then wanting high quality products that have been worked on by people without compensation, when that time could have been invested by the worker (developer in this case) working another paid job, spending time with loved ones, and the like.
I don't think that Google, Apple or Microsoft employees are not payed. And the quality of those products just isn't there.
I mean, my employer paid 500 euros for an Iphone which maybe costs 50 euros to be produced. From those 450 euros is an Apple engineer not able to test the smalest phone with bigger fonts and to implement proper hyphenation on menu items ?
It’s missing dark mode that other low-key projects have adopted. It’s an app that’s lovely to use, but it sure does give your eyeballs a suntan when it’s open.
Yes, there are custom settings you can set, but for simple software, I just want a simple switch.
I actually prefer a textfile to change the colors, especially for a pdf reader I don't like white text on the "#000000" black that a lot of apps use. Instead I use "BackgroundColor = #ECECEC" which is much better for the eyes imho.
Webapps and mobile apps really need two dark modes - the one you like, i.e. light grey text on dark grey background, and another one for AMOLED screens, that's actual light grey or white on pure black.
On AMOLED displays, that #000000 not only looks nice, it also saves battery, as it shuts the given pixel off. The difference is substantial - with modern UI trends that waste most of screen space, a "grey on pure black" color scheme can often keep more than 50% of the pixels off! Meanwhile, a typical "grey on grey" dark mode will keep 100% of them on.
No AMOLED screens on pure black do not consume significantly less power than a dark non pure black color.
The power consumption on pure black vs another dark color is extremely similar. This is because on AMOLED screens individual pixels control themselves and power for off vs dark is very similar.
Not all dark modes are really that dark, though. MacOS comes to mind but there are plenty of examples. I'd be interested to see a comparison of average luminance.
Also, gray uniformity is an unfortunate shortcoming on a lot of OLEDs.
I like it when systems have a separate "dark mode," with grays, and "OLED dark mode," with true blacks for high contrast/battery saving on OLED displays. There are a few Android apps that do it and I wish it were more common.
Straight hex codes of course work, but they're not a good option if the program has more than one color.
Me too. I use OLED dark mode regardless of display technology but if mumble mumble display technology mumble battery is enough to get designers to see reason, then I’ll take the win.
> It is very rare these days to have an application that is all of the following...
Yep. On Windows there's:
- IrfanView for image editing
- foobar2000 for mp3s
They've been on my "must have" install list for ~20 years.
There's also Ditto for managing multiple clipboard entries. It's a good example of how a small open source tool with an optimized UI for 1 thing ends up being 100x better than the same feature MS tried to implement straight into Windows.
In your opinion what advantages does Ditto have over win+V? I've only used Ditto very briefly but didn't immediately notice anything too wildly different from the built-in implementation.
- Configure hot keys to bring up the clipboard selector (I use CTRL + Alt + V)
- Quickly select a clipboard item via hot key, arrow keys or mouse
- Search through the list of clipboard items immediately
- Configure how many items get saved and when they expire
- Ability to paste in plain-text as a separate hot key
Ditto hits all of those marks. Overall it feels like it was built by a person who actively uses it.
I use Imagine for image viewing. It has an amazing little feature: when you press the "Next Image" (or "Previous Image") button and the window resizes/moves to keep its size consistent with the new image's size, the mouse cursor is automatically moved to still be over that "Next"/"Previous" button.
It most likely takes about 5 lines of code to implement but what's important that the author actually thought about and took care about this scenario.
7-zip has already been mentioned, but I want to mention Notepad++. It's not as featureful as a full-on IDE or most modern extensible text editors, but it's fast and has a simple classic UI. When I just want to edit a basic text file I tend to use N++, as long as I'm on Windows and I don't want to boot up VSCode, let alone a full IDE.
I use N++ everyday and do love it; though I recently found out that it completely freezes trying to open modest sized single-line json (couple MB), which made me sad.
I was thinking about trying Winamp again at some point, but nowadays I use Spotify, and shuffling a ton of MP3s across systems doesn't seem as compelling as it did 10 or 15 years ago. I guess I don't really have a strong need for an mp3 player anymore.
Not open source, but mp3tag [1] and Notepad++ [2] (which is) would also be on my Windows list. For Mac I'd add MarkEdit [3], which is less than 3MB, carefully feature-scoped, and has a responsive developer behind it.
I haven't touched a Windows system in a few years, but when I worked as a Windows admin / programmer, SumatraPDF was my PDF viewer of choice. It does what it's supposed to do, does it well, and it doesn't get in my way while doing so. No subscription or cloud bullshit. And like you said, it's really small and fast.
To top it all off, it runs without an installer, you just drop the executable somewhere and you're good to go; so people can use it without having Administrator access or bothering / arguing with their IT department.
Sumatra is one of the first things I install on new Windows setups. Something refreshing about having PDFs open instantly. Screw adobe. Microsoft Edge meets my needs when it comes to PDF signing
I installed this on a whim a long time ago, thinking I was getting a mediocre pdf reader. Little did I know, I was getting a fantastic pdf reader that I would continue using for many, many years to come. I recommend it to anyone unsure what pdf reader to get. Here's to another many years!
I agree with his points about treating it like commercial software (in terms of having a website/screenshots/etc) but paradoxically the more professional an open source site looks, the more I assume there's going to be a catch. When you find a utility which has a site that looks like Richard Stallman's website you breathe easily because it's unlikely there's going to be any time-limited trial version, subscription models, ads-in-application, etc.
PDF readers are probably the opposite for the target demographic, given it's for Windows. It's a great reader last time I used it.
But agreed, many forget certain programs/tools/etc don't need to be actively to be updated once they just "work". Unless it's been rewritten in Rust, or if it's slightly older Go ;-).
> but paradoxically the more professional an open source site looks, the more I assume there's going to be a catch
I hate to admit this, but I feel the same way when it comes to programmers themselves.
I've tried very, very hard to be mindful of this in an effort to correct it, but I still have this gut feeling when I encounter a fellow programmer with the general put-together-ness of someone in the C-suite.
What makes it worse is that I've had this gut feeling validated several times in the past. I once worked with a very cover-of-GQ programmer who, after ten+ years in the industry, would struggle with FizzBuzz-esque problems.
Likewise, I'd never trust a software engineer in a suit, unless it's for a project written in Java or COBOL.
Nor a sysadmin that isn't wearing black, running Linux and/or listening to metal. Unless they have a white beard, then you know they have been around for a while.
(Just partially serious here, don't read too much into it. But you know it's true.)
Much like some people like wearing a nice watch, pants, etc, I like wearing a nicely cut suit or jacket. Is that really any different to people wearing a comfortable pair of jeans? And paradoxically, I have carried server equipment wearing an italian suit, whilst others were bemoaning dust getting on their levis jeans...
So please, please don't judge a book by it's cover. Actions speak louder.
I’m far from cover-of-GQ but I did wear a suit every day for a few years to a programming job. Maybe it’s the punk in me but when every person in the company, including the C suite, dressed in a t-shirt and jeans or sweats I felt the need to be a little counter culture. Honestly it was an insightful experiment in biases, seeing how different people treated me (such as your admission) based on my clothes alone.
… and I have no trouble writing fizz buzz.
On the contrary. As a user, if I cannot see that the software makers are either a big, well backed project OR at least they are able to sustain themselves by selling premium versions etc, I avoid using it. Most of the projects that cannot fund themselves eventually get abandoned, leaving you, as the user, hanging.
After getting burned by that a few times, I learned that the only way to deal with it was to ensure that those who run a project will be able to justify putting time into it when the actual realities and responsibilities of life like career, family, children etc start raining down.
Its all fun and games when you are in college or fresh out of college and maintaining an open source project. But the time and effort put into it suddenly becomes difficult to justify when you have more responsibilities at work, or even further, a family to which you have to justify spending that time on that project.
Now, the assumption of open source community is that, when that happens, someone else will take over the project and it will just keep going on.
Except it rarely happens except for very large projects. The net is filled with abandoned projects. And even when someone takes over the project, there is no guarantee that the original vision and quality will be kept.
So its much better to make sure that every open source project has a way to fund itself and its developers by making money in some way.
I share this sentiment. First I try to figure out their monetization strategy. Not finding it is a red flag unless it is obviously a small side project. Then I try to figure out where I am in their funnel. How hard are they likely to try to force me to get the paid version? Finally, I ask myself if I see myself eventually paying for the product if I need to. For example, is it a company I respect and is the product priced fairly?
This makes for a quite compelling case relating to the Casey Muratori video around clean code that made the tech community rounds recently. The developer of SumatraPDF has rolled his own implementations for a lot of things in order to reduce bloat and it shows! The app is lightning fast and does its job perfectly. Wish we had more native projects like that!
100% agreed! I’ve switched go Sumatra PDF roughly 5 years ago, after Adobe Reader became just absurdly slow. It’s crazy how a hobbyist can make product that’s vastly better than a multibillion dollar company.
Wouldn't it further their goals to make their software not abysmally slow? There can't be any competetive advantage in making something this slow, unless they did it with extremely cheap, unqualified programmers - then you could argue the cost savings were worth it.
You would think "reading PDFs without annoying the user" should be the first and golden goal. So much software in the modern era has horrible UX because the vendor's goals aren't aligned with the users' goals, where really the users' goals should be the only thing you care about as a company.
At my $DAYJOB you could fire 80% of the R&D staff and refocus efforts onto what our users actually want, and we would probably have a better product which less major incidents. This is for a company only in the ~$100m revenue. Of course, we're not $WEBSCALE so maybe things are different for the $1bn+ revenue companies.
You'd hope so, but I'm guessing their actual top priority is making Acrobat look cool in passing to the execs that they want to choose it for their company signed-business-document needs.
> So much software in the modern era has horrible UX because the vendor's goals aren't aligned with the users' goals, where really the users' goals should be the only thing you care about as a company.
That is the failure of market optimization nobody wants to talk about.
It's an undeniable fact that competitive pressure and desire to make money incentivize people to solve other people's problems, leading to products that get cheaper and better-aligned to customers' needs over time. A fact that's often brought up in defense of free markets and entrepreneurship. What is however ignored or left unsaid is that, it's true up to a point.
The same feedback system that initially aligns producers and consumers doesn't have a stop condition for "the most value for customers". There is no local minimum there either. That's because the market process is not actually optimizing for providing value in the first place. It happily blows past the point of being optimal to the customer, and continues to optimize for profitability by making things worse and worse for the consumers, until the end result is just "worst possible thing that's still marginally fit for purpose".
That only happens when the market is a monopoly. Unfortunately, software, as it is now (i.e. almost completely uregulated), is super conducive to breeding monopolies.
I don't think it has anything to do with monopolies. Just look around you, in the physical world. It's increasingly hard to get quality anything - quality clothes, quality tools, quality foods. So many commodities - the opposite of monopoly - end up optimized to the point of being junk.
I suppose in a perfect theoretical world - the one inhabited by frictionless spherical vacuums in a cow - this wouldn't be the case; market competition would allow people valuing quality to pay for it, and get quality things. The real world, unfortunately, is full of friction, and full of limits.
An example phenomenon, that seems to commonly occur in all kinds of product categories, is the self-segregation of vendors into two groups: the cheap vendors, and the premium vendors. Every vendor serving the "middle" - selling high quality products for a reasonable price - has two obvious ways to improve their margins: move "down" a little bit, by cutting on quality to lower their costs and pocket the difference, or go "up" a little, by improving quality further and increasing the price even more, again pocketing the difference. Here's what happens when each vendors makes such step, either "up" or "down":
- Some customers prefer to take the step "down", some others are happy to go "up", but this isn't symmetrical - at any point, a subset of customers is hitting its spending limits, in the sense of marginal price increase not being worth the marginal quality improvement. Those customers will migrate "down".
- Customers preferentially migrating "down" means the slightly lower quality product gets cheaper (economies of scale), while the vendors of the slightly higher quality product need to raise prices even more, to compensate.
- Profits of each of the vendors improve - both of those going "up" and "down" - but then, competitors follow and the extra margin evaporates.
- As a result, companies end up being somewhat locked in their choice - trying to reverse it will only risk getting outcompeted.
Now, iterate that several times, and you can see how the market starts splitting into two clusters. Unfortunately, because the market size (number of likely customers) is limited, trying to keep serving the "middle" only means you watch your customer base evaporate. Eventually, the profits available in the middle are not enough to recoup fixed costs, at which point the whole quality class itself evaporates. Without it, new customers have no choice - it's either the shitty version or the overpriced version, because the good deal is no longer on the market.
Note that there are no monopolies in sight in this scenario - all it takes is to have a finite population and fixed costs, and over time, the market will segregate into a cluster of maximally shitty versions of a product, and a cluster of exclusive (or certified/supported industrial use versions) but expensive versions of it.
Doesn't have a ToC sidebar, which I consider pretty much the absolute minimum of GUI necessary. You can use a keyboard-driven menu by pressing tab, but in my experience it just takes you to the last page of the pdf. Maybe there's a bug or maybe it's user error. Regardless, this isn't what I'm looking for.
> This comes back to Jeff Bezos' wisdom: there will never be a time when users want bloated and slow apps so being small and fast is a permanent advantage.
Did he share that with rest of the company or kept the knowledge to himself ?
He said it specifically about fast shipping, the SumatraPDF author extended the analogy to software.
> In our retail business, we know that customers want low prices, and I know that's going to be true 10 years from now. They want fast delivery; they want vast selection.[1]
Been using SumatraPDF for probably a decade now and it’s always been great. Thanks, Chris!
If there’s one feature I’d absolutely love, because it’d let me delete Acrobat Reader again, it’d be digital signatures. Clients demanding that documents be digitally signed (but self-issued certs were ok?!) was the only reason I grudgingly reinstated it on one of my machines.
> I learned about how Plan 9 C code had non-traditional scheme of #include files where they don't put #ifdef wrappers in each .h file to allow multiple inclusion and .h files don't include other .h files. As a result .c files have to include every .h file they need and in the right order. It's a bit of a pain and no other modern C++ codebase I know of maintains such discipline.
I've always thought this is exactly how headers should be treated. Effectively they should be interfaces importing functionality locally, and each header should make it explicit what is imported from name alone.
The problem with this scheme is that adding a dependency to a header now breaks source compatibility (even if nothing new needs to be linked in and a piece of a library just needs to pull in a different piece of itself or even of libc). It’s pretty and clean, but you need an environment that’s friendly to crosscutting changes to handle source-compat breakage. (Such as, yes, a dependency-tree leaf like an end-user application, or a monolithic tree like a traditional Unix.)
You can accomplish most of this by using forward declarations and the pimpl idiom as Scott Meyers recommends. Performance can be greatly improved with precompiled headers. Headers without pragmas or ifdef's sounds like masochism.
ShareX is the nr1 software I wish was available under Linux. It does so much and perfectly. But I guess the whole X11/Wayland + different UI toolkits makes it complicated.
And honourable mention: voidtools Everything. It's freeware, not open-source, but it's the best search utility for Windows around. It beats the Windows Explorer / startmenu built-in search on every single axis, to a comical degree.
What features of ShareX do you use in practice? I came across it around the end of my Windows usage (a few years ago), and the only thing I really found useful was the Upload feature to get an Imgur (or similar) link.
Making screenshots, screen recording (small gifs or video files), sharing the files, color picking, basic image editing, video converting, OCR from scanned documents. So a lot
I use it, it's fast and it does its job well. It looks kind of plain compared to more modern looking applications, but that's probably contributing to its speed advantage.
After Foxit started to imitate the worst parts of Adobe Acrobat Reader, I re-discovered SumatraPDF. What a refreshing piece of software to use, the lack of bullshit is amazing.
Of course, it's blocked at work so I can't use it on my Windows machine.
I’ve unfortunately fallen into Calibre. Only because many years ago I had issues with SunatraPDF. Calibre is….. just strangest software. I still fumble around with it and it gets super slow. Great read thank you
Thanks for the reminder - I just switched to OSX and had been looking unsuccessfully for a Paint.NET equivalent for the Mac. Photopea.com should do it.
I've been very happy using SumatraPDF on Windows, because it redraws the PDF after the file has been written over. (This is especially useful with LaTeX on Windows.)
When I have the PDF open with Adobe Acrobat, my LaTeX compiler can't write over the open PDF file.
174 comments
[ 3.6 ms ] story [ 230 ms ] thread- Small and fast
- Hand-crafted for a particular platform
- Not bloated with oddly specific UI menus and configuration settings
It has one job and it does it very well. Thank you for it.
I mean, my employer paid 500 euros for an Iphone which maybe costs 50 euros to be produced. From those 450 euros is an Apple engineer not able to test the smalest phone with bigger fonts and to implement proper hyphenation on menu items ?
Yes, there are custom settings you can set, but for simple software, I just want a simple switch.
On AMOLED displays, that #000000 not only looks nice, it also saves battery, as it shuts the given pixel off. The difference is substantial - with modern UI trends that waste most of screen space, a "grey on pure black" color scheme can often keep more than 50% of the pixels off! Meanwhile, a typical "grey on grey" dark mode will keep 100% of them on.
The power consumption on pure black vs another dark color is extremely similar. This is because on AMOLED screens individual pixels control themselves and power for off vs dark is very similar.
Source: https://www.xda-developers.com/amoled-black-vs-gray-dark-mod...
Also, gray uniformity is an unfortunate shortcoming on a lot of OLEDs.
Straight hex codes of course work, but they're not a good option if the program has more than one color.
Yep. On Windows there's:
They've been on my "must have" install list for ~20 years.There's also Ditto for managing multiple clipboard entries. It's a good example of how a small open source tool with an optimized UI for 1 thing ends up being 100x better than the same feature MS tried to implement straight into Windows.
It most likely takes about 5 lines of code to implement but what's important that the author actually thought about and took care about this scenario.
There is also a plugin to reformat JSON.
It was the perfect program: completely invisible and yet completely functional.
[1] https://www.mp3tag.de/en/
[2] https://notepad-plus-plus.org/
[3] https://github.com/MarkEdit-app/MarkEdit
Discussed at the time (133 comments): https://news.ycombinator.com/item?id=27968900
SumatraPDF 3.4 Released - https://news.ycombinator.com/item?id=31566401 - May 2022 (79 comments)
Lessons learned from 15 years of SumatraPDF, an open source Windows app - https://news.ycombinator.com/item?id=27968900 - July 2021 (133 comments)
Lessons learned from 15 years of SumatraPDF, an open source Windows app - https://news.ycombinator.com/item?id=27963298 - July 2021 (4 comments)
Sumatra PDF Is a PDF, ePub, MOBI, CHM, XPS, DjVu, CBZ, CBR Reader for Windows - https://news.ycombinator.com/item?id=27589337 - June 2021 (2 comments)
Does it have allow searching by folder yet? It’s the killer feature that I need in Acrobat
But agreed, many forget certain programs/tools/etc don't need to be actively to be updated once they just "work". Unless it's been rewritten in Rust, or if it's slightly older Go ;-).
I hate to admit this, but I feel the same way when it comes to programmers themselves.
I've tried very, very hard to be mindful of this in an effort to correct it, but I still have this gut feeling when I encounter a fellow programmer with the general put-together-ness of someone in the C-suite.
What makes it worse is that I've had this gut feeling validated several times in the past. I once worked with a very cover-of-GQ programmer who, after ten+ years in the industry, would struggle with FizzBuzz-esque problems.
Nor a sysadmin that isn't wearing black, running Linux and/or listening to metal. Unless they have a white beard, then you know they have been around for a while.
(Just partially serious here, don't read too much into it. But you know it's true.)
So please, please don't judge a book by it's cover. Actions speak louder.
Suits don't set off my bullshit detector. Legitimate hackers have had to wear them since the dawn of computing.
The devil is in the details. Alarm bells start to ring for me when the sum of the details exceeds what my gut feels is reasonable.
Being worthy of the cover of GQ takes a ton of time, energy, and resources to maintain.
Managing to maintain the same perfect tan all year is an investment for sure, but not necessarily an investment that aligns with the hacker ethos.
Was it a tailored suit by a designer brand? Alternatively, was it a fancy bespoke suit?
Suits usually don't set off my bullshit detector. Many legitimate hackers have had to wear them since the dawn of computing.
It's the details that catch my eye.
The money, priorities, and (most import of all!) time are in the details.
After getting burned by that a few times, I learned that the only way to deal with it was to ensure that those who run a project will be able to justify putting time into it when the actual realities and responsibilities of life like career, family, children etc start raining down.
Its all fun and games when you are in college or fresh out of college and maintaining an open source project. But the time and effort put into it suddenly becomes difficult to justify when you have more responsibilities at work, or even further, a family to which you have to justify spending that time on that project.
Now, the assumption of open source community is that, when that happens, someone else will take over the project and it will just keep going on.
Except it rarely happens except for very large projects. The net is filled with abandoned projects. And even when someone takes over the project, there is no guarantee that the original vision and quality will be kept.
So its much better to make sure that every open source project has a way to fund itself and its developers by making money in some way.
Probably, all of their best programmers are working on revenue generators, not performance.
At my $DAYJOB you could fire 80% of the R&D staff and refocus efforts onto what our users actually want, and we would probably have a better product which less major incidents. This is for a company only in the ~$100m revenue. Of course, we're not $WEBSCALE so maybe things are different for the $1bn+ revenue companies.
These execs don't use Acrobat themselves.
That is the failure of market optimization nobody wants to talk about.
It's an undeniable fact that competitive pressure and desire to make money incentivize people to solve other people's problems, leading to products that get cheaper and better-aligned to customers' needs over time. A fact that's often brought up in defense of free markets and entrepreneurship. What is however ignored or left unsaid is that, it's true up to a point.
The same feedback system that initially aligns producers and consumers doesn't have a stop condition for "the most value for customers". There is no local minimum there either. That's because the market process is not actually optimizing for providing value in the first place. It happily blows past the point of being optimal to the customer, and continues to optimize for profitability by making things worse and worse for the consumers, until the end result is just "worst possible thing that's still marginally fit for purpose".
I suppose in a perfect theoretical world - the one inhabited by frictionless spherical vacuums in a cow - this wouldn't be the case; market competition would allow people valuing quality to pay for it, and get quality things. The real world, unfortunately, is full of friction, and full of limits.
An example phenomenon, that seems to commonly occur in all kinds of product categories, is the self-segregation of vendors into two groups: the cheap vendors, and the premium vendors. Every vendor serving the "middle" - selling high quality products for a reasonable price - has two obvious ways to improve their margins: move "down" a little bit, by cutting on quality to lower their costs and pocket the difference, or go "up" a little, by improving quality further and increasing the price even more, again pocketing the difference. Here's what happens when each vendors makes such step, either "up" or "down":
- Some customers prefer to take the step "down", some others are happy to go "up", but this isn't symmetrical - at any point, a subset of customers is hitting its spending limits, in the sense of marginal price increase not being worth the marginal quality improvement. Those customers will migrate "down".
- Customers preferentially migrating "down" means the slightly lower quality product gets cheaper (economies of scale), while the vendors of the slightly higher quality product need to raise prices even more, to compensate.
- Profits of each of the vendors improve - both of those going "up" and "down" - but then, competitors follow and the extra margin evaporates.
- As a result, companies end up being somewhat locked in their choice - trying to reverse it will only risk getting outcompeted.
Now, iterate that several times, and you can see how the market starts splitting into two clusters. Unfortunately, because the market size (number of likely customers) is limited, trying to keep serving the "middle" only means you watch your customer base evaporate. Eventually, the profits available in the middle are not enough to recoup fixed costs, at which point the whole quality class itself evaporates. Without it, new customers have no choice - it's either the shitty version or the overpriced version, because the good deal is no longer on the market.
Note that there are no monopolies in sight in this scenario - all it takes is to have a finite population and fixed costs, and over time, the market will segregate into a cluster of maximally shitty versions of a product, and a cluster of exclusive (or certified/supported industrial use versions) but expensive versions of it.
Did he share that with rest of the company or kept the knowledge to himself ?
> In our retail business, we know that customers want low prices, and I know that's going to be true 10 years from now. They want fast delivery; they want vast selection.[1]
[1]https://www.goodreads.com/quotes/966699-i-very-frequently-ge...
If there’s one feature I’d absolutely love, because it’d let me delete Acrobat Reader again, it’d be digital signatures. Clients demanding that documents be digitally signed (but self-issued certs were ok?!) was the only reason I grudgingly reinstated it on one of my machines.
I've always thought this is exactly how headers should be treated. Effectively they should be interfaces importing functionality locally, and each header should make it explicit what is imported from name alone.
0, https://github.com/sylikc/jpegview
1, https://getsharex.com/
ShareX is the nr1 software I wish was available under Linux. It does so much and perfectly. But I guess the whole X11/Wayland + different UI toolkits makes it complicated.
And honourable mention: voidtools Everything. It's freeware, not open-source, but it's the best search utility for Windows around. It beats the Windows Explorer / startmenu built-in search on every single axis, to a comical degree.
Of course, it's blocked at work so I can't use it on my Windows machine.
When I have the PDF open with Adobe Acrobat, my LaTeX compiler can't write over the open PDF file.