Let Them Eat Cash - <AUTHOR> http://www.nytimes.com/2014/06/30/opinion/let-them-eat-cash.html <comment><USER2> I don't disagree with the overall article, but I find this question puzzling:

> I haven't spent any time with the homeless in the United States. Maybe I'd > see that the differences are profound. But I ask myself: If homeless people > and drug users in Liberia don't misuse cash, why would we expect the > homeless in New York to waste it?

Some percentage of people are homeless simply because they lack resources. The others are homeless because they have trouble functioning in normal society, either because of mental health issues, severe addictions, disabilities and trauma from war, etc. I would not be surprised if, due to the disparity in the overall wealth of the two places, homeless people in New York skewed much more into the latter group than homeless people in Liberia.

Some statistics: [http://www.washingtonpost.com/wp- dyn/content/article/2010/07...](http://www.washingtonpost.com/wp- dyn/content/article/2010/07/09/AR2010070902357.html).

Note that the vast majority of the homeless are not what we think of as "chronically homeless." But about 5-6% of them are, and that subset accounts for about 60% of the resources spent fighting homelessness. And of that subset, 30-40% have "severe mental illness."

<comment><USER3> The author answers that question with this:

      In 2010, Jim Rankin, a reporter for The Toronto Star, asked
      himself the same question. So he handed out five $50 prepaid
      Visa and MasterCard gift cards to panhandlers. What did they
      buy? Mostly food. Some phone minutes and clothes. A couple
      bought liquor as well.

By and large, people know what's best for themselves. Some will waste it, but most will put the cash to good use.

Waste can't be completely eliminated, and giving the cash to an organization also doesn't eliminate waste.

<comment><USER4> Well...of course. Heroin dealers don't take Visa cards, so you wouldn't see a line item for drugs on a Visa bill. You also wouldn't see that the prepaid card had been exchanged for cash at a discount to someone that actually wanted food.

<comment><USER5> Heroin dealers don't take Visa cards, but liquor stores do.

</comment></comment></comment></comment><comment><USER6> I would argue the "idle poor" meme is actually an artifact of how shitty our current social programs are which often disincentivize work. I grew up on welfare and often saw this dynamic first hand. Saving any reasonable sum of money as a safety net will get you kicked off lots of programs that are hard to get onto for example.

People put money to productive use when productive uses are available and they won't be penalized for long term planning.

<comment><USER7> In my experience, the bottleneck is often lack of stable work rather than people choosing to be on welfare. Everyone is in different situations, though.

</comment></comment><comment><USER8> I saw this article earlier today and I had assumed that the Chen Guangbiao (the Chinese Millionaire) had backed out of the promise (which confused me, he had to have known how much it would have costed to so going in).

The first article never explained that he was blocked by the charity that helped in the first place.

I'm saddened that the charity didn't go as planned. In most cases people know what they need best, rich or poor.

<comment><USER9> In the case of homeless people in the US they often don't know what's best for them. Many are schizophrenic or otherwise mentally ill. Many are veterans. Even if they know they need treatment, who could give it to them? $300 might not be enough for even the first doctor's visit.

<comment><USER8> I'm not 100% confident that those who are mentally ill would have the capacity to attend such an event.

<comment><USER9> Mentally ill means stuff like PTSD, schizophrenia, addiction, bipolar disorder or dementia. Not "mentally retarded" or "vegetables". There's nothing wrong with most of their thought processes.

</comment></comment></comment></comment><comment><USER10> I'm in favor of direct cash giving, I donate to GiveDirectly. I don't know much about homelessness in New York, but in San Francisco a large majority of people who experience homeless will do so in a temporary way. I'm in favor of direct cash giving to them too.

I'm more skeptical of the efficacy of cash for the chronically homeless, who often suffer from debilitating conditions like profound schizophrenia that intuitively one would think would need to be treated first. I say this with compassion, I live at the edge of the tenderloin and have a number of neighbors who are homeless and ill. That said, intuition is one thing and experimental results are another. I think it's an experiment that should be tried, and if a donor wants to do it I'm disappointed in an organization that would get in the way.

</comment><comment><USER11> This American Life had a story about giving cash to Kenyans. They didn't exactly take a position, but talking to the different people involved is interesting.

[http://www.thisamericanlife.org/radio- archives/episode/503/i...](http://www.thisamericanlife.org/radio- archives/episode/503/i-was-just-trying-to-help?act=1)

</comment><comment><USER12> You can't really compare the category of homeless drug users in Liberia with homeless drug users in NYC without adequate controls for the resources available to these people as well what kinds of addiction are prevalent and perhaps certain background characteristics that could influence decision making. Here's a very crude hypothesis to illustrate my point:

In Liberia I can't imagine that there are many soup kitchens or organizations like the NYC Rescue Mission. Thus, when an individual receives cash they will spend it on items such as food and clothing because these are basic neccessities. Perhaps the disutility of not having anything to eat or to wear is greater than the utility gained from using drugs. This also depends on the type of addiction.

Now imagine that you're homeless in NYC. Being homeless your standard of living is relatively poor, however you can still scour the bins for pizza leftovers or go to a place like the NYC Rescue Mission and get a meal. Homeless people might not be adequately dressed to withstand winter, but they do have _something_. So now when you get money, you spend it on your addiction because while life is painful, it's not painful enough to give up drugs.

I haven't read through the 19+ studies implicitly mentioned in the article, but this is definitely something that should be taken into consideration.

</comment><comment><USER13> I gave some small amount of money (100THB / ~$3.50) to a homeless person here in Thailand yesterday. He was so happy he wept.

The jarring thing was that, only when I stopped to interact with him did I discover that, while he appeared physically healthy and of a working age with all limbs intact, he had an extreme speech impediment which was no doubt largely responsible for his homeless predicament.

That was less than 10 hours ago.

Another time, I went to a homeless shelter in London and met an Iranian man with a PhD and better English than most English people. He said he'd become homeless for economic reasons, the government had never helped him to get a foot in the door for another job, and nobody wanted to employ an older man from what they perceived as a funny country. The guy I went with, an older homeless dude I'd been chatting to now and then, used my presence to smuggle spoons out of the place for heroin.

Where I normally live, in China, a good portion of the homeless are on the street due to the lack of mental and other forms of health care.

Cash-in-hand, truth be told, fixes few of these problems... in every case the problems are generally societal and related to an absence of decent health care and government services, and logical drug laws.

</comment><comment><USER14> Related: I know a guy who, after working on reputable micro-credit schemes overseas, tried to replicate the program in Detroit (where he is from).

When he handed out the micro-loans in Detroit (adjusted for local purchasing- power), people just pocketed it and walked without any consideration of paying back the loan. Hopefully, like in the article, they spent it mostly on useful things for themselves, like food or toothpaste.

He had several possible explanations for why they didn't keep with the program. One was cultural differences in entrepreneurship between the poor communities in the developing world vs those in the US.

But a more interesting reason I thought of is that there may not be much room for micro-financeable cottage industries in the US (like raising chickens for egg distribution, etc).

Mass produced (and lower quality) food and other goods are so cheap here that it's not clear how a micro-financed business could compete at the low end of the market like they potentially can overseas in a less developed society.

In fact, I think most cottage industries I've seen exclusively cater to the high end (maca root chocolate truffles made in handmade in Marin county, anyone?)

EDIT: wording

<comment><USER15> From the way you described it, it sounds there weren't any consequences to not paying back. In that case, paying back is a waste of money. Maybe the people overseas paid back because they had been taught to be more obedient to authority than people in Detroit.

<comment><USER16> Perhaps it's not an issue of "more obedient to authority". Instead, at least some microloans overseas succeed because of "solidarity lending" [1], which involves "peer pressure, mutual support and a healthy culture of repayment".

But not here: "Efforts to replicate solidarity lending in developed countries have generally not succeeded."

I think it could work here among the right groups. E.g. in the last century credit unions were very popular. These weren't just formed by employers and unions, but also by various immigrant groups in the big melting pot cities like New York. Those immigrants weren't desirable customers by existing banks, and so they were forced to form their own banks for both deposits and loans. And were quite successful.

What "qroup" did the borrowers in Detroit belong to?

[1] [http://en.wikipedia.org/wiki/Solidarity_lending](http://en.wikipedia.org/wiki/Solidarity_lending)

</comment></comment></comment><comment><USER9> The article ignores that the recipients of Chen's charity are not comparable to those of the handout studies. The latter are a general population in a developing country - in other words most have a family, many have some work, most have a modest home.

The "NYC homeless" on the other hand often are mentally ill, have no ties in the community, no home (duh...) and are usually unemployed, quite a few are or have been addicts.

The idea that these people could use the money for drugs and alcohol is actually a lot more warranted than in the general case.

Homelessness in developed countries is a completely different problem from poverty in developing countries. Still, it's hard to imagine that this charity is doing a better job with the money than they could do for themselves.

<comment><USER5> Did you read the entire article? It explicitly mentions this objection, and points out that in fact they did in fact try cash grants to "men who were homeless or made their living dealing drugs or stealing," many with substance abuse problems. It's not all comparisons between US homeless and developing- world general-population.

</comment></comment><comment><USER17> These are essentially the same arguments that are made in favor of a basic income. It's the free-market solution to welfare. Assume that people are _not_ idiots and know better what they themselves need than a paternalistic bureaucracy.

</comment><comment><USER18> A few things that come to mind:

1\. Giving cash to individuals or targeted groups in need is called cash transfers in the nonprofit sector. More specifically, conditional cash transfers or CCTs and governments spend more than $50 bn a year on this (depending on the definition, this can go up to $400bn a year!)

2\. It would make sense for a lot of nonprofits to NOT EXIST in their current forms and instead be there to identify individuals and give them cash. If philanthropy was treated as a science with the objective of finding a method to maximize impact per dollar, there are good arguments to say that the null should be cash transfers for many cases. It's sad that that's not at all the case, especially for organizations funded by small private donors.

3\. There are very few organizations/nonprofits/NGOs that do cash transfers in a way that you can reasonably know that almost all of your money is going to the poor: GiveDirectly and New Incentives.

GiveDirectly gives unconditional cash transfers (no strings attached) to people in need. New Incentives gives conditional cash transfers (based on fulfilling pre-defined health goals) to poor pregnant women with HIV.

4\. The biggest issue with giving cash to the poor is to make sure that most of it goes to the poor instead of spending on either verifying these transfers, or transferring the cash to the beneficiaries. This may sound easy but since cash is so liquid, it has a tendency of getting "lost" with very little of it actually making it the beneficiary.

Very often people argue that poor people are poor because they don't know how to manage money and that they will do the same with the money you give them. Maybe they will, most likely they won't. They will likely use it in a way that benefits their life the most - to fulfill their greatest needs - which very often is food, shelter, and clothing. Still, if that's your only argument, than it should make sense to give to the very poor in developing countries who have likely not had the chance to escape the rigid cycle of poverty.

\--

If you think this article has merit beyond just being a great read, I would encourage you to donate to organizations doing cash transfers: www.newincentives.org www.givedirectly.com

</comment><comment><USER19> I feel quite uneasy about the idea of telling people not to give money to the homeless. It may or may not be true that you are just enabling their addictions but what about the broader implications of training people to suppress their natural sympathetic and generous instincts and undermining the ability of givers to make their own judgement and for the needful to ask for help.

<comment><USER20> " _I feel quite uneasy about the idea of telling people not to give money to the homeless._ " If that makes you feel uneasy, I'm curious to know how you'll feel about the things this search will show you:

[http://lmgtfy.com/?q=illegal+feed+homeless+people](http://lmgtfy.com/?q=illegal+feed+homeless+people)

</comment></comment><comment><USER21> i wonder what the charity's overhead is, compared to the theoretical "loss" rate to addiction/booze/whatever we want to decree an ineffective use of someone else's money.

<comment><USER22> That sort of thing is easily available for any reputable charity: [http://www.charitynavigator.org/index.cfm?bay=search.summary...](http://www.charitynavigator.org/index.cfm?bay=search.summary&orgid=5015#.U7Mg96YpB2Q)

Looks like administrative costs are about 10% of overhead (fundraising is a net positive, so I wouldn't hold it against them).

<comment><USER17> > fundraising is a net positive, so I wouldn't hold it against them

Disagree. Fundraising is net positive for the financials of an individual organization but not for society. Donors have a finite amount of money to donate to charity so convincing them to give it to you often just means they don't give it to someone else.

And even in the alternative that the donors would have spent the money in the general economy, that has obvious societal benefits as well, e.g. job creation or easier access to capital. It is better to have half as much money going to charities that spend 90% of it on programs than to have twice as much going to charities that only spent half of it on programs, because in the first alternative the other half of the money is at least going to something potentially productive rather than a zero sum competition between charities for donors.

<comment><USER23> > Donors have a finite amount of money to donate to charity so convincing them > to give it to you often just means they don't give it to someone else.

That's not always true. Sometimes a potential donor doesn't give at all, so if you convince them to give, then this is a donation that would not otherwise exist.

</comment></comment></comment></comment><comment><USER24> vice did a short about this

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

</comment><comment><USER25> I love the title

</comment><comment><USER26> The purpose of the fight against poverty is to give the middle class warriors in the fight something to do. Its a jobs program not a welfare program. The welfare of the poorest segment of the population is almost accidentally improved, but that's never the intention. This is tied in with the first priority of a bureaucracy being the perpetuation and expansion of that bureaucracy.

There is a side dish of distraction. You don't want bored masses of poor people wondering why the system picked them to be the bored masses of poor people. Better, cheaper (in the long run) to have them wait in line for 8 hours per day to get some .gov cheese. Why are all our people so poor? Who set us up to fail, and set them up to win? Who cares man, get in line for the cheese with the rest of us, only another two hours in line, I can taste that cheddar already.

<comment><USER27> So in your opinion is the bureaucracy actively oppressing the poor? Or just being intentionally incompetent? Because I'm not sure that you really answer this question "why the system picked them to be the bored masses", either.</comment></comment>


Descent: Underground - <AUTHOR> https://www.kickstarter.com/projects/descendentstudios/descent-underground

<comment><USER2> It doesn't seem to me that any of these guys have anything to do with the original title besides getting the license. Not that necessarily means anything bad for the game, of course.

Trivia: The original Descent was written in assembly language, probably one of the last major PC games not to be written in a high-level language.

<comment><USER3> Parallax eventually released the source for Descent 1 and 2, you know. It was C. (At least the majority of it?)

Edit: I can't access this domain from work, but perhaps somebody else can confirm this. [http://descent2.com/ddn/sources/descent1/](http://descent2.com/ddn/sources/descent1/)

Originally it built with some Borland product, and some folks put a lot of time and effort into porting it to MingW32.

Eventually, it gained SDL support, then OpenGL support... These days, you can apt-get install d1x-rebirth and d2x-rebirth. :)

<comment><USER2> Those links lead to 404s, but it looks like it's all on Github as well: [https://github.com/drguildo/Descent](https://github.com/drguildo/Descent)

Indeed I was wrong that it's all assembler. There is lots of assembler but plenty of C too.

<comment><USER3> Thanks for checking! That repo appears to be the original source release, unaltered. IIRC there are some non-free bits in there that Parallax missed. (They discuss this in the interview in README.TXT.)

Anybody remember DEVIL, the 3rd party Descent Level Editor? :)

Descent was my first exposure to hacking. I'd hex edit save-game files and give myself 255 shield-value.. ;)

</comment></comment></comment></comment><comment><USER4>
      > Descent's frenetic and pulse-pounding action were
      > light-years ahead of its 1995 release date.

That's about 10^16 meters ahead of 1995.

</comment><comment><USER5> What's this? Capture the asteroids? Multiple playable ships? Corporation logos?

This is not Descent. Descent is a dark, gloomy space shooter, that makes you feel miserable, disoriented, lonely and afraid of the damn robots with their not so bad AI.

And then you invite friends to play cooperatively to make it a little less horrifying.

That is Descent.

<comment><USER3> Descent 3 had multiple ships, logos, etc. CTF existed in Descent 2. ...And maybe D1? ... I can't remember! :)

</comment></comment><comment><USER6> I'd prefer a new Descent Freespace. The story line and gameplay in that game were fantastic.

</comment><comment><USER7> Never played the game, never had the computing power as a kid.

Hmmm, I wonder what the completion rate for high cost games on Kickstarter is... (some googling later)... It's near 30% apparently...

[http://gamerant.com/kickstarter-video-game-failure- rate/](http://gamerant.com/kickstarter-video-game-failure-rate/)

The staff seems to have a hearty pedigree, the goals seem attainable, there are some smart statements about limitations. They might just pull it off. Might. I wouldn't bet on it. Why? Just feeling grumpy.

</comment><comment><USER8> Wow - blast from the past, I loved descent 1 and 2. I thought this was going to be a new / digital version of the board game descent though.

Don't know which I would be more excited about.

</comment><comment><USER9> My favorite PC game by far. I'm hoping this happens.

<comment><USER10> Also my favorite PC game by far, but I _really_ hope it doesn't happen... It seems the devs are going for yet another 'monetized'/pay-to-win travesty _à la_ Dungeon Keeper redux, sadly. Thanks but no thanks.

<comment><USER11> Where are you seeing that it's pay-to-win?

From the page: "All copies of Descent: Underground start with the WASP unlocked. Some pledge tiers unlock additional ships. All ships can be unlocked through game play."

As long as you can unlock ships without paying, it seems okay.

</comment></comment></comment><comment><USER12> I remember the bad VR helmets that were around during the first Descent, it's probably a good time to bring it back during a time of Oculus Rift.

</comment><comment><USER13> Descent - made me fail half my exams one year in uni :)

<comment><USER14> Only video game to have made me feel ill - happy times!

</comment></comment><comment><USER15> there better be a cute little guide-bot who shoots flares at bad guys

</comment><comment><USER16> When I search where I live :[http://caniwearshorts.today/?location=Kad%C4%B1k%C3%B6y](http://caniwearshorts.today/?location=Kad%C4%B1k%C3%B6y)

UnicodeEncodeError at /

'ascii' codec can't encode character u'\u0131' in position 107: ordinal not in range(128)

Request Method: GET Request URL: [http://127.0.0.1:8002/?location=Kad%C4%B1k%C3%B6y](http://127.0.0.1:8002/?location=Kad%C4%B1k%C3%B6y) Django Version: 1.7.6 Exception Type: UnicodeEncodeError Exception Value:

'ascii' codec can't encode character u'\u0131' in position 107: ordinal not in range(128)

Exception Location: /usr/lib/python2.7/urllib.py in urlencode, line 1332 Python Executable: /opt/apps/can-i-wear-shorts/env/bin/python Python Version: 2.7.6 Python Path:

['/opt/apps/can-i-wear-shorts', '/opt/apps/can-i-wear-shorts/env/bin', '/opt/apps/can-i-wear-shorts/env/lib/python2.7', '/opt/apps/can-i-wear- shorts/env/lib/python2.7/plat-x86_64-linux-gnu', '/opt/apps/can-i-wear- shorts/env/lib/python2.7/lib-tk', '/opt/apps/can-i-wear- shorts/env/lib/python2.7/lib-old', '/opt/apps/can-i-wear- shorts/env/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/opt/apps/can-i-wear-shorts/env/local/lib/python2.7/site-packages']

Server time: Cum, 20 Mar 2015 17:31:09 +0000

<comment><USER17> Wrong post [https://news.ycombinator.com/item?id=9238237](https://news.ycombinator.com/item?id=9238237)</comment></comment>


Bitcoin chat, where you can chat with a community as well as earn a few coins - <AUTHOR> http://chromaticcreative.net/bitcoin/moobot/flatapp.php# A really great community to chat with a wide variety of channels, very IRC like and the added benefit of earning fractions of bitcoins. We're all friendly here so don't be afraid. <comment><USER2> Those stripes are quite uncomfortable for my eyes. You should consider something more subtle...</comment>


Is Creative Commons an appropriate license for managing content for Open Source? - <AUTHOR> https://twitter.com/Sadache/status/460799420305793024 <comment><USER2> Some CC licenses like CC-BY-SA and CC-BY can be compatible with free software licenses. It's often easier to just license the resources of a program the same as the code, so there are no conflicts.

<comment><AUTHOR> Excuse my ignorance, but can OS licenses be applied to other than code (content, text, images, ... etc) ?

I mean, really ignore the impact of licensing content with OS license, any references?

<comment><USER2> Of course. The very last paragraph on this page explains that these licenses can be used for any kind of data.

[https://gnu.org/licenses/license- recommendations.html](https://gnu.org/licenses/license-recommendations.html)</comment></comment></comment>


Why I have left Samsung - <AUTHOR> http://dream-force.com/post/27437342468/i-left-samsung <comment><USER2> It's not a question of scale, it's a question of management. Companies like Samsung, _others_ and etc are managed by idiots. Pure and simple. Suit wearing, non-technical morons.

Congratulations on your new job, exercise, fresh air and freshly picked berries and vegetables. Sounds pretty decent compared to sitting in front of a screen slaving for knock-off phones with shitty vendored junk.

Seeing the company you work for doing commercials like [http://thenextweb.com/shareables/2013/04/29/a-terrible- idea-...](http://thenextweb.com/shareables/2013/04/29/a-terrible-idea- samsungs-reworks-gangnam-style-to-promote-the-galaxy-s4-at-a-launch-event-in- india/) (even if it was by a third party PR company) is kinda.. weak.

<comment><USER3> Every time (~5/month) I hear the "managers are idiots" rant I start to wonder, how is it possible that all the smart people: 1\. aren't managers. 2\. aren't able to convince the "idiots".

I'm also curious why smart people become idiots when they're promoted.

Come on. Managing is hard and definitely looks different depending on your position. To make it even more "funny" I can tell you that "employees are idiots" is a frequent manager's rant too.

<comment><USER4> >> _Every time (~5/month) I hear the "managers are idiots" rant I start to wonder, how is it possible that all the smart people: 1. aren't managers. 2. aren't able to convince the "idiots"._

I guess you must have worked for completely different companies than I did, because in my experience it's not the smartest people who work their way up into management, just the loudest ones that don't have any specific skill that would make them hard to replace elsewhere.

IMO the smartest people I know at my workplace are the engineers who manage themselves into a position where they can work on interesting projects without getting dicked around by managers distracting from the real work all the time, and make a good living doing it.

<comment><USER5> "Ability" isn't a uniform stat. There's many factors that comprise our competence. Once of them is technical excellence.

Others include sales, politicking (or "managing up"), managing a team, empathy, oratory, etc.

The best technical minds don't necessarily want to become suits (I'm going to avoid using the term "managers" since engineering managers are very different from "suits" imo). Even if they become one, they may not have the negotiation skills or willingness to smooch that is required for a suit to succeed.

> _how is it possible that all the smart people: 1. aren't managers. 2. aren't > able to convince the "idiots"._

For #2, a good counterexample would be, "the best athletes aren't always the best coaches".

<comment><USER3> Your point about different skill-sets (as well as the one below about replacing "smart" with "technically competent") is a great one. These are things missing from my post. Regarding > "the best athletes aren't always the best coaches" i think that's a very good illustration to whole this discussion. If the most talented athlete benefits from the help of a coach. However the critical part comes when the coach makes a mistake. Should athlete just put whole responsibility on his coach? Just lean back and say "my coach is an idiot and all I can do is to rant about it"? I believe it's a mutual responsibility for both sides to address the issues. If the athlete can't properly express his needs/doubts it's something what he should improve because waiting for the coach to "get smarter" may be a recipe for disaster. Of course the same works the other way too. Now if we replace coach/athlete with manager/employee it's clear where so many problems come from.

</comment></comment></comment></comment></comment><comment><USER6> This comes across to me as more of a rant, than a constructive exit description from a company. When hiring new candidates, and doing background checks alarm bells would go off if I saw people whining about their previous jobs in a blog post. Be professional, accept that some jobs are shit, and find a new one. This post will do you no favours in the future.

<comment><USER7> This is exactly what I was going to say. Writing a blog post riddled with grammatical errors (and emoticons!) slagging off your former employer is not a good look as far as future employers are concerned.

<comment><USER8> Are we honestly that concerned with formality in this industry? I'd be more concerned with the contents and less with how formal they are. And what is wrong with using emoteicons in personal blog posts?

I don't necessarily agree with slagging off your former employer but his criticisms are still valid. The only thing that I didn't like was: "First of all I did this because this job was terrible boring for me (fixing code of other people is not especially exciting)." - That's not perhaps the best thing to write since he was a junior and this will make some people think he is lazy and does not want to take on the less fun jobs that we all have to do from time to time.

And like someone pointed out, English is not his first language. I'm sure you just didn't notice that though. :)

<comment><USER7> > And like someone pointed out, English is not his first language.

I didn't register that part, no. In that case his use of English is fine. The emoticons, not so much for a blog post.

I still don't agree that writing this sort of post is professional or will do him any favours.

</comment></comment></comment></comment><comment><USER9> Whining child damages his career prospects with unprofessional rant after just nine months of work.

<comment><USER10> Whining? Where? Or was that an attempt at irony?

Child? I would call it "rather wise for that age". Have you ever worked on a farm, by the way?

Unprofessional? Define "professional", then.

<comment><USER5> I suppose that I could argue that complaining about an incompetent former employer does literally no good for one's future career prospects. It can _only_ hurt you, and that lack of foresight may be considered "unprofessional" by not considering your own best interests.

(some companies won't care about his rant against Samsung, but some other bigcos will. No company will actually give him bonus points for his public complaints, so overall the blog is purely a net negative for his future career transition prospects)

<comment><USER10> He didn't say they're incompetent, to the contrary, just that he didn't like it, and that being directly involved in something that makes more sense to him is more fulfilling to him in the meantime. So yes, he won't be hired by people without reading comprehension who snoop around on blogs, but what makes you think those are particularly productive anyway? And how is this relevant for someone looking to start his own business? And even if that wasn't the case, how are only "bigcos" viable employers, and how can you equate them with "all companies" on top of that?

<comment><USER11> Bigcos aren't the only ones who would be turned off by this post - I do due diligence daily on new employees at a small dev shop, we work startup hours and get dirty when it comes to the work we do (I do mindless crap daily that feels like I should have an intern that does it for me).

The op's post wreaks of entitlement and puts doubt in my mind that he'd be able to sit for 5 hours and setup staging servers, or batch review and comment code so new employees can follow quickly, or do one of the 100 other small, time-consuming, mundane tasks that we all get stuck doing sometimes at ANY size company level.

<comment><USER12> Then he wouldn't be a fit for you company, just as you probably wouldn't be a good employer for him.

It goes both ways. If a person takes a stand like that (basically stating not liking dysopian work environments, bad tools and major bureaucracy), he might make himself not available to such environments, but yet open doors to other ones.

The other thing you forget is that this guy is pretty young and still maturing up. Almost no level headed manager will read too much into it few years down the road.

As a co-worker, I like this type. They are more likely to reject bureaucracies, and seeking efficiency. These types tend to be more motivated on getting things done, and taking joy in their productive work, and not useless work.

Having seen myself how Samsung engineers work (mostly Korean teams), long hours culture, sleeping in their desks (shows you are working hard!), producing buggy code at night, then fixing their own crap in the morning (inefficient tail chasing), I would never work for that company either. *

*(Unless they pay me a 7 figure salary, I have a price after all)

</comment></comment></comment></comment></comment></comment><comment><USER13> What have you been expecting as Junior Developer? Especially in large company, there are lots of smarter people there, you are just starting. Sometimes people need to be a little more humble, than thinking that on start they will be doing new android features right away. I've worked for similar big cos as junior, did not like it also and runned away. But someone has to do the dishes...

<comment><USER14> Any technology company that still uses Active-X for anything should be avoided, no matter what.

<comment><USER13> Believe me there are far worse things in big co than Active-X. You would be surprised how Excel can be abused...

</comment></comment></comment><comment><USER15> I interned at a big telcom and worked at a bank. Amount of crappy software that needs to be used is mindboggling. Amount of money that is spent to license that crapware is even more mind boggling.

There is a real market for these beautiful b2c software products that can make their services store data on the bigco's servers (as opposed to their own - security is a concern) and write decent, mostly .NET interface to communicate with the company dabatabases.

<comment><USER16> _There is a real market for these beautiful b2c software products_

Careful. "Beautiful" software isn't necessarily a large addressable market in B2C...right now. Not saying you're wrong, but bigco's software packages value security, safety, and supportability over beauty, usability, and time-to- build. It's sad but it's true.

<comment><USER17> > bigco's software packages value security, safety, and supportability over > beauty, usability, and time-to-build.

Why does it have to be either/or? I mean you can have secure/safe and supportable software which is beautiful and usable. It eventually helps in the long-run.

<comment><USER16> I agree, hence _"...right now"_ ;)

</comment></comment></comment></comment><comment><USER18> The only reason I'll never work for a "big" company again: Clearcase

If the job involves this tool, I won't even apply.

(Yes, there are some other bad tools as well)

<comment><USER19> My personal hate-passion is Lotus Notes.

<comment><USER20> My personal hate is Crystal Reports.

<comment><USER21> Wow I did not know CR was still around! I used that back when I was doing my BS about 10 years ago. A lot of people used it with Visual Basic.

I remember learning to interface VB with Microsoft's Word libraries in order to create reports in DOC to avoid using Crystal Reports (this mainly just for college projects). I also remember one real-life project (for a restaurant I did during college) where we proposed the client to have DOC reports and he was _amazed_ that it could be done.

OTOH, I ted to think that those things like CR, JIRA, Lotus Notes and others are a necessary evil. The mere fact that they continue existing is because they solve some kind of problem (otherwise people won't use them, right?). I guess the main problem of these platforms is that once they grow so big (trying to accomplish a lot of things) they become difficult to manage or use.

</comment></comment></comment></comment><comment><USER22> _(for example you have to use IE to work because much of their sofware works only as ActiveX controls)_

This is a problem endemic to South Korea. They actually passed legislation in the late 90s mandating the use of ActiveX for security. Now that ActiveX is an orphaned technology, that isn't working out so well for them. They are trapped on an old version of IE.

<comment><USER23> Former colleagues told me that Samsung is also known to put two teams on a task, tell neither that another team is working on said same problem, then whoever succeeds is a rockstar and whoever fails is 'restructured'.

Korean companies aren't the easiest to work for, I should know I also just left a large one, but the Koreans work harder than any other group I know. Just a shame they work harder not smarter because they waste so much time.

<comment><USER22> Yeah. "Militaristic" is the adjective I would choose to describe Korean corporations in general.

</comment></comment></comment><comment><USER24> I love this post. It just screams: Follow your heart.

<comment><AUTHOR> Nice to hear this:)

</comment></comment><comment><USER25> I cannot comment on the inner working of Samsung or a similar corporation of that size. But having grown up on a farm I can very much sympathize with the joy and, can we call it freedom, farming has to offer.

I often wonder if we, who code and spend quite a bit of our lifetime in front of computer displays have distanced ourselves from the nature around us a bit too much from time to time.

</comment><comment><USER26> Hey wsieroci, all the best on your new endeavour. You have trying a lot of stuff and asking a lot of stuff on HN. :)

You will surely do awesome.

<comment><AUTHOR> Thanks :)

</comment></comment><comment><USER27> Warsaw software developers' job market has gotten really interesting since Google opened an engineering center here some umpteen months ago. There is just no reason to stick to crappy jobs at this time.

Edit: OTOH, this is no reason to go with a bang - releasing some pressure is just not worth it.

<comment><USER28> _Warsaw software developers' job market has gotten really interesting since Google opened an engineering center here some umpteen months ago. There is just no reason to stick to crappy jobs at this time._

What makes you think Google is better?

Google pays decently, but the work isn't interesting unless you have social access. Being in an Eastern European satellite office, you're not going to get the machine learning work. You're going to get the stuff that California, Seattle and New York don't want to do.

I'm sure there are Polish companies that offer real work; OP would do better at one of those than in some multinational's branch office. The problem is that most corporations are still pretty colonial and you don't get high- quality work unless you're in the main office.

<comment><USER27> > What makes you think Google is better?

Statements from friends who work there plus knowledge from seminars they sometimes organize with Warsaw University. Example (Polish language warning :-) ): <http://students.mimuw.edu.pl/SR/rok12-13/Google.html>

Short translation of the above link: cluster management, availability management, load balancing. OS-level things, definitely not maintenance of a legacy ticketing system for "real" devs in California.

<comment><USER28> You could be right, but my experience at Google is that even on the projects that seem interesting, the microallocation comes down to rank. For example, on my team of ~15 people there were plenty of individuals doing interesting stuff, but if you were SWE 2-3 you were fucked. Your boss could take advantage of the fact that SWE 3's are pretty much considered to be parasites not worthy of consideration as humans. You'd never get to work on a green field and actually have an opportunity to prove yourself.

The only thing that matters at Google is your rank and your "calibration score". That, and nothing else, determines what projects are available to you. If you're willing to spend 5+ years playing politics and trading favors in order to get promo story you need, then you can get something passably interesting.

<comment><USER27> Not to contradict your experience, I just find it unlikely to translate to this particular office we're talking about. Who knows, maybe I'll find out first hand.

</comment></comment></comment></comment></comment><comment><USER29> so he left corporation because it was, well, a corporation? welcome to the real world =,=

<comment><USER30> Most people don't realize Dilbert isn't an exaggeration until they join the workforce.

<comment><USER26> You are so right!! You do not realize it until it hits you.

When I was in my last job, reading Dilbert almost felt like it was happening to me. Dark sarcasm..

<comment><USER31> I think we can all start a Dilbert style comic to highlight weekly (if not daily) bizarre happenings @ the office.

<comment><USER26> I guess some of us are no longer that (un)lucky. We have already started(up). :)

</comment></comment></comment></comment></comment><comment><USER32> As I know, (from my own sources inside) Samsung Poland is - as for Corporation - nice place to work. There are many, many worse employers here in Poland. Most big players treat polish workforce as second grade (better than those in 3rd world, worse than in "better world"). It`s funny to hear not that someone who spend 9 months in Korean origin corporation don`t know that in Korea ActiveX is some kind of "standard" for webapps (long and painful story, someone with grater knowledge in this topic should write some word about it - is interesting how they tied themselves in closed and problematic ecosystem)

</comment><comment><USER33> I have a question as a user to devs: Do you consider fixing code a bad job, as he did? The Net is filled with complaints about things that require fixing in lots of software that's been around a while. Yet it never seems to get done. Is this more because dev hate to fix old code by someone else -- what in the book world would be termed an editor's function -- or is this the nature of the corporate beast, to just keep moving forward?

<comment><USER21> I am a dev, and I am sure my comment won't be liked here but there it goes:

Nobody likes bug-fixing: not their bugs and of course not other people's bugs. You can see this clearly in open-source software (mainly because the communication channels such as Bugzilla, forums, mailing list are all open).

It is like writing documentation: programmers don't like to do it. However, fixing bugs is worse, because there is really no payoff in doing that: if you create a feature or write a program then you are doing something _new_... whereas when you fix a bunch of bugs, then it mens at the end you get a piece of software which is working _the way it was supposed to work on the first place_... so for any external observer (client, manager, user, etc) there was no value added.

<comment><USER33> >>>so for any external observer (client, manager, user, etc) there was no value added.

Wouldn't it be reflected in a drop-off of calls to Support/CS?

</comment></comment></comment><comment><USER34> A junior developer quits his job to found a tech company? Really? Unless he has other non-mentioned skills he probably made a very bad decision

<comment><USER35> What do you think most silicon valley tech entrepreneurs are? Senior developers with years of experience?

<comment><USER34> Why do you assume that because many people does something it's correct to do it? I think you should reformulate your question like "what do you think most _successful_ silicon valley...".

I don't mean that technical skill is everything in a tech company, but it's a very important part of it.

</comment></comment></comment><comment><USER36> This was 10 months ago. So how has it worked out?

<comment><AUTHOR> I am doing startup, but actually I do not want to describe it here now, maybe I will do it later :)

<comment><USER36> You don't have to describe the new startup, you only have to describe how you organise your life with particular respect to the points you raised in the article.

And what do you miss from your enterprisy days?

<comment><AUTHOR> I work MUCH harder than in Samsung, but this work really matters to me. And what I miss? Hm.. I miss constant stream of salary on my bank account.

</comment></comment></comment></comment><comment><USER37> I'm not very surprised by being forced using IE and all kinds of active X plugins at samsung.

Consider the fact that south korea sold their soul to Microsoft and IE years ago by making it mandatory that all online purcases etc. require ActiveX plugins for IE.

Poor technology choices forced upon the population by governments are inherently bad.

</comment><comment><USER3> Well the grass is always greener on the other side. Did you already have this awkward moment of missing the corporation?

<comment><AUTHOR> Never

<comment><USER3> Congratulations and good luck with keeping it this way then.

<comment><AUTHOR> Thank you

</comment></comment></comment></comment><comment><USER38> i hope OP comes up with a farming related app and enjoys the best of two worlds. [http://www.cbc.ca/news/technology/story/2013/04/29/f-farming...](http://www.cbc.ca/news/technology/story/2013/04/29/f-farming- apps-mobile-technology.html)

</comment><comment><USER39> I love doing technical job. But man, I wish I had a farm like you.

</comment><comment><USER40> this kid is my hero

</comment><comment><USER41> Is this a fucking joke?

Then again, not surprised garbage like this being upvoted on here.

<comment><USER28> English isn't his first language.

The writing is poor (by native speaker standards; again, I think it's safe to chalk that up to not being a native speaker of English) but he's intelligent and way more _honest_ (corporate jobs truly suck, and idiots are far too often in charge) than 99.99% of white-collar workers have the courage to be.</comment></comment>


.live() for Backbone.js apps - <AUTHOR> http://pwmckenna.github.com/backbrace/

<comment><USER2> this is a sweet library</comment>


Something's up with Lehman - Bear Stearns No. 2? - <AUTHOR> http://www.bloomberg.com/apps/news?pid=20601087&sid=aEPLmab2KfHU&refer=home

<comment><AUTHOR> Current rumors being circulated:

1) Sell half of Neuberger Berman to raise capital

2) Merger with another public-traded company

3) Announce death

<comment><USER2> Looks like we'll find out tomorrow what they have in mind: <http://biz.yahoo.com/ap/080909/lehman_brothers.html?.v=19></comment></comment>


Ask HN: What flavor of Linux do you run in the cloud and why? - <AUTHOR>

We have been working with Red Hat (yeah, big enterprise), however I'm inclined to advocate for a switch to Amazon's Linux.  Like to hear others perspective. <comment><USER2> At my day job, we run CentOS 5 on EC2 instead of Amazon Linux because we actually run a hybrid local-node/EC2-cluster and it is easier to verify software builds on a single platform rather than two of them. The distribution we use actually doesn't matter a whole lot, though, as long as it is consistent between what we can install locally and what we can install on EC2. Our choice is actually constrained by what Amazon offers for the node types we primarily use (cc1.4xlarge).

</comment><comment><USER3> I use CentOS on my personal server's largely because I use Red Hat at work, In past four years twice my servers were compromised coz I didn't applied security patches on time. Personally I like Ubuntu and I used it on my laptop for couple years until I switched to Mac, Installing patches, apps and upgrades are very simple on Ubuntu compared to CentOS, if you are a new bie I recommend Ubuntu.

</comment><comment><USER4> Ubuntu, largely because I came to Linux via Ubuntu and understand its idioms. Over time, I've noticed that documentation for most open source projects includes Ubuntu, which helps.

</comment><comment><USER5> I've got a few servers personally that I run, all are either Debian or Ubuntu. That's what I run on my laptop and desktop, so it makes it easier for me to develop locally.

With virtualenv, github, fabric, etc., deploying isn't as much of a challenge as it used to be, but I like to keep it as straightforward as possible.

For the day job, we use RedHat Enterprise, because our target market is enterprise, and that's the most widely accepted Enterprise Linux distro in the enterprise.

I'm not a particularly big fan of RH-based distros, but I vastly prefer RH to Solaris or Windows, so I count my blessings.

<comment><AUTHOR> Agreed, however I've been feeling for a while that Red Hat is becoming the new Solaris. Everything takes twice as long and is a couple revs out of date when compared to other distros.

I've been struggling to find the value in their services to justify this trade off.

<comment><USER5> Without getting into a distro debate, the immediate justification for RHEL to Enterprises is that there's somebody to blame if it doesn't work, and that there's a vendor to call if their generally mediocre onsite staff can't solve a problem.

Compared to Solaris, it's cheaper, package management is much easier, and it has all the Linuxy goodness that corporations _feel_ make them more agile.</comment></comment></comment>


Ask HN: Accounting and Stripe/Paypal - <AUTHOR> I have a small online training platform and I receive payments through Stripe subscriptions and sometime through Paypal. I also have one off payment for on-site training. I would like to make sure everything is ready for my accountant at the end of the financial year. Do you guys can recommend a lightweight solution? Hopefully, something that manages Stripe's refund&dispute (credit card fraud) automatically. <comment><USER2> Why not ask your accountant?

If they haven't dealt with Paypal at this point, it may be time to find another one.</comment>


Ask HN: Can an introvert build a successful tech career/company? - <AUTHOR> A few months ago I left a corporate job and joined a growing startup. My idea was helping shape the startup and in the process gain experience and build a team.
However, being an introvert, made me doubt whether I can make any career progress in startups at all. So far I see that the company is ruled by sales, marketing and investors. You are extrovert, talk better and "make more friends and impress people" you are more successful. You are introvert and mind your own business, you are in trouble.
I appreciate if anyone could share their thoughts and experiences on this. <comment><USER2> _You are introvert and mind your own business, you are in trouble._

That's not really what an introvert is.

I'd recommend reading Susan Cains book "Quiet" for a really deep dive on the psychology of introverts, extroverts and ambiverts, but in a nutshell it's about how you recover from social situations compared to being alone. Introverts need time away from others to reenergise. Extroverts need time among other people to reenergise. Ambiverts are those rare people who get energised by both.

To that end, the answer to your question is really to make sure you block out time to be on your own in order to recover after being in social situations.

If you genuinely don't like social situations that's something else. It could be shyness, anti-socialness or a form of social anxiety. What strategy you use to deal with those things is a bit more complicated and very personal to you.

<comment><AUTHOR> Thanks for the recommendation. I'll check it out. According to that definition I still fall in the introvert category.

> If you genuinely don't like social situations that's something else.

I enjoy social situations. I don't seek approval and don't try to impress people however. My idea was pushing forward relying on technical excellence but it appears to be inadequate.

</comment></comment><comment><USER3> I would recommend you to check out the Startups for the rest of us podcast with Rob Walling - an introvert and successful serial entrepreneur who founded Drip, Microconf, Tinyseed and wrote the book Start small, stay small. It can be done. The world needs introverts!</comment>


Net is a single point labeled G connected to 10 billion destination pages. - <AUTHOR> http://www.skrenta.com/2007/01/winnertakeall_google_and_the_t.html <comment><USER2> I find that I use google less than a couple of years ago. I think it is because the quality of destination sites has gone up, so I go directly to a handful of sites most of the time (admittedly gmail is one, but wikipedia, techmeme, nytimes, here, and so on). It's not that there's anything wrong with google, I just find myself searching less.

</comment><comment> cypress-hill yahoo could never surrender all ads to google - the govt would never allow a cartel to control over 90% of web ads

most advertisers also are not interested in an ad cartel, which is why many continue to spend on yahoo and other ad networks</comment>


AltStock: The best alternatives to the stock iPhone apps - <AUTHOR> http://altstock.co

<comment><USER2> Honest question, does this site not just drive home the fact that you can't change default apps on iOS? That is the number one thing I miss from my old android phone.

</comment><comment><AUTHOR> Shameless self promotion, I know, but I put a lot of work into this and wanted to show it off. Enjoy!</comment>


Ask HN: Mandatory Code Reviews for your growing company - <AUTHOR>

1) How do you know when it's time to switch to mandatory code reviews?<p>2) How do you persuade people to switch? <comment><USER2> It was pretty easy for us. We just use Jira/Crucible. I don't think I've ever had to convince anyone they're necessary.</comment>


Ask HN: What are the greatest tips to find the purpose of the life? - <AUTHOR> <comment><USER2> The search for a purpose is the search for a meaning. But meaning is something that exists only inside human mind. There are no meaning outside of the mind. Only mind can make meanings and project them into the reality. And unskilled eye can be fooled by such a projection and think about a real object and the meaning of that object like it not two distinct things, but one unified thing. I personally was fooled like this some time ago.

So the tip is: to find purpose of life watch not the life itself, but look at youself, watching the life.

</comment><comment><USER3> This book helped me achieve the balance, though I keep going off kilter now and then, this one brings me back on track :-). YMMV.

[https://www.amazon.com/gospel-selfless-action-according- Gand...](https://www.amazon.com/gospel-selfless-action-according- Gandhi/dp/8172291264)

I guess you got to keep looking, keep trying intuitively based on what you know yourself, create a feedback loop from your attempts and when you find your purpose, you will know. Good luck!

</comment><comment><USER4> Don't automatically be like _" X sucks therefore I now subscribe the polar opposite of X."_

The extremes are but 2 points on a huge spectrum.

However, the extremes are noteworthy points, and half-measures can be bad. So don't shy away from the extremes either.

tl;dr: Don't kneejerk. Everything is nuanced. But also don't be too afraid to commit and ending up believing in nothing.

</comment><comment><USER5> try this one

[https://www.farnamstreetblog.com/2014/05/hunter-s- thompson-t...](https://www.farnamstreetblog.com/2014/05/hunter-s-thompson-to- hume-logan/)</comment>


A Deep Introduction to JIT Compilers: JITs are not very Just-in-time - <AUTHOR> https://carolchen.me/blog/jits-intro/ <comment><USER2> Very nice. I just looked at the author's resume.[a] It appears she is still in, or only very recently graduated from, _high school_. Is that right? Impressive!

[a] [https://carolchen.me/](https://carolchen.me/)

<comment><USER3> Yep, class of 2019, jit to actually have a physical prom and graduation

<comment><USER4> How does a high school kid get so interested in (and manages to pull off a great article about) stuff like Intermediate Representations, compiler optimisation techniques, JITs as different as those of Julia and GraalVM, that would easily scare even a seasoned programmer with years of experience and a CompSci degree under the belt?

<comment><USER5> You don't know many nerds, do you?

EDIT: When I was in high school, msdos and windows viruses were all the rage: self-modifying polymorphic code that injected itself into the RAM of other processes, having no identical strings longer than a few bytes between each instance of the virus, etc. Way useless than jit stuff, but a comparable level of "depth", and 100% assembly code.

</comment></comment></comment></comment><comment><USER3> It's also in the post, but [https://carolchen.me/blog/jits- impls/](https://carolchen.me/blog/jits-impls/) has more advanced concepts

</comment><comment><USER6> Entirely off-topic, but the author's name when written without a space (i.e. Carolchen, as it is in the URL) just happens to be the diminutive of Carol in German. Except that Carol is not a very common name here at all, so rare in fact that I've not once met a German Carol. This had me very confused for a moment.

</comment><comment><USER7> This article is really nice for not making things harder than they needed to be. Trace then substitute the trace - no magic.

It seems like a big part of all these strategies is making sure the checks for the optimizations (checking if they're possible, checking if they're done) don't take more time than the optimizations save.

Or could there be a way to alter the execution graph so that once you add in the optimization, you never have to check if it's there?

<comment><USER8> > It seems like a big part of all these strategies is making sure the checks > for the optimizations (checking if they're possible, checking if they're > done) don't take more time than the optimizations save.

You can't really check that, you can only hope your heuristics are right. You don't know in advance how many times a method will be executed and thus how much optimization budget is worth it. If you boot up a java application that runs for months and handles tons of traffic then you could theoretically justify many minutes of CPU cycles for optimization.

And that's not all that makes JITs complex. Some also do speculative optimizations that require guards and deoptimization points so they can fallback and recompile if those assumptions are violated. If the language has a garbage collector then the GC and JITs have to cooperate for ideal performance.

</comment></comment><comment><USER9> I just realized that the link color changes every time I load the page–I clicked on the article again and it was different from the last time I looked at it!

<comment><USER3> picking colours is really hard so I decided not to

<comment><USER9> And now it is all inverted because I have Dark Mode on, even the images! Without even getting to the content the site is a joy :)

</comment></comment></comment><comment><USER10> Interesting articles, my only remark is not talking about JIT caches and PGO across process executions, but I guess it might come on a later post.

<comment><USER3> [https://carolchen.me/blog/jits-intro/#pogo](https://carolchen.me/blog/jits- intro/#pogo)

It's there though not very in depth c:

<comment><USER10> This is not what I am talking about, JIT caches with PGO data work in a different way.

[https://openjdk.java.net/jeps/310](https://openjdk.java.net/jeps/310)

[https://www.eclipse.org/openj9/docs/xcodecachetotal/](https://www.eclipse.org/openj9/docs/xcodecachetotal/)

[https://docs.oracle.com/cd/E13188_01/jrockit/docs142/usergui...](https://docs.oracle.com/cd/E13188_01/jrockit/docs142/userguide/codecach.html)

[https://source.android.com/devices/tech/dalvik/jit- compiler#...](https://source.android.com/devices/tech/dalvik/jit- compiler#architectural-overview)

<comment><USER3> I don't think I'm familiar with this (I may have come across it but didn't identify it by name when I worked with Graal?), could you provide a link? :o Thanks!

<comment><USER10> I have provided links above, there are also a couple of Java Language Summit, Code/Java ONE and Google IO talks about them, but I would need to search for them. Can provide them later.

<comment><USER3> Thanks, I know of this stuff but I don't think I would've been qualified to form an explanation/overview of them. It would be nice to have these in a post though!

</comment></comment></comment></comment></comment></comment><comment><USER11> Is anyone aware of any efforts to get clang/rustc to use lli to speed up iteration times? My thought is you lower everything to llvm bytecode first but skip all the codegen/linking. Then you can codegen or run interpreted. Might help make debug builds much faster to get to execution. Probably could trivially parallelize the background compilation & auto-build in the background on every file change to get the best of all worlds (most code gen is ready, the remainder is executable & will get compiled as needed). If you can do it with live substitution (which I think is what lli does) then you'd progressively get a faster program.

<comment><USER9> How much time actually goes into instruction selection and register allocation? I thought a lot of the time went into optimization passes at the IR level.

</comment></comment><comment><USER12> This is a nit but looks like she says pyc files aren't around in python3 anymore -- they're still there just in the __pycache__ directory (as of 3.2)

<comment><USER9> I know Python does the dunders and all, but couldn't they have at least stuck a dot in front of it if they wanted to move it out of the way :(

<comment><USER13> That won't work on other operating systems anyway.

<comment><USER14> Those files are typically generated on each platform anyway, so just have the dot on platforms that allow it and not on platforms that don't.

</comment></comment></comment></comment><comment><USER15> There is also an interesting presentation about how Azul implemented their JIT called Falcon, that is fully based on LLVM. [https://www.youtube.com/watch?v=Uqch1rjPls8](https://www.youtube.com/watch?v=Uqch1rjPls8) Generally LLVM is a nice idea that allows vendors to reuse major components.

<comment><USER9> The one problem with LLVM is that it's not very well suited to JIT compilers, a major component of which is its slowness.

<comment><USER16> That's not really accurate. It has strict requirements about stack traversal required to appropriately trace memory roots. This is incidental to JIT vs AOT.

<comment><USER9> Did you reply to the wrong comment?

<comment><USER16> Sorry, what did you read?

<comment><USER9> This comment: [https://news.ycombinator.com/item?id=23744360](https://news.ycombinator.com/item?id=23744360), where you're talking about JIT vs AOT in response to my LLVM one. I couldn't really understand how it followed.

</comment></comment></comment></comment></comment></comment><comment><USER17> Tl;dr: JIT is a compiler that optimuzes certain parts of code after interpreter see it as hot (e.g. was executed many time). Thank to runtime information it can occasionally exceed performance of statically compiled language.

<comment><USER18> > Thank to runtime information it can occasionally exceed performance of > statically compiled language.

Interestingly in 30 years I have not once heard of a case where this theoretical benefit has manifested as a clear advantage in any real world application when looking at the system as a whole... amdahls law and all that.

You can always hand tune the 1-10% hotspots for reasonable cost most of the time, and even static tools can do PGO which generally gets you where JIT would anyway.

<comment><AUTHOR> > in 30 years I have not once heard of a case where this theoretical benefit > has manifested as a clear advantage in any real world application

Today you make make a very direct empirical comparison to see this - using the Graal compiler. This lets you compile exactly the same Java code either ahead- of-time or just-in-time, but using the same compiler logic except for the runtime information available when running just-in-time. The just-in-time code is (ignoring startup and warmup time) in my experience _always_ faster, due to the extra runtime information.

<comment><USER19> Isn't this because Java is designed for JIT compilation, or at least not designed (with the appropriate tweaking knobs) for AOT compilation?

Languages built with AOT compilation in mind (e.g. Rust or Nim) usually give you lots of ways make choices at compile time and give hints to the AOT compiler that the JIT compiler would instead try to infer at runtime in Java.

But by infering these things at runtime intead, maybe the JIT approach makes it easier to get fast code in those cases where you (as an application developer) don't want to put a lot of effort into optimization?

<comment><USER10> Java has had commercial implementations of AOT compilers since the early 2000.

Most compilers for embedded systems have always offered that option, and in what concerns enterprise JVMs, JIT compilers have had the capability to cache JIT code and PGO data between runs.

Both options that have come now to OpenJDK, OpenJ9 and Graal.

Android also learned the hard way that changing to pure AOT did not achieve the performance improvements that they expected, while compilation on device achieved C++ compile times when it was time to update all apps, hence the multi-tier interpreter/JIT/AOT with PGO introduced in Android 7.

The main problem of AOT compilation with PGO, is that first of all one needs a good dataset so that the optimizations are in line with the actual behaviour in production, still doesn't work across dynamic libraries so optimizations like devirtualization are not possible, and most of the time the tooling is quite cumbersome to use.

<comment><USER20> Pretty sure assymetrix was done in the late 90s. 1998 or so, they started out doing educational software and pivoted to doing ahead of time compilation for some weird reason. Here is a link to when it failed in 1999: [https://www.cbronline.com/news/sepercede_exits_java_sells_to...](https://www.cbronline.com/news/sepercede_exits_java_sells_to_instantiations/)

</comment></comment></comment></comment></comment></comment><comment><USER21> First of all! Nice post :) Just some random things: The first paragraph needs some commas, I think. In the first code block you probably want to have `print(variable_x)`</comment>


Mainframes connected to the Internet - <AUTHOR> http://mainframesproject.tumblr.com/ <comment><USER2> Random mainframe anecdote: I remember a client in the early 2000s who had a non-IBM mainframe that when originally implemented and designed predated the wide availability of Ethernet and TCP/IP. Everyone knew it was a piece of junk by the time I got involved, but their whole manufacturing system ran on it.

In order to bring it up to some semblance of modernity and allow it to print to their shop printers, which were IP-driven, they had to get a third-party to procure and install (or build?) an ethernet interface for the machine, and fired up the TCP/IP stack. It kept crashing when they put it on the network, until they finally figured out that the issue was that the TCP/IP stack didn't understand multicast packets, and so whenever a stray multicast packet hit the interface, the whole thing threw up its hands and gave up.

The solution was to keep the mainframe on a private network segment behind a firewall, not for security's sake, but because it was the only way to insure no multicast packets would hit it and halt production in three different factories

<comment><USER3> Wow.

I managed to crash the TCP/IP stack on z/OS during my training with a runaway Perl script that inadvertently had turned into a fork bomb. Luckily, it was just a testing/development system, and SNA kept working, so the only person to notice was the monitoring guy. And that system was IPL'ed on a regular basis (with the next one scheduled one or two days from that incident), so it was no biggie. I was really freaking out, though, until the others assured me that it was not a problem - "This is exactly why we don't let trainees on the production systems", as my supervisor put it.

Since that day, I only use fork() very, very cautiously. :)

</comment></comment><comment><AUTHOR> Interesting article / post about how to scan for mainframes:

[https://isc.sans.edu/forums/diary/The+80s+called+They+Want+T...](https://isc.sans.edu/forums/diary/The+80s+called+They+Want+Their+Mainframe+Back/14869/)

</comment><comment><USER4> For the security researchers out there, mainframes are really under- researched. There just aren't many people that have the expertise in the platform required for security research. And most of the people who do have expertise in the platform are often oblivious to technologies outside of the mainframe. (If you've ever dealt with mainframe people, you might know what I am talking about.) It's unfortunate, but too often true. Our best mainframe guy is brilliant. I've never met anyone more technically skilled in his platform. But ask him a basic Windows or a Linux question? Forget it.

With today's complex stack of multiple platforms in most enterprises, a good security researcher, IMHO, should be fluent with both worlds. Mainframes are where some of our most critical data is stored. When you pull up your account balance through your bank's website, there's a good chance that value was read off a mainframe.

Mainframers are old-school. They don't believe in public disclosure or open security models or public audits. If you go through the DEFCON and BlackHat archives, there's not much mainframe research out there. There's just a small community of mainframers on the Internet, but it's a significant part of the world's infrastructure. The mainframe world is a crazy alternate reality. (I know, because it's my day job.)

Phillip Young, the guy who owns this Tumblr project, has made some waves in this community. His talks are a great place to start. Here's a few resources to get you started:

[0]: [http://mainframed767.tumblr.com/](http://mainframed767.tumblr.com/)

[1]: [http://bigendiansmalls.tumblr.com/](http://bigendiansmalls.tumblr.com/)

[2]: [https://media.blackhat.com/us-13/US-13-Young-Mainframes- The-...](https://media.blackhat.com/us-13/US-13-Young-Mainframes-The-Past- Will-Come-Back-to-Haunt-You-Slides.pdf)

[3]: [http://www.slideshare.net/bigendiansmalls/security- necromanc...](http://www.slideshare.net/bigendiansmalls/security-necromancy- publish)

[4]: [https://defcon.org/images/defcon-22/dc-22-presentations/Youn...](https://defcon.org/images/defcon-22/dc-22-presentations/Young/DEFCON-22-Philip- Young-From-root-to-SPECIAL-Hacking-IBM-Mainframes-Updated.pdf)

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

[6]: [https://www.youtube.com/watch?v=5Ra4Ehmifh4](https://www.youtube.com/watch?v=5Ra4Ehmifh4)

Also, IBM.com has a wealth of documentation. (They have terrible SEO though.) Checkout the z/OS RedBooks and manauls there.

<comment><USER5> The difficulty I see in trying to get involved with mainframes is that I can't physically tinker with one to get those "aha" moments.

<comment><USER4> You can blame IBM for that. The fact that they haven't made it easy for security researchers (or anyone really) to tinker hurts the platform.

Up until a few years ago, there was no legal way to run z/OS on hardware that wasn't a million dollar hunk of iron from IBM. IBM has since made a product called Rational Developer and Test Suite [0] available. With it, you get an emulator and a licensed copy of z/OS that you can run on x86. Except it's $9,500 / year.

The only saving grace is an open source project called Hercules [1] which emulates the z/Architecture. If you don't mind breaking some copyright laws, there is no technical reason why you can't download a copy of z/OS and run it under Hercules. But good luck finding the latest version. Want to test your research against the latest maintenance levels? Good luck.

[0]: [http://www-03.ibm.com/software/products/en/ratideveandtesten...](http://www-03.ibm.com/software/products/en/ratideveandtestenviforsystz)

[1]: [http://www.hercules-390.eu/](http://www.hercules-390.eu/)

[2]: [http://mainframed767.tumblr.com/post/40836059586/instruction...](http://mainframed767.tumblr.com/post/40836059586/instructions- to-installing-zos-in-hercules)

</comment></comment></comment><comment><USER6> On a related note, there are an alarmingly large number of hosts listening on port 23 (unencrypted telnet) on the internet: [https://www.shodan.io/search?query=port%3A23](https://www.shodan.io/search?query=port%3A23)

Most of them seem to be interfaces to network switches.

</comment><comment><USER7> How do I connect to one of these on linux or OSX?

<comment><USER8>
      $ telnet 22.214.171.124 23

<comment><USER7> thanks I was trying nc

</comment></comment></comment><comment><USER9> BTW, if someone wants to professionally connect Mainframes and Internet: [http://www.softwareag.com/corporate/products/adabas_natural/...](http://www.softwareag.com/corporate/products/adabas_natural/appl_mod/products/applinx/overview/default.asp)

</comment><comment><USER10> No Gibsons?

<comment><USER11> I see what you did there.</comment></comment>


Are you still using an RSS reader? - <AUTHOR> https://www.theverge.com/2017/12/16/16780356/rss-reader-feedly-news-sources-poll <comment><USER2> I am the operator of LA Tech News and we have yet to install and RSS feed for others to utilize. What are the pros and cons of doing so? [https://latechnews.org/](https://latechnews.org/)</comment>


Inside the Revolution at Etsy - <AUTHOR> https://www.nytimes.com/2017/11/25/business/etsy-josh-silverman.html?hp&action=click&pgtype=Homepage&clickSource=story-heading&module=second-column-region&region=top-news&WT.nav=top-news&_r=0 <comment><USER2> On the front page yesterday:

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


Microsoft's Ajax CDN tumbles worldwide - <AUTHOR> http://www.zdnet.com/microsofts-ajax-cdn-tumbles-worldwide-7000009333/

<comment><USER2> If anyone still needs convincing these CDN'd JS lib are a bad design pattern, check out this presentation from 2012's Black Hat (and also DEFCON) on MITM attacks on them that persist after the user has been exposed (due to indefinite caching of poisoned JS files).

[http://media.blackhat.com/bh- us-12/Briefings/Alonso/BH_US_12...](http://media.blackhat.com/bh- us-12/Briefings/Alonso/BH_US_12_Alonso_Owning_Bad_Guys_WP.pdf), or <https://www.youtube.com/watch?v=ZCNZJ_7f0Hk> (quite entertaining presentation)

 _the tl:dr is users browse a short time via an anonymous proxy (c'mon, many do), the proxy MITM's these CDN's JS lib requests and serves up poisoned versions that work but also check a mothership server to load in further poisoned + persistently cached JS files for popular websites (banking, facebook, etc). User then ends their proxy session but future visits (even direct, not via proxy) to sites loads in the now cached poisoned JS libs. Phishing, credential theft, clipboard theft, etc is all now possible_

<comment><USER3> How often does _your average user_ browse via an anonymous proxy? I doubt most would even know what the hell you are talking about. I can understand for your more clued up or power user, but you give the average user too much credit.

<comment><USER4> Every time they use a public wifi hotspot. Any time you use a network you don't control and where you have no reason to trust the admin, you may as well be using a proxy.

The requirement to trust the admin isn't about the admin MITMing you, but rather trusting their competency in preventing other users MITMing you. Of course the admin could be bad as well.

<comment><USER3> Fair point. But if they have gone to this extent, they could just as easily inject some code into the HTML no?

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

<comment><USER5> They're talking about what happens when you load an infected jquery.min.js from cache when you get back to your home wifi network.

</comment></comment></comment></comment></comment><comment><USER5> This is why I use yepnope [0].

"yepnope.js has the capability to do resource fallbacks and still download dependent scripts in parallel with the first."

[0] <http://yepnopejs.com/>

</comment><comment><USER6> Well I've added CDN failure contingency to my todo list for the site I'm currently running. The lack of communication from Microsoft is annoying, even a tweet acknowledging the issue would be something.

</comment><comment><USER7> It looks like the CDN still works from Australia but is down almost everywhere else

</comment><comment><USER8> More generally, I have never understood why people use these third party CDNs for important sites. Don't get me wrong, I understand the bullet points that the Microsoft's and Google's trot out: User more likely to have it cached, more simultaneously open connections since it's a different domain, perhaps less latency etc.

But the simple fact of the matter is if the CDN goes down, your site essentially goes down. Everything else might be up and working great, but how well will the UI function if the user can't pull in jQuery? I just don't see any value in taking a dependency on these third parties for hosting JS libs and the like.

<comment><USER9> CDN, with local fallback:

        <script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.x.x.min.js" type="text/javascript"></script>
        <script type="text/javascript">
        window.jQuery || document.write(unescape('%3Cscript src="/scripts/jquery-1.x.x.min.js"%3E%3C/script%3E'))
        </script>

<comment><USER10> If you do overall page loading times, I wonder what sort of averages you will see comparing this to hosting it locally for all requests.

When hosted locally it would result in 1 less DNS lookup, as well it could reuse an open HTTP connection to fetch the resource.

<comment><USER9> Correct on both counts. One con of hosting multiple dependencies locally could be that parallelization of downloads is reduced. There's always a flipside and each situation warrants analysis!

So many of these discussion points are discussed at <https://developers.google.com/speed/docs/best-practices/rtt></comment></comment></comment></comment>


Is JavaScript a Dysfunctional Programming Language? - berserker-one https://medium.com/javascript-non-grata/javascript-is-a-dysfunctional-programming-language-a1f4866e186f <comment><AUTHOR> Excellent piece! The author makes a number of strong points about software engineering. I looked at some of his other articles at JavaScript Non Grata, and he consistently recommends using transpiled languages instead of JS, at least on the front end. On the back end, there are many solid alternatives to JS. (Unless you really, really want to use Node.js.)

</comment><comment><USER2> Yet another JavaScript-bashing rant. Comedic lines include:

"a scientific study has shown JavaScript to be one of the least productive languages in IT"

"There may well be some large applications written in JavaScript (I don't actually know)"

<comment><USER2> I came back to this article again, and actually, I'm now reconsidering my initial reaction. While it does contain a few abrasive or seemingly unsubstantiated statements, the article does make valid points about the suitability of JavaScript for "serious software engineering".

There's a recent article describing how a company was basically forced to migrate from Node.js to Go, due to the architectural limitations of the former: The Way of the Gopher ([https://medium.com/@theflapjack103/the-way-of- the-gopher-669...](https://medium.com/@theflapjack103/the-way-of-the- gopher-6693db15ae1f)). This was a convincing real-world example of how a JavaScript backend is not scaleable in some cases, with concrete data to back it up.</comment></comment>


A Sneak Peek Comparison of x264, x265, and libvpx - <AUTHOR> http://techblog.netflix.com/2016/08/a-large-scale-comparison-of-x264-x265.html <comment><USER2> I'm sad they skipped out on a 4k resolution test. I'd really like to see how they compare at those resolutions or higher, since really x265 isn't really going to be ubiquitous in hardware for another couple years. At that time 4k should (hopefully) be the standard, or at the very least will be a common use case.

<comment><USER3> >We will also follow-up with a more detailed tech blog post and extend the results to include 4K encodes.

<comment><USER2> Ah excellent. Saw the presentation info stuff and stopped reading. Glad to see it - plenty of debates among friends about the actual performance of h265 at 4k, so I'm excited that they're doing it.

</comment></comment></comment><comment><USER4> @dang: Can you update the second x264 to x265 in the title?

\---

The only bad thing I've ever heard about x265 is that it needs beefier hardware compared to x264. Otherwise it's better in every regard. Is this true?

<comment><USER5> The worst thing about H.265 is the patent licensing situation. There are two separate patent pools and you need a license from both:

1\. [http://www.streamingmedia.com/Articles/Editorial/Featured- Ar...](http://www.streamingmedia.com/Articles/Editorial/Featured-Articles/New- HEVC-Patent-Pool-What-Are-the-Implications-103042.aspx)

2\. [http://www.mpegla.com/main/programs/HEVC/Pages/Intro.aspx](http://www.mpegla.com/main/programs/HEVC/Pages/Intro.aspx)

3\. [https://www.hevcadvance.com/](https://www.hevcadvance.com/)

It's much simpler and easier to use formats which are licensed under royalty- free terms, which is what VP9 offers now and what AV1 will also offer in future:

1\. [https://en.wikipedia.org/wiki/VP9](https://en.wikipedia.org/wiki/VP9)

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

To me the important result from Netflix's test is that VP9 is better than H.264, almost as good as H.265, and absent the patent licensing problems. I think the simpler licensing makes VP9 the better choice today and AV1 the best choice in the future.

<comment><USER2> Realistically it will probably come down to what's implemented in hardware. Youtube's 4k video in chrome is really a terrible experience when you don't have hardware acceleration for vp8. It pegs your CPU at nearly 100% and god help you if you're viewing a 4k 60fps video.

Luckily it looks like most hardware manufacturers are getting on board with VP9 these days, but the current support for encoding at least is abysmal: [https://en.wikipedia.org/wiki/VP9#Hardware_encoding.2Fdecodi...](https://en.wikipedia.org/wiki/VP9#Hardware_encoding.2Fdecoding_support)

<comment><USER6> What makes you think that 4k 60fps is even possible without hardware acceleration? That's 12.7 Gbps output bandwidth (assuming true color), barely possible even using just memcpy, let alone decoding.

<comment><USER7> Interesting point. However, just to be pedantic, if memory bandwidth were the only bottleneck, you'd expect video decoding to generate output faster than memcpy, since it wouldn't have to read as much :-)

My Intel NUC cost me £300 in January and is therefore a fairly low-end machine. It has 307 Gbps of memory bandwidth (2 slots of DDR4-2400). It's surprising how big that number is on a cheap machine today.

I'd love to see a profile of where the CPU time goes in a modern CPU-only video decoder. I guess I could get off my arse and do the profiling myself instead of posting this. Anyway, my guess is that the processor speed is the bottleneck, not the memory bandwidth.

</comment></comment></comment></comment></comment><comment><USER8> > x265 outperforms libvpx for almost all resolutions and quality metrics, but > the performance gap narrows (or even reverses) at 1080p.

It's not clear if this means libvpx is sometimes better than x265 at resolutions > 1080p or <= 1080p. I think the author intended "occasionally better when <= 1080p"

<comment><USER9> I read it as "at 1080p they become equal or libvpx is better"

<comment><USER10> Right, the question is which direction you are going when you hit 1080p. Are you going down from 4k? Or up from 720p.

In context, it's likely they mean "1080p [or higher]", but it's arguably ambiguous.

</comment></comment></comment><comment><USER11> I've been playing around with reencoding all my media to H.265/HEVC at home. The space savings over the older H.264 are around 50% (or better!) depending on what I encode

I have a lot of digitized box sets of TV shows, things like The Simpsons or King of the Hill. Most bit torrent copies of these shows weigh in at about 180MB/episode (for a 480P video)

Encoding them through H.265 using NVIDIA's "Nvenc" encoder (CPU encoding is paaaainfully slow) I can get them down to a mere 60MB on average, with no discernible quality difference

Moving up to 1080P files, I encoded some Star Trek: The Next Generation digital remasters, they shrunk from 600MB to about 350-400MB. Not quite as impressive, though I had to scale up the quality as HEVC was wrecking havoc on some of the low contrast areas (like character uniforms turning into one flat smeared looking color)

<comment><USER12> Did you make screenshot by any luck ?

btw: a 1080p episode (30min?) at 400MB is impressive enough for me.

<comment><USER11> I'll post some screenshots when I get home from work :)

</comment></comment></comment><comment><USER13> I imagine the biggest difficulty is the licensing for x265. It may have changed now but from last I knew they wanted a royalty from streaming services monetizing the use of x265.

</comment><comment><USER14> the second "x264" in the title should be "x265", was very confusing to parse

</comment><comment><USER15> Any news from Daala?

<comment><USER16> There was a blog post a few months ago: [0]

It looks like there have been a few dead ends -- clever ideas that for one reason or another didn't pan out -- but overall, it's making solid progress. It remains, however, very experimental and is far from complete.

One area in which Daala works very well right now is in compression of still images. There's a demo at the bottom of the page which shows it as _much_ better than HEVC for that purpose, and you can also see how the codec has improved over time. Of course, the relative goodness of codecs isn't necessarily consistent over widely varying bitrates.

In some of the earlier posts the Daala researchers expressed the belief that the quantitative metrics often don't accurately correspond to subjective perception of quality. Netflix seems to be putting a lot of work into developing better metrics [1], but the Daala researchers seem to rely on subjective A-B tests as the 'gold standard'.

[0]: [https://people.xiph.org/~jm/daala/revisiting/](https://people.xiph.org/~jm/daala/revisiting/)

[1]: [http://techblog.netflix.com/2016/06/toward-practical- percept...](http://techblog.netflix.com/2016/06/toward-practical-perceptual- video.html)

</comment></comment><comment><USER17> I find it odd that Netflix is using Youtube and Periscope to do their broadcast. I get that that is where the audience is - but I'm surprised they aren't also broadcasting it using their own tech.

<comment><USER18> Live video streaming isn't in their wheelhouse.

<comment><USER17> Oh I get that, but I'd expect some sort of hack on it.

</comment></comment></comment><comment><USER19> Firefox tells me: Secure Connection Failed

EDIT: No idea why it would redirect me to https. I only clicked the link like everyone else.

<comment><USER20> Noscript causes this for some reason

<comment><USER19> I do have NoScript, but I don't know what NoScript feature would force this page to httpS.

<comment><USER5> Probably the HTTPS enforcement: [https://noscript.net/faq#qa6_3](https://noscript.net/faq#qa6_3)

<comment><USER19> Thanks. Wow, can NoScript be unpredictable.

1) _Forbid active web content unless it comes from a secure (HTTPS) connection_ would, I assume, block the active elements, not redirect the entire page to HTTPS.

2) I had it set as:

 _Forbid active web content unless it comes from a secure (HTTPS) connection_ = Never

You'd think that would disable it, but according the question just above the one you linked, _Never_ apparently means _Always unless the site is whitelisted_ :

\----

 _Open NoScript Options|Advanced|HTTPS|Behavior, click under Forbid active web content unless it comes from a secure (HTTPS) connection and choose one among:

1\. Never - every site matching your whitelist gets allowed to run active content.

2\. When using a proxy (recommended with Tor) - only whitelisted sites which are being served through HTTPS are allowed when coming through a proxy. This way, even if an evil node in your proxy chain manages to spoof a site in your whitelist, it won't be allowed to run active content anyway.

3\. Always - no page loaded by a plain HTTP or FTP connection is allowed._

</comment></comment></comment></comment></comment><comment><USER21> > x265 outperforms libvpx for almost all resolutions and quality metrics, but > the performance gap narrows (or even reverses) at 1080p.

if you only read the TL;DR part i.e. What did we learn? You think wow that's bad for libvpx. Than you read:

> 3 resolutions (480p, 720p and 1080p)

And think... well not that bad. 2/3 vs 1/2 isn't bad.</comment>


Show HN: Gmail CLI Utils (bulk delete mail by query, get/create filters) - <AUTHOR> https://github.com/abhishekkr/gmail-helper <comment><USER2> Related: would this tool let me analyze my gmail for cleanup? That is, identify which senders/domains send me the most email by number or size. Some way to automatically download large attachments and then deletes those. I know there are 3rd party apps that do this, but I don't like giving access to random 3rd party apps.

<comment><AUTHOR> suggestion by @jedberg would work good for a search based on attachment size

your suggestion on "auto analysis for cleanup" is good, I'll add it to my ToDo list

<comment><USER2> Thanks. Yes I know that search option, but sometimes 1 mb x 100 is sitting there while I take trouble locating a single 5 mb message.

</comment></comment></comment><comment><USER3> This looks useful!

For "Declarative configuration for Gmail filters", see also [https://github.com/mbrt/gmailctl](https://github.com/mbrt/gmailctl)

<comment><USER4> This is nice. A couple of days back I was thinking of a utility where labels are created automatically. It uses meta information like:

      * How many emails I get from a sender

      * From mails' subject

      * Which similar mails I open or not.

</comment></comment><comment><USER5> Hijacking this comment, but it seems likely to attract the right sort of crowd..

Can anyone recommend a Mac/web Gmail UI with exceptionally fast hotkey interactions? The Gmail web interface has slowed to the point of un-usability for me now.

Command line (Alpine, etc) would be fine, but my Gmail account is secured by work and has the required access control settings disabled.

<comment><USER6> FWIW, I tried Superhuman for a month and it was exellent. Extremely fast and responsive shortcuts.

30 USD/month was a bit more than I can justify so I cancelled but I still wish I hadn't.

Not sure what you meant by 'secured by work' \- you can still authorize 3rd party apps can't you? Is it even possible to block that?

<comment><USER5> That's an avenue I'm pursuing - have joined the waiting list and am waiting for someone to get back to me after a brief email interaction over the weekend.

Secured by work was a reference to one possible suggestion of using Alpine or similar, which requires app-specific passwords. And yes, it seems it is possible to block that!

<comment><USER7> I'm working on a native Mac email client for Gmail that uses the Gmail API and support Gmail-specific features like labels and categorized inboxes. If you're able enable access for 3rd party apps, and interested in beta testing this, would love to have you sign up at [https://mimestream.com](https://mimestream.com)

</comment></comment></comment></comment><comment><USER8> I know this is an odd question but...

Have you tried deleting a very large number of messages? I am talking about > 100,000. I once needed to clean up > million messages and it was rather challenging even utilizing Google's scripting. Batching ( within Google's recommended parameters ) would periodically fail. Triggers would not run. etc.

<comment><USER9> You can just Create a filter to delete such messages and check apply to all existing conversations.

<comment><USER10> Having gone through this recently you'll see a spinner/progress indicator. Then a short time later it'll terminate and half your messages will still be present.

I took several days deleting a few hundred thousand messages, "Select all", "delete". Each time it would remove 1000-10,000 messages and leave the rest. Was a real pain.

<comment><USER8> After a lot of trial and error I have been successful at doing a limit fetch and limit delete with a limit of 9000 in 5 minute intervals using scripting API with a registering a timed trigger.

1\. Get current time, increase the time by 5 minutes and find the 5 minute mark after that.

2\. Register itself to run the time determined in (1).

3\. Fetch a batch of 9000 ids matching the filter.

4\. Delete the batch

This script would comfortably run for days cleaning out the inbox until it would hit some weird message that looked nearly identical to the messages around it and bomb(!?). Running it by hand would bomb at which point script won't be able to continue to execute. Deleting a message by hand would work. Running the script again after the manual deletion would work.

</comment></comment></comment></comment><comment><USER11> This is sweet. If you're interested, I'd be happy to help out with your todo to integrate with a local database. Getting the rate-limiting and retries right can be a little tricky but it's been on my list to add Gmail support to AspenDB [https://github.com/aspen-cloud/aspen-cli](https://github.com/aspen- cloud/aspen-cli).

<comment><AUTHOR> any help is welcome, thanks

</comment></comment><comment><USER12> Related: I recently used mbsync and notmuch to clean-up my Outlook/Live/Office email account. A one-liner to get email count per domain:

        notmuch address '*' | sed "s/^.*@//" | sed "s/>\$//" | sort | uniq > domains.txt

To "delete" emails (move them to the deleted folder):

        notmuch search --output=files --format=text0 '(tag:whatever and not folder:Deleted' | xargs -0 --no-run-if-empty mv -t ~/.mail/live/Deleted/new/

Useful alternative to this for non-Gmail. The Outlook interface couldn't delete more than a few hundred mails.

</comment><comment><USER10> See also my little hack, a sort of procmail for gmail, with a small scripting language:

[https://github.com/skx/labeller/](https://github.com/skx/labeller/)

Adding/Removing labels based upon arbitrary expressions/headers/values, etc.

</comment><comment><USER13> Maybe this will help me get to a zero inbox finally. 65k emails 99% of which are junk.

<comment><USER14> You could try email bankruptcy.

Just mark everything as read. If it's important, they'll send it again. I cheat by marking everything more than 30 days old as read.

I do that once a year in February. I mark everything from the previous year as read on Feb 1. Sometimes I do it again in July/August.

<comment><USER15> Same, I go even more ruthless. Any unread email over a week old gets marked read, any read email over a week old gets archived. All Updates, Social, Promotion emails get marked read on arrival. All Primary inbox emails get intercepted on arrival and batched back into inbox on a schedule (usually twice a day).

I sit at zero most of the time, and ive only ever missed emails a bare handful of times, so seems to work.

<comment><USER14> How do you batch the incoming emails into a few drops a day?

<comment><USER15> I use a simple Apps Script. A filter adds a "New Messages" label to incoming "category:primary" and skips inbox, then the script on timer triggers remove the label and put them back in inbox

[https://github.com/MichaelYock/GmailScripts/blob/master/Gmai...](https://github.com/MichaelYock/GmailScripts/blob/master/GmailBatch.gs)

Come to think of it, i was going to make a GUI for this now that gmail add-on Cards have a Home Card option

</comment></comment></comment></comment></comment><comment><USER16> I did something similar - in fact looking at the add filter, very similar, where I add a label to certain mails by query and then delete - but the weirdest part was i could not auto-create one new filter - i have to re-create them all (so if I want to add a 21st filter with 20 still there my create filter routine needs to apply 21 filters. I just have it trying to reduce the spam and should spend some time trying to add new filters - one day.

But this is cool and love to know if there is a "add one" feature i missed.

<comment><AUTHOR> I am using google-api-client, which has a "create" for single GMail Filter

available here: [https://developers.google.com/gmail/api/v1/reference/users/s...](https://developers.google.com/gmail/api/v1/reference/users/settings/filters)

<comment><USER16> thanks i will have a look

</comment></comment></comment><comment><USER17> Creating this was on my to-do list this week. Ya beat me to it!

<comment><AUTHOR> :)

</comment></comment><comment><USER18> How might I use this to delete emails with big attachments? Can I filter and delete by message size?

I'm cheap. :-)

<comment><USER19> Use a filter like "has:attachment larger:10mb in:all". For each 100 deleted emails you get 1GB of free space back.

</comment></comment><comment><USER20> I will be going to work tomorrow and baking this into our email test suite.</comment>


Covid-19 Kills Renowned Mathematician John Conway - <AUTHOR> https://dailyvoice.com/new-jersey/mercer/obituaries/covid-19-kills-renowned-princeton-mathematician-game-of-life-inventor-john-conway-in-3-days/786461/ <comment><USER2> So sad to see. May the cellular automata replicate in his honor for ever...

</comment><comment><USER3> main discussion [https://news.ycombinator.com/item?id=22843306](https://news.ycombinator.com/item?id=22843306)</comment>