I have no experience in PNG encoding, but found https://github.com/brion/mtpng
The author mentions "It takes about 1.25s to save a 7680×2160 desktop screenshot PNG on this machine; 0.75s on my faster laptop." which makes me think your slower performance on smaller images either comes using the max compression setting or using hardware with worse single threaded performance.
Although these don't directly solve the PNG encoding performance problem, maybe some of these ideas could help?
* if users will be using the app in an environment with plenty of bandwidth and you don't mind paying for server bandwidth, could you serve up PNGs with less compression? Max compression takes 15s and saves 35MB's. If the users have 50mbit internet, then it only takes 5.6s to transmit the extra 35MB, so you could come out 10s ahead by not compressing. (yes, I see your comment about "don't say to use lower compression", but no reason to be killed by compression CPU cost if the bandwidth is available).
* initially show the user a lossy image (could be a downsized png) that can be quickly generated. You could then upgrade to a full quality once you finish encoding the PNG, or if server bandwidth/CPU usage is an issue then you could only upgrade if the user clicks a "high-quality" button or something. If server CPU usage is an issue, the low then high quality approach could let you turn down the compression setting and save some CPU at the cost of bandwidth and user latency.
I went to high school in a science magnet program in Texas. Students from 3 high schools were eligible for the magnet program, and the magnet program was housed in one of the 3 high schools. Our math+science classes were in the magnet program, but our English/history/PE/art/all other classes were in the host school. The program made up about 10% of the host high scool, and students in the program were counted as part of the host school for purposes of university admission.
This understandably made people unhappy at the host school - ~7% of the class is academic high achievers from out of the school zone who take most of the admission spots reserved for the top N%.
I don't know of any cases of parents moving to avoid the extra competition, but I probably wouldn't have heard of that if it happened. I do know of some people set on going to UT who did not apply to the magnet program so they could have less competition.
The point here is you don't need to move to a rural area to decrease school competition. There are plenty of cases where you can move a mile to get into the zone of a less competitive school.
Wow. These videos bring home how insane the rescue was. I could not imagine anyone going through those tunnels with zero visibility and diving equipment, let alone while moving a sedated person along as well.
Parallel prefix sum is the most underappreciated parallel algorithm in my opinion, and this paper is the best explanation and visualization of the concept I've seen.
A few years ago I worked on a deep learning project using parallel prefix sum as a new way to accelerate recurrent neural nets on GPUs[0]. The paper in this post was the most important reference and source of inspiration. I'm happy to see this paper shared on HN in hopes that it also sparks ideas in others.
How much wealthier would you be if you paid no taxes at all in tax year 2020?
An example with some made-up numbers that could apply to some HN users:
Let's say your net worth was $500K at the start of the year, you earned $200K income in the year and spent $50K. Without taxes, your end of year net worth would be $650K. However, you pay $40K+ in taxes, which makes your net worth <=$610K. So effectively you paid $40K/$650K = 6.1% of your wealth in taxes.
"Regular" people build wealth through income, while wealthy build wealth through appreciating assets. The point I take from headlines like these are not "US executives illegally avoid taxes", it is "tax rules favor the wealthy". Increasing tax on appreciated assets by raising capital gains rates, removing step-up basis, or (maybe) taxing unrealized gains could shift some of the tax drag on wealth from income earners towards asset holders. All of these would need to be done very carefully to not overly hurt small business owners, perhaps through something like a lifetime capital gains exemption (similar to gift exemption, apparently existed in Canada in the 80s[0]).
I've found Walmart.com to be about as good as Amazon for my online shopping (in the US). I particularly find Walmart to be a lot better for some dry goods like cereal and Clif bars. They can mix delivery from their warehouses and from local stores.
This is not me shilling Walmart. I've been pleasantly surprised by it in the last year, and find it to be a real competitor to shopping at Amazon.
I'm a runner who never goes on an "exercise walk", but there are plenty of (non-injury) reasons someone might prefer walking:
- less strenuous
- much less fitness required to walk for an hour than to run for 30 minutes
- easier to avoid sweating while walking, which can be useful for some commutes
- easier to talk on the phone while walking
- easier to find someone to walk with you than it is to find someone who will run with you
The article was about making fitness easy and not about making fitness efficient. I 100% agree that running is more efficient, but I'd recommend walking to anyone who thinks "bleh/eww" at the thought of exertion.
I also find the "or" wording of the law interesting.
I do think it's racist as it grants the privilege of abandoning the Jewish religion while remaining a legally privileged class (Jew) to people with some ancestries (Jewish) but not with others.
Although these don't directly solve the PNG encoding performance problem, maybe some of these ideas could help?
* if users will be using the app in an environment with plenty of bandwidth and you don't mind paying for server bandwidth, could you serve up PNGs with less compression? Max compression takes 15s and saves 35MB's. If the users have 50mbit internet, then it only takes 5.6s to transmit the extra 35MB, so you could come out 10s ahead by not compressing. (yes, I see your comment about "don't say to use lower compression", but no reason to be killed by compression CPU cost if the bandwidth is available).
* initially show the user a lossy image (could be a downsized png) that can be quickly generated. You could then upgrade to a full quality once you finish encoding the PNG, or if server bandwidth/CPU usage is an issue then you could only upgrade if the user clicks a "high-quality" button or something. If server CPU usage is an issue, the low then high quality approach could let you turn down the compression setting and save some CPU at the cost of bandwidth and user latency.