nhaliday + stackex   187

coding style - C++ code in header files - Stack Overflow
There is occasionally some merit to putting code in the header, this can allow more clever inlining by the compiler. But at the same time, it can destroy your compile times since all code has to be processed every time it is included by the compiler.

Finally, it is often annoying to have circular object relationships (sometimes desired) when all the code is the headers.

Bottom line, you were right, he is wrong.

EDIT: I have been thinking about your question. There is one case where what he says is true. templates. Many newer "modern" libraries such as boost make heavy use of templates and often are "header only." However, this should only be done when dealing with templates as it is the only way to do it when dealing with them.
q-n-a  stackex  programming  best-practices  c(pp)  pls  compilers  types 
yesterday by nhaliday
c - What REALLY happens when you don't free after malloc? - Stack Overflow
keep this stuff in mind when writing competition stuff, can usually just omit deletes/frees unless you're really running up against the memory limit:
Just about every modern operating system will recover all the allocated memory space after a program exits.


On the other hand, the similar admonition to close your files on exit has a much more concrete result - if you don't, the data you wrote to them might not get flushed, or if they're a temp file, they might not get deleted when you're done. Also, database handles should have their transactions committed and then closed when you're done with them. Similarly, if you're using an object oriented language like C++ or Objective C, not freeing an object when you're done with it will mean the destructor will never get called, and any resources the class is responsible might not get cleaned up.


I really consider this answer wrong.One should always deallocate resources after one is done with them, be it file handles/memory/mutexs. By having that habit, one will not make that sort of mistake when building servers. Some servers are expected to run 24x7. In those cases, any leak of any sort means that your server will eventually run out of that resource and hang/crash in some way. A short utility program, ya a leak isn't that bad. Any server, any leak is death. Do yourself a favor. Clean up after yourself. It's a good habit.


Allocation Myth 4: Non-garbage-collected programs should always deallocate all memory they allocate.

The Truth: Omitted deallocations in frequently executed code cause growing leaks. They are rarely acceptable. but Programs that retain most allocated memory until program exit often perform better without any intervening deallocation. Malloc is much easier to implement if there is no free.

In most cases, deallocating memory just before program exit is pointless. The OS will reclaim it anyway. Free will touch and page in the dead objects; the OS won't.

Consequence: Be careful with "leak detectors" that count allocations. Some "leaks" are good!
q-n-a  stackex  programming  memory-management  performance  systems  c(pp)  oly-programming 
10 days ago by nhaliday
macos - AutoHotkey Equivalent for OS X? - Ask Different
hammerspoon looks like best option in that it's scriptable (but probably less featureful than the paid "Keyboard Maestro")
q-n-a  stackex  apple  osx  desktop  yak-shaving  integration-extension  tools 
18 days ago by nhaliday
ellipsis - Why is the subject omitted in sentences like "Thought you'd never ask"? - English Language & Usage Stack Exchange
This is due to a phenomenon that occurs in intimate conversational spoken English called "Conversational Deletion". It was discussed and exemplified quite thoroughly in a 1974 PhD dissertation in linguistics at the University of Michigan that I had the honor of directing.

Thrasher, Randolph H. Jr. 1974. Shouldn't Ignore These Strings: A Study of Conversational Deletion, Ph.D. Dissertation, Linguistics, University of Michigan, Ann Arbor


"The phenomenon can be viewed as erosion of the beginning of sentences, deleting (some, but not all) articles, dummies, auxiliaries, possessives, conditional if, and [most relevantly for this discussion -jl] subject pronouns. But it only erodes up to a point, and only in some cases.

"Whatever is exposed (in sentence initial position) can be swept away. If erosion of the first element exposes another vulnerable element, this too may be eroded. The process continues until a hard (non-vulnerable) element is encountered." [ibidem p.9]
q-n-a  stackex  anglo  language  writing  speaking  linguistics  thesis 
7 weeks ago by nhaliday
Applications of computational learning theory in the cognitive sciences - Psychology & Neuroscience Stack Exchange
1. Gold's theorem on the unlearnability in the limit of certain sets of languages, among them context-free ones.

2. Ronald de Wolf's master's thesis on the impossibility to PAC-learn context-free languages.

The first made quiet a stir in the poverty-of-the-stimulus debate, and the second has been unnoticed by cognitive science.
q-n-a  stackex  psychology  cog-psych  learning  learning-theory  machine-learning  PAC  lower-bounds  no-go  language  linguistics  models  fall-2015 
7 weeks ago by nhaliday
etymology - What does "no love lost" mean and where does it come from? - English Language & Usage Stack Exchange
Searching Google books, I find that what the phrase originally meant in the 17th and 18th centuries was that "A loves B just as much as B loves A"; the amount of love is balanced, so there is no love lost. In other words, unrequited love was considered to be "lost". This could be used to say they both love each other equally, or they both hate each other equally. The idiom has now come to mean only the second possibility.


If two people love each other, then fall out (because of an argument or other reason), then there was love lost between them. But if two people don't care much for each other, then have a falling out, then there really was no love lost between them.

Interestingly, when it was originated in the 1500s, until about 1800, it could indicate either extreme love or extreme hate.
q-n-a  stackex  anglo  language  aphorism  jargon  emotion  sociality  janus  love-hate  literature  history  early-modern  quotes  roots  intricacy  britain  poetry  writing  europe  the-great-west-whale  paradox  parallax  duty  lexical 
april 2018 by nhaliday
"Really six people present": origin of phrase commonly attributed to William James - English Language & Usage Stack Exchange
Whenever two people meet, there are really six people present. There is each man as he sees himself, each man as the other person sees him, and each man as he really is.


Here's a graph of the number of references of the phrase "really six people present" Click on the first range (1800-1017) and you'll see this, which attributes this statement to Oliver Wendell Holmes. What's perhaps relevant is the reference to "John and James"--I'm guessing two placeholder names.
q-n-a  stackex  quotes  aphorism  law  big-peeps  old-anglo  illusion  truth  anthropology  psychology  cog-psych  social-psych  realness  dennett  biases  neurons  rationality  within-without  theory-of-mind  subjective-objective  forms-instances  parallax  the-self 
march 2018 by nhaliday
microeconomics - Partial vs. general equilibrium - Economics Stack Exchange
The main difference between partial and general equilibrium models is, that partial equilibrium models assume that what happens on the market one wants to analyze has no effect on other markets.
q-n-a  stackex  explanation  jargon  comparison  concept  models  economics  micro  macro  equilibrium  supply-demand  markets  methodology  competition 
november 2017 by nhaliday
parsing - lexers vs parsers - Stack Overflow
Yes, they are very different in theory, and in implementation.

Lexers are used to recognize "words" that make up language elements, because the structure of such words is generally simple. Regular expressions are extremely good at handling this simpler structure, and there are very high-performance regular-expression matching engines used to implement lexers.

Parsers are used to recognize "structure" of a language phrases. Such structure is generally far beyond what "regular expressions" can recognize, so one needs "context sensitive" parsers to extract such structure. Context-sensitive parsers are hard to build, so the engineering compromise is to use "context-free" grammars and add hacks to the parsers ("symbol tables", etc.) to handle the context-sensitive part.

Neither lexing nor parsing technology is likely to go away soon.

They may be unified by deciding to use "parsing" technology to recognize "words", as is currently explored by so-called scannerless GLR parsers. That has a runtime cost, as you are applying more general machinery to what is often a problem that doesn't need it, and usually you pay for that in overhead. Where you have lots of free cycles, that overhead may not matter. If you process a lot of text, then the overhead does matter and classical regular expression parsers will continue to be used.
q-n-a  stackex  programming  compilers  automata  explanation  comparison  jargon  strings 
november 2017 by nhaliday
python - Short Description of the Scoping Rules? - Stack Overflow
Actually, a concise rule for Python Scope resolution, from Learning Python, 3rd. Ed.. (These rules are specific to variable names, not attributes. If you reference it without a period, these rules apply)

LEGB Rule.

L, Local — Names assigned in any way within a function (def or lambda)), and not declared global in that function.

E, Enclosing-function locals — Name in the local scope of any and all statically enclosing functions (def or lambda), from inner to outer.

G, Global (module) — Names assigned at the top-level of a module file, or by executing a global statement in a def within the file.

B, Built-in (Python) — Names preassigned in the built-in names module : open,range,SyntaxError,...

As a caveat to Global access - reading a global variable can happen without explicit declaration, but writing to it without declaring global(var_name) will instead create a new local instance.


Essentially, the only thing in Python that introduces a new scope is a function definition. Classes are a bit of a special case in that anything defined directly in the body is placed in the class's namespace, but they are not directly accessible from within the methods (or nested classes) they contain.
q-n-a  stackex  programming  intricacy  gotchas  python  pls  objektbuch  cheatsheet 
november 2017 by nhaliday
Homebrew: List only installed top level formulas - Stack Overflow
Use brew leaves: show installed formulae that are not dependencies of another installed formula.
q-n-a  stackex  howto  yak-shaving  programming  osx  terminal  network-structure  graphs  trivia  tip-of-tongue  workflow  build-packaging 
november 2017 by nhaliday
awk - Assigning system command's output to variable - Stack Overflow
awk 'BEGIN {"date" | getline mydate; close("date"); print "returns", mydate}'
q-n-a  stackex  howto  yak-shaving  terminal  programming  gotchas 
november 2017 by nhaliday
functions - What are the use cases for different scoping constructs? - Mathematica Stack Exchange
As you mentioned there are many things to consider and a detailed discussion is possible. But here are some rules of thumb that I apply the majority of the time:

Module[{x}, ...] is the safest and may be needed if either

There are existing definitions for x that you want to avoid breaking during the evaluation of the Module, or
There is existing code that relies on x being undefined (for example code like Integrate[..., x]).
Module is also the only choice for creating and returning a new symbol. In particular, Module is sometimes needed in advanced Dynamic programming for this reason.

If you are confident there aren't important existing definitions for x or any code relying on it being undefined, then Block[{x}, ...] is often faster. (Note that, in a project entirely coded by you, being confident of these conditions is a reasonable "encapsulation" standard that you may wish to enforce anyway, and so Block is often a sound choice in these situations.)

With[{x = ...}, expr] is the only scoping construct that injects the value of x inside Hold[...]. This is useful and important. With can be either faster or slower than Block depending on expr and the particular evaluation path that is taken. With is less flexible, however, since you can't change the definition of x inside expr.
q-n-a  stackex  programming  CAS  trivia  howto  best-practices  checklists 
november 2017 by nhaliday
design patterns - What is MVC, really? - Software Engineering Stack Exchange
The model manages fundamental behaviors and data of the application. It can respond to requests for information, respond to instructions to change the state of its information, and even to notify observers in event-driven systems when information changes. This could be a database, or any number of data structures or storage systems. In short, it is the data and data-management of the application.

The view effectively provides the user interface element of the application. It'll render data from the model into a form that is suitable for the user interface.

The controller receives user input and makes calls to model objects and the view to perform appropriate actions.


Though this answer has 21 upvotes, I find the sentence "This could be a database, or any number of data structures or storage systems. (tl;dr : it's the data and data-management of the application)" horrible. The model is the pure business/domain logic. And this can and should be so much more than data management of an application. I also differentiate between domain logic and application logic. A controller should not ever contain business/domain logic or talk to a database directly.
q-n-a  stackex  explanation  concept  conceptual-vocab  structure  composition-decomposition  programming  engineering  best-practices  pragmatic  jargon  thinking  metabuch  working-stiff  tech  🖥  checklists 
october 2017 by nhaliday
bash - Queue up commands while one command is being executed - Unix & Linux Stack Exchange
Press Ctrl+Z and immediately run bg. This causes the current command to keep running in the background. Then you can use fg && otherCommand to schedule otherCommand after the current one.

To make this easier, I've configured Ctrl+Z in my shell to run bg when I press it on an empty command line. See In zsh, how can I more quickly disown the foreground process? and How do you send command line apps directly to the background? ; I haven't checked if modern versions of bash make it easy to do the same.
q-n-a  stackex  unix  terminal  howto  workflow  short-circuit  tip-of-tongue 
september 2017 by nhaliday
How to extract files to another directory using 'tar' command? - Ask Ubuntu
Combining the previous answers and comments:

To simply extract the contents and create target directory if it is missing:

mkdir -p /target/directory && tar xf archive.tar -C /target/directory
To extract and also remove the root(first level) directory in the zip

mkdir -p /target/directory && tar xf archive.tar -C /target/directory --strip-components=1
q-n-a  stackex  howto  terminal  unix  yak-shaving  workflow  intricacy 
september 2017 by nhaliday
bash - How to find/replace and increment a matched number with sed/awk? - Stack Overflow
/e allows you to pass matched part to external command, and do substitution with the execution result. Gnu sed only.
why you need to get first and last part of lines: https://unix.stackexchange.com/questions/180783/sed-e-and-g-flags-not-working-together
That is a bit tortuously written. What it means is that, after the completion of a s/// command for this line, if there was a change, the (new) line is executed as a command and its output used as the replacement for this line.

example of what I had to do to get this to work w/ embedded quotes:
gsed -E 's/^\("(.*)", ([0-9]+)(.*)/echo "(\\\\"\1\\\\", $((\2+54))\3"/e'
maps ("foo", 3... -> ("foo", 57..
q-n-a  stackex  programming  howto  terminal  unix  yak-shaving  multi  gotchas 
september 2017 by nhaliday
Gimbal lock - Wikipedia
Gimbal lock is the loss of one degree of freedom in a three-dimensional, three-gimbal mechanism that occurs when the axes of two of the three gimbals are driven into a parallel configuration, "locking" the system into rotation in a degenerate two-dimensional space.

The word lock is misleading: no gimbal is restrained. All three gimbals can still rotate freely about their respective axes of suspension. Nevertheless, because of the parallel orientation of two of the gimbals' axes there is no gimbal available to accommodate rotation along one axis.

Now this is where most people stop thinking about the issue and move on with their life. They just conclude that Euler angles are somehow broken. This is also where a lot of misunderstandings happen so it's worth investigating the matter slightly further than what causes gimbal lock.

It is important to understand that this is only problematic if you interpolate in Euler angles**! In a real physical gimbal this is given - you have no other choice. In computer graphics you have many other choices, from normalized matrix, axis angle or quaternion interpolation. Gimbal lock has a much more dramatic implication to designing control systems than it has to 3d graphics. Which is why a mechanical engineer for example will have a very different take on gimbal locking.

You don't have to give up using Euler angles to get rid of gimbal locking, just stop interpolating values in Euler angles. Of course, this means that you can now no longer drive a rotation by doing direct manipulation of one of the channels. But as long as you key the 3 angles simultaneously you have no problems and you can internally convert your interpolation target to something that has less problems.

Using Euler angles is just simply more intuitive to think in most cases. And indeed Euler never claimed it was good for interpolating but just that it can model all possible space orientations. So Euler angles are just fine for setting orientations like they were meant to do. Also incidentally Euler angles have the benefit of being able to model multi turn rotations which will not happen sanely for the other representations.
nibble  dirty-hands  physics  mechanics  robotics  degrees-of-freedom  measurement  gotchas  volo-avolo  duplication  wiki  reference  multi  q-n-a  stackex  graphics  spatial  direction  dimensionality  sky 
september 2017 by nhaliday
linux - How do I replace the last occurrence of a character in a string using sed? - Unix & Linux Stack Exchange
You can do it with single command:

sed 's/\(.*\)-/\1 /'
The point is that sed is very greedy, so matches as many characters before - as possible, including others -.
q-n-a  stackex  howto  workflow  yak-shaving  terminal  unix  programming 
august 2017 by nhaliday
unix - How to split a delimited string into an array in awk? - Stack Overflow
To split a string to an array in awk we use the function split():

awk '{split($0, a, ":")}'
# ^^ ^ ^^^
# | | |
# string | delimiter
# |
# array to store the pieces
If no separator is given, it uses the FS, which defaults to the space:

$ awk '{split($0, a); print a[2]}' <<< "a:b c:d e"
q-n-a  stackex  programming  howto  yak-shaving  terminal  unix  workflow 
august 2017 by nhaliday
Where are my iBooks stored in macOS Sierra? - Ask Different
example for finding mentions of a string:
<go to that direction>
pt -c 'foobar' | awk -F: 'function dir(path) {sub("/.*", "", path); return path} {a[dir($1)]+=$2} END{for (k in a) {print a[k], k}}' | sort -nr
now wrapped up in a script: ~/bin/ibooks_mentions
q-n-a  stackex  workflow  yak-shaving  integration-extension  studying  sleuthin  info-foraging  osx  desktop  multi  terminal  unix  howto 
august 2017 by nhaliday
malware - Can a PDF file contain a virus? - Information Security Stack Exchange
There are many features in the PDF that can be used in malicious ways without exploiting a vulnerability. One example is given by Didier Stevens here. Basically he embeds an executable and has it launch when opening the file. I am not sure how today's versions of readers handle this but its a good method of using PDF features in malicious ways.


Yes it can. PDF is a rich format that aside form static content, can contain dynamic elements. The latter can for example contain JavaScript, and other elements. Modern PDF viewers tend to warn the user about potential malicious activity though.
q-n-a  stackex  security  opsec  pdf  workflow  desktop 
july 2017 by nhaliday
ipad - Is it possible to search for text in iBooks or the Kindle app? - Ask Different
If you wanted to know whether you can enter a search term at the top-level of these apps and have them search across all books stored in the app: No, currently neither iBooks nor the Kindle app have such a feature.

However, I have seen this capability on the Kindle device itself – I own a Kindle keyboard model and there is a "search my items" option available that will search all books on the device for a given term.
q-n-a  stackex  workflow  info-foraging  desktop  osx  howto  search  sleuthin  studying 
july 2017 by nhaliday
applescript - How do I collect all of my notes and highlights from iBooks? - Ask Different
iBooks doesn't have AppleScript support. The annotations are stored in a SQLite file: ~/Library/Containers/com.apple.iBooksX/Data/Documents/AEAnnotation/.
q-n-a  stackex  osx  desktop  howto  yak-shaving  studying  integration-extension  sleuthin  workflow  info-foraging 
june 2017 by nhaliday
spaceships - Can there be a space age without petroleum (crude oil)? - Worldbuilding Stack Exchange

What was really important to our development of technology was not oil, but coal. Access to large deposits of high-quality coal largely fueled the industrial revolution, and it was the industrial revolution that really got us on the first rungs of the technological ladder.

Oil is a fantastic fuel for an advanced civilisation, but it's not essential. Indeed, I would argue that our ability to dig oil out of the ground is a crutch, one that we should have discarded long ago. The reason oil is so essential to us today is that all our infrastructure is based on it, but if we'd never had oil we could still have built a similar infrastructure. Solar power was first displayed to the public in 1878. Wind power has been used for centuries. Hydroelectric power is just a modification of the same technology as wind power.

Without oil, a civilisation in the industrial age would certainly be able to progress and advance to the space age. Perhaps not as quickly as we did, but probably more sustainably.

Without coal, though...that's another matter

What would the industrial age be like without oil and coal?: https://worldbuilding.stackexchange.com/questions/45919/what-would-the-industrial-age-be-like-without-oil-and-coal

Out of the ashes: https://aeon.co/essays/could-we-reboot-a-modern-civilisation-without-fossil-fuels
It took a lot of fossil fuels to forge our industrial world. Now they're almost gone. Could we do it again without them?

But charcoal-based industry didn’t die out altogether. In fact, it survived to flourish in Brazil. Because it has substantial iron deposits but few coalmines, Brazil is the largest charcoal producer in the world and the ninth biggest steel producer. We aren’t talking about a cottage industry here, and this makes Brazil a very encouraging example for our thought experiment.

The trees used in Brazil’s charcoal industry are mainly fast-growing eucalyptus, cultivated specifically for the purpose. The traditional method for creating charcoal is to pile chopped staves of air-dried timber into a great dome-shaped mound and then cover it with turf or soil to restrict airflow as the wood smoulders. The Brazilian enterprise has scaled up this traditional craft to an industrial operation. Dried timber is stacked into squat, cylindrical kilns, built of brick or masonry and arranged in long lines so that they can be easily filled and unloaded in sequence. The largest sites can sport hundreds of such kilns. Once filled, their entrances are sealed and a fire is lit from the top.
q-n-a  stackex  curiosity  gedanken  biophysical-econ  energy-resources  long-short-run  technology  civilization  industrial-revolution  heavy-industry  multi  modernity  frontier  allodium  the-world-is-just-atoms  big-picture  ideas  risk  volo-avolo  news  org:mag  org:popup  direct-indirect  retrofit  dirty-hands  threat-modeling  duplication  iteration-recursion  latin-america  track-record  trivia  cocktail  data 
june 2017 by nhaliday
mandarin - Is it easier to learn Chinese after learning Japanese or vice versa? - Chinese Language Stack Exchange
Apart from the Kanji/Hanzi, that they (partly) have in common, concerning the written part, there is nothing that can really help you with the other language:
- Chinese is pretty much SVO, Japanese is SOV;
- Chinese has tones, Japanese has no tones. When speaking, sentences do have a certain "tone", but not phonemic, i.e. it doesn't totally change the meaning;
- Chinese has one writing system (Hanzi), Japanese has 3 (Hiragana, Katakana, Kanji);

q-n-a  stackex  world  foreign-lang  language  china  asia  japan  sinosphere  multi  qra  direct-indirect  syntax 
june 2017 by nhaliday
meaning - What does "the once and future" mean? - English Language & Usage Stack Exchange
It's a reference to the prophecy that King Arthur will return. The idea is that he was once king, and will be again.

As far as I know, T.H. White did in fact coin the English version of the phrase for his Arthurian book The Once and Future King, but you'll occasionally hear it adapted for other uses ("ladies and gentleman, the once and future champion!"), presumably as an allusion to the book. The original source is Sir Thomas Malory's Le Morte d'Arthur (the most enduringly popular rendition of the Arthurian myth), where the equivalent Latin phrase rex quondam rexque futurus is described as engraved on Arthur's tombstone.
anglo  q-n-a  stackex  language  time  fiction  literature  myth  britain  jargon  antidemos  anglosphere  lexical 
may 2017 by nhaliday
Lost and Found | West Hunter
I get the distinct impression that someone (probably someone other than Varro) came up with an approximation of germ theory 1500 years before Girolamo Fracastoro. But his work was lost.

Everybody knows, or should know, that the vast majority of Classical literature has not been preserved. Those lost works contained facts and ideas that might have value today – certainly there are topics that we understand much better because of insights from Classical literature. For example, Reich and Patterson find that some of the Indian castes have existed for something like three thousand years: this is easier to believe when you consider that Megasthenes wrote about the caste system as early as 300 BC.

We don’t put much effort into recovering lost Classical literature. But there are ways in which we could push harder – by increased funding for work on the Herculaneum scrolls, or the Oxyrhynchus papyri collection, for example. Some old-fashioned motivated archaeology might get lucky and find another set of Amarna cuneiform letters, or a new Antikythera mechanism.

Here we have yet another case in which a discovery was possible for a long time before it was actually accepted. Aristotle is the villain here: he clearly endorses spontaneous generation of many plants and animals. On the other hand, I don’t remember him saying that people should accept all of his conclusions uncritically and without further experimentation for the next couple of thousand years, which is what happened. So maybe we’re all guilty.


Part of the funny here (not even counting practical experience) is that almost every educated man over these two millennia had read, and indeed studied deeply, a work with a fairly clear statement of the actual fly->egg->maggot->fly process. As I as I can tell, only one person (Redi) seems to have picked up on this.

“But the more Achilles gazed, the greater rose his desire for vengeance, and his eyes flashed terribly, like coals beneath his lids, as he lifted the god’s marvellous gifts and exulted. When he had looked his fill on their splendour, he spoke to Thetis winged words; ‘Mother, the god grants me a gift fit for the immortals, such as no mortal smith could fashion. Now I shall arm myself for war. Yet I fear lest flies infest the wounds the bronze blades made, and maggots breed in the corpse of brave Patroclus, and now his life is fled, rot the flesh, and disfigure all his body.’ ”

You’d think a blind man would have noticed this.

Anyhow, the lesson is clear. Low hanging fruit can persist for a long time if the conventional wisdom is wrong – and sometimes it is.


Transmission of the Greek Classics: https://en.wikipedia.org/wiki/Transmission_of_the_Greek_Classics

By way of comparison, the complete Loeb Classical Library (which includes all the important classical texts) has 337 volumes for Ancient Greek --- and those aren't 100,000 word-long door-stoppers.
$65/year for individuals (I wonder if public libraries have subscriptions?)


1/ Thinking about what Steven Greenblatt described in The Swerve as a mass extinction of ancient books (we have little of what they wrote)
2/ If I could go back in time to, say, 100 AD or 200 AD I would go with simple tech for making books last for a thousand years. Possible?

I’ve put a lot of content out there over the years. Probably on the order of 5 million words across my blogs. Some publications here and there. Lots of tweets. But very little of it will persist into future generations. Digital is evanescent.

But so is paper. I believe that even good hardcover books probably won’t last more than a few hundred years.

Perhaps we should go back to some form of cuneiform? Stone and metal will last thousands of years.

How long does a paperback book last?: https://www.quora.com/How-long-does-a-paperback-book-last

A 500 years vault for books?: https://worldbuilding.stackexchange.com/questions/137583/a-500-years-vault-for-books
There are about four solutions that have actually worked in history

1. The desert method
2. Give them to an institution which will preserve them
3. The opposite of secrecy: duplicate them extensively

4. Transcribe them to durable materials

It is hard to keep books for a really long time because paper, parchment and papyrus are easily destroyed. However books have been produced on much more durable materials. Nowadays a holographic copy can be laser etched into stainless steel. In Sumer, 5300 years ago they pressed them into clay tablets. If the document was important, they fired the clay; otherwise they just let it dry. The fired versions are close to indestructible.
west-hunter  scitariat  discussion  ideas  speculation  history  iron-age  mediterranean  the-classics  innovation  low-hanging  spreading  disease  parasites-microbiome  🔬  archaeology  discovery  epidemiology  canon  multi  literature  fiction  agriculture  india  asia  pop-structure  social-structure  ethnography  the-trenches  nihil  flux-stasis  science  medieval  europe  the-great-west-whale  letters  info-dynamics  being-right  scale  wiki  reference  trivia  cocktail  curiosity  enlightenment-renaissance-restoration-reformation  article  q-n-a  qra  data  database  project  toys  religion  christianity  civilization  twitter  social  gedanken  gnon  backup  time  volo-avolo  brands  money  gnxp  store  stackex  traces 
may 2017 by nhaliday
quotes - What is the linguistic challenge Louise uses in the beginning of "Arrival"? - Science Fiction & Fantasy Stack Exchange
So it's a bit of a stretch. It really does look like गविष्टि gáviṣṭi- can have the meaning "war", but it's not an obvious choice. Certainly, गविष्टि gáviṣṭi- is (by my lights) a poor translation for "war" in the general case. Which is to say, if you asked a Sanskrit teacher, how do you say "war" in Sanskrit, and they said gáviṣṭi-, I would be surprised. It would be like somebody asking you how to say 'baldness' and you offering up 'glabriety', which I'm told means "baldness". The point being, it seems contrived, the word was chosen because it made for a fun scene in the film, rather than because it was the natural choice. What's more, I haven't a clue where the potential meaning "discussion" comes from. But then I did fail two of my exams....
q-n-a  stackex  fiction  language  foreign-lang  india  asia  gavisti  film  scifi-fantasy  linguistics 
may 2017 by nhaliday
« earlier      
per page:    204080120160

bundles : pub

related tags

-_-  ability-competence  abstraction  academia  accessibility  acm  acmtariat  advice  afterlife  age-generation  agriculture  algorithms  allodium  analogy  analysis  anglo  anglosphere  anthropology  antidemos  antiquity  aphorism  api  apple  applications  archaeology  arms  article  asia  audio  authoritarianism  automata  automation  backup  bangbang  behavioral-gen  being-right  best-practices  biases  bible  big-peeps  big-picture  bio  biodet  bioinformatics  biophysical-econ  biotech  books  brands  britain  broad-econ  browser  build-packaging  c(pp)  cancer  canon  career  cartoons  CAS  causation  chart  cheatsheet  checklists  chemistry  china  christianity  civilization  cloud  cocktail  cocoa  code-dive  coding-theory  cog-psych  communication  communism  community  comparison  competition  compilers  composition-decomposition  computation  computational-geometry  concept  conceptual-vocab  concurrency  confusion  conquest-empire  context  convexity-curvature  cooking  cool  coordination  cost-benefit  counterfactual  creative  crime  criminal-justice  cs  culture  curiosity  current-events  curvature  data  data-science  database  dataset  dataviz  death  debugging  deep-materialism  degrees-of-freedom  democracy  demographics  dennett  desktop  devtools  diet  dimensionality  direct-indirect  direction  dirty-hands  discovery  discussion  disease  distribution  diy  documentation  dropbox  duplication  duty  dynamic  early-modern  earth  econ-productivity  economics  efficiency  electromag  elite  embedded  embodied  embodied-pack  emotion  endo-exo  endogenous-exogenous  energy-resources  engineering  enhancement  enlightenment-renaissance-restoration-reformation  environment  epidemiology  equilibrium  ethnography  EU  europe  evolution  evopsych  exegesis-hermeneutics  explanans  explanation  exploratory  fall-2015  farmers-and-foragers  fermi  fertility  feudal  fiction  fighting  film  finance  fire  fisher  fluid  flux-stasis  food  foreign-lang  foreign-policy  forms-instances  forum  free  french  frontend  frontier  functional  futurism  games  gavisti  gbooks  gedanken  gender  gene-flow  generalization  genetics  genomics  geoengineering  geography  germanic  giants  git  gnon  gnxp  good-evil  google  gotchas  government  graph-theory  graphics  graphs  gravity  great-powers  ground-up  growth-econ  GWAS  h2o  habit  hardware  hashing  heavy-industry  history  hmm  homo-hetero  housing  howto  huge-data-the-biggest  human-bean  ideas  ideology  idk  IEEE  illusion  impro  india  industrial-revolution  inequality  info-dynamics  info-foraging  init  innovation  input-output  institutions  integration-extension  interdisciplinary  internet  intersection  intersection-connectedness  intricacy  investing  iron-age  iteration-recursion  janus  japan  jargon  javascript  judaism  jvm  labor  language  latent-variables  latex  latin-america  law  leadership  learning  learning-theory  left-wing  lens  let-me-see  letters  levers  leviathan  lexical  libraries  life-history  lifestyle  linguistics  links  linux  list  literature  lived-experience  long-short-run  long-term  longevity  love-hate  low-hanging  lower-bounds  machine-learning  macro  madisonian  magnitude  maker  malthus  management  maps  marginal  markets  measure  measurement  mechanics  medicine  medieval  mediterranean  memory-management  MENA  mendel-randomization  meta:medicine  meta:rhetoric  meta:war  metabolic  metabuch  methodology  metrics  micro  military  ML-MAP-E  mobile  models  modernity  money  morality  mostly-modern  multi  music  music-theory  mutation  myth  nature  network-structure  networking  neuro  neurons  news  nibble  nihil  nitty-gritty  nlp  no-go  nuclear  objektbuch  ocaml-sml  occident  old-anglo  oly  oly-programming  opsec  optimization  orders  ORFE  org:edu  org:junk  org:mag  org:nat  org:popup  osx  overflow  PAC  paradox  parallax  parasites-microbiome  parsimony  paternal-age  pdf  peace-violence  performance  personal-finance  personality  perturbation  phase-transition  philosophy  phys-energy  physics  planning  play  pls  poetry  polisci  politics  poll  pop-structure  population  population-genetics  pragmatic  pre-ww2  prediction  prepping  presentation  privacy  pro-rata  problem-solving  programming  project  protestant-catholic  psychology  publishing  puzzles  python  q-n-a  qra  QTL  quantitative-qualitative  quixotic  quotes  random  ranking  rationality  reading  realness  rec-math  recent-selection  recommendations  reddit  reference  religion  reputation  retrofit  revolution  risk  robotics  robust  roots  russia  safety  sapiens  scale  scaling-tech  scaling-up  science  scifi-fantasy  scitariat  search  security  selection  short-circuit  signal-noise  similarity  sinosphere  sky  sleuthin  slides  social  social-psych  social-structure  sociality  society  sociology  software  space  spatial  speaking  speculation  spreading  stackex  state  stats  store  stories  strings  structure  study  studying  stylized-facts  subjective-objective  sublinear  supply-demand  syntax  systems  tactics  taxes  tech  technocracy  technology  techtariat  temperance  temperature  terminal  texas  the-classics  the-great-west-whale  the-self  the-south  the-trenches  the-world-is-just-atoms  theory-of-mind  theos  thermo  thesis  things  thinking  threat-modeling  time  time-preference  time-series  tip-of-tongue  todo  tolkienesque  tools  top-n  toys  traces  track-record  tradeoffs  transportation  trends  trivia  trust  truth  tutorial  twitter  types  ui  unix  urban  urban-rural  usa  ux  vampire-squid  variance-components  vcs  virtualization  visual-understanding  visualization  volo-avolo  war  web  webapp  weird  west-hunter  wiki  within-without  workflow  working-stiff  world  world-war  worrydream  writing  yak-shaving  yoga  🌞  🔬  🖥 

Copy this bookmark: