Always bet on text (2014)
graydon2.dreamwidth.org
graydon2.dreamwidth.org
I think it would be about as hard to find (or construct) a picture that precisely conveys the concept of human rights as it would be to construct appropriate text to precisely convey the emotional payload of, say, this photo: https://upload.wikimedia.org/wikipedia/en/b/b8/Kevin-Carter-....
If we were, for some reason, forced to eliminate all forms of communicating information but one, the most sensible form of communication for us to keep would almost certainly be text. But we aren't, so why would we force ourselves into voluntary communication medium asceticism?
This made me think that haiku, in particular, is good at evoking emotions and imagery that the reader/listener is already familiar with. There are some incredibly powerful haiku that in just a few words can really tug at your emotions. But you need to have already experienced the imagery for it to have any meaning.
I find that picture to be similar in nature to a haiku. There is very little in the picture itself, but the elements it has evoke powerful emotions because we know what they mean. The starving child, the vulture sitting ready, the question of "why is the child starving" (war)... You assemble these ideas in your head and it generates a huge number of thought processes and feelings.
To me, the difference between such a picture and a haiku is that the picture is not something I have ever seen before. I couldn't imagine it without seeing it first. Someone could write the most poignant haiku about that image, but it would mean nothing to me, who has never seen such a war. But, to the people of that village, I'm sure such a haiku would be incredibly powerful -- possibly even more so than the photograph. They would fill in their own experience in the gaps left by the words. For someone personally familiar with the experience, the photograph might be too real and obvious -- even gauche.
I wonder if text is an ideal mechanism for discussing topics for which the the audience already has some experience -- something to relate to and hang on those words. Pictures, on the other hand, are good for describing things that people have not seen before and may not relate to.
Anyway, I strongly agree. And I think it takes balls to state this opinion because you will be opposed by so many.
I also think the Bourne shell, which accepts good ole text as input (as someone downthread points out), is my most powerful application. Among other things because it is everywhere, it's relatively small, fast, and seems to have an infinite lifetime; it appears forever protected from obsolescence. It's reliable.
Stating this opinion never fails to draw protest. It's just an opinion. Relax.
One time I stated it to what I thought was a sophisticated audience that I was sure could handle it. Somebody still went bananas, claiming that "make" could do everything the shell can do. I must be wrong but at the time I thought "Doesn't make just run the shell?"
There will always be people who are hell bent on arguing against plain text. And the Bourne shell. Why is anyone's guess.
Yet no matter how much internet commentators might complain, I doubt these two things are ever going to disappear. They might get buried beneath 20 layers of abstraction, but they will still be there.
Year after year, they just work. And for that I'm thankful.
Although I have to admit it's a little like C++ in that everyone has their own little dialect.
Bash is much larger and more complex than the shell I use.
From an interview with Steve Bourne in 2009.
http://www.computerworld.com.au/article/279011/a-z_programmi...
On the other hand, I would argue that engineering, architecture, and industry rely heavily on visual languages such as technical drawings, blueprints, control/process flow diagrams, etc. Text is a good bet, but it's inadequate for a lot of problems related to the physical world that require spatial reasoning.
Speech is often problematic, because it is so ephemeral, unless extra pains are taken to record it. Ideally, you'd have voice recordings or at least good minutes taken of an in-person meeting or telephone call(which actually just turns it back into text...), so that the information doesn't just disappear into fallible meat-memory. The other problem is that it is a real-time communication. You can only consume the content at a single rate - you can't speed through the filler or go back and reread something that didn't at first make sense. With recorded video or audio, you can sort of do this, but it is so slow, compared to reading speed, and it's not like you can just Ctrl-F through it
Agreed. Diagrams can of course be expressed as text, but would you rather read SVG XML, or look at the actual diagram?
The for example a sign system for beaches. Which is a better means of communicating to a wide variety of people, a sign saying "Warning Sharks" or this? http://images.fineartamerica.com/images-medium-large/shark-w...
If you are writing code or dev notes then text is no doubt the way to go. But if you are trying to communicate with strangers (ie prospective customers) then symbols have their place.
Pictionary and charades are completely based around the idea that communication without words is more challenging.
Too many comments are making this a black and white issue. In reality there are going to be some cases where text excels and others where pictures excel. But I suppose that isn't as interesting.
In Europe, and much of the rest of the world, an ISO-derived sign would be a black shark in a black-bordered yellow triangle. These are most commonly seen, worldwide, as a lightning bolt on an electricity pole.
The system usees colour and shape to distinguish between warnings (black-bordered yellow triangles), positive orders (blue circles), negative orders (red-bordered white circles) and safety/evacuation (green rectangles).
The Vienna system for traffic signs, used by over half the world, is similar, except warnings are red-bordered triangles.
That, at least, means "no cycling", "cycle path" and "warning: cyclists", or "wear ear protection" and "do not wear ear protection" reuse the same symbol on a different coloured/shaped sign.
https://twitter.com/charliearchy/status/647889800876433408
Ah, that totally clarifies the meaning of this sign: "evacuate in case of Godzilla attack."
On the other hand, in advanced mathematics, diagrams are used all over the place (look at category theory). When they're not used, the reader is essentially forced to imagine spatially what is being said, often down a blind alley (to use the phrase almost literally).
Diagrams are essential to communicating non-obvious abstract ideas in an efficient manner. In addition, given a domain-specific technical language, there are many possible permutations of words in a sentence, whereas the space of sensibly drawn diagrams is much smaller. Often, after fully comprehending an idea that was previously expressed in words, the final step in congealing the idea in your mind (and convincing yourself of its soundness) is to draw a definitive diagram which covers all the cases, and can be understood in a glance.
I should also mention that many of the worst typographical errors in mathematics completely change the meaning and jumble the thought, something which is far more difficult to do when using a diagram.
Also, as I remarked in my other comment, diagrams complement text, with either one enhancing the other. Neither should completely replace the other.
"Human rights are moral principles or norms that describe certain standards of human behaviour, and are regularly protected as legal rights in national and international law."
I don't think you can, but if you could, it would likely be very large and complex. This speaks to flexibility and information density inherent in text.
I mostly use diagrams for describing completely new, abstract ideas in engineering or mathematics. Once the idea is understood, then yeah, it's faster to "query the database", and simply utter a word or write down a symbol.
That is true, however, the only reason there is such "information density" is that you already know the meanings of those words, idioms, assumptions, etc. You know a lot of context that isn't being explicitly stated.
That quoted sentence has little meaning to a child or to anyone without a good deal of education and shared cultural background.
Diagrams and text serve very different purposes.
Other digital modes exist that give you almost the same kinds of benefits as CW for very low bandwidth, most notably PSK31.
[1] Technically, the speed of the signal switching causes you to need more bandwidth. So if you're doing a really fast digital transmission, like a 56k modem, that requires more bandwidth than a 9600 baud modem transmission. This makes intuitive sense. What's kinda surprising though is that even really fast morse code requires more bandwidth that slow morse code.
Is there really less information required to represent text than data? It just seems easier to encode ascii text because we've settled on an encoding schema that optimizes for the english alphabet. The example of the twitter icon using 2000 bytes is only because the author decided to use a png. Using the font-awesome typeface, the twitter icon is just 2 bytes. And I can whip up in 5 minutes a typeface where the twitter logo uses 1 byte. We can come up with an encoding format where dingbats and logos take up 1 byte and the english alphabet uses 2TB. It'd be a useless encoding for practical purposes, but goes against the idea that text is inherently more informationally compact than images.
It's just a little ironic that the first example put forward (carvings
in a stone tablet) is represented as a jpg image.
But the author clearly states: "If you can use text for something, use it"; this is obviously one of the areas where the author used their discretion and decided to use an image to help illustrate the point.The author isn't stating "Don't use images", but "Use text wherever it is possible".
EDIT: It seems weird that HN doesn't have a facility to toggle line wrapping in quotes.
But does that mean ascii is inherently denser? I wouldn't use ascii to communicate with aliens because to understand it you require knowledge of the majority of the english language (again, english knowledge is shared ahead of time). In fact, the Voyager Golden Record has line drawings on the cover, and not a single character.
On the computing front, I agree that the text is pervasive, reliable. This brings to me to ask myself that is it because since the text was invented to current education system we are conditioned to prefer text? Computing power for human race non-existent until now to tackle non-text communications at a massive scale and hence text was the natural choice. May be in future we will explore/invent ways to handle visual info same as text (to large extent).
("Anyone can learn S-expressions.")
Imagine: $ ls -l
((foo 2015-06-09 6 bar baz (rw rw r))
(file2 2012-03-04 18789 bar baz (rwx rwx rwx)))
Heck, imagine a world where the shell was a full-featured, fully-typed programming language…Isn't that what PowerShell is?
Nowadays, even trying to read a page of "hyper-text" requires doing battle with several levels of malicious software.
Imagine, if you can, a world in which programs are things designed to help their authors/users, not adversaries to be exploited or defeated.
We can imagine that world, but does it really help professionals in any way if they do imagine it?
In that time, only a few people had access to computing and network resources, but they were all well-educated, reasonably well-paid and curious, with lots of motivation to help each other out and little motivation to undermine each other. It might have remained just a brief blip of history, except that so many technologies developed during that time, designed with the security assumptions of that time (i.e. practically none), became the fundamental underpinnings of our modern world, like MS-DOS and Unix.
It's amazing how fast you can go from "that guy with the curious hobby" to "some guy that naturally also owns and uses a computer, as everyone else does".
When something better comes along I'll switch away from using the UNIX shell.
But I am not sure I'll live long enough to see that day.
Meanwhile I am too busy using the shell to engage in that battle with hypertext. It could just be my perception, but after years of practice, I think I am winning.
Useful things in bash:
export IFS=$'\n'
or export IFS=$'\n'
for I in `$COMMAND` do
$OTHER_COMMAND "${I}"
done
or, generally: find ./ -print0 | xargs -0 $COMMANDBe careful exporting a changed IFS. That will inherit into child commands, which can cause unexpected breakage. A better model is to simply set IFS in the bash script (without export) or even better, as a one-off prefix to a command
# leaves IFS set for following commands
IFS=$'\n'
$COMMAND
# only sets IFS for one command
IFS=$'\n' $COMMAND
It is common to see saving/restoring IFS to protect against bugs elsewhere from a non-standard IFS: oldIFS="$IFS"
IFS=$'\n'
# ...stuff...
IFS="$oldIFS"
If you do this, a trap is a better idea to guarantee the restore happens. Better yet, let bash handle that for you automagically by using a local variable. cmd_with_nonstandard_ifs() {
local IFS='\n'
$COMMAND
}
cmd_with_nonstandard_ifs
# IFS is back to normal here
Also, unless you're using a really ancient version of bash, you shouldn't use backticks for command substitution. Use $() instead. # backticks need to be escaped when nested
FOO="`basename "\`command_that_outputs_a_path\`"`"
# much easier to read in the modern form
FOO="$(basename "$(command_that_outputs_a_path)")"
The thing is, you probably don't even need mess with IFS - shell globbing handles a lot of these things for you $ ls -1
a bc
a b c d e
ddd eee
$ for file in * ; do echo "[$file]" ; done
[a bc]
[a b c d e]
[ddd eee]
and arguments be expanded correctly with "$@" show_args() {
for arg in "$@" ; do
echo "arg that supports spaces: [$arg]"
done
}
show_args "foo bar"
> find | xargsOf course, this is always a nice option that bypasses the need for bash.
Minor suggestion: "find ." and "find ./" are identical.
> ...and arguments be expanded correctly with "$@"
That assumes that your bash is contained within a script, yes? It doesn't work for commands entered directly in a shell?
> ...unless you're using a really ancient version of bash, you shouldn't use backticks for command substitution.
I was -stupidly- unaware that backticks would nest. I always use $() when I want to nest command substitutions.
> "find ." and "find ./" are identical.
Oh, I know. I have the largely unjustifiable habit of always putting a path in a find invocation, as well as always spelling "the current directory" as ./
> > find | xargs
> Of course, this is always a nice option that bypasses the need for bash.
Don't forget -print0 and -0 if you expect to have to handle arguments that contain spaces! ;)
Or a function. (that is, anywhere the $1, $2, ... variables are available, as "$@" (must have the double-quotes!) just copies $1, $2, .. without changing the word splitting.
> as well as always spelling "the current directory" as ./
That's actually a very good habit to be in a lot of other commands. It's unnecessary with find, but it's harmless either way.
It's also wrong to speak about text being the oldest communication technology when it developed from pictograms.
A scatter plot is just abstract symbols creating meaning, too - but it's clearly not just text.
For example, yes, text is searchable - but remember that different human languages consider different symbols as 'equivalent' for search and so you need to take care matching the searched string to the text.
And while humans can readily encode information into text, extracting that meaning again unambiguously enough for a computer to use is hard. Parsing is one of the foundational techniques in computer science, and natural language processing is still on the frontiers of development. Meanwhile, we're still dealing with Excel spreadsheets that pop up a red flag and ask a human for help whenever they see what looks like a number stored as text.
So yes, bet on text, but don't assume that because text is fundamental that it is simple.
"This blog post is likely to take perhaps 5000 bytes of storage, and could compress down to maybe 2000; by comparison the following 20-pixel-square image of the silhouette of a tweeting bird takes 4000 bytes:"
in my browser I see a little broken image icon which represents a missing picture. How apt.
If I use text to make a sign, only people who can read the language will understand it. But if I use a well known symbol, everybody will understand it.
And while symbols CAN be used for discussion, could this conversation be relayed in symbols?
My point is - there's probably no "always".
If they come up with something more efficient and information dense, I'd be happy to see it, but until we get direct brain/digital connections, I don't see it happening.
Visualising a lot of abstract stuff easily expressible in text is hard, and there's all the other stuff tfa mentions.
I wanted to write about this for a long time, perhaps tfa got it done and I won't...