Shared posts

25 Jun 20:15

Why there is no Hitchhiker’s Guide to Mathematics for Programmers

by j2kun

Do you really want to get better at mathematics?

Remember when you first learned how to program? I do. I spent two years experimenting with Java programs on my own in high school. Those two years collectively contain the worst and most embarrassing code I have ever written. My programs absolutely reeked of programming no-nos. Hundred-line functions and even thousand-line classes, magic numbers, unreachable blocks of code, ridiculous code comments, a complete disregard for sensible object orientation, negligence of nearly all logic, and type-coercion that would make your skin crawl. I committed every naive mistake in the book, and for all my obvious shortcomings I considered myself a hot-shot programmer! At leaa st I was learning a lot, and I was a hot-shot programmer in a crowd of high-school students interested in game programming.

Even after my first exposure and my commitment to get a programming degree in college, it was another year before I knew what a stack frame or a register was, two more before I was anywhere near competent with a terminal, three more before I fully appreciated functional programming, and to this day I still have an irrational fear of networking and systems programming (the first time I manually edited the call stack I couldn’t stop shivering with apprehension and disgust at what I was doing).

I just made it so this function returns to a *different* place than where it was called from.

I just made this function call return to a *different* place than where it was called from.

In a class on C++ programming I was programming a Checkers game, and my task at the moment was to generate a list of all possible jump-moves that could be made on a given board. This naturally involved a depth-first search and a couple of recursive function calls, and once I had something I was pleased with, I compiled it and ran it on my first non-trivial example. Low and behold (even having followed test-driven development!), I was hit hard in the face by a segmentation fault. It took hundreds of test cases and more than twenty hours of confusion before I found the error: I was passing a reference when I should have been passing a pointer. In particular (and this is the aggravating part, as most programmers know), the fix required the change of about 4 characters. Twenty hours of work for four characters! Once I begrudgingly verified it worked (of course it worked, it was so obvious in hindsight), I promptly took the rest of the day off to play Starcraft.

Of course, as every code-savvy reader will agree, all of this drama is part of the process of becoming and strong programmer. One must study the topics incrementally, make plentiful mistakes and learn from them, and spend uncountably many hours in a state of stuporous befuddlement before one can be considered an experienced coder. This gives rise to all sorts of programmer culture, unix jokes, and reverence for the masters of C that make the programming community so lovely to be a part of. It’s like a secret club where you know all the handshakes. And should you forget one, a crafty use of awk and sed will suffice.

"Semicolons of Fury" was the name of my programming team in the ACM collegiate programming contest. We placed Cal Poly third in the Southern California Regionals.

“Semicolons of Fury” was the name of my programming team in the ACM collegiate programming contest. We placed Cal Poly third in the Southern California Regionals, and in my opinion our success was due in large part to the dynamics of our team. I (center, in blue) have since gotten a more stylish haircut.

Now imagine someone comes along and says,

“I’m really interested in learning to code, but I don’t plan to write any programs and I absolutely abhor tracing program execution. I just want to use applications that others have written, like Chrome and iTunes.”

You would laugh at them! And the first thing that would pass through your mind is either, “This person would give up programming after the first twenty minutes,” or “I would be doing the world a favor by preventing this person from ever writing a program. This person belongs in some other profession.” This lies in stark opposition to the common chorus that everyone should learn programming. After all, it’s a constructive way to think about problem solving and a highly employable skill. In today’s increasingly technological world, it literally pays to know your your computer better than a web browser. (Ironically, I’m writing this on my Chromebook, but in my defense it has a terminal with ssh. Perhaps more ironically, all of my real work is done with paper and pencil.)

Unfortunately this sentiment is mirrored among most programmers who claim to be interested in mathematics. Mathematics is fascinating and useful and doing it makes you smarter and better at problem solving. But a lot of programmers think they want to do mathematics, and they either don’t know what “doing mathematics” means, or they don’t really mean they want to do mathematics. The appropriate translation of the above quote for mathematics is:

“Mathematics is useful and I want to be better at it, but I won’t write any original proofs and I absolutely abhor reading other people’s proofs. I just want to use the theorems others have proved, like Fermat’s Last Theorem and the undecidability of the Halting Problem.”

Of course no non-mathematician is really going to understand the current proof of Fermat’s Last Theorem, just as no fledgling programmer is going to attempt to write a (quality) web browser. The point is that the sentiment is in the wrong place. Mathematics is cousin to programming in terms of the learning curve, obscure culture, and the amount of time one spends confused. And mathematics is as much about writing proofs as software development is about writing programs (it’s not everything, but without it you can’t do anything). Honestly, it sounds ridiculously obvious to say it directly like this, but the fact remains that people feel like they can understand the content of mathematics without being able to write or read proofs.

I want to devote the rest of this post to exploring some of the reasons why this misconception exists. My main argument is that the reasons have to do more with the culture of mathematics than the actual difficulty of the subject. Unfortunately as of the time of this writing I don’t have a proposed “solution.” And all I can claim is a problem is that programmers can have mistaken views of what mathematics involves. I don’t propose a way to make mathematics easier for programmers, although I do try to make the content on my blog as clear as possible (within reason). I honestly do believe that the struggle and confusion builds mathematical character, just as the arduous bug-hunt builds programming character. If you want to be good at mathematics, there is no other way.

All I want to do with this article is to detail why mathematics can be so hard for beginners, to explain a few of the secret handshakes, and hopefully to bring an outsider a step closer to becoming an insider. So read on, and welcome to the community.

Travelling far and wide

Perhaps one of the most prominent objections to devoting a lot of time to mathematics is that it can be years before you ever apply mathematics to writing programs. On one hand, this is an extremely valid concern. If you love writing programs and designing software, then mathematics is nothing more than a tool to help you write better programs.

But on the other hand, the very nature of mathematics is what makes it so applicable, and the only way to experience nature is to ditch the city entirely. Indeed, I provide an extended example of this in my journalesque post on introducing graph theory to high school students: the point of the whole exercise is to filter out the worldly details and distill the problem into a pristine mathematical form. Only then can we see its beauty and wide applicability.

Here is a more concrete example. Suppose you were trying to encrypt the contents of a message so that nobody could read it even if they intercepted the message in transit. Your first ideas would doubtlessly be the same as those of our civilization’s past: substitution ciphers, Vigenere ciphers, the Enigma machine, etc. Regardless of what method you come up with, your first thought would most certainly not be, “prime numbers so big they’ll make your pants fall down.” Of course, the majority of encryption methods today rely on very deep facts (or rather, conjectures) about prime numbers and other mathematical objects (“group presentations so complicated they’ll orient your Mobius band,” anyone?). But it took hundreds of years of number theory to get there, and countless deviations into other fields and dead-ends.

Of course there are other examples much closer to contemporary fashionable programming techniques. One such example is boosting. While we have yet to investigate boosting on this blog, the basic idea is that one can combine a bunch of algorithms which perform just barely better than 50% accuracy, and collectively they will be arbitrarily close to perfect. In a field dominated by practical applications, this result is purely the product of mathematical analysis.

And of course boosting in turn relies on the mathematics of probability theory, which in turn relies on set theory and measure theory, which in turn relies on real analysis, and so on. One could get lost for a lifetime in this mathematical landscape! And indeed, the best way to get a good view of it all is to start at the bottom. To learn mathematics from scratch. The working programmer simply doesn’t have time for that.

What is it really, that people have such a hard time learning?

Most of the complaints about mathematics come understandably from notation and abstraction. And while I’ll have more to say on that below, I’m fairly certain that the main obstacle is a familiarity with the basic methods of proof.

While methods of proof are semantical by nature, in practice they form a scaffolding for all of mathematics, and as such one could better characterize them as syntactical. I’m talking, of course, about the four basics: direct implication, proof by contradiction, contrapositive, and induction. These are the loops, if statements, pointers, and structs of rigorous argument, and there is simply no way to understand the mathematics without a native fluency in this language.

The “Math Major Sloth” is fluent. Why aren’t you?

So much of mathematics is built up by chaining together a multitude of absolutely trivial statements which are amendable to proof by the basic four. I’m not kidding when I say they are absolutely trivial. A professor of mine once said,

If it’s not completely trivial, then it’s probably not true.

I can’t agree more with this statement. Of course, there are many sophisticated proofs in mathematics, but an overwhelming majority of (very important) facts fall in the trivial category. That being said, trivial can be sometimes relative to one’s familiarity with a subject, but that doesn’t make the sentiment any less right. Drawing up a shopping list is trivial once you’re comfortable with a pencil and paper and you know how to write (and you know what the words mean). There are certainly works of writing that require a lot more than what it takes to write a shopping list. Likewise, when we say something is trivial in mathematics, it’s because there’s no content to the proof outside of using definitions and a typical application of the basic four methods of proof. This is the “holding a pencil” part of writing a shopping list.

And as you probably know, there are many many more methods of proof than just the basic four. Proof by construction, by exhaustion, case analysis, and even picture proofs have a place in all fields of mathematics. More relevantly for programmers, there are algorithm termination proofs, probabilistic proofs, loop invariants to design and monitor, and the ubiquitous NP-hardness proofs (I’m talking about you, Travelling Salesman Problem!). There are many books dedicated to showcasing such techniques, and rightly so. Clever proofs are what mathematicians strive for above all else, and once a clever proof is discovered, the immediate first step is to try to turn it into a general method for proving other facts. Fully flushing out such a process (over many years, showcasing many applications and extensions) is what makes one a world-class mathematician.

An entire book dedicated to the probabilistic method of proof, invented by Paul Erdős and sown into the soil of mathematics over the course of his lifetime.

Another difficulty faced by programmers new to mathematics is the inability to check your proof absolutely. With a program, you can always write test cases and run them to ensure they all pass. If your tests are solid and plentiful, the computer will catch your mistakes and you can go fix them.

There is no corresponding “proof checker” for mathematics. There is no compiler to tell you that it’s nonsensical to construct the set of all sets, or that it’s a type error to quotient a set by something that’s not an equivalence relation. The only way to get feedback is to seek out other people who do mathematics and ask their opinion. In solo, mathematics involves a lot of backtracking, revising mistaken assumptions, and stretching an idea to its breaking point to see that it didn’t even make sense to begin with. This is “bug hunting” in mathematics, and it can often completely destroy a proof and make one start over from scratch. It feels like writing a few hundred lines of code only to have the final program run “rm -rf *” on the directory containing it. It can be really. really. depressing.

It is an interesting pedagogical question in my mind whether there is a way to introduce proofs and the language of mature mathematics in a way that stays within a stone’s throw of computer programs. It seems like a worthwhile effort, but I can’t think of anyone who has sought to replace a classical mathematics education entirely with one based on computation.

Mathematical syntax

Another major reason programmers are unwilling to give mathematics an honest effort is the culture of mathematical syntax: it’s ambiguous, and there’s usually nobody around to explain it to you. Let me start with an example of why this is not a problem in programming. Let’s say we’re reading a Python program and we see an expression like this:

foo[2]

The nature of (most) programming languages dictates that there are a small number of ways to interpret what’s going on in here:

  1. foo could be a list/tuple, and we’re accessing the third element in it.
  2. foo could be a dictionary, and we’re looking up value associated to the key 2.
  3. foo could be a string, and we’re extracting the third character.
  4. foo could be a custom-defined object, whose __getitem__ method is defined somewhere else and we can look there to see exactly what it does.

There are probably other times this notation can occur (although I’d be surprised if number 4 didn’t by default capture all possible uses), but the point is that any programmer reading this program knows enough to intuit that square brackets mean “accessing an item inside foo with identifier 2.” Part of the reasons that programs can be very easy to read is precisely because someone had to write a parser for a programming language, and so they had to literally enumerate all possible uses of any expression form.

The other extreme is the syntax of mathematics. The daunting fact is that there is no bound to what mathematical notation can represent, and much of mathematical notation is inherently ad hoc. For instance, if you’re reading a math paper and you come across an expression that looks like this

\delta_i^j

The possibilities of what this could represent are literally endless. Just to give the unmathematical reader a taste: \delta_i could be an entry of a sequence of numbers of which we’re taking arithmetic j^\textup{th} powers. The use of the letter delta could signify a slightly nonstandard way to write the Kronecker delta function, for which \delta_i^j is one precisely when i=j and zero otherwise. The superscript j could represent dimension. Indeed, I’m currently writing an article in which I use \delta^k_n to represent k-dimensional simplex numbers, specifically because I’m relating the numbers to geometric objects called simplices, and the letter for those is  a capital \Delta. The fact is that using notation in a slightly non-standard way does not invalidate a proof in the way that it can easily invalidate a program’s correctness.

What’s worse is that once mathematicians get comfortable with a particular notation, they will often “naturally extend” or even silently drop things like subscripts and assume their reader understands and agrees with the convenience! For example, here is a common difficulty that beginners face in reading math that involves use of the summation operator. Say that I have a finite set of numbers whose sum I’m interested in. The most rigorous way to express this is not far off from programming:

Let S = \left \{ x_1, \dots, x_n \right \} be a finite set of things. Then their sum is finite:

\displaystyle \sum_{i=1}^n x_i

The programmer would say “great!” Assuming I know what “+” means for these things, I can start by adding x_1 + x_2, add the result to x_3, and keep going until I have the whole sum. This is really just a left fold of the plus operator over the list S.

But for mathematicians, the notation is far more flexible. For instance, I could say

Let S be finite. Then \sum_{x \in S} x is finite.

Things are now more vague. We need to remember that the \in symbol means “in.” We have to realize that the strict syntax of having an iteration variable i is no longer in effect. Moreover, the order in which the things are summed (which for a left fold is strictly prescribed) is arbitrary. If you asked any mathematician, they’d say “well of course it’s arbitrary, in an abelian group addition is commutative so the order doesn’t matter.” But realize, this is yet another fact that the reader must be aware of to be comfortable with the expression.

But it still gets worse.

In the case of the capital Sigma, there is nothing syntactically stopping a mathematician from writing

\displaystyle \sum_{\sigma \in \Sigma} f_{\Sigma}(\sigma)

Though experienced readers may chuckle, they will have no trouble understanding what is meant here. That is, syntactically this expression is unambiguous enough to avoid an outcry: \Sigma just happens to also be a set, and saying f_{\Sigma} means that the function f is constructed in a way that depends on the choice of the set \Sigma. This often shows up in computer science literature, as \Sigma is a standard letter to denote an alphabet (such as the binary alphabet \left \{ 0,1 \right \}).

One can even take it a step further and leave out the set we’re iterating over, as in

\displaystyle \sum_{\sigma} f_{\Sigma}(\sigma)

since it’s understood that the lowercase letter (\sigma) is usually an element of the set denoted by the corresponding uppercase letter (\Sigma). If you don’t know greek and haven’t seen that coincidence enough times to recognize it, you would quickly get lost. But programmers must realize: this is just the mathematician’s secret handshake. A mathematician would be just as bewildered and confused upon seeing some of the pointer arithmetic hacks C programmers invent, or the always awkward infinite for loop.

for (;;) {
   ;
}

And once the paper you’re reading is over, and you start reading a new paper, chances are their conventions and notation will be ever-so-slightly different, and you have to keep straight what means what. It’s as if the syntax of a programming language changed depending on who was writing the program!

Perhaps understandably, the frustration that most mathematicians feel when dealing with varying syntax across different papers and books is collectively called “technicalities.” And the more advanced the mathematics becomes, the ability to fluidly transition between high-level intuition and technical details is all but assumed.

The upshot of this whole conversation is that the reader of a mathematical proof must hold in mind a vastly larger body of absorbed (and often frivolous) knowledge than the reader of a computer program.

At this point you might see all of this as my complaining, but in truth I’m saying this notational flexibility and ambiguity is a benefit. Once you get used to doing mathematics, you realize that technical syntax can make something which is essentially simple seem much more difficult than it is. In other words, we absolutely must have a way to make things completely rigorous, but in developing and presenting proofs the most important part is to make the audience understand the big picture, see intuition behind the symbols, and believe the proofs. For better or worse, mathematical syntax is just a means to that end, and the more abstract the mathematics becomes, the more flexiblility mathematicians need to keep themselves afloat in a tumultuous sea of notation.

You’re on your own, unless you’re around mathematicians

That brings me to my last point: reading mathematics is much more difficult than conversing about mathematics in person. The reason for this is once again cultural.

Imagine you’re reading someone else’s program, and they’ve defined a number of functions like this (pardon the single-letter variable names, I’m just don’t like “foo” and “bar”).

def splice(L):
   ...

def join(*args):
   ...

def flip(x, y):
   ...

There are two parts to understanding how these functions work. The first part is that someone (or a code comment) explains to you in a high level what they do to an input. The second part is to weed out the finer details. These “finer details” are usually completely spelled out by the documentation, but it’s still a good practice to experiment with it yourself (there is always the possibility for bugs, of course).

In mathematics there is no unified documentation, just a collective understanding, scattered references, and spoken folk lore. You’re lucky if a textbook has a table of notation in the appendix. You are expected to derive the finer details and catch the errors yourself. Even if you are told the end result of a proposition, it is often followed by, “The proof is trivial.” This is the mathematician’s version of piping output to /dev/null, and literally translates to, “You’re expected to be able to write the proof yourself, and if you can’t then you’re not ready to continue.”

Indeed, the opposite problems are familiar to a beginning programmer when they aren’t in a group of active programmers. Why is it that people give up or don’t enjoy programming? Is it because they have a hard time getting honest help from rudely abrupt moderators on help websites like stackoverflow? Is it because often when one wants to learn the basics, they are overloaded with the entirety of the documentation and the overwhelming resources of the internet and all its inhabitants? Is it because compiler errors are nonsensically exact, but very rarely helpful? Is it because when you learn it alone, you are bombarded with contradicting messages about what you should be doing and why (and often for the wrong reasons)?

All of these issues definitely occur, and I see them contribute to my students’ confusion in my introductory Python class all the time. They try to look on the web for information about how to solve a very basic problem, and they come back to me saying they were told it’s more secure to do it this way, or more efficient to do it this way, or that they need to import something called the “heapq module.” When really the goal is not to solve the problem in the best way possible or in the shortest amount of code, but to show them how to use the tools they already know about to construct a program that works. Without a guiding mentor it’s extremely easy to get lost in the jungle of people who think they know what’s best.

As far as I know there is no solution to this problem faced by the solo programming student (or the solo anything student). And so it stands for mathematics: without others doing mathematics with you, its very hard to identify your issues and see how to fix them.

Proofs, Syntax, and Community

For the programmer who is truly interested in improving their mathematical skills, the first line of attack should now be obvious. Become an expert at applying the basic methods of proof. Second, spend as much time as it takes to clear up what mathematical syntax means before you attempt to interpret the semantics. And finally, find others who are interested in seriously learning some mathematics, and work on exercises (perhaps a weekly set) with them. Start with something basic like set theory, and write your own proofs and discuss each others’ proofs. Treat the sessions like code review sessions, and be the compiler to your partner’s program. Test their arguments to the extreme, and question anything that isn’t obvious or trivial. It’s not uncommon for easy questions with simple answers and trivial proofs to create long and drawn out discussions before everyone agrees it’s obvious. Embrace this and use it to improve.

Short of returning to your childhood and spending more time doing recreational mathematics, that is the best advice I can give.

Until next time!

Like this:

Like Loading...

. Bookmark the

.

20 Mar 01:23

Game Developer Quality-of-Life Survey

Tadeu

Job dissatisfaction rates are much higher among devs without a flexible schedule; 36% of those devs report feeling somewhat or very unsatisfied with their jobs, compared to 14.5% of those with flexible hours.

A checkup for the game industry. ...

20 Mar 01:19

March 19, 2013


19 Mar 16:50

DANSE MACABRE

by Mauro A.

twilight1 twilight2 twilight3 twilight4 twilight5 twilight6 twilight7 twilight8 twilight92


18 Mar 16:25

Retorno da sétima temporada de Doctor Who

by Mau Faccio

doctorwho293039012388

A BBC lançou hoje um trailer sensacional da segunda metade da sétima temporada de Doctor Who, com cenas inéditas e sensacionais. Inclusive você vai poder conferir nessas cenas, novos montros que vão fazer parte da mitologia de Doctor Who.

Logo em seguida o segundo vídeo mostra um preview rápido do primeiro episódio do retorno da sétima temporada, chamado “The Bells of Saint John”.

No Reino Unido e nos Estados Unidos o retorno da sétima temporada de Doctor Who acontece dia 30 de março.

No Brasil, ainda não há previsão de quando a TV Cultura e o Netflix começarão a exibir os novos episódios.


MauMau aparentemente gosta dessa série!

.

18 Mar 16:19

Progresso

by Arnaldo Branco

18 Mar 16:18

Google Drive suffering from service outage

by Daniel Cooper

Google Drive suffering from service outage

If there's ever a great time for Google Drive to start having issues, it's first thing on a Monday morning. We've received a not-inconsiderable fleet of tips from readers saying their access to the cloud storage service has been flaky, and similar complaints can currently be found all over Twitter. Google's service website confirms that there's "an issue," but the company hasn't yet shared any specifics. We've reached out to Mountain View for more details, and we'll let you know if we learn more.

[Thanks to everyone who sent this in]

Filed under: Google

Comments

Source: Google

18 Mar 16:15

Vaguely Interesting Facts: Ghostbusters

18 Mar 15:58

Dois novos promos de Guerra dos Tronos

by Mau Faccio

ads_GOT

Mais dois novos comerciais da terceira temporada de Guerra dos tronos foram divulgados hoje pela HBO, confira no fim deste post. A estreia da nova temporada acontece dia 31 de março.

Baseado nos livros de George R.R. Martin, a terceira temporada da série será baseado nos eventos do terceiro livro d’As Crônicas de Gelo e Fogo, A Tormenta das Espadas. Os produtores da série já disseram anteriormente em entrevistas, que a terceira temporada foi a razão pela qual eles começaram a fazer a série.

Os Sete Reinos ainda estão lutando a Guerra dos Cinco Reis, com os restantes Robb Stark, Balon Greyjoy, Joffrey Baratheon e Stannis Baratheon lutando para garantir suas coroas. Na tentativa de tomar Porto Real, Stannis Baratheon é derrotado pela aliança entre a Casa Lannister e a Casa Tyrel.

Enquanto isso um grande número de selvagens estão marchando em direção à Muralha sob Mance Rayder, com apenas a força minúscula da Patrulha da Noite em seu caminho. No Leste, Daenerys Targaryen está em seu caminho de volta para Pentos na esperança de aumentar suas forças para retomar o Trono de Ferro.

Via HBO


MauMau: Dragões! *_*

.

18 Mar 15:52

10 Fascinating Typographical Origins

by JFrater

A typographical character is simply a printed symbol—this includes letters, numbers, and punctuation marks. The ? is called a question mark; ( and ) are called parentheses; and ; is known as the semicolon. But you know that already, and I suspect you’re beginning to wonder how one could possibly wring drops of “fascinating” from the dry towel of typography. And that’s fair. But did you know the division sign has a name? What about the mysterious origins of the paragraph sign? Where did the % sign come from? ¿Why on Earth do Spanish-speakers put those upside-down question marks at the beginning of their sentences? Read on!

10 The Pilcrow—¶

Gazette Pilcrow

The pilcrow, also less elegantly called the “paragraph mark,” serves a number of purposes, most of which involve denoting the presence or location of a paragraph in one way or another. Most commonly, it’s used in word processing programs to indicate a “carriage return” “control character;” that is to say, a non-permanent mark showing where a paragraph ends. There is disagreement over the origin of the name; The Oxford English Dictionary, for one, likes to think it comes from a string of corruptions of the word “paragraph.” I prefer to side with the Oxford Universal Dictionary, which suggests that the sign itself looks a lot like a featherless crow—a “pulled crow.” The symbol itself derives from the letter C—you can still see it in there—which stood for the Latin “capitulum,” or “chapter.” The two lines that ended up vertically crossing the C were a sort of editorial note from the writer.

The pilcrow was used in the Middle Ages, in an earlier form, as a way of marking a new train of thought before the paragraph became the standard way of accomplishing this. Now, among its myriad uses are in academic writing (when citing from an HTML page), legal texts (when citing a specific paragraph), and in proofreading (an indication that a paragraph should be split in two).

9 The Ampersand—&

Ampersand-1

The ampersand is a logogram used to mean “and.” The symbol itself is based on a shorthand version of the Latin word for “and”—et—and in certain fonts, you can still clearly see an ‘e’ and a ‘t’ linked together (Adobe Caslon, for instance). The word ampersand has a somewhat unusual origin—it’s a corruption of the hard-to-parse, multilingual (English and Latin) phrase “& per se and,” which means “& by itself is ‘and.’” Confused? Don’t worry—that’s only natural. All it means is: “The symbol &, all by its little self, simply means and.” And where did this phrase come from? Well, in the early 1800s, & was considered the 27th letter of the English alphabet, and since saying “X, Y, Z, and” would be confusing, “and per se and” was said instead. It doesn’t take a major stretch of the imagination to fathom how this could quickly turn into ampersand, which it did by around 1837.

Because people like to make up urban legends based on everything, including stodgy ol’ typographical marks, there’s a vicious rumor floating around that French physicist and mathematician André-Marie Ampère used the mark so much that it eventually got called “Ampere’s and.” Don’t believe it for a second. In the end we’re left with a pretty little symbol that has more than a few variants.

8 Interrobang—!?, ?!, or ‽

Type-Talks-1

What?! You’ve never heard of the interrobang!? Really? Well, now you have, so all is forgiven. An interrobang is described as a “nonstandard punctuation mark” (it’s part of the punctuation counterculture), used to end sentences where you really want both the exclamation point and the question mark. While the use of both marks side by side had been prevalent for some time, it wasn’t until 1962 when an advertising executive named Martin K. Speckter decided that enough was enough—no longer would he withstand the tyranny of two separate punctuation marks when one would suffice. He asked readers to suggest names—rejecting such fine ideas as rhet, exclarotive, and exclamaquest—and ultimately settled upon interrobang, a combination of the Latin root “interro” (think “interrogate”), and “bang,” which is printer’s slang for the exclamation mark. The word is used to describe both the two side by side (!? or ?!), or the combined symbol ?.

7 At Sign—@

at_symbol800-640x360.jpg

What we know as @ has a lot of different monikers—including “at sign,” “at symbol,” “ampersat,” and “apetail”—but is unusual in that it doesn’t have a widely-accepted name in English. In Spanish, it is known as an arroba, and in French the arobase. @ has two primary usages—its original one, used in commerce to mean “at the rate of,” and more recently, “directed at” (primarily in email and in social media like Twitter). It has been claimed (by Italian professor Giorgio Stabile) that the symbol is actually over 500 years old, to represent an “amphora”—a unit of capacity used in commerce. It first made its way onto a typewriter as early as 1885, and has since found its way into our hearts.

A couple of fun facts:

- The Spanish arroba was a unit of weight equivalent to 25 pounds.
- The names for @ in other languages often derive from the idea that it looks like an animal. To wit: apenstaartje (Dutch for “monkey’s tail); papacy (Greek for “little duck); dalphaengi (Korean for “snail”); sobachka (Russian for “little dog”).

6 Guillemets—« »

Gui

Guillemets are what the French use instead of quotation marks. In addition to the physical differences, the usage differs as well—generally, guillemets open and close entire conversations or exchanges, rather than individual utterances. Amusingly, the guillemet is named after a French printer named Guillaume Le Bé from the 16th century; “Guillemet” is a diminutive of “Guillaume.” One can only assume that French people call our quotation marks “Willies,” “li’l Bills,” or “Mini Williams.”


5 Obelus—÷

Obelus

The Obelus, more commonly known as “the division sign” for reasons I can’t fathom, comes from an Ancient Greek word for a sharpened stick or other similar pointy object. It shares its roots with the word “obelisk.” The obelus was once used to denote sections of writing that were considered incorrect or suspicious; in other words, it would have been perfect for Wikipedia editors. It was first used to mean “division” in 1659 by Swiss mathematician Johann Rahn. While still used frequently in the US and in Britain, it is not commonly used to mean division in most of the rest of the world.

4 Inverted ? and !—¿ and ¡

Question Mark

In Spanish, when a sentence ends with a question mark or an exclamation point, it also starts with an inverted one. ¿Porque? Well, I’ll tell you porque. In 1754, the Spanish Royal Academy decided that the Spanish language had a dire problem: when you start reading a sentence, you often have no way of telling if it’s a question or not until you get to the very end.

Consider the sentence vas a ir a la tienda? (Are you going to go to the store?). Up until you get to the question mark, you are totally in the dark—is it a question, or simply a declarative sentence stating “you are going to go to the store”? In English, we have ways of indicating that a question is coming, so that proper inflection can be used, as well as to help with comprehension. In Spanish, you used to need contextual clues to help you out before the Royal Academy had its way. They also decided that the exclamation point would be lonely, so they advocated for its inverted use as well.

Though the language was slow to adopt this new convention, it is now a fully integrated part of the language. A few interesting usage notes:

- Short, unambiguous questions are often written without the inverted mark—Quien eres?
- In digital communication, the inverted mark is frequently left off (emails, instant messaging, texts).
- Some authors refuse to use inverted marks.
- Writers can get playful with the marks, including starting a sentence with a ¡ and ending it with a ?.
- ¿ can be used in the middle of a sentence if the whole sentence is not a question, but rather the final clause.
- Note that ¿ and ¡ are positioned differently than ? and !; they hang below the line.

3 Ditto mark

Quotes

File this under “things we use all the time but don’t know their name.” Ditto marks are those quotation-looking-guys you use to save your tired wrist from a few more seconds of writing, indicating that what’s directly above should be repeated. Though one might suspect (“one” being “me” before I researched it) that the word ditto may have been related to the Latin root “di” (meaning “two”, as in when you say “ditto” you mean “me too!”), it in fact derives from an early (c. 1620) form of the Italian word for “to say.” Originally, it was used to avoid needless repetition when writing a series of dates in the same month.

A “ditto mark” is a type of “iteration mark.” Other languages have their own, notably Chinese, Japanese, and Ancient Egyptian. It’s tough to fathom why Ancient Egyptian scribes might have needed a way to cut down on chiseling elaborate drawings into rock.

2 Percent Sign—%

M 506A91Feb7C37

Take a look at the percent sign. Look at each of the three individual marks—a circle, a line, a circle. Remind you of anything? Does it, perhaps, remind you of a certain number, with the digits rearranged and realigned? A very important number? Maybe . . . the number 100?

The % sign, of course, means that the preceding number should be understood as being divided by one hundred—”per cent.” The slash mark used to be straight across, with zeroes above and beneath, but it gradually became slanted—leading to what D.E. Smith, in 1925, called the “solidus form” of the percent sign. The solidus, aka slash, virgule, fraction bar, and other names, is this sign: /.

Because there is disagreement about everything, there is disagreement over whether there should be a space between the number and the % sign, over whether it should be per cent or percent, and when you should use the % symbol and when you should instead write out the word.

1 Upper Case and Lower Case letters

9 29 Upper & Lower Case

Once I learned the origins of the terms “upper case” and “lower case,” it seemed so obvious. I mused: does everyone know this but me? What else are my friends and family keeping from me? Instead, though, I decided to convince myself that legions of Listversers were in the dark like me, too embarrassed to say anything. Take comfort, fellow readers, for you may remain anonymous in your ignorance.

Now then: in the early days of printing, when each letter was set individually, the letters were kept in cases. The capital letters were kept in—you guessed it—the “upper case,” less convenient to the printer because of how relatively few capital letters are used, while the lower case letters were kept in the more accessible—wait for it—”lower case.” It’s as simple as that, really. This usage of the terms dates back to 1588.

Fun facts about cases:
- The use of two cases in a written language is called “bicameral script.” Languages with only one case are called “unicase.”
- So what were lower-case letters called before they used cases at all? Well, we have other words to describe them—Upper-case letters are called majuscules (and, of course, capitals), and lower-case letters are called minuscule. Note the spelling difference with the word miniscule.

The post 10 Fascinating Typographical Origins appeared first on Listverse.

18 Mar 15:44

Magic

by Greg Ross

pi alphabet grid

If π is expressed in base 26, then each of its digits can be associated with a letter of the alphabet (0=A, 1=B, … 25=Z). This produces an endless string of letters:

D.DRSQLOLYRTRODNLHNQTGKUDQGTUIRXNEQBCKBSZIVQQVGDMELM …

If the digits of π are truly random, then this string “emulates the mythical army of typing monkeys spewing out random letters,” writes Mike Keith. “Among other things, this implies that any text, no matter how long, should eventually appear in the base-26 digits of π.”

In examining the first million letters, Keith has found that the word CONJURE appears at position 246,556. If a carriage return is added after each 2,736 letters, then we have a two-dimensional field in which further words appear, in the style of a word search. Now HOCUS and POCUS appear, intersecting CONJURE (with POCUS in the shape of an L).

When each row is 14,061 digits long, then ALPHA, OMEGA, and GOD appear in a group near position 148,655. And when rows are 13,771 digits long, then DEMON and SATAN appear interlocked near position 255,717. Keith even found the makings of a charming haiku near position 554,766 when rows are 1,058 letters long:

Sun, elk in water;
Oho! For her I’ll try to
Be a hero yet.

More here. See also A Hidden Message and Equidistant Letter Sequences.

18 Mar 15:42

Photo



18 Mar 15:41

Imagining the Mundane: The Invented Cities of Robert Berlo

by markwallace
Tadeu

Sim City

High Country News has a remarkable obituary of one Robert Berlo, an army chaplain and map collector whose 13,000 travel maps were recently acquired by Stanford University’s Branner Earth Sciences Library. The collection includes “every official state road map from 1929 to the present, plus U.S. Forest Service, topographic, regional and city maps,” according to the article.

The real treasures of Berlo’s collection, however, were the maps of places he’d invented himself. Berlo used “the real geography of a place as the foundation for an invented city,” and imagined the evolution of the community from its first settlement to its latest metropolitan guise, creating a new map for each decade of its existence. Island Lakes, shown here, occupies a lake valley of Admiralty Island in the Alexander Archipelago of southeastern Alaska, about 50 miles south of Juneau. What I love about Island Lakes is the very lack of whimsicality in Berlo’s fidelity to the everyday grid that characterizes most modern cities. All he’s done is create another place that might have appeared on any of the 13,000 maps he collected in his lifetime. A man loyal to his passion, certainly.

I haven’t been able to find any other examples of Berlo’s imaginary maps, but I’d certainly be interested to hear of them.

Island Lakes, an invented city of Robert Berlo

18 Mar 15:40

The Expulsion from Google Reader Paradise Watch

by J. Bradford DeLong

Screenshot 3 15 13 9 53 AM

18 Mar 15:36

Bertrand Russell’s Ten Commandments for Living in a Healthy Democracy

by Mike Springer

Bertrand_Russell_photo

Bertrand Russell saw the history of civilization as being shaped by an unfortunate oscillation between two opposing evils: tyranny and anarchy, each of which contain the seed of the other. The best course for steering clear of either one, Russell maintained, is liberalism.

“The doctrine of liberalism is an attempt to escape from this endless oscillation,” writes Russell in A History of Western Philosophy. “The essence of liberalism is an attempt to secure a social order not based on irrational dogma [a feature of tyranny], and insuring stability [which anarchy undermines] without involving more restraints than are necessary for the preservation of the community.”

In 1951 Russell published an article in The New York Times Magazine, “The Best Answer to Fanaticism–Liberalism,” with the subtitle: “Its calm search for truth, viewed as dangerous in many places, remains the hope of humanity.” In the article, Russell writes that “Liberalism is not so much a creed as a disposition. It is, indeed, opposed to creeds.” He continues:

But the liberal attitude does not say that you should oppose authority. It says only that you should be free to oppose authority, which is quite a different thing. The essence of the liberal outlook in the intellectual sphere is a belief that unbiased discussion is a useful thing and that men should be free to question anything if they can support their questioning by solid arguments. The opposite view, which is maintained by those who cannot be called liberals, is that the truth is already known, and that to question it is necessarily subversive.

Russell criticizes the radical who would advocate change at any cost. Echoing the Enlightenment philosopher John Locke, who had a profound influence on the authors of the Declaration of Independence and the U.S. Constitution, Russell writes:

The teacher who urges doctrines subversive to existing authority does not, if he is a liberal, advocate the establishment of a new authority even more tyrannical than the old. He advocates certain limits to the exercise of authority, and he wishes these limits to be observed not only when the authority would support a creed with which he disagrees but also when it would support one with which he is in complete agreement. I am, for my part, a believer in democracy, but I do not like a regime which makes belief in democracy compulsory.

Russell concludes the New York Times piece by offering a “new decalogue” with advice on how to live one’s life in the spirit of liberalism. “The Ten Commandments that, as a teacher, I should wish to promulgate, might be set forth as follows,” he says:

1: Do not feel absolutely certain of anything.

2: Do not think it worthwhile to produce belief by concealing evidence, for the evidence is sure to come to light.

3: Never try to discourage thinking, for you are sure to succeed.

4: When you meet with opposition, even if it should be from your husband or your children, endeavor to overcome it by argument and not by authority, for a victory dependent upon authority is unreal and illusory.

5: Have no respect for the authority of others, for there are always contrary authorities to be found.

6: Do not use power to suppress opinions you think pernicious, for if you do the opinions will suppress you.

7: Do not fear to be eccentric in opinion, for every opinion now accepted was once eccentric.

8: Find more pleasure in intelligent dissent than in passive agreement, for, if you value intelligence as you should, the former implies a deeper agreement than the latter.

9: Be scrupulously truthful, even when truth is inconvenient, for it is more inconvenient when you try to conceal it.

10. Do not feel envious of the happiness of those who live in a fool’s paradise, for only a fool will think that it is happiness.

via Brain Pickings

Bertrand Russell’s Ten Commandments for Living in a Healthy Democracy is a post from: Open Culture. You can follow Open Culture on Facebook, Twitter, Google Plus and by Email.

18 Mar 15:30

Not Enough

by Doug

Not Enough

More clowns.

18 Mar 15:29

"There’s also the issue, Flock says, of what the Brewer’s Association calls..."

Tadeu

Eisenbahn == Baden Baden == Devassa == Schincariol

“There’s also the issue, Flock says, of what the Brewer’s Association calls “crafty” beers — beers owned by big beer companies disguised as small craft beer. A common example is Blue Moon, a Belgian-style beer. “A lot of people think that [Blue Moon] is a craft beer, but is in fact owned by MillerCoors,” she says.”

- Craft Brews Slowly Chipping Away At Big Beer’s Dominance : NPR
18 Mar 14:02

X-Files Now With Cannibals

17 Mar 13:40

a felicidade em perspectiva

by Eli Boscatto

Tenho notado nos últimos tempos, especialmente por causa da morte frequente de personalidades do mundo da música, muito se falar sobre a depressão, já chamada de o mal do século XXI, e que ainda pode atingir 30% da população mundial.


Ler o artigo completo
17 Mar 13:40

Sean Penn realiza sonho do ator brasileiro Ariel Goldenberg

by luisnassif
EMILIAMMM

GRANDE SEAN PENN!

Da Folha

Sean Penn faz churrasco para ator brasileiro com síndrome de Down; veja foto do encontro

RODRIGO SALEM
DE SÃO PAULO
FERNANDA EZABELLA
DE LOS ANGELES

O sonho do ator Ariel Goldenberg, do filme "Colegas", de encontrar o astro Sean Penn foi realizado nesta sexta-feira (15), em Los Angeles. De acordo com Marcelo Galvão, diretor do longa, o brasileiro foi com a mulher, Rita Pokk, à casa de Penn, na praia de Malibu, sem avisar e tocou a campainha.

"Foi tudo de surpresa. Teve uma americana no local dizendo que essas coisas são proibidas e que chamaria a polícia se tocássemos a campainha. Mas o próprio astro atendeu e, como conhecia a campanha Vem Sean Penn, foi superbacana com Ariel", conta à Folha o cineasta, que ficou no Brasil por causa de problemas no visto e mandou dois assistentes para acompanhar a empreitada.

Folha recebeu a foto do encontro com exclusividade.

"Nós batemos na porta com a cara e a coragem. Eu achava que era a maior roubada do mundo, que éramos loucos, mas ele [Sean Penn] atendeu [a porta]", disse Carlos Cardinalli, amigo de Ariel e de Galvão que mora em San Diego (Califórnia) e está ajudando na viagem. "Penn o chamou para andar na praia e fez um churrasco para Ariel, que ficou muito feliz."

O ator hollywoodiano, segundo o diretor, pensou em viajar para o Brasil para encontrar Ariel Goldenberg e o elenco de "Colegas", mas não queria sua imagem ligada a nenhum tipo de patrocínio. "Em compensação, Penn tirou da parede o certificado de sua indicação ao Oscar por 'Uma Lição de Amor' e deu para Ariel com um pôster autografado", revela Galvão.

Protagonizado por um trio de atores com síndrome de Down (incluindo Ariel Goldenberg e Rita Pokk), "Colegas" já foi visto nos cinemas por mais de 96 mil pessoas ao longo de duas semanas em cartaz.

O ator Ariel Goldenberg com seu ídolo, o também ator Sean Penn

O ator Ariel Goldenberg com seu ídolo, o também ator Sean Penn

leia mais

17 Mar 13:39

Os registros da primeira explosão nuclear subaquática

by luisnassif

Por Vaas

Fotografias da primeira explosão nuclear subaquática do mundo  

Post por Valerie Scavone Em 1946, os Estados Unidos conduziram uma série de testes de armas nucleares, no Atol de Bikini, conhecido como Operação Cossroads. No total, duas bombas foram detonadas para testar os efeitos das explosões nucleares nos navios de guerra. A segunda, chamada Baker, foi a primeira bomba nuclear a ser detonada debaixo d´água. A Baker foi instalada cerca de 90 metros de profundidade e provocou um maremoto que atingiu 2 quilômetros de altura formando uma nuvem de cogumelo gigantesca.  Na primeira foto, é possível identificar a escala se você atentar-se aos navios ao redor. A explosão levantou milhões de toneladas de água e areia no ar, criando uma coluna de 6.000 pés de altura, 2.000 metros de largura e paredes de 300 pés de espessura!  Com resultados monstruosamente devastadores, a explosão do terceiro teste, chamado Charlie, programado para 1947, foi cancelado porque os navios de guerra ainda estavam tendo problemas para a descontaminação do teste de Baker. A expectativa de vida das pessoas envolvidas foi reduzida por uma média de três meses. Mais tarde, o teste ficou conhecido como o primeiro desastre nuclear do mundo.   Fotos e na sequência um vídeo!

 

leia mais

17 Mar 13:38

Emissora na Dinamarca usa foto de Assassin’s Creed como se fosse da Síria

by administrador@bytequeeugosto.com.br (Marcel Dias)

O artigo Emissora na Dinamarca usa foto de Assassin’s Creed como se fosse da Síria faz parte do conteúdo do Byte Que Eu Gosto! - Nerd, Geek, Dicas, Cinema, Games e mais!.

Uma emissora de TV dinamarquesa cometeu uma gafe surreal. Numa matéria sobre conflitos na Síria, exibiu de pano de fundo uma imagem do jogo Assassin’s Creed, como se fosse uma imagem real de uma cidade na Síria. Eu sei que os jogos hoje em dia são muito realistas, mas não sabia que eram tanto:

Obviamente já arrumaram um estagiário pra por a culpa.

Via

O artigo Emissora na Dinamarca usa foto de Assassin’s Creed como se fosse da Síria faz parte do conteúdo do Byte Que Eu Gosto! - Nerd, Geek, Dicas, Cinema, Games e mais!.

17 Mar 13:35

Startups and TDD

by gregyoung

Yesterday Uncle Bob put up a post on using TDD in start up environments “The Startup Trap” its a good read. Check it out.

Nate soon after posted:

It’s funny, you never see someone with the title “Master Craftsman” at a startup. I wonder why?

— Nate Kohari (@nkohari) March 5, 2013

then

I take it all back. I would strongly encourage startups to use TDD while developing any products that compete with ours. :)

— Nate Kohari (@nkohari) March 5, 2013

I wanted to write a few comments about TDD in startups. Good code is the least of the risks in a startup. Sorry but worrying about technical debt making us go slower when we have a two month runway and likely will pivot four times to quote Bob.

Captain Sulu when the Klingon power moon of Praxis exploded and a young Lieutenant asked whether they should notify Star-Fleet: “Are you kidding?” ARE YOU KIDDING?

One of the biggest mistakes in my career was building something appropriate…

It was just after Hurricane Katrina. I was living in a hotel. An acquaintance asked me if we could hack together this business idea they had for a trading system. He had the knowledge but not the know how. I said sure, hell I was living in a hotel!

In less than two weeks we had an algorithmic trading system. It was a monstrosity of a source base. It was literally a winforms app connected directly to the stock market. UI interactions happened off events directly from the feed! Everything was in code behinds (including the algos!) Due to the nature of the protocol if anything failed during the day and crashed the app (say bad parsing of a string?) the day for the trader was over as they could not restart.

But after two weeks we put it in front of a trader who started using it. We made about 70-80k$ the first month. We had blundered into the pit of success. A few months later I moved up with the company. We decided that we were going to “do things right”. While keeping the original version running and limping along as stable as we could keep it while adding just a few features.

We ended up with a redundant multi-user architecture nine months or so later, it was really quite a beautiful system. If a client/server crashed, no big deal just sign it back on, multiple clients? no problem. We moved from a third party provider to a direct exchange link (faster and more information!). We had > 95% code coverage on our core stuff, integration suites including a fake stock exchange that actually sent packets over UDP so we could force various problems with retry reconnects etc/errors. We were very stable and had a proper clean architecture.

In fact you could say that we were dealing with what Bob describes in:

As time passes your estimates will grow. You’ll find it harder and harder to add new features. You will find more and more bugs accumulating. You’ll start to parse the bugs into critical and acceptable (as if any bug is acceptable!) You’ll create modules that are so fragile you won’t trust yourself, or anyone else, to modify them; so you’ll work around them. You’ll build a festering pile of code that, with every passing week, requires more and more effort just to keep running. Forward progress will slow and falter. It may even reverse as each release becomes buggier and buggier, and less and less stable. Catastrophes will become more and more common as errors, that should never have happened, create corruptions and damage that take huge traunches of time to repair.

We had built a production prototype and were suffering all the pain described by Bob. We were paying down our debt in an “intelligent” way much the way many companies that start with production prototypes do.

However this is still a naive viewpoint. What really mattered was that after our nine months of beautiful architecture and coding work we were making approximately 10k/month more than what our stupid production prototype made for all of its shortcomings.

We would have been better off making 30 new production prototypes of different strategies and “throwing shit at the wall” to see what worked than spending any time beyond a bit of stabilization of the first. How many new business opportunities would we have found?

There are some lessons here.

1) If we had started with a nine month project it never would have been done

2) A Production Prototype is common as a Minimum Viable Product. Yes testing, engineering, or properly architecting will likely slow you down on a production prototype.

3) Even if you succeed you are often better to stabilize your Production Prototype than to “build it right”. Be very careful about taking the “build it right” point of view.

4) Context is important!

Never underestimate the value of working software.

17 Mar 13:32

Project managers' logic

by sharhalakis

Image by kmw

17 Mar 13:32

Google's Turn to the Dark Side

Google's Turn to the Dark Side:

The subtext of the furor over Google Reader’s shutdown is that Google no longer considers publishers its primary customers. Google folk (particularly Marissa Mayer) used to talk quite eloquently about how best way to ensure someone would return to the site was to send them away quickly. Google Plus doesn’t even have an open API (yet), there is nothing you will get from Google Plus without driving into the horrendous cul-de-sac that is plus.google.com. Just last week, I was reminiscing about the fury when Google launched a toolbar update that allowed Google to offer user’s features on top of the pages they were browsing. This was also the guiding philosophy of Google’s unfairly-maligned OpenSocial product. These products represent a philosophy turned 180 degrees relative to Google Plus; to use google’s software you never even had to navigate to Google.com.

Google’s shuttering of Reader, as well as their doubling down on the dual debacles of Google Plus and Glass, represent the complete rejection of the “send them away so they will return philosophy” which was the primary reason that nerds (like me) fell in love with Google in the first place. Google is replacing a strategy that was easily understood and straightforward with one that is nearly Orwellian in scope. They’re already quite far down this road, but the shuttering of Google Reader makes it clear for all to see. Google is a different company than it used to be, but the dramatic turn feels like a turn to ‘evil,’ and that’s quite sad for me.

17 Mar 13:30

RSS Inventor Couldn't Care Less About Google Reader's Death

by Eric Limer
Click here to read RSS Inventor Couldn't Care Less About Google Reader's Death The impending death of Google Reader has sparked much wailing and gnashing of teeth, petition-signing, alternative-seeking, and rending of garments. But what about the people who made RSS? Dave Winer, one of the fathers of the both RSS and the blog, couldn't give less of a shit. More »


16 Mar 14:59

X Who Programs vs Just A Programmer

16 Mar 14:52

Radar reveals buried channels on Mars

16 Mar 14:51

TDD Bypasses Your Brain

Tadeu

Wrong! TDD doesn't mean you have to program by coincidence.

16 Mar 14:43

Miss Sanderson and the womanly art of parasol self defence

Miss Sanderson and the womanly art of parasol self defence:

unlockaflockofwords:

“Although the woman known as “Miss Sanderson” was a prominent fencer and self defence instructor in Edwardian London, regrettably little is known of her life – including her first name. At some point in the early 1900s she married Pierre Vigny, who had begun his own career in London as the chief instructor at the Bartitsu Club. Miss Sanderson, who continued to use what was presumably her maiden name for professional purposes, became Vigny’s assistant instructor when he opened his own school in Berner’s Street during 1903. By 1908 she was teaching her own unique system of women’s self defence, based on Vigny’s method but concentrating on the use of the umbrella and parasol….”