HNHacker News
TopNewBestAskShowJobs

adolgert

155 karma · joined July 16, 2009

Software for science.
submissionscomments
adolgert··on A High-Level Technical Overview of Homomorphic Encryption
A select statement, in this case, looks like a ternary in C, "y = (x > 0) ? 1 : 0". In FHE with integers, it's evaluated by making a large polynomial all x <= 0 become 0 and all x>0 become 1. Once you have y, you evaluate both halves of the if-then but multiply one result by y and the other by (1-y). Then add them.
adolgert··on Ask HN: What is the best thing you read in 2022?
When I find myself nervous about a meeting, I go back to this book and outline the steps it suggests, not just the gist of it, but I walk through the steps. It's like having a colleague who wants to help you be a better person.
adolgert··on Missing wheat from the war is less than 1% of global wheat crop
This is a great reference! There is also an entry in the congressional record on declassification of the data. And 3 scientific papers. If you know more, send me a note. I worked in the area of rust spread and have always wanted to learn more about this.
adolgert··on Missing wheat from the war is less than 1% of global wheat crop
I didn't mean to drop that comment and leave. I learned about the weaponization from Ft. Dietrich people. The group that worked on this is long since retired. They published three papers around 1950, as three parts, that are about 1. the largest study of spread of rust fungus outdoors 2. storage of rusts and 3. response of rust to weather. All useful for stopping rust on a crop. And I see someone contributed references that are more direct than my scientific ones. I was working on prevention of rust spread.
adolgert··on Missing wheat from the war is less than 1% of global wheat crop
Famine is caused by _local_ supply shortages. The Dust Bowl in the US was a 30% wheat shortage, but it can happen from even less shortfall if transportation is a problem. The US weaponized wheat stem rust against Russia's wheat crops during the cold war, and they were hoping the weapon would reduce total yield by 15% in order to cause major damage.
adolgert··on A short history of the O’Reilly animals (2013)
Does anybody remember the software that wouldn't let you install until you gave it the name of an endangered animal in a given part of the world? I ran into this on Unix in 1988. It would ask, for instance, for the name of an endangered marsupial in Argentina, and you had to go look that up. I always thought the O'Reilly covers came from this, but apparently not.
adolgert··on H3: Hexagonal hierarchical geospatial indexing system
Dumb question: I've put points on a sphere using a Fibonacci series, then relaxed them and triangulated them, and there are some 5's and 7's, not all hexagons. I thought an all-hexagon tiling wasn't possible. How do they do it?
adolgert··on 100% Bug Free Software with Mutation Testing
"...understand why they are testing." That's interesting. There is an information-theoretic measure for test quality that asks how effective a test is by asking how closely it examines a test output. For instance, does it "smoke test" that the output isn't NULL, or does it look at a returned data structure and enforce invariants in detail. It's the flip-side of asking in how much detail a test exercises the code. Well, keep having fun. Testing is a great way to think about code.
adolgert··on 100% Bug Free Software with Mutation Testing
Mutation testing looks really fun until you use it. It has two problems, that false positives and false negatives abound, and that it doesn't scale well as code gets larger. Suppose you modify code, then how long does it take the mutation testing framework to retest the relevant code? On the other hand, mutations can do a good job of estimating test coverage. In particular, they can help to prioritize tests by finding tests that cover the most mutations.
adolgert··on Finding Software Bugs Using Symbolic Execution
This article is interesting in context. You're trying to select tests to run. Instead of using educated guesses about parameters (combinatorial interaction designs), you're going to look at the system under test. You could generate lots of tests and see what worked by looking at coverage of those tests (line coverage or mutation coverage). Instead, you'll analyze the code with symbolic execution and make choices. Klee seems like best-in-class for symbolic execution. A more popular alternative these days is concolic execution, which combines concrete execution with symbolic constraint solving. That's in Pex and Intellisense.
adolgert··on The unreasonable effectiveness of the Julia programming language
Dijkstra on the matter: https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/E...
adolgert··on I don't understand Python's Asyncio
The Fluent Python book has a nice set of chapters on coroutines, futures, and async.io. They present not the whole of what it does but one way to do it, which helps.
adolgert··on Ask HN: What book have you given as a gift?
bash Pocket Reference. I keep a stack by the office door, sort of like a candy bowl.
adolgert··on Scientists say sudden oak death epidemic is no longer stoppable
There's a great paper modeling risk of invasion by sudden oak death into California. Computing for science, done right: http://onlinelibrary.wiley.com/doi/10.1890/ES10-00192.1/full
adolgert··on Scientists say sudden oak death epidemic is no longer stoppable
It doesn't take a huge drop in production to cause famine, either. The Wheat Stem Rust epidemics in the US caused famines at regular intervals before genetics made wheat resistant, and production was down under ten percent in some cases. It's about getting food where it needs to be, and it sounds like the English weren't helping.
adolgert··on The best is the last
See the square windows on the Lockheed Constellation? The window corners turned out to be the weak point during pressurization, leading to failure, so windows were rounded after that.
adolgert··on Ask HN: Is Knuth's TAOCP worth the time and effort?
Knuth's books are a baseline for "how things are done" for many, many areas, so having read them lets you hit par on most holes. Optimizing code for an architecture is very interesting, but it comes after 1) figuring out which ways the math can be stated correctly and 2) calculating the order of computation. Then architecture gives numbers to put into the order of computation. Knuth focuses on the first two, but maybe a few books' worth of focusing on those is understanding them well and not such a waste.
adolgert··on Moving away from HDF5
That's a good question. Both ASN.1 and Google's offering have more limited language coverage (ASN.1 is ancient, but venerable, now in the hands of NCBI), but maybe we should expand that list. These are tools that serialize buffers with razor-sharp binary specifications. I, too, use HDF5 for all of its features, but maybe someone who is rolling their own, for instance, under Spark, should have a solid binary specification.
adolgert··on Moving away from HDF5
I may not agree with Cyrille, but what about alternatives for storing binary data that might be structured and play well with newer tools like Spark? ASN.1 and Google Protocol Buffers both specify a binary file format and generate language-specific encoding and decoding. Is there a set of lightweight binary data tools we're missing?
adolgert··on Why Are Projects Always Behind Schedule?
The article suggests that failures in an n-step process are distributed as a Binomial distribution, which doesn't have the kind of long tail you describe. I hazard that you're right and they're imprecise. It would be great if they measured the shape of the distribution of completion times, scaling for project length, and then suggested a theory behind it.
adolgert··on Undercover Activists Buy Off Professors in Climate Sting
When you get a grant, the university has academic freedom stipulations in the contract or memorandum of understanding. You cite sources for every paper. There's a yearly statement of conflict of interest on file. There is absolutely no way these researchers aren't aware of the difficulty of what they've done, even if they are saying what they believe.
adolgert··on GNU Scientific Library 2.0
The Gnu Public License forbids redistribution unless what you distribute is also GPL. It means I can't use this in anything I share on behalf of scientific groups that want to use Open Source. I've run into this a few times, and it's rough when GSL is so useful.
adolgert··on Comparing a web service written in Python and Go [pdf]
These are great ideas. I told Valentin to drop by. Because DAS is an aggregator with an expert-system style query language, there is sharing among the Python services for caching. It's the caching that makes async code a good option. Preforking might work against this without significant increase in complexity in order to communicate with a single local cache. Remember that this is a web service for the Large Hadron Collider. Nothing about that is small.
adolgert··on Real Programmers Don't Use PASCAL (1982)
"Eating quiche" used to be slang for a sexual act. It's when the joke is most funny that we need to recognize mechanisms of exclusion.
adolgert··on The fixed_point C++ Class Template
Fixed point arithmetic, as one of the number types, has very well-defined mathematical properties. The Computational Geometry Algorithms library describes this. I think fixed point would be a special case of exact rational numbers. They could have classification structure much like iterators do, except classified for whether they form a field or are double-constructable, and such.
adolgert··on Ask HN: What data visualisation tools do data scientists and developers use?
There's a sharp divide between what's prepackaged for typical uses and attempts to customize visualization for any of three-dimensionality, parallel processing, or interactivity with large data. The latter set of tools use the Visualization Toolkit, or Paraview, MayaVI, and VisIt, all of which sit on top of VTK. Or there are commercial applications, such as EnVision and IDL. Keep a language-agnostic stable of prepackaged visualization techniques in Python, R, Matlab, Mathematica, Excel (yes, even), Julia, and Javascript. Then reach for the big hammers when absolutely necessary.
adolgert··on Ask HN: How do you know if you're a good dev or not?
I'm happy to recount that I solved a problem by recognizing exactly what kind of parser was needed, but there was also that time Nate took a month of vacation, and I'd only written 30 useful lines of code for his project when he returned. Development is a creative process and therefore a mess of too much effort and too much ego. So I count projects and times the client was happy, or we got hacked the first day of deployment, or our work won the next grant.

But try this: Find someone friendly and interested and buy them a beer or an Amazon gift card or a snazzy keyboard in return for reviewing some of your code. Learn and get socialized, like taking your pup to the dog park. Make yourself acceptable enough to be hirable, and maybe that's enough.

adolgert··on Ask HN: Good books on debugging?
"Debugging Applications" by John Robbins is an old MS Press book, now 43 cents on Amazon, that covers everything from high level code structure to a nice primer on reading x86 assembly. I have more recent books, but this is the one that taught me to gird my coding loins for a fight.
adolgert··on Categories for the Practicing Physicist (2009) [pdf]
And for the practicing computer scientist, category theory provides a single structure suitable for expressing linear control theory, automata, and more: Arbib, Michael A., and Ernest G. Manes. "Machines in a category: An expository introduction." SIAM review 16.2 (1974): 163-192.

"Category theory, not always a total waste of time." (TM)

adolgert··on Planet Generation - Part I
If you search for "fibonacci grid sphere," you'll find the grid used for research. It's less regular and a lot more work, with a few regions of five or seven sides, but it might look more natural, and it's used because it has fewer sharp corners than the icosohedron. Just another option.
Page 1 of 3Next →