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.
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.
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.
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.
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.
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.
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?
"...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.
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.
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.
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.
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.
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.
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.
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.
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?
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.
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.
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.
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.
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.
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.
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.
"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.
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)
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.