Ask HN: any type theory book recommendation? - <AUTHOR> After spending some time with Haskell, I was considering diving into some more type theory. Any recommendation for the good type theory book?
I know about Pierce's "Types and Programming Languages" and "Advanced Topics in Types and Programming Languages" but would like to learn whether there are any comparable alternatives.
Thanks in advance! <comment><USER2> I didn't read any type theory book but I'm interested in the subject. I think I will buy Pierce's "Types and Programming Languages" based on the recommendations on this thread: <http://lambda-the-ultimate.org/node/492>

<comment><AUTHOR> Really great thread, thanks for pointing that out

</comment></comment><comment><USER3> I strongly recommend "Proofs and Types" (<http://www.PaulTaylor.EU/stable/Proofs%2BTypes.html>), which has the added advantage of being free.

<comment><AUTHOR> Thanks, added to the bookmarks. Alongside with the one I found earlier <http://www.cs.kent.ac.uk/people/staff/sjt/TTFP/ttfp.pdf>, this book seem to cover not the type theory per se, but the mathematics that make its foundations. This is great, though not exactly what I'm looking for.

<comment><USER3> It depends what you mean by "type theory", but you're right. See Pierce for a more practical introduction. "Proofs and Types" is more fundamental and focuses on the interplay between the operational semantics of the underlying language and the structure of its type system (read as proofs of properties of programs written in the language).

</comment></comment></comment><comment><USER4> I personally read "Category Theory for Computer Scientists." - [http://www.amazon.com/Category-Computer-Scientists- Foundatio...](http://www.amazon.com/Category-Computer-Scientists-Foundations- Computing/dp/0262660717/ref=sr_1_1?ie=UTF8&s=books&qid=1269795939&sr=8-1)

It was pretty rough. Reactions by page:

1-2 "This is pretty easy." 3-5 "Okay, I can see how this is getting harder..." 6-... "My mind is blown."

The real difficulty is that it dives into mathematical notation that I'm not used to reading fairly quickly. I'm still slogging away at it in my spare time.

</comment><comment><USER5> I've only read Pierce, and it's good. As an alternative, you could look at dependent types if you want to know more about types. Dependent types are like GADTs on steroids. A good place to start is Agda (<http://wiki.portal.chalmers.se/agda/>) or Idris (<http://www.cs.st- andrews.ac.uk/~eb/Idris/>).

</comment><comment><USER6> The resident type theorist at a college I was considering attended recommended Luca Cardelli to me when I asked about good introductory texts: [http://www.eecs.umich.edu/~bchandra/courses/papers/Cardelli_...](http://www.eecs.umich.edu/~bchandra/courses/papers/Cardelli_Types.pdf)

</comment><comment><USER7> Chapter 7 of Essentials of Programming Languages (EoPL) has a nice introduction to some basic topics including type checking and type inference.

It's a nice gradual introduction, and help me get started with TaPL (although I wish I could say I'd made much progress).

</comment><comment><USER8> This study groups is using the out of print Barr/wells, which I couldn't find for purchase

<http://groups.google.com/group/bacat/topics?start=>

<comment><USER9> You should purchase the third edition of Barr & Wells directly from the publisher. Centre de Recherches Mathematiques. <http://www.crm.umontreal.ca/pub/Collections/desc/PM023.html>

</comment></comment><comment><USER10> "Practical Foundations of Programming Languages", available online:

<http://www.cs.cmu.edu/~rwh/plbook/book.pdf>

</comment><comment><USER11> I believe <http://www.cs.nott.ac.uk/~gmh/cat.html> was on HN sometime in the last two weeks. It's a very very good introduction to the underlying mathematical structures Haskell uses for its type system.

</comment><comment><USER12> Programming in Martin-Löf's Type Theory <http://www.cs.chalmers.se/Cs/Research/Logic/book/>

I'm reading it from time to time. Useful for me.</comment>


Home servers are greener than cloud - <AUTHOR> https://blog.freedombone.net/freedombox-at-ten <comment> bloody-crow > I didn't have any quantitative estimates then, and still don't now. However, > it's likely that a world in which there is one server per household or per > street would be more electrically efficient than the current world of > billionaire cloud servers.

This is the core of the article and it's basically guesswork. From all I read, I tend to believe the opposite actually. Cloud is a lot greener than home servers.

<comment><USER2> Even just applying the basic principles of efficiencies of scale, it's almost guaranteed to be true that cloud is greener.

Utility scale power, utility scale chip production, exabyte-scale storage racks, generally more efficient chips (xeons vs desktop models), more efficient server PSUs.

Not to mention less overhead like deliveries. You only need 1 truck to deliver the hardware to the data center, whereas you might need 30-50-100 to deliver computers to individual households.

> But given that a home server can run on 10W of electrical power, and > potentially off of a solar panel I found this unpersuasive. I didn't have > any quantitative estimates then, and still don't now.

This is laughable. It's not an argument for individual servers in households, if anything, it's an argument for utility-scale solar and more efficient software that runs efficiently on 10W CPUs.

<comment><USER3> And all that for running utility scale software bloat somewhere else, requiring networking infrastructure because the data isn't where it belongs. Talk about _gridlock_ , and _hick-ups_ because some backhoe or fat fingered admin tested the reliability of the the redundancy. As can be seen again and again when all sorts of services degrade or fail globally because some cloud experienced lightning. Instead of a single household, block, or city.

Yah, sure!

</comment></comment></comment><comment><USER4> AWS exceeded 50% renewable energy usage for 2018. My house is powered by gas.

"I didn't have any quantitative estimates then, and still don't now. However, it's likely that a world in which there is one server per household or per street would be more electrically efficient than the current world of billionaire cloud servers."

My neighbors are powered by gas too. The only way this would work is if we all also bought solar as the author suggests, however encouraging your average homeowner to not only run a home server but also invest in solar for it is a non-starter.

<comment><USER5> The argument is a little shaky, but I can see it. In a datacenter, heat is just wasted energy that requires more energy to cool. Running a server is not the most efficient way to heat a home, but at least the heat isn't just waste.

Also I suspect that a home server could just sleep the CPU a fair % of the time. On top of that, you don't need to run a billing system that charges different users for various things.

</comment></comment><comment><USER6> > But given that a home server can run on 10W of electrical power, and > potentially off of a solar panel I found this unpersuasive. I didn't have > any quantitative estimates then, and still don't now. However, it's likely > that a world in which there is one server per household or per street would > be more electrically efficient than the current world of billionaire cloud > servers.

Sorry, but I don't buy it. DCs are frequently powered by solar ([https://www.google.com/about/datacenters/renewable/](https://www.google.com/about/datacenters/renewable/), [https://sustainability.fb.com/innovation-for-our- world/susta...](https://sustainability.fb.com/innovation-for-our- world/sustainable-data-centers/)), and this article gives no actual evidence other than home server being able to run on 10W. Solar and Wind projects are successful in part because of economies of scale. While local-scale grids may be great, using them to power services that run on cloud infrastructure today don't seem like a wonderful application.

I have no doubt that the aggregate sum of my all of my cloud usage across Google, FB, Amazon, etc. amounts to larger than 10W, but if you summed up all of the different pieces of those services that I use, I doubt you'd ever be able to scale them all down to something that could run at home, forget doing it on 10W. There may be a small sliver of that which is possible (e.g. EMail), but the fact of the matter is that it's almost irrelevant.

Coincidentally, the author of this post maintains a project that develops a home server system, which means there's plenty of vested interest in pushing this non-analysis.

<comment><USER7> That said, I'd love a "solar powered Raspberry Pi in a box" product to just buy and setup in my backyard somewhere for my personal website.

</comment></comment><comment><USER8> Largely ignored by this article is that fact that everyone needs a router. NASs are far from rare, the advantages of storage on the consumer side of a relatively slow internet connection have advantages.

So it's not really 10 watt local server vs a shared of a cloud. It should be something like 0.5 watts or similar to upgrade your home router to something that could provide internet services. Likely just double the ram and provide a microSD card for storage and that would be all you need. A 256GB microSD card, even a fast one is around $50.00.

Seems like a bit of smarts, like a CDN, or even IPFS and collectively home servers could make quite a bit of sense with close to zero power overhead.

</comment><comment><USER9> I think I disagree somewhat with the premise of this article. Computers are more efficient in general when they are fully loaded. A home server is rarely fully utilized and doesn't realize the full potential of multitasking/virtualization. It is more efficient to share different tasks among the same set of disks and memory. On the cloud, anything you didn't use could theoretically be given to someone else.

The hardware lifecycle should also be considered. Although home environments often recycle equipment, cloud environments are in a better position to get more bang per watt, and can upgrade their SAN storage capacity easily to handle changes in demand.

I suppose there is a lot of inefficiency in hitting all those switches and routers on the way to a cloud's network. However that's shared with other users as well.

<comment><USER5> I think the hardware lifecycle heavily favors the home server. This is reflected in the much higher cost of cloud computing vs owning the hardware. Cloud components have to be standardized and are swapped out _en masse_ every few years.

<comment><USER10> The _price_ of cloud computing is higher than that of owning and running the hardware. As to whether that implies the _cost_ of running a commercial cloud is higher than that of running individual servers on customer premises is doubtful. I assume that the likes of Amazon, Microsoft, IBM and Oracle do not run commercial cloud operations at a loss.

</comment></comment></comment><comment><USER11> So the proof that it is greener than cloud is where?

<comment><USER12> The article claims it is a gut feeling. Surprised this post made it here.

</comment></comment><comment><USER13> Fun fact, but CPUs/GPUs/etc are almost 100% efficient at converting electricity to heat, as they don't give off light energy like a heater would, via its glowing coils.

So, theoretically, heating your house with CPUs would be greener than using central heating...

If you live in a cold area, a home server's heat wouldn't be wasted, in fact it would theoretically lower your heating bill(by .01% or less, but hey!) as less electricity would be used on the less efficient heater.

<comment><USER14> But wait...what happens to that small amount of energy that a heating coil gives off as light? I'd expect that most of those photons end up getting absorbed by something somewhere else in the room, and ultimately the energy still ends up as heat.

</comment></comment><comment><USER7> Centralization is (always?) less efficient per-unit-work than decentralization, because centralization requires a hierarchy of management overhead to work. Centralization makes more efficient things other than the unit-work, things like aggregate tracking. These things are typically only of concern to the organization doing the management and have almost nothing to do with the goals of the party for whom the work is being done.

Take, for example, developing a website. Maybe it's a site for a small municipality to post community updates. This work could be done by a small, local consulting group or a gigantic, multi-national one. All else being equal, the cost of the project will necessarily be higher with the large consultancy than with the small.

And experience bears this out. I've been in both large and small consultancies, and the only difference was how many layers of management were on top of the decision process. There is no "economy of scale" for developing to a customer's needs. And there is nothing in the management overhead of the giganto-corp that improves the project for the customer. All that overhead has to get paid for in some way, so it necessarily leads to higher project costs (which probably means massive budget overruns because the big Corp probably priced the project at or under the local Corp in order to close the deal).

Large, centralized systems become something like hedges for the management org. They lose money on a long tail of small projects only to make it back with more on a few, large winners that can be milked. We look at the bottom line and say "everything is up! It must be good!", but we don't stop to look at the individual failures. While, if it were all decentralized, we wouldn't have a metric to look at to determine what direction the aggregate it going on, but that long tail would probably be served a lot better.</comment>


How Do You Approach Multi-Disk Arrays? - <AUTHOR>

Every 4-5 years I upgrade my home server. This year I've shifted to some nice rack-mounted hardware.  At the core of my setup, I have two servers with 8 HDD bays each. One is the active box, and the other is local redundant storage (i.e., backup). Assuming 1 HDD is the system disk, how would you configure the other 7 HDDs to give you 1 massive storage volume in your favorite OS? Would you use the same approach on both the active and backup server? <comment><USER2> It depends on what you value more. Do you want as much storage as possible and not care about redundancy? Then RAID 0 or JBOD would give you a lot of space. I wouldn't recommend it myself but it's an option.

If you care about redundancy but want a good amount of space, you can go with a RAID 5. You'll lose some write performance especially if one of the drives crashes but you won't lose anything.

I would recommend using 2 drives in a RAID 1 for OS and using the other 6 as a RAID 10 for storage. You'll get good performance and redundancy for both storage and the OS.

For a more specific recommendation, more data is needed about your needs.

<comment><AUTHOR> Thanks. Yeah, I left it a little vague as to not sway any opinions. I definitely want at least minimal redundancy on both arrays just to ease the hassle of recovering from a disk failure. I guess I'm really trying to decide if hardware RAID is the way to go, or if letting a fast disk controller hand off the work to software (e.g., zfs) is a better option.

Anyway, I'm just curious to hear what others are doing especially given all the "RAID is dying" talk that's popped up in the last few years.

</comment></comment><comment><USER3> I'd use zfs (consider freenas as your os, i like it) with raid-z3 (triple- parity, thus 3 drives may fail w/o data loss) on the remaining 7 drives. You then may use zfs snapshots + replication to the other machine or just use a cron job to wol the backup machine and simply run rsync at a certain interval.

<comment><AUTHOR> The zfs question is one I'm debating. I actually already use FreeNAS on the backup server and it seems to be doing well. For the primary server I want an OS I can do more with on, so I'd probably throw something like CentOS on it and then run VMs for specific tasks or to use more bleeding edge distributions. I suppose I could try zfs in Linux.</comment></comment>


Neural Networks and Graph Algorithms with Next-Generation Processors [pdf] - <AUTHOR> https://www.osti.gov/servlets/purl/1468104 <comment><USER2> I remember when usb bitcoin miners started the asic trajectory in crypto. I don't think nascent is the right word.</comment>


IGoogle to be retired by November 2013 - <AUTHOR> http://support.google.com/websearch/bin/answer.py?hl=en&answer=2664197

<comment><USER2> Very unhappy about this... I've been using iGoogle as my start page for years.

I use iGoogle to see several custom Google News searches (for news about my current project, old company, college, etc), along with stocks, weather, and general news headlines, all in one screen. Can anyone suggest some good alternatives? None of the alternatives suggested by Google sound like a good replacement on my desktop.

</comment><comment><USER3> I'm quite happy though - have been trying to turn it off but it keeps coming back! Their decision is unexpected but it will solve my problem.</comment>


Peter Dutton pushes for overseas police to tap Australians' phones - <AUTHOR> https://www.theguardian.com/world/2020/mar/05/peter-dutton-pushes-for-overseas-police-to-tap-australians-phones <comment><AUTHOR> Just yesterday another minister made this statement:

> Pezzullo said that while "connectivity is a positive force for global human > interaction and prosperity, in the shadowy creases of the surface web lies > the demonically evil phenomenon known as the dark web".

Prepare for full power, save the children from the hell spawn evil of encryption, rhetoric.

This doesn't just affect Australia, it will affect everyone within the 5 eyes.</comment>


South Australia without power as massive storm hits - <AUTHOR> http://www.abc.net.au/news/2016-09-28/south-australia-without-power-as-storm-hits/7885930 <comment><AUTHOR> South Australia is the western-most state connected to the National Electricity Market (NEM), an electricity grid that connects generators, transmission networks, distribution networks and residential/commercial/industrial loads on the Australian east coast. Due to a massive storm the interconnector between SA and the rest of the network has been taken offline and South Australia has gone 'black' as a consequence. South Australia is also notable in that it has the highest reliance upon renewable generation amongst all states in the NEM.</comment>


Jane Street and the OCaml Compiler (2018) [video] - <AUTHOR> https://www.janestreet.com/tech-talks/jane-and-compiler/ <comment><USER2> Seems to me that firms like two sigma and jane street form some sense of "mystique" about them with regards to how elite their developers are. But once you get inside, most people are writing run of the mill software. Google has the same tactic, even paying below market rates to people willing to work their for the brand. Jane Street does pay very well, but still, most of their hiring is based off of prestigious colleges, less off of people who have written brilliant software. Not that they arent smart. I've just seen enough marketing, and met too many people working at these firms to give them much credit from an "elite software" perspective.

<comment><USER3> With so much money on the line, hedge funds and other trading firms focus _a lot_ of effort on marketing and building up a perception that they truly are something special (at least those that take outside client money). Internally, things could be rather mundane, and even downright awful (from a technology perspective). Not commenting on Jane Street in particular, just the industry in general.

Source: I've worked at a hedge fund and I've seen how the sausage is truly made. Many friends have told me similar stories about other firms.

<comment><USER4> Also having worked for a hedge fund, they're generally going to do their best to get you at the lowest salary possible. The overall benefits might be good, but they're going to do their best to low ball on the salary, "you'll make it up at bonus time!" Bullshit, You have to negotiate with hedge funds and be willing to walk away from a shit offer. I started at one a year out of college. Made 3x what I did as an intern. I was happy, at first. You can budget around a salary for rent, utilities, etc. You can't budget hoping for a bonus to make ends meet.

Took me about 3 years to realize I was being paid half of my coworkers doing the same to lesser jobs as mine. Took me resigning with an offer in hand for twice what I was making before they upped their offer. I stayed for another 3 years before I got so fed up with the bullshit I actually left for a lower paying job (also less stress).

<comment><USER5> There is another, more sinister reason for low base: typically if you have a non compete and are forced into a one year garden leave, they can get way with paying you just the low base.

</comment></comment></comment></comment><comment><USER6> i asked this question at my Jane Street interview, but never got a real answer: how does a market making latency arb firm handle GC pauses that are inherent with any GC language? OCaml is better in this regard than, say, the JVM, but it still seems problematic. I know they wrote some FPGA compiler stuff with OCaml, but I can't imagine that all of their execution is running through FPGAs. Even if it's possible, it seems like an uphill battle; something like Rust would probably be easier to deal with (at least for their realtime code).

<comment><USER7> Things to consider:

The company is >20 years old.

OCaml is a general purpose language that provides an equilibrium between the avoidance of bugs introduced by state (like all functional languages), speed, and polymorphic type inference. At the time of adoption, the other choices were Haskell (too academic, not practical), Erlang (no type inference, not suited for large code bases with complex business logic), and lisp (too slow, loose/optional type system). The last time I checked, OCaml was third only to C and C++ in terms of speed. It is also important to consider how intellectually stimulating it is to write OCaml. If you can achieve the three things mentioned at the top of this paragraph while also creating a brand of gravitas and intellect that attracts top-tier talent, of course you would choose OCaml.

Would a new, uninitiated market maker write something in OCaml? Unlikely, as they would probably use C++, Rust, or Scala with a 1TB heap and GC disabled. Ignoring the learning curve and time/dollar constraints of starting a hedge fund, I would choose OCaml over the three mentioned.

[1][https://en.m.wikipedia.org/wiki/Hindley%E2%80%93Milner_type_...](https://en.m.wikipedia.org/wiki/Hindley%E2%80%93Milner_type_system)

[2][https://courses.cs.washington.edu/courses/cse341/04wi/lectur...](https://courses.cs.washington.edu/courses/cse341/04wi/lectures/06-ml- polymorphic-types.html)

<comment><USER8> Why C++ now but not then, 20+ years ago? And would F# be suitable for the task? Im genuinely interested

<comment><USER9> Everything in the C++ ecosystem is better now than it was 20 years go. The language, the tools, the libraries, the build systems. It's actually fairly pleasant to work in these days.

<comment><USER10> Not really, everything related to app development is just gone, dead, with Qt and wxWidgets being the remaining survivors.

VCL is only available to corporate shops and those that aren't into FOSS religion.

MFC is in maintenance mode, and so far Windows developers are more keen moving into one of .NET UI stacks while keeping some C++ code as COM/DLLs or even C++/CLI, than jumping into UWP/WinUI. It remains to be seen if WinUI 3.0 will change the migration trend.

Then on mobile OSes, it isn't even an option, unless you want to write your own GUI from scracth using OpenGL/Metal/Vulkan.

<comment><USER11> I doubt HFT firms are writing apps in C++.

</comment></comment></comment></comment></comment></comment><comment><USER12> This is the third time I've watched this video (admittedly with a bit of distraction today). After the first time I went off and learned about modular implicits, which appear to be a huge ergonomic improvement, especially the way the JaneStreet library APIs are designed. The second and third times I got increasingly sad that so much brain power is being sucked up by algebraic effects, to the detriment of other advancements. Oh well, that's their decision to make; JaneStreet continues to do huge service to OCaml in myriad ways, and I really value these tech talk videos as part of that.</comment>


The utilitarian pleasures of playing board games by yourself - <AUTHOR> https://www.atlasobscura.com/articles/utilitarian-pleasures-playing-board-games-by-yourself <comment><USER2> As an only child, I used to spend my summers playing board games by myself. It started with monopoly (which my babysitter introduced me to) and carried over to chess and beyond.

For many of the games, I ended up assigning one player to be "me" and different personalities to "the other players," who each had different styles. I also tried my best to stop "myself" from cheating by forgetting what cards "everyone else" had. After all, games are not fun when someone is cheating.

Thankfully, my days of playing board games by myself is long over. However, I still have a tendency to take a long time to calculate my next move since I'm always trying to factor in what everyone else is doing.

<comment><USER3> I'm also an only child and I'm thankful that I was raised in an area with plenty of kids. I never missed having real siblings. (Future) Parents of this world remember this when choosing a place to live, specially nowadays that only childs are becoming the norm.

<comment><USER4> Aside from being in that area, did you wish you had a sibling growing up? Selfishly my partner and I want to stick with a single child but for his sake we are thinking of having another.

<comment><USER3> I never wished I had real siblings, I had 2 "brothers" and an older "sister" living next doors while a kid. Despite my personal anecdata, I would prefer to have more than one child. Being a single child has more negatives than positives. Parents always expect/demand more and can't avoid to treat them as scarce.

</comment></comment></comment></comment><comment><USER5> I can't recommend Fantasy Flight Games' co-op card offerings enough. They allow 1-4 people to play against an encounter deck that acts as the opposition and generates the story of the quest/encounter.

-Lord of the Rings: They have the rights to the books, not the movies, which allows for a ton of creative writing and characters. Definitely the heaviest and most complex of the three, but allows for the most granularity in deck building. Has an enormous card pool.

-Arkham Horror: VERY story driven, cosmic horror theme that draws heavily from Lovecraft writing, but isn't afraid to blaze its own path. Feels very much like an RPG.

-Marvel Champions: Lighter weight than the other two, but an absolute blast to play. Very pick up and play with minimal story, feels like an action brawler. The newest of the three. Deck building is much less of a chore than with the others. You pick a super hero, they come with fifteen hero-specific cards, then pick an aspect (think color from Magic) and fill out the deck with only cards from that aspect.

<comment><USER6> It isn't one-player exactly, but it's easy to jump into from home during quarantine, so quick plug: FFG's tragically deceased LCG Android:Netrunner lives on digitally at [http://jinteki.net](http://jinteki.net), and the community is very welcoming to new players. (It's also open-source and quite elegantly engineered using Clojure/ClojureScript.)

<comment><USER5> There is a solo variant for both the runner and corp that you can find on BoardGameGeek. I believe the runner side is called Running Solo, can't remember what the corp side is called. I printed it out ages ago and never tried it, you've inspired me to give it a go today!

</comment></comment></comment><comment><USER7> Design of 1-player and 0-player games is a topic that really interests me, but finding any coherent resources on it is a non-trivial task.

Aside from card solitaire reviews, Hesse's "glass-bead games" (aka Hipbone games [1]) and various articles on Game of Life, only [2] with [3] seems close enough to what I have in mind (+ variations on Jung's active imagination with tarot, surrealist games), mainly using board games as a tool for thought and modeling beyond the purview of classical game theory.

I would appreciate pointers in that direction.

As a bonus, if you are interested in abstract board games and eurogames, GIPF project [4] is worth checking out.

[1]: [https://boardgamegeek.com/boardgame/38371/hipbone- games](https://boardgamegeek.com/boardgame/38371/hipbone-games)

[2]: [https://press.princeton.edu/books/paperback/9780691025667/la...](https://press.princeton.edu/books/paperback/9780691025667/laws- of-the-game)

[3]: [https://senseis.xmp.net/?TheProtractedGame](https://senseis.xmp.net/?TheProtractedGame)

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

</comment><comment><USER8> As well as solo play, I've also started playing more digital versions of board games where an AI opponent is available. Whist not at all social it is a good way to quickly work on your strategy for when you do find a mutually convenient time to play online with friends. Plus most of them work on a decently powered laptop and don't need powerful graphics cards that a lot of other games do.

<comment><USER9> If you don't mind me asking, where do you play these digital board games?

<comment><USER10> Not OP but likely the various paid and free DLC for Tabletop Simulator might have such features. Keep in mind as someone who enjoys boardgames TS can be a surprisingly steep learning curve.

<comment><USER11> > Plus most of them work on a decently powered laptop and don't need powerful > graphics cards that a lot of other games do.

Tabletop Simulator absolutely kills my 15" 2015 MBP (integrated graphics only). The interface is laggy, and the fans are running at max after about 10 mins of gameplay.

Not that it doesn't work when there's no dedicated digital alternative that it exists, but its generally my absolute last choice.

<comment><USER8> Have you tried Tabletopia? Lacks the AI, so it's for playing against real opponents, but runs in the browser. It's still laggy at times though, it's not quite scaled to cope with the increased numbers staying home.

</comment></comment></comment></comment></comment><comment><USER12> Half-OT: Anyone knows good contemporary board/card games for two players?

I like deduction games like "Mastermind".

<comment><USER13> "Ticket To Ride" is a nice, casual play as a two person game. "Twilight Struggle" is fun but much more intense.

"Small World" is a super fun, ultra confrontational game in two player mode.

<comment><USER14> The hidden objectives in Ticket To Ride might suit that OP's request for a deductive element as well.

</comment></comment></comment><comment><USER15> Works for typical puzzle/optimization Euros, but not for the games my gaming groups have enjoyed most. Anything involving politics, diplomacy, intrigue, back stabbing and the like just don't work solo. Nor do RPGs except for grindy munchkin-fests like CRPGs. IMHO, that human interaction is the reason to play games with other people.

</comment><comment><USER16> Whenever I got bored enough to actually do something like this, I just read a book.

</comment><comment><USER17> Somebody is _really_ bored.

Still, this is a great era for not being bored. There's far more content coming out every day than anyone can consume. That was not the case two decades ago.

<comment><USER8> For many people simply consuming media for long periods of time is boring and unmotivating. Playing a strategy boardgame is much more interesting and involved.

<comment><USER18> IDK, there are some really good and compelling single player video games out there nowadays. I'm trying to play half a dozen at the same time lately <_<.

<comment><USER19> While I agree there's a lot of compelling single player games out there (my PS4 backlog is over 20 games at this point, still slowly working through FF7 Remake), they tend not to really scratch the same itch.

A lot of those games are often very story or action driven, and aren't really about successfully navigating a system of interlocking mechanisms like a lot of board games are. There are exceptions out there (XCOM: Enemy Unknown comes to mind, although that was designed by Ananda Gupta, the same guy who designed one of the best thematic strategy board game ever - Twilight Struggle - and he prototyped XCOM as a board game first), but not many.

Logistics video games also seem to work well, like Factorio or any of the Zachtronics games, about making the most efficient system you can to accomplish a goal.</comment></comment></comment></comment>


Ask HN: Hobbies Outside of Tech? - <AUTHOR> I've been programming for going on 40 years now.  It started when I was a kid and was a ton of fun.  It's still sort of fun, but after having done it for so long, it's losing its appeal as a hobby.<p>What sorts of hobbies fit the programmer mindset that don't use a keyboard and screen? <comment><USER2> 3d printing (depending on your skill set that might be focused more one one of the following area: designing (which does use a keyboard and screen, but you can also print other people's design), optimising print settings for best results, painting, post processing)

Cooking

Music (music theory is quite fascinating if you have a mathematical mindset, there are some good video on youtube on the subject to get you started)

</comment><comment><USER3> Playing a musical instrument.

Baking.

Indoor rock climbing.

All are technical and hands-on.

Less hands-on, but part of what I enjoy of being a programmer is reading pretty technically deep articles/white papers/etc. When I want a break from that, reading fiction is wonderful.

</comment><comment><USER4> Photography (outdoor), Reading paperback books, Helping kids with homework, Walking/Jogging/Gym, Helping family at cooking, Good old style window shopping.

</comment><comment><USER5> Cooking, biking, sailing.

Anything that doesn't require a screen, basically.</comment>


Do physicists really believe in true randomness? - <AUTHOR> http://www.askamathematician.com/2009/12/q-do-physicists-really-believe-in-true-randomness/ <comment><USER3> The difficulty with mathematical randomness (versus unpredictability) in physics is that you would not expect the Laws of Thermodynamics to exist in a universe governed by the former. Some literature on algorithmic information theory touches on this.

Consequently, if local determinism is not plausible (Bell) and randomness is not plausible (Kolmogorov et al), that leaves non-local determinism as the most sensible assumption. It does lend some credence to the idea that we perceive a low dimensionality projection of a higher dimensionality space.

<comment><USER4> What about many-worlds? It appears randomly from the inside but actually isn't.

</comment></comment><comment><USER5> This article completely misses the point. You can never disprove hidden variable theories in a stochastic system, because hidden variable theories make the exact same predictions as 'true random' theories - the difference is only philosophical. What you can disprove are local hidden variable theories, which were somewhat popular (and favored by Einstein, for example) prior to Bell's thought experiment being empirically supported. See what Einstein wanted was for all of quantum mechanic's weird results to be explainable by local interactions that took place when two particles interact - so that when they become entangled and subsequently drift apart, you don't have to have any "spooky action at a distance" to explain the results of experiments you do on them separately. However, what Bell's experiment shows is that the dice don't get rolled until one of the particles is measured - and that the way in which a measurement is performed on one particle affects its correlation with the other. So in fact you do need instantaneous nonlocal interaction to explain the real world. The result, unfortunately, has nothing to do with 'hidden variables' vs. 'true randomness'. What it does say though, is that you can't just explain away the weirdness of quantum mechanics as the result of some yet-to-be-found local hidden variables.

<comment><USER6> "So in fact you do need instantaneous nonlocal interaction to explain the real world." Do you just mean quantum entanglement, or some other "spooky action"? (love that quote btw -- like many)

<comment><USER5> Haha, well the instances of Bell's experiment that I've seen so far all refer to entanglement. It's pretty easy to think about some unknown quantity having a probability distribution on its states. If you have an electron, and you don't know the spin yet, you say that it can be either up or down. What's special about entanglement between 2 particles is that it says the distributions on the two are not independent. In the classic example, one can only be spin up if the other is spin down - so they have a statistical dependence on each other. Bell's experiment tells us that the strength of this statistical dependence depends on how you measure the particles, which isn't determined until measurement time, when the particles are far away. But that being said, you could imaging all other sorts of spooky action at a distance - like 2 particles that have never been local to one another having some sort of statistical dependence. But that would be really hard to show until you found what type of nonlocal statistical dependence to look for, so usually when we're trying to figure out a good model we end up thinking about entanglement.

</comment></comment></comment><comment><USER7> I love the idea of true randomness because it seems, to my uninformed mind, to allow us the possibility of free will. Without true randomness, while we may enjoy the illusion of free will, our decisions are ultimately left to deterministic hidden variables. That makes me sad. But given true randomness, we may in fact have some mechanism whereby we are truly autonomous. How that might work is way beyond me and probably leads very quickly to pseudoscience and quackery, but it's certainly fun to think about.

<comment><USER8> I'm not sure random will is equivalent to free will. Is a choice still a choice if it's made randomly? Couldn't you say that the photon in the experiment has free will then? What's the difference?

<comment><USER9> True randomness eliminates determinism. With determinism free will is ruled out. That doesn't mean everything that shows true randomness has free will.

<comment><AUTHOR> > With determinism free will is ruled out.

This is a popular statement but I've never thought that to be the case. Imagine you're creating a movie. You can pick the actors, the characters, the plot, etc. When you play the movie, the playback is completely deterministic. But that doesn't mean free will didn't design the film.

I could see something similar applying to reality. Your actions may be predetermined, but that doesn't specify exactly _how_ they were determined.

</comment></comment></comment></comment><comment><USER10> I think this article is side-stepping an important philosophical point as to what randomness is.

Suppose we lived in a deterministic universe (e.g. one that actually ran on Newtonian mechanics and classic electromagnetism).

If you're of a mildly Bayesian persuasion, you 'believe' in randomness - <USER2> in a deterministic universe - because probability represents your knowledge. Sure, all the rules for the universe's evolution over time are deterministic, but you don't know the initial conditions, so you consider some probability distribution over initial conditions. Thus, the results of future events are 'random.'

The counterargument might go something along the lines of "that's not _really_ random the way quantum mechanics is, because Bell's inequality demands violating either hidden-variables or locality and violating locality is worse. Without local variables, you can't meaningfully talk about having a 'underlying' deterministic universe."

Except you (sort of can). Bell's inequality implies that we can't have a theory with local laws of physics for single universe. But we can have a theory with local laws of physics for a multiverse which is the approach many- worlds takes.

</comment><comment><USER11> Bohmian Mechanics is an interpretation of Quantum mechanics which does not have any "true" randomness.

It is effectively a hidden variable theory consistent with quantum mechanics.

So at least _some_ physicists do not believe in true randomness.

</comment><comment><USER12> Thanks for posting something from this site. I've never heard of it before, but can't stop myself from checking out yet another article. Most of them are really well written.

</comment><comment><USER13> Perhaps someone else more knowledgeable can chime in -

Isn't true randomness unverifiable? In other words, it seems (to me) that there is no body of evidence that would verify that a particular event was "caused" by (i.e. was the result of) true randomness (as opposed to the result of hidden events/variables)

<comment><USER14> In the particular context of this post, it isn't. The local hidden variable theory is conclusively wrong. Not sure if there are recent results about nonlocal hidden variables, but last time I checked we couldn't say anything about that.

There's a great (and pedagogical enough) discussion of this at the back of Griffith's Introduction to Quantum Mechanics

</comment></comment><comment><USER15> I thought some scientists hadn't really closed the book on bell's inequality, and though most agree with it there were some gotchas that leave room for doubt as to correctness

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

<comment><USER16> _I thought some scientists hadn 't really closed the book on bell's inequality_

That isn't what the post you linked to, or the links it gives, says. Bell's inequality _is_ violated. The book _is_ closed on that. (Technically, there are a few holdouts who won't be convinced unless we do the experiments with 100% accurate detectors, but they've been done with detectors that are better than 90% accurate and the inequality is violated.)

</comment></comment><comment><USER17> Can someone explain this a bit better? As far as I can tell, the argument is basically "these particle effects should be predictable. I can't predict them, therefore they're impossible to predict". That sounds like nonsense to me... And I don't understand the cos equation.

The argument seems to assume that the experiment is perfectly controlled, and given that we're still figuring out quantum effects, this seems to be in impossible task (Make sure no outside effects can change the experiment, without knowing all the outside effects). So, to me, all the experiment proves is we don't understand what's going on.

My belief: There is no such thing as true randomness or chaos. Only order we don't understand.

<comment><USER18> There are two different kinds of randomness [1], one is lack of knowledge, the dice you could calculate or the precise times of keystrokes which could be easily measured. The other is 'true' randomness, that is the claim that no experiment or calculation could predict the value of the random variable. Bells inequality can (sometimes) distinguish between the two. And it turns out that quantum mechanics allows to measure Bells inequality. The result of these experiments is, that there is no straight forward way to introduce 'hidden' variables such that the randomness would just be a lack of knowledge. And it does so in a way that allows for experimental errors. (Sorry for being quite vague, it is quite late here and it would take some time to remind myself of the details.)

So if you want to claim that there is no such thing as true randomness, then you are essentially calling for another revolution of physics on a similar scale as the quantum revolution at the start of the last century. It is entirely possible that this happens, but it contradicts the most fundamental theories of physics we have.

[1] Actually three, it is not obvious what optimal strategies have to do with either of the definitions above.

</comment></comment><comment><USER19> John Bell himself wrote an entertaining paper railing on the orthodox perspective: Against Measurement.

[http://www.tau.ac.il/~quantum/Vaidman/IQM/BellAM.pdf](http://www.tau.ac.il/~quantum/Vaidman/IQM/BellAM.pdf)

</comment><comment><USER20> I don't understand how the photon thing proves randomness. How did they generate random angles?

I feel like the expirement is saying "we generate random numbers then prove random exists". Ok and a horse is a horse.

</comment><comment><USER21> Isn't this just a question of whether they believe in quantum mechanics?

<comment><USER22> There are deterministic interpretations of quantum mechanics, under which the usual randomness in quantum mechanics is not truly random.

<comment><USER23> But Bell's inequality says that these hidden variable theories are incompatible with the results of experiments. Real experiments. Like these: [http://en.wikipedia.org/wiki/Bell_test_experiments](http://en.wikipedia.org/wiki/Bell_test_experiments)

It may be the case that there really is a hidden variable, but it would need to communicate it's value nonlocally, which I'd argue is stranger than the universe just being somewhat random.

<comment><USER22> The Copenhagen interpretation is arguably the most popular interpretation of quantum mechanics and is nonlocal.

<comment><USER23> True, but there are no hidden variables in the copenhagen interpretation.

</comment></comment></comment></comment></comment><comment><USER24> I was under the impression that violation of Bell's Inequality generated a trilemma -- locality, realism, and counterfactual definiteness.

</comment><comment><AUTHOR> Here's how I like to think of this (I have made some huge simplifications by the way):

Basically, you have two entangled photons that travel in opposite directions. Let's say one heads toward New York and the other heads toward California. The particles arrive at their destination at the same time.

Each experimenter has a little filter (called a polarizer) that he can rotate, and each experimenter rotates his filter to whatever angle he wants the instant before the photon strikes it. Each experimenter then measures whether the photon passed through his filter or got absorbed.

Because each experimenter rotates his filter at the last possible instant before the photon strikes it, there's no way that the guy in New York could know what angle the guy in California chose, because to know this would require that information to travel faster than the speed of light.

Now let's ask the question: what is the probability that both photons had the same measurement? (That is, what is the probability that either both photons passed through the filter or both photons were absorbed). From looking at data from multiple runs of this experiment, it turns out this probability is a function of _both_ filter angles.

But since nothing can travel faster than light, how is it possible that the probability is a function of two independently chosen angles? Well the simplest way this can happen is something like P = f(θ1)g(θ2). You can see here that the total probability is a separable function. In other words, the total probability can be computed using functions of two separate angles. It would be like computing the probability that two separate baseball players both hit the ball; you don't need any faster than light information transfer to figure this out.

However, in actual experiments, it turns out that P = f(θ1, θ2), and this function is _not_ separable. What this means is the total probability is a function of both angles _together_ \-- you can't compute independent probabilities and combine them.

What does this mean? It means that somehow each filter "knew" the angle the other filter was rotated to, instantly. So reality is "non-local". BUT there's another option if you don't like that: the universe "knew" in advance what angles the experimenters would choose, and let each photon know this before they separated. This would give the correct experimental results, and you wouldn't have to give up locality. This is called superdeterminism, and it hasn't been ruled out yet, but let's be honest: is the universe really working that hard to conspire against us? (At least one Nobel-prize holding physicist thinks so).

EDIT: Also, why did this article instantly drop like 40 spots on HN? Is it because I shouldn't post comments on articles I submit? (I didn't write the original article by the way.) It's kind of annoying to spend twenty minutes writing a comment that nobody's going to see.

</comment><comment><USER25> > If, on the other hand, you try to predict something like the moment that a > radioactive atom will radioact, then you'll find yourself at the corner of > Shit Creek and No

I love it!

<comment><USER26> I had the opposite reaction.</comment></comment>


Show HN: Promises – Type safe promise library for go - <AUTHOR> https://github.com/garlicnation/promises/ <comment><AUTHOR> Hey HN! I built this library to help out with some concurrency patterns I sometimes have to implement in go! Let me know what you think.

repo: [https://github.com/garlicnation/promises](https://github.com/garlicnation/promises)

godoc: [https://godoc.org/github.com/garlicnation/promises](https://godoc.org/github.com/garlicnation/promises)

<comment> A-AronBrown Disclaimer: I've been a Go programmer for ~9 years and think that Promises and to a lesser extent, async/await, are inferior to Go's native concurrency primitives... so for all intents and purposes, I am making this comment from my high horse and I apologize if this sounds overly negative - I don't indent for it to sound that way.

With that said, IMO, this doesn't seem to be any better than channels.

For all examples, you can use a single channel or no concurrency. And for that you reduce complexity, remove the need for error handling and don't throwing away type-safety.

EDIT: I didn't read WHY.md because it looked way too long and wordy for something as simple as this, so take my comment with a few more grains of salt.

<comment><AUTHOR> Thanks for checking it out!

The points you raised are why I wrote WHY, but I'll do my best to summarize the weaknesses of channels+goroutines that I believe this covers:

\- fan out, because channels don't support it

\- error chaining between goroutines. The solution I've often seen here is an error channel and another way of cancelling workers. If an early promise returns an error, later promises won't execute and the early error will get returned on Wait()

\- complex graphs of async operations that are only executed once

re: type safety: this library will make sure all your types line up before executing your functions. With generics/contracts it may be eventually possible to make it compile time safe as well.</comment></comment></comment>


A Good Samaritan Law for Engineers at a Software as a Service (SaaS) Company - <AUTHOR> https://www.bennadel.com/blog/3652-a-good-samaritan-law-for-engineers-at-a-software-as-a-service-saas-company.htm <comment><AUTHOR> I've known Ben and his cofounder Clark Valberg for probably fifteen years. Clark is the front man, the CEO, of InVision. Ben strikes me as someone wanting to avoid being a manager at all costs and happy to just code. They're both great people.</comment>


Hola VPN turns 10M users into exit nodes - <AUTHOR> https://8ch.net/hola.html <comment><USER2> They explicitly state in their FAQ how this works and why their service is able to be free: [http://hola.org/faq#in_how_is_free](http://hola.org/faq#in_how_is_free)

They even have a non-free option that eliminates the VPN as a proxy feature.

"Hola built a peer to peer overlay network for HTTP, which securely routes the sites you choose through other Hola users' devices and not through expensive servers. Hola never takes up valuable resources from these users, since it only uses a user as a proxy if that users' device is completely idle (meaning device is connected to electric power (not on battery), no mouse or keyboard activity is detected, and device is connected to the local network or Wifi (not on cellular)). This makes Hola the first VPN service without underlying operational costs. Although Hola doesn�t need to pay for bandwidth, we still need to pay the engineers who create, maintain and keep improving the free Hola service. Hola generates revenue by selling a commercial version of the Hola VPN service to businesses (through our Luminati brand). This is what allows us to keep Hola free for our users. Users who want to enjoy the Hola network without contributing their idle resources can do so by joining the Hola premium service for $5 per month (or $45 per year)."

<comment><USER3> Hello, Fredrick Brennan here (8chan owner).

They changed their FAQ _IN RESPONSE_ to my breaking the story on this.

Proof:

Google cache of Hola FAQ as of 26 May: [https://archive.is/tgujS](https://archive.is/tgujS)

As you can see, there is no mention of Luminati, or the underlying mechanics at all.

I published hola.html and updated my global announcement just hours before the FAQ change: [https://twitter.com/infinitechan/status/603178141650026498](https://twitter.com/infinitechan/status/603178141650026498)

There are millions of users who installed this and do not know how it works. Please do not downplay this issue.

<comment><USER4> Not do downplay this issue, but wouldn't one simply assume it works this way.

I mean, how else would it work, Hola operating their own proxies and giving all of that infrastructure and bandwidth away for free?

Of course it would be P2P and would turn the user into a supplier of data and bandwidth to others. This basic model has been in use for "illegal" content for well over a decade now.

Now how they exploit that bandwidth is a different matter. Conflating those two is what will give you the "meh" reaction.

Also, "accusing" Hola of being unethical because it has no recognizable signature is another red herring. Of course it hasn't, otherwise it would get blocked by the geotarded services it is supposed to unblock. It's not an evil feature in itself.

The Luminati exploitation angle is the issue. Everything else about Hola is either transparant or at least pretty damn obvious.

<comment><USER5> I agree with most of what you said. When you're downloading proxy/vpn software like this, it's either P2P (and you're sharing your own resources) or it's centralized. They could make this clearer in the blurb to download the software, but they don't hide this fact and in fact make it clear from their FAQs and pricing pages.

But the Luminati angle is nothing different. It would make abusing the proxy network easier (from a technical perspective) but it's nothing you couldn't do with Hola alone. Luminati is just API access to Hola along with expensive pricing and a screening interview with sales staff. You could hack your own API out of only Hola if you really wanted.

The real story is that last time I checked, all their US exit nodes come from Digital Ocean, which is hardly worth $20/GB (should be more like $5/TB). I guess they don't have a lot of US users.

</comment></comment></comment></comment><comment><USER6> This is basically why you never want to use a proprietary client with any VPN service, you don't know what you're getting into at all. At least with PPtP/L2TP/OpenVPN based services you can use well known clients or OS vendor provided clients that are unlikely to have little goodies like this.

<comment><USER7> Hola explicitly say this is why they're able to offer the service for free [http://hola.org/faq#in_how_is_free](http://hola.org/faq#in_how_is_free)

dchuk beat me to it!

<comment><USER8> Yes, now it says so. Didn't do that earlier :-)

<comment><USER9> actually it did.

From the archive link provided by 8chan

Hola's goal is to make the internet faster and fully accessible to everyone. Install Hola on your PC, phone or tablet to make your internet faster, more open and more anonymous. Hola lets you have unlimited access to information that is otherwise not available in your geography while protecting your online privacy. It also lets you stream videos faster than ever before. Hola is a collaborative internet -- it works by sharing the idle resources of its users for the benefit of all.

The new version talks about luminati.

<comment><USER10> This doesn't _at all_ explain the associated risks in a manner that the average user can understand it. It's presented as a feature, rather than the risk it really is.

</comment></comment></comment></comment></comment><comment><USER11> If anyone cares for their proxy links, here are they: [http://milankragujevic.com/uploads/hola/?ref=hackernews](http://milankragujevic.com/uploads/hola/?ref=hackernews) And the blog post: [http://milankragujevic.com/post.php?id=72&ref=hackernews&cid...](http://milankragujevic.com/post.php?id=72&ref=hackernews&cid=9615983)

<comment><USER12> I had also broken down the way this works a long while ago and found they have a _lot_ more proxies than this. In some cases they just have a digitalocean VPS running somewhere to help beef up the network.

It was only recently that they started requiring the user auth for the proxy access, earlier it was a free for all without any auth at all. Now they have the option to track which accounts are causing traffic on their network and potentially put a stop to them (not that is isn't difficult to get around)

<comment><USER11> Yes, you can enumerate the number of proxies from 1 to 999 with a while(true) loop. However I just used their own api for this.

</comment></comment></comment><comment><USER13> This made me laugh--I wonder how many innocent people are going to have the FBI kick their doors down for things that past through their "exit nodes" that they hosted.

<comment><USER14> I wish it was the other way around, mass-spread sharing of internet access leading to it becoming the norm and people finally getting some privacy from mixing their connections.

</comment></comment><comment><USER15> What if a node messes with the response and returns fake data? Do they route the request over multiple nodes and compare the results? Then what if someone owns a lot of nodes?

<comment><USER3> Hola's browser extension is proprietary. A friend of mine has been considering reverse engineering it but is not sure of the laws.

<comment><USER11> I've reverse engineered it a long time ago and are using their proxy clients (ZAgents as they refer to them internally) as proxies for clicking on my own ads. I have their username and password and a list of dyndns domains. Email me if you want the data.

<comment><USER11> Published the list here: [http://milankragujevic.com/post.php?id=72&ref=hackernews&cid...](http://milankragujevic.com/post.php?id=72&ref=hackernews&cid=9615987)

</comment></comment></comment></comment><comment><USER16> _So far as I can tell, there is no way to tell if an IP has the Hola VPN software installed or not: no tell tale open port, no special header from Luminati, and no specific range._

Then, immediately in the next paragraph:

 _An attacker used the Luminati network to send thousands of legitimate- looking POST requests to 8chan 's post.php in 30 seconds, representing a 100x spike over peak traffic and crashing PHP-FPM._

How was that conclusion arrived at? Am I missing something here?

<comment><USER17> Copypaste is rate limited, he had this to say: [https://twitter.com/HW_BEAT_THAT/status/603741442490642432](https://twitter.com/HW_BEAT_THAT/status/603741442490642432)

"The user flooding himself (Bui) spilled the beans and told me how he did it voluntarily in IRC. Otherwise I'd have no clue."

</comment></comment><comment><USER18> Anyone like to recommend a browser-extension-based VPN tool that's a bit more respectful than Hola and is relatively cheap?

(Of course I run my own VPN server using OpenVPN, but Hola is really convenient when I'm only trying to get an American IP to avoid Australian geoblocking - it's also easy for non-technical friends to use.)

<comment><USER19> Tunnelbear recently released a chrome plugin for their VPN service. I hear good things about it. (I personally use the application on my Mac)

<comment><USER20> Tunnlebear makes no claims relative to logging its users activities or about its responsiveness to requests for them. Beware.

<comment><USER21> We have a pretty clear and accessible privacy policy that addresses these issues in detail [https://www.tunnelbear.com/privacy- policy/](https://www.tunnelbear.com/privacy-policy/) TL;DR: no logging

<comment><USER20> Thanks for the correction. It's improved considerably from when I was considering it.

</comment></comment></comment></comment></comment><comment><USER22> Anyone knows a better alternative to luminati.io? We've been using it in our company but it feels expensive.

I thought this thread may be good place to ask for an alternative.

<comment><USER23> Spin up VPS instances across multiple cities, countries and continents.

Hook them up with Docker and connect them with Swarm.

Label them with an IP/city/country/continent combination.

Use Docker Swarm's affinity labelling to start instances in a particular city when needed. Additionally record the last IPs used and use Swarm to _not_ deploy to those servers.

<comment><USER22> We scrape more than 120,000 web pages per day.

Cost of spinning up VPS instances, maintaining the software needed (to automatically close/open new ones and provision them) could be higher than the 20$/GB pricing Luminati offers.

<comment><USER23> I already have the tech after 3 years experience building this. I can rebuild it for you. Contact details in my profile.

</comment></comment></comment></comment><comment><USER24> > or allows domains to pay them off for such a rejection.

Thereby creating the world's largest extortion racket.

Yeah, maybe not such a good idea to encourage that sort of business model.

</comment><comment><USER25> I doubt that if they sell their users as bots they will do anything about the network being used as a botnet and there is nothing you can do about it, especially considering the users 'responsible' won't even know what they are taking part in.

<comment><USER26> It's not clear that part of the article is even true.

They appear to just sell VPN server by the GB. I see nothing about a botnet in there, there is no traffic amplification or ability to run programs on the clients.

<comment><USER27> The point of that bit is that it's not only possible, but borderline-trivial, for a malicious application (e.g. spambot, DDoSbot, etc.) to hook into the API and flood a target using Hola users as endpoints; the article states that such an incident has already happened, and that 24-hour captchas have been instituted for all users as a result in an attempt to stifle future such attacks on 8chan.

</comment></comment></comment><comment><USER28> Anyone have VPN recommendations?

<comment><USER29> For technically inclined people, setting up your own SOCKS proxy is the simplest method possible.

1\. Get a cheap server (ex: DigitalOcean $5/month) in the city/country you want to connect through.

2\. Add these 2 lines to /etc/ssh/sshd_config:

AllowTcpForwarding yes

GatewayPorts yes

3\. Restart sshd (service ssh restart), or restart the server.

4\. Connect to the server setting a dynamic port forward. On linux or Mac, this is just "ssh -D 8000 email@example.com". On Windows, putty lets you set a dynamic port forward.

5\. Personally I use Chrome for my real browsing, and then use Firefox for the proxy since it allows configuring a proxy for the browser only rather than the entire operating system. You just set the SOCKS proxy under advanced networking settings (host 127.0.0.1, port 8000).

6\. If you want all internet traffic to go over the proxy rather than just Firefox, this is easy on Mac through the Network Preferences panel. I'm not able to comment on linux/Windows in this regard.

<comment><USER30> As far as I know, that leads to terrible performance.

<comment><USER31> It actually leads to much better performance than using someone else's home connection. Any VPN or proxy will have some performance penalty associated with it.

</comment></comment></comment></comment><comment><USER32> no need to uninstall.

signup for a new account via this link and you get free premium which means you are off the exit node list

[http://hola.org/referral_signup?referrer_uid=basic%2Fg163589...](http://hola.org/referral_signup?referrer_uid=basic%2Fg1635898%40trbvm.com&ref=my_account&medium=manual)

re-signup each month for a new account and a new month of premium

</comment><comment><USER33> that's sneaky and some one needs to point out for this!</comment>


Detained in the US for "Visiting Thailand Too Much" - <AUTHOR> http://www.richardbarrow.com/2013/08/detained-in-the-us-for-visiting-thailand-too-much/ <comment><USER2> For all the mean things that border control agents get away with every day, I personally enjoy "Returning From Thailand" as my little opportunity to even the score a bit.

"How long have you been gone?"

"I don't know. A year, give or take? Who keeps track?"

"Which countries did you visit while you were away? Your landing card just says 'most of them'"

"Well probably not _most_ of them really, but definitely enough not to fit in that space. Let's see... [followed by a complete list]

"What's your occupation?"

"I own a software company. It pretty much runs itself these days, and I just check in every once in a while to see how things are going."

"Is this bag your only luggage?"

"Yeah. I was only gone a year, remember. I find you don't really need much stuff in the tropics. I've worn this shirt 40 days running now. I think I'll buy a new one now that I'm home"

Basically, it's your opportunity to remind them that their job is to sit in a little cube talking to people who are actually out there leading exciting lives. And that their attempts to make other people's lives worse is not really doing a very good job of making their own life any better.

One day they'll quit and go find a better job. Or give up trying to make other people's lives worse, thus making the world a slightly better place.

Seems to be working. These days at LAX, it seems that one in four of the people manning those desks is genuinely friendly. And the ones that need this sort of treatment are few and far between.

<comment><USER3> I don't think I've read a more privileged, arrogant, myopic comment in a very long time.

In what world is it your role to judge a person for going to work every day to feed their family?

 _" Basically, it's your opportunity to remind them that their job is to sit in a little cube talking to people who are actually out there leading exciting lives."_

I'm trying not to read that sentence in the voice of a young English aristocrat from the 1920s, but that's how it sounds. Mocking the working class for the distasteful faux pas of needing a paycheck to survive?

You are blessed for having been able to find a way to live a life of travel and pleasure while others have to worry about which bills they can pay, hope they don't get sick, and dream of someday being able to take even one vacation. Does that mean you are better than them? You certainly seem to think so.

 _" One day they'll quit . . . the ones that need this sort of treatment . . ."_

Honestly, listen to yourself. Are you some authority appointed to correct the misbehavior of your inferiors? No. You're a guy with talent who drew the right cards, played them well, and was rewarded with a life others would like to have. Learn a lesson about humility from my grandmother who grew up in the Great Depression, and reminded me always to tell myself "there, but for the grace of God, go I."

On a side note, I see that you are the founder of Twiddla. Not that the opinion of a single user matters, but as a user, I will now look for an alternative. I have no interest in supporting such arrogance.

<comment><USER2> _Are you some authority appointed to correct the misbehavior of your inferiors?_

No. If you came away with that impression then you may have misread my intent.

My stance is that mean people deserve to live an unhappy life. No more. Nice people, as noted in the comment you responded to, receive no such treatment from me. Mean people get a fictionalized account of a person leading a much better life than themselves, delivered by a person who in actual fact is not likely leading a much more interesting life at all.

As a mean person, the theory goes, one can continue being mean and thus unhappy. Or they can start being nice and be treated nicely. Notice how class does not enter into it at all.

<comment><USER3> Do you think for a moment about what that person had to put up with for the hours before you arrived that day, or will continue to deal with after you leave?

Is it not enough that you've managed to retire as a young man and lounge on the beaches of Thailand, do you also need to be treated with smiles and deference by people who still have to go to work every day? They have a job to do, and your abuse isn't going to help anything. At best, it'll just make the experience that much worse for the person in line behind you.

Empathy is not something that can be forced on a person, and a comment on a web page isn't going to make you change your attitude or think about anyone else's life, but then again, being a dick to customs agents isn't going to help, either, so I guess we're both wasting our breath.

<comment><USER4> "I'm rude because I've had a shitty day" isn't a good excuse.

I think Jason made the mistake of not clarifying in his comment that he only does this to agents who are rude to him first. Now his comment has turned into a new story by itself with a lot of angry comments.

I feel sorry for Jason because he seems like a nice guy who just didn't properly proofread his comment before posting and he's now getting a huge ass kicking as a result.

</comment></comment></comment></comment></comment><comment><USER5> Borders have three uses:

1) to keep people out

2) to keep people in

3) to be able to search/detain people without cause

I've yet to see a border that I liked. In plenty of countries this now extends to a certain distance away from the border (sometimes surprisingly large), _even_ when you are not actively crossing or have not crossed.

<comment><USER6> How about the border between EU countries.

<comment><USER5> Which one?

Between .ch and one of the surrounding countries?

Between any two Schengen countries?

Between a Schengen country and a non-Schengen country?

What kind?

On an airfield, a shipping port or a land border?

How are you moving?

With a vehicle or just you?

Who are you?

A Citizen of a Schengen country?

A Citizen of the EU?

A Citizen of the United States, Canada, Japan, Australia or New-Zealand?

A Citizen of another country?

What do you look like?

All have different rules governing what border patrols can/may/must do and the other variables determine what you're up against depending on the can/may bit. Hard to know your rights (sometimes the guards don't even know...), and your obligations.

Amongst what you could encounter:

\- fixed stop-all checks

\- mobile checks

\- abandoned borders

\- randomly manned borders

\- nothing at all

EU border strategy is pretty messy. Even on the outside borders of the EU it is very much dependent on where you are what you'll encounter.

Some borders are so porous they might as well not exist, others are so locked up that even though technically cross border traffic is open in practice it's just like it was before or worse.

If you want to know about borders in the EU: become a trucker for a few years.

<comment><USER7> I remember cycling across the border from France to Italy once. Just a deserted alpine road, it was beautiful...

Also, come to think of it, the sleeper train from Paris to Munich last summer didn't ask me for any ID at all...

The time we drove from Croatia to Italy was a different story though (come to think of it, that was before it joined the EU a month ago, so probably not relevant.)

</comment></comment></comment></comment><comment><USER8> As a dual-citizen I still find it mind-boggling that a US border guard asks me questions about my private life. It still isn't clear to me what can happen if I answer "wrong" (e.g. the answers do not meet his expectations).

For comparison, in many (if not most) countries (I don't want to name my specific case because this could derail the discussino) a border guard presented with a passport issued by his own country has exactly two options: 1) arrest the person on the spot (arrest meaning what it should, e.g. call the police and follow the law) or 2) let the person in. There are no questions, because the border guard has zero discretion in letting the person in. In general, a citizen of any country should always be able to enter that country, no questions asked (with the possibility of being arrested right afterwards, of course).

I find it both strange and disturbing that this gray area seems to be universally accepted and that outrage (like in the article above) is rare.

<comment><USER9> This is a type of "behavioral profiling". They take you on a random walk down a conversation tree, and unless you're a _very_ good liar, it will be difficult for you to answer the questions without delays, inconsistencies or other signs of prevarication.

It's a common claim around here that airport security is mostly theater and that El Al does it right. But El Al uses behavioral profiling, and as you point out, that can seem as intrusive as any scan.

<comment><USER10> > it will be difficult for you to answer the questions without delays, > inconsistencies or other signs of prevarication.

What if I'm a little absent minded and I already have a hard time answering without delays and inconsistencies?

<comment><USER9> Are you arguing that behavioral profiling is useless or that it's not perfect?

The classification technique goes beyond just watching how fast you answer: It's a skill that takes training and practice, but can be extremely effective, which is why the Israelis and U.S. ICE use it.

</comment></comment></comment></comment><comment><USER11> I have no words. They won't even stop at looking through your files on a groundless suspicion - they'll _clone your harddrive_? With your naked pictures of your girlfriend, diary, company secrets and everything?

And I'm a "rights-free person" (a foreigner). If they do this stuff to citizens, I can't even imagine what sort of authority they have over foreigners. You guys really need to rein in your government, this is getting insane.

<comment><USER12> Canada does this too. [[http://tynan.com/ohcanada](http://tynan.com/ohcanada)] Probably every country with the technological capability does this when they feel like it.

You have no rights at an international border. And if you're non-white, you have even fewer rights.

</comment></comment><comment><USER13> > They even went through his laptop and copied his hard disks.

I may be completely out of line here but why can't he request a lawyer before doing this kind of stuff? Why are they allowed to dig so deep into someone without any evidence of doing something illegal?

<comment><USER14> [http://en.wikipedia.org/wiki/Border_search_exception](http://en.wikipedia.org/wiki/Border_search_exception)

Basically, the Fourth Amendment doesn't apply at the border, and they're under no obligation to allow him to contact anyone.

</comment></comment><comment><USER15> I wonder how many people have the US on their personal no-fly lists because of such stories?

<comment><USER16> I certainly avoid the US for any connecting flights to Central and South America (I live in Europe). I've also been avoiding vacationing in the US since I experienced some rather rude TSA agents at Miami International a few years ago, although to be fair I have seen some of the US and wanted to expand my horizons.

</comment></comment><comment><USER17> I'm sorry, but if you try to enter the US with any physical objects that have even the remotest chance of being interpreted as being illegal, or digital storage that isn't encrypted, you're just asking for trouble these days.

<comment><USER18> Uhm, in light of those, isn't it risky to enter US with encrypted digital storage too?

<comment><USER19> Cross borders with blank drives. Re-image when you're at your destination.

Although it can be interpreted as such, it's not a sign of guilt, it's a response to the possible threat of immigration officers on a power trip. The vast majority are absolutely fine, but there are some that overstep their bounds or work within an egregious legal framework, e.g. the Brits. If they force you to decrypt your data (as they legally can in the UK), who knows what they'll do with it, especially if you've got proprietary work and confidential business stuff on there.

<comment><USER20> The drive doesn't have to be blank. Just put on a fresh install of an OS and don't put on any personal files. Then reimage after reaching your destination.

</comment></comment></comment></comment><comment><USER21> What I would love to do is to get stamps from the 'axis of evil' all on one page of my passport by visiting Iran, Iraq and North Korea, then travel the the US. Maybe I can get them to also stamp that page :)

<comment><USER8> You mean with a "Guantanamo Bay - ADMITTED" stamp?

(I just realized that this would be a silly and not-too-funny joke several years back, while these days it is both not silly and not funny at all)

</comment></comment><comment><USER22> To be honest, this isn't so hard to do. I went to Kazakhstan to visit a college friend once and got placed on the watch list for the two years after that. Apparently visiting a country with stan in the name, regardless of purpose, is cause for suspicion.

I'm a little surprised they bothered to copy the hard drives. Usually they just do a full search down and then they want you to be gone as soon as possible.

It makes me sad, but I'm unsure as to what to do about it. I'd generally suggest removing the hard drive from the computer, but that's becoming more difficult to do. You can use full drive encryption, but then if they want they might just confiscate the whole computer. Beyond that, at this point that unless your paranoid your communications can be monitored with ease.

</comment><comment><USER23> Yeah, this is not freedom. It's alright, USA. But stop pretending otherwise.

</comment><comment><USER24> This is another good case of having a second passport as an American (or any place for that matter) for travel and (shtf) insurance purposes.

"Distributed Nationality" if you will.

<comment><USER19> What risks are you trying to protect against?

<comment><USER24> Political risk, business risk, etc. The same reason you don't invest everything in one stock, one skill-set, etc. Same reason you back up your database and use version control.

Distributed systems is all the rage now. It makes sense on all levels of life.

</comment></comment></comment><comment><USER25> > The pictures of your kids taking a bath maybe interpreted in a different way > by immigration officers

Reminds me of a story just like that. The only source I can find now: [http://www.muripo.com/2013/06/07/elderly-man-arrested-for- po...](http://www.muripo.com/2013/06/07/elderly-man-arrested-for-possession- of-photos-of-children-playing-with-water/) but I'm sure quite it was on HN.

</comment><comment><USER26> He flew home to the USA but he was processed in Canada? In other words, did he fly into Canada from SE Asia and then immediately drive to the USA? Honestly, that would look a little suspicious to me if I was a customs officer.

I've flown into L.A. and Dallas/Fort-Worth a bunch of times from the Asia Pacific region of the world and never received a glance at any of my visa pages.

<comment><USER27> Plenty of international flights connect through Canada, like Vancouver on the west coast. Also, most big Canadian airports have American immigration facilities since they have so much traffic to process, quite efficient actually.

<comment><USER28> More information about preclearance: [http://en.wikipedia.org/wiki/United_States_border_preclearan...](http://en.wikipedia.org/wiki/United_States_border_preclearance)

</comment></comment></comment><comment><USER29> I had a business colleague who was based elsewhere in Asia for several years. He visited Thailand every few weeks the entire stay. When he returned to the US, immigration gave him the same rundown. When he finally convinced them that he was just a young guy who wanted to have fun, they waved him through with a smile.

</comment><comment><USER30> It's odd that we still "stamp" passports, allowing border guards to see what countries you have visited in the past. This information should not be available to any authorities by any means, but especially not appended to your identity documents. Afaik, only Israel has a correct policy on this.

<comment><USER31> A passport was not originally intended to be an identity document, only a travel document. But the US doesn't have any official identity document, so the passport gets de facto used as one. This is unfortunate for a number of reasons.

</comment></comment><comment><USER32> Few articles on here lately regarding government "security" operations and the TSA. I can sympathize with these people, however most of the issues I have personally encountered have been outside the US, not while leaving the States or upon arrival. I've recently signed up for Global Entry, which is worth it I think, if you're concerned about any of these things. You are pre-screened in advance, and pretty much not bothered with immigration beyond that when you leave or arrive (note: TSA screenings still apply, unless you are a candidate for TSA pre check which, I believe, only applies to domestic flights as of now).

</comment><comment><USER33> Honestly, if there were a minimum IQ rating of 25 at DHS to be considered for employment, most of our problems with that agency would evaporate overnight.

<comment><USER34> The issue isn't "stupid employees" as you seem to think but an overreaching policy that is trying to cover all situations at once but doesn't really cover any. Add to that the reactionary measures that seem to be a staple of DHS since its inception and you just have a recipe for disaster.

</comment></comment><comment><USER35> Unfortunate story, but also very different than my experience with US border control. As someone who travels outside the US many times a year, including to somewhat odd places (last year has included Sudan, United Arab Emirates, Sri Lanka, Nepal, Malaysia, Ukraine), I've never had a single problem or spent more than a minute talking to anyone from customs or immigration.

Of course, the TSA is another story.

</comment><comment><USER36> Honestly, this is refreshing. The US does not have a serious terrorism problem, so the massive amount of border searches are very trouble. We're giving up a lot of freedom to solve a problem that we don't really have.

On the other hand, we _do_ have a pretty serious human trafficking problem, so I'm glad to see someone taking it seriously.

</comment><comment><USER27> I have been searched by borders and customs so many times in Seattle that I think they single put Americans for special treatment. I never come with much in my luggage (I shop in the states since china is expensive), so the searches go,quickly at least.

</comment><comment><USER37> You are a mean person. Even if the ends justify these particular means, as you suggest (and I don't even think you've got the cause and effect right here), insulting and demeaning someone far less privileged than you was immoral.

</comment><comment><USER38> US, land of the free…</comment>


Will U.S.-China trade war help end China's dependency on Western tech? - <AUTHOR> https://www.dailyherald.com/business/20190525/will-us-china-trade-war-help-end-chinas-dependency-on-western-tech <comment><USER2> Western Tech has CPUs and GPUs that China needs to make PCs and smartphones. Intel and AMD make the CPUs for PC motherboards.

Eventually, China is going to have to make their own CPUs and GPUs and every single part in a PC and smartphone and develop their own tech industry and outsell the USA tech industry.</comment>


DIY Kit Allows Plants To Tweet When They're Thirsty - <AUTHOR> http://crispgreen.com/2012/01/diy-kit-allows-plants-to-tweet-when-theyre-thirsty/

<comment><USER2> I love the irony of this being posted on a "green" website when it's an obvious waste of energy (both to build and power) compared to just keeping a decent watering schedule.

Nevertheless I like the build, although something using ZigBee would be more handy, unless you only have a couple of plants, otherwise the cabling might become unwieldy. And I wonder if there could be some way of extracting energy from the plant itself, making it self sustainable...?

<comment><USER3> Many plants are greatly over-watered.

Electronics such as this are usually asleep, drawing tiny amounts of power (we had one in a shipping container that needed it's battery changed no more than 18 months).

<comment><USER4> A decent watering schedule is not an overwatering schedule. Watering plants properly is not a difficult activity.

Further even assuming that it is very low power, just the energy and materials used to construct it blow away any notion that it is green.

This is an anti-green product. It is using products made via energy and chemical rich processes, then vampiring power, to solve a complete non- problem. It is novel, and it's right for HN, but the GP's point is completely on the money.

</comment></comment></comment><comment><USER5> Nifty, but I suspect that running two wires (power and ethernet) to every sensor is a nonstarter in serious applications. You'd really want it to have a battery and a wireless radio.

<comment><USER6> Funny, I'm pretty sure when I saw them at the Maker Faire they used one base station and an xbee on the sensor units. That was a few years ago, so maybe they must have "simplified" it.

</comment></comment><comment><USER7> Cool idea, but perhaps a better idea would be to actually water the plant automatically when the plant needs it, rather than just tweeting about it. See Garduino for example:

<http://www.instructables.com/id/Garduino-Gardening-Arduino/>

</comment><comment><USER8> This is a cool MVP, but the real value of something like this comes from its future development. When they are able to have the device tweet that the plant needs Nitrogen or phosphorus (and eventually the ratio), then it becomes something that can be really useful. This is especially true if they develop it with some fickle plant's requirements in mind. Then even a novice indoor gardener could keep a zebra plant or other more difficult plants to maintain.

</comment><comment><USER9> You could make a self-watering container and use pex tubing to deliver water from somewhere.

A self-watering container has a commercial name, "EcoBox", bu t are quite easy to make at home.

</comment><comment><USER10> Aren't plants deterministic with water consumption. I can see the value of this in so far as data mining an optimal schedule, but it isn't green nor scalable.

</comment><comment><USER6> I remember seeing this at the Maker Faire a couple of years ago, but then they called you instead of twittering. Pretty hilarious.

</comment><comment><USER11> Surely it could draw it's power from the ethnet cable instead of requiring a separate power supply?

</comment><comment><USER12> Finally a good use of twitter

<comment><USER2> There are some nice builds out there using Twitter, like the Seismic sensor made by a 14-year-old[1], a bird feeder[2], Tweet-a-Pot[3], etc[4].

[1]: [http://hackaday.com/2011/07/19/chilean-teen-builds- automatic...](http://hackaday.com/2011/07/19/chilean-teen-builds-automatic- earthquake-alarm/)

[2]: [http://hackaday.com/2011/06/28/tweeting-bird-feeder- keeps-a-...](http://hackaday.com/2011/06/28/tweeting-bird-feeder-keeps-a- picture-record-of-all-visitors/)

[3]: <http://hackaday.com/2011/01/07/internet-enabled-drip-coffee/>

[4]: <http://hackaday.com/tag/tweet/>

</comment></comment><comment><USER13> Knowing the margins on marijuana from dispensaries in California, this would be useful in their watering schemes.

I believe 1 oz. is around $150 for average weed there. So if this setup costs a tiny bit extra in energy costs (after artificial sunlight) and an arduino per 8 plants, it'd be awesome.

Of course, this tech could be used in other non-quasiillegal plants as well. Some things are just hard to grow.</comment>


The Biggest Mistake Postgres Ever Made - <AUTHOR> http://www.craigkerstiens.com/2018/10/30/postgres-biggest-mistake/ <comment><USER2> Why not just use back the name Postgres? And drop the SQL? IBM DB2 and Oracle springs to mind as two widely known SQL DB without SQL in its name.

<comment><USER3> The abbreviation pgsql is immortalized in lots of other places, so reverting to Postgres might make those more confusing. Not sure what else would be affected though.

</comment></comment><comment><USER4> I always pronounced it like "post-grease squeal" and no one ever corrected me so I just assumed that was canon.

<comment><USER5> Postgresickle has a nice ring to it.

</comment></comment><comment><USER6> Never heard anyone calling it postgre. But again, some people pronouns SQL as 'sequel'

<comment><USER7> I pronounce SQL as 'sequel' because IBM's System R was the first SQL implementation and its query language implementation was called 'SEQUEL' for "Structured English Query Language".

No amount of mental gymnastics by following implementations, and whatever motivations they have (a desire to distance themselves from big blue or avoid trademark disputes) will erase that unassailable fact from history.

[http://www.almaden.ibm.com/cs/people/chamberlin/sequel-1974....](http://www.almaden.ibm.com/cs/people/chamberlin/sequel-1974.pdf)</comment></comment>


Exploring Weight Agnostic Neural Networks - <AUTHOR> https://ai.googleblog.com/2019/08/exploring-weight-agnostic-neural.html <comment><USER2> When AGI arrives, it will be because of creative approaches like the one detailed here. Scroll to the bottom of the article to check out the interactive paper. It (along with World Models), are outstanding examples of presenting research in an clear and engaging manner.

<comment><AUTHOR> Thanks! We need more creativity (and breadth) in research to complement advancements that push in the depth direction.</comment></comment>