The most cited deep learning papers - <AUTHOR> https://github.com/terryum/awesome-deep-learning-papers <comment><USER2> I can understand why it probably isn't on the list yet (not as many citations, since it is fairly new) - but NVidia's "End to End Learning for Self-Driving Cars" needs to be mentioned, I think:

[https://arxiv.org/abs/1604.07316](https://arxiv.org/abs/1604.07316)

[https://images.nvidia.com/content/tegra/automotive/images/20...](https://images.nvidia.com/content/tegra/automotive/images/2016/solutions/pdf/end- to-end-dl-using-px.pdf)

I implemented a slight variation on this CNN using Keras and TensorFlow for the third project in term 1 of Udacity's Self-Driving Car Engineer nanodegree course (not special in that regard - it was a commonly used implementation, as it works). Give it a shot yourself - take this paper, install TensorFlow, Keras, and Python, download a copy of Udacity's Unity3D car simulator (it was recently released on GitHub) - and have a shot at it!

Note: For training purposes, I highly recommend building a training/validation set using a steering wheel controller, and you'll want a labeled set of about 40K samples (though I have heard you can get by with much fewer, even unaugmented - my sample set actually used augmentation of about 8k real samples to boost it up to around 40k). You'll also want to use GPU and/or a generator or some other batch processing for training (otherwise, you'll run out of memory post-haste).

<comment><USER3> Nice. I'm wondering how often NVidia's solution makes a mistake. Also, the paper says:

> More work is needed to improve the robustness of the network, to find > methods to verify the robustness, and to improve visualization of the > network-internal processing steps.

But it doesn't hint at how this would be approached.

Also, how they arrived at the particular network topology seems sort of a mystery.

</comment></comment><comment><USER4> [http://people.idsia.ch/~juergen/deep-learning- conspiracy.htm...](http://people.idsia.ch/~juergen/deep-learning- conspiracy.html) oh Juergen

> _Machine learning is the science of credit assignment. The machine learning > community itself profits from proper credit assignment to its members. The > inventor of an important method should get credit for inventing it. She may > not always be the one who popularizes it. Then the popularizer should get > credit for popularizing it (but not for inventing it). Relatively young > research areas such as machine learning should adopt the honor code of > mature fields such as mathematics: if you have a new theorem, but use a > proof technique similar to somebody else 's, you must make this very clear. > If you "re-invent" something that was already known, and only later become > aware of this, you must at least make it clear later._

<comment><USER5> I mean, there was a nice 15 or so year period between the "new" post-Minsky- and-Papert Perceptron book connectionism and the current "new new" connectionism where neural nets were a definite backwater. Most of the PIs doing neural nets dealt with it by being sad but Schmidhuber seems to have dealt with it by doubling down on the weirdness.

<comment><USER6> Just because it wasn't wildly popular doesn't mean there was a gap of any sorts. I agree with Schmidhuber. [http://grey.colorado.edu/emergent](http://grey.colorado.edu/emergent)

</comment></comment></comment><comment><USER7> This might be as good a place to ask as any. Does anyone have suggestions on the problem of annotating natural language text to get a ground truth for things that have no readily available ground truth (subjective judgments of content etc.)? I do own the book "Natural Language Annotation" which is good but not exactly what I need. The part of annotation guidelines and how the annotation was done in practice is often only brushed over in many research papers. I mean I get it at a high level it's basically have a couple of raters, calculate inter- and intrarater reliability and try to optimize that. However like I said I'm struggling a bit with details. What are actually good values to aim for, how many experts do you want, do you even want experts or crowd source, what do good annotation guidelines look like, how do you optimize them etc.? Just to play around with the idea a bit, we did a workshop with four raters and 250 tweets each (raters simply assigned one category for the entire tweet) and that was already quite a bit of work and feels like it's on the way to little side of things.

I feel like I should find a lot more info on this in the sentiment analysis literature but I don't really.

<comment><USER8> You might want to browse archives of LREC biannual conference, they have sections focused on resource creation and some of the larger projects should have papers on annotation methodology. LDC ([https://www.ldc.upenn.edu/](https://www.ldc.upenn.edu/)) is probably the largest organization doing a large variety of annotation tasks, maybe they have published how they do things, I'm not sure.

However, often there are no real shortcuts; in many projects the resource annotation takes much more work and more people than everything else together, it's not uncommon to see multiple man-years spent to do that properly.

What you say about the high level is just about all that can be said in general, everything else will depend on your particular problem. After you've fixed the bugs in your process, interannotator agreement is not really a description of your annotators but a measure of how subjective/objective your task is - and you can't really change that without meaningful changes to how exactly you define your task. Some tasks are well suited for crowdsourcing, and some need dedicated experts. Some annotation tasks are straightforward and annotation guidelines fit on one page; for others the annotation guidelines are a literal book, and one that needs revisions as a few years after you figure out that you need changes. It depends. Shallow sentiment analysis is generally on the trivial side of annotation (but highly subjective), but you can go far enough the rabbit hole to drag the whole surrounding issues of intent, degree of belief, degree of certainty, etc - then you hit the full complexity of deep semantic annotation.

Perhaps you just need to find the people who did the latest more interesting datasets in your domain and ask them directly. I don't handle sentiment, but [http://alt.qcri.org/semeval2017/task5/](http://alt.qcri.org/semeval2017/task5/) is one group of people that seems to do it seriously.

<comment><USER7> Thank you, excellent and helpful post. I see I have visited the LDC site before but didn't remember that one. I'll have another look. SemEval looks like it could be exactly what I'd love to poke around and they have datasets available.

</comment></comment></comment><comment><USER9> Someone needs to make a summary of the top papers and explain it in a way lay man can understand. I would pay $500 for such a book/course explaining the techniques.

I've been reading a number of this papers but it's really tough to understand the nitty gritties of it.

<comment><USER10> Jeremy Howard's course ([http://course.fast.ai/](http://course.fast.ai/)) is much as you describe, the downside is it's a little too boring for people with mathematical education.

<comment><USER9> Thanks I'll check it out.

</comment></comment></comment><comment><USER5> No PDP book? It's old and weird but interesting and has a lot of original ideas, notwithstanding the actual original backprop being from before then. Nor the original backprop stuff?

<comment><USER11> The PDP book is the main textbook for a course I'm taking at CMU called... PDP. It's digestible, but man is it weird to see things like "this is an ongoing area of future research" where the future = after 1986.

I find it kind of hard to relate to for that reason — how do I know (besides asking my prof., whose PhD advisor was Hinton, or doing my Googling) what ideas ended up "sticking"? What areas of future research went nowhere vs spawned whole new subfields?

Is there a more modern textbook of the sort I could cross-reference?

edit: here's a link to the course website: [http://www.cnbc.cmu.edu/~plaut/IntroPDP/](http://www.cnbc.cmu.edu/~plaut/IntroPDP/)

<comment><USER5> Nobody really cares about this stuff anymore except weirdoes like me so you might actually be best off asking your prof.

There's also a lot of resurrection that goes on with weird ideas: FastFood cites a paper that cites a paper that cites Lecun's brain damage paper, for example

</comment></comment></comment><comment><USER12> I always wanted to apply the knowledge of the deep learning to my day to day work. We build our own hardware that runs the Linux on Intel CPU and then launches a virtual machine that has our propriety code. Our code generates a lot of system logs that varies based on what is the boot sequence, environment temperature, software config etc. Now we spend a significant amount of time go over these logs when the issues are reported. Most of the time, we have 1 to 1 mapping of issue to the logs but more often, RCA'ing the issue requires the knowledge of how system works and co-relating this to the logs generated. We have tons of these logs that can be used as training set. Now any clues on how we can put all these together to make RCA'ing the issue as less human involved as possible?

<comment><USER5> Use dumber ML first, try some random forests. Not even because they're even that much better or worse, just because DL requires an enormous amount of knowledge and fiddliness but what you prolly want is for the bulk of the actual work to set up the data for ML, not hyperparameter fiddling and architecture fiddling.

<comment><USER13> Before you try any sort of ML, explore your data [1, 2]. Exploratory data analysis may very well tell you that there is absolutely no point in making a fancy predictive model at all. If a few heuristics get you 90% of the way to an optimal solution, then don't even bother to start on machine learning, unless that last 10% is going to provide significant value.

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

[2] From one of my mentors: [http://www.unofficialgoogledatascience.com/2016/10/practical...](http://www.unofficialgoogledatascience.com/2016/10/practical- advice-for-analysis-of-large.html)

</comment></comment></comment><comment><USER14> The most cited deep learning papers: [https://scholar.google.com/scholar?q="deep+learning"](https://scholar.google.com/scholar?q="deep+learning")

</comment><comment><USER15> Has anyone downloaded them into their own separate folders and zipped the whole thing up?

</comment><comment><USER16> This is a really lucky find for me. I was just about to do something to try and get into machine learning. Right now I need some help getting started with writing some machine learning code. I don't know where to start. I've come up with a very simple project that I think this would work very well for.

I want to buy a Raspberry Pi Zero, put it in a nice case, add to push buttons and turn it into a car music player (hook it into the USB charger and 3.5mm jack in my car). The two buttons will be "like" and "skip & dislike". I'll fill it with my music collection, write a python script that just finds a song, plays it, and waits for button clicks.

I want the "like" button to be positive reinforcement and the "skip & dislike" to be negative reinforcement.

Could someone point me in the right direction?

<comment><USER17> Your usecase reminded me of the Netflix problem, which is given x movies that the user has liked, try to recommend movies to them based on a large dataset that has thousands of users and their movie ratings. For music, there is a similar dataset[1] and problem on Kaggle[2].

The way the system is evaluated is by building a model that will predict what rating the user will give a song even though the user has not rated it yet. Then the difference in predicted and actual rating will be computed as the testing error in the model. Some basic techniques for building a model are regression and matrix factorization using SVD (singular value decomposition).

Your usecase might be slightly different from this problem, because you wouldn't have to predict the rating other users give a song (only for yourself) and you want your model to change on the fly given a skip and dislike. A simple, but possibly effective solution might be to search the music dataset that contains the listening history of 1M users to find songs you haven't rated before and download it to listen.

[1] [http://labrosa.ee.columbia.edu/millionsong/](http://labrosa.ee.columbia.edu/millionsong/) [2] [https://www.kaggle.com/c/msdchallenge#description](https://www.kaggle.com/c/msdchallenge#description)

<comment><USER16> The main problem is that I'll just be starting with a folder of music friles from iTunes for example and from there I'll build up my like & dislike profile. So basically I'd like to have two vectors. The first being played songs (last 10 or 20), the second being unplayed songs. When the played songs are subtracted, I want to _sorted(unplayed, key=some_score)[0]_ and get the next song to play.

My initial thought was just to keep a full list of songs and their liked, disliked, and ambivilant states. Make some function to score a song based on their distance & # likes from the played vector.

Doing this all by hand would be a LOT of work. Are there any frameworks that do this? Is there any way to interface with them that are strait forward? Do I need to get a PhD before this stuff will come easily to me?

So many questions, so little time.

<comment><USER17> I'd contend that you won't be starting with a folder of music files from iTunes, but rather you'll have the benefit of the big data that others have gone to the trouble of collating in the form of 1M users' listening histories. From your initial like/dislike profile combined with the listening trends of 1M others, you can discover more implicit information than you can from just your initial like/dislike profile.

The purpose of ML is that you can tell a machine to go through more data than any human can. By expanding the corpus of songs from songs you've heard of to all songs in the big dataset, you will be able to find songs you haven't heard based on others who liked the songs you liked and disliked the songs you disliked.

edit: Maybe I misunderstood the problem you're working on. I thought you wanted to get recommendations of songs to listen to, but now I see that you have a lot of songs you like already, so you just want a song recommended from that list based on some factors like mood, time of day, etc.

<comment><USER16> The point of the project is to be simple and to collect all the data that I'm going to use to analize from my like and dislike. I want to do this as simply as possible so I can just get my feet wet.

This project also has constraints. It needs to fit in a Raspberry Pi Zero and on a microsd card with no internet connection running off the power from a USB power supply in a car.

It needs to be fast-ish (I can run all of this math at the same time I'm playing the ~3 minute song) and it needs to be small. If I've got 10-20GB of music then songs+os+my data<=32GB. These days I think you can get a Rasbian install ~1-2GB so that leaves us with ~10GB of data if I don't expand my music collection ever because after I get it set up I can't be asked to update it ever again.

So yes for this I just want to start with my music folder. A folder of audio files. No lyrics, no nothing. Just things that can be infered from my like and dislike.

</comment></comment></comment></comment></comment><comment><USER18> Classic papers can be worth reading but it's still useful to know what's trending.

Even a simple algorithm would be effective: the number of citations for each paper decayed by the age of the paper in years.

<comment><USER19> I think what you are describing here is simply "average number of citations per year", no?

<comment><USER20> I think he values recent citations more than older ones.

</comment></comment></comment><comment><USER21> Nice. Super excited to read through and build out a few things myself.

</comment><comment><USER22> torchcraft is the best way to learn about machine learning.

If you can sim a set of boxes, you can learn whats inside them.</comment>


Show HN: Roundio – Instant overview over what people posted to any location - <AUTHOR> http://roundio.com/?hn2

<comment><AUTHOR> NB: We posted a link to this project some months ago, which at that stage required a signup. Resubmitting since we have now opened up most of the application to everybody, except the create-account-in-order-to-contribute and-get-notifications-on-things part. There´s also quite a few improvements done to the design and general GUI. We hope people like the changes/modifications we´ve done!</comment>


Canillita: Your First Erlang Web Server [Updated to 2016 Standards] - <AUTHOR> http://inaka.net/blog/2016/01/04/canillita-your-first-erlang-web-server-V2/ <comment><USER2> thanks!</comment>


Apple's iPad Pro page missing transparencies on all images [video] - <AUTHOR> http://quick.as/mv86s6zjk <comment><AUTHOR> I just visited the iPad Pro page ([http://www.apple.com/ipad- pro](http://www.apple.com/ipad-pro) and YMMV right now) as any self respecting fan boy would, and discovered that all of their images are missing the PNG transparency that should really be there. How did this get missed in QA? Captured video to prove it happened.

</comment><comment><AUTHOR> Looks like it works OK in Safari and Chrome, I looked at it in Firefox.

<comment><USER2> We aspire to have smooth edges (except on firefox) - Jony Ive</comment></comment>


Italy investigates Booking.com over €150m of unpaid VAT - <AUTHOR> https://www.ft.com/content/ac68b41a-a491-11e9-974c-ad1c6ab5efd1 <comment><AUTHOR> > Italian authorities are investigating whether Booking.com is liable for at > least €150m in unpaid VAT on holiday rentals made through its platforms, > according to two people familiar with the matter.

> Booking.com considers itself an intermediary between property owners and > guests and treats reservations as direct transactions between the two.

> But according to those close to the investigation, the lack of an automatic > system for VAT payment means that the tax often goes unpaid, resulting in a > significant shortfall over time.

> Italian prosecutors are investigating whether Booking.com should be liable > for paying the VAT owed on payments made between 2013 and 2018. They > consider the €150m figure a "conservative estimate", the people added, based > on an analysis of the company's revenues in Italy and police interviews with > individuals using its platform.</comment>


Ask HN: Should I be scared about living in the US?  - <AUTHOR>

I wasn't worried about the PRISM fiasco until Monday when I started reading more articles. What really makes me nervous is the possibility of innocent US citizens being misconstrued as enemies of the state for posting anything online that isn't 100% supportive of the government. Right now the US seems like it's on a slippery slope to fascism and/or totalitarianism rule.<p>Your thoughts, please. <comment><USER2> No. The heat is on the government. And shit is about to hit the fan. I haven't been this content in 10 years.

"What really makes me nervous is the possibility of innocent US citizens being misconstrued as enemies of the state for posting anything online that isn't 100% supportive of the government"

Take every opportunity to point out that you love the USA. Hippies literally wrapped themselves in our flag. We are the patriots. The current people in government are blip in our history. Hopefully they're tried for their crimes and serve in the prisons they built.

<comment><AUTHOR> Your confidence is admirable. The rest of this year is definitely going to be interesting between PRISM and the Bradley Manning trial.

</comment></comment><comment><USER3> You shouldn't be scared of living in the US, because as they said, the NSA only targets non-Americans. In fact, that means you'll be safer in the US! Who gives a crap about non-Americans anyway?

EDIT: /s

<comment><USER4> oh jeez, that shows how ignorant self righteous you are, people like you add up to the pile of shit we already have. you gentleman, should read a little more about your country, its fucked up economical system that led the word to this massive crisis. You should interpret your country's political approaches that also led to destruction and instability of many countries they chose to interfere in. just let me remind you, that there was never americans to begin with, yeah check your own history,your all descendants of non-americans so to say...just a FYI! now go educate yourself and give this world a chance to evolve and prosper, or just kill yourself..the sooner the better.

<comment><USER3> I was actually being sarcastic, I can't believe you didn't figure that out. I'm just as angry as you are that the NSA thinks spying on non-Americans is a good excuse. Also, let's keep it civilized please.

</comment></comment></comment><comment><USER5> > Right now the US seems like it's on a slippery slope to fascism and/or > totalitarianism rule.

If that is the only thing you see, when you look at the US, feel free to leave. There is a long line of people who would be happy to take your place.

<comment><USER6> Growing up as a kid I always wanted to go to America. I've visited America and while I love it, I don't really care if I never step foot in the country again.

Its going down hill fast, its becoming more and more corrupt every second of every day.

This excerpt from the BBC Documentry; The Power of Nightmares, holds true IMO.

"To most people watching this dance, it would have been an innocent picture of youthful happiness. But Qutb saw something else: the dancers in front of him were tragic lost souls. They believed that they were free. But in reality, they were trapped by their own selfish and greedy desires. American society was not going forwards; it was taking people backwards. They were becoming isolated beings, driven by primitive animal forces. Such creatures, Qutb believed, could corrode the very bonds that held society together. And he became determined that night to prevent this culture of selfish individualism taking over his own country."

Also Johann Wolfgang was right when he said:

"None are more hopelessly enslaved than those who falsely believe they are free."

<comment><USER5> You guys can down vote me all you want. Doesn't change the fact that US visa applications are at all time highs.

As far as the tech industry goes, when it comes to the people you meet, the experiences, the talent, the cutting edge of technology there is no better place to be, then anyone of the many tech hubs in the US.

At the end of the day leading a satisfying and fulfilling life, has as much to do with a person's mindset, as it has to do with the opportunities available or the person's environment.

But ofcourse, for some people looking past their own shortcomings and finding excuses or faults with a country, a religion, the NSA, Obama, their parents, their boss and god knows what else comes very easy. And if these people want to leave the US and make room for the millions who want get in I am all for that.

</comment></comment></comment><comment><USER7> Not if you live in the Middle East :p</comment>


Islamic State magazine Dabiq withdrawn from sale by Amazon - <AUTHOR> http://www.bbc.com/news/world-middle-east-33035453 <comment><USER2> I think that we really need to have some common carrier laws for companies that provide platforms.

I am tired of companies deciding which speech/service is not acceptable and behaving like gatekeepers. If you have revenue more than $100M - you must provide FRAND access to your platform.</comment>


Advanced Fraud Protection - <AUTHOR> https://www.braintreepayments.com/fraud-protection <comment><USER2> I've been working on an app that addresses this problem - it's not ready for prime time yet but I'd love any feedback or suggestions.

The so-alpha-I-don't-have-a-domain-name version is here: [http://merchantprotector.herokuapp.com/](http://merchantprotector.herokuapp.com/)

<comment> w0rd-driven I really like the polish of the site. The animations are a nice subtle touch and everything is pretty distinct enough to not be overwhelming at all on the report view.

<comment><USER2> Thank you very much! I bought the theme for seven dollars on themeforest - highly recommended for anyone that isn't great at / doesn't love designing!

</comment></comment></comment><comment><USER3> For a while I was in charge of fraud screening for a high risk company selling software - about half the incoming orders were fraud, and their transaction scoring system was quite advanced, to the point we could see the name and even pictures of the customer.

<comment><USER4> This must be great for those companies who 1. Have time to hand screen every customer 2. Don't care about their few customers enough to "white glove" them.

</comment></comment><comment><USER5> Having just been attacked by a bunch of credit card fraudsters and having to try to unwind the fraudulent transactions, I'm a big fan of moves like this. Thanks Braintree!

</comment><comment><USER4> 1\. Integrate data.js customer data profiling

2\. ???

3\. Fraud protection!</comment>


TRIF Game (WebGL) - <AUTHOR> http://trifgame.com/ <comment><USER2> Looking good! I like what you did with the water shader and the look of the ship. Now I want to see the robot ;D</comment>


Ask HN: What language or technology would you like to see make a comeback? - <AUTHOR> <comment><USER2> Palm Pre - best cell phone I ever had. I wonder where it would have evolved to by now if it had proven viable</comment>


Seven Chapter Guide to E-mail Marketing for Startups - <AUTHOR> http://blog.getvero.com/email-marketing-guide/

<comment><USER2> Man, that highlighter script is obnoxious. It is blocking view of the text for a highlighted bit, and it just gets in the way of the compulsive text- selecting that I know I'm not the only one to do.

<comment><USER3> Yea, I'm sure there's a lot of good information here. But my initial reaction was "holy crap, so busy, so much color, too much going on."

</comment></comment><comment><USER4> Awesome guide!

</comment><comment><USER5> Chapter 1 is 404ing.</comment>


Prof: Algebra, geometry perpetuate white privilege - <AUTHOR> https://www.campusreform.org/?ID=10005 <comment><USER2> Those are pretty terrible points to make for her argument.

The way teach _in general_ perpetuates white privilege, quite independently of who invented what, or even what symbols we use. Some care is required here, because the "who" is as much a matter of who recorded history as anything else, and the symbols _can_ introduce bias. I'm skeptical that these specific examples represent either case. Specifically with respect to strictly mathematical instruction, where the history is rarely included as part of a curriculum.</comment>


Show HN: HN clone for science - <AUTHOR>

Hi, I installed that HN clone for all things science. Most likely there are already others out there already, but I thought it's worth a try. Let me know what you think about the idea and what features you would like to see...a search function is on its way...Thanks in advance! http://www.heurekalab.com <comment><USER2> This could be cool for computer science only too.

</comment><comment><USER3> <http://www.heurekalab.com></comment>


Emacs Rocks - <AUTHOR> http://emacsrocks.com/ <comment><USER2> I feel like this was a missed opportunity to use emacs.rocks (which as of right now is not registered. Hurry!)

<comment><USER3> Pretty sure ".rocks" didn't exist yet when this domain was purchased. It's not all that new[0].

[0]: [https://news.ycombinator.com/from?site=emacsrocks.com](https://news.ycombinator.com/from?site=emacsrocks.com)

</comment></comment><comment><USER4> As a die hard Vi(m) user, who just rage quit Emacs today because it messed up on undoing things (Emacs did what Emacs does, sadly my brain doesn't work the same way), I had hoped to see more than just "more excuses to never leave your editor"

<comment><USER5> I like to use undo-tree for making sense of my undo history. It's inspired by Vim, apparently, so it might work for you.

[https://elpa.gnu.org/packages/undo- tree.html](https://elpa.gnu.org/packages/undo-tree.html)

<comment><USER6> Undo-tree is pretty awesome. Saved me from anguish more than a few times.

But alas, emacs is just too slow during startup for my workflow. I use it with clojure but only because of Cider.

<comment><USER5> It's very snappy to open if you run it as a server. Defining an alias for 'emacsclient -a= -c' was enough for me. It will boot Emacs if it's not already running, but otherwise, you immediately get a new frame hooked up to the running instance. You can also run Emacs as a systemd user service, to spare even that first delay.

You do have to get into the habit of exiting by closing the buffer or the frame instead of quitting Emacs.

<comment><USER6> I've tried that a few times, but inevitably emacs+plugins get into a bad state and I have to restart.

Plus I haven't figured out how to keep my buffers organized. When I'm working on project x, I don't want to see project y buffers. I'm sure there are many plugins for that too, but the state gets corrupted over time and stuff I use quits working.

I much prefer separate instances for separate work, and nvim or vim start from scratch faster than an emacsclient connects.

</comment></comment></comment></comment></comment><comment><USER7> Long time emacs user here. This is a great resource.

P.S.: I also happen to be a vi user.

<comment><USER8> EViL?

<comment><USER9> Unlikely, probably just DUmB.

</comment></comment></comment><comment><USER10> The amount of time it takes to setup tune customize and debug emacs is no longer justifiable

<comment><USER11> Some people like to paint ducks or build model airplanes. Some relax by plopping down in front of their PlayStation or TV for a few hours. Others like to tweak their editor. Is that so wrong?

<comment><USER10> Not at all. Emacs works as a hobby but unfortunately lost its practicality

<comment><USER12> You have any idea how long does it take to fine-tune a piano? How difficult and expensive is to adjust a Formula 1 bolid for a specific track? How long does it take to train a service dog?

Just because it takes time and effort to master and fine-tune a tool, required process does not render the tool impractical. Au contraire - it makes that tool the best suited for the task.

<comment><USER10> pardon. One shalt not argue with a true believer</comment></comment></comment></comment></comment>


Evidence Shows Hackers Changed Votes in the 2016 Election but No One Admits It - <AUTHOR> https://www.theroot.com/evidence-shows-hackers-changed-votes-in-the-2016-electi-1827871206 <comment><USER2> Even stronger evidence shows the Republican Party worked with Russian intelligence to obtain the voter rolls that they used in their micro-targeting ad campaigns, but oddly enough nobody is talking about that. Aaron Nevins literally bragged about recieving stolen property from Russian intelligence and using that to further his political goals of electing republicans.

<comment><USER3> Thats a big claim. Do you have a source on that?

<comment><USER2> Literally google Aaron Nevins. He openly discusses it.

</comment></comment></comment><comment><USER4> So Georgia rather then let DHS look at their machines decided to delete and wipe them clean? and the backups? Why would they do that unless something was wrong?

<comment><USER5> The FBI made full images of all Georgia machines.

<comment><USER6> Source?

<comment><USER5> [https://www.politico.com/magazine/story/2018/07/18/mueller-i...](https://www.politico.com/magazine/story/2018/07/18/mueller- indictments-georgia-voting-infrastructure-219018)

"The good news is that FBI agents in Atlanta made a mirror image of the server that Lamb breached when they were investigating his intrusion, and the plaintiffs are hoping the judge overseeing their case will rule that they can examine this image. It's unclear, however, whether the image preserved everything that was on the server and whether the image still exists.

A spokesman for the FBI's Atlanta office refused to comment on the matter and referred POLITICO to KSU. KSU did not respond."

[https://www.usatoday.com/story/tech/2017/10/26/computer- file...](https://www.usatoday.com/story/tech/2017/10/26/computer-files-heart- georgia-election-security-case-deleted-day-after-suit-filed/803579001/)

"The FBI is known to have made an exact data image of the server in March when it investigated the security hole. The email that disclosed the server wipe said the state attorney general's office was "reaching out to the FBI to determine whether they still have the image."

Atlanta FBI spokesman Stephen Emmett, responding to AP questions, would not say whether that image still exists. Nor would he say whether agents examined it to determine whether the server's files might have been altered by unauthorized users."

</comment></comment></comment></comment><comment><USER7> I remain shocked that voting machines are not open source and publicly auditable.

I'm also surprised the NSA isn't specifically tasked with a regular, detailed, high-resources code review of the codebase.

<comment><USER8> The biggest problem would be open sourcing _everything_ , not just the software that used. The OS, the network configurations/setup, access controls/policies, etc. Even then, without a verifiable and private way of verifying counts, we could never be sure about a vote count.

<comment><USER9> Do it on an openly observable blockchain so everyone can see what's going on in realtime

<comment><USER8> I knew once I posted it that someone would suggest using a block chain.

The problem with the block chain is privacy. Publishing people's votes can and will have a huge impact on their life. It would also make buying votes much easier.

A block chain solution would have to find a way to ensure that only valid voters can place a vote, ensure that only people that could vote were the only people that placed a vote after the fact, and ensure that none of this can be tied to a real identity. Otherwise, either bad actors could place votes, or a complete voting record for a person is published.

Solve all of the above, and a block chain may be an acceptable way to go, though it would be a waste of energy in my mind compared to a normal database, which could easily be exported with only the vote and signature stating it was a valid and verified vote for a person.

In the end, we have just made something more complicated than a paper ballot, which has been shown to be reasonably secure against foreign and/or national actors attempting to influence an election, except in already corrupt nations, especially those without term limits...

<comment><USER9> A distributed ledger with an entry for every single voter who gets to move their single "token" from one column to another column with their selection. Roll it up and there's your result. Enough bits and everyone can have their own token that is unique, anonymous and secure. The argument about corrupt regimes is a nonstarter cause you've got bigger problems.

</comment></comment></comment></comment></comment><comment><USER10> Georgia was traditionally a red state so even if the votes were changed it wouldn't have affected the result.

Are any swing states suspected of having their voting system hacked to have changed the final result?

It is weird that the electronic voting system is u likely to get fixed. I guess it will have to get much worse in the future to cause action?

<comment><USER11> > Georgia was traditionally a red state

Georgia has been becoming progressively less red, and was early on in the 2016 cycle seen as a potentially swingable state.

> I guess it will have to get much worse in the future to cause action?

At least, it will have to _not_ help the party in power in the state.

<comment><USER12> > Georgia has been becoming progressively less red, and was early on in the > 2016 cycle seen as a potentially swingable state.

I'm having a really hard time imagining an EV scenario where Georgia is the deciding state. An election where Clinton takes Georgia is one where she wins by a landslide.

And in the end the results in Georgia were right in line with both those of other states and with the exit polls.

There's no story here and, frankly, it distracts from real issues affecting voters like bogus Voter ID requirements, intentionally understaffing or removing polling places on college campuses, etc.

<comment><USER6> Under traditional expectations, sure.

</comment></comment></comment></comment><comment><USER6> We are hackers, and this is a technology problem. Was it flagged because it have overlap with politics?

<comment><USER13> It gets flagged by users, not moderators.

Flagging is kind of like upvoting. No one person gets to say what ends up on the front page. It's an outcome of group consensus, basically.

I don't ever bother to ask "Why is this being flagged?" because the answer is that the exact reason will vary from person to person, my understanding is that multiple people have to flag it (I don't know how many) to have a noticeable effect, I have no means to determine who flagged it, etc. So I consider it to be unanswerable.

</comment></comment><comment><USER14> >Russia actually got inside the voting systems of seven states, including 4 of the 5 largest states in terms of electoral votes—California (55) Texas (38) Florida (29) and Illinois (20).

And yet two of those states listed went for Hillary. Maybe the Russians didn't want to be obvious.

Author spends a lot of time on Georgia, with its "D" rated voting system and its 16 electoral votes.

>Georgia's systems would have been an "ideal" target for Russian hackers because the state doesn't use a system with a paper trail so there is no way to audit the system.

Let's accept that for the sake of my next question - would a paper trail actually help? Maybe, depending on who gets the paper. Does it mean the voter gets a receipt? That might cause a few problems of its own.

For instance, a group of well-armed people acting as a "voting integrity militia" might decide to inspect people's voting receipts for any "errors." One can only imagine how the article's writer would characterize _that_.

Now let's pretend some of all of the states _admit_ their systems had been compromised. Should we trust the results of any election, or just the results we don't like? We can reasonably guess the author's answer to that question.

<comment><USER15> > Maybe the Russians didn't want to be obvious.

If California voted for Trump, that would in fact be obvious...

</comment></comment><comment><USER12> This is a really weak article that does not support its headline and veers into conspiracy theory territory.

</comment><comment><USER16> What a waste of time. There's not a shred of evidence in that article.

</comment><comment><USER17> Georgia Exit polls: Trump 51%, Clinton 46%, Other 3%

Georgia reported results after possible Russian hacking: Trump 51%, Clinton 46%, Other 3%

[https://www.cnn.com/election/2016/results/exit- polls/georgia...](https://www.cnn.com/election/2016/results/exit- polls/georgia/president)

[https://www.politico.com/2016-election/results/map/president...](https://www.politico.com/2016-election/results/map/president/georgia/)

</comment><comment><USER18> This article asserts that Donald Trump is the Kremlin's Executive in Charge of U.S. Operations. That makes it very difficult for me to take seriously.

<comment><USER9> That actually sounds like one of the more plausible assertions

</comment></comment><comment><USER19> This article is amateur.

> And despite what Donald Trump, the Kremlin's Executive in Charge of U.S. > Operations, would have you believe

It's hard to take an article seriously when it uses a tone like this (even if there is some truth behind it).

<comment><USER20> There once was a time on HN when it was customary to respond to a comment like this with a referral to Paul Graham's Hierarchy of Disagreement, suggesting that it might be better to aim higher than "responding to tone."

<comment><USER21> It's not just tone though; it's an obvious journalistic bias. It couldn't possibly be _more_ obvious. It's nonsensical to pretend that doesn't affect the author's credibility.

<comment><USER20> Someone should probably mention that calling the source biased is just circumstantial ad hominem, which is even lower on the pyramid than responding to tone.

<comment><USER21> >Someone should probably mention that calling the source biased is just circumstantial ad hominem, which is even lower on the pyramid than responding to tone.

Yeah, that gets thrown around a lot by people who like to parrot logical fallacies to sound smarter than they are. In reality credibility matters. A lot. Especially for journalists.

You're trusting this person to report the facts accurately. You're trusting them to report fully and not omit relevant details. You're trusting this person to commit to an investigation which is as impartial as possible.

All of those require trust, and trust is built by credibility, which is built by demonstrating that you do your job well.

So no, of course it doesn't mean that everything else in the article is incorrect. Of course, I never said that (straw man on your part? Thought you may enjoy that.) It _does_ mean that I will take anything I read afterwards with a grain of salt.

<comment><USER20> I see it as a tradeoff. If someone wears their bias on their sleeve, you know where they're coming from. If not, you have no way of knowing whether you're reading someone who is judiciously adhering to a process that minimizes bias, or whether they are deliberately concealing their bias, or whether they are so deluded that they imagine themselves to have no bias whatsoever, which would be absurd.

Regardless, you're still advocating for a low form of argument.

<comment><USER22> Well, the article got pulled, so I guess it was a pretty solid warning sign after all:

"Editor's Note: This story was an opinion piece asserting there was evidence that hackers changed votes in the 2016 election. However, a number of statements in the piece are disputed by experts. As a result, we have pulled it down for editorial review, and will update it once that review is completed."

<comment><USER20> The editors are operating a full three levels higher (than "responding to tone") in the hierarchy of disagreement. They're setting a good example. (Although a bit later than ideal.)</comment></comment></comment></comment></comment></comment></comment></comment>


Automated News Comes To Sports Coverage Via StatSheet - <AUTHOR> http://techcrunch.com/2010/11/12/automated-news-sports-statsheet/

<comment><USER2> It's a big day for us at StatSheet!</comment>


Rails isn't for beginners - <AUTHOR> http://rakeroutes.com/blog/rails-is-not-for-beginners/ <comment><USER2> I come from the django camp, but I feel this article applies to both frameworks. I teach high school math and science, and I have started teaching python to interested students. It has been very satisfying, and now students who didn't think themselves capable of learning to program are interested because they are watching their friends have fun with it. They enjoy writing programs that output to the terminal, and some students are developing gui- based programs.

This has led me to consider whether I could teach them to build web apps using django, or rails, or any other framework. It quickly becomes a daunting proposition for anything nontrivial.

You can follow tutorials, books, and videos all you want. But when it comes down to it, every good web app is developed over time through iteration and troubleshooting. Those are two areas where you simply have to understand what is going on under the hood to be successful. It's nice to work with data through an abstraction layer, but when you do something that doesn't work well with the abstraction layer you need to be able to do some manual twiddling with your actual database.

Frameworks make it easier for experienced developers to build meaningful projects quickly, which they are then able to maintain based on their deeper technical understanding. Frameworks may help inexperienced people play with a simple web app. But frameworks don't let the average person build and maintain complex web apps.

<comment><USER3> I think it depends on the framework.

A full-stack framework such as Rails or Django isn't going to help with learning because it 'magics' too much of the underlying structure of building a web app away. You end up using so many proprietary pieces, all of which "just work" (and don't worry how, just know that it does) together.

Conversely, micro-frameworks such as Sinatra and web.py (the structure of which inspired App Engine's webapp, and Friendfeed's Tornado) get rid of just enough of the underlying complexity of getting Ruby/Python to talk to a browser to, as is often said, let you feel as if you are writing a Python (or Ruby) web app, rather than a Django (or Rails) web app.

Perhaps the middle ground for your students is frameworks such as Flask and Pyramid, which start as a micro framework, but which offer the full-stack batteries included features as and when you need them.

<comment><USER4> I dunno if the magic is the real problem. I think the real problem with full- stack frameworks is that they require you to drink their entire pitcher of Kool-Aid in order to get up and running. There's no easy "Hello World" to give new users confidence.

Take Django for instance (because I have more experience with it than I have with Rails). Just to get through the introductory tutorial (<https://docs.djangoproject.com/en/dev/intro/tutorial01/>) you have to wrap your brain around projects, apps, views, models, and Django's command-line tools. Contrast that to getting started in PHP without a framework; you can introduce someone who only knows HTML to PHP extremely gently, by taking an existing HTML document (which they understand) and sprinkling in some PHP to do simple stuff. They won't be a programming god with that knowledge, of course, but that's not important; what's important is that they took the first step and succeeded, which gives them the confidence to take the second. With a full-stack framework, getting that first step right involves a _lot_ of mental work, which increases the chances that people will screw it up or abandon it in frustration.

Frameworks frequently compound this problem by inventing their own terminology for features, or taking words people already use and redefining them, so you can't easily map things you already know from other systems to things inside the framework. Just in the Django intro, for instance, we have to learn the difference between _projects_ and _apps_ , both of which are commonly used terms that Django has overloaded with Django-specific meanings.

All of this means that taking the first step in going from "has never used Django" to "Django newbie" involves a _lot_ of learning, and that guarantees that some people are going to just walk away and others are going to try to follow along but get lost in the complexity.

</comment></comment></comment><comment><USER5> I agree completely.

A couple of months ago my sister approached my and asked "How do I learn how to make websites?" She has no programming experience, so I thought for a while on where to start. I figured if I showed her what I was working on in Python/Django, she would be completely overwhelmed. So I started with just HTML. As she worked through that, she started asking questions like, how to change layout and fonts, so we started working with CSS. She's not at the point yet, but I think PHP is going to blow her mind, as I've seen her copy/pasting stuff from file to file.

I think its important to start at the beginning and learn some of the pain points that these frameworks solve before jumping in. Otherwise you just get frustrated wondering why things are set up a certain way.

<comment><AUTHOR> That's the nail on the head right there. Without any context even the conventions of Rails seem like arbitrary decisions just to make things complicated. Once you understand the problem you can appreciate the solution.

<comment><USER6> I'm not sure. I remember learning HTML and CSS through WYSIWYG editors such as Dreamweaver (essentially abstractions, no?), and then getting frustrated by how much excess code it was adding. That then gave me the impetus to delve into the code and then begin learning the HTML, CSS, principles informing the design. Had I started back then trying to tackle HTML head on, I might have been overwhelmed.

Similarly, I'm trying to learn building web apps at the moment. I'd rather have some decisions taken for me by Rails (in the knowledge that they've been based on some kind of best practice / consensus) and try and build backwards from there. It's probably not the purists way of learning, but then I don't have the level of expertise a purist probably does.

<comment><AUTHOR> Coming to Rails frustrated with the slog that you have to deal with otherwise is exactly the path that Rails was designed to accomodate. You know and appreciate the fact that Rails is making decisions for you to help you get going while a beginner would probably be overwhelmed by all the complexity.

<comment><USER6> Absolutely - and in fact, one of the virtues of the better Rails tutorials is that they do expose you to some of the complexity.

You learn to understand that things are passing between the model and controller, and the rough sequence of things. I've come to appreciate the basics of a RESTful approach, and why things are as they are. I'll of course need to take away the abstraction over time, but without having the abstraction in the first place, I probably wouldnt have started.

That said, I second the point about getting it installed. I shouldn't have to be on StackOverflow for that.

</comment></comment></comment></comment></comment><comment><USER7> _Learning to program is all about learning mental abstractions. A beginner will have no conceptualization of what a web application can or should do. Where an experienced web programmer from any language will hear requirements and immediately (and almost unconsciously) start building up a mental model of the problem domain, the beginner will still be struggling with how the system itself works. That will be true in any web development framework, because there's simply no way for any framework to think through the problem for you._

This.

<comment><USER8> There seems to be a fundamental misunderstanding about what "beginner" means for Rails.

I've been a .NET developer for over 10 years. I'm a Rails "beginner". I'd say I'm comfortable with web technology, and yet Rails was an absolute nightmare for me to get started with.

If the Rails community wants people like me to stop doing what they were doing and use Rails instead, it MUST be easier to get started with.

<comment><USER9> I just got hired for a gig as a rails developer, and I feel your pain. I got hired because I primarily work with python, and have good experience with Django, flask and the like, but I had never really touched rails. From the various comments I'd heard, I figured it would be a simple transition, but man has it been annoying. Just setting up their dev environment took almost an entire 8-hour day, and I was one of the 'faster ones'.

Not to mention that having to deal with rails legacy code, you quickly realize that despite the original developer's best efforts, the whole magical+'convention over configuration' aspect of rails just totally goes against the concept of 'self-documenting code'. Compound that with the fragile version requirements of both Ruby _and_ Rails, and you have a recipe for frustration. Out of any given search I perform, about a third of the 'relevant' results are for incompatible versions of rails, making it hard to find anything reliable outside the official docs (which leave a bit to be desired).

I may just be spoiled by the relatively conservative + documentation-heavy nature of most of the python frameworks I've worked with, but considering the popularity of rails (even amongst non-developers), I guess I just expected the barrier to entry to be a bit lower...

<comment><USER10> Can you give more details? Bundler gives very strong versioning of dependancies, I find railstutorial.org, railsguides, and the api docs to be pretty complete, and "convention over configuration" means things like your models are singular names of your tables, and if you do something like "belongs_to :other_model" it expects an "other_model_id" field by default, and will link to to a class called OtherModel. It is the sort of thing that can be a pain if you don't know it, but can be learned quite easily, especially if you have more experienced folks your working with.

I learned rails and django at about the same time, and I never understood the praise of the django docs. Both projects have above average documentation for open source projects, but if anything I find the rails docs are far more consistently up to date compared to django. Both have helpful and active communities though (which is far more important imo), and I never really had that hard of a time figuring something out.

I think rails has a "For Noobs" reputation with people who have never used it, but as someone who didn't really have any preconceptions going in, I find this "rails 3 is hard" thing really hard to understand.

<comment><USER9> > It is the sort of thing that can be a pain if you don't know it, but can be > learned quite easily

I agree, it's not terribly hard to pick up the basic idea, but it still doesn't lend itself to the idea of being 'self-documenting', which has always been a helpful fallback when dealing with python stuff that I encounter problems with. I guess it kinda just feels like it encourages too shallow of an understanding of what's going on, especially if for some reason I might want to tweak/customize certain things later on; it feels more geared towards giving you a fish, as opposed to teaching you how to fish (which is highlighted by the 'standard' encouragement to use lots of code generation). Even after going through the docs, it took me way too long to get even a vague idea of how to properly set up a custom model/migration _without_ the rails generator tool. But I'll admit, that's all a lot more in the realm of personal preference.

Bundler is cool, but even with strict versioning, setting things up for the first time is no walk in the park. I won't blame rails for that though, that's clearly more of an ecosystem problem. A bigger problem than versioning though (in my eyes anyway), is when plugins follow this 'rails-way' of doing things magically, and leave no clear way to troubleshoot problems when they arise (devise, I'm looking at you).

I too find the rails guides and rails tutorial to be immensely helpful, but it's more because I would literally be completely lost without referring to them every 5mins, than because I find them terribly insightful. I know the django docs aren't _really_ that much better, but since I can usually work my way around a django project without referring them as frequently, I guess my standards for them is lower? Same could be said for a lot of their plugins, because again, at least there I have been able to fall back on 'self- documenting code' most of the time.

I do think rails is pretty cool, and I could see why it got the praise it did, but I would probably only use it on small projects that involved only a handful of people from the get-go, because I would feel bad dropping a newbie onto a mountain of legacy rails code.

<comment><USER10> >>I agree, it's not terribly hard to pick up the basic idea, but it still doesn't lend itself to the idea of being 'self-documenting', which has always been a helpful fallback when dealing with python stuff that I encounter problems with. I guess it kinda just feels like it encourages too shallow of an understanding of what's going on, especially if for some reason I might want to tweak/customize certain things later on; it feels more geared towards giving you a fish, as opposed to teaching you how to fish (which is highlighted by the 'standard' encouragement to use lots of code generation).

I have been doing rails every day for about two years now, working on a moderately large (200k loc) app, and we very rarely go against the "rails way" of doing things wrt to naming. Like if you have a model called Post and a model called Comment with a line that says "has_many :comments" in the post, there is a lot going on. The name of the accessor will be called "comments", it will lookup data in the "comments" table that have an fk of "post_id" and materialize a collection of Comment objects.

I find those are good conventions, they are readable, and more importantly, they are consistant across all the rails apps I will ever see. So when I write new code, or am reading code I am not familiar with, there is this whole class of things I don't need to make decisions about, since there is already this implied group understanding of the way things should be.

Now, in the time I have been doing this, there have been probably around 3-4 times when I _have_ wanted to customize those things, but it is really so incredibly rare that I would go so far as to say you wont hit a point where going against the convention is a good idea until you do this professionally, at which point hitting up apidock and finding out about the :class_name and :foreign_key options.

The places where I tend to branch out is things like custom validators, or putting a bit more architecture in then jamming everything into fat models, but fighting rails conventions really isn't something you ever want to do no matter how experienced you are with them

>> Even after going through the docs, it took me way too long to get even a vague idea of how to properly set up a custom model/migration without the rails generator tool. But I'll admit, that's all a lot more in the realm of personal preference.

I think this is where the disconnect is for me about accusations of magic. A model is a ruby class that extends ActiveRecord::Base, is named as the singular version of the table, and is put into the app/models directory. I don't find any of those things particularly magical or mysterious, but if you only use the generators then you are never forced to think about the implications of the code that is being used, so that process of learning gets pushed out until way later.

The other thing is I see it recommended quite often to skip learning ruby by itself, and just pick it up as you go with rails. I think that is terrible advice, rails uses many features in the ruby language that aren't common in other similar languages. So when you run across an api like the create_table which uses a builder pattern with blocks, it seems like a lot more magical then it actually is.

Personally, I only use generators to create migration classes, and that is just so it puts the timestamp in for me. They are really there to help beginners get going (and potentially write some boilerplate code for you, although I usually would rather only write the bits I need rather then delete all the stuff I don't need). Maybe they do more harm then good though, and people should start recommending that beginners learning the framework create files manually until they gain a certain baseline of understanding.

</comment></comment></comment></comment></comment></comment><comment><USER11> I'd always remembered word-of-mouth from Rails enthusiasts touting how easy Rails was (talking 2006-2007). A Rails guru last summer told me that 'Rails was never promoted as being _easy_ '. Was my memory faulty? Has the PR around Rails changed over the years?

<comment><USER12> It was promoted as being easy for _people who already knew how to program_. Which it was. The 5-minute blog video wouldn't help a total newb at all, but to an experienced developer it's clear how powerful it was.

<comment> wh-uws I can attest to this. I was a total noob when I saw that video and didn't get it.

Spent several years in the murky php waters because I could just drop that code in the html I did know and go.

Now that I have more experience its more more clear the benefits of rails/django

</comment></comment></comment><comment><USER13> I am a beginner and you are 100% right. I am working my way through learning some Python and when I started to find stuff referring to Django and web frameworks, they all seem to be touted as 'easy'. So, I thought, 'what the hell, let's build a web app'. After installing Django I was totally lost. Sure, I could install the framework and work through the tutorials but I am still miles away from actually building something on my own, because, while I know how to write some lines of code and create some basic tools I still don't know how to BUILD anything.

<comment><AUTHOR> Yeah, I'm realizing that there isn't a great starting point for someone to get into web development from scratch. I don't think Django or Rails should even factor into it.

I've liked what I've seen of Code Academy, that might be something to look into if you haven't already: <http://www.codecademy.com>

<comment><USER13> Thanks, I went through the Code Academy courses and they were fun and helpful, but the biggest strides I've had in programming have been thinking of an idea and then trying to build it from what I know. This way, I am applying what I already know, further cementing it and it forces me to run into problems that I cannot yet solve. I spend up to a week trying to figure out a solution to that problem on my own. If I can't, I'll head to Stackoverflow and ask there. That's been the best way for me so far.

<comment><AUTHOR> Absolutely. Thinking of an idea and then coding to its realization is a classic method of learning to program. It sounds like you have a great system for learning. I'd only caution that even if you come up with a solution to a problem on your own: do the search engine/stack overflow research anyway to see alternative methods. If you don't find any: blog about it.

</comment></comment></comment></comment><comment><USER14> Interesting that right at the top of rubyonrails.com is this quote:

"Ruby on Rails is a breakthrough in lowering the barriers of entry to programming. Powerful web applications that formerly might have taken weeks or months to develop can be produced in a matter of days." -Tim O'Reilly, Founder of O'Reilly Media

<comment><USER15> "Powerful web applications that formerly might have taken weeks or months to develop can be produced in a matter of days."

This is true if you are already an experienced web developer. You already know the problem space well and have an intuition about good solutions and approaches. Someone handing you Rails as a tool can certainly speed up the development time.

This is also only true if the application is trivial; you can only create a simple "first cut" of a product in a matter of days.

"Ruby on Rails is a breakthrough in lowering the barriers of entry to programming."

I think Ruby is a great first programming language; it has a cleaner, more consistent syntax than some other languages with fewer gotchas and edge cases (I'm looking at you, JavaScript!).

Rails, on the other hand, has a lot of magic, so that if it is your first programming experience, you will probably approach programming more in terms of memorizing and repeating the magical incantations instead of having an understanding of how the system works and practice in designing and crafting good systems of your own. So in that sense, Rails (and the state of web programming in general) may make it _harder_ for people to get really good at programming.

</comment></comment><comment><USER16> I got pretty far along with Rails Tutorial, and came to love Ruby after just a short time. Its so nice and such a refreshing change from PHP.

BUT! What I hadn't anticipated was really not knowing anything about how to make a web app. I knew nothing about REST, nothing about get/put, nothing about forms, etc.

I thought Ruby and Rails were the answer to the problem I'd been having for years. I thought that I was just in need of the right programming language to help take my skills to the next level. I realize now however, after some cool Ruby bits and some Rails basics, that you're only going to get the best results out of language and framework when you know the basics.

And there's a lot of basics: rest, basic http methods, forms, sql, routes, etc etc etc.

</comment><comment><USER17> I am a huge advocate for the Django web framework, yet I always tell people that web frameworks (Django|Rails|etc) are not for beginners. Like many have mentioned, it's easy for experienced web programmers that have been mucking around things done "the old fashioned way" and without any true MVC structure. I assume it would be difficult for novice programmers to really understand what the advantages and best practices of MVC web frameworks are for, when they have little experience of having worked in anything else.

</comment><comment><USER18> I would argue that the lack of a simple installation process to get Rails running makes it inaccessible for a lot of beginners (myself included). Without stackoverflow, I wouldn't have known where to start - or what commands I'd have to enter into the terminal. As far as I know, there is no script that automates this process. Compare this to PHP, where most of today's shared hosts support it right out of the box.

<comment><USER19> To me, it's more about "holy shit, several level of abstraction" that I have to learn by heart in order to use rails, rather than learning the commands that does a rails application.

It's a lot easier, in my opinion, to start from nothing but a few libraries and then write a toy web application. However, you're left to write everything yourself.

<comment><USER20> There's that, but there's also the fact that many of the prominent Rails tutorials tell you to start using a whole bunch of additional libraries that aren't Rails. I've seen that confuse many people.

</comment></comment></comment><comment><USER21> So as someone who has programmed before in C# and Python, and has a knowledge of OOP, what would you suggest to start in Web Development (Apart from HTML, CSS and JS) ? I tried PHP, but I found the syntax extremely awfull and verbose, any alternatives ?

<comment><USER10> If you want to stick with a language you know, ASP.net MVC and Django are both great full stack frameworks for getting complex stuff done quickly and well.

If you want to go a bit more of a futureproof route, focus on learning something like backbone or ember, and treat your server as an api. In that case, what framework you choose doesn't matter so much, as long as it provides good json serialization and easy data access.</comment></comment>


Already Valued at $4B, China's Xiaomi Has Declared War on Apple - <AUTHOR> http://pandodaily.com/2012/07/17/already-valued-at-4b-chinas-xiaomi-has-declared-war-on-apple/

<comment><USER2> Their Android flavor, MIUI, is fairly popular as an alternative to Cyanogen.

<comment><USER3> Interestingly enough, MIUI is based on Cyanogen.

</comment></comment><comment><USER4> What is it with the "war" on everything? How about you just make a great product that people want. Easier said than done, I know, but it's not war.

<comment><USER5> Remember, this article is from Pando, so it's not surprising that the headline is, um, a little excessive.

</comment></comment><comment><USER6> This may be the first company in China to be innovating instead of working on the Hiphone 6. Regardless, they will never be taken seriously because Chinese companies reputations are already destroyed.

<comment><USER7> Classic mental mistake of the disrupted.

China have come from making pathetic, health-hazard goods, to now making 'good enough' products, and it won't be long before they are making Apple-quality stuff.

<comment><USER8> "it won't be long before they are making Apple-quality stuff."

Wait, they actually make actual Apple stuff today. I realize these aren't China designs but when we're talking about build quality, the know how is already there although in most cases spoken for by foreign capital.

</comment></comment></comment><comment><USER9> From the article "The name, by the way, translates to "millet" in English, but it is also the combination of two Chinese words that have a powerful resonance here: rice and rifle. As any patriotic citizen will tell you, together those words mean "revolution." "

Huh? The two characters in xiaomi (小米) are xiao3, meaning "small" and mi3 meaning "rice". In other words, millet. Rifle is qiang1.

<comment><USER10> The phrase is "小米加步枪", which comes from a Mao Zedong speech to the 8th route army and militia when fighting the Japanese in WWII. They had no real government or supplies and had to subsist off of millet and fight with single- firing rifles to overthrow their occupiers.

It translates to "millet and rifles", just as the article said. It's pretty common in Chinese to use a part of a famous phrase to refer to its entirety. Actually, Baidu is another company name that does this.

<comment><USER9> Thanks. That's a much clearer explanation.

</comment></comment></comment><comment><USER11> Wiki: " Xiaomi is a high-end smartphone, using a Qualcomm Snapdragon S3 (dual core, 1.5 GHz) as its CPU and an Adreno 220 as its GPU,[4] but its price (RMB1999/around USD310)[5] is less than half the cost of a typical dual-core CPU smartphone.[6] "

So they're selling the phone equivalant of a Nexus 7 (decent hardware that deeply undercuts the competition.)

<comment><USER12> Did I miss something ? Nexus 7 is the same price than the Kindle Fire.

<comment><USER11> The Fire is a locked down Amazon appliance with a proprietary app store and all manner of restrictions running on a heavily modified version of Android. The Nexus is a proper tablet with access to all of Google's tablet services including Google's unfiltered app store. Sure, you can put some ROM on it, but Joe and Jane Public aren't.

<comment><USER12> I don't think Joe and Jane Public are going to know the difference between a filtered and unfiltered app store or what an unmodified Android version means.

<comment><USER13> Nope they aren't. But for damn sure they know the difference between "Amazon" and "Google".

<comment><USER14> One of them has an ongoing relationship with the customer and probably a credit card on file.

The other is Google.

</comment></comment></comment></comment></comment></comment><comment><USER15> I declare war on...dill pickles. Now come buy my sweet pickles. _yawn_

Also, a nit: it is sad to see a journalist refer to the "lead" of his/her story.

<comment><USER16> I don't like the article overall, but don't have a problem with the internal reference. Way too often, titles are written to be provacative and the content of the story is much more mundane, or doesn't even support it. I don't mind an instance where an author elaborates on their lead in an attempt to explain it.

<comment><USER17> I believe SoftwareMaven was referring to the literal "lead" spelling that the writer used (as the majority of actual journalists use the "lede" spelling), not to the reference.

<comment><USER18> I was unfamiliar with this. I googled it, and found this discussion: <http://howardowens.com/2011/09/18/lede-vs-lead/>

</comment></comment></comment></comment><comment><USER19> I'm in China and nobody gives a shit about home-grown Chinese brands. I mentioned to a friend I wanted to check out a Meizu MX and her boyfriend asked "what's that?" To which she replied "Oh, just a shanzai iPhone".

The first meizu store I went to, there was a guy selling rugs inside.

The second meizu store had two very bored looking sales assistants and in the half hour that I poked around and pestered these guys nobody else came in.

The technology malls are filled with Apple, HTC, Samsung and even Sony phones. Zero obvious brand presence for Chinese phones.

In the future this will change, I'm not saying that the Chinese phone industry won't be a powerhouse, but for now temper your excitement.

</comment><comment><USER20> "Xiaomi appears to have hit a sweet spot in the market, selling high-spec devices that compete with the iPhone on quality, but undercut it substantially in price" This strategy follows Christensen's disruptive innovation to the letter. Interesting to see Apple on the brink of disruption in a consumer category it principally defined.

<comment><USER8> "This strategy follows Christensen's disruptive innovation to the letter. Interesting to see Apple on the brink of disruption in a consumer category it principally defined."

Sorry I'm not seeing it. Who's to say Xiaomi doesn't end up eating Samsung's lunch instead of Apple?

I mean people in the market for "a cheaper iphone" or "a more open iphone" traditionally that's where Samsung and company have been making money right?

</comment></comment><comment><USER21> If there's any company I won't be sad to see hit with an Apple lawsuit, it's Xiaomi. The MIUI ROM is great, but it copies the iPhone Look&Feel to an absurd degree. I get that MIUI is all about "usability" and "beauty", but WinPhone has proven usability and beauty can be achieved without blatantly copying Apple.

</comment><comment><USER22> Would anyone happen to know if the bootloader is unlocked on these?

EDIT: For what it's worth, here's a review that Engadget did of the phone back in September 2011: <http://www.engadget.com/2011/09/27/xiaomi-phone-review/>

</comment><comment><USER23> Great to see them doing well. I first heard about the company while exploring different Android ROMs, and the MIUI rom by XiaoMi was the best I've seen overall in terms of stability and usability which cyanogen lacked. Their native apps felt really intuitive to use and it adds a lot of functionality that you normally get from apps and more. e.g. a toggle to turn things on and off in the notification area is an app in the app store, but the quality just isn't good enough and I hate going through a bunch of crappy quality widget apps just to find one that I might like. Cyanogen has most of the features that xiami offers and more, but they're not as well designed nor as stable.

</comment><comment><USER24> Wow the Xiaomi keynote looks a lot like Steve Jobs keynotes with significantly less production quality: <http://player.youku.com/player.php/sid/XMjk1MzcxNTY4/v.swf>

<comment><USER25> there's a guy on stage with a projector in the background. It looks like a million other presentations.

<comment><USER26> Apple invented the universe and everything in it.

<comment><USER27> This is just silly, Apple didn't create the universe. They just gave humans knowledge!

</comment></comment></comment></comment><comment><USER28> Can you buy a Xiaomi phone outside of China? For a $300 phone it looks pretty nice.

</comment><comment><USER10> I very nearly bought one of these a few months ago, but it was sold out.</comment>


Why are so many smart people such idiots about philosophy? - <AUTHOR> http://qz.com/627989/why-are-so-many-smart-people-such-idiots-about-philosophy/ <comment><USER2> Dunning-Kruger effect to some degree. A lot of people well versed in at least one field tend to end up thinking they're also well versed in everything else as well, so you get a fair few scientists who think they also know everything about the humanities and social sciences. Or people well renowned in one field of science thinking they know a ton about a completely unrelated one (see, many 'Intelligent Design' advocates).

There's also a certain amount of disdain towards it from scientists who seem to think philosophy has been replaced by science in general. Which is perhaps true in some things, but not so much in a lot of others.

</comment><comment><USER3> I read the article, but I still don't know why Bill Nye is supposed to be wrong, or how philosophy is not "asking pointlessly 'deep' questions, plucking an answer out of thin air".

<comment><USER4> Philosophy is why we have democracy today with checks and balances....over millennia people discussed and argued about the best kinds of governments to have, how to find good leaders, and how to avoid problems.

That's just one example out of many.

<comment><USER3> Philosophy provides no basis for objectively deciding what is the best system of government or who would make the best leaders. If it did then why are there competing systems that are at least as effective at governing a population, even if not as popular with the population?

<comment><USER4> There's no objective definition of 'best'

</comment></comment></comment></comment><comment><USER5> Perhaps philosophy's problem here are that it doesn't present its case very well, and this article provides us with an example of that. Instead of explaining the relevance of philosophy, it picks apart Bill Nye's poor arguments. You don't have to be a philosopher to see that the existence of poor arguments against philosophy does not, in itself, establish the relevance of current academic philosophy.

</comment><comment><USER6> Smart people make dumb decisions all the time. They are just better at convincing themselves/others that their (wrong) decisions are right. So why should philosophy be different? All people (independently of intelligence) make decisions using their values/emotions first. And then defend those decisions (more or less well) using their intelligences.

</comment><comment><USER7> There's been centuries of philosophizing and what's that contributed to humanity - nothing. Science has provided clean water and protection against most pathogens. I'm with the science guy anyday.

<comment><USER8> > There's been centuries of philosophizing and what's that contributed to > humanity

Socrates and Plato introduced the idea that morality isn't just about doing what your society expects of you.

Hobbes, Locke, Rousseau and others developed the notion that governments ought to be accountable to their citizens.

Frege and Russell formalized logic (as mathematicians) and argued that its structures were not merely syntactic constructs (contrary to Boole) but somehow reflected the nature of reality and/or rational thought (a strictly philosophical discussion).

Popper conclusively killed the hypothetico-deductive model of scientific reasoning and replaced it with falsifiability, the now dominant foundation of all scientific endeavour.

Newton was a philosopher whose philosophising caused physics to became its own discipline. Similar trajectories apply to psychology, linguistics, and sociology, just over the past ~200 years.

Einstein credited his ruminations on Kant's metaphysics with giving him the conceptual insights to develop general relativity [1].

Historically, once a philosophical line of enquiry becomes sufficiently developed, we just stop calling it philosophy and give it a new name. This tends to happen once the methodological and conceptual questions are more or less settled, so that empiricism can finally be brought to bear on these problems.[2]

> I'm with the science guy anyday.

It's absurd to think of science and philosophy as mutually exclusive or somehow opposed to each other. Modern scientists are doing philosophy any time they do anything other than gather or analyse data. Field foundational and methodological questions are, by and large, precisely the kinds of questions philosophy has addressed for centuries.

[1] [http://plato.stanford.edu/entries/einstein- philscience/](http://plato.stanford.edu/entries/einstein-philscience/)

[2] Here's a computational neuroscientist going into more detail about that: [https://www.quora.com/What-is-the-relationship-between- scien...](https://www.quora.com/What-is-the-relationship-between-science-and- philosophy)

<comment><USER9> It's funny how Scientists like to quote Popper but rail against their idea of what "Philosophy" is, never quite putting 2 and 2 together and realising that Popper was a Philosopher.

</comment></comment></comment><comment><USER10> Do you mean why are so many smart people uninterested in what you find interesting?

Maybe it has something to do with being called idiots for not knowing all the nuances of a field that can't even define itself.

</comment><comment><USER11> Everybody already knows everything worth knowing about philosophy. This includes people who know nothing about it. :-)

<comment><USER12> Do you mean that what is worth knowing about it is relative to the person knowing, or that there is nothing worth knowing about it?

Is knowing that people study it "knowing something about it"? Because, I find that knowing that people study it helps me understand the actions of others.</comment></comment>


FB For Android Finally Has More Active Users Than FB For iPhone - <AUTHOR> http://techcrunch.com/2011/12/17/facebook-android-iphone/

<comment><USER2> This is a stab in the dark by a stats company.</comment>


Using Web Technologies to Change the World (Stanford CS90SI Fall 2015) - <AUTHOR> http://web.stanford.edu/class/cs90si/#/home

<comment><USER2> This is going to be a really interesting new take on CS – looking forward to seeing where it goes!</comment>


A History of Bayes' Theorem - <AUTHOR> http://lesswrong.com/lw/774/a_history_of_bayes_theorem/ <comment><USER2> Not really the point of the article, but it always unnerves me, when people talk about Turing breaking Enigma, and not mention whole effort ( <http://en.wikipedia.org/wiki/Cryptanalysis_of_the_Enigma> ).

Enigma was broken by Polish mathemathicians in 1938, then improved by Germans, then broken again, Poles had given all their discoveries to France and to Great Brittain, they also invented first "Bomba" to that worked mechanically.

It's complicated story, and these people deserve credit along with Turing. But till 1970 it was classified information, and to this day everybody talks only about Turing.

Maybe it's my nationalism bias at work, but I'd prefer if the whole story was better known.

<comment><USER3> I agree. Also this article only makes it worse. It claims that (a) no one was working on Enigma before Turing and (b) Turing worked on it because he 'liked solitude'. WTF? Given that total bollocks in that part of the article I have a hard time reading the rest. Note that Bletchley Park does a very good job of talking about the Polish contribution to the cryptanalytic effort with examples of how the Polish attacks on Enigma were performed and a Polish memorial and they have a special annual Polish day.

Also, if the author wanted to talk about Bayes Theorem and the WWII cryptanalytic effort there's a much nicer example from the Japanese codes: [http://blog.jgc.org/2010/07/bayes-bletchley-jn-25-and- modern...](http://blog.jgc.org/2010/07/bayes-bletchley-jn-25-and-modern.html)

</comment></comment><comment><USER4> If you find the conflict around frequentist and bayesian methods entertaining check out Jaynes' Theory of Probability, which profiles lots of great arguments and personality profiles. Also you might learn a few things about maxent, statistical physics, and my favorite: the mind-projection fallacy.

<comment><USER5> I can't find the book with that title, do you have a link or ISBN? [http://www.amazon.com/Probability-Theory-Science-T- Jaynes/dp...](http://www.amazon.com/Probability-Theory-Science-T- Jaynes/dp/0521592712/ref=ntt_at_ep_dpt_1) is the closest match but it does not seem to match your description.

<comment><USER4> Thanks and sorry--I misrecollected. The correct title is Probability Theory: The Logic of Science.

<comment><USER6> I've got a digital copy around here somewhere. Send me a message if you want.

<comment><USER7> Hi jcarden, i wouldnt mind a copy, where can i message you to.

Thanks !

<comment><USER8> I think it's not exactly the same as the book version, but the author's original is available at <http://www-biba.inrialpes.fr/Jaynes/prob.html>

<comment><USER9> Does anyone have a combined PDF? While I appreciate the author putting out the PDF, separating the files out into individual chapters and figures makes it harder to read in a sitting.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> It has always bothered me that Baye's theorem is a named result, instead of just "the law of conditional probability," say. As soon as you formally define conditional probability, it is obvious.

To be fair, though, I think he discovered it before probability theory was formalized, and I can see how it may have been non-obvious at the time. Sometimes the best progress makes challenging insights appear obvious in hindsight - nice work, Laplace!

</comment><comment><USER11> It's interesting that the Reverend Bayes was resisted for so long, and not on objective grounds. We seem to have this tendency, even amongst the academic elite, to not always have the most honest of mental apparatus, especially where the matter at hand would require us to reverse position, or acknowledge more our ignorance, than our ability.

</comment><comment><USER12> Why is Bayes' theorem such a magnet for cranks? Is it because you make your prior anything and pretend it's partially true?

<comment><USER13> I don't know, but it does seem to be sometimes evangelised with more fervor than I'm comfortable with. Us v Them is always a suspicious narrative.

Even in this article, stuff like:

 _Finally, in 1983 the US Air Force sponsored a review of NASA's estimates of the probability of shuttle failure. NASA's estimate was 1 in 100,000. The contractor used Bayes and estimated the odds of rocket booster failure at 1 in 35. In 1986, Challenger exploded._

makes me uneasy. The rhetoric is too clearly marked.

<comment><USER14> The "1 in 100,000" silliness was noticed by Feynman and has nothing to do with Bayes, it was just PHB-thinking.

[http://en.wikipedia.org/wiki/Rogers_Commission_Report#Role_o...](http://en.wikipedia.org/wiki/Rogers_Commission_Report#Role_of_Richard_Feynman)

</comment></comment></comment><comment><USER15> While we're on the top of Bayes, does any Berkeley grad have a copy of Michael Jordan's forthcoming book?

</comment><comment><USER16> For those (possibly a small number on HN) not aware - I first encountered Bayes' Theorem via pg's articles on Spam - <http://www.paulgraham.com/antispam.html>

</comment><comment><USER17> If you find the explanation too math heavy, this one might make more sense: <http://commonsenseatheism.com/?p=13156></comment>


Effect of WASM in electron apps? - born-jre i always hated electron apps, concept of a chrome for every desktop app that resource hogging crap. but today it hit now that there is new bubble of Webassembly does it make some what desirable or worse companies shipping games in electron . how much performance difference (only intense cpu stuff would be written in WASM  and since most of component of electron is same and it runs in same VM made for) does it make for normal application. i did not find articles about it. please enlighten me <comment><AUTHOR> It would be interesting to see if popular Electron apps like VSCode or Atom start to re-write performance-critical parts in wasm.

</comment><comment><USER2> Electron will probably eventually die and a light WAsm runtime with canvas/WebGL support will be used instead.

<comment><USER3> And then we've then reinvented Java!

<comment><USER2> Yes, but with better security model and a buy-in from all major companies, basically what both CLR and JVM strived to but have failed to achieve.

<comment><USER3> Can you elaborate on the security model?</comment></comment></comment></comment>


Ask HN: How Is to Write for Packt? - <AUTHOR> Did it happen to anyone to get his author contract canceled and the manuscript given to another author? <comment><USER2> Have not heard of this before, what is the context?

I think you've had a lucky escape. I worked with Packt and am not really that impressed by the outcome of the published works. In retrospect, I wish I'd done it independently or, with another publisher.

</comment><comment><USER3> I wrote for Packt, but I didn't have that problem. It wouldn't have been allowed by the contract.

Can you tell us what happened?</comment>


Virtual servers: No safer than any other kind - <AUTHOR> http://www.zdnet.com/virtual-servers-no-safer-than-any-other-kind-7000032594/

<comment><USER2> I use them to keep my system uncluttered and for using different OSes... nothing to do with security for me...</comment>


Ask HN: How to write the financials of your business plan? - <AUTHOR>

We are a team of four founders and are currently working on a project somewhat similar to talkbin. We are in contact with a Business Angel who would like to see our business plan. The thing is, that we currently only launched our prototype and will launch with our first customer (a small restaurant) probably next week. So we have no data whatsoever to make any valid assumptions. I couldn't really find any good articles on the internet about the financials of a business plan. Is there anybody who can share some links to some good posts? <comment><USER2> the financials usually only focus on three items: projected revenues, costs and profits

how many other places have shown an interest in what you do and over what period of time ? or how many places did you have to contact to finally get a sale ?

I would use those numbers to help then provide a projection over the next 12 months and then a longer term 3-5 down the line.

Another way to do it is to find how big your target market is (use government statistics site for example), and then come to a reasonable expectation of how many of those you could turn into customers, something on the order of 0.02%</comment>