Dolphins Seem to Use Toxic Pufferfish to Get High - <AUTHOR> https://www.smithsonianmag.com/smart-news/dolphins-seem-to-use-toxic-pufferfish-to-get-high-180948219/ <comment><USER2> Oh boy, again the dolphin pufferfish article.

This article has been submitted on HN 10 times [0] in the past 5 years. Linked from various websites. This seems one of those articles that does really well on algorithms.

[https://hn.algolia.com/?query=dolphins%20puffer&sort=byDate&...](https://hn.algolia.com/?query=dolphins%20puffer&sort=byDate&prefix&page=0&dateRange=all&type=story)

<comment><USER3> Including two days ago: [https://news.ycombinator.com/item?id=19184234](https://news.ycombinator.com/item?id=19184234)

</comment></comment><comment><USER4> Here's a vision neuroscientist - Robert Marc, distinguished professor emeritus University of Utah - shooting down the whole article. [https://twitter.com/robertmarc60/status/1096946633361641472](https://twitter.com/robertmarc60/status/1096946633361641472)

<comment><USER5> Man, I hope nobody tells Professor Marc that Homo sapiens have been documented inhaling benzene and other[X] potent neurotoxins to get high!

[X]edit: specifically with benzene, I was apparently wrong to call it a neurotoxin (its mechanisms of toxicity aren't neurological).

</comment></comment><comment><USER6> > _The dolphins were filmed gently playing with the puffer, passing it between > each other for 20 to 30 minutes at a time, unlike the fish they had caught > as prey which were swiftly torn apart._

> _Zoologist and series producer Rob Pilley said that it was the first time > dolphins had been filmed behaving this way._

> _At one point the dolphins are seen floating just underneath the water 's > surface, apparently mesmerised by their own reflections._

Apparently dolphins know how to have a good time and know more than we think. Dolphins will be the first to jet if it all goes under just like in Hitchikers Guide to the Galaxy.

From the Guide:

>> _" On the planet Earth, man had always assumed that he was more intelligent than dolphins because he had achieved so much—the wheel, New York, wars and so on—whilst all the dolphins had ever done was muck about in the water having a good time._

</comment><comment><USER7> Lock up the criminal dolphins! /s

<comment><USER8> Add them to the sex offender registry!

</comment></comment><comment><USER9> Let me guess... you love dolphins so much that you can't stop reading about them... /sigh

[https://news.ycombinator.com/item?id=19189284](https://news.ycombinator.com/item?id=19189284)

<comment><USER10> You seem to love reading about them just as much. One day before your submission:

[https://news.ycombinator.com/item?id=19185432](https://news.ycombinator.com/item?id=19185432)

But don't worry, you're in good company:

2 days ago: [https://news.ycombinator.com/item?id=19184234](https://news.ycombinator.com/item?id=19184234)

Shortly before that: [https://news.ycombinator.com/item?id=19181575](https://news.ycombinator.com/item?id=19181575)

4 days ago: [https://news.ycombinator.com/item?id=19164541](https://news.ycombinator.com/item?id=19164541)

And that's just within the last week. Luckily it doesn't keep up this frequency:

4 months ago: [https://news.ycombinator.com/item?id=18155797](https://news.ycombinator.com/item?id=18155797)

March 6th, 2014: [https://news.ycombinator.com/item?id=7356602](https://news.ycombinator.com/item?id=7356602)

January 4th, 2014: [https://news.ycombinator.com/item?id=7009842](https://news.ycombinator.com/item?id=7009842)

December 30th, 2013: [https://news.ycombinator.com/item?id=6985677](https://news.ycombinator.com/item?id=6985677)

<comment><USER9> I did have a dream about a dolphin the other day... coincidence?! I think not...

But yes, I can be a smartass sometimes and too lazy to check what's posted or not... thanks for calling me out on it. ;-)

</comment></comment></comment><comment><USER11> Here's an article debunking it: [http://justingregg.com/evidence-for-dolphins- getting-high-on...](http://justingregg.com/evidence-for-dolphins-getting-high- on-puffer-fish-toxin-is-weak/)

tl;dr it's not based on any scientific evidence, it's a few anecdotes and it's entirely unclear if it's plausible.

</comment><comment><USER12> Same.

</comment><comment><USER13> I'd love to watch a documentary on this type of behavior. There seems to be multiple instances of it in the animal kingdom.

My grandmas dog actually had a taste for a particular mushroom that would really daze him out. We had to watch him closely or he'd be messed up and stumbling around for hours.</comment>


The Problem with Threads (2006) [pdf] - <AUTHOR> https://www2.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-1.pdf <comment><USER2> This piece seems to have predicted a very active field in everyday software development since then.

What are the alternative paradigms that have actually become common use? Coroutines, async/await, that's what I hear about online but what are others? I've seen people who touted zmq-communicating-processes with standard patterns as the solution to all problems, and I'm happy not to have to maintain the results.

Have we effectively "solved" the concurrency problem, and if so what's left as an exercise for the future?

<comment><USER3> At risk of being _that guy_ , the actor model (ala Erlang) is pretty good at concurrency. If you're unfamiliar, it's basically no shared state, and communication with other actors (Erlang processes) by sending asynchronous messages to the other actor's message queue.

The code for each actor is usually pretty small and easy to reason about. However, emergent behavior of the system, and ordering between messages from multiple actors can become tricky. Also, exposure to this idea long term will warp your mind :)

<comment><USER4> The actor model is very vulnerable to race conditions - that's a big downside to it.

<comment><USER3> It depends on what is racing. If you have the same/dependent information in two (or more actors), you're going to have a coordination challenge.

So try not to do that. On the other hand, everything that happens with state within an actor is inherently non-racy, because an actor is sequential code and no other actor can mess with its state.

</comment></comment></comment></comment><comment><USER5> I've always liked section 3 of this paper, specifically the concept that "infinite interleavings" make threads executing in parallel non-deterministic and difficult to reason about. That gets to the heart of why threaded programs are so prone to heisenbugs.

 _" They make programs absurdly nondeterministic, and rely on programming style to constrain that nondeterminism to achieve deterministic aims."_

You can't write an infinite number of test cases for all those interleavings, and it requires hard thought to suss out where any problems might lie.

<comment><USER6> This is just my opinion, but I've never found that part of multi-threading difficult. Interleaving doesn't matter except where resources are shared between multiple threads, and the solution is to protect the resource with a mutex.

Sometimes it's hard to tell when a resource is shared, but that has more to do with not knowing how the code works than it does with multi-threading.

<comment><USER7> > Sometimes it's hard to tell when a resource is shared, but that has more to > do with not knowing how the code works than it does with multi-threading.

With respect, this sort of thing works a lot better for small codebases where you're the only one working on it. Multithreading when you can't contain the entire relevant codebase in your brain is where the real challenge is.</comment></comment></comment>


The Wrong Way to Get Noticed by YC - <AUTHOR> http://www.mattmazur.com/2008/08/the-wrong-way-to-get-noticed-by-yc/ <comment><USER2> Don't worry, you didn't slow down the server. I throttled your IP address. The server can withstand a crawler or two. The reason I ask people not to crawl the site is simply that if I let one person do it, I have to let everyone, and considering the audience here, that might mean we'd have 100 of them.

<comment><USER3> Why not create periodic dumps of the database and allow people to glean interesting statistical data from it? You could remove any non-public information (passwords, preferences, individual up/down voting, last 2 octets of the IP, etc). It would be interesting to see what hours and what days people are active, where the visitors are coming from, what the most common words used are, etc.

<comment><USER4> Like

<http://news.ycombinator.com/item?id=172701> <http://news.ycombinator.com/item?id=182374> <http://news.ycombinator.com/item?id=197644> <http://news.ycombinator.com/item?id=212491> <http://news.ycombinator.com/item?id=213891>

? <http://news.ycombinator.com/item?id=218782>

<comment><USER5> The data you can gather from crawling the site aren't as specific as the data in the database. For example - you don't know the exact submission times of older pieces, only the day.

<comment><USER6> That information can be derived from multiple observations.

</comment></comment></comment></comment></comment><comment><USER7> @pg I've started checking out Gnip, <http://www.gnipcentral.com>. Their API makes it very easy for sites to publish their data to the gnip service. They are pretty hardcore about "hit us as much as you want" to get data. Twitter, Digg, Flickr, and a number of other services are publishing to them.

Might be a good way for HN to avoid getting hammered by crawlers and still let the hacker-types slurp the data.

<comment><USER8> The title of the gnip homepage is not professional: 'Gnip: We got $h*t to pop' :(

</comment></comment><comment><USER9> Of course, the real question is how you managed to not check HN for almost all of Wednesday!

</comment><comment><USER10> Paul is really cool man, don't worry about it. He'll probably respect the fact that you tried to make something more than anything.

It's actually kind of hard to upset him. Frankly, he has a lot of money. It's going to take more than one errant script to ruin his day.

<comment><USER11> Does having a lot of money make people harder to upset?

<comment><USER12> I'm starting to envy people with even-keeled dispositions the way other people envy the rich.

</comment></comment></comment><comment><USER13> If you must, why not just scrape the google cache instead of the live site?

[http://www.google.com/search?q=cache:news.ycombinator.com/it...](http://www.google.com/search?q=cache:news.ycombinator.com/item%3Fid%3D261985)

At this moment, that's the latest cached item they have. So, it'll lag by a few days, but that wouldn't matter much here.

<comment><AUTHOR> On second thought Google cache might not be the best idea:

"We're sorry...

... but your query looks similar to automated requests from a computer virus or spyware application. To protect our users, we can't process your request right now.

We'll restore your access as quickly as possible, so try again soon. In the meantime, if you suspect that your computer or network has been infected, you might want to run a virus checker or spyware remover to make sure that your systems are free of viruses and other spurious software.

If you're continually receiving this error, you may be able to resolve the problem by deleting your Google cookie and revisiting Google. For browser- specific instructions, please consult your browser's online support center.

If your entire network is affected, more information is available in the Google Web Search Help Center.

We apologize for the inconvenience, and hope we'll see you again on Google. To continue searching, please type the characters you see below:"

<comment><USER14> Include a referrer HTTP header, set the user agent, and set a random wait time between 500ms and 5s.

I crawl Google frequently and that format has always worked for me... At least it did until I made this post. :)

<comment><USER15> If you can bypass the rules they don't count, eh?

<comment><USER16> To be honest I can't take it seriously when a company that makes billions from crawling other people's sites makes a rule that you're not allowed to crawl theirs.

Google has a lot of conflicts with media companies and it always starts out with google ignoring some "rules" expecting to either win in court or settle at some point.

So I think breaking these rules is part of the process of how sensible rules are established in the first place. Yes it's recursive, but HN readers should be smart enough to understand that ;-)

<comment><USER17> _To be honest I can't take it seriously when a company that makes billions from crawling other people's sites makes a rule that you're not allowed to crawl theirs._

Why not? Google obeys robots.txt -- if you don't want them to crawl your site, it is trivial to arrange. I think violating Google's terms of use is pretty hard to justify as ethical.

<comment><USER16> Google obeys robots.txt but not much else. Just ask publishers and news outlets. And as I said, I don't see rules as a black and white thing. If they were, there would never be any progress. No iTunes without napster. No Microsoft being the biggest software company in the world without piracy. That doesn't mean it's ethically justified to break any rule. I just think it's not as simple as someone stating their own rules and everyone automatically obeying it.

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> I started to submit a lot (a TON) when I was really addicted to HN a few months ago. Received a similar message but on the topic of submitting a lot of articles from PG. Reaction was also similar, something along the lines of shitshitshitshit there goes my chance.

</comment><comment><USER19> if you want to do this kind of stuff, why not go with Yahoo BOSS or something similar. You could theoretically do some of the sorting you were hoping to do.

</comment><comment><USER20> Haha I had the same problem the first time I set my Ruby crawler loose. Within 5 minutes I had crashed a "large electronics retailer's site". I'm omitting the name to protect the guilty.

<comment><USER21> Wouldn't the guilty be you? :)

<comment><USER22> Presumably a site that can be taken down by a single simple crawler is guilty of crappy scaling.

</comment></comment></comment><comment><USER23> The answer is called Sleep(3000);

<comment><USER24> Wait 9 days and the index is ready <http://www.google.com/search?q=270%2C000*3+seconds+in+days>

<comment><USER25> That's not bad. I'd wait for that.

And it will only take a few hours to update later.

</comment></comment></comment><comment><USER26> Have to confess, I've got "please stop" email too (for my comments). First thing that came to mind was "there goes my chance to get funded by YC"

<comment><USER27> Couldn't you just create a new HN account?

<comment><USER28> that sounds ill-advised, at best. i'd lay odds that pg pays enough attention to be able to connect the new username with the old one, if he put any effort into it.

</comment></comment></comment><comment><USER29> After reading the post and thread. I have a sudden urge to write a crawler. Obviously not on YC ;)

</comment><comment><USER30> How did pg find your e-mail? IP address from web log -> user account -> profile?

<comment><USER31> "A few weeks ago I emailed Paul Graham asking whether I could create a searchable database of Hacker News."

PG had the email address from that first message. How he made the link between the server load and Matt's index is the real question.

</comment></comment><comment><USER32> I feel left out that I haven't felt the need to crawl YC...I am merely hiding in anonymity!

</comment><comment><USER33> I think it's pretty big of you to fess up and apologise. Honesty and sincerity count.

Well done. :)

</comment><comment><USER34> "You could do all sorts of interesting analysis on it… top posts, top contributors, posting frequency, etc etc."

How is that interesting?

<comment><USER35> You would be surprised: <http://top.searchyc.com/></comment></comment>


Audio Processing for Dummies - <AUTHOR> http://adventures.michaelfbryan.com/posts/audio-processing-for-dummies/ <comment><USER2> I wrote this crate [1] as a compressor in Rust which is the opposite of a noise gate, as in gain reduction is applied after a threshold is passed instead of gain reduction applied if it is under a threshold.

If you want a really great approach to noise gating, a fixed threshold is fine but it works better when you apply it to the difference of two envelope followers - one with a short attack, long release (tracks input) and long attack, short release (tracks noise floor). Takes a bit to set it up, but it's a stupid simple way to get extremely effective gating and is easy to fine tune for your application. A lot of Voice Activity Detection (VAD) works this way; it's just a matter of tuning the coefficients and thresholds for your input.

Also useful reference for envelope following are the DAFX text [2], Will Pirkle's textbook on audio in C++ [3] and Zölzer's text [4]

[1] [https://github.com/m-hilgendorf/rusty- compressor](https://github.com/m-hilgendorf/rusty-compressor)

[2] [https://www.amazon.com/DAFX-Digital-Effects- Udo-Z%C3%B6lzer/...](https://www.amazon.com/DAFX-Digital-Effects- Udo-Z%C3%B6lzer/dp/0470665998)

[3] [https://www.amazon.com/Designing-Audio-Effect- Plugins-C/dp/1...](https://www.amazon.com/Designing-Audio-Effect- Plugins-C/dp/1138591939/ref=cm_cr_arp_d_product_top?ie=UTF8)

[4] [https://www.amazon.com/Digital-Audio-Signal- Processing-Z%C3%...](https://www.amazon.com/Digital-Audio-Signal- Processing-Z%C3%B6lzer/dp/0470997850)

(pdfs can be found around the internet)

<comment><USER3> The examples used in the OP are helped by having an RF squelch to zero out the noise floor. If there was no squelch, the difficulties finding a good static (har har) threshold would have been much more apparent.

<comment><USER4> Can you explain what you mean by "squelch"? I'm assuming it's a kind of filter but I can't find it in the code.

</comment></comment></comment><comment><USER5> Interesting project. In my experience as a re-recording mixer for film the best denoisers currently on the market work as a sort of spectral noise gates: so instead of running one noise gate over the whole audio spectrum, you split it into frequency bands each with their own thresholds. These thresholds are tuned in by "learning" the spectral shape of the background noise itself and usually the user can still modify the wheights with a curve (e.g. if you want to gate high frequencies more).

This has the benefit of producing more natural results while keeping speech understandable. It might interest you, because with a 2000x speed marging you _could_ still crank the algorithm up.

<comment><USER6> Multi band compressors also help in this domain, choosing which frequency band to attenuate or boost. For multi channel audio, phase becomes important too. Not for nothing is a typical trick in mastering to restrict low frequencies to mono..

<comment><USER7> I always thought the primary reason for that was that stereo low frequencies, when recorded onto vinyl records, hugely increase the risk of the needle 'jumping' out of the groove and skipping into another one.

</comment></comment></comment><comment><USER8> Is an audio stream really just a bunch of samples of volume? I had always assumed you needed to record different wavelengths of sound to capture different pitches. Is my mental model completely wrong? How do you get such variety in sound just from recording the volume?

<comment><USER9> You don't record each "waves" (nor is it even possible), you record the final result of all the waves superposed together, just like how your ears work.

<comment><USER3> >You don't record each "waves" (nor is it even possible)

Depends on what you mean by 'record'. Generally the air pressure is sampled instantaneously, but it can be broken down into frequency components before recording/perceiving. That's kind of how our ears work and in DSP you do an FFT (which you can then pass through an iFFT to synthesize the original signal).

<comment><USER9> It has been a while since I study DSP, so I'm not sure if FFT can mathematically recover all the original sine waves (FT can). But I don't think it is possible practically, at least.

<comment><USER10> Yes, if you use the FFT or any discrete FT, you can perfectly recreate the signal _up to the Nyquist frequency_. To perfectly recreate the whole signal, you'd need infinite Fourier coefficients.

<comment><USER9> Thanks

</comment></comment></comment></comment></comment></comment><comment><USER11> The interesting thing with this example in particular is that the audio output from the radio is already very well-gated thanks to an RF squelch (ie muted until a high enough RF level or pilot tone is detected - otherwise it would sound like an loud FM radio tuned to an empty band between transmissions and the gate wouldn't work). So internally there's already a voltage signal somewhere to indicate mute/unmute, with better precision than deriving it from the audio.

Of course it's a fun software exercise but if you were building a hardware product out of it you'd be better off splitting the audio into distinct transmissions based on the squelch signal rather than audio gate...

As it happens some modern avionic radio systems let you individually play back the most recent few messages for exactly the reasons the author describes (it's easy to miss)

<comment><USER12> > The interesting thing with this example in particular is that the audio > output from the radio is already very well-gated thanks to an RF squelch

Author here. Luckily for my purposes I can rely on the radio already having a squelch, so I could get away with using the naive solution.

If it was the raw audio I'd probably need to implement something more sophisticated such as splitting the audio by frequency and giving each band a noise threshold (as atoav mentioned).

</comment></comment><comment><USER13> While this is an article about programming, I'd like to mention that if you need to remove background noise from an audio clip, then Audacity has an excellent filter for this. Of course that's not anywhere as adaptable as doing it in code yourself is.

<comment><USER14> If you don't care about open source and don't mind spending money, Izotope RX7 has _much_ better denoising tools than Audacity. It's actually the main reason I now have Windows installed on my desktop (alongside Ubuntu).

<comment><USER4> I know a lot of things about audacity can be a bit clunky, but the _quality_ of the denoise tool in Audacity is actually extremely good. I read its code one time, and I was impressed.

I'm not familiar with RX7, maybe it does better audio quality but it's probably also got a better interface/workflow. Which is definitely worth a lot in a professional setting.

</comment></comment></comment><comment><USER15> Are there companies/projects that are working on cleaning up radio signals like that in real-time with digital signal processing ?

I used to work in the music industry, where there are many other real-time processing tools that can be applied to radio voice to increase clarity (eg: removing the static noise under speech, re-equalizing the limited bandwidth to increase perceptibility, de-reverberation etc..)

Considering such radio communications are often used in mission-critical scenarios, one would think clarity of speech would be a factor to consider.

<comment><USER16> Digital communication has a wholly different set of requirements than audio processing. With audio it is good enough to sound good, but digital communication has far more specific metrics of performance.

Digital communication is also far more structured, which makes it possible to implement a large number of techniques for improving signal quality.

Almost all digital communication systems would have something along: adaptive equalization, carrier tracking, symbol clock tracking, forward error correction, and many, many more techniques.

<comment><USER17> Where can one read about these techniques and are there open source implementations?

<comment><USER16> I've only learned about this through my engineering studies, so I can only really recommend textbooks. I found Proakis' Digital Communication quite good, but it doesn't go very deep.

I don't know of any online resources – but I'd love to have the time to write some signal processing for communication is fascinating and has a wide impact on everyday life.

Also wrt. implementations: I think GNU Radio might be a good place to look, but honestly the actual implementation of these algorithms is often very simple, it is the theory behind them that gets hairy.

</comment></comment></comment></comment><comment><USER4> Is this a good example of how things are done in Rust, or is it over- engineered?

I'm pretty sure you should be able to code a thing like a noise gate in 10-15 lines of code.

... and then there's this rather odd statement:

> If we want to use the NoiseGate in realtime applications we'll need to make > sure it can handle typical sample rates.

Maybe I just think it's funny. Back in the early 2000s I used to worry about that and even back then, it's... 44100 samples per second. A whole second to process no more than 44100 numbers, maybe twice that if you have stereo. Unless you're doing something really weird (and Rust should be pretty performant, right?) that shouldn't make the machine even blink.

</comment><comment><USER18> I understand that implementing stuff in Rust can just be fun on its own, but, I mean, in case if somebody really just wants to solve the problem Michael had here:

sox -V3 N11379_KSCK.wav part.wav silence 1 3.0 0.1% 1 0.3 0.1% : newfile : restart

</comment><comment><USER19> Very interesting. I am starting bird sound and bird ID. Hope this can help. Thanks.

<comment><USER3> That's awesome! One very simple thing you can do with that is pass the signal through a bandpass filter (say 2kHz-10kHz) before evaluating power levels to minimize false positives from wind and other environmental noises.

Another method that can be effective with the identification itself is to convert the signal to a spectrograph and classify the resulting images with a neural net.

<comment><USER20> Vote for the second, but you won't need a neural net, a sum-of-squared differences on a set of reference spectra would probably get you 99% there.

</comment></comment></comment><comment><USER21> Isn't this really easy to do on these clips because there is no noise when there is no audio transmission? It would be awesome if you showed some examples where there is a bunch of noise between audio transmissions.</comment>


Omni's Plans for iOS 7 - <AUTHOR> http://www.omnigroup.com/blog/entry/omnis-plans-for-ios7

<comment><USER2> Hey guys you have to pay for our iOS 7 update.

Nice. (not)

<comment><USER3> Yeah: my $20 should require them to do an indefinite amount of future work to support all later versions of iOS, no matter how drastic the change. (not)</comment></comment>


Rust Rocks NB-IoT STM32 Blue Pill with Quectel BC95-G on Apache Mynewt - <AUTHOR> https://email@example.com/rust-rocks-nb-iot-stm32-blue-pill-with-quectel-bc95-g-on-apache-mynewt-ef62a7e28f7e <comment><AUTHOR> Embedded Rust is perfect for creating NB-IoT devices! Works great with complex encoding formats like CoAP and CBOR... While keeping our devices safe from crashing bugs! Here's how I created my own NB-IoT sensor with Rust, STM32 Blue Pill and Apache Mynewt...</comment>


"GOTO Considered Harmful" Considered Harmful (1987) [pdf] - <AUTHOR> http://web.archive.org/web/20090320002214/http://www.ecn.purdue.edu/ParaMount/papers/rubin87goto.pdf <comment><USER2> It's worth noting that the coding climate has changed considerably since 1987. Modern goto-less languages, such as Java, include break and continue statements that can target any enclosing block; many of the example programs that people suggest using gotos for end up basically using these forms. It's worth pointing out that these multi-level break/continue statements allow you to build any reducible control flow graph (that is, the only thing you cannot do is construct a loop which has two entry points; incidentally, these constructs are also the best way to ensure that the optimizer gives up).

Optimizers have also gotten better over the years--it would be fairly easy to transform the idiomatic find-loop pattern based on flags to the one that uses the goto. There's also been a shift to using basic block-based optimizers, which means that the optimizer sees a loop statement and something built entirely of gotos as completely identical anyways.

So, in the end, the goto debate is moot: there's no real difference in performance either way these days, and we've renamed the goto instruction to break which sidesteps most of the puritanical section of the debate.

<comment><USER3> There is a still a noticeable difference in performance of a `goto`-based FSM implementation and a switch-in-a-loop one.

And there is a _huge_ performance difference between a computed `goto` implementation of a VM vs. a switch-based one.

Break is not a substitute for any of this use cases.

<comment><USER4> Couldn't one just macro an implementation of such things that use goto underneath?

<comment><USER3> Of course. But only if goto was not removed from the underlying language.

<comment><USER4> I wonder if anyone has done a safe form of goto that does static analysis or something to see if the jump is safe. My only experience was making error handling easier to understand.

<comment><USER3> It is rather trivial to check if a control flow is reducible (can be a platform requirement, e.g., OpenCL spec demands this). But it is unlikely that you can do too much of a static analysis with a computed goto, and the latter is the most interesting and the most useful form.

</comment></comment></comment></comment></comment></comment><comment><USER5> Yeah the GOTO got a bad rap, if someone used it wrong it would have unpredicted results by goting to the wrong part of the program. It confused beginners so it was to be avoided.

People forgot that any language gets converted into assembly language and it has JMP or JUMP statements in them that basically do the same thing as a GOTO in a higher level language.

I wrote Visual BASIC 6.0 code and in order to trap errors we had a On Error Goto ErrorHandler: where we had an error handling routine that would do a customized message box to give the user more information on the error and prevent the program from ending. I would give recruiters samples of my VB code and it had On Error Goto and they saw the Goto and told me I shouldn't be using it.

VB.Net did away with Gotos and did the try/catch borrowed from Java to catch errors.

I remember learning Ada in 1989 and it used Goto statements as well. Modern Ada avoids Goto statements.

Programming without using Goto is harder and in some cases needs more lines of code.

There was never any real evidence that Goto was harmful, as the article states people accepted it was harmful without any proof. The decisions to not use Goto was decided by managers with no real world programming experience.

<comment><USER6> "GOTO considered harmful" needs to be read in its historical context, where structured programming (for loops, while loops, functions) were new-fangled and under-used.

Dijsktra was not arguing against GOTO _per se_ , but rather against unstructured programming.

Using GOTO to implement structured programming constructs that did not exist in the language (e.g. JMP in asm) is fine.

</comment></comment><comment><USER7> In a letter titled "On a Somewhat Disappointing Correspondence"[1][2], Dijkstra replied to this and other reponses, the larger one titled "'"GOTO Considered Harmful" Considered Harmful' Considered Harmful?" It is rather tongue in cheek.

[1]: [http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1009.PDF](http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1009.PDF)

[2]: [http://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/EW...](http://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/EWD1009.html) (transcription)

<comment><USER8> Thanks for posting Dijkstra answer. I had read it a lot of time ago and was going to post it myself.

Even keeping in mind that it was written with tongue in cheek, Mr Dijkstra does sound like a bit of a jerk in this paper. Also, I think that this response actually validates Rubin's thesis: Dijkstra points to a number of bugs in the second and third versions of the program (i.e., those without GOTO), proving that the GOTO-less version is not only shorter, but easier to get right.

<comment><USER4> He is a jerk. That was consistent in much of what I read. Very elitist.

</comment></comment></comment><comment> yoz-y Now we have replaced GOTOs with callback calls into functions defined in other files that are pretty much as untraceable.

</comment><comment><USER9> Honestly, all the examples in this paper are terrible, either the ones using goto and the goto-less ones. Didn't they know functions in 1987? ;)

<comment><USER10> > Didn't they know functions in 1987? ;)

In all seriousness: only just barely. I entered the undergraduate C.S. program at the U. of Kansas in 1983. The faculty were constantly saying, "We're doing _structured programming_ now!" \-- as if they weren't quite convinced yet, and needed to remind themselves.

I think this letter does correctly point out that, while simple selection & iteration constructs are sufficient to do anything we want, concise, readable code requires more. And so now we have -- yes -- return, and also break, exceptions, etc. (I'm rather surprised that the idea of a multi-level break, which has been proposed for more than one PL, has never really caught on.)

P.S. Perhaps we could title your comment _" 'GOTO Considered Harmful' Considered Harmful" Considered Harmful_.

</comment></comment><comment><USER11> Obligatory Code Complete reference[1]: "These articles contain the whole goto debate. It erupts from time to time in most workplaces, textbooks, and magazines, but you won't hear anything that wasn't fully explored 20 years ago." [1][http://www.stevemcconnell.com/ccgoto.htm](http://www.stevemcconnell.com/ccgoto.htm)

</comment><comment><USER12> I've seen goto used in golang stdlib for error handling

[https://github.com/golang/go/blob/master/src/strconv/atoi.go...](https://github.com/golang/go/blob/master/src/strconv/atoi.go#L134)

<comment><USER13> Here it is, used in OpenBSD's httpd:

[https://github.com/reyk/httpd/blob/master/httpd/httpd.c#L548](https://github.com/reyk/httpd/blob/master/httpd/httpd.c#L548)

</comment></comment><comment><USER14> A large part of the debate that followed the publication of "GOTO Considered Harmful", and which smolders to this day, concerned whether there are any corner cases where gotos are the better choice. This rather pedantic issue is largely beside Dijkstra's main point, which was that it is infeasible to analyze programs for correctness unless they use simple, nested, control and flow structures. Of course, Dijkstra himself bears some of the responsibility for this diversion, through his choice of a click-baity title. He was probably right in this choice however, as the paper got enough attention to have a significant and lasting influence (though we are not doing analytical verification to anywhere near the extent he demanded.)

<comment><USER15> They are not corner cases, it rely depend on what domain you work in. Currently working on "tooling" for HPC application, and use goto all the time. Any form of system programming in c will probably have lots of goto's. Error handling being the most usual. Also some algos express them self best using goto's. And of course asm, try writing anything in asm without jumps :-)

<comment><USER14> I think I am on safe ground in saying that Dijkstra was well aware of the use of jumps in asm, but that is beside the point he was making in the _body_ of the paper - as opposed to the point, taken from the _title_ of the paper, that most of the argument has been about.

<comment><USER15> Well the part about asm was obviously a joke, control structures are nice to have. My point was that in many domains goto's are useful, both for solving problems, getting performance and for code clarity.

</comment></comment></comment></comment><comment><USER16> This paper talks about a certain kind of GOTOs: assembly like GOTOs that can jump anywhere in the code. GOTOs in c and c++ can only jump to a place in the current context. This makes a big difference in security and usability of GOTOs.

<comment><USER15> stdlib do have this: #include <setjmp.h>

longjmp(BACK_TO_MAMA,1);

Never used this though.

</comment></comment><comment><USER17> If your language does not give me modern control structures -- such as tail call optimization and possibly first-class continuations -- I will want goto there as a backstop. I hardly ever use it, but when I do I'll need it.

</comment><comment><USER18> Thesis, antithesis, synthesis. The example of looking for a row of 0s that skips the current row on the first non 0 can (now) be dealt with using constructs like named break/continue statements (in things like Java or C#).

(I would not be opposed to making the inner and outer loops separate functions with returns, either, though)

What the author said was true at the time, but has since been dealt with by having richer control constructs for goto-less ("jump anywhere") programming.

<comment><USER18> Maybe lexical scope for goto labels, rather than global symbols??? :-)

</comment></comment><comment><USER19> Having seen old complex apps written in basic, I would say use of BASIC considered harmful. You can't help but create spaghetti code.

</comment><comment><AUTHOR> Github says 11 494 gotos in the kernel:

[https://github.com/torvalds/linux/search?utf8=%E2%9C%93&q=go...](https://github.com/torvalds/linux/search?utf8=%E2%9C%93&q=goto)

</comment><comment><USER20> GOTO (considered harmful)^n, where n is an even positive integer

<comment><USER21> Or zero.

</comment></comment><comment><USER22> Computed GOTOs and GOSUBs are very underrated in modern programming.</comment>


Ask HN: Leaving GoDaddy. Is there a Domain Registrar with a decent UI/UX? - <AUTHOR>

Like many, I've had my fill of GoDaddy. Since I'm going through the pain of moving, I'd like to find a registrar whose domain management console doesn't look like ass. Does such a thing exist?
In addition to GD, I have a few domains at name.com (forgot-the-CSS ass) and have set up an account at namecheap.com (Microsoft-Access-looking ass).
These two are highly recommended on HN and elsewhere, but is this the best we can do? Is there any domain registrar who has any sense for usability/UX? <comment><USER2> If you define "UX" by "how the interface looks", I can't help. But if you define it as "the total user experience", I've been really impressed by DreamHost (<http://dreamhost.com/>). They make transferring in and out really easy, they're crystal-clear about what you're signing up for, and they give you straightforward options for how to cancel, how to sign up for auto-renewed registration, and how to do everything else involved with managing your domain. Their site isn't a paragon of beautiful design, but in terms of usability, it's great.

<comment><AUTHOR> Possibly a good option, but I use DreamHost for shared hosting, and would like to keeps domains separate. Thanks, though!

</comment></comment><comment><USER3> I'm happy with namecheap. I do agree their UI is a bit dated, but it doesn't bother me much because I probably spend less than a few minutes every month using it.

</comment><comment> saiko-chriskun I'm a fan of gandi.net

</comment><comment><USER4> I've used GoDaddy before so I know what you mean by decent UI. Name.com, namecheap.com, and gandi.net get great reviews. I use both name and namecheap and I know if you're switching from godaddy you'll like them a lot.</comment>


Rands in Repose: The Shop I Want - <AUTHOR> http://www.randsinrepose.com/archives/2010/05/17/the_shop_i_want.html

<comment><USER2> All he wants is better salesmanship. He wants someone to tell him _why_ he wants something so that he'll actually enjoy owning it. A desk becomes more than just a desk. Shaving cream becomes more than just shaving cream.

 _Looking for reasons to not just buy el-cheapo shaving cream. Is there anything out there worth spending a little money on?_

The best shaving cream isn't worth spending money on until somebody sells you on it.

Here's another idea: if you don't get pleasure or a feeling of discernment out of your shaving cream, maybe you should accept that. If the Ikea desk makes you just as happy as the Stow Davis desk, maybe you should accept that, instead of yearning for a salesman to help you believe you have better taste. It's moralistic and a downer, but looking for ways to get more satisfaction out of your purchases is a sickness.

Example: I don't have a very sensitive palate for wine. Therefore, I don't spend much on wine and don't pretend to know anything about it. When my friends talk about wine, I sit back and wait for the subject to change. Part of me feels like I'm missing out, part of me feels like an inferior yuppie -- which I suppose I am. It would be so easy to fake it. Fooling myself would be almost as easy as fooling other people. I could read reviews of every wine I buy and parrot what they say about bananas, strawberries, and barnyards. I would enjoy myself immensely, and people would like me better because I would be more fun. High-end wines would provide another way of buying excitement and validation. I could transmit that excitement and validation to other people. I could even make them feel _loved_ by my careful attention to the wine I served them. My conscience, my intellectual integrity, is the only thing holding me back from these benefits.

Wait, you say -- wouldn't the pleasure be genuine? Sure. It would. So why pass up an opportunity to manufacture pleasure? Aren't I just stealing happiness from everybody to gratify a moralistic urge that has no valid moral basis? If it's one kind of empty self-indulgence versus another, shouldn't I pick the one that provides happiness to myself and other people?

This is a serious question, and I can't claim to have an answer that is much better-founded than my simple engineer's (or prude's) instinct that _there must be a catch._ However, I can name a few things that would be wrong about it.

First, I would be financially supporting wine prices that could, for all I know, be completely fraudulent. Unless I can be confident I can tell the difference between a $12 wine a $60 wine, my spending $60 just creates an opportunity for unscrupulous folks to make money by overpricing wine. That might not hurt me, but it would hurt real connoisseurs.

Second, I suspect that I would get more pleasure out of _real_ appreciation than out of an illusory appreciation, as my "appreciation" of wine would be. The excitement, validation, and pleasure in tasting would all be genuine, but the taste itself would not be stimulating. I would, at best, be imagining novel sensations based on the descriptions of people with more sensitive palates. Nothing would exceed my imagination. I would be investing time, thought, and money into a cognitively incestuous and sterile experience. Aesthetic masturbation, if you will. Wouldn't I be better off concentrating on areas where I have the capacity to be truly surprised and stimulated? Wouldn't Rands be better off ignoring desks and focusing his attention on something he has legitimate taste for, instead of asking a salesman to manufacture an illusory appreciation for a Stow Davis desk?

(After all, you've been exposed to various kinds of furniture all your life, and if you still need a pep talk from another person to care deeply about the widely admired qualities of a certain desk, then you're simply blind to it. It's okay. Everyone has domains of insight and domains of blindness, and to elevate wine and furniture over other domains is just snobbery.)

Third, you should be careful what you do with your money. My bank balance affects how much I invest in truly worthy causes. Every year I sign up for recurring charitable deductions from my paycheck. When I decide how much to sign up for for the next year, the state of my finances has an effect on how much I feel comfortable comitting to. I also lend money to friends and family when they need it; again, my bank balance affects how much I'm comfortable giving. Basically, I'm a selfish, risk-averse person, and my willingness to be altruistic is heavily dependent on my own security and comfort. It's easy to give away excess. Looking for expensive new ways to turn my excess into pleasure is another way of saying, "I'd better find _something_ better to do with this money than give it to the EFF/Doctors Without Borders/<your favorite charity here>!" If you're really miserable and money is all you have going for you, then converting money into happiness should be your top priority (though buying stuff is probably not the best way.) If you're already reasonably happy, then go ahead and buy what you enjoy, but don't look at every expensive toy and think, "Oooooh, I want to learn how to appreciate THAT so I can enjoy BUYING and HAVING it!" You already know a million ways money can buy happiness; if you've exhausted all the ones that apply to you, then maybe you should spend the money on somebody else.

I know Rands is exploring this issue from the consumer side for the sake of working the sales side. That doesn't make it any better. If you wouldn't feel right doing it yourself, how could you feel right making money by persuading other people to do it?

<comment><USER3> I totally agree. I'm absolutely with Rands here:

 _You can have an opinion. It sounds like work, but it's really not. An opinion is not the definitive view or judgement regarding a thing; it's you staring at that desk and saying, "You know, I like the look and the feel of those brass handles. I also like the drawers that squeak just a bit when you open them. It speaks to the character of the whole desk."

It's not that I want a Stow Davis desk, it's that I want to find that desk. I want to go to seven different antique shops and spend a weekend developing an opinion about the state of antique desks. I want to find someone who knows the entire history of Stow Davis desks and won't fucking shut up about them.

Half the fun of having an opinion is the quest to find one, but the everything problem remains. You don't have the time to have an opinion about everything..._

But then he makes this totally ridiculous leap:

 _...but someone has the time._

So what? What good is it if it's someone else's opinion? Why would you want someone else to feed you their opinion on shaving cream, even if they've got a really objectively great opinion? It's not as if it actually makes any goddamn difference what shaving cream you buy, unless you believe it does. Ditto for desks, and so on.

I have an opinion on lots of stuff like that, but it's because I'm an opinionated little fuck. I don't think it's really a state to aspire to. Rands, on the other hand, apparently values being this complicated, networked, shopping consuming machine, and to what end? I don't understand.

P.S. Rands, you could, you know, try different brands of shaving cream until you find one you dig, like a _normal person._

<comment><USER4> Er... _nothing_ makes any difference. We die, and then everything we have done gets washed away by Alzheimer's, worms, and the rain. However, if we _care_ about things—other people, for instance, but shaving cream's as good a thing to care about as any—then we can spend our lives happier for the choices we have made. Rands wants people to give him reasons to care about more things, so he can make more choices and therefore define himself more clearly. He's not asking for someone to pick the best shaving cream, and then just say "here, use this one, it has 10^23 utilons subjective to your experiential context"—he's asking for reasons to care about liking particular shaving creams at all. It turns out the best way to solicit those reasons—the dimensional parameters that define the space of shaving cream quality, so to speak—is to get someone to sell you a few particular creams, and explain why their "earning five stars on the Bugnatti face-feel scale" or "resisting incursive facial bacteria" facts are important. Those lessons learned, you can then pick your own shaving cream, "like a normal person"—but you'll know why, not just how, to choose.

The best analogy I can think of is to music. Have you ever met someone who just didn't care about music, at all? Didn't you feel like something was missing from their lives? Do you think you could get them to care about music by showing them a bunch of music-theoretical math and physics? Or would you just say "this is my favorite band; they do X and Y really well", and expect them to explore outward from there, now listening for other bands' Xs and Ys, and eventually forming their own opinions of what makes a good band?

Now, for "music", replace with every single possible other interesting thing in this world.

<comment><USER3> I appreciate what you're saying, and if you interpret Rands' post as some rational, utilitarian statement of preference in which he claims to actually care about learning the particular distinguishing virtues of shaving cream, and desks, and presumably a thousand other consumer goods, then I suppose I can't tell him he's wrong about his strategy.

Rather, I'd choose to be even more presumptuous, and tell him he's wrong about what he wants. I think that few people are genuinely destined to love careful research into what kind of socks you prefer at the moment and which coat hangers are the most durable. It's an awfully crowded and indistinct way of defining yourself. To the extent that people like doing those kinds of things, I think that they are easy escapes which tend to take the place of more ultimately fulfilling endeavors (I'm guilty of this.) I think that it's a dumb waste of time to find ways to spend even more effort on such tasks, providing marginal benefit, and yielding what I wager is only a brief satisfaction.

</comment></comment></comment></comment><comment><USER5> This is the gristle behind buzzwords like "authenticity" and "community". When I wanted the perfect pen, I asked 'that friend' and he pointed me to a Tiffany fountain pen I love. When I wanted to know: Xbox or PS3, I asked my gaming 'that friend' and he pointed me in the right direction. When another friend told me I had to try a particular hole-in-the-wall restaurant, I went and, despite myself, enjoyed it.

Unless I have some reason to think you have my interests at heart, all the 'also liked' in the world means very little. For some purchases, I'll become the expert. (Still looking for that perfect keyboard!) But for most things, I want people I can trust to give me their best suggestion given what they know about the domain and what they know about me.

<comment><USER6> I don't know you, but I've been happy with the Kinesis Contoured keyboard. I'm comfortable making this recommendation based on the fact that we're both on Hacker News (and therefore probably have some other things in common). If I knew your HN voting history I might be able to do a better job.

Taking advantage of social ties and external sources of information is definitely something that automated recommenders should be able to do. Few of them actually do it, however. As I mentioned elsewhere in this thread, recommendation algorithms just aren't very good. Once they get good (and fast), all sorts of external information will instantly become useful. Recommenders will be able to find significant correlations between the browser you're using and your preference.

<comment><USER7> Is this you?

[http://www.keyboardmods.com/2010/04/wireless-split- kinesis-c...](http://www.keyboardmods.com/2010/04/wireless-split-kinesis- contour.html)

If not, since you take the arms of your office chairs, I'm going to hazard a guess that you have wider shoulders than most keyboards are designed for. If that's the case, you might wish your Contour had either a bigger split or an adjustable split. I would be more interested in getting a Contour if I could have a bigger gap between the left and right sides.

<comment><USER8> I think this is my underlying problem with keyboards. I have very wide shoulders. I"ve had the most luck with the microsoft natural, but I find myself wanting to increase the split angle all the time.

Also having an ergo keyboard with low soft keys like the Mac would be awesome.

</comment></comment></comment></comment><comment><USER9> Note to tech pundits-- the average joe can't ping his twitter network to get 40 responses to a question about shaving cream. This is a benefit only pundits enjoy. Stop touting it.

<comment><USER10> You just summed up the point I've been trying to articulate for a few days now.

When I watched Conan O'Brien speaking at Google he was talking about how amazing it was that his show sold out in record time with one tweet… how old media took notice of that. But he is a product of old media. He had hundreds of thousands of followers on day 1.

No doubt, many people can build up a huge following through twitter or whatever social tools they use. Many people I follow have done it. But it's not a walk in the park.

</comment></comment><comment><USER11> Maybe it's a personality type thing, or a quirk or just me wanting to be fed my beliefs but I feel exactly the same way as Rands. When he says he doesn't have time to figure out the best shaving cream or shaving method, I understand that what he means is "he doesn't have time to find the best shaving cream AND do other things that are really important to him", or at least I interpret that's what he means.

We've come to an age where it's not just mathematicians and scientists who stand on the shoulders of giants. We all have the ability to do that in vast arenas of our lives while still contributing to our own chosen arenas. It's fabulous if you ask me.

It's not about the fact that I can't make a decision, it's that I have the opportunity to make the very best decision based on the experiences and work of others on subjects as mundane as desks and shaving. If I spent as much time figuring out shaving as the guy who wrote the shaving article did, that would be hours of time I didn't spend on doing something I appreciate. It's not better salesmanship, it's better living. I know that there are people out there who just don't want to have someone else tell them what the best thing is and that's fine. But for me, I want to have the best desk or the best keyboard or the best shave but I'd prefer not to have to spend the time of my own figuring out what that is when there are people out there who know and who I can find out from. A good shave is really more than a average shave. A good desk really is better than a average desk. Having people who can tell me which is which is both fulfilling and efficient.

We live in a time when information is easily discovered and contributes to a better life. Why keep figuring out the same things? If the journey intrigues you, great. But if you have other journeys to travel, why not short cut those that don't intrigue you?

</comment><comment><USER12> What he seems to be asking for is [aardvark](<http://www.vark.com>) this is _exactly_ what they were trying to pull off prior to Google buying them.

<comment><USER8> They are still trying to pull it off and hopefully the resources of google will help them. The problem vark faces is that they have to build up a large and active community of people willing to answer questions.

I was an early user and I still make myself available for questions all the time. But I'd say probably 3 out of 5 times I get a question, I just don't have the time to respond with anything useful. And after a certain amount of time, you're past the "real-time" threshold so there's no point in responding.

But when vark works, it _really_ works and it is awesome.

</comment></comment><comment><USER13> His two examples - a custom antique desk or shaving cream that's a delight to use - hammer his point home: despite the abundance of choice online, he who organizes and specializes the data to the user wins.

I have yet to see a truly personalized experience that finds me that one esoteric object that I'd never heard of, but desperately need.

I'm always stunned by how poor Amazon & EBAY's reccomendation engines are, and how infrequently they suggest anything I want or am compelled by.

What start-ups are playing in this space and building something compelling?

<comment><USER14> His example is still smoke and mirrors. The opinion of someone known and trusted just _feels_ more valuable, because of the way our minds are put together. Granted, this may be enough to build a business on.

What he wants would be a search engine that can detect passion. Page Rank only detects this indirectly. Not sure if anything direct is possible.

<comment><USER15> He wants something to find the perfect product for him, even if he doesn't know there's a need for it.

I guess that's a nice desire for someone with lots of disposable income. I really don't want anyone offering me anything to buy right now, because I don't have the money to spend on a 1800's table instead of what I'm currently using.

When I do have money, then I have my list of priorities about where to spend it. Fix the roof leak, change my car tires, etc...

That's why it's called "buying mode". Offer me a 1700 table today and I will tell you to get real, and get out. Offer me when I actually have the money and desire to buy, and you've made a sale.</comment></comment></comment>


Drones may soon have to identify themselves electronically while in flight - <AUTHOR> https://www.recode.net/2017/6/30/15848860/faa-remote-identify-drone-policy <comment><USER2> The clear eventual state here is that all aircraft automatically publish their location _and future plans_ for the next few seconds in a format that other craft can decode to verify they won't collide.

Considering all that is really only software complexity, I think it's a good thing.

Rather than regulate the exact technology though, produce some data interchange format and have the FAA run "listening stations" which record the data. Then, if any aircraft crashes, the data can be used to see which craft didn't follow protocol, and consider that craft to be "at fault", and require it to pay damages (via insurance).

Now it's up to private insurance companies to manage and evaluate risk, and their incentives align with the public's.

<comment><USER3> > Considering all that is really only software complexity

Strongly disagree. That's a sensor package and radio and antenna and control console, which consume power and space and payload and pilot attention. A lot of stuff beyond bits of code.

<comment><USER4> It's just an ADS B radio transmitter; the drone already has GPS and a controller. It requires not additional pilot workload, and power consumption is not onerous.

No different then requiring private/commercial fixed wing aviation having it onboard.

</comment></comment></comment><comment><USER5> I doubt the FAA can regulate this since the drone registration law was blocked in court. Congress passed a law a few years back restricting the FAA from regulating recreational model aircraft, and drones are clearly just the latest incarnation of these.

<comment><USER6> FTA:

 _Still, legislation is moving through Congress now that could restore the FAA's authority to regulate non-commercial drones, which would allow the agency to reinstate the registration requirement._

</comment></comment><comment><USER7> While this might stop honest drone owners from flying in certain zones, it will eventually create an underground drones (bad choice of words - I know) that will fly "under the radar" or transmit fake ID. It's going to be interesting...

<comment><USER8> All the related issues have had decades of significant research as both countermeasures and counter-countermeasures. This is essentially IFF, and my father retired from a job designing such systems for a military contractor in the late 1990s.

(He'd been working on them since "software" was a brand new invention. Integrated circuits didn't exist when he started university).

<comment><USER9> For those wondering (as I was), in this context IFF means: Identification Friend or Foe

[https://en.wikipedia.org/wiki/Identification_friend_or_foe](https://en.wikipedia.org/wiki/Identification_friend_or_foe)

</comment></comment></comment><comment><USER10> Will this be via low-power ADS-B or something else?

</comment><comment><USER11> Reminded of MITRE building a very affordable ADS-B unit for small aircraft, to help promote flight safety: [https://www.mitre.org/sites/default/files/pdf/07_0634.pdf](https://www.mitre.org/sites/default/files/pdf/07_0634.pdf)

Eventually got commercialized as a $2000 unit but I somewhat recall the idea was to target a sub-$400 upgrade to drastically enhance air safety.

</comment><comment><USER12> It makes sense that drones should need a transponder just like any other aircraft... it should be broadcast in a way that can be readable with a smartphone though (bluetooth?)

<comment><USER13> do kites require transponders? gliders/paragliders? No, it makes no sense. Let me cite something:

"...recommendations from members of Congress and the National Transportation Safety Board and was intended to gather information to determine whether the current glider exception from transponder equipage and use provides the appropriate level of safety in the National Airspace System. The FAA is withdrawing that action because the _limited safety benefit gained does not justify the high cost of equipage_."

<comment><USER14> People with paragliders in my area: 4 professionals. People with drones in my area: 57483863847 general public, most of them with no idea or consideration for good practices.

Make them carry a bluetooth beacon or something heavier if they want to break out seriois drones.

<comment><USER15> I'm curious in which backyard you've stashed 8 times the population of earth, or how you've trained ants to own and operate drones.

<comment><USER16> I'm curious if you really couldn't tell it was a figure of speech or if you simply enjoy being overly pedantic.

</comment></comment></comment></comment></comment><comment><USER17> Good news for uAvionix [https://www.uavionix.com](https://www.uavionix.com)

<comment><USER18> Also Sage: [http://www.unmannedsystemstechnology.com/company/sagetech- co...](http://www.unmannedsystemstechnology.com/company/sagetech-corporation/)

These are useful if you want to operate a drone in a city to cover a news event or make a movie. If the area is in controlled airspace, which, within 5 miles of a controlled airport, extends down to ground level, you need permission from ATC. There's now an online form for this.[1] If you have an ADS-B transponder, you're visible to ATC radar, and are more likely to get approval in busy airspace.

Recreational users are under a different system.[2] Locations and altitudes are more restricted but the notification process is via a phone app.

[1] [https://www.faa.gov/uas/request_waiver/](https://www.faa.gov/uas/request_waiver/) [2] [https://www.airmap.com/faa-uas-facility-maps- laanc/](https://www.airmap.com/faa-uas-facility-maps-laanc/)

</comment></comment><comment><USER19> Why only drones? Not model airplanes?

We've had these around for decades and suddenly we need a change?

<comment><USER20> Oh come on now, don't pretend the technology and users haven't changed.

If it allows them to fly in more places with fewer restrictions, perhaps model airplane pilots would welcome this?

</comment></comment><comment><USER21> Oh, yeah, more energy, more batterys, more weight, more energery.. arr, she flys like a cow.</comment>


London's Grenfell Tower Fire Was No Ordinary Accident - <AUTHOR> https://www.citylab.com/equity/2017/08/grenfell-was-no-ordinary-accident/536907/ <comment><USER2> There's a lot wrong with the British housing market. In fact, almost every aspect of it from provision, social housing, prices, renting, taxation, to the actual process of buying and selling — is demonstrably broken.

But ... the Grenfell Tower fire was a specific failure of building and fire regulations, and it could still have happened even if the housing market was working and councils had been building housing for the poor. The cladding was installed for environmental reasons — it reduces heat loss so you need less energy to heat the building. Now we learn that this sort of cladding is much more dangerous than was generally understood, we replace the stuff on other buildings, and move on. This is mostly orthogonal to fixing the housing market or "neoliberalism".

<comment><USER3> It's depressing to see commenters with no understanding of what actually happened at Grenfell.

Here is what actually happened: the cladding used does not meet UK safety standards, and there were warnings from experts and residents that the cladding _was not safe to use._

The council decided to ignore the warnings, because cheap and dangerous cladding saved around £300,000 on a £9m refurb that residents argued wasn't needed in the first place and which they didn't particularly benefit from.

It certainly _wasn 't_ an energy saving measure.

The right-wing Tory council is not poor[1]. It has cash reserves of £200m, and gave council tax payers a £100 refund around the time of the refurb.

So yes - this is _absolutely_ about right-wing greed, and right-wing disdain for the relatively poor.

[1] Although it's going to be a lot poorer once this is settled.

<comment><USER2> _> It certainly wasn't an energy saving measure._

This is factually wrong. If you read the original planning application[1] you'll see a whole section about climate change and energy efficiency (page 10 for the hard of reading). There's a second document[2] which goes into the energy efficiency in a lot more detail. Section 2.1 of the second document says that cladding was specifically added for energy efficiency reasons.

[1] [https://www.scribd.com/document/351448748/Grenfell-Tower- Pla...](https://www.scribd.com/document/351448748/Grenfell-Tower-Planning- Application)

[2] [https://www.scribd.com/document/351448758/Grenfell-Tower- Sus...](https://www.scribd.com/document/351448758/Grenfell-Tower- Sustainability-and-Energy-Statement)

</comment></comment></comment><comment><USER4> I am probably an exception on HN. I live in a London tower block, on the 19th floor.

The block I am in was subject to a BBC documentary a decade ago for being a high fire risk building.

The containment measures originally designed into the building have long been compromised by short-term upgrades to kitchens and bathrooms. The service riser is now a chimney that freely joins every flat in a vertical quarter of the building into a single contiguous fire channel.

We have no sprinklers, we have a single fire escape, but there is no fire alarm. The theory is that containment will hold and so it is best that people stay put. That the emergency services will need to come up the fire escape, and this is why Grenfell residents stayed put. But even were people to orderly try and use it, there is no means to raise the alarm.

Internal fire doors do not create a seal. Internal doors in the flats have been removed over time and not replaced by the landlord (the council).

Central heating was removed and replaced with a communal oil burner for a radiator system. The central heating ducts remain, joining flats vertically, joining rooms of flats, filled with dust and not sealed off.

Simply put, I live in a death trap.

I am more fortunate than my neighbours. Despite having been homeless when I was younger, I now have a salary that allows me to save for a deposit and to find another place to live. But London rents being what they are I cannot move now and still save for a deposit... if I did I would be consigning myself to never own the property in which I live.

So I must stay, and deal with the fire risk, manage it as best I can, whilst I save for a deposit.

If anyone ever wants to know why startups should have a market to permit existing shareholders to buy shares from employees holding options... this is it. Life gets in the way. I'm sitting on share options that could provide a transformational effect on my life, that could let me sleep at night and live in much lower stress levels. It's hard to give 100% to work when any night could be the night I am burned alive. I sleep fitfully, restlessly. I am so desperate for a way out... but it takes time, I only have a salary and the IPO is too long away (even if gets announced tomorrow).

Fire risks are real, the terrible neglect of housing is real, and it doesn't help everyone but if you're a founder and you want to know how to help someone... provide liquidity to your employees.

<comment><USER5> I had similar fears in my last appartment building (12th floor) after a deadly fire in the neighbouring tower. I ended up buying a long rope at a climbing outlet and some used climbing gear. There are also more expensive fire proof rope ladders but the rope worked for me.

<comment><USER4> I have checked eBay for WW2 sirens. They're cheap, and I proposed installing one outside as an alarm.

This was quickly rejected by the councillor who informed me that sirens are used for the flood alarms (we're 200m from the Thames).

Instead I've resorted to DIY fire safety. MDF fire panels installed as best as possible around the riser, as that is the most likely source of fire. It will buy me a little time, and I will not be relying on containment to save us... I'll be going down the fire escape regardless of instructions.

<comment><USER6> Good for you.

I've been through a few incidents where my building should have been evacuated but wasn't due to incompetence or disinterest. In one case, several of my employees who were unable to negotiate stairs (due to injuries) were accidentally left trapped and unevacuated in an elevator lobby during a minor fire. They picked up the emergency phone and the response from the police was literally "WTF do you think I can do about it?"

The response from my employers fire safety people when we complained was threatening to write a discipline referal for me because I didn't send people to fire training. (Three of the folks working for me were firemen who were delivering the training!)

Don't assume that anyone has their shit together. Understand how to evacuate from your home and office and bug out when shit happens. Don't be like those poor people in WTC who followed instructions.

</comment></comment></comment></comment><comment> m-i-l Not to detract from the other important points in the article (prevention is better than the cure), but no mention of the fact that the fire bridge for a city full of tall buildings didn't have any tall ladders or means to help the people at the windows to escape (maybe also due to government cutbacks): apparently one that was 30m tall (enough to reach the 10th floor) was dispatched 24 mins after the first fire crews[0], and the tallest one in the country a few hours later but that was still just 42m tall[1] (for reference Grenfell Tower itself is 67m high).

[0] [http://www.bbc.co.uk/news/uk-40602144](http://www.bbc.co.uk/news/uk-40602144)

[1] [http://www.bbc.co.uk/news/uk-england- london-40357535](http://www.bbc.co.uk/news/uk-england-london-40357535)

<comment><USER7> The general attitude has been that if building regulations are followed, you won't need the ladders. Grenfell residents themselves were told in the event of a fire to NOT evacuate, and to stay in their homes. The presumption was that any fire could be isolated, contained and extinguished easily.

The questions now being raised are over whether the building regulations were enough. Successive governments have reduced the "red tape" in the name of liberating the market, but it seems free markets will often compromise when it comes to safety.

That said, I'm not sure right now I would want to live at the top of the Shard (as some people do).

<comment><USER8> No-one yet lives in the Shard apartments: [https://www.theguardian.com/business/2017/jul/05/shard- apart...](https://www.theguardian.com/business/2017/jul/05/shard-apartments- empty-flats-london-market)

<comment><USER7> As a Londoner who can't afford to buy here despite being on a senior engineer salary, I like this.

The concentration of super-money in W1 is what pushed prices up as the ripple moved out, at least more so than immigration. The fact the market is slowing at that end means there might be a ripple back, which coupled with a falling residency rate (July was the first month more people moved out of London than moved in for 10 years), means we might see a collapse and we can start to afford homes again.

</comment></comment></comment></comment><comment><USER9> A big part of the problem is that pretty much all of the brutalist concrete building of the 70ies have problems if they aren't straight on fire-traps they are mold infested places suffering from what the authorities often call sick building syndrome([https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2796751/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2796751/)) combined with a massive urban housing crisis and a civic religion that forbids spending any significant money on infrastructure primarily used by the poor.

It's a combination of decades worth of neglect to a set of buildings that were from day one at the edge of what we knew how to build and maintain due to a demand that they were kept cheap enough to be affordable on the declining working class wages.

Fixing it is not going to be a few replaced panels here and there but a massive 10 year redevelopment plan to replace a lot of old 70ies crap with new buildings, in a political climate where nobody the political systems care about actually wants social housing to be a thing, and as always when there is a real problem the western way is to plug ears, close eyes and chant some feel good mantra.

</comment><comment><USER10> I would summarise the article's arguments as follows:

A state-owned, and state-managed block of apartments burned, causing a horrible loss of life due to a string of horrible decisions made by state employees and politicians. This is clearly the fault of corporations, capitalism, and politicians who were not involved in the decisions. Also, Thatcher. And Americans. Especially Silicon Valley. And Republicans.

I'm open to the idea that there's a larger context which is important to understand, but I'm somewhat sceptical of a conclusion so tidy as "every onewho directly caused this is innocent; everyone I disagree with is actually to blame".

<comment><USER11> You're twisting and simplifying this greatly.

It is in fact elements of the state that have been vilifying the poor.

The state put in place the systems that mean the lowest bidder gets the job. The companies put the cladding in place then saved money further by not using the flame retardant cladding.

Making this to state vs private doesn't make sense, when both are part of the system that caused this.

The comment is so far from reality, it reminds me of one of the funniest things I've heard some Americans say on a train, near London; Kid: "Do British people love the government", Dad: "Yes they do". I almost spat out my coffee, it was such a hilarious misrepresentation.

<comment><USER10> > The state put in place the systems that mean the lowest bidder gets the job. > The companies put the cladding in place then saved money further by not > using the flame retardant cladding.

Actually, no. The paper trail is clear; the _council_ requested the contractors switch to more dangerous, aluminium cladding to save money. This wasn't about private sector greed costing lives; this was a decision made in the _public sector_. According to this article[1] linked from the citylab piece:

"One document - a list of requested savings sent to contractors in July 2014 - details potential savings of £693,161, reducing the cost of the contract from about £9.2m to £8.5m. It includes £293,368 that would be saved by fitting "aluminium cladding in lieu of zinc cladding". [...] The savings were part of an ongoing effort by the council and the local tenant management organisation to drive down the cost of the refurbishment. [...] the change was typical of constant pressure by councils [...] this led to the appointment of a different contractor in 2014 which was then asked to make savings including on the cladding.

The entire process was driven by the local council, and the money saved went to the council, _not_ the contractors.

> Making this to state vs private doesn't make sense, when both are part of > the system that caused this.

Sure, the contractors and the council were part of the same system. And in this system, the council hired the contractors, and told them to cut corners; when the first contractors didn't cut enough corners, they found new contractors who could cut more corners.

Just because different actors are part of the same system doesn't mean their actions, responsibility, and culpability are equal. (And many of the actors mentioned in the citylab piece, such as silicon valley, aren't even part of the system.)

[1]: [http://www.bbc.com/news/uk-40453054](http://www.bbc.com/news/uk-40453054)

</comment></comment></comment><comment><USER12> The last time this came up, somebody posted this link to the 1984 Adam Curtis documentary, The Great British Housing Disaster.

[https://www.youtube.com/watch?v=hd7i5-baJAs](https://www.youtube.com/watch?v=hd7i5-baJAs)

It's worth a watch, even over 30 years ago it was known that cladding posed a fire risk to high rise buildings in the UK, if you jump to 45 minutes in they are talking specifically about this.

</comment><comment><USER13> "determine whether criminal charges should be brought against culpable parties"

How is that even a fucking question? Many people died - whoever is responsible for the design flaw or cutting corners SHOULD pay.

</comment><comment><USER14> fires of aluminum clad buildings like Grenfell or that in Saudi Arabia reminded about Navy ships with aluminum (like [https://en.wikipedia.org/wiki/USS_Belknap_(CG-26)#Collision....](https://en.wikipedia.org/wiki/USS_Belknap_\(CG-26\)#Collision.2C_fire.2C_and_reconstruction) ) or other light alloy (like Al/Mg on some USSR/Russian destroyers) superstructures - good idea for whatever reason like speed and weight until fire breaks out (galley stove or missile hit, doesn't matter) and the thing goes off like a firework. On the other side - M2 Bradley does have aluminum armor.

<comment><USER15> Weird how wikipedia do not make much mention of aluminum as a fire hazard. Most of the focus seems to be on how it does not have the tell tale signs of melting that say iron has.

It has half the melting point of iron, and shows no yellow-orange glow until it just collapse.

Basically it kinda seem to be all fine unless you have a thermal camera, until it just flops into a liquid.

now powdered aluminum do go off like firework when exposed to an open flame.

<comment><USER16> Aluminum oxidizes so rapidly that you can't even normally connect to it unless you take all kinds of precautions to make sure that the bare aluminum does not _instantly_ grow another layer of oxide (which is non-conducting). And that's at ambient temperatures and the normal oxygen content %age of the air.

Hence the existence of special aluminum connectors which keep the joint under constant pressure for the life of the connection, you can see these at work in lightweight powerlines.

Complications can quickly cause real problems because as the skin forms the resistance of the connection goes up and this causes power to be lost increasing the temperature of the joint. This can lead to a runaway effect, if you're lucky the whole thing disconnects before something bad happens, if you're unlucky you have an electrical fire on your hands.

[https://en.wikipedia.org/wiki/Aluminum_building_wiring](https://en.wikipedia.org/wiki/Aluminum_building_wiring)

So even if aluminum has lots of really good properties for wiring it is still only used in a relatively small number of specialized applications.

Another spot where you will find Aluminum and its rapid oxidization property exhibited clearly is in solid rockets (as fuel) and fireworks (to give you some nice colored effects).

</comment></comment></comment><comment><USER17> Just Stop Putting Conservatives Into Office. Just Stop. why... hasn't the world learned this yet. just stop doing it. stop.

</comment><comment><USER18> One question nobody dares to ask aloud. How many high-danger buildings like the Grenfell Tower ware there?

I guess a list and a map of this would be enough to set a revolution into motion.

Im sure, the usual suspects will show up- defending this atrocity with the same excuses socialist use on Venezuela.

"This is not really capitalism.."

"The people who lived inside choose to live there- they where free to leave - until they were not.."

"This is not a systematic failure, but the failure of person XY, a morally outrageous being we should shun into the dessert.."

"On the map, its in a state, thus if there is a state, the execution was not pure enough.."

Silence in the comment below- seems even fanatics know shame.

<comment><USER19> > One question nobody dares to ask aloud. How many high-danger buildings like > the Grenfell Tower ware there?

228, according to the assessment commissioned by the government.

[https://www.theguardian.com/uk-news/2017/aug/25/grenfell- fir...](https://www.theguardian.com/uk-news/2017/aug/25/grenfell- fire-228-buildings-at-risk-across-uk)

Edit: Now I've read it, there'a actually an answer in the article itself, although it's now superceded by the number above:

> Earlier this month, the government admitted that 181 other high-rise > buildings clad in similar material have failed fire safety tests

<comment><USER18> 228- each of them home to 300 people?

That are estimated 68400 people in a constant life threatening danger.

<comment><USER7> In some cases more, in some cases less.

And yes, there is a general sense that the Government has no clue what to do about this. People are scared.</comment></comment></comment></comment>


With MP3 patents seemingly expired, Fedora to begin shipping MP3 encoder - <AUTHOR> https://email@example.com/thread/KM557DP7OR2UEEPYQRNHJU7T45XDSXYJ/ <comment><AUTHOR> Given the uncertainty regarding whether or not MP3 is truly patent-free at this point, I figured that this is an important story to submit given that Fedora might be a big enough project to get any potential patent claimants to tip their hand.</comment>


Sensor lets residents monitor who drives in and out of their neighborhood - <AUTHOR> http://www.bbc.com/news/technology-41008141 <comment><AUTHOR> The startup addresses the obvious privacy question in the article but it's an interesting question. Personally, I'd rather protect my family than anything else.

<comment><USER2> there's no privacy when it comes to driving, it's a public activity.

but this is good, the police can focus on making sure people are not driving stolen cars, and if someone uses their own car for crime they will be easier to catch.

but this makes me wonder why cctv cameras don't already do this?

I guess this catches suspicious activity rather than being a blackbox used after the fact.

<comment><AUTHOR> It seems like CCTV is just not used at all in US - I haven't noticed any. Maybe it's because there's no good infrastructure for it. Flock's stuff seems to be wireless and solar-powered(?), and sounds like in general very affordable. Guessing price point matters. The folks who have $$, probably have security gates installed.

<comment><USER2> maybe dash cams should also keep an eye out for other people's cars too.</comment></comment></comment></comment>


How what you design seals the fate - <AUTHOR> http://thedevilisinthestructure.com/a-way-out-the-trailer/ <comment><AUTHOR> Whenever you design or build any type of structure you automatically will put the key of what the fate of the participants will be. Here is a book that shows us examples of how our current structures in society have gotten us to where we are, and how we now have a new way out.</comment>


Become a better designer. - <AUTHOR>

Hey HN. A lot of you have been able to see my designs. I'm currently creating a infoproduct that'll consist of a number of vidoes where I teach you how to master the skills I have.
It's literally a 2 week course and you'll improve your design skills. If you're not interested, don't send me an email at firstname.lastname@example.com and I'll set you on for early access.
...oh and for those who are wondering, here's 3 samples of my work:
http://www.questionify.com/
http://i.imgur.com/wmu7Q.jpg
http://i.imgur.com/KRbNx.jpg <comment><AUTHOR> Clickable:

<http://www.questionify.com/>

<http://i.imgur.com/wmu7Q.jpg>

<http://i.imgur.com/KRbNx.jpg></comment>


Ask HN: How many of you got HIRED because of your COMMENT/SUBMISSION on HN? - <AUTHOR> would love to check out your Blogs or links(if you have any). <comment><USER2> I did.</comment>