America: Land of Loners? - <AUTHOR> http://www.wilsonquarterly.com/article.cfm?AID=1631 <comment><USER3> There is a paragraph in the essay which stood out to me;

>>>The irony is that straight men could learn a thing or two from their gay brethren, as Andrew Sullivan implied in his insightful book on the AIDS crisis, Love Undetectable: Notes on Friendship, Sex, and Survival (1998). Often estranged from their natural families and barred from forming legally acknowledged new ones of their own, gay men, Sullivan observed, learned to rely not on the kindness of strangers but the loyalty of friends: "Insofar as friendship was an incalculable strength of homosexuals during the calamity of AIDS, it merely showed, I think, how great a loss is our culture's general underestimation of this central human virtue."<<<

I've experienced that in my life. The closest people I have are people who have no direct relation through blood with me. This was something really counter-intuitive to me, because I grew up in a country where family is supposed to be paramount, but I discovered that isn't so. I am willing to bet that anyone who has had to deal with forced social isolation be it through abuse, or homelessness will agree.

No one taught me that relationships are only as good as _the people_ who compose it. Friendships don't magically happen. You have to work for them, and the cost isn't just time but it is something deeper and more intrinsic to who you are.

The smartest thing anyone could have ever said is that love is a verb. To love someone involves making "sacrifices" at one level or the other for the sake of the relationship, and most people are unwilling to do that. They don't realize that you can't have your cake and eat it too.

I think that this is the reason why most people, not just in the USA, think it's cool to be alone. They tend to desire instant results, which simply isn't possible.

<comment><USER4> Hear, hear. I'm an American and I get dirty looks when I mention that I don't talk to my family - that I didn't invite my mother or brother to my wedding - that I don't care about them. People don't believe it.

But the friends I've made -- once I got over my insularity and fear, and decided to trust unless proven otherwise, to be a friend instead of hoping for friends -- are my chosen family. They've treated me better than my family ever did.

I know that if something happens tomorrow and I'm homeless, I have 20 people who'd put me up, feed me, and take care of me until I could do it on my own. And I'd do it for them, too.

And that's because of _effort_ and _willingness_ and _bravery_ and _love_ (the verb), not accident of birth.

<comment><USER3> I know exactly what you mean. For some people their biological family is their chosen family. For some of us it simply isn't. I don't think I will have any contact whatsoever with my biological family after this year. It's not just one sided, but they've made it pretty explicit to me.

On one level it's really hard to deal with, but on the other it has taught me things in a small period of time which usually takes decades to settle in. I've learnt how to sense emotions, and whether or not I can trust someone. I've learnt the difference between anger and deep seated hatred. I've learnt the difference between the storms that pass and an eternal jupiter-esque red spot. I've learnt so much that I simply can't condense it into words, let alone a comment.

No matter what I have gained though. I still wish that things weren't like this. Everything has taken it's toll on me. The most direct result is that I have deep seated insecurities and fears about things like rejection, failure etc. The most worrying result is that a part of me, no most of me, is just old and dead (the other part increasingly vanishing part is roughly 13). As someone pointed out I am 18 and I talk like I am in my 30s & 40s. What worries me is that I really can't remember the last time I had a genuinely happy day. It's like I can't have fun. Everything from conversations to thoughts just spiral down into that survival mode. I hate it, but it's almost a part of me now and I can't imagine an existence without it.

So yeah life sucks, but at least I have a family that helps me to deal with it. Does it truly matter what's in their veins?

P.S. - I can tell that you've been through a lot of pain yourself. Is there any way I can help you to deal with it?

Take care.

<comment><USER4> You sound a lot like me, 8 years ago. Except I hadn't given up on my family yet. It took a lot of time and a lot of thinking to realize that they were toxic, and I had to learn to love myself enough to stop subjecting myself to their toxicity just for the sake of "family."

> P.S. - I can tell that you've been through a lot of pain yourself. Is there > any way I can help you to deal with it?

That's such a sweet thing to offer. I'm good now, though - but maybe I can help you.

It's hard to find people in person for talking about this stuff -- they don't understand, or they're in it just like you, and can't help you OUT of it.

But what really changed my life was two books, and a third I read recently that might help you too.

1\. When Things Fall Apart by Pema Chodron. It's nontheistic buddhism, for crises. Get the audio book. It's the next best thing to having a loving parent. Listen with your heart, and do the meditations (including the lo jong - no matter how crazy it sounds). You're probably cynical about this stuff - because life has taught you to be cynical, but this is not something to be cynical about. This book has made the biggest difference in my life - <USER2> change you wouldn't believe.

I'm not a fruity religious type, or a touchy-feely new age type, but what I learned from this book -- to not run away from my emotions, to not distract myself, to embrace it, and go through the fear, and to have empathy for everyone else (and, then, myself), to accept that reality is reality no matter how much I might like it to be otherwise -- has been life-altering in the biggest way possible.

If you met me today, you'd see an extremely positive, happy, confident person, who is responsible for her own choices, and who doesn't let shit get to her -- because she knows who and what she is. That is the exact opposite of who you would have seen 7 years ago. I can attribute that almost entirely to what's in this book, and my practice of it.

2\. Toxic Parents. In case there was any doubt, this book will be your best buddy telling you that you made the right choice, and it's okay.

3\. Drama of the Gifted Child. This one's a bit weird, but you know what? It's good and true.

You don't have to stay the way you are now; you can be happy, and you can be sad, but you will be able to be whole. Seriously. I'm proof.

<comment><USER3> >>>Except I hadn't given up on my family yet. It took a lot of time and a lot of thinking to realize that they were toxic, and I had to learn to love myself enough to stop subjecting myself to their toxicity just for the sake of "family."<<<

I will continue to love them no matter what, but I still can't sustain contact with them. I am intersexed and I want to live life as who I am, just another girl. To them I am against god and I should not even exist. I've been called names and stuff that I don't want to repeat. In a way I can understand why they are like this. It's just socially unacceptable to be me, and their social position matters a lot to them.

>>>It's hard to find people in person for talking about this stuff -- they don't understand, or they're in it just like you, and can't help you OUT of it.<<<

I know what you mean. I just want to be loved for who I am you know. I want to be held, kissed and hugged. I just need to feel safe and secure. My real father can't be there for me all the time as he has to work and we live apart. So, I really feel guilty whenever I call on him.

I did figure out that I needed a lot of advice, though. So, I started contacting people around me and I even emailed one of my heroes (he is simply _awesome_ ). Now, I actually do have people I can talk to. No matter how far apart we are. They're my family.

Can I ask a question though? How did you deal with the guilt? I got into physically violent situations after I turned 16 and for a while I was the aggressor, and I just can't deal with the thought that I hurt another human being. It doesn't matter what they were doing. It's just unacceptable to me. I should have been smart enough to just swallow it.

That guilt was overpowering for me back then it used to be the reason why I didn't think I was good enough to exist. I can't count the number of times I've tried to kill myself over it, but I couldn't do it since it would have hurt my sister. The potency has evaporated, but that sense of guilt combined with worthlessness still exists.

>>>But what really changed my life was two books, and a third I read recently that might help you too.<<<

They sound quite interesting and awesome, but I can't buy them right now. Not only I don't have a simple penny to my name. I also can't bring such stuff into the house, or it will prompt a really, really bad outburst.

By the way, yeah, Drama of the Gifted Child is a bit weird and I doubt that I will get much mileage out of it, since I don't think I am "gifted".

<comment><USER4> The "Gifted" has nothing to do with intellect or aptitude, but kids who learn from a very early age that their role is to fill their parents needs -- to please/protect/take care of them, to hide what is wrong, to make excuses, to say "they mean well."

That really opened my eyes to a few things. For one, she talked about little children who were so hurt that they shut off all emotion - "little stone children" - and that was me, until the crisis that broke me open so badly that I was able to listen to the message in When Things Fall Apart.

As for the guilt… I had tremendous amounts of guilt. My mother used to beat me, and when I got big enough, I started to hit back. She became really mentally ill as I grew up, because she always chose to be a victim, and though she was still mean and abusive, she was also weak and helpless -- so naturally I hated myself for my lack of control as much as I hated her for abusing me. I moved out at 15 and change because I was quite sure I'd either kill her, or myself.

I also hurt (emotionally) other people when I was growing up because I was so torn and broken, and that tortured me for years.

The only thing that helped me was When Things Fall Apart.

In short, the lesson is this: Learn to practice compassion for every person. To be human is to be deeply flawed. Everyone is deeply flawed - and so everyone deserves a shot at redemption, or at least forgiveness. Forgiveness doesn't only help the person forgived -- that almost doesn't matter, but it helps the person doing the forgiving. Forgiveness also doesn't mean you let them hurt you more, but that you recognize that they are weak, scared, flawed, and hurting, no matter how horrible their exterior is... and that's really the default state of humanity.

If you realize that about other people… and you practice compassion and forgiveness for them… then you realize that you, too, are only human, deeply flawed, and worthy of redemption and forgiveness. Then you practice compassion and forgiveness for yourself.

Here's an excerpt from When Things Fall Apart, one that particularly struck a chord with me - one I will never forget:

 _It's as if you just looked at yourself in the mirror, and you saw a gorilla. The mirror's there; it's showing "you", and what you see looks bad. You try to angle the mirror so you will look a little better, but no matter what you do, you still look like a gorilla. That's being nailed by life, the place where you have no choice except to embrace what's happening or push it away._

That is the essence of lovingkindness meditation. And it really, honestly, works. I can admit now all the bad things I've done… it still hurts a little, but it's nothing like the overpowering guilt, shame and self-hatred I felt for myself before. I can talk about it in public, like here, and stand tall, even though I know people will judge me and hate me for it.

I'm sorry your living situation is so tenuous.

Please email me at amy @ slash7 com and I'll send you the MP3s of the Pema Chodron book. Nobody has to know you have them. And I'm sure Pema Chodron herself would approve of me sending them to you.

</comment></comment></comment></comment></comment></comment><comment><USER5> Loners are not necessarily lonely people. Perhaps it was only my impression reading the article, but in some sections, the author tends to confuse "loneliness" and "solitude".

True loners are people "suffering" from schizoid personality disorders.

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

I should use the term "suffering" carefully because true loners actually enjoy being alone, they admire self-reliance and feel stronger by not _needing_ others.

The beauty of modern society is how easy it is to isolate yourself from others and live like a king -- compared to hundreds of years ago, where people were needed to get the little things in life.

About _meaningful_ friendship: The Internet and the ability to travel (if needed) helps you experience the third flavor (shared pursuit of virtue) without being limited by a physical location, face to face communication and simply helps you find like-minded people.

<comment><USER4> I know lots of loners who want friends but have none, because of fear and a lack of drive, not a personality disorder.

<comment><USER6> You know them, but are you friends with them?

<comment><USER4> A few, who are charming but socially afraid. (Depending on your outlook, I am either supremely approachable, or outright terrifying - because I am both loud and friendly.)

The ones who have absolutely no social skills, no. But they feel very different in their lack of social skills than a person who has a genuine mental problem. It's like, they've gotten so long by decrying it, that now it'd be a big blow to their ego to do something as stupid and minor as read a book on social skills. You can see in their eyes that they're hurting from being alone, though.

I've also met lots of loners who probably do "have something wrong with them", who are wrong in a scary fashion. They certainly exist - it's a symptom. But many who have the symptom don't have the disease.

</comment></comment></comment></comment><comment><USER7> I think a lot of us (at least who were born before the 90s) had these friendships as kids if their family didn't move much.

I had a only a couple of good friends, but I had them for 10+ years. We'd stay at each other houses, spend time with each other's families. Play, watch movies, get into fights, goof around and so on.

Then eventually, as girlfriends came around, as we went to different universities, different countries, it was hard to keep the same level of friendship. First they become just "acquaintances", then sadly, they become strangers...

The point being, I think a lot of us know what the article means, it is just that we failed to hang on to it.

In America people just move more. It is hard to foster good friendships without face contact. Don't matter what the resolution of your Skype video, it is just not the same.

So, we are stuck. We'll end up spending more time on HN, playing Warcraft, working.

Another sensitive issue is that a higher proportion of HN-ers are probably introverts. Nothing wrong with that. I am one too. That means it is easier by default to be lonely. But in the long run it also hurts.

<comment><USER8> It's a lot harder to make new friends when you're older, too. Most of the people I meet don't really have time to make new friends; they barely keep their old friends in maintenance mode, getting together with them every couple of months for some ancient ritual they've always done together, such as golf. You have lunch or drinks with somebody once a week, and you're _in_. You know, that's a pretty high level of recognition from them. But it's futile; it's going to take you two years to get to know them at that rate.

<comment><USER8> As if to make my point, an old friend of mine announced his birthday plans today. He's going to a water park (for his stepdaughter) and a bed and breakfast (for his wife.) The rest of us? Nothing. No party, no dinner and drinks, nothing. He's living in a new city and has nobody close by except family, but he's got friends wanting to come from out of town to see him. One is me; another is our best friend from high school, whom he hasn't seen in over a year. So, maybe some other weekend, he says. Fuck that; I know that song. It'll never happen. I'd write him off as an asshole and a lost cause if that wasn't typical for the married guys I know. Should I even bother with "friends" like that, or should I forget about him and call him again when his kids are out of the house?

</comment></comment></comment><comment><USER9> Is this really more of a severe problem in America than in South Korea or Japan? How important is population density factor into ones loneliness? Yes the US is large, Some googling on Urban Alienation turned this up though, food for though: <http://nymag.com/news/features/52450/>

I really think the main culprit of American Loneliness is piss-poor urban planning. There are so many areas of urban sprawl where instead of putting the store fronts directly on the side-walk and having communal parking garages behind the stores, each store or public place gets its own half-mile of desert pavement between the sidewalk and the destination, with a patchwork of green barricades thrown in for good measure.

Small shops can't stay in business because there is no foot-traffic to support them. There is no ambient sense of community because it is a generic pavement desert for cars rather than a community for humans. You can't discover places in these communities, the store has to be gigantic and you make a conscious decision

Living in a city with zero urban planning is like living in no city at all -> no community -> no feeling of belonging.

If everyone simply told their city council to approve no more building permits unless the store-front was on the sidewalk American Lonliness would be solved. Otherwise of course we will be lonely, because we aren't even living in real cities meant to be used by people.

</comment><comment><USER10> Ah, yes, the American soul according to D.H. Lawrence: cold, stoic, isolate, a killer. (That would be Natty Bumpo.)

I find this sort of piece unhelpful. It is full of generalities that seem more or less plausible, yet which can't be verified or refuted.

</comment><comment><USER11> Unfortunately this is not a uniquely American problem. I think you can easily extrapolate this to at least most of the developed economies.

<comment><USER12> Maybe so. I've lived in the Philippines and it's not a developed country so this isolation problem is not much of an issue there (yet). But their culture is becoming more and more 'American' and gradually losing the closeness of friends and family and I'm afraid of what it's going to be like years in the future. I hope it doesn't become another USA but it very well could, or even worse.

</comment></comment><comment><USER13> I think this article is really all about how we should subborn our individualism to the rule of the collective than about the question of friendships.

Reality is, the loners and the individualists have friendships, and so they aren't really alone.

But they are not collectivists, and therefore they must be portrayed as having some sort of defect.

You see this in every collectivist society.... as no form of socialism can survive if the people recognize it for what it is and resist.

<comment><USER14> Not _everything_ can be reduced to an Ayn Rand novel.

</comment></comment><comment><USER15> +1 if you're lonely.

</comment><comment><USER16> We are moving into virtual world (Internet, TV, etc.) there is simply not much need for physical interaction.</comment>


Police called to IKEA after thousands sign up for hide and seek (2019) - <AUTHOR> https://www.scotsman.com/news/uk-news/police-called-scottish-ikea-after-thousands-sign-hide-and-seek-541800 <comment><USER2> Previous Discussion: [https://news.ycombinator.com/item?id=20896156](https://news.ycombinator.com/item?id=20896156)

<comment><USER3> Good catch! Nicely done.

Something similar from 2009 too:

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

[https://web.archive.org/web/20090312000304/http://dornob.com...](https://web.archive.org/web/20090312000304/http://dornob.com/the- contemporary-art-of-commercial-camouflage/)

</comment></comment><comment> jon-wood That article felt like it finished just as it was getting started. Where's the interview with a hide-and-seeker, or an examination of why IKEA won't let you play in there stores?

<comment><USER3> The submitted article was [http://nowiknow.com/the-one-thing-you-cant-do-in- ikea/](http://nowiknow.com/the-one-thing-you-cant-do-in-ikea/) which was cribbed from a bunch of old news articles. We've replaced the URL above with one of those. The others, in case anybody cares:

[https://www.bloomberg.com/news/articles/2015-03-16/ikea- stam...](https://www.bloomberg.com/news/articles/2015-03-16/ikea-stamps-out- hide-and-seek-games-in-dutch-furniture-stores)

[https://www.fastcompany.com/90399077/ikea-politely-asks- that...](https://www.fastcompany.com/90399077/ikea-politely-asks-that-you- stop-playing-giant-games-of-hide-and-seek-in-its-stores)

[https://nypost.com/2019/09/11/cops-shut-down- massive-3000-pe...](https://nypost.com/2019/09/11/cops-shut-down- massive-3000-person-game-of-hide-and-seek-at-ikea/)

</comment></comment><comment><USER4> That's it. That's the tweet.

</comment><comment><USER5> Answer: organise a "hide and seek" flash mob, apparently.

<comment><USER6> Thanks. r/savedyouaclick</comment></comment>


Adobe Dropping Support for PhoneGap - <AUTHOR> https://blog.phonegap.com/update-for-customers-using-phonegap-and-phonegap-build-cc701c77502c <comment><USER2> My company has been using PhoneGap to deliver enterprise mobile apps for years. Though we have long realized that PhoneGap will not be be around much longer, the migration has been quite a pain for us.

We have been able to move to Ionic without many code changes, so that's our de facto solution. I'm curious to hear about others' experiences with PhoneGap, Cordova, and Ionic in the real world. Ionic seems to be the best path forward as the "spiritual successor" to PhoneGap, but I have also been looking into React Native (possible with Expo).</comment>


Show HN: Blogmesh, Interconnect Blogs to Create a Decentralized Social Network - <AUTHOR> https://blogmesh.org/introduction/ <comment><USER2> I mean, it's okay. I wouldn't do it like that.

You need a client with a nice UI/UX, you need a standardised format for updates and you need a nice way to manage `read` permissions for other users or to open a communication channel (which in itself should be a node with read write controls. Then you can create imaginary clusters to publish those updates to because you don't want to publish everything to everyone.

</comment><comment><USER3> Everything old is new again: blogrings are back ...

</comment><comment><USER4> This is nice, but Wordpress? Perhaps it would be better to just use a browser extension, or a tiny desktop app that would fetch and post stuff to blogs. Don't make me run Wordpress!</comment>


Beyond NoSQL: Using RRD to store temporal data - <AUTHOR> http://www.plainlystated.com/2011/07/beyond-nosql-using-rrd-to-store-temporal-data/ <comment><USER2> Non sequitur hint: If you are storing data like his powerhungy, consider storing the sum of the squares of the datum as well as the datum and number of samples in the aggregate (might be initially 1). This lets you compute the standard deviation for display, but it also has the nice property that after aggregating samples, you can still compute the standard deviation of that.

<comment><USER3> Cool. Would you be so kind as to throw a book suggestion my way as to where I could learn such tricks?

<comment><USER4> I don't know of a book reference, but if you sit down for half an hour and play though the algebra of stddev you can figure it how to combine multiple standard deviations into a single stddev. It's fairly simple and quite satisfying. The sum of squares can be computed by multiplying the mean with the number of elements. So, by storing the number of elements, mean of those elements and the population stddev of those elements, you can take two or more sets of numbers and compute their combined standard deviation as a simple formula based on their stddev, mean and nelems.

There's a wikipedia entry in combining standard deviations (Standard_deviation#Combining_standard_deviations) but it's dense if you don't have a math background (I don't have one). The crux of it is, to compute the stddev of a set you need to compute the average, then sum of squares of the delta [ie sum([elem[i] - avg] for 1 .. i)]. You don't have the individual elements any more so you can't compute the sum of squares of mean_deltas, but using the stored stddevs, means and averages you can recompute that information out when computing the new stddev.

Well, it's a lot of easier to explain with a whiteboard. You're basically subtracting out the information you don't have based on the stddev/mean-aka- avg/nelems data you do have, you're subtracting out infinite series and it all works out perfectly.

numsum1 = SUM(nelems[i] * (stddev[i]^2 + mean[i]^2))

numsum2 = SUM( nelems[i] * mean[i] )^2 / SUM(nelems[i])

combined_stddev = SQRT((numsum1 - numsum2) / SUM(nelems[i]))

<comment><USER3> I find this endlessly interesting. Thanks for the overview.

</comment></comment></comment></comment><comment><USER5> RRDtool is pretty nice, but it has a fair number of scalability issues too:

* Once you create an RRA (archive file) you can't modify it to add or remove metrics, or change their properties. This makes them relatively inflexible.

* Updating RRAs is I/O heavy. Every time an update comes in, the OS must read, modify and write a page.

* RRDcache mitigates this somewhat by deferring flushes, but there are diminishing returns to this (eventually the number of writes coming in will cause the cache flush and filesystem metadata update rate to exceed the maximum IOPS available), and you risk data loss in the event of a power outage or the OOM killer kills the process.

Time-series data access patterns tend to be write-heavy. Storing first in an append-only log is a big win here; Cassandra and MySQL are both good choices, though you do have to think about the schemata first. And disk is so cheap now that expiration can be an afterthought.

<comment><USER6> To handle very high throughput, storing RRD files on a ramdisk works surprisingly well, if you can afford the cost and the loss of a few seconds of data - which most of the time you can.

A simple tar + gzip is all you need to flush to disk, at the frequency of your choice. It turns out rrd write operations are safe enough to do this without corruption. And the IO cost is minimal compared to rrdcache: rrd data compresses extremely well.

<comment><USER5> Interesting idea, but not a very efficient use of memory. Not only would you have to reserve memory for the ramdisk (assuming you even have enough to store all the files), but more precious memory would be wasted by buffer-caching the freshly-written tarred archives. You'd be sacrificing memory that would be otherwise used to service reads on frequently-accessed RRD files.

<comment><USER6> Your point is technically valid but irrelevant in practice. The compressed tar is surprisingly small and you can stream it to S3 if you really want to shave off megabytes.

But more importantly, you don't care. This will give you 3 orders of magnitude better write throughput with _2 hours of work_. The savings in engineering time alone will buy you 1000x the ram you wasted!

With that kind of achievement, my advice would be leave over-optimization for later and buy yourself a drink :)

<comment><USER5> It's not irrelevant in practice, at least not for me. I deal in enormous amounts of data that couldn't possibly fit into RAM.

</comment></comment></comment></comment></comment><comment><USER7> Site appears to be temporally unavailable.

<comment><USER8> [http://webcache.googleusercontent.com/search?q=cache:http%3A...](http://webcache.googleusercontent.com/search?q=cache:http%3A%2F%2Fwww.plainlystated.com%2F2011%2F07%2Fbeyond- nosql-using-rrd-to-store-temporal-data%2F)

<comment><AUTHOR> Text-only version comes up for me: [http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://www.plainlystated.com/2011/07/beyond- nosql-using-rrd-to-store-temporal-data/&hl=en&strip=1)

</comment></comment></comment><comment><USER9> You could do the same thing with mongodb and 'capped collections' although aging the data like rrd would require mongodb to have a callback for when the capped collection is full.

</comment><comment><USER10> That was one of the clearest explanations of the strengths of RRDtool that I've read. You can spend a lot of time massaging a more general database to store time series data, or you can use RRDtool.

</comment><comment><USER11> Pity there's no mention that RRDTool has been around for decades, pretty much stable. It's worth remembering that old tools aren't necessarily obsolete.</comment>


See Jane Go, a Female-Only Ride-Sharing Service, to Launch in Orange County - <AUTHOR> http://laist.com/2016/06/22/see_jane_go_a_women-only_uber_to_la.php <comment><USER2> It seems like a "Request female/male driver" option from Uber would make this business venture obsolete.

<comment><USER3> Ugh, I can only imagine the creepy drunk male passengers you'd get at night as a female driver.

<comment><USER2> The drivers still reserve the right to refuse service, I'd just drive off if someone did that lol

I do see how it could be abused. Although im not sure how you would stop that, even with a female only drive service.

I wonder what happens if you have a mixed group? Say 4 girlfriends and your husband? Does he have to get a different cab?

<comment><USER3> It's extraordinarily difficult to "just drive off" when someone is in your car, and it's easy to not realise someone is a dangerous creep the first second you see them.</comment></comment></comment></comment>


Enhancing and Experiencing Spacetime Resolution with Videos and Stills - <AUTHOR> http://grail.cs.washington.edu/projects/enhancing-spacetime/ <comment><USER2> The vimeo version of this has already been posted: <http://news.ycombinator.com/item?id=448676></comment>


Show HN: Transform words accurately e.g. "hacker" to "hack", "hacking" etc. - <AUTHOR> https://github.com/gutfeeling/word_forms <comment><AUTHOR> I have been working on a NLP project where I needed to identify different forms of the same word. Typically, this is done by Stemming and Lemmatization. These methods are not accurate, and I needed high accuracy in my project. Since I found no libraries/packages that can do this, I decided to write a Python package myself. It works quite well now. It is also trending in /r/python. Feel free to check it out, I would love to hear your feedback.

</comment><comment><USER2> Yesterday: [https://news.ycombinator.com/item?id=12899886](https://news.ycombinator.com/item?id=12899886)</comment>


Disqus will start requiring an ad above the comments for their Basic plan - <AUTHOR> https://twitter.com/victorczhou/status/1116064284214222849 <comment><USER2> Maybe then makes sense to mention a Disqus alt I'm developing, no ads or tracking: [https://www.talkyard.io/blog- comments](https://www.talkyard.io/blog-comments) \+ open source.

</comment><comment><USER3> Another reason to switch to one of the alternatives [1].

[1] [https://darekkay.com/blog/static-site- comments/](https://darekkay.com/blog/static-site-comments/)</comment>


Moving to Chromium might be a good thing - <AUTHOR> https://medium.com/@webjac/moving-to-chromium-might-be-a-good-thing-de94cd8c5ae6 <comment><USER2> I totally agree

</comment><comment><USER3> Nice one!</comment>


Nod Gesture Control Ring - <AUTHOR> https://hellonod.com/

<comment><AUTHOR> This is the kind of gesture control I'd like to see for AR products like Google Glass. You shouldn't have to raise your hand to your face to interact with the device. It would be amazing to be able to control an AR headset under the table with your hand during a meeting or similar.</comment>


Three rules of thumb (2009) - <AUTHOR> http://www.johndcook.com/blog/2009/07/01/three-rules-of-thumb/

<comment><AUTHOR> I find rules of thumb fascinating. Would love to hear what other rules of thumb people use in their day-to-day.

 _Then they measured my right Thumb, and desired no more; for by a mathematical Computation, that twice round the Thumb is once around the Wrist, and so on to the Neck and Waist, and by the help of my old Shirt, which I displayed on the Ground before them for a Pattern, they fitted me exactly._ \-- Gulliver's travels

<comment><USER2> There are about 2000 work hours in a week. Useful when converting hourly rate to annual salary, e.g. $50/hour = $100K/year.

<comment><USER3> > There are about 2000 work hours in a week.

There are about 2000 working hours in a _year_ (40 hrs/week * [52 weeks a year - 2 weeks of paid leave])</comment></comment></comment>


Show HN: Using functions to construct Regex in Python - <AUTHOR> https://github.com/iogf/crocs <comment><USER2> In case you aren't aware of this, what you've made is very similar to the rx.el[1] that's shipped with Emacs since 21.1 (released in 2001).

Many of the comments here are speculating on what this might/could be used for, but could simply look at how it's used in various Emacs modes compared to writing raw regexes in string form.

It's not fully comparable, since a large reason to use rx.el in Emacs is Emacs's nasty regex syntax coupled with having no native quoting construct for regex, making writing anything an exercise in bashing your backslash key.

But it also makes it easier to programmatically generate regexes, which as your Python implementation also shows can lead to much clearer code.

1\. [http://doc.endlessparentheses.com/Fun%2Frx.html](http://doc.endlessparentheses.com/Fun%2Frx.html)

<comment><USER3> > compared to writing raw regexes in string form ...

> Emacs's nasty regex syntax

It's also case-sensitive too. Writing regex by hand when there is a mixture of case sensitivity to recognise is not at all pleasant.

</comment></comment><comment><USER4> (Separate comment addressing the library itself.)

I find the naming of the classes off.

Why not call X as Any?

Why use nouns for some things, and verbs for others? I found Include and Exclude to be confusion. Inclusion and exclusion are relative to something. You include something with something else. I think Only and AnyBut would be better names.

Why call it Seq when it's closer to a Python Range? Seq usually means sequentiality.

Why not call Times as Repeat or Repetition?

It didn't look like this had any compatibility with existing regexes. I can't parse an existing regex into this library.

It looks like debugging could be a nightmare since it just passes things off to Python's re library. So if an error happens there, it will be tough to trace it to your original construction.

All of this class hierarchy building seems prime to replace with algebraic data types, which would probably cut the code down to just a fraction of the size.

<comment><USER5> I also think the naming is really bad and can be improved. The central problem is that you're using action words for a descriptive API. You should use something like "Repeating" instead of "Times". Also, the parameters to Times are distinctly un-pythonic. I would probably make it provide this API:

       def Repeating(pattern, *args, min=None, max=None, exact=None):...

       Repeating(P) => P*

       Repeating(P, a, b) and
       Repeating(P, min=a, max=b) => P{a, b}

       Repeating(P, n) and
       Repeating(P, exact=n) => P{n, n}

       Repeating(P, min=n) => P{n,}

       Repeating(P, max=n) => P{0, n}

"Exclude" and "Include" suffer from the aforementioned problem of being procedural words for a declarative syntax. And they're easy to confuse with one another, having only two differing letters. And they don't make it clear that they match exactly one character. I would use "AnyBut" and "OneOf".

Why the split between Group and NamedGroup? Just add a name parameter to Group!

Seq as mentioned by parent is also problematic. Use Range or maybe Between or FromTo. To me FromTo flows the best, but Range is also ok.

I'm tempted to advocate adding operator overloading, so | would make a pattern that matches any one of two alternatives, * would be used for specifying repeats, etc. So you could write

       Digit = FromTo('0', '9')
       CapitalLetter = FromTo('A', 'Z')
       POCode = CapitalLetter * 2 + Digit * 3
       SmallLetter = FromTo('a', 'z')
       Letter = CapitalLetter or SmallLetter
       Name = CapitalLetter + Letter * (0, Inf)
       FirstName = Group(name='first', Name)
       LastName = Group(name='last', Name)
       FullName = FirstName + ' ' + LastName

However, implemented badly that can hurt readability much more than having to write functions everywhere.

<comment><USER6> > I'm tempted to advocate adding operator overloading, so | would make a > pattern that matches any one of two alternatives, * would be used for > specifying repeats, etc. So you could write

For repeat I think using indexing would make more sense though it might look somewhat unusual:

        Pattern[:]

would be *

        Pattern[1:]

would be + aka {1,}

        Pattern[5]

would be {5}

        Pattern[m:n]

would be {m,n}

It also uses a single operator for all repetition operations which is nice.

</comment></comment></comment><comment><USER4> In Common Lisp, the library CL-PPCRE [0] is used for regexes, and has an "AST"-syntax like this. It supports full Perl-compatible regular expressions in both the tree syntax as well as the standard string syntax.

The tree syntax actually uses symbols and lists, idiomatic in symbolic programming settings. This has the hugely convenient property of being trivially serializable, just as the string representation is. This isn't true with an unadorned object representation.

The documentation for the tree syntax is here [1]. Some examples from the page are reproduced below. The PARSE-STRING function isn't used by the user except for testing. All of the regex scanning and matching functions allow either a string or a tree.

        * (parse-string "(ab)*")
        (:GREEDY-REPETITION 0 NIL (:REGISTER "ab"))

        * (parse-string "(a(b))")
        (:REGISTER (:SEQUENCE #\a (:REGISTER #\b)))

        * (parse-string "(?:abc){3,5}")
        (:GREEDY-REPETITION 3 5 (:GROUP "abc"))
        ;; (:GREEDY-REPETITION 3 5 "abc") would also be OK

        * (parse-string "a(?i)b(?-i)c")
        (:SEQUENCE #\a
         (:SEQUENCE (:FLAGS :CASE-INSENSITIVE-P)
          (:SEQUENCE #\b (:SEQUENCE (:FLAGS :CASE-SENSITIVE-P) #\c))))
        ;; same as (:SEQUENCE #\a :CASE-INSENSITIVE-P #\b :CASE-SENSITIVE-P #\c)

        * (parse-string "(?=a)b")
        (:SEQUENCE (:POSITIVE-LOOKAHEAD #\a) #\b)

[0] [http://weitz.de/cl-ppcre/](http://weitz.de/cl-ppcre/)

[1] [http://weitz.de/cl-ppcre/#create-scanner2](http://weitz.de/cl- ppcre/#create-scanner2)

<comment><USER7> It's worth mentioning that CL-PPCRE is not a set of bindings to a C implementation. It is written _in_ Common Lisp, and it's fast.

</comment></comment><comment><USER8> While the idea is very cool, it seems to have most of the drawbacks of traditional regexes (i.e. the little Syntax quirks that eventually one has to learn), with none of the benefits (regex are everywhere including text editors, not just a python thing). It does make them more readable I guess, but I'd like to hear other HNers' opinions.

I think for beginners a better approach would be using something like RegexBuddy ([https://www.regexbuddy.com](https://www.regexbuddy.com) not affiliated, just found it super useful when I started writing regexes).

<comment><USER9> I don't really think this is more readable than the regex itself once it starts to get complex, like they all do.

Maybe if this was implemented on a prefix notation language it may have would looked/read better

<comment><USER10> I really like the way Common Lisp's ppcre library works: the functions all accept either standard strings or a s-expression version of the regular expression and then, using compiler macros, all invocations with statically- determinable regular expressions get compiled to some internal representation at compile-time rather than generating that representation at run-time.

[http://weitz.de/cl-ppcre/#create-scanner2](http://weitz.de/cl-ppcre/#create- scanner2)

</comment></comment></comment><comment><USER11> Interesting, how does this compare to PyParsing[1]? It seems that pyparsing does a lot of this already. Not that you shouldn't write your own, mind you!

Some improvements could be to use operators to reduce some boilerplate, like using __* instead of Times(), i.e `(X() * 3) * 5`

1\. [http://pyparsing.wikispaces.com/](http://pyparsing.wikispaces.com/)

<comment><AUTHOR> Interesting suggestion.

</comment></comment><comment><USER12> I find this:

        mail = '(?P<name>[a-z][a-z0-1\_\.\-]{1,})'
        hostname = '(?P<hostname>python[a-z]{1,})'
        domain = '(?P<domain>br[a-z])'
        match_mail = f'{mail}\@{hostname}\.{domain}'

quite more readable and easy to verify than the 50-line example in the link. The real advantage of parser combinators over regexes is the ability to parse data structures instead of just capturing regex groups.

<comment><USER13> Or even just code comments, as with this example[0]:

      import java.util.regex.Pattern;

      public class Main {
          public static void main(String[] args) {
              String regexStr = "";

              regexStr += "\\b";     //Begin match at the word boundary(whitespace boundary)
              regexStr += "\\d{3}";  //Match three digits
              regexStr += "[-.]?";   //Optional - Match dash or dot
              regexStr += "\\d{3}";  //Match three digits
              regexStr += "[-.]?";   //Optional - Match dash or dot
              regexStr += "\\d{4}";  //Match four digits
              regexStr += "\\b";     //End match at the word boundary(whitespace boundary)

              if (args[0].matches(regexStr)) {
                  System.out.println("Match!");
              } else {
                  System.out.println("No match.");
              }
          }
      }

[0] [https://codereview.stackexchange.com/questions/47432/comment...](https://codereview.stackexchange.com/questions/47432/commenting- string-matching-regex)

<comment><USER14> those comments are no better than:

       i++; /* increase i by one */

sure, break up a larger regex to reflect its structure and comment those sections, but something like \\\d{3} or [-.]? should really not need commenting

<comment><USER15> Regex has enough sigil spam / characters that mean alternate things than "this is a letter" that mentally parsing it beyond the trivial case is difficult. They're ubiquitous, but they sure aren't a perfect UI

</comment></comment></comment></comment><comment><USER16> I'm confused. Doesn't Python offer verbose regular expressions complete with comments?

[https://docs.python.org/3/library/re.html#re.VERBOSE](https://docs.python.org/3/library/re.html#re.VERBOSE)

        a = re.compile(r"""\d +  # the integral part
                           \.    # the decimal point
                           \d *  # some fractional digits""", re.X)

Or is there more at stake than making readable, self-documenting regular expressions?

<comment><USER17> It has the same advantages as combinators: the total computation can be broken down into pieces, tested individually, and then composed and reused, especially programmatically.

Why use functions when you can have one big main(args: Array<String>) with inline comments?

btw, a hello-world snippet like /\d+\\.\d*/ isn't very scathing criticism of a library.

</comment></comment><comment><USER18> Really cool concept, yet not practical in my opinion. The classes and functions called to replace the regex I consider to be harder to learn than the initial regex. With regex there is a standardised, succinct way to query strings, while this system adds unneeded complexity for the sake of using English words. For quick uses integrated in other programs I can see the usefulness, yet as a standalone I'll stick with regex.

<comment><AUTHOR> The idea is having a set of entities on which one could reason better to implement more complex filters(regex) as well as debugging them. It is sort of a way of reasoning on filtering results it merely uses regex as an underlying tool.

One could write the filter using crocs format, compile it to regex then use in their programs. Using crocs you sort of define your data type then apply functions on those data types to fetch your required output.

The crocs framework is a way to give more power to your imagination and readability to others about what your imagination produces.

</comment></comment><comment><USER19> I always wanted to do something like this. Because I always forgot how to do the 'look ahead' assertions.

I even named the library 'hu_regex', where 'hu' stands for human, but never did anything further, as I couldn't think of any good builder patter for regex that seemed intuitive.

Anyway, thanks for this. This comment section has introduced some good libraries as well.

</comment><comment><USER20> If you are interested in different ways to write/implement regular expression this talk is worth the watch: [https://begriffs.com/posts/2016-06-27-fast- haskell-regexes.h...](https://begriffs.com/posts/2016-06-27-fast-haskell- regexes.html)

</comment><comment><USER21> I always liked this idea (reminiscent of emacs rx dsl). But I'm not sure I'd be using it that often...

</comment><comment><USER22> A more mature version: [https://github.com/VerbalExpressions/PythonVerbalExpressions](https://github.com/VerbalExpressions/PythonVerbalExpressions)

<comment><AUTHOR> This one doesnt look to support lookahead/lookbehind nor it outputs valid inputs for the matches though. However, it is interesting the way of how you chain the VerEx to build the patterns.

</comment></comment><comment><AUTHOR> I have been adding more docs to:

[https://github.com/iogf/crocs/wiki](https://github.com/iogf/crocs/wiki)

It would be interesting to hear comments :)

</comment><comment><USER23> How often do you programmatically generate regexes though?

I tend to find that regex patterns are effectively constants in the program

And if it's just for readability it seems a bit of a sledgehammer

</comment><comment><USER24> Hi, what's the diference between this project and a parser combinator?

<comment><USER25> A parser combinator may be more powerful? Not sure.

The python parsec package is really terribly documented, but there's a good example here:

[http://www.valuedlessons.com/2008/02/pysec-monadic- combinato...](http://www.valuedlessons.com/2008/02/pysec-monadic-combinatoric- parsing-in.html)

EDIT:

The name of the package may have changed; it looks like this is the pypi package being documented (if not; i'm confused because pypi's pysec package is something totally different):

[https://pypi.python.org/pypi/parsec](https://pypi.python.org/pypi/parsec)

</comment></comment><comment><USER26> Regexes aren't really all that hard if you avoid all the crazy back reference craziness. I've taught them to non-programmers in about a half-hour and they were able to use them reasonably well right after with a couple reminders.

There's three things you need:

1 - concatenation - basically one thing next to another, 'a' goes next to 'b' to make 'ab' which matches any string with that in it. Examples:

'xzyqr2321abtwe' \- matches

'zyxabc' \- matches

'abcxyz' \- matches

'ab' \- matches

'ba' \- doesn't match

'azb' \- doesn't match

2 - alternation - one thing or another. The operator for this is the pipe symbol '|'. So 'a|b' is 'a or b'.

'xzyqr2321abtwe' \- matches

'xzyqr2321atwe' \- matches

'xzyqr2321btwe' \- matches

'zyxabc' \- matches

'abcxyz' \- matches

'ab' \- matches

'azb' \- matches

Here's another 'abc|cab' 'abc or cab'

'xzyqr2321abtwa' \- doesn't match

'zyxabc' \- matches

'zyxcba' \- doesn't match

'zyxcab' \- matches

If it helps, you can use parentheses to group blocks of things for clarity.

'(abc)|(cab)'

3 - repetition - the operator we want to care about is '* ' also called the _Kleene star_. This means that anything that comes _before_ the star can repeat 0 or more times.

so 'a* ' means a pattern of 'a' 0 or more times.

'xzyqr2321abtwe' \- matches

'xzyqr2321btwe' \- matches (because of _zero_ or more times)

'xzyqr2321btwaaaaaaaaa' \- matches

so if you want to match an 'a' one or more times you can simply use rule #1 (concatenation) and put 'aa* '

'xzyqr2321abtwe' \- matches

'xzyqr2321btwe' \- doesn't match

'xzyqr2321btwaaaaaaaaa' \- matches

It turns out this is such a common regex, that some "syntactic sugar" was invented to make it easier to work with, the '+' symbol. Which is used exactly the same way: 'aa* ' = 'a+ '

Congratulations, you now know everything you need to make a regex that can pretty much do anything. So what about all that other line noise one usually sees in a regex? That's more "syntactic sugar", designed to make certain kinds of regexes simpler to write.

For example, a regex using the above rules that can match any alphabet letter from a through f is: a|b|c|d|e|f

This is a lot of typing, so you can use square brackets to build what's called a "character class". '[abcdef]' = 'a|b|c|d|e|f'

If you have a long string of characters, you can use some more sugar and simply put a '-' in between the first and last characters '[a-f]' = '[abcdef]'

Here's a complex example, a regex that can match any lower-case alphabet character or number '[0-9a-z]'

It also turns out that a special character class pattern that can match any character (except for newlines) is so common that a special operator '.' was created. '.' matches literally anything.

For example, concatenating it with an "any number" regex gives you '.[0-9]' which means any character followed by a number.

For repetition, there's also some syntactic sugar, here's a table, these all go after the thing you want repeated:

* - 0 or more times

\+ - 1 or more times

{p} - p times

{p,q} - p to q times

{,q} - 0 to q times

{p,} - at least p times

? - 0 or 1 times

Finally, in the list of basic regex stuff, there's "capturing", this is how regexes get used to parse strings. It works basically like this, anything that is matched inside of a parentheses gets "copied" to a special variable. It depends on your language on where this variable is. The name of the variable is typically some 1, indexed variable like $1, $2, $3. The number of the variable is the number of left parentheses in the regex.

Example: 'abc(.+)123'

abcd123 - matches, $1 is 'd'

abcf123 - matches, $1 is 'f'

abcqqq123 - matches, $1 is 'qqq'

abc123 - doesn't match

Another example: (abc([0-9]+))

abc123 - matches $1 is abc123 $2 is 123

If you want to suppress this capturing behavior, the '(' parentheses should be written '(?:'

(?:abc([0-9]+))

Try these out here, it does a nice job highlighting [https://regex101.com/](https://regex101.com/) it calls the capture variable "groups" and shows them on the right under "capture information"

There, that's about it. Other advanced techniques like greedy matching, negative character classes, callbacks, etc. flow pretty nicely from these basic ideas.

<comment><USER17> imo one of the hardest parts of regex is reasoning about catastrophic backtracking.

<comment><USER26> They can get weird and difficult, but most of the time I see people struggling with regexes is with really simple stuff. Once you start getting into backreferences and all sorts of other non-formal regular expression stuff and end up in firm regex-land it's time to start looking for proper parsing approaches.</comment></comment></comment>


Y Combinator To Offer Standardized Angel Funding Legal Docs - <AUTHOR> http://www.techcrunch.com/2008/08/13/y-combinator-to-offer-standardized-angel-funding-legal-docs/

<comment><USER2> "The documents were created with their law firm, Wilson Sonsini Goodrich & Rosati and are available ->HERE<-."

Is it just me or does the link on 'here' not actually work?

Actually I found a link somewhere else to one of the actual pages - <http://www.ycombinator.com/seriesaa.html>

And the page now has a message saying

'Sorry, there's a glitch with the documents and we had to take them down. We hope to have something back soon.'

I wonder if the glitch is technical or legal? My guess would be it's an IP issue with one of the legal documents. I can't imagine why lawyers wouldn't want this to go ahead.

<comment><USER3> Not sure that I like the sound of "We hope to have SOMETHING back soon."

</comment></comment><comment><USER4> This is really really useful. Thanks so much!

Jessica / Paul - do you have the source code of this as wall, not just the byte code?

I'd love to have a summary of these terms, e.g. what rights the preferred stock created in these documents has (anti-dilution, liquiditation preference, double-dip, etc.).

<comment><USER5> Yes, corresponding term sheet would be very helpful.

</comment></comment><comment><USER6> We used a version of these (though had to edit them some) in our recent funding round, and I can't even imagine how much money they saved us. They are, if nothing else, a great starting point. Were I an angel, I'd use them for sure.

<comment><USER7> We did as well and they saved us a fair bit of cash - not to mention the hassle of figuring out what vanilla terms should look like.

</comment></comment><comment><USER8> This is great! I can't say how positive a step this is.

It's really common for things like NDAs, etc to be provided by independent organisations free of charge (e.g. the UK patent office provide one) but moving this into other documents is a must.

I'd like to see a plain English description of each clause, possibly with extra optional clauses, creative commons style.

I love the idea of pick'n'mix legal documents. As long as they are drawn up by good lawyers it would make the law a much more accessible thing to regular people/companies.

</comment><comment><USER9> PG has "made noises" about this for a while here. I'm glad to see this, as it's really not rocket science, and as Matt says, "a great starting point". Thanks also to the lawyer folks involved for getting it. This sort of thing won't mean less work for good lawyers, it will mean more work doing real stuff, and less twiddling around with boilerplate.

</comment><comment><USER10> This is a good strategy for YC: it "commoditizes the complements" (borrowing a phrase from <http://www.joelonsoftware.com/articles/StrategyLetterV.html> ) of a deal, lowers the cost of an early stage financing round (giving more value for their investment) and makes it easier for prospects to evaluate aspects of the offer in advance.

</comment><comment><USER11> Not to be pedantic or anything :) but there's a typo on seriesaa.html page: "...many situations with without too many modifications." 'with' is extraneous.

<comment><USER12> email pg

<comment><USER11> done

</comment></comment></comment><comment><USER13> Thanks PG and YC!

</comment><comment><USER14> Wow, pure awesome! This makes life so much easier for grass root startups and young entrepreneurs.

Much <3

</comment><comment><USER15> Found this in the TC Comments. [http://rapidshare.com/files/137276513/Documents_YCombinator....](http://rapidshare.com/files/137276513/Documents_YCombinator.zip.html)

</comment><comment><USER16> Could you add scribd to it, so people can read them w/o downloading?

</comment><comment><USER17> This is exactly what the startup community needs. I am surprised no one has done it before, actually.

I know several rich post-startup people who would probably be angel investors if the process were more standardized. I bet the number of _potential_ angel investors is 10 times larger than the number who jump through all the hoops to actually do it. With that much more early stage investment to feed on, there could be 10 times as many startups.

</comment><comment><USER18> It'd be great if someone could back this out into a 1 or 2 page term sheet

</comment><comment><USER19> I couldn't download them. Does anybody have them?

</comment><comment><USER20> Not to sound ungrateful (this is actually really awesome, not that I have use for it right now), but why only ".doc"? In the spirit of openness, it'd be great if they were also available in an open format such as the OpenDocument Format.

<comment><USER14> a hacker can't use Google Docs (ie: free) to open a .doc file and copy/paste?

:)

<comment><USER20> While Google Docs is free (as in beer), it is not free as in freedom. Some people will not use software because of that.

I'm not so much a zealot and would consider using Google Docs, if I could be sure my "sensitive" documents were only readable by myself. These documents, in particular, I would think, lend themselves to being a bit more private than your average college paper.

Also, Google Docs supports OpenDocument, at least according to WikiPedia ([http://en.wikipedia.org/wiki/Comparison_of_OpenDocument_soft...](http://en.wikipedia.org/wiki/Comparison_of_OpenDocument_software))

<comment><USER21> "While Google Docs is free (as in beer), it is not free as in freedom. Some people will not use software because of that."

The correct inference to make from that is "and those people will miss out on certain opportunities as a result," not "so everyone else should bend over backward to accomodate their self-imposed restrictions."

<comment><USER20> I think you miss the point of free software. The thing free software people are trying to _avoid_ is restrictions. Lets remind ourselves of the 4 freedoms the Free Software Definition states:

* The freedom to run the program, for any purpose (freedom 0).

* The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.

* The freedom to redistribute copies so you can help your neighbor (freedom 2).

* The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.

<comment><USER21> I'm familiar with the advantages of free software. But if you refuse to use proprietary software, you are, by definition, imposing a restriction on yourself.

I'd also suggest that, when someone makes valuable business documents available to others (a fine example of 'free software'), and you decline to use them because they're in a ubiquitous proprietary format, you are maybe missing the free-software forest for the trees.

<comment><USER20> > and you decline to use them because they're in a ubiquitous proprietary > format, you are maybe missing the free-software forest for the trees.

I didn't decline to use them. I suggested that it would be nice if these documents were in a format that was more open. Perhaps something with a half- life of 10 years.

I didn't mention it before, but I've noticed that in Office for Mac 2008(7? whatever) the default file format is .docx. OOXML to my knowledge is now a standard, so it seems as though Microsoft is _trying_ to play nice with others. However, there's already another standard, OpenDocument.

</comment></comment></comment></comment></comment></comment></comment><comment><USER22> Just thinking about thesedocs coming out o a meeting with wilson sonsini, who quoteda convert debt round of 300-500k to be around $15k in costs. Will have to look closer, but excited to cut tha amount down.

</comment><comment><USER23> Hopefully this will provide more transparency and uniformity to the process and help all concerned get a better deal, especially startups who cannot afford decent lawyers and hence often more vunerable.

</comment><comment><USER24> Just in time for the YC Demo Day tomorrow.

</comment><comment><USER25> The article links to the ycombinator homepage, I see no legal docs there. Am I missing something?

<comment><USER26> You could do a Google search for them, I quickly tried "site:ycombinator.com legal" and came up with the following:

<http://www.ycombinator.com/seriesaa.html>

I'm sure we can patiently wait, they're doing us a huge favour which I for one, am very grateful for :)

<comment><USER25> I agree, didn't intend for it to come off as a complaint, was more curious than anything. Now I'm even more curious though.

<comment><USER26> It's okay - I didn't think it came off as a complaint, I was just showing how I found the relevant page.

I hope the last comment about being grateful didn't come off as arrogant, I just think its fantastic when people release information like this as this is valuable in its own right, but also a good starting point for people trying to get a handle on the startup business.

Top work YC!

</comment></comment></comment></comment><comment><USER27> Great stuff. I wish more legal documents were standardized and in the common domain.

</comment><comment><USER5> Adding corresponding term sheet as part of this document set would be really nice.

</comment><comment><USER28> Where do we send these forms once we fill them out? How do we make it "official"?

<comment><USER20> I believe these documents are useful for getting funding from venture capitalists, not necessarily to incorporate. To make it official you'll need to actually find funding. These documents are helpful in assisting the startup in "securing" this funding from the legal side of things.

</comment></comment><comment><USER29> Hey man, where'd they go? Anyone got a copy they want to share?

</comment><comment><USER30> game. changing.

</comment><comment><USER31> No longer available? Tease.

</comment><comment><USER32> This is great, thanks!

</comment><comment><USER33> OOOOOOOOOOO YESSSSSSSSS</comment>


HN: Here's 100 invites to our closed beta - <AUTHOR>

HN: I bestow you with 100 invites to our closed beta program! =)
*UPDATE: We felt it was a little unfair that people weren't given a chance after 30 minutes of posting this, so we've increased it to 200 invites.  Please keep in mind that we're not trying to focus on growth right now, but user feedback, so if you can't get in, please hang in there until we release this after it's ready.
Would love feedback; we're a newer startup in the midwest trying to open up the world of internet radio.  The API and documentation is in the works.
http://www.onellama.com Invite code: ycnews
Cheers, -The Llama <comment><USER3> Dang, found some great radio stations!

1\. The streaming on some stations is pretty bad - not your fault. But it would be useful if you could classify or somehow mark with an icon - <USER2> that have good streaming and stations that breakup often.

2\. Fyi, there is no music with Chrome, but login, search, etc works.

3\. I thought the "Grab A Station, Get Some Tunes" thingy on the top right were links but nothing happened when I clicked. Make it look more like a tagline and less like links.

4\. Search results look cluttered due to close spacing.

Really like the service - bookmarked it.

</comment><comment><USER4> > _The password field may only contain alpha-numeric characters_.

Why ?!

Also, the site is completely useless if the FlashBlock is installed. Neither does it complain about the lack of Flash support nor does it show any Flash items that could unblocked in a FlashBlock. For this reason clicking on a Play button doesn't yield any audio output and it's absolutely unclear why and how to get it working.

Also, and this is subjective of course, the orange part of the color scheme is pretty unpleasant to look at. Same goes for the greenish part at the bottom, it looks kind of "dirty".

<comment><AUTHOR> Removed the alpha-numeric requirement.

<comment><USER5> Will you fix the flashblock thing?

It might not be a problem to your target audience but (due to general abuse of Flash on the internet) I and many others keep it on all the time.

<comment><USER6> It's actually hard to do that - I ran into the same issue with a site I made. There is no good way to play sound in a browser except via flash.

So I used a hidden flash applet and triggered it via html events. But the flash itself was hidden since it didn't have a UI - it was just for playing sound.

Since it was hidden there was no way to click-active it for flash block people.

Maybe I could have put a message of some kind saying flash wasn't active, but it didn't seem worth the trouble. (In my case sound was nice, but not that critical.)

</comment></comment></comment></comment><comment><USER7> I'm loving this already. Very clean and to the point interface, simple signup process, nice decision in using the genre cloud. I see LOTS of potential here.

Though I do have to wonder if you will have to deal with streaming issues, even though these other radio stations are doing the work.

I do have one question though, the sound quality is actually quite poor, how do you plan to address that? I Can easily see myself finding a station and just letting it run all day if I code, but only if there's better sound.

</comment><comment><USER8> Wow. I really like it. Very intuitive. Where do you get the radio stations from?

I think you should think about combining Artist and Genre search. It took me a few seconds to find genre. Why not just have one search box with two tick boxes underneath it?

Though the tags are kinda good, so I guess if other people find it fine, than its okay..

</comment><comment><USER9> Get rid of the ridiculous requirement of only allowing alpha-numeric characters. I almost turned away at that.

Otherwise I'm loving the clean interface and overall responsiveness.

I would suggest cleaning up the search results as the closely spaced lines of text are a bit daunting.

</comment><comment><USER10> I think the site is very responsive. First impression the UI could use a little bit more work, in terms of displaying content on the bottom half. One thing I am really curious about is how you stream the music so fast. Bu that I mean, there is literally no latency issues from the time i click on a podcast and it starts playing the stream. Great product you have here. More feedback as I use it more :)

<comment><USER11> That's very intriguing to me too. It feels like it's loading up faster than a simple web-page!

I like the design even though the ability to use a smaller version of the page could be interesting (think that you have a specific small page open all day, kind of like the reduced version of iTunes).

Overall, I was very impressed by the responsiveness and the quality was pretty good for the stations I tried.

Good luck! it looks very promising.

</comment></comment><comment><USER12> IamDave I'm one of the founders of the company, and we appreciate your feedback. As a programmer I am keenly aware of the issue you are describing, and e are currently working to provide more options on bit-rate and quality. I would expect this to happen within the next few weeks and if you send an e-mail to me at firstname.lastname@example.com I would be happy to let you know as soon as it happens.

</comment><comment><USER13> Hey Llama,

I've seen you guys before as I used to work for a competitor. Nice to see you moving in this direction.

Unfortunately, the site isn't playing any music for me :(

Are you limited(or limiting) play to just within the US? I tried about 7 different stations, and got nothing.

Nice clean design though.

<comment><USER14> Play is probably per-station. Seems to work fine for me in .au.

</comment></comment><comment><USER15> Love it. Just yesterday I thought about finding an internet radio site, then forgot. You reminded me.

Everythings worked great so far. Only found is a small display issue when playing. Heres a screenie of the issue (the last line of the music description is cut off, above the blue tool bar) [http://www.digitalcarpenter.com.au/uploads/Screenshot- OneLla...](http://www.digitalcarpenter.com.au/uploads/Screenshot-OneLlama.jpg)

Only seems to happen in Firefox 126.96.36.199 on Linux. I tested Firefox 18.104.22.168 on windows and it didn't happen.

</comment><comment><USER16> Basic functionality works really well.

I find it a bit unsatisfying that when I search for an artist, that's not what I hear because the station's likely moved to the next thing. I understand what's happening, but I don't get what I want.

Do you do any clustering yet? The list of results is sort of a "big pile", and after I pick one, I'd like expect to see related/also-would-like stations. Especially if it's not immediately "good".

Also, need to fix the Back button.

</comment><comment><USER17> Under recently played, there are a set of, well, recently played songs. And a big spot where album art would go. Is there some relationship between these two? The image was always blank. Is this "going to be there" functionality? If so, I'd recommend hiding it for now.

</comment><comment><USER17> Don't know if you're still monitoring this, but making me sign up for a new service in order to provide feedback on the site is unacceptable. I'm sure it saved you time not having to write feedback handling code, but I think this is a total loss.

</comment><comment><USER18> Could we get some more invites - 39 minutes after you posted and they're all gone :-(

</comment><comment><USER19> More invites? :)

<comment><AUTHOR> We've opened up a few more slots, although we're not doing this in an effort to market (or use invites as a way to grow), we really want to focus in on user feedback.

If you aren't able to get in, we'll open it up to the public shortly after we feel it's ready.

Thanks again for your feedback, please keep it coming!

</comment></comment><comment><USER20> Or just use "techcrunch". I don't think they've announced there yet...

</comment><comment><USER21> It's not hard to guess some other invite codes

<comment><USER22> example: mashable

</comment></comment><comment><USER23> Arrrrrgh, got here too late.

Any chance I get one? jonas at codeazur.com.br

</comment><comment><USER14> Is there a way to actually search for radio stations by name?

</comment><comment><USER24> The llama made me think of winamp, any connection?

</comment><comment><USER25> Wow. It's like google for radio stations.

</comment><comment><USER26> nice! but it didn't play any sound in Chrome

a cleaner-non-fullscreen UI would be perfect

</comment><comment><USER27> Dude, lame. Already used up. =(

<comment><USER28> Lame indeed, but maybe next round.

<comment><USER29> try "mashable"

</comment></comment></comment><comment><USER30> how is this different from other web radio programs? i actually don't use any and this is pretty intuitive. i imagine most others are similar though. i only use imeem and bittorrent/iphone for music these days.

</comment><comment><USER31> Great Design and Great Product. Hope you make it YC Winter 09.

<comment><USER32> Why not YC Summer 09?

EDIT: I'm stupid, ignore, I thought Winter 09 was a full year from now.

</comment></comment><comment><USER33> Is.. this just a big shoutcast wrapper with a little flash player or something?

</comment><comment><USER33> I can't get a lot of the stations to work either.</comment>


New AI shows even programmers are not safe from automation - <AUTHOR> http://siliconangle.com/blog/2017/02/22/new-ai-shows-even-programmers-not-safe-automation/ <comment><USER2> The article is pretty fluffy, but the paper it links to is interesting: [https://openreview.net/pdf?id=ByldLrqlx](https://openreview.net/pdf?id=ByldLrqlx)</comment>


Speeding up WSL I/O up to 5x faster - <AUTHOR> https://medium.com/@leandrw/speeding-up-wsl-i-o-up-than-5x-fast-saving-a-lot-of-battery-life-cpu-usage-c3537dd03c74 <comment><USER2> I have a shortcut on my desktop that toggles Real Time Protection:

Create a file `toggle-defender-real-time-protection.ps1` in a known location with the following content:

      $preferences = Get-MpPreference
      Set-MpPreference -DisableRealtimeMonitoring (!$preferences.DisableRealtimeMonitoring)

Then create a shortcut for this target:

      %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "toggle-defender-real-time-protection.ps1"

Make it run as Administrator.

(Source of this nice script: [https://superuser.com/a/1287788/25933](https://superuser.com/a/1287788/25933))

Note that Windows somehow turns the protection on after a random amount of time.

</comment><comment><USER3> Antivirus is not very useful. A little common sense goes a lot farther. Whenever I use windows, I disable the AV entirely.

</comment><comment><USER4> Thanks for these tips. Real-time protection seems to be responsible for my laptop pegging itself at 100% CPU for a few minutes every time I wake it up from sleep, I will see if this changes anything.

</comment><comment><USER5> This also helps Visual Studio.

I'd definitely just add exclusions though, rather than disabling it entirely.

<comment><USER6> I was never able to get it work using folder exclusions or application exclusions.

Turning off REALTIME protection is the only thing I am to use to get relief from this problem.

</comment></comment><comment><AUTHOR> Also add any processes you frequently use to the exclusion (like python3.5 for ranger).

</comment><comment><USER7> But why don't we deserve both speed and security, at the same time?

</comment><comment><USER8> TL;DR: disable win defender.

Anyways, this is the first thing I do on a dev machine. Usually I remove any A/V completely, not just disable it. Because top of the line core-i7 machine with all "security" features enabled works no faster than venerable 486dx.</comment>


HealClick: Patient Matcher  - <AUTHOR> http://www.indiegogo.com/projects/healclick-patient-matcher

<comment><USER2> Interesting - something similar might be patientslikeme.com

<comment><USER3> We may sound similar in concept but we focus on a cluster of neuroimmune and autoimmune patients.

Many of our users found Patientslikeme overwhelming to use on a daily basis, so we wanted to design HealClick to be primarily a social platform that would make users want to come back to and track the most important health changes over time, i.e. frequency over quantity.</comment></comment>


Seth's Blog: Off the record - <AUTHOR> http://sethgodin.typepad.com/seths_blog/2008/11/off-the-record.html <comment><USER2> That's very good advice. I've talked to one or two people about projects I'm working on, and it becomes very awkward when two people aren't certain of whether or not to trust the other person.

Then there are awful stories with people like Jason Fortuny, that show just how dreadful violation of trust can be.</comment>


Python 2.x vs. 3.x use survey - <AUTHOR> https://docs.google.com/forms/d/1DqxkNi4GvyTCu54usSdE1DjW29zw1tc52iMeH3z4heg/viewform?c=0&w=1 <comment><AUTHOR> Last year a survey was conducted on python 2 and 3 usage.

It sparkled interesting discussions on HN: [https://news.ycombinator.com/item?id=6990481](https://news.ycombinator.com/item?id=6990481) "Python 2.x vs 3.x use survey" [https://news.ycombinator.com/item?id=7005711](https://news.ycombinator.com/item?id=7005711) " Python 2.x vs. 3.x survey results"

Here is the 2014 edition, slightly updated (from 9 to 11 questions). It should not take you more than 1 minute to fill. I would be pleased if you took that time.

The results will be published around the end of the year.

<comment><USER2> Where will the results be published?

<comment><AUTHOR> On python.org as well as where I published the survey: here, python- firstname.lastname@example.com, comp.lang.python, /r/python and /r/programming

</comment></comment></comment><comment><USER3> I write all of my side projects in Python 3.4. I only write 2.7 because I work on Openstack at my day job. I avoid the use of Python 2 in every situation I can.

Python 3 has better modules built-in; the existing modules have been cleaned up; a cleaned up language (no more xrange, lazy map/filter/reduce, explicit byte-stream encoding); an improved language (sub-generators); optional type annotations; configurable allocators (in Cpython).

I just prefer it to Python 2 these days.

 _edit_ : And all of the upstream effort into making the language better is going into Python 3.

<comment><USER4> As one of those crazy functional programmers who uses python, can you please explain to me what the benefit is in remove xrange, lazy map/filter/reduce, and other functional mainstays in exchange for what is essentially more syntax to do the same?

<comment><USER5> It's the other way around, they are not removed, the default implementations are now lazy. So in python 3 you get an interator:

       >>> map(lambda i:i*i, range(5))
       <map object at 0x010622F0>

and have to explicitly construct a list:

        >>> list(map(lambda i:i*i, range(5)))
        [0, 1, 4, 9, 16]
        >>>

<comment><USER4> Ah, I actually _like_ that!

That is indeed cleaner. Thanks for the explanation.

<comment><USER3> Traversing a binary tree without an explicit stack is also much cleaner thanks to sub-generators.

        if tree.left:
            yield from traverse(tree.left)

        yield tree

        if tree.right:
            yield from traverse(tree.right)

As a trivial example.

</comment></comment></comment></comment></comment><comment><USER6> I was super turned off of Python 3 when it came out and I promptly tried it and ran

open("/dev/urandom").read(20)

and was confronted with

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 2: invalid start byte

If I had realized at the time that this error would be averted with

open("/dev/urandom", "rb").read(20)

I might have felt more charitable and less shocked (although I can see in retrospect that there's quite a good reason for this error, I might have preferred for the default file type to be binary -- presumably something that was debated extensively inside the Python 3 development effort).

<comment><USER7> Your first version was already not correct/portable. When reading binary files on Windows, you _have_ to include the binary mode. Otherwise you'll drop bytes semi-randomly.

This change only made that mistake visible on other systems.

<comment><USER8> There is no /dev/random on windows anyway. Not every piece of code has to be portable.

<comment><USER7> It doesn't have to be, but going for a more correct/portable code (than absolutely necessary minimum) helps avoid such problems. In this case binary file was opened - if the "rb" mode was added anyway, the exception mentioned above wouldn't happen.

Edit: Actually python doesn't even mention windows. It's simply "Add a 'b' to the mode for binary files." (in python 2.7 documentation) According to the docs it should be specified regardless.

</comment></comment></comment></comment><comment><USER9> Let's be honest. The fact that surveys like this are _still_ around 6 long years later has just become boring.

I have moved to Python 3 purely because of asyncio. There is no other reason that I have found Python 3 to be compelling for. When I write Python 3 now, I feel like my favourite language has gone all "serious" on me, like it wanted to grow up, and has lost a lot of its charisma on the way. I actually _liked_ the print operator for example - it's probably the reason I chose python in the first place when I saw

      >>> print "hello world"

for the first time. That's it? So clear and simple!

3.0 has lost some of that. The unicode thing is also just irritating because 99% of the time ascii works very well and is less complicated, thank you very much.

Also, no matter what anybody says, you still bump into libraries that you need that are 2.x only (in my case Bloomberg). It doesn't matter if most libraries are ported if just _one_ library that you need is not ported yet, you're back to 2.x. Imagine you're an average coder who uses say 8 libraries. By the ratio of 15% not yet moved, you're almost certain to have a problem (1 - 0.85 ^ 8 > 70% chance). Anyway I have been able to manage because I have isolated the 2.x dependencies in another system, and I have put in the effort only because I really like asyncio, and it's finally clear to me that Python 2.x has no future. That said, and taking that logic even further, the very fact that this 2v3 issue is still around is irritating, and has been irritating a lot of people for a long time. I am wondering about going the whole way and moving to another language altogether (Golang and/or functionals).

One more thing to point out. If you're beginning in Python, the _vast_ majority of code samples on the internet are 2.x. That's fine if you have any clue about Python as the surface differences are not that large, but it is definitely a pain if you're expecting to copy and paste and have things "just work".

<comment><USER10> I really miss the ease of the print statement and therefore was very happy to discover ipython's automatic parentheses - [http://ipython.org/ipython- doc/dev/interactive/reference.htm...](http://ipython.org/ipython- doc/dev/interactive/reference.html#automatic-parentheses-and-quotes)

Activating this option allows the parser to automatically infer function parentheses, just like in ruby. Though ruby still wins by virtue of its single letter `p` function.

<comment><USER11> The new print function does some nifty stuff, but I find it such an unnecessary breaking change to rip out the good ol' print statement.

In practice, the print statement is almost always much more convenient to use, but more than that, its removal represents to me the futility of the schism-- would it have hurt to let the canonical "hello world" continue to live as is?

</comment></comment></comment><comment><USER12> Meanwhile, the Python 3 Wall of Superpowers is looking really good. 166/200 major watched projects are Python 3-compatible. [https://python3wos.appspot.com](https://python3wos.appspot.com)

<comment><USER13> Python 2 was supposed to be dead at least 2 years ago and still 34/200 major watched projects use it.

<comment><USER14> The google-api-python-client is what bothers me the most. They work on convincing top CS departments to teach CS101 in Python, and as soon as the majority switch it feels like they've kind of abandoned the language. From what I can gather from Github, it looks like there is all of one person working on this part time.

</comment></comment></comment><comment><USER15> Still on 2.x, simply because it's a lot easier to use the generally available system packages than constantly rolling/building your own. 2.x is not missing anything I need, so there's simply little incentive to migrate my code to 3.x until the package support is there.

<comment><USER16> Genuinely curious - which packages are you missing in 3.x?

<comment><USER17> I think falcolas means that python3 is not available as a native package (i.e. apt-get, yum install, etc) on the systems s/he programs for.

</comment></comment></comment><comment><USER18> This reminds me of a Flask mini project I did. I was doing it in Ubuntu (LTS if I'm not mistaken). I picked python3 and ran with it. As I tried to use Python's virtualenv (venv), I went down the rabbit hole of a broken mess that was left in Ubuntu. I just reinstalled Ubuntu this week so I might give it another shot, but every time I try to do something with Python I end up with a broken mess, and that's disheartening

<comment><USER19> AFAIK -mvenv is still kaput in Ubuntu. I just this instead:

        sudo apt-get install python-virtualenv python3
        virtualenv -p/usr/bin/python3 <venv>

Yes, it'd be way cooler if -mvenv wasn't crippled in Ubuntu, but this still works fine.

<comment><USER18> Yea I was doing this until I also ran into a horrible mess later on due to the underlying issue that resulted in a catch 22 (something like pip is broken because venv is broken because pip is broken...). Unfortunately I didn't see [this tweet]([https://twitter.com/danilobellini/status/461653494295179264](https://twitter.com/danilobellini/status/461653494295179264)) at that time, or things might have turned out differently

</comment></comment></comment><comment><USER20> This seems more of an outlet to vent and quantify the frustration of the Python 2 to 3 migration than it is a 2 vs 3 use survey.

I transitioned to 3 over a year ago and haven't looked back. I am happy with how the ecosystem has adapted and the direction Python is taking.

Type annotations, liberal use of and expansion of syntax for generators, language cleanup and additions to the standard library really make it another and better language.

</comment><comment><USER21> Python 2 is already on all my systems (OS X, Centos 5/6/7). Python 3 needs to be deployed.

Since I write a lot of sub 1000 line scripts for system admin tasks, it tends to not be worth forcing a Python 3 dependency just to make some small task easier.

Finally there are still a few really useful libraries that are python2 only (such as pysphere for vmware vSphere) and salt (saltstack) runs under the system python instance (py 2) that most code I write is still python 2.

Most of the code I write I try and write it so it should work on both, however without being tested and due to the nature of fairly quick development and limited testing, its almost certain there will be a few issues with running on Python 3.

Once they can convince Red Hat to replace the system python with python 3 (which will require some major work since I believe yum and a lot of other python code is not compatible), I think you will see a lot faster decline.

</comment><comment><USER22> I mainly use Python to write Robot Framework libraries. RF needs to support Jython, Jython will not support Python 3 in near future, so I'm stuck. There is a Python 3 fork of RF ([https://bitbucket.org/userzimmermann/robotframework- python3](https://bitbucket.org/userzimmermann/robotframework-python3)) which I might use next time I get to start writing RF libraries from scratch.

</comment><comment><USER23> We use a lot of python stuff at work for automation, moving large video projects around, etc. And since on all the OSX machines python2 comes pre- installed, but there's no py3k, it's a lot easier just to stick with that. It also means the scripts work out of the box on Ubuntu, Debian and CentOS - although for some of our older CentOS installs I have to stick w/ 2.6, which is a bit of a pain.

</comment><comment><USER24> Stopped using python in my research. Now I stick with Matlab/Julia.

<comment><USER25> Why? I ask because I switched from using Matlab to using python. I found Matlab was great for getting things done, but it was difficult to maintain/distribute larger projects--much less deal with interfaces to the web, etc. I also found (at the time) that parallelization was easier with python. I haven't experimented with Julia.

</comment></comment><comment><USER26> That's a useless survey. Answers by random people aren't particularly useful. It doesn't reflect how much of a Python code base one is responsible for. Analysis of major code bases written in Python would be more useful.

<comment><USER27> To be pedantic, answers by randomly sampled people would be more useful than this, which is so skewed it's useless.

In either case, it's irrelevant

</comment></comment><comment><USER28> App Engine supports Python 2.7. this was a deal breaker for python 3 usage for me.

<comment><USER29> Google is super slow in supporting Python 3 for anything, their python API client still hasn't been ported. It's the only dependency for one of my old projects that makes it unportable to Python 3

</comment></comment><comment><USER30> The only app I wanted to use that required v3 Python was Beancount, but I couldn't get it to work, because it required v3.3, while Cygwin only has 3.2 and I myself was unable to compile Python v3.3 or later on Cygwin. (It doesn't work as it is, I tried to google and apply patches, got it to compile, but tests failed, so I gave up; no Beancount for me.)

</comment><comment><USER31> I wish Python 3 was never born or Python 2 got murdered when 3 was born. Both of them live at the same time it's the worst thing.

</comment><comment><USER32> We use Python 3 for our current Flask projects with lots of dependencies without much trouble. Granted, we had to fix two libs for compatibility but it wasn't a big deal. It's pretty smooth sailing for us.

</comment><comment><USER33> 2.x since it's widely available on systems. I do DevOps work.

</comment><comment><USER34> If Twisted Matrix isn't on Python 3 then neither am I.

</comment><comment><USER35> Is it just me, or are questions biased towards Python2?

<comment><USER36> Unfortunately, I think they are just based on the reality of the situation. According to the person who is responsible for PyPI, ~5X as many people use 2.6 than 3.X.</comment></comment>


The development of Ubuntu Tweak is stopped. - <AUTHOR> http://blog.ubuntu-tweak.com/2012/10/19/the-development-of-ubuntu-tweak-is-stopped.html

<comment><USER2> The real meaning is lost in translation.

It's one of three things for me.

1) The author feels Ubuntu is becoming the Microsoft of Linux and he will not continue to support it based on ethical reasons.

2) The cost of supporting and maintaining quality free software takes considerable effort and time. You have to be altruistic in every sense of the word to be an open source developer. People expect and sometimes demand you keep pace with every release of Ubuntu and be technical support/troubleshooter for them. All of that for free.

3) He hates Unity and is moving on (like I did). Just kidding, Ubuntu, err I mean Lubuntu is great.

<comment><USER3> "Ubuntu, err I mean Lubuntu is great."

Don't forget Xubuntu ;)

<comment><USER4> I've never really understood this, what's so hard about "apt-get install xfce" and choosing that from the gdm menu instead of Unity? Why is there an entire secondary project for something that used to be a checkbox choice on Debian and Redhat?

<comment><USER5> if you've got an old computer that you're trying to make useful, it's a lot easier (for most users, who can't config the alt-installer) to just download and burn xubuntu.

</comment></comment></comment></comment><comment><USER6> What is (was) the importance of Ubuntu Tweak?

I am asking as someone who does not use Ubuntu and with knowledge of <http://ubuntu-tweak.com/>. On the Mac, there are many tools which appear similar. What is different on computers running Ubuntu?

<comment><USER7> It was the equivalent of PowerTools(/Tweak/XP Toy? possibly had another name) for Windows XP in that it made many Gnome & Compiz tweaks one-click options, which given Ubuntu's easy-to-use focus went down well.

Things like displaying certain icons on the desktop (which I know in Windows used to require a registry setting without a tweak tool), or the contents of your home folder on your desktop.

</comment></comment><comment><USER8> Disaster! Ubuntu Tweak is the first thing I install whenever I set up Ubuntu.

I don't like some aspects of Unity, and this is great tool for tweaking it. Does anyone know of a good alternative?

<comment><USER9> Not using Unity?

<comment><USER8> I quite like Unity once I've tweaked it. The only thing I still don't like is the global menus (a UX abomination), and I can live with that.

<comment><USER10>
      sudo apt-get autoremove appmenu-gtk appmenu-gtk3 appmenu-qt

That works on 12.04; you might need to remove a slightly different set of packages on 12.10 but it's certainly possible to change.

</comment></comment></comment></comment><comment><USER11> What was the reason behind this? "not free anymore"==??

<comment><USER12> It's likely in response to Ubuntu's controversial new "feature" of including Amazon search results in unity search ([http://www.theregister.co.uk/2012/09/24/ubuntu_amazon_sugges...](http://www.theregister.co.uk/2012/09/24/ubuntu_amazon_suggestions/))

<comment><USER13> I'm guessing it may have had more to do with Ubuntu's decision to "develop out of the public eye": [http://techcrunch.com/2012/10/18/canonical-ceo-mark- shuttlew...](http://techcrunch.com/2012/10/18/canonical-ceo-mark-shuttleworth- tires-of-critics-moves-key-ubuntu-developments-out-of-public-eye/)

<comment><USER14> dead response from rlpb:

In a subsequent blog post, Mark Shuttleworth says: """ What I offered to do, yesterday, spontaneously, is to invite members of the community in to the things we are working on as personal projects, before we are ready to share them. This would mean that there was even less of Ubuntu that was NOT shaped and polished by folk other than Canonical – a move that one would think would be well received. This would make Canonical even more transparent. So please disregard the commentary by folk who assumed that the public discussion of Ubuntu development would somehow change. """ <http://www.markshuttleworth.com/archives/1207>

</comment></comment></comment></comment><comment><USER15> Development of free software never stops. It only pauses until someone picks up a fork.

<comment><USER16> Unless no one does, which is very frequently the case.

</comment></comment><comment><USER17> This app made my migration a lot easier back in the day. While it's certainly bad it's not a complete disaster.There are other apps that can replace it's functionality.

Janitor alternative: Bleachbit

Software Sources: Yppa Manager (not exactly one click goodness compared to Ubuntu Tweak but maybe that's better considering I always end up in a dependency hell on Ubuntu one way or another)

Visual Stuff and miscellaneous settings: MyUnity and Unsettings.

These are just some suggestions,my suggestions, and I haven't used any of these since the 12.04 release.If you know better alternatives please reply so everybody can see.

</comment><comment><USER18> Strange. I've been using Ubuntu for over four years as my only OS for work and home but I've never heard of this.

</comment><comment><USER19> its on github! <https://github.com/tualatrix/ubuntu-tweak>

</comment><comment><USER20> I moved my laptop to Mint a while ago, and my Ubuntu desktop uses Cinnamon instead of Unity (and I might move that to Mint once 14 is released)

Elementary is also becoming an option, but I'm really looking forward to Steam and while it should be able to run on Mint I'm not sure it will on Elementary.

</comment><comment><USER21> I don't really like these tools. Developers should be forced to make these options available in default settings.</comment>


75000 Futures - <AUTHOR> http://vvvnt.com/media/75k-futures

<comment><USER2> There's an undercurrent of meaning over at Nanex that says that when these unusual-looking patterns appear, they are because some bad actor is doing something naughty, like manipulating the market.

The reality is that most of these patterns fall into one of the following categories -

(a) Test patterns (e.g. checking that your orders are appearing in the market data) which are normally done at times of very low liquidity.

(b) Software bugs (this is probably the vast majority). This might not be a "bug" as such, but an edge case of an algorithm that nobody has thought much about before. Writing robust order placement algorithms is surprisingly difficult.

(c) Positive feedback loops, where you detect and react to your own orders in the market data.

(d) Unanticipated interactions between two or more algorithms.

Of these, (a) is mostly benign, (b) and (c) can be actively harmful, and (d) can go either way. None of them are generally beneficial.

Real market manipulation doesn't look "weird" like this because people doing it are taking care to make it look like they're not manipulating the market. For example, they might spoof with a large order quite deep in the book (which wouldn't change the best bid and offer at all) or layer orders at multiple levels.

It's actually quite difficult to spot this kind of behaviour in market data, even if you spend your whole day watching algorithms trading.

On the other hand, it's easy to spot unusual-looking activity in categories (a)-(d) above, which is why Nanex is full of that kind of chart.

<comment><USER3> fwiw in many markets (a) is prohibited activity. I would hope that exchanges have some kind of test network that members could use.

</comment></comment><comment><USER4> I would totally buy that book for my coffee table</comment>


Leonard B. Stern, Creator of Mad Libs, Dies at 88 - <AUTHOR> http://www.nytimes.com/2011/06/10/arts/television/leonard-b-stern-creator-of-mad-libs-dies-at-88.html?_r=1

<comment><AUTHOR> "The men realized they had a commodity. But no one would touch it: Mad Libs was too gamelike for book publishers and too booklike for game manufacturers. So in the late 1950s they published it themselves, storing the first printing — 14,000 copies — in the dining room of Mr. Price's Manhattan apartment. He ate standing up for the next several months."</comment>


An Introduction to Geddy - A modular, full-service web framework for Node.js - <AUTHOR> http://howtonode.org/introduction-to-geddy

<comment><USER2> Just checked the author's blog, it _is_ named after Geddy Lee. Just hope that this isn't meant in the "Sinatra" vein, as we're talking about two different leagues of singers here (and hey, I like Rush more than Frank).

Other than that it looks quite interesting, although I'm not a big fan of full-language template systems, cf. PHP. Did anyone ever make a JavaScript StringTemplate?</comment>


Show HN: A native Upspin file browser for macOS - <AUTHOR> https://github.com/jnglco/browser <comment><USER2> I'm sorry but how is this _native_? It's an electron app...

</comment><comment><USER3> For those unfamiliar with Upspin (as I was): "Upspin provides a global name space to name all your files. Given an Upspin name, a file can be shared securely, copied efficiently without "download" and "upload", and accessed from anywhere that has a network connection." [https://upspin.io/doc/overview.md](https://upspin.io/doc/overview.md)</comment>