Show HN: My weekend project, find average sales price for stuff on ebay - <AUTHOR> http://www.price-helper.com

<comment><USER2> Cool idea! Here's my feedback: Feels like there is too much on the page that doesn't do anything. Since this is essentially a search box with a button and a result, I would eliminate almost everything on the page and focus all attention on that search box and the results. Also you should show something if the search doesn't come up with an average, perhaps the few listings that did come up. Better yet, show the eBay search results no matter what, so I can edit my search if it looks like the wrong items are being averaged.

<comment><AUTHOR> Thank you very much for your feedback! It's hard to find the right balance between functionality and ease of use. I was very usure regarding the category chooser, thanks to your feedback I now feel confident to remove it and just go with the best category hit.

Your idea regarding displaying items even if no real result could be generated seems so obvious, I am a bit ashamed to not think of that. :)

Again, thank you!

</comment></comment><comment><USER3> There are a lot of ebay market research tools out there. You will need to stand out either by pricing or by feature. Good luck.

<comment><AUTHOR> The service can stay free by monetizing the traffic I am sending to eBay using their affiliate program. Currently I create landing pages for all searched terms and try my limited seo skills to get these into the google index.

Is there any feature at the top of your head that you would like to see in this tool?

Thank you for your comment!</comment></comment>


Is this a good way to scale our product? - <AUTHOR>

I work at a start-up, they built there code base over 2.5 years before I arrived. As we have grown it has become clear that there are serious problems with the code/database/framework. Everyone on the development side is well aware of this issue and knows that something needs to be done about it if we are ever to successfully grow.
The lead developer built up the product with some obscure framework that was very immature, poorly coded and inefficient in its database calls. Various developers have expressed their concern and the lead has made the decision to rebuild the core of the product by remove the old framework and building a new one with 'the best parts of various other frameworks'. However he wants to keep most of the 'view' and 'controller' code from our current version of the product.
Has anyone else done this or seen this done when a long term solution was required but there was only time for a 'quick' solution? <comment><USER2> How large is this code base?

If you guys plan out enough, a complete overhaul might be the best solution.

During your development you will have learnt so much that as a team you couldn't of had the forsight to know you were doing it wrong when starting out.

If your startup can maybe spare 3 of your best developers for the development of your new platform that might be a better way to go. There comes a limit in the evolution and growth cycle when you realise that you can't keep adding and you need a new clean slate.

A Second option might be to create your own DBAL. What is it about your data base calls that is innefficient. If possible, you might want to create your own DBAL with something like memcache paired with it in order to have frequent caching where possible.

If the developers are dragging their heels and really don't like their development environment, you could think of it as a nice overhaul to boost team efficiency.

<comment><AUTHOR> We use memcache in a limited sense and have added caching to our mysql server to cut down on the thousands of queries our product makes a second (even with just 10 users).

Our lead developer is around, but the two other most senior developers both quit this month. We will have ~= 3 developers total.

I was under the impression that our solution was going to be a complete overhaul, but that isn't the plan.

</comment></comment><comment><USER3> Wow, sounds like my workplace - pretty much the same story, except the two devs who wrote the 300,000 line monstrosity are already gone (worst page record: a page with one topic and 300 comments generates over 10,000 - yes, ten thousand - calls to MySQL, AFTER caching).

In our case, we're squeezing in a complete rewrite of the codebase around existing client work using the old platform. We're writing it as a few separate services (authorization service, content service, front-end, reporting service, and administration front-end) instead of a huge, monolithic app. To do this in a decent time frame (a few months), we're adding 5 or 6 contractors to a 3-person dev team, leaving 3 other devs able to deal with the existing platform.

<comment><USER3> Hehe - to actually answer the question, though, the method you are describing might work with enough good planning behind it. Unfortunately, it doesn't sound like your lead dev is willing to do that. You will probably find that the amount of work required to fix the existing system is within a stone's throw of the work required to rewrite it.

I wouldn't call your described plan a "good" way of doing things, necessarily.

<comment><AUTHOR> Personally I think its a horrible plan, but I want to get feed back from people who are more experience them me.

I think we should rebuild with an experience architect leading the way, but it doesn't seem that the company sees that a reasonable.</comment></comment></comment>


There are many advantages to having your leg amputated - <AUTHOR> http://www.fastcompany.com/node/1514543/print <comment><USER2> yup, sure but probably not as much as keeping your leg.</comment>


Never Trust what Recruiters Say - <AUTHOR> http://blog.nimblegecko.com/never-trust-what-recruiters-say/ <comment><USER2> While it is down, the summary of the post is something like:

Don't give recruiters access to your reference contacts before an interview. If they are looking for them, there's a high chance that they are simply looking to use them for leads; in fact the job advert that you looked at is most likely a fake. If asked for reference information, politely tell the recruiter that it would be best to follow up on references after the interview process; if you feel awkward about being pressured, explain that you don't want to exhaust your contacts until there's a high probability that you take the job.

<comment><USER3> you can just put "cache:" in front of the web address.

<comment><USER4> How have I gone so long without knowing this? It's great to have an easy way to see the original content.

</comment></comment></comment><comment><USER5> Site is down, but as for the title from the OP, I agree to some extent.

I think recruiters are a decent way to find some of the jobs that aren't found via indeed.com alerts, fog creek's careers 2.0, top*jobs.com, dice (nasty), execunet, HN, etc.

But on the bad side:

Once you are on the list, they will look up your work number and call you if you just put your employer's name on your resume. The only way to get them not to do this is to remove employer names from linkedin.com experience, which you shouldn't do, so it is inevitable. They will not pay attention to requests not to do this.

They equate pay rate without benefits for short-term contract to salary rate full-time with lots of benefits. If you decide to give them pay rate expectation (not always a good idea), give them both your salary expectation and a much higher contract rate that assumes a 3-6 month contract- divide your annual salary expectation by 1000 and that is your per hour, in general.

Why they are what they are:

Average larger sized recruiting companies take almost anymore to get on the phones, and those companies burn them up and move to the next, so it isn't the actual person's fault in many cases. They are given visions of dollar signs when hired and see us like an untapped oil field, and they don't know what they are doing. They want to make the "sale", so they are going to fudge it, and when they later feel used and like the scum of the earth because they got stepped on by us, they quit and someone takes their place. The ones that can justify running through us like we are numbers to be manipulated stay, so it is natural evolution that is not in our best interest.

Advice for those really serious about using a recruiter:

Don't treat them like scum and spend the time with them, even though it might take 10x or more of your time. Let them take you to free lunches and breakfasts. Don't lie to them, but don't tell them everything. They will remember and appreciate the love and will at least maybe write good notes on you and keep you on the hot list so when something comes up, they might call you first.

What I do:

I am an introvert, so I push all conversation to email that I can and don't take calls, ever, until there is an opp I'm interested in that I know is in the right salary range, right location (not just city), and right job description. They still email positions that don't match all the time, but I don't like the idea of lunches, etc. with someone I don't know about positions I might never want.

<comment><USER6> I really don't get the divide-salary-by-1000 thing. Is this a US rule?

In the UK I'm taking home enough from a contractor rate that I would need to nearly double the salary part of calculation to have the same income.

<comment><USER7> There are roughly 2000 working hours in a year, so annual_salary / 2000 = hourly rate of a salaried employee. And as a rule of thumb, contractors need to make about twice the hourly rate of a salaried employee in order to come out even. So annual_salary / 1000 is roughly the equivalent contractor rate.

<comment><USER8> I just wanted to add that the difference of 1000 hours come from time spent looking for and dealing with contracts and other overhead like that (as well as downtime), which you don't have as a salaried employee.

<comment><USER6> I'm pretty sure that overhead and downtime don't count for half the working year!!

At least not for any contractor I know.

<comment><USER9> Depends on your market and industry.

</comment></comment></comment></comment></comment></comment><comment><USER10> Another trick that recruiters use:

Ask you where else you have interviewed, and even get names/contact info from you if they can. Then they call that place and tell them that they have a stack of resumes of way more qualified people than you.

You may never hear back from that place for two reasons: 1) they think you sold them out to a recruiter, 2) they believe the recruiter and start interviewing new people.

Bottom line is that recruiters will sell you out any chance that they can get. As much as they may seem like your friend, you are not their client, you are the product they are selling.

<comment><AUTHOR> Or they think that you were a recruiter who applied for the job with a fake CV (yes, that happens as well) and ignore you from now on.

</comment></comment><comment><USER11> Speaking in absolutes about recruiters is never useful (see what I did there?). Recruiter here with 15 years in the biz, and I've written lots on my jobtipsforgeeks.com blog about the perils of working with recruiters. I'm also working on a book with a similar theme that will expose some of what recruiters do, in order to help tech pros to at least be aware of things recruiting concepts such as 'candidate control' or why recruiters ask certain questions certain ways, or the differences between retained and pure contingency recruiters. Knowing a recruiter's motivations is key, and there is not enough transparency in the market today.

I personally don't use references as a source of candidates and only call a reference when clients request them (most of my candidate pool comes through past candidates that I trust).

Regarding compensation, what the comments here seem to be forgetting is that you as a candidate have every right to turn down a job, and in almost all cases the recruiter makes more money by getting you a higher salary. In contract situations this is usually reversed, where every dollar they can negotiate you down is another in the recruiter's pocket.

Some posting of fake job ads certainly happens by lower end firms, just as hiring companies keep ads up all the time to grow their network of candidates. It's somewhat dishonest, but not sure how it hurts job seekers (not advocating it, but seems a somewhat victimless crime).

Recruiters are trained to ask everyone for referrals, and early in my career I probably did. Now I realize that if you treat candidates well, with honesty and respect, and if you provide candidates with something for free, they will refer their friends (with the friend's permission) without me aging to ask. The free service I choose is information - my blog, a monthly newsletter of tech articles, discounts to conferences and events that I negotiate for my network, inside information on companies, etc.

Many recruiters are simply not good at their job, but every industry has some of that. Find a good one that doesn't ask you for things, and that actually provides you with good information and service, and avoid the bad ones. It really is that simple. Use recruiters that your friends recommend and set parameters and boundaries (don't send my résumé anywhere without permission, only contact me in this way, don't call references until x, etc). If they don't respect your wishes, drop them and don't recommend them to your friends.

<comment><USER12> > It's somewhat dishonest, but not sure how it hurts job seekers (not > advocating it, but seems a somewhat victimless crime).

You see an advert for tasty doughnuts. Oh boy! You jump in your car / catch the bus etc, and head over to the purveyors of tasty doughnuts to find that instead there are no doughnuts, but you're assured that if you're interested in tasty doughnuts you must have friends that are too, so take some flyers and spread the word. You've wasted your time, effort and money to become an uncompensated advertising agent for purveyors of mythical doughnuts, and you might reasonably reserve a new circle of hell for these people before shredding their flyers with particular zeal.

Similarly, to have answered an advert for a job that doesn't exist, spent time considering what compromises in your life might be necessary to take the position, followed sound advice to tailor your CV to the position, crafted a covering letter, and then found that your time and effort is used to stripmine you of your contacts with no compensation for any time and effort put in on your part before moving onto the next mark, once again you might reserve a new circle of hell for these people. It's clearly fraud and exploitation, hand in hand.

<comment><USER11> Good points. I was under the impression that this was referring to a scenario where you send a résumé to a recruiter ad, and you either get a reply that the job was filled (a lie here) or no reply at all (impolite if you were qualified). No time wasted with dialogue or advertising. This may be a uk thing, as I don't think firms here in the US tell you that you need to bring your friends if you want to deal. Never heard of that.

<comment><USER13> The friends thing he's talking about is taking your reference contacts and then using them as future leads.

And there is a fixed cost to sending a resume and cover letter. Sure, the first one isn't such a pain, but if you're unemployed and sending out 30 resumes, it's sort of a pain if 10 of them are fake, and another 5-10 are duplicates of different recruiters trying to fill the same position. It increases the work I have to do, and provides an awful lot of false hope.

Again - one recruiter doing that amid a sea of legit openings isn't all that bad, but in larger markets it's not just one recruiter misbehaving.

</comment></comment></comment></comment><comment><USER14> I've had recruiters pull fast ones on me back when I started programming professionally. There is a special place in hell for these people. Such jerks! This just drove me to create my own mailing list for job offers. The aim is to keep it clear of recruiters. If you want to check it out and receive job offers directly to your inbox (where you can look at them without logging on and dealing with the BS of most site out there) click (<http://news.ycombinator.com/item?id=5150829>) to see the HN thread. Not spamming, just giving back to the community.

</comment><comment><USER15> Once a recruiter decides that you're of no use to them, they'll stop answering your emails and phone calls. I've seen this happen to others with astonishing regularity, and had it happen to me some years ago.

The initial contact is cordial, there is even some hopeful talk about a position that allegedly exists. And then suddenly, contact is cut off.

Just as bad is the common practice of advertising a phoney job position just to get a pile of resumes and contacts. I suspect that this might even be some kind of fraud, legally-speaking, but I don't know if these people are ever pursued for it.

</comment><comment><USER16> Two important points of context for my comment: I am talking about software jobs for a skill set below 'mastery'.

Recruiters are a waste of time because:

1\. They do not know anything relevant about the technologies you are skilled in or the technologies required by the employer.

2\. Part of the 'value' they add for employers is to vet candidates before they are interviewed by the employer. This consists of doing a web page background search, calling your references, and giving you a pee test. Also see #1 for why this is a waste of time.

3\. You will be legally bound to a three way relationship between the recruiter co. and your new employer. There are no benefits to you in this binding agreement.

4\. You may actually be paid by the recruiting agency's payroll department (contracting). Faxing time sheets to a fax machine no one bothers to fill with paper at the agency office is a waste of time and energy. To put it another way, you won't be able to talk to the payroll department directly if you have any issues.

5\. You add another layer of useless management and bureaucratic complexity via the recruiting agency. Rarely do recruiters stay up to date on a project/position's projected end date. Once this resulted in a key card being disabled because the original end date had been reached -- but the project was still active.

I have seen that the recruiters for staff positions are a little better and you get paid direct.

I have also known gifted programmers who just hate to deal with people and negotiate, so recruiters are useful there. But to advance in your career, you are going to need people skills so you might as well start developing them now.

To sum up, there are a lot of bad recruiters who ruin it for everyone.

<comment><USER17> >1\. They do not know anything relevant about the technologies you are skilled in or the technologies required by the employer.

This... this shocks me, every time. I mean, in my experience, it's usually true, but damn.

What, then, is the value the recruiter brings the client?

I mean, sometimes they function as body shops, where the company pays them and they pay you, and the company then doesn't have to worry about labor laws and stuff, that becomes the body shop's problems, but I fail to see how that would justify the huge markup (and, generally speaking, but not always, lower quality) - Labor laws really aren't that bad. Do the standard things you do when dealing with programmers that get paid $90K+ per year, and you are in compliance with most of it.

I mean, besides that, they are keyword matchers; personally, I don't think keyword matchers are particularly useful, and in any case, they are not particularly difficult to implement.

But then, in defense of the recruiters (or, at least a reason for a developer to use recruiters):

>3\. You will be legally bound to a three way relationship between the recruiter co. and your new employer. There are no benefits to you in this binding agreement.

Generally speaking, recruiters bring in a bunch of sub-par recruits. Way worse than if you had asked the people around the office to bring in friends (and worse than having someone in the office go over the resume slush pile.)

What does this mean? this means that if you are a sub-par programmer, and you failed that google interview your buddy got you, or if you are a good programmer who, for whatever reason, looks like a sub-par programmer (say, for instance, that you had a [mental] health issue impacting your performance for the previous year, or just had a run of bad luck and have been unemployed for a while and don't know anyone to get you interviews) then recruiters can be a godsend.

Recruiters are a fairly sure sign that the standards for the job will be low. The competition will be weak. And sometimes? well, comeon, most of us have needed to hit the bunny slope at least once in our career.

<comment><USER16> >>1\. They do not know anything relevant about the technologies you are skilled in or the technologies required by the employer.

>>This... this shocks me, every time.

To be fair, few people are expert on all technologies and few recruiting firms can afford a diverse, expert staff.

<comment><USER17> Sure, but my theory is that the legal cover they provide is also not worth as much as what they charge; so if the legal cover isn't good, and they aren't any good at picking people, then nobody would use them. But many companies use them, which means one (or both) of my assumptions are wrong.

One theory is that at some companies, the hiring managers/screening process they have is even worse than what most recruiters use. That would be consistent with my observation that standards seem to be lower when I get a job through a recruiter than through a contact.

But yeah, uh, I guess my continued shock is more a product of incorrect assumptions, then. But man.

<comment><USER16> I think contracting is driving it by virtue of the corp. tax loophole for 1099 workers. By definition a 3rd party must handle the "temporary" 1099 workers.

</comment></comment></comment></comment></comment><comment><USER18> HN seems to have killed it :/ Google doesn't seem to have a cache either, since the post is brand new.

Edit: Very old nginx/1.0.5... methinks it's time to upgrade. There were a lot of improvements to this version even in 1.1.0/1, including performance

<http://nginx.org/en/CHANGES>

<comment><AUTHOR> Sorry folks! Desperately trying to fix it now...

<comment><USER19> Tried WP Super Cache?

<comment><AUTHOR> No, I haven't. Had no reason, really, just trying to fix it on nginx/php-fpm level at the moment.

<comment><USER20> If it's an interesting fix, please consider doing a post like "What I learned from getting slashdotted by Hacker News".

<comment><AUTHOR> I am by no means a devops guy, and this is just a quickly whipped together t1.micro instance with haproxy/nginx/php-fpm/wp/whatever, that's been built using tutorials of questionable quality (as it turned out now) that I found online.

So there probably won't be too much value in a post like that. All I did was setting some sane parameters for Fast CGI stuff in nginx, some for php-fpm and the db.

</comment></comment></comment></comment></comment></comment><comment><USER21> I am a technical recruiter with almost two decades of experience. I have literally placed thousands of IT professionals. People with bad experiences with recruiters are usually the bottom 80% of candidates - those we cannot help (employers only pay us for the top 10%, MAYBE the top 20%).

Of course, no one thinks they are in the bottom 80%...

Like every industry, 80% of the recruiters are lousy, and give the rest of us a bad name, so there is great truth in what is written here. HOWEVER, ask yourself, why is this happening to me? Why are agencies in business if we offer no value? The basic laws of capitalism would have forced us out of business if we did not create value. So if recruiters won't work with you, why is that?

Remember, as a candidate, YOU are getting our work FOR FREE. You invest nothing but your time, and perhaps, some of your knowledge. We are taking a risk on you, risking our ability to earn a living, risking our relationships with our clients in the desparate hope you are not a lousy candidate, all by exposing you to the network of professionals we have invested large quantities of time and money in developing, so yeah, we expect you to give something back in the form of leads or references. What is wrong with that? Perhaps you would prefer to pay for our service? Believe me, we are expensive.

Finding a good recruiter is easy - trust your gut, and find one who has been doing it for at least a year. The lousy ones are generally weeded out by then. Only trust those you are referred to, or are willing to meet you in person, and only those recruiters that partner with you.

Also, help the recruiter help you. If you are confrontational, unprofessional, or otherwise difficult to work with, no good recruiter will invest any effort in you. Why would we take the risk?

<comment><USER22> Do you really have any people genuinely looking for your services and not cold-called or lured with the false job ads?

I agree that somebody who is seeking your services for free has to be grateful and accommodating your requests. But as somebody who is being offered a service I have not requested I don't care how much you invested.

<comment><USER21> Yes, we do. Every day.

</comment></comment></comment><comment><USER23> [OT] Page is down.

It's incredible how many people (even on HN) don't know it! You can get Google's cached version of a page fairly easily.

Just type

        cache:[url]

in Google search bar and press enter. e.g.,

        cache:http://blog.nimblegecko.com/never-trust-what-recruiters-say/

redirects to [http://webcache.googleusercontent.com/search?hl=en&tbo=d...](http://webcache.googleusercontent.com/search?hl=en&tbo=d&output=search&sclient=psy- ab&q=cache%3Ahttp%3A%2F%2Fblog.nimblegecko.com%2Fnever-trust-what-recruiters- say%2F&btnK=)

</comment><comment><USER24> The guy never trusted an old version of nginx -> <http://d.pr/i/U2UP>

<comment><AUTHOR> I should've updated that long ago, but everything was working - I never had anything like that happening, so there was no pressing reason to upgrade, I guess.

It should be better now, well, I hope.

<comment><AUTHOR> Now it dies at ~80 users instead of ~50 before upgrade. Oh well.

</comment></comment></comment><comment><USER25> Unlike in Capitalism, Globalization demands you to be an "Highly Skilled Wage Slave" to get a job.</comment>


Startup idea: Save people money on cell phone plans - <AUTHOR> http://baberuth.posterous.com/idea-phone-families

<comment><USER2> Apparently someone tried to do something like this in Canada, due to pressure from the telecoms the site was sacked.</comment>


Playing Forza Horizon with a Modified RC Controller - <AUTHOR> https://www.youtube.com/watch?v=1TbkDqz1I3M <comment><AUTHOR> Full writeup can be found here: [https://www.partsnotincluded.com/modifying- an-rc-controller-...](https://www.partsnotincluded.com/modifying-an-rc- controller-to-play-forza-horizon/)</comment>


The TRIM corruption bug is not what expected - <AUTHOR> https://blog.algolia.com/when-solid-state-drives-are-not-that-solid/#july17

<comment><USER2> "[...] UPDATE July 17:

[...] Samsung had a concrete conclusion that the issue is not related to Samsung SSD or Algolia software but is related to the Linux kernel. Samsung has developed a kernel patch to resolve this issue and the official statement with details will be released tomorrow, July 18 on Linux community with the Linux patch guide."</comment>


Running your models in production with TensorFlow Serving - <AUTHOR> http://googleresearch.blogspot.com/2016/02/running-your-models-in-production-with.html?m=1 <comment><USER2> Model serving in production is a persistent pain point for many ML backends, and is usually done quite poorly, so this is great to see.

I'm expecting large leaps and bounds for TensorFlow itself. This improvement to surrounding infrastructure is a nice surprise, just as TensorBoard is one of the nicest "value-adds" that the original library had[4].

Google have ensured many high quality people have been active as evangelists[3], helping build a strong community and answerbase. While there are still gaps in what the whitepaper[1] promises and what has made it to the open source world[2], it's coming along steadily.

My largest interests continue to be single machine performance (a profiler for performance analysis + speedier RNN implementations) and multi-device / distributed execution. Single machine performance had a huge bump from v0.5 to v0.6 for CNNs, eliminating one of the pain points there, so they're on their way.

I'd have expected this to lead to an integration with Google Compute Engine (TensorFlow training / prediction as a service) except for the conspicuous lack of GPU instances on GCE. While GPUs are usually essential for training (and theoretically could be abstracted away behind a magical GCE TF layer) there are still many situations in which you'd want access to the GPU itself, particularly as performance can be unpredictable across even similar hardware and machine learning model architectures.

[1]: [http://download.tensorflow.org/paper/whitepaper2015.pdf](http://download.tensorflow.org/paper/whitepaper2015.pdf)

[2]: Extricating TensorFlow from "Google internal" must be a real challenge given TF distributed training interacts with various internal infra tools and there are gaps with open source equivalents.

[3]: Shout out to @mrry who seems to have his fingers permanently poised above the keyboard - [http://stackoverflow.com/users/3574081/mrry?tab=answers&sort...](http://stackoverflow.com/users/3574081/mrry?tab=answers&sort=newest)

[4]: I've been working on a dynamic memory network ([http://arxiv.org/abs/1506.07285](http://arxiv.org/abs/1506.07285)) implementation recently and it's just lovely to see a near perfect visualization of the model architecture by default - [http://imgur.com/a/PbIMI](http://imgur.com/a/PbIMI)

<comment><USER3> Thanks for the shout out!

<comment><USER4> Derek is also extremely available to his colleagues at Google. He's always friendly when I ask questions, and very thoughtful. I feel lucky to work with him, however distantly! :)

</comment></comment></comment><comment><USER5> Note also that we've released v0.7 of Tensorflow today - more details in the release announcement: [https://groups.google.com/a/tensorflow.org/forum/#!topic/dis...](https://groups.google.com/a/tensorflow.org/forum/#!topic/discuss/_IdeX4XCRqg)

</comment><comment><USER6> This looks great and brings TensorFlow close to using it in production where the model has a life cycle.

I'd wish they could implement other well know ML algos like trees, give Spark ML some fight :)

<comment><USER7> There are plenty of alternatives out there to Spark ML: here is a survey of RF implementations: [https://github.com/szilard/benchm-ml/tree/master/z-other- too...](https://github.com/szilard/benchm-ml/tree/master/z-other-tools)

There is a whole other world of non stochastic gradient descent based algorithms out there; IMO Tensorflow is sensible to stick to one class of algorithms and do it well.

(Disclaimer: I work on mldb, one of the tools on that list).

<comment><USER6> mldb looks great. But I was referring to distributed model building, in a horizontal way. Which SparkML does, and TensorFlow says it does. If they can implement a distributed Gradient Boosting Tree across nodes, maybe even with GPU support (Although I'm not sure if it's applicable) that could be huge.

<comment><USER7> Once the open source version of Tensorflow releases multi-node support, this would be one way to make it work. There are potential gains from using a GPU for RF training. As for distributing, in my experience for small models it doesn't make much difference and for larger models the cost of distributing the dataset dominates the benefit from having multiple nodes. But an implementation carefully designed for a given node topology could be made more performant.

</comment></comment></comment></comment><comment><USER8> Off-topic: I always open C++ projects from Google - they are always so tidy and clean. It just feels like a work of craftmanship, if that actually exists in software: [https://github.com/tensorflow/serving/tree/master/tensorflow...](https://github.com/tensorflow/serving/tree/master/tensorflow_serving/core)

OTOH, I have a strong prejudice against Javascript on the backend... And its not due to it being dynamic - the same doesn't happen with Python codebases. It is completely irrational.

<comment><USER9> I don't share the same opinion from the NDK code.

Plain C with C++ compiler, with a pseudo Hungarian notation.

</comment></comment><comment><USER10> I'm not sure if TensorFlow already provides that, but it would also be pretty awesome to access some of Google's data sets to train the models.

<comment><USER11> Which data are you after? The ImageNet data is public _and_ they released the pretrained model.

They've promised to release (or already have released) the models for _Exploring the Limits of Language Modeling_ [1] which was trained on the 1 B Word Benchmark corpus[2] which is also public data.

Note that for these, the trained models are often more immediately useful. The language modelling model was trained for 3 weeks on 32 Tesla K40s. That's not something many can replicate casually.

[1] [http://arxiv.org/pdf/1602.02410v2.pdf](http://arxiv.org/pdf/1602.02410v2.pdf)

[2] [http://www.statmt.org/lm-benchmark/](http://www.statmt.org/lm-benchmark/)</comment></comment>


Open source programming languages for kids - <AUTHOR> http://www.linux.com/feature/155203 <comment><USER2> Python.</comment>


Yahoo And Google Now Let You Opt Out Of Ads (Because It's Better Than Letting You Opt In) - <AUTHOR> http://www.techcrunch.com/2008/08/08/yahoo-and-google-now-let-you-opt-out-of-ads-because-its-better-than-letting-you-opt-in/ <comment><USER2> As notauser says, this title sucks, it's about targeted ads. I don't understand why people are so against targeted ads. These companies are going to collect information about you either way, it's (at least for the moment) not illegal, so why shouldn't they use that information to give you ads that don't suck? If Digg wants to determine that I've never clicked on a Snorg tees ad even though they've shown me 10,000 of them and conclude that maybe they should stop showing them, that sounds like a win for me, Digg and the Snorg tees people that are paying for me to see an ad I will never click. Now I can see an ad I might actually be interested in, Digg can charge more for advertising, and the ad providers aren't throwing their money away

<comment><USER3> I had a rather amusing conversation with my coworker today about this. I think that companies should not collect that kind of data, despite the benefit in terms of improved products (personalized search, ads that don't suck, whatever), whereas his basic attitude was "I'm not doing anything illegal, they're not doing anything illegal, so why not?"

While I would not mind being shown ads I care about, I worry about the cost. I don't want companies to be able to share detailed click trails and be able to produce in depth biographies because of the potential for abuse, be it governmental, corporate or "hm I wonder what I can find out about that girl I met yesterday".

PS: as an addendum, I know people with Google log access, and while it's less scary than it sounds, I know there are "tons" of people with such access... and counterparts at other companies. I don't know if I can trust _all_ those people with knowing when I get funny rashes or whatever.

<comment><USER2> I don't like it either, but if they're going to do it either way I would rather at least get some benefit out of it

</comment></comment></comment><comment><USER4> Very misleading headline - this is not opting out of ads, it is opting out of cross-site tracking. (By having an opt-out cookie set.)

</comment><comment><USER5> Everyone should just install Ad Block

<comment><USER6> The issue with targeted ads isn't the targeted ads, but the information collected and stored to generate them. AFAIK, Ad Block does nothing to help with this. Also notice that opting out likely doesn't help either.</comment></comment>


Ask HN: PHP Symfony for core architecture of a new startup? - <AUTHOR> I have non-dev, but fairly technically minded friend considering Symfony as the core of the backend for a fairly complex set of microservices, some of which involve large amounts of data. Decent security is important. A consulting company is recommending PHP Symfony. They already have UI stuff in Node, and Firebase.
I do not have much experience building greenfield PHP projects. All the legacy PHP projects I have worked on are total flaming disasters, so I may be pretty biased.
What are the pros and cons of choosing something else like Go, Node, or C# instead? (these were my recommendations based on my experience, I'm sure Java is also a good choice)
My recommendation would have been to start with Node and OpenAPI/Swagger Spec, since it is already in their stack, it's testable, has active communities and a good trajectory for hiring. Then for stuff needing more horsepower or with sufficient complexity, use Go. Database recommendation is Postgres or MariaDB. <comment><USER2> your recommendations sound solid</comment>


Java 8 lambda syntax decided - same as C# and Scala - <AUTHOR> http://mail.openjdk.java.net/pipermail/lambda-dev/2011-September/003936.html <comment><USER2> Nice to see pragmatism playing a role here. A big problem with Java has always been the "design by committee" nature of it where we end up with some theoretical best case that satisfies everyone's egos but turns out to utterly suck when used in practice.

From another point of view ... it's a shame we needed so many years to come up with "let's do it like C#".

<comment><USER3> It's also a shame they haven't done so with other features -- like getting rid of checked exceptions.

<comment><USER4> Can you expand on why would you like to get rid of checked exceptions?

<comment><USER5> It often leads people to write code like this:

        try {
            // do stuff
        } catch (TheCheckedException ex) {
            // ignore it
        }

then the code continues even though it could be in a bad state if an exception did occur.

It's a much better solution to let it propagate up the call stack until it can be dealt with appropriately (e.g. by ending the application, giving a 503 error on a web page request, etc.) Unchecked exceptions will propagate up the call stack by default if you don't do anything, making it harder for people to write bad exception handling code.

<comment><USER6> So add a 'throws' clause to the method in which you call the code that throws the checked exception and it will propagate upward.

<comment><USER7> Yes, this! The most irritating debugging I've had to do in Java code is when someone catches an exception, but fails to handle it effectively, resulting in another exception being thrown later. If you don't know how to handle it effectively, just add the 'throws' clause. It's less typing than try/catch, so I don't understand why people choose to make extra work for themselves and for me.

I see a lot of comments here that seem to assume catching the exception is the only option.

<comment><USER8> Exactly. In Eclipse it's so ridiculously easy to make the method pass it on by adding the throw to your method. I find checked exceptions really useful every day :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Finally a decision was made. The decisional process is too slow, this is why Java in 2011 still misses those features that languages like C# already support since years.

</comment><comment><USER10> Excellent to have this finally resolved. I'm sad to not see something a little closer to the ruby block syntax like in some of the early proposals, though. Special syntax for lambdas as the last argument to a function lets you write very readable code for a host of useful cases.

<comment><USER11> Nota Bene: A Ruby Block is _not_ the same thing as a Ruby Lambda, although conversion between them is easy. Yielding to a block has somewhat different semantics than calling a lambda, especially with respect to non-local return.

</comment></comment><comment><USER12> "Mistakes will be made, but that's good because it means decisions are being made." -- Steve Jobs

<comment><USER13> How is this a mistake ?

<comment><USER14> Erm, its not?. Shawndumas was just pointing out that a decision was finally made. They were grappling over the syntax for over two three years.

Now they will just need to grapple over with what kind of scoping that Java's lambdas will have.

<comment><USER15> I think stating it that way trivializes the amount of work that _has_ gone into lambdas. There's been a lot of other, more fundamental things discussed over that 2-3 year period about their implementation; way more than syntax.

<comment><USER16> What in particular? (Java isn't my primary language, so I haven't been following this.)

Do you mean about how lambdas are implemented from a bytecode standpoint, or other types of issues?

<comment><USER17> Yes, to some extent there were debates about how the implementation would work, but also about how they would interact with all the various other features of Java, most of which were not constructed with lambdas in mind: generics, exceptions, inheritance, and so on, not to mention lots of fights over the syntax.

For instance, there was a long battle over whether () would be enough to invoke a lambda, or whether some sort of apply() or invoke() or .() method would be required, and a lot of the problems with () come down to differences between the way fields and methods are inherited in Java, esp. w.r.t. shadowing. I don't even know how it all came down, but it gets nasty, a lot of this stuff just wasn't designed with lambdas in mind.

</comment></comment></comment></comment></comment></comment><comment><USER18> Good. The lambda syntax in C# rocks and is a natural fit for Java considering the origin of C#.

<comment><USER19> Object Pascal?

</comment></comment><comment><USER20> I see that the proposed lambda expressions can omit type annotations on the parameters. Does that mean that Java 8 will have at least some limited form of type inference?

<comment><USER21> The single abstract method interface type of a lambda will be inferred by its declaration site.

<comment><USER22> Will they be full closures and remember the state of objects in scope?

<comment><USER20> If they will be based on anonymous inner classes, then yes, they'll capture the variables from the surrounding scope. Those variables however will be 'final', which means that you can't re-assign them, even if their values are still liable to side-effects (e.g. setting fields, mutating collections, etc).

<comment><USER21> They are not based on anonymous inner classes (the implementation is likely to be much different) but they have the same restrictions as BDFFL_Xenu described.

</comment></comment></comment></comment></comment><comment><USER23> try { // for a really long time } finally { // made a decision }

<comment><USER24> There's a JVM language out there that initially allowed try-statements without catch or finally clauses, e.g

        try{
          //for a short time only to decide
        }

But one of its despots, five years after the language was first released, changed the syntax to make a catch or finally clause compulsory, e.g

        try{
          //for a short time to decide
        }finally{}

Because I had used these standalone try-statements a lot, I had to go thru all my code and add empty finally statements to them all.

Scala, on the other hand, still allows standalone try-statements. And Scala and C# also have a better closure syntax than that language, and are more worthy to be copied by Java 8.

<comment><USER25> What benefits does an empty try block give you? You can always use braces to separate a block without try at all.

<comment><USER24> > What benefits does an empty try block give you?

An empty try block allows us to repeat variable declarations with the same name in a long stretch of scripty-style code.

> You can always use braces to separate a block without try at all.

You can use braces in Java, but not in that language I'm talking about: it'll throw an error saying "Ambiguous expression could be a parameterless closure expression, an isolated open code block, or it may continue a previous statement; solution: Add an explicit parameter list, e.g. {it -> ...}, or force it to be treated as an open block by giving it a label, e.g. L:{...}, and also either remove the previous newline, or add an explicit semicolon ';'".

The standalone-try looked far more elegant than:

        dudlabel:{
          //do something
        }

Better for that despot to re-enable standalone try-statements in Groovy than petitioning the Java 8 designers that thin arrows look better than industry- standard thick arrows.

<comment><USER26> > An empty try block allows us to repeat variable declarations with the same > name in a long stretch of scripty-style code.

Either I'm missing something here, or this is really as bad as it sounds.

I understand you want nested scopes that end before the method's scope ends, but cannot for the life of me think of a defensible code example. Why not just make them into methods?

<comment><USER24> I did say scripty code. My typical scripting session from scratch starts with opening a simple editor and starting to type in code. The structure is loose, perhaps it's testing something I've written in another file in a statically- typed language. As the code evolves, I slowly give it more structure by reworking it. At some stage I MIGHT put some code into methods.

But before that stage, nested scopes are useful because I'm _far less likely_ to pass the wrongly-named variable into a function when I'm cutting and pasting code. An example coding snippet...

        def out= new File("blah")
        try{
          def testdata= "abcdefg"
          def result= SomethingToTest(testdata, out)
          assert result == result.getSth()
        }
        try{
          def testdata= "hijk"
          try{
            def result= SomethingToTest(testdata, out)
            assert result == result.getSth()
          }
          try{
            def result= SomethingToTest(testdata)
            assert result == result.getSth()
          }
        }

If I use testdata1, testdata2, result1, result2, etc, I might forget to rename a variable after cutting and pasting, and think a test works when it doesn't.

<comment><USER27> Why not just use braces? Take all your 'try' keywords out and the scope limitations are the same.

Unless you're relying on the try {} to avoid bombing when there are assertion errors? That just seems a bad way of doing unit testing.

<comment><USER24> You can do that in Java but not in Groovy unless you write

        tr:{
          //...
        }

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER28> Lambdas are a lot of fun on C#.

new Thread( => { doStuff(); }).Start();

<comment><USER29> Big deal:

        new Thread(new Runnable() { public void run() {doStuff();} }).start();

<comment><USER30> But for a small function (which a lambda typically is), the syntactic overhead of "new Runnable() { public void run()" swamps the actual logic. When I read this version, it's hard for my eyes to find what work is actually being done because there are so many braces and brackets and words. The big deal of lambda syntax is that it lets you focus on the code that does the work (the doStuff) instead of the adapter (the "new Runnable() { public void run()") that the library needs around that code.

<comment><USER31> _it's hard for my eyes to find what work is actually being done_

Aside from if a lambda expression or anonymous class is the better choice overall, this just happens to be a case that you're just not familiar with the syntax. Its been years since I've done any work in java, but I read this over some coffee and didn't even slow down for it.

Lambdas will be nice for the situations where there is more boilerplate than implementation, but the anonymous inner class in java isn't going to die.

</comment></comment></comment></comment><comment><USER32> Any details on variable capturing from outer scope? The same as C# (apparently capture all variables?)?

<comment><USER33> yes, closures are implied. lambda's are almost useless without closures being included.

<comment><USER34> I think the difference between capturing values at call time and full closures only matters if you are mutating variables, which my closures rarely do, since my code is fairly functional'ish, so for me it does not matter.

</comment></comment></comment><comment><USER35> OP mentions that there were other ideas in the running. Anyone know what they were?

</comment><comment><USER36> Groupthink: I think we should have a vote on if we're going to vote on when we're going to set a deadline for deciding on lambda syntax.</comment>


But what is the Fourier Transform? A visual introduction - <AUTHOR> https://youtube.com/watch?v=spUNpyF58BY <comment><USER2> Oh boy was that well presented. I wish I had seen this when I studied signal processing.

<comment><USER3> Same! I feel that this 20 min video reached an intuition level that is equivalent to what were probably a couple of months of my ECE undergrad.

</comment></comment><comment><USER4> Later duplicate that ended up on the front page: [https://news.ycombinator.com/item?id=16242103](https://news.ycombinator.com/item?id=16242103)</comment>


Asciident, a sci-fi video game with graphics covered by stylized text-mode - <AUTHOR> http://asciident.com/ <comment> n-gauge #D#+

+#O#

#P#+

+#E#</comment>


Ladies Home Journal (1900) Predictions for 2000 - <AUTHOR> http://www.yorktownhistory.org/homepages/1900_predictions.htm <comment><USER3> Wow, what a great read! It was interesting how many things they accurately predicted without (obviously) knowing what they would be called. All of these ideas were presented with none of these words:

      immigration
      baby boom
      Panama Canal
      tract housing
      agribusiness
      physical education
      Acela high speed train
      airplanes
      rockets
      space shuttle
      television
      fax
      internet
      satellite TV
      genetic  engineering
      welfare
      cell phones
      radio
      Moog synthesizer
      air conditioning
      fast food
      xrays
      ultrasound

</comment><comment><USER4> "Prediction #10: Man will See Around the World. Persons and things of all kinds will be brought within focus of cameras connected electrically with screens at opposite ends of circuits, thousands of miles at a span. American audiences in their theatres will view upon huge curtains before them the coronations of kings in Europe or the progress of battles in the Orient. The instrument bringing these distant scenes to the very doors of people will be connected with a giant telephone apparatus transmitting each incidental sound in its appropriate place. Thus the guns of a distant battle will be heard to boom when seen to blaze, and thus the lips of a remote actor or singer will be heard to utter words or music when seen to move."

<comment><USER5> I wonder why he missed storage of information. Is that so much harder to imagine than transmitting it directly?

<comment><USER4> I think the big leap here for him was seeing live events vs. pre-recorded films. When these predictions were written, silent films would have been commonplace and live radio broadcasts weren't around. News would have been distributed via newspaper, sent world-wide by telegraph.

<comment><USER6> But the phonograph was around for 20 years or so. So there _was_ some information storage, just not the concept of mass reproduction and distribution.

<comment><USER4> The phonograph and newspaper were forms of mass reproduced, widely distributed storage though. Most of their media at the time would have been from persistant storage of some form, created once and sold many times over (newspaper, records, player piano rolls, etc).

</comment></comment></comment></comment></comment><comment><USER7> Pretty much spot-on apart from the strange (and repeated) prediction of giant fruits and vegetables (I guess you could say the green revolution provided similar quantity, if not on a per-fruit basis) and the failure to predict the popularity of air travel.

<comment><USER8> My favorite swing and miss:

Prediction #3: Gymnastics will begin in the nursery, where toys and games will be designed to strengthen the muscles. Exercise will be compulsory in the schools. Every school, college and community will have a complete gymnasium. All cities will have public gymnasiums. A man or woman unable to walk ten miles at a stretch will be regarded as a weakling.

More or less a hit on the prevalence of gyms, total miss on the ramifications!

<comment><USER9> Not as much a miss as you portray, considering that: 1\. It is mandatory at least one Physical Education class in public high schools (at least in Florida), and if I remember right, middle school as well.

2\. Not only do colleges and universities have complete gymnasiums, many of them have enormous staudiums and fields.

The one miss that I do agree with is "A man or woman unable to walk ten miles at a stretch will be regarded as a weakling."

<comment><USER10> My son goes to a public middle school in Colorado, and each student only has Physical Education for half the year. They also only study foreign language for half a year. The two halves of the student body trade at mid-year. The academic schedule is too busy to allow for all-year PE and FL.

I expect PE to be uncommon some time soon-ish. Besides, PE is too hard when you're fat.

</comment></comment></comment></comment><comment><USER11> > "He will live fifty years instead of thirty-five as at present – for he will > reside in the suburbs"

Clearly a fake article. Language is anachronistic. Also life expectancy in 1900 was not 35 years, but closer to 50:

<http://www.demog.berkeley.edu/~andrew/1918/figure2.html>

<comment><USER4> Here's a scan of the original article, found by Googling the title:

[http://4.bp.blogspot.com/_sGYULzoQCgA/RiR7L_dyCLI/AAAAAAAAAd...](http://4.bp.blogspot.com/_sGYULzoQCgA/RiR7L_dyCLI/AAAAAAAAAdU/2COTRQtZAk8/s1600-h/Ladies+Home+Journal+Dec+1900+paleofuture+paleo- future.jpg)

This comment says that it's available on microfilm:

[http://paleo-future.blogspot.com/2007/04/what-may-happen- in-...](http://paleo-future.blogspot.com/2007/04/what-may-happen-in-next- hundred-years.html?showComment=1197791820000#c5523051432288129428)

Here's a source article with more information:

[http://paleo-future.blogspot.com/2007/04/next-hundred- years-...](http://paleo-future.blogspot.com/2007/04/next-hundred-years- milwaukee-herold-und.html)

<comment><USER11> My bad. Might be the only time my Snopes radar was off -- struck me as similar to some of those "faux old" articles.

Anyway, I'd delete my original comment, but evidently too much time has elapsed.

Serves me right for writing "Clearly" :)...Hopefully at least the life expectancy link in it was informative.

<comment><USER4> It was informative still- I was surprised that the average lifespan was only 45. It does make some sense I suppose: penicillin was still thirty years away and there wasn't a single vaccine yet.

<comment><USER12> The vaccine had been invented more than 100 years prior to 1900. I'm not sure how wide-spread they were at that point, but the vaccine was invented some time in the 18th century. Antibiotics -- you're right, not discovered yet in 1900.

<comment><USER4> I stand corrected. Wikipedia lists some interesting proto-vaccines in the 1800s and earlier (including one for smallpox). There was a major increase in the availability and breadth of vaccines in the 1900s, but a lot of groundwork was already laid before that. Thanks for the correction.

</comment></comment></comment></comment></comment></comment><comment><USER13> #2 ... He will live fifty years instead of thirty-five as at present

I didn't like mortality rates were that bad in 1900 USA.

<comment><USER14> Horrible chart junk, but credible domain ( [http://www.nsf.gov/news/speeches/colwell/rc02_asm_keynote/sl...](http://www.nsf.gov/news/speeches/colwell/rc02_asm_keynote/sld028.htm) ) puts life expectancy in 1900 around 45 years.

</comment></comment><comment><USER15> "Prediction #16: ... Spelling by sound will have been adopted, first by the newspapers."

Language varies too much and too quickly. Wasn't that why we adopted spelling in the first place?

<comment><USER16> A spelling reform for the English language was probably the craziest prediction... :-)

Some languages, like Swedish and Finnish, had spelling reforms in the 19th century and are (more or less) trivial to pronounce from the spelling.

Today, it would be much, much harder to do a really big spelling reform even for Swedish which should be a fraction of the problem size for English. For a few generations you'd have to teach people to read/write _both_ spelling standards. In the 19th century Sweden, most people only read a couple of religious books (they had to).

A spelling reform might be easy to do in a generation when the e-books have taken over. Just use automatic filters (not real translations -- grammar is the same) for English spelling standards in office programs, web browsers, etc.

</comment></comment><comment><USER17> Article editors will be as lax as today ... #13 == #26

</comment><comment><USER18> "The trip from suburban home to office will require a few minutes only. A penny will pay the fare." Ha! That very well may have been true if we didn't wreck our economy with fiat currency.

<comment><USER19> What's a 1900 penny worth today? My commute is only a couple of bucks - <USER2> inflation considered, it might be close.</comment></comment>


Looks like Reddit is doing something regarding SOPA - <AUTHOR> http://www.reddit.com/all

<comment><AUTHOR> It takes us to a site hosted by google.

</comment><comment><USER2> Page not found?</comment>


Show HN: Recommendation engine for any website in minutes - <AUTHOR> https://github.com/altitudelabs/metisa-js <comment><AUTHOR> Hi, we built an easy way for any media or consumer app to incorporate a Netflix-like personalization experience.

Demo: [https://altitudelabs.github.io/metisa-js/demo-movie- app/](https://altitudelabs.github.io/metisa-js/demo-movie-app/)

Also ships with ability to send personalized emails and customer analytics.

Check it out and let us know if you have any feedback!</comment>


Gmail Lite: If You Build It Google, We Will Come - <AUTHOR> http://techcrunch.com/2010/11/27/gmail-lite/

<comment><USER2> > If you want to be formal with someone, send them a letter.

That, right there. That's where I stopped reading. They're advocating basically building an asynchronous (in the sense of people) chat client instead of Gmail because you're supposed to "send people a letter" if you're going to begin a message with "Hello" and end with "Regards".

This article is so stupid that I don't even have the courage to dissect (or read) it further.

<comment><USER3> I don't know about others, but i guess most of my contacts, customers and yet to become customers appreciate it if i start an email to them with a friendly "Hello" and end with a formal "Regards".

When i call someone on the phone i will also continue to say "Hello" and "Bye" instead of just starting to talk and hang up when i'm done.

<comment><USER2> Most definitely. I hate it when people send me an email without "Hello" or a signature, unless they're friends. If you're interrupting my flow, the least you can do is say hi. I especially _detest_ people who send me their request in the subject line and leave the email blank. I mean, you want me to do something and can't even take the time to write it properly?

About the phone thing, I'm not sure it happens outside movies, does it? I'm not from the US, but I've never seen it happen in either Greece or the UK, where I've lived. If it happens, I find it extremely rude and even insulting...

</comment></comment></comment><comment><USER4> I don't know why TechCrunch is going so Glasgow over Google's ass for Gmail. It works perfectly fine for me and no one I know has complained either.

It's the TC who should rather work on TechCrunch Lite.

<comment><USER5> This wasn't lite enough for you?

</comment></comment><comment><USER6> This guy wrote a whole news story because he finds hitting TAB and then ENTER too difficult as compared to simply hitting ENTER, and he would like a team of google engineers to roll out a new product with a new name to solve his problem?

And this is supposed to be in the name of efficiency?

<comment><USER7> TC needs more shoe-leather reporting. Ex: Interviewing a Google rep for this report would add a lot of value.

Arrington's reports are high quality. However, I tend to avoid reports from other TC writers since they just re-hash news highlights from other outlets.

</comment></comment><comment><USER8> I really don't see the need for something like this. We have instant messaging, SMS, Twitter, and so on for this functionality. I think it would be better served to make instant messaging more universal and have less boundaries.

</comment><comment><USER9> I think the author means: "If You Build It, Google, We Will Come". Journalists these days...

<comment><USER2> I don't think you can call it journalism if they can't spell...

</comment></comment><comment><USER10> If sending email is too daunting of a task, then stop using Gmail to communicate, and switch to "superior" platforms like Twitter and Facebook Messages.

For me, email is the way to go for online communication. Gmail Labs like inbox preview and mouse gestures, and keyboard shortcuts in Preferences help speed up my mail experience.

</comment><comment><USER11> Google Wave anyone?

I seriously don't see facebook messaging going anywhere, but maybe I'm not the intended user?

</comment><comment><USER12> I think this exists as the HTML version of Gmail. If you want Gmail to be lite, quick and dirty - use the HTML version and you'll be cruising in no time.

(To use the HTML version, click the link on the load screen. Or in the footer of your inbox if you've already logged in).</comment>


How the Guardian Went Digital - <AUTHOR> https://longreads.com/2019/03/18/how-the-guardian-went-digital/ <comment><USER2> A lot of their backend stuff is open source too:

[https://github.com/guardian](https://github.com/guardian)</comment>


With over 36 million visitors, Facebook finally overtakes Orkut in Brazil  - <AUTHOR> http://thenextweb.com/facebook/2012/01/17/with-over-36-million-visitors-facebook-finally-overtakes-orkut-in-brazil/

<comment><AUTHOR> I'm more surprised the Orkut continues than that Facebook has made headway in attracting users in Brasil. Why were users of Orkut not migrate to Google- Plus? Are there vast technical differences?</comment>


Show HN: Prray – "Promisified" Array in JS/TS - <AUTHOR> https://github.com/Bin-Huang/prray <comment><AUTHOR> Somedays I found that it would be much more natural and tidy if I could write code like this:

        const jsons = await urls.map(fetch).map(r => r.json())

So Prray appeared. It is compatible with normal array, but comes with async method supports. And it is well-tested, zero-dependency.

It also supports async method chaining that makes somethings like magic.</comment>


U.S. Senator Bans Funding for Beerbots That Don't Exist - <AUTHOR> https://spectrum.ieee.org/automaton/robotics/artificial-intelligence/senator-bans-funding-for-beerbots-that-dont-exist <comment><USER2> huh, I did not expect to make me legitimately angry. Technology and science are far too important in everyday life to have legislators who are ignorant, willfully or otherwise, of how research works. This is besides the fact that the sciences get pennies compared to other government expenses.</comment>


Show HN: Data Science Topic List and Textbook Reviews - <AUTHOR> http://datasciencetexts.com <comment><AUTHOR> Howdy Hacker News, We're Data Science Texts, and we'd love your feedback on our website. We're often asked for recommendations for books on data science related topics, and we're hoping to provide a useful starting point for other data scientists to learn new methods. We would welcome any suggestions for improvements to the website, as well as suggestions for topics or particularly good books that we've missed.

</comment><comment><USER2> Brilliant stuff, going to be using this to get afew books

<comment><AUTHOR> Thanks for the feedback!</comment></comment>


Ask HN: React vs. Angular vs. Ember? - <AUTHOR>

React vs Angular vs Ember. What's your choice?<p>What are the pros and cons of each framework that you have come across. <comment><USER2> Agree with niix - Been working with AngularJS for the last 9 months and I like it a lot - I like the "MVC" ish style; theres a ton of 3rd party directives, samples, tutorials, etc...

I don't like that AngularJS 2 is almost a complete re-write - i think it's going to severely fragment the community - it really should be called something else (this is only from what I read about it - haven't tried it myself)

In the last couple weeks I've been playing with React and I really don't care for the whole html mixed into the js thing - looks sloppy (IMO).

Try them out, see what you like and go from there.

<comment><USER3> Is it Angular really any different with the way it includes logic in templates? At least in React they're grouped together.

</comment></comment><comment><USER4> I've found that React isn't comparable to larger frameworks like Angular and Ember. While the latter two provide a sort of "batteries included" solution, React is simply "just the ui".

There are many articles on the Internet debating the frameworks, so I don't see any reason to go into much detail about that in particular. But what I recommend is giving them all a try and finding what works best for you. After all productivity and thereafter maintainability is really what is most important when building a product.

</comment><comment><USER5> I am a back end dev, who gets to dabble in JavaScript every so often, but never enough to consider myself an expert in any way.

I have tried Angular and there are way to many concepts for the amount of time I get to spend on it. React (after three days) is refreshingly simple. Well so far.....

</comment><comment><USER6> React by itself isn't comparable to Angular or Ember, but combine it with a flux implementation of your choosing and you have a pretty solid base for a declarative style of application. I've been using it now for just over a year, and it feels like I should have been building applications like this all along.

<comment><USER2> I've been saying the same of PHP since I got into AngularJS - It can't do everything and some backend processes are still required to run in a real backend language, but man, the quality / utility / coolness you can produce with the latest JS frameworks is awesome!</comment></comment>


Why Americans Just Can't Quit Their Microwaves - <AUTHOR> https://www.theatlantic.com/health/archive/2019/07/microwaves-eternal-promise/593767/ <comment><USER2> Do you want to quit it? I know this article is mostly about low-quality food, but our microwave heats and disinfects bottles for our newborn daughter, and, that would have been tremendously more terrible without a microwave.

I don't think I've eaten any microwave frosty food since I attended the university, maybe once or twice feeling nostalgic and hungover? But I really love our Microwave.

<comment><USER3> moksly says>"our microwave heats and disinfects bottles for our newborn daughter, and, that would have been tremendously more terrible without a microwave."

Ahhh! I remember that! But it was not difficult to put a bunch of bottles, nipples and caps into a pot of boiling water. Hardly "terrible".

And nowadays most modern water supplies are safe for infants:

[https://www.webmd.com/parenting/baby/should-you-sterilize- yo...](https://www.webmd.com/parenting/baby/should-you-sterilize-your-babys- bottles)

<comment><USER2> Well I think it's absolutely terrible by comparison, not sure why you get to be an authority on my experience, but ok.

Anyway, we boil and disinfect water because it's what our ministry of health wants us to do. It's also what was adviced by the newborn-specialist nurse that gets assigned to all new parents in Denmark as well as our family doctor. We have some of the cleanest water resources in the world mind you, yet they still consider it a rather big deal.

</comment></comment></comment><comment><USER4> Why should they? The article doesn't say.</comment>