HN user

plus9z

32 karma
Posts0
Comments23
View on HN
No posts found.

"For safety, Swift requires the variables to be initialized before being passed with &. This is because it cannot know whether the method being called tries to read from a pointer before writing to it."

I've not written any Swift code yet, so can someone enlighten me -- is this actually true? This seems unnecessarily restrictive (and absurd -- Swift can't tell if a pointer's being read?)

Euclid: The Game 12 years ago

Yeah, you can move points around to get the setup that seems nicest to you, which is why it isn't perfect for proofs yet.

See, my problem with this idea is the inaccuracy of Google Translate's translations. For Romance languages, the results are questionable enough (I'm also learning French at the moment, and anything more than simple sentences can be hit-or-miss); for non-Romance languages, the sentences are just hilariously bad. A sentence as simple as "Hey, cowboy where is your horse?" is translated into Chinese as the slightly mangled 嘿,牛仔是你的马在哪里? according to the project's README. (To non-readers of Chinese, that 是 should be replaced by a comma.)

(As an aside, I got the strangely reordered and even more ungrammatical "哎牛仔哪里是你的马?" when I tested it myself in-browser. Talk about unreliable.)

I'm very confused about the purpose of this. If it's just taking advantage of the Translate API so you don't have to use the browser app, I can see the convenience of being able to, say, write a local script without having to munge through API docs and get a Google account and so on. However, I'm confused about it being branded as a language learning tool...

Show HN: Speedsums 12 years ago

Fun. But typos are BRUTAL. "For future reference, 3 + 1 = 4. It should not take 2.69s to solve that next time."

The mechanical efficiency of the the mass killings, for one, is fairly unique. Also, the stories of the Holocaust are more widely heard because many of the people that were alive when it happened are still alive today. Genocide is genocide, but if the victims are alive to tell their stories it gives a particular event more focus. And finally, the fact that we were inundated with propaganda prior to entering in conflict against the Germans solidified the war in out collective conscience as "the US coming in to save the persecuted Jews."

I mean, one could make the same arguments about other genocidal leaders. Why isn't Mao in out textbooks? What about Pol Pot? Well, we didn't have the same level of propaganda regarding those leaders, and there aren't as many survivors that tell their stories in the U.S.

EDIT: added extra reason and examples

5 Cool Unix Hacks 13 years ago

In regard to the first tip, I use `git add -i` even more often, because it gives you an interactive prompt that asks you which files you want to add to a commit (i.e. you don't have to type out the whole filename(s) each time).

I believe that the author of the article is the same person speaking at the TED Talk -- or am I missing something?

Not all progress is gradual. Sometimes we need a complete overhaul. In this case, I don't see the need, but if there is something that much better than current notation, then I would hope that it does supplant this.

It has 201 digits (it's on the order of 10^200), so it would be about 9.167 googol googol. Yeah, that's incomprehensible. Not the biggest integer I can think of (see Graham's Number) but I'd say it's big enough.

Anyway, the point isn't that she's faster than a computer (I mean, my laptop can conjure up that answer with PARI/GP in under a millisecond). The point is a) she pushed the limits of human achievement and showed that such feats were, in fact, possible, particularly for an adult beyond their twenties, and b) her passion for math inspired so many others. I mean, who wouldn't be impressed by someone who could calculate that? I doubt I could even keep track of all those digits given all the time in the world, much less give any answer better than an order of magnitude estimation in 50 seconds. Her intention was to show people (generally kids) that math is not this impossible, unconquerable monster of a subject, even though it may seem that way when you first encounter it, and even afterwards, as long as you treat it that way.

Sure, these are generally valid points, but Hummingbird doesn't really solve them. I'd love to see a solution to those problems, though. >12-pitch solutions exist, but they're just cumbersome.

I'd disagree about the precision of note lengths and tempi being a problem, though, simply because humans aren't very good at keeping exact time. I mean, ask someone to count off exactly 60 beats evenly divided over the course of a minute. What about 80? 100? 133? The speed at which you count off is highly dependent on your heart rate (and possibly state of mind). So assuming we have an exact tempo, what's the likelihood a note length within it is going to be played with that same amount of precision? Well, it's all up to the musician's ability to interpret the composer's intentions, which is much the same as what we have now. In fact, there are ways even now to specify exact bpm (even if we can't exactly express slight tempo changes). The notes themselves are estimates, but fairly good ones at that, and they're effective enough to get the point across to the musician.

Really? Then how do we have progress? I mean, I prefer current notation, but who's to say that this is the best possible notation to express musical ideas? Although Hummingbird isn't going to supplant it for a lot of reasons, there may be a better system that will.

Basically my defense of traditional notation is that although it makes easy music hard to read initially, it makes difficult music easy to read in the long run. If a notation has to compromise, I'd rather pay the price at the beginning than for the rest of the time I use the notation. Also, I would ask, what problem does Hummingbird actually address (besides note naming)?

Funny that I came across this right after a concert (Bottesini, Elgar, Hindemith, Monti, Saint-Saens, and Dvorak -- all 1st movements of one of their respective concertos, except for the Trauermusik -- if you're wondering).

So to start off, it's not really a valid criticism to complain about Hummingbird's alleged emphasis on absolute pitches as opposed to relative pitches. Honestly, I can read the notes without giving a crap about note names. I mean, are the circle-names that distracting? The visual position of pitches is still consonant with traditional notation, so it's still maintaining the relative spacing you would expect. Additionally, the new accidentals are at least still on the left where you'd expect them to be.

As far as why this is better than the "teaching notation" [1] of today, it should be obvious when you zoom out a bit: the current system simply doesn't visually scale. That example's quite difficult to read without looking at staff lines. Reading a letter name from inside a note head is impossible unless you make everything "Fisher-Price"-sized (i.e. unmanageably huge). I mean, good luck reading this [2] at any distance if it had note names inside. Sure, by the time you get to the point to be able to play that sort of piece you shouldn't need note names, but if we're discussing notation, Hummingbird is definitely better than "teaching notation" in that respect.

On the other hand, we have some new issues that are introduced:

(1) Lack of stems or beams. As others have noted, this really is difficult to use to scan pieces quickly before/during sight-reading. They've missed the point with proportional spacing, because there are pieces with really horrendous spacing that are still actually readable. However, getting rid of beams makes thinking about rhythmic patterns harder, because now you have to look in two places to find rhythm grouping (in their version of "beams") and rhythm (with that squiggly crap under the "note head").

(2) Not to mention, this results in another readability issue when it comes to notes shorter than a quaver (8th-note): scaling. I cannot tell the difference between 16th and 32nd notes when I zoom out even a little; the curves all smoosh together. And WTF is with those rests? They're completely unreadable at the same zoom level. Traditional notation, however, makes things obvious because the flags are a clear indicator of the length of the note. In fact, I can zoom out 8 times farther in traditional notation and see note lengths EASILY.

(3) This brings up the issue of lower visual information density. I'm not buying that this will help non-visual learners. I mean, where's the auditory or tactile feedback here? Not to mention, this hampers visual learners too, because traditional notation manages to make all the visual cues large yet it still takes the same amount of space. Hummingbird depends too much on minimalism, and turns fat, thick beams into anemic lines, and heavy, bold accidentals into awkward little markings. I'm not saying that this is an issue that is confined to Hummingbird; badly typeset traditional scores, particularly computer-generated scores, suffer from this as well. I'm saying that at its best, Hummingbird is on the same level with respect to clarity as incompetent traditional typesetting.

(4) Why did they get rid of dotted notes? I mean, functionally, a half-note tied to a quarter-note is the same as a dotted half, but notationally, they are used differently. The former would be used in simple duple to represent 1 beat + 1/2 beat, 2 beats + 1 beat, etc. and the latter would function better in simple triple or compound meters, where it might represent a whole measure or a whole beat, respectively. Either way, this type of rhythmic grouping is absent from Hummingbird. I mean, there's a reason why most typesetters don't go around using triple-dotted half notes every time there's a dotted half tied to a dotted eighth; it's less readable.

(5) The abstraction in the note names is weird. If you're going to abstract note names, why not just use position? Why do you have to learn a system using circle-symbols that no one uses anyway?

(6) Yeah, that key sig thing is really a non-starter. Although I do have memory lapses regarding the key signature at moments, it's still important, for the same reason that knowing harmonic and melodic progressions are important, namely that you know how the notes function in relation to one another in the piece. If you want to scan a piece of music and write a harmony for it, or do anything to it besides just reading it, the key sig is almost a necessity.

(7) This might become a non-issue in future versions/revisions, but what about other notation for ornamentations and other musical aspects in general? Slurs (look a bit like rests, and violates every sense of notational consistency as a result), certain chords (if you want to typeset two adjacent notes, normally you just shift one note head to one side; Hummingbird makes that impossible), multiple voicings (how do you mark separate voices if you can't use stem direction b/c there are no stems to work with?), trills (not the "tr" mark, but the wavy line that sometimes follows or replaces it; looks a bit too much like a bunch of 8th notes tied together), tremolos (if there are no flags, how do you write a tremolo?), Bartok pizzicati (which look remarkably similar to 16th rests and sharp symbols), tuplets (how do you express a tuplet if there's no stem? Then the tuplet bracket looks like a beam, and the tuplet number might as well be a fingering), acciaccature/appogiature (there is no concept of note size, so notating grace notes is impossible), glissandi (they look like beams -- is this getting old?), and articulation marks (many of which are too close for comfort to random symbols that I won't bother enumerating here).

I mean this huge post is just scratching the surface of the fundamental issues with Hummingbird. By all means, find a way to improve notation, but if the intent is make reading note names easier, don't sacrifice literally everything else. If I was given complete control of Hummingbird, revision 2 would be identical to traditional notation, except for the note heads. Yeah, there would still be scalability issues, but the change wouldn't castrate the notation as a whole, it would allow a very smooth transition to traditional notation, and at the very least those circle things are ignorable by professionals. The final issue, then, is how do you differentiate half notes and quarter notes or tremolos... Ah never mind, it's just a mess already. And don't forget, we have a better two-century old version of this proposal already [3], but some shapes still look a bit too similar to one another...

TL;DR Hummingbird is equally fast to read, but is less information-dense and scalable, and invalidates many aspects and necessary facets of current notation, which all combined introduces unnecessary headache for everyone who's not a newb. Can't comment on behalf of the noobs, because it's been a while, and you can't really imagine what it's like to not be able to read notation when you actually can.

Also what guy designed those samples with GRAY staff lines? They blend into the white background waaay too easily, and makes Hummingbird harder to read. I mean, that traditional F-C-F quarter note triad looks like an F-(B? or C? or D?)-F triad in Hummingbird.

[1] http://lilypond.org/doc/v2.14/Documentation/f8/lily-13872c43... [2] http://lilypond.org/doc/v2.12/Documentation/user/e3/lily-bfe... [3] https://en.wikipedia.org/wiki/Shape_note