Getting Started with Webpack 2 - <AUTHOR> https://blog.madewithenvy.com/getting-started-with-webpack-2-ed2b86c68783#.fjs4xiv4v <comment><USER2> > However, since its release it's evolved into a manager of all your front-end > code (either intentionally or by the community's will).

This pops up everywhere in JS-land. Someone writes a small tool that does one thing well, and all of a sudden there is some barf-sandwich plugin system with 300k unmaintained plugins and documentation scattered across readmes, wikis, and blog posts. It ends up sucking all of your energy, because it never does 100% of what you want, but it gets to a good 70% before you install some other tool that does the remaining 30% and because it doesn't play nice with everything else it breaks the former. It's exhausting.

IMO, this is what happens when you take the unix philosophy too far. Maybe sometimes a monolith that solves multiple cross-cutting concerns is warranted. I mean, if all the community wants to do with your small tool that does one thing well is to take it and turn it into a shitty underdesigned monolith, why not just plan on it being a monolith from the beginning?

<comment><USER3> If you build a monolith from the beginning, no one will use it because it's "too opinionated".

</comment></comment><comment><USER4> Previous discussion [1].

        Getting Started with Webpack 2 (madewithenvy.com)
        98 points by gregorymichael 2 days ago

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

</comment><comment><USER5> Wow - this comes at a perfect time for me as I'm just learning about Webpack. Thank you!</comment>


Tor executive director hints at Firefox integration - <AUTHOR> http://www.dailydot.com/politics/tor-mozilla-firefox/ <comment><USER2> It would be _so great_ if Mozilla integrated Tor. Beyond the curse of success mentioned in the article, it would really lower the burden on the Tor developers, who have had to support a lot of patches from Firefox that Mozilla have been slow to merge.

My main concern is that this will be hidden behind an option or an "extreme private" mode -- Tor seems too high-latency for the typical use-case of private browsing (image viewing and video streaming).

If you run a web service and would like to provide high-security anonymous access, consider running an Exit Enclave -- a Tor exit configured to exit only to your site. If Tor detects that your exit and your site share an IP address, it will automatically extend the normally 3-hop circuit to your node, and the traffic will exit the Tor network on your machine rather than an arbitrary node (which could be malicious).

I hope this finally kills the "only criminals use Tor" narrative the NSA and periodically, the media push. Everyone deserves strong anonymity.

<comment><USER3> I hadn't heard of Exit Enclaves before, when I looked it up in the docs [0] it appears that they are not going to be supported in versions > 0.2.3.x.

[0] [https://trac.torproject.org/projects/tor/wiki/doc/ExitEnclav...](https://trac.torproject.org/projects/tor/wiki/doc/ExitEnclave):

<comment><USER4> Well, that sucks. DuckDuckGo run a Tor exit enclave. I hope this doesn't put them off running an exit node, even if only to their own servers: [https://duckduckgo.com/privacy](https://duckduckgo.com/privacy)

</comment></comment></comment><comment><USER5> The article mentions "hundreds of millions of new users". That would be great news for privacy on The Internet.

But it would surely slow the Tor network to a halt. Users trying out privacy- enhancing technology would be disappointed guaranteed with 30+ seconds page load times.

Tor has roughly 1000 exit nodes, all traffic flows through them. It needs to have much more capacity to handle that kind of load. Who is going to pay for 100x or 1000x server capacity?

<comment><USER2> That is precisely the topic of the article. For a more in-depth view, you can read this tor-talk mailing list thread: [http://archives.seul.org/or/dev/Sep-2014/msg00091.html](http://archives.seul.org/or/dev/Sep-2014/msg00091.html)

(This is the original source for the Dot article.)

A summary: Raw bandwidth isn't the limiting factor in scaling Tor; before you just plug in traffic to the network, you'd need to optimize Tor's internal protocols to make expansion of the network even possible. However, those hurdles are fairly small, and once they're handled, it's just a matter of funding to pump up more nodes, which is much more simple.

Further, not all Firefox users (if the article's speculation is correct) will be using private browsing at once. So the actual increase is probably 5-10% (at most? anyone know actual statistics about private browsing?) of that number.

</comment></comment><comment><USER6> I suspect this will start hitting problems when users discover that lots of sites break in unexpected or mysterious ways when run in "Super Private Mode" or whatever they call it. Tor is blocked or treated suspiciously by a LOT of different sites. It's not at all a free upgrade.

</comment><comment><USER7> Wonderful news. I am particularly looking forward to having torified connection in a browser with some continuity and customization. The bundles are stripped of customizations and I find it inconvenient to bring along bookmarks and chosen extensions manually at every upgrade of the bundle.

I realize it's often for good reason that the bundles are minimalistic, but I see no fundamental reason why I should have to relinquish bookmarks and personal settings to stay anonymous, and it would be great if this could spur a greater drive to make it clear what extensions are safe or new browser architecture that would make it safe to use add-ons in general with Tor.

</comment><comment><USER8> Bravo. I would imagine this would be as an alternate and not in the default mainline. Whomever takes this step first will probably find it being used as a catalyst for much more than just anonymity. First users whom hit copyright walls on youtube and other sites have a quick route around: "The Net interprets censorship as damage and routes around it." \-- John Gilmore. But beyond this the services that could be built on mostly hidden end points are immense. Personal mail servers, instant access to files at home, selective public vs private sharing groups, etc.

</comment><comment><USER9> For anyone interested in exclusively using Tor on Android immediately, check out orWall, a root-requiring proxy that blocks all regular traffic by default and allows app-specific access of your choosing to exit via Tor. Only on F-Droid market for now, but coming to Play Store soon.

[https://orwall.org/](https://orwall.org/)

</comment><comment><USER10> Somewhat relatedly, has Firefox ever considering having a built-in ad blocker?

That would really set it apart, in my opinion.

<comment><USER11> Mozilla's funding comes primarily from search partners (namely Google)[0][1] - I don't think they could do this and still survive as a company at this point, sadly.

At the same time, if every Firefox user donated even $1 to Mozilla, they wouldn't need to take this money[2], and could probably be a bit more carefree in these decisions.

[0] [https://www.mozilla.org/en- US/foundation/annualreport/2012/f...](https://www.mozilla.org/en- US/foundation/annualreport/2012/faq/)

[1] [https://en.wikipedia.org/wiki/Mozilla_Foundation#Financing](https://en.wikipedia.org/wiki/Mozilla_Foundation#Financing)

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

<comment><USER10> Haha wow thanks for the info. I had no idea that they're almost entirely funded by an ad company (Google); so much for that idea!

</comment></comment></comment><comment><USER12> They mention it in passing in the article, but I think that it is very important to make it a default setting, something like "donate 5% of my bandwidth to internet privacy". 500 million exit nodes minus 3 geeks that choose to go deep into settings to disable it.

</comment><comment><USER9> I would LOSE MY MIND if this happened! Wahoo!

EDIT: I am literally giddy with excitement over this prospect. Had to come back to add that

</comment><comment><USER13> That's great news for both sides! Can't wait for it to happen</comment>


What were the top research papers of 2012 on social media? - <AUTHOR> http://blogs.nature.com/news/2012/12/what-were-the-top-papers-of-2012-on-social-media.html

<comment><USER2> I would recommend amending the title - it's a little vague, and led me to expect research papers _about_ social media, not research papers shared _via_ social media.

<comment><USER3> haha exactly, same here</comment></comment>


Deliberate Practice: How Education Fails to Produce Expertise - <AUTHOR> http://www.freakonomics.com/2011/05/04/deliberate-practice-how-education-fails-to-produce-expertise/

<comment><USER2> Times are dark now, but I'm actually excited about what kind of education system we'll produce when we finally tear down the 19th century one we have now and build a 21st century one. Can you imagine what kind of 20-year-olds would come out of a system that successfully produced deliberative practice across a wide variety of disciplines by harnessing the power of computers melded with the strengths of human instruction to build custom curricula for everybody?

The country that cracks this and builds this system instead of incrementally tweaking our 19th century system will own the rest of this century and most of the next.

<comment><USER3> We are already working on that in the education community - project based learning. It has its detractors but the fundamental tenets are: 1) learning is the product of the work of learners, 2) students learn by doing. Science classrooms taught this way typically produce students who go on to be very successful academically and professionally in the maths and sciences. The secret? Integrate multiple disciplines, let students explore facets of the subject which appeal to them, and have them work on something - with each other (!!) - which has a tangible result or artifact. We have cracked it, and we have peer-reviewed papers to prove it. Now we just have to get the troglodytes in charge of public education to adopt it.

[Edit]

Some citations:

Rivet, Krajcik:"Achieving Standards in Urban Systemic Reform: An Example of a Sixth Grade Project-Based Science Curriculum"

Hmelo-Silver et al. " Scaffolding and Achievement in Problem-Based and Inquiry Learning: A Response to Kirschner, Sweller, and Clark (2006)"

<comment><USER4> _We have cracked it, and we have peer-reviewed papers to prove it._

Citations, please? (An edit to your original post rather than a new reply would be fine.)

 _Science classrooms taught this way typically produce students who go on to be very successful academically and professionally in the maths and sciences._

Where are some of the schools that operate this way now?

<comment><USER3> I will find citations and put them in my original post. As for schools which operate this way now, the New Tech Network (<http://www.newtechnetwork.org/>) of schools operate this way. I can speak most specifically for Manor New Tech HS in Manor, Texas, as it is the most accessible to me.

I also know that LASA in Austin ISD has a number of classes taught this way though they do not have any sort of project-based "ideology" that they follow across the board like New Tech schools.

<comment><USER5> you should put contact info in your HN profile page! I would love to follow up with you privately on this.

<comment><USER6> Paul, could you explain here or through a private e-mail what your company Matygo is doing and how it is a catalyst? The tagline on the blog is a tease :).

<comment><USER5> I rewrote the tagline earlier today, I'll take that as positive feedback. :)

A catalyst speeds up a reaction, sometimes essentially so. The coming education revolution is going to be much larger than any single organization but we think we can help bring it about a little bit quicker. Sal Khan is definitely a catalyst in this respect.

We do this through two complimentary features sets:

1) Learning about learning. These are tools to track student progress, judge the effectiveness of different techniques, etc... Think an education effectiveness dashboard. By providing high-quality information we can shorten and improve the feedback loop by better understanding what works and what doesn't.

2) Online learning delivery. As a starting point, think an LMS like Instructure/Moodle/Blackboard, etc... but designed to work with the previous point - try new things and measure. The key here is enabling teacher creativity. It's all well and fine for us to implement and measure new tools in house but that's not fast enough (and gives us no particular advantage). The Instructors on our system need to be able to easily implement their own thoughts on how to improve teaching (and then see the results). They are much smarter than we will ever be about this. We need our instructors to see this 'LMS' as their playground for teaching experimentation. And, of course, when one of them makes a breakthrough they will share it and everyone will be better off.

Innovation is experimentation that results in an improvement. We help teachers experiment and judge the success of their experiments, shortening the feedback loop and increasing the rate of innovation. This is what we mean by "be a catalyst".

<comment><USER6> Very interesting. Anything having to do with disrupting the current model excites me to no end.

Have a few more questions if you don't mind:

1\. What's your motivation for doing this?

2\. Is there a particular level of education (or type of subject) you're targeting? Would you find the product more geared towards being effective in some subjects than others, or generic enough for any?

3\. Is UBC somehow part of this project?

4\. Could I play with it (I'm in no way affiliated with UBC)?

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> From the article:

 _Those problem-set hours total almost a whole other working week laid on top of the other academic tasks of attending lectures and reading notes. In college as in grade school, where is the time for deliberate practice?_

I can't help but think that this is a case of not seeing the wood for the trees. In a good university problem-sets obey most of the requirements of deliberate practice: they are designed, there is repetition, they are mentally demanding, and they gradually get harder so that you are working at the edge of your abilities.

The remaining requirements of deliberate practice are to do with meta- cognition - i.e. thinking about what you are doing - and that is down to you.

It reminds me of stories my mum (who's a teacher) tells about pupils complaining that they had no time for revision because of the practice exams she set. I mean, what do they think revision is?

</comment><comment><USER8> Sanjoy Mahajan, the author of this article, is the Associate Director at the Teaching and Learning Laboratory @ MIT. If you're interested in education, he has an excellent OCW course [1] where you can hear more about his techniques for teaching.

[1] [http://ocw.mit.edu/courses/chemistry/5-95j-teaching- college-...](http://ocw.mit.edu/courses/chemistry/5-95j-teaching-college- level-science-and-engineering-spring-2009/video-discussions/)

<comment><USER9> There it goes the rest of my week :-(

</comment></comment><comment><USER10> I find that programming courses tend to force deliberate practice. Think about first year CS course: you're taught about loops and if statements, then you're asked to write a program. There's no direct connection between the material and the assignments: you have to think and practice and fail.

This is one of the reasons perhaps for why so many people quit computer science after the first year. So many people in my family expressed their frustration at programming assignments (none of them took more than one or two courses).

<comment><USER11> This is actually exactly the reason I love my CS courses as opposed to, say, trig

</comment></comment><comment><USER12> Is there any information about what constitutes deliberate practice in math? Clearly the article takes serious umbrage with problem sets.

<comment><USER13> I feel like I'm in the minority here but rote practice has a role, just like playing scales or dribbling a basketball does. It lets you ingrain into your muscle memory the foundation-level skills. Once you're able to multiply arbitrary two digit numbers in your head or dribble a ball without really thinking about it, it frees you for when you're thinking about higher level problems.

<comment><USER14> Many of us won't disagree with the need for building skills thru standard exercises. But, when the maximum efficiency/minimum-personal-commitment bureaucrats have too much input, risk based learning is replaced with no- personal-risk rote learning for all education -- with the obvious failure to society.

</comment></comment></comment><comment><USER15> The Gutenberg method linked to in that article is a fantastic read: <http://entropysite.oxy.edu/morrison.html>

<comment><USER15> And it's been submitted, with comments here: <http://news.ycombinator.com/item?id=2515044></comment></comment>


Chrome just popped an ad on me. This is inexcusable.  - <AUTHOR> http://i.imgur.com/hB09p.png

<comment><USER2> What is the context in which this appeared?

Happened inside a website or at the browser's home screen?

Edit: alright, seems it happens on the home screen:

[http://superuser.com/questions/359931/get-rid-of-chrome- home...](http://superuser.com/questions/359931/get-rid-of-chrome-home-page-ad) You could say the same just about any site you set as homepage. Yahoo is a fine example.

As for myself, about:blank is probably the URL I visited the most in my life.

</comment><comment><USER3> Where was this?

<comment><AUTHOR> New Tab page.

I guess I'm going back to using about:blank.

<comment><USER4> if you're in incognito mode it doesn't display it, but does in normal. I guess they got half of it right.</comment></comment></comment>


A brief history of IPv4 address space exhaustion - <AUTHOR> https://blogs.igalia.com/dpino/2017/05/25/ipv4-exhaustion/ <comment><USER2> Unfortunately my perception is that IPv6 deployment is stalled (due to inaction by ISPs). In my company we have recently dismantled some of our IPv6 infrastructure because it became apparent that ubiquitous v6 connectivity was not coming any time soon (e.g. we have locations served by Charter/Spectrum, and they have no IPv6 and no plan to deploy it). We've instead deployed a private IPv4 overlay network between our sites and assets using GRE tunnels.

Also somewhat exasperating that the "running out of IPv4 addresses" saga has played out across almost my entire career. I remember attending the CIDR meetings at the IETF in around 1992, for example. So one of the first technical problems I encountered in my career remains unsolved nearly 30 years later.

<comment><USER3> I don't think that perception is accurate. Google's IPv6 tracker shows continual progress: [https://www.google.com/intl/en/ipv6/statistics.html](https://www.google.com/intl/en/ipv6/statistics.html) (with the expected bumps around weekends and holidays)

It's not a fast process, but I don't see any evidence it is stalled.

<comment><USER4> I don't think it really matters what percent of clients are IPv6-capable. Nobody is incentivized to actually deploy _servers_ to IPv6 while there exist zero IPv6-only clients.

<comment><USER5> > Nobody is incentivized to actually deploy servers to IPv6 while there exist > zero IPv6-only clients.

Facebook is a counterexample.

> Over the past few years, Facebook has been transitioning its data center > infrastructure from IPv4 to IPv6. We began by dual-stacking our internal > network — adding IPv6 to all IPv4 infrastructure — and decided that all new > data center clusters would be brought online as IPv6-only. We then worked on > moving all applications and services running in our data centers to use and > support IPv6. Today, 99 percent of our internal traffic is IPv6 and half of > our clusters are IPv6-only. We anticipate moving our entire fleet to IPv6 > and retiring the remaining IPv4 clusters over the next few years.

[https://code.facebook.com/posts/635645183305089/legacy- suppo...](https://code.facebook.com/posts/635645183305089/legacy-support-on- ipv6-only-infra/)

<comment><USER4> They might have _actually done_ it, but my point is that the incentives for companies to do so generally aren't there. And as long as there exist some large sites that believe the costs to adopting IPv6 exceed the benefits, ISPs will continue to give IPv4 addresses to their clients.

<comment><USER6> My phone's IP is in the private 10 range. A request to Facebook must go through the provider's expensive NAT router.

If they assigned my phone an IPV6 address in addition, that traffic could go directly to Facebook through cheaper switches, which is faster for me, and cheaper for them.

</comment></comment></comment></comment></comment></comment><comment><USER7> I now receive a block of IPv6 from Comcast. I allow the router to assign them to devices on the network, but I admit that I am somewhat worried that my local PC is no longer isolated from the Internet by a private IP.

<comment><USER8> I think whilst it's nice to have that barrier, it's prevention rather than cure anyway. There's no substitute for secure devices :)

<comment><USER9> what's more secure than a device you cannot possibly reach?

I'll take an insecure device isolated at the bottom of the ocean in a titanium block over a probably-secure device that is publicly addressable any day.

<comment><USER10> Your appliance 'router' can (and probably does) run a firewall to give you that kind of control. NAT never really gave you that.

</comment></comment></comment></comment><comment><USER11> I find DJB's take on this interesting: [https://cr.yp.to/djbdns/ipv6mess.html](https://cr.yp.to/djbdns/ipv6mess.html)

EDIT: Dan has many excellent points, but I'd like to quote my favorite:

 _The IPv6 designers made a fundamental conceptual mistake: they designed the IPv6 address space as an alternative to the IPv4 address space, rather than an extension to the IPv4 address space._

Indeed, what were they thinking!

It's certainly an undeniable fact that IPv6 adoption has been a disaster, taking much longer than hoped for. Frankly, I expect to see IPv4 coexist with IPv6 for the next hundred years - not ideal.

<comment><USER12> One thing I never understood in these proposals: how would two computers, one with only an extended address and the other with only an IPv4 address, talk to each other? Or two computers with extended addresses, but with a single router in the middle of their path which doesn't understand extended addresses?

All these proposals I've seen appear to assume that extended addresses start being distributed only after every or almost every host and router in the whole world had all of its software upgraded to understand extended addresses. But that's not realistic, since without being able to actually use it, there would be no incentive to modify every single piece of network-facing software and hardware to be able to use extended addresses. It's a Catch-22.

<comment><USER11> There are two issues in migration: updating software and updating configuration. The former can be completely trivial if you are just pulling down updates from someone else. The latter requires effort on your part. If the IPv6 address space had been an extension, then you wouldn't have to do any configuration to support IPv6 clients while you maintain your existing 32-bit address, valid for both stacks.

At least that's my understanding of it.

<comment><USER13> For a new transport layer protocol like QUIC, this can work. However when you start talking about IP, you need to update/replace basically every device on the internet. If a device in the path doesn't know about the extended address space, that packet probably can't reach it's destination.

<comment><USER11> ? You have to upgrade the software on all devices to move to a larger address space. That's understood. What we are discussing here is the added complexity of the configuration. Updating the software is easy by comparison.

</comment></comment></comment></comment></comment><comment><USER14> When I was at UCLA, I learned this new architecture called NDN [https://named- data.net/](https://named-data.net/). It does not rely on addressable device or host. It give addresses to content. Not sure how industry think of this new idea. I watched several talks about NDN. They all have great stories and believe it's the future.

<comment><USER15> [http://named-data.net/doc/NFD/current/manpages/ndn- autoconfi...](http://named-data.net/doc/NFD/current/manpages/ndn- autoconfig.html#ndn-hub-discovery-procedure)

Still relies on TCP and UDP and thus still needs IP addresses.

</comment></comment><comment><USER16> Corrections: CIDR stands for Class _less_ Inter Domain Routing (because it superseded the Class A/Class B/Class C arrangement, which allowed only three particular allocation block sizes).

</comment><comment><USER17> I know the author is Spanish; I'd like to point out Orange Spain has been deploying IPv6 addresses to end customers these last weeks using the Dual Stack lite transition system.

All the big ISPs have been testing IPv6 for years now and I'm sure it's just a matter of flipping a switch. Now that a new contender is in town (a 4th ISP) and they're having huge problems because they have no IP addresses left to assign to their customers, I suppose the rest of ISPs will stall even more their transition to IPv6 so they can try and "suffocate" the new ISP.

Just my two cents...

</comment><comment><USER18> I've only worked at one company that had full IPv6 support. Even on my current 1GbE fibre setup with a small startup, they still don't have IPv6 rolled out to residents yet. :(

I feel like one big hurdle is IPv6 usability. You can write down and easily remember IPv4 addresses. IPv6 netmasks can get really confusing. They make sense if you expand out every block, but in reality, IPv6 requires a lot of tooling to chop up and work with address spaces in an intuitive way.

<comment><USER19> I love it when people make this argument. The IPv6 adoption hurdle is NOT the usability of v6 addresses. 99% of the world thinks that IPv4 addresses are a horrorshow and would never bother to memorize one or even write one down. They use DNS because they are human beings. The layout of the address behind the DNS they couldn't care less about.

<comment><USER20> I think you are right, now it would be somehow hard to deny the fact that ipv4 addresses _were_ possible to memorize, ipv6's, quite a bit less so. I agree that it's a non-issue 99% of the time, and the overwhelming majority of lambda users _will_ use DNS anyways - that said, when you don't have DNS, are a sysadmin/engineer or what not, you do feel the pain sometimes :)

</comment></comment></comment><comment><USER21> [http://www.internetsociety.org/deploy360/blog/2017/05/google...](http://www.internetsociety.org/deploy360/blog/2017/05/google- buys-a-12-ipv4-address-block/)

</comment><comment><USER22> If you enjoyed this, this is a great resource current state of prefix utilization in the global routing tables:

[http://www.cidr-report.org/as2.0/](http://www.cidr-report.org/as2.0/)

</comment><comment><USER23> IPv4 is like any commodity. Now that it's not easily to get from ARIN, a market has sprung up around buying and selling it.

It's still relatively easy to get IPv4 blocks for a buck or two per IP through auction houses.

<comment><USER24> Although whatever block you get has to be big enough to convince people to route to it. Too small and it won't matter. No ISP wants to carry the load for millions of tiny IPv4 blocks.

<comment><USER25> The smallest you can get is a /24, and everyone accepts routes for that.

In 1997, I remember running 2 T1's w/BGP on a router with a whopping 32 megs of RAM. I think there were 50,000 routes! How things have changed...

</comment></comment></comment><comment><USER8> Would have been awfully nice to have a reserved bit in hindsight. 7 bit ASCII was an amazing accident. (Maybe it wasn't, time to brush up on my history...)

<comment><USER26> We do/did! Class E space (240.0.0.0/4) exists and is entirely unused. There was a proposal in 2008-ish to try and convert it to regular IP space for allocation, but the agreement was that it would be too much work (many stacks default drop class E packets) and we should focus on transitioning to IPv6.

<comment><USER8> Thanks, I wasn't really aware of this. Class E wouldn't add too much to the IP address space if I understand this correctly?

I was thinking more along the lines of a bit being flipped would mean the next 8 bytes are an IP and not four, for example.

From my limited understanding, I don't think they reserved a bit in the address space?

</comment></comment></comment><comment><USER27> IANA sold the blocks. There are still a lot of unused IPv4 addresses. IANA sold the blocks.

PS IPv6 sucks.

<comment><USER28> The IANA blocks were exhausted in January 2011. All of the RIRs save AFRINIC exhausted their internal allocation pools since then: APNIC in April 2011, RIPE September 2012, LACNIC June 2014, and ARIN September 2015 (although note that the definition of "exhaustion" differs from RIR to RIR--ARIN in particularly relied on a truly-bone-dry definition whereas APNIC claimed exhaustion when they had less then a full /8 in their pool).

As of right now, ARIN appears to have exactly 0 IPv4 addresses--they can't even give out a block of 256 IPv4 addresses to someone who asks for it. All they can do is put you on a waiting list until someone else agrees to give up their IPv4 address space. Some people have been waiting since July 2015.

</comment></comment><comment><USER29> We only use 32 bits of each 48 bit ipv4 address. The problem isn't exhaustion, it's using DNS to do service location rather than IP.

<comment><USER30> If you mean ports, those aren't IP. Those are TCP/UDP.</comment></comment>


The Greatest Roman Emperor You've Never Heard Of - <AUTHOR> https://fee.org/articles/antoninus-pius-the-greatest-roman-emperor-you-ve-never-heard-of/ <comment><USER2> Nah, if you've read Marcus Aurelius, you'd definitely come across him

</comment><comment><USER3> What a surprise that the author likes this emperor - he's a small government republican!

</comment><comment><USER4> Hmm, a lot depends on how you define "great", Augustus (Octavian) was by some measure the man who brought about "pax romana" after Julius Caesar's death, peace & prosperity which lasted for several decades.</comment>


I like to see hands, do you turn off your cellphone in flight? - <AUTHOR>

I have been wondering how many people actually turn off their cell phone in flight.  Many people just turn off the screen and don't bother.  Others seem very concerned and make sure the phone is truly OFF.  I was thinking about this the other day when I was on a flight and my iPhone power button had stopped working, I certainly had mine on.  I think we all know it doesn't matter though, with of the devices out there I'm sure each flight has at least 50 devices still on in a plane carrying 200 people.<p>I bet there is a good portion of us that doesn't bother, can I see hands are you ON or OFF ? <comment><USER2> I switch mine off - compliance with crew instructions is a federal requirement, as far as I know.

The instructions are, of course, rubbish. Constructing a cell phone with out an "off position" is sufficient to comply with instructions that state "any device with an off switch must be turned off at this time".

The instructions certainly clean up the plane's RF environment, but it's silly to expect compliance from even well-meaning humans at the 0.3% level (all of 400 passengers turn off all their devices).

</comment><comment><USER3> I put mine into airplane mode. There is no scientific reason to need to turn it completely off; the announcement is just because it's an easy common denominator.</comment>


Google Summer of Code, Contribute to large open-source projects - <AUTHOR> https://summerofcode.withgoogle.com/ <comment><AUTHOR> Google Summer of Code is a global program focused on bringing more student developers into open source software development. Example of which are Python, Django, Swift, Ruby, Mozilla, TensorFlow and etc.. Deadline is April 9th.</comment>


Ask HN: Best Programming Language for making an algorithm concurrent? - <AUTHOR>

I am working on a new project that at its core is speeding up an algorithm that can do most of its processing in a concurrent way. Initially the system will just be a command line tool and if the speed is sufficient, become a web. What languages do people recommend and why? Erlang? F#? Etc? <comment><USER2> The best programming language is the one you know best. Or the one you want to know best. Grouping you knowledge in a single language will make you more productive with it, and allow future projects to be completed faster.

Yes it ignores a certain amount of style, and crowd following. But you'll grow as a developer, and be more productive :)</comment>


Ask HN: Please review my startup. theBuzz.at - <AUTHOR>

The idea is straightforward.  Digg (or HN) style voting for local bars and restaurants, see what's popular now.
All vote's are upvotes, there are no stars and a vote means "I'd go here again".  Users can vote for the same place weekly.  Content is submitted by users, not pre-populated but I've integrated the Google Search API to make searching for and adding venues easier.
I've finally managed to get a demo out for testing - it's London only at the moment (split into 150+ neighbourhoods) and there's still lots to do.  That said, I'd be interested to get your impressions and thoughts on the idea and execution at this stage.
Obviously there will be a critical mass issue but right now I'm concentrating on making a product worthy of mass consumption.
http://www.thebuzz.at/ <comment><USER2> I'm a little confused as to the workflow. Here's what i did, assuming I wanted to vote on a place I like:

1\. Enter "fernandez & wells" into the name box. Hit search. 2\. Two results are shown. Both have what look like votes already (+4, +5 icons). But my only action is "add this place." Where do I vote? 3\. When I click to add the place, I'm presented with a big form, which I don't care about. I click "add place" anyway, and after clicking a couple of times with nothing happening, i realize it's trying to get me to select a category. I select a category (restaurant), click add again, and get an error "invalid username or userid in get_avatar"

So... hiccups aside, seems like a good idea. Execution-wise, streamline, streamline, streamline.

<comment><AUTHOR> OK - this is a product of it being somewhat rushed to get _something_ out the door.

The workflow does need to be trimmed, let me explain a little of what went on there.

1) You entered "fernandez & wells" we check our DB, found nothing then went off to check Google 2) The 2 results were from Google. The +4 icon is confusing here, it's a half implemented feature. It's actually there to show how much Karma a user would get by adding it. 3) I should make the error more prominent. As for "invalid username or userid in get_avatar" - basically you shouldn't have got to this screen to be able to add a venue without being logged in. I'll make the user check early and redirect to the login/registration screen.

Thanks for the feedback.

<comment><USER2> Good luck with this.

Suggestion: hire someone to pre-populate/categorize your database with the top 500 or 1000 spots in London you want people to rate. It doesn't have to be perfect. You can use inexpensive labor or even Amazon's mechanical turk. If the goal of your site is to get people voting, you can improve your adoption by lessening the focus on data entry, which will be a turn-off for most of your potential useres.

<comment><AUTHOR> At the moment I'm steering away from the idea of pre-population. My reason is that if I can streamline, streamline, streamline (as you rightly suggest) the process of adding a site it it hopefully won't be too much of a burden for the user. The very process might help venue submitters feel a greater sense of ownership over the site content which won't be full of the excess clutter of what _I_ deem to be 1000 top spots in London. I don't want to be one person dictating the tone of the site to the users, only they, as a collective, should feel totally free to do that.

</comment></comment></comment></comment><comment><USER3> I like it! I wish you had my city (Los Angeles). I'd suggest adding downvotes, but instead of having upvotes and downvotes affect a single score, like Digg/Bury, maybe have 2 scores, one for Buzz, and another for Kill, so we can see a particular bar had, say, 20 Buzzes, and 5 Kills.

Also, do the Buzz counts wear off after a certain amount of time? I couldn't tell if they did, but it would be useful to see that a bar had 20 Buzzes last week, and only 10 this week.

<comment><AUTHOR> Thanks. I hope to roll out to more cities (including Los Angeles) pretty quickly once the initial phase of ironing out kinks has passed.

The idea of displaying up and down votes is something I had thought about and I can certainly see some of the benefits. However, it is at odds with the driving force behind the site which was was to simplfy the criteria by which venues are "rated". That said, if it turns out that it's something the user base really want... well, everything is flexible :)

Buzzes don't wear off after time although the default view is "most recently popular". I like the idea of displaying buzzes by time. I might develop on that. Thanks.

</comment></comment><comment><USER4> Very well done in terms of UI. I like the concept. The problem comes down to: why will I come back on a fairly regular basis? Not sure if that is every week, every month,etc. but it should be fairly regularly.

<comment><AUTHOR> The reason I see to return regularly, say every week, would be to check out the places gaining traction now. This is a reasonably fast moving area, bars open and close, go in and out of vouge on a fairly regularly.

Regualr users might go out for food or drinks on a fairly regualr basis - whether it's an area they know and want to see if there's anything new/hot or they're going out in a new neighbourhood - I see both as valid reaons to check out the site.

</comment></comment><comment><USER5> Nice concept and great implementation for an Alpha version... some suggestions

1\. I searched for Curry and got 4 restaurants. If possible, you might wanna change the labels design on the map, they don't stand out on the map

2\. People visiting your site might also wanna search for restaurants of specific cuisine. So you can think about changing the label name "Place Name"

3\. You can put the tag "Discover and share new places" on the top

All the best :)

<comment><AUTHOR> 1\. That was a concern of mine. I think I should make them I little bigger also.

2\. I saw the search as a way of finding a specific venue. Say you went to a great restaurant and you wanted to buzz it, you put the place name in the search, if it's already there you can buzz it, if it's not you can add it. If you want to narrow down all Indian restaurants in a specific area use the black venue category band (hover over restaurants to see the sub-categories).

3) [Edit] Do you think this strap line does an acceptable job of explaining what the site is about?

Thanks for the feedback.

<comment><USER5> Guess you can start with "Discover and Share Great Places" and then test it out with some folks to whom you have not explained what the site is about

<comment><AUTHOR> True - it's better than nothing.

</comment></comment></comment></comment><comment><USER6> (UX point of view comment)

Hmm, the design is inspired by www.kontain.com? It's well done though. A few UX quirks here and there, but most of it is fine.

Maybe that nice image and copy on the login/register page should be on the homepage when a user isn't logged in? I'm thinking it could convert more in some way. (though the content is also good, you'd have to sacrifice some other part of the page)

<comment><AUTHOR> Spot on, the site was inspired by Kontain.com. The actual design work was carried out by Brighton (UK) agency <http://www.builtbybuffalo.com>.

</comment></comment><comment><USER7> I'd be interested to see a service like this track what is happening real time. So, imagine a user goes to a bar and texts/emails/iPhone app, whatever, that would buzz up that local for the night. Then users could look to see what is going on in real time. That may be what you are doing here, if so, I would make it more clear. As it is, it seems like a review site, almost like Urbanspoon.

<comment><AUTHOR> A mobile interaction is necessary, I agree. Without it we're left showing you what popular in the past day/week/month/all time as we have at the moment.

<comment><USER8> Yeah I think the ussage would really benefit from tailor made mobile apps.

</comment></comment></comment><comment><USER9> I'd like to see a feature where people could at photos from those buzzed locations. Integrate with twitter, facebook etc.

<comment><AUTHOR> Great idea - I also want to add Facebook Connect functionality to remove a barrier to entry for signup.

</comment></comment><comment><USER10> Question, if a restaurant gets on it once, will it ever be able to get on again?

If there's a "buzz" at a restaurant, there will be a lot of people there, and it will be harder to find a seat. Of course, it'll be a good sign if you have this problem, but it may be something to watch out for.

<comment><AUTHOR> If you're asking whether a restaurant can appear on the front page more than once the answer is yes. People can vote for a place multiple times (once per week). So if the restaurant is voted on enough it can appear near the top of the list lots. I could do a better job of communicating what, precisely, the list of venues represents.

</comment></comment><comment><USER11> Like it. The header part is to big in my opinion. You should come up with a nice slogan or a line to describe what your project is about.

How do you do approach new customers? What is the business model behind it?

<comment><AUTHOR> I'm having a little difficulty coming up with a tagline for the site that isn't "It's Digg for Places". Any suggestions on this front would be hugely appreciated. As would suggestions of strategies for approaching new customers. It's brand new at the moment, I'm still working out some problems but once it's ready I want to be in a position to grow reasonably quickly.

Re. the business model - I have a few ideas in mind right now, particularly in the arena of local advertising/coupons/offers. Nothing fleshed out yet.

<comment><USER12> buzzd.com seems to do something similar - although they focus mainly on the mobile platform. They determine which place is 'buzzing' based on twitter updates, direct buzzes etc for a bar/restaurant.

I think the idea has potential - A couple of suggestions that might seem redundant since some have already been suggested above - make it more streamlined (workflow) & integrate fb connect. Twitter integration will also be great to buzz places automatically via Twitter. Any plans for mobiles ? Additionally, check if you use yelp api to populate places - dont know if it will violate their ToS, but no harm in checking.

edit: You could also add relative scores - ie, a bar/restaurant that was in the top position has down by x percentage etc.

</comment></comment></comment><comment><USER13> this absolutely has to be a mobile app--the only time im ever looking for a place to go to is when im already out and the present venue is lame. for 20-somethings, venue is rarely planned ahead of time, and we usually hit multiple venues.

as far as venue discovery, again, its something that is gonna come up in conversation--"oh hey let me check my iphone!" Though, I might allow you to send me weekly spam of hot spots and their specials, correlated with your value add. hey, that's a nice business model...

<comment><AUTHOR> _"the only time im ever looking for a place to go to is when im already out and the present venue is lame"_

That's pretty much the exact reason that drove me to create the site. I've been in the same situation more times than I care to remember and I couldn't find anything to suit my requirements - that is: to narrow down a couple of places that might be interesting in my immediate vicinity... _now_. Agreed it needs to be mobile.

</comment></comment><comment><USER14> Nice idea and nice design. It would also be nice if you could show people stuff from their own city (IP geolocation maybe?).

<comment><AUTHOR> Of course - that's the plan. We're London only for now as we work things out. Once it's fairly stable we should be able to roll out to other cities pretty rapidly.

</comment></comment><comment><USER9> I wanted to add a couple of nightclubs in my town (Kiev, Ukraine) but I was limited to London?

<comment><USER15> OP said it was London only at the moment while he's testing it.</comment></comment>


When the Government Takes Your Children - <AUTHOR> https://foto.gettyimages.com/news/politics/when-the-government-takes-your-children/ <comment><USER2> more pictures need to spread out from this atrocity, the public outrage will put a stop to this barbarism.

<comment><USER3> I wish. I just heard on the radio that 55% of Republicans support this policy.

 _"A Quinnipiac University poll released Monday found 55% of Republican voters support the separation policy, while 35% express opposition."_

[https://www.marketwatch.com/story/more-than-half-of- republic...](https://www.marketwatch.com/story/more-than-half-of-republicans- support-trumps-policy-of-separating-migrant-families-poll-finds-2018-06-18)</comment></comment>


U.S. Senate to investigate 'aggressive' online sales tactics - <AUTHOR> http://www.techflash.com/seattle/2009/11/us_senate_to_investigate_aggressive_sales_tactics_on_the_internet.html?ana=from_rss

<comment><USER2> Now those companies are in serious trouble.

It looks like I wasn't the only one to be offended by the 17 pages of post- purchase maze when ordering business cards on vistaprint. Those pages really hide the one "next" button and do everything in their power to make you accidentaly click on a myriad of junk offers.

Looks like Mike Arrington's crusade is gaining some friends and the US senate is getting involved. I'm curious to know if there is a link. Does a tech blogger have such influence? It looks like the senate stuff is based on older investigation. Nonetheless, it's scammers' season and it's good for us.</comment>


Complete authentication app based on Clojure, Noir and MongoDB - <AUTHOR> https://github.com/xavi/noir-auth-app

<comment><USER2>
        GET /resend-activation?email=:email
        GET /email-changes/cancel
        GET /email-changes/resend-confirmation

Shouldn't these all be POST? GETs are supposed to not have side effects.

<comment><AUTHOR> You're probably right. I'll change that.

Apart from the REST argument, the best single reason I can come up with to justify changing these to use POST is that otherwise it's possible to cancel an email change or resend a confirmation of a logged in user by having him load a page containing an image tag like <img src="url-to-cancel-email-change" /> . This is the same reason for which noir-auth-app handles logouts through POST instead of GET. Not really dangerous I guess, annoying at most, but worth to fix it anyway.

By the way, in twitter.com (and I guess a lot of other not so popular websites) these are handled as GETs, and so they're subject to this kind of "attacks".

Thanks for raising the issue.

<comment><USER2> I suppose these particular paths aren't as exploitable as a logout (which isn't a GET on Twitter, either, it seems), but what about, e.g., Chrome's link prefetching? I'm not sure how it would know not to prefetch, for instance, the "cancel email confirmation" link.

Anyway, I'm teaching myself Clojure right now and this looks like great sample code to study, so thank you for sharing it.

<comment><AUTHOR> From what I understand, Chrome doesn't prefetch HTTPS URLs

<https://developers.google.com/chrome/whitepapers/prerender>

but Firefox does

[https://developer.mozilla.org/en- US/docs/Link_prefetching_FA...](https://developer.mozilla.org/en- US/docs/Link_prefetching_FAQ#Are_there_any_restrictions_on_what_is_prefetched.3F)

So, using HTTPS could be a way to avoid prefetching, but it would not always work.

In any case, I've already committed the changes that you suggested, so now noir-auth-app is free from these problems.

</comment></comment></comment></comment><comment><USER3> Many thanks for posting this! Only the other day I was evaluating Noir for a webapp and the lack of a capable user auth capability was the main blocker...

<comment><USER4> It's pretty easy to put together. Just encrypt the password and use noir.validation for the form fields.

For example, heres a Noir app I wrote using bcrypt and Redis to store the data.

User model: [https://github.com/dmix/documeds/blob/master/src/documeds/mo...](https://github.com/dmix/documeds/blob/master/src/documeds/models/user.clj) (most of the model code is redis interface code)

Login / Signup views: [https://github.com/dmix/documeds/blob/master/src/documeds/vi...](https://github.com/dmix/documeds/blob/master/src/documeds/views/users.clj)

</comment></comment><comment><USER5> Any apps like this which use a traditional DB (mysql or pg) ? Want to see how a relational model translates to clojure.

<comment><USER6> SQL in Clojure looks very much like you are used to in other languages. Take a look at either the Clojure JDBC wrapper library or Korma for more syntactic sugar and composing SQL fragments:

<https://github.com/clojure/java.jdbc/> <http://sqlkorma.com/>

There is also the Friend authentication library that you might want to take a look at:

<https://github.com/cemerick/friend>

</comment></comment><comment><USER7> Looks really nice, authentication is something many are doing wrong and it's important to have good templates

One question, why not use ensureIndex ? is there a real performance running it once it's created?

<comment><AUTHOR> Thanks, and sorry but I don't understand what you mean about ensureIndex, which is actually used by calling CongoMongo's add-index! in

[https://github.com/xavi/noir-auth- app/blob/master/src/noir_a...](https://github.com/xavi/noir-auth- app/blob/master/src/noir_auth_app/models/user.clj)

which in turn calls ensureIndex in the underlying Java driver, see [https://github.com/aboekhoff/congomongo/blob/master/src/somn...](https://github.com/aboekhoff/congomongo/blob/master/src/somnium/congomongo.clj)

<comment><USER7> good, this explains it :)</comment></comment></comment>


Clever CSS Easter Egg: Search Google For "Tilt" Or "Askew" On Your Smartphone - <AUTHOR> http://thenextweb.com/google/2011/04/06/fun-tip-search-google-for-tilt-or-askew-on-your-smartphone/

<comment><USER2> Since this article doesn't have much substance, if you're looking to do something similar, check out this article on CSS rotation transformations.

<http://snook.ca/archives/html_and_css/css-text-rotation>

<comment><USER3> Indeed. This crashed my browser (Dolphin HD).

</comment></comment><comment><USER4> I was hoping that this would automatically retilt the screen using the accelerometer. Alas, it always simply just rotates it a few degrees.

<comment><USER5> That's a cool idea. Accelerometer support for JS was added to iOS 4.2 [1], so it should be possible to modify the CSS transformations based on the DeviceOrientation [2].

[1] [http://www.mobilexweb.com/blog/safari-ios-accelerometer- webs...](http://www.mobilexweb.com/blog/safari-ios-accelerometer-websockets- html5)

[2] <http://dev.w3.org/geo/api/spec-source-orientation.html>

</comment></comment><comment><USER6> I'm rather disappointed it doesn't take accelerometer input...

</comment><comment><USER7> Only works on iPhones and Androids, I suppose. Didn't work on my Nokia C7 (a _very_ competent smartphone..)

Is the term "smartphone" only limited to those platforms now..? :-(

<comment><USER8> Works on HP webOS. Think it is a webkit browser thing.

<comment><USER9> Yep, WebKit is the engine most commonly used in current smartphone browsers.</comment></comment></comment>


Announcing Rust 1.30 - <AUTHOR> https://blog.rust-lang.org/2018/10/25/Rust-1.30.0.html <comment><USER2> The module/crate path issues raise a question, why doesn't it mimic what the file system does and have / for absolute paths, and ./ for relative paths? Of course it would probably be to hard to change it now in Rust but the similarity between filesystem paths is uncanny.

Dhall [0] does that, additionally they allow using URL to import code.

[0]: [https://github.com/dhall-lang/dhall- lang/blob/master/README....](https://github.com/dhall-lang/dhall- lang/blob/master/README.md#example-configuration)

<comment><USER3> I think the main drawback of using URLs is that you don't have a uniform way of handling versions and compatibility. It's certainly possible for a server to implement SemVer in it's URL scheme, but I think what you get with a package manager like Cargo is much more consistent.

<comment><USER2> I was mainly proposing using paths and added URLs as an interesting tidbit but if you check the Dhall Readme I linked there is an example with content integrity (sha256 checksum). As for versioning: use different URL for different version! Even simple /v1 and /v2 would work.

<comment><USER3> I latched onto the URL idea because it's something we're wondering about with the `peru` project today :) [https://github.com/buildinspace/peru/issues/193](https://github.com/buildinspace/peru/issues/193)

Totally, fetching a single version through URLs works now, even on GitHub if you use tags. The tricky part is saying "I'm using 1.0, and 1.1 just came out, so I should upgrade to that." That requires ecosystem-wide agreement that everyone's going to use SemVer, and it assumes that everything's hosted in git or similar where there's a standard way to enumerate the available versions.

<comment><USER2> Well tags are usually perceived as immutable but one can imagine adding an info to the tag with the "next version" coordinates.

For example, tag v1.0: and a text at the bottom of the message "Next-Version: v1.1".

Or if one can enumerate versions/tags you could add back pointers to new versions/tags. Example, tag v1.1 with message including "Replaces-Version: v1.0".

</comment></comment></comment></comment></comment><comment><USER4> I'm not a Rust user, but I'm always keeping an eye on it as it drives for improved usability and intuitability. I really admire the open-mindedness and devotion toward improvement that the Rust community displays.

One question I have about this update in particular: The raw identifiers syntax addition seems like syntax support for a convention. For example, I could use `r#for` or `_for` to solve the same problem, however, the first requires special syntax and the second doesn't. What does the syntax facilitate that a leading underscore doesn't?

<comment><USER5> In edition 2018, Rust now has reserved `async` and `await` as keywords. Since crates written targeting edition 2018 need to interoperate with edition 2015 (and vice-versa), some syntax is needed to be able to use identifiers that are also keywords.

For example, my 2015 crate might have a function `fn async(enabled: bool)` that I need to call from 2015. I could call it as `r#async(true)`.

This follows the existing syntax of `r"foo"` / `r###"foo"###` for raw strings as well as raw byte literals: `br##"HELO"##`;

Another use case will be for libraries like Diesel [0], a SQL query builder. People want to be able to search the documentation for SQL's `WHERE`, but `where` is keyword in Rust. They could choose to add a method called `r#where` to allow this kind of discoverability.

[0]: [https://diesel.rs/](https://diesel.rs/)

<comment><AUTHOR> I read the parent as suggesting that you could call it as

      _async(true)

<comment><USER4> No, this isn't what I meant to imply (though I understand your confusion). I didn't realize (or understand) that the syntax is meant to facilitate interoperability between different versions of Rust.

</comment></comment></comment></comment><comment><USER6> Just out of curiosity : what are the next big features related to the borrow / ownership management ? I've always heard that was rust main pain point, so i'm wondering what are the Rust devs main long-term improvements on that matter.

<comment><USER5> Non-lexical lifetimes [0] are scheduled to be enabled in the Rust 2018 edition, which will be the default edition as of Rust 1.31, the next release.

After that, there's still some work that can be done towards NLL, specifically some details around how borrowing across functions works when the compiler "should" know that there actually isn't a borrow. This is part of some work codenamed "Polonius" [1], which should also improve the compiler time required to apply the borrow checker's rules.

[0]: [https://stackoverflow.com/q/50251487/155423](https://stackoverflow.com/q/50251487/155423)

[1]: [https://github.com/rust-lang-nursery/polonius](https://github.com/rust- lang-nursery/polonius)

<comment><USER7> Is NLL going to be tied to Rust 2018 now? As someone who has been programming with #![feature(nll)] for a long time that would be unfortunate...

<comment> mark-simulacrum For the initial release, NLL will be enabled in "migration" mode in 2018 only. `#![feature(nll)]` will continue to be available -- that hard-enables MIR borrowck instead of the migration mode. (edit: to be clear, the feature gate is not stabilized, but it will be available on nightly)

Migration mode means that the MIR borrow check will run, and if it errors, then AST borrow check will run, and if that compiles successfully then the MIR borrow check errors will be downgraded to warnings. If MIR borrow check is successful then AST borrow check does not run and its errors will not impact the results.

Eventually we will enable MIR borrowck fully on all editions; I personally hope this happens sooner rather than later so we can delete the old code, but we have no concrete timeline just yet.

</comment></comment></comment></comment><comment><USER8> While there are a lot of really nice things in this release, the progress bar is what got me the most excited. Given the long compile time of some of my projects this is much appreciated.

</comment><comment><USER9> Are raw identifiers "compatible" with normal ones? E.g. if i define fn r#something(), can I call it just as something()?

Besides the backward compatibility reason they might also be good for codegen tools. I encountered the situation multiple times that some identifier was used in an IDL (e.g. Thrift, Protobuf, etc) that then got exported into a keyword in a target language which prevented it from compiling. To word around that sometimes the IDL definition needed to be changed, which wasn't ideal. By generating only raw identifiers this can be avoided.

<comment><AUTHOR> The only reason to define it as `r#something` is if something is a keyword, and so regular-old `something` doesn't work. But if you happened to do it anyway, then yeah: [https://play.rust- lang.org/?version=beta&mode=debug&edition=...](https://play.rust- lang.org/?version=beta&mode=debug&edition=2015&gist=e73bd3ed13cf9e28e3b0e8e8145be957)

But yes, the `r#` isn't part of the name; if I define a Rust 2015 function as `fn async()`, in 2015 i can call it as just regular async() in 2015 code, and only need r#async() in Rust 2018 code.

And yeah, this is useful for codegen tools as well.

</comment></comment><comment><USER10> Thanks to the Rust team! Rust 2018 release is one step closer.</comment>


The Heroku Pricing Gap + Add-on Fever - <AUTHOR> http://blog.bryanlanders.com/post/26155936402/heroku-pricing-gap-addon-fever

<comment><USER2> Remember Heroku have to support millions of users on the free tier on a permanent basis, all of which costs very real cash money compared to your average freemium web business.

AWS only have a temporary free usage tier so collect money right up front even on the smallest projects.

For that reason, these relatively large step functions in pricing at the low end are reasonable from where I'm sitting.

<comment><USER3> It sounds like you're agreeing with the OP.

Heroku is a great deal for people just starting out, somewhat at the expense of those who have already grown larger. His strategy seems sound-- use Heroku at the beginning, then if and when it gets unjustifiably expensive, switch to AWS.

</comment></comment><comment><USER4> The OP undervalues that bit in the TLDR: "stress-free deployment". For us, hiring or contracting a DevOps guy with 1/10th the chops of the heroku crew would cost 10x what we are paying them, and I don't think we'd have a better quality of life.

Heroku is only expensive if your time has no value.

<comment><USER5> Yes, maintenance (upgrades, security patches, scaling up instances...) if you're going DIY on AWS is also significant. The time needed for setup + maintenance varies greatly depending on the developer(s) as well as the exact project needs, but at a minimum, Heroku needs to be at least as expensive as AWS minimum costs + bare minimum setup costs before switching to AWS could be considered cost-effective.

</comment></comment><comment><USER6> What kind of traffic could you handle on a 100% free account? Would it be feasible for a low-traffic website, say a few k requests per month?

If I want to upload files, is it necessary to have an Amazon account? As I understand it, you can't use Heroku for dynamic file storage.

<comment><USER5> No idea. Someone who has experienced that on Heroku should weigh in...

We're hosting static media on S3, but this project has no UGC and very limited amount of media assets, so you'd have to consider the AWS costs depending on your own needs.

When I first deployed to Heroku, I was serving media right from the web dyno, and it was working, but since the app is serving up the files (not Nginx serving them directly instead, or similar), I'd imagine that's not a great solution in terms of scalability.

</comment></comment><comment><USER5> @glenngillen (a Heroku dev) mentioned that it's the add-on providers who set the pricing for add-ons.

<https://twitter.com/glenngillen/status/218830351307522048>

</comment><comment><USER7> 90$ for 1GB memcached? I am paying 65$ for the whole server (i7 quad, 32GB ram, 3TB disk, 10TB bandwidth) and can setup 30GB memcached if needed.</comment>


Naval Academy reinstates celestial navigation - <AUTHOR> http://www.navytimes.com/story/military/tech/2015/11/01/naval-academy-reinstates-celestial-navigation/74998554/ <comment><USER2> I was in the last class to have the old celestial navigation class. It's not a difficult thing to do. You take a measurement with a sextant then consult a fifty pound book full of tables, get the two closest numbers to what you want and interpolate.

There are various techniques based on time of day and the stars you can see, but if you're not doing it regularly you're going to have to look up the procedure anyway.

And although you might not always be able to rely on GPS, inertial navigation, dead reckoning, and visual navigation using landmarks, celestial navigation has a huge drawback.

It's defeated by cloud cover and fog.

<comment><USER3> Not to be overly pedantic, but if you have an accurate timepiece you can get your longitude from averaging sunrise and sunset times. It's not particularly accurate, if you can't see the sun, but could be useful if you where otherwise lost at sea and under total cloud cover for a long period of time.

<comment><USER4> Do you mean latitude? I remember the days being longer in the summer when I lived at higher latitudes, but I'm having trouble seeing how you could calculate longitude by looking at sunrise/sunset.

<comment><USER4> Thanks stan_rogers and splat, using local noon plus a clock makes total sense after you described how it works. And I just read a fun Wikipedia node on the history of longitude for good measure too.

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

<comment><USER5> There is an excellent book about "the Longitude problem" that details John Harrison and the invention of high precision chronometers: [http://www.amazon.com/Longitude-Genius-Greatest- Scientific-P...](http://www.amazon.com/Longitude-Genius-Greatest-Scientific- Problem/dp/080271529X) Great short book for any engineer.

</comment></comment></comment></comment></comment><comment><USER6> Three hours of training? Either celestial navigation is much easier than i think it is or this is exactly the sort of compromise mothers should warn their children about. I'd rather sail into a GPS outage with a one in ten chance of having a navigator trained 30 hours on board than with a 100% chance of having one trained three. And it gets better when you consider crews larger than one. Sure, we all know that decision making isn't easy, but that should not be an excuse to get away with a compromise like that.

<comment><USER7> Celestial navigation is way easier than you think it is. We have accurate clocks now, and you can just take the measurements and feed it into the computer.

<comment><USER8> The point of this training today, I would expect, is that computers might not always be there.

<comment><USER9> If the people on a modern naval ship don't have access to some kind of basic computer, then they have bigger problems than navigation.

<comment><USER10> A total blackout has happened to a US Navy Ship in recent memory: [https://en.wikipedia.org/wiki/USS_Yorktown_(CG-48)#Smart_shi...](https://en.wikipedia.org/wiki/USS_Yorktown_\(CG-48\)#Smart_ship_testbed)

<comment><USER9> And when that happened, they had a bigger problem than navigation.

</comment></comment></comment></comment></comment></comment><comment><USER11> This topic, though a different article, received a fair bit of discussion a month ago:

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

</comment><comment><USER12> Why not instead a "modern" digital sextant consisting of a digital camera and software. Still enables navigation by the stars (or sun) as a backup to GPS without having to spend thousands of man-hours training cadets to do it manually. And while not as accurate as GPS certainly, it would most likely be better than or at least equal to the best human navigators.

You'd harden the system against EMP which is probably a standard requirement of military electronics anyway (I'd hope...)

</comment><comment><USER13> Even if you don't encounter an enemy attack that disables GPS (which is not difficult), you (meaning anyone concerned with national security) should still be prepared for navigation by alternate methods when you consider how often equipment malfunctions can cause self-jamming of GPS. It's happened to me on systems that I support.

</comment><comment><USER14> Interesting. I've been reading the Aubrey-Maturin series by Patrick O'Brian, and besides looking up what in the world spotted-dog, calipash, staysails, the various and sundry varieties of vessels, or a Magellan jacket are, there's a fair amount of old-time celestial navigation throughout - the constantly documented daily ritual aboard ship is punctuated by the daily observation of noon, and comments on the nutation(?) of the planets... It's pretty amazing how well people were able to fix their positions with such primitive instruments.

I can pick out the Big Dipper at night, and figure out if I'm going east or west by the sun during the day, but that's pretty much the extent of it. I've never been out in the open sea, where I imagine you can actually see the stars well - the day-glo murk from the omnipresent streetlights blots out most of them if you are anywhere near civilization.

</comment><comment><USER15> I must be the last person ever who survived thanx to sextant in 1990:

I had $50 plastic sextant "Ebco". I made a program in my pocket computer (Atari Portfolio) which automatically showed your position on a map (A line perpendicular to the sun, ie with several measurements you could get a total fix). Realized however that sextant is useless if there is no horizon visible in direction of the sun. I needed "artificial horizon" but it was $1000. Too expensive. Then I saw the movie about Nansen crossing the Greenland. All he had was a bottle of mercury. He simply measured the angle between the sun and its reflection. I felt soo stupid.

Then I started paddling from Vancouver city to the west in 1990. I did not understand them tides. I did not know you can get pretabulated tables. I was paddling against tides most of the time. Somewhere between Kelsey Bay and Telegraph Cove there was 2 weeks period of fog and rain. I totally lost it. I was running out of food. I decided to turn back to Kelsey. But then the setting sun peaked out and I was able get my longitude. I was 3 kilometers from Telegraph cove. Paddling back would have been a suicide.

About 80 km between those places. But I was doing it against tides averaging less than 10 km per day.

BTW. George Vancouver was also stuck for weeks at the same stretch of Johnstone Strait. The devilish tide current appeared to be totally random and followed none of the god-given rules and laws.

[https://www.flickr.com/photos/timonoko/9513772987/in/album-7...](https://www.flickr.com/photos/timonoko/9513772987/in/album-72157634483451516/)

</comment><comment><USER16> We will be seeing more of this kind of stuff as the world gets more complicated. Obviously, there are not enough people who know how to troubleshoot computer networks, debug poorly written legacy code and simply maintain the complex realtime systems that are used to automate buildings, boats and planes. I can imagine pilots will continue to be required on planes for this reason even though planes largely can fly themselves. Same thing with reading topo maps - a skill that all infantry will continue to need even though they have gps. In a sense, this is insurance needed to protect us from "the ghosts of Luddites'.

</comment><comment><USER17> There's a reason certain ICBMs, like Trinity, still use celestial navigation. GPS can be disabled - but the stars aren't going anywhere.

</comment><comment><USER18> If anyone has read "Ghost Fleet", this seems appropriate. However, I tend to agree with usrusr about the seemingly shallow depth of the course.

[http://www.amazon.com/Ghost-Fleet-Novel-Next- World/dp/054414...](http://www.amazon.com/Ghost-Fleet-Novel-Next- World/dp/0544142845)

</comment><comment><USER19> > The same techniques guided ancient Polynesians in the open Pacific and led > Sir Ernest Shackleton to remote Antarctica, then oriented astronauts when > the Apollo 12 was disabled by lightning, the techniques of celestial > navigation.

You'd think the proof reader would at least catch an issue in the very first sentence.

</comment><comment><USER20> Very cool.

Back in the 1970s I owned a sextant that I kept on my sailboat but I don't remember how to use one anymore. GPS is great but old skills like celestial navigation and old fashioned dead reckoning get forgotten.</comment>