Ask HN: What service would you pay me 10$ a month for? - <AUTHOR> I'm looking for ideas to build an MVP and I thought I would hit up the HN community.  As developers, entrepreneurs and techies, what service that doesn't exist now would you gladly pay a monthly fee to use if it existed? Or, if it exists, what service would you use if it was cheaper?<p>edit: spelling <comment><USER2> Summary/review of local arts and community events, mainly underground stuff. I don't have enough time in my day any more to look up who's playing a local show, what they sound like, when they're playing or where. Also don't have time to look up art shows or indie movies, or community-planned events and classes. There's a buttload of these things in big metropolitan areas, someone just needs to get paid to take the time to sort through it all and summarize it each week.

None of this is covered by local magazines or blogs. I can go out to record stores and coffee shops and collect flyers, search through myspace and facebook profiles for event listings and index twitter posts, but it takes all freakin day. If it was collected, summarized and publicized properly I think a lot more people would get out there and see what up and coming people are creating.

Even if it were all covered by blogs (a lot of it is on twitter), I don't want to search through blogs or twitter or whatever, I just want an e-mail telling me what's coming up and describes it. That'd be worth $10 for me.

<comment><USER3> Might as well throw my hat in the ring: My site Showhopping.com was basically invented for people like you. Only thing is it only applies to music at the moment.

Give your location, 5 or 6 bands you like, and voila, you get a listing of shows in your area that you can sort by how much you'll like them.

No email. No username. No usership requirements whatsoever. Just use and go. Oh, and I save your selected bands in a cookie so they're there for you when you come back.

<comment><USER4> I added 6 bands, got a very small number of matches (in NYC!), and most of the matches are in the <20% range.

Is there any way to feed my Pandora or Spotify data into this? Seems like that would help produce better recommendations.

Edit: I do have to say, the design is very well done-easy to add bands, search, and the integration with Google Maps is very nice. The fact that I didn't even think about it is a great sign.

<comment><USER3> Thanks for the words. This is more an MVP at this point. My short term roadmap:

Last.fm, Pandora and Spotify logins

Users/Managers/Promoters can add shows themselves; add listings for tickets

I'm a guy who likes very obscure bands and lives in Phoenix, Arizona, and with 9 or 10 selections (one for each sound I'm into), I tend to get back at least 4 or 5 shows for a month long search. It still has a ways to go, but it's more of a folly than a hardcore startup.

On an aside, a product exists for mobile called BandMate. It actually scans your phone for acts (if you keep your music in your phone) and recommends artists to you in a similar manner. Very cool app, and invaluable for me when I'm traveling.

</comment></comment></comment></comment><comment><USER5> Not sure if this is helpful, but I feel this is the wrong crowd to ask. Developer needs are pretty efficiently met. I'd suggest asking other groups, such as doctors, lawyers, moms.

<comment><USER6> This is the best comment. OP should buy and read "Desperate Buyers Only".

</comment></comment><comment><USER7> A movie information portal thing:

I like different cinema. I want lists of -

1) New releases on DVD; with links to places to buy those DVDs (or Blurays etc); also with links to different review sites; also with links to trailers

2) New releases in cinema; with links to trailers; with links to official sites

3) Awards; with links to trailers and buys

A bit like Little White Lies magazine, but online and interactive and better.

(<http://www.littlewhitelies.co.uk/>)

<comment><USER8> I suppose IMDB (<http://www.imdb.com>) already provides most of that.

<comment><USER7> But IMDB is hideous, and also crowd sourced.

I'd prefer something more carefully curated, and more tailored towards different cinema. (Indie movies; Foreign cinema; art house nonsense; etc.)

</comment></comment></comment><comment><USER9> I would gladly pay 10 dollars a month for a service that mailed me a crisp new 20 dollar bill each month. In fact, my whole family would!

</comment><comment><USER10> A service that suggests, schedules and plans things to do for the entire week for a couple to do after work.\

Things to do can be events happening in the city or restaurants they should try and eat at. It can apply the $10 fee towards any event ticket/restaurant purchased by the couple.

<comment><USER11> A friend and I currently building daretogoout.com You are not going to find any events in your city yet. The only city we are currently experimenting with populating is west orange, nj. Give the site some time, and we will eventually reach your city.

</comment></comment><comment><USER12> Not sure if this fits, but: the ability to have food delivered from any restaurant I want (say within 5 miles of me), when I want.

<comment><USER13> I just (3 days ago) moved into a new city (Brighton, England) and this exists here[1]. It's amazing, seriously. I assume there's all manner of licensing crap associated with doing it as a big company (which is why the people that do it here are very low-key and haven't expanded beyond this city) but something like this globally would be so great, although there's little room for making money unless you do the aforementioned licensing.

I've used them twice so far, there's an extra time associated with delivery because they first have to go to the restaurant and order, then wait and deliver to you, but it's worth it, although I've only used them for McDonalds and Burgerking so far, both were delivered in ~90 minutes. They support about 100 different places, fast food and real restaurant.

[1] <http://www.dinner2go.co.uk/>

<comment><USER14> It's not just dinner2go but you've also got JustEat and TakeAwayMenu who do the same thing in Brighton.

<comment><USER13> No they're different. Just-eat is a directory of restaurants that places an order with a restaurant and then that restaurant delivers, whereas dinner2go themselves handle the delivery. When I place an order for McDonalds the dinner2go driver goes to the restaurant, orders for me and then delivers it to me. I guess a good explanation is that they are a proxy.

</comment></comment></comment></comment><comment><USER15> "It's really hard to design products by focus groups. A lot of times, people don't know what they want until you show it to them." \-- Steve Jobs, BusinessWeek, May 25 1998

<comment><USER16> That's cute and all, but there's a difference between starting a business to solve problems and make the world better, and starting a business to convince people to buy shit they don't need to feel better about their lives.

<comment><USER6> No, the idea is to make money. Everything else is just a Press Release.

<comment><USER15> It's worth noting that I disagree with this statement, too. Corporations do have a social responsibility. But more tactically, simply because you can't separate actions from revenue. Intangibles like customer service, community impact, design, etc. may seem "wishy-washy", but have a measurable effect on a bottom line. You can't create value for the shareholders without creating value for employees, customers, and economies.

</comment></comment></comment></comment><comment><USER17> A music service with the easy social and cross-platform functionality of Spotify, the adaptive radio of Pandora, all set up with the scrobbling power of Last.fm.

<comment><USER18> Rdio is pretty close to this.

</comment></comment><comment><USER19> I hate wasting time on sites like ebay, but inevitably get sucked into them every now and then. I'd gladly pay you ten bucks a month to surface stuff I might want, even if I had to do some initial setup work.

For example if you see an X61 with the SXGA+ screen on a buy now price, I want to know (rare as rocking horse poo). Or Lego with at least 30% off is always good for my boy or birthday presents.

You'd need to err on the side of caution, because I'd rather miss stuff than be spammed, but thankfully that makes your job easier!

<comment><USER20> Currently working on a concept similar to this, but around classifieds and private sellers rather than companies.

The basic premise is along the lines of "Tell us what your looking for or interested in and we will tell you when a good deal turns up somewhere"

The point being it may not be available now, but when it is we will let you know.

Still in early prototype at the moment and focused on a specific niche but we aim to expand rapidly.

<comment><USER19> Cool. Give me a shout when its ready for beta users and I'd love to give it a try.

<comment><USER20> Will do!

</comment></comment></comment></comment><comment><USER21> I would be interested in a service similar to pantybypost.com, but instead of panties, I would receive cool gadgets, toys, candies each month.

<comment><USER7> Citrus Lane do this for baby things.

(<http://www.citruslane.com/>)

</comment></comment><comment><USER11> I would gladly pay 10 dollars for a service that can find me tasks to work on each day. Maybe a website with head hunters.

Example: I sign up with the website and input my skills and availability. 'I am currently available' A headhunter than finds me a task to work on based on my skillset. In return I pay a share of my profits to the site for each job / task completed.

<comment><USER22> what kind of tasks/jobs are you talking about? construction type jobs or software ...?

<comment><USER11> Tasks is a pretty general term. I am not referring to a construction type job. I am referring to any task that can be accomplished over the internet. A task such as fixing a website, doing research for someone, photo touch ups, tutoring with a shared monitor, answering technical questions, etc..

<comment><USER22> Are you referring to something like Amazon's Mechanical Turk: <https://www.mturk.com/mturk/welcome> ?

<comment><USER11> Amazon's mechanical turk barely pays any money. You can spend hours completing mechanical turk tasks and not even make a dollar. Probably something closer to Fiverr, but the other way around. Like on Fiverr people post things they are willing to do for 5 dollars. What about a site where people post things they want you to do and are willing to pay you X number of dollars to complete the task.

<comment><USER22> True true, maybe something like Zaarly or Task Rabbit would be true here?

<comment><USER11> Wow, thanks a lot freddy. I had never heard of Zaarly or Task Rabbit before you mentioned them. These are great.

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> I think the only online subscriptions I ever signed up for were for games. Specifically I paid for WoW and WeeWar for a while (in fact both not longer than 3 months).

Perhaps a really good magazine could convince me, too, but it would have to be very special interest (machine learning or games).

Edit: I forgot, I also pay 15€/month for a server. Also Ultima Online, back in the day...

</comment><comment><USER24> Something along the lines of Gary Bernhardt's Destroy All Software (<https://www.destroyallsoftware.com/screencasts>), but focused on iOS. Feels like there's a lack of advanced iOS knowledge sharing on the web.

As for web utilities, there's really nothing I'd pay $10 a month for.

<comment><USER25> Also, a Django version of Railscasts?

</comment></comment><comment><USER26> I would pay $10/month (or more) for a individual designer or store to send me interior designs pieces / artwork that I can try out in my home that month. Items I really like I'll buy, items I'm not crazy about I ship back. I'd pay an additional fee for insurance to cover accidental damage.

</comment><comment><USER27> An alternative to QuickBooks Point of Sale. In fact I might be 30 or 40 /month for that.

<comment><USER28> I've been working on exactly this for the last couple years. You can find us at cashierlive.com - my email is in my profile if you have any questions.

<comment><USER27> Awesome! Email sent!

</comment></comment></comment><comment><USER29> An easy way to hire copywriters for small (< 1 hour) jobs.

<comment><USER30> Are you familiar with Text Broker? There are some high quality writers there. If you're looking into it, be sure to use the author search to submit a direct order. Don't submit an open order (quality is not guaranteed and I haven't had luck with it). <http://www.textbroker.com/>

</comment></comment><comment><USER31> Think about asking the same question from a different perspective: What service would you _as a business owner_ pay me 10$ a month for _to help your business_?

</comment><comment><USER32> I would pay even more for a iOS app website/landing page.

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

</comment><comment><USER33> I would pay for a large file transferring service.

<comment><AUTHOR> I wonder if there's way to do it while avoiding the issues faced by megaupload and others?

<comment><USER34> Sure there's a way to do it - actually police activity and don't flagrantly flaunt the law. Megaupload is basically the online equivalent of selling weed out of a pizza parlor.

</comment></comment></comment><comment><USER35> This looks like a recurring fiverr.com type service (whereas Fiverr is more one-time). Am I mistaken?

</comment><comment><USER36> People don't know what they want until they see it.

</comment><comment><USER37> Riaa / mpaa lawsuit indemnification service.

</comment><comment><USER38> Deliver restaurant food from 11-pm to 7-am.

</comment><comment><USER39> Link building service. Article writing.

</comment><comment><USER40> A file backup service or site/server monitoring service.

<comment><USER41> What did you want from a site/server monitoring service?

</comment></comment><comment><USER42> * A kickstarter like website that has an api available internationally. It should include functions for adding many campaigns (maybe a limit of 1000) and also detailed historical data (so I can see other people's campaign histories and see what works and doesn't). If you can make it an investment site in accordance with the recent jobs act crowdfunding even better.

* Rentacoder like website with all functions exposed as api.

<comment><USER42> Also

* prediction market/betting site (with ability to bet on anything) with api and detailed historical data.

* Also, a stock exchange where I can invest in houses, small local businesses, commercial property. Should have api and historical data.

* A patent stock exchange (api+data)

Not $10 a month service, but something I'd pay for (maybe up to $10 per hour) Internet access to a factory robot.

$10 service - rentacoder like site except for factory automation services (bids/fulfillmnt on design of turn-key automation systems) along with api.

<comment><USER43> What would you use this factory robot for?

Also, the setup time of any factory automation task is huge - would you be willing to pay for this as well?

<comment><USER42> Factory robots for prototyping machine vision guided tasks. Factory automation website because it should be easier for engineers to bid on jobs that need to be done (like rentaacder does for design/coding) and for manufacturers/entrepreneurs to get quotes for new projects (I'm looking more from the outsourcing perspective, I want to get the lowest quote from around the world for machines and then have them built and shipped to where I specify easily. Engineering services are way overpriced).</comment></comment></comment></comment>


Wael Ghonim: The Most Inspiring Googler Who Helped Spark the Egyptian Revolution - <AUTHOR> http://thelede.blogs.nytimes.com/2011/02/08/subtitled-video-of-wael-ghonims-emotional-tv-interview/

<comment><USER2> Why does the media keep repeating his employer's name? It has nothing to do with his activism.

<comment><USER3> Actually it does, in so far as people like him are likely to be very common in Google compared to other places.

<comment><USER4> I have a lot of respect for Google and perhaps I am just misunderstanding your point. Are you trying to say "People brave enough to face battalions of armed police while protesting against a totalitarian regime are very common in Google"?

I hope that is the case but it would be hard to provide objective proof of that.

I think there is another, better justification for naming Google in this story and that is - they risked acting against their self interest by creating the call-to-tweet tool for the protesters in Egypt. It used to be accepted practice for corporations to 'stay out' of foreign issues that don't directly impact them and Google had the cojones to side-step accepted practice in favor of what is right. Then again, Twitter and Facebook have taken similar actions in the past.

This is not to minimize the positive contributions these companies made, but it is not the same as facing armed police at great personal risk.

</comment></comment></comment><comment><USER5> Wow - the video shows a very inspiring guy - not because he is particularly charismatic, but rather because he seems humbled by his role. Clearly feels that he is playing a small part in a larger movement, and deeply patriotic.

</comment><comment><USER6> Incredibly moving ending of Wael weeping as he sees photographs of some of the killed protesters for the first time. Truly sad and heartbreaking, yet highly inspirational moment. In the end, one can only hope the Egyptian people finally find the peace, freedom, and fairness they have been fighting so diligently for.

</comment><comment><USER7> I would be interested to know how he failed to keep his anonymity when he claims he was anonymous yet Egyptian police arrested him.

<comment><USER4> Once he was arrested, I assume it made a lot of sense both for him and his family/friends to 'out' him(self) as a senior executive at Google. This may have even saved his life.

This assumes the Egyptian police hadn't already found out his identity from some other source before or after the arrest.

</comment></comment><comment><USER8> I haven't yet seen any sign of Google reacting to all this news about him, positively or negatively. Have they?

<comment><USER9> The interview? or the fact that he was found (<http://twitter.com/google/status/34676106900541440>)?

<comment><USER8> Anything really. Thanks for the link. I'm curious as to whether Google will express any support (or non-support) for his pro-democracy activities. I can imagine them going either way on this. Most likely they'll say nothing.

Also, he wasn't, of course, "found". He was released in response to international attention after having been imprisoned and tortured by a dictator's thugs. (Being blindfolded for 12 days counts as torture in my book.)

</comment></comment></comment><comment><USER10> Was it ever established how the Egyptian policed determined that he had started the Facebook page?

<comment><USER4> From what I understand, he admitted he did. [http://www.newsweek.com/2011/02/08/google-executive-wael- gho...](http://www.newsweek.com/2011/02/08/google-executive-wael-ghonim- admits-he-was-el-shaheeed.html)

<comment><USER10> I'm asking how the police knew it was him before they grabbed him.</comment></comment></comment>


Fluent CV – A 21st century resume and career management tool - <AUTHOR> http://fluentcv.com/ <comment><USER2> So. When. Is this happening?</comment>


ITunes store now compatible with the GPL? - <AUTHOR>

http://www.apple.com/legal/itunes/us/terms.html says:
You may not copy (except as expressly permitted by this license and the Usage Rules), decompile, reverse-engineer, disassemble, attempt to derive the source code of, modify, or create derivative works of the Licensed Application, any updates, or any part thereof (except as and only to the extent that any foregoing restriction is prohibited by applicable law or to the extent as may be permitted by the licensing terms governing use of any open-sourced components included with the Licensed Application).
When did that change?  Does that mean I could include a GPL executable as part of my app? <comment><AUTHOR> where's the amendment to this post: [http://www.fsf.org/news/blogs/licensing/more-about-the- app-s...](http://www.fsf.org/news/blogs/licensing/more-about-the-app-store- gpl-enforcement) ?

</comment><comment><USER2> The problem is that Apple's terms add restrictions, which the GPL prohibits. If the author had uploaded the code, Apple's defense could be "Well, they agreed to the terms, so their item is licensed under the combination of our terms plus the GPL's terms, even though the GPL claims that it can't be modified." Unfortunately, that doesn't work AT ALL if the work includes GPLed code from a third party.

The solution is to create an "Itunes Open Source License" which says "The terms of the GPL are superior to the Itunes license when they do not conflict, but the Itunes license is superior if they do."

Or, alternatively, kick Apple's butt until they stop trying to restrict freedoms granted by the GPL. At that point, the usage terms will be compatible with the GPL.

</comment><comment><USER3> I think some people are still complaining that the App Store does not provide app source code on request.

<comment><USER4> No, they're complaining about the copy protection on the binaries both legal and technical

<comment><AUTHOR> the above clause says the copy protection does not apply to the open source portions, so what's the problem?

<comment><USER4> That doesn't fix the technical part. You can't copy apps from one phone to another, etc, which is a prime issue with the GPL.

<comment><AUTHOR> But in the mac app store (which is also delivered by itunes) you could.

<comment><USER4> no, it's delivered by the Mac Appstore app.</comment></comment></comment></comment></comment></comment>


Calculate the cost of a DDOS attack - e-sushi https://www.helpnetsecurity.com/2016/04/04/ddos-downtime-calculator/ <comment><AUTHOR> "To use the DDoS Downtime Calculator, simply visit the calculator page and answer six short questions about your organization and its existing security measures."

And give an email address for them to deliver the key results that couldn't possibly be delivered right on the web site itself...

I'd recommend against detailing your existing organization and security measures on a webform that can be trivially associated with your work email address. The very best that will happen is that you'll get a bunch of sales information into your inbox.

<comment><USER2> For what it's worth, I answered accurately (except for my email address) and was told that we had a FALSE% chance of suffering a DDOS attack.

Needs some work.

<comment><AUTHOR> It needs work only if the intent is to provide an accurate estimate.

Since the more likely intent for the tool is to generate inbound marketing leads from potential customers, ideally those less than fully clueful, I suspect it's "WONTFIX: working as designed".</comment></comment></comment>


Extracting method signatures from java files - <AUTHOR> http://stackoverflow.com/a/14038830/1557187

<comment><AUTHOR> With some help, we can refine this regex to be even more exact :)</comment>


Plot to Poem (2017) - <AUTHOR> http://static.decontextualize.com/plot-to-poem.html <comment><USER2> Looks like author is comparing document vectors using nearest neighbour.

I thought cosine similarity was considered the best measurement for closeness of word and document vectors.

</comment><comment><USER3> Well, I created a poem generator some ages ago using markov chains! It was darn good!

</comment><comment><USER4> The intersection of lit and script is pretty cool! Also, well documented repo</comment>


Dear Robert Scoble, Please Slow Down with your Tweets - <AUTHOR> http://i38.tinypic.com/2e67kb6.png

<comment><USER2> The problem as Twitter catches on is that some people seem to feel the need to ramp up their tweetrate.

IMO, the idea behind 140 characters is to share compact thoughts and ideas in moderately spaced intervals.

If you have 1400+ characters of updates in an hour, twitter ain't the platform...

</comment><comment><USER3> You're only following 33 people... and one of them is Scoble. You have to expect your Twitter stream to be dominated by him. Especially during a conference.

</comment><comment><USER4> Just unfollow him.

<comment><AUTHOR> Trust me, already done - even so, and while I understand the thrills one can have at a conference they're really excited about what makes that many updates barraging other folks an 'okay' thing.

<comment><USER3> I think the fact that so many people follow him and don't seem to mind. If it wasn't an "okay" thing, then more people would unfollow him and Scoble would be forced to change his tweeting behavior if he wanted to retain his large network.

In other words, what's acceptable is whatever people are willing to put up with.</comment></comment></comment>


Personal Observations on Reliability of Shuttle (1986) - <AUTHOR> https://history.nasa.gov/rogersrep/v2appf.htm <comment><USER2> Quote "There is not enough room in the memory of the main line computers for all the programs of ascent, descent, and payload programs in flight, so the memory is loaded about four time from tapes, by the astronauts."

Woah. Did they do this right until 2011, or were their systems upgraded?

<comment><USER3> I don't know that, but if it wasn't breaking at all then why would they be upgrading solution than never failed?

Apollo 13 whole computer system had less power than the phone in your pocket; yet that was perfectly enough to run the vehicle. Crazy times...

<comment><USER2> Agreed. Although in this case it would seem like it was increase on the astronaut's workload, having to load each program from tape. Also the article mentioned that they were using outdated software development methods and tools, whatever they were it didn't mention.

Btw, found my answer after some googling, they were upgraded in the early 90's then again in early 2000's [http://www.aviationtoday.com/1999/11/01/the-space- shuttle-mo...](http://www.aviationtoday.com/1999/11/01/the-space-shuttle- modernized/)

quote "In addition to 11 MDUs in the shuttle, MEDS has four integrated display processors (IDPs) that contain 386DX computers and a 300-megabyte hard disc."

MDU - multiple display unit.

<comment><USER4> It's interesting that (from the very interesting cited article) the processor in each MDU, an R3000, is more powerful than all the legacy IBM 4Pis serving as Shuttle main computers.

</comment></comment></comment></comment><comment><USER5> Funny, I just reread "What do you care what other people think?" yesterday. The parallel of NASA's design process for avionics software to TDD is both striking and revealing. People struggling with TDD could definitely benefit a lot by thinking hard about the examples of the main engine design process and avionics software. Thanks for posting!

</comment><comment><USER6> Previous discussion:

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

</comment><comment><USER7> > A mathematical model was made to calculate erosion. This was a model based > not on physical understanding but on empirical curve fitting.

Very interesting point. A lot of today's "science" works like this, and it is a deeply flawed approach.</comment>


Thoughts on SimpleDB, DynamoDB and Cassandra - <AUTHOR> http://perfcap.blogspot.com/2012/01/thoughts-DynamoDBon-simpledb-dynamodb-and.html

<comment><USER2> Correct URL: [http://perfcap.blogspot.com/2012/01/thoughts-on-simpledb- dyn...](http://perfcap.blogspot.com/2012/01/thoughts-on-simpledb-dynamodb- and.html)

</comment><comment><USER3> For me, best take-away advice: 1. it is easy to start with DynamoDB and later move to Cassandra, taking advantage of DynamoDB's ease of getting started with. 2. Cassandra does not scale down well to small apps, but DynamoDB does.</comment>


Silicon Valley diet or eating disorder? - <AUTHOR> https://www.afr.com/lifestyle/silicon-valley-diet-or-eating-disorder-20190411-p51dao <comment><AUTHOR> Syndicated from [https://www.newstatesman.com/politics/health/2019/04/jack- do...](https://www.newstatesman.com/politics/health/2019/04/jack-dorsey- twitter-ceo-diet-eating-disorder-and-silicon-valley-normalises-it-tech- fasting)

<comment><USER2> "Syndicated" meaning "copied this article and stuck the copy behind a paywall and submitted _that_ copy to HN."

<comment><AUTHOR> "and submitted that copy to HN"

No, I don't publish the AFR. It's a newspaper, where I read the article first. After submitting, I did a search and found the probable original source, and posted that too (mainly to find out if it had been previously discussed here).

Syndication is a real thing that media outlets do.

</comment></comment></comment><comment> a0-prw > Every day of the working week, I anxiously check WhatsApp for updates on > "beef strip boy".

You and your friend should get a life.</comment>


Microservices-infrastructure 0.2 released - <AUTHOR>

Cisco Cloud Services is proud to announce the 0.2 release of microservices-infrastructure, a modern platform for rapidly deploying globally distributed services based on Mesos, Marathon, and Consul.
https://github.com/CiscoCloud/microservices-infrastructure
### What's new in 0.2
# Security: 0.2 was focused primarily on improving platform security for ZooKeeper, Mesos, Marathon, and Consul.
Setting up security couldn't be any easier. Simply invoke `./security-setup` prior to deployment and we take care of the rest, including generating SSL certificates for web admin consoles.
There are numerous other security enhancements-from dynamic firewalls that open ports based on discovered services to Mesos framework authentication to the beginnings of Consul ACL support.
# Dynamic Configuration: Consul's service discovery, dns, and key value storage provide a powerful foundation for building responsive distributed systems. In release 0.1 we introduced a dynamically configuring Zookeeper ensemble based on consul-template. In 0.2 we extend dynamic configuration to haproxy, nginx and firewalls for Mesos and Marathon. In future releases, we'll be moving more configuration out of Ansible and ssh to a REST API-centric system to provide a platform that can reconfigure itself with ease.
# The entire 0.2 changelog is available at https://github.com/CiscoCloud/microservices-infrastructure/blob/0.2.0/CHANGELOG.rst
### What's planned for 0.3
* Logging and monitoring
* Mesos + Consul integration
### Community
The project continues to see strong growth in contributions and deployments. We are thrilled to have received over 400 stars on GitHub in the past month! We're nearing 1,000 commits and the number of contributors has more than doubled!
You are invited to get involved and join the team! The team collaborates on Cisco Spark and GitHub Issues. Send an email to email@example.com and we'll add you to our Cisco Spark room! <comment><USER2> Genuine question. What makes this a blueprint for microservices infrastructure? What are the requirements for something that can support a microservice based design?

<comment><USER3> As someone who is contributing to this project, what we are focusing is making it easy to run and connect multiple containers and applications. We do this by:

1\. Building in service discovery. This means that containers register automatically with DNS (and mesos tasks will register with consul in our next version)

2\. Distributed scheduling. We use mesos to manage the running of containers and other processes. This means you can just use a an API call to launch a container, and that container will register itself in DNS.

3\. Framework support. One of the coolest features of Mesos is the ability to launch containers that easily run things like Kafka, HDFS and Cassandra clusters without having to use tools like chef or ansible.

Please let me know if you have any questions. I'm really excited about this project!</comment></comment>


Five Popular Myths about C++: Postscript - <AUTHOR> http://isocpp.org/blog/2014/12/five-popular-myths-about-c-bjarne-stroustrup <comment><USER2> There are a lot of objections to C++, but I've never seen any of the five he mentions. They sound more like strawmen to knock down than real objections by actual users or commentators critical of the language.

<comment><USER3> Objections from the article.

1\. "To understand C++, you must first learn C"

2\. "C++ is an Object-Oriented Language"

3\. "For reliable software, you need Garbage Collection"

4\. "For efficiency, you must write low-level code"

5\. "C++ is for large, complicated, programs only"

1\. Not a myth. To write your own C++ code, no. To do anything with C++ other people wrote... Yes, you must first learn C.

2\. Weird one, I don't remember hearing this one ever. But it'd be a myth on many levels. C++ has some object-oriented features, but it's indeed not an object-oriented language in the original sense of the concept from Smalltalk. But if you see the effort, it can be used as one. It can also be used as a procedural language. Or even as a functional one to some extent.

3\. Real myth detected! GC doesn't affect reliability. Manual memory management reduces reliability. In C++, you can do manual or RIAA-type memory management.

4\. This one is not a myth. To get best possible efficiency, you do need to use assembler or compiler intrinsics. The difference you can gain is up to 40x (in my personal experience, this case was about vectorization and branch elimination), typically 2-3x, so it's not insignificant either.

5\. Myth. You can use C++ for any size complicated program. You can write simple C++ programs, but the language tries very hard to make sure you can't understand a piece of code out of context. You can't even know what your _arithmetic operators_ do without knowing the includes and other context.

<comment><USER4> > the language tries very hard to make sure you can't understand a piece of > code out of context

The language goes out of its way to make it possible to write code that is understandable with as little context as possible; type deduction, lambdas, range-based for loops— all of these are tools for reducing the amount of context or number of contexts necessary to understand a portion of code.

The language also allows you to write code that requires an inordinate amount of context to understand, yes. So does C. Hell, so does every other programming language worth using. It's practically impossible to prevent such code from being written without totally crippling the language.

> You can't even know what your arithmetic operators do without knowing the > includes and other context.

If you can see that the arguments to your arithmetic operators are numeric (and you _should_ be able to tell without looking outside of function scope), you need no more context. If the arguments are of user-defined types, you need no more context than if a function named "plus" had been used instead of the function named "operator+." If _that_ is not enough context to understand the code, you have a problem with someone choosing poor names for functions, which goes far beyond operator overloading. For example, sure, operator overloading allows for code like

        auto operator+ (string_t a, string_t b) {
            return a.length () - b.length ();
        }

but so what? User-defined functions allow for code like

        void uppercaseify (char* str) {
            unlink (str);
        }

but it would be patently absurd to blame the _language_ for code like that.

<comment><USER3> I guess you don't maintain [legacy] C++ code. Occasionally I have to.

<comment><USER4> I have maintained C++ code that was poorly written, if that's what you're getting at, but I have yet to find myself maintaining C++ code that has been poorly written as a result of the design of the language.

<comment><USER3> That's unfortunately something you can say about any language.

</comment></comment></comment></comment></comment></comment><comment><USER5> > "Unfortunately, there is not a single place to go to look for C++ > Libraries."

I don't understand this. I code in C++ everyday at the moment (that's a story for another day) so I know the ecosystem, at least for scientific computing, pretty well. With all the changes and improvements being introduced, what's stopping a package manager from being added? The bane of my existence at the moment is the fact that I have this HUGE Boost dependency in my code, even if I'm only using a few packages. I know the Boost project has now finally migrated to Github and provides individual repositories for libraries. It just startles me that there isn't a single, consolidated package manager to have rolled out of the millions of work-hours that have gone into C++ projects.

It's possibly the single biggest criticism of the language that I felt wasn't tackled at all. There is a complete lack of consensus. In trying to accommodate everything and anything, C++ has in my experience overshot the mark.

<comment><USER6>
      The bane of my existence at the moment is the fact that I
      have this HUGE Boost dependency in my code, even if I'm
      only using a few packages...  It just startles me that
      there isn't a single, consolidated package manager...

Sincerely, I have never understood this common complaint about C++ (applies to C as well, actually). My OS comes with a _huge_ repo of C++ libraries. For example, there is a separate package for each of the Boost libraries you used as your example. Why do I need a C++-specific package manager? What's the use case? Windows?

<comment><USER7> Windows. OSX (to some degree; Homebrew and MacPorts mitigate this). Linux if you want library versions newer than those supplied by the distro, if you want something that's _not_ supplied by the distro, or if you want to be able to handle your build in a distro-independent manner (those "separate packages for each of the Boost libraries" you reference are provided by your distribution; Boost themselves only distribute one monolithic package from which you can, with some massaging, pull out individual parts if you really need to).

The language-specific package managers used with (for example) Python, Ruby, or Node give developers an OS-agnostic way to pull in dependencies, and, since dependencies are being packaged uniformly, avoids the conflicts between build systems that can make it hard for C++ libraries to coexist (this thing needs CMake, this other guy used Autoconf/Automake, and I've got Boost which built with Bjam, and _now_ I need to make it all work on Windows and they're all providing binaries built with different MSVC versions).

<comment><USER6> Do you really believe that a C++-specific package manager (PM) repo would somehow be much more up to date than an OS one? Why?

Any PM repo will eventually be missing something you need, and then you will have to compile it yourself, and if you've done that a few times you should have an idea of the difficulty involved in providing a set of compiled dependencies for _one_ system, nevermind multiple versions of multiple systems.

I don't doubt the usefulness of the Python, Ruby, and Node PMs, but those libraries mostly depend only on the interpreter and other interpreted code. It's just so much simpler. The fact that it's all going through an interpreter (compiled specifically for that system by the system PM in most cases!) solves so many of the problems.

</comment></comment></comment></comment><comment><USER8> Sometimes I just wish there would be less ISO standardization process and more new features added to the language. I guess it's not happening because language extension are evil and because maintaining compiler is hard.

But still, I think it would be great to be able to have module right now as an unofficial clang or GCC extension, even if it breaks later. I guess it has more chance happening in the open source realm.

</comment><comment><USER9> Manual memory in C++ is so cumbersome that is efectively imposible to develop programs with no memory leak bugs in real life.

Anyway, the more important fact about C++ is that it is a language complicated to no end, with an insanely bad design on purpose, so a couple of guys can sell consulting services, write books, and the like.

The year 2015 is about to come, let's just stop filling the world with such primitive and ugly ugly code. We have saner alternatives to C++ since ever.

<comment><USER10> shared_ptr<int> a = make_shared<int>(10);

What's so hard about managing that? shared_ptr is basically equivalent to Python garbage collection.

Shared_ptr were standardized in 2003, and Microsoft implemented CComPtr<> way back in the 90s for this easy to use reference-counted smart-pointer concept.

[http://msdn.microsoft.com/en- us/library/aa266806%28v=vs.60%2...](http://msdn.microsoft.com/en- us/library/aa266806%28v=vs.60%29.aspx)

So... yeah. Stop doing manual memory management in C++. Something better has existed... since the 90s.

So how about you criticize something in C++ that wasn't solved at least 16 years ago?

<comment><USER11> Correction: shared_ptr wasn't in C++98/03\. It was originally developed in Boost, then added to TR1 (in 2005), and finally incorporated into C++11.

One of the major differences between shared_ptr and CComPtr is that shared_ptr is non-intrusive - it can manage anything, even things like ints that don't know anything about strong/weak refcounts.

<comment><USER10> My history was off, thanks for the clarification.

Nonetheless, the concepts revolving around CComPtr and all that good stuff can be easily seen in C++98 / STL. STL Strings for instance automatically clean themselves up under the principles of RAII.

Auto_ptr<>, the first smart pointer, also was standardized in C++98. While crude and primitive by today's standards (especially compared to unique_ptr<>'s explicit RValue semantics), auto_ptr<> shows me that even in the mid 90s, people understood the principles of RAII.

At least, if you were a learned C++ programmer.</comment></comment></comment></comment>


LED stoplights not emitting enough heat to melt snow covering the lights - <AUTHOR> http://www.twincities.com/2017/12/05/snow-encrusted-led-stoplights-create-havoc-in-oak-park-heights/ <comment><USER2> This was news years ago. Cities were adding heaters to lights to solve the problem. Here's one article from 2009: [https://boingboing.net/2009/12/17/led- traffic-lights-d.html](https://boingboing.net/2009/12/17/led-traffic- lights-d.html)

<comment><USER3> And there's a commercial off-the-shelf solution:

[https://products.currentbyge.com/transportation- lighting/led...](https://products.currentbyge.com/transportation-lighting/led- traffic-signals/gtx-heated-shell)

(which only uses 30W for the heater, so it's still far more efficient than the old-style ~150W incandescent.

If the Minnesota DOT wasn't aware that this could be a problem, they are incompetent.

It's even a problem with little used incandescent lights... on a street where the light is nearly always green, the red light can still ice/snow over and not have time to melt during brief red intervals in cold weather.

<comment><USER4> The 30 watt heater should also last the life of the LED bulb, saving the maintenance every year or so to replace the traditional lightbulbs.

For most climates, designing in a temperature sensor to keep the light a little above freezing would pay back in well under a year of power savings.

Update: Did a quick search for LED traffic balls… looks like about 10 watts when on, and I don't see any of them integrating heaters. Market opportunity! Make LED traffic balls but add a tiny micro controller, thermistor, and a heating element, maybe attached to the existing heat sink and you are set. (Yes, attaching a heater to the heatsink sounds counterproductive, but you will be running it when the heatsink is nearly freezing so the LEDs will still have plenty of thermal differential to dump their waste heat.)

<comment><USER5> I'm not surprised there are no LEDs with heaters. Seems like it would be integrated into the housing/lense.

</comment></comment></comment></comment><comment><USER6> It'd be a bit complex, but why not spin the lens with a motor at high speed, like a clear view screen on a ship?

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

Actually, maybe it would be simpler than I first thought:

1\. Mount the lens using v-shaped rollers on the edges (three would be sufficient)

2\. Along the edge of the lens, attach permanent magnets - a ring of magnets with alternating polarity, NSNSNS...

3\. Coils along the edges (might even be able to do it with printed circuit coils) energized, interacting with the magnets to spin the lens.

Essentially, you're making the lens operate as the rotor of a high-speed brushless rotor. One could probably trivially implement a prototype of this using hardware store parts over the weekend.

In fact, this seems like such a simple solution, I wouldn't be surprised if there isn't a patent already out there describing it.

If not - consider this submission of mine "prior art" I guess - anybody at YC want to fund a startup? /lol

<comment><USER7> Makes sense, but wouldn't it be cheaper to stick a motor on the light to vibrate and detach the snow/ice?

<comment><USER3> In cold weather a car windshield can ice over at 60mph without defroster heat, I don't think a vibrating light housing will stop freezing rain from building up.

There is one thing that is proven to work in a wide variety of situations, is easy to supply, has no moving parts: heat. And there are already solutions out there to provide heat.

</comment></comment></comment><comment><USER8> It is a problem on modern cars as well, since most have LED tail lights. They get covered in snow and become invisible.

</comment><comment><USER9> Reminds me of this: [https://xkcd.com/1172/](https://xkcd.com/1172/)</comment>


Google Confirms Creepy New Privacy Problem - <AUTHOR> https://www.forbes.com/sites/daveywinder/2019/06/23/google-confirms-creepy-new-privacy-problem/#2b102bde9d8b <comment><USER2> "Wirecutter staff put this to the test using a decommissioned Google Nest Cam Indoor device and found they could, indeed, view a "series of still images snapped every several seconds" on that cam. The cam in question had been signed up to a Nest Aware account and linked to a Wink smart-home hub. Even though the Nest instructions for factory resetting the device were followed and there was no access to the live stream using either the desktop or mobile app, nor indeed the Wink app as the camera was no longer online, things got creepy when the Wirecutter reporter created a new Nest account on a new Android device. "Going back to our Wink app," the report states, "we were also able to view a stream of still images from the Nest cam, despite it being associated with a new Nest account.""</comment>


Hackers Steal Photos from Plastic Surgeon, Claim Trove Includes Royals - <AUTHOR> https://www.thedailybeast.com/hackers-steal-photos-from-plastic-surgeon-to-the-stars-claim-they-include-royals <comment><USER2> "None of a selection of tested photos returned any matches from Google reverse image searches, implying that they were indeed obtained from a private source." this doesn't sound like proper investigative process...</comment>


A Raytracer Implemented in LOLCODE - <AUTHOR> https://github.com/LoganKelly/LOLTracer <comment><USER2> Dude you're doing it wrong...

OBTW Convert a binary number into a decimal number. The binary number must be provided in the format return by decimal_to_binary. TLDR

...variable numbers and procedure names are too readable.

That should be something like this:

      OBTW

      count ur 1s as human hand
      1s it haz shape like hand before thx

      TLDR

</comment><comment><USER3> Great work! For those who crave more insanity, see also the HTTP server written in LOLCODE: [https://github.com/justinmeza/httpd.lol](https://github.com/justinmeza/httpd.lol)

</comment><comment><USER4> It's more readable than most language o_O

<comment><USER5> Even more so with syntax highlighting: [http://i.imgur.com/pDSUIb5.png](http://i.imgur.com/pDSUIb5.png)

<comment><USER6> Please let me know what is the font. I want it in my Visual Studio now.

<comment><USER7> Possibly a TTF enlargement of artwiz "snap"?

</comment></comment></comment></comment><comment><USER8> Jesus, LOLCODE version 1.3. I'm glad we're still able to have a sense of humour about language development, though.

</comment><comment><USER9> I love the effort, it is absolutely worth praise. That being said, this is one of the last things I expected to show up on the internet.

<comment><USER10> Does that mean that the internet is now nearly complete?

</comment></comment><comment><USER11> I remember a while back a bunch of anti-feminists were building a tongue-in- cheek language called C+= to make fun of your average SJW (and presumably also compile down to regular C). Did that ever get anywhere?

<comment><USER12> Not really. The problem was that the people behind that particular parody were forging the commit messages as emails from certain feminists (which also pulls in their gravatars on many sites)

This got them booted out of Github, Bitbucket, and Google Code. Last I knew, it was running on some random guy's gitlab server with no activity.

</comment></comment><comment><USER13> Somebody has too much time on their hands.</comment>


Invisible Women - <AUTHOR> https://99percentinvisible.org/episode/invisible-women/ <comment><USER2> > It had a huge impact, reducing the people admitted to emergency centers, > women in particular, and had a corresponding economic impact from lower > healthcare costs. Driving through a few inches, as it turned out, was less > dangerous than walking through the snow, particularly if one was pushing > something like a baby carriage as well

Ok but what was the overall economic impact on the town? Did unemployment change? What did it do to population? The author makes it seem like there was no downside. Without more information, that seems dishonest.

<comment><AUTHOR> Hopefully, the author discussed it in detail in her book.</comment></comment>


Ask HN: Should I code for equity? - <AUTHOR> Hello HN,
I am Mid/Senior developer, and I have a part time job with that pays the bills and I don't need more money right now.
I was thinking about starting to code for  pure equity, like warrants for 1.5x of my rates based on current valuation.
Do you think this is a good idea? I am assuming finding clients are not hard, am I wrong? How should I set it up legally? <comment><USER2> If they have a current valuation, from a priced round, they can probably pay; I'd go that route. If they don't have a priced round, I'd recommend code at a rate in exchange for convertible debt, with a reasonable discount on their next priced round. It's just cleaner, though it could have an impact on their future financing, but that's not your problem. For example, let's say they agree to $150 per hour and a 20% discount. Then, you give them 1000 hours worth of work. you have $100000 worth of debt (technically, plus your interest), they raise a round of $2m on $4m and you are getting $100k worth on $3.2. Or, a scenario where they raise convertible debt for seed and the incoming investors see your discount for in-kind, not cash. That could be a problem.

Here's your problem. Startups want to get as much as possible and given that you have a day job, that's going to create some friction. If they are hustling and pressed enough to go for this sort of arrangement, be prepared to be micro-managed, for free work. And what happens when they argue with you over how long something "should take" vs. how long something did take.

Good luck.

<comment><USER3> It is sometimes tough to work for startups even if you are getting paid. A large part of freelance work with startups is determining scope, because they won't do that for you!

(no one will do it for you, but startups tend to be much less "understanding" ... which is understanding I suppose)

</comment></comment><comment><USER4> Working for a startup this way would essentially turn into an angel investor, but instead of investing money you're investing your time. If you really believe in the team (grit and execution is more important than ideas IMHO) you could absolutely do this. But keep in mind that investing in startup is all about making 10 or 100 bets and hoping that while most of them will go bust some of the bets will earn outsized returns. Common wisdom is that 9 out of 10 investments go belly up but the tenth become Facebook and the whole portfolio makes a good profit.

How many startups can you invest your time in and how confident are you that you can find the startup that succeeds?

Now, if I where in your shoes, and I am in fact quite envious of the freedom you have, I would find a startup and a cause that I enjoy working with and disregard financial outcomes. Maybe see if there are technical solutions that I could help with to combat human trafficking or child pornography.

<comment><USER5> Interesting idea, but I'm not sure it would work. An angel investor typically invests only a small sum, and I don't think investing only a little coding time is going to help a startup a lot.

On the other hand, you could set up a firm with a number of people who invest their time in a larger number of startups. Like a VC fund, but for coding.

<comment><USER4> I meant it as a rhetorical question, so the idea is entirely yours. But I like it, kind of like a collective of coders investing their time in startups. Even if individual bets don't pan out all the collective bets might/could pay quite handsomely.

</comment></comment></comment><comment><USER6> > Do you think this is a good idea?

Absolutely not. Coding for equity is essentially working for free since you have ZERO idea of when or if their business will be profitable enough for an IPO or a sale. And since literally anyone can claim to have a Facebook killer in their head these days, literally anyone can claim that they have a startup (IIRC, you don't need to file any sort of paperwork to be a sole proprietorship in the US).

Best case out of all this is that they pay you as an independent contractor. But even then, it's probably going to be a lot less than what you'd earn in a truly paid role. And you're withholding taxes on your own, so there's that issue. And the business owner(s) could still probably claim taxes as sole proprietors since you were never really employed (read up on contractor classifications). And etc, etc, etc...

Again, just don't do it.

</comment><comment><USER7> When I first began, I thought about doing this, and I had done it for someone, they would invest in just the domain and hosting, but I'd end up doing all the coding, and I wasn't experienced enough at the time, so the idea was scratched.

Nowadays, with more experience, and knowing what I know now: I wouldn't do it. It's like taking on an unpaid internship, and well, I got bills to pay. I might be willing to negotiate a lesser salary until things took off, or I had some ownership and stock in the company, which might make me change my mind.

However, I did build a website, for an engineer who had a pretty solid product, and after 3 years or so of working for him, he gave me stock in his company, but thought that by doing this, he could skimp out on paying me, even though I didn't charge him very much to work on his website. He eventually found another developer and paid them what he wouldn't pay me. But I'm definitely no longer in the business of working for free, except of course, for myself.

</comment><comment><USER8> If you don't need the cash right now, and are okay with not getting a return on your investment for many years (if ever), go for it. Just make sure you vet the opportunity as an investor would, not as an employee or contractor would.

This means understanding the company's team, product, market, financial condition etc. You also need to understand the full cap table and who has liquidation preferences, how your shares might get diluted, and other such factors. If you don't intimately understand what all those terms mean, don't do it.

If there is a current valuation that probably means they either have raised significant amounts of capital in the past or have significant revenue. Which raises the question of why they'd even be willing to pay a premium to compsensate you in equity.

</comment><comment><USER9> Hell no!

Considering 99% of startups fail, and I'm guessing on average, start-ups reach a liquidity event in let's assume 5-8 years if not more, you're basically working for free on the off chance (1%) that you might get paid in 5-8 years?

<comment><AUTHOR> but the 1% that pays going to pay 100X , isn't that how VCs operate?

<comment><USER10> If you can get VC-like dealflow and vetting - yea. Would need a few years before building a reasonably sized portfolio too. On top of that - this kind of a deal isn't going to play too well with future investors. Not to mention you won't be getting liquidation preferences etc.

It's stacked against you in every possible way. You could work for regular pay and just make angel investments?

</comment></comment></comment><comment><USER11> I think you should not, because you're trading time which is your most valuable asset, and (statistically) you're not good at picking the right startup (read it as "you're not guaranteed to be good", I don't want to say that you're necessarily bad).

To elaborate. An angel investor has a lot of money, say a spare $200k, so she can invest $20k in 10 startups. If one of these does 20x in, say, 5-10 years, she doubled the money which is good.

You, instead, will only bet on one startup. From a purely monetary perspective, you shouldn't go too early stage to increase your prob of success. At that point, might as well work for a late-stage startup that offers cash + equity.

In your situation, I'd find a cofounder and a project, that can either become a startup, or even just grow to a passive source of income. If you arrive to a good amount of money, then you can think investing.

If you decide to go for it anyway, from a legal point of view I don't think you need anything. The easiest thing is that you'll become an advisor for a small percentage (I assume of very cheap stock options). Keep in mind that it will take several years before you these options may become stocks (company goes public) and there are many ways for the company to silently cut you out of the pie if they sell or exit in any other way.

<comment><AUTHOR> My plan is not to invest all of my time in 1 startup, I was thinking of doing 2 or 3 a year, I don't want to build their whole product! In 5 years I am going to have a portfolio of 10 to 15 startups, if one or two do 20x, I would collect all of my money plus nice return! And it is much more fun than to work 70 hours a week for a company for 5 years!

Legally what is the best way to reduce a chance of being cut of in sell or exit?

<comment><USER11> Ok, sorry that wasn't 100% clear to me, but in this case it makes sense.

To the best of my knowledge you have no legal solution -- that's probably where investors may give you good advice. But if the founders decide to close down and go work for another company, there's no liquidation event. This said, we go back to the 1:20, if your plan is to invest in many, then you should be good.

</comment></comment></comment><comment><USER12> You are in a very good position: you can pay your bills AND you have some more time on your hands. Start an own side project instead of working for someone else. This is from a father who thinks this would be a dream come true ;) ... use your time as long as you have it and create steady side income!

<comment><AUTHOR> I tried this couple of times but I am really bad at marketing, I currently have a ready product with no clue on how to market it! And I am unable to find a non-technical partner that meet my expectations!

</comment></comment><comment><USER13> I'll be in the minority here, but if you can partner up with an awesome non- technical co-founder on a project you believe in - then absolutely. Otherwise? Nah.

<comment><USER9> That's different, OP is asking to just code for equity and suggested finding random clients for it?

Sure, if you believe in the idea, and can find the right partner, then go for it, it's going to be your baby.

But coding for free on someone else's idea... no thanks

<comment><USER13> Yeah, it's too much risk and time. Maybe putting together really scrappy MVP's and taking a decent chunk, but I don't know too many _good_ founders who would do that.

</comment></comment></comment><comment><USER14> Yes, if you believe the idea has merit.

</comment><comment> ng-user Never a good idea.</comment>


Ask HN: How do you conduct literature survey for your research? - <AUTHOR> I am getting started with graduate research in Machine Learning and have a problem at hand. Other than consulting your research advisor, what methodologies do you follow to get the most information to formulate a new (and hopefully better) approach to the problem.<p>I am particularly interested in your discovery and organizational methodologies for the materials you read during literature survey. <comment><USER2> You have to read a lot of papers. Begin with survey papers for your field (ML is still a very broad topic, so see if you can narrow it down). Use Google Scholar to find papers by searching for various keywords pertinent to your subject. Then, you start looking at the citations (in both directions). Look at the papers that are cited by that paper, as well as the papers which cite the paper that you are looking at. Do this over and over (perhaps weeks and/or months), and you will have a good handle on the state of the art for that particular field.

Books will not give you the state of the art information, because they are outdated the moment that they are published. Wikipedia is often too light in its coverage of the latest research. Reading the latest research papers is truly the only way to know what the latest research is.

<comment><AUTHOR> > Begin with survey papers for your field

What exactly do you mean by survey papers?

I do have a narrow set of keywords that I should be looking for but only from common-sense. I have been compiling a list of generic approaches that might be helpful down the line.

> Reading the latest research papers is truly the only way to know what the > latest research is.

I've observed that often research papers get light on details of implementation just to not deviate from the core idea. While understanding the core idea helps, various new black-boxed techniques emerge in every paper (techniques which are cited in another paper itself). I've tried to prevent myself from being overwhelmed by keeping them as black-boxes for the sake of understanding the core idea, but when it comes to implementation, I feel the urge to understand those techniques intermediate techniques in detail which often put me on a longer path. Is this expected or should I adapt faster?</comment></comment>


NPR Gets $17 Million in Grants to Expand Coverage and Develop Digital Platform - <AUTHOR> http://www.nytimes.com/2013/12/16/business/media/npr-gets-17-million-in-grants-to-expand-coverage-and-develop-digital-platform.html

<comment><AUTHOR> Interesting tidbit: "Almost $10 million of the new funding will go to development of what NPR calls a "seamless local-national listening platform" that will allow listeners to switch smoothly from, say, a clock radio to a web-enabled car."</comment>


Three Optimization Tips for C++ - <AUTHOR> https://www.facebook.com/notes/facebook-engineering/three-optimization-tips-for-c/10151361643253920 <comment><USER3> Another presentation by Andrei on similar matters from GoingNative 2013: Writing Quick Code in C++, Quickly [0]. From memory, it has (at least) these three majors points

* Measure, then optimize

* Pay attention to data layout to keep the cache hot

* Techniques for devirtualization

[0] [http://channel9.msdn.com/Events/GoingNative/2013/Writing- Qui...](http://channel9.msdn.com/Events/GoingNative/2013/Writing-Quick-Code- in-Cpp-Quickly)

</comment><comment><USER4> Nice to see them closing those <uint32_t> tags. C++ users always forget to close their tags.

<comment><USER5> Your comment would have been amusingly surreal if there were no closing tags for the <uint32_t> stuff in the article. I'm almost disappointed that there were. I wonder who was responsible for that particular bug in the Facebook formatting code.

</comment></comment><comment><USER6> On my random forays into C++, I saw different things. Here were my three most important optimizations.

1\. Replace strings with integers wherever possible. Create a mapping table, use the indexes.

2\. Layout related objects close in memory. Even if it requires special data structures to do. Suppose that if I need A I am likely to need B soon. If B is physically close to A, then I am likely to find it in cache, which is about 10x as fast. So, for instance, don't store a tree as a bunch of random pointers. Store it as offsets inside of a fixed container of memory.

3\. Process data according to how it is laid out in memory. For instance walk through a vector, don't do random access into it. Again this is all about trying to make sure that stuff is in cache as often as possible.

For the second and third points I found it was a case of do it perfectly or don't worry about it. For example if I am missing cache regularly in three places, fixing one only mades my code 50% faster. Fixing the second one almost doubled my speed. Getting the last one was an order of magnitude speed increase.

<comment><USER7> After making sure you're using the correct basic algorithms, cache optimization is probably the one major thing that's really worth thinking about.

Even with hyperthreading and all the other fancy tricks that modern CPUs have, it's still a huge deal. I learned about all this stuff in general terms at university years ago, but it didn't really click until recently that even when the CPU is at 100%, it's very very often stuck waiting for a memory read to complete.

</comment></comment><comment><USER8> I'd be interested in seeing how much of this advice applies to architectures other than x86.

As a side note, definitely don't follow the advice about using position- dependent code unless you are working in a very performance-intensive and isolated environment. Just a single non-relocatable module/dll completely undermines the benefits of ASLR, so an attacker with a copy of your program will have a much easier time crafting an attack against it.

<comment><USER9> A lot of it generally holds true if you're programming for x86/x64, ARM, or PowerPC. The "hierarchy of speed" could use some updating, I think these days it is more along the lines of:

1\. Comparisons (no branch, just compare) 2\. u/int add/subtract/bit operations 3\. FP mul 4\. FP add/sub 5\. FP div 6\. u/int mul 7\. indexed array access (data in L1, including latency for data to move to registers) 8\. u/int div

That rough order seems to generally hold on a modern Haswell processor or the in-order PowerPC cores in an Xbox 360, though the cycle counts will vary.

Being thoughtful with respect how you access your data, paying attention to the effects of access patterns on caching, will almost always help regardless of the target architecture :)

<comment><USER10> _1\. Comparisons (no branch, just compare) 2. u /int add/subtract/bit operations_

Is there a reason you follow Andrei's lead and suggest that comparisons operations are faster than integer subtraction? At least for x64 on Intel, I think they would always be the same speed and thus should be grouped together. Are they different on the other platforms?

<comment><USER11> The only justification I can think of for that statement is that on modern processors (Sandy Bridge and above), micro-op fusion in the decode stage can fuse a comparison with a branch that immediately follows it, turning it into a "compare and branch" micro-op.

</comment></comment></comment></comment><comment><USER4> Vimeo link to the talk is dead but I found one on Archive.org: [https://archive.org/details/AndreiAlexandrescu-Three- Optimiz...](https://archive.org/details/AndreiAlexandrescu-Three-Optimization- Tips)

</comment><comment><USER12> This post misses one of the most fundamental and important optimisations for 'digits10' that his compiler is likely doing for him: turning the divide by 10 in to a multiply by using a multiplicative inverse mod 2^64

        $ cat div10.cpp
        #include <cstdint>

        uint64_t div10(uint64_t y) {
            return y / 10;
        }

        $ g++ -std=c++11 -march=native -Ofast -c div10.cpp
        $ objdump -C -d --no-show-raw-insn div10.o

        0000000000000000 <div10 (unsigned long)>:
        0:   movabs $0xcccccccccccccccd,%rdx
        a:   mov    %rdi,%rax
        d:   mul    %rdx
        10:   mov    %rdx,%rax
        13:   shr    $0x3,%rax
        17:   retq

His basic implementation likely isn't using division at all.

<comment><USER13> Doesn't this quote from the article address that? Or was it a late add?

"Truth be told, it's a multiplication because many compilers transform all divisions by a constant into multiplications; see e.g. [http://goo.gl/LhPeH](http://goo.gl/LhPeH) "

<comment><USER12> Guess _I_ missed it. Interestingly it seems to be impossible to do this optimisation yourself in C or C++ and get either Clang or GCC to generate the same machine code (on x86-64).

<comment><USER14> It is possible to coax that codegen out of clang. The trick is that you need the high half of the product, so you must use a larger type, in this case __uint128_t:

        uint64_t div10(uint64_t y) {
            const uint64_t magic = 0xCCCCCCCCCCCCCCCDULL;
            __uint128_t prod = magic * (__uint128_t)y;
            return (uint64_t)(prod >> (64 + 3));
        }

See [http://libdivide.com](http://libdivide.com) for how to get this codegen with runtime constants (I am the author).

<comment><USER11> Clang since at least v3.0 has done this automatically at -O1 and above - <USER2> need to use this cool, but ungainly, and hard-to-maintain approach.

[http://goo.gl/Cx0E0c](http://goo.gl/Cx0E0c)

<comment><USER12> GCC has done this for 20 years... the point is this optimisation requires a wider integer type than 64bits (in this case, apparently, 67 bits). This optimisation is potentially important for anything generating bytecode, or native code inside a JIT.

</comment></comment></comment></comment></comment></comment><comment><USER15>
      >The speed hierarchy of operations is:
      >
      >  comparisons
      >  (u)int add, subtract, bitops, shift
      >  floating point add, sub (separate unit!)
      >  ...
      >  (u)int division, remainder

This can't be right. A comparison necessitates either a branch or a cmov, and there's no way that either of those is faster than a basic ALU operation.

<comment><USER16> I'm guessing he doesn't mean branching on a result, he means just comparing two things via cmp.

</comment></comment><comment><USER17> Could someone explain why array writes are so expensive? I understand that a write would mark a cache line as dirty (significantly increasing eviction time cause you have to write-back) and that it could probably prevent the compiler from enregistering stuff. However, I don't get the aliasing and the "a write is really a read and a write" argument.

</comment><comment><USER18> Good tips, however it's still often beneficial to do reciprocal float division: i.e.

      float rcpDiv = 1.0f / value;
      float finalValue = myValue * rcpDiv;

In a lot of cases when speed matters. With fpmath=fast, I've seen compilers do that for you, but not always, as it potentially changes the answer very slightly.

</comment><comment><USER7> > Prefer 64-bit code and 32-bit data.

Wait, how is that possible? Like, you can have amd64 optimized code that uses 32-bit pointers?

<comment><USER4> Pointers would be an exception, of course. As others wrote he's talking about general data. Just because 64-bit ints are faster on 64-bit processors than on 32-bit processors doesn't mean you should use them when a 32-bit int would suffice.

<comment><USER19> Pointers don't have to be the exception. I'm working on a programming language runtime where objects are stored as a 32-bit value, with 3/4 of the range representing an integer, and 1/4 of the range (30 bits) representing a pointer. Given the constraint that pointer objects are aligned to 8 bytes, the 30-bits multiplied by 8 results in an 8GB addressable memory space. Pages within that space can be allocated using mmap with MAP_FIXED flag. Smaller memory usage results in more things in cache, resulting in higher performance.

<comment><USER20> So, your pointers will not be able to address bytes individually? No char pointers, or is it 8 byte chars? Or is this a completely different language without raw pointers?

<comment><USER19> The language is currently without raw pointers, suitable for an object system like Python/Ruby/JS.

</comment></comment></comment></comment></comment><comment><USER21> Any good books for someone who wants to get up to speed on modern assembly programming, who has been out of sync for the last 10-15 years?

</comment><comment><USER22> Liked it. A good, well reasoned advice from an expert. I especially like him making the point that too often good discussions are being smoothed.

I'll compliment that with another advice. On any modern Linux there is "perf top". If you haven't yet, I'd suggest learning how to use it. And using it.

</comment><comment><AUTHOR> another c++ optimization tips from a Clemson professor

[http://people.cs.clemson.edu/~dhouse/courses/405/papers/opti...](http://people.cs.clemson.edu/~dhouse/courses/405/papers/optimize.pdf)</comment>


Google Cloud vs. AWS in 2018 (Comparing the Giants) - <AUTHOR> https://kinsta.com/blog/google-cloud-vs-aws/ <comment><USER2> Lots of very useful tips there. Especially about Elastic Block Store (EBS) and persistent disks, before reading this article i didn't know much about EBS. Very useful. Thanks for sharing. I learned AWS here, it might useful for community here: [https://mindmajix.com/aws- training](https://mindmajix.com/aws-training)

</comment><comment><AUTHOR> tl;dr - Both work. Article favours GCP for pricing and speed and AWS for support, redundancy, and availability per region.

Aside: To check latency from your current location to AWS or GCP, here are couple of useful services from the article:

[http://www.gcping.com/](http://www.gcping.com/) (GCP)

[http://www.cloudping.info/](http://www.cloudping.info/) (AWS)</comment>