Tesla Autopilot tricked into accelerating from 35 to 85 mph with modified sign - <AUTHOR> https://electrek.co/2020/02/19/tesla-autopilot-tricked-accelerate-speed-limit-sign/ <comment><USER2> Further proving that "self driving" is approximately as hard as AGI, and is _nowhere_ near as "close" as everyone thinks to think it is. A human would have _context_ and _common sense_ and thus know that a residential street will simply not _ever_ have an 85 mph speed limit.

And _yes_ , you could special case _this_ case in the code, but there are hundreds of cases where "common sense" is used in driving, and you will never teach your NNs all of it.

Prediction: no actual "self driving" (to a point where driver can legally be asleep) on public streets till > 10 years from now

<comment><USER3> I don't see why you need special cases in the code. Sat nav units have had speed limits built in for years. Why not just look it up in a database? (the car knows where it is after all, and requiring a GPS fix could be mandatory - most drones won't arm without it, for example)

<comment><USER4> How much can you trust that data? My car tell me what the speed limit is by using a database and reading signs. On my commute to work there is a part where it tell me the speed limit is 5km/h when it actually is 80km/h and another place where it for a short bit shows the limit as 80km/h where the correct is 30km/h

<comment><USER3> Neither is ideal. But you should use what information you have. There is still no excuse for making a decision like 85 in a 35. Worst case this should be a disengage or the car could defer to you - eg visual warning on the dash "speed limit unclear, override?"

In the UK smart motorways can vary from 30mph to 70mph according to traffic. This can change within minutes and obviously cannot be in databases. So this is a good case for sign recognition. In theory though, there is some network that's updating the speed limits and there's no technical reason why that couldn't be a public information service (maybe it already is).

Then you have the sibling comments - speed limits which are time based. I would imagine this is country specific and is, mostly, a matter of public record. But would you trust CV to recognise text on a sign with specific hours? I don't know how complex the signage is, but trying to use ML for this seems absurdly wasteful of resources.

Finally you have other information - how fast are the cars around you travelling? Have you detected an obstruction on the road (eg cones)? Is the weather inclement and therefore you should drive more slowly, etc.

I would imaging that if self driving cars become ubiquitous there will eventually be a system for real time speed limit determination, whether that's some kind of wireless beacon at regular intervals or an online database that's kept up to date I don't know.

<comment><USER4> How is the accuracy of sign recognition on the LED signs stating the current speed limit? My experience is that it is not so good, maybe other cars are better at reading LED signs.

For the car to react according to how other cars drive, you need to have other cars on the road at the same time. I have a narrow gravel road where the limit is 30km/h but safe driving is between 10 and 20, but my car tell the limit is 50km/h. It can be weeks without me seeing other cars on that road at the same time as me. Some mornings during the winter I can drive because I know where the road is, not because all of it is visible. Good luck having an autopilot doing that

<comment><USER3> Well, quite. But again this is all supplementary information. The car should have a basic idea of the speed limit from a database and it should adjust as appropriate.

Similarly the car should be able to identify road surface conditions and also how much power it's needing to put in to achieve a set speed. If it's identified that traction is being lost over gravel, then it should reduce power.

Equally the autopilot should consider visibility. There are plenty of roads that are national speed limit and you'd be insane to drive at 60 on them due to blind or extremely tight corners.

But with LEDs this seems like massively over-engineering the problem. Why use computer vision when you can potentially broker a deal with the highways agency to get live speed limits on a particular stretch of highway?

</comment></comment></comment></comment></comment></comment><comment><USER5> They had to use older Teslas to make this work, because newer models don't use sign-reading to determine speed limit.

Abstractly, it's interesting, if only because it probably wouldn't trick a human -- everyone would see the 85mph as BS regardless of the defaced sign.

Has anyone hacked into openstreetmaps yet and fiddled with speed limits?

<comment><USER6> What do the newer models use? I tried to Google for it, but just kept stumbling on news articles about the OP.

<comment><USER7> "Front-facing cameras detect speed limit signs on AP1 vehicles and display the current limit on the dashboard or center display. Limits are compared against GPS data if no signs are present or if vehicle is HW2 or HW2.5"

[https://en.wikipedia.org/wiki/Tesla_Autopilot#Speed_assist](https://en.wikipedia.org/wiki/Tesla_Autopilot#Speed_assist)

From what I've gathered elsewhere, the GPS data is OSM.

</comment></comment></comment><comment><USER8> This already happens occasionally with regular drivers: [https://www.telegraph.co.uk/news/uknews/road-and-rail- transp...](https://www.telegraph.co.uk/news/uknews/road-and-rail- transport/11138390/Drivers-tricked-by-fake-40mph-speed-limit-signs.html) "Pranksters blamed for speeding offences after drivers caught out by 40mph signs in 30mph zone"

Ironically, current Teslas are largely immune to this as they use a database of speed limits.

</comment><comment><USER9> Ah, that's especially good. They just changed the 3 in "35 MPH" speed limit sign to look more like an 8, and the Teslas dutifully sped up. A mistake no human driver would make.

Rodney Brooks points out that if we ever get AGI [1], we'll have solved the autonomous vehicle problem. But it's far from clear to me that we'll truly solve the problem much before then, as cars and roadways are built with GI expectations in mind.

[1] [https://en.wikipedia.org/wiki/Artificial_general_intelligenc...](https://en.wikipedia.org/wiki/Artificial_general_intelligence)

<comment><USER10> >A mistake no human driver would make.

And probably prosecutable as felony manslaughter, the same way removing a stop sign would be, because you're acting in a way you know will get people killed.

</comment></comment><comment><USER11> So basically they modified a 35MHP street sign to make it look like a 85MPH. I looked at it from a distance, and it was hard to tell between 35 and 85.

So if it is hard for a human, then it seems obvious that a tesla would also fail to recognize a 35.

Maybe the difference is that a human might not be certain and slow down just in case, whereas a deep neural network might be certain in its errors.

<comment><USER12> A human has the basic intuition to assume the sign itself might be wrong or misleading, the programmers of the car automation failed to realize that in a way that might've gotten someone killed.

<comment><USER13> Good thing, too, that nobody stepped out in front of their car, like a kid chasing a ball, as they did their ad hoc experiment.

<comment> frosted-flakes They didn't allow the car to reach 85 m/h, for obvious reasons.

</comment></comment></comment></comment><comment><USER14> This is as good of a demonstration of the big "common sense" gap that end-to- end computer vision approaches have as it is of adversarial examples. Even with an occluded speed limit sign, humans have strong priors on what a sensible speed limit would be based on a more general understanding of the environment (width of lanes, curvature of roads, visibility, road quality, frequency of law enforcement vehicles ;), etc.).

<comment><USER15> Wonder if the neural net could be trained to know the speed limit? "This scene doesn't look like the usual 85 mph zone..."

<comment><USER16> Many cars now come with a database of speed limits and display it on the dashboard. Although this shouldn't be relied on for self driving, it could be used to double check. OSM data for types of roads and areas is pretty accurate too, so you could use that ('an 85mph speed limit for a single lane within a residential area doesn't sound correct'). This doesn't need AI, it just needs someone with common sense to come up with a few basic rules about speed limits. If there is some doubt you could prompt the driver to confirm the speed limit change, and use that to build up a database of real world data.

It sounds like the Tesla is just using what the camera sees - which is bad if true. Admittedly this was tested on a race track, so maybe there is no data saying otherwise (or even the opposite).

</comment></comment></comment><comment><USER17> If the point is that autonomous cars are succeptable to deliberate malicious actors, I've got bad news about the rest of the world. Human drivers are incredibly succeptable to me throwing a $2 brick throught the front windshield as well. It sounds like the issue is already resolved in this case.

<comment><USER18> I guess the difference here is the scope of how many you can impact.

In order to get all Teslas who go past a sign on the highway, you just have to modify the sign slightly and everyone is affected (in theory).

In order to affect the same amount of people with your "brick through the windshield" strategy, you'll need a lot more manpower than just a sticker on a sign.

<comment><USER19> That depends on the size of wreck you manage to cause, don't you think? In any case, it takes no more people to drop a brick than it does to sticker a sign.

To be clear, I find this entire concept of unsupervised robot vehicles both dangerous and absurd - even more so than the already dangerous and absurd baseline of a society so intimately bound up with automotive travel as ours. Exceeding such a high baseline as that is in its way impressive, and certainly demonstrates the astonishing overconfidence rampant in some segments of our very young and rather careless industry, but let's not get distracted from that essential point and waste our efforts on inconsequential arguments over whether a sticker is more dangerous than a brick.

<comment><USER18> > That depends on the size of wreck you manage to cause, don't you think?

No, I think it's the scope of affecting many after another without doing something more. Throwing bricks requires continues action while a sticker is a thing you do once and then it "does it for you".

See it as working every day and getting paid for that, versus a savings account where you get returns without really doing anything.

And sorry, I didn't really join the conversations to argue against "concept of unsupervised robot vehicles [is] both dangerous and absurd " so I agree with the rest of your message.

</comment></comment></comment></comment><comment><USER20> Putting aside the fact that this was found on an old Tesla with autopilot 1.0, this is not even a technically hard problem to solve. The current version of autopilot uses a database and gps to determine the speed limit. In the future if Tesla wants to return to a vision based speed limit system they can sanity check the vision readings against their database and throw out results like 85mph.

</comment><comment><USER21> I live in Atlanta and there's a digital speed limit sign on 75. Sometimes the light is out and when it means to say the speed limit is "55" it just says "5". Come to think of it I've always noticed traffic slowing down nearing that sign. I wonder if any Tesla's have any contribution to that.

<comment><USER22> I would slow down to a speed limit of 5, even if I was sure it was a defective display. It's effectively an unknown speed limit. Maybe not if I'm _very_ familiar with the road, but not everyone is.

Yes, I'm sure the courts should throw out the ticket, but sometimes they mess up, and often you lose time and money to pursue your case.

</comment></comment><comment><USER23> Nice for them use Tesla but I'm pretty sure you can do it with every sign reading auto throttle system. There are plenty of cruise control systems which employ similar technologies.

<comment><USER24> Or a person who misreads the sign. Though the whole point is that a Tesla doesn't have the context to know that a residential zone with an 85mph speed limit sign is obviously some sort of error.

<comment><USER25> You don't need residential context. You just need US context. I have never seen an 85 MPH speed limit sign in the US, ever. Up to 65 is common, with 70 or 75 sometimes on well maintained roads between urban areas. I can't recall seeing an 80, but I feel like maybe once or twice.

<comment> drunken-serval There's an 85mph in one place in Texas. [https://en.m.wikipedia.org/wiki/Speed_limits_in_the_United_S...](https://en.m.wikipedia.org/wiki/Speed_limits_in_the_United_States)

</comment></comment></comment></comment><comment><USER26> What I like about Tesla is they have over the air updates using a fleet of network data to quickly address issues or exploits that may arise... but this article is quite funny exposing the gap between AI and basic human intuition. I do believe human intuition may just be another model to train from in some sense in the end.

</comment><comment><USER27> Some sick people get their kicks tossing rocks off of overpasses. Imagine the games people are going to play with cardboard cutouts of whatever or false signage. I predict an arms race.

<comment><USER8> People could already cause crashes by making fake signs or repainting lines. I think this XKCD summarizes the issue nicely: [https://m.xkcd.com/1958/](https://m.xkcd.com/1958/)

</comment></comment><comment><USER28> If a human drove at 85 mph because a bad actor maliciously modified the speed limit sign, would they be liable?

<comment><USER29> Co-reference resolution error: who is 'they' in your sentence? The human or the bad actor?

No matter what, the answer is probably both. You can't modify street signs now anyway. You also can't drive 85 in residential/city areas.

<comment><USER28> The human operating the vehicle who reads a maliciously edited sign. It seems unquestionable to me anybody modifying street signs would be held liable for the modifications.

</comment></comment></comment><comment><USER30> >The safety of Tesla's autopilot features has come under close scrutiny, but CEO Elon Musk has predicted the company will have "feature-complete full self- driving" this year.

I think that is a real possibility if we are referring to years on Jupiter (which has an orbital period of 12 Earth years).

</comment><comment><USER31> So cars are using OCR on speed limit signs?

Next step: sql injection.

[https://hackaday.com/2014/04/04/sql-injection-fools-speed- tr...](https://hackaday.com/2014/04/04/sql-injection-fools-speed-traps-and- clears-your-record/)

<comment><USER32> That's pretty common IME though the ones I've driven didn't make decisions based on that.

Last few cars I've rented had a speed limit sign _generally_ matching the speed limit on the dash, and on the one I rented this christmas passing a speed limit sign (or an other sign triggering a speed limit change) while on limiter or cruise control would flash a message suggesting pressing a button twice to change the configured speed to that (rather than manually adjust using the +/\- buttons).

They were mediums (C-segment) and compact MPV not large or luxury, which I expect is why the sign reading was mostly to purely indicative.

</comment></comment><comment><USER33> While scary, it's not exactly relevant to any Tesla made after they broke off from MobilEye (Which I think was 2016?).

Current Teslas don't read speed limit signs, they access an online database. Vandalize the speed limit signs all you want, as modern Teslas aren't even reading them.

</comment><comment><USER34> Shouldn't it know that 85 is beyond the speed limit? You'd think it would know the laws based on where the GPS is, like in some states above 80 is reckless driving. Seems trivial to make this data available.

</comment><comment><USER35> I'm not what you'd call a self-driving car "skeptic" since I do think that we will eventually be able to iron out these types of rules, but I think it will be another 30-50 years before I feel comfortable truly trusting one.

<comment><USER22> How much do you "truly trust" human drivers?

</comment></comment><comment><USER36> Sounds like an easy fix in most cases. Residential road or road work? Can't be 85, period. There are relatively few roads in the US where 85 is the actual speed limit.

</comment><comment><USER37> Don't cities have easily accessible and authoritative records on locations of important traffic controls? If so, that would make this problem a little bit easier.

</comment><comment><USER38> Another discussion on same topic: [https://news.ycombinator.com/item?id=22370346](https://news.ycombinator.com/item?id=22370346)

</comment><comment><USER39> Even if it was a legitimate 85 mph sign a human would realize that the road isn't safe at 85 mph speeds.

You must react to the environment as well...

</comment><comment><USER40> I'm a self-driving skeptic, but this test is not fair.

It's also illegal to do this, so it's not a valid edge-case.

<comment><USER41> Why would the legality make this test invalid or unfair? Illegal things still happen. I have seen countless street signs with graffiti on them. I could see rebellious teenagers doing this on purpose without fully understanding or caring about the consequences. Search google images for 'street sign graffiti' and you will see thousands of examples.

<comment><USER42> There has been an outbreak of modified stop signs near me. Some are quite professionally done with stickers championing pet projects. Stop animal farming, stop eating meat etc. If they weren't at the end of a street, they would definitely look like a marketing campaign (which I suppose is exactly what they are).

</comment></comment></comment><comment><USER43> I keep seeing throughout this thread statements similar to "a human would never do this", and the only thing running through my head is awe at how little otherwise smart people understand their fellow humans.

Like...y'all have lost your goddamn minds. OF COURSE many humans would do it! Humans fucking drive straight into lakes because the map told them to. Humans do not have some kind of magical ward against fucking up or against being tricked. Quite the opposite.

But you know what the difference is? As soon as the computer system has programmed in a record of local contextual defaults, this problem won't happen again. Say the same about humans, I dare you.

<comment><USER44> >> Humans fucking drive straight into lakes because the map told them to.

I had to check if this was real or just a bit from the office that imprinted. Googling "humans drive into lake" only finds one incident. Which occured at midnight.[1]

and if you look at the research, they didnt convert it into an 8, they simply extended the middle part of the 3 a little bit [2]

[1][https://fox8.com/news/a-little-embarrassed-woman-follows- car...](https://fox8.com/news/a-little-embarrassed-woman-follows-cars-gps- straight-into-lake-huron/)

[2][https://cdn0.tnwcdn.com/wp- content/blogs.dir/1/files/2020/02...](https://cdn0.tnwcdn.com/wp- content/blogs.dir/1/files/2020/02/Screenshot-2020-02-19-at-11.59.56.png)

<comment><USER43> > _Googling "humans drive into lake" only finds one incident._

You'd find more examples if you tried _slightly_ harder ("lake" isn't the important part!):

[https://kfgo.com/2020/02/10/man-drives-into-mississippi- rive...](https://kfgo.com/2020/02/10/man-drives-into-mississippi-river-while- following-google-maps/983425/)

[https://www.cnet.com/news/man-drives-into-river-gps- china/](https://www.cnet.com/news/man-drives-into-river-gps-china/)

[https://www.mirror.co.uk/news/world-news/man-watches-wife- bu...](https://www.mirror.co.uk/news/world-news/man-watches-wife-burn- alive-5435575)

[https://abc13.com/587100/](https://abc13.com/587100/)

[https://abcnews.go.com/blogs/headlines/2012/03/gps- tracking-...](https://abcnews.go.com/blogs/headlines/2012/03/gps-tracking- disaster-japanese-tourists-drive-straight-into-the-pacific/)

[http://news.bbc.co.uk/2/hi/uk_news/england/bradford/7962212....](http://news.bbc.co.uk/2/hi/uk_news/england/bradford/7962212.stm)

[https://www.boston25news.com/news/man-drives-into-pond- while...](https://www.boston25news.com/news/man-drives-into-pond-while- following-gps-directions/538872511/)

[https://www.nbcnewyork.com/news/local/gps-leads-nj- motorist-...](https://www.nbcnewyork.com/news/local/gps-leads-nj-motorist- into-house/2123304/)

[https://www.dailymail.co.uk/news/article-1164705/BMW-left- te...](https://www.dailymail.co.uk/news/article-1164705/BMW-left- teetering-100ft-cliff-edge-sat-nav-directs-driver-steep-footpath.html)

[https://www.westsiderag.com/2013/05/01/gps-brain-fail- driver...](https://www.westsiderag.com/2013/05/01/gps-brain-fail-driver-car- ends-up-stuck-on-riverside-park-stairs)

[https://www.news.com.au/lifestyle/real-life/driver- follows-g...](https://www.news.com.au/lifestyle/real-life/driver-follows-gps- into-sand/news-story/081ea557f486757a0cdd2722892727bb)

[https://nymag.com/intelligencer/2018/01/waze-app-directs- dri...](https://nymag.com/intelligencer/2018/01/waze-app-directs-driver-to- drive-car-into-lake-champlain.html)

[https://www.fox5atlanta.com/news/2-drivers-stuck-on-train- tr...](https://www.fox5atlanta.com/news/2-drivers-stuck-on-train-tracks-in- duluth-after-gps-error-1-car-hit)

[https://www.bostonmagazine.com/news/2013/06/19/mbta-train- ac...](https://www.bostonmagazine.com/news/2013/06/19/mbta-train-accident-car- tracks/)

[https://www.abc.net.au/news/2015-10-01/car-being-hit-by- trai...](https://www.abc.net.au/news/2015-10-01/car-being-hit-by-train-after- gps-sends-onto-tracks/6818564)

[https://abc7chicago.com/395218/](https://abc7chicago.com/395218/)

People act like humans are immune from making idiotic decisions or from ignoring their surroundings or something. That's...super naive.

<comment><USER44> But in these examples, would AI driving not fail there too? Heres an example of AI driving into a river [https://electrek.co/2019/03/10/tesla-crash-river- claim-unint...](https://electrek.co/2019/03/10/tesla-crash-river-claim- unintended-accelerated/) so it happens as well.

would you be fooled by the attached image in my previous comment? If you were fooled, would your default action be to accelerate by 50mph, when no other drivers are?

<comment><USER43> > _would AI driving not fail there too?_

It might if it were relying solely on a GPS and nothing else, but, of course, none of them do that. The biggest difference is that navigation software can improve and sensors don't stop paying attention. You can't say either of those things about people who screw up in exactly the same circumstances.

> _Heres an example of AI driving into a > river[https://electrek.co/2019/03/10/tesla-crash-river-claim- > unint...](https://electrek.co/2019/03/10/tesla-crash-river-claim-unint..). > so it happens as well._

Let's note that the article is skeptical that the problem was actually the car:

"I want to give the driver the benefit of the doubt, but every time we have seen similar circumstances, the logs always pointed to a user mistake."

But even giving the driver the benefit of the doubt and asserting as a premise that the AI caused the accident, we're still left with the fact that people unintentionally accelerate their vehicles all the damn time. If a machine does it once in a while, that's not a regression, that's the baseline.

<comment><USER44> >> we're still left with the fact that people unintentionally accelerate their vehicles all the goddamn time.

Again, do they do this by 50+mph ALL THE GODDAMN TIME?

>> If a machine does it once in a while, that's not a regression, that's the baseline.

If all the machines do it at once though? The impact of self-driving failing is a lot more than 1 person, typically.

Also, we dont know the rate of error. There are 1.2 Billion drivers in the world. 3.5 Billions smartphone users. Its safe to say 50% of drivers use GPS. So 600 Millions Drivers using GPS? There arent even 1 million Tesla's on the road yet and they are already having incidents.

<comment><USER43> > _Again, do they do this by 50+mph ALL THE GODDAMN TIME?_

No. Usually they crash into something first. I can tell you one personal anecdote, though, where in 1995 the gas pedal in my truck actually got physically stuck in the down position and I had to hold the brake pedal down with one foot while wedging my other foot underneath the gas pedal to loosen it. Of course I could only do this after the several (5 or 6?) seconds it took for me to understand what was happening and then react. 6 seconds is a long time to react to a catastrophic event. Humans aren't great at it. We almost always do the wrong thing. We turn the wrong way. We push the wrong pedal. We don't understand our surroundings. We ignore our surroundings.

Anyway. Please note I'm not saying that this isn't a failure of the nav system. It is. I'm saying that anyone claiming that humans are magically immune is wrong because humans are very dumb and make dumb mistakes all of the time.

<comment><USER45> Why not just pop it into neutral?

<comment><USER43> Panic and adrenaline? I think you must have missed the part where I said "humans are very dumb and make dumb mistakes all of the time".

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER46> Very misleading. The car will only accellerate to the speed already chosen by the driver. It doesn't seem odd for itself to accellerate up to speed limits

</comment><comment><USER47> XKCD on tricking self-driving cars: [https://xkcd.com/1958/](https://xkcd.com/1958/)

I wanted to link that not because of the "there's an XKCD for everything" meme but because it makes an interesting point: sabotaging roads isn't difficult now, with human drivers. There's no reason to assume it would suddenly become a substantial threat when autonomous cars are commonly adopted. An issue worth considering and accounting for, but not worth public worry.</comment>


Trump says he's going to get Apple to "build a big plant" in US - <AUTHOR> http://arstechnica.com/apple/2016/11/trump-says-hes-going-to-get-apple-to-build-a-big-plant-in-us/ <comment><AUTHOR> _FRIEDMAN: Are you worried, though, that those companies will keep their factories here, but the jobs will be replaced by robots? TRUMP: They will, and we'll make the robots, too. [laughter]_

Lots of people seem to think that we can bring manufacturing back in this way but even if we "make the robots" there will never be enough manufacturing jobs to make a difference.</comment>


"Reforming the Mathematical Language of Physics" (pdf) - <AUTHOR> http://geocalc.clas.asu.edu/pdf/OerstedMedalLecture.pdf <comment><USER2> Tangentially related is this lovely piece by Tom Apostol at Caltech: [A visual approach to calculus](<http://www.mamikon.com/VisualCalc.pdf>).

</comment><comment><USER3> If you're interested in applications to computers science, and computer graphics, I highly reccommend <http://geometricalgebra.org/>

</comment><comment><USER4> As a former student of physics, this does appear quite interesting. The article feels concise and well-structured, and the math seems very elegant.

For physics and math students I recommend starting at page 9. The 8 pages of rationale seem a little unnecessary, with the math mostly speaking for itself.

I'm looking forward to giving this a more detailed read later.

<comment><USER5> As another former physics student, I'm excited about this too. I think my understanding of physics would benefit greatly if the various mathematical formalisms used to describe its different aspects were unified systematically.

I'm starting to read this article carefully right now.

</comment></comment><comment><AUTHOR> I ran across Geometric Algebra a couple months ago, and am convinced it's one of the most important things I've learned about in years.

Some quick summary / commentary to motivate reading the link:

\- By the 19th century, the complex numbers had become a generally acceptable concept, for example with lots of attempts to prove the fundamental theorem of algebra. The idea that the complex numbers could be thought of as 1–1 mapped to a two-dimensional plane was widely known. Complex numbers used as an algebraic proxy for points in the plane were useful for solving geometry problems that Cartesian analytic geometry couldn't manage.

\- Many thinkers were trying to extend these ideas to three-dimensional space. Hermann Grassmann, who invented GA in the 1840s, was one of many, but in many ways he got things "right". Another thinker who worked extensively on this problem was Hamilton, who devoted decades to the quaternions (a sort of generalization of the complex numbers with three imaginary units i, j, k instead of one) which can be quite useful for characterizing rotations and are still used in niche physics applications even though they've been otherwise marginalized by matrix approaches.

\- It turns out that there is a quite natural relationship between imaginary numbers, the vector part of a quaternion, and geometric algebra. As Hestenes describes in the linked essay, the imaginary unit, a "bivector", can be thought of either as an operator which performs a 90° rotation on vectors in the plane, or as a "directed area" with unit magnitude. A quaternion's vector part is just a combination of three unit bivector components of geometric algebra in 3-dimensional space. This gives complex numbers and quaternions a nice intuitive geometrical interpretation, and makes them a lot less foreign seeming to students.

\- The traditional/mainstream conception of vector algebra (which ended up winning the 19th century fight among tools for the algebra of space) uses a dot product and a cross product, which are defined to be, respectively, a scalar and a vector. Cross products constantly come up in the physics of rotations, and in trying to compute areas and volumes. Under GA, the "outer product", mathematically dual to the cross product, is seen to be a bivector. This is a much better description because the behavior of vectors produced by cross products is quite different than other vectors, which means that considering them to be the same type of object results in a great deal of confusion.

\- Geometric algebra has a natural relationship with projective geometry (homogeneous coordinates, Plücker coordinates). Such mathematics is used constantly in applications like computer graphics.

\- Physicist David Hestenes has spent most of his career since the 1960s elaborating and advocating GA. In exploring various areas of physics, he found that in almost every case GA was at least as convenient as the alternative mathematical formulations, and often quite insightful. For instance, some quantum phenomena which were previously considered "counterintuitive" or strange become quite obviously necessary and natural conclusions of their mathematical context in GA.

\- GA is still far from mainstream. As far as I can tell, it is taught to almost no undergraduates even though it is pedagogically and operationally superior to the alternatives. It mainly comes up in very technical advanced physics courses and extremely abstract mathematical proofs. Reading some of these, one would never realize how broadly applicable and powerfully connective its ideas are.

\- Geometric Algebra is (I firmly believe) the future of geometric education. It should be taught to all students of mathematics, physics, engineering, computer graphics, computer vision, and similar fields, perhaps starting in high school. It simplifies both understanding and computation; for instance, many problems can be done coordinate free, making their solutions easier to tackle and more intuitively relevant.

<comment><USER6> I am currently working my way through some geometric algebra (as well as algebraic geometry and topology) texts and building a [programming] library incorporating what I read to reinforce my mathematical intuition. I completely agree about how awesome Geometric Algebra is. In fact its emphasis of tying algebra with geometry makes it much more useful than for just teaching geometry. It makes a wonderful foundation for mathematical intuition. For self study I particularly like such subjects because they take a whole bunch of stuff and put them under one roof.

Grassmann's story is semi-tragic. He was a school teacher who created a powerful algebra of space where you could compute with not just points and vectors but with lines, planes, surfaces and other vector subspaces without being hampered by a particular coordinate system. Geometric Algebra can subsume complex numbers, quaternions and plane geometry - projections, rotations etc and easily extend them to higher surfaces. Matrices play less a role here. Hestens also puts forward that Geometric Calculus can contain matrix calculus, linear algebra, lie algebra and groups and Differential forms, see [1]. But because Grassmann was so ahead of his time and did himself no favours by writing a dense, super long text with lots of philosophy interwoven not many bothered to read or could understand it. Later, Clifford came and made extensions, cleaned it up and the subject gets named after him as Clifford Algebras, though not by his choice. But Clifford died early so the more geometrically unwieldy Vector Analysis won out. A setback for physics?...Angular momentum makes so much more sense as a bivector. From [2]:

 _Fearnley-Sander writes in [27]:-

All mathematicians stand, as Newton said he did, on the shoulders of giants, but few have come closer than Hermann Grassmann to creating, single-handedly, a new subject._

To read more about Grassmann I recommend: A History of Vector Anaylsis by Michael Crowe, well written, I couldn't put it down.

[1] <http://geocalc.clas.asu.edu/pdf/DIF_FORM.pdf>

[2] [http://www.gap- system.org/~history/Biographies/Grassmann.htm...](http://www.gap- system.org/~history/Biographies/Grassmann.html)

<comment><USER7> Perhaps the most interesting part, to me, was the goal of making geometric algebra operations computationally efficient. While I'm still reading (and enjoying) the original paper, I must confess an inability to see how it's more efficient than a standard vector representation. Would you have any pointers on that?

<comment><USER6> At the moment, the core of the gains are in the conceptually clean framework at the cost of speed. Kind of like going from C to Python. It will help your linear algebra by strengthening your geometric intuitions, stuff like how to figure out if a plane intersects a sphere or if a line intersects a plane or SLERP are much are easier for the novice. You solve it algebraically but the objects you are reasoning with are geometric entities so you can't help but build your intuition on both.

Computationally though, they take more operations and elements (2^dim). And there is an order of magnitude difference in speed - 100x if implemented naively. But there are optimizations that can get it to 2x - 7x [1]. But apparently for full generality, 3D geometry is best done in a 5D conformal geometry which requires 32 element representations but I haven't gotten that far yet. You can make it more efficient by taking advantage of the sparseness of most structures and being able to scale up to more information as required by filling more indices. Something that cannot be handled as cleanly in standard vector based methods. Strangely this method of conformal geometry is covered by a Patent so commercial usage in the US requires licensing arrangements [2].

[1] [http://staff.science.uva.nl/~fontijne/phd/fontijne_phd_compr...](http://staff.science.uva.nl/~fontijne/phd/fontijne_phd_compressed.pdf)

[2][http://www.google.co.uk/patents?id=0CkWAAAAEBAJ&pg=PA7&#...</a>

<comment><USER7> Thanks, that's interesting, and seems more in line with what I figured: a _lot_ easier to reason about, and a much cleverer coder than me to do it properly :)

(As an aside, one of the inventors listed on that patent happens to be the person who wrote this article.)

</comment></comment></comment></comment></comment><comment><USER8> This paper / talk was given in 2002, so of course it doesn't tell you what happened with the adoption of, or interest-level in Geometric Algebra (GA) since then. A quick search on Amazon.com turns up over a dozen recent books using GA in physics, computer science and engineering.</comment>


Has YC made a solid argument for zero feedback policy? - <AUTHOR>

"Unfortunately we can't give you individual feedback about your application. This page explains why:"
http://ycombinator.com/whynot.html
I have read and understand the reasons stated for not being able to offer feedback, and I understand that YC owes nothing to applicants. However, the explanation offered does not fully support the claim that it can't provide feedback to applicants.
The reason boils down to "there often is no reason". Which implies that sometimes there is a reason.
Similarly: "From that cutoff down to about the halfway point, the applications are pretty good." Which implies that fully half of applications are not that good, presumably for reasons which could be easily identified.
Feedback options remaining which wouldn't be precluded by the reasons stated include: 1. Your group was/was not in the "pretty good" top 50% of applications 2. Your group was rejected mainly because of ABC (or there was no clear reason/weakness, if that is the case)
I of course acknowledge it is the prerogative of YC to withhold feedback for any reasons they choose, and they have no obligation to share that publicly. But if they choose to make those reasons public, it is reasonable to expect them to contain sound logic.
We appreciate that the YC team is very busy. It seems that they have already done the heavy lifting of evaluating applicants, but perhaps distilling that into feedback would be a substantial effort. I can't make the judgement of whether it is in their best interest to give feedback when possible, but I suspect I am not alone in believing that any feedback would be beneficial and much appreciated. Unless there are reasons not stated, I hope YC will reconsider offering some form of feedback when possible. <comment><USER2> I'm sure that if you posted your app/site here, people could give you plenty of reasons. Ask yourself what you think the reasons are. What would you do to "kick your own ass"?

Technically, I am not buying the "there is no reason" either most of the time. It is probably any number of common reasons like red flags (filled with buzzwords and marketing speak, weak/iterative product, single founder with no history of success) or maybe it is just a bunch of more minor or subtle things. Maybe they don't think there is a huge future for X even though it is popular now; they think Y is on the way up or there are just 10 other applications doing something like X which are more compelling or have a team with a better pedigree than you.

Maybe sometimes it is fairly easy to give a reason, but then it will be expected for everyone and they get a lot of applications now. It would be hugely time consuming to give a detailed evaluation and maybe sometimes too it would be giving away some secrets they don't want to.

<comment><AUTHOR> All valid points, many of which I have considered as well. It would just be more satisfying to hear it definitively from YC.

The same goes for specific feedback. I can think of many reasons they might have rejected us. However, I would like to know how they see it, and perhaps if they have new insights. I also happen to think we have a solid team, with a great idea/design/app, and would like to know if they strongly disagree or if we just didn't quite make the cut.

Perhaps at some point I will post my app here. Perhaps if the YC partners tell me it's a shitty idea that will never work, I might be more convinced that I don't have to be concerned about anyone stealing my idea.

</comment></comment><comment><USER3> I second your thoughts. Our application was turned down and I got the same email in my inbox this morning. In my case, I had a different reaction to the rejection though, in that, I decided to take on the challenge head-on. But then again, now that I think of it, I'm deeply devastated that I couldn't get any feedback from them.

I'm a very curious person and have been all my life. Part of what makes me unique is my ability to go to great, if not seemingly impossible, lengths to find out things that pique my interest. And, YC, finally seemed like a place where I could belong after feeling so very different all my life.

It is painful to see them return your application with a generic 'no' because I have no way of knowing what I could improve or what is it that made them look away in the first place. I'm pissed off because I care.

To quote from Don Quixote, "there were no embraces, because where there is great love, there is often little display of it."

I hope they could give me some feedback. For once in my life, I'd know, for a fact, than having to ruminate and speculate over it.

<comment><AUTHOR> I fully support your initial reaction to not let it slow you down. Despite my post, I am not deterred or upset in any way. Disappointed sure, but then again I could list a number of reasons why we might be rejected on paper. So, I won't make assumptions about why they passed.

I just hate to see an opportunity for learning missed, whether I am the student or teacher. I would also like to evaluate whether there is a fundamental problem they perceive, large or small, or if it is an issue of communication. And if they do see a valid major flaw, I sure would love to know about it.

Perhaps, as can be inferred from their "it's not you, it's me" breakup-esque language, they are concerned about causing damage by providing rejection feedback. Perhaps they are concerned they don't have sufficient time to evaluate applications thoroughly enough to provide reliably meaningful feedback. Or perhaps they are concerned that their feedback might be taken more strongly than intended. Perhaps in reality it is more beneficial overall for them NOT to provide feedback. But given a choice, I would opt for feedback and believe I would benefit from it.

<comment><USER3> I agree that they're being too nice to the founders thinking if their feedback could alter their paths. I like how you draw parallels to a break-up. But even during a break-up pussyfooting around what made you break up with the other person just makes them generally sour and guarded.

I've seen a lot of people who speculate (often for a long time), at the reasons for their break-up and that ends up consuming them. It might lead to them questioning the very basis of why they started doing something in the first place.

Feedback helps there! I guess, the sheer volume of applications make it impossible for them to individually respond to every application, but, without feedback, it just seems grim and insincere.

<comment><AUTHOR> Not enough time is a completely valid reason. But I haven't heard that from them.

About the breakup analogy: the similarities are many, like how each one is different, sometimes complete honesty could do more harm than good, and sometimes there is no reason other than "we're just not right for each other" or "I met someone else." And maybe I should add, breaking up over email using a form letter is cold shit. Haha, just a joke, I know they probably do have good reasons for it.

<comment><USER4> One reason for not giving out a reason is that with the reasons given, collected and analyzed one could try to game the system by eliminating all signals that YC uses to detect bad applications without actually fixing the underlying issues.

There was a post lately about PG giving an interview and giving some shred of direction as to what makes YC reject applications and there was a big discussion on that fine point. He also said in the discussion that it was just a single way to discern between good and bad applications and that he doesn't give them all out so as not to be gamed around the indicators that YC uses to reject applications.

<comment><AUTHOR> Thank you for your insights. I will look for that interview, but if you could share the link I'd appreciate it.

I can understand reluctance to share too many details, but I can imagine a useful middle ground between detailed and nothing.

<comment><USER4> Here you go: [http://news.ycombinator.com/item?id=6279918](http://news.ycombinator.com/item?id=6279918)

This is the explanation of pg that says his accent indicator is the only one he's willing to talk about. There was a long discussion and many posts and comments on several posts about this topic, and pg explained his position on the matter more deeply on: [http://paulgraham.com/accents.html](http://paulgraham.com/accents.html)

<comment><AUTHOR> Ah yes, thank you very much! Karma coming your way. I had read that essay and seen pg's comment. However, I didn't notice his implication that he wasn't willing to talk about most criteria because they could be faked/gamed. Kudos to you or whoever spotted that. However, I don't believe he said it was the only one he would discuss.

I am very sympathetic to their need to keep some of their cards private. While I and others might just be looking for a little constructive criticism for its own sake, no doubt there would be some who would try to use the information to portray themselves as something they are not or hide something that would hurt their chances. If this reduces the amount of feedback they could provide to a level where it wouldn't be helpful or makes it a complicated and risky affair, then it's reasonable to just avoid it altogether.

I am not sure why they wouldn't just say that though. Perhaps to avoid catalyzing attempts to identify and game their criteria?

<comment><USER4> I don't have a strong opinion on whether pg and YC are right or wrong on their position. I also see no real reason to obsess over this, it's just is.

<comment><AUTHOR> Oh, I don't think its a matter of right or wrong. They have a right to decide whatever they think is best. I'm just trying to understand it.

You are right though, it is what it is. I suppose I am just interested in understanding why people do what they do, and this was an intriguing topic of personal relevance to me, and I assumed potentially to others here at this particular moment. But, I agree speculation on the topic is exhausted at this point. Thanks for humoring me anyways.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> "Why not" rings very true and can be taken as encouragement to soldier on. Yes, it would have been great to have YC's backing, but at this point it's a bit of a lottery, isn't it? And if your project cannot succeed without YC, that is not a good sign. Once more into the breach.</comment>


Lambda's New Coat: 21st century syntactic Mexps - <AUTHOR> http://lubutu.com/idea/lambdas-new-coat

<comment><USER2> This idea comes up periodically, but it's something that appeals more to those who don't use lisp than those who do. I thought the same thing before I started really using lisp, but once you start feeling comfortable with sexps a superficial pythonic skin sounds annoying. The suggestion of trading lisp's macro features (how would you define macros with "mexps", and how would mexps interact with macros?) for syntactic whitespace that people either love or hate doesn't sound like a long term improvement.

"Mexps" might attract a few new people to lisp, but the existing lisp community would reject them. It would be more effective in the long term to show people the value of lisp's existing syntax.

<comment><USER3> maybe an alternative to sexps appeals to those who don't use lisp because they don't use lisp because of sexps?

the idea is that mexps translate directly (and simply) into sexps, so macros would work in exactly the same way as they do now.

</comment></comment><comment><USER4> This proposal is very similar to "sweet expressions":

<http://www.dwheeler.com/readable/sweet-expressions.html>

edited to add:

"it makes the language far more flexible than any other language and provides a foundation for fully hygienic macros: you can modify the program entirely while it's running and guarantee that there will be no crazy conflict behaviour. "

That's not true though, Common Lisp's macros can have nasty variable capture issues, can't they? This isn't using the word "hygienic" in the sense of Scheme's, so what does this mean exactly?

<comment><USER5> Common Lisp macros allow the programmer to capture variables if they desire and/or are ignorant of the semantics of the language. Sometimes this is nice, like in the anaphora package. Defining hygienic macros is not hard though.

<comment><USER4> That's basically what I thought. I misread the OP to mean that s-expressions alone guaranteed hygienic macros.

</comment></comment></comment><comment><USER6> Declaring that lisp is unintuitive when compared with python is like saying Shakespeare is unpopular when compared with Lady Gaga.

</comment><comment><USER7> >However, Lisp has a big problem: it's not intuitive.

Something about nipples comes to mind.

</comment><comment><USER8> Okay, how was it, did Lisp introduce if expressions or if statements?

<comment><USER3> lisp introduced if-then-else expressions. 'if statements' was a little vague, so i've rephrased.

i wasn't really expecting to be on hn :/

<comment><USER9> The article made an interesting proposal. Do you intend to implement it?

<comment><USER3> i'd like to, it's just a case of finding the time. i'm sure i'll get around to it at some point.

</comment></comment></comment></comment><comment><USER10> A Python with a Lisp- Parseltongue?

</comment><comment><USER11> Shouldn't this

        if fruit is 'apricot':

be

        if fruit == 'apricot':

    ?

<comment><USER3> in python they're equivalent (for strings and numbers and such).

<comment><USER12> Nope; that's a common misconception.

       >>> "1"*1000 is "1"*1000
       False
       >>> 2**31 is 2**31
       False

The fact is that the only thing guaranteed by "is" is that if you have "a = b", then "a is b". Whether or not "new" objects are going to be identical to old ones is left undefined, and may change depending on type or value.

<comment><USER3> that is very confusing, but fair enough. it at least seems to work in the sample code.

<comment><USER13> "==" is an equality check that calls various methods[1] to answer the question. "is" is true if and only if the two references are actually the exact same reference, or, under the hood, basically that the two pointers are equal.

      >>> [1,2,3] == [1,2,3]
      True
      >>> [1,2,3] is [1,2,3]
      False

The equality check in the case of lists is recursive and checks the equality of its elements piecewise. But they are two different lists, so they don't check "is" the same.

As an optimization, because everything in Python is an object (despite occasional claims to the contrary by the Ruby community), certain objects are created at interpreter start time and cached forever, such as (IIRC) the numbers 0 through 100 or so, so if you happen to use "is" it will sometimes "work":

      >>> (1 + 3) is (2 + 2)
      True

but it's not good or reliable:

      >>> (1000 + 3000) is (2000 + 2000)
      False

Basically, unless you are doing something with "object identity" and you know what you are doing (and if you don't know what I mean by caring about "object identity" you probably don't pass this check), OR are checking that something is specifically "None" and not merely false (as None is another of those cached values and there is only ever one None in the system), don't use "is".

[1]: <http://docs.python.org/reference/expressions.html#notin></comment></comment></comment></comment></comment>


Sideroller demo. Have fun. - <AUTHOR> http://www.sideroller.com/

<comment><USER2> Destroyed my browser. Chromium, Linux, 64 bit.

Flash has been having a lot of trouble with this combination recently.

<comment><USER3> Chrome dev build 4.0.266 on Ubuntu 9.10 Netbook Remix (32bit) on Acer Aspire One 150 works fine.

P.S: Flash videos seem to load pretty slow on Chrome though.

</comment></comment><comment><USER4> The art is very cool, but the demo is entirely too easy. The "shooting" feature's kickback allows you to fly, bypassing any obstacles. Unless this is a feature, in which case the obstacles need to be designed with that in mind. Other than that, pretty neat!

<comment><USER5> Even easier, you can just click and drag yourself in telekinesis mode...

<comment><USER6> I just managed to crash it doing that: accidentally dragged myself too far away from the 'world' and now the ball is just sitting in the middle of the screen, spinning.

Thinking about it, maybe I've just put myself in orbit :-) It's a bit difficult to see where down is, though, to get myself out.

<comment><USER6> Hah, figured it out: you can tell where down is by drawing stuff and watching it fall.

</comment></comment></comment></comment><comment><USER7> Love the atmosphere of the game and the fonts, unfortunately the 'telekenisis' feature doesn't work - I cannot move the giant rude watermelon or the small brown box above it. Great start though.

<comment><USER8> Neither can I.

EDIT: Doh! I wasn't clicking on myself first. Never underestimate the stupidity of users.

</comment></comment><comment><USER9> The developer here. Just saw my page views explode from this link. Thanks for the feedback (you're right - there's not much of a point, it's just a playground). BTW, I'm also releasing the engine it's based on here:

<http://www.sideroller.com/wck/>

</comment><comment><USER10> I stopped playing about 10 minutes ago, but my brain still thinks my monitor is rolling left and right.

</comment><comment><USER11> This site has been up for years, and never before been submitted? I should scrape my history...

</comment><comment><USER12> I think I may have achieved a stable orbit around the planet with the red water. Fun game!

<comment><AUTHOR> The orbital mechanics seem to be accurate. Shooting up or down just causes oscillations. To move up or down orbits, fire forward or backward.

If you fly too high the game breaks.

</comment></comment><comment><USER13> Neat game... Thanks for giving me something to kill time with during this holiday break :)

</comment><comment><USER14> I think it made me nauseous playing. Pretty neat though. :-)

</comment><comment><USER15> the game breaks should you move yourself into the portal, at the house level to the lava level, in telekinesis mode

</comment><comment><USER16> cute game but what's wrong with using the cursors?

<comment><USER17> The cursor works too, but you can't reach Space easily that way. Probably it advises to use A and D for control so that you can use your left hand for keyboard and right hand for mouse.

On a second thought Up should work as space, and cursor keys would be fully usable.</comment></comment>


Data Structures in Clojure: Binary Search Trees - <AUTHOR> http://macromancy.com/2014/04/09/data-structures-clojure-trees.html

<comment><USER2> Clojure also has a built-in persistent red-black tree.

[https://github.com/clojure/clojure/blob/master/src/jvm/cloju...](https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/PersistentTreeMap.java)

</comment><comment><USER3> Mutable fields are really hard to use correctly in Clojure, but it's good to see an appropriate use case for `:volatile-mutable` in the implementation of these data structures.

<comment><USER4> Mutable fields are really hard to use correctly in any language, and that's why Clojure encourages the use of immutable data. Thus I find it really odd that the article builds a mutable binary tree. The immutable version would have been equally simple. And now you can't put that tree into any of the Clojure's reference types (ref, agent, atom).</comment></comment>


MTK to release new ARM SoC to make wearables $20-$50 cheap - <AUTHOR> http://www.eetimes.com/document.asp?doc_id=1320842&

<comment><USER2> What I'd find amazing if this thing has enough horsepower for WEP cracking. Add a small Wifi module, a battery and place it into an innocent-looking charger. Voila, you have a spy kit.

<comment><AUTHOR> Wouldn't it be illegal to do, at least in US and EU?</comment></comment>


A Tunable Liquid Metal Antennas for Tuning in to Anything - <AUTHOR> http://spectrum.ieee.org/tech-talk/consumer-electronics/portable-devices/a-tunable-liquid-metal-antenna-increases-the-frequency-range-of-communication-devices- <comment><USER2> Cool.. but can I make a home version of this for ham radio? I'm thinking of plastic tube from home depot + some kind of liquid metal and a pump.

<comment><USER3> If you allow moving parts may as well use a stepp-ir company antenna.

For a blast from the past google "electrochemical hour meter" or try:

[http://globalepower.com/media/Coulometers- OBSOLETE.pdf](http://globalepower.com/media/Coulometers-OBSOLETE.pdf)

So... say you have a tube of mercury and tiny electrolyte gap, then shove DC power thru it, and the mercury electroplates into one side. Takes thousands of hours per inch. That makes them great hour-meters for engines or whatever. Why, in only a year you could tune a dipole from one end of 20 meter band to the other LOL.

I would imagine the end load capacitance might be a bit high, and the voltage limit being a bit low... But its an idea.

They stopped selling those around the time they stopped selling things like mercury tilt switches, for some odd reason.

<comment><USER4> Heh, I was just about to post about mercury coulometers, I bought a number recently to play with (I had a silly idea of trying to make a watch with them)

I connected one to 500V, and you could see lots of bubbles forming in the gap between the mercury.

Krasnow has a nice video of them [https://www.youtube.com/watch?v=Cxj399LuX1M](https://www.youtube.com/watch?v=Cxj399LuX1M) showing a view of them through a microscope

<comment><USER5> Aw, that's an awesome idea! Why didn't it work?

Some quick math... To get the bubble to go across a 2400 hour meter in 24 hours, you'd have to run at 100x12v = 1200 volts. I guess it wasn't stable at 500v?

Also, no idea how the current/voltage scales, but normally this is .72mW ... at 100x it's still 72mW -- not too bad.

<comment><USER4> It may still work, but I managed to break the coulometer with some mercury leaking out, when trying to prise open the casing, to get a better view under my microscope.

I'm going to try again with another one soon :)

One thing I'm worrying about though, is if the higher voltage causes the mercury to get to a temperature that leads to the glass breaking under heat.</comment></comment></comment></comment></comment>


ZXX Type Specimen [video] - <AUTHOR> https://vimeo.com/42675696 <comment><USER2> This is an OCR-resistant font designed in 2012:

[http://www.z-x-x.org/](http://www.z-x-x.org/)</comment>


Ask HN: Why are there so many .christmas TLD's appearing on Hacker News? - <AUTHOR> I've noticed in the past couple weeks a tonne of domains with the christmas TLD have been appearing on hacker news? Currently there's 2 on the front page which seems to have been more than any other month of the year.<p>Why are there so many popping up? People being festive, having a seasonal-only blog? Or is there a domain provider having a offer on for christmas domains? <comment><USER2> Bekk (a Norwegian consultancy) bought a bunch of domains under the "christmas" TLD, and made bunch of "christmas calendars" [0].

They're probably submitting many of their daily posts from many of their calendars.

[0]: [https://bekk.christmas/](https://bekk.christmas/)

</comment><comment><USER3> [https://hn.algolia.com/?dateRange=pastMonth&page=0&prefix=tr...](https://hn.algolia.com/?dateRange=pastMonth&page=0&prefix=true&query=.christmas&sort=byPopularity&type=story)

47 so far (not including this post)... Can we make it to 100 before Christmas?

</comment><comment><USER4> Funny, was just coming to ask this as well, especially as most I've noticed have the same query path as well (/2019/11) for the article link.</comment>


How to Never Forget Anything Again - <AUTHOR> http://www.fourhourworkweek.com/blog/2008/09/17/how-to-never-forget-anything-again/ <comment><USER2> Sometimes I feel that all the productivity web sites are just rehashes of that entire blog post, over and over again.

</comment><comment><USER3> Oh, and I thought the article could help me with my exams.

</comment><comment><USER4> Only problem is that I would forget to use his system.

</comment><comment><USER5> write them down</comment>


IRC v3 - <AUTHOR> http://ircv3.net/ <comment><USER2> There's a lot of neat stuff in IRCv3 to bring IRC up to date, but most importantly it is standardising a lot of the existing protocol and patching up some of the existing warts that make pushing IRC difficult - all while being backwards compatible.

Developing kiwiirc.com over the past few years to cover many different IRC servers in all different languages and using many different services/auth services has been a real pain. It won't improve overnight but these IRCv3 extensions making their way into many different IRC server projects are really helping to smooth things out.

There is currently a re-write of the Kiwi IRC project to experiment and make use of the entire IRCv3 extension set, along with some other features to make web based IRC clients just as friendly and modern as people expect from messaging applications today. This will be a huge boost to the millions of people using IRC via Kiwi IRC.

IRC is getting interesting again and IRCv3 is up there making a lot of this possible.

<comment><USER3> I use KiwiIRC each and everyday. It's one of the nicest looking and easiest to setup web frontend for my hybrid-ircd setup. Sadly it's just a small group of friends and an OLD eggdrop bot that runs a crusty old megahal.mod as entertainment. I haven't found anything that runs as well and can create humerous replies since then. Hopefully the old code will continue to compile for awhile.

Anyway, I strayed off topic. I too am excited for IRCv3 and the future of IRC. I love the protocol, and despite it's drawbacks it serves my purpose well.

And thank you for all your work on KiwiIRC. I love the project :)

<comment><USER4> Bit off-topic, but Eggdrop was the very first thing I ever compiled from source WAY back in the later 1990's. I figured out how to hack together a (absolutely terrible) TCL script to monitor #fatefiles on EFNet for messages by certain nicks (a few XDCC bots) and echo them to another private channel. It was trash but it worked. One of my earliest experiences that I can remember with any sort of real code. Ahhhh, the good 'ol days.... great times. :-)

<comment><USER5> Me too! Eggdrop with TCL/TK on Undernet, with fbsql as mysql client. Rudimentary chatting with the bot and getting it to answer preset commands, looking up records in the database. It was frustrating, but when it worked it felt glorious.

</comment></comment></comment></comment><comment><USER6> I second a comment made below regarding [https://matrix.org/](https://matrix.org/). I've used IRC for years and still use it almost daily - but come on Mosh + tmux + ec2 just to have permanent chat history? I seriously can't advocate this crap to anyone in 2016. It's too little, too late.

<comment><USER7> There's irccloud for that, or if you want to host yourself shout-IRC is really good.

<comment><USER8> irccloud keeps going down every time freenode netsplits. It got so bad lately I actually canceled my subscription and instead set up weechat+glowing bear, which is not as polished, but it works fairly well on both desktop and mobile. (And cheaper)

It's also free software and easy to set up so I encourage everybody to check it out.

<comment><USER9> Does it still work if you've got WeeChat customised or does it need to be vanilla? I'd like to keep using it from a shell while on a decent machine, but would absolutely not mind the option to connect from mobile clients.

<comment><USER10> Dev here. It's completely independent of your config. Indeed many things carry over to Glowing Bear automatically, such as scripts that modify the lines (colorize_nicks.py) or create new text buffers (like highmon or grep.py), filters, triggers, etc.

<comment><USER9> Did check it out. Absolutely amazing project and if anyone still reads through this chat, absolutely what a modern IRC experience should be like in my view. Effortlessly does _a lot_ of the things people on here like about Slack.

I like WeeChat as a client, it's fast and lean and works inside the tmux session that pretty governs my digital life both private and professionally. Alas, it's not always accessible. Getting Putty to reliably work with tmuxed ncurses apps is a nightmare for example, imho.

Glowing Bear solves this brilliantly. It looks great, you get features like inline display of media and is easily secured with certificates from Let's Encrypt.

Thank you, devs. This'll make my "newly discovered FOSS projects of the year" list for sure.

<comment><USER10> Thanks a lot for your kind words :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> My favourite bit is how they skipped adding length negotiation and it is causing them problems already. See the brief discussion of size limit on [http://ircv3.net/specs/core/message- tags-3.2.html](http://ircv3.net/specs/core/message-tags-3.2.html)

Adding tags forced them to increase message length because of how IRC messages are hilariously limited to 512 bytes in all directions. In the existing protocol you already have to guess how long your messages are allowed to be because the server tacks on a prefix to your message before relaying it, which can require it to truncate characters to fit the modified message into the length limit. Having some amount of tags tacked on as well would have made it impossible to guess how much room you had.

Now if they had started with fixing the actual protocol they wouldn't have had to deal with that. Honestly this feels more like a standard "let's add cool stuff" push than intelligent stewardship of the protocol. I guess that is kind of cool too though.

<comment><USER12> Length negotiation has been discussed for years, but it's not that easy.

Imagine user A negotiates a length fo 1024 bytes with the server, user B negotiates a length of 2048 bytes.

User B sends a message via the server to user A.

What happens?

<comment><USER11> No, it isn't easy but that is what makes it the kind of thing that requires great spec work to accomplish. It would require proposing transitional steps and monitoring their adoption over a very long timeline.

However reading their site more carefully I suppose their stated goal technically is to only provide extensions to the protocol.

So the situation you describe already happens, user A has 512 bytes to send to the server, but the server has 512-prefix_length bytes to send to B. This is a flaw in the original protocol and the currently accepted solution is to truncate server-side(what to do is not stated explicitly, though it is implied that you probably shouldn't wrap messages). But fixing it is probably out of scope.

<comment><USER13> The prefix is discoverable by client A though: it can send a self-message and thereafter knows the maximum length it can send to any given target.

<comment><USER14> They will only know the prefix for the server they are connected to. On a larger network such as Freenode, client B could be connected to another server with a different prefix length.

<comment><USER13> The prefix doesn't involve the server. The prefix that's prepended to your messages when another server passes them on to a client is ":nick!user@host " and is the same for all messages that you originate.

(On Freenode and other networks with a similar service, your hostname can be changed by services, but the client is notified of this and can update its knowledge about the prefix).

<comment><USER14> D'oh, you're right! I looked at a non message command to refresh my memory.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> I used IRC for over 10 years, but after using Slack for 1 it just felt outdated to me.

Offline messages and simulatnous logins from multiple places are just two features I was missing in IRC and didn't even know till I had them, haha.

But yeah, IRC networks just worked as message broker and not as databases, so I never thought about it.

<comment><USER16> I use ZNC, so logging in from multiple places works well.

<comment><USER17> But now you have to run a ZNC server as well - it's a lot more work for a very simple feature.

<comment><USER18> It's not "very simple" \- it's just that with Slack, _someone else_ is running ZNC for you.

Chat apps don't magically "just work" \- either you run your own infrastructure, or use someone else's.

<comment><USER19> Even with IRC you are still using someone else' infrastructure -- unless you run your own IRC network from scratch of course.

<comment><USER20> If you ever want to feel like you're bashing your head against a brick wall over and over, set up an IRC server with channel/nick services.

</comment></comment></comment></comment></comment></comment><comment><USER21> I am very glad this is happening. IRC was one of the first applications I started using on the internet. These days it nearly disappeared because of closed silos like Facebook, Twitter and Slack. This effort could help bring back a decentralized service that is not under the control of any single company.

<comment><USER22> That's the sad thing about decentralized services, they follow a standard that doesn't get updated. Facebook and slack can add new features every month, but adding a new feature to email or IRC is so difficult.

<comment><USER23> Okay... I agree adding features to email and IRC are probably not the easiest things in the world. There are a number of useful features that have been added to email over time though, and I don't think decentralized control of the protocol is the bottleneck. Wave might or might not be a good example.

</comment></comment></comment><comment><USER24> I'm not sure if this is the best approach. Matrix might be a better way to go, at least for some things. If you really want persistent history and persistent identity, I'm not sure why you bother with IRC at this point: both will always be second class there. Try XMPP, Matrix, Psyc, or whatever. Just so long as you can convince your friends to use it...

<comment><USER13> On IRC, your "persistent identity" was your user@hostname (and your nick is ephemeral). That's why the user@hostname is shown when a client joins a channel, or in WHO or WHOIS - and why bans match on nick!user@host.

This worked great when people were typically using IRC from their login on a server at their university (and this is also originally why IRC servers used the 'ident' protocol when you connect - to stop you spoofing other users on the same shared system).

It stopped being a viable persistent identity for all users when the @hostname part stopped being persistent - when people started gettting dynamically assigned addresses on internet connections at home.

<comment><USER24> ...Exactly.

</comment></comment></comment><comment><USER25> In many ways, the idea of IRC chat has grown significantly beyond the conventional client. From the ubiquity of chat for productivity in applications like HipChat to the hugely successful Twitch.tv platform, IRC has proven to be a viable backbone in these scenarios. It's quite nice then to see a concerted standardization effort. Hopefully, many of the proprietary features we might recognize today will be widespread and freely available in the future.

</comment><comment><USER26> I run an XMPP server for myself and a few friend and have had no end to the trouble with it getting OTR or any level of encryption working reliably before friends lose their interest.

Please, someone, just offer us an open source slack clone that runs off on a R-pi and has a walk through wizard to enable the 99% of typical install requirements.

Even as someone who works in the industry, I dont have time to learn the bells and whistles that running a chat server requires.

<comment><USER27> Which problems did you run into? I use Prosody as the server (which is brain- dead simple to set up) and Conversations as the client on my friends' Android phones. We just add each others as buddies and set "OTR only" with two taps, and these problems are solved forever.

I do agree though that the user experience for my OTR-enabled messengers is shit (especially the "first message not encrypted" problem).

</comment></comment><comment><USER28> That's a great idea.

Maybe also backport some features of Slack, like edition of messages (with a flag marking it as edited), or a common way to have plugins/extensions, or tagging links as images.

<comment><USER29> > like edition of messages (with a flag marking it as edited)

This works on Slack but only with their client. Use one of the bridges and you have no clue what's going on and they have a centralised system for this. Syncing that somehow across all servers in an IRC network, across netsplits and everything, is far from simple. You'd also need to do this retroactively somehow if a client received a message, disconnects, the message is updated and the client then reconnects, in order to present an accurate history.

> or a common way to have plugins/extensions

IRC already has a way to allow for extensions. Or do you mean client side?

> or tagging links as images

I'm not sure the IRC protocol should care about that at all. It's more up to the client to detect image links and Glowing Bear for example already does and can display them inline.

<comment><USER28> > Syncing that somehow across all servers in an IRC network, across netsplits > and everything, is far from simple.

Yes, it's not simple. But it's not impossible to do. And yes, it might not work in 100% of cases, after netsplits, but so what?

<comment><USER29> That matters a lot. Inconsistent history is a problem and leads to all kinds of communication issues and misunderstandings.

You said you agreed on A

No I edited it later to say that I meant I was in favour of B

Oh, I never saw that edit...

<comment><USER28> That's exactly the same on Slack, and people like it.

</comment></comment></comment></comment></comment><comment><USER30> I know I'll be dowvoted to oblivion but I'll say it anyway...

You advocate for privacy, You advocate for openness, You advocate for transparency, You advocate for interoperability, You advocate for host-it- yourself, You advocate for customisability, You advocate for scriptability ...

But then all of a sudden "oh no IRC, not enough colours, geez, running a bouncer, who wants to do it?"

\</comment><comment>-

I'd design irc-v3 to be bouncer-friendly, and maybe to integrate some bouncer-y features into IRC servers as well (most IRC servers keep logs anyway)

<comment><USER31> > (most IRC servers keep logs anyway)

IRCd developer and network staff member here. Dead wrong. I don't think I've seen a single IRCd that keeps logs, and doing so would make it much more expensive to run an IRC network. Additionally, it would be a huge violation of privacy, and we value our users' privacy. The IRCd only logs server events (e.g. network-wide bans, server connection/disconnection, use of administrative tools) and user connections/disconnections (for anti-abuse purposes).

If network staff have logs of something, it was either because their IRC client was present in the channel or because someone else gave them logs.

Most of my network's servers hang around 2-3% CPU usage and <5GB disk usage, and we'd like to keep it that way because we don't want it to cost a lot to host. We have an average of 1000-2000 users per server.

</comment></comment><comment><USER32> They've been working on this for years and I'm seeing very little of it. And beyond that, it's missing everything we take for granted nowadays: scrollback, keeping note of where you were and media sharing.

Yeah media sharing can be done with, what's it called, CTCP? That's just piping stuff through a short message service, like Twitter or DNS. It doesn't properly display media either, but it allows for small file transfers.

And of course scrollback can be done with bouncers. But it's not something I see my mother using. Facebook Messenger is what I see my mother using.

Is there anything new on the website, or it it just being linked again?

<comment><USER33> The ircv3 server-time extension can be used to implement scrollback intelligently, there's a ZNC plugin which does this.

</comment></comment><comment><USER34> I ran an IRCnet server for 15 years or so and when the PSU crapped out I decided 15 years would be enough.

If I were to give one piece of advice: forget IRC. If you want to make a free, large scale chat system, just forget you ever saw IRC. There are no solutions in that neighborhood.

</comment><comment><USER35> IRC (current version) works fine for me. The trick is to front it with ZNC or similar software.

Anyway, why isn't this being done through the IETF?

<comment><USER36> For you. What about the millions of nontechnical people that need an open communication platform? We use IRC at my employer, and the complexity of getting a bouncer set up means that for cross time zone teams, most people miss any conversations that don't happen in their business hours. This has huge effects on collaboration.

<comment><USER37> "most people miss any conversations that don't happen in their business hours. This has huge effects on collaboration."

Why don't you send them logs of the conversations?

<comment><USER36> Suddenly it's my job to bring everyone else up to speed on what happened in their off hours? I have a job to do. Slack and Rocket.Chat (and matrix and ...) both solve that problem and a lot of others without the legacy bullshit that IRC slops down the road. I'm sick of spending time working around what is an outdated and inadequate protocol because of momentum in my office.

<comment><USER37> You realize logging IRC and distributing said logs can be completely automatic, right? Anyone can set that up. It's honestly kind of humorous that you find this to be such a mountain to climb.

<comment><USER36> Sure. I'll send you logs. Jump onto Slack, and scroll back. Easy.

<comment><USER37> I support open protocols and not proprietary products that make you pay to simply keep chat history (Slack deletes messages after +10,000 messages). To be against IRC is to be against e-mail. IRC has been around at least since the 80s.

</comment></comment></comment></comment></comment></comment></comment><comment><USER38> From [https://matrix.org/docs/guides/faq.html/](https://matrix.org/docs/guides/faq.html/)

"IRCv3 exists and is addressing some of these issues; this is great news and we wish them well. It's almost a contradiction in terms to get competitive between openly interoperable communication projects - we look forward to increasing the richness of Matrix<->IRC bridges as the project progresses."

Why not merge the two projects or just focus on one? WebRTC seems to be a better protocol right now.

</comment><comment><USER39> We, small gaming community were using IRC as matchmaking "service" where we would all add to a queue, and the bot would then create teams based on players ranking.

That worked quite nice, for ~15 years, and whole community was created, things worked quite nice, diehard users used BNC and terminals, but lately everyone is switching to Discord.

Main matchmaking is still on IRC, but other sub-groups migrated to discord long ago, and that scares me, because no one at the moment knows what will happen with Discord year or two from now.

</comment><comment><USER40> Apologies for being off topic. I am happy about this story now being on the front page.

However, I don't really understand how reposts work. I always thought that URLs are a unique key.

Is this a way to kind of "retry" them? In this case I'd be curious about how they work.

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

<comment><USER41> Essentially, as I understand it, if multiple people submit the same exact URL in a short period of time, they count as votes on the first submission (this may well be completely wrong, but that is how I believe it works).

After a period of time, new submissions are their own post, to allow submissions that did not get visibility have a chance at being seen. This is also sometimes done manually by the mods if they see something particularly interesting that was missed (not sure about the last point though again, I believe it to be true).

</comment></comment><comment><USER42> Interesting development. Apart from the original IRC specification published in 1993 and revised in 2000 (supposedly the namesake of "IRC v3") there has been quite little real standardisation work in IRC protocol, with various clients, servers and platforms each implementing their custom extensions.

<comment><USER43> Standardisation is weird in IRC. From what I've seen, most of it that has happened has been the result of one group implementing their custom command/extension and then a bunch of other vendors implementing it in the same way (as well as all the interesting politics behind it all). There's a surprising amount that's been mostly-standardised over time, and not just from formal standards groups like the IETF or IRCv3.

Related, I've been working on these sites for a while which I hope can be useful: [http://defs.ircdocs.horse/](http://defs.ircdocs.horse/) [http://modern.ircdocs.horse/](http://modern.ircdocs.horse/)

Still, it's been really interesting to get into. It's nice seeing how things have gone so far and how they're going forward (and digging into the archives is always fun).

</comment></comment><comment><USER44> Unrealircd is imcredible, as far as irc servers go. I ran it with 300 concurrent users at a local LAN and was able to do a lot of excitimg things like load balancing between servers other cool things, already back in 2001.

</comment><comment><USER45> Do a substantial number of IRC users actually care that the current version of IRC lacks the features that IRCv3 proposes, or are we just modernizing because we want to make writing IRC bots more complicated?

<comment><USER46> IRCv3 makes writing software easier not more complicated.

Take the "away-notify" extension for example. Without it you would have to repeatedly poll a channel with WHO to see if all users in that channel have marked themselves as away.

</comment></comment><comment><USER47> I wish that there was just a solid way to prevent DDoS attacks and netsplits. IRC has always been one of my favorite communication mediums.

</comment><comment><USER48> I still use irccloud.com. Fave feature is preserving history so I can drop right into a conversation.

</comment><comment><USER49> It's still a graph with single points of failure throughout, right?

<comment><USER50> An irc network can have several servers. If one goes down if the others are online you can connect to any one of them and still be ok. A net split will happen but they tend to resolve fast.

</comment></comment><comment><USER51> same for voice would be nice. webrtc seems to fail as skype replacement (so far, in our network)

</comment><comment><USER52> I don't feel like typing much because it's nap time but IRCv3 is an almost closed group of friends, mostly znc core developers, who have decided they can choose what the future of IRC looks like.

They have put lots of pressure on and harassed other developers of clients and networks, sending them patches and infiltrating their devs if necessary, so their ideas are actually implemented.

If you complain about those ideas and specs, they'll tell you to refer to their github issue tracker, but they mostly ignore those who are not part of that core group I mentioned.

<comment><USER53> Regarding the IRCv3 group: it's actually worse.

Historically the IRCv3 project originated at Atheme as a project to bring some extensions to IRC in order to make it more modernized, such as the SASL binding (IRC Authentication Layer). ZNC guys and Atheme guys did not get along because political reasons, so they threatened to fork the project. Atheme decided to spin off the IRCv3 project at that time as it was no longer really interesting to Atheme anyway (IAL was adopted in basically every IRCd and most mainstream clients).

While I cannot really comment on the current managerial processes of the project (as I do not know what internal discussions the technical board has anymore, if any), the technical board allows people to submit things that they know will never ever be ratified, without saying what the outcome will be when it is already known to them, in order to give the _appearance_ that they are an open project. In fact, advising people to not work on specifications that mainstream vendors will not adopt is actively discouraged by the working group, as the image of being open and the appearance of being non-offensive is more important than discouraging people from wasting their time.

As for charybdis (a widely deployed IRC server): we keep an eye on the IRCv3 group and implement things that we find interesting. There is no commitment from us to implement future IRCv3 work just because it is an IRCv3 specification.

As for IRC itself: IRC is a wonderful thing, but honestly in 2016 we can do much better. The backwards compatibility requirement of IRCv3 (which exists because they do not feel they have enough influence yet) is a serious crutch that prevents a lot of potential work for fixing design problems with IRC. The lack of unique identifiers at the client level (other than nickname) makes a lot of things like nickname ownership painful. The overall concept of IRC is a powerful one, but the technical foundation is crap. This is why Slack, gitter.im, etc are kicking IRC's ass right now, and IRCv3 is honestly too little too late for that fight. These services offer easy integration with any type of website and the IRCv3 group is too busy talking about bringing HSTS to IRC. This is a total and complete inversion of priorities verses where they should be.

<comment><USER46> >ZNC guys and Atheme guys did not get along because political reasons, so they threatened to fork the project.

I do not wish to start an argument over things which are long dead. However, I think it is important to note that the "political reasons" were that you were constantly derailing discussions and threatening people.

I can publish all of my IRC logs if anyone wants evidence of this.

</comment></comment></comment><comment><USER54> Is IRC v3 better than XMPP? There are any ircd as good as ejabberd?

</comment><comment><USER55> Apps like Discord are the new IRC.

<comment><USER56> IRC is a protocol. Discord is a business.

NNTP/usenet is a protocol. Reddit is a business.

Email is a protocol. Facebook is a business.

Protocols don't go bankrupt and close up shop. They'll still be around in 10 years.

Protocols don't magically pull the rug out from under you, dictate how you use them, or suddenly change features you want and need without you having any ability to remain on the old system. They don't suddenly up the system requirements or discontinue support for old clients. I can still email from any device I ever could, palm pilot, powermac, whatever. Meanwhile your favorite app is dropping support for Android 4 or whatever 24months after release. Or app xyz no longer works on a 2 year old iOS.

Protocols are something I can rely on. Businesses fly by night. I'm not going to start using Discord now and have it be gone this time next year, I've been using IRC for decades, and I'm going to keep using it. It works perfectly, everywhere. Especially if I have mosh and a server running my irc client somewhere else.

</comment></comment><comment><USER57> To fix irc, the best thing they could do would be to add first class support for js and websockets.

<comment><USER27> I literally can't tell if this is satire.

<comment><USER57> It's not, but your comment made me smile.

You seem to feel differently. Go ahead, tell me why it shouldn't be the case.

<comment><USER58> I'm not the person you asked, but I share their opinion because JS and websockets do not appear to have any obvious relationship or applicability to IRC.

<comment><USER57> A reason to do it is because most internet users >99.9% have a web browser. <0.01% have an irc client. You could argue that Twitter or Slack has sort of filled this niche for people who want to do #topic based chat but if the goal is to do it in an open protocol, then that's imo why it would be applicable to irc.

<comment><USER27> Okay, but in which way is JS and WebSockets relevant to the IRC core protocol, if you usually have a proxy (such as KiwiIRC) which speaks IRC in the backend and HTTP/JS/websockets/whatever in the frontend.

</comment></comment></comment></comment></comment></comment><comment><USER59> Why isn't encryption baked in by default? It's optional from what I can tell. I don't know how you can design a new protocol and not include encryption.

<comment><USER29> > The IRCv3 Working Group is a collection of IRC client and server software > authors working to enhance, maintain and standardize the IRC protocol using > backwards-compatible extensions.

It's not a new protocol.

<comment><USER59> Fair enough, but I feel you're being a little pedantic since there are base extensions described which are required, and optional extensions which are not required. TLS is one of the optional extensions.

So I'll reframe my question and ask: Why isn't TLS a base extension?

<comment><USER59> Hmm, I didn't see the 3.3 spec which is still being developed, it looks like they are doing strict transport security as a base extension. So that would address most of my concerns I think. I would still prefer to see TLS required no matter what.

</comment></comment></comment></comment><comment><USER60> I am a long time IRC user (irssi is my 'daily driver'), but I'm pretty sure IRCv3 is called "Slack".

<comment><USER42> Hooray for centralised, proprietary tools controlled by a single corporation! /s

Seriously though, I think this is exactly what is needed for IRC: a facelift. IRC is hugely superior to centralised tools like Slack for obvious reasons. But if people are moving to Slack it's not enough to say they should not do that, but try to actually offer a competitive user experience.

<comment><USER61> I can't say it's bad to update the IRC protocol, but I don't think it would make much difference either. What people don't realize with "decentralized" services is that they don't have a good ecosystem anymore. The web stack, which favors centralization, ships with usable encryption, user interface, distribution etc. To achieve similar end results with "conventional" stacks you will spend far more effort with far less developers to choose from.

People tend to dismiss web application development for being careless, but at the same time forget that this is what made these clear text fairly rudimentary protocols popular. Until we get encryption built-in, more robust programming languages and figure out distribution on the desktop it's unlikely that the ecosystem will come back.

</comment></comment></comment><comment><USER62> Looking at homepages of various IRC clients, I feel like I am back to 5 years ago when jQuery UI is still a thing: [http://ircv3.net/software/clients.html](http://ircv3.net/software/clients.html)

Equally out-of-date are the screenshots of the clients on the homepages. I don't think I will ever see an IRC desktop or web client that has decent UI according to today's standard. Then again probably I am too young to be their target audience.

Edit: Okay there are some IRC clients that actually look good, such as Riot, but not on the list of IRCv3 client.

<comment><USER63> Try taking a look at The Lounge, it aims to be rather modern. [https://thelounge.github.io](https://thelounge.github.io)

<comment><USER64> Nice, this may make me finally move on from irssi</comment></comment></comment>


ASK HN : What are useful Python resources for a non-beginner? - <AUTHOR>

<comment><USER2> I would suggest following the work and talks of Raymond Hettinger @raymondh Such as: Raymond Hettinger - Beyond PEP 8 -- Best practices for beautiful intelligible code - PyCon 2015 [https://www.youtube.com/watch?v=wf- BqAjZb8M](https://www.youtube.com/watch?v=wf-BqAjZb8M)

</comment><comment><USER3> Intermediate Python : [http://book.pythontips.com/en/latest/index.html](http://book.pythontips.com/en/latest/index.html)

It will tell you about those nice things and tricks, conventions that you should know/follow during some non-beginner project.

</comment><comment><USER4> Check out Real Python: [https://realpython.com](https://realpython.com).

The second half of the second course and the third course cover intermediate to advanced material.

(Note: I am the co-counder/author).</comment>


How I trolled myself out of Google and destroyed my affiliate business - <AUTHOR> http://sebastianjohnsson.com/successfully-trolled-google-destroyed-entire-affiliate-business/ Just a little story about what can happen when you decide to troll Google with a bunch of sites fronted with cute little animals in the Pay Day Loan-niche. <comment><USER2> Thank you for this inspiring story of how to make money while gunking up the Internet for the rest of us and creating absolutely nothing of value. Real Horatio Alger shit here.

<comment><USER3> The author spent several paragraphs on how it would have been better if he focused his efforts on building a high quality site instead. Did you read the article?

<comment><USER2> Yes, I read the article - did you understand it? He talked about building a better AFFILIATE service, which works by tilting nominally non-promotional Google results the way someone with money wants them to go.

Then he said, "don't hate the player, hate the game," in the grand tradition of self-justifying sleazebags everywhere. Then he talked about losing Diablo 2 characters like that's some kind of moment of personal growth.

</comment></comment></comment><comment><USER4> It seems that the lesson is, if you're going to be a spammer, use a separate IP for each site, use a separate ID for registering each domain, and make each site sufficiently distinct. Then, if Google decides to ban ALL your sites, they have a hard time figuring out which sites are actually yours.

That's the danger of shady SEO. It's an arms race between Google tweaking their search algorithm, and people looking to exploit flaws.

</comment><comment><USER5> the fact that this exists is not just anecdotal but speaks to the vastness of the internet and the sheer inability of google to effectively apply their own rules without human intervention

to say this is nothing less than to cry out, 'the emperor has no clothes!'

we've seen this before many times. it takes a competitor or at least someone equally knowledgeable about a niche to finger a spammer and then make a lot of noise so that hopefully, google takes notice and action

just a few months ago we saw the EXACT same thing with rapgenius

google wants everyone to suspend disbelief and join them in their imaginary universe where their algorithms are effective</comment>