Company uses AI to flag racist and sexist comments from potential hires - <AUTHOR> https://www.cnn.com/2019/04/12/success/fama-prescreen-employment/index.html <comment><USER2> I would never tell an employer about any of my social media identities. I don't try to hide them, and I stand by anything I say online, but I'd never give an employer my Twitter handle (not that I have one) or any other public ID other than GitHub. That some people are willing to give up their social media IDs at all baffles me.

That said, I don't blame employers for trying to prevent bad PR. If I had an employee spouting racist nonsense and they didn't have the common sense to keep their identity anonymous--or even worse, they connected their identity to my company--I'd have no qualms about firing them.

I doubt an AI, or even a manual solution, can effectively handle this job, though. It's going to continue to be more of a reactionary thing than a preventative thing.

</comment><comment><USER3> This seems rife for abuse in both directions. Color me skeptical.</comment>


Without Power, Puerto Rico Is Cash Only - <AUTHOR> https://nytimes.com/2017/09/29/us/puerto-rico-shortages-cash.html <comment><USER3> Local here:

Its not cash only anymore. ATM service is coming back up to a lot of the island. Banks are opening and things are looking up.

Life is somewhat getting back to normal. The big issue is that people are now realizing that they are out of jobs. Its why Im moving to Atlanta this month. Things are bound to get interesting once the poor run out of money.

Btw, going to use this space (and please excuse me) to let the community know that Im available for hire. Please email me at firstname.lastname@example.com for more details or tweet at me @pryelluw

You can find a link to my resume on my profile. Willing to relocate whithin the continental US.

<comment><USER4> Yes, use this opportunity to make contacts. But I'd recommend you add a sentence or two to let HN employers know your professional background and skills. I see from your profile that you do Python, Django, and JavaScript, anything else? Your impressive blog discusses functional programming a lot.

Only willing to consider Atlanta, or other cities in Southeast? (Raleigh- Durham is another big regional employer of programmers, and hires lots of Python folks)

Also, I'm guessing things are only looking up in San Juan, right? The outlying areas still have no clean drinking water, food, or medicine from what I'm seeing.

<comment><USER5> My wife is from PR and most of her family lives theoughout the island. It's not actually "better" in San Juan, because people are desperate for water/gas in many neighborhoods. I can only tell you that there are some pretty horrible things going on in parts of San Juan.

In the mountain towns they still dont have any comms and no water or gas.

In the north west the lines for gas/water are miles long.

Lots of people are leaving. It will be really interesting to see how the long term effects play out, even if only 25% of the population moves to NY, Chicago, DC, Orlando, Philly, etc.

<comment><USER6> PR is no stranger to mass exodus (the previous waves to New York are evidence of this). In fact the pre-hurricane problems largely stem from the results of the past exoduses.

Solving the problem requires repealing all the laws that yoke PR to mainland companies without providing any of the actual benefits, but that would require the current Congress to want to give PR something like statehood, if not statehood itself.

<comment><USER7> If they cannot justify statehood then annex it to Florida.

<comment><USER8> No republican is going to add a few million safely Democratic votes to Florida. Unfortunately that's the kind of world we live in.

<comment><USER9> Solution: Divide Florida into two states (North and South). Give Puerto Rico to South Florida. Puerto Rico has much more in common (culturally) with South Florida anyway.

North Florida is heavily republican, South Florida is heavily democrat.

Status Quo is maintained.

</comment></comment></comment></comment></comment></comment></comment><comment> temp-dude-87844 In most contemporary societies, including the United States, there are really no provisions, practices, and doctrines to handle a large city's worth of people's disruption of daily routine. We've seen this with Katrina and Sandy, but more recently with Harvey, Irma, and Maria.

Puerto Rico's situation is worse because of several compounding factors that work against them: the scale of the disaster, communication and coordination issues, logistical challenges, and a belligerent rhetoric coming from the topmost levels of the US federal government despite lower-level federal employees being part of of a burgeoning, although so far inadequate recovery effort.

But in each of these disasters, the hard questions to which society offers zero answers begin long before the disaster actually strikes. Universities and research organizations have long studied reasons why people don't evacuate, and while discretionary answers exist, many people simply report being unable to afford the expenses of a temporary relocation away from one's regular job for a disaster that's forecasted to perhaps occur 3-5 days out.

You can invoke the argument that it's literally a matter of life and death and that ought to be worth any expense, but that's not helpful when people may not have cash on hand, or quick access to easy emergency credit that would be guaranteed by some higher party. It's truly unfortunate that situation is that disaster aid for forecastable disasters only kicks in once it has already struck, and not days before when its inevitability becomes clear.

In Puerto Rico's current case, the breakdown of societal structures due to lack of electricity, lack of electronic communication, lack of fuel, lack of distribution capability is unfortunate enough, but the degenerate functioning of life is just bizarre; people are now trying to get by in a worst-of-both- worlds hybrid of subsistence tribalism and wage-earning capitalism, where they both have to forage for food and water and barter for supplies, while at the same time giving the rest of their cash-on-hand to large corporations like CVS for stuff that's still on the shelves; and any changes to this status quo are reliant on random individuals' goodwill -- like a shopowner who decides to give away supplies -- instead of any organized directives from top-down.

<comment><USER10> > worst-of-both-worlds hybrid of subsistence tribalism and wage-earning > capitalism

The bottom end of capitalism often looks quite like subsistence tribalism.

> many people simply report being unable to afford the expenses of a temporary > relocation away from one's regular job for a disaster that's forecasted to > perhaps occur 3-5 days out

Well, yes. You can be sure that everyone outside the disaster zone will be along to restore capitalism before they restore electricity. The disaster is temporary but the economic structure remains. It's not even clear that being homeless in NYC on your own is better than being homeless in the ruins of your community. It may be better to turn up to your non-functional workplace and keep your job than evacuate and lose it.

[http://www.naplesnews.com/story/weather/hurricanes/2017/09/0...](http://www.naplesnews.com/story/weather/hurricanes/2017/09/07/youre- fired-florida-evacuees-have-few-legal-protections-termination/642866001/)

(I think well-off people underestimate how much ordinary capitalism looks like imminent disaster to people at the sharp end - it's no use if the stores are open and the hospitals working if you can't afford food or healthcare.)

<comment><USER11> > _You can be sure that everyone outside the disaster zone will be along to > restore capitalism before they restore electricity_

What does this mean?

<comment><USER12> Banks saying your mortgage or credit cards or student loan is in default before the city is recovered enough for you to earn if a paycheck again.

<comment><USER13> Is it the fault of the bank that you haven't created a rainy day fund? Nobody forced you to get a mortgage, credit cards or student loans. Common sense indicates people should have 6 months of living expenses saved. Many people can't afford to do that, but then if that's the case, why are people incurring debts? A student loan implies a college degree, which implies that we aren't talking about the profoundly poor, but some standard issue millennial.

And student loan default is really hard to do; you can get forebearances for practically any reason. There is zero excuse to default on student loans; they have every payment plan imaginable.

</comment></comment></comment></comment></comment><comment><USER14> Just a reminder that anyone can issue credit. A composition notebook and a pencil is all it takes to keep record.

1\. Pay by the end of the month and it doesn't effect me. No interest.

2\. Otherwise, 1% to 1.5% of the balance in interest month over month. You have to pay at least the interest every month.

3\. If I need to borrow, I can do it on the strength of my accounts receivable and my ability to collect interest payments reliably.

4\. If I don't get payed back, I can take someone to court when things are back to normal and yes, the court will side with me.

4.b There's always ways to create incentives to pay debts.

It has worked this way for hundreds of years in parts of Latin America and other areas of the world with fluctuating infrastructure.

<comment><USER15> 4a: You can't be sure of that. The court can always decide (and I've seen many analogous situations in which it did) that your debt is not valid, it was oppressive, it abused the customer needs etc. and so you lose.

4b: Of which incentives are you talking about? The other points you've mentioned are trivial, this is the only point that has problems. If you solve 4b somehow someday you'll be making a huge benefit to the world, a revolution greater than Bitcoin.

<comment><USER16> 4b: big men with clubs? that was the traditional incentive to pay

</comment></comment></comment><comment><USER17> I'll take this chance to mention this since not a lot of people know, and maybe someone can get this information out to friends / family in Puerto Rico who can help: Puerto Rico has a lot of supplies[0] which many cities need, but they're sitting in limbo. The issue is there are not enough actual truck drivers. The Governor of Puerto Rico is calling forth any truck drivers to come to San Juan where they were sitting for days (a week?). The issue is because the grid is down contracting truck drivers becomes harder and almost impossible. I do know some land lines do work in some parts of Puerto Rico, but maybe not all parts. I'm not sure about what people around the USA can do 100% but I heard of a friend from here in Florida who was going to volunteer to drive trucks in Puerto Rico, you need to be licensed as a prerequisite of course.

[0]: [http://www.cnn.com/2017/09/27/us/puerto-rico-aid- problem/ind...](http://www.cnn.com/2017/09/27/us/puerto-rico-aid- problem/index.html)

</comment><comment><USER18> This title is odd. Business that have ATMs instead of credit card machines are already cash only. It would be more accurate to say "without power to run credit card machines, Puerto Rico is cash only."

It would be nice if there was a credit card machine that was powered by the phone line directly.

Edit: Most of the small businesses I worked at growing up in rural Oklahoma had mechanical imprinting machines with carbon paper receipts so that they could process credit card payments offline.

<comment><USER19> >Most of the small businesses I worked at growing up in rural Oklahoma had mechanical imprinting machines with carbon paper receipts so that they could process credit card payments offline.

I wonder how prevalent this is still? I've heard of restaurants keeping one around just in case. I wonder what the fee would be for imprinted credit card transactions?

My most recent Citi DoubleCash card doesn't have embossed numbers. Could I still do an offline transaction?

<comment><USER20> The embossing is simply a convenience. Numbers retain their numericy when copied by hand, just as when physically imprinted or electronically transmitted.

</comment></comment></comment><comment><USER21> Not to sound like a doomsday prepper but my dad instilled in me growing up in south Florida to "be the bank" in case I was ever in a scenario like this. I keep a months worth of pay on hand in small bills and a months worth of pay in 1/10th ounce gold coins.

Nothing like needing a bottle of water and only having $20s.

<comment><USER22> I also grew up in hurricane country. You always wanted to have several hundred in cash at the house. The point about small bills is a good one. I was without power for 10 days after Hugo, so now I keep a week's worth of freeze-dried food and bottled water, plus a backpacking stove to heat the water.

The small backpacker sized solar cells are fairly worthless for charging a modern smartphone - the difference between the current they put out and power draw by the phone is too great, even with a supplemental LiOn battery pack.

<comment><USER21> I don't have a way to recharge my phone besides a few backup batteries, which is embarrassing. I do also keep some food and water. I have about 30 days of stored chlorinated water in BPA free containers and a weeks worth of MREs and about two big laundry basket sized tubs of canned food.

I backpack a lot so I've got tons of random "survival supplies" but two key things are:

\- little gas stove(1)

\- can opener

(1) - [https://www.amazon.com/dp/B00B4FY8YO/ref=cm_sw_r_cp_apip_oKN...](https://www.amazon.com/dp/B00B4FY8YO/ref=cm_sw_r_cp_apip_oKNwFLmLvFi4J)

<comment><USER22> That is indeed a little gas stove. :) Purchasers should be aware that the fuel cylinders can have either threaded or non-threaded connectors. Buy the one that matches the stove.

MREs are fine (the new ones are far tastier than the ones we had in the 80's), but the Mountain House "bucket" of freeze-dried food has a 30 year shelf-life, as long as you don't open the bucket and keep it out of the sun. It's a higher cost up front, but essentially never has to be replaced until you use it.

[https://www.amazon.com/gp/product/B00955DUHQ](https://www.amazon.com/gp/product/B00955DUHQ)

</comment></comment></comment></comment><comment><USER23> We in Zimbabwe know a thing or two about running on cash only. Been doing it for almost a decade.

<comment><USER24> That's wild to think about from my perspective. I haven't touched physical currency in years in Canada. I'm sure you get by just fine but it's an interesting thought. I kind of miss cash.

<comment><USER16> What's stopping you? I'm in UK, I have cards, but I try to use cash as much as possible.

Having said that, almost every time I pay more than 20 in cash, the seller gives me the eye, puts the money under a UV light, and I feel like some sort of a criminal.

<comment><USER25> When they do that, I say, 'Don't look too closely, I just printed that up this morning.'

Only once has it resulted in them calling a manager over. Every other time, it gets strange looks, a chuckle, a smile of mirth, or a groan. Either way, it's something unusual for them to hear in what is likely a repetitive job.

<comment><USER26> Please don't do that. People make that joke all the time. It's not funny and we have to pretend to find it amusing or we get written up.

<comment><USER22> Unless you're Steve Wozniak, who has a tear-off pad of $2 bills.

</comment></comment></comment></comment></comment></comment><comment><USER27> > We have been getting shipments of money.

It's kinda weird to think that at a time when there are huge shortages of basically everything it makes sense to use shipping space on something whose value is purely symbolic.

I do get that they're shipping plenty of other things and the cash is probably a pretty small piece of the total space, but still it's worth thinking about.

<comment><USER6> If there's too little cash, people will start hoarding and the economy will quite literally grind to a halt as people are reluctant to part with money.

Going back to bartering is a great way to induce a depression.

<comment><USER28> Bartering often comes after a depression already exists. When liquidity drops to zero, people will develop their own money. Bottles of Tide, gasoline, cigarettes, etc.

</comment></comment></comment><comment><USER29> Something to think about before we all decide we want to be a "cashless society", especially when the U.S. also currently fears EMP attacks from North Korea, Russia, etc

<comment><USER30> Wake up call for "modern" retailers with touch screen cash registers that don't accept cash. They would either go out of business or have to invent a new ERP system on the fly.

<comment><USER31> If there would be an emp blast anywhere in the world you would have far bigger problems. Btw a cash counter in my local mcdonalds was out of order meaning the lady had to write down every payment on a piece of paper. Because apparently it is not enough to just hand over the banknotes. You need to know that you sold cafe latte for 3euros and a mcmuffin for 1.5.

<comment><USER32> It's called a receipt, and they better be handing them out.

<comment><USER33> I'm sure their process needs a receipt. I usually don't need documentation of such transactions. I often wish they had a way to decline the receipt so the paper isn't wasted on something going straight into a waste bin.

<comment><USER34> Read in Mitch Hedberg's voice: "I bought a doughnut and they gave me a receipt for the doughtnut... I don't need a receipt for the doughnut. I give you money and you give me the doughnut, end of transaction. We don't need to bring ink and paper into this. I can't imagine a scenario that I would have to prove that I bought a doughnut. To some skeptical friend, 'Don't even act like I didn't get that doughnut, I've got the documentation right here... It's in my file at home. ...Under "D".'"

<comment><USER35> If you are a small business then you probably want the receipt for the doughnut so it can be written of as business expense. Or if you are a contractor with your own company, you'll want receipt for lunch for tax purposes.

<comment><USER33> I run a business. I am aware of the need for an audit trail. I do not need that as a consumer buying a bottle of water. I put that receipt straight into the waste bin.

<comment><USER35> Yeah but my point it as a contractor who goes to buy some food during lunch break I am a consumer but I need the receipt in order to claim the lunch as business expense.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER36> Where's your bitcoins now?!

<comment><USER37> Physical bitcoin, can be transacted offline. Just hand it over like a dollar bill:

[https://opendime.com](https://opendime.com)

Still mostly useful for larger amounts, though, due to the relative high cost of hardware, but it's new.

<comment><USER38> I seem to remember a simpler version - it was a scratch card, which had the address fully visible (so you could check the balance was correct) but the private key hidden behind the scratching area. That way you could reuse the bill or scratch it and transfer the amount.

Can't seem to find it again, though.

</comment></comment></comment><comment><USER39> In my opinion, the three currencies of the apocalypse are: ammunition, water, and diesel fuel.

Ammunition is the universal apocalyptic currency. You can hunt with it and you can protect your family, food, and possessions with it. It is shelf-stable and easily subdivided. It can be put in a box and buried or carried in your pocket. Lots of people own guns but few have significant stashes of ammunition. A staple of chaotic times.

Water, that's obvious, but you need a way to collect it and clean it. Those are their own currencies.

Diesel powers computer-less trucks like my old Land Rover Defender 110. Probably the last running vehicles in an apocalypse. It also runs generators and water pumps. It can potentially be manufactured by civilians.

<comment><USER40> Believe it or not, diesel (and regular gas) is perishable. It starts to degrade as soon as 30 days without additives. It's still usable for a while though. Assuming a long term (lifetime) apocalypse, most of it will go bad eventually.

[https://www.goldeagle.com/tips-tools/how-long-does-diesel- fu...](https://www.goldeagle.com/tips-tools/how-long-does-diesel-fuel-last- storage)

Ammunition is tricky because there are so many "denominations" (i.e. calibers). It would certainly come in handy. One of the biggest benefits of the M16 for the US military was that it was standardized, meaning every branch used it and they all used the same caliber.

I think canned food would be important too. Quite a revolutionary concept we take for granted (we can thank Napoleon). Fun fact, canned food was invented 48 years before the can opener.

I think drugs and alcohol would be a huge currency. Always have been in one form or the other.

Of course most people in cities would be hosed after the canned food ran out, unless there was a severe population drop.

Read the book "Alas Babylon," it is a good fiction about nuclear war.

<comment><USER41> Excellent points that most people overlook.

As impractical as it seems at first glance, the best post-apocalypse vehicles (barring an EMP scenario) would be electric since scavenged solar panels could provide the energy source for generations without significant degradation. Scrounging for electricity-based energy generation is much more practical than petrol-based resources that degrade, need refining, etc.

Batteries won't last as long as the solar panels, but as a personal observation, I've noticed that my parents hybrid Prius still has over 95% battery health after almost 15 years. High-quality batteries with well- engineered charge controllers have really impressive life spans in terms of maintaining their charge capacity!

<comment><USER42> A bicycle is by far the best post apocalyptic transport. Electric is worse than gas; at least the gas powered vehicle is lighter when its empty.

<comment><USER25> Technically speaking, an EV will be lighter when the batteries are discharged. Not that anyone is going to notice or appreciate the difference.

Note: This has no impact on your argument. I only mention it because I love me some physics.

Here's a citation, if you're curious:

[https://physics.stackexchange.com/questions/34421/does- the-m...](https://physics.stackexchange.com/questions/34421/does-the-mass-of- a-battery-change-when-charged-discharged)

The short version is that it will have less mass when the battery is discharged. However, you're not going to be able to detect a difference on your bathroom scale.

Again, this is being posted as a mere factoid and not meant to argue your point.

</comment></comment></comment></comment></comment><comment><USER43> Mmh, seems that the first level of Prepping is keeping some cash around.

</comment><comment><USER44> Blame it on irrational dependence on [https://en.wikipedia.org/wiki/Sustainable_energy#Green_energ...](https://en.wikipedia.org/wiki/Sustainable_energy#Green_energy_and_green_power)

</comment><comment><USER45> Great opportunity for all the bitcoin enthusiasts to show the world how a (small) nation can run on cryptocurrencies (you just need mobile phone connectivity - SMS/text could also be sufficient).

<comment><USER46> > (you just need mobile phone connectivity - SMS/text could also be > sufficient).

kinda hard without power

</comment></comment><comment><USER47> Not being a state, can Pierto Rico mint its own currency?

<comment><USER48> They have to follow all Federal laws that deal with that. Not being a state doesn't change that.

I assume you are asking out of curiosity, since that would not help anything on a practical level. There is no shortage of cash, the problem is getting it to people.

</comment></comment><comment><USER10> The abandonment of Puerto Rico by by the rest of the US, and its politicisation by the president, is extraordinary. How is this playing out over there in mainland US, or do people not really regard it as American?

<comment><USER49> Nobody really cared when Flint Michigan had a water crisis so I'm not sure the "is it America" thing really makes a difference.

America is simply too big for people to care all that much about what happens in far flung areas. Hearing about flooding in Louisiana is like about flooding in Bangladesh. Unfortunate, but not my problem.

<comment><USER50> That doesn't sound right at all. People went out of their way --- sometimes driving themselves bodily for many hours to help --- when Houston flooded. Houston is "far" from many of those people too. I feel no closer to Houstonians than I do to New Orleans or people in Flint.

<comment><USER40> There seems to be a correlation between how the news covers disasters and how we react to it. It gives weight to the idea that the news controls what and how we deal with things in the US. Pretty scary when you realize how irresponsible the US news is.

[https://fivethirtyeight.com/features/the-media-really-has- ne...](https://fivethirtyeight.com/features/the-media-really-has-neglected- puerto-rico/)

<comment><USER34> > There seems to be a correlation between how the news covers disasters and > how we react to it.

If this weren't the case, there would be an opening for media that isn't completely out of touch...

</comment></comment></comment></comment></comment><comment><USER51> If they had only switched to Bitcoin they wouldn't have this problem - <USER2>

<comment><USER37> Physical bitcoin, can be transacted offline. Just hand it over like a dollar bill:

[https://opendime.com](https://opendime.com)

Still mostly useful for larger amounts, though, due to the relative high cost of hardware, but it's new.

<comment><USER52> > opendime [...] it's new

So everyone pays tithe to a single organization that creates 'trustable' units of physical currency. So new!

At least with cash you're not destroying the physical currency every time you use it. (That and the Mint's security measures are just a liittle more advanced than "we put some epoxy on a USB stick")

</comment></comment></comment><comment><USER42> > "You're broke even if you have money," Mr. Jimenez, 40, said.

There are still gullible people who believe those so-called 'banks' actually have their government paper bonds. Yes I purposefully used this term to emphasize that those notes are _not_ cash or money. Money is a commodity, and the paper credit is (should be) a receipt for it. A dollar is 1.505g of gold.</comment>


Hey, PC, Who Taught You to Fight Back?  - <AUTHOR> http://www.nytimes.com/2009/08/30/business/media/30ad.html?_r=1&hpw=&pagewanted=all

<comment><USER2> The funny thing about the "I'm a Mac" commercials is that they remind me of high school, where the jocks and cool kids would entertain themselves by mocking the nerds and geeks.

I watch these and side with the PC character because I hated that behavior in high school and identify more with the geeky guy.

</comment><comment><USER3> I started to write a review/summary of this, and after about 50 words simply lost the will to live. I think that pretty much sums up the article.

If anyone found it interesting, I'd like to know what you got from it. (Honest, no sarcasm.)

<comment><USER4> I've never seen any of these ads before. I enjoyed finding out what the outside world thinks and argues about. Now it's time to hide back in my hacker cocoon and hopefully never hear about this sillyness again.</comment></comment>


Ask PG: Why can't I subscribe to hackernews from Google reader? - <AUTHOR>

<comment><USER2> Of course you can: <http://news.ycombinator.com/rss>

<comment><AUTHOR> Oh, thanks!</comment></comment>


Show HN: Callr – Never miss another call - <AUTHOR> http://www.getcallr.com

<comment><USER2> I've been using Callr for almost a month now, after it was mentioned by a friend who helped build the service. Since I have 2-4 conference calls per day, with different bridge lines and access codes (and some where I'm host, some where I'm guest), I thought the service wouldn't be able to cope with the complexity.

But after a couple support requests, I have things set up now to the point where Callr calls me about 30 seconds before any regular meeting I'm in is scheduled to begin, without fail.

It's a very nice service, and I'm amazed that it can parse out the information from all my calendar events.

The one thing that it can't really help with at this point is getting data about meeting invites that are spur-of-the-moment (e.g. someone invites me to a meeting that starts in 10 minutes). Since Callr pampers me by not requiring me to do any dialing, it's annoying to have to pull out my phone and dial in to those meetings manually.

</comment><comment><USER3> I don't join any conference calls and hate being interrupted by the phone, but I can see how this would be really useful for people who need it. Great idea.

The site is neatly but not over-designed and clearly explained the proposition which is something a lot of startups struggle to do well. I didn't have to watch a video or read buckets of text.

My one suggestion would be to revise this paragraph while you're US only:

"No matter what conference call service you use, Callr can connect you. There is no need to get a new number or fancy URL.*"

The asterisked footnote demotes the "no matter what" making it seem like a clear exaggeration. Perhaps have "We support popular US conference call services without the need to get a new number or fancy URL. (If you're outside the US, get in touch and we'll let you know when we expand!)"

<comment><AUTHOR> Thank you so much for the thoughtful response, prawn. Great suggestions and we'll make changes.

</comment></comment><comment><USER4> I think there's something I'm missing about it. Usually, the most annoying part about 'important calls' is that they won't exactly be right on time & you'll have to wait starring at your phone for a couple of minutes. I don't see how this solve that problem.

<comment><AUTHOR> rhaco31, you are right. Callr, in its current form, solves the first big pain point which is remembering when your calls are and dialing them in. If it's a conference call with long PIN, it becomes really handy as well.

For the scenario you mentioned, the hope is the other party will start using Callr as well so that s/he will be on time. We built a 'Share the Love' feature so that our users can show them the light :-)

Does this adequately answers your question?

<comment><USER4> Oh, I guess I didn't dig enough in how it does actually work. So I have two new questions :

\- Do you need to format your calendar events in a certain way for Callr to understand them & extract number/PIN? Looking at my actual confcall entries, not two have the same format and most of them have tons of different numbers depending of the country (the one I'm looking at atm has 10 different phone numbers in the calendar entry for instance)

\- How do you address the privacy problem of having to upload your whole business calendar to your server? Imho that would be forbidden in most places.

<comment><AUTHOR> Not a problem; here are the answers

1\. No, you do not need to format your calendar in any special way. We've developed a machine learning algorithm that automatically figures out the correct phone number and PIN number (if available). It works in 99.98% of the cases. In those rare cases that it misses, Callr will ask the user for a feedback and adjusts the algorithm based on that input.

2\. There are a couple of important points; Callr only looks at a few days worth of events at a time and we did that by design. This will ensure that Callr does not have more information than it actually needs. Once the data is pulled, Callr is built like a fortress; we encrypt it with AES-256 to make sure it's fully locked. We wrote about clearly on our privacy page: [http://www.getcallr.com/privacy-policy/](http://www.getcallr.com/privacy- policy/)

</comment></comment></comment></comment><comment><USER5> instead of using above service use spoof call for anonymous call

[http://haktuts.com/how-to-change-your-caller-id-1/](http://haktuts.com/how- to-change-your-caller-id-1/)</comment>


Kiss metrics, once the "lean" champion, now charges minimum $179/mo - <AUTHOR> https://www.kissmetrics.com/pricing

<comment><USER2> yeah it's not the right answer anymore for early-stage startups. Mixpanel seems to have better structure. Keen.io has startup-friendly pricing, but you have to roll your own front-end.</comment>


Show HN: Send a fiery message to that special someone - <AUTHOR> https://github.com/victorqribeiro/fireEffect <comment><AUTHOR> Did you ever asked someone out and later found out that they were laughing about your with their friends? Did you ever got reject after a code interview where you had to implement a whole system over a period of a week, with no feedback whatsoever? Well my friend, this is the tool for you. Send a special "thank you" note and be happy. Just add a link after your comment / post / e-mail with the message:

[https://victorribeiro.com/fireEffect/?message=FU](https://victorribeiro.com/fireEffect/?message=FU)</comment>


YC/HN Meetup in Austin, March 27th - <AUTHOR> http://www.facebook.com/events/746658665448279/

<comment><USER2> Humbled to have been asked to help organize and participate in what will be an awesome event in Austin. We have a great panel of alumni and a YC partner all attending. Should be a good time! If you're in Austin or Houston/Dallas we hope you'll join.

<comment><USER3> Need any help with setup/cleanup?

</comment></comment><comment><USER4> Super cool... I can pretend I'm back in SF :) (I'll be there for sure.)

</comment><comment><USER5> I might be in the area during that weekend. Looking to relocate to Austin. Drop me a line if you are from a Austin based company.

 _Apologize if this comment is out of place._

</comment><comment><USER6> Sweet! Looking forward to seeing y'all there to talk tech.

</comment><comment><USER7> Argh! It sucks! I will be visiting Austin two weeks earlier. :(

</comment><comment><USER8> Wish this was during SXSW!</comment>


This Tech Founder's Blind Spot: Building Over-Generalised Products - <AUTHOR> http://iancackett.wordpress.com/2013/11/22/tech-founders-blind-spot-over-generalised-products/

<comment><USER2> > People don't want a general-purpose framework for logging and visualising > their progress towards personal goals. They want an app that tells them not > to eat the donut, that they lost 2lbs this week, or that they just achieved > their personal best running time.

Actually, they don't want an app at all. They want to just be skinnier so that they look more attractive to their significant other or potential mate.

> Likewise, they don't want an app for general-purpose list-based > collaboration. They want an app for smoothly collaborating in precisely the > ways that collaboration works best in their organisation, whether that is > list-based, project-based, chat-like discussions, whatever.

They don't want that either. They just want their boss to stop bugging them so they can feel autonomous at work and have their work mean something. And they want their work to go as fast as possible so they can go home to their kids and be good parents.

\</comment><comment>

The biggest lesson that I've learned building products is that people don't want these products at all. But sometimes they find a product that they hope will help them become better at the things they actually do want.

People don't want to buy a camera. They want to be better photographers. So help them become better at what they actually want to do, and you'll find yourself selling more cameras.

That's something I try my hardest to stick to with Draft ([http://draftin.com](http://draftin.com)) and it's been working really well. I realize my users don't want yet more writing and collaboration software. But they do want to be better writers. They want more people reading their blog, or they finally want to tell their friends they finally published a book. So I constantly try to find ways for the app to help them get better. And not just the app, but I'll even have webinars, blog, teach my methods at writing, storytelling, getting more readers, etc. and now I have people paying attention to the things I make and sell.

\</comment><comment>---

For these apps of yours, they look like really great places to start from. I think you could do a lot on their homepages and on your blog helping people get better at what they actually want to do with these things, and you'll probably find they are paying more attention.

I'm happy to help brainstorm some more on this if it would help. Hit me up on Twitter (@natekontny) or email (nate.kontny gmail).

<comment><USER3> This is a great point which I just boiled down in my head to: people don't want a product, they want to solve a problem.

I think entrepreneurial developers lose sight of that a lot of times even though it is common sense.

<comment><USER2> Absolutely. But I think there might even be a little more nuance to this. The classic quote is "people don't want drills, they want holes" that's why they buy drills.

But I think you could get a lot more out of asking why they want the hole to begin with. Are they trying to build a house to help raise their family better, or to become a better investor. Or are they trying to become better at being a contractor, which is the business they run? When you ask Why a few more times about the problem they think they have, you come up with all sorts of useful things you can help them with.

<comment><USER4> If you boil down everything the answer will be 1 of 2, or 3 things: \- Get laid more, or experience better/more orgasms. \- Get richer \- Leave a legacy.

</comment></comment></comment></comment><comment><USER5> Perhaps we should be shooting for generality in the implementation - i.e. a well factored, flexible code base that models the domain well and supports a high level of reuse (and is written in Haskell :-D). Coupled with specificity in the solution - i.e. solves the problem perfectly for a narrow niche of people/organizations.

If you want to support many, or wider niches you re-use parts of your well factored code and produce separate solutions for each smaller sub-niche.

<comment><AUTHOR> I think you hit the nail on the head.

</comment></comment><comment><USER6> People spend money to solve problems. If the problem you solve is not clearly defined, you cannot define your customers and cannot target your marketing.

The validation you need might be "that's cool!" The validation your company needs is "that solves my problem."

<comment><AUTHOR> Very true, and you're right that these are totally different forms of validation. It's a steep learning curve (for me), but I figured this particular blind spot may be encountered by some (definitely not all) other tech folks on this path.

<comment><USER7> I reached out to my ideal customer and told them I have an idea to solve a problem of theirs. They said they would love to use something like that, and they're helping me build my MVP.

Without reaching out to my customer first, my MVP wouldn't have solved their needs as effectively -- and there would have been too many holes in critical use cases.

After watching all the Steve Blank videos on Youtube, I'm a believer in "get out of the building and talk to customers".

<comment><AUTHOR> I began like this, with some market research amongst potential users that I know directly. Worked closely with a few. But my problem was that I let myself lose track of this and, when I came back to them with my MVP, it had deviated (by virtue of me generalising it too much) from what they actually wanted to use. So you're spot-on, and sticking with a few customers whilst building the MVP is probably a hugely important step.

</comment></comment></comment></comment><comment><USER8> I call this the "Men's Soap Principle". Men's soap is no different than regular soap, but the fact that brands call it Men's, make's it applicable - and therefore men buy it.

<comment><AUTHOR> That's fantastic! Never thought of that, and yet this very week, I was laughing at my purchase of "Men's" shower gel. Great example.

</comment></comment><comment><USER9> Interesting article. I'm sort of here now with something I'm working on, its incredibly general, and thats how I want it.

What I'm going to do however is pitch to the specific groups, the specific uses. I'm going to get out and talk the moms and pops crowd, the artsy crowd, the cyclist crowd and show them how/why they should be using it.

Maybe I've read it wrong, but it doesn't seem like a product/market fit problem to me, it seems like a "I haven't showed these people sufficiently how/why to use it for what matters to them" problem.

Edit: Rereading what I've wrote back I feel even more certain of something: perhaps the problem with creating a product that is too generic is that the gap has to be filled with education, if it isn't obvious on how to use it - like the case might be with a product that is very specific - then you have to fill that with a non-codey layer over the top.

Double edit: I think its funny how I see people write about "coder mindset" as a reason that they've hit a snag but yet still manage to stick to a coder- solution mindset. Maybe try a new layer of packaging, some education. Literally detach from being a programmer. Source: Programmer, marketeer, photoshopper background

<comment><USER10> That's what I was thinking. The ubiquilist product looks really neat, but there isn't a single use case on the site.

I wouldn't change the product (yet), I would find great use cases and present those in detail and with flair on the site, and then I would find ways to put that use case in front of more people who are like the ones in the use cases.

Possible use cases: show how a family with a dog that needs treatment gets organized to take care of their pet thanks to your product. How a mom & pop shop get their orders right by using the estimate feature as they work on them. And on and on...

Again, for my 2c, this is a marketing problem plain and simple. Close the IDE.

<comment><AUTHOR> lol - Thanks absolutely, spot-on! I'm not ditching UbiquiList, but I plan to expose those few simple use cases more elegantly. I believe I can track back from this general solution, with marketing / education, and encourage folks to come on in.

</comment></comment></comment><comment><AUTHOR> To clarify, I modified the title of the post slightly. Now "This Tech Founder's Blind Spot", as I'm writing primarily about MY blind spot, theorising other tech founders might have (or have had) the same. I definitely know some who never struggled with this, and I quite expect to learn and progress beyond this. Great comments, folks and good to hear everyone's experiences, both similar and conflicting.

</comment><comment><USER11> You can also get too specific - [http://www.virtsync.com](http://www.virtsync.com) \- I've only made $1000, but it was only a few day's work.

<comment><USER12> I don't think that problem is that your product is too specific. But it's targeted at a market that is used to getting things for free. I guess the market for $49 linux commandline tools is very small in general.

</comment></comment><comment><USER13> I think this is right on.

I'd like to add a bit of a corollary -- people tend to like products that fit immediate and specific needs because they reduce the effort, mental or otherwise, associated with coming to grips with the product (you may have been going here anyways with your comment about friction).

We use things for a lot of different reasons, ranging from "my boss told me to" to "I saw it on TV" to "it can help me track my running better." All of these reasons get someone over their initial reluctance and get them to try something. Having a specific product (I can track my running) offers a quicker path to get over this reluctance than a more generic pitch (we have a system that tracks anything! If you spend some effort on it, it can even track your running).

<comment><AUTHOR> Totally agree - It's definitely a question of overcoming reluctance. Sometimes, people can describe why they like a product but they just don't translate that into actual use. They probably aren't aware of their own reluctance, so we perhaps have to help them through it with those specifics, and then reveal the general use beyond.

</comment></comment><comment><USER14> Great post Ian! I can certainly relate on the lack of marketing experience but, I can't say that I agree 100% with your verdict that the success of a product rests solely on how specific a problem it solves. Depending on your product's niche, you might find yourself struggling with marketing a product because your potential paying customers are used to general purpose apps that solve most of their pain points, even if not all. Just because those general purpose apps, as you've put it, create such little friction.

For example, I'm working on a startup that caters specifically to runners. That's it. We analyze run data and create nifty little visualizations. The upsell is even cooler forms of analysis that someone like a track coach, amateur, or competitive athlete might use. It solves a very specific problem: "how can I tell that I'm improving as a runner?" and it has very specific answers like "you shaved 25 minutes off your 5K time based on your best runs over the last 90 days" or "in the last 30 days, you've spent 65% of your training at a pace faster than 7:30min/mi (your tempo pace) - you're in danger of overtraining or, worse, getting injured!" Although, I can't even begin to tell you how many people have told us to generalize our app. Include cycling, swimming, hiking. Maybe somehow tie it to nutrition or weight loss. Maybe also vie for the role of becoming the Facebook of fitness. And, of course, the number of times that we chose to turn down the temptation to diversify... I'm all for staying focused. Running is the first and last thing I think of each day, but I think it's also safe to say that being specific can sometimes equate to being esoteric and, that, can sometimes be a long and difficult road to follow. I'm not saying it's not worth it. I'm pretty happy. Although, it doesn't grease the wheels for success indefinitely.

<comment><AUTHOR> Thanks, that's useful to hear! Agreed, I'm highlighting one potential "problem", but it's probably more complex and multidimensional than that: my aspirations for a general product, marketing experience, educating users about specific use cases. Great to hear that you're gaining traction with runners and that you're resisting generalising your app. It must be tough, once you gain users, to decide on a roadmap.

</comment></comment><comment><USER15> Geoffrey Moore covers this in Crossing the Chasm [1]. He basically suggests that you have to specialize in an industry vertical to get beyond the early adopters and into the masses. Once you cross enough verticals, then you can come back and be a more general product.

I've also heard YAGNI [2] shouted at generalizations. People can spend too much time generalizing problems for broader application that never comes. I don't know the right answer here, as it seems hard to measure how likely it will be that any generalization will be reused later. Perhaps it's ultimately judgment.

[1] [http://www.amazon.com/Crossing-Chasm-Marketing-Disruptive- Ma...](http://www.amazon.com/Crossing-Chasm-Marketing-Disruptive- Mainstream/dp/0060517123)

[2] [http://en.wikipedia.org/wiki/You_aren't_gonna_need_it](http://en.wikipedia.org/wiki/You_aren't_gonna_need_it)

<comment><AUTHOR> "He basically suggests that you have to specialize in an industry vertical to get beyond the early adopters and into the masses" I think that pretty-much sums it up!

</comment></comment><comment><USER16> You make a good point that I've seen echoed in different ways in different books/articles/talks.

If I can chime in with my take, and I think you had something to this tune in your post, it's important to not only be specific but to be opinionated. You not only have a problem that you've targeted specifically, but you also have the a specific solution.

It reminds me of when I had to write papers in college and the professor would say "Don't just summarize the different sides of the argument, choose one and argue it. I don't care if you're wrong just argue it." I think startups are similar. You pick a side and you come up with a market strategy/argument for it. If you fail, you pivot. But at each step of the way you should have an opinion, an obvious solution that can be conveyed to the user (or investors).

<comment><AUTHOR> Absolutely, I think you have to be bullish with whatever solution you first present to a potential market. That belief and (apparent) momentum are, in my opinion, part of what leads people to look harder at your offering.

</comment></comment><comment><USER17> Nice article, some ideas reminded me of a passage I read on Chris Dixon's blog a while ago.

"The successful products took big meals and converted them to snacks. The Internet likes snacks – simple, focused products that capture an atomic behavior and become compounded only by linking in and out to other services. This has become even more so with the shift to mobile."-

His entire post wasn't necessarily about 'specificity', but I really liked his 'snack' analogy. Looking at currently successful products, many are incredibly focused and snack-like.

1\. A defined use-case (flavor) they users easily distinguish from other products.

2\. Efficient interaction (consumption) that addresses the problem: quickly, simply, and mobile(ly).

</comment><comment><USER18> Time to invoke Zawinski's Law:

"Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can."

(Of course the contemporary version would tweet.)

</comment><comment><USER19> Interesting take that this is down to software developer sensibilities. My initial thought was that it was due to shooting for as big a market as possible in the hopes that it would increase chances of success and non tech people would fall just as easily into the 'trap'.

<comment><USER20> This crossed my mind as well -- you start with a specific problem to solve, you dig into building a solution... and realize that whoa, with only a few tweaks this could be useful for this _whole range_ of related problems...

But the compromises add up one after another, and by the time the general solution is built (with an immense theoretical target market), it's lost its heart. The people with the original problem won't be interested any more (because it doesn't speak to them anymore).

It's related to the problem of implementing every feature and permutation that users request ("no problem; we'll add an option for that in the settings!"), until the elegant solution becomes an unusable monster.

It's hard to say "no" to an addition that clearly adds value, but if you're aiming for a sharply-defined target, you've got 1 degree of "yes" and 364 degrees of "no".</comment></comment>


Times Online Obituary for Robin Milner - <AUTHOR> http://www.timesonline.co.uk/tol/comment/obituaries/article7081867.ece

<comment><USER2> It's a shame that the Times couldn't get a peer or well, someone who knows technology to write this obit:

"Three of his major contributions were known as LCF, ML and CCS. LCF — or Logic for Computable Functions — was a reasoning tool that helped programmers to prove that their programs were correct. ML was a new programming language whose features are widely used in modern computer languages, _including Microsoft's groundbreaking new language F Sharp. Millions of computers all over the world will use this language when they are next upgraded by Microsoft._ CCS was a pioneering, simple algebraic approach to describing how concurrent processes interact. It has been widely used in hardware verification."

Not sure that an obit is normally the place for a product placement.

<comment><AUTHOR> I cringed a little at that too -- still, if F# gets a significant number of working programmers using an ML variant it would have some claim on being ground-breaking.</comment></comment>


France to call for Russia to face war crimes investigation over action in Syria - <AUTHOR> http://www.independent.co.uk/news/world/middle-east/russia-syria-war-crimes-investigation-france-international-court-of-justice-a7353486.html <comment><USER2> Remember when Romney said Russia is a major threat in 2012 and Obama said: "The 80s called and want their foreign policy back".

[http://www.salon.com/2012/10/23/obama_the_80s_called_they_wa...](http://www.salon.com/2012/10/23/obama_the_80s_called_they_want_their_foreign_policy_back/)

The press seems to have forgotten this, but I haven't. Romney knew more about foreign policy then than Obama does now.</comment>


Operational calculus on programming spaces and generalized tensor networks - <AUTHOR> https://arxiv.org/abs/1610.07690 <comment><AUTHOR> OP here. This is a dense paper since it involves many concepts (abstract algebras, tensors, automata) and I don't fully grok it (not even close).

The main points seem to be:

\- Realization of the duality between programs and maps over vector space (simplification: assumes the real field).

\- Define differentiation for those programs.

\- Expand over current automatic differentiation approaches by having a well defined algebra, as opposed to a pure algorithmic translation of the chain rule by forward/backward propagation.

\- Since the differentiation operator is well defined, get higher-order derivatives "for free" .

\- Also, get composition of differentiable programs "for free".

This formalization seem to have a lot of potential IMO by allowing generalization of techniques researchers have to currently "hand craft" in neural networks (control structures, recursion, composition).

<comment><USER2> I skimmed their paper and don't claim to understand everything, but I am curious about some of your comments.

As far as higher-order derivatives, there's not really been an issue with obtaining these derivatives with traditional automatic differentiation techniques. The hard part is how to compute them efficiently. For example, Hessian-vector products can be obtained via forward-over-reverse or reverse- or-forward methods, but one runs significantly faster than the other. What's not clear to me in this paper is the practical efficiency of their technique especially for high-order derivatives.

Second, as far as neural networks, it's also not clear to me what's currently missing from using existing AD tools and what this new paper provides. Right now, there exist good AD tools that work just fine with control structures, recursion, and composition. In my opinion, a much better way to implement the training algorithms for machine learning is to just run an AD package on a particular model and then feed the resulting derivatives into an appropriate optimization algorithm. It's accurate, clean, and save time and effort. As such, what do we really gain from using this new methodology?

That said, I appreciate that the authors put together some interesting abstractions that I'd not seen before in this context. I think it's worth a read even if just for that.

<comment><AUTHOR> > What's not clear to me in this paper is the practical efficiency of their > technique especially for high-order derivatives.

On section "5.3.1 Order reduction for nested applications":

> We gained the ability of writing a differentiable program acting on > derivatives of another program, stressed as crucial (but lacking in most > models) by other authors [18].

See [http://docs.lib.purdue.edu/cgi/viewcontent.cgi?article=1370&...](http://docs.lib.purdue.edu/cgi/viewcontent.cgi?article=1370&context=ecetr) for [18].

\---

> Right now, there exist good AD tools that work just fine with control > structures, recursion, and composition.

See their example implementation ([https://github.com/ZigaSajovic/dCpp](https://github.com/ZigaSajovic/dCpp)) to understand what "control structures, recursion and composition" mean in this context.

<comment><USER2> Thanks for the reply. Perlmutter and Siskind's paper doesn't really talk about the efficiency of higher-order derivatives either and only has a very simple run time for a gradient calculation.

I had a look at the code and I can't figure out how their abstractions would allow for efficient higher-order derivatives. Even on the front page, they list the examples

      //  df/dxdx
          std::cout<<"df/dxdx = "<<f.d(&x).d(&x).id<<std::endl;
      //  df/dxdy
          std::cout<<"df/dxdy = "<<f.d(&x).d(&y).id<<std::endl;

Generally, I think those abstractions make it hard to compute things like Hessian-vector products because we really need a reverse pass to generate either a program or computational tree that we can fly through with a forward pass. That involves giving an explicit instruction to run a reverse pass since we don't do it automatically since it's expensive. Also, we generally give an entire vector to the forward pass at one time since we can overlap a lot of computation. Finding second order derivatives one at a time, like `df/dxdy` for an entire Hessian tends to be slow. It looks like most of the action is in var.cpp, but I can't see how this would run fast. Do you have any idea how this scales up for derivative calculations (gradient and Hess-vec) as we get at least into the thousands of variables in terms of derivative time vs evaluation time with no AD abstractions?

Certainly, I may be misunderstanding something. That said, if the efficiency doesn't scale, it seems like the practical significance will be limited.

</comment></comment></comment></comment><comment><USER3> Weird I was just looking at this last night. They implemented it: [https://github.com/ZigaSajovic/dCpp](https://github.com/ZigaSajovic/dCpp)

I got onto that based on this fantasy I was having. Basically I keep thinking that the main advantage deep learning has is probably not actually the neural nets, but the fact that they are highly parallel and very general computation techniques.

So if it doesn't really have to be a NN, maybe there could be a way to more efficiently achieve the same level of results by using something more like evolved parallel programs. Maybe have a universal virtual sensor grounding. Then if you find a useful/general procedure/dataset you could distribute it to improve lots of diverse agent's knowledge/skills immediately.

But to evolve these supposed universal function-approximating parallel programs that are more efficient and exchangable than deep NNs, you would need something like backpropagation, except for some arbitrary program structures. So when reading about backpropagation on wikipedia they mention the generalization is [https://en.m.wikipedia.org/wiki/Automatic_differentiation](https://en.m.wikipedia.org/wiki/Automatic_differentiation)

Anyway I don't grock all the details fully but my interpretation of all of this is that I think things like backpropagation with deep NNs are truly general purpose and when combined with grounding such as streams of virtual/real senses and training across widely varied tasks can actually produce general human and animal/like intelligence. I think the problem is it just takes a ton of computing power, iterations and time. If we wait 2-10 years that probably won't matter. But if we don't want to wait we can probably do something similar and more efficient/readily distributable if we can use algorithms that aren't NNs but are general and highly parallel and can be adjusted via AD to learn.

Based on this I personally believe we will see human/animal like general intelligence systems before 2020.

<comment><USER4> You have to be a little careful here. Neural networks are not "very general computation techniques." A dot product and a rectified linear function (or some other function of choice) are not "general computation techniques" in the sense you seem to use. They are a very specific set of operations. And the fact that you can show that two layers of these operations is a universal approximator is a red herring: decision trees and k nearest neighbors are also universal approximators.

<comment><USER3> Sure but I thought it was clear that I wasn't speaking in a precise or mathematical way. I was referring to what seems to be amazingly general abilities of certain successful deep learning-ish systems. And potentially also possibly amazingly general capabilities of some supposed imagined system a little bit like like those in terms the AD versus backpropagation.

Do you really think these abilities are not or cannot be as general as I imagine? I just see these systems like the Deep Mind projects reading pixels in 2d and 3d, and having this low-level sensory grounding. It seems likely to me that we will see very exciting and general further results and then down the line similar things on perhaps much smaller computers with the non-NN efficiencies. Do you think this is impossible or unlikely?

<comment><USER4> If you cannot describe something in a way that would allow for a precise formulation, then I don't know what you're trying to say. This is the difference between something that is implementable / testable, and something that's just a fantasy.

As far as I can tell, your definition of "general computing" is: "it works, so it must be general." While this is ironically indeed the attitude of a lot of people in deep learning, this is just faulty logic.

</comment></comment></comment></comment><comment><USER5> I spent the last few hours reading this paper. From what I understand, the paper is not about AD, but something more. AD is "efficient means to calculating derivatives", as they put it. This paper seems to be about program analysis through calculus (AD comes into play, as derivatives are needed).

They show how to form equations with programs and calculate with them, kind of like with "normal" math. This seems to be the reason for constructing the algebra. They derive some transformation of programs similar to Fouriers I do not fully understand yet (they also use this algebra and calculus to generalize methods like Deep Dream).

They show how to use this algebra to initialize "tensor networks" from some other sub-optimal program and than train it to obtain better results than the original program. The transformation is called "Neural tensor series", it seems to be like an enhanced Taylor series for programs, but again, I do not fully understand it yet. What I do understand from it, is that through this transformation you can somehow relate a program to a tensor network, and use this to study and analyze programs and vice versa.

This algebra strikes me as interesting and important. They mention parallels to how physics is being studied. In physics, you often express a system as a solution to a system of equations, because you do not know the system in advance. In this frame, a program is like a system. Perhaps this theory allows a similar approach to programming.

There is another paper listed on github [https://arxiv.org/abs/1612.02731](https://arxiv.org/abs/1612.02731) . It seems as though the code on github and this paper are additional material to the paper in the OP, not a full implementation of the theory, but a bridge for those familiar with AD to better understand the theory in the paper. I could be wrong though, it is getting late :)

</comment><comment><USER6> Take the factorial function defined in one of the usual ways (recursive or iterative). How do you take the derivative of it, using this paper? Do you magically get the gamma function this way, too?

I just skimmed the paper without getting close to answering these questions -- anyone who does already understand, maybe explaining this concrete example could help the rest of us?

Thinking about the problem in my naive way earlier this year, I noticed that the usual if-then-else expression is a special case of linear interpolation, at least when you're dealing with numbers. ("lerp by t between a and b" generalizes "if t then b else a", taking false=0 and true=1.) But it's not so obvious how to handle recursion and nonnumeric data: I guess there's a hint in that the usual theory of programs has Scott continuity ([https://en.wikipedia.org/wiki/Continuous_function](https://en.wikipedia.org/wiki/Continuous_function)) while differentiable functions are continuous in the reals, but I'm mathematically undereducated.

<comment><USER3> See my comment with link to their code.

<comment><USER6> That's a helpful link, thanks. At first glance it looks like, in all their examples, the control flow is oblivious to the values in the vectors. I suppose I'll have to try it to see if/how it can differentiate factorial(x) with respect to x. ("You can't do that" would be a perfectly reasonable answer, but it's unclear to me if that's what it is.)

<comment><USER7> It's certainly not obvious how even to define factorial in this model: in section 2 of the paper, they restrict to real-valued variables.

</comment></comment></comment></comment><comment><USER8> I could be [very] wrong but my read of the practical use of this is that it creates a really complicated-mathey AST that allows for adaptation of a program to different forms. The paper notes several times how a program could be adapted for maximum efficiency on different hardware than it was originally written for. I'm certain there a bunch more to it, but that was all I was able to grasp.

<comment><USER2> Actually, what's funny is that this is probably the most succinct explanation of an operator overloading approach to AD that I've heard. But, from what I can tell as well, yes. Most of the action is in var.cpp:

[https://github.com/ZigaSajovic/dCpp/blob/master/src/var.cpp](https://github.com/ZigaSajovic/dCpp/blob/master/src/var.cpp)

It looks like the AST is held by a collection of maps that contain pointers and other variables.

Outside of this paper, most of my time on writing AD codes has been literally just trying to do things on ASTs really, really fast, which is why your comment is really apt.

<comment><USER8> As a wannabe teacher, I like to think I'm pretty good at condensing complicated information. It's nice to know I will got it :)

</comment></comment></comment><comment><USER9> This looks really interesting but I just don't understand it. Can someone with more expertise explain in layman's terms what this paper is about?

<comment><USER10> It's a bit beyond me too, but here's my take from skimming: It's already known that you can do differential calculus in some pretty abstract spaces (not just functions from R^n to R^m). Automatic differentiation is a way of automatically keeping differentiability and computing derivatives when sticking other differentiable stuff together. This puts those ideas together, so you can automatically differentiate some more interesting things stuck together in some interesting ways related to programming. That was what I got from my rusty semi-layperson's skim, at least.

<comment><USER9> so what does it actually mean to differentiate a program?

<comment><USER11> Karpathy's explanation in CS231n is great: for any computational unit that is a function, you can calculate a derivative. So propagating the derivative backward through the function, just aplly the chain rule. This is much with simpler functions, so understand your algorithm down to the smallest computable units in the graph.

<comment><USER9> Does this only work for mathematical programs? I don't understand how this would work for more general computations, involving loops, writes to files, etc.

<comment><USER2> This paper isn't really a great introduction into the concept of AD. That said, one way to visualize it is to see how a basic AD implementation works. There are generally two different varieties, operator overloading and source transformation. Let's focus on the first.

Say we have a function:

      double myfun(std::vector <double> x) {
          auto y = double(0.);
          for(int i=0;i<=5;i++)
               y += x[0]*x[1];
          return y;
      }

We may want to find the gradient of myfun, or simply the derivative of myfun with respect to x[0] and x[1]. What we're going to do is reply double with a special AD type, which requires us to code things like:

      template <typename Real>
      Real myfun(std::vector <Real> x) {
          auto y = Real(0.);
          for(int i=0;i<=5;i++)
               y += x[0]*x[1];
          return y;
      }

Now, instead of using a double, we'll set Real to be our AD type. In C++, this'll be something like a class where all of the AD action occurs. What's in this class depends on the particular AD algorithm, which depends on the what derivatives we want and what kind of recomputations of the derivative we want to make. In general, though, it consists of some kind of tree. At its most basic level, the nodes of this tree consist of the types variable, constant, unary function, or binary function and they contain information that relates to the chain rule. When we want to compute a derivative, we traverse the tree in a very particular order to compute and accumulate the derivative information. How this is done can vary as well, which has implications for the efficiency of the algorithm. Most implementations use a tape that predefines the order of the tree traversal. It's also possible to do a topological sort to solve for a tree traversal. Anyway, traversing a tree can be expensive for a really, really large computational tree, so the goal is to only touch every necessary node once.

Returning to your original question, finding the derivative of a program involves building up this tree of computation. Control structures don't really matter in this context because we'll just keep adding to the tree regardless of loops or conditionals. This, by the way, can be really, really expensive since the computational tree can be huge for a long running loop. There's some game in determining how and when to collapse the tree in certain ways. Source code transformation tools can just leave the original, or really modified, control structures in place, which alleviates a lot of this expense, which is partially why they're faster than operator overloading.

<comment><USER9> Thanks for your explanation. So what this really does is enable one to train code using machine learning techniques such as gradient descent, traversing a code-space instead of traversing a space of numbers?

<comment><USER2> Well, from my perspective, there are three different components to machine learning techniques like multilayer perceptrons. Basically,

1\. What's the model?

2\. How do we define the error between the model and the data?

3\. What algorithm do we use to fit the model to the data?

In the case of a multilayer perceptron with a single hidden layer, the model is

m(alpha,W,b,x) = alpha'*sigmoidal(Wx + b)

where

alpha : nhidden x 1

W : nhidden x ninput

b : nhidden

' denotes tranpose and sigmoidal is some kind of sigmoidal function like a logistic function or arc tangent. As far defining the error, we tend to use the sum of squared errors since it's differentiable and easy:

J(alpha,W,b) = sum_i (m(alpha,W,b,x[i]) - y[i])^2

Finally, we need to apply an optimization algorithm to the problem

min_{alpha,W,b} J(alpha,W,b)

Most of the time, people use a nonglobalized steepest descent. Honestly, this is terrible. A matrix-free inexact-Newton method globalized with either a line-search or trust-region method will work better.

Anyway, all good optimization algorithms require the derivative of J above. Certainly, we can grind through these derivatives by hand if we're masochistic. Well, for one layer it's not all that bad. However, as we start to nest things, it becomes a terrible pain to derive. Rather than do this, we can just use automatic differentiation to find the gradient and Hessian-vector products of J. In fact, most AD codes already do this. I can never find a paper that's run through the details, but back propagation is basically just a reverse mode AD algorithm applied to J in order to find the gradient.

<comment><USER12> This may be a dumb question:

What is the data that the machine learning algorithm would optimize with given an arbitrary program that is differentiated?

Is it just a faster program or something else?

For any changes you would need some kind of perfect 100% coverage regression test that proves that the optimized program is still correct and handles all cases because the differentiation only recorded one possible path through the program.

<comment><USER2> Alright, so machine learning is a pretty broad term that encompasses a lot of things. Very specifically above, I was talking about things I call curve fitters, which include multilayer perceptrons. There's also classifiers, which often people create by use a curve fitter and then thresholding it. There's other strange techniques as well that people call machine learning that don't fit into these categories as well.

Anyway, for curve fitters, we literally need a set of points {(x_i,y_i)}_{i=1}^m given to us and our goal is to map the n-dimensional vectors x_i to the scalar output y_i. If we want a multidimensional output, we just do this more than once. Now, theoretically, we can try and match any function, or program, to this data. Let phi be this model, so that we want phi(alpha,x)=y. Here, alpha are the parameters we want to tune for the matching. Also note, these parameters can't be arbitrary. We really need them to be some kind of floating point number. Now, how we do the matching can vary, but sum of squared errors is easy, so we solve the optimization problem

min_{alpha} sum_i (phi(alpha,x_i)-y_i)^2

Basically, we want to find a parameter alpha so that the output from program phi matches our data {(x_i,y_i)}_{i=1}^m as closely as possible in a least- squares sense. Since all good optimization algorithms need a derivative, we use automatic differentiation to find the gradient, and probably Hessian- vector product, of

J(alpha) = sum_i (phi(alpha,x_i)-y_i)^2

Now, if phi is a program, then so is J. It's a program that takes alpha as an input, runs a for-loop to sum up the squared errors, and then it returns the result.

Alright, that was long winded, but the key is this. We're not optimizing a program when we do this. Rather, the optimization occurs when we minimize the difference between our inputs and our outputs, which were given to us ahead of time. In this context, we have two programs. One, the program that we're trying to fit to our data. Two, the program that determines the amount of misfit between our inputs and our outputs. We need the derivative of the composition of these two programs, which is why we use automatic differentiation.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> I'm curious about this claim:

A set of all the possible states of the program's memory, can be modeled by a finite dimensional real vector space V ≡ Rn.

Isn't the set of possible states of a computer's memory countable? How can one reasonably model this using a vector space over the reals? The paper claims any field will do. Well Z_p isn't a Banach space.

It seems to me if they want a notion of differentiability of a program that one would work in a field of characteristic 2 and use the module of Kahler differentials or use discrete differential forms. I certainly don't know enough about computer science but using a real vector space seems like it wouldn't be helpful.

<comment><USER14> yequalsx: yes, almost by definition, memory made up of bits should be modeled with a field of characteristic 2. That seems the most "natural" way to do it.

However, the authors of this paper are thinking about "computers" in a broader sense.

Take a look at these two papers:

* "Neural Turing Machines:" [https://arxiv.org/abs/1410.5401](https://arxiv.org/abs/1410.5401)

* "Hybrid computing using a neural network with dynamic external memory:" [http://www.nature.com/nature/journal/v538/n7626/full/nature2...](http://www.nature.com/nature/journal/v538/n7626/full/nature20101.html) and a related blog post at [https://deepmind.com/blog/differentiable-neural-computers](https://deepmind.com/blog/differentiable-neural-computers)

The memory space of these "neural" computers is formally modeled as R^n (n being the total number of parameters and memory addresses), and implemented _approximately_ with 32-bit floating point numbers in practice (i.e., with a memory space of (2^32)^n bits). As you read the paper linked to by the OP, think about these neural computers instead of the one atop your desk.

EDITS: removed sloppy math and lightly edited some sentences.

<comment><USER13> Thanks for the links and insight!

<comment><USER14> Glad to be helpful. And sorry for the sloppy math -- my mind is always on a million other things at the same time! :-)

</comment></comment></comment></comment><comment><USER15> This looks extremely interesting, but I find many of the terms difficult to map to a mental concept. Does anyone know good background material (books, other papers, blogs)?

<comment><USER16> The language used can be found in introductory chapters on Differential Geometry.

<comment><USER15> Going to check out the opencourseware ([https://ocw.mit.edu/courses/mathematics/18-950-differential-...](https://ocw.mit.edu/courses/mathematics/18-950-differential- geometry-fall-2008/))

Thanks for the pointer

</comment></comment></comment><comment><USER17> I haven't read this yet. Can anyone describe how this compares to Darcs' "calculus"?

<comment><USER18> They're totally unrelated.

This paper is rather hard to read and I've put it into my pile of papers to work through when it's not 1 AM, but basically this is related to machine learning and neural networks. More generally it's about how to transform arbitrary imperative programs with branching and control flow into a "differentiable" form. It means, you can train the program by using algorithms like gradient descent.

This article may help:

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

The awesome/scary thing about this line of research is that it's exploring the question of how far computer programming can be automated. Simple machine learning techniques can already be seen as "automatic computer programmers" in a sense, but their capacity is very limited. DeepMind recently made a breakthrough with their DNC architecture, described in that wiki page, which introduces a notion of memory to neural networks, and right now NN research is going at an incredible speed. The more stuff that becomes encoded in a differentiable form, the more stuff can be "trained" based on examples using standard machine learning techniques.

I plan to do some blogging on these topics soon.

<comment><USER19> Isn't there a limit to completely automated programming that has to do more or less with the halting problem? Like if the program builds an infinite loop? I guess it will have to timeout, but that's going to slow the learning down. Deep neural networks don't have conditional loops in them so they don't have to deal with the halting problem.

<comment><USER20> I'm not sure exactly how it applies here, but in general you can limit the "language" so it only includes things that are guaranteed to halt. You lose a lot of expressive power, but hey, no halting problem. The obvious thing to do is guarantee loops halt by forcing them to have a monotonic countdown, or ban them entirely.</comment></comment></comment></comment>


Descartes Labs opens its geospatial analysis engine - <AUTHOR> https://techcrunch.com/2017/02/06/descartes-labs-opens-its-geospatial-analysis-engine-to-a-handful-of-lucky-developers/ <comment><USER2> [https://maps.descarteslabs.com/](https://maps.descarteslabs.com/) gives me only this:

      Your browser version is no longer compatible with this application. Please update your browser to the latest version.

This happens on the standard Chromium browser from 16.04 LTS repo:

      Version 55.0.2883.87 Built on Ubuntu , running on Ubuntu 16.04 (64-bit) -

I do not remember any website that does not work in that browser.

<comment><USER3> Hmm do you have any plugins that manipulate your browser's User Agent string? We use bowser [0] for detecting your browser version, and (currently) support Chrome all the way down to version 46.

[0] [https://github.com/ded/bowser](https://github.com/ded/bowser)

</comment></comment><comment><USER4> beautiful maps without clouds. Is the 15m/20m per pixel high enough resolution for agricultural analysis?

</comment><comment><USER5> ...to a handful of lucky developers

(For now)

<comment><AUTHOR> I ran out of characters on the title limit (80) and decided to trim that part out! Sorry if that was misleading. If you're deeply interested, I'd guess they'd reach out to you.

</comment></comment><comment><USER6> ah, my God, I would love this. I have some pro-bono to 'spend' and this would really be great!

</comment><comment><USER7> Sweet maps.</comment>


Awesome machine learning - <AUTHOR> https://github.com/josephmisiti/awesome-machine-learning <comment><USER2> For those of you wondering about the "awesome list" phenomenon (as I was). It is a git repository that is marked as being a curated list of awesome things. Here is a manifesto:

[https://github.com/sindresorhus/awesome/blob/master/awesome....](https://github.com/sindresorhus/awesome/blob/master/awesome.md)

Edit: Don't know if any other infrastructure has sprung up around it. Maybe an awesome list of awesome tools?

</comment><comment><USER3> Awesome lists are the new yahoo.

<comment><USER4> Not sure it's a bad thing. Yahoo worked when the internet was smaller. For fields with reasonable amount of information the model is better than just searching for stuff.

<comment><USER3> Yeah, 'curation' seems to be a larger trend anyway.

</comment></comment></comment><comment><USER5> Is there a collection of general machine learning resources (blogs, books, people to follow on twitter etc.) for someone wanting to get started?

<comment><USER6> This is a pretty good start

[http://hackershelf.com/topic/machine- learning/](http://hackershelf.com/topic/machine-learning/)

[http://culll.com/news/](http://culll.com/news/)

</comment></comment><comment><USER7> You are awesome, thank you</comment>


YouTube loses court battle over music clips - <AUTHOR> http://www.bbc.com/news/technology-17785613

<comment><USER2> As usual: This is a decision by a LG (Landgericht), it will surely go to the next higher court: OLG (Oberlandesgericht). In this special case it is a decision by the "LG Hamburg", famously known in Germany for its useless decisions in 'internet cases' that will be reverted by the next higher court. Nothing to see here, people. Move on. :)

</comment><comment><USER3> I thought that they already did this automatically? I uploaded a video I took from my old apartment, because I lived behind a club* you could hear music and Youtube automatically detected it on upload. Here's the video: <http://www.youtube.com/watch?v=WOANhQ9nQYk> and the message I see via my account:

""Hi Friend", musical composition administered by: EMI Music Publishing. Your video is still available worldwide. In some cases, ads may appear next to your video. Please note that the video's status can change, if the policies chosen by the content owners change. Learn more about copyright on YouTube.".

I have also uploaded videos from TV shows that have been detected automatically as content owned someone else. This clip from a UK TV show "countdown": <http://www.youtube.com/watch?v=zuHREvK74-4>

""Countdown-Countdown", audio-visual content administered by: Channel 4" Your video is blocked in these locations: Guernsey, Ireland, Isle of Man, Jersey, United Kingdom. Please note that the video's status can change, if the policies chosen by the content owners change. Learn more about copyright on YouTube."

Doesn't this satisfy the courts that Youtube is going to great lengths to prevent this?

* Never live behind a club, it's ridiculous.

<comment><USER4> Interesting. Is that why BBC and Channel 4 stuff seems to live on YouTube much longer than you would think? Because it's blocked in the UK?

<comment><USER3> They block stuff within the UK because it's available on 4OD, iPlayer etc and then leave it for people outside the UK.

</comment></comment></comment><comment><USER5> I am from Germany and I am really embarassed by the stupidity in my country. Youtube should just disable its service for Germany. Grooveshark did the same. Everyone who is serious about the internet could enable the service anyway.

<comment><USER6> Could you give a little more insights as to why this is happening specifically in your country?

<comment><USER7> Because we have certain organisations protected by the state (they're like early-retirement homes for political friends).

The organisation in question here, the GEMA, "protects" artists (in a similar way the music industry protects them) and they have special legal privileges (like that they can assume that every music record is protected by them and the other party has to prove otherwise).

We have a public broadcasting service that enchroaches with (redundant) channels (annual budget of 7 bn EUR). You have to pay a monthly fee once you have a TV or radio or computer, next year it's mandatory for every househeld (240 EUR annually). Good place for political friends.

We have chambers of commerce that you're required to "join" once you start a business. They waste money all the time and are unaccountable. Also for good political friends.

I guess you see the pattern... :( I won't go so far to call it a managed democracy or a crony cleptocracy, but often I get this impression.

</comment></comment></comment><comment><USER8> [inflammatory comment] So following that logic car manufacturers are responsible for all the car accidents in history; its their users, they should check that the person is able and fit to use their service (car). It just makes me mad. It's just a bad precedent.

<comment><USER9> I'm probably in a very small minority here, but given that Google is making money by placing ads next to most YouTube content, then yes, perhaps they are responsible for determining who actually owns the content first.

<comment><USER10> They do and they share the revenues with companies that claim to own the copyright. They even check videos and proactively decide who the ad revenues should go too. Sometimes their fingerprinting tool does make mistake (thinking bird sounds are copyrighted music by some copyright troll was an example recently).

</comment></comment></comment><comment><USER11> If Google wanted to make a big stink out of this, they could decide not to offer YouTube in Germany at all, citing the country's royalty laws as a reason it cannot operate viably there.

<comment><USER12> A stink? Shut down your business in the 4th biggest international market? Lose millions in revenue?

Think those German clone crazy brothers wouldn't release DieTube.de the next day? Lose your dominant market share overnight.

Good luck on still being the CEO the next day!

<comment><USER13> You make it seem a lot easier than it is. Youtube has tons of content, not specifically German, that I wager lots of Germans would like to watch.

But your point comes across, all the same. It'd be really nice, if all the big tech companies could band together in favor of internet protection. I'm sure if Google, Wikipedia, Twitter, and Facebook (just to name a few) would say "we won't operate in any country that filters internet content", I'm sure we'd be seeing much less of these actions. I suppose though, that may spark antitrust.

<comment><USER12> Internet protection?

You actually mean a copyrightless internet. That's never actually existed or everyone would still be using KaZaA.

YouTube got greedy, they got slapped. Good for Germany for actually doing this to an American monopoly. Big deal.

YouTube lied for too long about it being able too expensive to filter content. But now suddenly they can do it! And that now coincides almost exactly with when they started to want to justify injecting ads into everyone's videos.

We're still in the scenario where aggregators, Google, YouTube, are making money when the content creators aren't.

<comment><USER14> So you've started a business, and against all odds you actually have users. Millions of them. _Hundreds_ of millions of them. Now some ancient industry whose toes you've tread upon comes along and says, "Nein! Your users are doing things we don't like! It's _your_ responsibility to stop them!"

You're telling me that your reaction would be, "you're right. We got greedy. Good for you for forcing us to police what millions of people are doing on our open forum."

No, you damned-well wouldn't. If you ran a taxi company, you wouldn't jump at the responsibility to ensure your fares aren't visiting prostitutes or high on drugs. If you built houses, you would not leap at the duty to ensure they weren't bought with drug money. _Because that's not your problem_. _You_ aren't doing anything wrong; your customers are.

It's an ancient principle of common law that an individual (or corporation, now that we're playing that game) cannot be punished for the actions of another. This ruling, and your argument, violates that principle. You want to force a company to spend its shareholders' money on stopping other people from doing bad things, and there is quite simply no moral justification for such an edict.

<comment><USER12> 'ancient principle of common law'? Well thanks for the laugh at least.

According to you if I make and sell bombs it's unreasonable for a government to say 'make sure you don't sell them to nutters'.

It's a stupid argument. Of course there's a moral justification for such an edict.

Say I started a LOIC server tomorrow that people can use to attack websites. It's on EC2 so can scale wonderfully on demand. You think I can use your 'ancient principle of common law'?

I'm all for better delivery mechanisms, better competition, all that shit, but YouTube were making money off other people's hard work. They've always played with fire. YouTube even sailed close to the line of where things like gorrilavids are these days. At one point you could go on there and find pretty much any tv show you wanted. Do you know how you found them? Search for [series name] episode [x] series [x] or some variation like that.

Does that actually sound that hard to detect these with a simple automatic script? A bank breaking script? It's supposed to be user generated content, not ripped off content.

</comment></comment></comment></comment></comment></comment><comment><USER15> Could Youtube just silence the videos?

Sometimes I just want to see some cool flying robots and the full video is disabled, because the creator decided to include some background music.

<comment><USER16> That would certainly be a nice form of protest. They could even show a tiny message on top of each video explaining why all videos are silent in Germany. I really think Google should protest this rather than agree to make a deal with GEMA (if the decision remains final, at least).

</comment></comment><comment><USER17> Wow, this precedent covers _much_ more than YouTube. If German courts will hold any such service accountable for what the users post, pretty much all widely used services are susceptible to suing.

<comment><USER18> Germany doesn't understand the internet from what I've seen. They're the country that legally requires you to post your full name, address and telephone number on your website. (search for "Impressum")

<comment><USER14> Hopefully with the Pirate Party starting to gain support, that will change.

</comment></comment></comment><comment><USER19> I remain surprised by how much music piracy seems to take place on YouTube. Nearly any popular song out there has a YouTube video with essentially blank/random video content and a nicely encoded layer 3 with the music. Combined with all the tools/plugins out there to "download YouTube videos" it seems like quite an easy spot to steal mp3s of most popular songs.

</comment><comment><USER20> Another great example how the german court again and again tries to kill internet innovation with ridiculous stuff like this.

Really hope this isnt the last word in the debate!

<comment><USER5> The next elections in Germany might bring a change as the German Priate Party is gaining more and more votes in the polls.

This could bring the change we all hope for.

</comment></comment><comment><USER21> So actually, due to disagreements with GEMA, many Youtube videos are already blocked in Germany, even if uploaded by the video clips copyright holders. I was in Stuttgart and couldn't open a video by SBTRKT that was posted by their own label <http://www.youtube.com/watch?v=ZdUINbi4wSY>

</comment><comment><USER22> As Germany seems to be more strict than anywhere else, does someone know if these actions there had effect on the industry revenues ?

<comment><USER23> All negative effects on media industry revenues are always due to piracy!

</comment></comment><comment><USER24> I guess music in Germany is going to suck for the foreseeable future.

No matter, as long as I can still discover Scandinavian metal regularly, this court ruling won't affect me as I am not a fan of the Scorpions or David Hasselhoff.

Rammstein is ok though

<http://youtu.be/Ef3zxiOaYgI>

:)</comment>


Yes, eating meat affects the environment, but cows are not killing the climate - <AUTHOR> http://theconversation.com/yes-eating-meat-affects-the-environment-but-cows-are-not-killing-the-climate-94968 <comment><USER2> I thought the argument was that methane was more destructive than CO2 and has a shorter shelf life, so drastically reducing meat consumption would help quite a bit. Nevertheless, it would be a short term win, so it would only buy time in solving the CO2 elephant in the room.

Is that wrong as well? I didn't see anything in the argument address that point at all.

</comment><comment><USER3> You know the vegans of the world don't appreciate this muddying of the waters on this issue.</comment>


Dust Bunny: The Adventure - <AUTHOR> http://www.kickstarter.com/projects/capncase/dust-bunny-the-adventure

<comment><USER2> this looks cool. Danny (one of the devs in the video) is an old friend of mine and a cool guy.</comment>


Introducing Competitive Multiplayer Programming - <AUTHOR> http://blog.codecombat.com/introducing-competitive-multiplayer-programming

<comment><USER2> This is awesome. hey @schmatz since I see your reading this. See if you guys can figure out a way to make it persistent and Massively Multiplayer. I want to write a program to defend my tower while I am at work, then hop on at night and tell my minions to attack someone else.

<comment><USER3> The Schemaverse ([http://schemaverse.com](http://schemaverse.com)) is massive multiplayer game that you play through programming, although the gameplay is no longer persistent and is now played in one day rounds. I would love to make a better persistent version one day but it needs a lot of hardware to support most users complete lack of optimization (or deliberate resource hogging attacks).

Schemaverse isn't nearly as polished as this is but if you are looking to battle some AI, give it a chance.

<comment><USER4> Why not hard limit amount of time people's algorithms can spend?

<comment><USER3> At some point there is so much data available to work with that even nicely optimized queries become too slow. This may have also been a limitation of hardware but either way the game quickly became not fun when it was persistent.

</comment></comment></comment></comment><comment><USER5> It would be great if you could view the source for the existing functions such as getNearest(), It would save much time reimplementing modified versions of them. For example if I wanted to make a getNearestArcher() method to enable my archers to focus the enemy nearest enemy archer at certain points, I'd take the existing function and just add an additional type check rather than writing my own function from scratch.

These types of games are really interesting and having this one available in the browser gives it a significant advantage over others such as [http://aisandbox.com/](http://aisandbox.com/) which when tried was a little too complicated to setup for casual usage.

<comment><AUTHOR> Hi @Robadob, great suggestion, thanks for pointing this out! You can actually view the code for these functions in the Level Editor, but obviously it would be much more awesome to have a way to view them from inside the game. We have to strike a balance with the UI to make the learning curve less steep while at the same time providing a wide range of features. I'll bring this up and see what the rest of the team thinks.

</comment></comment><comment><USER6> I like this, it reminds me a little bit of corewars. Is there a way to get an enemy's type when programming from the base?

<comment><AUTHOR> Thanks AUmrysh! If you use `this.getEnemies()` it will return an array of enemy objects, and each one of these objects has a `type` property.

</comment></comment><comment><USER7> As if programming culture wasn't hyper-macho and competitive enough.

<comment><USER8> That's a really valid concern, although we were surprised by how many of our users specifically requested this feature set.

<comment><USER7> Well it looks like a cool concept, and all the best!

<comment><USER8> Certainly, thanks for checking it out. I hope it goes without saying, but if you find anything that's terribly, broken, or in need of improvement, shoot me a line at email@example.com and we'll get it resolved for you.

</comment></comment></comment></comment><comment><USER9> This looks awesome(if a bit slugging right now, probably because of HN).

Reminds a bit of my darker days working with Macroquest.

</comment><comment><USER10> it'd be cool if you made it so I could customize the characters eyes ... then I could make my guy look like a jawa.</comment>


Show HN: A no-drinking Telegram chatbot and $100 challenge to quit for 100 days - <AUTHOR> https://zeropercent.club <comment> Pete-Codes Uh, you are making $100 if someone commits to stop drinking and isn't able to? So you're making money from someone's addiction, you know this right?

</comment><comment> Pete-Codes Pieter Levels made this site like 5 years ago as well. It's good to make new things!</comment>


DropZap sequel is free for a limited time.  Feedback would be appreciated. - <AUTHOR> http://itunes.apple.com/us/app/dropzap-2/id378977964?mt=8

<comment><AUTHOR> Gameplay video: <http://www.dropzap2.com></comment>