What iPhone needs: Core Location Daemon - <AUTHOR> http://www.ideaexcursion.com/2009/03/11/what-iphone-needs-core-location-daemon/

<comment><USER2> Using the GPS would impact the battery life.

I can't say about the cell tower triangulation. Presumably the phone could send its list of nearby towers and has to keep that list updated anyway to stay connected, so that should be a minimal effect.

The next question is why only iPhones? Presumably the cell operating companies have the same information from their end of the connection and could make it available for any phone number on request without any impact on your battery life. Of course being phone companies it would cost $5/mo to keep 3 services informed and if you informed a 4th then it would be $0.25/update for a $1800 overage charge.</comment>


Without even knowing: the HN post I missed - <AUTHOR> http://majurojs.org/withoutevenknowing.html <comment><USER2> " _I clicked the link, but Hacker News is often blocked in the Marshall Islands, so I got a 404._ "

Is there reason for the blocking? Is it the government censoring content? Or is it simply an island nation has to ration its bandwidth?

I ask because Marshall Islands are in a free association with the United States (where the US provides services and protection). Preventing residents from reaching US websites really rubs me the wrong way.

Maybe I'm just reading too much into the word block when he really means unreachable. Marshall Islands are rated as Free under the Freedom of Press Report, but are unclassified by the OpenNet Initiative. <https://en.wikipedia.org/wiki/Censorship_by_country>

edit: I am sorry for my tangent based on a single line in your write up. It really jumped out at me and I hope you can expand on the situation.

You have a cool product and congratulations on the exposure. Good luck!

<comment><USER3> I've occasionally been at public wifi spots in the USA where HN is blocked, because on some 'safe internet' services, the site may be categorized as being related to illegal or controversial activities.

The HN name and occasional subject matter -- about censorship controversies, security breaches, and circumvention techniques -- contributes to this impression. Some paranoid law-and-order nothing-that-risks-the-children types will classify HN that way, and then choose to block all sites of that classification on certain public/free wifi services.

(IIRC, my experience may have been at a Whole Foods market in the US, which was subscribing to some classification lists via OpenDNS. This was years ago, though, and I reported it as a misclassification at the time.)

<comment><USER4> Yup. Sadly, we need to keep in mind that the word "hacker" still has negative connotations with the public at large (especially as regards security concerns). So it's a likely term to appear on very conservative blacklists.

</comment></comment></comment><comment><USER5> What is the reason you started this, as oppose to contribute to <http://ideditor.com/> or OpenStreetMaps?

If people actually spend time on your site, they would be wasting it, as your data will not carry over to OSM based datasets, unless you spend more time converting the data into usable format for OSM. In which case, they probably should have been using <http://www.openstreetmap.org/> to draw to begin with.

<comment><AUTHOR> I'm a contributor to OpenStreetMap, and last year I helped Code for America import thousands of buildings.

OSM is rightfully skeptical of uploads. Even when cities give specific permission to OSM, it's up to the community whether a large import is helpful or risks drowning out local mappers. If anything, this site would be helpful to download a subset of the city's buildings as KML and use JOSM to upload.

This site exists as a custom mapmaker. It's easier for a non-GIS user to get data out and make custom maps compared to OSM APIs and tiles.

<comment><USER6> It's interesting that you mention custom mapmaking. Google provides a similar service - creating a KML file hosted from a Google Spreadsheet. Here is the newest version: [http://www.google.com/earth/outreach/tutorials/spreadsheet.h...](http://www.google.com/earth/outreach/tutorials/spreadsheet.html)

I've recommended it to a non-technical family member (he's a realtor) and they were able to create and host their own kml-based maps within an hour's time. Note that it does not use polygon based building markers, but rather addresses (and coordinates), which are simpler for non-GIS people to use.

</comment></comment></comment><comment><USER7> The story regarding the Japanese volunteer sounds interesting. I hope we get to hear more about that.

<comment><USER8> I was hoping to see the same thing.

</comment></comment><comment><USER9> Can anyone give some insight into why HN would be blocked in the Marshall Islands?

<comment><USER10> Probably because someone has the power to block any website they feel like, same as every other country. There is very little reason needed and there may not even be one - I spent an hour the other week in Turkey trying to fix my ssl certificates on heroku before realizing their api had been blocked.

<comment><USER9> But why would the person in charge of blocking websites even bother to block HN?

<comment><USER10> Why does it matter what the reason is? There may not even be a reason and there definitely won't be one acceptable to anyone who uses the less-censored internet.

<http://en.wikipedia.org/wiki/Internet_censorship>

<http://en.wikipedia.org/wiki/Internet_censorship_by_country>

</comment></comment></comment></comment><comment><USER11> I've always had the impression that submissions on HN were done by the authors 99% of the time. It's funny to hear about it happening the other way around, and him not even knowing about it.

<comment><USER12> That's far, far from the case. I've submitted multiple articles by others that would end up on the frontpage.

I've also tweeted a few people to tell them "Oh hey, your project is going to get hammered by traffic due to this submission". I think I did the latter, when WordLens blew up on HN.

</comment></comment><comment><USER13> Glad to see this project get more attention...the good thing about HN and other submission sites is that you always have the opportunity to do an explanatory/reflective post, as you've done here.

One suggestion I have is to SEO the title page a little bit...that is, put the tagline ("Interactive maps with open buildings data") in the title tag so that your site is associated correctly with what it offers, rather than just "Majuro.js"

</comment><comment><USER14> Congrats on making the HN front page twice.

Very interesting being a developer when upload and download speeds are so limited. Paying 10 cents per megabyte sounds like you have to be very thoughtful about what you do.

I used 90GB from home last month, or a $9000 bill if I lived there. Ouch.

</comment><comment><USER15> Wow. Wouldn't it be great for us content providers if there was a service that would tell us when our content appears on HN? (hint. hint)

<comment><USER16> He was out of phone as well as Internet contact. Maybe HN should send homing pigeons when a link gets popular?

<comment><USER17> _Maybe HN should send homing pigeons when a link gets popular?_

Finally! The perfect application for RFC-1149[1]. And people said it was just an April Fool's Day joke!

[1]: <http://www.ietf.org/rfc/rfc1149.txt>

<comment><USER18> RFC 1149 has been implemented: <http://www.blug.linux.no/rfc1149/>

Ping times were rather atrocious.

<comment><USER19> Alternatively, the ping times were great considering that pigeons were the transport.</comment></comment></comment></comment></comment>


The Surveillance State Suffers a Surprise Legal Setback - <AUTHOR> http://www.theatlanticwire.com/politics/2013/06/eff-fisc-ruling/66185/

<comment><USER2> Great news. The opinion makes for interesting reading.</comment>


Andrew Parker: Spark Capital's Investment in Quantopian - <AUTHOR> http://thegongshow.tumblr.com/post/41280461513/quantopian

<comment><USER2> Forbes also had a pretty good article about quantopian today: [http://www.forbes.com/sites/tomiogeron/2013/01/23/quantopian...](http://www.forbes.com/sites/tomiogeron/2013/01/23/quantopian- brings-algorithmic-trading-to-masses/)</comment>


L.A. Gangs Seek Profit in Peace - <AUTHOR> http://online.wsj.com/article/SB126213528444809699.html

<comment><USER2> This has to be influenced by The Wire.

CSI teaches murders how to not get caught. The Wire shows how drugs can be run like a serious business.

In the show the top dealers from all the different neighbourhoods meet up in hotel conference rooms to organize deals and prevent turf wars.

<comment> brown9-2 _The Wire_ premiered in 2002, and the New Day Coop (what you refer to with the hotel conference rooms) really started around Seasons 2 and 3 (2003 and 2004).

So why did this idea take five years to reach the streets then?

I think this theory is a little too cute to be true.

<comment><USER2> If you want to get particular, I'll abide.

How do we know that it took five years for these gang collaborations to happen? Maybe it took 5 years for it to progress to them high-fiving and hugging in public.

My original point was that it may have helped the criminals become comfortable with the idea. Of course it didn't instantly end decades long feuds after an afternoon of watching season 3 of The Wire.

<comment><USER3> Plus, change take time, even I'd imagine in organisations such as gangs.

</comment></comment></comment></comment><comment><USER4> This reminds me simultaneously of Dr. Dre ("The Day the Niggaz Took Over" from The Chronic [1]) and a recent report stating that the average Afghan makes more money siding with the Taliban than they do with the U.S.-backed Karzai government [2].

[1] [http://www.google.com/search?client=safari&rls=en&q=...](http://www.google.com/search?client=safari&rls=en&q=dr.+dre+the+day+the+niggaz+took+over&ie=UTF-8&oe=UTF-8)

[2] [http://washingtonindependent.com/70114/we-pay-afghan- soldier...](http://washingtonindependent.com/70114/we-pay-afghan-soldiers- less-than-the-taliban-does)

</comment><comment><USER5> I wonder if this type of morphing from street gangs to smarter criminal business units the way the mafia started in Europe?

</comment><comment><USER6> Perhaps these street gangs have learned from their drug suppliers?

When drug cartel planes out of Colombia started getting shot down as a result of anti-drug operations, the cartels started pooling cocaine shipments together in airplanes as a means of sharing the risk amongst each other.

<comment><USER7> That doesn't sound like a great idea. If you're one of 10 cartels, it seems like your chances of being shot down are 1/10. (Not really, but let's just posit that the gov't can shoot down one plane a day.) If you pool everything together on one plane, suddenly your odds of making some deer and coyotes very jittery shoot up by 10.

<comment><USER6> Only a finite amount can be pooled on a plane though. So instead of possibly losing 100% of your shipment if you are one lone cartel flying your cocaine to the US and it is shot down, you can now only lose 10% of your shipment.

This could be one of many reasons why VCs team up and do deals together.

</comment></comment></comment><comment><USER8> I wonder if there is a criminal management consulting service that exists.

<comment><USER3> Or HR consulting?

</comment></comment><comment><USER7> So when can I expect to be able to stop by a Cosa Nostra franchise?</comment>


Town by town, local journalism is dying in plain sight - <AUTHOR> https://abcnews.go.com/Politics/wireStory/town-town-local-journalism-dying-plain-sight-61586430 <comment><AUTHOR> Because your apps and your phone know who you are and what is your home town, they deliver targeted ads. Who needs a local newspaper if Candy Crush delivers the ad for a local business? Your local newspaper competes with Candy Crush for ad revenues. All thanks to surveillance capitalism business model. As simple as that...</comment>


Virginia Covid-19 Tracing App - <AUTHOR> https://www.vdh.virginia.gov/covidwise/ <comment><USER2> "To help ensure these anonymous tokens can't be used to identify you or your location, they change every 10-20 minutes. ... On a daily basis, your phone downloads a list of all the anonymous tokens associated with positive COVID-19 cases and checks them against the list of anonymous tokens it has encountered in the last 14 days."

This page actually explains this pretty well for a non-tech-savvy audience.</comment>


Windows 7 multi-touch demo isn't enough to save Microsoft's OS - <AUTHOR> http://www.thestandard.com/news/2008/05/28/windows-7-multi-touch-wont-save-microsoft-vista Until Microsoft stops featuring resource hogging gimmicks, and starts giving its users real, compelling reasons to look forward to Windows 7, enthusiasm will continue to slide for an OS fast-tracked to save Microsoft from the last one. <comment><USER2> Okay, maybe it's not mindblowing, but Microsoft's OS doesn't need 'saving.'

<comment><AUTHOR> It does very much so in the sense that users are not viewing it as an upgrade worth using. Sure Microsoft is wining on the front where it is preinstalled on all new systems, but they haven't given anyone a compelling reason to get Vista, or 7 for that matter.</comment></comment>


Game Over We Have Obtained Fully Functional JTAG for Intel CSME via USB DCI - <AUTHOR> https://mobile.twitter.com/h0t_max/status/928269320064450560 <comment><USER2> Am I right in understanding that ALL Intel based computers are now a huge security risk?

It's really puzzling that Intel would risk the entire company to include features like this. Even if the NSA said "we demand it", surely this is possibly the end of Intel being a trustable computing platform?

The deeper question being, how can any cloud based program know that it is running on a computer safe from such snooping? Is there any possible way or do we just need to give up on that idea forever and assume that what runs on someone elses computer might be monitored and nothing can be done about it.

<comment><USER3> No. Apple, and perhaps other manufacturers, insist it not be there.

<comment><USER4> Are you saying that the only, readily available, modern x86_64 system without this crap (or AMD equivalent - _or_ Apple equivalent) is a mac?

Any sources for IME being completely disabled / not present on macs?

<comment><USER5> It's not disabled.

</comment></comment></comment></comment><comment><USER6> My experience with JTAG (and it's been a little while since I've used it) is that the device clock must be stopped before you can read the instrumented flip-flops. This is because they're serialized together, meaning you shift them out of the device one at a time using a special JTAG clock signal. You can use JTAG to essentially get a view of the device's state at the moment you stop the clock, but if you keep the clock running you get a trashed device state as you shift the flop values through the serialized chain. (You can also shift values back in and restart the clock, but this may or may not work depending on how many flops you can access via the JTAG chain.)

In other words, I'm not sure how you can use this to modify running devices without being able to stop the clock first. Is this something that JTAG supports now?

<comment><USER7> It's common to be able to run a remote debugger via JTAG, allowing the system to run normally, set breakpoints, examine memory, etc.

Even though it's run over the same wires, it's a separate protocol from the hardware JTAG probe you describe.

</comment></comment><comment><USER8> I expect a message from Intel that it was bad idea to place ME in the CPU and that in the future Intel would not do such things ... but that would be only a PR bullshit.

First thing Intel would do is to implement/create new ME-like thing, maybe on other arch like ARK before and hide it little more.

Then finally someone would find it anyway in a few years and let others know about it ...

"History does not repeat itself, but it rhymes."

</comment><comment><USER9> Found this older article informative as background :

[https://www.digitaltrends.com/computing/intel-kaby-lake- skyl...](https://www.digitaltrends.com/computing/intel-kaby-lake-skylake-pcs- hackable-usb-jtag/)

<comment><USER10> Because it took a while to find - here is the actual talk they are referring to : [https://media.ccc.de/v/33c3-8069-tapping_into_the_core](https://media.ccc.de/v/33c3-8069-tapping_into_the_core)

</comment></comment><comment><USER2> Can anyone explain what this means?

<comment><USER11> JTAG is used as a debug interface, so the implication is that full access to intels AMT (where minix3 is said to be running) has been achieved

<comment><USER2> Can you explain what _this_ means?

<comment><USER12> Full control over the Intel backdoor / remote administration engine that's on all their modern CPUs. (It may not be an intentional backdoor, but it's certainly looking as if it's been usable as one by intelligence agencies.)

<comment><USER2> OK so the implication being that with this thing found, someone could make a USB device that when plugged into an intel machine immediately gets control?

<comment><USER13> Reading [http://www2.lauterbach.com/pdf/dci_intel_user.pdf](http://www2.lauterbach.com/pdf/dci_intel_user.pdf), there are two ways to debug over that connector; one using the USB protocol and the other using a proprietary protocol. If this uses the latter, that device, technically, wouldn't have to be a USB device (but of course, it could still masquerade as one)

That PDF also says your BIOS must support this kind of debugging, and, for the 'OOB' protocol, your hardware must support it. So, your BIOS may be configurable to make this attack impossible, and your hardware may already be protected against it.

<comment><USER14> Then you simply have to replace the bios with one that has USB debugging enabled. Or change registers on a working machine

<comment><USER13> 'Simply' may mean entering, possibly cracking, the BIOS password (hm, are there BIOSes that use two-factor authentication?). It also means you can't simply plug in a USB device.

<comment><USER14> i mean to resolder the flash chip that holds it

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> I hope somebody dumps all the code from CSME and reverse engineers it to a higher level language next. I'm sure few more surprises can be expected to be found.

</comment><comment><USER16> A single screenshot with no accompanying explanation? Is there a clearer indicaton of contempt for the readers?

<comment><USER17> It's a very common way for such "hacking" events. Finally getting through PlayStation X, iPhone Y or whatever security is often shown through a screen shot like this. Proper explanation and details come later.

</comment></comment><comment><USER18> Regarding Intel ME/AMT: how does it work when the computer is powered off? On a wired network, I imagine some system which stores the nearest switch's port connected to that machine, and you could send some sort of signal which powers things up. But even that seems, impossible? I guess it's not unlike hitting the power button; you're just sending an electrical signal to the computer which makes it start. The path of that signal is unimportant.

<comment><USER19> Regardless of AMT there is standard protocol to remotely wake computers over ethernet (since mid-90's or so). NIC that supports it can be powered from 5Vsb and in that mode listens for specially formatted ethernet frame (format is somewhat configurable, but by default it consists of several repetitions of NIC's MAC in payload, actual destination MAC is unimportant as long as the frame passes through configured receive filters) which causes it to pull down wire going into motherboard's power management logic (and thus causing the same thing as pressing power button). This usually has to be enabled by BIOS and thus does not work in S0 (as is the case for almost all wakeup sources except physical power button, which is usually wired such that it unconditionally shorts PSU's PS_ON wire to ground and does not need any software configuration to cause wakeup). Probably all onboard NICs support this and for PCI cards this requires additional cable between NIC and motherboard, PCIe includes required wires as pins B10 and B11 (with 3.3V instead of 5V and with active detection that inserted card is actually capable of generating wakeup events).

If I correctly understand how AMT works then it implements it's own mechanism with similar purpose inside ME firmware, which with AMT enabled remains active even in S5.

</comment></comment><comment><USER20> If anyone is interested, there is an article about this in russian (Google- translated): [https://translate.google.com/translate?sl=ru&tl=en&js=y&prev...](https://translate.google.com/translate?sl=ru&tl=en&js=y&prev=_t&hl=ru&ie=UTF-8&u=https%3A%2F%2Fm.habrahabr.ru%2Fcompany%2Fpt%2Fblog%2F341946%2F&edit- text=)

The article doesn't have many details though.

</comment><comment><USER21> blog post with more details from the tweet's author: [http://blog.ptsecurity.com/2017/10/how-to-obtaining-full- sys...](http://blog.ptsecurity.com/2017/10/how-to-obtaining-full-system- access-via.html)

</comment><comment><USER22> This should be good for the TalosII workstation orders: [https://secure.raptorcs.com/content/TL2WK2/purchase.html](https://secure.raptorcs.com/content/TL2WK2/purchase.html)

</comment><comment><USER23> I wonder if it'll work over WebUSB...

<comment><USER24> No, that's the host side of the equation, and I don't think WebUSB will ever do Gadget emulation.

I can see use-cases for it, but good luck convincing the W3C.

</comment></comment><comment><USER25> Worse than rooting the computer. A JTAG debugger has chipset-level access to a system. Likely that nothing is detected in the operating system.

Intel has put CSME and DCI in all (?) their chips since 2015. Skylake was announced in 2014, launched in 2015.

</comment><comment><USER26> Good. Maybe results like this will increase the pressure on Intel to make this garbage disableable.

</comment><comment><USER27> which acces does it have? is it a tty to minix with root login? or did intel at least protected it for whichever is the agency that requested that with a "zero day" local privileged escalation? ;)

<comment><USER28> We see full read access to the hidden and protected 0xf008 pages, so you can dump the kernel and all running minix processes. The kernel is not interesting, but the processes are.</comment></comment>


Oracle Reveals Funding of Dark Money Group Fighting Big Tech - <AUTHOR> https://www.bloomberg.com/news/articles/2020-02-25/oracle-reveals-it-s-funding-dark-money-group-fighting-big-tech <comment><USER2> This headline is not really genuine. The group is definitely fighting big tech, but purely for the benefit of Oracle. They aren't fighting for users, but simply against Google and Amazon, who are Oracle's biggest competitors.

Having worked at Oracle, the hatred for Google is very deep. We worked with G only when we had easy money to make, and they did the same. We would get in trouble for using any G product, and could only use G sheets/docs if a client had created it themselves and sent it to us.

<comment><USER3> To be fair, using gsuite is only for hn hipsters. Anybody reasonable uses MS office. And please don't even tell me Google is open. There is no company on Earth which has more lockdown than Google.

When I was an intern at Microsoft in 2008 summers, they already had fully functional web based office which was a decade ahead of what was at Google at that time. Google is good only at pr and that's what they use their oss and surrounding efforts for

<comment><USER4> Not sure why you got downvoted so much, however I agree with the notion that entire Gsuite is a toy for kids to play. Try doing something similar and immediately start looking around thinking: where's my Excel?

<comment><USER5> Depends on what you are doing right? Most people use spreadsheets for lists and simple sum() type of things; sheets works fine for that and is convenient. Same for the other gsuite stuff.

Those sweeping statements never work; hordes of young people or 'new computer users' (people in poorer countries who can now afford tablets and low end laptops etc) never touched MS Office and won't be thinking 'where is my Excel?' only for that reason and just complete their work in sheets.

These are often people doing production work and not kids who are playing.

<comment><USER6> Depends I have seen young supposedly "digital natives" use lesser tools like the google tools and create a complete Charlie Foxtrots

Normally they have zero idea about professional project work the concept of a version controlled document is something they have never heard off

And we are talking Major Brands and Major agencies here

<comment><USER7> Google Docs solves the 95% case of version-control simply by bringing everyone to the head of master at all times.

<comment><USER8> And further 3% by having a linear revision history. With some luck it will even render diffs correctly.

Disclaimer: I work at Google and hate docs. But acknowledge the thing works ok for its intended user.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> "And that is called paying the Dane-geld;

But we've proved it again and again,

That if once you have paid him the Dane-geld

You never get rid of the Dane."

[https://www.poetryloverspage.com/poets/kipling/dane_geld.htm...](https://www.poetryloverspage.com/poets/kipling/dane_geld.html)

Kipling may need a Warhol overhaul; it seems these days that everybody gets to be the monastery for 15 minutes just to see if they are well-architected.

</comment><comment><USER10> My opinion is that this type of "dark financing" is more common than many might suspect.

I believe this tactic, used by some tech companies to attack competitors, is fairly effective. I imagine it is mostly employed by those like Oracle that aren't winning in the market.

<comment><USER11> I am not a fan but I wouldn't call Oracle "not winning". It has been a very profitable company for a very long time. I am not so sure if the current star companies will last that long.

<comment><USER12> I mean, sure, but looking at the last five years they are getting destroyed by clouds. Amazon, Google, and long-time nemesis Microsoft are all dramatically outperforming Oracle. Nobody wants Oracle's cloud products. The companies that are doing worse than Oracle are other dinosaurs like IBM and Dell. Even VMWare is beating them.

<comment><USER13> VMWare is majority owned by Dell.

</comment></comment></comment></comment><comment><USER14> [https://archive.md/iiz0s](https://archive.md/iiz0s)

</comment><comment><USER15> "Oracle donated between $25,000 and $99,999 last year to the internet project..."

The upper bound is barely enough for two modest full time salaries? This is not much money. I wonder how much the project gets altogether, ie what proportion this is of the total income.

<comment><USER16> I doubt that this is the only such surrogate they are funding but you're right that this amount is pretty de minimus.

</comment></comment><comment><USER17> Oracle, always on the dark side. Who would have guessed...</comment>


Business Development Tricks & Traps Revealed by Chris Fralic - FRC - Philly Talk - <AUTHOR> https://www.ticketleap.com/member/event.aspx?event_id=BBB90013-F6AF-40AE-ADF8-74ADAAAAA8C

<comment><USER2> live stream anywhere?</comment>


Ask HN: Unknown or expired link. - <AUTHOR>

I cannot tell you how many times on this forum I've been browsing the threads only to suddenly get this error page/message:
"Unknown or expired link."
It would seem to "make sense" (from my way of thinking, especially on a tech-savvy forum like this) to automatically redirect the visitor to the new posts rather than showing them this error ... or at least put a link on the error page that gives visitors the proper URL to click after the error message:
Unknown or expired link. <a href=http://news.ycombinator.com>Click here for the newest threads/posts</a>. <comment><USER2> I only get that when submitting comments to threads after a period of time has passed between starting the comment and submitting. The answer for me is simply to reload the page.

Thus it would seem that instead of a simple link to the news home it should bump me back to a reload of the previous page?

<comment><AUTHOR> I seldom post, but I browse threads slowly, and I get the error page whenever I've waited too long to click the "more" link at the bottom of the page.

It seems that each time I click the "new" link it resets a cookie (or posts a hidden form field, I haven't checked which) that identifies the time of that click. Then when this time expires I get the error upon my next click of the "more" link.

I cannot just reload the page in this situation because the page being displayed is the error page, so I have to manually strip off the characters that appear in the URL after "<http://news.ycombinator.com/> ... and when I do this I get the same new page as if I had clicked the "new" link. This is why I suggested providing a clickable "new" link on the error page.</comment></comment>


Sorry silicon valley liberals, freedom of thought is too important to mess with - <AUTHOR> https://hacked.com/sorry-silicon-valley-liberals-freedom-of-thought-is-too-important-to-mess-with/ <comment><USER2> Old topic; but the short response is no, this isn't a "freedom of thought" issue.

xkcd says it best: [https://xkcd.com/1357/](https://xkcd.com/1357/)

<comment><USER3> Nobody's mentioning the 1st Amendment here. People are arguing principle, not law. You should let people speak their mind, no matter how offensive it is, or how much you disagree with what's said, you still should be capable of listening and being able to criticise the content of the speech, not the speaker.

As a side note, it's easy to argue that the xkcd comic is false, since banning a person from a public forum, effectively takes the person's ability to speak. If somebody doesn't want to listen, they don't have to, but taking someone's right to communicate their ideas is cowardly and uncivilised.

<comment><USER2> No one has said Thiel shouldn't be able to speak his mind.

It's the fact that YC and FB continue to, implicitly, "host" his message that Ellen Pao and others have called into question.</comment></comment></comment>


OVH – there is a problem - <AUTHOR> http://ovh.com/ <comment><AUTHOR> [http://ovh.com/](http://ovh.com/) \- showing error [https://www.ovh.co.uk/community/status/](https://www.ovh.co.uk/community/status/) \- also showing error

Isn't the point of a status page so that you can give updates even when experiencing issues?

[http://downdetector.co.uk/problems/ovh](http://downdetector.co.uk/problems/ovh)</comment>


Hackers claim Fox News' Twitter account, report fake Obama shooting - <AUTHOR> http://thenextweb.com/media/2011/07/04/hackers-claim-fox-news-twitter-account-report-fake-obama-shooting/

<comment><USER2> Tweeting the the President of the United States has been shot isn't lighthearted mischievousness. I don't know if they thought this would make Fox News look bad or themselves look clever, but it doesn't do either. All it does is make the Script Kiddies look immature, which I guess makes their name tautological, but I do hope they grow up to be better people than this.

</comment><comment><USER3> It's really not pretty.

As much as I find Fox News getting hacked funny, I find claiming an assassination not funny.

<comment><USER4> It's kind of a weird tweet to make, perhaps they wanted to see the rejoicers come out of the woodworks? I agree the assassination claim isn't very funny, there are way more hilarious things they could have done.

<comment><USER3> I think it's a misguided attempt at being funny / shocking which you find funny when you're doing it (just because the act of posting to a Fox twitter account is funny) but isn't.

I agree though, there are loads of things that might have been funny they could have gone with announce Rupert Murdoch is endorsing Palin or that Bachmann has come out for gay marriage.

There are plenty of things which aren't offensive and might actually linger as rumours or stories a bit longer than something where people have an obvious reason to rapidly falsify it.

</comment></comment></comment><comment><USER5> <https://twitter.com/#!/foxnewspolitics>

<comment><USER6> Looking at their at replies is really much more interesting. But unfortunately <http://realtime.google.com> seems to have been rejiggered and links to a 404 now :(

</comment></comment><comment><USER7> I hope they covered their tracks very well, because the Secret Service really does not have a sense of humour about that sort of thing.

<comment><USER8> See [http://en.wikipedia.org/wiki/Threatening_the_President_of_th...](http://en.wikipedia.org/wiki/Threatening_the_President_of_the_United_States).

I don't know that this quite falls under the same category, but it certainly doesn't seem like a good idea.

</comment></comment><comment><USER9> The one thing that continues to surprise me is that this still hasn't been removed!

</comment><comment><USER10> So, what's the motivation behind something like this? Are there really people who believe this is funny, let alone cool (the twitter bragging is a bit amateur)? I'm not a fan of Fox News either, but this is not how you handle your distaste for someone. Did enjoy that they misspelled imminent as 'imitate.' Can't wait to read the follow-up where these guys get busted.

</comment><comment><USER11> Wouldn't it be awesome if one of these days these kinds of hackers actually did something that improved the world?

</comment><comment><USER12> Not cool. Shame on them.

</comment><comment><USER13> Such opportunity for subtle funny trolling and they did this instead. Maybe someday the person behind @PeanutFreeMom will hack Fox News. Until then, we can only dream.

</comment><comment><USER14> Even if he were killed, it would be impossible to prove to that audience.

<comment><USER15> That sort of comment really isn't necessary. Rise above that.</comment></comment>


Ask HN: How come NH, MI, and AZ haven't been "called" yet? - <AUTHOR> I keep checking the outcome on various sites and no one is updating NH, MI, and AZ to being called. Why? <comment><AUTHOR> And this is why I was inquiring!

[http://www.newsweek.com/donald-trump-hillary-clinton- electio...](http://www.newsweek.com/donald-trump-hillary-clinton-election- tie-519696?rx=us)</comment>


Show HN: A better way to browse Amazon's interesting finds. Need some feedback - <AUTHOR> https://hifinds.com/?h <comment><AUTHOR> Amazon has a curated list of products called "Amazon interesting finds".

I find it very useful but it has some shortcomings like: no search, no filtering of prices, and no sort order. So I decided to make a tool to have a better browsing experience.

I used Node, MongoDB and GraphQL on the backend and React on the frontend.

This is my first "big" project on the web so I'm looking for any type of feedback really. Thanks.

<comment><USER2> At a high level of abstraction, 0\. It is great that you built something to scratch your own itch. It looks like a nice piece of work, with the caveat that I try to keep my Amazon shopping to a minimum and almost always have something specific in mind so I'm probably not in the target demographic.

1\. Hifinds takes a dependency on Amazon. Users who depend on it may experience problems whenever Amazon changes its implementation details or policies in ways that differ from the assumptions underpinning Hifinds' implementation (the analogy is Apple's app store and API's).

2\. If the project is successful, Amazon can implement their own version and integrate it into their platform.

3\. As a learning exercise, it might be useful to more closely integrate it into the Amazon stack in terms of database, compute, and infrastructure technologies.

Good luck.

<comment><AUTHOR> Thanks for the feedback.

I agree, I've considered how easy would be for Amazon to implement something like sorting and search, and of course their implementation would be better than mine.

I'm thinking of more closely integrating with them adding a cart feature (via their API) so that users can add products on my site and have them ready on their cart on Amazon, I think that could add some more value to the project.</comment></comment></comment>


How to Write a Self-Documenting API - Heyzap API release - <AUTHOR> http://stdout.heyzap.com/2012/03/07/how-to-write-a-self-documenting-api/

<comment><USER2> I like the trick of placing something meaningful at the api root url, will use that in the future.

      "You of course need a JSON viewer plugin to do this."

Why not emit your JSON slightly prettier from the server side? [http://stackoverflow.com/questions/86653/how-can-i-pretty- fo...](http://stackoverflow.com/questions/86653/how-can-i-pretty-format-my- json-output-in-ruby-on-rails)

<comment><USER3> Maybe because of the overhead on rendering time and extra bytes.

On a couple thousand requests the latency is not so noticeable. But on the long run maybe the API user should have a plugin on the client side to do that kind of beautification.

<comment><USER4> Not necessarily. You would only render the prettified version when the client has an Accept header that shows more capabilities than application/json.

Which, by the way leads to my single complaint with this API: it only renders JSON.

To call it truly "self-documenting", I should just browse to <http://www.heyzap.com/api/v1/> (ok, second complaint: the "v1" also belongs in a header, not the URI) and get an HTML page describing the resource, and links to the other endpoints. Bonus points if this HTML allows me to run the queries with overridden parameters.

<comment><USER3> You have a point with the rendering option from the accept header...

About the v1 versioning in the URL, I understand your suggestion. But I see that little characteristic as a "no developer left behind" program for developers with less experience.

Also the format as an extension for your resource serves the same purpose

</comment></comment></comment></comment><comment><USER5> For those who haven't seen it, the awesome django-rest-framework has built in support for browsable, self-documenting, HATEOS APIs.

Here's a browsable example API: <http://rest.ep.io/>

Because your browser provides Accept: text/html by default you get back a nice html page describing the result for the API root. If you send Accept: text/json (click "json" at the bottom) you get back a json response.

You can follow the links in the html response to get to other parts of the API. You can also click "OPTIONS" to send an OPTION request to get a description of what you can send to that endpoint.

<http://django-rest-framework.org/>

<comment><USER6> How well does django-rest-framework do with nested (foreignkey) resources? I recently chose Tastypie for a project for that reason alone, but never ran across django-rest-framework to have considered it.

Looking at the django-rest-framework API examples, that's one thing I don't see, but is (at least for me) fairly critical.

<comment><USER5> It handles them fully. I haven't played with the many to many support, but from having looked through the code it fully supports getting/setting many to many relationships.

One thing that does seem to be a bit lacking is the documentation. I've used all three django frameworks though (piston, tastypie and django-rest- framework) and django-rest-framework wins in my book.

<comment><USER7> Can you get any of those three frameworks to expose arbitrary views? One of my biggest complaints with all of them is that they seem to only expose objects.

<comment><USER5> When you say objects I assume you mean model objects? In that case yes. I haven't used Piston or Tastypie in awhile, but I know that you can easily write views in django-rest-framework that aren't tied to models.

This is a bullet from the django-rest-framework page I linked above: "Modular architecture - MixIn classes can be used without requiring the Resource or ModelResource classes."

Here's one of the examples from django-rest-framework that is not tied to models: [http://django-rest- framework.readthedocs.org/en/latest/examp...](http://django-rest- framework.readthedocs.org/en/latest/examples/pygments.html)

And also, from the Tastypie docs: [http://django- tastypie.readthedocs.org/en/latest/resources.h...](http://django- tastypie.readthedocs.org/en/latest/resources.html#why-resource-vs- modelresource)

<comment><USER7> I read through both of those links and I think I wasn't clear with my initial question.

I want to expose arbitrary view methods to GET calls, not linked to any model, and not have to write a new class for every view I want to expose. Basically I want views to return the correct filetype (json, html, xml, etc) when requested. This is basically making django a little more rails-like. I'm leaning towards django-dynamicresponse currently.

I really like how the three you mentioned tie into Django's forms though, and that's quite a feature to give up.

<comment><USER4> Yes, you can get djangorestframework to be used without being tied to any model, or even without tying it to a resource. In its current incarnation, djangorestframework just follows the principle from generic class-based views.

You just define a view that inherits from djangorestframework.views.View, and implement the action methods (get/post/put/delete) that you want. These methods must return a dictionary, and the framework handles the part of dispatch and render the view in the proper format.

<comment><USER7> That was a really helpful answer, thanks! I'll be taking another look at djangorestframework; hopefully I didn't miss anything else.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> They are talking specifically, it seems, about RESTful and related API's, but self-documenting API's IMO should be present at other levels of an application too.

I would take it further and say that truly self-documenting API's should be discoverable by software as well as individuals. This is something we have worked on hard at LedgerSMB, doing so with stored procedures even (see [http://ledgersmbdev.blogspot.com/2011/10/introduction-to- sod...](http://ledgersmbdev.blogspot.com/2011/10/introduction-to-soda.html) for more info).

Anywhere there is a connection between software, this can be a good approach. Why limit it to the web?

</comment><comment><USER9> When I saw the /v1 prefix I was reminded of one of Steve Klabnik's blog posts[1], where he gives an alternative, arguably more RESTful approach to versioning an API.

[1]: [http://blog.steveklabnik.com/posts/2011-07-03-nobody- underst...](http://blog.steveklabnik.com/posts/2011-07-03-nobody-understands- rest-or-http#i_want_my_api_to_be_versioned)

<comment><AUTHOR> Hey, I addressed this point in the blog post. I disagreed with that because a) its not self-documenting. b) On v2 the exact same URLs will have completely different data and probably break every API consumer.

<comment><USER10> Accept header based versioning is self-documenting. I've worked on implementing support for this in tastypie: <https://github.com/toastdriven/django-tastypie/pull/394>

It's like this:

\--> GET /api/ Accept: application/json

<\-- Content-type: application/vnd.api.v1+json <stuff>

Then your consumers can know what version of the API they're interacting with and act accordingly.

<comment><AUTHOR> Without reading the docs at quite depth I think it would be easy to overlook the response content-type

<comment><USER11> What about the ability to look at API responses in a browser? You can't normally change the request headers a browser sends without some type of plugin.

Including the version number in the URL gets around this and even allows you to test API responses in mobile browsers if needed.

Although I tend to agree that a header-based approach is cleaner and more in the spirit of REST and even HTTP.

</comment></comment></comment></comment></comment><comment> johnx123-up Why not Swagger?</comment>


Things I Despised About My Education - <AUTHOR> http://www.nabeelqu.com/blog/things-i-despised-about-my-education <comment><USER2> Another "If education had been more customized to me, education would be better for everyone" lament. Know what, Nabeel? Few people are like you. Most people aren't tinkerers. Lots of people aren't curious, and many people respond to freeform environments with indecision and frustration that's self- defeating. That's not to say that Nabeel is a special flower and everyone else is a drone, it's to say that everyone is different--I mean, really different, in a way that any education system is going to struggle with.

Want to revolutionize education? Figure out a way to 1) reliably detect the optimum education environment for each student, and 2) give it to them. Some kids really do want, and thrive in, extremely structured, rote learning environments. Some kids really do want, and succeed best in, environments geared for professional advancement. And others want self-directed learning.

The education system failing one student doesn't mean its failing all students.

<comment><USER3> I don't see how pointless memorization is helpful to anyone though.

<comment><USER2> I learned the multiplication tables by memorization. Would I have been better served by having numbers explained to me, and then a guided, self-learning experience where I figured out the theory of multiplication myself?

<comment><USER4> Even if you had achieved that, you would memorize the multiplication tables eventually!

<comment><USER5> In many public schools, "oh you'll have a calculator for that!" is the common response. You don't need to memorize them, so many kids won't. But if you want to be good at foiling later on, you need to know them in your head automatically. Refusing to require some degree of memorization is setting kids up for flunking out of math later, and most tickets out of poverty these days require a college degree with heavy math coursework.

</comment></comment></comment></comment></comment><comment><USER6> _the bad habits that school somehow implanted in me_

School might be a mechanism, but I doubt that's the driving force. Losing a sense of curiosity and play is an ancient phenomenon that predates modern education. _When I became a man, I put away childish things_ was written 10^3 years ago.

If schools are doing X, Y, and Z and students are losing curiosity, stopping X Y and Z might not do any good unless it's part of a broader cultural problem. More importantly, the question of whether schools are the best place to prod cultural forces remains open. If we do decide to curate curiosity in schools, it might be beneficial to understand why curiosity is dying in the first place.

I'm curious if anyone has any insight into what these forces might be and why they're so universal. Unless losing your sense of wonder is a relatively recent transformation, why did humans evolve in such a way that wonder isn't conserved across development?

<comment><USER7> "I'm curious if anyone has any insight into what these forces might be and why they're so universal."

The force that can causes a loss of a sense of wonder is survival. People do not just learn for the sake of learning. They learn because they are a part of a complex system that requires knowledge to survive. At some point, the cost of failure is no longer worth the utility of eventual success. Lots of people quit their jobs to try something new, lose all their money, and file for bankruptcy. If they had simple stuck to what they know, they would be in a better position. Satisfying curiosity is not free in terms of time, money, or happiness.

<comment><USER8> Being in a better position financially often does not equate to more happiness. This is one thing about the human spirit that cannot be quantified.

<comment><USER9> Research says otherwise.

 _Recent research has begun to distinguish two aspects of subjective well- being. Emotional well-being refers to the emotional quality of an individual's everyday experience—the frequency and intensity of experiences of joy, stress, sadness, anger, and affection that make one's life pleasant or unpleasant. Life evaluation refers to the thoughts that people have about their life when they think about it. We raise the question of whether money buys happiness, separately for these two aspects of well-being. We report an analysis of more than 450,000 responses to the Gallup-Healthways Well-Being Index, a daily survey of 1,000 US residents conducted by the Gallup Organization. We find that emotional well-being (measured by questions about emotional experiences yesterday) and life evaluation (measured by Cantril's Self-Anchoring Scale) have different correlates. Income and education are more closely related to life evaluation, but health, care giving, loneliness, and smoking are relatively stronger predictors of daily emotions. When plotted against log income, life evaluation rises steadily. Emotional well-being also rises with log income, but there is no further progress beyond an annual income of ~$75,000. Low income exacerbates the emotional pain associated with such misfortunes as divorce, ill health, and being alone. We conclude that high income buys life satisfaction but not happiness, and that low income is associated both with low life evaluation and low emotional well-being._

<http://www.pnas.org/content/107/38/16489>

</comment></comment></comment></comment><comment><USER10> 1\. Getting punished for being smarter than some teachers. It doesn't have to happen often to really really sour things.

2\. Being fed a lot of crap by rote, with critical thinking only allowed in the sharp boundaries of the expected outcome for the curriculum.

3\. The absolute unfairness and dictator-like behaviour of so many teachers, the mediocre characters, the lame-ass half-knowledge and pseudo-funny anecdotes they poured on the kids in between the lessons and oogling the girls. The lack of bodily hygiene of many.

Yes, there were good teachers too, but they had the chances of a snowball in hell. For me school was mostly a nightmare, I hated it, I ran away from it. Now I hate the fact that everybody automatically assumes I have degrees and whatnot because I'm smart. Fuck education, encourage curiosity... or it'll just be another brick in the wall.

<comment><USER11> > 1\. Getting punished for being smarter than some teachers. It doesn't have > to happen often to really really sour things.

I have witnessed teachers putting down bright kids hundreds of times.

They often cloak it in concern.

A lot of people interpret a smarter person than themselves as a cognitive insult, and will automatically try to bring the person they feel is smarter than them down a peg or two.

This crab mentality is so prevalent, and gifted children feel things so acutely that I would encourage any gifted adolescent to drop out as soon as possible, get a GED and get on with their lives.

They will be 7-8 years ahead of their peers at 23.

A gifted child we be smarter than most of their teachers at all but the best institutions. Their time would be better spent reading books and learning from the eminent experts in their fields than some hack with a teaching certificate.

Living in a place like NYC can replace the social aspect of the college experience just fine.

There is no excuse for tormenting a gifted child with the ordinary school system. It is designed to produce the mid-level workers capitalism needs for it's factories and offices, it is not designed to imbue the best education possible on young minds.

</comment></comment><comment><USER12> Feynman's key point is that learning rote means you can't invent new things. Its not knowledge, its not progress.

The article mostly looks at it from a 'its boring' angle instead. Which is not nearly as damning.

<comment><USER13> By and large we don't need average kids to be able to invent knew things. Heck, even above average kids don't need to invent knew things. Most engineers working at Boeing couldn't invent new things, but they do a perfectly fine job of plugging in the numbers into the right equations and keeping the aircraft rolling out.

<comment><USER14> Note, I don't mean to be in any way negative towards you in any way at all, at all.

However, one could equally as well argue that we don't need average people to be able to read or do maths. They can learn it all from videos on Youtube et al anyway, right?

More seriously, the notion that most people can't produce wonderful things is the single most pernicious lie of our times. Everyone is born with more than enough potential to do great things, and the job of society is to give them the tools and encouragement they need to do this.

So, don't sell the species short. We may not _need_ everyone to create new things, but hell, it couldn't hurt, right?

<comment><USER13> We have an economy that is structured such that we need average people to be able to read and do basic arithmetic. We do not have an economy that requires them to do more than that. Indeed, I'd argue that we have over-educated the average person--too many people with college educations working basically the same jobs they could have gotten 50 years ago with just a high school education.

<comment><USER14> Firstly, apologies for the ridiculously late reply.

Secondly, so what? The particular structure of our economy is no reason to constrain our abilities as a species. I would argue that we have crippled, half educated college graduates doing pointless work across the WEIRD (google the acronym) world, and that this is bad.

My argument is not that we have educated the "average person" (presumably you're not one) too much, but rather that we have educated them too little. Just enough to believe that they know enough, but not enough that they actually reflect upon their existence.

</comment></comment></comment></comment></comment><comment><AUTHOR> "My education taught me to value getting the right answer. (It also taught me to value prestige, prizes, etc.) So I worked hard at memorizing things, and anytime I wasn't sure I'd get the right answer the first time, I'd be scared to try, in case I failed or made myself look stupid."

Here's where the above really starts to hurt: during high school, I got away with avoiding failure because everything is set up for you to 'succeed'. As soon as I went to University the opportunities for failure increased by an order of magnitude and at the same time there was nothing and no-one there to assure you that this is OK and part of the process of learning. The spiral of self-doubt, depression and fear that this created almost completely ruined my academic career.

I got lucky and it all worked out such that I am now a software developer who knows failure and experimentation (on almost any scale) are part and parcel of getting better at what you do, and the impact of this knowledge on one's emotional well-being is immense. It's what I would tell my 18-year-old self if I had the chance.

<comment><USER15> You were lucky at least to find a better place in college. Although not all classes I took was as bad as high school, unfortunately I just graduated memorizing my way out of college most of the time. The idea and the gist of the subject was always elusive, there was no connectedness with anything else. There was no exploration however the workload was enormous, we were taking 5-6 college level math classes per term. Quantity ruled over quality.

</comment></comment><comment><USER16> Great article. Unfortunately the vast majority of the so-called education to which people around the world are exposed is not education, it's merely schooling. For those interested in the difference I suggest reading John Taylor Gatto's books. Also most important is to reflect on your own experiences of education vs. schooling. I myself have found that the two are absolutely antithetical.

"The Underground History of American Education" available free online: <http://mhkeehn.tripod.com/ughoae.pdf>

Radio piece w/ JTG on YouTube: <http://www.youtube.com/watch?v=ZKci3_cmlqI>

</comment><comment><USER17> This is something I've always observed. But to be fair, there are many different types of pupils, especially on a high school. If you were to explain things in a way, that they actually _mean_ something, some of your students would do really well, while the rest is unable to grasp the essence. Nowadays schools teach in a way that works for all: Just give recipes, and hope that a few students will motivate themselves to actually _understand_ what they're doing. Or, let them do it for so long, that they get the idea the better, the more often they apply the recipe.

In my case I was one of the lucky few who actually understood derivations after the first class. At home, I thought about half an hour about it, and was able to tell the next "recipe" on the lesson plan. (Side note: Students get rewarded for memorizing algorithms, not understanding them. So even people who are "good in maths" are - even in college - not always good at understanding them.)

Now in university I'm still a bit disappointed. This could be because of my engineering course. We're still just being taught how to do what, but not in a descriptive way. This became extremely bad at differential equations. We weren't even told what differential equations are, and when you use them. It was a mere "you have this, then you have to do that". It seemed very difficult to me, but many other students had no problems. They told me because "it's just: you have this, then you do that".

</comment><comment><USER18> "Trying to get answers before fully considering the problem." "Being uncomfortable with not knowing."

These two things seem totally at odds to me and it's something I struggle with constantly. How do you ever know if you've considered the problem enough? If you come to a problem you cant solve and go to someone for help there's always a chance that person will ridicule you and put you down, destroying your motivation, because you didn't "fully consider the problem" in his eyes.

<comment><USER19> If you goto someone else for help and they ridicule you, that person is wasting your time, and you should ignore them. If the person won't help, or at least give you _constructive_ criticism, then ignore them.

It doesn't matter if you didn't fully consider the problem, it matters if the other person will help you. And sometimes, if the other person doesn't know either, he can at least make himself feel good by making you feel bad. Don't let him.

</comment></comment><comment><USER20> _"That's what I hated about school - it felt like such a waste of time, learning stuff that I was probably going to forget."_

Some people go to gyms, where they exert themselves pointlessly - they're not drawing water, generating electricity, or moving materials uphill.

They seem to think that the process somehow improves _them_. Modern medicine apparently agrees with them.

If that is not the case with whatever exercises are done in school, perhaps we could get better proof than _"it felt"_.

</comment><comment><USER21> I can also relate, studying for my A-Levels (AS) this year. The biggest part of the problem is that everything is too academical, I'm trying to not take into account the fact that I can learn a lot without the rigid structure of school. Mathematics only teach you how to solve problems, it does not in any way encompass the other parts of mathematics which are important (e.g. how do you model a problem). Sciences are stuck in the 80's (I've been studying Physics with a text book that is way older than me). Why cant we talk a bit about the 'cool' new stuff in class (mentioning things such as quad-copters, 3d printers and cryptography would certainly get a lot of kids interested). I can't relate to the more language based subjects but I hear that it is problematic too.

Finally, I'm also preparing for the SAT, and that, that is a horrible test. It tests you're ability to adapt to a new system/test, I really don't see how it is a good indicator for college applications. It is awful on so many levels and yet it remains the primary test for college admission in the US.

</comment><comment><USER22> Public education in modern capitalist society is a step up over what we had before. When capitalism first emerged in England there were no child labor laws so millions of children were denied an education and put into working in slave like conditions in factories with minimal if any safety equipment.

Capitalism is based upon uneven and unequal development so much of the global population is still denied an education and even a basic level of literacy. Those people would love to have any education at all to complain about in the first place.

I feel it is important to put this person's complaints into the context. Nonetheless, I will be the last person in the world to actually defend the education system in first world because it is just based on turning the first world citizens into obedient service sector workers and consumers of products mainly produced in China and extracted from the third world.

> _Our system should be producing more adults with this same fearlessness, who > go after what they really want from the start in rational, systematic ways. > Right now, we tend to produce 'answer-centred' people who are terrified of > doing things wrong._

Capitalism is not based upon letting people go after what they really want. Capitalism is based upon having a class of people (the proletariat) who are alienated from their own work and for whom doing things wrong means getting fired.

> _We need to find a better way to teach children, one that doesn't kill their > innate sense of curiosity and play._

We need a system that teaches children to be alienated from the things around them, their productive activities, their own lives, and their peers. This is demanded by the capitalist mode of production itself and there is no way of getting around this without revolutionizing society.

</comment><comment><USER23> An interesting essay by Nabeel Qureshi, opening up with a great example from Richard Feynman and then showing the development of the author's own thinking on how to learn. The author writes, "My education taught me to value getting the right answer. (It also taught me to value prestige, prizes, etc.)" And of course many people receive an education like that.

Qureshi credits John Holt's book _How Children Fail_

[http://www.amazon.com/Children-Fail-Classics-Child- Developme...](http://www.amazon.com/Children-Fail-Classics-Child- Development/dp/0201484021/learninfreed)

with opening his eyes to a different view of education. (The same book was recommended to me by my junior high assistant principal in 1971. _How Children Fail_ was a life-changing book for me, and I recommend it to everyone who has ever been in school.) Qureshi writes, "In the last couple of years, I've been going through a process of un-education: removing all the bad habits that school somehow implanted in me:

"Being afraid of failure or embarrassment"

That's crucial. To be afraid to fail is to be afraid to learn. Here's a link to a FAQ I have prepared for my local mathematics students, "Courage in the Face of Stupidity,"

<http://www.epsiloncamp.org/CourageandStupidity.php>

designed to prevent the kind of misguided approach to learning mentioned in the essay kindly submitted here. School curricula in many parts of the United States (and perhaps elsewhere too, as I note the essay is from Britain?) are designed so that most pupils will succeed in school assignments most of the time. That doesn't provide enough practice in taking on HARD tasks, and inadequately prepares young learners to succeed in either

a) study of more than one really difficult subject at the same time

or

b) successful problem-solving in adult life in private employment, when the problems are often open-ended and ill-defined.

As a parent of four children, and as a teacher of elementary-age pupils, I'm all about first bolstering children's expectations that initial failure is not a sure predictor of never succeeding, and then introducing CHALLENGING problems into their education so that one thing they practice while young is overcoming failure.

AFTER EDIT:

Another top-level comment just asked,

 _Anyone out there tried home schooling?_

Yes. And it was John Holt's writings, beginning with How Children Fail in the early 1970s, that sparked my interest in homeschooling. I have been pleased with the results of homeschooling in the case of my oldest son, now fully grown and making a living as a hacker for a start-up, and I am glad to continue homeschooling for my three younger children.

<comment><USER24> You can preach to children the value of the process, the importance of learning, etc. But the second you give them an exam, you lose all credibility. That's the real problem with school. Even if teachers devote themselves to imbuing this "problem centric" approach in their students, the school system requires them to give examinations, which inherently encourage the "answer centric" approach.

<comment><USER23> To the contrary, I know many examples of young people who rock on exams precisely because they learn to pursue curiosity rather than to fulfill minimal school requirements. How useful an examination is depends on how it is designed and administered. How influential examinations are in an overall educational system depends on what incentives are attached to exams and what rewards and opportunities are available to learners irrespective of exams.

Albert Einstein had an interesting account of his school experiences in his longest autobiographical writing, the introductory section of a book I grew up having in my home library (because my dad bought the book when he was a student of the philosophy of science).

<http://learninfreedom.org/Nobel_hates_school.html>

The examination system that Einstein encountered as a student in Switzerland actually allowed him to spend minimal time getting ready for examinations and most of his time independently pursuing his interest in physics. As Einstein wrote, "There were altogether only two examinations; aside from these, one could just about do as one pleased." If his school grades had been based more on daily homework assignments (as in the United States), then he probably would have seen his "holy curiosity of inquiry" entirely strangled by the school system, to use his words.

<comment><USER25> Those exams required minimal time (for Einstein -- a student of average intelligence might have a different experience).

If passing the exams requires spending most of your school time preparing for them, it's a very different situation.

</comment></comment></comment></comment><comment><USER26> "We need to find a better way to teach children, one that doesn't kill their innate sense of curiosity and play."

But how do you objectively measure creativity and play? You can't. So it's not surprising that American public education is moving in exactly the opposite direction, drifting ever closer to a system where high stakes standardized tests determine your entire future. At the root of this is some deep seated hysteria about being overtaken by China or whatnot. It's madness, but I have no _politically viable_ ideas for fixing the system.

Anyone out there tried home schooling?

<comment><USER27> Can't we meet in the middle somehow?

I think that there is merit to rote learning. When I practice piano, most of the time I practice scales. Not creative at all - mind numbing, really, but fundamentally important. When I play a piece, it in theory the rote learning (ie. scales) gives me the dexterity and muscle memory to be creative within the piece of music.

I believe that this translates into education as well. I think it's important that people can do mental math quickly. I think that it's important that a computer scientist can implement merge sort or a min heap without having to resort to Wikipedia. They should be able to explain it too, naturally, but I think that the baseline of knowledge is required to be creative with more difficult problems.

I think that the important thing though, which music gets quite well yet academics mostly don't, is to separate the two. You practice scales, and mechanical exercises, so that you have the ability to be creative when playing the pieces. If they were more clearly separated, I think that it might be better, instead of confusing the two constantly. This is where I think the fear of failure comes from. With the mechanical side, failure is almost always bad. If you are not able to play the scale correctly, you haven't practiced enough - this is your own failing. With the creative side, failure is not necessarily bad, and success is not necessarily good. It's an experiment, an expression, and if it falls flat, you get knowledge from it, and if you're always succeeding, you're not pushing your limits. When the technical and creative get blurred, I think that it becomes natural to mistake the creative side as the technical side, and assume that failure is always bad.

My favourite course in school was computer graphics. The final assignment, worth 20% of your grade if I recall correctly, was this: "Make something awesome with what you learned. You'll have 10-15 minutes to demo it to the professor. You have 3 weeks." So you had better be darn comfortable with perspective transforms and normals and writing shaders, which you are, because you've built up that knowledge over the rest of the course. Now with it, you are given a platform to be creative. We were tested on the rote learning stuff - the exams required us to transform vectors and decompose matrices and write down lighting equations, but this was a test of ones creative ability. I think it's almost perfect in this regard, in getting a lot out of both worlds in a way that is focused and guided but not on rails.

I had friends who wouldn't take this course with me in school because they were worried that the courses would hurt their GPA.

<comment><USER5> I really love the music analogy. I wish people would view math in that light, too, because I feel like it translates extremely well.

</comment></comment></comment><comment><USER28> I'm currently an A-Level Student in the UK. I can agree with all the points made.

The education system believes you still need to go to college, uni etc.

I don't anymore.

I've learnt more outside of college (internet, local groups, friends in the area I'm interested in) than what the teachers can teach (I wish they were researchers rather than "curriculum" pushers).

<comment><USER14> I both agree and disagree with you there. I would agree that I myself have learned more from independent study than I have from formal education (and I've almost finished a PhD) but, I did learn a lot of things that I didn't realise I needed from college/university.

Granted given the recent changes to fees in the UK, I completely see where you're coming from. I suppose in your situation (as a (presumably bright) A level student in the UK) it would probably only make economic sense to attend a Russell Group University, preferably Oxbridge.

Then, the real returns from education are not (in my experience) economic. Mind you, money is nice, so don't completely ignore economics.

</comment></comment><comment><USER29> The bit that I struggled with in high school a bit was gaining an understanding of where certain areas of maths were useful. If an area of maths isn't immediately useful at least some explanation of why we should appreciate it and how it relates to other math concepts would be useful.

</comment><comment><USER30> Does anyone have suggestions for good books/websites where I can learn more about education and our educational system? I'm really interested in trying to make it better, but I don't feel like I know enough yet to come up with significant changes.

</comment><comment><USER31> This emergence of "essays" lately is interesting, and I've been thinking about the differences between them and blog posts.

Conclusion: essays don't have a place for comments on the bottom.

<comment><USER32> I've actually always had comments on, but recently switched to a CMS I wrote myself. I haven't had time to implement comments yet, but it's on the todo list. :)

<comment><USER31> Good to hear. Might I suggest linking to the HN discussion in the mean time (and/or wherever else it's discussed)? Your essay/blog is well-written and valuable, but comments can add at least as much value, and not everyone who visits your site will know to come here.

<comment><USER32> good suggestion. done.

</comment></comment></comment></comment><comment><USER33> [http://sthomme.wordpress.com/2013/01/05/on-the-value-of- rote...](http://sthomme.wordpress.com/2013/01/05/on-the-value-of-rote- learning/)

</comment><comment><USER34> It is not a good sign in a teacher to use the word "despised."

</comment><comment><USER35> Convex vs. concave. See: [http://michaelochurch.wordpress.com/2012/11/12/the- end-of-ma...](http://michaelochurch.wordpress.com/2012/11/12/the-end-of- management/)

The old-style, industrial-era education was based on limiting mistakes and reducing variance. Produce 100 widgets, by deadline X, with low variation. Reliable, low-variance work is still important, but machines do it a lot better than we do.

We've handed the concave world over to machines. They do that stuff far better than we can. Now the only marketable human labor is the convex stuff where the variance-reducing approach that has characterized 200+ years of industrial capitalism fails (because when the input-output curve is convex, you want variance).

The way we do things in the U.S. is ideal for the concave world and utterly incapable of preparing people for convex work, in which autonomy is no longer a rare reward but a prerequisite for producing quality work.

It's not just education that has become outmoded. Our attitudes have as well. We understand natively that both talent (to be judged at best) and character (to be judged at worst) are important in assessing other people (building teams, choosing leaders) but we also conflate superficial reliability with character, to disastrous results. It turns out that the people who most easily maximize superficial reliability ("team players") are often the people of the worst character (psychopaths).

The educational process is designed to (a) inculcate reliability appropriate to a concave world, and (b) prime the smartest people for a world in which _superficial_ reliability will be the main criterion for advancement.

</comment><comment><USER36> Sadly, things don't change all that much in Grad school either.</comment>


LifeLight Touch launches a smart, sun-like energizing desk lamp - <AUTHOR> http://www.sunlifelight.com/lifelight-touch/ <comment><AUTHOR> I met Gary, the founder, through an outdoor fitness group in Boston. He's continuing with the health and wellness theme with his new product, the LifeLight Touch. He's launching it on Amazon after a successful Indiegogo campaign. For all of us who work indoors, LifeLight Touch can make us more energetic and productive. Happy working!</comment>


Asmttpd: Web server for Linux written in amd64 assembly (2017) - <AUTHOR> https://github.com/nemasu/asmttpd <comment><USER2> Isn't this basically a web server for Linux written in C, except with absolutely no standard library optimizations?

Yes, it's assembly, but it's basically a thin script over a set of string library functions which are themselves just naive versions of what's already in libc. Most of this is just strcpy/strcat/strchr/strstr; the only reason it's not one giant stack overflow is that it doesn't actually implement most of HTTP (for instance: nothing reads Content-length, and everything works off a static buffer that is sized to be as large as the maximum request it will read). What's the point of writing assembly if you're going to repeatedly scan to the end of strings as you try to build them?

I'm not taking away anything from the project as an exercise. It's neat! But like: it's not something you'd ever want to use, or a productive path to go down to make a good webserver.

<comment><USER3> _What 's the point of writing assembly if you're going to repeatedly scan to the end of strings as you try to build them?_

I'd have to benchmark to make any claims about speed, but from my past, quite extensive experience with using Asm, it's not uncommon for even a simple/naive/asymptotically less efficient algorithm written in Asm to outperform a more complex/clever/asymptotically efficient one in an HLL at the problem sizes encountered in practice, simply by virtue of the constant factor being much smaller. For the same reason a bubble/insertion sort in Asm can easily beat the standard library sort if your inputs aren't that big.

Of course if you combine Asm with efficient algorithms (which can sometimes be easier to write than in a HLL), then you can get much closer to how much the CPU can actually do.

<comment><USER4> But for web servers, it's not about micro-optimisations, but having an architecture capable of efficiently handling concurrency, no?

nginx and Apache are both written in C, but nginx can outperform/outscale Apache. That's because of high-level architectural differences, not from tweaking assembly code. An HTTP server isn't doing much in data- transformation/algorithmic terms, it just has to scale efficiently.

If your code is synchronous and non-parallel, it's going to lose every time, even if it's highly tuned assembly.

</comment></comment></comment><comment><USER5> Nobody mentioned rwasa so I do it (an HTTPs webserver written in asm):

[https://2ton.com.au/rwasa/](https://2ton.com.au/rwasa/)

I proposed to debian (on an IRC channel for that) to make a package for rwasa but I've been told that "nobody does asm in 2017". I wonder if it's still true in 2018.

<comment><USER6> There are still programs available in Debian written in asm, but they tend to be exceptional.

Picolisp 64bit

Luajit (mostly)

<comment><USER7> Really? Picolisp was build with asm? not C as SBCL

<comment><USER6> Picolisp 32bit is C, but 64bit is asm. There is also Ersatz Picolisp which is Java.

All sources are really well outlined, and worth the read through. But you might start with the 64bit's README. [0]

[0] [https://software-lab.de/doc64/README](https://software- lab.de/doc64/README)

</comment></comment></comment></comment><comment><USER8> Sounds like an excelent front end, for best performance. For the back end stability is paramount, that's why I would always recommend to pair this with a shell script server: [https://github.com/avleen/bashttpd](https://github.com/avleen/bashttpd)

Bash is undeniably the language with the highest possible stability, you can literally feel the stability and security when a file is served and the hard drives go crazy.

<comment><USER2> Why would you assume best performance? Web server performance has more to do with I/O strategy than it does with raw compute.

<comment><USER9> Re-read the comment you're replying to. It's a joke.

</comment></comment></comment><comment><USER10>
        %macro stackpush 0
            push rdi
            push rsi
            push rdx
            push r10
            push r8
            push r9
            push rbx
            push rcx
        %endmacro

        %macro stackpop 0
            pop rcx
            pop rbx
            pop r9
            pop r8
            pop r10
            pop rdx
            pop rsi
            pop rdi
        %endmacro

I guess that's one way of saving registers. Not particularly efficient, I guess, but it works…

<comment><USER11> I wonder if there are cpus with 1-instr state save

ps: thank you all for the answers

<comment><USER12> ARMv7 (not AArch64) has the STM instruction that lets you push a register set, selected by bitmask. eg:

        STMFD sp!, {r3-r7,lr}

(I believe the "FD" suffix is to do with the stack growing down - "full descending")

Of course this is just implemented with microcode so it's not really any more efficient than a series of PUSHes, except there's a bit less I-cache pressure.

<comment><USER13> In the original ARM design the multiple register transfers were much more efficient than the equivalent single register transfers because of the simple architecture which had an inherent load delay (it couldn't fetch an instruction and a data word in a single cycle). When they switched to the Harvard model they lost their advantage.

Talking of the ARM reminds me of older heroic feats of assembly-programmed internet software in the Acorn days, such as Ben Dooks' all-asm TCP/IP stack and Jon Ribbens' web browser. Probably not been done that often...

</comment></comment></comment></comment><comment><USER14> A couple of past threads:

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

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

</comment><comment><USER15> This is some of the best written assembly I've seen. I can actually follow what's going on.

</comment><comment><USER16> This is really cool. I admire your bravery.

I noticed that certain options are hardcoded (such as the port number). As someone with very little experience in assembly, how difficult would it be to make this dynamic via environment variables?

<comment><USER17> Slightly off topic, but I don't get environment variables. To me they look like implicit options that are based on what shell session you're currently in. Stuff that hangs around waiting to kill you when you're not looking, like a cecum.

Why would anyone want environment variables when you can have config files or explicit options instead?

<comment><USER18> I am very pro environment vars and consider files an anti pattern. Files are like globals, sibling processes end up sharing state, plus they survive longer than their use case.

Env variables cascade, which is why they have wider uses than program args. You can organize a system as a group of processes and envs are a good way to share state and abstract out the details like prod vs staging without affecting the program implementation.

<comment><USER19> I'd say it's really about size. A few dozen configs in environmental vars, sure. But once you expand beyond that, need to manage variants of them, need to compose them from fragments you start to see benefits from something more structured like xml, toml, json, or yaml etc.

<comment><USER18> I just start loading env variables from files, e.g. source blah.env

This way, my bash environment mirrors the task I am working on

</comment></comment></comment></comment></comment><comment><USER20> That's impressive, but I couldn't find the reason for it. Was it done just for the challenge, or can their be a use for this kind of server?

<comment> yjftsjthsd-h It's tiny; might have embedded use?

<comment><USER21> Embedded x86_64? Is that a common thing?

<comment><USER22> It's quite common. "Embedded" doesn't mean just "low power and little number crunching ability", it's just a fancy way of saying "special purpose". E.g.: [https://buy.advantech.com/Industrial-Computers/Fanless- Indus...](https://buy.advantech.com/Industrial-Computers/Fanless-Industrial- PCs/model-MIC-7700H-00A1.htm) is an industrial computer; [https://www.edge- core.com/productsInfo.php?cls=&cls2=&cls3=1...](https://www.edge- core.com/productsInfo.php?cls=&cls2=&cls3=15&id=1) is a "whitebox" switch, but it's a representative of many OEM/ODM designs.

x86-64 is a great architecture for many applications. It's cheap (due to volume), well-understood, has great compatibility, and is pretty much the best-supported architecture when it comes to software.

Edit: that being said, no, this doesn't have any embedded use today. Embedded x86 isn't 386 processors anymore. The typical scenario for an embedded x86-64 is "I need to drive this specific application and I want to leverage the Linux/FreeBSD/Windows environment for programming". That already puts you way ahead of the point where writing assembly code is useful performance-wise, and you probably don't want to put ASM code you downloaded off the Internet in a network-facing position :-).

</comment></comment></comment></comment><comment><USER23> Looking at the code I'd be surprised if this is anywhere near as fast as a simple equivalent written in C++ (which wouldn't be as pessimistic with the register saving, in an opt build) or even compared to bozohttpd.

</comment><comment><USER24> Neat, but unless I am missing something, a nightmare in terms of security. Assembly has a worse type system than even C: essentially no type system at all!

(Or rather the weakest, simplest, most dynamic type system you can imagine.)

<comment><USER25> There has been a lot of work on that. Look up Typed Assembly Language, Security in front of that, and Dependently-Typed Assembly Language. Here's one that was integrated with a safe, C variant.

[https://www.cs.cornell.edu/talc/](https://www.cs.cornell.edu/talc/)

<comment><USER26> Unfortunately it appears that the linked project is not free software :(

<comment><USER25> I have the source but you're right: no obvious license file. I might email them about it.

</comment></comment></comment></comment><comment> daniel-cussen 25.8 KB zip file! Now that's tight code.

<comment><USER27> I'm not sure that properly written C version would have bigger size (assuming that unnecessary code is stripped, of course).

<comment><USER28> Curious: how does Rust cope in this regard?

<comment><USER29> They're on the bigger side, due to a combination of defaulting to static linking, some optimizations not having been possible (ThinLTO comes to mind), lots of debug strings and metadata, as well as the use of jemalloc[1][2].

[1]: [https://jamesmunns.com/blog/tinyrocket/](https://jamesmunns.com/blog/tinyrocket/) [2]: [https://users.rust-lang.org/t/rust-binary-sizes-once- again/1...](https://users.rust-lang.org/t/rust-binary-sizes-once-again/16287)

<comment><USER30> Well if you only use libc like the assembly server does, I imagine you can use `#![no_std]`. Your Rust will use `unsafe` a lot and be very unidiomatic, but small. Is using the system allocator for binaries on stable yet?

<comment><USER31> Next release.

</comment></comment></comment></comment></comment></comment><comment><USER32> AVE CESARE!

</comment><comment><USER33> Nice? I mean, how would you be certain it was NOT a "Web VIRUS for Linux written in amd64 assembly (2017)" unless you could read grok asm?

NOTE: I'm not saying it IS or ISN'T, and although I CAN grok asm, I'm not going to take the time to do it right now...

Just struck me as possible, given the idea of a high-level language is to mainly provide abstraction over implementation details ( point being, you can't really get any MORE implementation detail specific than asm... )

(edit: words...)

<comment><USER10> Well, how do you know the C library you just downloaded isn't a virus either?</comment></comment>


Ample SDK: Browser-in-a-Browser - <AUTHOR> http://ajaxian.com/archives/ample-sdk-browser-in-a-browser

<comment><USER2> Overkill much? And how does this help push browsers to conform to standards? I can see how the XUL rendering would be nice, as it's currently a Mozilla-only technology, but having Ample sit between bad browsers and render everything "correctly" strikes me as just allowing the problem to grow unchecked....</comment>


AdWords: Conversion doesn't vary by position - <AUTHOR> http://adwords.blogspot.com/2009/08/conversion-rates-dont-vary-much-with-ad.html

<comment><USER2> Lies. I've spent >$50k on adwords and had far more garbage clicks in positions 1-3 than with 7-9. They directly affect CR.

More data please, GOOG.

<comment><USER3> Some people have spent much more than that on adwords and have come up with the same conclusion as google, e.g., [http://www.rimmkaufman.com/rkgblog/2008/09/30/position- biddi...](http://www.rimmkaufman.com/rkgblog/2008/09/30/position-bidding/)

<comment><USER2> Appreciate the stats but, from the post: "The value of traffic doesn't vary by position ... In fact, the quality in position 1 tends to be slightly lower than position 2, and the quality improves slightly as the ads get lower on the page — these are small effects that can be ignored for practical purposes." Maybe my budget is too 'small' to ignore these small effects, or maybe I'm just cheap.

</comment></comment></comment><comment><USER4> Interesting to see google talk about it, but not a lot of news here. If someone clicks on an ad in the first or in the last position, you wouldn't think it would effect their likelihood of buying something on the destination site.</comment>