Ask HN: Favorite HN threads of all time - <AUTHOR> Have any Hacker News threads ever truly changed your perspective on life, or technology? Post them please. <comment><USER3> This should be a good starting point:

<http://remembersaurus.com/askhn.html>

There are boatloads of good content in there, plenty of which have the potential of changing your perspective on life, tech or just about anything else that is covered.

<comment><USER4> I was so looking for that post frantically for the past couple of days but it just kept eluding me. Thanks a lot for posting it.

It makes me wonder how effective a well implemented human powered search engine could be. Its kinda overwhelming just thinking about it.

<comment><USER5> It's interested when you task reddit with finding something. It's like crowdsourced searching, with a few really resourceful people.

</comment></comment></comment><comment><USER6> This is the best HN comeback of all time: <http://news.ycombinator.com/item?id=35079>

<comment><USER7> Dunno. 5 years later and this pair of comments in that thread seems more interesting:

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

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

Dropbox is a huge business, with real revenue, which has helped millions of people. Tarsnap, despite cperciva's obvious talents, has not achieved anything like that level of success. dhouston wasn't flaming people in the thread, cperciva was.

Part of a really good comeback is substance. cperciva had the snappy retort. He really had won the Putnam. And on a much smaller scale, he won a comments thread on Hacker News. But the 20 posts there didn't create real world value. dhouston did. Maybe that's the real lesson of Hacker News. The best thread is the one you don't participate in, because you're working.

<comment><USER8> Tarsnap offers better security, and functions as more of a backup and less of a synchronization service. It's not really a head-on competitor to Dropbox, and doesn't especially favor non-technical users the way Dropbox does.

<comment><USER9> _more of a backup and less of a synchronization service_

I would say _entirely_ a backup and _not at all_ a synchronization service. If you're using Tarsnap for file synchronization, you're probably doing something wrong.

Tarsnap aims to be "good unix software" in the truest sense of the phrase: Pick _one_ thing and do it well.

<comment><USER10> Is another difference that dhouston is building a huge corporation (with many employees etc), while you're building something you can run yourself? (Not a criticism - it's my aim too.)

<comment><USER9> No, I don't want Tarsnap to be something I run by myself. I want Tarsnap to be something which _runs itself_. I just spent two weeks at conferences and didn't log into any of the Tarsnap servers even once -- and when I spent 36 hours travelling from one to the other (Ottawa to Brisbane -- 23 hours in the air!) I was worried about whether my suitcase would make all the connections, not whether Tarsnap would break while I lacking internet connectivity.

But getting to what I think you were really trying to ask: Yes, Tarsnap is much smaller than Dropbox, and I'm happy that I haven't taken money from VCs (or any investors for that matter) who would push for faster growth. I'd rather have _better_ product than _more_ product; I will probably hire other people to help with Tarsnap at some point, but the question I'll have to answer is not "can this person do useful work" or even "can this person do task X better than I'm currently doing it"; rather, the question will be "can this person do task X sufficiently better to overcome the cost of my no longer understanding it".

Tarsnap is first and foremost about security. Security is about getting details right. And getting details right... well, that requires a level of understanding of how all the different pieces fit together which simply wouldn't be possible if I were hiring dozens of people and throwing them into teams to churn out new features every week.

</comment></comment></comment></comment></comment></comment><comment><USER11> This is one of my favorite comments of all time, from mahmud. I've had it bookmarked for a while. The context isn't really important, because I think it was slightly OT comment. It's basically a suggested curriculum for studying Lisp implementation:

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

<comment><USER12> I have received more thank yous and mentions for that post than it got upvotes. It got 19 upvotes, but people still mention it.

(interesting to note that 2.5 years later, my opinion would be exactly the same, though now I would probably mention a few type-theoretic works; more foundational stuff, less petty bit-fiddling)

<comment><USER11> I've barely scratched the surface of that list, but I'd still be curious what you'd add to it. What type-theoretic work would you add? Pierce's TAPL, or is there something else that's more applicable to type systems in dynamic languages? What more foundational material would you recommend?

I would actually be interested in the foundational stuff if it might act as a primer for the heavier papers and books you listed there. I've read SICP and EOPL, but I found the chapter in Lisp in Small Pieces on denotational semantics almost incomprehensible, even though the later chapters on compilation were tremendous fun. I did take a stab at Semantics with Applications but couldn't quite get through it, although I probably didn't go after it with the gusto I should have.

Since then I've been getting into some more traditional compiler stuff (Appel's Modern Compiler Impl in ML) but have gotten hung up on trying to really understand parsing, which I have always skipped over like a smug Lisp weenie.

<comment><USER12> I am not ignoring this. I'm getting around to answering you. Perhaps out of band ..

<comment><USER11> Thanks, my email address is in my profile, but there's no rush of course. Your original comment provided quite a lot to indulge in.

</comment></comment></comment></comment></comment><comment><USER13> Ask HN: What is your preferred Python stack for high traffic webservices? <http://news.ycombinator.com/item?id=2910953>

Introduced me to a lot of webapp stack pieces that were highly worth looking into.

</comment><comment><USER14> It took me a long time to find this thread as I couldn't remember exactly what the discussion was about and parsing old emails and chats _finally_ revealed it.

This remark by codyrobbins - discussing the 'I could care less' idiom - <USER2> perhaps my favorite HN comment of all time. <http://news.ycombinator.com/item?id=854042>

This thread (a couple parents up from that one) provides the appropriate context. <http://news.ycombinator.com/item?id=853100>

</comment><comment><USER15> This is my go to for inspiration:

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

</comment><comment><USER16> This one, about hacking hacker news, is pretty epic:

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

</comment><comment><USER17> Ask HN: Is there something like HN for successful entrepreneurs?

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

See nirvana's second comment in the thread, especially:

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

</comment><comment><USER18> What is your favorite programming language? <https://news.ycombinator.com/item?id=3746692>

This had some really neat discussion about the finer points of some languages.

</comment><comment><USER19> I've used this thread as an example of who the members of the HN community are, and what startups they make:

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

</comment><comment><USER20> I saw this one when I first started visiting HN: <http://news.ycombinator.com/item?id=1924909>

</comment><comment><USER21> Highest voted stories: [http://www.hnsearch.com/search#request/submissions&sortb...](http://www.hnsearch.com/search#request/submissions&sortby=points+desc&q=+&start=0)

Highest voted comments: [http://www.hnsearch.com/search#request/comments&sortby=p...](http://www.hnsearch.com/search#request/comments&sortby=points+desc&q=+&start=0)

</comment><comment><USER22> Why does time go faster as we grow older: <http://news.ycombinator.com/item?id=713339>

What's your favorite HN thread: <http://news.ycombinator.com/item?id=2158116>

</comment><comment><USER23> A good place to look is at the HN lists page. Not exactly a curated list but you can usually find some of the more popular and 'hot' discussions here rather than the frontpage. Wadding through the top contributors usually lets you find some quality threads.

<http://news.ycombinator.com/lists>

leaders Users with most karma.

best Highest voted recent links.

active Most active current discussions.

bestcomments Highest voted recent comments.

noobstories Submissions from new accounts.

noobcomments Comments from new accounts.

</comment><comment> mansoor-s This one: <http://news.ycombinator.org/item?id=3996652>

</comment><comment><USER24> My least favorite, but the one that has probably influenced me the most:

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

</comment><comment><USER25> I don't want to sound negative, but.. there is so much content produced every day on sites like HN that I feel a bit like the past discussions don't matter anymore at all.

<comment><USER11> I disagree strongly; there's a lot of gold in HN's archives. Some things don't change, or don't change that quickly, and there are some topics (even in the young field of CS) that are classic, and some great discussion has already taken place on HN about them. Why do you think that doesn't matter? HN isn't even that old.

<comment><USER26> What is the best way to find the gold? Looking for an efficient way to find the good content from days of yore.

EDIT: Other than Ask HN Archive, mentioned above.

<comment><USER11> I don't have a silver bullet, but if you have a topic you're interested in, the search provided by Octopart is very good (bottom of the page), and it's not that time consuming to dig through the results. That's how I found mahmud's comment on Lisp compilers, because I was looking for discussion on HN about it.

Obviously some topics are harder to search for (for instance if you wanted to read about what HNers have said about Techcrunch over the years) but for the good and classic stuff (programming, math, etc) I think this works reasonably well.

It would actually be really cool to see what HN threads are linked to the most _from HN_. I bet that would be a decent way to find gold, especially on stuff you weren't specifically looking for.

</comment></comment></comment></comment><comment><USER27> Go here and sort by 'points': <http://jflatow.github.com/popdots/>

</comment><comment><USER28> <http://news.ycombinator.com/item?id=354539> (Mark Cuban is bullish on America)

The day after President Obama won the election and I lost over 60 points in that thread for calling him out, or rather the people for getting suckered into the race card. (I am not a US citizen and feel vindicated now, what a con job ... oops politics not good on HN)

<comment><USER29> Why do you feel vindicated now?

<comment><USER28> Will only discuss offsite.. not going to martyr myself again pointing out the obvious.

add: for starters, read the top comment on that thread, then you tell me if it was justified being top: <http://news.ycombinator.com/item?id=354589>

<comment><USER30> Martyr yourself? Your comment basically says "Obama isn't black enough, and he's a Muslim, but not enough of one." It's so far removed from reality that it's hard to even think of a response other than "flag for craziness". You didn't get downvoted for saying something controversial, you got downvoted for stringing a bunch of incoherent half-thoughts together.

And yeah, the top comment is pretty good.

You seem very bitter about something that would not make any normal person bitter. It's been several years since that comment. Move on.

<comment><USER28> I'm getting good lulz right now, and we'll see who has the last laugh in all of this. I have moved on.. just that the OP asked about favorite threads.</comment></comment></comment></comment></comment>


Astronomers find 9 new planets and upset the theory of planetary formation - <AUTHOR> http://www.eurekalert.org/pub_releases/2010-04/uoc--afn041310.php

<comment><USER2> I'd imagine that they've thought of this, but how do they know that the planets are truly moving backwards rather than just seeming that way due to a planetary strobe effect (<http://en.wikipedia.org/wiki/Strobe_light>)?

It's a serious question, I am curious. I don't know how they make these observations and thus whether or not the observations would be subject to strobe effect artifacts.

<comment><USER3> Measurements are taken over a period of time. I assume that all the stars looked at resolve to more than a few pixels wide on the CCD. In that case you can visibly see the planet travel across the star in successive frames.

Other methods? In theory if the star's rotating fast enough and you see it side-on, then roughly half the star's light will be slightly blue-shifted (travelling towards you) and half will be red-shifted (away from you). As the planet crosses the star, it will block light coming from one half of the star, then light from the middle, then from the other half.

If there's a dip in the red-shifted part of the spectrum, in time transitioning to a dip in the blue, then you know the planet is moving against the star's rotation. If the dip is blue to red then you know it's following the star's rotation.

And my university lecturer (mentioned in the article) would be very disappointed that I can't remember the actual method of how it's done.

<comment><USER4> Yes, I'm pretty sure all the measurements done in these sorts of studies are done using the redshift-blueshift method you mentioned. A rotating star has a "red" half and a "blue" half, and a planet transiting the star will cause first a blueshift then a redshift, or a redshift then a blueshift. I went to a talk on this subject a few months ago and was amazed by how sensitively they can pick this kind of thing up.

I think at that stage there was exactly one planet known in a retrograde orbit, but this new discovery shows that they're relatively common rather than being a one-off occurrence. Neato!

I don't think it challenges existing theories of planetary formation quite as much as is described in the article, since our existing theories of planetary formation are already pretty handwavey. I can easily imagine that a planet with a retrograde orbit could happen just due to collisions between large bodies during the planetary formation stage.

Oh, the other important thing to note is that the images are all "artists' conceptions". (Well, except for the one which shows two people in front of a telescope). Telescopes cannot possibly resolve a planet as a little dark disc in front of a big bright disc, so all these measurements just rely on the slight darkening of the star as the planet passes in front.

</comment></comment></comment><comment><USER5> anyone getting any new news on HAARP - Earthquake ?</comment>


Germ-Killing Brands Now Want to Sell You Germs - <AUTHOR> https://www.bloomberg.com/news/features/2019-04-22/even-clorox-and-unilever-want-the-booming-bacteria-business-to-thrive <comment><USER2> WSJ referred to this article with this summary: "The world's best-known antibacterial brands are now pouring millions into probacterial startups." (from the WSJ daily digest email)</comment>


USB4 Specification Announced: Adopting Thunderbolt 3 Protocol for 40 Gbps USB - <AUTHOR> https://www.anandtech.com/show/14048/usb4-specification-40-gbps-type-c-tb3 <comment><USER2> What's optional?

That's the most important thing to know is what's optional in the spec.

That could make it great or a major pain. I'm referring to how many features the specification defines as "optional" for manufactures and that the USB organization requires for logos.

This is why even USB-C is a nightmare. Consider a USB-C cable or device port. It could be charge only, data only, monitor support. There are even more permutations and sub-features. Oh, you wanted charging and found one that has it? Know how much power it enough or overkill? It could provide 15 watts, 100 watt, etc. Think you'll just google the specs page? Sure, they never miss providing any of these details or make any mistakes.

Whether USB4 means one thing with nothing optional (or at least a very small number of combinations), will probably determine how much you like it or get annoyed by it.

HP even made it worse with a laptop USB-C port that could technically be used for certain docking functionality but tried to fud-deny allowing it for marketing reasons.

<comment><USER3> Market opportunity: A USB-stick-shaped device that, when you plug it into a USB-C port, probes the port and lights up LEDs to show the port's capabilities.

      [x] 5 Gbps
      [x] 10 Gbps
      [ ] 20 Gbps

      [ ] Power Delivery

      [x] DisplayPort Alternate Mode

And so on.

<comment><USER4> Yeah until the spec changes/expands and you now need another device to tell you whether that stick is up-to-date on the spec :D

<comment><USER5> As long as the actual port remains identical the widget could be made up to date with a software upgrade.

<comment><USER6> You cannot add a led with a software update :)

<comment><USER7> Not with _that_ attitude you can't!

</comment></comment></comment></comment></comment></comment><comment><USER8> Ars Technica just wrote an article about the confusing names of USB versions [https://arstechnica.com/gadgets/2019/02/usb-3-2-is-going- to-...](https://arstechnica.com/gadgets/2019/02/usb-3-2-is-going-to-make-the- current-usb-branding-even-worse/) and now they have another one about this name. [https://arstechnica.com/gadgets/2019/03/thunderbolt-3-become...](https://arstechnica.com/gadgets/2019/03/thunderbolt-3-becomes- usb4-as-intels-interconnect-goes-royalty-free)

<comment><USER9> I feel like hand-wringing around that is a bit overexaggerated - at the end of the day the differences really matter for only really tiny subset of devices that need those 10GBit+ transfers and in that case you can guide yourself by the "SuperSpeed 10Gbit" "Superspeed 20Gbit" logos on the actual box.

For everything else the protocols are forward and backward compatible, so you just plug in the cable and it works.

<comment><USER10> So remind me, why can you walk into any apple store, pick up a new MacBook and a 5K LG monitor, and when you plug in the monitor using the USB-C cable that was bundled with the MacBook it just won't work at all?

My point is - the standards might be back and forward compatible. But the cables and ports definitely aren't - and your average consumer has absolutely no way of knowing. They look absolutely identical on the outside and when they don't work it's for completely non-obvious reasons.

<comment><USER11> A lot (most?) charge cables are USB 2.0 — just enough data to negotiate the higher power. If they supported faster data too, they'd be more expensive. But it definitely should be more clear! Apple's minimalism doesn't help in this case, either.

<comment><USER12> > Apple's minimalism doesn't help in this case, either.

Apple don't make a "USB-C data" cable - they make a USB-C charge cable, or a TB3 cable, and the TB3 one _has_ the thunderbolt logo on each end.

They also refer to it specifically as "USB-C Charge Cable", _everywhere_.

<comment><USER11> Yes, if you buy it standalone. But what about in the computer box? I've opened a lot of MacBook Pros, and I can't remember seeing any labeling.

<comment><USER13> I've gotten into the habit of taking the supplied cable on all Mac portables and replacing it with a Thunderbolt 3 40gbs 100w cable from Monoprice before handing it over to the staff person. It cuts down on "why won't this work" questions surrounding monitors and such.

<comment><USER14> Except that longer Thunderbolt 3 cables apparently don't support 10 GBps USB 3.1 speeds. So if you want a cable that actually supports everything, it probably has to be the _0.5m_ Thunderbolt 3 40gbs 100w cable from Monoprice (maybe the 1m one too, but the 2m version is an active cable that won't support USB 3.1)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> As someone who knows next to nothing about how USB actually works and just uses it, what goes into making each USB generation faster?

At the physical layer, is it the materials in the cables are getting better? Or new ways of using the same materials?

At the protocol layer, is it newly developed computer science theory being applied or is it just old fashioned pragmatic engineering iteration, looking at usage and making the existing protocols more efficient with tricks and shortcuts etc?

<comment><USER16> Nope. Much simpler. Just enabling the use of the other data lanes that were already in the cable waiting to be used one day.

USB-C has 4 differential twisted pair data lines.

<comment><USER17> That sort of explains why USB cables have been getting more expensive. More copper.

<comment><USER18> Probably more like "better tolerances" or something like that. The labor/time put into a cable is the most pricey part, raw materials are probably only a few cents, even if you double the copper into it.

</comment></comment></comment></comment><comment><USER19> > ... it will not be exactly Thunderbolt 3 as its functionality will likely be > different.

I don't understand how this isn't simply ratifying/renaming current TB3-on- Type-C-connectors and this cryptic sentence in the page doesn't help. Anybody know?

This isn't to say that such a renaming might not be a good idea! But it would be nice to know if my current Type C ports with TB and DB support were in fact already "USB 4.0."

Also: speaking of nomenclature: notice that according to the press kit slide show, USB 3.1 Gen 2, USB 3.2 Gen 2x2, and USB4 all have the same "Alternative Branding": "Super Speed+". Madness!

</comment><comment><USER20> Here's an idea, let's make different connector shapes depending on the cable/connector's capabilities, lets do one for connectors that support display, one for power, one for thunderbolt, that way they're easy for the average consumer to identify!

Oh wait that's the issue USB was supposed to solve in the first place....

<comment><USER21> My hope is that Type-C is going to be all of those things so that in the future, I only need one kind of cable (until the inevitable new plug that supplants it, but hopefully universally used as well). Currently, I have to pay attention to a USB3 Type-C cable vs a Thunderbolt 3 cable as there is a difference (I was shopping for a long TB3 cable and was unable to find one. Instead, seems the longer ones tend to be USB3 Type-C cables).

<comment><USER22> This is not a realistic expectation, unless you are OK with your "one cable" being 0.5m long. The "one-cable" thing is a dream, unfortunately.

<comment><USER23> "Active Thunderbolt 3 cables support Thunderbolt at 40Gbps data transfer at lengths of up to 2m. Optical cables are targeted later, with lengths of up to 60m."

[https://blog.startech.com/post/thunderbolt-3-the- basics/](https://blog.startech.com/post/thunderbolt-3-the-basics/)

<comment><USER24> Of course the optical cable won't transfer 100W of power, so we're back to needing two types of cable (power delivery USB-C and non-power-delivery USB-C).

I guess technically you could make a USB-C cable that transfers signals optically and has high-gauge wire for power, but that sounds unwieldly and expensive.

<comment><USER25> > Of course the optical cable won't transfer 100W of power

You sure about that? The optical cables will still have copper wires for power transfer. Only the high-speed data is carried over optical fiber. Eliminating electrical interference from the data path might even permit higher voltages, and thus thinner, more flexible wires for the same power.

</comment></comment></comment></comment></comment></comment><comment><USER26> So… maybe I'm missing the details, but is this just basically rebranding TB3 as USB4? That would make a lot of sense, if so.

Edit: Ah, I missed "it will not be exactly Thunderbolt 3 as its functionality will likely be different". That's a clear as mud, then.

</comment><comment><USER27> Whoa. Does the addition of Thunderbolt imply that all USB4 host systems are exposed to DMA attacks[0]?

Doesn't this open up every USB system (all systems?) to arbitrary, uncontrolled memory access including silently flashing new firmware/microcode to system components?

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

<comment><USER28> That's what the IOMMU is for. USB4 being Thunderbolt could therefore be a good thing, because it will force operating system vendors to actually set that up correctly, making the hardware more secure generally.

The option also exists to require approving or whitelisting devices before they are allowed to work over Thunderbolt.

</comment></comment><comment><USER29> Not USB 3.2 Gen 2x2x2?? Come on, consistency people!

<comment><USER30> It ought to be USB 3.3 Gen 2x2x2, and USB 3.2 Gen 2x2 will be retroactively updated to USB 3.3 Gen 2x2 because everything is always the newest version of USB.

<comment><USER20> Best part is all USB 3 ports get to be rebranded as USB 3.3 as well.

<comment><USER30> I'm honestly surprised that they haven't rebranded USB 2 into USB 3.2 Gen 0 and USB 1 into USB 3.2 Gen -1.

<comment><USER8> Would USB 1.1 be USB 3.2 Gen -1.1 or USB 3.2 Gen -0.9? Hmm...

<comment> crooked-v Neither. It gets to be USB 3.2 Gen -1 Plus.

</comment></comment></comment></comment></comment></comment><comment><USER31> USB 4? You sure they don't mean USB 3.4 Revision 4 UltraSpeed HyperBus XP for Workgroups 3.11 Xtreme Edition?

</comment><comment><USER32> I'd be curious about 40Gbps for what cable length. TB3 is great, you can in theory dock a laptop with a single cable that will do charging, 10gbe, USB hub, etc, but with a max 50cm cable, which makes it quite "un-lappable". I'd love to do the same with a 2m cable.

<comment><USER19> Copper thunderbolt limit is 3 m. Optical thunderbolt can go much farther (naturally) but I've never seen it in the wild -- it might even have been abandoned by now.

<comment><USER32> But you can't charge a laptop with an optical cable. As for copper, I understand you don't get 40gbps with a 3m cable (though not a specialist).

<comment><USER33> You can, however, charge it with a combined cable that uses copper to bring power to the laptop (and optical converter), and optics to transfer the data.

<comment><USER19> Good idea, wonder if anyone will ever make one!

</comment></comment></comment></comment></comment><comment><USER34> Royalty free is the huge boon here.

<comment><USER35> Intel said that a couple of years ago, and yet you won't find an AMD laptop/desktop that supports thunderbolt.

<comment><USER36> One, what AMD laptop?

Two, I'd be interested to know if AMD bans board manufacturers from including TB or if they just don't do it because their heuristics say users don't care or want it.

I'd imagine now with the rise of USB-C it would be the latter. Before that AMD was stuck on a 5 year old desktop platform that probably couldn't run thunderbolt ports even if board makers wanted to include it.

<comment><USER35> >Two, I'd be interested to know if AMD bans board manufacturers from including TB or if they just don't do it because their heuristics say users don't care or want it

No, AMD boards already include the required TB hardware. They just can't enable it (yet) for whatever technical or legal reasons. Someone hacked them to enable it ([https://www.youtube.com/watch?v=uOlQbP63lDQ](https://www.youtube.com/watch?v=uOlQbP63lDQ))

<comment><USER37> There is no required hardware needed for Titan Ridge to work other than a PCIe expansion slot, you need UEFI drivers for it but that's pretty standard for anything today.

</comment></comment></comment></comment></comment><comment><USER17> Honestly, I'm waiting for old USB(USB A, USB B) to be deprecated and USB C become the new universal USB. As in ATM machine, you get the drill. Current USB cable situation is a mess - my phone is USB C, but it came with a USB A to USB C cable. Good thing I can connect it to my 2017 MacbookPro using it's original USB C charging cable! However then I can't charge. Sometimes I use a USB C to female USB A dongle to use my phone's USB A male to USB C. And the whole thing has become expensive, good USB C cables seem to be made out of gold. Life would become so much easier if everything was USB C to USB C

<comment><USER22> Don't get your hopes up, as this is just a dream. USB-C only specifies the connector. What your cables support, and what end devices support is anyone's guess. See for example [https://superuser.com/questions/1199917/what-is-the-d- shaped...](https://superuser.com/questions/1199917/what-is-the-d-shaped-icon- next-to-my-usb-c-port/1200112#1200112)

In my opinion, the mess is actually much worse with USB-C, as with earlier connectors I at least had a chance of guessing whether the cable/connection will work by looking at the connectors. With USB-C? No idea.

<comment><USER9> In practice this is significantly smaller issue than most media and techies made out to be.

Most devices are USB, they work and charge over the connector just fine. On laptops, connecting displays work as well. They will either use TB or negotiate for HDMI/DP which is also fine.

The only real outliers are crappy companies which deliberately break protocols like Nintendo on their Switch.

<comment><USER38> >Most devices are USB, they work and charge over the connector just fine.

There are USB-C Charge Cable, that does no Data ( To save cost )

>On laptops, connecting displays work as well. They will either use TB or negotiate for HDMI/DP which is also fine.

That is assuming the cable could do TB, which is also not true.

Once you get USB-C to everywhere to everyday normal users, they expect it to plug in and work.

</comment></comment></comment></comment><comment><USER39> Does this also mean that soon every computer will be making noise/radiating waves around 40GHz? Can someone with more depth in this area shine some light on this?

<comment><USER40> PCI Express is already working at those data rates.

<comment><USER19> Thunderbolt _is_ PCIe.

<comment><USER41> Not quite: [https://twitter.com/whitequark/status/1097777102563074048](https://twitter.com/whitequark/status/1097777102563074048)

"Thunderbolt, uh, does not expose PCIe lanes directly. Thunderbolt is an MPLS- like packet switching network that can encapsulate PCIe TLPs over a PHY and MAC without a spec, chips without documentation, and software with barely any support."

</comment></comment></comment></comment><comment><USER42> tl;dr: Intel made Thunderbolt 3 royalty free in 2018, so now it's essentially being adopted as USB4.

I had to look up what the point of 40Gbps was, and the industry evangelization site [https://thunderbolttechnology.net/](https://thunderbolttechnology.net/) explains that it will allow driving one 5k display or two 4k displays, which is not possible with the 20Gbps offered by USB 3.2 or Thunderbolt 2.

This also helps external GPUs, where TB2/USB3.2 is the equivalent of 2.5 PCI-e 3.0 lanes, while TB3/USB3 is 5.

With that, it seems the goal is to be a viable alternative to PCI-e and HDMI, rather than just improve on today's USB3 speeds for existing device classes.

<comment><USER17> Does 40Gbps mean two 4K displays daisy chained?

<comment><USER43> In theory, yes. Since driving one 60hz 4k display at 4:4:4 chroma takes roughly 18gbps then daisy chaining 2 displays should be possible.

</comment></comment></comment><comment><USER44> Will it be possible to connect a Thunderbolt 3 Macbook or Intel Ice Lake PC via USB-C cable to a USB 4.0 device and obtain 40Gbps throughput?

<comment><USER30> Article says "The USB4 specification will be based on the Thunderbolt protocol that Intel has contributed to the USB Promoter Group. The new interface will use USB Type-C connectors and will maintain _backwards compatibility with USB 2.0, USB 3.2, and Thunderbolt 3 interfaces_ ", so bet on _probably_. But maybe not, they might only mean that a USB4 computer can use a TB3 device.

I expect they'll continue the trend of inscrutable capability differences in USB-C ports, cables, and devices. To get the USB4 40GBps mode (effectively TB3) it's still going to be a more expensive active Thunderbolt-style cable, not a vanilla USB cable. Which means that standard markings for those cables will (hopefully?) be part of the USB4 spec.

Unfortunately, knowing USB-IF the major change from the TB3 to USB4 spec will be to drop the current Thunderbolt symbol on the ports and cables and replace it with a new variation of USB-super-hyper-mega-speed symbol to make cables as confusing as possible.

<comment><USER21> or port color. We've used blue and red at least, guess it is time for green (in which case, confusion for the Razer Blade users).

<comment><USER45> Apple will never use coloured ports.

<comment><USER21> pulling my MacBook Pro out of my backpack to look, it looks like they aren't fans of iconography to say what a port is capable of either. Can't remember if my old 2013 MBP had the icons or not, but my current one for sure doesn't.

<comment><USER30> All ports on Apple's laptops behave the same for charging - they'll continue to provide power while sleeping, but won't _start_ providing power. If you want to use it as a battery in your backpack while it's closed you have to plug your phone in, wake the computer up, then put it back to sleep. At least that was the case last time I tested it.

For the most part they don't need colors because all of the ports are the same. One recent exception was that the 2016/2017 MBPs had inconsistent Thunderbolt bandwidth because they didn't have enough PCIe lanes. IIRC left side had full 40Gbps ports but the right side had 20Gbps. The 2018 version has full speed on all four.

EDIT - another potential point of confusion, they don't mark Thunderbolt ports vs USB-C ports. On any given device they're all the same, but they expect you to know that the 12"-mini-macbook is just USB-C while the Pro and Air are all Thunderbolt.

So yeah, it'd be helpful to have some symbols on the laptops. They do label ports on their desktops. I assume this comes down to Ive not wanting labels on his beautiful chunk of aluminum where someone might accidentally see them while using it.

<comment><USER46> Wow, "only starts charging while awake" really explains some confusing mornings waking up to a dead laptop.

<comment><USER30> To clarify, I'm talking about using the laptop as a power source to charge other devices (phones, tablets, etc) off your laptop's USB ports.

If you plug them in while the laptop is asleep they won't start charging. If you plug them in while the laptop is awake they'll start to charge, and they'll keep going if the computer goes to sleep later.

If you laptop isn't charging itself while plugged in to the wall you have other problems.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER47> This is a poisoned gift, there was a twitter conversation posted a couple weeks ago about the cluterf*ck that thunderbolt is... quite a scary read :-/

[https://twitter.com/whitequark/status/1097777102563074048](https://twitter.com/whitequark/status/1097777102563074048)

<comment><USER48> Honestly, most of this addresses that, by opening the spec and getting rid of royalties.

</comment></comment><comment><USER49> Official announcement: [https://usb.org/sites/default/files/2019-03/USB_PG_USB4_DevU...](https://usb.org/sites/default/files/2019-03/USB_PG_USB4_DevUpdate_Announcement_FINAL_20190226.pdf)

</comment><comment><USER50> Is it an unpopular opinion that USB is already fast enough and has enough features and USB implementers should instead work on cost reduction and compatibility so that we can all move away from USB 2 and pre-type-C connectors?

<comment><USER51> It's not fast enough. USB cannot drive a 4k monitor at 60hz. You can use the physical interface to do it, but this uses Thunderbolt. This means that the dream of a one-cable-for-everything setup is not here yet, unless you use a Thunderbolt dock, which multiplexes the USB stuff in with the monitor signal. A thunderbolt dock costs around 10x more than a simple USB dock.

<comment><USER52> To be honest, I'm not really sure why this is necessary. I don't see why couldn't have two interfaces - one simple/moderate-speed one for most use cases, and a fast one (which could incorporate the slower one) for when it's needed. Trying to cram everything into one interface seems to introduce too many compromises (I no longer know what the port does) and a lot of complexity.

<comment><USER53> the point is you shouldn't have to know what the port does, it should seamlessly interconnect. you shouldn't have to be thinking about wires etc. it's like how bluetooth somewhat seamlessly interconnects across generations of bluetooth. that's how all standards should be

</comment></comment></comment></comment><comment><USER54> This is quite meaningful for external graphics solutions, PCI peripheral devices, and other modular pc components.

</comment><comment><USER55> I am starting to see computers with USB C on the host side. The future of one single connector to rule them all will be here soon. Wait a minute, we already had that, it was usb 2.0?!?!

<comment><USER56> I never saw anyone hooking up a monitor via USB 2.0

<comment><USER57> I've seen them for sale on Amazon and elsewhere. I always thought they'd be neat to throw in a supplemental kit bag for a second display on the go. I think some of the smaller ones were even bus powered.

<comment><USER45> Those are USB 3.0-based DisplayLink connectors.

Any supposed USB 2.0-based display connectors (I've never seen any, I'm just speculating) would have been some VNC-like contraption involving an emulated frame buffer on the host.

<comment><USER58> I've used bus-powered USB 2.0 display adapters in the past, even up to 1920x1080. They're usually a software-based renderer writing to a frame buffer on the USB device. Big updates or lots of USB traffic meant dropped/torn frames, and lots of extra CPU power used to drive it. It worked well for word processing and light web usage, but you wouldn't be watching an HD movie on it.

</comment></comment></comment></comment></comment><comment><USER59> I'd love to ditch HDMI (even on my television!)

<comment><USER60> To what avail really? You'll just be changing one cable for another. Also, HDMI 2.1 spec is 48gbps so USB4 wouldn't really be compatible with the latest HDMI version.

<comment><USER61> 4k TV is 26.52 Gbps at 16:9 aspect ratio, 100fps.

</comment></comment></comment><comment><USER62> "The detailed USB4 specification will be published in the middle of 2019 and half-assed, cheap hardware that only implements a subset of the total features list in order to cut corners on cost but still use the new name should appear in 2030 behind flimsy out-of-spec connectors and loose, easily damaged cables."

I had to add a few things to manage expectations and more accurately reflect reality, but I think we've got it now.

</comment><comment><USER63> Can it make DP1.4 and HDMI 2.1 obsolete?

<comment><USER64> You need one of those to send video, but they could be layered over Thunderbolt / USB4.</comment></comment>


The Debian Administrator's Handbook, Debian Jessie from Discovery to Mastery - <AUTHOR> A new edition of the 'Debian Administrator's Handbook' is available for free to download [0], and free to browse online [1], thanks to Raphaël Hertzog and Roland Mas.
There's also a paper version with a 25% discount until Sunday [2].
[0]
Epub: https://debian-handbook.info/download/jessie/debian-handbook.epub
Mobipocket: https://debian-handbook.info/download/jessie/debian-handbook.mobi
PDF: https://debian-handbook.info/download/jessie/debian-handbook.pdf
[1] https://debian-handbook.info/browse/jessie/
[2] http://www.lulu.com/shop/rapha%C3%ABl-hertzog-and-roland-mas/the-debian-administrators-handbook-debian-jessie-from-discovery-to-mastery/paperback/product-22408803.html <comment><USER2> Thanks for this!</comment>


What a street looks like 39 years after legalizing fourplexes - <AUTHOR> https://www.sightline.org/2019/06/21/this-is-what-a-street-looks-like-39-years-after-legalizing-fourplexes/ <comment><USER2> As a Dutchman, I'll never understand the American idea that "suburban feel" has to mean "fully detached houses". I mean, I live in a country where nearly all suburbs and small towns consist of mostly connected houses - duplexes, triplexes, hexadecaplexes (pardon if my Latin fails me here), and so on.

The big downside to such housing (I live in the middle of a chain of 20-odd connected houses) is that gardens are small-ish and close to the neighbours'. If they barbecue, you're sitting in the smoke. But hey, this isn't Texas, people only grill every so often. At the same time, the benefits are enormous: because suburban density is higher, everything is biking distance, even in bigger cities. You need a car for less, which means that there's less cars, so streets are safer.

The local suburban shopping areas are well equipped and nearby (biking distance and often walking distance). In my suburb, there's a few "shopping areas", i.e. street corners with a supermarket and a bunch of other shops (drugstore, kebab parlor, clothes maybe, etc). These shopping areas are not even _a kilometer apart_ from one another. If you live halfway two then you can walk 500m either direction and have sufficient facilities for your daily needs. These shops can stay in business _because_ the suburb is relatively densely populated. If we had detached housing everywhere, the shops would need to be bigger (to make it worth driving to), and thus further away (cheaper rent), and thus need big tarmac parking lots, making it harder in turn to visit multiple shops in a row, etc. It's just a nasty downward spiral.

I'm really glad the Dutch housing culture developed this way. I mean even small towns in cheap areas are built this way, even if the ground prices would mean detached houses are affordable for most. People just want to live close to facilities. Connected housing is the best backyard-included way to accomplish that.

<comment><USER3> Biking is for liberals and not needing a car is socialism...

<comment><USER2> I know you're trying to do the kind of non-witty sarcasm that usually just yields endless downvotes on HN, but you're onto something that I hadn't considered. I don't associate cars with anything, culturally. They're just a thing I use, like the dishwasher. But if there's a deep cultural idea that "car = freedom" then a residential area built around cars makes a lot more sense.

<comment><USER4> This is absolutely part of the American cultural bedrock. The gap-year road- trip, the teenager's first car, every single fast and furious movie... A really good recent example of this sort of meme is the movie Baby Driver. American culture equates driving with freedom, youth, and good times. Getting a car is a rite of passage in a lot of US communities.

</comment></comment></comment></comment><comment><USER5> This is how I was discussing with someone how growth should be. Rather than allowing developers to build a 1000 unit monstrosity (well monstrosities may also be allowed but within limits), allow the city to grow by relaxing limits on everyone and you will see that over 20 years, some of the new supply will come from the houses already there.

However today, I have seen examples in bay area, cities get pitted against residents (some call them nimbys but I do not agree with the characterization) by approving these monstrosities I mention and keeping the rules fairly rigid for ordinary homeowners. Some say it is because a) the developers have money to finance the politicians, and b) this allows the councillors to keep the development on the side of the city they do not live in. Not sure if the allegations of nimbyism to their neighborhoods are true, but have seen developer money talk.

The article's example would be a welcome change if cities went this way.

[ Dont want to name cities, but google cities vs residents with some creative search terms (yes I am not giving exact terms) and you will find many examples in bay area. ]

</comment><comment><USER6> So the author's street doesn't properly have off street parking for everyone meaning if it snows you can't plow. Kids can't play in the street anywhere and you're more likely to get terrible neighbors. I'll pass. My last neighbors used to burn their garbage in their lawn leaving ash to drift onto our cars and the fire department told them to claim it was a cooking fire if anyone complained. I get why people who enjoy cities wouldn't be opposed to this but I'm okay with my property value not going down because the types of people renters brings tend to care less about the neighborhood and having my neighbors far away from my house so they can do their thing and we can do ours without forcing our life choices on each other.

<comment><USER7> > ...you're more likely to get terrible neighbors. ... the types of people > renters brings tend to care less about the neighborhood

Nice classist stereotypes right there. Sounds like the local fire department was not doing their job properly if it simply let your neighbors burn garbage on their property. One way of ensuring "people care about their neighborhood" is to enforce sensible rules like preventing garbage fires.

<comment><USER6> Simple statistics, not class, wealthy people are just as likely to be terrible neighbors, more people means more chances for terrible neighbors regardless of class. I've also been a renter numerous times. Nearly no one in a rental property wants to invest the hundreds of dollars into heavy landscaping when they could be evicted and most rental property owners won't see a return on investment so don't do it.

The neighbors I had were terrible neighbors but they were home owners that were close to my house. The fire department in question literally writes the rules for fires, despite more than one fire where children were killed in town they still never had a problem with burning roofing tiles, bonfires large enough to burn 30 foot trees, etc. While I agree with you that enforcing sensible rules is a way to make better neighbors it is still more likely that higher numbers of neighbors leads to higher possibility of poor neighbors.

I've lived in multiple cities in multiple states, nearly all in fairly nice apartment or shared spaces so I'm definitely not limiting my dislike to poor areas. I grew up relatively poorer than my area and have been fortunate to get where I am by a lot of hard work and good luck, I also spend much of my free time working to help disadvantaged people within my community. So while I can see how you might have mistook my writing as classiest it was definitely not intended as such, noise complaints with neighbors are super common, as are smoke leaking through walls and floors, animals not being properly trained (my wife was attacked by such a dog), property and shared expenses disputes are all more likely in shared property. Now much of this can be handled by a good landlord, however the term slumlord exists for a reason. While this doesn't bother some people it bothers me a lot.

</comment></comment></comment><comment><USER8> Nit.

"Duplexes, triplexes and fourplexes"

Why not quadplexes? The author also uses 'oneplex'.

<comment><USER9> Because fourplex is a common term for that type of dwelling. quadplex is also acceptable, but less normal.

<comment><USER8> My point was that quadplex would be internally consistent. That then means you can predict the ones you don't already know, is it tenplex or decaplex for example?

<comment><USER9> Language is often not consistent.

In the US I suspect you would rarely hear either term, although tenplex would be more likely. A development of that size would more likely to be in the form of a townhouse, with row house or terraced house being more likely in the UK.</comment></comment></comment></comment>


GPS Heatmaps - <AUTHOR>

At the end of last year I created a visualization of 500 miles of running in 2014[1] and posted it to a few sites. A lot of people were interested and wanted to make their own but the code was... not good. So I decided to turn it into a mini-app that anyone could use. At the moment this is barebones MVP. Just raw GPX/TCX upload, no error handling or syncing with third parties etc.<p>http://www.gpsheatmaps.com/<p>[1] https://www.flickr.com/photos/dachande663/15965476529/ <comment><USER2> Posts without URLs get penalized. You'd be better off reposting this with a link to your site and the rest of the text as a first comment in the thread. You can put "Show HN: " at the start of the title as well. Good luck!

<comment><AUTHOR> Done. Thanks for the heads up.

</comment></comment><comment><USER3> Nice, I've often thought plotting commutes by speed and see where you get slowed down/stressed, could call those stress maps for commuters then. Everybody goes on about bigdata, maybe this year people can focus on personal data, be surprised what you can learn about yourself and this is a wonderful tool for enlightening you.

</comment><comment><USER4> I would be nice to be able to upload a CSV file.</comment>


Google Rules Out Windows 8 and Windows Phone 8 Apps, for Now - <AUTHOR> http://www.maximumpc.com/article/news/google_rules_out_windows_8_and_windows_phone_8_apps_now

<comment><USER2> The Google search app is out, and kicks ass.

</comment><comment><USER3> that sucks for windows...</comment>


Ask HN: Are there any auctioning algorithms? - <AUTHOR> I've been researching into algorithms used by major commercial websites (such as Amazon or eBay) to set prices. As I see there is a lot of auctioning on eBay, I can't help but wonder if some or a majority of these auction are done through algorithms, such as transactions done on the stock market. Is there any material that I can read regarding this and auction theory in general ? It doesn't seem to give a lot of results on google. <comment><USER3> I'd say look at Google - they (sort of) use a form of second-price auction [0] (also known as a Vickrey auction (first described by William Vickrey, a Nobel Laureate economist)) for their bidding process for AdWords. In short - <USER2> second-price auction is an auction where the highest bidder pays the second highest bid price.

A lot of auction theory (and price theory) is grounded in economics, so there's a fair amount of information out there in academic economic papers (Such as one on Vickrey - [1]). I'm not sure if they'd address what you are looking for from an algorithm perspective, but most economics papers will discuss (in depth) the quantitative aspect of the research, data, and results.

[0] [https://www.quora.com/Game-Theory/Why-in-a-Vickrey- auction-d...](https://www.quora.com/Game-Theory/Why-in-a-Vickrey-auction-does- one-pay-the-second-highest-price-and-not-his-price) [1] [http://econ.ucsb.edu/~tedb/Courses/UCSBpf/readings/Lovelybut...](http://econ.ucsb.edu/~tedb/Courses/UCSBpf/readings/LovelybutLonely.pdf)

edit: I'd also recommend a cursory look at various auction pages on wikipedia to get an idea of what you'd be interested in finding out about. [https://en.wikipedia.org/wiki/Vickrey_auction](https://en.wikipedia.org/wiki/Vickrey_auction)</comment>


Please review my twitter clone - <AUTHOR> http://bweeper.com

<comment><USER2> Honest question: Why?

Why are you attempting to make a Twitter clone? (I'm genuinely curious)

<comment><USER3> I think that is exactly the question to be asking. Of course the other question to ask is whats up with the horrible unprofessional looking logo?

<comment><USER4> It's a Laconica install. This is pointless. It's like saying, "Checkout my StackOverflow clone" and then linking to a phpBB install.

</comment></comment></comment><comment><USER5> Seem to be running the Identica platform, is there any features you are providing that Twitter/Identica does not have at the moment?

</comment><comment><USER6> Learn to use a spell checker. There's your review.

<comment><AUTHOR> i think yes i need to use spell checker.. but its just a start,so it will take some time..

</comment></comment><comment><USER7> My friends are on twitter, why should I use this?

<comment><USER8> It's open source (laconi.ca), scalable, easy to install, and easy to theme/develop with. It uses the openmicroblogging protocol giving you the ability to subscribe to users on other services and receive their updates, etc. It allows image uploading via other services APIs from the site itself. It has a twitter compatible API, you can subscribe to your twitter friends, as well as cross post to twitter, etc. It has XMPP, Email, SMS, API gateways. URL shortening, the ability to create groups, etc, etc. I've been following it's development off and on for about a year now, and great project. I don't use twitter or laconica/identica myself, so the usefulness of it is arguable. Regardless, I've had fun playing with the code.

<comment><USER9> You didn't answer his question.

</comment></comment></comment><comment><USER10> Good work!

I know how hard it is to try to build a tool that already exist, one advice quit doing twitter; instead build a good complement of twitter. Think of features that twitter does not offer, find ways to leverage the power of twitter, use its API to provide cooler stuff.

One thing to know is that the hardest part is not to implement twitter as an application; the hardest part is to convince people to use it and technically scale.

</comment><comment><USER11> what is the meaning of the word "doign" in the website's logo?

<comment><AUTHOR> thats a typo,need to modify..

</comment></comment><comment><USER12> Colors are dull, use vibrant colors to appeal the younger generation.</comment>


Do you have change for a billion? The mad world of Zimbabwe's currency - <AUTHOR> https://www.weforum.org/agenda/2016/11/do-you-have-change-for-a-billion-the-mad-world-of-zimbabwe-s-currency <comment><USER2> Those Zimbabwe notes are pretty cool. Somewhere I still have the 100 billion dollar note my friend from college gave me - at the time I think it was worth about half a penny.</comment>


Ask HN - are there any good web-based RSS readers apart from Google Reader? - <AUTHOR>

I currently use Google Reader as my RSS reader.  I love that it's web-based, because it means I can read my feeds from any PC, without having to sync my "already-read" lists.<p>But I'm not always convinced that having everything run through Google is the wisest choice.  Are there any good alternatives I should take a look at? <comment><USER2> I feel the same way and now that Bloglines is shutting down, I _have_ to switch. I spent this morning looking at available options and posted my notes here: <http://news.ycombinator.com/item?id=1682514>

</comment><comment><USER3> <http://news.ycombinator.com/item?id=980784></comment>


Ask HN: Why there is so much advertising crap around? - <AUTHOR>

Dear HN'ers, please help me, because I can't comprehend this. Why is there so much advertisement crap around? Is it even working for advertisers? I don't see any proof for that when I look at people. On the contrary, it is now common knowledge, that one shouldn't start using the Web without AdBlock or NoScript (http://news.ycombinator.com/item?id=1772025). In Poland, people using the most popular Instant Messenger there install 3rd party plugins or escape to open source clients just to avoid flash ads. We have Commercial skipping technology for TV (http://en.wikipedia.org/wiki/Commercial_skipping) and other projects (like recently mentioned on HN http://unlogo.org/) designed to avoid or remove advertising content. Hell, there is even a psychological phenomenon of "banner blindness" (http://en.wikipedia.org/wiki/Banner_blindness)! And there are bloggers, entrepreneurs, etc. writing and talking (http://www.ted.com/talks/richard_st_john_s_8_secrets_of_success.html) about honesty, user experience, and about how providing something valuable is the best way to get money in the long run. So please, tell me, why are we doing it to each other? What value is in producing those boatloads of crap that no one wants to see? <comment><USER2> > Is it even working for advertisers?

Some success stories on HN: <http://news.ycombinator.com/item?id=371349>

> now common knowledge, that one shouldn't start using the Web without AdBlock > or NoScript

That's not really known except among techies and the techies' friends. Some Googling suggests only 3-5% of Firefox users block ads.

> So please, tell me, why are we doing it to each other?

Because some small percentage of users do click a lot of ads and buy things from the advertiser. A report from 2007 says that the highest click-through rate is from "middle-aged women from the Midwest": [http://www.mediapost.com/publications/?fa=Articles.showArtic...](http://www.mediapost.com/publications/?fa=Articles.showArticle&art_aid=64258)

<comment><AUTHOR> Thanks for the stats. I didn't realize that AdBlock (and the like) is so unpopular (guess what happens when only people you talk to are either geeks or people who almost doesn't use computer at all :) ). Also, this report you've mentioned is... intriguing.

</comment></comment><comment><USER3> Your assumptions are just wrong. People do want to see ads, they do work, and almost nobody cares enough to try to block them.

<comment><AUTHOR> It might be a problem with my assumptions. Could you elaborate on the "people do want to see ads" part, please? Personally, I'm having a hard time imagining why people would (actively) want to see (on-line) adverts.

<comment><USER3> Because it's how we find out about stuff we want. Most people at least tolerate, if not enjoy, that. Ad's aren't evil - they're just not relevant -- until they are, and that's when they pay for themselves.

</comment></comment></comment><comment><USER4> As someone who's banner blind I can honestly say that I have no idea.

Having said that, if the adverts are unobtrusive and relevant to what I'm looking to buy (e.g. I'm looking at a camera review because I want to buy a camera and an advert offering me 10% off digital cameras appears inline without interrupting my experience of the review) then I'll click.

The answer to online advertising isn't to hit more people, it's to hit the right people in the right way.

<comment><AUTHOR> > The answer to online advertising isn't to hit more people, it's to hit the > right people in the right way.

Still, it sounds to me like doing a carpet-bombing to eliminate one building. At least in case of non-AdWords advertisements.

</comment></comment><comment><USER5> > Why there is so much advertising crap around?

Counter-question. How else do you think we can afford to keep all of this "free" internet crap free?

</comment><comment><USER6> _We have Commercial skipping technology for TV.._

FWIW, I know a lot of people with a DVR that don't skip commercials. Hell, I'm one of them. In my case, I have the TV on in the background and put the remote down somewhere else in the room.

Also: Please use the enter key more often in the future. It makes large blobs of text much more readable.

<comment><AUTHOR> Sorry for that, I'll be more enter-aware in the future.</comment></comment>


Google's end-to-end email encryption - <AUTHOR> https://github.com/google/end-to-end

<comment><USER2> This is something I've been interested in for a while, but have been somewhat dissuaded by articles like [http://matasano.com/articles/javascript- cryptography/](http://matasano.com/articles/javascript-cryptography/)

But, it seems reasonable that a browser extension would not be subject to those issues. Since I don't have the cryptography chops to tackle this myself, I'm glad Google is on it. I'd want to see it in Firefox, too, before building products for it...but, one step at a time.

<comment><USER3> There's a massive distinction between _in-browser cryptography_ and _native javascript cryptography_. The article you linked points out why native crypto in javasript is such a bad idea. One extra point which the page doesn't exactly press on, and which may or may not be entirely theoretical...

* Constant-time operations are exremely tricky. The JIT engines are improving/changing from version to version, and you just cannot be sure that some versions do not sneakily optimise some operations based on the data they operate on. An improvement in JIT engine can become a regression for native javascript crypto, and your constant-time compare suddenly becomes a timing oracle under some versions.

As for in-browser cryptography, have a look at [0] instead. At least with that the idea is to expose cryptographic operations from the OS libraries to the browser, to be used via javasript. However, the CryptoAPI is not something you'd ever want a developer to use directly. The thing is literally exporting non-abstracted cryptographic operations, and using this API is an invitation to making all the mistakes in applied cryptography you can think of. (And an even greater number of mistakes you could not think of!)

So, until we have a universal standard for properly abstracted and secure-by- design (like NaCl [1]) developer friendly operations, in-browser crypto remains a dangerous minefield. You don't want to go there, and you _certainly_ don't want to take anyone else on it either.

0: [http://www.w3.org/TR/WebCryptoAPI/](http://www.w3.org/TR/WebCryptoAPI/)

1: [http://nacl.cr.yp.to/](http://nacl.cr.yp.to/)</comment></comment>


Boilerplate Boilerplate - <AUTHOR> https://github.com/ajpiano/boilerplate-boilerplate <comment><USER2> I understand this is supposed to be funny but when I saw it, I was just like "WTF...". Coincidentally, I did just start a very similar Github project myself yesterday. If you're looking for a real boilerplate boilerplate, here it is: <https://github.com/abi/boilerplate> . Right now, it includes a meaningful .gitignore for people who use UNIX and a README.md with the MIT license body. It's really supposed to be just for my personal needs/dev environment but I hope it's useful for the others who were equally disappointed by the contents of origin post too.

<comment><USER3> I found myself either re-typing or cutting and pasting so much common code for numerous projects in different languages that I took what started as a template generator for Monkeybars and spun it off to a standalone boilerplate generator.

<http://neurogami.github.com/rhesus/>

I called it Rhesus since it was to make pieces for Monkeybars. :)

Yes, it includes a template for .gitignore.

It also allows for importing boilerplate templates from git repos.

It's one of those projects that evolves as I find I need this or that feature or behavior.

<comment><USER2> Sweet idea. You should try to make your usage documentation better (more concise and put it on the Github page) cos I'm having a hard time figuring out how to use it as well as the rationale behind each step.

<comment><USER3> I started writng some docs since the api and such has settled down. I have plans for a screencast too.</comment></comment></comment></comment>


Stop writing PHP like it's 2009 - <AUTHOR> https://florianlaplantif.wordpress.com/2017/07/18/stop-writing-php-like-its-2009/ <comment><USER2> "Don't write PHP, write Hack instead" is probably a better title for this post.

The author could have chosen to write about PHP best practices that are ignored in the ecosystem at large, but instead chose to evangelize HHVM features.

For anyone who currently writes PHP like it's 2009 and wants to learn a better way (without dropping PHP entirely):

[http://www.phptherightway.com/](http://www.phptherightway.com/)

[https://planet.nomadphp.com/](https://planet.nomadphp.com/)

[https://www.reddit.com/r/phpsec/](https://www.reddit.com/r/phpsec/)

If anyone prefers to drop PHP entirely, that's fine too, but that's not _the only good answer_ and pretending that all PHP is bad (like many of the comments on this thread already do) is very disingenuous.

<comment><USER3> Good PHP code tends to look like well structured Java code, but with a rash of $ characters in it. I have to wonder why you don't just write Java and be able to leverage what the JVM ecosystem provides.

<comment><USER4> Are you aware of what the PHP ecosystem provides? There is some pretty great stuff in PHP land.

2 of my favorites are [https://getcomposer.org/](https://getcomposer.org/) and [https://laravel.com/](https://laravel.com/)

<comment><USER3> Honestly, that's like a cup of ice water in hell. Composer is a _finally_ thing, and Laravel is a "at least it's not garbage" framework. The things you have to make do with in the PHP world are absurd. Find something in an array? Ugh.

PHP is catching up to what other languages have enjoyed as a given for over a decade. It's very confused. There's been absolutely zero effort to overhaul the core PHP API which is, on the whole, absolute junk. Frameworks like Laravel do their utmost to insulate you from having to use it too much for the ugly things.

As an example of what could happen, JavaScript has gone from this ugly, useless language that would crash your browser if used too much to something that's now widely deployed and powers significant web properties both client- side and server. The improvements to the language have been dramatic, ES6 code is words apart from JavaScript 1.

In another 5 years JavaScript will hit another milestone, Java will evolve, and PHP will still be PHP.

<comment><USER5> Yeah, JavaScript in 2017 is so much better to read and write than it was in the past. [https://medium.com/@sAbakumoff/es6-is-great-until-its- not-f3...](https://medium.com/@sAbakumoff/es6-is-great-until-its- not-f398339d0af6)

<comment><USER3> It is. Those are valid complaints, every language has issues, but with each iteration the number of complaints the average user has tends to drop because convenience features are introduced.

</comment></comment></comment></comment></comment></comment><comment><USER6> Async queries, great advice..do that. The rest meh...

The bad:

"Use HHVM". Do not do this, just upgrade to PHP 7. HHVM does have better performance [in some cases, not all], but it also has many unsupported modules [such as Memcache based sessions]. It's difficult to get improvements added and you're going to get frustrated by something people in the mainsteam PHP branch can do that you cannot do.

?int $var = null;

This is a question of style. Personally, i can read it, but it is a little odd and I've seen people get confused over it. I'd personally avoid it. The null check and type check is much clearer.

<comment><USER7> It's not just a question about style. ?int can be enforced at compile-time while the null and type check would be caught at runtime.

<comment><USER6> Great point, and for that reason I really like it, but generally my view is: "for most situations, humans are more expensive than the compute costs, so do the thing that is easy for a human to understand and pay the tax on your compute power". Obviously that doesn't always hold true, so place your bets accordingly.

<comment><USER8> Why would it be hard for a human to understand a type declaration using a syntax that has been well established in some of the most popular programming languages (C, C++, Java, C#) for several decades now?

<comment><USER6> The longer [if based] format can almost be interpreted by any human that has no programming experience but a good grasp of logic, the other is just inherently more complex and less verbose.

Edit: And my point here is basically that less experienced programmers will get it, which makes the barrier to entry lower. Going back to my previous statement, without a better reason, I'd encourage self documenting code and less abstract approaches. This is a pretty mild one, easily looked up...and probably a great thing for people to learn, but still more complex at the end of the day. Language is almost irrelevant here, it's a general statement.

<comment><USER8> I think you overestimate the readability of C-based syntax in general. A human that has no programming experience would have to start with parsing what !== means (and it's not at all obvious that ! is negation, or why = is doubled), and then move onto &&, although that's slightly more obvious. Nor is "int" obvious as a shortening of "integer" outside of CS - I've seen people interpret it as "internal", for example.

Going further, to even figure out why you need to do all this, that human would need to know such concepts as variables, data types, and nullability. The notion that variables can have designated types is a pretty obvious takeaway from the first two.

<comment><USER6> Just for fun, if you didn't know what "?int $var = null;" meant, how would you explain that to someone verbally, or better [like most programmers would] how would you search for this online?

Finding the definition of "!==" is easy, simply searching that [including quotes] gives me the answer. Looking for something like "?int =" just gives me useless responses upon first glance.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> I'm a big proponent of using PHP where it's appropriate, and I've found lots of good usecases for it.

But suggesting that writing good PHP implies using a different runtime and different language, why not go to a different strictly typed C-like language altogether, like Java? It's certainly maintained better.

</comment><comment><USER10> Here's a better version of that link: [http://www.phptherightway.com](http://www.phptherightway.com) \- using a different runtime is not going to make someone who doesn't know anything besides mysql_query or include write better PHP. You need to start with the basics instead. Your post is what I would call premature optimisation.

<comment><USER11> You can't use mysql_query anymore. It's removed from PHP 7. And the docs warn you about it:

[http://php.net/manual/en/function.mysql- query.php](http://php.net/manual/en/function.mysql-query.php)

<comment><USER10> One of the issues I noticed in a lot of beginner PHP developers is that the official docs is the last thing they look at. They'd rather copy/paste some crap from W3Schools or a 10 year old blog post, and given that they put it on shared hosting with a prehistoric version of PHP the "mysql_query" garbage will work as expected (as in, allow their site to be exploited).

</comment></comment></comment><comment><USER12> Between PHP7, PSR4, and generally good development strategies, the only thing hack/hhvm offers in the near future is being tied to the hip with a single large company that both consumes and produces it.

Hack/hhvm were great visions of the future and definitely motivated the PHP7 WG to move at a more brisk pace, but tying yourself to something like that is not a great idea, imo.

<comment><USER13> Wouldn't the same criticisms apply to React then?

<comment><USER14> In that analogy, what's PHP to React's HVVM?

<comment><USER13> React IS the HHVM in that example; there was no React prior to Facebook creating it.

"...the only thing hack/hhvm offers in the near future is being tied to the hip with a single large company that both consumes and produces it."

Both projects are of course open source so "tied to the hip" may not be applicable (though they of course have difference licenses with the nuances that go with)

</comment></comment></comment></comment><comment><USER15> This blog entry starts off with "I'm a former Facebook employee, and all you PHP devs need to git gud." Pass.

</comment><comment><USER16> Another article that talks about the scalability and benefits for wikipedia and facebook when the websites that most people create will never be either. You are not going to save millions on server costs and just doesn't make sense for some personal blog on wordpress. For most cases something like php7 might make as much sense.

But the author believes that what solved facebook and wikipedia's problems will solve everybody's. If HHVM and Hack are really the tools that solve your probably use it but don't go that route if you absolutely need it. Don't get burned by hype because every use case is unique. What fixes facebook's problems probably will not fix yours. But php 7 is another viable option and from what I read it performs pretty well compare to HHVM for the most common things you would use it for. Also the language got a lost of fixes for its warts (I'm not a php expert but looks like it did).

tl;dr - don't blindly use tools where they are not needed and use the right tool for the job.

</comment><comment><USER17> So the answer to "Stop writing PHP like it's 2009" is to not write PHP at all, and write Hack instead?

<comment><USER18> An argument could be made that we need a new law of programming languages:

> Given enough time, all languages converge to become Java.

<comment><USER19> Except that it is far from true.

<comment><USER18> Look at the JS world, or the PHP world, and it certainly seems true for them.

</comment></comment></comment></comment><comment><USER20> > It boggles my mind having left engineering at Facebook only 2 months ago > that the outside world still largely seems to write PHP like it's 2009.

I don't know the author so I don't want to make any quick assumptions, but even if it was just a bad joke calling a community "the outside world" sounds extremely conceited

<comment><USER15> It really does. I find it insightful as to potentially how these "Big Boys" view the development community outside of their Palo Alto bubbles.

Perhaps they fail to realize that their attitudes matter? I think this lends context as to why so many cultural problems persist through that bubble.

What up SF?

<comment><USER21> SF will make a great looking crater.

</comment></comment></comment><comment><USER22> Since I'm sure this will quickly be a debate about PHP, these are the reasons I liked PHP at the time:

1\. Ubiquity across web hosts. 2\. Native support for JSON-esque associative arrays. 3\. Integration with HTTP seemed amazing compared to other languages used for CGI.

1's not an issue anymore thanks to the cloud and other improvements in hosting services. 3's not an issue either thanks for good web frameworks in better languages. But 2?

Flex / JavaScript / PHP really are a pleasure to write some things in because of the flexibility of those data structures. Working with JSON, etc. in Java and friends is really painful and boiler-platey. Anyone aware of really good implementations that feel like PHP / JS in more widely respected languages?

<comment><USER23> Ruby, Python, etc all do this fairly well if you're talking about dict/assoc.array literals and ease of serialization/deserialization.

<comment><USER22> Yeah Python does well, but boy I wish dynamic properties were smoother sometimes, e.g.: a[b][c] == a.b.c. But I'd rather Python be Python than compromise correctness for PHP-like flexibility :)

<comment><USER23> This causes all sorts of problems, though. If you conflate the language's symbol table with a data structure managed by the language (ie, a hash or dict) then suddenly you have the same problems as JS did for ages. I can't put a '__init__' or ' ' in my key names anymore, or any of the other special cases. Best to leave them as hash keys.

</comment></comment></comment></comment><comment><USER24> "People still largely seem to use require() and include() statements everywhere in their code."

What should they do? Asking for a friend

<comment><USER25> Namespacing & autoloading

</comment></comment><comment><USER26> > People still largely seem to use require() and include() statements > everywhere in their code. What. The. Fudge.

I'm one of the people who like to have require (with full paths too, if we can). Looking at the code, I can see what it needs and where it gets it; I don't have to reverse engineer what the autoloader will do; I don't have to wonder how many system calls it's going to take for it to do it.

Async can be nice, but the language contortions you need to go through to get it are painful. If you can stuff your database calls into webservices, you can use curl_multi to do parallel fetches everything you need and let the database webservices run the queries single threaded in lots of different processes. It adds a layer, but it's easy to understand.

In my opinion the right way to write PHP is embrace the PHP serving model: at the beginning, you get a request, you return back something (html, whatever), and then everything in memory is thrown away. Because everything is going to be thrown away in a little bit, it doesn't make sense to invest in a delightful hierarchy of classes; just parse the input, grab the right data, and stuff it together in as little code as possible.

</comment><comment><USER27> Hmmm... I'm curious about the async explanation. I don't think that's the main benefit. The main benefit, at least on other platforms, is that while your function is await'n for your db, the thread can service other requests. It doesn't have to be stuck on waiting for I/O. This can dramatically improve scalability. I don't know, maybe PHP/hack doesn't really support this somehow.

<comment><USER26> In a traditional PHP installation, the interpreter is single threaded, and you run multiple instances of them. If all the instances are waiting on I/O, you just run more instances until you run out of ram. If you're not linking in crazy c libraries, your php instances shouldn't get too big, so you can run a lot of them. (Ex: on my well traveled site at work, the biggest php takes up 24M, elastic search for maybe 1000 documents (documents 128M on disc) takes up 5G; I can run a lot of php for parallelism, if needed)

I'm not sure if HHVM changed the threading model to run multiple requests simultaneously in one interpreter.

<comment><USER27> Right, it's just that the thread that is kept waiting for database could serve other clients meanwhile. While keeping the thread sleeping, it's wasting system resources.

For example, ASP.NET has a small number of threads and each async call allows one thread to process another request.

<comment><USER26> That's true in a thread oriented environment; but it's not the case in a traditional PHP environment, with one OS process per client. A PHP process does not know how to context switch between many requests; if the process is waiting for I/O the OS will schedule a different process. In this model, sending multiple backend requests concurrently, regardless of how, is of value when it lowers the total request time and lets it accept another request sooner.

You can send requests to the backend through async/await language features, or more simply by using apis that separate sending a request from waiting for a response, assuming network buffers are large enough to enqueue the request(s) without blocking.

</comment></comment></comment></comment><comment><USER28> It doesn't seem surprising to me that smaller companies are cautious when adopting tech solely supported by a large company like Facebook. Plenty of projects in the open-source graveyard were created and (somewhat) supported by the likes of Google, Facebook, and Twitter...only to change technology stacks a few years later and abandon maintenance of their libraries. Having to rewrite your code using different libraries is pretty bad, but it's way worse to have to rewrite your whole app because the platform you wrote it on isn't supported anymore.

Don't get me wrong, I love all these technologies and (although we're beating a dead horse here with the Java references!) Hack really feels like the "Scala of PHP" in the sense that it provides a lot of great features, but you can always "drop down" to PHP whenever it's necessary. That said, I think it could use some more adoption and articles like this are the first step toward getting people interested.

</comment><comment><USER5> But the author has no problem writing this blog post using WordPress.com, built on a PHP codebase that goes back 14 years and still largely resembles 2009-era PHP. (This is not a knock on WordPress at all - it paid my bills for years).

</comment><comment><USER29> This is Hack, not PHP. I considered Hack and HHVM a few years back, but with PHP 7, they really have little to nothing to offer PHP development and last time I checked, there were still serious incompatibilities. The speed gains for both HHVM and PHP 7 are very similar over PHP 5. I really cannot see using Hack or HHVM, or even considering them, unless they get another 2x or more speed improvement over PHP 7. In my testing, they're head to head and that in no way justifies the migration. Hack is NOT PHP, sorry.

</comment><comment><USER30> If the thing you're making in PHP requires asynchronous calls to a DB then perhaps you shouldn't be writing that thing in PHP?

</comment><comment><USER31> #1 issue is lack of strong typing.

I don't understand the appeal of dynamic languages. Worse performance, more overhead, harder to read...

<comment><USER32> Good enough performance, overhead is fine, easier to read, faster development time, vastly easier exploratory prototyping abilities, dynamic patterns available that can't be done at all in static languages like meta classes and dynamic message interpretation via late bound message passing. If you don't understand the appeal of dynamic languages, it's likely because you still program like you do in a static language while in them and you're ignoring the new things you can do that you couldn't in a static language. Static types are handcuffs, they prevent all kinds of perfectly valid code that work fine in dynamic languages. Static types ensure you don't make certain kinds of mistakes, but the cost of doing that is forbidding valid code that can't be verified at compile time to be correct, even though it'd work fine at runtime.

I want to tell the computer what to do in the simplest form possible, I don't want the computer telling me what to do, and I don't want to have to decorate my intentions with a bunch of unnecessary type fluff to make a compiler happy, and I certainly don't want the compiler telling me I can't do something I know will work perfectly fine just because it can't be statically verified.

</comment></comment><comment><USER33> I liked HHVM vs PHP-FPM because you don't have to one fat process per concurrent request. But disliked it because not much actually ran on it without tweaking. If you just have a bunch of random CMS sites to host then forget it. (this was about 2 years ago)

</comment><comment><USER34> What are examples of modern PHP code currently in production (open source obv.)? Except obv. frameworks like Laravel.

<comment><USER34> nvm: [https://github.com/uhub/awesome-php](https://github.com/uhub/awesome- php) [https://github.com/ziadoz/awesome- php](https://github.com/ziadoz/awesome-php)

</comment></comment><comment><USER35> s/ like.*//i

</comment><comment><USER36> Mods truncate title to "Stop writing PHP" TIA

<comment><USER37> It's funny to me that so many people on the "PHP is bad" bandwagon are apparently perfectly cool with writing every damned thing in Javascript.

<comment><USER38> Everything should be written in Typescript if you need Javascript.

<comment><USER39> I hope not, purescript is a much more sensible option.

<comment><USER40> Elm

<comment><USER37> CSS

<comment><USER35> ASM</comment></comment></comment></comment></comment></comment></comment>


Social Music Startup Looking For Marketing Savvy Co-Founder - <AUTHOR>

Disrupt.fm offers musicians word of mouth music distribution through Facebook.
Musicians can leverage their fan base to help promote their brand by offering free music downloads in exchange for sharing the song on Facebook. I've seen some good traction since launching in early January but I'm looking for a marketing focused co-founder to handle the musician acquisitions while I focus on the technical aspects of improving the site.
I'm looking for a co-founder with proven marketing skills to engage with bands, managers, and record labels to introduce them to the benefits of Disrupt.fm. Experience with Copywriting and Email Marketing are a big plus. Experience or connections in the music industry is an even bigger plus.
Since chemistry between founders is essential, please provide your Skype username so that we can video chat if I think there's a good fit.
If interested, contact me at firstname.lastname@example.com
http://www.disrupt.fm <comment><USER2> Just sent you an email. I'd like to know a little more about the site.</comment>


A Big Boom in the Universe of Electronic Books - <AUTHOR> http://assets.bizjournals.com/cms_media/images/ebookuniversel.png?site=techflash.com <comment><USER2> And still none can compare with a paperback.</comment>


Announcing a pre-release of F# 3.1 and the Visual F# tools in Visual Studio 2013 - <AUTHOR> http://blogs.msdn.com/b/fsharpteam/archive/2013/06/27/announcing-a-pre-release-of-f-3-1-and-the-visual-f-tools-in-visual-studio-2013.aspx

<comment><USER2> Can anyone answer me why specifically should I use F#?

<comment><USER3> There's really two separate _sets_ of reasons: one set for using .NET and one for doing functional programming.

.NET is a good technology if you don't mind being somewhat tied to the Mircrosoft stack: it's well designed, reasonably performant, strongly supported and relatively stable. It has good integration with other Microsoft products, good tooling with Visual Studio and an extensive set of libraries. (The libraries are what would probably tie you the most strongly to Microsoft.)

Functional programming is a much deeper topic, so I'll give my condensed and unabashedly biased summary: functional languages tend to be more expressive (and, transitively, more productive) while producing code that's easier to support--F# has a good type system, and functional programming leads to much lower coupling than OO much less procedural programming. This happens without sacrificing performance _too_ much. Sure, you won't get C speed (or even C# speed), but it's more than good enough for most tasks. I'm pretty sure F# is at most a couple of times slower than C#-- _much_ faster than the popular dynamically typed languages! I'm really only familiar with OCaml and Haskell, both similar languages, and they can certainly produce fast code.

So if you're convinced by functional programming and somehow tied to .NET, F# is the perfect choice. If you're not tied to .NET, I would recommend Haskell or maybe OCaml instead.

<comment><USER4> i would like to point out that i am using F# with emacs on linux with mono, i made this transition recently from windows and i have no complaints yet.

<comment><USER5> What's the latest and greatest in terms of M$ feature availability on Mono these days?

A couple of years ago whatever the successor to LINQ to SQL was at the time, was not available/not implemented (maybe Entity Framework?)

Anyway, curious about doing equivalent of Scala + Play + Slick on Mono, which I assume is F# + .NET + Type Providers/LINQ to SQL.

<comment><USER4> i think i just haven't had anything that hasn't worked yet, and by this i mean, i wrote my codebase for various projects in .net in vs2012, copying them over to linux and just fsharpc, and it just works (although i confess i have not touched linq\sql things), my advice, git clone and try. edit:spell</comment></comment></comment></comment></comment>


Mozilla Statement on Immigration Executive Order - happy-go-lucky https://blog.mozilla.org/blog/2017/03/06/mozilla-statement-immigration-executive-order/ <comment><AUTHOR> I know this is an old refrain, but do I need to know Mozilla's position on executive orders? I feel uncomfortable saying they should shut up, but there needs to be an easy way to filter out non-relevant statements from companies I follow until I have a few minutes and go looking for them.

I'd like to have a clearer way to follow only technical posts from Mozilla and others.

<comment> k-mcgrady Read the headline and then decide 'I don't want to know' and move on. If you're issue is knowing that they've even got a public position on an issue that's different but if the issue is just that you don't want to know their position, don't read it.

</comment></comment><comment><USER2> As an Eastern European O&O developer, I can only hope that they will support the H1B visa reform with the same wording and the same dedication. It's impossible for talent to get into US. Amazon recruiters directly say that they'd rather hire you to Vancouver and transfer you later than even attempt to play the 30% chance lottery. Why does this anti-Trump hysteria take over logic in the US is beyond my understanding. Only if Mozilla is interested in Indian slaves and uses all the buzzwords as keywords for hiring them.

<comment><USER3> A few points to point out: from your post, it sounds like Amazon never applies for h1b which is not true. They just don't prefer to use it for a person who is not already in USA. They do apply for the visa where it makes sense.

If they chose to go h1b route, they will have to apply for a visa and then wait for 6 months before the person can actually work(and the developer could still choose to not join thereby making the visa application useless). Clearly, going through Canada is a better option for them.

</comment></comment><comment><USER4> And then their next article reads like this:

These are significant issues. Mozilla and the National Science Foundation are committed to finding solutions by supporting bright people and big ideas across the U.S.

Today, Mozilla is announcing the National Science Foundation-sponsored Wireless Innovation for a Networked Society (WINS) Challenges: two U.S.-based competitions with $1 million in prize money each.

</comment><comment><USER5> Perhaps Mozilla could take a cue from OK Cupid, which blocked Firefox to protest Eich's nomination as Mozilla's CEO, and stop rendering US government websites or perhaps a random list of websites related to Trump or his supporters. Then a Trump-supporting CEO of some ISP can throttle HTTP traffic issued by Mozilla. Then a Trump-opposing CPU manufacturer can build into their hardware some logic detecting the word "Trump" preceded by a positive adjective from a list and hard-reset the CPU. Then a Trump-supporting DRAM controller vendor can drop writes to DRAM if the burst contains the word "Clinton."

And then perhaps users, consumers and other innocent bystanders will finally rise as one and stake all these people. And we shall have peace.

<comment><USER6> > Perhaps Mozilla could [...] stop rendering US government websites or perhaps > a random list of websites related to Trump or his supporters.

The STRONG commitment on the part of Mozilla to NEVER engage in such tactics is one of the reasons I make it my preferred browser. I have no objection to their expressing their political beliefs through press releases, even if I am not sure it rises to the level of "newsworthiness" to be upvoted on Hacker News.

</comment></comment><comment><USER7> > we believe ideas and innovations must flow freely across borders

Those things don't strictly require people to flow freely across borders, less so today then ever.</comment>