Show HN: Every Day Is Pi Day - <AUTHOR> http://euler.party/ <comment><USER2> For most of us in the world, No Day is Pi Day.

[http://imgur.com/1r5QpQu](http://imgur.com/1r5QpQu)

<comment><USER3> Also works with YYYY-MM-DD...

Although admittedly I too find the US date system's wrong-endianness pretty annoying.

<comment><USER4> I've always been surprised that Pi Day is primarily evangelized by so many math / science / CS folks, when I would think it would be precisely these folks who hate the MM/DD/YYYY format. ISO format soothes my soul like a warm slice of apple pie with ice cream.

<comment><USER5> Pi Day is the same in Drunk Endian (US) and Big Endian (ISO Standard) formats (March 14th). It's different in Little Endian (Traditional European) format.

<comment><USER4> Yeah this thought mainly occurred to me when a big hubbub was made about 3.1415 day (3/14/15, or MM/DD/YYYY).

</comment></comment></comment></comment></comment><comment><USER6> The text is very blurry on my browser, I'm not sure if it's intended but it makes it hard to focus on what's written.

<comment><USER7> That is the "text-shadow: 0px 0px 1px;", indeed it has a blurring effect rather than an fancy shadow effect in this case, I agree.

<comment><USER8> From what I remember, that is actually supposed to "smooth" text in some browsers. Text used to look too sharp in Chrome (haven't had this problem in a while) sometimes. I believe that was one of the "fixes!"

<comment><USER9> Until about 2014, Chrome didn't support ClearType on Windows, which is why text looked so awful compared to other browsers.

Mac's renderer happens to err on the side of drawing more pixels in case of ambiguity (e.g. calculation yields fractions of a pixel); this is why everything on a mac looks like its in bold with the default settings. Windows tends to err on the side of not rendering those pixels but this is configurable with ClearType.

If you choose non-ClearType (what Google did in the early days), you have chosen to have ugly text that will not look good on anything other than a CRT in the 90s.

Now, somewhat ironically, Google's text actually looks somewhat better than Edge's; Microsoft stopped using subpixel rendering (i.e. the best part of ClearType) in Metro/Windows Store Style/Modern/UWP apps years ago, while Chrome is still taking advantage of the feature.

<comment><USER8> What's the reason for this? Why wouldn't you just use ClearType all the time?

<comment><USER9> As for why Chrome didn't implement it early on, they likely just hadn't bothered to use the newer APIs/use the APIs properly.

The reason why subpixel rendering is disabled in modern/WinRT/UWP apps, as I understand it, is likely to do with rotation. Modern apps are designed for tablet use, where the display may be oriented in any particular direction. Subpixel rendering depends on knowing the layout of the pixel elements themselves (the position of the R, G, & B elements relative to the greater pixel). When rotated, the layout changes and subpixel rendering makes things look worse.

In an ideal world, subpixel rendering would be turned off only in situations where the display is rotated. It appears that at least the rendering surface for Edge does use subpixel rendering, just not UI elements, which is an improvement over no use at all.

</comment></comment></comment></comment></comment></comment><comment> martin-adams For the curious, the source code takes a somewhat obvious approach:

[http://euler.party/pi.js](http://euler.party/pi.js)

Yep, I think that is literally pi to 6 million decimal places then doing an indexof of the 6 digit year and 6 digit time of day.

<comment><USER10> I wonder if the 6 million digits cover all possible 6 digit year and time combinations, I guess it wouldn't be hard to bruteforce check.

Edit:

I just noticed for the time digits, it seemed to be reporting something like -2 a few minutes ago.

'133343' doesn't seem to be part of the digits, which would represent 13:33:43. Unless I'm misunderstanding.

<comment><USER11> I wrote a quick script to test it. It does not take leap seconds into consideration and assumes all months to have 31 days (would be easy to modify, but it is sufficient for the task).

[https://gist.github.com/zulln/110a1d454d07339c496cc8ec6349fe...](https://gist.github.com/zulln/110a1d454d07339c496cc8ec6349fe8b)

This means this does not work about 200 times a day in addition to about hundred whole days (for every hundred years).

<comment><USER12> A quick script from me determined you need 10,524,628 decimals of pi for this to work for all dates and times, with the limiting time being 16:25:42.

<comment><USER13> > A quick script from me determined you need 10,524,628 decimals of pi for > this to work for _all dates and times_ ... (emphasis added)

For a finite, normally distributed digit sequence (as Pi is thought to be), the probability is always less than 1.0 for finding a particular sequence within it. But if you mean a specially engineered sequence designed to include all possible 6-digit sequences, then we've left the question of whether a given finite Pi sequence includes it.

<comment><USER11> I am not sure what you are trying to say here. He did not care about probability, he tested it.

</comment></comment></comment></comment></comment></comment><comment><USER14> "Euler" is pronounced "Oiler", which makes the domain quite amusing if you share my childish sense of humour.

<comment><USER15> No idea what the joke is; do you have to be a native speaker of English to understand it?

<comment><USER16> I'm a native English speaker and I don't get it either.

</comment></comment></comment><comment><USER17> I loved this: [http://euler.party/pi.js](http://euler.party/pi.js)

but it could have been done better by preallocating an array of size [86400] (all seconds in a day)

<comment> martin-adams But it's also used for the date as well

</comment></comment><comment><USER18> An approximation of Pi I put together just now

        var i, a = 1, s = false;
        var steps = 10000000000;

        for (i = 3; i < steps; i += 2) {
    	a += s ? 1/i : -1/i;
    	s = !s;
        }

        console.log(a * 4);

That loop approximates arctan(1) with a Taylor series, only using basic arithmetic operations.

        pi = arctan(1) * 4

Outputs:

        3.141592653388201
                  ^-- last correct digit

</comment><comment><USER13> I just performed an experiment with this 100 * 10^6 sequence of Pi and found out that a reasonable approximation of pi (31415926) is located at an arbitrary location within the sequence (apart from the obvious location):

        Test sequence found at location         0.
        Test sequence found at location  50366472.
        2 instances of "31415926" within the first 100 million digits of pi.

</comment><comment><USER19> I [think I] understand the annoyance with indicating Pi Day based on the US order for month/day (though, I normally use ISO 8601 as my first choice, also), but I think some people may be missing the point. In the United States, with poor STEM performance, anything that increases awareness of math in the United States is beneficial, even if it is in an extremely arbitrary way.

</comment><comment><USER20> Seems rather funny that it doesn't do the MMDD interpretation, too, given the current date.

<comment><USER21> If we don't encourage that date format then maybe it will go away!

<comment><USER22> MMDD is fine as long as it's preceded (rather than succeeded) by YY.

<comment><USER23> s/YY/YYYY/

<comment><USER24> well that's just the most obscure date format i think i've ever seen ? ;)

</comment></comment></comment></comment></comment><comment><USER25> My birthday is Pi Day. Now I don't feel so special anymore.</comment>


Show HN: MapChat – A super simple location based chat - <AUTHOR> http://idoco.github.io/map-chat

<comment><USER2> I was going to make this... Well, I still am, but a different way in a sense. I mean that as I have "map.chat" and was planning to launch a social networking service for schools behind it, think "pen pals" but modern!

<comment><AUTHOR> Sounds cool, this is a little different twist on the concept. I would like to keep it very light weight and simple.

</comment></comment><comment><USER3> Super cool !

</comment><comment><USER4> Looks cool!</comment>


Ask HN: What resources would you recommend to set up a paid newsletter? - <AUTHOR>

Hello.
I'm trying to monetize a blog by setting up a paid subscription tier for visitors who want scheduled, special content that goes more in-depth than the web material (and includes extra downloads like source code, images, etc.).
I currently have Mailgun set up for transactional emails (and frankly, absolutely love the routes system and the general robustness of the API).
Does anyone have experience with configuring a paid newsletter option on top of Mailgun? Or another service? (I'm willing to integrate another service, but would like to keep MG in the mix if possible) <comment><USER2> I'm working on something similar and I'll be using Memberful: [https://memberful.com/](https://memberful.com/)

It might not be the perfect mesh that you're looking for, but I think it might be a useful patch. You would just ask folks to pay by filling out the memberful form (powered by Stripe) and then add their email address to the appropriate mailing list. If/When payment stops, pull their email and send them a message asking them to update payment information.

</comment><comment><USER3> What are the specific things that you want to do that Mailgun won't let you do?

I'm guessing that you need a membership system and payment setup, for example?

<comment><AUTHOR> Exactly. I understand how to set up newsletter mailing lists with Mailgun, but I'm not sure how to incorporate payment information/subscription data. I understand the API includes support for pretty thorough tracking, but right now everything I'm looking at seems more oriented towards transactional emails like errors, site updates, etc.

I'm sure I might be able to build something that glued together the Mailgun and Paypal/Stripe APIs, but my preference (since this is a side project, and one that's focused more on content at that) is to find an out-of-the-box integration if that's all possible. That's why I'm considering moving to Mailchimp. I'm just loathe to leave behind my beloved Mailgun!</comment></comment>


Oops! PayPal accidentally credits man $92 quadrillion - <AUTHOR> http://www.cnn.com/2013/07/17/tech/paypal-error/index.html?hpt=hp_t2

<comment><USER2> Some discussion on this submission: [https://news.ycombinator.com/item?id=6053421](https://news.ycombinator.com/item?id=6053421)

Also submitted several times from other sources.

</comment><comment><USER3> The Ending Balance has a minus sign. So this guy is not rich, but in massive debt. At least get the basic math right.</comment>


Global warming slowdown answer lies in depths of Atlantic, study finds - <AUTHOR> http://www.theguardian.com/environment/2014/aug/21/global-warming-slowdown-answer-lies-in-depths-of-atlantic-study-finds

<comment><USER2> Good that they're figuring it out, bad that we've built entire bodies of legislation upon models that clearly don't work.

<comment><AUTHOR> That seems rather like throwing the baby out with the bathwater. A great deal of both policy and business investment is based on somewhat-imperfect predictions of the future. A slower-than-expected increase in temperatures doesn't invalidate the whole thing.</comment></comment>


DNS for Rocket Scientists - <AUTHOR> http://www.zytrax.com/books/dns/

<comment><USER2> How about BIND for rocket scientists. There are easier to configure alternatives, I have heard good things about PowerDNS which has multiple backend support and third party web gui administration.</comment>


Show HN: Online Machine Learning System - <AUTHOR> https://www.data-learn.com/

<comment><USER2> this looks cool. It'd be great to see some eCommerce demo datasets

<comment><AUTHOR> Thanks for the suggestion! I'll work on it!</comment></comment>


CCP announces plan to take control of China's private sector - <AUTHOR> https://www.asiatimesfinancial.com/ccp-announces-plan-to-take-control-of-chinas-private-sector <comment><USER2> The CCP's stranglehold on economic reporting and output tightens. My guess is this is an effort to help minimize and control disclosures that might give insight into the real circumstances of their economy rather than the fake inflated numbers.

</comment><comment><USER3> So do it! China will lose that way. In the US Catholic universities often cannot run their hospitals at break even ... Much less the economy!

<comment><USER4> What does Catholic universities got to do with China? In this context CCP means the Chinese Communist Party.

<comment><USER3> Thanks's for pointing out the stunningly obvious ... Captain obvious! Nobody thinks CCP means well let's try: Catholic Christian Party? Clear Catholic Principles? I've wasted enough time here.

The point is that strongly ideological bents (here coming from Religion) tend to conflict with economics. Correct, CCP is not a religious organization rather eschewing it. But what they both have in common is that economic activity is secondary and non-strategic. Or as another HN article put it quoting Drucker: "Culture eats strategy for breakfast."</comment></comment></comment>


Ask HN: Using mTurk to morally/legally get around a robots.txt disallow? - <AUTHOR>

A site offers any visitor (authenticated or not) free download of documents at a certain path. This path is disallowed from being crawled by all user agents in robots.txt. What is the consensus around using something like Mechanical Turk to distribute the process of physically clicking the free download link and collecting the documents? Would this fall into the "avoiding a technological control" category? I know, I know, I should ask a lawyer, but I'm interested in the community's opinion on the practice. <comment><USER2> If you have to ask, you probably already know the answer. A more important question is what do you plan to do with the files, and is this use allowed by the terms? If it is, then you can possibly ask the site to allow you access to download them. It is possible that they disallow crawling just to reduce load on their servers, and so crawlers don't waste time on text files when there is more valuable content to crawl elsewhere on the site.

</comment><comment><USER3> robots.txt is not legally enforceable.</comment>


Fructose: compile Ruby into PHP - <AUTHOR> http://www.fructoselang.org/ <comment><USER2> What makes this project even more incredible is the fact that it's written in C# under .NET 4.0 using IronRuby for the parser.

Yes it says Mono is supported, but why? Windows is the least run environment for _either_ of these languages (Ruby / PHP). Were I to guess, I'd say this was a dare that it couldn't be done, and if that's the case, then hats off to the owner for doing it.

</comment><comment><USER3> Upvoting for sheer perversity.

<comment><USER4> seeing the PHP monstrosity Ruby has as an equivalent straightens my feelings of what an ugly language Ruby in it intrinsic nature is

<comment><USER5> You realize that this logic can be applied, in reverse, to make a similar conclusion about PHP, right? Seeing the monstrous PHP code that equates to simple Ruby statements confirms my feelings about what a poorly designed language PHP is. (For example)

<comment><USER6> This is an unavoidable part of compilation; there's no way a compiler could write code as well as a human. It applies to all compilers; a human programmer writing assembly language would be hard-pressed to understand the output of a C compiler.

</comment></comment></comment></comment><comment><USER7> Somewhat related: One RubyConf, zenspider and tenderlove hacked together Phuby on Phails, an abomination that allowed you to use PHP within Rails. It even translated instance variables from Rails controllers to PHP views.

<http://www.youtube.com/watch?v=lsWKjS6Vufw>

</comment><comment><USER8> Projects like these are awesome learning experiences. I've been working on something similar (rubyisms in php) but in pure php - <https://github.com/shuber/phuby>

      * mixins
      * classes are objects
      * eigenclasses
      * method_missing, respond_to, respond_to_missing, send, super
      * splat
      * extended, included, inherited callbacks

Definitely made me appreciate ruby more after working on it.

</comment><comment><USER9> Besides being a fun side project and having a chance to play with lexical parsing - does this have any point?

Converting programming languages really doesn't serve any purpose whatsoever - this can't be used as a learning tool (a rubyist wanting to learn php) nor should this output ever be trusted in a production environment as you are going to count on the converted code being as efficient as your original code.

If you want to code in PHP, use PHP - if you want to code in Ruby, use Ruby - this just seems silly.

<comment><USER10> C++ started out as a precompiled language, and I love CoffeeScript, which compiles to JavaScript. Java and C# don't compile all the way down to assembly either. There are plenty of reasons to compile one language to another.

<comment><USER11> Both Java and C# can be compiled to native binaries - there's nothing stopping that. The standard runtimes for them just don't do that.

Java can be compiled via gcj ("It [GCJ] can compile Java source code to Java bytecode (class files) or directly to native machine code, and Java bytecode to native machine code." - <http://gcc.gnu.org/java/>). C# can be compiled down to native code using various tools. MonoTouch uses that to run C# on iPhones for example.

</comment></comment></comment><comment><USER12> The only reason this seems at all useful would be to take advantage of cheap shared hosting that can only run php. But that's hardly a good reason given that you can run a ruby (rack-based) app on heroku for free!

<comment><USER13> I've had consulting gigs where I was forced to write PHP apps because of management decisions. Something like this would have been helpful.

<comment><USER14> I'm guessing that your clients wouldn't be pleased with the PHP the compiler produces. It wouldn't really be maintainable PHP code for them.

<comment><USER15> Just tell them it's _really good_ PHP.

</comment></comment></comment></comment><comment><USER16> Thats a pretty crappy example to put on the homepage: 13 lines of Ruby compiled into 67 lines of PHP. You could write some PHP more or less identical to the Ruby in the same original 13 lines.

<comment><USER17> Actually most of the code initializes Fructose, in PHP I can write the same code like (6 lines, 7 including blank line):

      class Greeter {
          public static function greet($text) {
              echo $text;
          }
      }

      Greeter::greet("Hello, World!\n");

<comment><USER18> That code isn't the same as the original. The instance variable is being initialized via a block -- your function needs to accept a callback.

</comment></comment></comment><comment><USER19> A call of action to all PHP developers out there: We must defend our language against this misrepresentation that PHP is ugly and verbose. It is not a fair comparison of teh power of PHP as it is now. I suggest we start a similar project called "Sucralose" in which we compile PHP into Ruby 1.8 written in Objective-C using MacRuby. I will host it on PEAR. All hail Zend!

</comment><comment><USER20> Tip of the cap for the fun hack factor. People asking if this is practical are missing the point, I think.

<comment><USER21> +1

I like the implications of the name. Fructose - it's kinda sweet but not quite real sugar, and there's a suspicion of some deep and not-quite-right subterfuge going on underneath the entire industry that supports it for no real reason...

</comment></comment><comment><USER22> Although I'm sure this was a fun weekend project, which is very cool, I can say that I could actually see something like this being useful IF Ruby could be compiled to PHP which could then be compiled by HipHop to C++.

But still, fun project to see.

<comment><USER23> How on earth could that be useful? Compiling a piece of Ruby three times down into C, you're going to end up a with an absolute pile of shit.

<comment><USER24> Sarcasm is lost on this one :)

<comment><USER24> He's sitting right across the table from me :)

</comment></comment></comment></comment><comment><USER25> has anyone created the opposite? Compile PHP into Ruby?

(Did I just feel all of the HN rubyists shudder at once?)

<comment><USER26> Hell, I'm a Pythonista and I shuddered nonetheless.

</comment></comment><comment><USER27> Is this some sort of snide commentary on how much more limited of a language php is? It doesn't seem like it could possibly be meant for production. I guess I could see it being a fun learning project, tho.

<comment><USER28> I just sent this out to a friend who was trying to figure out whether to build his simple app in ruby vs. php. Think it made up his mind.

<comment><USER29> That's a pretty stupid reason, though. The two samples of code are no where near identical...

<comment><USER30> > That's a pretty stupid reason, though.

Yes. So, do you really want him writing PHP?

<comment><USER31> I don't want him writing Ruby, either. Keep him away from the sharp knives and stupid decisions and give him Java/Play or something.

</comment></comment></comment></comment></comment><comment><USER32> Is there anything that can do the reverse?

</comment><comment><USER33> I'm curious - would it be inefficient to use something that could efficiently compile Ruby into PHP such as Fructose, and then use HipHop for PHP from Facebook to compile the PHP into C++? So far I don't see a lot of tools that utilize the Ruby->C++ direction, and much work has gone into HipHop for PHP.

<comment><USER34> It won't work.

First, HipHop doesn't support create_function, which is used in the example.

Second, feature mismatch between Ruby and PHP will make efficient compilation quite hard and most likely be far from optimal. The languages doesn't seem to be very easily optimizable either.

HipHop isn't a silver bullet either: sometimes it seems to be faster than cached PHP bytecode, but not always.

</comment></comment><comment><USER35> <https://github.com/charliesome/Fructose/pull/9>

Active community participation too =).

</comment><comment><USER36> Would be cool if it was self-hosted, written in Ruby, but ran in complied to PHP form.</comment>


Canadian province secretly passes law allowing arrest of those who won't show ID - <AUTHOR> http://www.thestar.com/news/gta/torontog20summit/article/828372--man-arrested-and-left-in-wire-cage-under-new-g20-law

<comment><USER2> That's a pretty broad title... What the law actually changes is that if you're within 5 meters of the 'fence' surrounding the G20 zone, police have the right to ask you for ID and what you're doing there. If you don't show ID or answer their questions you are subject to arrest (but, as with this guy, probably no prosecution).

<comment><USER3> Totally agree.

You have this guy (probably with his green bandanna over his face) while "exploring the G20 perimeter with his friend". Being passive aggressive landed him in jail but will probably have his court date dropped before July 28.

Then again this appears to only be his side of the story. You want to bet that he was being a little more than passive aggressive ;)

I don't really mind people who protest but I hate the fact that these yahoo fly into toronto just to stir shit up. Are they even hear for a cause for just to cause trouble?

EDIT: added disclaimer: I tend to assume the worst in people ;)

<comment><USER4> This comment is unbelievably bad. What are you talking about, "probably with his green bandanna over his face?" Refusing to show ID is being "passive- aggressive?" I'd call it common sense (if you don't know that you're legally obligated to.)

Either you have a lot of evidence that you're not telling us about, or you're casting aspersions onto this guy that are totally indefensible.

<comment><USER3> Sorry, I deleted my comment, saying; "really? I'm not allowed to make assumptions."

Your suggestion has been noted.

Updated original post; added disclaimer.

<comment><USER4> Sure, if you want to actually explain your assumptions.

When I hear that a guy was walking around, I don't usually start off by assuming that he had his face covered and he was acting suspiciously. And I sure don't consider "the police arrested him" to be credible evidence about it, either.

EDIT to respond to your reply: I guess we just won't see eye-to-eye on this. I've worn a bandanna as an accessory before, and I don't see anything wrong with walking around near a security fence, or even "checking it out." I completely disagree that those things on their own are suspicious enough to warrant arrest.

<comment><USER5> I've worn a ski-mask into a bank....

</comment></comment></comment></comment></comment></comment><comment><USER6> [http://www.e-laws.gov.on.ca/html/statutes/english/elaws_stat...](http://www.e-laws.gov.on.ca/html/statutes/english/elaws_statutes_90p55_e.htm) \- no idea if this is current or complete

"A guard or peace officer, may require any person entering or attempting to enter any public work or any approach thereto to furnish his or her name and address, to identify himself or herself and to state the purpose for which he or she desires to enter the public work, in writing or otherwise;"

I don't know what qualifies as "attempting to enter". Sounds arguable enough to be abused for this purpose though. Also I don't think a large part of the downtown core qualifies as a public work all of the sudden.

<comment><USER7> I'm pretty sure it is current, and it's not new. I'm not sure why the submission title says anything about passing a new secret law.

</comment></comment><comment><USER8> Any details on this new law? Is it federal, provincial, temporary?

A better story is the guy they stopped with a crossbow at the G20: [http://ca.news.yahoo.com/s/capress/100624/national/g20_car_w...](http://ca.news.yahoo.com/s/capress/100624/national/g20_car_weapons)

<comment><USER3> Here is a very detailed article on the law: [http://openfile.ca/toronto- file/g20-police-given-extra-power...](http://openfile.ca/toronto- file/g20-police-given-extra-powers)

Public Works Protection Act: [http://www.e-laws.gov.on.ca/html/statutes/english/elaws_stat...](http://www.e-laws.gov.on.ca/html/statutes/english/elaws_statutes_90p55_e.htm)

Amendment: [http://www.e-laws.gov.on.ca/html/source/regs/english/2010/el...](http://www.e-laws.gov.on.ca/html/source/regs/english/2010/elaws_src_regs_r10233_e.htm)

Map of fence: <http://www.g8-g20isu.ca/g20/resources/10-06-11-map.pdf>

</comment></comment><comment><USER9> In most European countries you need to have your ID with you at all times and show it to the police upon request. I'm trying, but can't understand how it could be any different..

</comment><comment><USER10> in europe is the same. you always need to have the id with you.

<comment><USER11> Not everywhere - Europe is not homogeneous.

There's no state-mandated ID in the UK, for example, so the police can't demand it here. In most circumstances you're not required to even disclose your name and address to a random plod.

<comment><USER12> My rule of thumb is that any government proposing to introduce ID cards in the UK is about to lose the next election. It's happened twice (Conservatives in 1997, Labour in 2010).

<comment><USER13> But those cameras are OK?

</comment></comment></comment></comment><comment><USER14> Ihre Papiere, bitte!</comment>


Scientists prove time travel is impossible - <AUTHOR> http://news.discovery.com/space/time-travel-impossible-photon-110724.html

<comment><USER2> There are many theories out there, and this only targets one of them. For example, the multiple universes theory states that we live in multiple realities of spacetime, all of which are isolated. So time travel could be as easy as finding a way to transport oneself between spacetime realities.

Also, time travel here seems to be defined as "traveling back in time." The twin paradox still holds: <http://en.wikipedia.org/wiki/Twin_paradox>

</comment><comment><USER3> Interesting... but I'm not convinced this "proves time travel is impossible." I am not sure we know enough about time, and how it operates (if that's even the right word) to really speculate about how time travel would work, if it were possible.

I mean, Superman movies, Star Trek movies and Doctor Who aside, how much thought has really been given to how we would travel in time, even hypothetically? I know there has been _some_ but is this something serious scientific minds spend time considering???</comment>


There's an unwelcome surprise from T-Mobile when you cancel no-contract plans - <AUTHOR> http://qz.com/668188/a-lawsuit-claims-theres-an-unwelcome-surprise-from-t-mobile-when-you-cancel-no-contract-plans/ <comment><USER2> Contract termination usually means that parties settle their obligations in a way that terminates the relationship fully. The plaintiffs may not have expected this, but consider the patently unjust situation when customers can cancel the contract, while T-Mobile still must provide financing for their handsets (which is what the plaintiffs want). Why would it be in the public interest to force T-Mobile to do that?

This is a case of somebody not thinking things through, and not reading what they're signing. T-Mobile may be more explicit, but should they be forced to explain every possible contingency? That's why the print is small — because reality is messy, and there are so very many corner cases.

<comment><USER3> There isn't one contract, but two:

> Customers who buy phones and corresponding no-contract plans through > T-Mobile buy into two separate agreements: a month-to-month agreement to buy > the phone service and another to purchase the actual device, which can be > paid in installments.

The customer wanted to cancel the month-to-month agreement and still pay off the handset in the agreed-upon time:

> According to the court documents, Farhi continued paying T-Mobile for the > phones each month, based on the terms in the device agreement.

Nor was the loan for the handset originally from T-Mobile. He:

> signed up for a month-to-month service plan through T-Mobile. The phones > cost $2,600, which he agreed to pay in 24 installments, as part of a loan > that originated from a company called WebBank. T-Mobile immediately took > over servicing of the loan, and told Farhi in a letter that the established > terms and pay-off dates would not change.

Going to your comment, this means 1) there was no contract termination, because there were two different contracts, 2) T-Mobile would get paid for providing the financing, and 3) why should this be a corner case at all, especially given T-Mobile's large print which would suggest that the monthly service from T-Mobile won't be connected to a loan agreement with WebBank?</comment></comment>


Ask HN: Rust or Go for building an order execution engine in crypto? - <AUTHOR> My company is building an order executor in crypto optimized for high through put into several exchanges.<p>I know that Rust is slightly faster, but I assume that over the course of the next 5 years, the nano second will not matter  while I also think that one is more productive in Go. What do you guys think? <comment><USER2> I have built lots of super performant systems in C & C++ but not for crypto specifically. Almost every time I ran tests to see if we could use something more productive, I absolutely love C/C++ but I recognize there are safer and more productive (subjective) languages and tooling for a team as a whole many times.

So I'd actually side with your productivity thought on this, but would want to validate it some. If the difference in performance is a few ms 95% of the time and that is good enough given volume then I'd go with the most productive tooling. Another point, if your team knows Go and not Rust, I'd immediately just use Go first, you can always optimize if really needed later. When you try to learn a language while trying to build a detailed product that has a lot of performance requirements it is super hard to do it correctly the first time in.

That said, if the difference is a few ms but you are running millions of transactions a day then those ms do matter in terms of infrastructure costs, so you'll have to balance that thought. Most likely if this is the first time you guys are building the order executor you'll likely have need to touch it (from an architecture point) again in the next 6-12 months so I'd just use the most productive tooling first and learn what you need to and then implement it differently the next time (if needed).

</comment><comment><USER3> I'm not a cryptocurrency enthusiast, so take this with a grain of salt, but there's a _lot_ of Rust in it. Like, some of the earliest non-Mozilla jobs were in cryptocurrency. Various companies sponsored our conferences. And of course, there's Libra.</comment>


Soylent: What Happened When I Stopped Eating For 2 Weeks - <AUTHOR> http://fourhourworkweek.com/2013/08/20/soylent/

<comment><USER2> Discussion from when this was posted 10 months ago:

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

</comment><comment><USER3> I'm still on the look out to try a sample of it without committing $80 to something I might not like. Any ideas?</comment>


Bitcoin prices continue to fall as yet another exchange reports a breach - <AUTHOR> https://arstechnica.com/information-technology/2018/06/bitcoin-prices-continue-to-fall-as-yet-another-exchange-reports-a-breach/ <comment><USER2> There's a reason banks have secure vaults, armored cars, incredible amounts of security around databases, multiple backups, cold storage, ...

Turns out people like to steal money.

<comment><USER3> The important part is that banks have insurance.</comment></comment>


Wrapping Desktop Apps with Docker - <AUTHOR> http://container-solutions.com/2014/10/wrapping-desktop-apps-docker/

<comment><USER2> Was reading this the other day:

[http://fabiorehm.com/blog/2014/09/11/running-gui-apps- with-d...](http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/)

</comment><comment><USER3> Wait. You can mount a socket as a volume? Why didn't I think of that?!

Sometimes I just love Unix.

<comment><USER4> You can. The biggest caveat with isolating X clients in Docker is that you lose extensions like mit-shm (the shared memory extension), that badly affects performance compared to running apps locally. If you're used to running X apps over the network, then that's not such a big deal, though.

<comment><USER5> You can work around this problem by running X11 in the parent of the container and performing all your SHM (and similar) operations there. Essentially, coordination of such things needs to happen where the X11 server is running and not inside the container. This is how Gate One's (soon to be released) X11 feature currently works to isolate each user's X11 server.

There exists mechanisms to share memory between containers as well but I personally haven't tried them.

<comment><USER4> That works for compatibility (for apps that fails to work properly without MIT-SHM support), but does nothing for the performance degradation.

</comment></comment></comment></comment><comment><USER6> According to my company policy this is online-gambling: [http://imgur.com/bV2Umoe](http://imgur.com/bV2Umoe)

<comment><USER7> Argh. I promise you it's not. Any idea who provides your filter list?</comment></comment>


Mini Tokyo 3D - <AUTHOR> https://nagix.github.io/mini-tokyo-3d/#15.98/35.678991/139.767756/0/60 <comment><USER2> Strange - blank window on Firefox, but as soon as I drag the tab the thumbnail shows the page contents.</comment>


Hello Qt for Python - <AUTHOR> http://blog.qt.io/blog/2018/05/04/hello-qt-for-python/ <comment><USER2> Very happy to hear this as the author of a PyQt-based file manager [1] and an open source library for solving the many headaches that come with developing desktop apps [2]. Once Qt for Python is stable enough, I'll be happy to switch to it from PyQt.

[1]: [https://fman.io](https://fman.io)

[2]: [https://github.com/mherrmann/fbs](https://github.com/mherrmann/fbs)

<comment><USER3> What would you recommend to someone who wants to write Python desktop applications today? I've used wxWindows way back when, and I'd hate to use Electron. Would you go with Qt for Python, or PyQT?

Also, what's PySide/PySide2?

<comment><USER4> As you can see, Qt for Python is not yet stable release. So you will want to use PyQt5 first. I remcommand PyQt5 because there are more resouces available on the internet now.

PyQt5 and Qt for Python is a 1-to-1 binding to the original Qt and their APIs are almost identical, so you should be able to switch to Qt for Python quite easily when it is stable.

By the way, Qt for Python is re-branded from PySide2. They are the same.

<comment><USER5> Would it be as simple as a global change of all "from PyQt5" to "from PySide" in all import statements?

<comment><USER4> Almost, when switching from PyQt4 to PySide 1. It was roughly equivalent with some minor differences. It was much less work than switching Python 2.7 syntax to 3. There are some bindings as well [1].

I don't know much detail about PyQt5 vs PySide 2 but at least the overall logic should be the same.

[1]: [https://github.com/epage/PythonUtils/blob/master/util/qt_com...](https://github.com/epage/PythonUtils/blob/master/util/qt_compat.py)

</comment></comment></comment></comment></comment><comment><USER6> FWIW I use PyQt5 in a code editor project I maintain. While all GUI frameworks have hiccups and smells to various degrees, Qt and PyQt5 has been, relatively speaking, the strongest UI framework I've encountered for Python. Why? Ease of development, cross-platform reach, "batteries included" (e.g. accessibility features, important for my project), friendliness of the API and breadth of features immediately spring to mind.

Perhaps PySide's return will encourage some competition in the Qt space for Python. For example, I wish it was simple to create a cross-platform installer for stand-alone Python apps that use Qt. Current solutions suffer from the 80/20 rule where the 20 usually contains something essential.

<comment><USER2> Sorry to be spamming here but check out my [https://github.com/mherrmann/fbs](https://github.com/mherrmann/fbs). It is literally the solution to your pain point.

<comment><USER5> No, interesting and useful. But a few questions. So basically you have automated the job of calling PyInstaller to make a standalone app, plus the step of wrapping the app in an installer. Yes?

In order to use this, if I read the tutorial[1] code correctly, I must modify my app to wrap everything -- or at any rate, all PyQt-related things? -- inside an AppContext, and modify the outermost level to create this.

If so, this is easy enough for the tutorial but what if my app opens multiple windows and has code to create them spread over multiple modules (as one of mine does). Is there a simple way to get all these bits into one "context"? Or have I read too hastily?

[1] [https://github.com/mherrmann/fbs- tutorial](https://github.com/mherrmann/fbs-tutorial)

<comment><USER2> It's more than just automating the calling of PyInstaller. It also fixes some edge cases with PyInstaller-built apps that lead to crashes on some users' systems and took me months to figure out. Further, it integrates the solutions nicely. You don't have to learn how PyInstaller works, fbs does it for you with very reasonable default settings. You don't have to figure out how you are going to ship resource files and access them from within your app, etc.

Yes you should use the AppContext. You don't have to convert your entire app to it. Only enough to "start" your app. (I highly recommend the app context approach where possible however, it's just so clear.)

</comment></comment></comment></comment><comment><USER7> I've always found Qt and Python (PyQt and PySide) to be a weird match. So many times did I end up with cryptic segfaults in the python VM due to some python object being collected "too early", creating a dangling pointer in the C++ world. This can happen if you forget to set the parent object, for instance.

I know that those are things you have to worry about when you write C++, but when in the python world, you kind of expect everything to be refcounted for you. If I ever have to write a GUI app in python again, I'll probably chose another framework.

<comment><USER8> This just means that wrapper around C(++) code doesn't handle resources correctly. As you said, once inside Python you shouldn't care about object collection process. Nothing should lead to segfaults, in worst case you should get an exception about missing parent ref.

<comment><USER9> more exactly "underlying C/C++ object has been deleted" error.

<comment><USER10> In my experience, those errors are easy to resolve: just assign the new object to something, so it isn't immediately deleted. A little awkward, maybe, and it shouldn't happen, but if that's the worst quirk of PyQT/PySide, I can deal.

<comment><USER9> Those errors are always related with a bad implementation where there is something holding a reference to the qt python object represented by the bidding therefore keeping it alive even when their c++ instance has been already deleted. The solution is to go back to the drawing board and improve the implementation :)

</comment></comment></comment></comment></comment><comment><USER11> This seems to be the successor for PySide that supports Qt 5. The old PySide died some years ago and only PyQt was offering Qt 5 support. Due to some details PyQt was never officially supported by Qt. Is PySide2 now officially supported by Qt?

<comment><USER12> Yes, but tbh even PySide was originally "officially supported" by Qt, when Nokia owned it; and then it was dropped. So the question is whether it will _continue_ to be supported.

The owners of PyQt (Riverbank) depend on that product to survive; whereas Qt has bigger fish to fry most of the time. The incentives are very different.

<comment><USER13> It wasn't so much that PySide was dropped, as the whole of Qt was dropped (by Nokia). PySide development was funded by Nokia, which owned Qt, and done mostly in a Nokia R&D institute in Brazil (INdT). Nokia sold Qt to Digia, and Microsoft bought Nokia, so there was no connection anymore between Qt and the people who developed PySide, and so it stalled.

Digia later spun off The Qt Company, which develops Qt and is now developing PySide2, so this is actually the first time the same organisation has developed both Qt and Python bindings for it.

For many purposes (including mine), PyQt is very expensive, so I'm really hoping PySide2 goes somewhere.

</comment></comment></comment><comment><USER14> This is like 10 years too late. This could have prevented electron.

<comment><USER15> People use Electron because of web technology and also the abstractions available there like React, not because any dynamically-typed language would've sufficed.

In fact, Python is at a disadvantage here anyways because it's not async by default.

<comment><USER16> What's so important about being async by default to build desktop applications? Offloading slow tasks to a background thread is not at all harder and actually allows you to use more than one cpu core.

Threads avoid the need of callbacks/promises/async/await and they're also cheap and performant unless you need to spawn >10k of them, which seems very unlikely in a desktop applications.

Being async by default is an advantage when you need to handle hundreds of thousands of tasks, all of which are mostly waiting on I/O, which is something that can happen on server side applications, and almost never on the desktop.

</comment></comment></comment><comment><USER17> Does anyone know of a Qt binding for Python that is actually pythonic (as in follows PEP 8)? Both PyQt and Pyside are just one-to-one wrappers that use C-style naming for everything.

I find that really strange. The same holds for most other GUI libraries, like WxPython.

It seems the only real pythonic GUI libraries are Tkinter and PyGobject.

<comment><USER2> It's so much better if it's one-to-one. You can use the same documentation. The same search terms. You don't have to translate back and forth in your head all the time. At the end of the day, PEP8 is just a convention and we're free to break with it where it makes sense. Imho, this is such a case.

<comment><USER18> > It's so much better if it's one-to-one. You can use the same documentation. > The same search terms. You don't have to translate back and forth in your > head all the time.

Those are things that make it better for the library maintainers, sure, but presenting (and documenting) an API that is idiomatic, both in structure and behavior, for the host language is better for library consumers, as it doesn't force them to context switch between the idioms of the host language and the idioms of the foreign library.

<comment><USER19> Agree with having a pythonic API.

There are already examples in the "Hello Qt" which are easily solvable:

      app = QApplication([])
      # should read instead:
      app = QApplication()

where the empty list is the default argument. Also

      app.exec_()
      # should be instead
      app.exec()

as it is also in the C++ API.

These small things make the difference.

<comment><USER2> exec is a reserved keyword in Python. The _ is there because the code wouldn't "compile" otherwise.

</comment></comment></comment></comment></comment><comment><USER20> Sadly, we still don't have the seamless UI building functionality Delphi had 15 years ago, allowing making a fairly advanced desktop app in a day. Jumping between Qt Designer and IDE back and forth is still an order of magnitude more complicated than it needs to be.

<comment><USER21> I just took a look at delphi. What's so unique about its ui builder?

<comment><USER8> It was (is?) very powerful and at the same time very easy to use. Not sure about alternatives nowadays...

<comment><USER22> For .NET, Eto is a good option. It's cross-platform and supports the native toolkits of the platforms it supports:

[https://github.com/picoe/Eto](https://github.com/picoe/Eto)

There's also Avalonia, but it's currently in beta:

[http://avaloniaui.net/](http://avaloniaui.net/)

</comment></comment></comment></comment><comment><USER23> Qt for Python == PySide2 == PySide for Qt 5.

</comment><comment><USER24> I'm sure others here have far, far more experience with QT that I do, I wanted to give my 2 cents: QT has been great for the experimental control software we run to perform experiments in our lab ([https://github.com/LISE-B26/PyLabControl](https://github.com/LISE-B26/PyLabControl) \--- note, the readme is unfortunately out of date, but it should be ready in a week or two). I tried a good number of other GUI libraries for python, but pyQT just worked far more quickly.

</comment><comment><USER25> Anyone else getting Heroku application error?

[https://archive.fo/DdJpj](https://archive.fo/DdJpj)

<comment><USER26> If you click on "history", you can find a version that works, though:

[https://archive.fo/y0YlA](https://archive.fo/y0YlA)

</comment></comment><comment><USER27> I skimmed through the posts in the thread but no one seemed to mention the major pet peeve that (IMO) PyQt has, which is not the licensing, but the development model:

1\. SIP files are generated and dropped into the tarball: no way to do that yourself (the tool is available, but completely undocumented). This is problematic when a new major Qt version is out, but PyQt hasn't updated yet (I had problems like this recently when building PyQt5 for Qt 5.11 for openSUSE)

2\. There is absolutely _no_ bug reporting: you have to join the mailing list, post about your issue, and hopefully get an answer or "fixed in next snapshot" (see below)

3\. There's no source repository access, just frequently-released "snapshots". Backporting patches to stable releases (because perhaps fixes aren't in old versions) is a chore.

4\. Submitting patches as well requires a ML post: not bad per se, but there's no real workflow for it (and hard to do anyway without having the current state of the code).

I don't have to use PyQt professionally (all my stuff is parsing/querying/stats, so a GUI isn't necessary), but for my free time projects I preferred to learn C++ and Qt than go through PyQt again. And it's a shame since the bindings are quite good in quality.

<comment><USER28> This isn't PyQt, but an update of PySide. However I find the PyQt developer very responsive to bug reports. It's a much better service vthan the usual post to a bug tracker and no response you get with many other projects.

</comment></comment><comment> cup-of-tea I used PyQt5 quite successfully a while back. This looks very similar. What is actually new here?

<comment><USER11> PyQt is not PySide. Qt (the foundation) does not officially support PyQt. PySide (the old one) did not support Qt5. PySide2 does support Qt5.

<comment><USER12> _> Qt (the foundation) does not officially support PyQt._

But the project owners (Riverbank) support PyQt just fine, and arguably much better than Qt ever supported PySide in any previous incarnation.

</comment></comment></comment><comment><USER29> Took me a while to figure out the "pip install" command:

      pip install --index-url=http://download.qt.io/snapshots/ci/pyside/5.9/latest/ pyside2 --trusted-host download.qt.io

(with python 3.6 or 2.5)

</comment><comment><USER30> I have been waiting for this my entire adult life. That's all I have to say about it.

<comment><USER31> What about pygobject? What does Qt have to offer over GTK?

<comment><USER30> I like pygobject too, but I've always wanted a QT library for python not written by a 3rd party. Most of the 3rd party libs will get you 90% there, but if QT commits to making the library, they won't leave me hanging. I've been wanting to build a python desktop app with the newest version of QT with lots of dynamic UI windows for a very long time, and this will allow me to do it.

</comment></comment></comment><comment><USER32> Is is possible to use QML in a PyQt/PySide2 app? Using QML for interface and Python for logic would make perfect sense. But every PyQt article and tutorial I see is about QtWidgets.

<comment><USER33> We use PyOtherSide for exactly this. Works perfectly.

I'm also working on a similar solution for .NET Core: [https://github.com/pauldotknopf/net-core- qml](https://github.com/pauldotknopf/net-core-qml)

</comment></comment><comment><USER34> Archived page because site is really slow:

[https://archive.is/y0YlA](https://archive.is/y0YlA)

</comment><comment><USER35> This is good ! I remember coding a GUI in PyQt5 when the first usables version of python 3 came out and it was incredibly painful.

Almost no documentation was avaible and I was learning how GUI works. It took me a while to get a basic app running and from there I mostly translated the official docs to python.

</comment><comment><USER36> Why though? Is there some useful benefit that python offers over C++, or is it just another language support so that people more comfortable with Python could use it?

If I were ever to write a desktop app, which one should I choose, given I'm equally comfortable with both languages?

<comment><USER37> It's like you say, and like the qt blog says, "opening to python world"

About your second question (c++ vs python), even I am curious

</comment></comment><comment><USER38> I would love to hear more about this from the sages of HN. I really don't enjoy GUI development in Python. I am not a good enough CS to have the language to describe what is wrong, but I find it really hard to get Python GUI stuff to do what I want.

<comment><USER39> Retained-mode GUIs like Qt , wxWidgets, gtk, etc aren't intuitive. Try an immediate mode GUI, like my python bindings to nuklear

[https://github.com/billsix/pyNuklear](https://github.com/billsix/pyNuklear)

<comment><USER40> For more context, immediate mode is much closer to the type of declarative UI popularized by libraries like React. The invariant is that what is displayed on screen is always a pure function of some state variable(s), and on any input/event, instead of needing to "reach into" some retained object that represents a certain piece of text in a certain pane in a certain window, you just change those state variables and re-render the entire UI from scratch. Sounds expensive, but for a 2D UI on hardware that's designed to do far more complicated things at 60FPS, it's far from the bottleneck.

For instance, [https://github.com/billsix/pyNuklear/blob/master/demo/overvi...](https://github.com/billsix/pyNuklear/blob/master/demo/overview.py#L305) (this function is called repeatedly on each frame) is not significantly different from the example at [https://reactjs.org/tutorial/tutorial.html#what-is- react](https://reactjs.org/tutorial/tutorial.html#what-is-react) ... but it is very different from something like `div = createDiv(); div2 = createDiv(parent=div)` etc. which would be a retained-mode API.

<comment><USER39> [https://youtu.be/Z1qyvQsjK5Y](https://youtu.be/Z1qyvQsjK5Y)

</comment></comment></comment></comment><comment><USER41> What happened to PyQt?

Also, the API does not seem Pythonic at all.

<comment><USER42> I think PyQt is owned by a different company, so Nothing happened to it, I guess.

PySide is waaaay more Pythonic than PyQt ever was. Types are actually translated to Python native types and APIs are way more Pythonic and not just translated 1:1 like PyQt.

<comment><USER43> You've been able to automatically translate types going back to PyQt4 (it's the default for PyQt5, wasn't changed in PyQt4 due to backwards compatibility IIRC, but you could opt-in). As mentioned elsewhere PyQt offers properties, decorators for connecting signals and slots, etc. I found the APIs to be very similar overall.

</comment></comment></comment><comment><USER44> Oh this is very convenient and cool. I'm go looking forward to developing gnuradio applications using this.

</comment><comment><USER45> Will there be need of QT runtime for this?</comment>


Need security audit of our mobile app - <AUTHOR> Do you recommend anyone or any service? We want to do a security audit before we release the mobile app in stores. Our tech stack is React Native and Firebase. <comment><USER2> I have worked with following consulting companies NCC Group, Security Innovation, and Coalfire in the past. All of them are pretty good.</comment>


Ask HN: How did you meet your cofounder? - <AUTHOR> For those of you working on a startup, how did you meet your cofounder? Did it work out? How would you recommend someone in the early stages of a startup find a trustworthy cofounder?<p>There seem to be two conflicting types of advice. Some say to work with a good friend, someone you already know and trust. Others say to never work with your friends because if you fail, and chances are you will, then you lose both the business and the friendship. What do you think? <comment><USER4> I met my cofounder in the university. We were taking an algorithms analysis class together, and were later reintroduced by a common friend. We didn't know each other very well and just jumped into it. After some initial friction, it worked out really well (you'd have to ask him if he agrees), but I think it's an exception rather than the rule. We were incredibly lucky it worked out the way it did. If I were to do it again and had to find a cofounder, I wouldn't leave it up to chance.

The biggest mistake I see is people jumping into it with friends who aren't qualified to take a company off the ground at all. Think about it - <USER2> wouldn't just hire someone because they're a nice guy without doing an interview, and the cost of a bad hire is much lower than the cost of a bad cofounder (which more often than not is fatal). So don't leave it up to chance. Make a list of qualities you want to see in your potential cofounder. Then hit up everyone you know. Call everyone you respect and ask them for a list of five people they respect. Go to university professors and ask for top five students they know. Go to events and introduce yourself to people. Do founder dating. Compile a list of twenty people you're impressed with (and hopefully are a little intimidated by) who want to start a company.

Then interview each one of them. Rigorously. Make sure they're qualified. Let them interview you (in fact, don't start a company with them if they don't rigorously interview you). Talk completely openly about your goals and theirs. Take it slow. Act as a professional - design an interview process and stick to it with all candidates. It can take a couple of months to interview and close a senior executive hire, it should take about as long to interview and close a cofounder. Do it in steps over a period of a few weeks. Define criteria and goals for each step and stick to them.

Do not wing it, or you will have wasted the next two years of your life. I'd say that if the whole process takes you less than four-six months of nearly full-time work, you're probably being way too cavalier about it (unless you already know someone you've worked with before who has all the qualities you're looking for).

</comment><comment><USER5> I don't know where one would get the assumption that you'll lose the friend if the business fails. If that is the case, you chose the wrong friend. ;)

A failed startup (and a successful one, too) will obviously stress the friendship. But if you go in with a very close friend, or you become close very in the early days of constant work, your friendship will hopefully be strong enough that you'll tough it out and still be great friends regardless of the outcome.

If you have a friend that you're that close with who's a good candidate for being a cofounder, that close relationship will be a huge asset. PG said somewhere that he prefers to invest in close friends because they'll stick it out even during "trough of sorrow" times because the friendship keeps them in it. It'll also make things more fun if you're putting in those long hours with someone that you enjoy spending time with.

But you shouldn't choose a close friend that you wouldn't choose as a cofounder if you had just met them. It's very important that they be skilled and motivated enough that they're a real asset to the startup.

... My first startup hasn't even written a line of code yet (We're doing Node Knockout (<http://nodeknockout.com/>) this weekend and building the MVP as our entry.), so take that all with a grain of salt. But my cofounders are my close friend and his close friend, and I'm very happy about that.

<comment><USER6> Friends won't always have the extremely honest and frank business conversations needed. I can give anecdotal evidence of this as I was lucky to work at a record label startup founded by friends.

Both were 100% behind the company, but it took some 5 years to fully understand that 1 friend loved music (and saw the startup as a means to create the right environment for creative artists, viewing money as a side effect of that creativity) and the other loved money (and saw the startup as a means to create an environment in which to make money and viewed the creative process as a hindrance in the generation of product).

It ended quite badly, the friendship was deeply affected by this and the signings reflected a pendulum shift from creativity to product creation.

It has been argued that friendships will inhibit the asking of the kind of questions that would've rooted that out and in either scenario made it more successful, indeed that's my view of this one instance.

So yes, friendship can be a real problem.

Not that it's that black and white, friendships can also be a real boon as PG has mentioned it can be the difference that makes people stick with it through the harder times.

So there's nothing conclusive either way. Depends on the people involved.

</comment></comment><comment><USER7> So, my co-founder and I met during our studies in Singapore but we met at least in part because of Hacker News.

Before moving to Singapore I updated my profile on HN saying that I would move there. A few weeks after I had arrived in Singapore I got an email from Ata asking if I was interested to meet up. And that is when the "mating dance" began ;-)

Over a period of six months we started exchanging ideas and building trust. We brainstormed a little each time we met and after about five months I told Ata about this idea, my nugget, that I had been thinking about for 8 months then. I didn't hear from Ata for about two weeks after that meeting and started to worry a little. But two weeks later I had an email from him in my Inbox which contained the URL to a prototype. That sealed the deal between us. A few weeks later, we signed a declaration of intent, and we have been moving forward full throttle since then.

So far the collaboration hasn't always been easy - we are still getting to know each other and working from two different locations doesn't make that easier - but we have found ways to get things done. Starting up with a friend might be easier because you know each other very well but I found a new friend and our relationship isn't loaded with baggage from earlier.

<comment><USER8> What a great story!

There is a typo on the homepage of your start-up, painn => pain.

<comment><USER7> Thanks Jacques and good catch. Has been fixed.

</comment></comment></comment><comment><USER9> There are some people who are lucky enough to have friends that have the same drive to succeed, but I think they are in the minority.

I found my co-founder through the co-founder wish list. I couldn't be happier. We were not good friends at first, but friendship comes easily when you are both working hard towards the same goal.

Something that is super important (other than skill) is motivation. If you've got to do some convincing to get a friend to work with you on an idea, it probably won't get too far.

</comment><comment><USER10> I married my co-founder. Five years later, when we were both working at GE Capital, we started a side business that grew rapidly. Having my wife as a co- founder was the best of all worlds...I wanted to not only share my life with her, but all the minor and major ups and downs of the startup too.

(Now that we're preparing for our 3rd child -- due in 2months -- I'm not sure which has more ups and downs, kids or the startup!)

</comment><comment><USER11> My co-founder and I met through his previous startup UpDown.com. I was an early user for the site and he was one of the first employees.

We would chat everyday on IM and he would ask me product feedback, design, new ideas, etc for UpDown. We both independently moved out to the bay area and just started working on random ideas together.

It was cool because we got to work together long in advance from being co- founders and we were also friends beforehand. Personally I think its always a upside to knowing how the other person works and being in a productive environment with your potential co-founder in advance.

</comment><comment><USER12> My co-founder and I (we run a smallish, growing business, but not what would typically be called a "startup") met at high school (aged 11 or 12). We then went to different colleges, shared a house after university, worked for other people for a bit and then started our company.

I can't imagine founding with someone I didn't know incredibly well - though I don't think you need to go as far as we did and choose your best friend. In any case, as others have said, make sure that your friends are actually _good at stuff_.

I suspect this also only works if you have the kind of friendship that is built on talking business all the time too. It is actually the foundation of our friendship in many ways so I think that reduces the risks involved (though not to zero, obviously).

There is clearly some personality-type stuff going on here too though - <USER3> wife was also my friend for years before we got together...

<comment><USER13> Are you from the US or did you skip a few grades? In the US high school is generally regarded as the four years prior to graduation (freshman-senior year). Usually you enter that around age 14 or 15. Age 11 or 12 would correspond more closely to middle school or junior high (even if the school happened to have those sequences in the same physical building).

<comment><USER12> Sorry - yeah - I'm in the UK. We have "high school" from 11-16 or 11-18 depending on whether you take A levels (we did).

UK state school system (at least where I went to school) looks something like: 4 or 5 --> about 8 == infant school 8 --> 10 == junior school 11 --> 18 == secondary school / high school

</comment></comment></comment><comment><USER14> Just be rational and logical with your decisions; having similarity with someone personality-wise helps mostly because you will be more likely to keep in touch (not necessarily business) and keep discussions going. My collaborator and I were not "best buddies" before starting but we did have limited experience together in project based school work. Things like startupweekend might be a good testing ground [for a relationship]. I also found out being overly dismissive of your collaborator's approach on something is unnecessary; always be first to offer the other to prototype their idea out, if it sucks or is going nowhere, make your version. Be objective. The best way to find trust is to express it yourself. Be sure to take care of yourself, so that way if you do have to move on, you can do so painlessly.

</comment><comment><USER15> I saw this earlier and this is why I think a co-founder should be a friend.

'What is a friend? I will tell you...it is someone with whom you dare to be yourself."

This is so important when working together, you need to be able to tell them exactly how you feel, to receive honest feedback and take it in the right way.

Brothers/Sisters and or friends, I think, make the best co-founders. As it is with these people that we can be ourselves which can only be good for your startup. If you go into business with someone then you need to trust them implicitly, if you have this level of trust in place then I firmly believe your partnership can flourish and therefore so can your startup.

</comment><comment><USER16> One of the best ways I've found is to volunteer your time. This makes sense for a few reasons.

A. The people you are with are also likely volunteers (opensource, event/meeting organizers, etc), which means you will meet people with a favorable attitude/mindset/values. The people with the most to give are the ones with the most value.

B. You have the same interests as them.

C. Volunteers are commonly a very diverse spread of people (experience/jobs/projects/goals/etc).

D. Meeting people like this makes it easy to keep things casual, or move into a partnership type relationship.

</comment><comment><USER17> All three of us had worked together at a previous company.

I think this is important. One time, I started a company with someone I had not previously worked with, and that was a mistake.

People's professional working style _can be_ very different from their non- professional leisure style, which is why I think it's critical to have previously spent time with your cofounder in a work environment.

However, that's just me. Ultimately, finding a cofounder is like finding a spouse - there's no universal, prescriptive formula short of "meet a lot of people".

</comment><comment><USER18> I met my co-founder through an IRC chat room specialising on the topic. He was the only other one still there until 4am. After our initial meeting to check out his personality and make sure he wasn't a maniac, I had another meeting with him where I asked him a bunch of technical questions. I did the same thing with three or four other people, it was obvious by his reaction to my process we were going to get along well.

</comment><comment><USER19> Velocity, the entrepreneurial residence, at University of Waterloo: <http://velocity.uwaterloo.ca/>

</comment><comment><USER20> I gave a talk at a barcamp, he gave a talk at a barcamp.

<comment><USER21> and that was it :)

<comment><USER21> More seriously (even if the emoticon is a real one), I think we both had been looking for the opportunity to meet a co-founder for a long time. Maybe he disagrees, but I think we both had a clear idea of what we wanted and what we wanted NOT.

I registered our current startup URL, 1y1/2ago, I personally had presented a project idea to several handful of hackers before we met each other. It is like when buying a house, you see many, you sharpen your judgment & taste, but when you find the one: you sign very quickly, because you have that deep warm gut-feeling.

It does not mean everything will be rosy all the time. I think we both already know this. But the one key element for me was a true sense of respect. This guy had sharp comments from day 1. Different ideas of how to go about the implementation (I already had put a prototype together with the help of another engineer (more than hacker)) we threw this away and restarted from scratch, thanks to his input.

He was understanding the idea from day 1 because he is that type of driven person, in sports, hacking, and a demanding human (his NYTimes covered app may shock some). He is international minded, open. He share the same crazy goal on our startup 1st $M.

I learn with him a lot, I discover a lot, it is all exhilarating, and the guy while being good at what he does and in general (to use a litote;), he still has this down to Earth humbleness. Respect.

And this respect emulates me to do my utter best so that our startup kicks a.. and so that on my part I don't screw up that chance. From what I see in what he does, it seems he feels the same. Grateful.

There are few times in your life when you think you are in front of a positive black swan. Maybe we see our startup as something bigger than ourselves, maybe we share that sense of awe.</comment></comment></comment>


Is 'SimCity' Homelessness a Bug or a Feature? - <AUTHOR> http://motherboard.vice.com/read/is-simcity-homelessness-a-bug-or-a-feature <comment><USER3> It's an amusing thought, but I imagine that most of these people realise homelessness isn't really a problem you can simply fix by following some set of procedures. Ultimately it's a game to be played for entertainment, and if you can get some people to think about social issues as they play it that's wonderful, but it's still supposed to be enjoyable. Clearly homeless people in the game are impeding some peoples enjoyment and it's a problem that is not obvious to solve.

Some games that offer more freedom let you solve problems like these in more interesting ways, for example when I played Dwarf Fortress (years ago now), a common strategy was to make the nobledwarfs accommodation floodable with lava, so if they got too uppity with their demands (sometimes nobles would insist that you make certain items or not sell a certain items or they'd get furious and make everybody else unhappy) they could be dispatched. I think it'd be funny if Sim City offered a similar option.

<comment><USER4> The 'final solution' option? It's been done in real life of course many times in many countries, but I don't think adding an option to Sim City to round them all up and shoot/gas/incinerate them, or build a 'killing fields' facility is really what people are looking for in that game. In DF we can get some distance from it because it's explicitly a fantasy world, but Sim City is a bit too close to emulating real life for something like that to be a reasonable option.

<comment><USER5> There's value in giving people choice and making them uncomfortable with the consequences of easy options. The Witcher series is famous for that, and I'd like to see more games took that approach (show what can be done, even give in-game bonuses for evil behaviour, don't judge but show consequences).

DF skips over this problem because it's more abstract, and it's just not this kinds of game. Another example - Crusader Kingdoms 2 - this game is all about incests, backstabbing and assasination, but somehow it's funny not deep.

I agree it's probably not good idea for games targeted at children.

<comment><USER6> Bioshock was the first to make me uncomfortable with a choice. Do I harvest the Little Sister, and get more powerful? Or do I "rescue her", which itself looks a bit like torture at first, and send her off in a place that is filled with psychopaths who'd want to kill her anyway.

Later in the series, when I experienced what it's like to BE a Little Sister, it almost made me regret "rescuing them" before, because the way they see the world as a Little Sister is quite beautiful, and they did serve a profound purpose.

The final choice seems to be a moral absolute, but it was a deeply unsettling choice, for me, to make, and to revisit again later.

<comment><USER7> It's not _really_ a choice, because in the end you get more powerful by not harvesting the Little Sisters. The only reason to do it is to see the evil ending cut scene.

<comment><USER8> And you get that world-conquering evil cut scene for even a _single_ slip. Immediately you are irredeemable.

<comment><USER6> _Would you kindly_ not spoil the game too much.

(See what I did there?)

<comment><USER8> I'm amused by the joke, but I don't consider it a spoiler to explain how one bad act _ever_ leads to the uber-evil ending that has no connection to the rest of the game. It's just pointing out that the claimed 'moral choices with consequences' feature is a farce.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> >How to get rid of homeless reproduces dozens of threads concerning "homelessness" that appeared in Electronic Arts' online forum between 2012 and 2013.

This is the $ 150 book?! with 438 pages?

This is easy money!

<comment><USER10> I wonder how they cleared all those copyrighted posts.

<comment><USER11> I'll bet you five to one that the EA forum terms of use have users sign away the copyright on their posts. So they only had to get a license from EA.

</comment></comment></comment><comment><USER12> Reminds me of the Mitchell and Webb sketch 'Kill all the poor', where they statistically decide whether it would solve their problems.

[https://www.youtube.com/watch?v=owI7DOeO_yg](https://www.youtube.com/watch?v=owI7DOeO_yg)

</comment><comment><USER13> It is amusing what happens when you make games that are "realistic" in a way which isn't fun for players but _is_ like real life, and get to see how the player base reacts.

Depression Quest springs to mind. Or way the book the protagonist of _The Fault In Our Stars_ loves cuts off abruptly once the main character dies, which upsets her to no end.

<comment> V-2 In the original Civilization, if your political system was Democracy, there was no Corruption :))

<comment><USER14> My main strategy for quite a while was to race toward Statue of Liberty, then use it to immediately switch to communism; I'm pretty heavily on the side of 'be careful about using games as a metaphor for life' re the OP.

<comment> V-2 Yeah, on the other hand they do indoctrinate, whether this is intended or not. Everybody talks about brutal games and how a twelve year may go on a shooting spree having played too much of Call of Duty or whatever. Causation never proven, given the number of players vs. rampage killers.

Now isn't planting an idea such as that Democracy is inherently Coruption-free (or something equally nonsensical) much worse brainwashing in broader scheme of things?

<comment><USER15> But it generally is, relative to the other forms of government. Democracy is the only form of government where you can prosecute corruption or end corrupt regimes without violence, and in my book that's close enough. For a simplified game mechanic, this is intuitive and makes sense. Anything more nuanced, and it isn't a game anymore.

[http://blog.transparency.org/2009/11/17/cpi2009/](http://blog.transparency.org/2009/11/17/cpi2009/)

And Civ is not responsible for the CPI

</comment></comment></comment></comment></comment><comment><USER16> Copy stuff people post on forums - sell it in form of a book - pitch it in a way that makes it sound profound - ??? - <USER2>

<comment><USER17> Not the first time.

See: Voices from the Hellmouth

[http://everything2.com/title/Voices+from+the+Hellmouth](http://everything2.com/title/Voices+from+the+Hellmouth)

One of the posts

[http://slashdot.org/story/5415](http://slashdot.org/story/5415)

</comment></comment><comment><USER18> I'm going to earn my downvotes today. It was more interesting reading the comments than the article, especially when one of the threads devolved into saying the article is political.

The other entertaining point is the offense at the notion that America is it's entertainment. The fact that some took offense at that is interesting from both a technology standpoint and a startup standpoint. It is an imperfect mirror, reflecting why we do things and why some businesses fail and others succeed, from a certain point of view. In other words, perhaps part of why a given venture gains customers in not just need, but need coupled with entertainment used to market and sell.

</comment><comment><USER19> > By removing the aesthetic markers of online forums—author's signatures, side > banners, avatar pictures, and so on—Bittanti's book recontextualizes the > discussion to reveal what players and the game are saying about > homelessness.

Except the players were talking about beating the game, not the homeless/real- life homelessness. Not amused.

</comment><comment><USER20> My favorite part of this article (and in general discussions about SF) is that asking the homeless to move to Oakland is considered so inhumane it's unmentionable.

</comment><comment><USER21> > "To me video games are the so-called 'real America,'" he said. "The real > America operates according to a video game logic, and that game logic is > neo-liberalism

Homelessness is a real problem, but, uh... yeah. I'm going to flag this as essentially a political article (most everything vice.com publishes is).

Maybe for his next book he can chronicle how Quake is the real America too, with the mutant monsters representing ... well... whatever the hell you want since you're willing to make such huge non-sequiturs.

<comment> V-2 Well, I haven't played SimCity (or any games, for that matter) for a while now, but if I recall, this type of games was always more akin to central planning model than laissez-faire; or else they wouldn't be that playable.

<comment><USER22> From my European perspective SimCity actually misses several city planning tools to reduce homelessness. The most important being the ability to build public housing and set up social services.

<comment><USER23> Simcity 2000 used to have subsidised housing and homeless shelter ordinances, which reduced crime, though you never actually _saw_ anything. It is weird that they've never tried adding a public housing mechanic; it could be quite interesting.</comment></comment></comment></comment>